From 6bccdba853af0713202352183f672e7a1f3d3bf0 Mon Sep 17 00:00:00 2001 From: Philip Lindberg Date: Fri, 25 Sep 2026 09:23:00 +0100 Subject: [PATCH 1/5] ui: the demo pages share one workbench skeleton, and the specs read data attributes Each component page is a header, a stage with the trigger, and one controls panel with a row per popup prop, from shared Page, Stage, Controls, Row, and Choice components. The Parent section and the explanatory paragraphs are gone. Dialog exposes closedby, Drawer exposes side and closedby with a per-side class table, and Menu exposes side, align, sideOffset, and the last item chosen. Option lists are checked with satisfies, since an as assertion let a misspelled option through. The specs observe data-popup-open, data-open, and data-closed instead of text readouts, reach a control through its named group, and no longer drive the cell from an outside button. The drawer spec gains a per-side placement test. --- packages/ui/demo/app/components/page.rip | 38 +++++++ packages/ui/demo/app/routes/dialog.rip | 34 ++----- packages/ui/demo/app/routes/drawer.rip | 45 +++++---- packages/ui/demo/app/routes/index.rip | 7 +- packages/ui/demo/app/routes/menu.rip | 121 ++++++++++------------- packages/ui/test/browser/dialog.spec.mjs | 25 ++--- packages/ui/test/browser/drawer.spec.mjs | 40 ++++++-- packages/ui/test/browser/menu.spec.mjs | 58 ++++------- packages/ui/test/browser/support.mjs | 2 +- 9 files changed, 181 insertions(+), 189 deletions(-) create mode 100644 packages/ui/demo/app/components/page.rip diff --git a/packages/ui/demo/app/components/page.rip b/packages/ui/demo/app/components/page.rip new file mode 100644 index 00000000..94c85ddb --- /dev/null +++ b/packages/ui/demo/app/components/page.rip @@ -0,0 +1,38 @@ +export Page = component + @title: string + @description: string + render + div class: 'mx-auto flex max-w-2xl flex-col gap-8 px-5 py-8 md:px-8 md:py-10' + div + h1 class: 'text-2xl font-semibold', title + p class: 'mt-2 text-secondary', description + slot + +export Stage = component + render + div class: 'flex items-center justify-center rounded-xl border border-surface bg-surface py-16' + slot + +export Controls = component + render + section class: 'flex flex-col gap-4 rounded-xl border border-surface bg-surface p-5' + slot + +export Row = component + @name: string + render + div role: 'group', aria-label: name, class: 'flex flex-wrap items-center gap-2' + span class: 'w-24 shrink-0 font-mono text-sm text-secondary', name + slot + +export Choice = component extends button + @pressed: boolean + render + button + type: 'button' + aria-pressed: if pressed then 'true' else 'false' + class: [ + 'rounded-lg border border-input bg-input px-3 py-1.5 text-sm font-medium text-secondary' + 'hover:bg-input-hover active:bg-input-active aria-pressed:bg-surface-active aria-pressed:text-primary' + ] + slot diff --git a/packages/ui/demo/app/routes/dialog.rip b/packages/ui/demo/app/routes/dialog.rip index 1fff9719..c39231a5 100644 --- a/packages/ui/demo/app/routes/dialog.rip +++ b/packages/ui/demo/app/routes/dialog.rip @@ -1,15 +1,13 @@ import { Dialog } from 'rip/ui' import { COMPONENTS } from '../components.rip' +import { Choice, Controls, Page, Row, Stage } from '../components/page.rip' export DialogPage = component open := false closedby: Dialog.ClosedBy | undefined := undefined render - div class: 'mx-auto max-w-2xl px-5 py-8 md:px-8 md:py-10' - h1 class: 'text-2xl font-semibold', COMPONENTS.dialog.name - p class: 'mt-2 text-secondary', COMPONENTS.dialog.description - - div class: 'mt-8 flex items-center justify-center rounded-xl border border-surface bg-surface py-16' + Page title: COMPONENTS.dialog.name, description: COMPONENTS.dialog.description + Stage Dialog.Root open <=> open Dialog.Trigger class: 'rounded-lg border border-transparent bg-accent px-3 py-2 text-sm font-medium text-on-accent hover:bg-accent-hover active:bg-accent-active' @@ -28,25 +26,7 @@ export DialogPage = component class: 'rounded-lg border border-transparent bg-accent px-3 py-2 text-sm font-medium text-on-accent hover:bg-accent-hover active:bg-accent-active' 'Close' - section class: 'mt-8 rounded-xl border border-surface bg-surface p-5' - h2 class: 'text-xs-plus font-medium text-tertiary', 'Parent' - p class: 'mt-2 text-sm text-secondary', 'The page binds the root with open <=> open.' - div class: 'mt-4 flex items-center gap-4' - code class: 'rounded bg-muted px-2 py-1 font-mono text-sm', "open: #{open}" - button - type: 'button' - class: 'rounded-lg border border-input bg-input px-3 py-2 text-sm font-medium text-secondary hover:bg-input-hover active:bg-input-active' - @click: (-> open = true) - 'Open from the Parent' - - section class: 'mt-8 rounded-xl border border-surface bg-surface p-5' - h2 class: 'text-xs-plus font-medium text-tertiary', 'Dismissal' - p class: 'mt-2 text-sm text-secondary', 'The page passes closedby to the popup. Left out, the popup uses any: Escape and a click on the backdrop both close it.' - div class: 'mt-4 flex flex-wrap items-center gap-2' - for option in [undefined, 'any', 'closerequest', 'none'] as (Dialog.ClosedBy | undefined)[] - button - type: 'button' - aria-pressed: if closedby is option then 'true' else 'false' - class: 'rounded-lg border border-input bg-input px-3 py-2 font-mono text-sm text-secondary hover:bg-input-hover active:bg-input-active aria-pressed:bg-surface-active aria-pressed:text-primary' - @click: (-> closedby = option) - "closedby: #{option ?? 'not passed'}" + Controls + Row name: 'closedby' + for option in [undefined, 'any', 'closerequest', 'none'] satisfies (Dialog.ClosedBy | undefined)[] + Choice pressed: closedby is option, @click: (-> closedby = option), option ?? 'not passed' diff --git a/packages/ui/demo/app/routes/drawer.rip b/packages/ui/demo/app/routes/drawer.rip index 138a3693..17faa67a 100644 --- a/packages/ui/demo/app/routes/drawer.rip +++ b/packages/ui/demo/app/routes/drawer.rip @@ -1,39 +1,46 @@ import { Drawer } from 'rip/ui' import { COMPONENTS } from '../components.rip' +import { Choice, Controls, Page, Row, Stage } from '../components/page.rip' + +# Each slide also sets the other axis to zero: WebKit does not substitute +# an unset registered property's initial value inside @starting-style. +PANEL: Record = { + left: 'mr-auto ml-0 h-dvh max-h-none w-80 max-w-[calc(100vw-3rem)] -translate-x-full translate-y-0 data-open:translate-x-0 starting:data-open:-translate-x-full' + right: 'mr-0 ml-auto h-dvh max-h-none w-80 max-w-[calc(100vw-3rem)] translate-x-full translate-y-0 data-open:translate-x-0 starting:data-open:translate-x-full' + top: 'mt-0 mb-auto w-dvw max-w-none h-80 max-h-[calc(100dvh-3rem)] -translate-y-full translate-x-0 data-open:translate-y-0 starting:data-open:-translate-y-full' + bottom: 'mt-auto mb-0 w-dvw max-w-none h-80 max-h-[calc(100dvh-3rem)] translate-y-full translate-x-0 data-open:translate-y-0 starting:data-open:translate-y-full' +} export DrawerPage = component open := false + side: Drawer.Side := 'right' + closedby: Drawer.ClosedBy | undefined := undefined render - div class: 'mx-auto max-w-2xl px-5 py-8 md:px-8 md:py-10' - h1 class: 'text-2xl font-semibold', COMPONENTS.drawer.name - p class: 'mt-2 text-secondary', COMPONENTS.drawer.description - - div class: 'mt-8 flex items-center justify-center rounded-xl border border-surface bg-surface py-16' + Page title: COMPONENTS.drawer.name, description: COMPONENTS.drawer.description + Stage Drawer.Root open <=> open Drawer.Trigger class: 'rounded-lg border border-transparent bg-accent px-3 py-2 text-sm font-medium text-on-accent hover:bg-accent-hover active:bg-accent-active' 'Open Drawer' Drawer.Popup - side: 'right' + side: side + closedby: closedby class: [ - 'mr-0 ml-auto h-dvh max-h-none w-80 max-w-[calc(100vw-3rem)] translate-x-full translate-y-0 bg-surface p-6 shadow-xl transition-[translate] duration-300 ease-drawer' - 'data-open:translate-x-0 data-open:duration-450 starting:data-open:translate-x-full' + PANEL[side] + 'bg-surface p-6 shadow-xl transition-[translate] duration-300 ease-drawer data-open:duration-450' 'backdrop:bg-backdrop backdrop:opacity-0 backdrop:duration-300 backdrop:ease-drawer data-open:backdrop:duration-450 data-open:backdrop:opacity-100 starting:data-open:backdrop:opacity-0' ] Drawer.Title class: 'text-lg font-semibold', 'Settings' - Drawer.Description class: 'mt-2 text-secondary', 'Swipe the panel to the right to dismiss it, or use the button.' + Drawer.Description class: 'mt-2 text-secondary', 'Swipe the panel toward its side to dismiss it, or use the button.' div class: 'mt-6 flex justify-end' Drawer.Close class: 'rounded-lg border border-transparent bg-accent px-3 py-2 text-sm font-medium text-on-accent hover:bg-accent-hover active:bg-accent-active' 'Close' - section class: 'mt-8 rounded-xl border border-surface bg-surface p-5' - h2 class: 'text-xs-plus font-medium text-tertiary', 'Parent' - p class: 'mt-2 text-sm text-secondary', 'The page binds the root with open <=> open.' - div class: 'mt-4 flex items-center gap-4' - code class: 'rounded bg-muted px-2 py-1 font-mono text-sm', "open: #{open}" - button - type: 'button' - class: 'rounded-lg border border-input bg-input px-3 py-2 text-sm font-medium text-secondary hover:bg-input-hover active:bg-input-active' - @click: (-> open = true) - 'Open from the Parent' + Controls + Row name: 'side' + for option in ['left', 'right', 'top', 'bottom'] satisfies Drawer.Side[] + Choice pressed: side is option, @click: (-> side = option), option + Row name: 'closedby' + for option in [undefined, 'any', 'closerequest', 'none'] satisfies (Drawer.ClosedBy | undefined)[] + Choice pressed: closedby is option, @click: (-> closedby = option), option ?? 'not passed' diff --git a/packages/ui/demo/app/routes/index.rip b/packages/ui/demo/app/routes/index.rip index 9d7c8621..5892799e 100644 --- a/packages/ui/demo/app/routes/index.rip +++ b/packages/ui/demo/app/routes/index.rip @@ -1,11 +1,10 @@ import { COMPONENTS } from '../components.rip' +import { Page } from '../components/page.rip' export Home = component render - div class: 'mx-auto max-w-2xl px-5 py-8 md:px-8 md:py-10' - h1 class: 'text-2xl font-semibold', 'Rip UI' - p class: 'mt-2 text-secondary', 'Unstyled, composable UI components built on native browser features.' - ul class: 'mt-8 grid gap-4' + Page title: 'Rip UI', description: 'Unstyled, composable UI components built on native browser features.' + ul class: 'grid gap-4' for entry in Object.values(COMPONENTS) li a href: entry.href, class: 'block rounded-xl border border-surface bg-surface p-5 hover:bg-surface-hover' diff --git a/packages/ui/demo/app/routes/menu.rip b/packages/ui/demo/app/routes/menu.rip index adb4e371..e075ee8b 100644 --- a/packages/ui/demo/app/routes/menu.rip +++ b/packages/ui/demo/app/routes/menu.rip @@ -1,17 +1,18 @@ import { Dialog, Menu } from 'rip/ui' import { COMPONENTS } from '../components.rip' +import { Choice, Controls, Page, Row, Stage } from '../components/page.rip' + +ITEM = 'flex w-full items-center rounded-lg px-3 py-2 text-sm font-medium text-secondary outline-none focus:bg-surface-hover focus:text-primary' export MenuPage = component open := false selected := '' side: Menu.Side := 'bottom' align: Menu.Align := 'start' + sideOffset := 6 render - div class: 'mx-auto max-w-2xl px-5 py-8 md:px-8 md:py-10' - h1 class: 'text-2xl font-semibold', COMPONENTS.menu.name - p class: 'mt-2 text-secondary', COMPONENTS.menu.description - - div class: 'mt-8 flex items-center justify-center rounded-xl border border-surface bg-surface py-16' + Page title: COMPONENTS.menu.name, description: COMPONENTS.menu.description + Stage Menu.Root open <=> open Menu.Trigger class: 'rounded-lg border border-transparent bg-accent px-3 py-2 text-sm font-medium text-on-accent hover:bg-accent-hover active:bg-accent-active' @@ -19,75 +20,53 @@ export MenuPage = component Menu.Popup side: side align: align - sideOffset: 6 + sideOffset: sideOffset class: [ 'w-56 origin-(--transform-origin) scale-95 rounded-xl border border-surface bg-surface p-1 opacity-0 shadow-lg/6 transition transition-discrete duration-150 ease-dialog outline-none' 'data-open:scale-100 data-open:opacity-100 data-open:duration-250 starting:data-open:scale-95 starting:data-open:opacity-0' ] - Menu.Link href: '/dialog', class: 'flex w-full items-center rounded-lg px-3 py-2 text-sm font-medium text-secondary outline-none focus:bg-surface-hover focus:text-primary', 'Dialog' - Menu.Item class: 'flex w-full items-center rounded-lg px-3 py-2 text-sm font-medium text-secondary outline-none focus:bg-surface-hover focus:text-primary', @click: (-> selected = 'Settings'), 'Settings' - Menu.Item class: 'flex w-full items-center rounded-lg px-3 py-2 text-sm font-medium text-secondary outline-none focus:bg-surface-hover focus:text-primary', @click: (-> selected = 'Sign Out'), 'Sign Out' - - section class: 'mt-8 rounded-xl border border-surface bg-surface p-5' - h2 class: 'text-xs-plus font-medium text-tertiary', 'Parent' - p class: 'mt-2 text-sm text-secondary', 'The page binds the root with open <=> open, and an item reports its click.' - div class: 'mt-4 flex items-center gap-4' - code class: 'rounded bg-muted px-2 py-1 font-mono text-sm', "open: #{open}" - code class: 'rounded bg-muted px-2 py-1 font-mono text-sm', "selected: #{selected or 'none'}" - button - type: 'button' - class: 'rounded-lg border border-input bg-input px-3 py-2 text-sm font-medium text-secondary hover:bg-input-hover active:bg-input-active' - @click: (-> open = true) - 'Open from the Parent' + Menu.Link href: '/dialog', class: ITEM, 'Dialog' + Menu.Item class: ITEM, @click: (-> selected = 'Settings'), 'Settings' + Menu.Item class: ITEM, @click: (-> selected = 'Sign Out'), 'Sign Out' - section class: 'mt-8 rounded-xl border border-surface bg-surface p-5' - h2 class: 'text-xs-plus font-medium text-tertiary', 'Placement' - p class: 'mt-2 text-sm text-secondary', 'The page passes side, align, and sideOffset to the popup. The browser flips the side when the popup does not fit, and the popup says where it landed in data-side.' - div class: 'mt-4 flex flex-wrap items-center gap-2' - for option in ['bottom', 'top', 'left', 'right'] as Menu.Side[] - button - type: 'button' - aria-pressed: if side is option then 'true' else 'false' - class: 'rounded-lg border border-input bg-input px-3 py-2 font-mono text-sm text-secondary hover:bg-input-hover active:bg-input-active aria-pressed:bg-surface-active aria-pressed:text-primary' - @click: (-> side = option) - "side: #{option}" - div class: 'mt-2 flex flex-wrap items-center gap-2' - for option in ['start', 'center', 'end'] as Menu.Align[] - button - type: 'button' - aria-pressed: if align is option then 'true' else 'false' - class: 'rounded-lg border border-input bg-input px-3 py-2 font-mono text-sm text-secondary hover:bg-input-hover active:bg-input-active aria-pressed:bg-surface-active aria-pressed:text-primary' - @click: (-> align = option) - "align: #{option}" + Controls + Row name: 'side' + for option in ['bottom', 'top', 'left', 'right'] satisfies Menu.Side[] + Choice pressed: side is option, @click: (-> side = option), option + Row name: 'align' + for option in ['start', 'center', 'end'] satisfies Menu.Align[] + Choice pressed: align is option, @click: (-> align = option), option + Row name: 'sideOffset' + for option in [0, 6, 12] + Choice pressed: sideOffset is option, @click: (-> sideOffset = option), "#{option}" + Row name: 'selected' + span class: 'text-sm font-medium text-secondary', selected or 'none' - section class: 'mt-8 rounded-xl border border-surface bg-surface p-5' - h2 class: 'text-xs-plus font-medium text-tertiary', 'Inside a dialog' - p class: 'mt-2 text-sm text-secondary', 'A menu rendered inside a modal dialog opens in the top layer above it, and Escape closes the menu before the dialog.' - div class: 'mt-4' - Dialog.Root - Dialog.Trigger - class: 'rounded-lg border border-input bg-input px-3 py-2 text-sm font-medium text-secondary hover:bg-input-hover active:bg-input-active' - 'Open Dialog' - Dialog.Popup - class: [ - 'm-auto w-96 scale-95 rounded-xl bg-surface p-6 opacity-0 shadow-xl transition-[opacity,scale] duration-150 ease-dialog' - 'data-open:duration-250 data-open:scale-100 data-open:opacity-100 starting:data-open:scale-95 starting:data-open:opacity-0' - 'backdrop:bg-backdrop backdrop:opacity-0 backdrop:duration-150 backdrop:ease-dialog data-open:backdrop:duration-250 data-open:backdrop:opacity-100 starting:data-open:backdrop:opacity-0' - ] - Dialog.Title class: 'text-lg font-semibold', 'Account' - div class: 'mt-6 flex items-center justify-between' - Menu.Root - Menu.Trigger - class: 'rounded-lg border border-input bg-input px-3 py-2 text-sm font-medium text-secondary hover:bg-input-hover active:bg-input-active' - 'Open Inner Menu' - Menu.Popup - sideOffset: 6 - class: [ - 'w-56 origin-(--transform-origin) scale-95 rounded-xl border border-surface bg-surface p-1 opacity-0 shadow-lg/6 transition transition-discrete duration-150 ease-dialog outline-none' - 'data-open:scale-100 data-open:opacity-100 data-open:duration-250 starting:data-open:scale-95 starting:data-open:opacity-0' - ] - Menu.Item class: 'flex w-full items-center rounded-lg px-3 py-2 text-sm font-medium text-secondary outline-none focus:bg-surface-hover focus:text-primary', @click: (-> selected = 'Inner Settings'), 'Inner Settings' - Menu.Item class: 'flex w-full items-center rounded-lg px-3 py-2 text-sm font-medium text-secondary outline-none focus:bg-surface-hover focus:text-primary', @click: (-> selected = 'Inner Sign Out'), 'Inner Sign Out' - Dialog.Close - class: 'rounded-lg border border-transparent bg-accent px-3 py-2 text-sm font-medium text-on-accent hover:bg-accent-hover active:bg-accent-active' - 'Close' + Stage + Dialog.Root + Dialog.Trigger + class: 'rounded-lg border border-input bg-input px-3 py-2 text-sm font-medium text-secondary hover:bg-input-hover active:bg-input-active' + 'Open Dialog' + Dialog.Popup + class: [ + 'm-auto w-96 scale-95 rounded-xl bg-surface p-6 opacity-0 shadow-xl transition-[opacity,scale] duration-150 ease-dialog' + 'data-open:duration-250 data-open:scale-100 data-open:opacity-100 starting:data-open:scale-95 starting:data-open:opacity-0' + 'backdrop:bg-backdrop backdrop:opacity-0 backdrop:duration-150 backdrop:ease-dialog data-open:backdrop:duration-250 data-open:backdrop:opacity-100 starting:data-open:backdrop:opacity-0' + ] + Dialog.Title class: 'text-lg font-semibold', 'Account' + div class: 'mt-6 flex items-center justify-between' + Menu.Root + Menu.Trigger + class: 'rounded-lg border border-input bg-input px-3 py-2 text-sm font-medium text-secondary hover:bg-input-hover active:bg-input-active' + 'Open Inner Menu' + Menu.Popup + sideOffset: 6 + class: [ + 'w-56 origin-(--transform-origin) scale-95 rounded-xl border border-surface bg-surface p-1 opacity-0 shadow-lg/6 transition transition-discrete duration-150 ease-dialog outline-none' + 'data-open:scale-100 data-open:opacity-100 data-open:duration-250 starting:data-open:scale-95 starting:data-open:opacity-0' + ] + Menu.Item class: ITEM, @click: (-> selected = 'Inner Settings'), 'Inner Settings' + Menu.Item class: ITEM, @click: (-> selected = 'Inner Sign Out'), 'Inner Sign Out' + Dialog.Close + class: 'rounded-lg border border-transparent bg-accent px-3 py-2 text-sm font-medium text-on-accent hover:bg-accent-hover active:bg-accent-active' + 'Close' diff --git a/packages/ui/test/browser/dialog.spec.mjs b/packages/ui/test/browser/dialog.spec.mjs index fbede8cb..cfde8347 100644 --- a/packages/ui/test/browser/dialog.spec.mjs +++ b/packages/ui/test/browser/dialog.spec.mjs @@ -1,5 +1,5 @@ import { expect, test } from '@playwright/test' -import { boot, focusInside, isModal } from './support.mjs' +import { boot, focusInside, isModal, pick } from './support.mjs' test('the trigger opens a modal dialog, focus lands inside, and the state shows on both parts', async ({ page }) => { const { trigger, popup } = await boot(page) @@ -12,7 +12,6 @@ test('the trigger opens a modal dialog, focus lands inside, and the state shows await expect(popup).not.toHaveAttribute('data-closed') await expect(trigger).toHaveAttribute('data-popup-open', 'true') await expect(trigger).toHaveAttribute('aria-expanded', 'true') - await expect(page.getByText('open: true')).toBeVisible() }) // The demo scrolls inside main, which a modal already holds still, so @@ -48,7 +47,6 @@ test('Escape closes it, the cell follows, and focus returns to the trigger', asy await expect.poll(() => isModal(page)).toBe(true) await page.keyboard.press('Escape') await expect.poll(() => isModal(page)).toBe(false) - await expect(page.getByText('open: false')).toBeVisible() await expect(popup).not.toHaveAttribute('data-open') await expect(popup).toHaveAttribute('data-closed', 'true') await expect(trigger).toHaveAttribute('aria-expanded', 'false') @@ -83,11 +81,11 @@ for (const native of [true, false]) { await expect.poll(() => isModal(page)).toBe(true) await page.mouse.click(left / 2, top / 2) await expect.poll(() => isModal(page)).toBe(false) - await expect(page.getByText('open: false')).toBeVisible() + await expect(trigger).not.toHaveAttribute('data-popup-open') }) } -const pass = (page, value) => page.getByRole('button', { name: `closedby: ${value}`, exact: true }).click() +const pass = (page, value) => pick(page, 'closedby', value) test('the popup carries the closedby the page passes, and any when it passes none', async ({ page }) => { const { popup } = await boot(page) @@ -136,7 +134,8 @@ for (const how of ['mouse', 'keyboard']) { // inside a frame it enters is the engine's own choice, so the spec places // it in the field itself before leaving. test('Tab wraps at the popup\'s ends, through a frame at one end, and a programmatic focus outside never leaves the modal', async ({ page }) => { - const { trigger, close, fromParent } = await boot(page) + const { trigger, close } = await boot(page) + const outside = page.getByRole('group', { name: 'closedby' }).getByRole('button', { name: 'any', exact: true }) await trigger.click() await expect.poll(() => isModal(page)).toBe(true) await expect(close).toBeFocused() @@ -167,19 +166,9 @@ test('Tab wraps at the popup\'s ends, through a frame at one end, and a programm await expect(field).toBeFocused() await page.keyboard.press('Tab') await expect(close).toBeFocused() - await fromParent.focus() + await outside.focus() expect(await focusInside(page)).toBe(true) - await expect(fromParent).not.toBeFocused() -}) - -test('the parent drives the cell through the binding, and the close part closes', async ({ page }) => { - const { fromParent, close } = await boot(page) - await fromParent.click() - await expect.poll(() => isModal(page)).toBe(true) - await expect(page.getByText('open: true')).toBeVisible() - await close.click() - await expect.poll(() => isModal(page)).toBe(false) - await expect(page.getByText('open: false')).toBeVisible() + await expect(outside).not.toBeFocused() }) test('the popup is named by its title and described by its description', async ({ page }) => { diff --git a/packages/ui/test/browser/drawer.spec.mjs b/packages/ui/test/browser/drawer.spec.mjs index 88dbed48..cb127b5c 100644 --- a/packages/ui/test/browser/drawer.spec.mjs +++ b/packages/ui/test/browser/drawer.spec.mjs @@ -1,5 +1,5 @@ import { expect, test } from '@playwright/test' -import { isModal } from './support.mjs' +import { isModal, pick } from './support.mjs' const entries = [ { name: 'the demo drawer', path: '/drawer', popup: 'main dialog', trigger: 'Open Drawer', from: '100%' }, @@ -48,7 +48,7 @@ test('a swipe toward the drawer\'s side dismisses it, and a short one settles ba await settled() await swipe(box.width / 2) await expect.poll(() => isModal(page)).toBe(false) - await expect(page.getByText('open: false')).toBeVisible() + await expect(trigger).not.toHaveAttribute('data-popup-open') }) // The layout's navigation drawer at phone width holds links, so a swipe @@ -70,12 +70,34 @@ test('a swipe that starts on a link dismisses the drawer without following the l await expect(page.getByRole('heading', { level: 1 })).toHaveText('Rip UI') }) -test('the parent drives the cell through the binding, and the close part closes', async ({ page }) => { +test('the side control moves the panel to that edge, and the close part closes', async ({ page }) => { await page.goto('/drawer') - await page.getByRole('button', { name: 'Open from the Parent' }).click() - await expect.poll(() => isModal(page)).toBe(true) - await expect(page.getByText('open: true')).toBeVisible() - await page.getByRole('dialog', { name: 'Settings' }).getByRole('button', { name: 'Close', exact: true }).click() - await expect.poll(() => isModal(page)).toBe(false) - await expect(page.getByText('open: false')).toBeVisible() + const trigger = page.getByRole('button', { name: 'Open Drawer' }) + const popup = page.locator('main dialog') + const close = page.getByRole('dialog', { name: 'Settings' }).getByRole('button', { name: 'Close', exact: true }) + for (const [side, from] of [['left', '-100%'], ['top', '0px -100%'], ['bottom', '0px 100%'], ['right', '100%']]) { + await pick(page, 'side', side) + await popup.evaluate((el) => { + window.entering = new Promise((resolve) => { + new MutationObserver((_, observer) => { + if (!el.open) return + observer.disconnect() + requestAnimationFrame(() => resolve(el.getAnimations().map((a) => a.effect.getKeyframes()[0].translate))) + }).observe(el, { attributeFilter: ['open'] }) + }) + }) + await trigger.click() + await expect.poll(() => isModal(page)).toBe(true) + await expect(popup).toHaveAttribute('data-side', side) + expect(await page.evaluate(() => window.entering)).toEqual([from]) + const inner = await page.evaluate(() => ({ width: innerWidth, height: innerHeight })) + const box = await popup.evaluate((el) => Promise.all(el.getAnimations().map((a) => a.finished)).then(() => el.getBoundingClientRect().toJSON())) + if (side === 'left') expect(box.left).toBe(0) + if (side === 'right') expect(Math.abs(box.right - inner.width)).toBeLessThan(1) + if (side === 'top') expect(box.top).toBe(0) + if (side === 'bottom') expect(Math.abs(box.bottom - inner.height)).toBeLessThan(1) + await close.click() + await expect.poll(() => isModal(page)).toBe(false) + await expect(popup).toBeHidden() + } }) diff --git a/packages/ui/test/browser/menu.spec.mjs b/packages/ui/test/browser/menu.spec.mjs index 14452261..bdab831b 100644 --- a/packages/ui/test/browser/menu.spec.mjs +++ b/packages/ui/test/browser/menu.spec.mjs @@ -1,10 +1,10 @@ import { expect, test } from '@playwright/test' -import { isModal } from './support.mjs' +import { isModal, pick } from './support.mjs' const parts = (page) => ({ trigger: page.getByRole('button', { name: 'Open Menu' }), popup: page.locator('main [role="menu"]').first(), - fromParent: page.getByRole('button', { name: 'Open from the Parent' }), + selected: page.getByRole('group', { name: 'selected', exact: true }), item: (name) => page.getByRole('menuitem', { name, exact: true }), }) // The popover's own show and hide run listeners with the stack empty, @@ -50,7 +50,6 @@ test('the trigger opens a popover menu under itself, focus lands on the popup, a await expect(popup).not.toHaveAttribute('data-closed') await expect(trigger).toHaveAttribute('data-popup-open', 'true') await expect(trigger).toHaveAttribute('aria-expanded', 'true') - await expect(page.getByText('open: true')).toBeVisible() await anchored(page) }) @@ -72,7 +71,6 @@ test('ArrowDown on the trigger opens with the first item focused, the arrows wra await expect(item('Settings')).toBeFocused() await page.keyboard.press('Escape') await expect.poll(() => isOpen(page)).toBe(false) - await expect(page.getByText('open: false')).toBeVisible() await expect(popup).not.toHaveAttribute('data-open') await expect(popup).toHaveAttribute('data-closed', 'true') await expect(trigger).toHaveAttribute('aria-expanded', 'false') @@ -97,14 +95,15 @@ test('ArrowUp on the trigger opens with the last item focused; Enter and Space o }) test('Enter on an item selects it and closes; Space on a link follows it', async ({ page }) => { - const { trigger, item } = await boot(page) + const { trigger, item, selected } = await boot(page) + await expect(selected).toHaveText(/none$/) await trigger.focus() await page.keyboard.press('ArrowDown') await expect(item('Dialog')).toBeFocused() await page.keyboard.press('ArrowDown') await expect(item('Settings')).toBeFocused() await page.keyboard.press('Enter') - await expect(page.getByText('selected: Settings')).toBeVisible() + await expect(selected).toHaveText(/Settings$/) await expect.poll(() => isOpen(page)).toBe(false) await expect(trigger).toBeFocused() await page.keyboard.press('ArrowDown') @@ -114,37 +113,32 @@ test('Enter on an item selects it and closes; Space on a link follows it', async expect(await page.evaluate(() => document.querySelector(':popover-open'))).toBeNull() }) -test('a click outside closes it, and a click on the trigger while open closes it instead of reopening, however it was opened', async ({ page }) => { - const { trigger, fromParent } = await boot(page) +test('a click outside closes it, and a click on the trigger while open closes it instead of reopening', async ({ page }) => { + const { trigger } = await boot(page) await trigger.click() await expect.poll(() => isOpen(page)).toBe(true) await page.getByRole('heading', { level: 1 }).click() await expect.poll(() => isOpen(page)).toBe(false) - await expect(page.getByText('open: false')).toBeVisible() - await trigger.click() - await expect.poll(() => isOpen(page)).toBe(true) + await expect(trigger).not.toHaveAttribute('data-popup-open') await trigger.click() - await expect.poll(() => isOpen(page)).toBe(false) - await page.waitForTimeout(300) - expect(await isOpen(page)).toBe(false) - await expect(page.getByText('open: false')).toBeVisible() - await fromParent.click() await expect.poll(() => isOpen(page)).toBe(true) await trigger.click() await expect.poll(() => isOpen(page)).toBe(false) await page.waitForTimeout(300) expect(await isOpen(page)).toBe(false) + await expect(trigger).not.toHaveAttribute('data-popup-open') }) test('Tab closes it and moves focus on past the menu', async ({ page }) => { - const { trigger, item, fromParent } = await boot(page) + const { trigger, item } = await boot(page) + const next = page.getByRole('group', { name: 'side' }).getByRole('button', { name: 'bottom', exact: true }) await trigger.focus() await page.keyboard.press('ArrowDown') await expect(item('Dialog')).toBeFocused() await page.keyboard.press('Tab') - await expect(fromParent).toBeFocused() + await expect(next).toBeFocused() await expect.poll(() => isOpen(page)).toBe(false) - await expect(page.getByText('open: false')).toBeVisible() + await expect(trigger).not.toHaveAttribute('data-popup-open') }) test('the pointer highlights by focusing the item under it, and leaving the item hands focus back to the popup', async ({ page }) => { @@ -160,17 +154,6 @@ test('the pointer highlights by focusing the item under it, and leaving the item await expect.poll(() => focusedRole(page)).toBe('menu') }) -test('the parent drives the cell through the binding, and the popup is anchored under the trigger without a click', async ({ page }) => { - const { fromParent } = await boot(page) - await fromParent.click() - await expect.poll(() => isOpen(page)).toBe(true) - await expect(page.getByText('open: true')).toBeVisible() - await anchored(page) - await page.keyboard.press('Escape') - await expect.poll(() => isOpen(page)).toBe(false) - await expect(page.getByText('open: false')).toBeVisible() -}) - // A viewport too short for the popup below the trigger makes the // browser's flip-block fallback place it above; scrolling the trigger to // the top edge takes that room away and the popup returns below. The @@ -211,7 +194,6 @@ test('a popup that cannot fit below flips above, says so in data-side, and scale expect(await popup.evaluate((el) => el.style.getPropertyValue('--transform-origin'))).toBe('left top') }) -const pick = (page, kind, value) => page.getByRole('button', { name: `${kind}: ${value}`, exact: true }).click() const boxes = async (page) => { const { trigger, popup } = parts(page) await settled(popup) @@ -348,7 +330,7 @@ test('closing by an item keeps the popover shown through its exit transition', a // With no transition there is no animation to wait on, so every close // hides at once and nothing is in flight between one step and the next. test('with transitions off, every way of opening and closing works, and none throws', async ({ page }) => { - const { trigger, popup, item, fromParent } = await boot(page) + const { trigger, popup, item, selected } = await boot(page) await popup.evaluate((el) => { el.style.transition = 'none' }) await trigger.click() await expect.poll(() => isOpen(page)).toBe(true) @@ -361,27 +343,23 @@ test('with transitions off, every way of opening and closing works, and none thr await expect(item('Settings')).toBeFocused() await page.keyboard.press('Enter') await expect.poll(() => isOpen(page)).toBe(false) - await expect(page.getByText('selected: Settings')).toBeVisible() - await fromParent.click() - await expect.poll(() => isOpen(page)).toBe(true) - await trigger.click() - await expect.poll(() => isOpen(page)).toBe(false) + await expect(selected).toHaveText(/Settings$/) await trigger.click() await expect.poll(() => isOpen(page)).toBe(true) await page.getByRole('heading', { level: 1 }).click() await expect.poll(() => isOpen(page)).toBe(false) - await expect(page.getByText('open: false')).toBeVisible() + await expect(trigger).not.toHaveAttribute('data-popup-open') }) test('inside a modal dialog the menu opens above it, an item is clickable, and Escape closes the menu before the dialog', async ({ page }) => { - const { item } = await boot(page) + const { item, selected } = await boot(page) await page.getByRole('button', { name: 'Open Dialog' }).click() await expect.poll(() => isModal(page)).toBe(true) const inner = page.getByRole('button', { name: 'Open Inner Menu' }) await inner.click() await expect(page.getByRole('menu', { name: 'Open Inner Menu' })).toBeVisible() await item('Inner Settings').click() - await expect(page.getByText('selected: Inner Settings')).toBeVisible() + await expect(selected).toHaveText(/Inner Settings$/) await expect(page.getByRole('menu', { name: 'Open Inner Menu' })).toBeHidden() expect(await isModal(page)).toBe(true) await inner.click() diff --git a/packages/ui/test/browser/support.mjs b/packages/ui/test/browser/support.mjs index 187328d2..8be97679 100644 --- a/packages/ui/test/browser/support.mjs +++ b/packages/ui/test/browser/support.mjs @@ -4,12 +4,12 @@ export const parts = (page) => ({ trigger: page.getByRole('button', { name: 'Open Dialog' }), popup: page.locator('main dialog'), close: page.getByRole('button', { name: 'Close', exact: true }), - fromParent: page.getByRole('button', { name: 'Open from the Parent' }), }) export const boot = async (page) => { await page.goto('/dialog') await expect(parts(page).trigger).toBeVisible() return parts(page) } +export const pick = (page, row, value) => page.getByRole('group', { name: row, exact: true }).getByRole('button', { name: value, exact: true }).click() export const isModal = (page) => page.evaluate(() => document.querySelector('dialog:modal') !== null) export const focusInside = (page) => page.evaluate(() => document.querySelector('main dialog').contains(document.activeElement)) From 69a39616e60238c26f0c97d5f9ff593175e82ff7 Mon Sep 17 00:00:00 2001 From: Philip Lindberg Date: Fri, 25 Sep 2026 09:57:10 +0100 Subject: [PATCH 2/5] style: a component body packs its declarations and paragraphs its logic A one-line prop, state, offer, accept, or computed runs straight into the member below it and into render; a method, an effect, or any member with an indented body is followed by a blank line. AGENTS.md states the rule, and the fourteen sites that broke it are brought in line. --- AGENTS.md | 1 + packages/sites/demos/cart/app/components/button.rip | 2 -- packages/tui/bench/keys.rip | 1 + packages/tui/examples/counter.rip | 1 + packages/tui/examples/files.rip | 1 - packages/tui/examples/ink/counter.rip | 1 - packages/tui/examples/ink/use-focus.rip | 1 - packages/tui/test/events.rip | 2 ++ packages/tui/test/events/ink.rip | 2 ++ packages/tui/tui.rip | 1 + packages/ui/demo/app/components/icon.rip | 1 - packages/ui/dialog.rip | 2 ++ 12 files changed, 10 insertions(+), 6 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index fe740569..ef281a47 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -312,6 +312,7 @@ alters surface syntax updates ALL THREE in the same change. why a trade-off was taken. Never narrate what code obviously does, never reference project history or future plans. A comment that states a stale fact is a bug (rule 8 applies to comments). +- **A component body packs its declarations and paragraphs its logic.** A one-line prop, state, offer, accept, or computed runs straight into the member below it and into `render`. A method, an effect, or any member with an indented body is followed by a blank line, so `render` takes a blank after logic and none after declarations. - **Names come from the established vocabulary**: SourceFile, TokenTape, NodeStore, RoleStore, MappingStore, CodeBuilder, semanticKind, role, `_` (structural constant), grammarRef (null for literal-sourced diff --git a/packages/sites/demos/cart/app/components/button.rip b/packages/sites/demos/cart/app/components/button.rip index c828274d..cc47bd75 100644 --- a/packages/sites/demos/cart/app/components/button.rip +++ b/packages/sites/demos/cart/app/components/button.rip @@ -3,7 +3,6 @@ export Button = component extends button @outline?: boolean @link?: boolean @loading?: boolean - render button aria-busy: loading @@ -19,7 +18,6 @@ export Button = component extends button export ButtonLink = component extends a @variant?: 'primary' | 'secondary' := 'primary' @outline?: boolean - render a role: 'button' diff --git a/packages/tui/bench/keys.rip b/packages/tui/bench/keys.rip index b1f4d9d9..00bb4e17 100644 --- a/packages/tui/bench/keys.rip +++ b/packages/tui/bench/keys.rip @@ -24,6 +24,7 @@ Select = component when 'ArrowDown' then @at = (@at + 1) % @items.length when 'ArrowUp' then @at = (@at - 1 + @items.length) % @items.length when 'Enter' then @chosen = @items[@at] + render div ref: el, focusable: true, autofocus: true, @keydown: @move, borderStyle: 'round', borderColor: (if el?.focused then 'cyan' else 'gray') for item, n in @items diff --git a/packages/tui/examples/counter.rip b/packages/tui/examples/counter.rip index 640cbda6..1f86d3b9 100644 --- a/packages/tui/examples/counter.rip +++ b/packages/tui/examples/counter.rip @@ -5,6 +5,7 @@ Counter = component pressed: (event) -> @count += 1 if event.key is 'ArrowUp' @count -= 1 if event.key is 'ArrowDown' + render Box @keydown: @pressed, focusable: true, autofocus: true, borderStyle: 'round', paddingX: 1 Text color: 'green', "count #{@count}" diff --git a/packages/tui/examples/files.rip b/packages/tui/examples/files.rip index 0e80c44b..c99c31df 100644 --- a/packages/tui/examples/files.rip +++ b/packages/tui/examples/files.rip @@ -93,7 +93,6 @@ Browser = component pane ~= { flexDirection: 'column', height: tall + 2, overflow: 'hidden', borderStyle: 'round' } paneLeft ~= { ...pane, width: 32, contentOffsetY: top, borderColor: (if list?.focused then 'cyan' else 'gray') } paneRight ~= { ...pane, flexGrow: 1, paddingX: 1, contentOffsetY: lineTop, borderColor: (if view?.focused then 'cyan' else 'gray') } - render Box flexDirection: 'column', @keydown: @any Box flexDirection: 'row', gap: 1 diff --git a/packages/tui/examples/ink/counter.rip b/packages/tui/examples/ink/counter.rip index ae5d0637..dfbc08c7 100644 --- a/packages/tui/examples/ink/counter.rip +++ b/packages/tui/examples/ink/counter.rip @@ -7,7 +7,6 @@ import { run, clock, Text } from 'rip/tui' export Counter = component tick = clock 100 - render Text color: 'green', "#{tick.frame} tests passed" diff --git a/packages/tui/examples/ink/use-focus.rip b/packages/tui/examples/ink/use-focus.rip index efdcd5be..c3656379 100644 --- a/packages/tui/examples/ink/use-focus.rip +++ b/packages/tui/examples/ink/use-focus.rip @@ -11,7 +11,6 @@ import { run, focus, Box, Text } from 'rip/tui' Item = component @label := '' el := null - render span ref: el, focusable: true "#{@label} " diff --git a/packages/tui/test/events.rip b/packages/tui/test/events.rip index 055f589e..2e1fd0e8 100644 --- a/packages/tui/test/events.rip +++ b/packages/tui/test/events.rip @@ -764,6 +764,7 @@ Select =! component when 'ArrowDown' then @at = (@at + 1) % @items.length when 'ArrowUp' then @at = (@at - 1 + @items.length) % @items.length when 'Enter' then @chosen = @items[@at] + render div ref: el, focusable: true, autofocus: true, @keydown: @move, borderStyle: 'round', borderColor: (if el?.focused then 'cyan' else 'gray') for item, n in @items @@ -796,6 +797,7 @@ Input =! component @value = parts.slice(0, -1).join '' else if Array.from(event.key).length is 1 and not event.ctrlKey and not event.altKey and not event.metaKey @value += event.key + render Box focusable: true, autofocus: true, borderStyle: 'single', width: 20, cursor: { x: 1 + Bun.stringWidth(@value), y: 1 }, @keydown: @typed, @paste: ((event) => @value += event.text) Text "#{@value}" diff --git a/packages/tui/test/events/ink.rip b/packages/tui/test/events/ink.rip index 89f138e3..995225f6 100644 --- a/packages/tui/test/events/ink.rip +++ b/packages/tui/test/events/ink.rip @@ -488,6 +488,7 @@ Logger =! component heard: (event) -> @inputs.push (if event.ctrlKey then "Ctrl+#{event.key}" else event.key) event.preventDefault() if @keep + render Box focusable: true, autofocus: true, @keydown: @heard, @paste: ((event) => @pastes.push event.text) Text "log" @@ -617,6 +618,7 @@ InputApp =! component @line = @line.slice 0, -1 else if Array.from(event.key).length is 1 and not event.ctrlKey and not event.altKey and not event.metaKey @line += event.key + render Box focusable: true, autofocus: true, cursor: { x: 2 + line.length, y: 0 }, @keydown: @heard Text "> #{line}" diff --git a/packages/tui/tui.rip b/packages/tui/tui.rip index e8042040..f0f24b3f 100644 --- a/packages/tui/tui.rip +++ b/packages/tui/tui.rip @@ -50,6 +50,7 @@ export Static = component extends div view = live.view view.statics.push el -> view.statics = view.statics.filter (other) -> other isnt el + render div ref: el, display: 'none' slot diff --git a/packages/ui/demo/app/components/icon.rip b/packages/ui/demo/app/components/icon.rip index 4e72f481..c730d056 100644 --- a/packages/ui/demo/app/components/icon.rip +++ b/packages/ui/demo/app/components/icon.rip @@ -10,7 +10,6 @@ export Icon = component @name: IconName @strokeWidth?: number := 2 @classes?: string - render svg viewBox: '0 0 24 24' diff --git a/packages/ui/dialog.rip b/packages/ui/dialog.rip index 228958ff..9177e73b 100644 --- a/packages/ui/dialog.rip +++ b/packages/ui/dialog.rip @@ -111,6 +111,7 @@ export Title = component extends h2 ~> labelledBy = id -> labelledBy = '' + render h2 id: id slot @@ -121,6 +122,7 @@ export Description = component extends p ~> describedBy = id -> describedBy = '' + render p id: id slot From 98ff24a5b05efca2995baa4fcca6bd865eed40cd Mon Sep 17 00:00:00 2001 From: Philip Lindberg Date: Fri, 25 Sep 2026 10:31:20 +0100 Subject: [PATCH 3/5] components: asChild renders the projected element as an extends part's host A caller of a `component extends ` part passes `asChild` with one element as the body, and the part renders that element as its host in place of its own tag: the host line in `_create` forks to the runtime's `_adoptChild`, the slot's append is skipped, and every other line is unchanged, so the line's attributes, listeners, `_inheritedOwn`, rest application, `ref:`, and the setup effects all land on the adopted element. Text, a fragment, a comment, or no body throws at mount naming the part. The flag rides the rest map, is fixed at construction, refuses a container and any update, and is never written as an attribute; a declared prop named `asChild` on an extends component rejects at compile, and the props surface of a tag-extending component carries `asChild?: boolean`. Under HMR a rebuilt child hands its new root to the part that adopted it; the part releases keeping the DOM and rebuilds onto the new element, and a part adopted above rebinds in turn. A patch of an adopting part keeps the host in place. A `style` object on the part's line replaces the child's, since the style writer remembers one object per element, and the docs say so. The rip/ui demo builds every button on one `Button` component with `variant` and `size` props and a `classes` prop, the shape medlabs uses: the nine trigger and close sites become `Part asChild` around it, and `Choice` extends it. A Playwright spec opens Dialog, Drawer, and Menu through it and asserts the same platform facts the existing specs do. The browser bundle is regenerated for the runtime change, and the corpus moves by one line, the host fork on its one extends component. --- dist/@rip/rip.js | 154 +++++-- dist/@rip/rip.min.js | 454 ++++++++++----------- dist/@rip/rip.min.js.br | Bin 184055 -> 184524 bytes docs/HMR.md | 10 + docs/TYPES.md | 2 + packages/ui/README.md | 21 + packages/ui/demo/app/components/button.rip | 21 + packages/ui/demo/app/components/page.rip | 14 +- packages/ui/demo/app/routes/dialog.rip | 11 +- packages/ui/demo/app/routes/drawer.rip | 11 +- packages/ui/demo/app/routes/menu.rip | 21 +- packages/ui/test/browser/aschild.spec.mjs | 81 ++++ packages/vscode/src/translate.js | 1 + src/emitter.js | 48 ++- src/runtime/components.js | 82 +++- src/ts/components.js | 3 + test/corpus/expected/components.js | 2 +- test/rip/components.rip | 53 ++- test/ui/components.test.js | 2 +- test/ui/runtime-components.test.js | 183 +++++++++ 20 files changed, 857 insertions(+), 317 deletions(-) create mode 100644 packages/ui/demo/app/components/button.rip create mode 100644 packages/ui/test/browser/aschild.spec.mjs diff --git a/dist/@rip/rip.js b/dist/@rip/rip.js index af2131ef..801e3374 100644 --- a/dist/@rip/rip.js +++ b/dist/@rip/rip.js @@ -9068,7 +9068,8 @@ var COMPONENT_RUNTIME_FIELDS = new Set([ "_initFailed", "_hmrOrphans", "_hmrReleasing", - "_hmrPropKeys" + "_hmrPropKeys", + "_asChild" ]); var BINOPS = new Set(["+", "-", "*", "/", "%", "**", "<", ">", "<=", ">=", "==", "!=", "&&", "||", "??", "<<", ">>", ">>>", "&", "^", "|"]); var ASSIGNS = new Set(["=", "void-assign", "+=", "-=", "*=", "/=", "%=", "**=", "&&=", "||=", "??=", "<<=", ">>=", ">>>=", "&=", "^=", "|="]); @@ -16158,6 +16159,9 @@ ${pad ?? ""}`); } members.set("rest", "rest"); memberReactive.add("rest"); + if (declaredProps.includes("asChild")) { + throw this.positionedError(seen.get("asChild"), "emitter: a component that extends a host cannot declare a prop named 'asChild' — `asChild: true` at a " + "call site renders the projected element as the host, and the key is reserved beside key, ref, and children", node); + } } if (this.scopes.length === 1 && typeof this._componentName === "string") { const prior = this.moduleComponentNames.get(this._componentName); @@ -17142,9 +17146,13 @@ ${pad ?? ""}`); } return t; } + isInheritedTarget(tag) { + const R = this.rstate; + return R.frame.extendsTag === tag && R.sink.kind === "class" && R.frame.inheritedBound !== true; + } bindInheritedTarget(node, tag, el, own) { const R = this.rstate; - if (R.frame.extendsTag !== tag || R.sink.kind !== "class" || R.frame.inheritedBound === true) + if (!this.isInheritedTarget(tag)) return; R.frame.inheritedBound = true; this.renderLine(node, () => this.b.emit(`this._inheritedEl = ${el}`)); @@ -17197,11 +17205,16 @@ ${pad ?? ""}`); const isSvg = R.svgDepth > 0 || SVG_ONLY_TAGS.has(tag); if (isSvg) R.svgEls.add(el); + const adopts = this.isInheritedTarget(tag); this.renderLine(node, () => { + const self = this.renderSelf ?? "this"; + this.b.emit(`${el} = `); + if (adopts) + this.b.emit(`${self}._asChild ? ${self}._adoptChild() : `); if (isSvg) - this.b.emit(`${el} = document.createElementNS('${Emitter.SVG_NS}', `); + this.b.emit(`document.createElementNS('${Emitter.SVG_NS}', `); else - this.b.emit(`${el} = document.createElement(`); + this.b.emit(`document.createElement(`); const span = this.emitQuotedPrimitive(tag); if (span !== null && surfaceableTag(tag, isSvg)) { this.intrinsics.push({ start: span[0], end: span[1], kind: "tag", tag, svg: isSvg }); @@ -17348,6 +17361,12 @@ ${pad ?? ""}`); this._textOwner = prevOwner; } } + renderAppend(el, v) { + this.renderLine(null, () => { + const guard = v === this.rstate.frame?.asChildSlot ? `if (!${this.renderSelf ?? "this"}._asChild) ` : ""; + this.b.emit(`${guard}${el}.appendChild(${v})`); + }); + } renderChildrenOf(el, args, owner) { for (let k = 0;k < args.length; k++) { const arg = args[k]; @@ -17365,14 +17384,14 @@ ${pad ?? ""}`); const v = this.renderNode(child); if (v == null) continue; - this.renderLine(null, () => this.b.emit(`${el}.appendChild(${v})`)); + this.renderAppend(el, v); } } } else if (block) { if (!this.renderOwnLineWord(el, block, [block], 0, owner)) { const v = this.renderNode(block); if (v != null) - this.renderLine(null, () => this.b.emit(`${el}.appendChild(${v})`)); + this.renderAppend(el, v); } } continue; @@ -17405,12 +17424,12 @@ ${pad ?? ""}`); } if (isHtmlTag2(base || "div")) { const v = this.renderNode(arg); - this.renderLine(null, () => this.b.emit(`${el}.appendChild(${v})`)); + this.renderAppend(el, v); continue; } if (isComponentName(base) && base === arg) { const v = this.renderChildComponent(arg, arg, []); - this.renderLine(null, () => this.b.emit(`${el}.appendChild(${v})`)); + this.renderAppend(el, v); continue; } if (/^[A-Za-z_$][\w$]*$/.test(arg) && this.resolveBareRead(arg) === null && !this.inScope(arg)) { @@ -17448,7 +17467,7 @@ ${pad ?? ""}`); } if (arg != null) { const v = this.renderNode(arg); - this.renderLine(null, () => this.b.emit(`${el}.appendChild(${v})`)); + this.renderAppend(el, v); } } } @@ -17527,6 +17546,8 @@ ${pad ?? ""}`); } this.claimSlot(markNode); const v = this.newRenderVar("slot"); + if (this.rstate.frame.extendsTag !== null && this.rstate.sink.kind === "class") + this.rstate.frame.asChildSlot = v; const slotSpan = this.ts ? this.wordSpanIn("slot", markNode ?? this.rstate.node) : null; this.renderLine(markNode, () => { const c = this.childrenReadText(); @@ -26775,6 +26796,29 @@ function __splitProps(ctor, props) { } return rest; } +function __asChildOf(ctor, rest) { + const value = rest?.asChild; + if (value == null || value === false) + return false; + if (value === true) + return true; + const shape = typeof value === "object" && typeof value.read === "function" ? "a reactive value" : `${typeof value} ${String(value)}`; + throw new Error(`${ctor.name || "component"}: asChild takes true or nothing, fixed at construction — got ${shape}`); +} +function __projected(children) { + return children != null && typeof children === "object" && typeof children.read === "function" ? children.value : children; +} +function __describeProjection(node) { + if (node == null) + return "nothing"; + if (node.nodeType === 3) + return "text"; + if (node.nodeType === 8) + return "a comment"; + if (node.nodeType === 11) + return `a fragment of ${node.childNodes.length} nodes`; + return typeof node === "object" ? "a value that is no node" : `${typeof node} ${String(node)}`; +} class __Component { constructor(props = {}) { @@ -26822,6 +26866,7 @@ class __Component { if (this.constructor.__extends != null) { this._rest = rest ?? {}; this.rest = __state(__restView(this._rest)); + this._asChild = __asChildOf(this.constructor, this._rest); } this._frame = __ownerFrame({ nested: false }); const prevC = __pushComponent(this); @@ -26855,9 +26900,33 @@ class __Component { const current = this.children; if (current != null && typeof current === "object" && typeof current.read === "function" && "value" in current) { current.value = value; - return; + } else { + this.children = value; } - this.children = value; + if (this._asChild && this._state === "mounted") + this._rehost(); + } + _adoptChild() { + const child = __projected(this.children); + if (child != null && child.nodeType === 1) + return child; + throw new Error(`${this.constructor.name || "component"}: asChild renders the projected element as the host, so the body must ` + `be exactly one element — got ${__describeProjection(child)}`); + } + _rehost() { + const prev = this._inheritedEl; + this._hmrRelease(false); + if (!this._hmrRebind()) + return; + if (!this._mountCreate()) + return; + this._mountSetup(); + this._rehostAbove(prev); + } + _rehostAbove(prev) { + const above = this._parent; + if (prev == null || this._root === prev || !above?._asChild || above._state !== "mounted" || above._inheritedEl !== prev) + return; + above._setChildren(this._root); } _updateProp(name, value) { if (this._state === "failed" || this._state === "unmounted") @@ -26882,6 +26951,9 @@ class __Component { return; if (this._state === "failed" || this._state === "unmounted") return; + if (key === "asChild") { + throw new Error(`${this.constructor.name || "component"}: asChild is fixed at construction and takes no update`); + } this._rest || (this._rest = {}); if (value == null) delete this._rest[key]; @@ -26906,7 +26978,7 @@ class __Component { _applyInheritedProp(host, key, value) { if (this._state === "failed" || this._state === "unmounted") return; - if (!host || key === "key" || key === "ref" || key === "children" || key.startsWith("__bind_")) + if (!host || key === "key" || key === "ref" || key === "children" || key === "asChild" || key.startsWith("__bind_")) return; if (this._inheritedOwn?.has(key)) return; @@ -27179,7 +27251,7 @@ class __Component { this._detachDOM(report, removeDOM); this._target = null; } - _hmrRelease() { + _hmrRelease(removeDOM = true) { const report = (label, error) => console.error(`[Rip] ${label} error:`, error); try { if (this.beforeUnmount) @@ -27194,7 +27266,7 @@ class __Component { } finally { this._hmrReleasing = false; } - this._detachDOM(report, true); + this._detachDOM(report, removeDOM); this._frame = __ownerFrame({ nested: false }); this._state = "new"; } @@ -27239,6 +27311,7 @@ class __Component { if (this.constructor.__extends != null) { this._rest = rest ?? {}; this.rest.value = __restView(this._rest); + this._asChild = __asChildOf(this.constructor, this._rest); } } _hmrDrainOrphans(report) { @@ -27264,7 +27337,8 @@ class __Component { const first = nodes?.[0] ?? this._root; const insertParent = first?.parentNode ?? null; const insertBefore = nodes?.length ? nodes[nodes.length - 1].nextSibling : this._root ? this._root.nextSibling : null; - this._hmrRelease(); + const keepsHost = this._asChild === true; + this._hmrRelease(!keepsHost); if (!this._hmrRebind()) return this; if (typeof this._create !== "function") { @@ -27274,32 +27348,34 @@ class __Component { } if (!this._mountCreate()) return this; - try { - let parent = insertParent && insertParent.nodeType !== 11 ? insertParent : null; - if (parent && parent.isConnected === false) - parent = null; - if (!parent && typeof target === "string" && typeof document !== "undefined") { - parent = document.querySelector(target); - } else if (!parent && target && target.nodeType !== 11 && target.isConnected !== false) { - parent = target; - } else if (!parent && typeof document !== "undefined") { - parent = document.querySelector("#content") || document.querySelector("#app"); - } - if (parent) { - const before = insertBefore && (typeof parent.contains !== "function" || parent.contains(insertBefore)) ? insertBefore : null; - if (this._nodes) { - for (const n of this._nodes) - parent.insertBefore(n, before); - } else if (this._root) { - parent.insertBefore(this._root, before); - } - this._target = parent.nodeType === 11 ? null : parent; + if (!keepsHost) + try { + let parent = insertParent && insertParent.nodeType !== 11 ? insertParent : null; + if (parent && parent.isConnected === false) + parent = null; + if (!parent && typeof target === "string" && typeof document !== "undefined") { + parent = document.querySelector(target); + } else if (!parent && target && target.nodeType !== 11 && target.isConnected !== false) { + parent = target; + } else if (!parent && typeof document !== "undefined") { + parent = document.querySelector("#content") || document.querySelector("#app"); + } + if (parent) { + const before = insertBefore && (typeof parent.contains !== "function" || parent.contains(insertBefore)) ? insertBefore : null; + if (this._nodes) { + for (const n of this._nodes) + parent.insertBefore(n, before); + } else if (this._root) { + parent.insertBefore(this._root, before); + } + this._target = parent.nodeType === 11 ? null : parent; + } + } catch (error) { + this._failMount(error); + return this; } - } catch (error) { - this._failMount(error); - return this; - } this._mountSetup(); + this._rehostAbove(first); return this; } mount(target) { diff --git a/dist/@rip/rip.min.js b/dist/@rip/rip.min.js index 9341d6da..0b45566a 100644 --- a/dist/@rip/rip.min.js +++ b/dist/@rip/rip.min.js @@ -1,175 +1,175 @@ -var S2=Object.defineProperty;var R2=(e)=>e;function E2(e,t){this[e]=R2.bind(null,t)}var Fe=(e,t)=>{for(var r in t)S2(e,r,{get:t[r],enumerable:!0,configurable:!0,set:E2.bind(t,r)})};class ye{constructor(e,t=""){this.path=t,this.text=e;let r=[0];for(let s=0;sthis.text.length)e=this.text.length;let t=this.lineStarts,r=0,s=t.length-1;while(r<=s){let i=r+s>>1;if(t[i]<=e)r=i+1;else s=i-1}return{line:s,col:e-t[s]}}offsetAt(e,t){if(e<0)return 0;if(e>=this.lineStarts.length)return this.text.length;let r=this.lineStarts[e],s=e+1r&&this.text.charCodeAt(s-1)===13)s--;let i=r+Math.max(0,t);return i>s?s:i}slice(e,t){return this.text.slice(e,t)}}var J={on:!1,n:0},An=()=>{if(J.on=typeof process<"u"&&!!process.env.RIP_COUNT_OPS,J.on)J.n=0;return J.on};class ii extends Error{constructor(e){super(e);this.name="TypeTextError"}}var jt=(e)=>String(e??"").trim(),Be=(e)=>String(e??""),vn=()=>{throw Error("rip: type-text rendering is unavailable in the browser")},On=()=>{throw Error("rip: type-text rendering is unavailable in the browser")},In=()=>()=>!1,$n=()=>new Set;function se(e){return String(e).replace(/([a-z0-9])([A-Z])/g,"$1_$2").toLowerCase()}function ni(e){return String(e).replace(/_([a-z])/g,(t,r)=>r.toUpperCase())}function si(e){return se(e)+"_id"}function tt(e){if(typeof e!=="string"||!/^[a-z][a-zA-Z0-9]*$/.test(e))return!1;if(/[A-Z]{2,}/.test(e))return!1;return!0}function ai(e){if(typeof e!=="string"||!/^[A-Z][a-zA-Z0-9]*$/.test(e))return!1;if(/[A-Z]{2,}/.test(e))return!1;return!0}function k2(e){return typeof e==="string"&&/^[a-z_][a-z0-9_]*$/.test(e)}function T2(e){return typeof e==="string"&&e.length>0&&!/[\u0000-\u001f\u007f".]/.test(e)}var oi={__proto__:null,mixin:"target",times:"none",softDelete:"none",belongsTo:"target",hasOne:"target",hasMany:"target",index:"columns",unique:"columns",idStart:"int",table:"name",tableWas:"name",primary:"field"},Dn=["idStart","table","tableWas","primary","times","softDelete"],xn=["belongsTo","hasOne","hasMany"],li={__proto__:null,column:"literal",was:"column"},Pn={__proto__:null,as:"property",foreignKey:"column",through:"model",targetKey:"column"};function ci(e,t,r){if(typeof r!=="string"||!r.length)return"'"+t+"' requires a non-empty string";if(e==="property"&&!tt(r))return"'"+t+"' is a property name — canonical camelCase, e.g. {"+t+": author}";if(e==="model"&&!ai(r))return"'"+t+"' is a model name — canonical PascalCase, e.g. {"+t+": Membership}";if(e==="column"&&!k2(r))return"'"+t+"' is a column name Rip generates — lowercase, digits and underscores "+"only, e.g. {"+t+': "author_id"}';if(e==="literal"&&!T2(r))return"'"+t+"' is a database column name — any spelling the database uses, but with "+"no dots, double quotes, or control characters";return null}var w2=new Set(["input","shape","mixin","enum","union","model"]);var _2=new Set(["beforeValidation","afterValidation","beforeSave","afterSave","beforeCreate","afterCreate","beforeUpdate","afterUpdate","beforeDestroy","afterDestroy","afterCommit","afterRollback"]),Cn=new Set(["integer","number","boolean","date","datetime"]),N2={__proto__:null,id:"integer",int:"integer",whole:"integer",float:"number",money:"integer",money_even:"integer",cents:"integer",decimal:"string",bool:"boolean",truthy:"boolean",falsy:"boolean",json:"json",hash:"json",array:"json",ids:{type:"integer",array:!0},string:"string",text:"string",name:"string",address:"string",date:"string",time:"string",time12:"string",email:"email",state:"string",zip:"zip",zipplus4:"string",ssn:"string",sex:"string",phone:"string",username:"string",ip:"string",mac:"string",url:"url",color:"string",uuid:"uuid",semver:"string",slug:"string"},A2=new Set(["string","email","url","phone","zip"]),v2=new Set(["TERMINATOR","INDENT","OUTDENT","=","COMPOUND_ASSIGN","RETURN","THROW","YIELD","AWAIT","EXPORT",",","(","[","{","CALL_START","PARAM_START","INDEX_START","->","=>",":","WHEN","LEADING_WHEN","THEN","IF","UNLESS","UNARY","UNARY_MATH"]),Ln=new Set(["defaultMaxString"]),L1=(e)=>e&&(e.kind==="IDENTIFIER"||e.kind==="PROPERTY"),rt=(e)=>e&&typeof e.value==="string"&&/^[a-z]+$/.test(e.value)&&(e.kind===e.value.toUpperCase()||e.kind==="LEADING_WHEN"||e.kind==="RELATION"||e.kind==="STATEMENT"),O2=(e)=>`__${e}__behavior`,H1=(e,t,r=!1)=>{if(e[t]?.kind!==":")return null;let s=e[t+1];if(!s||s.spaced)return null;if(L1(s)||r&&/^[a-z]+$/.test(s.value)&&s.kind===s.value.toUpperCase())return s;return null};function I2(e,t){if(typeof e?.start!=="number")throw e;t(e)}function Un(e,t,r,s,i=null){if(r.indexOf("schema")===-1)return;let n=[],a={defaultMaxString:null,tolerate:i},o=0,l=0;while(l0){l+=f;continue}if(x2(e,l,s)){l=P2(e,l,n,a,t,s,r);continue}n.push(c),l++}e.length=0;for(let c of n)e.push(c)}function $2(e,t,r,s,i){let n=e[t];if(!n||n.kind!=="IDENTIFIER"||n.value!=="schema")return 0;if(e[t+1]?.kind!==".")return 0;let a=e[t+2];if(!a||a.kind!=="PROPERTY")return 0;if(e[t+3]?.kind!=="=")return 0;let o=e[t-1];if(o&&o.kind!=="TERMINATOR"&&o.kind!=="INDENT"&&o.kind!=="OUTDENT")return 0;let l=a.value;if(!Ln.has(l))i(`unknown schema pragma 'schema.${l}' — known pragmas: ${[...Ln].join(", ")}`,a.start);if(s>0)i(`schema pragma 'schema.${l}' must be declared at file top level — inside a nested block it would leak into later top-level schemas`,a.start);let c=e[t+4];if(!c||c.kind!=="NUMBER")i(`pragma 'schema.${l}' requires a number literal — example: schema.${l} = 100`,(c??a).start);let f=Number(c.value);if(!Number.isFinite(f)||f<0||!Number.isInteger(f))i(`pragma 'schema.${l}' expects a non-negative integer (got ${c.value}); use 0 to disable`,c.start);r[l]=f===0?null:f;let h=t+5;if(e[h]?.kind==="TERMINATOR")h++;return h-t}var Vn=(e,t)=>{if(e[t]?.kind==="SYMBOL")return e[t];return e[t]?.kind===":"&&e[t].spaced?H1(e,t,!0):null},Wn=(e,t)=>e[t]?.kind==="SYMBOL"?1:2,D2=(e,t)=>{if(e[t]?.kind!==","||!L1(e[t+1])||e[t+1].value!=="on")return t;let r=t+2;if(e[r]?.kind===":")r++;while(r")n("inline schema bodies do not support '->' (methods/hooks/scopes/transforms) — use the indented form",R.start);else if(w===0&&(T==="EFFECT"||T==="!>"))n(`inline schema bodies do not support '${R.value}' (${T==="EFFECT"?"computed getters":"eager-derived fields"}) — use the indented form`,R.start);S++}while(S>b&&e[S-1].kind==="TERMINATOR")S--;if(d=e.slice(b,S),p=S,!d.length)n("inline schema body is empty — add '; field; …' entries or switch to the indented form",o.start);m=d[d.length-1].end}else{if(e[f]?.kind==="TERMINATOR")f++;if(e[f]?.kind!=="INDENT")n(`expected an indented schema body after 'schema${c?" :"+l:""}'`,o.start);let b=f,S=0,w=-1;for(let R=b;Rb.kind==="SYMBOL"?[{...b,kind:":",value:":",end:b.start+1},{...b,kind:"IDENTIFIER",start:b.start+1,spaced:!1}]:[b]);let g=C2(l,c,d,{schemaStart:o.start,defaultMaxString:s.defaultMaxString,tolerate:s.tolerate??null},n);if(u)g.adapterTokens=u;return g.start=(c??d[0]).start,g.end=m,g.primitiveSpans=[c,...d].filter((b)=>b&&typeof b.value==="string"&&/^[A-Za-z_$][\w$]*$/.test(b.value)).map((b)=>({value:b.value,sourceStart:b===c&&b.end-b.start===b.value.length+1?b.start+1:b.start,sourceEnd:b.end})),r.push({id:i(),kind:"SCHEMA",value:"schema",start:o.start,end:o.end,spaced:o.spaced}),r.push({id:i(),kind:"SCHEMA_BODY",value:g,start:g.start,end:g.end,spaced:!0}),p}function C2(e,t,r,s,i){let n=[],a=L2(r);if(e==="input"&&!t&&a.length>0&&H1(a[0],0))e="enum";if(e==="enum")for(let o of a)q2(o,n,i);else if(e==="union"){for(let c of a)z2(c,n,i);let o=n.filter((c)=>c.tag==="directive"&&c.name==="on").length,l=n.filter((c)=>c.tag==="union-member");if(o!==1)i(o===0?":union requires an '@on :field' discriminator — untagged unions are not supported":`:union takes exactly one '@on :field' discriminator (got ${o})`,s.schemaStart);if(l.length<2)i(`:union needs at least two constituent schemas (got ${l.length})`,s.schemaStart)}else{for(let o of a)M2(e,o,n,s,i);if(e==="model")U2(n,i);else for(let o of n){if(o.tag==="scope"||o.tag==="defaultScope")i(`:${e} schemas don't accept query scopes — '@${o.tag==="scope"?"scope":"defaultScope"}' is :model-only`,o.start);if(e==="mixin"&&(o.tag==="method"||o.tag==="computed"||o.tag==="derived"))i(`:mixin schemas are fields-only — '${o.name}' is a ${o.tag}; move it to a :shape or :model`,o.start);if(e==="mixin"&&o.tag==="ensure")i(":mixin schemas don't accept @ensure refinements — move the invariant to a :shape or :model that composes this mixin",o.start);if(e==="input"&&(o.tag==="method"||o.tag==="computed"))i(`:input schemas are fields-only — '${o.name}' is a ${o.tag}; use :shape or :model if you need behavior`,o.start);if(o.tag==="directive"&&o.name!=="mixin")i(`:${e} schemas only accept '@mixin Name'${e==="input"?" and '@ensure'":""} — '@${o.name}' is ${["times","softDelete","belongsTo","hasMany","hasOne","unique","index","idStart","table","tableWas","primary"].includes(o.name)?":model-only":"not a schema directive"}`,o.start)}}return{kind:e,entries:n,toJSON(){return this.kind}}}function L2(e){let t=[],r=[],s=0;for(let i of e){if(i.kind==="INDENT")s++;if(i.kind==="OUTDENT")s--;if(i.kind==="TERMINATOR"&&s===0){if(r.length)t.push(r),r=[];continue}r.push(i)}if(r.length)t.push(r);return t}function M2(e,t,r,s,i){let n=t[0];if(!n)return;if(n.kind==="@"){let U=t[1];if(!L1(U))i("expected a directive name after '@'",n.start);let r1=U.value;if(r1==="ensure"){let I=2,s1=!1;if(t[2]?.kind==="DAMMIT"&&!t[2].spaced)s1=!0,I=3;let e1=W2(t.slice(I),n,i);for(let K of e1)r.push({tag:"ensure",name:"ensure",message:K.message,field:K.field,fieldStart:K.fieldStart,async:s1,paramTokens:K.paramTokens,bodyTokens:K.bodyTokens,start:n.start});return}if(r1==="scope"){let I=B2(t.slice(2),n,i);r.push({tag:"scope",name:I.name,paramTokens:I.paramTokens,bodyTokens:I.bodyTokens,start:n.start});return}if(r1==="defaultScope"){let I=Hn(t.slice(2),n,"@defaultScope",i);if(I.paramTokens.length)i("@defaultScope takes no parameters — write '@defaultScope -> @where(...)'",n.start);r.push({tag:"defaultScope",name:"defaultScope",paramTokens:[],bodyTokens:I.bodyTokens,start:n.start});return}let Q=null,l1=t.slice(2);if(r1==="mixin"){let I=l1[0];if(!L1(I))i("@mixin requires a target name — '@mixin Timestamps'",n.start);if(l1.length>1)i("@mixin takes exactly one schema name",l1[1].start);Q=[{target:I.value}]}r.push({tag:"directive",name:r1,args:Q,argTokens:l1,start:n.start,nameStart:U.start});return}if(n.kind==="PROPERTY"){if(s.tolerate){try{Mn(e,n,t,r,i)}catch(U){I2(U,s.tolerate)}return}Mn(e,n,t,r,i);return}if(n.kind!=="IDENTIFIER"&&!rt(n))i(`unexpected ${n.kind} at schema top level — allowed: fields ('name! type'), directives ('@name'), methods ('name: -> body'), computed getters ('name: ~> body')`,n.start);let a=n.value;if(t[1]?.kind===":")i(`schema fields use 'name type' (space, no colon) — got '${a}:'`,t[1].start);let o=[],l=1;while(l{if(t[U]?.kind==="STRING"&&t[U].value.startsWith('"'))return{value:JSON.parse(t[U].value),bracketed:!1,start:t[U].start,end:t[U].end,next:U+1};if((t[U]?.kind==="["||t[U]?.kind==="INDEX_START")&&t[U+1]?.kind==="STRING"&&t[U+1].value.startsWith('"')&&(t[U+2]?.kind==="]"||t[U+2]?.kind==="INDEX_END"))return{value:JSON.parse(t[U+1].value),bracketed:!0,start:t[U].start,end:t[U+2].end,next:U+3};return null},S=void 0,w=null,R=b(l);if(m?.kind==="UNARY_MATH"&&m.value==="~"){let U=H1(t,l+1),r1=t[l+1];if(U){h=!0,u=U.value;let Q=N2[u];if(Q&&typeof Q==="object")c=Q.type,d=!0;else c=Q||"any";l+=3}else if(r1?.kind==="IDENTIFIER"&&!r1.spaced){if(!Cn.has(r1.value))i(`'~${r1.value}' is not coercible — built-in coercion exists for: ${[...Cn].join(", ")}; named coercers use a symbol ('~:${r1.value}'); otherwise write a transform ('${a}, -> …')`,r1.start);h=!0,c=r1.value,l+=2}else i("'~' in the type slot marks coercion and needs a type name ('~integer', '~date', …) or a registered coercer symbol ('~:ssn', …)",m.start);p=!0}else if(m?.kind==="IDENTIFIER")c=m.value,p=!0,l++;else if(R&&(!R.bracketed||t[R.next]?.kind==="|")){f=[];let U=(r1)=>{if(f.push(r1.value),r1.bracketed){if(w)i(`field '${a}' brackets more than one union member as its default — a field has one default`,r1.start);S=r1.value,w={start:r1.start,end:r1.end}}};U(R),l=R.next,p=!0;while(t[l]?.kind==="|"){let r1=b(l+1);if(!r1)i(`literal unions contain string literals only — '${t[l+1]?.kind??""}' is not allowed as a union member; use the '?' modifier for nullability`,t[l].start);U(r1),l=r1.next}c="literal-union"}let T=!1,F=(U)=>(t[U]?.kind==="["||t[U]?.kind==="INDEX_START")&&(t[U+1]?.kind==="]"||t[U+1]?.kind==="INDEX_END");if(F(l)){if(T=!0,l+=2,F(l))i(`field '${a}' — nested array types ('${c}[][]') are not supported: one '[]' validates element-wise; use 'json' or a '-> transform' for deeper nesting`,t[l].start)}if(h&&T)i(`coercion ('~${c}') does not apply to array types — coerce per-element with a transform instead`,m.start);if(d)T=!0;if(T&&f)i("array-of-literal-union is not supported — use 'string[]' for an array of strings",m.start);let L=m?.kind==="UNARY_MATH"&&m.value==="~"?t[g+1]:m,P=p?[L.start,t[l-1].end]:null,N=t.slice(l);if(p&&N[0]?.kind==="->")i(`field '${a}' has a transform after the type; a comma is required before '->' — write '${a} ${c}, -> …'`,N[0].start);let D=null,O=void 0,W=!1;if(w)O=S,W=!0;let H={};if(w)H.start=w.start,H.end=w.end;let G=null,k=null,v=null,j=!1,X=!1;if(N.length>0){if(N[0]?.kind===",")N=N.slice(1);if(N.length>=2&&N[0].kind==="INDENT"){let r1=0,Q=-1;for(let l1=0;l1"){let I=el(Q),s1=Q[0].kind==="@"&&I===2;if(I>0&&!s1)i(`field '${a}' has a transform after other content; a comma is required before '->'`,Q[I].start);if(!s1){while(Q.length&&(Q[Q.length-1].kind==="OUTDENT"||Q[Q.length-1].kind==="TERMINATOR"))Q=Q.slice(0,-1);if(!Q.length)continue}}let l1=Q[0];if(l1.kind==="["||l1.kind==="INDEX_START"){if(W)i(`field '${a}' has more than one '[…]' default bracket`,l1.start);O=Z2(Q,a,i,H),W=!0}else if(l1.kind==="{"){if(e!=="model"&&e!=="mixin")i(`field attrs ('{…}') are persistence metadata — :model/:mixin-only ('{was: "old_column"}' annotates a column rename)`,l1.start);if(v)i(`field '${a}' has more than one '{…}' attrs bracket`,l1.start);v=j2(Q,a,i)}else if(X2(Q)){if(D)i(`field '${a}' has more than one range constraint — one 'min..max' per field`,l1.start);D=J2(Q,a,i)}else if(l1.kind==="REGEX"&&Q.length===1){if(G)i(`field '${a}' has more than one regex constraint`,l1.start);G=Q2(l1,i)}else if(l1.kind==="->"){if(r1!==U.length-1)i(`transform '-> …' must be the last element on the field line for '${a}'`,l1.start);k=Q.slice(1)}else if(l1.kind==="@"){let I=L1(Q[1])?Q[1].value:null;if(e!=="model"&&e!=="mixin")i(`inline '@${I??""}' on field '${a}' is persistence metadata — :model/:mixin-only ('@unique' marks single-column uniqueness)`,l1.start);if(Q.length>2&&Q[2].kind==="->"){if(r1!==U.length-1)i(`transform '-> …' must be the last element on the field line for '${a}'`,Q[2].start);k=Q.slice(3),Q=Q.slice(0,2)}if(Q.length===2&&I==="unique"){if(j)i(`field '${a}' has more than one '@unique'`,l1.start);j=!0}else if(Q.length===2&&I==="primary"){if(e!=="model")i(`inline '@primary' on field '${a}' is :model-only — a mixin cannot declare the primary key`,l1.start);if(X)i(`field '${a}' has more than one '@primary'`,l1.start);X=!0}else i(`unknown inline attribute '@${I??""}' on field '${a}' — the inline attributes are '@unique' and '@primary'`,l1.start)}else i(`unexpected trailer for field '${a}' — expected '[…]' default, '/regex/', 'min..max' range, or '-> transform'`,l1.start)}}if(h&&k)i(`field '${a}' has both '~${c}' coercion and a '->' transform — a transform replaces coercion; coerce inside it instead`,n.start);let x={};if(D){if(D.min!==void 0)x.min=D.min;if(D.max!==void 0)x.max=D.max;if(D.min===void 0&&x.min===void 0&&o.includes("!"))x.min=1}if(G)x.regex=G;if(W)x.default=O;if(f&&x.default!==void 0&&!f.includes(x.default))i(`field '${a}' defaults to ${JSON.stringify(x.default)}, which is not a member of its literal union (${f.map((U)=>JSON.stringify(U)).join(" | ")})`,n.start);if(s.defaultMaxString!=null&&!G&&!f&&A2.has(c)&&x.max===void 0)x.max=s.defaultMaxString;if(x.min!==void 0&&x.max!==void 0&&x.min>x.max)i(`field '${a}' would have impossible constraints min=${x.min} > max=${x.max} after sugar is applied — write an explicit range or drop the conflicting pragma`,n.start);let Z=x.min!==void 0||x.max!==void 0||x.default!==void 0||x.regex!==void 0?x:null;r.push({tag:"field",name:a,modifiers:o,typeName:c,array:T,literals:f,coerce:h,coercer:u,constraints:Z,transformTokens:k,unique:j,primary:X,attrs:v,start:n.start,typeSpan:P,defaultSpan:H.start===void 0?null:[H.start,H.end]})}function fi(e,t,r,s){if(e[e.length-1]?.kind!=="}")s(`${r} — the '{…}' options bracket never closes`,e[0].start);let i=e.slice(1,-1).filter((a)=>a.kind!=="TERMINATOR"&&a.kind!=="INDENT"&&a.kind!=="OUTDENT"),n={};for(let a of Ie(i)){if(!a.length)continue;let o=a[0];if(!L1(o))s(`${r} options must be '{key: value}' pairs — got ${o.kind}`,o.start);let l=o.value,c=t[l];if(c===void 0)s(`unknown ${r} option '${l}' — known options: ${Object.keys(t).join(", ")}`,o.start);if(l in n)s(`${r} repeats option '${l}'`,o.start);let f=1;if(a[f]?.kind===":")f++;let h=a.slice(f);if(h.length!==1)s(`${r} option '${l}' takes a single value`,(h[0]??o).start);let u=h[0],d=c==="property"||c==="model",p;if(d){if(!L1(u)&&!rt(u)){let g=u.kind==="STRING"&&u.value.startsWith('"')?JSON.parse(u.value):null,b=g&&!ci(c,l,g)?g:c==="model"?"Membership":"author";s(`${r} option '${l}' names ${c==="model"?"a model":"a property"}, `+`so it is written BARE — '{${l}: ${b}}', not ${u.kind==="STRING"?u.value:`a ${u.kind}`}. Quoting would name a database identifier, which is a different thing`,u.start)}p=u.value}else{if(u.kind!=="STRING"||!u.value.startsWith('"'))s(`${r} option '${l}' names a database column, so it is QUOTED — `+`'{${l}: "${L1(u)?se(u.value):"author_id"}"}'. A bare name would be a Rip name, which is a different thing`,u.start);p=JSON.parse(u.value)}let m=ci(c,l,p);if(m)s(`${r} option ${m}; got '${p}'`,o.start);n[l]=p}if(!Object.keys(n).length)s(`${r} has an empty '{…}' options bracket`,e[0].start);return n}function j2(e,t,r){return fi(e,li,`field '${t}'`,r)}function F2(e,t,r){let s=fi(e,Pn,`@${t}`,r);if(s.through&&t==="belongsTo")r("@belongsTo option 'through' is for @hasMany/@hasOne — a @belongsTo holds its key in its own row, so it has nothing to read through",e[0].start);if(s.targetKey&&!s.through)r(`@${t} option 'targetKey' names a column on the join model, so it requires 'through' — '{through: Membership, targetKey: "team_id"}'`,e[0].start);return s}function B2(e,t,r){if(!e.length)r("@scope requires ':name, -> body' (or ':name, (args) -> body')",t.start);let s=H1(e,0);if(!s)r("@scope name must be a :symbol — '@scope :active, -> @where(active: true)'",e[0].start);let i=s.value,n=e[2],a=n&&!n.spaced&&n.start===s.end&&(n.value==="!"||n.value==="?");if(a||!/^[a-z][a-zA-Z0-9]*$/.test(i))r(`@scope name ':${i}${a?n.value:""}' must be a lowercase-first alphanumeric identifier — scopes chain as query-builder methods`,s.start);let o=e.slice(2);if(o[0]?.kind===",")o=o.slice(1);if(!o.length)r(`@scope :${i} is missing its body — '@scope :${i}, -> @where(...)'`,s.start);let l=Hn(o,s,`@scope :${i}`,r);return{name:i,paramTokens:l.paramTokens,bodyTokens:l.bodyTokens}}function Hn(e,t,r,s){if(!e.length)s(`${r}: expected '-> body' or '(args) -> body'`,t.start);let i=[],n=0,a=e[0];if(a.kind==="("||a.kind==="PARAM_START"||a.kind==="CALL_START"){let c=1;n=1;while(n0){let f=e[n].kind;if(f==="("||f==="PARAM_START"||f==="CALL_START")c++;if(f===")"||f==="PARAM_END"||f==="CALL_END"){if(c--,c===0){n++;break}}i.push(e[n]),n++}if(c!==0)s(`${r}: unclosed '(' in parameters`,a.start)}let o=e[n];if(o?.kind!=="->")s(`${r}: expected '->' ${i.length?"after parameters":"to start the body"}`,(o??t).start);let l=e.slice(n+1);if(!l.length)s(`${r}: function body is empty`,o.start);return{paramTokens:i,bodyTokens:l}}function U2(e,t){let r=new Set;for(let m of e){if(m.tag!=="directive")continue;let g=oi[m.name];if(g===void 0)t(`unknown directive '@${m.name}' on :model — legal: ${Object.keys(oi).map((b)=>"@"+b).join(", ")}, @ensure, @scope, @defaultScope`,m.nameStart??m.start);if(Dn.includes(m.name)){if(r.has(m.name))t(g==="none"?`duplicate '@${m.name}' — declared twice; a :model declares it once`:`duplicate '@${m.name}' — a :model declares it at most once (the second would silently override the first)`,m.nameStart??m.start);r.add(m.name)}if(m.name!=="mixin")m.args=V2(m,g,t)}if(e.some((m)=>m.tag==="directive"&&m.name==="mixin"))return;let i=new Set,n=new Map,a=new Map,o=new Map,l=(m,g,b,S)=>{if(i.has(g))t(`${n.get(g)} and ${b} both own column '${g}' — every table column has exactly one owner`,S);if(a.has(m))t(`${o.get(m)} and ${b} both own property '${m}' (columns '${a.get(m)}' and '${g}') — every property reads exactly one column`,S);i.add(g),n.set(g,b),a.set(m,g),o.set(m,b)},c=e.find((m)=>m.tag==="directive"&&m.name==="primary"),f=e.filter((m)=>m.tag==="field"&&m.primary);if(f.length>1)t(`both '${f[0].name}' and '${f[1].name}' declare '@primary' — a row has one identity`,f[1].start);if(f.length===1){if(c)t(`'@primary ${c.args[0].name}' and inline '@primary' on field '${f[0].name}' are two answers to one question — state it once`,c.start);c={tag:"directive",name:"primary",args:[{name:f[0].name}],start:f[0].start}}let h=c?c.args[0].column??se(c.args[0].name):"id",u=c?c.args[0].name:"id",d=e.find((m)=>m.tag==="field"&&m.name===u)??null,p=!!(c&&d);if(!c&&d)t(`field '${u}' collides with the runtime-managed primary key — a :model's ${u} is sequence-assigned. Drop the declaration, or write '@primary ${u}' to make it a caller-supplied natural key instead`,d.start);if(p){if(!d.modifiers?.includes("!"))t(`the primary key '${u}' is declared optional — a row's identity is never absent; declare it required ('${u}! string')`,d.start);if(d.array)t(`the primary key '${u}' is declared as an array — a primary key is one value`,d.start);let m=e.find((g)=>g.tag==="directive"&&g.name==="idStart");if(m)t(`@idStart seeds the sequence behind a runtime-managed primary key, but '${u}' is declared as a field, which makes it caller-supplied — there is no sequence to seed. Drop @idStart, or drop the field declaration`,m.start);if(c.args[0].column!==void 0&&c.args[0].column!==(d.attrs?.column??se(u)))t(`@primary names column '${c.args[0].column}' but field '${u}' reads a different one — state the column once, on the field`,c.start)}else l(u,h,"the primary key",c?.start??e[0]?.start??0);for(let m of e){if(m.tag!=="field")continue;l(m.name,m.attrs?.column??se(m.name),`field '${m.name}'`,m.start)}for(let m of e){if(m.tag!=="directive")continue;if(m.name==="times")l("createdAt","created_at","@times",m.start),l("updatedAt","updated_at","@times",m.start);else if(m.name==="softDelete")l("deletedAt","deleted_at","@softDelete",m.start);else if(m.name==="belongsTo"){let g=m.args[0],b=g.foreignKey??si(g.as??g.target);l(ni(b),b,`the @belongsTo ${g.target}${g.as?` (as ${g.as})`:""} relation`,m.start)}}for(let m of e){if(m.tag!=="directive"||m.name!=="index"&&m.name!=="unique")continue;let g=m.args[0].fields.map((b)=>a.get(b)??(i.has(b)?b:se(b)));g.forEach((b,S)=>{if(g.indexOf(b)!==S)t(`@${m.name} columns must be distinct after canonicalization: ${g.join(", ")}`,m.colTokens?.[S]?.start??m.start)}),g.forEach((b,S)=>{if(!i.has(b))t(`@${m.name}: unknown column '${m.args[0].fields[S]}' — the table has: ${[...i].sort().join(", ")}`,m.colTokens?.[S]?.start??m.start)})}}function V2(e,t,r){let s=e.argTokens??[],i=(n,a)=>r(`@${e.name}: ${a}`,n.start);switch(t){case"none":{if(s.length)i(s[0],"takes no arguments");return null}case"target":{let n=s[0];if(!L1(n))r(`@${e.name} requires a target name — '@${e.name} User'`,(n??{start:e.start}).start);let a=!1,o=1;if(s[o]?.kind==="?"&&!s[o].spaced)a=!0,o++;let l=null;if(s[o]?.kind===","&&s[o+1]?.kind==="{")l=F2(s.slice(o+1),e.name,r),o=s.length;if(oL1(c)||rt(c),l=0;if(H1(s,0)){let c=H1(s,0);n.push(c.value),a.push(c),l=2}else if(o(s[0]))n.push(s[0].value),a.push(s[0]),l=1;else if(s[0]?.kind==="["||s[0]?.kind==="INDEX_START"){let c=1;l=1;let f=[];while(l0){let h=s[l];if(h.kind==="["||h.kind==="INDEX_START")c++;if(h.kind==="]"||h.kind==="INDEX_END"){if(c--,c===0){l++;break}}if(c>=1)f.push(h);l++}if(c!==0)i(s[0],"unclosed '[' in the column list");for(let h of Ie(f)){let u=H1(h,0),d=u??(o(h[0])?h[0]:null);if(!d||h.length>(u?2:1))i(h[u?2:1]??h[0]??s[0],`column names are bare identifiers or :symbols — '@${e.name} [:a, :b]'`);n.push(d.value),a.push(d)}}if(!n.length)r(`@${e.name} requires a field name or list — '@${e.name} :email' or '@${e.name} [:a, :b]'`,(s[0]??{start:e.start}).start);if(l1)i(s[1],`takes one table name — unexpected ${s[1].kind}`);if(o);else{if(/[A-Z]{2,}/.test(a))r(`@${e.name} ${a}: a bare name is a LOGICAL name that Rip snake_cases, and consecutive capitals convert surprisingly ('${a}' → '${se(a)}'). Spell it 'MdmUser'-style, or name the table exactly by quoting it: '@${e.name} "${a}"'`,n.start);a=se(a)}return[{name:a}]}case"field":{let n=s[0];if(!L1(n)&&!rt(n))r(`@${e.name} requires a property name — '@${e.name} patientId'`,(n??{start:e.start}).start);let a=1,o=null;if(s[a]?.kind===","&&s[a+1]?.kind==="{")o=fi(s.slice(a+1),li,`@${e.name}`,r),a=s.length;if(a0){let d=r[a].kind;if(d==="("||d==="PARAM_START"||d==="CALL_START")u++;if(d===")"||d==="PARAM_END"||d==="CALL_END"){if(u--,u===0){a++;break}}o.push(r[a]),a++}if(u!==0)i(`'${n}': unclosed '(' in parameters`,r[2].start)}let l=r[a],c=null,f=-1;if(l?.kind==="->"||l?.kind==="EFFECT"||l?.kind==="!>")c=l.kind==="EFFECT"?"~>":l.kind,f=a+1;else if(L1(l)||l?.kind==="STRING"||l?.kind==="NUMBER")i(`schema fields use 'name type' (space, no colon) — got '${n}:'; for methods/computed use 'name: -> body' or 'name: ~> body'`,r[1].start);else i(`schema top-level '${n}:' must be followed by '->' (method), '~>' (computed getter), or '!>' (eager derived)`,r[1].start);let h=c==="~>"?"computed":c==="!>"?"derived":e==="model"&&_2.has(n)?"hook":"method";if(o.length&&h!=="method")i(`'${n}': ${h==="computed"?"computed getters (~>)":h==="derived"?"eager-derived fields (!>)":"lifecycle hooks"} take no parameters — only methods do`,r[1].start);s.push({tag:h,name:n,paramTokens:o,bodyTokens:r.slice(f),start:t.start})}function W2(e,t,r){let s=e;if(!s.length)r("@ensure requires 'message, (x) -> body' or a '[…]' array of pairs",t.start);let i=s[0];if(i.kind==="["||i.kind==="INDEX_START"){let a=H2(s,i,r),o=G2(a);if(o.length===0)r("@ensure […] must contain at least one 'message, fn' pair",i.start);return jn(o,i,r)}let n=Ie(s);if(n.length<2)r("@ensure inline form must be 'message, (x) -> body' — did you forget the comma?",i.start);if(n.length>3||n.length===3&&!Gn(n[1]))r(`@ensure inline form takes 'message[, :field], fn' (got ${n.length} comma-separated parts) — use '@ensure […]' for multiple refinements`,i.start);return jn(n,i,r)}var Gn=(e)=>e&&e.length===2&&H1(e,0)!==null;function jn(e,t,r){let s=[],i=0;while(i=e.length)r(`@ensure: missing function after message${a?" and :field":""}`,(n[0]??t).start);s.push(K2(n,a,e[i++],t,r))}return s}function H2(e,t,r){let s=0,i=[];for(let n=0;n=2&&i[0].kind==="INDENT"&&i[i.length-1].kind==="OUTDENT"){let o=0,l=!1;for(let c=0;c=1)i.push(a)}r("@ensure: unclosed '['",t.start)}function G2(e){let t=[],r=[],s=0;for(let i of e){let n=i.kind;if(n==="("||n==="["||n==="{"||n==="CALL_START"||n==="INDEX_START"||n==="PARAM_START"||n==="INDENT")s++;if(n===")"||n==="]"||n==="}"||n==="CALL_END"||n==="INDEX_END"||n==="PARAM_END"||n==="OUTDENT")s--;if(s===0&&(n===","||n==="TERMINATOR")){if(r.length)t.push(r),r=[];continue}r.push(i)}if(r.length)t.push(r);return t}function K2(e,t,r,s,i){if(!e?.length)i("@ensure: missing message (expected a string literal)",s.start);if(e.length!==1||e[0].kind!=="STRING"||!e[0].value.startsWith('"'))i("@ensure: each refinement's first element must be a string literal message",(e[0]??s).start);let n=e[0],a=JSON.parse(n.value),o=t?H1(t,0):null,l=t?o.value:null,c=o?.start??null;if(!r?.length)i("@ensure: missing function after message",n.start);let f=r[0];if(f.kind!=="("&&f.kind!=="PARAM_START")i("@ensure: expected '(args) -> body' after the message — predicates declare their parameter explicitly ('(u) -> …')",f.start);let h=1,u=1,d=[];while(u0){let g=r[u].kind;if(g==="("||g==="PARAM_START")h++;if(g===")"||g==="PARAM_END"){if(h--,h===0){u++;break}}d.push(r[u]),u++}if(h!==0)i("@ensure: unclosed '(' in predicate parameters",f.start);let p=r[u];if(p?.kind!=="->")i("@ensure: expected '->' after predicate parameters",(p??n).start);let m=r.slice(u+1);if(!m.length)i("@ensure: predicate function body is empty",p.start);return{message:a,field:l,fieldStart:c,paramTokens:d,bodyTokens:m}}function Kn(e,t,r,s=null){if(!e.length)return[];let i=Y2(e,t,r,s);for(let n=i.length-1;n>=0&&i[n].type===null;n--)i[n].optional=!0;return i}function Y2(e,t,r,s){let i=(n)=>n.kind!=="TERMINATOR"&&n.kind!=="INDENT"&&n.kind!=="OUTDENT";return Ie(e).map((n)=>{let a=n.filter((f)=>i(f)&&f.kind!=="TYPE"),o=a.length>=3&&(a[0].kind==="IDENTIFIER"||a[0].kind==="PROPERTY")&&a[1].kind===":";if(!o&&(a.length!==1||a[0].kind!=="IDENTIFIER"))r(`${t}: parameters must be plain identifiers, optionally typed ('name' or 'name: Type')`,(a[0]??n[0]).start);let l=o?[...n].filter(i).pop():null,c=o&&s!==null?jt(s.slice(a[1].end,l.end)).trim():null;return{name:a[0].value,type:c,optional:!1}})}function z2(e,t,r){let s=e[0];if(!s)return;if(s.kind==="@"){let i=e[1];if(!i||i.value!=="on")r(`:union bodies accept only '@on :field' and constituent schema names — '@${i?.value??""}' is not allowed`,(i??s).start);let n=H1(e,2);if(!n)r("@on requires the discriminator field as a symbol — '@on :kind'",(e[2]??i).start);if(e.length>4)r("@on takes exactly one :field symbol",e[4].start);t.push({tag:"directive",name:"on",args:[{field:n.value}],start:s.start});return}if(s.kind==="IDENTIFIER"&&e.length===1){t.push({tag:"union-member",name:s.value,start:s.start});return}r(`:union bodies accept only '@on :field' and bare constituent schema names (one per line) — got ${s.kind}${e.length>1?" followed by "+e[1].kind:""}`,s.start)}function q2(e,t,r){let s=e[0];if(!s)return;if(s.kind==="@")r(`:enum schemas don't accept '@${e[1]?.value??"directive"}' — enums hold only :symbol members`,s.start);let i=H1(e,0);if(!i)r(`enum member must be a :symbol — use ':${s.value??"name"}' for a bare member or ':${s.value??"name"} value' for a valued one`,s.start);let n=i.value,a=e[2];if(!a){t.push({tag:"enum-member",name:n,value:void 0,start:s.start});return}if(a.kind===":")r(`enum member ':${n}' — drop the ':' before the value; use ':${n} value'`,a.start);if(e.length>3&&!(e.length===4&&a.kind==="-"&&e[3].kind==="NUMBER"))r(`extra tokens after enum member ':${n}' value`,e[3].start);let o=a.kind==="-"&&e[3]?.kind==="NUMBER"?-Number(e[3].value):Yn(a,`enum member ':${n}' value`,r);t.push({tag:"enum-member",name:n,value:o,start:s.start})}function X2(e){return e.some((t)=>t.kind==="..")&&e.every((t)=>t.kind===".."||t.kind==="NUMBER"||t.kind==="-")}function J2(e,t,r){let s=0,i=()=>{let l=1;if(e[s]?.kind==="-")l=-1,s++;let c=e[s++];if(c?.kind!=="NUMBER")r("range endpoints must be numeric literals",(c??e[0]).start);return l*Number(c.value)},n;if(e[s]?.kind!=="..")n=i();s++;let a;if(sa)r(`range '${n}..${a}' is reversed — write the smaller endpoint first`,e[0].start);let o={};if(n!==void 0)o.min=n;if(a!==void 0)o.max=a;return o}function Z2(e,t,r,s={}){let i=e.slice(1,-1);if(i.length)s.start=i[0].start,s.end=i[i.length-1].end;let n=Ie(i);if(n.length!==1)r(n.length===2?"size/value ranges use 'min..max' syntax, not brackets — replace the bracket pair with a range":`the constraint bracket takes a single default value (got ${n.length} elements)`,e[0].start);let a=n[0];if(a.length===1&&a[0].kind==="REGEX")r(`regex constraints are written bare, not in brackets — replace '[${a[0].value}]' with '${a[0].value}'`,e[0].start);if(a.length===2&&a[0].kind==="-"&&a[1].kind==="NUMBER")return-Number(a[1].value);let o=H1(a,0);if(o&&a.length===2)return o.value;if(a.length!==1)r(`default values must be literals (number, string, boolean, null, :symbol) — field '${t}'`,a[0].start);return Yn(a[0],`field '${t}' default`,r)}function Q2(e,t){let r=/^\/((?:\\.|[^\\/])+)\/([a-z]*)$/.exec(e.value);if(!r)t(`invalid regex literal ${JSON.stringify(e.value)}`,e.start);try{return new RegExp(r[1],r[2])}catch(s){t(`invalid regex '${e.value}': ${s.message}`,e.start)}}function Yn(e,t,r){switch(e.kind){case"NUMBER":return Number(e.value);case"STRING":if(!e.value.startsWith('"'))r(`${t} must be a plain string literal (heredocs have no literal key form)`,e.start);return JSON.parse(e.value);case"BOOL":return e.value==="true";case"NULL":return null;case"UNDEFINED":return;default:r(`${t} must be a literal (number, string, boolean, null) — got ${e.kind}`,e.start)}}function Ie(e){let t=[],r=[],s=0;for(let i of e){let n=i.kind;if(n==="("||n==="["||n==="{"||n==="CALL_START"||n==="INDEX_START"||n==="PARAM_START"||n==="INDENT")s++;if(n===")"||n==="]"||n==="}"||n==="CALL_END"||n==="INDEX_END"||n==="PARAM_END"||n==="OUTDENT")s--;if(n===","&&s===0){if(r.length)t.push(r);r=[];continue}r.push(i)}if(r.length)t.push(r);return t}function el(e){let t=0;for(let r=0;r")return r}return-1}function zn(e,t,r,s=null,i=null,n=!1,a=null,o=null){let l=[],c=(u)=>{if(l.length&&typeof l[l.length-1]==="string")l[l.length-1]+=u;else l.push(u)},f=(u,d=null)=>l.push({ts:u,span:d}),h=(u)=>l.push({body:u});if(c(`{kind: ${JSON.stringify(e.kind)}`),t)c(`, name: ${JSON.stringify(t)}`);if(c(", entries: ["),e.entries.forEach((u,d)=>{if(d>0)c(", ");rl(u,r.get(d),i?.get(d)??null,c,f,n,a?.get(d)??null,o?.get(d)??null,h)}),c("]"),s)c(", adapter: "),h(s);return c("}"),l}var Ue=(e)=>typeof e==="string"?e:e.code;function qn(e,t,r,s){let i=[];return e.entries.forEach((n,a)=>{if(n.tag!=="derived"&&n.tag!=="computed"&&n.tag!=="method")return;let o=r.get(a);if(o===void 0)return;let l=s?.get(a)??null,c=Ue(o);for(let[f,h]of Xn(o,l).reverse())c=c.slice(0,f)+h+c.slice(f);i.push(`${n.name}: ${c}`)}),i.length?`const ${O2(t)} = {${i.join(", ")}};`:null}function Xn(e,t,r=!0){if(typeof e==="string")return[];let s=r?(e.annots??[]).map(([i,n])=>[i,n]):[];if(t!==null){let{code:i,thisAt:n}=e;s.push([n,`this: ${t}${i[n]===")"?"":", "}`])}return s.sort((i,n)=>i[0]-n[0])}function tl(e,t,r,s,i=!1){let n=Xn(e,t,i);if(n.length===0){r(Ue(e));return}let{code:a}=e,o=0;for(let[l,c]of n)r(a.slice(o,l)),s(c),o=l;r(a.slice(o))}function rl(e,t,r,s,i,n=!1,a=null,o=null,l=s){switch(e.tag){case"computed":case"method":case"derived":case"hook":case"scope":case"defaultScope":s(`{tag: ${JSON.stringify(e.tag)}, name: ${JSON.stringify(e.name)}, fn: `),tl(t,r,l,i,n),s("}");return;default:let c={},f=il(e,t,c),h=[];if(n&&a!==null&&c.defaultEnd!==void 0)h.push({at:c.defaultEnd,ts:` satisfies ${a}`,span:e.defaultSpan??null});if(n&&e.tag==="field"&&t!==void 0&&typeof t!=="string"&&Ue(t).startsWith("it",t.thisAt)){let d=Ue(t);h.push({at:f.length-1-d.length+t.thisAt+2,ts:": any"})}if(n&&e.tag==="ensure"&&o!==null&&c.fnAt!==void 0&&typeof t!=="string"&&t!==void 0){let d=/^[A-Za-z_$][\w$]*/.exec(Ue(t).slice(t.thisAt))?.[0];if(d)h.push({at:c.fnAt+t.thisAt+d.length,ts:`: ${o}`})}let u=0;for(let d of h)s(f.slice(u,d.at)),i(d.ts,d.span??null),u=d.at;s(f.slice(u))}}function il(e,t,r={}){if(t!==void 0)t=Ue(t);switch(e.tag){case"field":{let s=['tag: "field"',`name: ${JSON.stringify(e.name)}`,`modifiers: ${JSON.stringify(e.modifiers)}`,`typeName: ${JSON.stringify(e.typeName)}`,`array: ${e.array?"true":"false"}`];if(e.unique)s.push("unique: true");if(e.primary)s.push("primary: true");if(e.literals)s.push(`literals: ${JSON.stringify(e.literals)}`);if(e.coerce){if(s.push("coerce: true"),e.coercer)s.push(`coercer: ${JSON.stringify(e.coercer)}`)}if(e.constraints){let i=[];if(e.constraints.min!==void 0)i.push(`min: ${Ft(e.constraints.min)}`);if(e.constraints.max!==void 0)i.push(`max: ${Ft(e.constraints.max)}`);let n=-1;if(e.constraints.default!==void 0)n=i.length,i.push(`default: ${Ft(e.constraints.default)}`);if(e.constraints.regex!==void 0)i.push(`regex: ${e.constraints.regex.toString()}`);if(i.length){if(n>=0){let a=`{${s.join(", ")}, constraints: {`;r.defaultEnd=a.length+i.slice(0,n+1).join(", ").length}s.push(`constraints: {${i.join(", ")}}`)}}if(e.attrs)s.push(`attrs: {${Object.keys(e.attrs).sort().map((i)=>`${i}: ${Ft(e.attrs[i])}`).join(", ")}}`);if(t)s.push(`transform: ${t}`);return`{${s.join(", ")}}`}case"directive":{let s=['tag: "directive"',`name: ${JSON.stringify(e.name)}`];if(e.args){if(e.name==="mixin"||xn.includes(e.name)){let i=e.args[0];s.push(`args: [{target: ${JSON.stringify(i.target)}${i.optional?", optional: true":""}${i.as?`, as: ${JSON.stringify(i.as)}`:""}${i.foreignKey?`, foreignKey: ${JSON.stringify(i.foreignKey)}`:""}${i.through?`, through: ${JSON.stringify(i.through)}`:""}${i.targetKey?`, targetKey: ${JSON.stringify(i.targetKey)}`:""}}]`)}else if(e.name==="primary")s.push(`args: [{name: ${JSON.stringify(e.args[0].name)}${e.args[0].column?`, column: ${JSON.stringify(e.args[0].column)}`:""}}]`);else if(e.name==="on")s.push(`args: [{field: ${JSON.stringify(e.args[0].field)}}]`);else if(e.name==="unique"||e.name==="index")s.push(`args: [{fields: ${JSON.stringify(e.args[0].fields)}}]`);else if(e.name==="idStart")s.push(`args: [{value: ${e.args[0].value}}]`);else if(e.name==="table"||e.name==="tableWas")s.push(`args: [{name: ${JSON.stringify(e.args[0].name)}}]`)}return`{${s.join(", ")}}`}case"ensure":{let s=['tag: "ensure"',`message: ${JSON.stringify(e.message)}`];r.fnAt=`{${s.join(", ")}, fn: `.length;let i=[...s,`fn: ${t}`];if(e.field)i.push(`field: ${JSON.stringify(e.field)}`);if(e.async)i.push("async: true");return`{${i.join(", ")}}`}case"enum-member":{let s=['tag: "enum-member"',`name: ${JSON.stringify(e.name)}`];if(e.value!==void 0)s.push(`value: ${JSON.stringify(e.value)}`);return`{${s.join(", ")}}`}case"union-member":return`{tag: "union-member", name: ${JSON.stringify(e.name)}}`;default:throw Error(`schema: unknown entry tag '${e.tag}'`)}}function Ft(e){if(e===null)return"null";if(e===void 0)return"undefined";if(typeof e==="string")return JSON.stringify(e);return String(e)}var nl=new Set(["pick","omit","partial","required","extend"]);function W1(e){return e&&e.valueOf?e.valueOf():e}function Jn(e){return e.entries.some((t)=>t.tag==="directive"&&t.name==="mixin")}function sl(e){return ni(e.foreignKey??si(e.as??e.target))}function al(e){if(Jn(e))return null;let t=new Map;for(let a of e.entries)if(a.tag==="field")t.set(a.name,a);if(e.kind!=="model")return t;let r=(a,o,l)=>{if(!t.has(a))t.set(a,{tag:"field",name:a,modifiers:l?["!"]:["?"],typeName:o,array:!1})},s=!1,i=!1,n=[];for(let a of e.entries){if(a.tag!=="directive")continue;if(a.name==="times")s=!0;else if(a.name==="softDelete")i=!0;else if(a.name==="belongsTo"){let o=a.args&&a.args[0];if(o&&o.target)n.push({fk:sl(o),required:o.optional!==!0})}}if(r("id","integer",!0),s)r("createdAt","datetime",!0),r("updatedAt","datetime",!0);if(i)r("deletedAt","datetime",!1);for(let{fk:a,required:o}of n)r(a,"integer",o);return t}function ol(e){if(Jn(e))return null;let t=new Map;for(let r of e.entries)if(r.tag==="field")t.set(r.name,r);return t}function Fn(e,t){let r=e.modifiers.filter((i)=>i!==(t==="partial"?"!":"?")),s=t==="partial"?"?":"!";if(!r.includes(s))r=[...r,s];return{...e,modifiers:r}}function ll(e,t,r){switch(t.method){case"pick":{let s=new Map;for(let i of t.keys){if(!e.has(i))return null;s.set(i,e.get(i))}return s}case"omit":{let s=new Set(t.keys),i=new Map;for(let[n,a]of e)if(!s.has(n))i.set(n,a);return i}case"partial":{let s=new Map;for(let[i,n]of e)s.set(i,Fn(n,"partial"));return s}case"required":{let s=new Set(t.keys),i=new Map;for(let[n,a]of e)i.set(n,s.has(n)?Fn(a,"required"):a);return i}case"extend":{let s=t.otherDescriptor||r.get(t.otherName);if(!s)return null;let i=ol(s);if(!i)return null;let n=new Map(e);for(let[a,o]of i){if(n.has(a))return null;n.set(a,o)}return n}default:return null}}function cl(e,t,r){let s=al(e);if(!s)return null;for(let i of t)if(s=ll(s,i,r),!s)return null;return{kind:"shape",entries:[...s.values()]}}function fl(e){let t=[],r=e;while(!0){if(!Array.isArray(r))return null;let s=r[0];if(!Array.isArray(s))return null;if(W1(s[0])!==".")return null;let i=W1(s[2]);if(!nl.has(i))return null;let n=r.slice(1),a;if(i==="partial"){if(n.length)return null;a={method:i}}else if(i==="extend"){if(n.length!==1)return null;let c=n[0];if(Array.isArray(c)){let f=W1(c[0])==="schema"&&c.length===2&&c[1]&&typeof c[1]==="object"&&Array.isArray(c[1].entries)?c[1]:null;if(!f||f.kind!=="shape"&&f.kind!=="input")return null;a={method:i,otherDescriptor:f}}else{let f=W1(c);if(typeof f!=="string"||!/^[A-Za-z_$][\w$]*$/.test(f))return null;a={method:i,otherName:f}}}else{let c=hl(n);if(!c||!c.length)return null;a={method:i,keys:c}}t.unshift(a);let o=s[1];if(Array.isArray(o)){r=o;continue}let l=W1(o);if(typeof l!=="string")return null;return{base:l,ops:t}}}function hl(e){let t=[];for(let r of e)if(Array.isArray(r)){if(W1(r[0])!=="array")return null;for(let s=1;s{r[2]=["schema",t]})}var Bt=new Set(["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","link","main","map","mark","menu","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","script","search","section","select","slot","small","source","span","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"]),Ve=new Set(["a","animate","animateMotion","animateTransform","circle","clipPath","defs","desc","ellipse","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","foreignObject","g","image","line","linearGradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tspan","use","view"]),$e=new Set([...Bt,...Ve]),hi=new Set([...Ve].filter((e)=>!Bt.has(e))),Ut=new Set(["abort","animationcancel","animationend","animationiteration","animationstart","auxclick","beforeinput","beforematch","beforetoggle","blur","cancel","canplay","canplaythrough","change","click","close","command","compositionend","compositionstart","compositionupdate","contextlost","contextmenu","contextrestored","copy","cuechange","cut","dblclick","drag","dragend","dragenter","dragleave","dragover","dragstart","drop","durationchange","emptied","ended","error","focus","focusin","focusout","formdata","fullscreenchange","fullscreenerror","gotpointercapture","input","invalid","keydown","keypress","keyup","load","loadeddata","loadedmetadata","loadstart","lostpointercapture","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","paste","pause","play","playing","pointercancel","pointerdown","pointerenter","pointerleave","pointermove","pointerout","pointerover","pointerrawupdate","pointerup","progress","ratechange","reset","resize","scroll","scrollend","securitypolicyviolation","seeked","seeking","select","selectionchange","selectstart","slotchange","stalled","submit","suspend","timeupdate","toggle","touchcancel","touchend","touchmove","touchstart","transitioncancel","transitionend","transitionrun","transitionstart","volumechange","waiting","webkitanimationend","webkitanimationiteration","webkitanimationstart","webkittransitionend","wheel"]),Qn=new Set(["disabled","hidden","readonly","required","checked","selected","autofocus","autoplay","controls","loop","muted","multiple","novalidate","open","reversed","defer","async","formnovalidate","allowfullscreen","inert","ismap","nomodule","playsinline","default","itemscope","alpha","shadowrootdelegatesfocus","shadowrootclonable","shadowrootserializable"]),De=new Set(["accesskey","autocapitalize","autocorrect","autofocus","class","contenteditable","dir","draggable","enterkeyhint","hidden","id","inert","inputmode","is","itemid","itemprop","itemref","itemscope","itemtype","lang","nonce","popover","role","slot","spellcheck","style","tabindex","title","translate","writingsuggestions"]),it={__proto__:null,a:["href","target","download","ping","rel","hreflang","type","referrerpolicy"],area:["alt","coords","shape","href","target","download","ping","rel","referrerpolicy"],audio:["src","crossorigin","preload","autoplay","loop","muted","controls"],base:["href","target"],blockquote:["cite"],button:["command","commandfor","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","name","popovertarget","popovertargetaction","type","value"],canvas:["width","height"],col:["span"],colgroup:["span"],data:["value"],del:["cite","datetime"],details:["name","open"],dialog:["open","closedby"],embed:["src","type","width","height"],fieldset:["disabled","form","name"],form:["accept-charset","action","autocomplete","enctype","method","name","novalidate","rel","target"],iframe:["src","srcdoc","name","sandbox","allow","allowfullscreen","width","height","referrerpolicy","loading"],img:["alt","src","srcset","sizes","crossorigin","usemap","ismap","width","height","referrerpolicy","decoding","loading","fetchpriority"],input:["accept","alpha","alt","autocomplete","checked","colorspace","dirname","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","height","list","max","maxlength","min","minlength","multiple","name","pattern","placeholder","popovertarget","popovertargetaction","readonly","required","size","src","step","type","value","width"],ins:["cite","datetime"],label:["for"],li:["value"],link:["href","crossorigin","rel","media","integrity","hreflang","type","referrerpolicy","sizes","imagesrcset","imagesizes","as","blocking","disabled","fetchpriority"],map:["name"],meta:["name","http-equiv","content","charset","media"],meter:["value","min","max","low","high","optimum"],object:["data","type","name","form","width","height"],ol:["reversed","start","type"],optgroup:["disabled","label"],option:["disabled","label","selected","value"],output:["for","form","name"],progress:["value","max"],q:["cite"],script:["src","type","nomodule","async","defer","crossorigin","integrity","referrerpolicy","blocking","fetchpriority"],select:["autocomplete","disabled","form","multiple","name","required","size"],slot:["name"],source:["type","media","src","srcset","sizes","width","height"],style:["media","blocking"],table:["align","bgcolor","border","cellpadding","cellspacing","width"],tbody:["align","valign"],td:["colspan","rowspan","headers","align","bgcolor","height","nowrap","valign","width"],template:["shadowrootmode","shadowrootdelegatesfocus","shadowrootclonable","shadowrootserializable"],tfoot:["align","valign"],textarea:["autocomplete","cols","dirname","disabled","form","maxlength","minlength","name","placeholder","readonly","required","rows","wrap"],th:["colspan","rowspan","headers","scope","abbr","align","bgcolor","height","nowrap","valign","width"],thead:["align","valign"],time:["datetime"],tr:["align","bgcolor","valign"],track:["default","kind","label","src","srclang"],video:["src","crossorigin","poster","preload","autoplay","playsinline","loop","muted","controls","width","height"]};for(let e in it)it[e]=new Set(it[e]);var nt=new Set(["id","class","style","lang","tabindex","href","pathLength","crossorigin","transform","viewBox","preserveAspectRatio","xmlns","x","y","x1","y1","x2","y2","cx","cy","r","rx","ry","width","height","d","points","dx","dy","rotate","fill","fill-opacity","fill-rule","stroke","stroke-width","stroke-linecap","stroke-linejoin","stroke-dasharray","stroke-dashoffset","stroke-opacity","stroke-miterlimit","opacity","clip-path","clip-rule","mask","filter","color","display","visibility","pointer-events","vector-effect","dominant-baseline","text-anchor","font-family","font-size","font-weight","font-style","letter-spacing","offset","stop-color","stop-opacity","gradientUnits","gradientTransform","spreadMethod","patternUnits","patternContentUnits","patternTransform","markerWidth","markerHeight","refX","refY","orient","markerUnits","maskUnits","maskContentUnits","clipPathUnits","filterUnits","primitiveUnits","in","in2","result","stdDeviation","values","type","mode","operator","radius","scale","baseFrequency","numOctaves","seed","dur","repeatCount","begin","end","from","to","attributeName","keyTimes","keySplines","calcMode","restart","min","max"]);function ui(e){let t=String(e).toLowerCase(),r=new Set(De),s=it[t];if(s)for(let i of s)r.add(i);if(Ve.has(String(e)))for(let i of nt)r.add(i);return[...r]}function dl(e,t){if(Math.abs(e.length-t.length)>2)return 3;let r=Array.from({length:t.length+1},(s,i)=>i);for(let s=1;s<=e.length;s++){let i=[s];for(let n=1;n<=t.length;n++)i[n]=Math.min(r[n]+1,i[n-1]+1,r[n-1]+(e[s-1]===t[n-1]?0:1));r=i}return r[t.length]}function es(e,t){let r=ui(e),s=String(t).toLowerCase(),i=r.find((l)=>l.toLowerCase()===s);if(i!==void 0&&i!==t)return i;if(String(t).length<3)return null;let n=null,a=3,o=!1;for(let l of r){if(l===String(t))continue;let c=dl(String(t),l);if(c=e.length)return null;if(!j1.test(e[t]))return null;let r=t+1;while(r$e.has(String(e).split("#")[0]),K1=(e)=>typeof e==="string"&&ml.test(e),mi=(e)=>Sl(e)||K1(e);function Vt(e){if(!Array.isArray(e)||e[0]!=="."||e.length!==3||typeof e[2]!=="string")return null;let t=[e[2]],r=e[1];while(Array.isArray(r)){if(r[0]!=="."||r.length!==3||typeof r[2]!=="string")return null;t.push(r[2]),r=r[1]}if(typeof r!=="string"||r==="this"||!Z1(r))return null;return t.push(r),t.reverse().join(".")}var pi=(e)=>Array.isArray(e)&&K1(e[2])?Vt(e):null,Wt=(e)=>e.split(".")[0];function ss(e,t,r){let s=!1;for(let G of e)if(G.kind==="RENDER"){s=!0;break}if(!s)return e;let i=[],n=(G,k,v,j={})=>{let{at:X,...x}=j,Z=X??v.end;return{id:t(),kind:G,value:k,start:Z,end:Z,spaced:!1,newLine:!1,generated:!0,origin:v.id,...x}},a=!1,o=0,l=0,c=[],f=[],h=[],u=(G,k,v)=>k{let x=1,Z=k;while(Z>=0&&x>0){if(J.on)J.n++;let U=u(G,Z,X)?.kind;if(U===v)x++;else if(U===j)x--;if(x>0)Z--}return Z},p=(G)=>{let k=i.length;while(k>0&&u(i,k,G)?.kind==="OUTDENT")k=d(i,k-1,"OUTDENT","INDENT",G);while(k>0){if(J.on)J.n++;let j=i[k-1].kind;if(j==="TERMINATOR"||j==="RENDER")break;if(j==="OUTDENT"){k=d(i,k-2,"OUTDENT","INDENT",G);continue}if(j==="INDENT"){let X=u(i,k,G)?.kind;if(X==="CALL_END"||X===")"){k=d(i,k-1,X,X==="CALL_END"?"CALL_START":"(",G);continue}break}if(j==="CALL_END"||j===")"){k=d(i,k-2,j,j==="CALL_END"?"CALL_START":"(",G);continue}if(j==="INTERPOLATION_END"){k=d(i,k-2,"INTERPOLATION_END","INTERPOLATION_START",G);continue}if(j==="STRING_END"){k=d(i,k-2,"STRING_END","STRING_START",G);continue}k--}let v=u(i,k,G);return v?.kind==="IDENTIFIER"&&(mi(v.value)||(k===0||["INDENT","TERMINATOR","RENDER"].includes(i[k-1]?.kind)))},m=()=>{let G=0;for(let k=i.length-1;k>=0;k--){if(J.on)J.n++;let v=i[k].kind;if(is.has(v))G++;else if(rs.has(v)){if(G===0)return 1;G--}else if(v==="TERMINATOR"||v==="RENDER"||v==="INDENT"||v==="OUTDENT")break}return 0},g=(G)=>{let k=i[i.length-1];if(!k)return!1;if(m()!==0)return!1;let v=k.kind;if((v===","||v==="IDENTIFIER"||v==="PROPERTY")&&p(G))return!0;if((v==="INDENT"||v==="TERMINATOR")&&f.includes(l))return!0;return!1},b=(G)=>{let k=1;for(let v=G+1;v0;v++){if(J.on)J.n++;let j=e[v].kind;if(j==="("||j==="CALL_START")k++;else if(j===")"){if(k--,k===0)e[v].kind="CALL_END"}else if(j==="CALL_END")k--}},S=(G)=>{let k=1;for(let v=i.length-1;v>=0&&k>0;v--){if(J.on)J.n++;if(i[v].kind==="CALL_END")k++;else if(i[v].kind==="CALL_START"){if(k--,k===0&&v>0&&i[v-1].kind==="PROPERTY"&&i[v-1].value==="__clsx")return!0}}return!1},w=(G)=>{while(h.length>0){let k=h[h.length-1];if(G.kind==="INDENT"||rs.has(G.kind)){k.depth++;return}if(G.kind==="OUTDENT"||is.has(G.kind)){if(k.depth===0){i.push(n("CALL_END",")",i[i.length-1]??G)),h.pop();continue}k.depth--;return}if(G.kind==="TERMINATOR"&&k.depth===0){i.push(n("CALL_END",")",i[i.length-1]??G)),h.pop();continue}return}},R=(G)=>G===0||st.has(e[G-1].kind),T=(G,k)=>{let v=e[G+1]?.kind==="TYPE"?e[G+2]:e[G+1];return v!==void 0&&k.has(v.kind)},F=new Set;for(let G=0,k=0;G{let k=new Set,v=G+1;while(vN.some((k)=>k.names.has(G))||P.length>0&&P[P.length-1].names.has(G)||F.has(G);for(let G=0;G0)w(k);if(!st.has(k.kind)&&R(G))O=k.kind;if(k.kind==="COMPONENT")P.push({level:l+1,names:L(G)});if(k.kind==="RENDER"){a=!0,o=l+1,N.push({level:o,names:new Set}),i.push(k);continue}if(k.kind==="INDENT"){if(l++,a){let j=e[G-1]?.kind;if(j==="->"||j==="=>")D.push(l);else if(D.length===0&&bl.has(O))N.push({level:l,names:new Set(O==="FOR"?W??[]:[])})}W=null,i.push(k);continue}if(k.kind==="OUTDENT"){l--;for(let j of[P,N])while(j.length>0&&j[j.length-1].level>l)j.pop();while(D.length>0&&D[D.length-1]>l)D.pop();while(f.length>0&&f[f.length-1]>l)f.pop();i.push(k);while(c.length>0&&c[c.length-1]>l)i.push(n("CALL_END",")",k)),c.pop();if(a&&l0){let j=i[i.length-1].kind;if(j==="TERMINATOR"||j==="INDENT"||j==="RENDER"){i.push(n("IDENTIFIER","__text__",k,{at:k.start,spaced:k.spaced,newLine:k.newLine})),i.push(n("CALL_START","(",k,{at:k.start})),h.push({depth:0});continue}}if(k.kind==="UNARY_MATH"&&k.value==="~"&&v?.kind==="IDENTIFIER"){i.push(n("PROPERTY","__transition__",k,{spaced:k.spaced,newLine:k.newLine})),i.push(n(":",":",k)),v.kind="STRING",v.value=`"${v.value}"`,v.transitionValue=!0;continue}if(k.transitionValue&&v!==null&&ns.has(v.kind)){i.push(k),i.push(n(",",",",k,{at:v.start}));continue}if(k.kind==="BIND"){let j=i[i.length-1];if(j!==void 0&&(j.kind==="IDENTIFIER"||j.kind==="PROPERTY")&&v!==null&&(v.kind==="IDENTIFIER"||v.kind==="@")){j.value=`__bind_${j.value}__`,i.push(n(":",":",k));continue}}if(k.kind==="IDENTIFIER"&&v?.kind==="-"&&!v.spaced){let j=[k.value],X=G+1,x=k.end;while(X+11&&e[X-1].kind==="PROPERTY"){let Z=j.join("-");i.push({...k,kind:"STRING",value:`"${Z}"`,end:x}),G=X-1;continue}}if(k.kind==="."){let j=i[i.length-1]?.kind;if(j==="INDENT"||j==="TERMINATOR"||j==="RENDER"){if(v?.kind==="PROPERTY"){let X=e[G+2];if(!X||X.kind!==":"){i.push(n("IDENTIFIER","div",k,{spaced:k.spaced,newLine:k.newLine})),i.push(k);continue}k={...k,kind:"IDENTIFIER",value:"div"}}else if(!v||v.kind!=="(")k={...k,kind:"IDENTIFIER",value:"div"}}}if(k.kind==="."&&v?.kind==="("){let j=i[i.length-1]?.kind,X=j==="INDENT"||j==="TERMINATOR"||j==="RENDER";if(v.kind="CALL_START",b(G+1),X)i.push(n("IDENTIFIER","div",k,{spaced:k.spaced,newLine:k.newLine})),i.push(k),i.push(n("PROPERTY","__clsx",k));else if(j===":")i.push(n("IDENTIFIER","__clsx",k,{spaced:k.spaced,newLine:k.newLine}));else i.push(k),i.push(n("PROPERTY","__clsx",k));continue}if(k.kind==="@"&&v?.kind==="PROPERTY"&&!v.spaced){let j=e[G+2],X=j?.kind===".",x=j?.kind===":";if(!X&&!x&&g(k)){let Z=String(v.value),U=`on${Z[0].toUpperCase()}${Z.slice(1)}`;if(j?.kind==="=")r(`a \`=\` cannot follow a bare event directive on one line — \`@${Z} = expr\` would assign to the minted handler and invoke the assignment as the listener; bind explicitly (\`@${Z}: handler\`), or keep the bare \`@${Z}\` and put the text on its own \`= expr\` line`,j.start);if(i.push(k),i.push(v),i.push(n(":",":",v)),i.push(n("@","@",v)),i.push(n("PROPERTY",U,v)),G++,e[G+1]?.kind==="INDENT")i.push(n(",",",",v,{at:e[G+1].start})),i.push(n("->","->",v,{at:e[G+1].start,newLine:!0})),f.push(l+1);else if(e[G+1]!==void 0&&ns.has(e[G+1].kind))i.push(n(",",",",v,{at:e[G+1].start}));continue}}if(v?.kind==="INDENT"&&k.kind!=="->"&&k.kind!=="=>"&&k.kind!=="CALL_START"&&k.kind!=="("){let j=i[i.length-1]?.kind,X=["IF","UNLESS","WHILE","UNTIL","WHEN","FORIN","FOROF","FORAS","FORASAWAIT","BY"].includes(j),x=k.kind==="IDENTIFIER"&&(j==="INDENT"||j==="TERMINATOR"||j==="RENDER"),Z=k.kind==="IDENTIFIER"&&mi(k.value)&&(x||!H(k.value)),U=!1,r1=!1;if(k.kind==="CALL_END")r1=S(k);if(r1)U=!0;else if(Z&&!X)U=!0;else if(k.kind==="IDENTIFIER"&&!X)U=x||p(k);else if(["PROPERTY","STRING","STRING_END","NUMBER","BOOL","CALL_END",")","]","INDEX_END","}","MAYBE_DAMMIT"].includes(k.kind))U=p(k);if(U){let Q=!1;if(k.kind==="PROPERTY"&&i[i.length-1]?.kind==="."){let I=i.length;while(I>=2&&i[I-1].kind==="."&&i[I-2].kind==="PROPERTY")I-=2;if(I>=2&&i[I-1].kind==="."&&i[I-2].kind==="IDENTIFIER"&&(mi(i[I-2].value)||K1(k.value))){let s1=i[I-3]?.kind??null;if(s1===null||["INDENT","OUTDENT","TERMINATOR","RENDER"].includes(s1))Q=!0}}let l1=r1||Z||x||Q;if(i.push(k),l1)i.push(n("CALL_START","(",k,{at:v.start})),i.push(n("->","->",k,{at:v.start,newLine:!0})),c.push(l+1);else i.push(n(",",",",k,{at:v.start})),i.push(n("->","->",k,{at:v.start,newLine:!0}));f.push(l+1);continue}}if(k.kind==="IDENTIFIER"&&K1(k.value)&&(v?.kind==="OUTDENT"||v?.kind==="TERMINATOR")){i.push(k),i.push(n("CALL_START","(",k)),i.push(n("CALL_END",")",k));continue}i.push(k)}e.length=i.length;for(let G=0;G=0;a--){if(J.on)J.n++;if(n>=0&&(i<0||s[n].at>i))e[a]=s[n--].token;else e[a]=e[i--]}return e}var Rl=new Set(["IF","UNLESS","WHILE","UNTIL","WHEN","LEADING_WHEN","CATCH","FOR","LOOP","CLASS"]),El=new Set(["(","[","{","PICK_START","OPTPICK_START","CALL_START","INDEX_START","PARAM_START","STRING_START","INTERPOLATION_START","HEREGEX_START"]),kl=new Set([")","]","}","PICK_END","CALL_END","INDEX_END","PARAM_END","STRING_END","INTERPOLATION_END","HEREGEX_END"]);function Tl(e,t){let r=0;for(let s=t-1;s>=0;s--){if(J.on)J.n++;let i=e[s].kind;if(kl.has(i)||i==="OUTDENT"){r++;continue}if(El.has(i)||i==="INDENT"){if(r===0)return!1;r--;continue}if(r>0)continue;if(Rl.has(i))return!0;if(i==="TERMINATOR")return!1}return!1}function wl(e,t){let r=new Set(["(","[","{","PICK_START","OPTPICK_START","CALL_START","INDEX_START","PARAM_START","STRING_START","INTERPOLATION_START","HEREGEX_START"]),s=new Set([")","]","}","PICK_END","CALL_END","INDEX_END","PARAM_END","STRING_END","INTERPOLATION_END","HEREGEX_END"]),i=[],n=[],a=(p,m)=>{let g=0;for(let b=m-1;b>=p;b--){if(J.on)J.n++;let S=e[b].kind;if(s.has(S)||S==="OUTDENT"){g++;continue}if(r.has(S)||S==="INDENT"){if(S==="INDENT")return!1;if(g--,g<0)return!1;continue}if(g>0)continue;if(Gt(e,b))return!0}return!1},o=(p,m)=>{let g=0;for(let b=m-1;b>=p;b--){if(J.on)J.n++;let S=e[b].kind;if(s.has(S)||S==="OUTDENT"){g++;continue}if(r.has(S)||S==="INDENT"){if(g--,g<0)return!1;continue}if(g>0)continue;if(S===":"&&e[b-1]?.kind==="PROPERTY")return fs(e,m+1);if(S==="TERMINATOR")return!1}return!1},l=new Set(["IF","UNLESS","TRY","CATCH","FINALLY","SWITCH","FOR","CLASS"]),c=(p)=>{let m=0,g=0,b=0;for(let S=p;S({id:t(),kind:p,value:p,start:m,end:m,spaced:!1,newLine:!1,generated:!0,origin:g}),h=(p)=>{let m=c(p),g=null;for(let R=p;R=p;R--){if(J.on)J.n++;if(!e[R].generated){b=e[R];break}}let S=null;for(let R=m;R{while(n.length&&n[n.length-1].end===p){let m=n.pop();i.push({at:p,token:f("OUTDENT",m.closeAt,m.afterId)}),u=p}};for(let p=0;p"||m.kind==="=>")&&e[p+1]&&e[p+1].kind!=="INDENT"){let g=h(p+1);i.push({at:p+1,token:f("INDENT",g.openAt,g.firstReal?g.firstReal.id:null)}),n.push(g)}else if(m.kind==="THEN"&&Tl(e,p)){let g=h(p+1);m.kind="INDENT",m.value="INDENT",m.generated=!0,m.start=m.end=g.firstReal?g.firstReal.start:m.end,m.origin=g.firstReal?g.firstReal.id:null,n.push(g)}else if(m.kind==="ELSE"&&e[p+1]&&e[p+1].kind!=="INDENT"&&e[p+1].kind!=="IF"&&(u===p||e[p-1]?.kind==="OUTDENT")){let g=h(p+1);i.push({at:p+1,token:f("INDENT",g.openAt,g.firstReal?g.firstReal.id:null)}),n.push(g)}}return d(e.length),i}var Ht=new Set(["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS","DAMMIT","?","MAYBE_DAMMIT"]),as=new Set(["IDENTIFIER","PROPERTY","NUMBER","STRING","STRING_START","REGEX","HEREGEX_START","SYMBOL","MAP_START","PARAM_START","IF","TRY","SWITCH","CLASS","THIS","SUPER","UNDEFINED","NULL","BOOL","UNARY","NEW","DO","DO_IIFE","UNARY_MATH","AWAIT","YIELD","THROW","@","->","=>","[","(","{","--","++"]),os=new Set(["POST_IF","POST_UNLESS","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR","||","&&","??","THEN","ELSE"]),ls=new Set(["IF","TRY","FINALLY","CATCH","SWITCH","FOR","CLASS"]),cs=new Set(["IDENTIFIER","PROPERTY","NUMBER","STRING","STRING_END","REGEX","HEREGEX_END",")","CALL_END","]","INDEX_END","}","PICK_END","BOOL","NULL","UNDEFINED","THIS","@"]),oe=new Set(["(","[","{","PICK_START","OPTPICK_START","CALL_START","INDEX_START","PARAM_START","STRING_START","INTERPOLATION_START","HEREGEX_START","INDENT"]),ae=new Set([")","]","}","PICK_END","CALL_END","INDEX_END","PARAM_END","STRING_END","INTERPOLATION_END","HEREGEX_END","OUTDENT"]),Gt=(e,t)=>{let r=e[t],s=e[t+1];if(!r||!s||!s.spaced||!Ht.has(r.kind))return!1;if((r.kind==="]"||r.kind==="}")&&(s.kind==="->"||s.kind==="=>"))return!1;if(r.kind==="IDENTIFIER"&&(r.value==="Infinity"||r.value==="NaN")&&(s.kind==="->"||s.kind==="=>"))return!1;if(as.has(s.kind))return!0;return s.kind==="..."&&e[t+2]!=null&&as.has(e[t+2].kind)},fs=(e,t)=>{if(!e[t])return!1;let r=(s)=>(e[s]?.kind==="DAMMIT"||e[s]?.kind==="VOID_MARKER")&&e[s+1]?.kind===":";if(e[t].kind==="@"&&(e[t+2]?.kind===":"||r(t+2)))return!0;if(e[t+1]?.kind===":"||r(t+1))return!0;if(oe.has(e[t].kind)){let s=1,i=t;while(++i0){if(J.on)J.n++;if(oe.has(e[i].kind))s++;else if(ae.has(e[i].kind))s--}if(s===0&&e[i]?.kind===":")return!0}return!1},hs=new Set(["->","=>","[","(",",","{","ELSE","="]),gi=new Set(["INDENT","OUTDENT","TERMINATOR"]),_l=new Set(["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL","DEF"]),us=(e,t)=>{let r=0;for(;t>=0;t--){if(J.on)J.n++;let s=e[t].kind;if(r===0&&_l.has(s))return!0;if(ae.has(s)){r++;continue}if(oe.has(s)){if(r>0){r--;continue}if(!e[t].generated||gi.has(s))return!1;continue}if(r===0&&gi.has(s))return!1}return!1};function Nl(e,t){let r=[],s=[],i=[0],n=null,a=-1,o=()=>r[r.length-1],l=(g,b,S,w={})=>({id:t(),kind:g,value:g,start:b,end:b,spaced:w.spaced??!1,newLine:w.newLine??!1,generated:!0,origin:S}),c=(g)=>{r.pop(),s.push({at:g,token:l("}",n?n.end:0,n?n.id:null)})},f=(g)=>fs(e,g),h=()=>{for(let g=r.length-1;g>=0;g--){if(J.on)J.n++;let b=r[g];if(b.kind==="object")return b;if(!(b.kind==="INDENT"&&b.listContinuation))return null}return null},u=(g,b)=>{if(e[b]?.kind!=="...")return!1;let S=r[r.indexOf(g)-1];if(!S||!(S.kind==="["||S.kind==="CALL_START"))return!0;return p(S.at,g.at)},d=(g)=>{let b=e[g-1];return Boolean(b&&Ht.has(b.kind)&&f(g+1)&&!us(e,g-1))},p=(g,b)=>{let S=0;for(let w=b-1;w>g;w--){if(J.on)J.n++;let R=e[w].kind;if(ae.has(R)){S++;continue}if(oe.has(R)){if(R==="INDENT"&&S===0)return d(w);if(S--,S<0)return!1;continue}if(S>0)continue;if(R==="TERMINATOR")return!1;if(Gt(e,w))return!0}return!1},m=(g)=>{for(let b=0;g1)i.pop();if(S==="OUTDENT")for(let R=r.length-1;R>=0;R--){let T=r[R];if(T.kind!=="object"&&T.kind!=="CONTROL")break;if(T.kind==="object")T.sameLine=!1}continue}if(S==="TERNARY")i[i.length-1]++;if(S===":"){let R=i.length-1;if(i[R]>0){i[R]--;continue}if(w?.kind==="DAMMIT")w.kind="VOID_MARKER";let T=w?.kind==="VOID_MARKER"?1:0,F=ae.has(w?.kind)?o()?.at??g-1:g-1-T;if(e[g-2-T]?.kind==="@")F=g-2-T;let L=e[F-1],N=!Gt(e,F-1)&&(F<=0||gi.has(L?.kind)||Boolean(L?.newLine)),D=o(),O=r[r.length-2],W=(j)=>j&&(j.kind==="{"||j.kind==="PICK_START"||j.kind==="OPTPICK_START"||j.kind==="object"),H=(j)=>j==="{"||j==="PICK_START"||j==="OPTPICK_START",G=D?.kind==="INDENT"&&D.listContinuation?h():null,k=Boolean(G),v=G?G.at:D?.kind==="INDENT"&&O?O.at:D?.at;if(D&&(W(D)||D.kind==="INDENT"&&(H(O?.kind)||k))&&!(v!=null&&p(v,F))&&(N||L?.kind===","||H(L?.kind)||e[F]?.kind==="{"))continue;r.push({kind:"object",at:F,sameLine:!0,startsLine:N}),s.push({at:F,token:l("{",e[F].start,e[F].id,{spaced:e[F].spaced,newLine:e[F].newLine})});continue}if(os.has(S)||(S==="."||S==="?.")&&b.newLine){if(S==="||"||S==="&&"||S==="??"||S==="ELSE")continue;if(S==="TERMINATOR"){i[i.length-1]=0;for(let R=r.length-1;R>=0;R--){let T=r[R];if(T.kind!=="object"&&T.kind!=="CONTROL")break;if(T.kind==="object")T.sameLine=!1}}while(o()?.kind==="object"||S==="TERMINATOR"&&o()?.kind==="CONTROL"&&o()?.trigger==="CLASS"){let R=o();if(R.kind==="CONTROL"){r.pop();continue}if(S==="TERMINATOR")if(w?.kind!==","&&!(R.startsLine&&(f(g+1)||u(R,g+1))))c(g);else break;else if(R.sameLine&&w?.kind!==":"&&!((S==="POST_IF"||S==="POST_UNLESS")&&R.startsLine&&m(g+1)))c(g);else break}continue}if(S===","){let R=h(),T=(F)=>f(F)||u(R,F);if(R&&!p(R.at,g)&&!T(g+1)&&(e[g+1]?.kind!=="TERMINATOR"||!T(g+2))){if(e[g+1]?.kind==="INDENT"&&T(g+2))a=g;else if(o()?.kind==="object"){let F=e[g+1]?.kind==="OUTDENT"?1:0;while(o()?.kind==="object")c(g+F)}}}}if(e.length&&!e[e.length-1].generated)n=e[e.length-1];while(o()?.kind==="object"||o()?.kind==="CONTROL")if(o().kind==="object")c(e.length);else r.pop();return s}function Al(e,t){let r=[],s=[],i=-1,n=(l,c,f)=>({id:t(),kind:l,value:l==="CALL_START"?"(":")",start:c,end:c,spaced:!1,newLine:!1,generated:!0,origin:f}),a=null,o=(l)=>{r.pop(),s.push({at:l,token:n("CALL_END",a?a.end:0,a?a.id:null)})};for(let l=0;l0&&!e[l-1].generated)a=e[l-1];if(r[r.length-1]==="call"&&ls.has(h)&&!(h==="FOR"&&!c.newLine&&e[l-1]&&cs.has(e[l-1].kind))){r.push(h==="CLASS"?"CONTROL_CLASS":"CONTROL");continue}if(h==="INDENT"){if(l===i){r.push("INDENT");continue}let u=e[l-1];if(!u||!hs.has(u.kind))while(r[r.length-1]==="call")o(l);if(r[r.length-1]==="CONTROL"||r[r.length-1]==="CONTROL_CLASS")r.pop();r.push("INDENT");continue}if(oe.has(h))r.push(h);else if(ae.has(h)){while(r[r.length-1]==="call"||r[r.length-1]==="CONTROL"||r[r.length-1]==="CONTROL_CLASS")if(r[r.length-1]==="call")o(l);else r.pop();r.pop()}if(os.has(h)||(h==="."||h==="?.")&&c.newLine){if(h==="||"||h==="&&"||h==="??")continue;if(h==="ELSE"&&e[l-1]?.kind==="OUTDENT")continue;if(e[l-1]?.kind!==",")while(r[r.length-1]==="call"||h==="TERMINATOR"&&r[r.length-1]==="CONTROL_CLASS")if(r[r.length-1]==="call")o(l);else r.pop();continue}if(Gt(e,l)||Ht.has(h)&&f&&f.spaced&&(f.kind==="+"||f.kind==="-")&&e[l+2]&&!e[l+2].spaced&&!e[l+2].newLine)s.push({at:l+1,token:n("CALL_START",f.start,f.generated?f.origin:f.id)}),r.push("call");else if(Ht.has(h)&&f?.kind==="INDENT"&&e[l+2]?.kind==="{"&&e[l+2].generated&&!us(e,l))s.push({at:l+1,token:n("CALL_START",e[l+2].start,e[l+2].origin)}),r.push("call"),i=l+1}if(e.length&&!e[e.length-1].generated)a=e[e.length-1];while(r[r.length-1]==="call"||r[r.length-1]==="CONTROL"||r[r.length-1]==="CONTROL_CLASS")if(r[r.length-1]==="call")o(e.length);else r.pop();return s}var Kt=(e,t)=>bi(e,wl,t),Yt=(e,t)=>bi(e,Nl,t),zt=(e,t)=>bi(e,Al,t);var bs=new Map([["as","CAST"],["satisfies","SATISFIES"]]),Zt=(e)=>e?.kind==="IDENTIFIER"&&bs.has(e.value),ys=new Set(["IDENTIFIER","PROPERTY","NUMBER","STRING","STRING_END","REGEX","HEREGEX_END","BOOL","NULL","UNDEFINED",")","CALL_END","PARAM_END","]","INDEX_END","}","PICK_END","THIS","@","SUPER","?","MAYBE_DAMMIT","DAMMIT","CAST","SATISFIES","IMPORT_META"]),vl=new Set(["IDENTIFIER","PROPERTY","(","CALL_START","PARAM_START","{","[","INDEX_START","STRING","NUMBER","BOOL","NULL","UNDEFINED","-","UNARY","NEW","RESERVED"]),le=new Set(["(","CALL_START","PARAM_START","[","INDEX_START","{","PICK_START","OPTPICK_START"]),ce=new Set([")","CALL_END","PARAM_END","]","INDEX_END","}","PICK_END"]),Ol=new Set(["TERMINATOR","INDENT","OUTDENT",",","=","COMPOUND_ASSIGN","REACTIVE_ASSIGN","COMPUTED_ASSIGN","READONLY_ASSIGN","GATE","EFFECT","->"]),Il=new Set(["+","-","MATH","**","SHIFT","COMPARE","MATCH","&&","||","??","^","RELATION","TERNARY","?","MAYBE_DAMMIT",":","?.","DAMMIT","EXTENDS","..","...","IF","UNLESS","ELSE","THEN","WHILE","UNTIL","LOOP","FOR","WHEN","BY","SWITCH","RETURN","THROW","CATCH","FINALLY"]),$l=new Set(["IF","UNLESS","ELSE","THEN","WHILE","UNTIL","LOOP","FOR","WHEN","BY","SWITCH","RETURN","THROW"]),Dl=new Set(["IDENTIFIER","PROPERTY","RESERVED","NUMBER","STRING","TYPE_TEMPLATE","BOOL","NULL","UNDEFINED","THIS",".",",",":","?","TERNARY","...","|","&","=>","EXTENDS","(",")","PARAM_START","PARAM_END","[","]","INDEX_START","INDEX_END","{","}","INDENT","OUTDENT","TERMINATOR"]),xl=new Set(["IDENTIFIER","PROPERTY","RESERVED","NUMBER","STRING","TYPE_TEMPLATE","BOOL","NULL","UNDEFINED","THIS",")","PARAM_END","]","INDEX_END","}"]),Pl=new Set(["TERMINATOR","INDENT","OUTDENT","{",","]),Jt=(e,t,r)=>{if(t-1{let n=0,a=[],o=(u=0)=>a[a.length-1-u],l=null,c=!1,f=[],h=(u,d)=>{n-=d;for(let p=0;p"){h(d,1),c=!0;continue}if(p==="SHIFT"&&d.value===">>"){h(d,2),c=!0;continue}if(p==="SHIFT"&&d.value===">>>"){h(d,3),c=!0;continue}if(p==="UNARY"&&d.value==="typeof"){c=!1;continue}if(d.word==="is"&&c&&u-2>=t&&(e[u-1].kind==="IDENTIFIER"||e[u-1].kind==="PROPERTY"||e[u-1].kind==="THIS")&&(e[u-2].kind==="=>"||e[u-2].value==="asserts"||e[u-2].kind===":"&&e[u-3]?.kind==="CALL_END")){c=!1;continue}if(p==="RELATION"&&d.value==="in"&&o()==="["&&o(1)==="{"&&u-2>=t&&(e[u-2].kind==="["||e[u-2].kind==="INDEX_START")&&(e[u-1].kind==="IDENTIFIER"||e[u-1].kind==="PROPERTY")&&Jt(e,u-2,t)){c=!1;continue}if(d.value==="?"&&c&&e[u+1]?.kind===":"){c=!1;continue}if(p==="-"&&e[u+1]?.kind==="NUMBER"&&!c){u++,c=!0;continue}if((p==="-"||p==="+")&&e[u+1]?.value==="readonly"&&(e[u+2]?.kind==="["||e[u+2]?.kind==="INDEX_START")&&o()==="{"&&Jt(e,u,t)){c=!1;continue}if((p==="-"||p==="+")&&e[u+1]?.value==="?"&&e[u+2]?.kind===":"&&o()==="{"&&(e[u-1]?.kind==="]"||e[u-1]?.kind==="INDEX_END")){c=!0;continue}if(p==="="&&n>0){c=!1;continue}if((o()==="{"||i.methods&&o()===void 0)&&p==="CALL_START"){let m=e[u-1],g=Jt(e,u-1,t);if(m&&(m.kind==="IDENTIFIER"||m.kind==="PROPERTY")&&g){let b=1,S=u+1;while(S0){if(e[S].kind==="CALL_START")b++;else if(e[S].kind==="CALL_END")b--;S++}if(b===0&&e[S]?.kind===":"){f.push(S-1),a.push("("),c=!1;continue}if(b===0)s(`an interface method shorthand needs a return type — \`${m.value}(…): T\``,m.start)}}if(p==="CALL_END"&&u===f[f.length-1]){f.pop(),a.pop(),c=!0;continue}if(Dl.has(p)){if(ds.has(p))a.push(ds.get(p));else if(Cl.has(p))a.pop();c=xl.has(p);continue}s(`code expression ('${d.word??d.value}') in a type body — types erase and cannot execute`,d.start)}if(n>0)s("unclosed '<' in a type body — the generic never closes",l.start)},Ll=new Set(["=",":","COMPOUND_ASSIGN","REACTIVE_ASSIGN","COMPUTED_ASSIGN","READONLY_ASSIGN",",","[","(","{","CALL_START","INDEX_START","PARAM_START","PICK_START","OPTPICK_START","RETURN","THROW","AWAIT","YIELD"]),ee=(e,t)=>{let r=e[t];if(!r)return!0;if(r.kind==="TERMINATOR"||r.kind==="EXPORT"||r.kind==="OFFER")return!0;if(r.kind!=="INDENT"&&r.kind!=="OUTDENT")return!1;let s=0;for(let i=t;i>=0;i--){if(J.on)J.n++;let n=e[i].kind;if(n==="OUTDENT")s++;else if(n==="INDENT"){if(s===0){let a=e[i-1];return!(a&&Ll.has(a.kind))}s--}}return!0},Si=(e,t,r)=>{if(r<=t)return!1;let s=new Set(["|","&",",",":","?","TERNARY",".","..."]),i=0,n=0,a=0,o=0,l=!1,c=[],f=null;for(let h=t;h"){let p=h>t?e[h-1].kind:null;if((p===")"||p==="PARAM_END")&&f&&(f.colon||f.empty)){l=!1;continue}return!1}if(u==="("||u==="PARAM_START"){c.push({colon:!1,open:h}),i++,l=!1;continue}if(u===")"||u==="PARAM_END"){if(--i<0)return!1;let p=c.pop();f=p?{colon:p.colon,empty:h===p.open+1}:null,l=!0;continue}if(u==="["||u==="INDEX_START"){n++,l=!1;continue}if(u==="]"||u==="INDEX_END"){if(--n<0)return!1;l=!0;continue}if(u==="{"){a++,l=!1;continue}if(u==="}"){if(--a<0)return!1;l=!0;continue}if(u==="COMPARE"){if(d==="<"){o++,l=!1;continue}if(d===">"){if(o<=0)return!1;o--,l=!0;continue}return!1}if(u==="SHIFT"){if(d===">>"){if(o<2)return!1;o-=2,l=!0;continue}if(d===">>>"){if(o<3)return!1;o-=3,l=!0;continue}return!1}if(u==="="){if(o>0){l=!1;continue}return!1}if(s.has(u)){if(u===":"&&c.length)c[c.length-1].colon=!0;l=!1;continue}if(u==="IDENTIFIER"||u==="PROPERTY"||u==="NUMBER"||u==="RESERVED"||u==="STRING"||u==="NULL"||u==="UNDEFINED"||u==="BOOL"){if(l)return!1;l=!0;continue}return!1}return i===0&&n===0&&a===0&&o===0&&l},ms=(e,t,r,s)=>{let i=[],n=[],a=[],o=0,l=t,c=e[t-1]?.end??0,f=(u)=>s("unclosed '<' in a type — the generic argument list never closes"+(r.cast?"; if the '<' was meant as a comparison, parenthesize the cast: '(x as T) < y'":""),u.start),h=(u,d)=>{for(let p=0;pl&&u.newLine)break;if(d==="SHIFT"&&(u.value===">>"||u.value===">>>")&&a.length>0){h(u,u.value===">>"?2:3),i.push(u.value),c=u.end,t++;continue}if(d==="COMPARE"&&u.value===">"){if(o===0)break;h(u,1),i.push(u.value),c=u.end,t++;continue}if(le.has(d)||d==="COMPARE"&&u.value==="<"){o++;let m=d==="{"?"{":d==="["||d==="INDEX_START"?"[":d==="COMPARE"?"<":"(";if(n.push(m),m==="<")a.push(u);i.push(u.value),c=u.end,t++;continue}if(ce.has(d)){if(o===0)break;if(n[n.length-1]==="<")f(a[a.length-1]);o--,n.pop(),i.push(u.value),c=u.end,t++;continue}if(d==="INTERPOLATION_END"||d==="STRING_END"||d==="HEREGEX_END")break;if(o===0){if(Ol.has(d))break;if(r.stopAtFatArrow&&d==="=>")break;if(r.stopAtThen&&d==="THEN")break;if(r.cast&&Il.has(d))if(t===l&&(d==="-"||d==="+")&&e[t+1]?.kind==="NUMBER"){if(d==="+")s("a numeric literal type spells its sign with '-' (TypeScript has no '+1' type)",u.start,e[t+1].end)}else break;if(r.alias&&$l.has(d))break}else{if(d==="INDENT"||d==="OUTDENT"){t++;continue}if(d==="TERMINATOR"){i.push(";"),c=u.end,t++;continue}if(d==="PROPERTY"&&n[n.length-1]==="{"){let m=i[i.length-1];if(m&&m!=="{"&&m!==","&&m!==";")i.push(";")}}if(d==="?"&&!u.spaced&&e[t+1]?.kind===":"&&i.length){i[i.length-1]+="?",c=u.end,t++;continue}i.push(u.word==="is"?u.word:u.value),c=u.end,t++}if(a.length)f(a[0]);return{parts:i,consumed:t-l,end:c}},Ml=(e)=>e.join(" ").replace(/\s+/g," ").trim().replace(/\s*<\s*/g,"<").replace(/\s*>\s*/g,">").replace(/\s*\[\s*/g,"[").replace(/\s*\]\s*/g,"]").replace(/\s*\(\s*/g,"(").replace(/\s*\)\s*/g,")").replace(/\s*,\s*/g,", ").replace(/\s*=>\s*/g," => ").replace(/ : /g,": "),jl=(e,t,r)=>{let s=(l)=>l==="("||l==="PARAM_START"||l==="CALL_START",i=(l)=>l===")"||l==="PARAM_END"||l==="CALL_END";if(r-t<2||!s(e[t].kind))return!1;let n=0;for(let l=t;l{if(!(e[t]?.kind==="COMPARE"&&e[t].value==="<"&&!e[t].spaced))return t;let r=0;while(t")r--;else if(s.kind==="SHIFT"&&s.value===">>")r-=2;else if(s.kind==="SHIFT"&&s.value===">>>")r-=3;else if(s.kind==="TERMINATOR"||s.kind==="INDENT"||s.kind==="OUTDENT")return-1;if(t++,r===0)break}return r===0?t:-1},Qt=(e,t)=>{if(t<0||!e[t]||Ri(e[t])>=0)return t;let r=0;while(t>=0){if(J.on)J.n++;let s=e[t];if(s.kind==="TERMINATOR"||s.kind==="INDENT"||s.kind==="OUTDENT")return-1;if(r+=Ri(s),t--,r===0)break}return r===0?t:-1},er=(e,t)=>{let r=Qt(e,t-1);if(r<0||e[r]?.kind!=="IDENTIFIER")return!1;let s=e[r-1];if(!(s?.kind==="IDENTIFIER"&&s.value==="type"))return!1;return ee(e,r-2)},Ri=(e)=>e.kind==="COMPARE"&&e.value==="<"?1:e.kind==="COMPARE"&&e.value===">"?-1:e.kind==="SHIFT"&&e.value===">>"?-2:e.kind==="SHIFT"&&e.value===">>>"?-3:0,Q1=(e,t)=>{let r=e[t];if(!r||r.kind!=="IDENTIFIER"&&r.kind!=="PROPERTY")return!1;if(e[t-1]?.kind==="DEF")return!0;return r.kind==="PROPERTY"&&e[t-1]?.kind==="@"&&e[t-2]?.kind==="DEF"},Fl=(e,t)=>{let r=e[t-1];if(!r)return!1;if(r.kind===")"||r.kind==="CALL_END"||r.kind==="PARAM_END")return!0;if(r.kind==="IDENTIFIER"||r.kind==="PROPERTY"){if(Q1(e,t-1))return!0;let s=e[t-2]?.kind==="@"?t-3:t-2;if(ee(e,s))return!0}if(r.kind==="VOID_MARKER"&&Q1(e,t-2))return!0;return null},ps=(e)=>e.kind==="TERMINATOR"||e.kind==="INDENT"||e.kind==="OUTDENT",Bl=(e,t)=>{if(t.upTo>e.length||t.upTo>0&&e[t.upTo-1]!==t.ref){t.answers.clear(),t.level=0;let r=e.length-1;while(r>=0&&!ps(e[r])){if(J.on)J.n++;r--}t.upTo=r+1}for(let r=t.upTo;r{let s=e[e.length-1];if(!s)return!1;if(!(s.kind==="COMPARE"&&s.value===">"||s.kind==="SHIFT"&&(s.value===">>"||s.value===">>>")))return!1;if(t)return!0;return Bl(e,r),r.answers.get(r.level)??!1},Xt=(e,t)=>{let r=0,s=!1;for(let i=t+1;i")return-1;if(n==="=>")s=!0;else if(n==="="||n==="REACTIVE_ASSIGN"||n==="COMPUTED_ASSIGN"||n==="READONLY_ASSIGN"||n==="GATE"||n==="EFFECT"){if(!s||Si(e,t+1,i))return i}}}return-1},Ul=(e)=>{let t=[new Map],r=Array(e.length),s=[{id:0,up:null}],i=0;for(let n=0;n"||l==="=>";s.push({id:o,up:c?null:s[s.length-1]})}else if(a==="OUTDENT"){if(s.length>1)s.pop()}else if(le.has(a))i++;else if(ce.has(a))i--;else if(i===0&&(a==="IDENTIFIER"||a==="PROPERTY")&&e[n+1]?.kind==="=")for(let o=s[s.length-1];o;o=o.up){if(J.on)J.n++;t[o.id].set(e[n].value,n)}}return{blockMaps:t,blockIdAt:r}},Vl=(e,t)=>{let r=0;for(;t"||s==="=>")return!0;if(s==="TERMINATOR"||s==="INDENT"||s==="OUTDENT")return!1}}return!1},Wl=(e,t)=>{let r=0;for(let s=t+1;s{let s=0;for(let i=t;i{let r=0;for(let s=t;s","=>","DO","DO_IIFE","TRY","LOOP"]),Yl=new Set(["IF","UNLESS","SWITCH","WHILE","UNTIL","FOR","CLASS"]),zl=new Set(["->","=>","THEN","ELSE"]),ql=new Set(["TERMINATOR","INDENT","OUTDENT","THEN","ELSE","IF","UNLESS","POST_IF","POST_UNLESS","WHILE","UNTIL","LOOP","FOR","WHEN","BY","SWITCH","RETURN","THROW",",","=","COMPOUND_ASSIGN","&&","||","??","TERNARY","?",":","RELATION","+","-","MATH","**","SHIFT","&","|","^","STRING_START","STRING_END","INTERPOLATION_START","INTERPOLATION_END"]),Xl=new Map([["yes","true"],["no","false"],["on","true"],["off","false"],["true","true"],["false","false"],["null","null"],["undefined","undefined"],["this","this"]]);function tr(e,t,r,s){let i=[],n=[],a=new WeakSet,o=()=>n[n.length-1]??null,l=!1,c=[],f=()=>c.length>0&&!!c[c.length-1],h=()=>c[c.length-1]??!1,u=(N)=>{let D=Xl.get(N.value);if(D===void 0)return;s(`'${N.value}' cannot name a binding — every read of '${N.value}' lowers to \`${D}\`, so the binding would be unreachable`,N.start,N.end)},d=-1,p=0,m=!1,g=!1,b=null,S=(N,D)=>(b??=Ul(e),(b.blockMaps[b.blockIdAt[N]].get(D)??-1)>=N),w=null,R=(N)=>{let D=[],O=N,W=!0,H=-1;for(;;){if(J.on)J.n++;let j=Wl(e,O);if(j<0){if(Xt(e,O)>=0)break;D.push({colon:O,shaped:!1,assigned:!1}),W=!1,H=-1;break}if(Gl(e,O+1,j)){D.push({colon:O,shaped:!1,assigned:!1}),W=!1,H=-1;break}D.push({colon:O,shaped:j>O+1&&Si(e,O+1,j),assigned:S(j+1,e[O-1].value)}),H=j;let X=e[j+1];if(X&&(X.kind==="IDENTIFIER"||X.kind==="PROPERTY")&&e[j+2]?.kind===":"){O=j+2;continue}break}let G=H>=0?e[H+1]:null,k=W&&G!=null&&G.kind!=="OUTDENT",v=k&&D.every((j)=>j.shaped&&j.assigned);if(!v&&k&&D.some((j)=>j.shaped)&&D.some((j)=>j.assigned)){let j=D.find((Z)=>!(Z.shaped&&Z.assigned)),X=e[j.colon-1],x=j.shaped?`'${X.value}' is never assigned in this block`:`the value after '${X.value}:' is not a type`;s("these adjacent 'name:' lines are ambiguous — with every line a type and every "+`name assigned later they would all claim as typed forward declarations, but ${x}; for typed forwards, assign every name in this block or add an initializer ('${X.value}: T = value'); for an implicit object, parenthesize the literal or assign it to a target`,X.start)}w??=new Map;for(let j of D)w.set(j.colon,v);return v},T=(N,D,O,W,H)=>({id:t(),kind:N,value:D,start:O,end:W,spaced:H.spaced,newLine:H.newLine,generated:!1,origin:null}),F=(N,D,O,W)=>{if(e[O]?.kind===":")s("type annotations use a single ':' (e.g. `x: number`), not '::'",D.start,e[O].end);let H=ms(e,O,W,s);if(H.parts.length===0)return-1;for(let G=O;G R) => body`, not `(x): (a: T) => R => body`",e[O].start);return i.push(T(N,Ml(H.parts),D.start,H.end,D)),O+H.consumed-1},L=(N)=>{let D=N+1;if(e[D]?.kind!=="IDENTIFIER")return-1;if(D++,D=qt(e,D),D<0)return-1;if(e[D]?.kind!=="=")return-1;if(D++,e[D]?.kind==="INDENT"){let H=gs(e,D);return yi(e,D+1,H,s,{methods:!0}),H}let O=ms(e,D,{alias:!0},s);if(O.parts.length===0)s("a type alias needs a type after '='",e[D-1].end);yi(e,D,D+O.consumed,s);let W=e[D+O.consumed];if(W&&W.kind!=="TERMINATOR"&&W.kind!=="OUTDENT")s(`a type alias must fill its line — unexpected '${W.value}' after the type`,W.start);return D+O.consumed-1},P=(N)=>{let D=N+1;if(e[D]?.kind!=="IDENTIFIER")return-1;if(D++,D=qt(e,D),D===-1)return-1;if(e[D]?.kind==="EXTENDS"){if(e[D+1]?.kind!=="IDENTIFIER")return-1;if(D+=2,D=qt(e,D),D===-1)return-1}if(e[D]?.kind!=="INDENT")return-1;let O=gs(e,D);return yi(e,D+1,O,s,{methods:!0}),O};for(let N=0;N=0){let G=W?.kind==="EXPORT"?i.pop():D,k=e[H].end;i.push(T("TYPE_DECL",r.slice(G.start,k).replace(/\r\n/g,` -`),G.start,k,D)),N=H;continue}}if(Zt(D)&&W&&W.kind!=="."&&W.kind!=="?."&&ys.has(W.kind)&&e[N+1]&&(vl.has(e[N+1].kind)||e[N+1].kind==="+"&&e[N+2]?.kind==="NUMBER")){let H=F(bs.get(D.value),D,N+1,{cast:!0});if(H<0)s(`'${D.value}' takes a type — \`x ${D.value} T\``,D.start,D.end);if(H>=0){N=H;let G=e[N+1],k=i[i.length-1];if(G&&G.newLine&&G.kind!=="TERMINATOR"&&G.kind!=="INDENT"&&G.kind!=="OUTDENT"&&!Zt(G)){let v=r.slice(k.end,G.start),j=v.indexOf(` -`);if(j>=0){let X=v[j-1]==="\r",x=k.end+j-(X?1:0),Z=X?2:1;i.push({id:t(),kind:"TERMINATOR",value:r.slice(x,x+Z),start:x,end:x+Z,spaced:!1,newLine:!1,generated:!0,origin:null})}}continue}}if(O==="COMPARE"&&D.value==="<"&&!D.spaced&&W&&(W.kind==="IDENTIFIER"||Q1(i,i.length-1))){let H=i[i.length-2]??null,G=qt(e,N);if(G>N){let k=G-1,v=e[k+1]?.kind,j=H?.kind==="DEF"||Q1(i,i.length-1),X=v==="="&&e[k+2]?.kind==="COMPONENT";if(j||X){if(j&&v==="("){let x=0;for(let Z=k+1;Z=0){N=U;continue}}if(W.kind==="CALL_END"&&a.has(W)){let U=F("TYPE",D,N+1,{});if(U>=0){N=U;continue}}if(Q1(i,i.length-1)){let U=F("TYPE",D,N+1,{});if(U>=0){if(W.kind==="PROPERTY"&&G?.kind==="DEF")u(W),W.kind="IDENTIFIER";N=U;continue}}if(W.kind==="TYPE_PARAMS"&&Q1(i,i.length-2)){let U=F("TYPE",D,N+1,{});if(U>=0){N=U;continue}}if(W.kind==="VOID_MARKER"&&Q1(i,i.length-2)){let U=F("TYPE",D,N+1,{});if(U>=0){N=U;continue}}if(n.length===0&&(W.kind==="PROPERTY"||W.kind==="IDENTIFIER")&&G?.kind==="CATCH"){let U=F("TYPE",D,N+1,{stopAtThen:!0});if(U>=0){if(W.kind==="PROPERTY")u(W),W.kind="IDENTIFIER";N=U;continue}}if(H&&(H.kind==="param"||H.kind==="defparam")&&!H.sawEq&&!H.sawType&&H.bodyDepth===0&&!H.inlineBody){let U=W.kind==="PROPERTY"||W.kind==="IDENTIFIER",r1=W.kind==="}"||W.kind==="]",Q=W.kind==="?"&&(G?.kind==="PROPERTY"||G?.kind==="IDENTIFIER");if(U||r1||Q){let l1=F("TYPE",D,N+1,{});if(l1>=0){if(Q){if(W.kind="OPT_MARKER",G.kind==="PROPERTY")G.kind="IDENTIFIER"}else if(W.kind==="PROPERTY"&&e[N-2]?.kind!=="@")u(W),W.kind="IDENTIFIER";H.sawType=!0,N=l1;continue}}}let k=W.kind==="OPT_MARKER"?1:0,v=k?i[i.length-2]??null:W,j=(i[i.length-2-k]??null)?.kind==="@",X=i.length-(j?3:2)-k,x=v!==null&&(v.kind==="PROPERTY"||v.kind==="IDENTIFIER")&&ee(i,X),Z=v!==null&&v.kind==="STRING"&&ee(i,X);if(n.length===0&&x&&!j)g=!0;if(n.length===0&&W.kind==="PROPERTY"&&i[i.length-2]?.kind==="."&&i[i.length-3]?.kind==="PROPERTY"&&i[i.length-3].value==="prototype"&&i[i.length-4]?.kind==="?."&&i[i.length-5]?.kind==="IDENTIFIER"&&ee(i,i.length-6)&&Xt(e,N)>=0)s("an annotated prototype member requires the unconditional chain (`X::m: T = v`) — "+"the soak form cannot carry the annotation",D.start,D.end);if(n.length===0&&W.kind==="PROPERTY"&&i[i.length-2]?.kind==="."&&i[i.length-3]?.kind==="PROPERTY"&&i[i.length-3].value==="prototype"&&i[i.length-4]?.kind==="."&&i[i.length-5]?.kind==="IDENTIFIER"&&ee(i,i.length-6)&&Xt(e,N)>=0){let U=F("TYPE",D,N+1,{});if(U>=0){N=U;continue}}if(n.length===0&&(x||Z)&&Xt(e,N)>=0){let U=F("TYPE",D,N+1,{});if(U>=0){if(v.kind==="PROPERTY"&&!j){if(h()!=="class")u(v);v.kind="IDENTIFIER"}g=!1,N=U;continue}}if(n.length===0&&f()&&x&&!Vl(e,N+1)){let U=-1,r1=0;for(let Q=N+1;QN+1&&Si(e,N+1,U)){let Q=F("TYPE",D,N+1,{});if(Q>=0){if(v.kind==="PROPERTY"&&!j){if(h()==="component")u(v);v.kind="IDENTIFIER"}N=Q;continue}}}if(n.length===0&&!f()&&x&&!j&&!k){let U=w?.get(N);if(U!==void 0?U:!m&&R(N)){let Q=F("TYPE",D,N+1,{});if(Q>=0){if(W.kind==="PROPERTY")u(W),W.kind="IDENTIFIER";g=!1,N=Q;continue}}}}if(le.has(O))p++;else if(ce.has(O)){if(p--,d>=0&&p=0&&p===d){if(O==="COMPARE"&&D.value==="<")s("class generics are not supported — the class head's '<' parses as a comparison "+"and the statement miscompiles silently (`class Box` compiles to "+"`(class Box {} < T) && …`); remove the generic list",D.start);if(ql.has(O))d=-1}if(O==="CLASS"||O==="COMPONENT")l=O==="CLASS"?"class":"component";else if(O==="THEN")l=!1;else if(O==="INDENT")c.push(l),l=!1;else if(O==="OUTDENT")c.pop();else if(O==="TERMINATOR")l=!1;if(n.length===0){if(O==="TERMINATOR")m=g,g=!1;else if(O==="INDENT"||O==="OUTDENT")m=!1,g=!1}if(le.has(O)){let H="other";if(O==="PARAM_START")H="param";else if(O==="CALL_START"&&Q1(i,i.length-1))H="defparam";else if(O==="CALL_START"&&W?.kind==="TYPE_PARAMS"&&Q1(i,i.length-2))H="defparam";else if(O==="CALL_START"&&W?.kind==="VOID_MARKER"&&Q1(i,i.length-2))H="defparam";n.push({kind:H,sawEq:!1,sawType:!1,bodyDepth:0,pendingImmediate:!1,pendingCond:!1,inlineBody:!1})}else if(ce.has(O)){if(n.pop()?.kind==="defparam"&&O==="CALL_END")a.add(D)}else{let H=o();if(H&&(H.kind==="param"||H.kind==="defparam")){let G=()=>{H.sawEq=!1,H.sawType=!1,H.pendingImmediate=!1,H.pendingCond=!1,H.inlineBody=!1};if(H.bodyDepth>0){if(O==="INDENT")H.bodyDepth++;else if(O==="OUTDENT")H.bodyDepth--}else if(O==="INDENT")if(H.pendingImmediate||H.pendingCond)H.bodyDepth=1,H.pendingImmediate=!1,H.pendingCond=!1,H.inlineBody=!1;else G();else if(O===","||O==="OUTDENT")G();else if(O==="TERMINATOR")if(H.inlineBody&&D.value===";")H.pendingImmediate=!1,H.pendingCond=!1;else G();else{if(H.pendingImmediate=Kl.has(O),Yl.has(O)&&W?.kind==="=")H.pendingCond=!0;else if(O==="THEN")H.pendingCond=!1;if(zl.has(O))H.inlineBody=!0;if(O==="=")H.sawEq=!0}}}i.push(D)}e.length=i.length;for(let N=0;N"&&r!=="=>")continue;let s=t-1,i=e[s];if(!i)continue;if(i.kind==="DO"){i.kind="DO_IIFE";continue}if(i.kind!==")"){let a=0,o=-1;for(let l=t-1;l>=0;l--){if(J.on)J.n++;let c=e[l],f=c.kind;if(f===")"||f==="]"||f==="}"||f==="PICK_END"||f==="CALL_END"||f==="PARAM_END"||f==="INDEX_END"||f==="COMPARE"&&c.value===">")a++;else if(f==="("||f==="["||f==="{"||f==="PICK_START"||f==="OPTPICK_START"||f==="CALL_START"||f==="PARAM_START"||f==="INDEX_START"||f==="COMPARE"&&c.value==="<")a--;else if(f==="SHIFT"&&c.value===">>")a+=2;else if(f==="SHIFT"&&c.value===">>>")a+=3;else if(a===0){if(f===":"){if(e[l-1]?.kind===")")o=l-1;break}if(f==="TERMINATOR"||f==="INDENT"||f==="OUTDENT"||f==="="||f==="->"||f==="=>")break}}if(o<0)continue;s=o,i=e[s]}else{let a=0,o=-1;for(let l=t-1;l>=0;l--){if(J.on)J.n++;let c=e[l].kind;if(c===")"||c==="CALL_END"||c==="PARAM_END")a++;else if(c==="("||c==="CALL_START"||c==="PARAM_START"){if(--a===0){o=l;break}}}if(o>1&&e[o-1].kind===":"&&e[o-2]?.kind===")")s=o-2,i=e[s]}let n=0;for(let a=s-1;a>=0;a--){if(J.on)J.n++;let o=e[a];if(o.kind===")"||o.kind==="CALL_END"||o.kind==="INDEX_END"||o.kind==="]")n++;else if(o.kind==="("||o.kind==="CALL_START"||o.kind==="INDEX_START"||o.kind==="["){if(n>0){n--;continue}if(o.kind==="("){if(o.kind="PARAM_START",i.kind="PARAM_END",e[a-1]?.kind==="DO")e[a-1].kind="DO_IIFE"}break}}}return e}function Zl(e){let t=new Set(["(","[","{","PICK_START","OPTPICK_START","CALL_START","INDEX_START","PARAM_START","STRING_START","INTERPOLATION_START","HEREGEX_START","INDENT"]),r=new Set([")","]","}","PICK_END","CALL_END","INDEX_END","PARAM_END","STRING_END","INTERPOLATION_END","HEREGEX_END","OUTDENT"]),s=[0];for(let i=0;i0)s[a]--}else if(n==="INDEX_START"&&s[s.length-1]===0){let a=1,o=i;while(++o0){if(J.on)J.n++;if(t.has(e[o].kind))a++;else if(r.has(e[o].kind))a--}if(a===0&&e[o]?.kind===":")e[i].kind="[",e[o-1].kind="]"}if(t.has(e[i].kind))s.push(0);else if(r.has(e[i].kind))s.pop()}return e}var Ql=new Set(["STRING","STRING_END","REGEX","HEREGEX_END","NUMBER","BOOL","NULL","UNDEFINED","]","}","SYMBOL"]);function e3(e){let t=0;for(let r=0;r0&&(s==="->"||s==="=>")&&r>0&&(Ql.has(e[r-1].kind)||e[r-1].kind==="IDENTIFIER"&&(e[r-1].value==="Infinity"||e[r-1].value==="NaN")))e.splice(r,0,{kind:",",value:",",start:e[r].start,end:e[r].start}),r++}return e}function t3(e){let t=new Set(["(","[","{","PICK_START","OPTPICK_START","CALL_START","INDEX_START","PARAM_START","STRING_START","INTERPOLATION_START","HEREGEX_START","INDENT"]),r=new Set([")","]","}","PICK_END","CALL_END","INDEX_END","PARAM_END","STRING_END","INTERPOLATION_END","HEREGEX_END","OUTDENT"]),s=(n)=>n!==void 0&&(n.kind==="IDENTIFIER"||n.kind==="PROPERTY"),i=[0];for(let n=0;n0)i[o]--}else if(s(e[n])&&i[i.length-1]===0&&e[n-1]?.kind!=="."&&e[n-1]?.kind!=="?."&&e[n-1]?.kind!=="@"){let o=n;for(;;){if(J.on)J.n++;let l=e[o+1],c=e[o+2];if(l===void 0||!s(c))break;if(l.kind==="."){o+=2;continue}if(l.kind==="-"&&l.start===e[o].end&&c.start===l.end){o+=2;continue}break}if(o>n&&e[o+1]?.kind===":"){let l="";for(let f=n;f<=o;f++)l+=e[f].value;let c={...e[n],kind:"STRING",value:JSON.stringify(l),end:e[o].end};e.splice(n,o-n+1,c)}}if(t.has(e[n].kind))i.push(0);else if(r.has(e[n].kind))i.pop()}return e}function r3(e){for(let t=0;t>>=":"COMPOUND_ASSIGN"},ws={"**=":"COMPOUND_ASSIGN","&&=":"COMPOUND_ASSIGN","||=":"COMPOUND_ASSIGN","??=":"COMPOUND_ASSIGN","<<=":"COMPOUND_ASSIGN",">>=":"COMPOUND_ASSIGN","//=":"COMPOUND_ASSIGN","%%=":"COMPOUND_ASSIGN",">>>":"SHIFT","...":"...","<=>":"BIND"},_s={"==":"COMPARE","!=":"COMPARE","<=":"COMPARE",">=":"COMPARE","**":"**","&&":"&&","||":"||","??":"??","..":"..","+=":"COMPOUND_ASSIGN","-=":"COMPOUND_ASSIGN","*=":"COMPOUND_ASSIGN","/=":"COMPOUND_ASSIGN","%=":"COMPOUND_ASSIGN","&=":"COMPOUND_ASSIGN","^=":"COMPOUND_ASSIGN","|=":"COMPOUND_ASSIGN",":=":"REACTIVE_ASSIGN","~=":"COMPUTED_ASSIGN","<~":"GATE","=!":"READONLY_ASSIGN","<<":"SHIFT",">>":"SHIFT","//":"MATH","%%":"MATH","~>":"EFFECT","!>":"!>","=~":"MATCH","->":"->","=>":"=>","++":"++","--":"--","?.":"?.",".=":"METHOD_ASSIGN","*{":"MAP_START"},i3=new Set([".","?.","UNARY","NEW","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","??","TERNARY","EXTENDS"]),ir=new Set(["IDENTIFIER","PROPERTY",")","CALL_END","NUMBER","STRING","]","INDEX_END","SUPER","DAMMIT","MAYBE_DAMMIT","DYNAMIC_IMPORT"]),at=new Set([...ir,"BOOL","NULL","UNDEFINED","}","PICK_END","STRING_END","REGEX","HEREGEX_END","THIS","@"]);function n3(e,t){let r=t;while(r=e.length||s3.test(e[r+1])))r++;return r}var s3=/[\s,)\]};:]/,ki=/[0-9]/,a3=/^0b[01](?:_?[01])*n?|^0o[0-7](?:_?[0-7])*n?|^0x[\da-f](?:_?[\da-f])*n?|^\d+(?:_\d+)*n|^(?:\d+(?:_\d+)*)?\.?\d+(?:_\d+)*(?:e[+-]?\d+(?:_\d+)*)?/i,o3=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,l3=/^\w*/,Ns=/^(?!.*(.).*\1)[gimsuy]*$/,c3=new Set([...at,"++","--"]);function f3(e,t="",{tolerant:r=!1}={}){An();let s=new ye(e,t),i=[],n=[],a=[],o=[""],l=[],c=0,f=0,h=!0,u=-1,d=!1,p=!1,m=null,g=(_)=>_?.kind==="{"||_?.kind===","||(_?.kind==="INDENT"||_?.kind==="TERMINATOR")&&l.length>0,b=(_)=>Boolean(rr[_]&&_!=="own")||Es.has(_)||Rs.has(_)||Boolean(Ei[_])||_==="in"||_==="of"||_==="when"||_==="import"||_==="export",S=(_,z)=>w&&g(_)&&/^[^\S\n]+as[^\S\n]/.test(z)||R&&_?.kind==="AS",w=!1,R=!1,T=!1,F=0,L=0,P=[],N=(_,z,q=z)=>{let{line:t1,col:C}=s.lineColAt(z),Y=Error(`${t}:${t1+1}:${C+1}: ${_}`);throw Y.reason=_,Y.start=z,Y.end=q,Y},D=(_,z,q=z)=>{try{N(_,z,q)}catch(t1){throw t1.openAtEnd=!0,t1}},O=(_,z,q,t1,C={})=>{if((_==="STRING"||_==="STRING_START")&&(w||R)){let o1=i[i.length-1];if(o1?.kind==="IDENTIFIER"&&o1.value==="from")o1.kind="FROM"}if(_==="IDENTIFIER"&&z==="from"&&i[i.length-1]?.kind==="YIELD")_="FROM";if(_==="IDENTIFIER"&&z==="from"&&i[i.length-1]?.kind==="IDENTIFIER"&&i[i.length-2]?.kind==="ACCEPT")_="FROM";if(_==="RELATION"){let o1=i[i.length-1];if(o1?.kind==="UNARY"&&o1.value==="!")i.pop(),z="!"+z,q=o1.start}let Y={id:L++,kind:_,value:z,start:q,end:t1,spaced:d,newLine:p,generated:!1,origin:null,...C};if(i.push(Y),!Y.generated&&P.length>0){for(let o1 of P)o1.origin=Y.id;P.length=0}d=!1,p=!1},W=(_,z)=>{let q={id:L++,kind:_,value:_,start:z,end:z,spaced:!1,newLine:!1,generated:!0,origin:null};P.push(q),i.push(q)},H=()=>i[i.length-1]??null,G=()=>{let _=i.length-1;while(_>=2&&i[_].kind==="."&&i[_-1].kind==="PROPERTY"&&i[_-2].kind===".")_-=2;let z=i[_-1];if(!z||z.kind==="INDENT"||z.kind==="TERMINATOR"||z.kind==="OUTDENT"||z.kind==="RENDER")return!0;return z.kind==="IDENTIFIER"&&$e.has(String(z.value).split("#")[0])},k=()=>{let _=0,z=0;for(let q=i.length-1;q>=0;q--){let t1=i[q].kind;if(t1==="OUTDENT")_++;else if(t1==="INDENT"){if(_--,_=0;C--){let Y=i[C].kind;if(Y==="TERMINATOR"||Y==="INDENT"||Y==="OUTDENT")break;if(Y==="COMPONENT")return!0}}}}return!1},v=()=>{if(!l[l.length-1]?.pickKeys)return!1;let z=H()?.kind;return z==="PICK_START"||z==="OPTPICK_START"||z===","||z===":"||z==="TERMINATOR"||z==="INDENT"||z==="OUTDENT"},j=(_,z)=>{let q=c;while(ce;function k2(e,t){this[e]=E2.bind(null,t)}var Fe=(e,t)=>{for(var r in t)R2(e,r,{get:t[r],enumerable:!0,configurable:!0,set:k2.bind(t,r)})};class ye{constructor(e,t=""){this.path=t,this.text=e;let r=[0];for(let n=0;nthis.text.length)e=this.text.length;let t=this.lineStarts,r=0,n=t.length-1;while(r<=n){let i=r+n>>1;if(t[i]<=e)r=i+1;else n=i-1}return{line:n,col:e-t[n]}}offsetAt(e,t){if(e<0)return 0;if(e>=this.lineStarts.length)return this.text.length;let r=this.lineStarts[e],n=e+1r&&this.text.charCodeAt(n-1)===13)n--;let i=r+Math.max(0,t);return i>n?n:i}slice(e,t){return this.text.slice(e,t)}}var J={on:!1,n:0},An=()=>{if(J.on=typeof process<"u"&&!!process.env.RIP_COUNT_OPS,J.on)J.n=0;return J.on};class ii extends Error{constructor(e){super(e);this.name="TypeTextError"}}var jt=(e)=>String(e??"").trim(),Be=(e)=>String(e??""),vn=()=>{throw Error("rip: type-text rendering is unavailable in the browser")},On=()=>{throw Error("rip: type-text rendering is unavailable in the browser")},In=()=>()=>!1,$n=()=>new Set;function se(e){return String(e).replace(/([a-z0-9])([A-Z])/g,"$1_$2").toLowerCase()}function ni(e){return String(e).replace(/_([a-z])/g,(t,r)=>r.toUpperCase())}function si(e){return se(e)+"_id"}function tt(e){if(typeof e!=="string"||!/^[a-z][a-zA-Z0-9]*$/.test(e))return!1;if(/[A-Z]{2,}/.test(e))return!1;return!0}function ai(e){if(typeof e!=="string"||!/^[A-Z][a-zA-Z0-9]*$/.test(e))return!1;if(/[A-Z]{2,}/.test(e))return!1;return!0}function T2(e){return typeof e==="string"&&/^[a-z_][a-z0-9_]*$/.test(e)}function w2(e){return typeof e==="string"&&e.length>0&&!/[\u0000-\u001f\u007f".]/.test(e)}var oi={__proto__:null,mixin:"target",times:"none",softDelete:"none",belongsTo:"target",hasOne:"target",hasMany:"target",index:"columns",unique:"columns",idStart:"int",table:"name",tableWas:"name",primary:"field"},Dn=["idStart","table","tableWas","primary","times","softDelete"],xn=["belongsTo","hasOne","hasMany"],li={__proto__:null,column:"literal",was:"column"},Cn={__proto__:null,as:"property",foreignKey:"column",through:"model",targetKey:"column"};function ci(e,t,r){if(typeof r!=="string"||!r.length)return"'"+t+"' requires a non-empty string";if(e==="property"&&!tt(r))return"'"+t+"' is a property name — canonical camelCase, e.g. {"+t+": author}";if(e==="model"&&!ai(r))return"'"+t+"' is a model name — canonical PascalCase, e.g. {"+t+": Membership}";if(e==="column"&&!T2(r))return"'"+t+"' is a column name Rip generates — lowercase, digits and underscores "+"only, e.g. {"+t+': "author_id"}';if(e==="literal"&&!w2(r))return"'"+t+"' is a database column name — any spelling the database uses, but with "+"no dots, double quotes, or control characters";return null}var _2=new Set(["input","shape","mixin","enum","union","model"]);var N2=new Set(["beforeValidation","afterValidation","beforeSave","afterSave","beforeCreate","afterCreate","beforeUpdate","afterUpdate","beforeDestroy","afterDestroy","afterCommit","afterRollback"]),Pn=new Set(["integer","number","boolean","date","datetime"]),A2={__proto__:null,id:"integer",int:"integer",whole:"integer",float:"number",money:"integer",money_even:"integer",cents:"integer",decimal:"string",bool:"boolean",truthy:"boolean",falsy:"boolean",json:"json",hash:"json",array:"json",ids:{type:"integer",array:!0},string:"string",text:"string",name:"string",address:"string",date:"string",time:"string",time12:"string",email:"email",state:"string",zip:"zip",zipplus4:"string",ssn:"string",sex:"string",phone:"string",username:"string",ip:"string",mac:"string",url:"url",color:"string",uuid:"uuid",semver:"string",slug:"string"},v2=new Set(["string","email","url","phone","zip"]),O2=new Set(["TERMINATOR","INDENT","OUTDENT","=","COMPOUND_ASSIGN","RETURN","THROW","YIELD","AWAIT","EXPORT",",","(","[","{","CALL_START","PARAM_START","INDEX_START","->","=>",":","WHEN","LEADING_WHEN","THEN","IF","UNLESS","UNARY","UNARY_MATH"]),Ln=new Set(["defaultMaxString"]),L1=(e)=>e&&(e.kind==="IDENTIFIER"||e.kind==="PROPERTY"),rt=(e)=>e&&typeof e.value==="string"&&/^[a-z]+$/.test(e.value)&&(e.kind===e.value.toUpperCase()||e.kind==="LEADING_WHEN"||e.kind==="RELATION"||e.kind==="STATEMENT"),I2=(e)=>`__${e}__behavior`,H1=(e,t,r=!1)=>{if(e[t]?.kind!==":")return null;let n=e[t+1];if(!n||n.spaced)return null;if(L1(n)||r&&/^[a-z]+$/.test(n.value)&&n.kind===n.value.toUpperCase())return n;return null};function $2(e,t){if(typeof e?.start!=="number")throw e;t(e)}function Un(e,t,r,n,i=null){if(r.indexOf("schema")===-1)return;let s=[],a={defaultMaxString:null,tolerate:i},o=0,l=0;while(l0){l+=h;continue}if(C2(e,l,n)){l=P2(e,l,s,a,t,n,r);continue}s.push(c),l++}e.length=0;for(let c of s)e.push(c)}function D2(e,t,r,n,i){let s=e[t];if(!s||s.kind!=="IDENTIFIER"||s.value!=="schema")return 0;if(e[t+1]?.kind!==".")return 0;let a=e[t+2];if(!a||a.kind!=="PROPERTY")return 0;if(e[t+3]?.kind!=="=")return 0;let o=e[t-1];if(o&&o.kind!=="TERMINATOR"&&o.kind!=="INDENT"&&o.kind!=="OUTDENT")return 0;let l=a.value;if(!Ln.has(l))i(`unknown schema pragma 'schema.${l}' — known pragmas: ${[...Ln].join(", ")}`,a.start);if(n>0)i(`schema pragma 'schema.${l}' must be declared at file top level — inside a nested block it would leak into later top-level schemas`,a.start);let c=e[t+4];if(!c||c.kind!=="NUMBER")i(`pragma 'schema.${l}' requires a number literal — example: schema.${l} = 100`,(c??a).start);let h=Number(c.value);if(!Number.isFinite(h)||h<0||!Number.isInteger(h))i(`pragma 'schema.${l}' expects a non-negative integer (got ${c.value}); use 0 to disable`,c.start);r[l]=h===0?null:h;let f=t+5;if(e[f]?.kind==="TERMINATOR")f++;return f-t}var Vn=(e,t)=>{if(e[t]?.kind==="SYMBOL")return e[t];return e[t]?.kind===":"&&e[t].spaced?H1(e,t,!0):null},Wn=(e,t)=>e[t]?.kind==="SYMBOL"?1:2,x2=(e,t)=>{if(e[t]?.kind!==","||!L1(e[t+1])||e[t+1].value!=="on")return t;let r=t+2;if(e[r]?.kind===":")r++;while(r")s("inline schema bodies do not support '->' (methods/hooks/scopes/transforms) — use the indented form",R.start);else if(w===0&&(T==="EFFECT"||T==="!>"))s(`inline schema bodies do not support '${R.value}' (${T==="EFFECT"?"computed getters":"eager-derived fields"}) — use the indented form`,R.start);S++}while(S>b&&e[S-1].kind==="TERMINATOR")S--;if(d=e.slice(b,S),p=S,!d.length)s("inline schema body is empty — add '; field; …' entries or switch to the indented form",o.start);m=d[d.length-1].end}else{if(e[h]?.kind==="TERMINATOR")h++;if(e[h]?.kind!=="INDENT")s(`expected an indented schema body after 'schema${c?" :"+l:""}'`,o.start);let b=h,S=0,w=-1;for(let R=b;Rb.kind==="SYMBOL"?[{...b,kind:":",value:":",end:b.start+1},{...b,kind:"IDENTIFIER",start:b.start+1,spaced:!1}]:[b]);let g=L2(l,c,d,{schemaStart:o.start,defaultMaxString:n.defaultMaxString,tolerate:n.tolerate??null},s);if(u)g.adapterTokens=u;return g.start=(c??d[0]).start,g.end=m,g.primitiveSpans=[c,...d].filter((b)=>b&&typeof b.value==="string"&&/^[A-Za-z_$][\w$]*$/.test(b.value)).map((b)=>({value:b.value,sourceStart:b===c&&b.end-b.start===b.value.length+1?b.start+1:b.start,sourceEnd:b.end})),r.push({id:i(),kind:"SCHEMA",value:"schema",start:o.start,end:o.end,spaced:o.spaced}),r.push({id:i(),kind:"SCHEMA_BODY",value:g,start:g.start,end:g.end,spaced:!0}),p}function L2(e,t,r,n,i){let s=[],a=M2(r);if(e==="input"&&!t&&a.length>0&&H1(a[0],0))e="enum";if(e==="enum")for(let o of a)X2(o,s,i);else if(e==="union"){for(let c of a)q2(c,s,i);let o=s.filter((c)=>c.tag==="directive"&&c.name==="on").length,l=s.filter((c)=>c.tag==="union-member");if(o!==1)i(o===0?":union requires an '@on :field' discriminator — untagged unions are not supported":`:union takes exactly one '@on :field' discriminator (got ${o})`,n.schemaStart);if(l.length<2)i(`:union needs at least two constituent schemas (got ${l.length})`,n.schemaStart)}else{for(let o of a)j2(e,o,s,n,i);if(e==="model")V2(s,i);else for(let o of s){if(o.tag==="scope"||o.tag==="defaultScope")i(`:${e} schemas don't accept query scopes — '@${o.tag==="scope"?"scope":"defaultScope"}' is :model-only`,o.start);if(e==="mixin"&&(o.tag==="method"||o.tag==="computed"||o.tag==="derived"))i(`:mixin schemas are fields-only — '${o.name}' is a ${o.tag}; move it to a :shape or :model`,o.start);if(e==="mixin"&&o.tag==="ensure")i(":mixin schemas don't accept @ensure refinements — move the invariant to a :shape or :model that composes this mixin",o.start);if(e==="input"&&(o.tag==="method"||o.tag==="computed"))i(`:input schemas are fields-only — '${o.name}' is a ${o.tag}; use :shape or :model if you need behavior`,o.start);if(o.tag==="directive"&&o.name!=="mixin")i(`:${e} schemas only accept '@mixin Name'${e==="input"?" and '@ensure'":""} — '@${o.name}' is ${["times","softDelete","belongsTo","hasMany","hasOne","unique","index","idStart","table","tableWas","primary"].includes(o.name)?":model-only":"not a schema directive"}`,o.start)}}return{kind:e,entries:s,toJSON(){return this.kind}}}function M2(e){let t=[],r=[],n=0;for(let i of e){if(i.kind==="INDENT")n++;if(i.kind==="OUTDENT")n--;if(i.kind==="TERMINATOR"&&n===0){if(r.length)t.push(r),r=[];continue}r.push(i)}if(r.length)t.push(r);return t}function j2(e,t,r,n,i){let s=t[0];if(!s)return;if(s.kind==="@"){let U=t[1];if(!L1(U))i("expected a directive name after '@'",s.start);let r1=U.value;if(r1==="ensure"){let I=2,s1=!1;if(t[2]?.kind==="DAMMIT"&&!t[2].spaced)s1=!0,I=3;let e1=H2(t.slice(I),s,i);for(let K of e1)r.push({tag:"ensure",name:"ensure",message:K.message,field:K.field,fieldStart:K.fieldStart,async:s1,paramTokens:K.paramTokens,bodyTokens:K.bodyTokens,start:s.start});return}if(r1==="scope"){let I=U2(t.slice(2),s,i);r.push({tag:"scope",name:I.name,paramTokens:I.paramTokens,bodyTokens:I.bodyTokens,start:s.start});return}if(r1==="defaultScope"){let I=Hn(t.slice(2),s,"@defaultScope",i);if(I.paramTokens.length)i("@defaultScope takes no parameters — write '@defaultScope -> @where(...)'",s.start);r.push({tag:"defaultScope",name:"defaultScope",paramTokens:[],bodyTokens:I.bodyTokens,start:s.start});return}let Q=null,l1=t.slice(2);if(r1==="mixin"){let I=l1[0];if(!L1(I))i("@mixin requires a target name — '@mixin Timestamps'",s.start);if(l1.length>1)i("@mixin takes exactly one schema name",l1[1].start);Q=[{target:I.value}]}r.push({tag:"directive",name:r1,args:Q,argTokens:l1,start:s.start,nameStart:U.start});return}if(s.kind==="PROPERTY"){if(n.tolerate){try{Mn(e,s,t,r,i)}catch(U){$2(U,n.tolerate)}return}Mn(e,s,t,r,i);return}if(s.kind!=="IDENTIFIER"&&!rt(s))i(`unexpected ${s.kind} at schema top level — allowed: fields ('name! type'), directives ('@name'), methods ('name: -> body'), computed getters ('name: ~> body')`,s.start);let a=s.value;if(t[1]?.kind===":")i(`schema fields use 'name type' (space, no colon) — got '${a}:'`,t[1].start);let o=[],l=1;while(l{if(t[U]?.kind==="STRING"&&t[U].value.startsWith('"'))return{value:JSON.parse(t[U].value),bracketed:!1,start:t[U].start,end:t[U].end,next:U+1};if((t[U]?.kind==="["||t[U]?.kind==="INDEX_START")&&t[U+1]?.kind==="STRING"&&t[U+1].value.startsWith('"')&&(t[U+2]?.kind==="]"||t[U+2]?.kind==="INDEX_END"))return{value:JSON.parse(t[U+1].value),bracketed:!0,start:t[U].start,end:t[U+2].end,next:U+3};return null},S=void 0,w=null,R=b(l);if(m?.kind==="UNARY_MATH"&&m.value==="~"){let U=H1(t,l+1),r1=t[l+1];if(U){f=!0,u=U.value;let Q=A2[u];if(Q&&typeof Q==="object")c=Q.type,d=!0;else c=Q||"any";l+=3}else if(r1?.kind==="IDENTIFIER"&&!r1.spaced){if(!Pn.has(r1.value))i(`'~${r1.value}' is not coercible — built-in coercion exists for: ${[...Pn].join(", ")}; named coercers use a symbol ('~:${r1.value}'); otherwise write a transform ('${a}, -> …')`,r1.start);f=!0,c=r1.value,l+=2}else i("'~' in the type slot marks coercion and needs a type name ('~integer', '~date', …) or a registered coercer symbol ('~:ssn', …)",m.start);p=!0}else if(m?.kind==="IDENTIFIER")c=m.value,p=!0,l++;else if(R&&(!R.bracketed||t[R.next]?.kind==="|")){h=[];let U=(r1)=>{if(h.push(r1.value),r1.bracketed){if(w)i(`field '${a}' brackets more than one union member as its default — a field has one default`,r1.start);S=r1.value,w={start:r1.start,end:r1.end}}};U(R),l=R.next,p=!0;while(t[l]?.kind==="|"){let r1=b(l+1);if(!r1)i(`literal unions contain string literals only — '${t[l+1]?.kind??""}' is not allowed as a union member; use the '?' modifier for nullability`,t[l].start);U(r1),l=r1.next}c="literal-union"}let T=!1,F=(U)=>(t[U]?.kind==="["||t[U]?.kind==="INDEX_START")&&(t[U+1]?.kind==="]"||t[U+1]?.kind==="INDEX_END");if(F(l)){if(T=!0,l+=2,F(l))i(`field '${a}' — nested array types ('${c}[][]') are not supported: one '[]' validates element-wise; use 'json' or a '-> transform' for deeper nesting`,t[l].start)}if(f&&T)i(`coercion ('~${c}') does not apply to array types — coerce per-element with a transform instead`,m.start);if(d)T=!0;if(T&&h)i("array-of-literal-union is not supported — use 'string[]' for an array of strings",m.start);let L=m?.kind==="UNARY_MATH"&&m.value==="~"?t[g+1]:m,C=p?[L.start,t[l-1].end]:null,N=t.slice(l);if(p&&N[0]?.kind==="->")i(`field '${a}' has a transform after the type; a comma is required before '->' — write '${a} ${c}, -> …'`,N[0].start);let D=null,O=void 0,W=!1;if(w)O=S,W=!0;let H={};if(w)H.start=w.start,H.end=w.end;let G=null,k=null,v=null,j=!1,X=!1;if(N.length>0){if(N[0]?.kind===",")N=N.slice(1);if(N.length>=2&&N[0].kind==="INDENT"){let r1=0,Q=-1;for(let l1=0;l1"){let I=tl(Q),s1=Q[0].kind==="@"&&I===2;if(I>0&&!s1)i(`field '${a}' has a transform after other content; a comma is required before '->'`,Q[I].start);if(!s1){while(Q.length&&(Q[Q.length-1].kind==="OUTDENT"||Q[Q.length-1].kind==="TERMINATOR"))Q=Q.slice(0,-1);if(!Q.length)continue}}let l1=Q[0];if(l1.kind==="["||l1.kind==="INDEX_START"){if(W)i(`field '${a}' has more than one '[…]' default bracket`,l1.start);O=Q2(Q,a,i,H),W=!0}else if(l1.kind==="{"){if(e!=="model"&&e!=="mixin")i(`field attrs ('{…}') are persistence metadata — :model/:mixin-only ('{was: "old_column"}' annotates a column rename)`,l1.start);if(v)i(`field '${a}' has more than one '{…}' attrs bracket`,l1.start);v=F2(Q,a,i)}else if(J2(Q)){if(D)i(`field '${a}' has more than one range constraint — one 'min..max' per field`,l1.start);D=Z2(Q,a,i)}else if(l1.kind==="REGEX"&&Q.length===1){if(G)i(`field '${a}' has more than one regex constraint`,l1.start);G=el(l1,i)}else if(l1.kind==="->"){if(r1!==U.length-1)i(`transform '-> …' must be the last element on the field line for '${a}'`,l1.start);k=Q.slice(1)}else if(l1.kind==="@"){let I=L1(Q[1])?Q[1].value:null;if(e!=="model"&&e!=="mixin")i(`inline '@${I??""}' on field '${a}' is persistence metadata — :model/:mixin-only ('@unique' marks single-column uniqueness)`,l1.start);if(Q.length>2&&Q[2].kind==="->"){if(r1!==U.length-1)i(`transform '-> …' must be the last element on the field line for '${a}'`,Q[2].start);k=Q.slice(3),Q=Q.slice(0,2)}if(Q.length===2&&I==="unique"){if(j)i(`field '${a}' has more than one '@unique'`,l1.start);j=!0}else if(Q.length===2&&I==="primary"){if(e!=="model")i(`inline '@primary' on field '${a}' is :model-only — a mixin cannot declare the primary key`,l1.start);if(X)i(`field '${a}' has more than one '@primary'`,l1.start);X=!0}else i(`unknown inline attribute '@${I??""}' on field '${a}' — the inline attributes are '@unique' and '@primary'`,l1.start)}else i(`unexpected trailer for field '${a}' — expected '[…]' default, '/regex/', 'min..max' range, or '-> transform'`,l1.start)}}if(f&&k)i(`field '${a}' has both '~${c}' coercion and a '->' transform — a transform replaces coercion; coerce inside it instead`,s.start);let x={};if(D){if(D.min!==void 0)x.min=D.min;if(D.max!==void 0)x.max=D.max;if(D.min===void 0&&x.min===void 0&&o.includes("!"))x.min=1}if(G)x.regex=G;if(W)x.default=O;if(h&&x.default!==void 0&&!h.includes(x.default))i(`field '${a}' defaults to ${JSON.stringify(x.default)}, which is not a member of its literal union (${h.map((U)=>JSON.stringify(U)).join(" | ")})`,s.start);if(n.defaultMaxString!=null&&!G&&!h&&v2.has(c)&&x.max===void 0)x.max=n.defaultMaxString;if(x.min!==void 0&&x.max!==void 0&&x.min>x.max)i(`field '${a}' would have impossible constraints min=${x.min} > max=${x.max} after sugar is applied — write an explicit range or drop the conflicting pragma`,s.start);let Z=x.min!==void 0||x.max!==void 0||x.default!==void 0||x.regex!==void 0?x:null;r.push({tag:"field",name:a,modifiers:o,typeName:c,array:T,literals:h,coerce:f,coercer:u,constraints:Z,transformTokens:k,unique:j,primary:X,attrs:v,start:s.start,typeSpan:C,defaultSpan:H.start===void 0?null:[H.start,H.end]})}function hi(e,t,r,n){if(e[e.length-1]?.kind!=="}")n(`${r} — the '{…}' options bracket never closes`,e[0].start);let i=e.slice(1,-1).filter((a)=>a.kind!=="TERMINATOR"&&a.kind!=="INDENT"&&a.kind!=="OUTDENT"),s={};for(let a of Ie(i)){if(!a.length)continue;let o=a[0];if(!L1(o))n(`${r} options must be '{key: value}' pairs — got ${o.kind}`,o.start);let l=o.value,c=t[l];if(c===void 0)n(`unknown ${r} option '${l}' — known options: ${Object.keys(t).join(", ")}`,o.start);if(l in s)n(`${r} repeats option '${l}'`,o.start);let h=1;if(a[h]?.kind===":")h++;let f=a.slice(h);if(f.length!==1)n(`${r} option '${l}' takes a single value`,(f[0]??o).start);let u=f[0],d=c==="property"||c==="model",p;if(d){if(!L1(u)&&!rt(u)){let g=u.kind==="STRING"&&u.value.startsWith('"')?JSON.parse(u.value):null,b=g&&!ci(c,l,g)?g:c==="model"?"Membership":"author";n(`${r} option '${l}' names ${c==="model"?"a model":"a property"}, `+`so it is written BARE — '{${l}: ${b}}', not ${u.kind==="STRING"?u.value:`a ${u.kind}`}. Quoting would name a database identifier, which is a different thing`,u.start)}p=u.value}else{if(u.kind!=="STRING"||!u.value.startsWith('"'))n(`${r} option '${l}' names a database column, so it is QUOTED — `+`'{${l}: "${L1(u)?se(u.value):"author_id"}"}'. A bare name would be a Rip name, which is a different thing`,u.start);p=JSON.parse(u.value)}let m=ci(c,l,p);if(m)n(`${r} option ${m}; got '${p}'`,o.start);s[l]=p}if(!Object.keys(s).length)n(`${r} has an empty '{…}' options bracket`,e[0].start);return s}function F2(e,t,r){return hi(e,li,`field '${t}'`,r)}function B2(e,t,r){let n=hi(e,Cn,`@${t}`,r);if(n.through&&t==="belongsTo")r("@belongsTo option 'through' is for @hasMany/@hasOne — a @belongsTo holds its key in its own row, so it has nothing to read through",e[0].start);if(n.targetKey&&!n.through)r(`@${t} option 'targetKey' names a column on the join model, so it requires 'through' — '{through: Membership, targetKey: "team_id"}'`,e[0].start);return n}function U2(e,t,r){if(!e.length)r("@scope requires ':name, -> body' (or ':name, (args) -> body')",t.start);let n=H1(e,0);if(!n)r("@scope name must be a :symbol — '@scope :active, -> @where(active: true)'",e[0].start);let i=n.value,s=e[2],a=s&&!s.spaced&&s.start===n.end&&(s.value==="!"||s.value==="?");if(a||!/^[a-z][a-zA-Z0-9]*$/.test(i))r(`@scope name ':${i}${a?s.value:""}' must be a lowercase-first alphanumeric identifier — scopes chain as query-builder methods`,n.start);let o=e.slice(2);if(o[0]?.kind===",")o=o.slice(1);if(!o.length)r(`@scope :${i} is missing its body — '@scope :${i}, -> @where(...)'`,n.start);let l=Hn(o,n,`@scope :${i}`,r);return{name:i,paramTokens:l.paramTokens,bodyTokens:l.bodyTokens}}function Hn(e,t,r,n){if(!e.length)n(`${r}: expected '-> body' or '(args) -> body'`,t.start);let i=[],s=0,a=e[0];if(a.kind==="("||a.kind==="PARAM_START"||a.kind==="CALL_START"){let c=1;s=1;while(s0){let h=e[s].kind;if(h==="("||h==="PARAM_START"||h==="CALL_START")c++;if(h===")"||h==="PARAM_END"||h==="CALL_END"){if(c--,c===0){s++;break}}i.push(e[s]),s++}if(c!==0)n(`${r}: unclosed '(' in parameters`,a.start)}let o=e[s];if(o?.kind!=="->")n(`${r}: expected '->' ${i.length?"after parameters":"to start the body"}`,(o??t).start);let l=e.slice(s+1);if(!l.length)n(`${r}: function body is empty`,o.start);return{paramTokens:i,bodyTokens:l}}function V2(e,t){let r=new Set;for(let m of e){if(m.tag!=="directive")continue;let g=oi[m.name];if(g===void 0)t(`unknown directive '@${m.name}' on :model — legal: ${Object.keys(oi).map((b)=>"@"+b).join(", ")}, @ensure, @scope, @defaultScope`,m.nameStart??m.start);if(Dn.includes(m.name)){if(r.has(m.name))t(g==="none"?`duplicate '@${m.name}' — declared twice; a :model declares it once`:`duplicate '@${m.name}' — a :model declares it at most once (the second would silently override the first)`,m.nameStart??m.start);r.add(m.name)}if(m.name!=="mixin")m.args=W2(m,g,t)}if(e.some((m)=>m.tag==="directive"&&m.name==="mixin"))return;let i=new Set,s=new Map,a=new Map,o=new Map,l=(m,g,b,S)=>{if(i.has(g))t(`${s.get(g)} and ${b} both own column '${g}' — every table column has exactly one owner`,S);if(a.has(m))t(`${o.get(m)} and ${b} both own property '${m}' (columns '${a.get(m)}' and '${g}') — every property reads exactly one column`,S);i.add(g),s.set(g,b),a.set(m,g),o.set(m,b)},c=e.find((m)=>m.tag==="directive"&&m.name==="primary"),h=e.filter((m)=>m.tag==="field"&&m.primary);if(h.length>1)t(`both '${h[0].name}' and '${h[1].name}' declare '@primary' — a row has one identity`,h[1].start);if(h.length===1){if(c)t(`'@primary ${c.args[0].name}' and inline '@primary' on field '${h[0].name}' are two answers to one question — state it once`,c.start);c={tag:"directive",name:"primary",args:[{name:h[0].name}],start:h[0].start}}let f=c?c.args[0].column??se(c.args[0].name):"id",u=c?c.args[0].name:"id",d=e.find((m)=>m.tag==="field"&&m.name===u)??null,p=!!(c&&d);if(!c&&d)t(`field '${u}' collides with the runtime-managed primary key — a :model's ${u} is sequence-assigned. Drop the declaration, or write '@primary ${u}' to make it a caller-supplied natural key instead`,d.start);if(p){if(!d.modifiers?.includes("!"))t(`the primary key '${u}' is declared optional — a row's identity is never absent; declare it required ('${u}! string')`,d.start);if(d.array)t(`the primary key '${u}' is declared as an array — a primary key is one value`,d.start);let m=e.find((g)=>g.tag==="directive"&&g.name==="idStart");if(m)t(`@idStart seeds the sequence behind a runtime-managed primary key, but '${u}' is declared as a field, which makes it caller-supplied — there is no sequence to seed. Drop @idStart, or drop the field declaration`,m.start);if(c.args[0].column!==void 0&&c.args[0].column!==(d.attrs?.column??se(u)))t(`@primary names column '${c.args[0].column}' but field '${u}' reads a different one — state the column once, on the field`,c.start)}else l(u,f,"the primary key",c?.start??e[0]?.start??0);for(let m of e){if(m.tag!=="field")continue;l(m.name,m.attrs?.column??se(m.name),`field '${m.name}'`,m.start)}for(let m of e){if(m.tag!=="directive")continue;if(m.name==="times")l("createdAt","created_at","@times",m.start),l("updatedAt","updated_at","@times",m.start);else if(m.name==="softDelete")l("deletedAt","deleted_at","@softDelete",m.start);else if(m.name==="belongsTo"){let g=m.args[0],b=g.foreignKey??si(g.as??g.target);l(ni(b),b,`the @belongsTo ${g.target}${g.as?` (as ${g.as})`:""} relation`,m.start)}}for(let m of e){if(m.tag!=="directive"||m.name!=="index"&&m.name!=="unique")continue;let g=m.args[0].fields.map((b)=>a.get(b)??(i.has(b)?b:se(b)));g.forEach((b,S)=>{if(g.indexOf(b)!==S)t(`@${m.name} columns must be distinct after canonicalization: ${g.join(", ")}`,m.colTokens?.[S]?.start??m.start)}),g.forEach((b,S)=>{if(!i.has(b))t(`@${m.name}: unknown column '${m.args[0].fields[S]}' — the table has: ${[...i].sort().join(", ")}`,m.colTokens?.[S]?.start??m.start)})}}function W2(e,t,r){let n=e.argTokens??[],i=(s,a)=>r(`@${e.name}: ${a}`,s.start);switch(t){case"none":{if(n.length)i(n[0],"takes no arguments");return null}case"target":{let s=n[0];if(!L1(s))r(`@${e.name} requires a target name — '@${e.name} User'`,(s??{start:e.start}).start);let a=!1,o=1;if(n[o]?.kind==="?"&&!n[o].spaced)a=!0,o++;let l=null;if(n[o]?.kind===","&&n[o+1]?.kind==="{")l=B2(n.slice(o+1),e.name,r),o=n.length;if(oL1(c)||rt(c),l=0;if(H1(n,0)){let c=H1(n,0);s.push(c.value),a.push(c),l=2}else if(o(n[0]))s.push(n[0].value),a.push(n[0]),l=1;else if(n[0]?.kind==="["||n[0]?.kind==="INDEX_START"){let c=1;l=1;let h=[];while(l0){let f=n[l];if(f.kind==="["||f.kind==="INDEX_START")c++;if(f.kind==="]"||f.kind==="INDEX_END"){if(c--,c===0){l++;break}}if(c>=1)h.push(f);l++}if(c!==0)i(n[0],"unclosed '[' in the column list");for(let f of Ie(h)){let u=H1(f,0),d=u??(o(f[0])?f[0]:null);if(!d||f.length>(u?2:1))i(f[u?2:1]??f[0]??n[0],`column names are bare identifiers or :symbols — '@${e.name} [:a, :b]'`);s.push(d.value),a.push(d)}}if(!s.length)r(`@${e.name} requires a field name or list — '@${e.name} :email' or '@${e.name} [:a, :b]'`,(n[0]??{start:e.start}).start);if(l1)i(n[1],`takes one table name — unexpected ${n[1].kind}`);if(o);else{if(/[A-Z]{2,}/.test(a))r(`@${e.name} ${a}: a bare name is a LOGICAL name that Rip snake_cases, and consecutive capitals convert surprisingly ('${a}' → '${se(a)}'). Spell it 'MdmUser'-style, or name the table exactly by quoting it: '@${e.name} "${a}"'`,s.start);a=se(a)}return[{name:a}]}case"field":{let s=n[0];if(!L1(s)&&!rt(s))r(`@${e.name} requires a property name — '@${e.name} patientId'`,(s??{start:e.start}).start);let a=1,o=null;if(n[a]?.kind===","&&n[a+1]?.kind==="{")o=hi(n.slice(a+1),li,`@${e.name}`,r),a=n.length;if(a0){let d=r[a].kind;if(d==="("||d==="PARAM_START"||d==="CALL_START")u++;if(d===")"||d==="PARAM_END"||d==="CALL_END"){if(u--,u===0){a++;break}}o.push(r[a]),a++}if(u!==0)i(`'${s}': unclosed '(' in parameters`,r[2].start)}let l=r[a],c=null,h=-1;if(l?.kind==="->"||l?.kind==="EFFECT"||l?.kind==="!>")c=l.kind==="EFFECT"?"~>":l.kind,h=a+1;else if(L1(l)||l?.kind==="STRING"||l?.kind==="NUMBER")i(`schema fields use 'name type' (space, no colon) — got '${s}:'; for methods/computed use 'name: -> body' or 'name: ~> body'`,r[1].start);else i(`schema top-level '${s}:' must be followed by '->' (method), '~>' (computed getter), or '!>' (eager derived)`,r[1].start);let f=c==="~>"?"computed":c==="!>"?"derived":e==="model"&&N2.has(s)?"hook":"method";if(o.length&&f!=="method")i(`'${s}': ${f==="computed"?"computed getters (~>)":f==="derived"?"eager-derived fields (!>)":"lifecycle hooks"} take no parameters — only methods do`,r[1].start);n.push({tag:f,name:s,paramTokens:o,bodyTokens:r.slice(h),start:t.start})}function H2(e,t,r){let n=e;if(!n.length)r("@ensure requires 'message, (x) -> body' or a '[…]' array of pairs",t.start);let i=n[0];if(i.kind==="["||i.kind==="INDEX_START"){let a=G2(n,i,r),o=K2(a);if(o.length===0)r("@ensure […] must contain at least one 'message, fn' pair",i.start);return jn(o,i,r)}let s=Ie(n);if(s.length<2)r("@ensure inline form must be 'message, (x) -> body' — did you forget the comma?",i.start);if(s.length>3||s.length===3&&!Gn(s[1]))r(`@ensure inline form takes 'message[, :field], fn' (got ${s.length} comma-separated parts) — use '@ensure […]' for multiple refinements`,i.start);return jn(s,i,r)}var Gn=(e)=>e&&e.length===2&&H1(e,0)!==null;function jn(e,t,r){let n=[],i=0;while(i=e.length)r(`@ensure: missing function after message${a?" and :field":""}`,(s[0]??t).start);n.push(Y2(s,a,e[i++],t,r))}return n}function G2(e,t,r){let n=0,i=[];for(let s=0;s=2&&i[0].kind==="INDENT"&&i[i.length-1].kind==="OUTDENT"){let o=0,l=!1;for(let c=0;c=1)i.push(a)}r("@ensure: unclosed '['",t.start)}function K2(e){let t=[],r=[],n=0;for(let i of e){let s=i.kind;if(s==="("||s==="["||s==="{"||s==="CALL_START"||s==="INDEX_START"||s==="PARAM_START"||s==="INDENT")n++;if(s===")"||s==="]"||s==="}"||s==="CALL_END"||s==="INDEX_END"||s==="PARAM_END"||s==="OUTDENT")n--;if(n===0&&(s===","||s==="TERMINATOR")){if(r.length)t.push(r),r=[];continue}r.push(i)}if(r.length)t.push(r);return t}function Y2(e,t,r,n,i){if(!e?.length)i("@ensure: missing message (expected a string literal)",n.start);if(e.length!==1||e[0].kind!=="STRING"||!e[0].value.startsWith('"'))i("@ensure: each refinement's first element must be a string literal message",(e[0]??n).start);let s=e[0],a=JSON.parse(s.value),o=t?H1(t,0):null,l=t?o.value:null,c=o?.start??null;if(!r?.length)i("@ensure: missing function after message",s.start);let h=r[0];if(h.kind!=="("&&h.kind!=="PARAM_START")i("@ensure: expected '(args) -> body' after the message — predicates declare their parameter explicitly ('(u) -> …')",h.start);let f=1,u=1,d=[];while(u0){let g=r[u].kind;if(g==="("||g==="PARAM_START")f++;if(g===")"||g==="PARAM_END"){if(f--,f===0){u++;break}}d.push(r[u]),u++}if(f!==0)i("@ensure: unclosed '(' in predicate parameters",h.start);let p=r[u];if(p?.kind!=="->")i("@ensure: expected '->' after predicate parameters",(p??s).start);let m=r.slice(u+1);if(!m.length)i("@ensure: predicate function body is empty",p.start);return{message:a,field:l,fieldStart:c,paramTokens:d,bodyTokens:m}}function Kn(e,t,r,n=null){if(!e.length)return[];let i=z2(e,t,r,n);for(let s=i.length-1;s>=0&&i[s].type===null;s--)i[s].optional=!0;return i}function z2(e,t,r,n){let i=(s)=>s.kind!=="TERMINATOR"&&s.kind!=="INDENT"&&s.kind!=="OUTDENT";return Ie(e).map((s)=>{let a=s.filter((h)=>i(h)&&h.kind!=="TYPE"),o=a.length>=3&&(a[0].kind==="IDENTIFIER"||a[0].kind==="PROPERTY")&&a[1].kind===":";if(!o&&(a.length!==1||a[0].kind!=="IDENTIFIER"))r(`${t}: parameters must be plain identifiers, optionally typed ('name' or 'name: Type')`,(a[0]??s[0]).start);let l=o?[...s].filter(i).pop():null,c=o&&n!==null?jt(n.slice(a[1].end,l.end)).trim():null;return{name:a[0].value,type:c,optional:!1}})}function q2(e,t,r){let n=e[0];if(!n)return;if(n.kind==="@"){let i=e[1];if(!i||i.value!=="on")r(`:union bodies accept only '@on :field' and constituent schema names — '@${i?.value??""}' is not allowed`,(i??n).start);let s=H1(e,2);if(!s)r("@on requires the discriminator field as a symbol — '@on :kind'",(e[2]??i).start);if(e.length>4)r("@on takes exactly one :field symbol",e[4].start);t.push({tag:"directive",name:"on",args:[{field:s.value}],start:n.start});return}if(n.kind==="IDENTIFIER"&&e.length===1){t.push({tag:"union-member",name:n.value,start:n.start});return}r(`:union bodies accept only '@on :field' and bare constituent schema names (one per line) — got ${n.kind}${e.length>1?" followed by "+e[1].kind:""}`,n.start)}function X2(e,t,r){let n=e[0];if(!n)return;if(n.kind==="@")r(`:enum schemas don't accept '@${e[1]?.value??"directive"}' — enums hold only :symbol members`,n.start);let i=H1(e,0);if(!i)r(`enum member must be a :symbol — use ':${n.value??"name"}' for a bare member or ':${n.value??"name"} value' for a valued one`,n.start);let s=i.value,a=e[2];if(!a){t.push({tag:"enum-member",name:s,value:void 0,start:n.start});return}if(a.kind===":")r(`enum member ':${s}' — drop the ':' before the value; use ':${s} value'`,a.start);if(e.length>3&&!(e.length===4&&a.kind==="-"&&e[3].kind==="NUMBER"))r(`extra tokens after enum member ':${s}' value`,e[3].start);let o=a.kind==="-"&&e[3]?.kind==="NUMBER"?-Number(e[3].value):Yn(a,`enum member ':${s}' value`,r);t.push({tag:"enum-member",name:s,value:o,start:n.start})}function J2(e){return e.some((t)=>t.kind==="..")&&e.every((t)=>t.kind===".."||t.kind==="NUMBER"||t.kind==="-")}function Z2(e,t,r){let n=0,i=()=>{let l=1;if(e[n]?.kind==="-")l=-1,n++;let c=e[n++];if(c?.kind!=="NUMBER")r("range endpoints must be numeric literals",(c??e[0]).start);return l*Number(c.value)},s;if(e[n]?.kind!=="..")s=i();n++;let a;if(na)r(`range '${s}..${a}' is reversed — write the smaller endpoint first`,e[0].start);let o={};if(s!==void 0)o.min=s;if(a!==void 0)o.max=a;return o}function Q2(e,t,r,n={}){let i=e.slice(1,-1);if(i.length)n.start=i[0].start,n.end=i[i.length-1].end;let s=Ie(i);if(s.length!==1)r(s.length===2?"size/value ranges use 'min..max' syntax, not brackets — replace the bracket pair with a range":`the constraint bracket takes a single default value (got ${s.length} elements)`,e[0].start);let a=s[0];if(a.length===1&&a[0].kind==="REGEX")r(`regex constraints are written bare, not in brackets — replace '[${a[0].value}]' with '${a[0].value}'`,e[0].start);if(a.length===2&&a[0].kind==="-"&&a[1].kind==="NUMBER")return-Number(a[1].value);let o=H1(a,0);if(o&&a.length===2)return o.value;if(a.length!==1)r(`default values must be literals (number, string, boolean, null, :symbol) — field '${t}'`,a[0].start);return Yn(a[0],`field '${t}' default`,r)}function el(e,t){let r=/^\/((?:\\.|[^\\/])+)\/([a-z]*)$/.exec(e.value);if(!r)t(`invalid regex literal ${JSON.stringify(e.value)}`,e.start);try{return new RegExp(r[1],r[2])}catch(n){t(`invalid regex '${e.value}': ${n.message}`,e.start)}}function Yn(e,t,r){switch(e.kind){case"NUMBER":return Number(e.value);case"STRING":if(!e.value.startsWith('"'))r(`${t} must be a plain string literal (heredocs have no literal key form)`,e.start);return JSON.parse(e.value);case"BOOL":return e.value==="true";case"NULL":return null;case"UNDEFINED":return;default:r(`${t} must be a literal (number, string, boolean, null) — got ${e.kind}`,e.start)}}function Ie(e){let t=[],r=[],n=0;for(let i of e){let s=i.kind;if(s==="("||s==="["||s==="{"||s==="CALL_START"||s==="INDEX_START"||s==="PARAM_START"||s==="INDENT")n++;if(s===")"||s==="]"||s==="}"||s==="CALL_END"||s==="INDEX_END"||s==="PARAM_END"||s==="OUTDENT")n--;if(s===","&&n===0){if(r.length)t.push(r);r=[];continue}r.push(i)}if(r.length)t.push(r);return t}function tl(e){let t=0;for(let r=0;r")return r}return-1}function zn(e,t,r,n=null,i=null,s=!1,a=null,o=null){let l=[],c=(u)=>{if(l.length&&typeof l[l.length-1]==="string")l[l.length-1]+=u;else l.push(u)},h=(u,d=null)=>l.push({ts:u,span:d}),f=(u)=>l.push({body:u});if(c(`{kind: ${JSON.stringify(e.kind)}`),t)c(`, name: ${JSON.stringify(t)}`);if(c(", entries: ["),e.entries.forEach((u,d)=>{if(d>0)c(", ");il(u,r.get(d),i?.get(d)??null,c,h,s,a?.get(d)??null,o?.get(d)??null,f)}),c("]"),n)c(", adapter: "),f(n);return c("}"),l}var Ue=(e)=>typeof e==="string"?e:e.code;function qn(e,t,r,n){let i=[];return e.entries.forEach((s,a)=>{if(s.tag!=="derived"&&s.tag!=="computed"&&s.tag!=="method")return;let o=r.get(a);if(o===void 0)return;let l=n?.get(a)??null,c=Ue(o);for(let[h,f]of Xn(o,l).reverse())c=c.slice(0,h)+f+c.slice(h);i.push(`${s.name}: ${c}`)}),i.length?`const ${I2(t)} = {${i.join(", ")}};`:null}function Xn(e,t,r=!0){if(typeof e==="string")return[];let n=r?(e.annots??[]).map(([i,s])=>[i,s]):[];if(t!==null){let{code:i,thisAt:s}=e;n.push([s,`this: ${t}${i[s]===")"?"":", "}`])}return n.sort((i,s)=>i[0]-s[0])}function rl(e,t,r,n,i=!1){let s=Xn(e,t,i);if(s.length===0){r(Ue(e));return}let{code:a}=e,o=0;for(let[l,c]of s)r(a.slice(o,l)),n(c),o=l;r(a.slice(o))}function il(e,t,r,n,i,s=!1,a=null,o=null,l=n){switch(e.tag){case"computed":case"method":case"derived":case"hook":case"scope":case"defaultScope":n(`{tag: ${JSON.stringify(e.tag)}, name: ${JSON.stringify(e.name)}, fn: `),rl(t,r,l,i,s),n("}");return;default:let c={},h=nl(e,t,c),f=[];if(s&&a!==null&&c.defaultEnd!==void 0)f.push({at:c.defaultEnd,ts:` satisfies ${a}`,span:e.defaultSpan??null});if(s&&e.tag==="field"&&t!==void 0&&typeof t!=="string"&&Ue(t).startsWith("it",t.thisAt)){let d=Ue(t);f.push({at:h.length-1-d.length+t.thisAt+2,ts:": any"})}if(s&&e.tag==="ensure"&&o!==null&&c.fnAt!==void 0&&typeof t!=="string"&&t!==void 0){let d=/^[A-Za-z_$][\w$]*/.exec(Ue(t).slice(t.thisAt))?.[0];if(d)f.push({at:c.fnAt+t.thisAt+d.length,ts:`: ${o}`})}let u=0;for(let d of f)n(h.slice(u,d.at)),i(d.ts,d.span??null),u=d.at;n(h.slice(u))}}function nl(e,t,r={}){if(t!==void 0)t=Ue(t);switch(e.tag){case"field":{let n=['tag: "field"',`name: ${JSON.stringify(e.name)}`,`modifiers: ${JSON.stringify(e.modifiers)}`,`typeName: ${JSON.stringify(e.typeName)}`,`array: ${e.array?"true":"false"}`];if(e.unique)n.push("unique: true");if(e.primary)n.push("primary: true");if(e.literals)n.push(`literals: ${JSON.stringify(e.literals)}`);if(e.coerce){if(n.push("coerce: true"),e.coercer)n.push(`coercer: ${JSON.stringify(e.coercer)}`)}if(e.constraints){let i=[];if(e.constraints.min!==void 0)i.push(`min: ${Ft(e.constraints.min)}`);if(e.constraints.max!==void 0)i.push(`max: ${Ft(e.constraints.max)}`);let s=-1;if(e.constraints.default!==void 0)s=i.length,i.push(`default: ${Ft(e.constraints.default)}`);if(e.constraints.regex!==void 0)i.push(`regex: ${e.constraints.regex.toString()}`);if(i.length){if(s>=0){let a=`{${n.join(", ")}, constraints: {`;r.defaultEnd=a.length+i.slice(0,s+1).join(", ").length}n.push(`constraints: {${i.join(", ")}}`)}}if(e.attrs)n.push(`attrs: {${Object.keys(e.attrs).sort().map((i)=>`${i}: ${Ft(e.attrs[i])}`).join(", ")}}`);if(t)n.push(`transform: ${t}`);return`{${n.join(", ")}}`}case"directive":{let n=['tag: "directive"',`name: ${JSON.stringify(e.name)}`];if(e.args){if(e.name==="mixin"||xn.includes(e.name)){let i=e.args[0];n.push(`args: [{target: ${JSON.stringify(i.target)}${i.optional?", optional: true":""}${i.as?`, as: ${JSON.stringify(i.as)}`:""}${i.foreignKey?`, foreignKey: ${JSON.stringify(i.foreignKey)}`:""}${i.through?`, through: ${JSON.stringify(i.through)}`:""}${i.targetKey?`, targetKey: ${JSON.stringify(i.targetKey)}`:""}}]`)}else if(e.name==="primary")n.push(`args: [{name: ${JSON.stringify(e.args[0].name)}${e.args[0].column?`, column: ${JSON.stringify(e.args[0].column)}`:""}}]`);else if(e.name==="on")n.push(`args: [{field: ${JSON.stringify(e.args[0].field)}}]`);else if(e.name==="unique"||e.name==="index")n.push(`args: [{fields: ${JSON.stringify(e.args[0].fields)}}]`);else if(e.name==="idStart")n.push(`args: [{value: ${e.args[0].value}}]`);else if(e.name==="table"||e.name==="tableWas")n.push(`args: [{name: ${JSON.stringify(e.args[0].name)}}]`)}return`{${n.join(", ")}}`}case"ensure":{let n=['tag: "ensure"',`message: ${JSON.stringify(e.message)}`];r.fnAt=`{${n.join(", ")}, fn: `.length;let i=[...n,`fn: ${t}`];if(e.field)i.push(`field: ${JSON.stringify(e.field)}`);if(e.async)i.push("async: true");return`{${i.join(", ")}}`}case"enum-member":{let n=['tag: "enum-member"',`name: ${JSON.stringify(e.name)}`];if(e.value!==void 0)n.push(`value: ${JSON.stringify(e.value)}`);return`{${n.join(", ")}}`}case"union-member":return`{tag: "union-member", name: ${JSON.stringify(e.name)}}`;default:throw Error(`schema: unknown entry tag '${e.tag}'`)}}function Ft(e){if(e===null)return"null";if(e===void 0)return"undefined";if(typeof e==="string")return JSON.stringify(e);return String(e)}var sl=new Set(["pick","omit","partial","required","extend"]);function W1(e){return e&&e.valueOf?e.valueOf():e}function Jn(e){return e.entries.some((t)=>t.tag==="directive"&&t.name==="mixin")}function al(e){return ni(e.foreignKey??si(e.as??e.target))}function ol(e){if(Jn(e))return null;let t=new Map;for(let a of e.entries)if(a.tag==="field")t.set(a.name,a);if(e.kind!=="model")return t;let r=(a,o,l)=>{if(!t.has(a))t.set(a,{tag:"field",name:a,modifiers:l?["!"]:["?"],typeName:o,array:!1})},n=!1,i=!1,s=[];for(let a of e.entries){if(a.tag!=="directive")continue;if(a.name==="times")n=!0;else if(a.name==="softDelete")i=!0;else if(a.name==="belongsTo"){let o=a.args&&a.args[0];if(o&&o.target)s.push({fk:al(o),required:o.optional!==!0})}}if(r("id","integer",!0),n)r("createdAt","datetime",!0),r("updatedAt","datetime",!0);if(i)r("deletedAt","datetime",!1);for(let{fk:a,required:o}of s)r(a,"integer",o);return t}function ll(e){if(Jn(e))return null;let t=new Map;for(let r of e.entries)if(r.tag==="field")t.set(r.name,r);return t}function Fn(e,t){let r=e.modifiers.filter((i)=>i!==(t==="partial"?"!":"?")),n=t==="partial"?"?":"!";if(!r.includes(n))r=[...r,n];return{...e,modifiers:r}}function cl(e,t,r){switch(t.method){case"pick":{let n=new Map;for(let i of t.keys){if(!e.has(i))return null;n.set(i,e.get(i))}return n}case"omit":{let n=new Set(t.keys),i=new Map;for(let[s,a]of e)if(!n.has(s))i.set(s,a);return i}case"partial":{let n=new Map;for(let[i,s]of e)n.set(i,Fn(s,"partial"));return n}case"required":{let n=new Set(t.keys),i=new Map;for(let[s,a]of e)i.set(s,n.has(s)?Fn(a,"required"):a);return i}case"extend":{let n=t.otherDescriptor||r.get(t.otherName);if(!n)return null;let i=ll(n);if(!i)return null;let s=new Map(e);for(let[a,o]of i){if(s.has(a))return null;s.set(a,o)}return s}default:return null}}function hl(e,t,r){let n=ol(e);if(!n)return null;for(let i of t)if(n=cl(n,i,r),!n)return null;return{kind:"shape",entries:[...n.values()]}}function fl(e){let t=[],r=e;while(!0){if(!Array.isArray(r))return null;let n=r[0];if(!Array.isArray(n))return null;if(W1(n[0])!==".")return null;let i=W1(n[2]);if(!sl.has(i))return null;let s=r.slice(1),a;if(i==="partial"){if(s.length)return null;a={method:i}}else if(i==="extend"){if(s.length!==1)return null;let c=s[0];if(Array.isArray(c)){let h=W1(c[0])==="schema"&&c.length===2&&c[1]&&typeof c[1]==="object"&&Array.isArray(c[1].entries)?c[1]:null;if(!h||h.kind!=="shape"&&h.kind!=="input")return null;a={method:i,otherDescriptor:h}}else{let h=W1(c);if(typeof h!=="string"||!/^[A-Za-z_$][\w$]*$/.test(h))return null;a={method:i,otherName:h}}}else{let c=ul(s);if(!c||!c.length)return null;a={method:i,keys:c}}t.unshift(a);let o=n[1];if(Array.isArray(o)){r=o;continue}let l=W1(o);if(typeof l!=="string")return null;return{base:l,ops:t}}}function ul(e){let t=[];for(let r of e)if(Array.isArray(r)){if(W1(r[0])!=="array")return null;for(let n=1;n{r[2]=["schema",t]})}var Bt=new Set(["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","link","main","map","mark","menu","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","script","search","section","select","slot","small","source","span","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"]),Ve=new Set(["a","animate","animateMotion","animateTransform","circle","clipPath","defs","desc","ellipse","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","foreignObject","g","image","line","linearGradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tspan","use","view"]),$e=new Set([...Bt,...Ve]),fi=new Set([...Ve].filter((e)=>!Bt.has(e))),Ut=new Set(["abort","animationcancel","animationend","animationiteration","animationstart","auxclick","beforeinput","beforematch","beforetoggle","blur","cancel","canplay","canplaythrough","change","click","close","command","compositionend","compositionstart","compositionupdate","contextlost","contextmenu","contextrestored","copy","cuechange","cut","dblclick","drag","dragend","dragenter","dragleave","dragover","dragstart","drop","durationchange","emptied","ended","error","focus","focusin","focusout","formdata","fullscreenchange","fullscreenerror","gotpointercapture","input","invalid","keydown","keypress","keyup","load","loadeddata","loadedmetadata","loadstart","lostpointercapture","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","paste","pause","play","playing","pointercancel","pointerdown","pointerenter","pointerleave","pointermove","pointerout","pointerover","pointerrawupdate","pointerup","progress","ratechange","reset","resize","scroll","scrollend","securitypolicyviolation","seeked","seeking","select","selectionchange","selectstart","slotchange","stalled","submit","suspend","timeupdate","toggle","touchcancel","touchend","touchmove","touchstart","transitioncancel","transitionend","transitionrun","transitionstart","volumechange","waiting","webkitanimationend","webkitanimationiteration","webkitanimationstart","webkittransitionend","wheel"]),Qn=new Set(["disabled","hidden","readonly","required","checked","selected","autofocus","autoplay","controls","loop","muted","multiple","novalidate","open","reversed","defer","async","formnovalidate","allowfullscreen","inert","ismap","nomodule","playsinline","default","itemscope","alpha","shadowrootdelegatesfocus","shadowrootclonable","shadowrootserializable"]),De=new Set(["accesskey","autocapitalize","autocorrect","autofocus","class","contenteditable","dir","draggable","enterkeyhint","hidden","id","inert","inputmode","is","itemid","itemprop","itemref","itemscope","itemtype","lang","nonce","popover","role","slot","spellcheck","style","tabindex","title","translate","writingsuggestions"]),it={__proto__:null,a:["href","target","download","ping","rel","hreflang","type","referrerpolicy"],area:["alt","coords","shape","href","target","download","ping","rel","referrerpolicy"],audio:["src","crossorigin","preload","autoplay","loop","muted","controls"],base:["href","target"],blockquote:["cite"],button:["command","commandfor","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","name","popovertarget","popovertargetaction","type","value"],canvas:["width","height"],col:["span"],colgroup:["span"],data:["value"],del:["cite","datetime"],details:["name","open"],dialog:["open","closedby"],embed:["src","type","width","height"],fieldset:["disabled","form","name"],form:["accept-charset","action","autocomplete","enctype","method","name","novalidate","rel","target"],iframe:["src","srcdoc","name","sandbox","allow","allowfullscreen","width","height","referrerpolicy","loading"],img:["alt","src","srcset","sizes","crossorigin","usemap","ismap","width","height","referrerpolicy","decoding","loading","fetchpriority"],input:["accept","alpha","alt","autocomplete","checked","colorspace","dirname","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","height","list","max","maxlength","min","minlength","multiple","name","pattern","placeholder","popovertarget","popovertargetaction","readonly","required","size","src","step","type","value","width"],ins:["cite","datetime"],label:["for"],li:["value"],link:["href","crossorigin","rel","media","integrity","hreflang","type","referrerpolicy","sizes","imagesrcset","imagesizes","as","blocking","disabled","fetchpriority"],map:["name"],meta:["name","http-equiv","content","charset","media"],meter:["value","min","max","low","high","optimum"],object:["data","type","name","form","width","height"],ol:["reversed","start","type"],optgroup:["disabled","label"],option:["disabled","label","selected","value"],output:["for","form","name"],progress:["value","max"],q:["cite"],script:["src","type","nomodule","async","defer","crossorigin","integrity","referrerpolicy","blocking","fetchpriority"],select:["autocomplete","disabled","form","multiple","name","required","size"],slot:["name"],source:["type","media","src","srcset","sizes","width","height"],style:["media","blocking"],table:["align","bgcolor","border","cellpadding","cellspacing","width"],tbody:["align","valign"],td:["colspan","rowspan","headers","align","bgcolor","height","nowrap","valign","width"],template:["shadowrootmode","shadowrootdelegatesfocus","shadowrootclonable","shadowrootserializable"],tfoot:["align","valign"],textarea:["autocomplete","cols","dirname","disabled","form","maxlength","minlength","name","placeholder","readonly","required","rows","wrap"],th:["colspan","rowspan","headers","scope","abbr","align","bgcolor","height","nowrap","valign","width"],thead:["align","valign"],time:["datetime"],tr:["align","bgcolor","valign"],track:["default","kind","label","src","srclang"],video:["src","crossorigin","poster","preload","autoplay","playsinline","loop","muted","controls","width","height"]};for(let e in it)it[e]=new Set(it[e]);var nt=new Set(["id","class","style","lang","tabindex","href","pathLength","crossorigin","transform","viewBox","preserveAspectRatio","xmlns","x","y","x1","y1","x2","y2","cx","cy","r","rx","ry","width","height","d","points","dx","dy","rotate","fill","fill-opacity","fill-rule","stroke","stroke-width","stroke-linecap","stroke-linejoin","stroke-dasharray","stroke-dashoffset","stroke-opacity","stroke-miterlimit","opacity","clip-path","clip-rule","mask","filter","color","display","visibility","pointer-events","vector-effect","dominant-baseline","text-anchor","font-family","font-size","font-weight","font-style","letter-spacing","offset","stop-color","stop-opacity","gradientUnits","gradientTransform","spreadMethod","patternUnits","patternContentUnits","patternTransform","markerWidth","markerHeight","refX","refY","orient","markerUnits","maskUnits","maskContentUnits","clipPathUnits","filterUnits","primitiveUnits","in","in2","result","stdDeviation","values","type","mode","operator","radius","scale","baseFrequency","numOctaves","seed","dur","repeatCount","begin","end","from","to","attributeName","keyTimes","keySplines","calcMode","restart","min","max"]);function ui(e){let t=String(e).toLowerCase(),r=new Set(De),n=it[t];if(n)for(let i of n)r.add(i);if(Ve.has(String(e)))for(let i of nt)r.add(i);return[...r]}function ml(e,t){if(Math.abs(e.length-t.length)>2)return 3;let r=Array.from({length:t.length+1},(n,i)=>i);for(let n=1;n<=e.length;n++){let i=[n];for(let s=1;s<=t.length;s++)i[s]=Math.min(r[s]+1,i[s-1]+1,r[s-1]+(e[n-1]===t[s-1]?0:1));r=i}return r[t.length]}function es(e,t){let r=ui(e),n=String(t).toLowerCase(),i=r.find((l)=>l.toLowerCase()===n);if(i!==void 0&&i!==t)return i;if(String(t).length<3)return null;let s=null,a=3,o=!1;for(let l of r){if(l===String(t))continue;let c=ml(String(t),l);if(c=e.length)return null;if(!j1.test(e[t]))return null;let r=t+1;while(r$e.has(String(e).split("#")[0]),K1=(e)=>typeof e==="string"&&pl.test(e),mi=(e)=>Rl(e)||K1(e);function Vt(e){if(!Array.isArray(e)||e[0]!=="."||e.length!==3||typeof e[2]!=="string")return null;let t=[e[2]],r=e[1];while(Array.isArray(r)){if(r[0]!=="."||r.length!==3||typeof r[2]!=="string")return null;t.push(r[2]),r=r[1]}if(typeof r!=="string"||r==="this"||!Z1(r))return null;return t.push(r),t.reverse().join(".")}var pi=(e)=>Array.isArray(e)&&K1(e[2])?Vt(e):null,Wt=(e)=>e.split(".")[0];function ss(e,t,r){let n=!1;for(let G of e)if(G.kind==="RENDER"){n=!0;break}if(!n)return e;let i=[],s=(G,k,v,j={})=>{let{at:X,...x}=j,Z=X??v.end;return{id:t(),kind:G,value:k,start:Z,end:Z,spaced:!1,newLine:!1,generated:!0,origin:v.id,...x}},a=!1,o=0,l=0,c=[],h=[],f=[],u=(G,k,v)=>k{let x=1,Z=k;while(Z>=0&&x>0){if(J.on)J.n++;let U=u(G,Z,X)?.kind;if(U===v)x++;else if(U===j)x--;if(x>0)Z--}return Z},p=(G)=>{let k=i.length;while(k>0&&u(i,k,G)?.kind==="OUTDENT")k=d(i,k-1,"OUTDENT","INDENT",G);while(k>0){if(J.on)J.n++;let j=i[k-1].kind;if(j==="TERMINATOR"||j==="RENDER")break;if(j==="OUTDENT"){k=d(i,k-2,"OUTDENT","INDENT",G);continue}if(j==="INDENT"){let X=u(i,k,G)?.kind;if(X==="CALL_END"||X===")"){k=d(i,k-1,X,X==="CALL_END"?"CALL_START":"(",G);continue}break}if(j==="CALL_END"||j===")"){k=d(i,k-2,j,j==="CALL_END"?"CALL_START":"(",G);continue}if(j==="INTERPOLATION_END"){k=d(i,k-2,"INTERPOLATION_END","INTERPOLATION_START",G);continue}if(j==="STRING_END"){k=d(i,k-2,"STRING_END","STRING_START",G);continue}k--}let v=u(i,k,G);return v?.kind==="IDENTIFIER"&&(mi(v.value)||(k===0||["INDENT","TERMINATOR","RENDER"].includes(i[k-1]?.kind)))},m=()=>{let G=0;for(let k=i.length-1;k>=0;k--){if(J.on)J.n++;let v=i[k].kind;if(is.has(v))G++;else if(rs.has(v)){if(G===0)return 1;G--}else if(v==="TERMINATOR"||v==="RENDER"||v==="INDENT"||v==="OUTDENT")break}return 0},g=(G)=>{let k=i[i.length-1];if(!k)return!1;if(m()!==0)return!1;let v=k.kind;if((v===","||v==="IDENTIFIER"||v==="PROPERTY")&&p(G))return!0;if((v==="INDENT"||v==="TERMINATOR")&&h.includes(l))return!0;return!1},b=(G)=>{let k=1;for(let v=G+1;v0;v++){if(J.on)J.n++;let j=e[v].kind;if(j==="("||j==="CALL_START")k++;else if(j===")"){if(k--,k===0)e[v].kind="CALL_END"}else if(j==="CALL_END")k--}},S=(G)=>{let k=1;for(let v=i.length-1;v>=0&&k>0;v--){if(J.on)J.n++;if(i[v].kind==="CALL_END")k++;else if(i[v].kind==="CALL_START"){if(k--,k===0&&v>0&&i[v-1].kind==="PROPERTY"&&i[v-1].value==="__clsx")return!0}}return!1},w=(G)=>{while(f.length>0){let k=f[f.length-1];if(G.kind==="INDENT"||rs.has(G.kind)){k.depth++;return}if(G.kind==="OUTDENT"||is.has(G.kind)){if(k.depth===0){i.push(s("CALL_END",")",i[i.length-1]??G)),f.pop();continue}k.depth--;return}if(G.kind==="TERMINATOR"&&k.depth===0){i.push(s("CALL_END",")",i[i.length-1]??G)),f.pop();continue}return}},R=(G)=>G===0||st.has(e[G-1].kind),T=(G,k)=>{let v=e[G+1]?.kind==="TYPE"?e[G+2]:e[G+1];return v!==void 0&&k.has(v.kind)},F=new Set;for(let G=0,k=0;G{let k=new Set,v=G+1;while(vN.some((k)=>k.names.has(G))||C.length>0&&C[C.length-1].names.has(G)||F.has(G);for(let G=0;G0)w(k);if(!st.has(k.kind)&&R(G))O=k.kind;if(k.kind==="COMPONENT")C.push({level:l+1,names:L(G)});if(k.kind==="RENDER"){a=!0,o=l+1,N.push({level:o,names:new Set}),i.push(k);continue}if(k.kind==="INDENT"){if(l++,a){let j=e[G-1]?.kind;if(j==="->"||j==="=>")D.push(l);else if(D.length===0&&yl.has(O))N.push({level:l,names:new Set(O==="FOR"?W??[]:[])})}W=null,i.push(k);continue}if(k.kind==="OUTDENT"){l--;for(let j of[C,N])while(j.length>0&&j[j.length-1].level>l)j.pop();while(D.length>0&&D[D.length-1]>l)D.pop();while(h.length>0&&h[h.length-1]>l)h.pop();i.push(k);while(c.length>0&&c[c.length-1]>l)i.push(s("CALL_END",")",k)),c.pop();if(a&&l0){let j=i[i.length-1].kind;if(j==="TERMINATOR"||j==="INDENT"||j==="RENDER"){i.push(s("IDENTIFIER","__text__",k,{at:k.start,spaced:k.spaced,newLine:k.newLine})),i.push(s("CALL_START","(",k,{at:k.start})),f.push({depth:0});continue}}if(k.kind==="UNARY_MATH"&&k.value==="~"&&v?.kind==="IDENTIFIER"){i.push(s("PROPERTY","__transition__",k,{spaced:k.spaced,newLine:k.newLine})),i.push(s(":",":",k)),v.kind="STRING",v.value=`"${v.value}"`,v.transitionValue=!0;continue}if(k.transitionValue&&v!==null&&ns.has(v.kind)){i.push(k),i.push(s(",",",",k,{at:v.start}));continue}if(k.kind==="BIND"){let j=i[i.length-1];if(j!==void 0&&(j.kind==="IDENTIFIER"||j.kind==="PROPERTY")&&v!==null&&(v.kind==="IDENTIFIER"||v.kind==="@")){j.value=`__bind_${j.value}__`,i.push(s(":",":",k));continue}}if(k.kind==="IDENTIFIER"&&v?.kind==="-"&&!v.spaced){let j=[k.value],X=G+1,x=k.end;while(X+11&&e[X-1].kind==="PROPERTY"){let Z=j.join("-");i.push({...k,kind:"STRING",value:`"${Z}"`,end:x}),G=X-1;continue}}if(k.kind==="."){let j=i[i.length-1]?.kind;if(j==="INDENT"||j==="TERMINATOR"||j==="RENDER"){if(v?.kind==="PROPERTY"){let X=e[G+2];if(!X||X.kind!==":"){i.push(s("IDENTIFIER","div",k,{spaced:k.spaced,newLine:k.newLine})),i.push(k);continue}k={...k,kind:"IDENTIFIER",value:"div"}}else if(!v||v.kind!=="(")k={...k,kind:"IDENTIFIER",value:"div"}}}if(k.kind==="."&&v?.kind==="("){let j=i[i.length-1]?.kind,X=j==="INDENT"||j==="TERMINATOR"||j==="RENDER";if(v.kind="CALL_START",b(G+1),X)i.push(s("IDENTIFIER","div",k,{spaced:k.spaced,newLine:k.newLine})),i.push(k),i.push(s("PROPERTY","__clsx",k));else if(j===":")i.push(s("IDENTIFIER","__clsx",k,{spaced:k.spaced,newLine:k.newLine}));else i.push(k),i.push(s("PROPERTY","__clsx",k));continue}if(k.kind==="@"&&v?.kind==="PROPERTY"&&!v.spaced){let j=e[G+2],X=j?.kind===".",x=j?.kind===":";if(!X&&!x&&g(k)){let Z=String(v.value),U=`on${Z[0].toUpperCase()}${Z.slice(1)}`;if(j?.kind==="=")r(`a \`=\` cannot follow a bare event directive on one line — \`@${Z} = expr\` would assign to the minted handler and invoke the assignment as the listener; bind explicitly (\`@${Z}: handler\`), or keep the bare \`@${Z}\` and put the text on its own \`= expr\` line`,j.start);if(i.push(k),i.push(v),i.push(s(":",":",v)),i.push(s("@","@",v)),i.push(s("PROPERTY",U,v)),G++,e[G+1]?.kind==="INDENT")i.push(s(",",",",v,{at:e[G+1].start})),i.push(s("->","->",v,{at:e[G+1].start,newLine:!0})),h.push(l+1);else if(e[G+1]!==void 0&&ns.has(e[G+1].kind))i.push(s(",",",",v,{at:e[G+1].start}));continue}}if(v?.kind==="INDENT"&&k.kind!=="->"&&k.kind!=="=>"&&k.kind!=="CALL_START"&&k.kind!=="("){let j=i[i.length-1]?.kind,X=["IF","UNLESS","WHILE","UNTIL","WHEN","FORIN","FOROF","FORAS","FORASAWAIT","BY"].includes(j),x=k.kind==="IDENTIFIER"&&(j==="INDENT"||j==="TERMINATOR"||j==="RENDER"),Z=k.kind==="IDENTIFIER"&&mi(k.value)&&(x||!H(k.value)),U=!1,r1=!1;if(k.kind==="CALL_END")r1=S(k);if(r1)U=!0;else if(Z&&!X)U=!0;else if(k.kind==="IDENTIFIER"&&!X)U=x||p(k);else if(["PROPERTY","STRING","STRING_END","NUMBER","BOOL","CALL_END",")","]","INDEX_END","}","MAYBE_DAMMIT"].includes(k.kind))U=p(k);if(U){let Q=!1;if(k.kind==="PROPERTY"&&i[i.length-1]?.kind==="."){let I=i.length;while(I>=2&&i[I-1].kind==="."&&i[I-2].kind==="PROPERTY")I-=2;if(I>=2&&i[I-1].kind==="."&&i[I-2].kind==="IDENTIFIER"&&(mi(i[I-2].value)||K1(k.value))){let s1=i[I-3]?.kind??null;if(s1===null||["INDENT","OUTDENT","TERMINATOR","RENDER"].includes(s1))Q=!0}}let l1=r1||Z||x||Q;if(i.push(k),l1)i.push(s("CALL_START","(",k,{at:v.start})),i.push(s("->","->",k,{at:v.start,newLine:!0})),c.push(l+1);else i.push(s(",",",",k,{at:v.start})),i.push(s("->","->",k,{at:v.start,newLine:!0}));h.push(l+1);continue}}if(k.kind==="IDENTIFIER"&&K1(k.value)&&(v?.kind==="OUTDENT"||v?.kind==="TERMINATOR")){i.push(k),i.push(s("CALL_START","(",k)),i.push(s("CALL_END",")",k));continue}i.push(k)}e.length=i.length;for(let G=0;G=0;a--){if(J.on)J.n++;if(s>=0&&(i<0||n[s].at>i))e[a]=n[s--].token;else e[a]=e[i--]}return e}var El=new Set(["IF","UNLESS","WHILE","UNTIL","WHEN","LEADING_WHEN","CATCH","FOR","LOOP","CLASS"]),kl=new Set(["(","[","{","PICK_START","OPTPICK_START","CALL_START","INDEX_START","PARAM_START","STRING_START","INTERPOLATION_START","HEREGEX_START"]),Tl=new Set([")","]","}","PICK_END","CALL_END","INDEX_END","PARAM_END","STRING_END","INTERPOLATION_END","HEREGEX_END"]);function wl(e,t){let r=0;for(let n=t-1;n>=0;n--){if(J.on)J.n++;let i=e[n].kind;if(Tl.has(i)||i==="OUTDENT"){r++;continue}if(kl.has(i)||i==="INDENT"){if(r===0)return!1;r--;continue}if(r>0)continue;if(El.has(i))return!0;if(i==="TERMINATOR")return!1}return!1}function _l(e,t){let r=new Set(["(","[","{","PICK_START","OPTPICK_START","CALL_START","INDEX_START","PARAM_START","STRING_START","INTERPOLATION_START","HEREGEX_START"]),n=new Set([")","]","}","PICK_END","CALL_END","INDEX_END","PARAM_END","STRING_END","INTERPOLATION_END","HEREGEX_END"]),i=[],s=[],a=(p,m)=>{let g=0;for(let b=m-1;b>=p;b--){if(J.on)J.n++;let S=e[b].kind;if(n.has(S)||S==="OUTDENT"){g++;continue}if(r.has(S)||S==="INDENT"){if(S==="INDENT")return!1;if(g--,g<0)return!1;continue}if(g>0)continue;if(Gt(e,b))return!0}return!1},o=(p,m)=>{let g=0;for(let b=m-1;b>=p;b--){if(J.on)J.n++;let S=e[b].kind;if(n.has(S)||S==="OUTDENT"){g++;continue}if(r.has(S)||S==="INDENT"){if(g--,g<0)return!1;continue}if(g>0)continue;if(S===":"&&e[b-1]?.kind==="PROPERTY")return hs(e,m+1);if(S==="TERMINATOR")return!1}return!1},l=new Set(["IF","UNLESS","TRY","CATCH","FINALLY","SWITCH","FOR","CLASS"]),c=(p)=>{let m=0,g=0,b=0;for(let S=p;S({id:t(),kind:p,value:p,start:m,end:m,spaced:!1,newLine:!1,generated:!0,origin:g}),f=(p)=>{let m=c(p),g=null;for(let R=p;R=p;R--){if(J.on)J.n++;if(!e[R].generated){b=e[R];break}}let S=null;for(let R=m;R{while(s.length&&s[s.length-1].end===p){let m=s.pop();i.push({at:p,token:h("OUTDENT",m.closeAt,m.afterId)}),u=p}};for(let p=0;p"||m.kind==="=>")&&e[p+1]&&e[p+1].kind!=="INDENT"){let g=f(p+1);i.push({at:p+1,token:h("INDENT",g.openAt,g.firstReal?g.firstReal.id:null)}),s.push(g)}else if(m.kind==="THEN"&&wl(e,p)){let g=f(p+1);m.kind="INDENT",m.value="INDENT",m.generated=!0,m.start=m.end=g.firstReal?g.firstReal.start:m.end,m.origin=g.firstReal?g.firstReal.id:null,s.push(g)}else if(m.kind==="ELSE"&&e[p+1]&&e[p+1].kind!=="INDENT"&&e[p+1].kind!=="IF"&&(u===p||e[p-1]?.kind==="OUTDENT")){let g=f(p+1);i.push({at:p+1,token:h("INDENT",g.openAt,g.firstReal?g.firstReal.id:null)}),s.push(g)}}return d(e.length),i}var Ht=new Set(["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS","DAMMIT","?","MAYBE_DAMMIT"]),as=new Set(["IDENTIFIER","PROPERTY","NUMBER","STRING","STRING_START","REGEX","HEREGEX_START","SYMBOL","MAP_START","PARAM_START","IF","TRY","SWITCH","CLASS","THIS","SUPER","UNDEFINED","NULL","BOOL","UNARY","NEW","DO","DO_IIFE","UNARY_MATH","AWAIT","YIELD","THROW","@","->","=>","[","(","{","--","++"]),os=new Set(["POST_IF","POST_UNLESS","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR","||","&&","??","THEN","ELSE"]),ls=new Set(["IF","TRY","FINALLY","CATCH","SWITCH","FOR","CLASS"]),cs=new Set(["IDENTIFIER","PROPERTY","NUMBER","STRING","STRING_END","REGEX","HEREGEX_END",")","CALL_END","]","INDEX_END","}","PICK_END","BOOL","NULL","UNDEFINED","THIS","@"]),oe=new Set(["(","[","{","PICK_START","OPTPICK_START","CALL_START","INDEX_START","PARAM_START","STRING_START","INTERPOLATION_START","HEREGEX_START","INDENT"]),ae=new Set([")","]","}","PICK_END","CALL_END","INDEX_END","PARAM_END","STRING_END","INTERPOLATION_END","HEREGEX_END","OUTDENT"]),Gt=(e,t)=>{let r=e[t],n=e[t+1];if(!r||!n||!n.spaced||!Ht.has(r.kind))return!1;if((r.kind==="]"||r.kind==="}")&&(n.kind==="->"||n.kind==="=>"))return!1;if(r.kind==="IDENTIFIER"&&(r.value==="Infinity"||r.value==="NaN")&&(n.kind==="->"||n.kind==="=>"))return!1;if(as.has(n.kind))return!0;return n.kind==="..."&&e[t+2]!=null&&as.has(e[t+2].kind)},hs=(e,t)=>{if(!e[t])return!1;let r=(n)=>(e[n]?.kind==="DAMMIT"||e[n]?.kind==="VOID_MARKER")&&e[n+1]?.kind===":";if(e[t].kind==="@"&&(e[t+2]?.kind===":"||r(t+2)))return!0;if(e[t+1]?.kind===":"||r(t+1))return!0;if(oe.has(e[t].kind)){let n=1,i=t;while(++i0){if(J.on)J.n++;if(oe.has(e[i].kind))n++;else if(ae.has(e[i].kind))n--}if(n===0&&e[i]?.kind===":")return!0}return!1},fs=new Set(["->","=>","[","(",",","{","ELSE","="]),gi=new Set(["INDENT","OUTDENT","TERMINATOR"]),Nl=new Set(["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL","DEF"]),us=(e,t)=>{let r=0;for(;t>=0;t--){if(J.on)J.n++;let n=e[t].kind;if(r===0&&Nl.has(n))return!0;if(ae.has(n)){r++;continue}if(oe.has(n)){if(r>0){r--;continue}if(!e[t].generated||gi.has(n))return!1;continue}if(r===0&&gi.has(n))return!1}return!1};function Al(e,t){let r=[],n=[],i=[0],s=null,a=-1,o=()=>r[r.length-1],l=(g,b,S,w={})=>({id:t(),kind:g,value:g,start:b,end:b,spaced:w.spaced??!1,newLine:w.newLine??!1,generated:!0,origin:S}),c=(g)=>{r.pop(),n.push({at:g,token:l("}",s?s.end:0,s?s.id:null)})},h=(g)=>hs(e,g),f=()=>{for(let g=r.length-1;g>=0;g--){if(J.on)J.n++;let b=r[g];if(b.kind==="object")return b;if(!(b.kind==="INDENT"&&b.listContinuation))return null}return null},u=(g,b)=>{if(e[b]?.kind!=="...")return!1;let S=r[r.indexOf(g)-1];if(!S||!(S.kind==="["||S.kind==="CALL_START"))return!0;return p(S.at,g.at)},d=(g)=>{let b=e[g-1];return Boolean(b&&Ht.has(b.kind)&&h(g+1)&&!us(e,g-1))},p=(g,b)=>{let S=0;for(let w=b-1;w>g;w--){if(J.on)J.n++;let R=e[w].kind;if(ae.has(R)){S++;continue}if(oe.has(R)){if(R==="INDENT"&&S===0)return d(w);if(S--,S<0)return!1;continue}if(S>0)continue;if(R==="TERMINATOR")return!1;if(Gt(e,w))return!0}return!1},m=(g)=>{for(let b=0;g1)i.pop();if(S==="OUTDENT")for(let R=r.length-1;R>=0;R--){let T=r[R];if(T.kind!=="object"&&T.kind!=="CONTROL")break;if(T.kind==="object")T.sameLine=!1}continue}if(S==="TERNARY")i[i.length-1]++;if(S===":"){let R=i.length-1;if(i[R]>0){i[R]--;continue}if(w?.kind==="DAMMIT")w.kind="VOID_MARKER";let T=w?.kind==="VOID_MARKER"?1:0,F=ae.has(w?.kind)?o()?.at??g-1:g-1-T;if(e[g-2-T]?.kind==="@")F=g-2-T;let L=e[F-1],N=!Gt(e,F-1)&&(F<=0||gi.has(L?.kind)||Boolean(L?.newLine)),D=o(),O=r[r.length-2],W=(j)=>j&&(j.kind==="{"||j.kind==="PICK_START"||j.kind==="OPTPICK_START"||j.kind==="object"),H=(j)=>j==="{"||j==="PICK_START"||j==="OPTPICK_START",G=D?.kind==="INDENT"&&D.listContinuation?f():null,k=Boolean(G),v=G?G.at:D?.kind==="INDENT"&&O?O.at:D?.at;if(D&&(W(D)||D.kind==="INDENT"&&(H(O?.kind)||k))&&!(v!=null&&p(v,F))&&(N||L?.kind===","||H(L?.kind)||e[F]?.kind==="{"))continue;r.push({kind:"object",at:F,sameLine:!0,startsLine:N}),n.push({at:F,token:l("{",e[F].start,e[F].id,{spaced:e[F].spaced,newLine:e[F].newLine})});continue}if(os.has(S)||(S==="."||S==="?.")&&b.newLine){if(S==="||"||S==="&&"||S==="??"||S==="ELSE")continue;if(S==="TERMINATOR"){i[i.length-1]=0;for(let R=r.length-1;R>=0;R--){let T=r[R];if(T.kind!=="object"&&T.kind!=="CONTROL")break;if(T.kind==="object")T.sameLine=!1}}while(o()?.kind==="object"||S==="TERMINATOR"&&o()?.kind==="CONTROL"&&o()?.trigger==="CLASS"){let R=o();if(R.kind==="CONTROL"){r.pop();continue}if(S==="TERMINATOR")if(w?.kind!==","&&!(R.startsLine&&(h(g+1)||u(R,g+1))))c(g);else break;else if(R.sameLine&&w?.kind!==":"&&!((S==="POST_IF"||S==="POST_UNLESS")&&R.startsLine&&m(g+1)))c(g);else break}continue}if(S===","){let R=f(),T=(F)=>h(F)||u(R,F);if(R&&!p(R.at,g)&&!T(g+1)&&(e[g+1]?.kind!=="TERMINATOR"||!T(g+2))){if(e[g+1]?.kind==="INDENT"&&T(g+2))a=g;else if(o()?.kind==="object"){let F=e[g+1]?.kind==="OUTDENT"?1:0;while(o()?.kind==="object")c(g+F)}}}}if(e.length&&!e[e.length-1].generated)s=e[e.length-1];while(o()?.kind==="object"||o()?.kind==="CONTROL")if(o().kind==="object")c(e.length);else r.pop();return n}function vl(e,t){let r=[],n=[],i=-1,s=(l,c,h)=>({id:t(),kind:l,value:l==="CALL_START"?"(":")",start:c,end:c,spaced:!1,newLine:!1,generated:!0,origin:h}),a=null,o=(l)=>{r.pop(),n.push({at:l,token:s("CALL_END",a?a.end:0,a?a.id:null)})};for(let l=0;l0&&!e[l-1].generated)a=e[l-1];if(r[r.length-1]==="call"&&ls.has(f)&&!(f==="FOR"&&!c.newLine&&e[l-1]&&cs.has(e[l-1].kind))){r.push(f==="CLASS"?"CONTROL_CLASS":"CONTROL");continue}if(f==="INDENT"){if(l===i){r.push("INDENT");continue}let u=e[l-1];if(!u||!fs.has(u.kind))while(r[r.length-1]==="call")o(l);if(r[r.length-1]==="CONTROL"||r[r.length-1]==="CONTROL_CLASS")r.pop();r.push("INDENT");continue}if(oe.has(f))r.push(f);else if(ae.has(f)){while(r[r.length-1]==="call"||r[r.length-1]==="CONTROL"||r[r.length-1]==="CONTROL_CLASS")if(r[r.length-1]==="call")o(l);else r.pop();r.pop()}if(os.has(f)||(f==="."||f==="?.")&&c.newLine){if(f==="||"||f==="&&"||f==="??")continue;if(f==="ELSE"&&e[l-1]?.kind==="OUTDENT")continue;if(e[l-1]?.kind!==",")while(r[r.length-1]==="call"||f==="TERMINATOR"&&r[r.length-1]==="CONTROL_CLASS")if(r[r.length-1]==="call")o(l);else r.pop();continue}if(Gt(e,l)||Ht.has(f)&&h&&h.spaced&&(h.kind==="+"||h.kind==="-")&&e[l+2]&&!e[l+2].spaced&&!e[l+2].newLine)n.push({at:l+1,token:s("CALL_START",h.start,h.generated?h.origin:h.id)}),r.push("call");else if(Ht.has(f)&&h?.kind==="INDENT"&&e[l+2]?.kind==="{"&&e[l+2].generated&&!us(e,l))n.push({at:l+1,token:s("CALL_START",e[l+2].start,e[l+2].origin)}),r.push("call"),i=l+1}if(e.length&&!e[e.length-1].generated)a=e[e.length-1];while(r[r.length-1]==="call"||r[r.length-1]==="CONTROL"||r[r.length-1]==="CONTROL_CLASS")if(r[r.length-1]==="call")o(e.length);else r.pop();return n}var Kt=(e,t)=>bi(e,_l,t),Yt=(e,t)=>bi(e,Al,t),zt=(e,t)=>bi(e,vl,t);var bs=new Map([["as","CAST"],["satisfies","SATISFIES"]]),Zt=(e)=>e?.kind==="IDENTIFIER"&&bs.has(e.value),ys=new Set(["IDENTIFIER","PROPERTY","NUMBER","STRING","STRING_END","REGEX","HEREGEX_END","BOOL","NULL","UNDEFINED",")","CALL_END","PARAM_END","]","INDEX_END","}","PICK_END","THIS","@","SUPER","?","MAYBE_DAMMIT","DAMMIT","CAST","SATISFIES","IMPORT_META"]),Ol=new Set(["IDENTIFIER","PROPERTY","(","CALL_START","PARAM_START","{","[","INDEX_START","STRING","NUMBER","BOOL","NULL","UNDEFINED","-","UNARY","NEW","RESERVED"]),le=new Set(["(","CALL_START","PARAM_START","[","INDEX_START","{","PICK_START","OPTPICK_START"]),ce=new Set([")","CALL_END","PARAM_END","]","INDEX_END","}","PICK_END"]),Il=new Set(["TERMINATOR","INDENT","OUTDENT",",","=","COMPOUND_ASSIGN","REACTIVE_ASSIGN","COMPUTED_ASSIGN","READONLY_ASSIGN","GATE","EFFECT","->"]),$l=new Set(["+","-","MATH","**","SHIFT","COMPARE","MATCH","&&","||","??","^","RELATION","TERNARY","?","MAYBE_DAMMIT",":","?.","DAMMIT","EXTENDS","..","...","IF","UNLESS","ELSE","THEN","WHILE","UNTIL","LOOP","FOR","WHEN","BY","SWITCH","RETURN","THROW","CATCH","FINALLY"]),Dl=new Set(["IF","UNLESS","ELSE","THEN","WHILE","UNTIL","LOOP","FOR","WHEN","BY","SWITCH","RETURN","THROW"]),xl=new Set(["IDENTIFIER","PROPERTY","RESERVED","NUMBER","STRING","TYPE_TEMPLATE","BOOL","NULL","UNDEFINED","THIS",".",",",":","?","TERNARY","...","|","&","=>","EXTENDS","(",")","PARAM_START","PARAM_END","[","]","INDEX_START","INDEX_END","{","}","INDENT","OUTDENT","TERMINATOR"]),Cl=new Set(["IDENTIFIER","PROPERTY","RESERVED","NUMBER","STRING","TYPE_TEMPLATE","BOOL","NULL","UNDEFINED","THIS",")","PARAM_END","]","INDEX_END","}"]),Pl=new Set(["TERMINATOR","INDENT","OUTDENT","{",","]),Jt=(e,t,r)=>{if(t-1{let s=0,a=[],o=(u=0)=>a[a.length-1-u],l=null,c=!1,h=[],f=(u,d)=>{s-=d;for(let p=0;p"){f(d,1),c=!0;continue}if(p==="SHIFT"&&d.value===">>"){f(d,2),c=!0;continue}if(p==="SHIFT"&&d.value===">>>"){f(d,3),c=!0;continue}if(p==="UNARY"&&d.value==="typeof"){c=!1;continue}if(d.word==="is"&&c&&u-2>=t&&(e[u-1].kind==="IDENTIFIER"||e[u-1].kind==="PROPERTY"||e[u-1].kind==="THIS")&&(e[u-2].kind==="=>"||e[u-2].value==="asserts"||e[u-2].kind===":"&&e[u-3]?.kind==="CALL_END")){c=!1;continue}if(p==="RELATION"&&d.value==="in"&&o()==="["&&o(1)==="{"&&u-2>=t&&(e[u-2].kind==="["||e[u-2].kind==="INDEX_START")&&(e[u-1].kind==="IDENTIFIER"||e[u-1].kind==="PROPERTY")&&Jt(e,u-2,t)){c=!1;continue}if(d.value==="?"&&c&&e[u+1]?.kind===":"){c=!1;continue}if(p==="-"&&e[u+1]?.kind==="NUMBER"&&!c){u++,c=!0;continue}if((p==="-"||p==="+")&&e[u+1]?.value==="readonly"&&(e[u+2]?.kind==="["||e[u+2]?.kind==="INDEX_START")&&o()==="{"&&Jt(e,u,t)){c=!1;continue}if((p==="-"||p==="+")&&e[u+1]?.value==="?"&&e[u+2]?.kind===":"&&o()==="{"&&(e[u-1]?.kind==="]"||e[u-1]?.kind==="INDEX_END")){c=!0;continue}if(p==="="&&s>0){c=!1;continue}if((o()==="{"||i.methods&&o()===void 0)&&p==="CALL_START"){let m=e[u-1],g=Jt(e,u-1,t);if(m&&(m.kind==="IDENTIFIER"||m.kind==="PROPERTY")&&g){let b=1,S=u+1;while(S0){if(e[S].kind==="CALL_START")b++;else if(e[S].kind==="CALL_END")b--;S++}if(b===0&&e[S]?.kind===":"){h.push(S-1),a.push("("),c=!1;continue}if(b===0)n(`an interface method shorthand needs a return type — \`${m.value}(…): T\``,m.start)}}if(p==="CALL_END"&&u===h[h.length-1]){h.pop(),a.pop(),c=!0;continue}if(xl.has(p)){if(ds.has(p))a.push(ds.get(p));else if(Ll.has(p))a.pop();c=Cl.has(p);continue}n(`code expression ('${d.word??d.value}') in a type body — types erase and cannot execute`,d.start)}if(s>0)n("unclosed '<' in a type body — the generic never closes",l.start)},Ml=new Set(["=",":","COMPOUND_ASSIGN","REACTIVE_ASSIGN","COMPUTED_ASSIGN","READONLY_ASSIGN",",","[","(","{","CALL_START","INDEX_START","PARAM_START","PICK_START","OPTPICK_START","RETURN","THROW","AWAIT","YIELD"]),ee=(e,t)=>{let r=e[t];if(!r)return!0;if(r.kind==="TERMINATOR"||r.kind==="EXPORT"||r.kind==="OFFER")return!0;if(r.kind!=="INDENT"&&r.kind!=="OUTDENT")return!1;let n=0;for(let i=t;i>=0;i--){if(J.on)J.n++;let s=e[i].kind;if(s==="OUTDENT")n++;else if(s==="INDENT"){if(n===0){let a=e[i-1];return!(a&&Ml.has(a.kind))}n--}}return!0},Si=(e,t,r)=>{if(r<=t)return!1;let n=new Set(["|","&",",",":","?","TERNARY",".","..."]),i=0,s=0,a=0,o=0,l=!1,c=[],h=null;for(let f=t;f"){let p=f>t?e[f-1].kind:null;if((p===")"||p==="PARAM_END")&&h&&(h.colon||h.empty)){l=!1;continue}return!1}if(u==="("||u==="PARAM_START"){c.push({colon:!1,open:f}),i++,l=!1;continue}if(u===")"||u==="PARAM_END"){if(--i<0)return!1;let p=c.pop();h=p?{colon:p.colon,empty:f===p.open+1}:null,l=!0;continue}if(u==="["||u==="INDEX_START"){s++,l=!1;continue}if(u==="]"||u==="INDEX_END"){if(--s<0)return!1;l=!0;continue}if(u==="{"){a++,l=!1;continue}if(u==="}"){if(--a<0)return!1;l=!0;continue}if(u==="COMPARE"){if(d==="<"){o++,l=!1;continue}if(d===">"){if(o<=0)return!1;o--,l=!0;continue}return!1}if(u==="SHIFT"){if(d===">>"){if(o<2)return!1;o-=2,l=!0;continue}if(d===">>>"){if(o<3)return!1;o-=3,l=!0;continue}return!1}if(u==="="){if(o>0){l=!1;continue}return!1}if(n.has(u)){if(u===":"&&c.length)c[c.length-1].colon=!0;l=!1;continue}if(u==="IDENTIFIER"||u==="PROPERTY"||u==="NUMBER"||u==="RESERVED"||u==="STRING"||u==="NULL"||u==="UNDEFINED"||u==="BOOL"){if(l)return!1;l=!0;continue}return!1}return i===0&&s===0&&a===0&&o===0&&l},ms=(e,t,r,n)=>{let i=[],s=[],a=[],o=0,l=t,c=e[t-1]?.end??0,h=(u)=>n("unclosed '<' in a type — the generic argument list never closes"+(r.cast?"; if the '<' was meant as a comparison, parenthesize the cast: '(x as T) < y'":""),u.start),f=(u,d)=>{for(let p=0;pl&&u.newLine)break;if(d==="SHIFT"&&(u.value===">>"||u.value===">>>")&&a.length>0){f(u,u.value===">>"?2:3),i.push(u.value),c=u.end,t++;continue}if(d==="COMPARE"&&u.value===">"){if(o===0)break;f(u,1),i.push(u.value),c=u.end,t++;continue}if(le.has(d)||d==="COMPARE"&&u.value==="<"){o++;let m=d==="{"?"{":d==="["||d==="INDEX_START"?"[":d==="COMPARE"?"<":"(";if(s.push(m),m==="<")a.push(u);i.push(u.value),c=u.end,t++;continue}if(ce.has(d)){if(o===0)break;if(s[s.length-1]==="<")h(a[a.length-1]);o--,s.pop(),i.push(u.value),c=u.end,t++;continue}if(d==="INTERPOLATION_END"||d==="STRING_END"||d==="HEREGEX_END")break;if(o===0){if(Il.has(d))break;if(r.stopAtFatArrow&&d==="=>")break;if(r.stopAtThen&&d==="THEN")break;if(r.cast&&$l.has(d))if(t===l&&(d==="-"||d==="+")&&e[t+1]?.kind==="NUMBER"){if(d==="+")n("a numeric literal type spells its sign with '-' (TypeScript has no '+1' type)",u.start,e[t+1].end)}else break;if(r.alias&&Dl.has(d))break}else{if(d==="INDENT"||d==="OUTDENT"){t++;continue}if(d==="TERMINATOR"){i.push(";"),c=u.end,t++;continue}if(d==="PROPERTY"&&s[s.length-1]==="{"){let m=i[i.length-1];if(m&&m!=="{"&&m!==","&&m!==";")i.push(";")}}if(d==="?"&&!u.spaced&&e[t+1]?.kind===":"&&i.length){i[i.length-1]+="?",c=u.end,t++;continue}i.push(u.word==="is"?u.word:u.value),c=u.end,t++}if(a.length)h(a[0]);return{parts:i,consumed:t-l,end:c}},jl=(e)=>e.join(" ").replace(/\s+/g," ").trim().replace(/\s*<\s*/g,"<").replace(/\s*>\s*/g,">").replace(/\s*\[\s*/g,"[").replace(/\s*\]\s*/g,"]").replace(/\s*\(\s*/g,"(").replace(/\s*\)\s*/g,")").replace(/\s*,\s*/g,", ").replace(/\s*=>\s*/g," => ").replace(/ : /g,": "),Fl=(e,t,r)=>{let n=(l)=>l==="("||l==="PARAM_START"||l==="CALL_START",i=(l)=>l===")"||l==="PARAM_END"||l==="CALL_END";if(r-t<2||!n(e[t].kind))return!1;let s=0;for(let l=t;l{if(!(e[t]?.kind==="COMPARE"&&e[t].value==="<"&&!e[t].spaced))return t;let r=0;while(t")r--;else if(n.kind==="SHIFT"&&n.value===">>")r-=2;else if(n.kind==="SHIFT"&&n.value===">>>")r-=3;else if(n.kind==="TERMINATOR"||n.kind==="INDENT"||n.kind==="OUTDENT")return-1;if(t++,r===0)break}return r===0?t:-1},Qt=(e,t)=>{if(t<0||!e[t]||Ri(e[t])>=0)return t;let r=0;while(t>=0){if(J.on)J.n++;let n=e[t];if(n.kind==="TERMINATOR"||n.kind==="INDENT"||n.kind==="OUTDENT")return-1;if(r+=Ri(n),t--,r===0)break}return r===0?t:-1},er=(e,t)=>{let r=Qt(e,t-1);if(r<0||e[r]?.kind!=="IDENTIFIER")return!1;let n=e[r-1];if(!(n?.kind==="IDENTIFIER"&&n.value==="type"))return!1;return ee(e,r-2)},Ri=(e)=>e.kind==="COMPARE"&&e.value==="<"?1:e.kind==="COMPARE"&&e.value===">"?-1:e.kind==="SHIFT"&&e.value===">>"?-2:e.kind==="SHIFT"&&e.value===">>>"?-3:0,Q1=(e,t)=>{let r=e[t];if(!r||r.kind!=="IDENTIFIER"&&r.kind!=="PROPERTY")return!1;if(e[t-1]?.kind==="DEF")return!0;return r.kind==="PROPERTY"&&e[t-1]?.kind==="@"&&e[t-2]?.kind==="DEF"},Bl=(e,t)=>{let r=e[t-1];if(!r)return!1;if(r.kind===")"||r.kind==="CALL_END"||r.kind==="PARAM_END")return!0;if(r.kind==="IDENTIFIER"||r.kind==="PROPERTY"){if(Q1(e,t-1))return!0;let n=e[t-2]?.kind==="@"?t-3:t-2;if(ee(e,n))return!0}if(r.kind==="VOID_MARKER"&&Q1(e,t-2))return!0;return null},ps=(e)=>e.kind==="TERMINATOR"||e.kind==="INDENT"||e.kind==="OUTDENT",Ul=(e,t)=>{if(t.upTo>e.length||t.upTo>0&&e[t.upTo-1]!==t.ref){t.answers.clear(),t.level=0;let r=e.length-1;while(r>=0&&!ps(e[r])){if(J.on)J.n++;r--}t.upTo=r+1}for(let r=t.upTo;r{let n=e[e.length-1];if(!n)return!1;if(!(n.kind==="COMPARE"&&n.value===">"||n.kind==="SHIFT"&&(n.value===">>"||n.value===">>>")))return!1;if(t)return!0;return Ul(e,r),r.answers.get(r.level)??!1},Xt=(e,t)=>{let r=0,n=!1;for(let i=t+1;i")return-1;if(s==="=>")n=!0;else if(s==="="||s==="REACTIVE_ASSIGN"||s==="COMPUTED_ASSIGN"||s==="READONLY_ASSIGN"||s==="GATE"||s==="EFFECT"){if(!n||Si(e,t+1,i))return i}}}return-1},Vl=(e)=>{let t=[new Map],r=Array(e.length),n=[{id:0,up:null}],i=0;for(let s=0;s"||l==="=>";n.push({id:o,up:c?null:n[n.length-1]})}else if(a==="OUTDENT"){if(n.length>1)n.pop()}else if(le.has(a))i++;else if(ce.has(a))i--;else if(i===0&&(a==="IDENTIFIER"||a==="PROPERTY")&&e[s+1]?.kind==="=")for(let o=n[n.length-1];o;o=o.up){if(J.on)J.n++;t[o.id].set(e[s].value,s)}}return{blockMaps:t,blockIdAt:r}},Wl=(e,t)=>{let r=0;for(;t"||n==="=>")return!0;if(n==="TERMINATOR"||n==="INDENT"||n==="OUTDENT")return!1}}return!1},Hl=(e,t)=>{let r=0;for(let n=t+1;n{let n=0;for(let i=t;i{let r=0;for(let n=t;n","=>","DO","DO_IIFE","TRY","LOOP"]),zl=new Set(["IF","UNLESS","SWITCH","WHILE","UNTIL","FOR","CLASS"]),ql=new Set(["->","=>","THEN","ELSE"]),Xl=new Set(["TERMINATOR","INDENT","OUTDENT","THEN","ELSE","IF","UNLESS","POST_IF","POST_UNLESS","WHILE","UNTIL","LOOP","FOR","WHEN","BY","SWITCH","RETURN","THROW",",","=","COMPOUND_ASSIGN","&&","||","??","TERNARY","?",":","RELATION","+","-","MATH","**","SHIFT","&","|","^","STRING_START","STRING_END","INTERPOLATION_START","INTERPOLATION_END"]),Jl=new Map([["yes","true"],["no","false"],["on","true"],["off","false"],["true","true"],["false","false"],["null","null"],["undefined","undefined"],["this","this"]]);function tr(e,t,r,n){let i=[],s=[],a=new WeakSet,o=()=>s[s.length-1]??null,l=!1,c=[],h=()=>c.length>0&&!!c[c.length-1],f=()=>c[c.length-1]??!1,u=(N)=>{let D=Jl.get(N.value);if(D===void 0)return;n(`'${N.value}' cannot name a binding — every read of '${N.value}' lowers to \`${D}\`, so the binding would be unreachable`,N.start,N.end)},d=-1,p=0,m=!1,g=!1,b=null,S=(N,D)=>(b??=Vl(e),(b.blockMaps[b.blockIdAt[N]].get(D)??-1)>=N),w=null,R=(N)=>{let D=[],O=N,W=!0,H=-1;for(;;){if(J.on)J.n++;let j=Hl(e,O);if(j<0){if(Xt(e,O)>=0)break;D.push({colon:O,shaped:!1,assigned:!1}),W=!1,H=-1;break}if(Kl(e,O+1,j)){D.push({colon:O,shaped:!1,assigned:!1}),W=!1,H=-1;break}D.push({colon:O,shaped:j>O+1&&Si(e,O+1,j),assigned:S(j+1,e[O-1].value)}),H=j;let X=e[j+1];if(X&&(X.kind==="IDENTIFIER"||X.kind==="PROPERTY")&&e[j+2]?.kind===":"){O=j+2;continue}break}let G=H>=0?e[H+1]:null,k=W&&G!=null&&G.kind!=="OUTDENT",v=k&&D.every((j)=>j.shaped&&j.assigned);if(!v&&k&&D.some((j)=>j.shaped)&&D.some((j)=>j.assigned)){let j=D.find((Z)=>!(Z.shaped&&Z.assigned)),X=e[j.colon-1],x=j.shaped?`'${X.value}' is never assigned in this block`:`the value after '${X.value}:' is not a type`;n("these adjacent 'name:' lines are ambiguous — with every line a type and every "+`name assigned later they would all claim as typed forward declarations, but ${x}; for typed forwards, assign every name in this block or add an initializer ('${X.value}: T = value'); for an implicit object, parenthesize the literal or assign it to a target`,X.start)}w??=new Map;for(let j of D)w.set(j.colon,v);return v},T=(N,D,O,W,H)=>({id:t(),kind:N,value:D,start:O,end:W,spaced:H.spaced,newLine:H.newLine,generated:!1,origin:null}),F=(N,D,O,W)=>{if(e[O]?.kind===":")n("type annotations use a single ':' (e.g. `x: number`), not '::'",D.start,e[O].end);let H=ms(e,O,W,n);if(H.parts.length===0)return-1;for(let G=O;G R) => body`, not `(x): (a: T) => R => body`",e[O].start);return i.push(T(N,jl(H.parts),D.start,H.end,D)),O+H.consumed-1},L=(N)=>{let D=N+1;if(e[D]?.kind!=="IDENTIFIER")return-1;if(D++,D=qt(e,D),D<0)return-1;if(e[D]?.kind!=="=")return-1;if(D++,e[D]?.kind==="INDENT"){let H=gs(e,D);return yi(e,D+1,H,n,{methods:!0}),H}let O=ms(e,D,{alias:!0},n);if(O.parts.length===0)n("a type alias needs a type after '='",e[D-1].end);yi(e,D,D+O.consumed,n);let W=e[D+O.consumed];if(W&&W.kind!=="TERMINATOR"&&W.kind!=="OUTDENT")n(`a type alias must fill its line — unexpected '${W.value}' after the type`,W.start);return D+O.consumed-1},C=(N)=>{let D=N+1;if(e[D]?.kind!=="IDENTIFIER")return-1;if(D++,D=qt(e,D),D===-1)return-1;if(e[D]?.kind==="EXTENDS"){if(e[D+1]?.kind!=="IDENTIFIER")return-1;if(D+=2,D=qt(e,D),D===-1)return-1}if(e[D]?.kind!=="INDENT")return-1;let O=gs(e,D);return yi(e,D+1,O,n,{methods:!0}),O};for(let N=0;N=0){let G=W?.kind==="EXPORT"?i.pop():D,k=e[H].end;i.push(T("TYPE_DECL",r.slice(G.start,k).replace(/\r\n/g,` +`),G.start,k,D)),N=H;continue}}if(Zt(D)&&W&&W.kind!=="."&&W.kind!=="?."&&ys.has(W.kind)&&e[N+1]&&(Ol.has(e[N+1].kind)||e[N+1].kind==="+"&&e[N+2]?.kind==="NUMBER")){let H=F(bs.get(D.value),D,N+1,{cast:!0});if(H<0)n(`'${D.value}' takes a type — \`x ${D.value} T\``,D.start,D.end);if(H>=0){N=H;let G=e[N+1],k=i[i.length-1];if(G&&G.newLine&&G.kind!=="TERMINATOR"&&G.kind!=="INDENT"&&G.kind!=="OUTDENT"&&!Zt(G)){let v=r.slice(k.end,G.start),j=v.indexOf(` +`);if(j>=0){let X=v[j-1]==="\r",x=k.end+j-(X?1:0),Z=X?2:1;i.push({id:t(),kind:"TERMINATOR",value:r.slice(x,x+Z),start:x,end:x+Z,spaced:!1,newLine:!1,generated:!0,origin:null})}}continue}}if(O==="COMPARE"&&D.value==="<"&&!D.spaced&&W&&(W.kind==="IDENTIFIER"||Q1(i,i.length-1))){let H=i[i.length-2]??null,G=qt(e,N);if(G>N){let k=G-1,v=e[k+1]?.kind,j=H?.kind==="DEF"||Q1(i,i.length-1),X=v==="="&&e[k+2]?.kind==="COMPONENT";if(j||X){if(j&&v==="("){let x=0;for(let Z=k+1;Z=0){N=U;continue}}if(W.kind==="CALL_END"&&a.has(W)){let U=F("TYPE",D,N+1,{});if(U>=0){N=U;continue}}if(Q1(i,i.length-1)){let U=F("TYPE",D,N+1,{});if(U>=0){if(W.kind==="PROPERTY"&&G?.kind==="DEF")u(W),W.kind="IDENTIFIER";N=U;continue}}if(W.kind==="TYPE_PARAMS"&&Q1(i,i.length-2)){let U=F("TYPE",D,N+1,{});if(U>=0){N=U;continue}}if(W.kind==="VOID_MARKER"&&Q1(i,i.length-2)){let U=F("TYPE",D,N+1,{});if(U>=0){N=U;continue}}if(s.length===0&&(W.kind==="PROPERTY"||W.kind==="IDENTIFIER")&&G?.kind==="CATCH"){let U=F("TYPE",D,N+1,{stopAtThen:!0});if(U>=0){if(W.kind==="PROPERTY")u(W),W.kind="IDENTIFIER";N=U;continue}}if(H&&(H.kind==="param"||H.kind==="defparam")&&!H.sawEq&&!H.sawType&&H.bodyDepth===0&&!H.inlineBody){let U=W.kind==="PROPERTY"||W.kind==="IDENTIFIER",r1=W.kind==="}"||W.kind==="]",Q=W.kind==="?"&&(G?.kind==="PROPERTY"||G?.kind==="IDENTIFIER");if(U||r1||Q){let l1=F("TYPE",D,N+1,{});if(l1>=0){if(Q){if(W.kind="OPT_MARKER",G.kind==="PROPERTY")G.kind="IDENTIFIER"}else if(W.kind==="PROPERTY"&&e[N-2]?.kind!=="@")u(W),W.kind="IDENTIFIER";H.sawType=!0,N=l1;continue}}}let k=W.kind==="OPT_MARKER"?1:0,v=k?i[i.length-2]??null:W,j=(i[i.length-2-k]??null)?.kind==="@",X=i.length-(j?3:2)-k,x=v!==null&&(v.kind==="PROPERTY"||v.kind==="IDENTIFIER")&&ee(i,X),Z=v!==null&&v.kind==="STRING"&&ee(i,X);if(s.length===0&&x&&!j)g=!0;if(s.length===0&&W.kind==="PROPERTY"&&i[i.length-2]?.kind==="."&&i[i.length-3]?.kind==="PROPERTY"&&i[i.length-3].value==="prototype"&&i[i.length-4]?.kind==="?."&&i[i.length-5]?.kind==="IDENTIFIER"&&ee(i,i.length-6)&&Xt(e,N)>=0)n("an annotated prototype member requires the unconditional chain (`X::m: T = v`) — "+"the soak form cannot carry the annotation",D.start,D.end);if(s.length===0&&W.kind==="PROPERTY"&&i[i.length-2]?.kind==="."&&i[i.length-3]?.kind==="PROPERTY"&&i[i.length-3].value==="prototype"&&i[i.length-4]?.kind==="."&&i[i.length-5]?.kind==="IDENTIFIER"&&ee(i,i.length-6)&&Xt(e,N)>=0){let U=F("TYPE",D,N+1,{});if(U>=0){N=U;continue}}if(s.length===0&&(x||Z)&&Xt(e,N)>=0){let U=F("TYPE",D,N+1,{});if(U>=0){if(v.kind==="PROPERTY"&&!j){if(f()!=="class")u(v);v.kind="IDENTIFIER"}g=!1,N=U;continue}}if(s.length===0&&h()&&x&&!Wl(e,N+1)){let U=-1,r1=0;for(let Q=N+1;QN+1&&Si(e,N+1,U)){let Q=F("TYPE",D,N+1,{});if(Q>=0){if(v.kind==="PROPERTY"&&!j){if(f()==="component")u(v);v.kind="IDENTIFIER"}N=Q;continue}}}if(s.length===0&&!h()&&x&&!j&&!k){let U=w?.get(N);if(U!==void 0?U:!m&&R(N)){let Q=F("TYPE",D,N+1,{});if(Q>=0){if(W.kind==="PROPERTY")u(W),W.kind="IDENTIFIER";g=!1,N=Q;continue}}}}if(le.has(O))p++;else if(ce.has(O)){if(p--,d>=0&&p=0&&p===d){if(O==="COMPARE"&&D.value==="<")n("class generics are not supported — the class head's '<' parses as a comparison "+"and the statement miscompiles silently (`class Box` compiles to "+"`(class Box {} < T) && …`); remove the generic list",D.start);if(Xl.has(O))d=-1}if(O==="CLASS"||O==="COMPONENT")l=O==="CLASS"?"class":"component";else if(O==="THEN")l=!1;else if(O==="INDENT")c.push(l),l=!1;else if(O==="OUTDENT")c.pop();else if(O==="TERMINATOR")l=!1;if(s.length===0){if(O==="TERMINATOR")m=g,g=!1;else if(O==="INDENT"||O==="OUTDENT")m=!1,g=!1}if(le.has(O)){let H="other";if(O==="PARAM_START")H="param";else if(O==="CALL_START"&&Q1(i,i.length-1))H="defparam";else if(O==="CALL_START"&&W?.kind==="TYPE_PARAMS"&&Q1(i,i.length-2))H="defparam";else if(O==="CALL_START"&&W?.kind==="VOID_MARKER"&&Q1(i,i.length-2))H="defparam";s.push({kind:H,sawEq:!1,sawType:!1,bodyDepth:0,pendingImmediate:!1,pendingCond:!1,inlineBody:!1})}else if(ce.has(O)){if(s.pop()?.kind==="defparam"&&O==="CALL_END")a.add(D)}else{let H=o();if(H&&(H.kind==="param"||H.kind==="defparam")){let G=()=>{H.sawEq=!1,H.sawType=!1,H.pendingImmediate=!1,H.pendingCond=!1,H.inlineBody=!1};if(H.bodyDepth>0){if(O==="INDENT")H.bodyDepth++;else if(O==="OUTDENT")H.bodyDepth--}else if(O==="INDENT")if(H.pendingImmediate||H.pendingCond)H.bodyDepth=1,H.pendingImmediate=!1,H.pendingCond=!1,H.inlineBody=!1;else G();else if(O===","||O==="OUTDENT")G();else if(O==="TERMINATOR")if(H.inlineBody&&D.value===";")H.pendingImmediate=!1,H.pendingCond=!1;else G();else{if(H.pendingImmediate=Yl.has(O),zl.has(O)&&W?.kind==="=")H.pendingCond=!0;else if(O==="THEN")H.pendingCond=!1;if(ql.has(O))H.inlineBody=!0;if(O==="=")H.sawEq=!0}}}i.push(D)}e.length=i.length;for(let N=0;N"&&r!=="=>")continue;let n=t-1,i=e[n];if(!i)continue;if(i.kind==="DO"){i.kind="DO_IIFE";continue}if(i.kind!==")"){let a=0,o=-1;for(let l=t-1;l>=0;l--){if(J.on)J.n++;let c=e[l],h=c.kind;if(h===")"||h==="]"||h==="}"||h==="PICK_END"||h==="CALL_END"||h==="PARAM_END"||h==="INDEX_END"||h==="COMPARE"&&c.value===">")a++;else if(h==="("||h==="["||h==="{"||h==="PICK_START"||h==="OPTPICK_START"||h==="CALL_START"||h==="PARAM_START"||h==="INDEX_START"||h==="COMPARE"&&c.value==="<")a--;else if(h==="SHIFT"&&c.value===">>")a+=2;else if(h==="SHIFT"&&c.value===">>>")a+=3;else if(a===0){if(h===":"){if(e[l-1]?.kind===")")o=l-1;break}if(h==="TERMINATOR"||h==="INDENT"||h==="OUTDENT"||h==="="||h==="->"||h==="=>")break}}if(o<0)continue;n=o,i=e[n]}else{let a=0,o=-1;for(let l=t-1;l>=0;l--){if(J.on)J.n++;let c=e[l].kind;if(c===")"||c==="CALL_END"||c==="PARAM_END")a++;else if(c==="("||c==="CALL_START"||c==="PARAM_START"){if(--a===0){o=l;break}}}if(o>1&&e[o-1].kind===":"&&e[o-2]?.kind===")")n=o-2,i=e[n]}let s=0;for(let a=n-1;a>=0;a--){if(J.on)J.n++;let o=e[a];if(o.kind===")"||o.kind==="CALL_END"||o.kind==="INDEX_END"||o.kind==="]")s++;else if(o.kind==="("||o.kind==="CALL_START"||o.kind==="INDEX_START"||o.kind==="["){if(s>0){s--;continue}if(o.kind==="("){if(o.kind="PARAM_START",i.kind="PARAM_END",e[a-1]?.kind==="DO")e[a-1].kind="DO_IIFE"}break}}}return e}function Ql(e){let t=new Set(["(","[","{","PICK_START","OPTPICK_START","CALL_START","INDEX_START","PARAM_START","STRING_START","INTERPOLATION_START","HEREGEX_START","INDENT"]),r=new Set([")","]","}","PICK_END","CALL_END","INDEX_END","PARAM_END","STRING_END","INTERPOLATION_END","HEREGEX_END","OUTDENT"]),n=[0];for(let i=0;i0)n[a]--}else if(s==="INDEX_START"&&n[n.length-1]===0){let a=1,o=i;while(++o0){if(J.on)J.n++;if(t.has(e[o].kind))a++;else if(r.has(e[o].kind))a--}if(a===0&&e[o]?.kind===":")e[i].kind="[",e[o-1].kind="]"}if(t.has(e[i].kind))n.push(0);else if(r.has(e[i].kind))n.pop()}return e}var e3=new Set(["STRING","STRING_END","REGEX","HEREGEX_END","NUMBER","BOOL","NULL","UNDEFINED","]","}","SYMBOL"]);function t3(e){let t=0;for(let r=0;r0&&(n==="->"||n==="=>")&&r>0&&(e3.has(e[r-1].kind)||e[r-1].kind==="IDENTIFIER"&&(e[r-1].value==="Infinity"||e[r-1].value==="NaN")))e.splice(r,0,{kind:",",value:",",start:e[r].start,end:e[r].start}),r++}return e}function r3(e){let t=new Set(["(","[","{","PICK_START","OPTPICK_START","CALL_START","INDEX_START","PARAM_START","STRING_START","INTERPOLATION_START","HEREGEX_START","INDENT"]),r=new Set([")","]","}","PICK_END","CALL_END","INDEX_END","PARAM_END","STRING_END","INTERPOLATION_END","HEREGEX_END","OUTDENT"]),n=(s)=>s!==void 0&&(s.kind==="IDENTIFIER"||s.kind==="PROPERTY"),i=[0];for(let s=0;s0)i[o]--}else if(n(e[s])&&i[i.length-1]===0&&e[s-1]?.kind!=="."&&e[s-1]?.kind!=="?."&&e[s-1]?.kind!=="@"){let o=s;for(;;){if(J.on)J.n++;let l=e[o+1],c=e[o+2];if(l===void 0||!n(c))break;if(l.kind==="."){o+=2;continue}if(l.kind==="-"&&l.start===e[o].end&&c.start===l.end){o+=2;continue}break}if(o>s&&e[o+1]?.kind===":"){let l="";for(let h=s;h<=o;h++)l+=e[h].value;let c={...e[s],kind:"STRING",value:JSON.stringify(l),end:e[o].end};e.splice(s,o-s+1,c)}}if(t.has(e[s].kind))i.push(0);else if(r.has(e[s].kind))i.pop()}return e}function i3(e){for(let t=0;t>>=":"COMPOUND_ASSIGN"},ws={"**=":"COMPOUND_ASSIGN","&&=":"COMPOUND_ASSIGN","||=":"COMPOUND_ASSIGN","??=":"COMPOUND_ASSIGN","<<=":"COMPOUND_ASSIGN",">>=":"COMPOUND_ASSIGN","//=":"COMPOUND_ASSIGN","%%=":"COMPOUND_ASSIGN",">>>":"SHIFT","...":"...","<=>":"BIND"},_s={"==":"COMPARE","!=":"COMPARE","<=":"COMPARE",">=":"COMPARE","**":"**","&&":"&&","||":"||","??":"??","..":"..","+=":"COMPOUND_ASSIGN","-=":"COMPOUND_ASSIGN","*=":"COMPOUND_ASSIGN","/=":"COMPOUND_ASSIGN","%=":"COMPOUND_ASSIGN","&=":"COMPOUND_ASSIGN","^=":"COMPOUND_ASSIGN","|=":"COMPOUND_ASSIGN",":=":"REACTIVE_ASSIGN","~=":"COMPUTED_ASSIGN","<~":"GATE","=!":"READONLY_ASSIGN","<<":"SHIFT",">>":"SHIFT","//":"MATH","%%":"MATH","~>":"EFFECT","!>":"!>","=~":"MATCH","->":"->","=>":"=>","++":"++","--":"--","?.":"?.",".=":"METHOD_ASSIGN","*{":"MAP_START"},n3=new Set([".","?.","UNARY","NEW","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","??","TERNARY","EXTENDS"]),ir=new Set(["IDENTIFIER","PROPERTY",")","CALL_END","NUMBER","STRING","]","INDEX_END","SUPER","DAMMIT","MAYBE_DAMMIT","DYNAMIC_IMPORT"]),at=new Set([...ir,"BOOL","NULL","UNDEFINED","}","PICK_END","STRING_END","REGEX","HEREGEX_END","THIS","@"]);function s3(e,t){let r=t;while(r=e.length||a3.test(e[r+1])))r++;return r}var a3=/[\s,)\]};:]/,ki=/[0-9]/,o3=/^0b[01](?:_?[01])*n?|^0o[0-7](?:_?[0-7])*n?|^0x[\da-f](?:_?[\da-f])*n?|^\d+(?:_\d+)*n|^(?:\d+(?:_\d+)*)?\.?\d+(?:_\d+)*(?:e[+-]?\d+(?:_\d+)*)?/i,l3=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,c3=/^\w*/,Ns=/^(?!.*(.).*\1)[gimsuy]*$/,h3=new Set([...at,"++","--"]);function f3(e,t="",{tolerant:r=!1}={}){An();let n=new ye(e,t),i=[],s=[],a=[],o=[""],l=[],c=0,h=0,f=!0,u=-1,d=!1,p=!1,m=null,g=(_)=>_?.kind==="{"||_?.kind===","||(_?.kind==="INDENT"||_?.kind==="TERMINATOR")&&l.length>0,b=(_)=>Boolean(rr[_]&&_!=="own")||Es.has(_)||Rs.has(_)||Boolean(Ei[_])||_==="in"||_==="of"||_==="when"||_==="import"||_==="export",S=(_,z)=>w&&g(_)&&/^[^\S\n]+as[^\S\n]/.test(z)||R&&_?.kind==="AS",w=!1,R=!1,T=!1,F=0,L=0,C=[],N=(_,z,q=z)=>{let{line:t1,col:P}=n.lineColAt(z),Y=Error(`${t}:${t1+1}:${P+1}: ${_}`);throw Y.reason=_,Y.start=z,Y.end=q,Y},D=(_,z,q=z)=>{try{N(_,z,q)}catch(t1){throw t1.openAtEnd=!0,t1}},O=(_,z,q,t1,P={})=>{if((_==="STRING"||_==="STRING_START")&&(w||R)){let o1=i[i.length-1];if(o1?.kind==="IDENTIFIER"&&o1.value==="from")o1.kind="FROM"}if(_==="IDENTIFIER"&&z==="from"&&i[i.length-1]?.kind==="YIELD")_="FROM";if(_==="IDENTIFIER"&&z==="from"&&i[i.length-1]?.kind==="IDENTIFIER"&&i[i.length-2]?.kind==="ACCEPT")_="FROM";if(_==="RELATION"){let o1=i[i.length-1];if(o1?.kind==="UNARY"&&o1.value==="!")i.pop(),z="!"+z,q=o1.start}let Y={id:L++,kind:_,value:z,start:q,end:t1,spaced:d,newLine:p,generated:!1,origin:null,...P};if(i.push(Y),!Y.generated&&C.length>0){for(let o1 of C)o1.origin=Y.id;C.length=0}d=!1,p=!1},W=(_,z)=>{let q={id:L++,kind:_,value:_,start:z,end:z,spaced:!1,newLine:!1,generated:!0,origin:null};C.push(q),i.push(q)},H=()=>i[i.length-1]??null,G=()=>{let _=i.length-1;while(_>=2&&i[_].kind==="."&&i[_-1].kind==="PROPERTY"&&i[_-2].kind===".")_-=2;let z=i[_-1];if(!z||z.kind==="INDENT"||z.kind==="TERMINATOR"||z.kind==="OUTDENT"||z.kind==="RENDER")return!0;return z.kind==="IDENTIFIER"&&$e.has(String(z.value).split("#")[0])},k=()=>{let _=0,z=0;for(let q=i.length-1;q>=0;q--){let t1=i[q].kind;if(t1==="OUTDENT")_++;else if(t1==="INDENT"){if(_--,_=0;P--){let Y=i[P].kind;if(Y==="TERMINATOR"||Y==="INDENT"||Y==="OUTDENT")break;if(Y==="COMPONENT")return!0}}}}return!1},v=()=>{if(!l[l.length-1]?.pickKeys)return!1;let z=H()?.kind;return z==="PICK_START"||z==="OPTPICK_START"||z===","||z===":"||z==="TERMINATOR"||z==="INDENT"||z==="OUTDENT"},j=(_,z)=>{let q=c;while(c=e.length)D("unterminated string",z);let t1=e.slice(q,c);return c+=_.length,t1},X=(_)=>_.replace(/\\[\s\S]|`|\$\{/g,(z)=>z[0]==="\\"?z:`\\${z}`),x=(_)=>{let z=null,q=/\n+([^\S\n]*)(?=\S)/g,t1;while(t1=q.exec(_))if(z===null||t1[1].length>0&&t1[1].length{if(z===null)return _??"";if(_===null)return z;return z.length<=_.length?z:_},U=(_,z)=>{if(z.length===1)return _;if(_=_.replace(/\r\n?/g,` `),!_.includes(` `))return _;let q=_.slice(_.lastIndexOf(` -`)+1),t1=/^[^\S\n]*$/.test(q)?q:null,C=Z(x(_),t1),Y=C?_.split(` -${C}`).join(` +`)+1),t1=/^[^\S\n]*$/.test(q)?q:null,P=Z(x(_),t1),Y=P?_.split(` +${P}`).join(` `):_;return Y=Y.replace(/^\n/,""),Y.replace(/\n[^\S\n]*$/,"")},r1=(_)=>{let z=c,q=-1;while(c=e.length)D("unterminated string",_.opener);let t1=e.slice(z,q===-1?c:q);if(q===-1&&!_.started){let C=c+_.delim.length,Y=U(t1,_.delim),o1=_.delim.length===3?`\`${X(Y)}\``:`"${Y}"`;O("STRING",o1,_.opener,C),c=C;return}if(!_.started)_.started=!0,O("STRING_START","(",_.opener,_.opener+_.delim.length);if(q===-1){_.chunkIdx.push(i.length),O("STRING",`"${t1}"`,z,c);let C=c+_.delim.length;if(O("STRING_END",")",c,C),c=C,_.delim.length===3)Q(_);return}_.chunkIdx.push(i.length),O("STRING",`"${t1}"`,z,q),O("INTERPOLATION_START","(",q,q+2),e1("interp",q,{ctx:_}),c=q+2},Q=(_)=>{let z=i[i.length-1],q=z.start-1,t1=q<0?-1:Math.max(e.lastIndexOf(` -`,q),e.lastIndexOf("\r",q)),C=e.slice(t1+1,z.start),Y=/^[^\S\n]*$/.test(C)?C:null,o1=_.chunkIdx.map((y1)=>i[y1].value.slice(1,-1).replace(/\r\n?/g,` +`||e[c]==="\r"))N("unterminated string",_.opener);if(e[c]==="\\"){c+=2;continue}if((e[c]==="#"||e[c]==="$")&&e[c+1]==="{"){q=c;break}c++}if(c>=e.length)D("unterminated string",_.opener);let t1=e.slice(z,q===-1?c:q);if(q===-1&&!_.started){let P=c+_.delim.length,Y=U(t1,_.delim),o1=_.delim.length===3?`\`${X(Y)}\``:`"${Y}"`;O("STRING",o1,_.opener,P),c=P;return}if(!_.started)_.started=!0,O("STRING_START","(",_.opener,_.opener+_.delim.length);if(q===-1){_.chunkIdx.push(i.length),O("STRING",`"${t1}"`,z,c);let P=c+_.delim.length;if(O("STRING_END",")",c,P),c=P,_.delim.length===3)Q(_);return}_.chunkIdx.push(i.length),O("STRING",`"${t1}"`,z,q),O("INTERPOLATION_START","(",q,q+2),e1("interp",q,{ctx:_}),c=q+2},Q=(_)=>{let z=i[i.length-1],q=z.start-1,t1=q<0?-1:Math.max(e.lastIndexOf(` +`,q),e.lastIndexOf("\r",q)),P=e.slice(t1+1,z.start),Y=/^[^\S\n]*$/.test(P)?P:null,o1=_.chunkIdx.map((y1)=>i[y1].value.slice(1,-1).replace(/\r\n?/g,` `)),E1=Z(x(o1.join("")),Y);_.chunkIdx.forEach((y1,S1)=>{let _1=o1[S1];if(E1)_1=_1.split(` ${E1}`).join(` -`);if(S1===0)_1=_1.replace(/^\n/,"");if(S1===_.chunkIdx.length-1)_1=_1.replace(/\n[^\S\n]*$/,"");i[y1].value=`"${_1}"`})},l1=(_)=>{let z=c,q="",t1=-1;while(c=e.length)break;q+=e.slice(c,c+2),c+=2;continue}if(C==="#"&&e[c+1]==="{"){t1=c;break}if(_.inClass){if(C===` -`||C==="\r")N("newline inside a heregex character class (a regex literal cannot contain one)",c);if(C==="]")_.inClass=!1;q+=C,c++;continue}if(C==="["){_.inClass=!0,q+=C,c++;continue}if(/\s/.test(C)){while(c{let{out:z,chunkStart:q,interpAt:t1}=l1(_);if(t1>=0){if(!_.started)_.started=!0,O("HEREGEX_START","///",_.opener,_.opener+3);O("STRING",`"${z}"`,q,t1),O("INTERPOLATION_START","(",t1,t1+2),e1("interp",t1,{ctx:_,heregex:!0}),c=t1+2;return}if(!e.startsWith("///",c))D("missing /// (unclosed heregex)",_.opener);let C=c;c+=3;let Y=/^\w*/.exec(e.slice(c))[0];if(!Ns.test(Y))N(`invalid regular expression flags ${Y}`,c);let o1=c+Y.length;if(!_.started)O("REGEX",`/${z===""?"(?:)":z}/${Y}`,_.opener,o1);else O("STRING",`"${z}"`,q,C),O("HEREGEX_END",Y,C,o1);c=o1},s1=()=>{for(let _=i.length-1;_>=0;_--)if(!i[_].generated)return i[_].end;return 0},e1=(_,z,q={})=>{l.push({kind:_,at:z,depth:o.length,...q})},K=null,a1={upTo:0,ref:null,level:0,answers:new Map},A=()=>K!==null&&o.length>=K,V=()=>{for(let _=i.length-1;_>=0;_--){let z=i[_].kind;if(z==="TERMINATOR"||z==="INDENT"||z==="OUTDENT")return!1;if(z==="=")return er(i,_)}return!1},B=()=>{if(K!==null&&o.length{let _=i.length;if(i[_-1]?.kind==="=")return er(i,_-1);let z=(t1)=>i[t1]?.kind==="RESERVED"&&i[t1].value==="interface",q=Qt(i,_-1);if(q<0||i[q]?.kind!=="IDENTIFIER")return!1;if(z(q-1))return ee(i,q-2);if(i[q-1]?.kind==="EXTENDS"){let t1=Qt(i,q-2);if(t1>=0&&i[t1]?.kind==="IDENTIFIER"&&z(t1-1))return ee(i,t1-2)}return!1},f1=(_)=>e[_]===` -`||e[_]==="\r",h1=(_)=>{let z=_+1;while(z{let z=_,q=1;while(z{let z=e[_],q=_+1;while(q{let _=l.pop();if(!_)return null;while(i.length&&i[i.length-1].kind==="TERMINATOR")i.pop();let z=s1();while(o.length>_.depth)o.pop(),W("OUTDENT",z);return B(),_},d1=(_,z,q="")=>{let t1=s1(),C=l.length>0?l[l.length-1].depth:1;while(o.length>1&&o[o.length-1].length>_.length){if(o.length<=C)N(`dedent to ${JSON.stringify(_)} crosses the enclosing bracket's indentation floor ${JSON.stringify(o[o.length-1])}`,z);o.pop(),W("OUTDENT",t1)}if(B(),o[o.length-1]!==_)N(`inconsistent indentation: ${JSON.stringify(_)} neither extends the enclosing block's ${JSON.stringify(o[o.length-1])} nor matches any open block${q}`,z)};while(c=e.length)break;let o1=e[c]===` +`);if(S1===0)_1=_1.replace(/^\n/,"");if(S1===_.chunkIdx.length-1)_1=_1.replace(/\n[^\S\n]*$/,"");i[y1].value=`"${_1}"`})},l1=(_)=>{let z=c,q="",t1=-1;while(c=e.length)break;q+=e.slice(c,c+2),c+=2;continue}if(P==="#"&&e[c+1]==="{"){t1=c;break}if(_.inClass){if(P===` +`||P==="\r")N("newline inside a heregex character class (a regex literal cannot contain one)",c);if(P==="]")_.inClass=!1;q+=P,c++;continue}if(P==="["){_.inClass=!0,q+=P,c++;continue}if(/\s/.test(P)){while(c{let{out:z,chunkStart:q,interpAt:t1}=l1(_);if(t1>=0){if(!_.started)_.started=!0,O("HEREGEX_START","///",_.opener,_.opener+3);O("STRING",`"${z}"`,q,t1),O("INTERPOLATION_START","(",t1,t1+2),e1("interp",t1,{ctx:_,heregex:!0}),c=t1+2;return}if(!e.startsWith("///",c))D("missing /// (unclosed heregex)",_.opener);let P=c;c+=3;let Y=/^\w*/.exec(e.slice(c))[0];if(!Ns.test(Y))N(`invalid regular expression flags ${Y}`,c);let o1=c+Y.length;if(!_.started)O("REGEX",`/${z===""?"(?:)":z}/${Y}`,_.opener,o1);else O("STRING",`"${z}"`,q,P),O("HEREGEX_END",Y,P,o1);c=o1},s1=()=>{for(let _=i.length-1;_>=0;_--)if(!i[_].generated)return i[_].end;return 0},e1=(_,z,q={})=>{l.push({kind:_,at:z,depth:o.length,...q})},K=null,a1={upTo:0,ref:null,level:0,answers:new Map},A=()=>K!==null&&o.length>=K,V=()=>{for(let _=i.length-1;_>=0;_--){let z=i[_].kind;if(z==="TERMINATOR"||z==="INDENT"||z==="OUTDENT")return!1;if(z==="=")return er(i,_)}return!1},B=()=>{if(K!==null&&o.length{let _=i.length;if(i[_-1]?.kind==="=")return er(i,_-1);let z=(t1)=>i[t1]?.kind==="RESERVED"&&i[t1].value==="interface",q=Qt(i,_-1);if(q<0||i[q]?.kind!=="IDENTIFIER")return!1;if(z(q-1))return ee(i,q-2);if(i[q-1]?.kind==="EXTENDS"){let t1=Qt(i,q-2);if(t1>=0&&i[t1]?.kind==="IDENTIFIER"&&z(t1-1))return ee(i,t1-2)}return!1},h1=(_)=>e[_]===` +`||e[_]==="\r",f1=(_)=>{let z=_+1;while(z{let z=_,q=1;while(z{let z=e[_],q=_+1;while(q{let _=l.pop();if(!_)return null;while(i.length&&i[i.length-1].kind==="TERMINATOR")i.pop();let z=s1();while(o.length>_.depth)o.pop(),W("OUTDENT",z);return B(),_},d1=(_,z,q="")=>{let t1=s1(),P=l.length>0?l[l.length-1].depth:1;while(o.length>1&&o[o.length-1].length>_.length){if(o.length<=P)N(`dedent to ${JSON.stringify(_)} crosses the enclosing bracket's indentation floor ${JSON.stringify(o[o.length-1])}`,z);o.pop(),W("OUTDENT",t1)}if(B(),o[o.length-1]!==_)N(`inconsistent indentation: ${JSON.stringify(_)} neither extends the enclosing block's ${JSON.stringify(o[o.length-1])} nor matches any open block${q}`,z)};while(c=e.length)break;let o1=e[c]===` `?1:e[c]==="\r"&&e[c+1]===` -`?2:0;if(o1){n.push({kind:"blank",start:C,end:c+o1,text:e.slice(C,c+o1)}),c+=o1;continue}let E1=T&&/^#[A-Za-z_]/.test(e.slice(c,c+2))&&Y.length>(o[F-1]??"").length;if(e[c]==="#"&&!E1){let m1=c;if(e.startsWith("###",c)&&e[c+3]!=="#"){let be=e.indexOf("###",c+3);if(be<0)D("unclosed `###` block comment — close it with `###`",c,c+3);m1=be+3;let Oe=m1;while(e[Oe]===" "||e[Oe]==="\t")Oe++;if(Oe(o[F-1]??"").length;if(e[c]==="#"&&!E1){let m1=c;if(e.startsWith("###",c)&&e[c+3]!=="#"){let be=e.indexOf("###",c+3);if(be<0)D("unclosed `###` block comment — close it with `###`",c,c+3);m1=be+3;let Oe=m1;while(e[Oe]===" "||e[Oe]==="\t")Oe++;if(Oe{if(S1==null||S1.kind!=="."&&S1.kind!=="?.")return!1;if(l.length>0)return!1;if(T)return!1;if(Y.length>y1.length)return!1;if(!j1.test(e[c]??""))return!1;let m1=c;while(m1=0&&e[w1+1]!=="."&&!ki.test(e[w1+1]??"")&&!T;if(R1&&!v1&&Y.lengthe.startsWith(D1,c)&&!G1.test(e[c+D1.length]??""));if(i.length>0&&u>=0&&!m1&&H()?.kind!=="TERMINATOR"){let D1=e[u]==="\r"?2:1;O("TERMINATOR",e.slice(u,u+D1),u,u+D1,{generated:!0})}}if(T&&o.length<=F)T=!1;if(h=!1,p=!0,m!==null&&l.length<=m)m=null;if(l.length===0)w=!1,R=!1;continue}let _=e[c];if(_===" "||_==="\t"){d=!0,c++;continue}if(_==="\r"&&e[c+1]!==` +`))m1++;let D1=m1{if(S1==null||S1.kind!=="."&&S1.kind!=="?.")return!1;if(l.length>0)return!1;if(T)return!1;if(Y.length>y1.length)return!1;if(!j1.test(e[c]??""))return!1;let m1=c;while(m1=0&&e[w1+1]!=="."&&!ki.test(e[w1+1]??"")&&!T;if(R1&&!v1&&Y.lengthe.startsWith(D1,c)&&!G1.test(e[c+D1.length]??""));if(i.length>0&&u>=0&&!m1&&H()?.kind!=="TERMINATOR"){let D1=e[u]==="\r"?2:1;O("TERMINATOR",e.slice(u,u+D1),u,u+D1,{generated:!0})}}if(T&&o.length<=F)T=!1;if(f=!1,p=!0,m!==null&&l.length<=m)m=null;if(l.length===0)w=!1,R=!1;continue}let _=e[c];if(_===" "||_==="\t"){d=!0,c++;continue}if(_==="\r"&&e[c+1]!==` `)N("bare carriage return (not followed by a newline) is not supported",c);if(_===` -`||_==="\r"){u=c,h=!0,c+=_==="\r"?2:1;continue}if(_==="#"){if(T&&/[A-Za-z_]/.test(e[c+1]??"")){let Y=/^#([A-Za-z_][\w-]*)/.exec(e.slice(c)),o1=H();if(o1&&(o1.kind==="IDENTIFIER"||o1.kind==="PROPERTY")&&!d&&!o1.generated){o1.value+=Y[0],o1.end=c+Y[0].length,c+=Y[0].length;continue}if(o1&&(o1.kind==="TERMINATOR"||o1.kind==="INDENT"||o1.kind==="OUTDENT"||o1.kind==="RENDER")){O("IDENTIFIER",`div${Y[0]}`,c,c+Y[0].length),c+=Y[0].length;continue}}let C=c;while(C{let R1=c;while(e[R1]===" "||e[R1]==="\t")R1++;let w1=e[R1]??"";if(w1==="{"||w1==="*")return!0;if(!j1.test(w1))return!1;let g1=R1+1;while(g1{let R1=c;while(e[R1]===" "||e[R1]==="\t")R1++;return e[R1]==="{"})())O("EXPORT_TYPE",Y,C,c);else if(Y==="type"&&l[l.length-1]?.specifiers===!0&&(()=>{let R1=c;while(e[R1]===" "||e[R1]==="\t")R1++;if(!j1.test(e[R1]??""))return!1;let w1=R1+1;while(w1"}[C]??C,E1=o1!==C,y1=1,S1=c+3;while(S10){let g1=e[S1];if(g1==="\\"){S1+=2;continue}if(E1&&g1===C)y1++;if(g1===o1)y1--;if(y1>0)S1++}if(y1!==0)D(`unclosed %w${C} — never closed by '${o1}'`,c,c+3);O("[","[",c,c+3);let _1=/(?:\\\s|\S)+/g;_1.lastIndex=c+3;let v1,R1=!0,w1=c+3;while((v1=_1.exec(e))!==null&&v1.index=S1)break;_1.lastIndex=g1}O("]","]",S1,S1+1),c=S1+1;continue}}let z=e.slice(c,c+4);if(Ts[z]){O(Ts[z],z,c,c+4),c+=4;continue}let q=e.slice(c,c+3);if(q==="==="||q==="!=="){O("COMPARE",q.slice(0,2),c,c+3),c+=3;continue}if(ws[q]){O(ws[q],q,c,c+3),c+=3;continue}let t1=e.slice(c,c+2);if(t1==="?="&&e[c+2]!=="="){O("COMPOUND_ASSIGN","??=",c,c+2),c+=2;continue}if(t1==="*{"){O("MAP_START","*",c,c+1),c+=1;continue}if(_s[t1]){if(t1==="!="&&!d&&(H()?.kind==="IDENTIFIER"||H()?.kind==="PROPERTY"))N(`cannot use the '!' sigil in an assignment to '${H().value}' (write 'a != b' with a space for comparison)`,c);O(_s[t1],t1,c,c+2),c+=2;continue}if(_==="<"||_===">"){O("COMPARE",_,c,c+1),c++;continue}if(_==="*"||_==="/"||_==="%"){if(_==="*"&&w&&(H()?.kind==="IMPORT"||H()?.kind==="IMPORT_TYPE"||H()?.kind===","))O("IMPORT_ALL",_,c,c+1);else if(_==="*"&&H()?.kind==="EXPORT")O("EXPORT_ALL",_,c,c+1);else if(_==="*"&&H()?.kind==="YIELD"&&!p)O("FROM",_,c,c+1);else O("MATH",_,c,c+1);c++;continue}if(_==="!"||_==="~"){if(_==="!"&&!d&&(H()?.kind==="IDENTIFIER"||H()?.kind==="PROPERTY"||H()?.kind==="DYNAMIC_IMPORT")){O("DAMMIT","!",c,c+1),c++;continue}O("UNARY_MATH",_,c,c+1),c++;continue}if(_==="&"||_==="|"||_==="^"){O(_,_,c,c+1),c++;continue}if(_==="?"){if(!d){if(e[c+1]==="("||e[c+1]==="["){O("?.","?",c,c+1),c++;continue}let C=H();if(e[c+1]==="!"&&C&&!C.generated&&at.has(C.kind)){if(C.kind!=="IDENTIFIER"&&C.kind!=="PROPERTY")N("maybe dammit '?!' follows a name, as dammit does (`f?!`, `obj.method?!`) — bind the value to a name first",c,c+2);O("MAYBE_DAMMIT","?!",c,c+2),c+=2;continue}if(C&&!C.generated&&at.has(C.kind)){let o1=i[i.length-2]??null,E1=o1===null||o1.kind==="@"||o1.kind==="TERMINATOR"||o1.kind==="INDENT"||o1.kind==="OUTDENT";if((C.kind==="PROPERTY"||C.kind==="IDENTIFIER")&&E1&&/^[^\S\n]*(:=|~=|=!|=(?![=>!])|:(?![:=]))/.test(e.slice(c+1))){O("OPT_MARKER","?",c,c+1),c++;continue}O("?","?",c,c+1),c++;continue}let Y=i[i.length-2]??null;if(C&&(C.kind==="-"||C.kind==="+")&&!C.spaced&&(Y?.kind==="]"||Y?.kind==="INDEX_END")&&e[c+1]===":"){O("?","?",c,c+1),c++;continue}N("unspaced '?' needs a value before it (postfix existence) — write ' ? ' for a ternary",c)}f++,O("TERNARY","?",c,c+1),c++;continue}if(_==="@"){O("@","@",c,c+1),c++;continue}if(_==="("){let C=H();if(C&&!d&&C.kind==="?."){C.kind="ES6_OPTIONAL_CALL",e1("call",c),O("CALL_START","(",c,c+1),c++;continue}let Y=C&&!d&&!C.generated&&ir.has(C.kind);e1(Y?"call":"group",c),O(Y?"CALL_START":"(","(",c,c+1),c++;continue}if(_===")"){let C=c1();if(C?.kind!=="call"&&C?.kind!=="group")N("unmatched ')'",c);O(C.kind==="call"?"CALL_END":")",")",c,c+1),c++;continue}if(_==="["){let C=H();if(C&&!d&&C.kind==="?."){C.kind="ES6_OPTIONAL_INDEX",e1("index",c),O("INDEX_START","[",c,c+1),c++;continue}let Y=C&&!d&&!C.generated&&at.has(C.kind);e1(Y?"index":"array",c),O(Y?"INDEX_START":"[","[",c,c+1),c++;continue}if(_==="]"){let C=c1();if(C?.kind!=="index"&&C?.kind!=="array")N("unmatched ']'",c);O(C.kind==="index"?"INDEX_END":"]","]",c,c+1),c++;continue}if(_==="{"){let C=H();if(C!=null&&(C.kind==="."||C.kind==="?.")&&!d&&!C.newLine&&i.length>=2&&at.has(i[i.length-2].kind)&&i[i.length-2].kind!=="PICK_END")i.pop(),e1("object",c,{pick:!0,pickKeys:e[c+1]!==" "&&e[c+1]!=="\t"}),O(C.kind==="?."?"OPTPICK_START":"PICK_START","{",c,c+1);else{let o1=C!=null&&(C.kind==="IMPORT"||C.kind==="IMPORT_TYPE"||C.kind==="EXPORT"||C.kind==="EXPORT_TYPE"||w&&C.kind===",");e1("object",c,o1?{specifiers:!0}:{}),O("{","{",c,c+1)}c++;continue}if(_==="}"){let C=c1();if(C?.kind==="interp"){if(O("INTERPOLATION_END",")",c,c+1),c++,C.heregex)I(C.ctx);else r1(C.ctx);continue}if(C?.kind!=="object")N("unmatched '}'",c);O(C.pick?"PICK_END":"}","}",c,c+1),c++;continue}if(_===":"&&e[c+1]===":"){if(!A()&&!V()&&j1.test(e[c+2]??"")){let C=i[i.length-1];if(C?.kind==="?"&&C.end===c)C.kind="?.",C.value="?.",C.end=c+2,O("PROPERTY","prototype",c,c+2),O(".",".",c,c+2);else O(".",".",c,c+2),O("PROPERTY","prototype",c,c+2),O(".",".",c,c+2);c+=2;continue}N("type annotations use a single ':' (e.g. `x: number`), not '::'",c,c+2)}if(_===":"&&j1.test(e[c+1]??"")&&!A()&&!V()){let C=i[i.length-1];if(!(C!==void 0&&(C.kind==="PROPERTY"||C.kind===")"||C.kind==="]"||C.kind==="}"||C.kind==="CALL_END"||C.kind==="INDEX_END"||C.kind==="PARAM_END"||C.kind==="PICK_END"||C.kind==="STRING"||C.kind==="STRING_END"||C.kind==="NUMBER"||C.kind==="REGEX"||C.kind==="HEREGEX_END"||C.kind==="BOOL"||C.kind==="NULL"||C.kind==="UNDEFINED"||C.kind==="DAMMIT"||C.kind==="?"||C.kind==="MAYBE_DAMMIT"||C.kind==="OPT_MARKER"||C.kind==="THIS"||C.kind==="@"||C.kind==="SYMBOL"||f>0&&C.kind==="IDENTIFIER"))){let o1=n3(e,c+1);O("SYMBOL",e.slice(c+1,o1),c,o1),c=o1;continue}}if(_==="="||_==="+"||_==="-"||_==="."||_===","||_===";"||_===":"){if(_===":"&&f>0)f--;O(_===";"?"TERMINATOR":_,_,c,c+1),c++;continue}if(_==="`"&&(A()||V())){let C=h1(c);O("TYPE_TEMPLATE",e.slice(c,C),c,C),c=C;continue}N(`cannot tokenize '${_}'`,c)}if(l.length>0){if(!(r&&l.every((q)=>q.kind!=="interp"))){let q=l[0],t1={call:"(",group:"(",index:"[",array:"[",object:"{",interp:"#{"}[q.kind]??q.kind;D(`unclosed '${t1}' — never closed by end of input`,q.at,q.at+t1.length)}let z=e.length;while(z>0&&(e[z-1]===` -`||e[z-1]==="\r"))z--;while(l.length>0){let q=l[l.length-1],t1={call:"(",group:"(",index:"[",array:"[",object:"{"}[q.kind]??q.kind;a.push({message:`unclosed '${t1}' — never closed by end of input`,start:q.at,end:q.at+t1.length,expected:[],got:"end of input"});let C=q.kind==="call"?"CALL_END":q.kind==="group"?")":q.kind==="index"?"INDEX_END":q.kind==="array"?"]":q.pick?"PICK_END":"}";c1();let Y=i.length;while(Y>0&&(i[Y-1].kind==="OUTDENT"||i[Y-1].kind==="INDENT"||i[Y-1].kind==="TERMINATOR"))Y--;let o1=i[Y-1]?.kind,E1=q.kind==="call"&&o1==="CALL_START"||q.kind==="index"&&o1==="INDEX_START";if(o1===","||E1){let y1={id:L++,kind:"IDENTIFIER",value:"",start:z,end:z,spaced:!1,newLine:!1,generated:!0,origin:null};P.push(y1),i.splice(Y,0,y1)}W(C,z)}}let M=s1();while(o.length>1)o.pop(),W("OUTDENT",M);let n1=()=>L++;Jl(i),Zl(i),r3(i),Un(i,n1,e,N,r?(_)=>a.push({message:_.reason??String(_.message),start:_.start??0,end:_.end??_.start??0,expected:[],got:""}):null),tr(i,n1,e,N);for(let _ of i)if(_.kind==="RESERVED")N(`'${_.value}' is reserved and not supported yet`,_.start);return ss(i,n1,N),t3(i),Kt(i,n1),Ti(i),Yt(i,n1),zt(i,n1),e3(i),{tokens:i,trivia:n,source:s,lexDiagnostics:a}}function Ti(e){for(let t=0;t"&&o!=="=>"&&o!=="ELSE"&&o!=="TRY"&&o!=="FINALLY"){s=!1;break}}}if(oe.has(a))i++;else if(ae.has(a)){if(i--,i<0)break}}if(s)e[t].kind=r==="IF"?"POST_IF":"POST_UNLESS"}return e}function As(e="",{tolerant:t=!1}={}){return{setInput(r){let s=f3(r,e,{tolerant:t});this.tokens=s.tokens,this.trivia=s.trivia,this.source=s.source,this.lexDiagnostics=s.lexDiagnostics??[],this.index=0,this.text="",this.loc=null,this.token=null},lex(){let r=this.tokens[this.index];if(!r)return null;return this.index++,this.text=r.value,this.loc={start:r.start,end:r.end},this.token=r,r.kind}}}var h3={symbolIds:{$accept:0,$end:1,error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,Statement:8,Return:9,STATEMENT:10,Import:11,Export:12,TypeDecl:13,Enum:14,TYPE_DECL:15,Assignable:16,TYPE:17,OPT_MARKER:18,DEF:19,Identifier:20,OptParams:21,IMPORT:22,String:23,ImportDefaultSpecifier:24,FROM:25,ImportNamespaceSpecifier:26,"{":27,"}":28,ImportSpecifierList:29,OptComma:30,",":31,WITH:32,Object:33,IMPORT_TYPE:34,ImportSpecifier:35,INDENT:36,OUTDENT:37,AS:38,DEFAULT:39,IMPORT_ALL:40,EXPORT:41,ExportSpecifierList:42,Class:43,Def:44,ExportAssign:45,ReactiveAssign:46,ComputedAssign:47,Readonly:48,Effect:49,EXPORT_ALL:50,EXPORT_TYPE:51,"=":52,TYPE_PARAMS:53,VOID_MARKER:54,READONLY_ASSIGN:55,REACTIVE_ASSIGN:56,COMPUTED_ASSIGN:57,Block:58,EFFECT:59,ExportSpecifier:60,Value:61,Code:62,Operation:63,Assign:64,Gate:65,If:66,Try:67,For:68,Switch:69,While:70,Throw:71,Schema:72,Component:73,Render:74,Literal:75,Parenthetical:76,Range:77,Invocation:78,DoIife:79,This:80,Super:81,DAMMIT:82,NewValue:83,TEMPLATE_TAG:84,Atom:85,Regex:86,UNDEFINED:87,NULL:88,BOOL:89,NUMBER:90,SYMBOL:91,STRING:92,STRING_START:93,Interpolations:94,STRING_END:95,InterpolationChunk:96,INTERPOLATION_START:97,INTERPOLATION_END:98,REGEX:99,HEREGEX_START:100,HEREGEX_END:101,IDENTIFIER:102,Property:103,PROPERTY:104,SimpleAssignable:105,COMPOUND_ASSIGN:106,METHOD_ASSIGN:107,Array:108,Rhs:109,BlockRhs:110,GATE:111,CALL_START:112,CALL_END:113,ArgList:114,ThisProperty:115,Subjectable:116,".":117,"?.":118,INDEX_START:119,INDEX_END:120,Slice:121,ES6_OPTIONAL_INDEX:122,PICK_START:123,PickList:124,PICK_END:125,OPTPICK_START:126,IMPORT_META:127,NEW_TARGET:128,NEW:129,NewSpine:130,NewCall:131,Arguments:132,PARAM_START:133,ParamList:134,PARAM_END:135,ArrowKind:136,"->":137,"=>":138,DO_IIFE:139,THIS:140,"@":141,"[":142,"]":143,Elisions:144,ArgElisionList:145,OptElisions:146,ArgElision:147,Arg:148,Elision:149,AssignList:150,MAP_START:151,AssignObj:152,ObjAssignable:153,ObjRestValue:154,":":155,SimpleObjAssignable:156,"...":157,ObjSpreadExpr:158,SUPER:159,DYNAMIC_IMPORT:160,MAYBE_DAMMIT:161,PickItem:162,PickKey:163,RangeDots:164,"..":165,Param:166,TypedParamVar:167,ParamVar:168,Splat:169,ClassName:170,CLASS:171,EXTENDS:172,ENUM:173,SCHEMA:174,SCHEMA_BODY:175,COMPONENT:176,ComponentBlock:177,ComponentBody:178,ComponentLine:179,OFFER:180,ACCEPT:181,ProviderPath:182,RENDER:183,ES6_OPTIONAL_CALL:184,"?":185,"(":186,")":187,RETURN:188,WHILE:189,UNTIL:190,WHEN:191,Loop:192,IfBlock:193,IF:194,IfElseTail:195,ELSE:196,UnlessBlock:197,UNLESS:198,POST_IF:199,POST_UNLESS:200,TRY:201,Catch:202,Finalizer:203,FINALLY:204,CATCH:205,CatchVar:206,THROW:207,SWITCH:208,Cases:209,When:210,LEADING_WHEN:211,SimpleArgs:212,FOR:213,ForVariables:214,FORIN:215,BY:216,FOROF:217,OWN:218,FORAS:219,AWAIT:220,FORASAWAIT:221,ForValue:222,LOOP:223,"--":224,"++":225,CAST:226,SATISFIES:227,TERNARY:228,UNARY:229,DO:230,UNARY_MATH:231,YIELD:232,"-":233,"+":234,"**":235,MATH:236,SHIFT:237,"&":238,"^":239,"|":240,COMPARE:241,MATCH:242,RELATION:243,"&&":244,"||":245,"??":246,THEN:247},tokenNames:{2:"error",6:"newline",10:"break/continue/debugger",15:"type/interface",17:"a type annotation",18:"?",19:"def",22:"import",25:"from",27:"{",28:"}",31:",",32:"with",34:"type",36:"indent",37:"dedent",38:"as",39:"default",40:"*",41:"export",50:"*",51:"type",52:"=",53:"<…>",54:"!",55:"=!",56:":=",57:"~=",59:"~>",82:"!",84:"$",87:"undefined",88:"null",89:"true/false",90:"a number",91:"a :symbol",92:"a string",93:"a string",95:"the closing quote",97:"#{",98:"}",99:"a regex",100:"///",101:"///",102:"a name",104:"a property name",106:"a compound assignment",107:".=",111:"<~",112:"(",113:")",117:".",118:"?.",119:"[",120:"]",122:"?.[",123:".{",125:"}",126:"?.{",127:"import.meta",128:"new.target",129:"new",133:"(",135:")",137:"->",138:"=>",139:"do",140:"this",141:"@",142:"[",143:"]",151:"*{",155:":",157:"...",159:"super",160:"import(",161:"?!",165:"..",171:"class",172:"extends",173:"enum",174:"schema",175:"a schema body",176:"component",180:"offer",181:"accept",183:"render",184:"?.(",185:"?",186:"(",187:")",188:"return",189:"while",190:"until",191:"when",194:"if",196:"else",198:"unless",199:"if",200:"unless",201:"try",204:"finally",205:"catch",207:"throw",208:"switch",211:"when",213:"for",215:"in",216:"by",217:"of",218:"own",219:"as",220:"await",221:"as!",223:"loop",224:"--",225:"++",226:"as",227:"satisfies",228:"?",229:"not/typeof/delete",230:"do",231:"!/~",232:"yield",233:"-",234:"+",235:"**",236:"a math operator",237:"a shift operator",238:"&",239:"^",240:"|",241:"a comparison",242:"=~",243:"in/of/instanceof",244:"&&",245:"||",246:"??",247:"then"},semantics:{"1":{kind:"program",roles:[]},"2":{kind:"program",roles:[{name:"body",grammarRef:1,childSlot:1,spread:!0}]},"14":{kind:"typedecl",roles:[{name:"declaration",grammarRef:1,childSlot:1,spread:!1}]},"15":{kind:"typedvar",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:2,childSlot:2,spread:!1}]},"16":{kind:"typedvar",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:3,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"17":{kind:"defsig",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:3,childSlot:2,spread:!1},{name:"returnType",grammarRef:4,childSlot:3,spread:!1}]},"18":{kind:"import",roles:[{name:"source",grammarRef:2,childSlot:1,spread:!1}]},"19":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"source",grammarRef:4,childSlot:2,spread:!1}]},"20":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"source",grammarRef:4,childSlot:2,spread:!1}]},"21":{kind:"import",roles:[{name:"spec",grammarRef:null,childSlot:1,literal:"{}"},{name:"source",grammarRef:5,childSlot:2,spread:!1}]},"22":{kind:"import",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1},{name:"source",grammarRef:7,childSlot:2,spread:!1}]},"23":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"extra",grammarRef:4,childSlot:2,spread:!1},{name:"source",grammarRef:6,childSlot:3,spread:!1}]},"24":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"extra",grammarRef:5,childSlot:2,spread:!1},{name:"source",grammarRef:9,childSlot:3,spread:!1}]},"25":{kind:"import",roles:[{name:"source",grammarRef:2,childSlot:2,spread:!1}],nested:[{role:"attributes",path:[1],kind:"withattrs",roles:[{name:"keyword",grammarRef:3,childSlot:0,spread:!1},{name:"value",grammarRef:4,childSlot:1,spread:!1}],nested:[]}]},"26":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"source",grammarRef:4,childSlot:3,spread:!1}],nested:[{role:"attributes",path:[2],kind:"withattrs",roles:[{name:"keyword",grammarRef:5,childSlot:0,spread:!1},{name:"value",grammarRef:6,childSlot:1,spread:!1}],nested:[]}]},"27":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"source",grammarRef:4,childSlot:3,spread:!1}],nested:[{role:"attributes",path:[2],kind:"withattrs",roles:[{name:"keyword",grammarRef:5,childSlot:0,spread:!1},{name:"value",grammarRef:6,childSlot:1,spread:!1}],nested:[]}]},"28":{kind:"import",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1},{name:"source",grammarRef:7,childSlot:3,spread:!1}],nested:[{role:"attributes",path:[2],kind:"withattrs",roles:[{name:"keyword",grammarRef:8,childSlot:0,spread:!1},{name:"value",grammarRef:9,childSlot:1,spread:!1}],nested:[]}]},"29":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"extra",grammarRef:4,childSlot:2,spread:!1},{name:"source",grammarRef:6,childSlot:4,spread:!1}],nested:[{role:"attributes",path:[3],kind:"withattrs",roles:[{name:"keyword",grammarRef:7,childSlot:0,spread:!1},{name:"value",grammarRef:8,childSlot:1,spread:!1}],nested:[]}]},"30":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"extra",grammarRef:5,childSlot:2,spread:!1},{name:"source",grammarRef:9,childSlot:4,spread:!1}],nested:[{role:"attributes",path:[3],kind:"withattrs",roles:[{name:"keyword",grammarRef:10,childSlot:0,spread:!1},{name:"value",grammarRef:11,childSlot:1,spread:!1}],nested:[]}]},"31":{kind:"import",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1},{name:"source",grammarRef:5,childSlot:2,spread:!1},{name:"typeOnly",grammarRef:2,childSlot:null,spread:!1}]},"32":{kind:"import",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1},{name:"source",grammarRef:5,childSlot:2,spread:!1},{name:"typeOnly",grammarRef:2,childSlot:null,spread:!1}]},"33":{kind:"import",roles:[{name:"spec",grammarRef:null,childSlot:1,literal:"{}"},{name:"source",grammarRef:6,childSlot:2,spread:!1},{name:"typeOnly",grammarRef:2,childSlot:null,spread:!1}]},"34":{kind:"import",roles:[{name:"spec",grammarRef:4,childSlot:1,spread:!1},{name:"source",grammarRef:8,childSlot:2,spread:!1},{name:"typeOnly",grammarRef:2,childSlot:null,spread:!1}]},"41":{kind:"as",roles:[{name:"name",grammarRef:1,childSlot:0,spread:!1},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"43":{kind:"as",roles:[{name:"name",grammarRef:1,childSlot:0,spread:!1},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"45":{kind:"as",roles:[{name:"name",grammarRef:null,childSlot:0,literal:"*"},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"46":{kind:"export",roles:[{name:"spec",grammarRef:null,childSlot:1,literal:"{}"}]},"47":{kind:"export",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1}]},"48":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"49":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"50":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"51":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"52":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"53":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"54":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"55":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"56":{kind:"export",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1}]},"57":{kind:"export",roles:[{name:"spec",grammarRef:4,childSlot:1,spread:!1}]},"58":{kind:"export",roles:[{name:"source",grammarRef:4,childSlot:1,spread:!1}]},"59":{kind:"export",roles:[{name:"source",grammarRef:6,childSlot:1,spread:!1},{name:"alias",grammarRef:4,childSlot:2,spread:!1}]},"60":{kind:"export",roles:[{name:"source",grammarRef:6,childSlot:1,spread:!1},{name:"alias",grammarRef:4,childSlot:2,spread:!1}]},"61":{kind:"export",roles:[{name:"spec",grammarRef:null,childSlot:1,literal:"{}"},{name:"source",grammarRef:5,childSlot:2,spread:!1}]},"62":{kind:"export",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1},{name:"source",grammarRef:7,childSlot:2,spread:!1}]},"63":{kind:"export",roles:[{name:"spec",grammarRef:4,childSlot:1,spread:!1},{name:"source",grammarRef:8,childSlot:2,spread:!1},{name:"typeOnly",grammarRef:2,childSlot:null,spread:!1}]},"64":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"65":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"66":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"67":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"68":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"69":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"70":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"typeParams",grammarRef:2,childSlot:null,spread:!1}]},"71":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"72":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"73":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"74":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"75":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"76":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"77":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"78":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"79":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"80":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"81":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"82":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"83":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"84":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"85":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"86":{kind:"effect",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"87":{kind:"effect",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"88":{kind:"effect",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"95":{kind:"as",roles:[{name:"name",grammarRef:1,childSlot:0,spread:!1},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"96":{kind:"as",roles:[{name:"name",grammarRef:1,childSlot:0,spread:!1},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"98":{kind:"as",roles:[{name:"name",grammarRef:1,childSlot:0,spread:!1},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"127":{kind:"dammit",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"129":{kind:"tagged",roles:[{name:"tag",grammarRef:1,childSlot:1,spread:!1},{name:"str",grammarRef:3,childSlot:2,spread:!1}]},"137":{kind:"symbol",roles:[{name:"name",grammarRef:1,childSlot:1,spread:!1}]},"139":{kind:"str",roles:[{name:"parts",grammarRef:2,childSlot:1,spread:!0}]},"147":{kind:"heregex",roles:[{name:"flags",grammarRef:3,childSlot:1,spread:!1},{name:"parts",grammarRef:2,childSlot:2,spread:!0}]},"150":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"151":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"152":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"153":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"154":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"155":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"156":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"157":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"158":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"159":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1}]},"160":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:6,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1}]},"161":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:6,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1}]},"162":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"163":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"164":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"typeParams",grammarRef:2,childSlot:null,spread:!1}]},"165":{kind:"assign",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"166":{kind:"assign",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"167":{kind:"assign",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"168":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:".="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"169":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"170":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"171":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"172":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"173":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"174":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"184":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"185":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"186":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"187":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1},{name:"operator",grammarRef:4,childSlot:null,spread:!1}]},"188":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"189":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"190":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"191":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1},{name:"operator",grammarRef:4,childSlot:null,spread:!1}]},"192":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"193":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"194":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"195":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"196":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:3,childSlot:2,spread:!1},{name:"key",grammarRef:5,childSlot:3,spread:!0},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"197":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:4,childSlot:2,spread:!1},{name:"key",grammarRef:6,childSlot:3,spread:!0},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"198":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"199":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"200":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"201":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1},{name:"operator",grammarRef:4,childSlot:null,spread:!1}]},"202":{kind:"effect",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"203":{kind:"effect",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"204":{kind:"effect",roles:[{name:"target",grammarRef:null,childSlot:1,literal:null},{name:"value",grammarRef:2,childSlot:2,spread:!1},{name:"operator",grammarRef:1,childSlot:null,spread:!1}]},"207":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"208":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"209":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"210":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:4,childSlot:2,spread:!1}]},"211":{kind:"regexindex",roles:[{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:3,childSlot:2,spread:!1},{name:"capture",grammarRef:5,childSlot:3,spread:!1}]},"212":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"213":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:4,childSlot:2,spread:!1}]},"214":{kind:"optindex",roles:[{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:4,childSlot:2,spread:!1}]},"215":{kind:"optindex",roles:[{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:5,childSlot:2,spread:!1}]},"216":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:3,childSlot:2,spread:!0}]},"217":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:3,childSlot:2,spread:!0}]},"218":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:4,childSlot:2,spread:!0}]},"219":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:4,childSlot:2,spread:!0}]},"220":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"221":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"222":{kind:"unary",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"223":{kind:"unary",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"224":{kind:"unary",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"225":{kind:"await",roles:[{name:"operator",grammarRef:3,childSlot:null,spread:!1}],nested:[{role:"value",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"new"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}],nested:[]}]},"226":{kind:"await",roles:[{name:"operator",grammarRef:3,childSlot:null,spread:!1}],nested:[{role:"value",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"new"}],nested:[{role:"operand",path:[1],kind:"call",roles:[{name:"callee",grammarRef:2,childSlot:0,spread:!1},{name:"args",grammarRef:4,childSlot:1,spread:!0}],nested:[]}]}]},"227":{kind:"call",roles:[{name:"callee",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"233":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"234":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"235":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"236":{kind:"tagged",roles:[{name:"tag",grammarRef:1,childSlot:1,spread:!1},{name:"str",grammarRef:3,childSlot:2,spread:!1}]},"239":{kind:"func",roles:[{name:"kind",grammarRef:4,childSlot:0,spread:!1},{name:"params",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:5,childSlot:2,spread:!1}]},"240":{kind:"func",roles:[{name:"kind",grammarRef:5,childSlot:0,spread:!1},{name:"params",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:6,childSlot:2,spread:!1},{name:"returnType",grammarRef:4,childSlot:null,spread:!1}]},"241":{kind:"func",roles:[{name:"kind",grammarRef:1,childSlot:0,spread:!1},{name:"body",grammarRef:2,childSlot:2,spread:!1}]},"244":{kind:"doiife",roles:[{name:"func",grammarRef:2,childSlot:1,spread:!1}]},"247":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"property",grammarRef:2,childSlot:2,spread:!1}]},"248":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"property",grammarRef:2,childSlot:2,spread:!1}]},"249":{kind:"array",roles:[]},"250":{kind:"array",roles:[{name:"elisions",grammarRef:2,childSlot:1,spread:!0}]},"251":{kind:"array",roles:[{name:"items",grammarRef:2,childSlot:1,spread:!0},{name:"elisions",grammarRef:3,childSlot:null,spread:!0}]},"265":{kind:"object",roles:[{name:"pairs",grammarRef:2,childSlot:1,spread:!0}]},"266":{kind:"map",roles:[{name:"pairs",grammarRef:3,childSlot:1,spread:!0}]},"272":{kind:"pair",roles:[{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:1,childSlot:2,spread:!1}]},"274":{kind:"pair",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:":"},{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"275":{kind:"pair",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:":"},{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"276":{kind:"pair",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:":"},{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"277":{kind:"pair",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"278":{kind:"pair",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"279":{kind:"pair",roles:[{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"280":{kind:"pair",roles:[{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"281":{kind:"splat",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"282":{kind:"splat",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"288":{kind:"super",roles:[{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"289":{kind:"dynimport",roles:[{name:"keyword",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"290":{kind:"call",roles:[{name:"callee",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"291":{kind:"call",roles:[{name:"callee",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"292":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"293":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"294":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"295":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:4,childSlot:2,spread:!1}]},"296":{kind:"dammit",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"297":{kind:"maybe-dammit",roles:[{name:"callee",grammarRef:1,childSlot:1,spread:!1},{name:"args",grammarRef:3,childSlot:2,spread:!0},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"298":{kind:"maybe-dammit",roles:[{name:"callee",grammarRef:1,childSlot:1,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"299":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:3,childSlot:2,spread:!0}]},"300":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:3,childSlot:2,spread:!0}]},"301":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:4,childSlot:2,spread:!0}]},"302":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:4,childSlot:2,spread:!0}]},"307":{kind:"pickitem",roles:[{name:"key",grammarRef:1,childSlot:0,spread:!1},{name:"target",grammarRef:1,childSlot:1,spread:!1}]},"308":{kind:"pickitem",roles:[{name:"key",grammarRef:1,childSlot:0,spread:!1},{name:"target",grammarRef:3,childSlot:1,spread:!1}]},"309":{kind:"pickitem",roles:[{name:"key",grammarRef:1,childSlot:0,spread:!1},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"default",grammarRef:3,childSlot:2,spread:!1}]},"310":{kind:"pickitem",roles:[{name:"key",grammarRef:1,childSlot:0,spread:!1},{name:"target",grammarRef:3,childSlot:1,spread:!1},{name:"default",grammarRef:5,childSlot:2,spread:!1}]},"318":{kind:"dynamicKey",roles:[{name:"key",grammarRef:2,childSlot:1,spread:!1}]},"319":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:null,childSlot:1,literal:"this"},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"322":{kind:"range",roles:[{name:"operator",grammarRef:3,childSlot:0,spread:!1},{name:"from",grammarRef:2,childSlot:1,spread:!1},{name:"to",grammarRef:4,childSlot:2,spread:!1}]},"323":{kind:"range",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"from",grammarRef:1,childSlot:1,spread:!1},{name:"to",grammarRef:3,childSlot:2,spread:!1}]},"324":{kind:"range",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"from",grammarRef:1,childSlot:1,spread:!1},{name:"to",grammarRef:null,childSlot:2,literal:null}]},"325":{kind:"range",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"from",grammarRef:null,childSlot:1,literal:null},{name:"to",grammarRef:2,childSlot:2,spread:!1}]},"326":{kind:"range",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"from",grammarRef:null,childSlot:1,literal:null},{name:"to",grammarRef:null,childSlot:2,literal:null}]},"327":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:3,childSlot:2,spread:!1},{name:"body",grammarRef:4,childSlot:3,spread:!1}]},"328":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:3,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"returnType",grammarRef:4,childSlot:null,spread:!1}]},"329":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"typeParams",grammarRef:3,childSlot:null,spread:!1}]},"330":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:6,childSlot:3,spread:!1},{name:"typeParams",grammarRef:3,childSlot:null,spread:!1},{name:"returnType",grammarRef:5,childSlot:null,spread:!1}]},"331":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"voidMarker",grammarRef:3,childSlot:null,spread:!1}]},"332":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:6,childSlot:3,spread:!1},{name:"voidMarker",grammarRef:3,childSlot:null,spread:!1},{name:"returnType",grammarRef:5,childSlot:null,spread:!1}]},"333":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:3,childSlot:2,spread:!1},{name:"body",grammarRef:4,childSlot:3,spread:!1}]},"334":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:3,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"returnType",grammarRef:4,childSlot:null,spread:!1}]},"335":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"typeParams",grammarRef:3,childSlot:null,spread:!1}]},"336":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:6,childSlot:3,spread:!1},{name:"typeParams",grammarRef:3,childSlot:null,spread:!1},{name:"returnType",grammarRef:5,childSlot:null,spread:!1}]},"337":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"voidMarker",grammarRef:3,childSlot:null,spread:!1}]},"338":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:6,childSlot:3,spread:!1},{name:"voidMarker",grammarRef:3,childSlot:null,spread:!1},{name:"returnType",grammarRef:5,childSlot:null,spread:!1}]},"347":{kind:"default",roles:[{name:"name",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"348":{kind:"rest",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1}]},"349":{kind:"expansion",roles:[]},"351":{kind:"typedvar",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:2,childSlot:2,spread:!1}]},"352":{kind:"typedvar",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:3,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"353":{kind:"typedvar",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:null,childSlot:2,literal:""},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"358":{kind:"splat",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"360":{kind:"class",roles:[{name:"name",grammarRef:null,childSlot:1,literal:null},{name:"parent",grammarRef:null,childSlot:2,literal:null}]},"361":{kind:"class",roles:[{name:"name",grammarRef:null,childSlot:1,literal:null},{name:"parent",grammarRef:null,childSlot:2,literal:null},{name:"body",grammarRef:2,childSlot:3,spread:!1}]},"362":{kind:"class",roles:[{name:"name",grammarRef:null,childSlot:1,literal:null},{name:"parent",grammarRef:3,childSlot:2,spread:!1}]},"363":{kind:"class",roles:[{name:"name",grammarRef:null,childSlot:1,literal:null},{name:"parent",grammarRef:3,childSlot:2,spread:!1},{name:"body",grammarRef:4,childSlot:3,spread:!1}]},"364":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:null,childSlot:2,literal:null}]},"365":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:null,childSlot:2,literal:null},{name:"body",grammarRef:3,childSlot:3,spread:!1}]},"366":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:4,childSlot:2,spread:!1}]},"367":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1}]},"368":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:null,childSlot:2,literal:null},{name:"body",grammarRef:3,childSlot:3,spread:!1}]},"369":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1}]},"370":{kind:"enum",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:3,childSlot:2,spread:!1}]},"371":{kind:"schema",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"372":{kind:"component",roles:[{name:"parent",grammarRef:null,childSlot:1,literal:null},{name:"body",grammarRef:2,childSlot:2,spread:!1}]},"373":{kind:"component",roles:[{name:"parent",grammarRef:3,childSlot:1,spread:!1},{name:"body",grammarRef:4,childSlot:2,spread:!1}]},"374":{kind:"block",roles:[{name:"statements",grammarRef:2,childSlot:1,spread:!0}]},"380":{kind:"offer",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"381":{kind:"accept",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1}]},"382":{kind:"accept",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"provider",grammarRef:4,childSlot:2,spread:!1}]},"384":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"385":{kind:"render",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"386":{kind:"render",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"387":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:null,childSlot:1,literal:"super"},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"388":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:null,childSlot:1,literal:"super"},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"389":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:null,childSlot:1,literal:"super"},{name:"key",grammarRef:4,childSlot:2,spread:!1}]},"390":{kind:"call",roles:[{name:"callee",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"391":{kind:"super",roles:[{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"392":{kind:"optcall",roles:[{name:"callee",grammarRef:1,childSlot:1,spread:!1},{name:"args",grammarRef:3,childSlot:2,spread:!0}]},"393":{kind:"optcall",roles:[{name:"callee",grammarRef:1,childSlot:1,spread:!1},{name:"args",grammarRef:3,childSlot:2,spread:!0}]},"394":{kind:"maybe-dammit",roles:[{name:"callee",grammarRef:1,childSlot:1,spread:!1},{name:"args",grammarRef:3,childSlot:2,spread:!0},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"395":{kind:"maybe-dammit",roles:[{name:"callee",grammarRef:1,childSlot:1,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"396":{kind:"dynimport",roles:[{name:"keyword",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"397":{kind:"await",roles:[{name:"operator",grammarRef:2,childSlot:null,spread:!1}],nested:[{role:"value",path:[1],kind:"dynimport",roles:[{name:"keyword",grammarRef:null,childSlot:0,literal:"import"},{name:"args",grammarRef:3,childSlot:1,spread:!0}],nested:[]}]},"409":{kind:"block",roles:[]},"410":{kind:"block",roles:[{name:"statements",grammarRef:2,childSlot:1,spread:!0}]},"413":{kind:"return",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"414":{kind:"return",roles:[{name:"value",grammarRef:3,childSlot:1,spread:!1}]},"415":{kind:"return",roles:[]},"416":{kind:"while",roles:[{name:"condition",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:3,childSlot:2,spread:!1}]},"417":{kind:"while",roles:[{name:"body",grammarRef:3,childSlot:2,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}],nested:[]}]},"418":{kind:"while",roles:[{name:"condition",grammarRef:2,childSlot:1,spread:!1},{name:"guard",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1}]},"419":{kind:"while",roles:[{name:"guard",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}],nested:[]}]},"420":{kind:"while",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}]},"421":{kind:"while",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}]},"422":{kind:"while",roles:[{name:"body",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"423":{kind:"while",roles:[{name:"body",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"424":{kind:"while",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"guard",grammarRef:5,childSlot:2,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}]},"425":{kind:"while",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"guard",grammarRef:5,childSlot:2,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}]},"426":{kind:"while",roles:[{name:"guard",grammarRef:5,childSlot:2,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"427":{kind:"while",roles:[{name:"guard",grammarRef:5,childSlot:2,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"429":{kind:"if",roles:[{name:"condition",grammarRef:2,childSlot:1,spread:!1},{name:"then",grammarRef:3,childSlot:2,spread:!1}]},"430":{kind:"if",roles:[{name:"condition",grammarRef:2,childSlot:1,spread:!1},{name:"then",grammarRef:3,childSlot:2,spread:!1},{name:"else",grammarRef:4,childSlot:3,spread:!1}]},"431":{kind:"if",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:4,childSlot:2,spread:!1}]},"432":{kind:"if",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:4,childSlot:2,spread:!1},{name:"else",grammarRef:5,childSlot:3,spread:!1}]},"434":{kind:"if",roles:[{name:"then",grammarRef:3,childSlot:2,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}],nested:[]}]},"435":{kind:"if",roles:[{name:"then",grammarRef:3,childSlot:2,spread:!1},{name:"else",grammarRef:5,childSlot:3,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}],nested:[]}]},"438":{kind:"if",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:1,childSlot:null,spread:!1}]},"439":{kind:"if",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:1,childSlot:null,spread:!1}]},"440":{kind:"if",roles:[{name:"then",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"441":{kind:"if",roles:[{name:"then",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"442":{kind:"ternary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?:"},{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:1,childSlot:2,spread:!1},{name:"else",grammarRef:6,childSlot:3,spread:!1}]},"443":{kind:"ternary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?:"},{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:1,childSlot:2,spread:!1},{name:"else",grammarRef:5,childSlot:3,spread:!1}]},"444":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"445":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"446":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1}]},"447":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"448":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1}]},"449":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1}]},"450":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"finalizer",grammarRef:3,childSlot:2,spread:!1}]},"451":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1},{name:"finalizer",grammarRef:4,childSlot:3,spread:!1}]},"452":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"finalizer",grammarRef:3,childSlot:2,spread:!1}]},"453":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1},{name:"finalizer",grammarRef:4,childSlot:3,spread:!1}]},"454":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"finalizer",grammarRef:3,childSlot:2,spread:!1}]},"455":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1},{name:"finalizer",grammarRef:4,childSlot:3,spread:!1}]},"457":{kind:"block",roles:[{name:"statements",grammarRef:2,childSlot:1,spread:!1}]},"458":{kind:"catch",roles:[{name:"binding",grammarRef:2,childSlot:0,spread:!1},{name:"body",grammarRef:3,childSlot:1,spread:!1}]},"459":{kind:"catch",roles:[{name:"binding",grammarRef:2,childSlot:0,spread:!1},{name:"body",grammarRef:3,childSlot:1,spread:!1}]},"460":{kind:"catch",roles:[{name:"binding",grammarRef:2,childSlot:0,spread:!1},{name:"body",grammarRef:3,childSlot:1,spread:!1}]},"461":{kind:"catch",roles:[{name:"binding",grammarRef:null,childSlot:0,literal:null},{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"463":{kind:"typedvar",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:2,childSlot:2,spread:!1}]},"464":{kind:"throw",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"465":{kind:"throw",roles:[{name:"value",grammarRef:3,childSlot:1,spread:!1}]},"466":{kind:"switch",roles:[{name:"subject",grammarRef:2,childSlot:1,spread:!1},{name:"cases",grammarRef:4,childSlot:2,spread:!1},{name:"default",grammarRef:null,childSlot:3,literal:null}]},"467":{kind:"switch",roles:[{name:"subject",grammarRef:2,childSlot:1,spread:!1},{name:"cases",grammarRef:4,childSlot:2,spread:!1},{name:"default",grammarRef:6,childSlot:3,spread:!1}]},"468":{kind:"switch",roles:[{name:"subject",grammarRef:null,childSlot:1,literal:null},{name:"cases",grammarRef:3,childSlot:2,spread:!1},{name:"default",grammarRef:null,childSlot:3,literal:null}]},"469":{kind:"switch",roles:[{name:"subject",grammarRef:null,childSlot:1,literal:null},{name:"cases",grammarRef:3,childSlot:2,spread:!1},{name:"default",grammarRef:5,childSlot:3,spread:!1}]},"472":{kind:"when",roles:[{name:"conditions",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:3,childSlot:2,spread:!1}]},"473":{kind:"when",roles:[{name:"conditions",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:3,childSlot:2,spread:!1}]},"476":{kind:"forin",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"step",grammarRef:null,childSlot:3,literal:null},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:5,childSlot:5,spread:!1}]},"477":{kind:"forin",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"step",grammarRef:6,childSlot:3,spread:!1},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:7,childSlot:5,spread:!1}]},"478":{kind:"forin",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"step",grammarRef:null,childSlot:3,literal:null},{name:"guard",grammarRef:6,childSlot:4,spread:!1},{name:"body",grammarRef:7,childSlot:5,spread:!1}]},"479":{kind:"forin",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"step",grammarRef:8,childSlot:3,spread:!1},{name:"guard",grammarRef:6,childSlot:4,spread:!1},{name:"body",grammarRef:9,childSlot:5,spread:!1}]},"480":{kind:"forin",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"step",grammarRef:6,childSlot:3,spread:!1},{name:"guard",grammarRef:8,childSlot:4,spread:!1},{name:"body",grammarRef:9,childSlot:5,spread:!1}]},"481":{kind:"forof",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"object",grammarRef:4,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!1},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:5,childSlot:5,spread:!1}]},"482":{kind:"forof",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"object",grammarRef:4,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!1},{name:"guard",grammarRef:6,childSlot:4,spread:!1},{name:"body",grammarRef:7,childSlot:5,spread:!1}]},"483":{kind:"forof",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"object",grammarRef:5,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:6,childSlot:5,spread:!1}]},"484":{kind:"forof",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"object",grammarRef:5,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:7,childSlot:4,spread:!1},{name:"body",grammarRef:8,childSlot:5,spread:!1}]},"485":{kind:"foras",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!1},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:5,childSlot:5,spread:!1}]},"486":{kind:"foras",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!1},{name:"guard",grammarRef:6,childSlot:4,spread:!1},{name:"body",grammarRef:7,childSlot:5,spread:!1}]},"487":{kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:6,childSlot:5,spread:!1}]},"488":{kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:7,childSlot:4,spread:!1},{name:"body",grammarRef:8,childSlot:5,spread:!1}]},"489":{kind:"foras",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:5,childSlot:5,spread:!1}]},"490":{kind:"foras",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:6,childSlot:4,spread:!1},{name:"body",grammarRef:7,childSlot:5,spread:!1}]},"491":{kind:"forin",roles:[{name:"iterable",grammarRef:2,childSlot:2,spread:!1},{name:"step",grammarRef:null,childSlot:3,literal:null},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:3,childSlot:5,spread:!1}]},"492":{kind:"forin",roles:[{name:"iterable",grammarRef:2,childSlot:2,spread:!1},{name:"step",grammarRef:4,childSlot:3,spread:!1},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:5,childSlot:5,spread:!1}]},"493":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forin",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"step",grammarRef:null,childSlot:3,literal:null}],nested:[]}]},"494":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:7,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forin",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"step",grammarRef:null,childSlot:3,literal:null}],nested:[]}]},"495":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forin",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"step",grammarRef:7,childSlot:3,spread:!1}],nested:[]}]},"496":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:7,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forin",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"step",grammarRef:9,childSlot:3,spread:!1}],nested:[]}]},"497":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:9,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forin",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"step",grammarRef:7,childSlot:3,spread:!1}],nested:[]}]},"498":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forof",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"object",grammarRef:5,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!1}],nested:[]}]},"499":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:7,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forof",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"object",grammarRef:5,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!1}],nested:[]}]},"500":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forof",roles:[{name:"vars",grammarRef:4,childSlot:1,spread:!1},{name:"object",grammarRef:6,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"501":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:8,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forof",roles:[{name:"vars",grammarRef:4,childSlot:1,spread:!1},{name:"object",grammarRef:6,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"502":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!1}],nested:[]}]},"503":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:7,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!1}],nested:[]}]},"504":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:4,childSlot:1,spread:!1},{name:"iterable",grammarRef:6,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"505":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:8,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:4,childSlot:1,spread:!1},{name:"iterable",grammarRef:6,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"506":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"507":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:7,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"511":{kind:"loop",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"512":{kind:"loop",roles:[{name:"count",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:3,childSlot:2,spread:!1}]},"513":{kind:"update",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"--"},{name:"target",grammarRef:2,childSlot:1,spread:!1},{name:"prefix",grammarRef:null,childSlot:2,literal:!1}]},"514":{kind:"update",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"++"},{name:"target",grammarRef:2,childSlot:1,spread:!1},{name:"prefix",grammarRef:null,childSlot:2,literal:!1}]},"515":{kind:"update",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"--"},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"prefix",grammarRef:null,childSlot:2,literal:!0}]},"516":{kind:"update",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"++"},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"prefix",grammarRef:null,childSlot:2,literal:!0}]},"517":{kind:"existence",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?"},{name:"value",grammarRef:1,childSlot:1,spread:!1}]},"518":{kind:"cast",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:2,childSlot:2,spread:!1}]},"519":{kind:"satisfies",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:2,childSlot:2,spread:!1}]},"520":{kind:"ternary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?:"},{name:"condition",grammarRef:1,childSlot:1,spread:!1},{name:"then",grammarRef:3,childSlot:2,spread:!1},{name:"else",grammarRef:5,childSlot:3,spread:!1}]},"521":{kind:"unary",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"522":{kind:"doiife",roles:[{name:"func",grammarRef:2,childSlot:1,spread:!1}]},"523":{kind:"unary",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"524":{kind:"await",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1},{name:"operator",grammarRef:1,childSlot:null,spread:!1}]},"525":{kind:"await",roles:[{name:"value",grammarRef:3,childSlot:1,spread:!1},{name:"operator",grammarRef:1,childSlot:null,spread:!1}]},"526":{kind:"yield",roles:[]},"527":{kind:"yield",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"528":{kind:"yield",roles:[{name:"value",grammarRef:3,childSlot:1,spread:!1}]},"529":{kind:"yieldfrom",roles:[{name:"value",grammarRef:3,childSlot:1,spread:!1}]},"530":{kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"-"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"531":{kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"+"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"532":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"**"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"533":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"+"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"534":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"-"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"535":{kind:"binary",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"536":{kind:"binary",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"537":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"538":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"^"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"539":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"|"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"540":{kind:"binary",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"541":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"=~"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"542":{kind:"relation",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"543":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"544":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"545":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"??"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"546":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"547":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"548":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"??"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"549":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"550":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"551":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"??"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"552":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"553":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"554":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"555":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"556":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"557":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]}},primitiveRefs:{"1":[],"2":[1],"3":[1],"4":[1,3],"5":[1],"6":[1],"7":[1],"8":[1],"9":[1],"10":[1],"11":[1],"12":[1],"13":[1],"14":[1],"15":[1,2],"16":[1,3],"17":[2,3,4],"18":[2],"19":[2,4],"20":[2,4],"21":[5],"22":[3,7],"23":[2,4,6],"24":[2,5,9],"25":[3,4,2],"26":[2,5,6,4],"27":[2,5,6,4],"28":[3,8,9,7],"29":[2,4,7,8,6],"30":[2,5,10,11,9],"31":[3,5],"32":[3,5],"33":[6],"34":[4,8],"35":[1],"36":[1,3],"37":[1,4],"38":[2],"39":[1,4],"40":[1],"41":[1,3],"42":[1],"43":[1,3],"44":[1],"45":[3],"46":[],"47":[3],"48":[2],"49":[2],"50":[2],"51":[2],"52":[2],"53":[2],"54":[2],"55":[2],"56":[3],"57":[4],"58":[4],"59":[6,4],"60":[6,4],"61":[5],"62":[3,7],"63":[4,8],"64":[1,3],"65":[1,4],"66":[1,4],"67":[1,4],"68":[1,5],"69":[1,5],"70":[1,4],"71":[1,4],"72":[1,5],"73":[1,5],"74":[1,4],"75":[1,5],"76":[1,5],"77":[1,4],"78":[1,5],"79":[1,5],"80":[1,4],"81":[1,5],"82":[1,4],"83":[1,4],"84":[1,5],"85":[1,5],"86":[1,4],"87":[1,5],"88":[1,4],"89":[1],"90":[1,3],"91":[1,4],"92":[2],"93":[1,4],"94":[1],"95":[1,3],"96":[1,3],"97":[1],"98":[1,3],"99":[1],"100":[1],"101":[1],"102":[1],"103":[1],"104":[1],"105":[1],"106":[1],"107":[1],"108":[1],"109":[1],"110":[1],"111":[1],"112":[1],"113":[1],"114":[1],"115":[1],"116":[1],"117":[1],"118":[1],"119":[1],"120":[1],"121":[1],"122":[1],"123":[1],"124":[1],"125":[1],"126":[1],"127":[1],"128":[1],"129":[1,3],"130":[1],"131":[1],"132":[],"133":[],"134":[1],"135":[1],"136":[1],"137":[1],"138":[1],"139":[2],"140":[1],"141":[1,2],"142":[2],"143":[3],"144":[],"145":[1],"146":[1],"147":[3,2],"148":[1],"149":[1],"150":[1,3],"151":[1,4],"152":[1,4],"153":[1,4],"154":[1,5],"155":[1,5],"156":[1,4],"157":[1,5],"158":[1,5],"159":[1,5],"160":[1,6],"161":[1,6],"162":[1,3],"163":[1,4],"164":[1,4],"165":[2,1,3],"166":[2,1,4],"167":[2,1,4],"168":[1,3],"169":[1,4],"170":[1,5],"171":[1,5],"172":[1,4],"173":[1,5],"174":[1,5],"175":[1],"176":[1],"177":[1],"178":[1],"179":[2],"180":[2],"181":[1],"182":[2],"183":[1],"184":[1,3],"185":[1,4],"186":[1,4],"187":[1,5],"188":[1,3],"189":[1,4],"190":[1,4],"191":[1,5],"192":[1,3],"193":[1,4],"194":[1,3],"195":[1,4],"196":[1,3,5],"197":[1,4,6],"198":[1,3],"199":[1,4],"200":[1,4],"201":[1,5],"202":[1,3],"203":[1,4],"204":[2],"205":[1],"206":[1],"207":[1,3],"208":[1,3],"209":[1,3],"210":[1,4],"211":[1,3,5],"212":[1,3],"213":[1,4],"214":[1,4],"215":[1,5],"216":[1,3],"217":[1,3],"218":[1,4],"219":[1,4],"220":[1,3],"221":[1,3],"222":[1,2],"223":[1,2],"224":[1,2],"225":[2],"226":[2,4],"227":[1,2],"228":[1],"229":[1],"230":[1],"231":[1],"232":[1],"233":[1,3],"234":[1,3],"235":[1,3],"236":[1,3],"237":[1],"238":[1],"239":[4,2,5],"240":[5,2,6],"241":[1,2],"242":[1],"243":[1],"244":[2],"245":[],"246":[],"247":[2],"248":[2],"249":[],"250":[2],"251":[2,3],"252":[1],"253":[1,3],"254":[1,4],"255":[2,3],"256":[1,2,4,5],"257":[1],"258":[1,2],"259":[],"260":[2],"261":[1],"262":[1,2],"263":[],"264":[1],"265":[2],"266":[3],"267":[],"268":[1],"269":[1,3],"270":[1,4],"271":[1,4],"272":[1,1],"273":[1],"274":[1,3],"275":[1,4],"276":[1,3],"277":[1,3],"278":[1,4],"279":[1,4],"280":[1,5],"281":[2],"282":[2],"283":[1],"284":[1],"285":[1],"286":[1],"287":[1],"288":[2],"289":[1,2],"290":[1,2],"291":[1,2],"292":[1,3],"293":[1,3],"294":[1,3],"295":[1,4],"296":[1],"297":[1,3],"298":[1],"299":[1,3],"300":[1,3],"301":[1,4],"302":[1,4],"303":[1],"304":[1,3],"305":[1,4],"306":[1,4],"307":[1,1],"308":[1,3],"309":[1,1,3],"310":[1,3,5],"311":[1],"312":[1],"313":[1],"314":[1],"315":[1],"316":[1],"317":[1],"318":[2],"319":[3],"320":[],"321":[],"322":[3,2,4],"323":[2,1,3],"324":[2,1],"325":[1,2],"326":[1],"327":[2,3,4],"328":[2,3,5],"329":[2,4,5],"330":[2,4,6],"331":[2,4,5],"332":[2,4,6],"333":[2,3,4],"334":[2,3,5],"335":[2,4,5],"336":[2,4,6],"337":[2,4,5],"338":[2,4,6],"339":[],"340":[2],"341":[],"342":[1],"343":[1,3],"344":[1,4],"345":[1,4],"346":[1],"347":[1,3],"348":[2],"349":[],"350":[1],"351":[1,2],"352":[1,3],"353":[1],"354":[1],"355":[1],"356":[1],"357":[1],"358":[2],"359":[1],"360":[],"361":[2],"362":[3],"363":[3,4],"364":[2],"365":[2,3],"366":[2,4],"367":[2,4,5],"368":[2,3],"369":[2,4,5],"370":[2,3],"371":[2],"372":[2],"373":[3,4],"374":[2],"375":[1],"376":[1,3],"377":[1],"378":[1],"379":[1],"380":[2],"381":[2],"382":[2,4],"383":[1],"384":[1,3],"385":[2],"386":[2],"387":[3],"388":[3],"389":[4],"390":[1,2],"391":[2],"392":[1,3],"393":[1,3],"394":[1,3],"395":[1],"396":[1,2],"397":[3],"398":[],"399":[2],"400":[1],"401":[1,3],"402":[1,4],"403":[2],"404":[1,4],"405":[1],"406":[1],"407":[1],"408":[1],"409":[],"410":[2],"411":[2],"412":[3],"413":[2],"414":[3],"415":[],"416":[2,3],"417":[2,3],"418":[2,4,5],"419":[2,4,5],"420":[3,1],"421":[3,1],"422":[3,1],"423":[3,1],"424":[3,5,1],"425":[3,5,1],"426":[3,5,1],"427":[3,5,1],"428":[1],"429":[2,3],"430":[2,3,4],"431":[3,4],"432":[3,4,5],"433":[2],"434":[2,3],"435":[2,3,5],"436":[1],"437":[1],"438":[3,1],"439":[3,1],"440":[3,1],"441":[3,1],"442":[3,1,6],"443":[3,1,5],"444":[2],"445":[2],"446":[2,3],"447":[2],"448":[2,3],"449":[2,3],"450":[2,3],"451":[2,3,4],"452":[2,3],"453":[2,3,4],"454":[2,3],"455":[2,3,4],"456":[2],"457":[2],"458":[2,3],"459":[2,3],"460":[2,3],"461":[2],"462":[1],"463":[1,2],"464":[2],"465":[3],"466":[2,4],"467":[2,4,6],"468":[3],"469":[3,5],"470":[1],"471":[1,2],"472":[2,3],"473":[2,3],"474":[1],"475":[1,3],"476":[2,4,5],"477":[2,4,6,7],"478":[2,4,6,7],"479":[2,4,8,6,9],"480":[2,4,6,8,9],"481":[2,4,5],"482":[2,4,6,7],"483":[3,5,6],"484":[3,5,7,8],"485":[2,4,5],"486":[2,4,6,7],"487":[3,5,6],"488":[3,5,7,8],"489":[2,4,5],"490":[2,4,6,7],"491":[2,3],"492":[2,4,5],"493":[1,3,5],"494":[1,3,5,7],"495":[1,3,5,7],"496":[1,3,5,9,7],"497":[1,3,5,7,9],"498":[1,3,5],"499":[1,3,5,7],"500":[1,4,6],"501":[1,4,6,8],"502":[1,3,5],"503":[1,3,5,7],"504":[1,4,6],"505":[1,4,6,8],"506":[1,3,5],"507":[1,3,5,7],"508":[1],"509":[1],"510":[1,3],"511":[2],"512":[2,3],"513":[2],"514":[2],"515":[1],"516":[1],"517":[1],"518":[1,2],"519":[1,2],"520":[1,3,5],"521":[1,2],"522":[2],"523":[1,2],"524":[2],"525":[3],"526":[],"527":[2],"528":[3],"529":[3],"530":[2],"531":[2],"532":[1,3],"533":[1,3],"534":[1,3],"535":[2,1,3],"536":[2,1,3],"537":[1,3],"538":[1,3],"539":[1,3],"540":[2,1,3],"541":[1,3],"542":[2,1,3],"543":[1,3],"544":[1,3],"545":[1,3],"546":[1,3],"547":[1,3],"548":[1,3],"549":[1,3],"550":[1,3],"551":[1,3],"552":[1,3],"553":[1,3],"554":[1,3],"555":[1,3],"556":[1,3],"557":[1,3]},accumulators:{"4":!0,"36":!0,"37":!0,"39":!0,"90":!0,"91":!0,"93":!0,"141":!0,"253":!0,"254":!0,"256":!0,"262":!0,"269":!0,"270":!0,"271":!0,"304":!0,"305":!0,"306":!0,"343":!0,"344":!0,"345":!0,"376":!0,"401":!0,"402":!0,"404":!0,"471":!0},parseTable:(()=>{let e=[108,1,2,1,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-1,1,2,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,1,0,2,1,5,-2,108,5,1,5,31,61,89,-3,-3,-3,-3,-3,29,1,5,31,61,89,2,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,9,1,5,31,61,89,2,1,9,1,-7,-7,-7,-7,-7,135,136,133,134,57,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,6,3,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-99,-99,-99,-99,-99,-99,137,138,-99,143,-99,-237,-237,-237,-99,-237,-237,-99,-237,140,-99,-99,-99,-99,142,-99,141,139,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,50,1,5,22,3,5,1,61,15,4,1,1,1,2,1,2,1,9,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-100,-100,-100,-100,-100,-100,-100,-100,-238,-238,-238,-100,-238,-238,-100,-238,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,65,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-119,-119,145,146,-119,-119,-119,-119,144,147,151,148,149,152,-119,-119,-119,150,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,18,6,14,7,4,2,3,66,6,7,19,1,6,1,9,6,9,1,1,-341,158,100,-341,160,-341,96,159,161,153,-341,163,162,101,156,154,155,157,2,36,22,165,164,46,16,4,3,4,6,28,1,13,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,26,170,167,103,100,76,168,169,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,171,107,105,106,96,166,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,82,46,16,4,3,4,6,28,1,13,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,26,170,167,103,100,76,168,169,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,171,107,105,106,96,172,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,82,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,175,176,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,173,174,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,177,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,179,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,180,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,181,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,182,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,144,1,5,1,1,1,1,1,1,1,1,1,1,3,1,2,1,2,2,1,3,2,3,1,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,5,1,1,2,3,3,5,2,1,4,5,2,1,1,4,2,1,1,1,1,1,1,1,1,8,4,2,2,1,5,6,2,1,2,7,3,1,1,1,1,1,1,1,1,2,1,1,1,1,1,3,1,2,1,5,3,4,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-526,-526,183,178,26,27,28,29,30,31,73,32,65,54,71,103,185,100,-526,-526,76,184,-526,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,-526,105,106,96,45,75,-526,92,93,-526,-526,94,95,89,41,-526,42,90,91,86,87,88,83,-526,101,-526,-526,84,85,-526,66,74,67,68,69,82,-526,70,-526,-526,-526,63,56,97,-526,57,98,-526,-526,58,-526,-526,64,60,-526,-526,49,99,43,44,-526,-526,-526,46,47,48,50,51,52,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,186,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,187,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,58,1,5,11,11,3,5,1,15,30,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-138,-138,189,-138,-138,-138,-138,188,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,70,1,5,11,1,10,3,5,1,15,1,1,1,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,190,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,193,192,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,194,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,191,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,196,197,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,195,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,15,20,7,6,44,25,6,7,26,1,9,17,46,4,2,2,158,100,160,201,96,159,161,163,83,101,203,198,199,200,202,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,204,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,205,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,206,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,207,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,208,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,209,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,4,20,82,13,26,210,96,211,163,51,1,5,14,8,3,5,1,21,40,4,11,2,5,5,10,6,2,12,2,8,5,2,15,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-360,-360,216,-360,-360,165,-360,212,-360,96,-360,215,-360,-360,-360,163,-360,-360,-360,-360,214,213,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,1,175,217,3,36,136,5,220,219,218,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,222,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,221,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,143,1,5,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,1,3,2,3,1,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,5,1,1,2,3,3,5,2,1,4,5,2,1,1,4,2,1,1,1,1,1,1,1,1,8,4,2,2,1,5,6,2,1,2,7,3,1,1,1,1,1,1,1,1,2,1,1,1,1,1,3,1,2,1,5,3,4,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-415,-415,223,178,26,27,28,29,30,31,73,32,65,54,71,103,100,-415,-415,76,224,-415,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,-415,105,106,96,45,75,-415,92,93,-415,-415,94,95,89,41,-415,42,90,91,86,87,88,83,-415,101,-415,-415,84,85,-415,66,74,67,68,69,82,-415,70,-415,-415,-415,63,56,97,-415,57,98,-415,-415,58,-415,-415,64,60,-415,-415,49,99,43,44,-415,-415,-415,46,47,48,50,51,52,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,10,20,3,1,2,1,7,6,52,1,9,230,225,226,227,228,229,231,171,107,96,61,14,2,3,1,3,4,6,6,4,1,1,1,1,1,1,1,1,8,2,1,13,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,13,235,246,244,245,103,232,76,241,233,234,236,237,238,239,240,242,243,55,168,169,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,171,107,105,106,96,247,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,82,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,2,20,82,248,96,65,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,65,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,107,4,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,249,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,250,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,114,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,1,1,1,2,1,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,251,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,257,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,252,253,254,256,259,255,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,4,112,5,2,13,143,263,264,262,3,82,30,20,266,143,265,5,62,71,3,1,1,267,41,42,90,91,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,59,1,5,22,3,5,1,45,2,8,6,5,1,8,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-246,-246,-246,-246,-246,-246,-246,-246,269,-246,268,270,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,14,20,56,4,1,2,19,13,14,1,1,9,1,18,27,274,277,276,278,272,96,275,89,271,273,87,88,279,82,1,36,-242,1,36,-243,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,6,117,1,1,3,1,3,280,281,282,283,284,285,1,117,286,1,117,287,77,1,5,11,1,7,3,3,5,1,1,14,1,1,1,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,7,12,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,3,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,288,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,289,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,291,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,290,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,26,6,14,3,5,3,5,49,1,4,1,1,1,6,1,2,1,1,11,26,1,8,2,1,1,2,1,-267,302,103,-267,-267,-267,298,296,102,104,171,107,105,106,96,303,270,304,300,299,292,293,294,295,297,301,1,27,305,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,6,23,69,1,1,2,1,309,171,107,306,307,308,6,23,69,1,1,2,1,309,171,107,310,307,308,110,1,4,1,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,4,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,5,1,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,1,1,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-5,311,-5,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,-5,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,-5,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,-5,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,312,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,313,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,314,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,315,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,316,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,317,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,318,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,319,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,320,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,321,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,322,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,323,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,324,178,325,326,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,327,178,328,329,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,330,178,331,332,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,333,178,334,335,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,336,178,337,338,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,339,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,340,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,14,20,7,6,69,6,7,26,1,9,17,46,4,2,2,158,100,160,96,159,161,163,162,101,203,341,342,343,202,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,344,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,345,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,346,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,347,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,348,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,349,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,3,23,69,1,350,171,107,46,1,5,22,3,5,1,61,14,1,7,5,7,3,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-517,-517,-517,-517,-517,-517,-517,143,-517,-517,-517,351,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,2,112,20,143,352,57,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,6,3,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-395,-395,-395,-395,-395,-395,-395,-395,-395,143,-395,-395,-395,-395,-395,-395,-395,-395,-395,353,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,110,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,5,1,1,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,357,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,354,355,92,93,94,95,89,41,42,90,91,86,87,88,83,356,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,360,359,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,361,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,50,1,5,22,3,5,1,15,3,1,1,2,39,13,2,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-15,-15,-15,-15,-15,-15,362,366,363,364,367,-15,365,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,5,17,35,3,1,1,369,368,372,370,371,1,52,373,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,376,375,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,374,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,193,192,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,194,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,378,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,46,16,4,3,4,6,28,1,13,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,26,170,167,103,100,76,379,169,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,171,107,105,106,96,247,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,82,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,376,375,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,380,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,193,192,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,194,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,381,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,6,24,1,5,99,-407,384,383,-407,382,6,6,25,5,1,76,22,-342,-342,-342,-342,-342,-342,7,6,25,5,1,15,61,22,-346,-346,-346,-346,385,-346,-346,17,6,14,7,4,2,3,1,65,6,5,2,20,6,1,9,16,1,-349,158,100,-349,160,-349,-349,96,159,-349,161,-349,163,162,101,386,157,9,6,11,1,13,5,1,15,61,22,-350,387,388,-350,-350,-350,-350,-350,-350,13,6,11,1,13,5,1,15,61,22,80,2,2,2,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,13,6,11,1,13,5,1,15,61,22,80,2,2,2,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,13,6,11,1,13,5,1,15,61,22,80,2,2,2,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,13,6,11,1,13,5,1,15,61,22,80,2,2,2,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,114,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,1,1,1,2,1,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,257,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,252,253,254,256,259,255,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,92,11,1,269,268,270,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,107,4,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,4,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,390,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,389,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-513,-513,-513,-513,-513,-513,-175,-175,-513,-175,-513,-175,-175,-175,-513,-175,-175,-513,-175,-513,-513,-513,-513,-175,-513,-175,-175,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,13,82,2,28,5,1,1,3,1,3,6,29,23,1,137,138,143,-237,-237,-237,-237,-237,-237,140,142,141,391,6,117,1,1,3,1,3,-238,-238,-238,-238,-238,-238,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,62,1,5,22,3,1,4,1,45,2,8,1,2,2,1,3,11,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-514,-514,-514,-514,-514,-514,-175,-175,-514,-175,-514,-175,-175,-175,-514,-175,-175,-514,-175,-514,-514,-514,-514,-175,-514,-175,-175,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,394,392,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,393,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,395,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,4,189,1,9,1,135,136,133,134,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,112,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,3,27,6,118,100,396,101,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-527,3,27,6,118,100,397,101,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,398,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,112,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,112,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,399,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,52,400,2,52,3,401,402,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,131,132,-181,127,128,129,-181,-181,130,-181,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,403,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,46,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,2,1,1,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,404,405,407,406,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,46,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,2,1,1,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,131,132,-445,127,128,129,408,409,407,406,130,-445,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,46,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,2,1,1,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,135,136,-447,-447,133,134,410,411,407,406,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,4,215,2,2,2,412,413,414,415,12,20,7,6,69,6,7,26,1,9,17,46,8,158,100,160,96,159,161,163,162,101,203,416,202,12,20,7,6,69,6,7,26,1,9,17,46,8,158,100,160,96,159,161,163,162,101,203,417,202,3,36,22,158,165,418,419,5,31,184,2,2,2,420,-509,-509,-509,-509,5,31,184,2,2,2,-508,-508,-508,-508,-508,25,36,153,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,421,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,3,209,1,1,422,423,424,27,36,22,131,1,1,5,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,425,131,132,426,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,27,36,22,131,1,1,5,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,427,131,132,428,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-464,3,27,6,118,100,429,101,6,17,4,15,17,1,58,-339,430,-339,431,432,433,6,17,4,15,17,1,58,-339,434,-339,435,436,433,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,437,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,46,1,5,22,3,5,1,21,40,15,7,5,10,8,12,2,8,7,15,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-364,-364,-364,-364,165,-364,438,-364,-364,-364,-364,-364,-364,-364,-364,-364,439,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,3,36,22,114,165,440,441,45,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,7,15,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,442,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,2,1,1,1,2,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,445,446,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,443,444,447,448,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,131,132,-386,127,-386,-386,-386,-386,130,-386,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-386,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-413,3,27,6,118,100,449,101,45,1,5,22,3,1,4,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-18,-18,-18,-18,450,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,2,25,6,451,452,1,25,453,7,20,8,1,6,1,3,63,458,454,455,456,457,459,96,6,20,4,2,1,13,62,230,460,461,462,231,96,2,25,6,-44,-44,1,38,463,29,6,14,3,5,3,5,3,3,18,25,1,4,1,1,1,6,1,2,1,1,11,26,1,8,2,1,1,2,1,-267,468,103,464,-267,467,469,465,466,298,296,102,104,171,107,105,106,96,303,270,304,300,299,292,293,294,295,297,301,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,470,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,471,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,2,25,13,472,473,1,27,474,4,20,82,13,26,475,96,211,163,21,17,1,34,1,1,1,1,1,2,23,2,28,5,1,1,3,1,3,35,23,1,477,-205,476,478,479,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,18,17,1,37,1,1,2,23,2,28,5,1,1,3,1,3,35,23,1,480,481,151,148,149,152,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,62,1,5,11,1,10,3,5,1,18,1,1,2,23,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,2,36,22,165,482,2,6,181,108,483,106,4,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,484,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,31,6,25,5,107,14,7,1,24,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-405,-405,-405,-405,487,485,486,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,5,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,110,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,1,5,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,488,490,489,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,6,6,24,1,5,107,3,-407,493,492,-407,-407,491,61,6,4,5,4,3,5,4,5,1,4,18,28,1,1,1,1,1,1,6,1,2,25,1,1,4,4,1,1,1,1,1,1,8,6,2,1,11,2,1,2,7,3,2,1,1,4,4,3,6,1,5,7,3,1,1,4,1,1,1,1,1,494,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,5,6,25,5,1,106,-252,-252,-252,-252,-252,113,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,2,1,2,1,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,257,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,496,495,256,259,255,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,61,6,4,5,4,3,5,4,5,1,4,18,28,1,1,1,1,1,1,6,1,2,25,1,1,4,4,1,1,1,1,1,1,8,6,2,1,11,2,1,2,7,3,2,1,1,4,4,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,5,6,25,5,1,106,-257,-257,-257,-257,-257,6,6,25,5,1,76,30,-406,-406,-406,-406,-406,-406,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,497,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,2,103,1,498,270,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,499,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,500,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,2,112,20,143,501,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,75,1,5,11,1,10,3,5,1,15,1,1,1,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,7,12,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,3,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,75,1,5,11,1,10,3,5,1,15,1,1,1,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,7,12,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,3,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,75,1,5,11,1,10,3,5,1,15,1,1,1,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,7,12,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,3,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,57,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,6,3,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-222,-222,-222,-222,-222,-222,502,506,-222,143,-222,503,504,505,-222,-222,-222,-222,-222,507,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,2,117,2,263,264,2,103,1,508,270,2,103,1,509,270,109,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,5,6,1,1,4,3,1,1,1,1,1,1,9,6,2,1,4,1,6,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,510,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,511,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,512,94,95,89,41,42,90,91,86,87,88,83,101,487,84,85,513,486,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,119,514,8,20,16,66,1,1,20,38,1,519,516,96,520,270,515,517,518,8,20,16,66,1,1,20,38,1,519,522,96,520,270,521,517,518,2,103,1,523,270,2,103,1,524,270,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,525,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,526,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,527,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,5,6,22,2,1,5,-407,-407,528,529,-407,5,6,22,3,5,1,-268,-268,-268,-268,-268,6,6,22,3,5,1,118,-272,-272,-272,-272,-272,530,5,6,22,3,5,1,-273,-273,-273,-273,-273,1,155,531,8,6,22,3,5,1,15,2,101,-316,-316,-316,-316,-316,532,533,-316,6,6,22,3,5,1,118,-317,-317,-317,-317,-317,-317,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,534,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,4,92,11,1,38,269,268,270,535,18,20,7,6,43,4,1,21,1,1,11,25,1,10,5,2,1,1,26,302,100,538,539,541,540,96,303,270,304,87,88,101,536,537,542,543,82,16,6,22,3,5,1,15,2,28,30,5,1,1,4,3,29,6,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,16,6,22,3,5,1,15,2,28,30,5,1,1,4,3,29,6,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,16,6,22,3,5,1,15,2,28,30,5,1,1,4,3,29,6,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,26,6,14,3,5,3,5,49,1,4,1,1,1,6,1,2,1,1,11,26,1,8,2,1,1,2,1,-267,302,103,-267,-267,-267,298,296,102,104,171,107,105,106,96,303,270,304,300,299,544,293,294,295,297,301,6,23,69,1,3,1,4,309,171,107,546,308,545,5,92,1,2,2,4,-140,-140,-140,-140,-140,108,4,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,5,1,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,547,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,548,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,549,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,92,1,2,2,4,-145,-145,-145,-145,-145,6,23,69,1,2,1,1,309,171,107,550,546,308,5,1,5,31,61,89,-4,-4,-4,-4,-4,25,155,34,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,551,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,112,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,112,115,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,112,115,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,112,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,114,113,112,115,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,109,110,-537,114,113,112,115,116,-537,-537,-537,120,121,122,-537,-537,-537,-537,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,109,110,-538,114,113,112,115,116,117,-538,-538,120,121,122,-538,-538,-538,-538,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,109,110,-539,114,113,112,115,116,117,118,-539,120,121,122,-539,-539,-539,-539,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,109,110,-540,114,113,112,115,116,-540,-540,-540,-540,-540,122,-540,-540,-540,-540,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,109,110,-541,114,113,112,115,116,-541,-541,-541,-541,-541,122,-541,-541,-541,-541,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,109,110,-542,114,113,112,115,116,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,109,110,-543,114,113,112,115,116,117,118,119,120,121,122,-543,-543,-543,-543,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,109,110,-544,114,113,112,115,116,117,118,119,120,121,122,123,-544,-544,-544,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,109,110,-545,114,113,112,115,116,117,118,119,120,121,122,123,-545,-545,-545,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-552,-552,-552,-552,-552,-552,-552,-552,-552,-552,-552,-552,-552,-552,-552,-552,131,132,-552,127,-552,-552,-552,-552,130,-552,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-552,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-553,-553,-553,-553,-553,-553,-553,-553,-553,-553,-553,-553,-553,-553,-553,-553,131,132,-553,127,-553,-553,-553,-553,130,-553,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-553,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,131,132,-439,552,-439,-439,-439,-439,130,-439,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,131,132,-441,127,-441,-441,-441,-441,130,-441,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,4,215,2,2,2,553,554,555,556,12,20,7,6,69,6,7,26,1,9,17,46,8,158,100,160,96,159,161,163,162,101,203,557,202,12,20,7,6,69,6,7,26,1,9,17,46,8,158,100,160,96,159,161,163,162,101,203,558,202,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,131,132,559,127,-420,-420,-420,-420,130,-420,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-420,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,131,132,560,127,-422,-422,-422,-422,130,-422,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-422,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,131,132,-438,127,-438,-438,-438,-438,130,-438,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,131,132,-440,127,-440,-440,-440,-440,130,-440,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,131,132,561,127,-421,-421,-421,-421,130,-421,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-421,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,131,132,562,127,-423,-423,-423,-423,130,-423,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-423,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,5,6,24,1,5,77,-407,563,564,-407,-407,5,6,25,5,1,76,-400,-400,-400,-400,-400,109,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,6,1,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,357,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,565,92,93,94,95,89,41,42,90,91,86,87,88,83,356,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,30,6,25,5,1,76,30,46,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-405,-405,-405,-405,-405,-405,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-150,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,566,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,567,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,569,568,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,570,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,376,375,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,571,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,193,192,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,194,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,572,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,46,16,4,3,4,6,28,1,13,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,26,170,167,103,100,76,573,169,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,171,107,105,106,96,247,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,82,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,376,375,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,574,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,193,192,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,194,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,575,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,577,576,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,578,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,48,1,5,22,3,5,1,15,3,1,1,41,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-16,-16,-16,-16,-16,-16,579,582,580,581,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,376,375,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,583,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,193,192,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,194,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,584,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,376,375,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,585,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,586,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,131,132,-178,127,128,129,-178,-178,130,-178,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,587,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,588,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,57,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,6,3,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-192,-192,-192,-192,-192,-192,137,138,-192,589,-192,-237,-237,-237,-192,-237,-237,-192,-237,140,-192,-192,-192,-192,142,-192,141,391,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,4,17,119,1,1,591,590,90,91,16,6,14,7,6,3,1,65,6,7,26,1,9,6,9,1,1,-408,158,100,160,-408,-408,96,159,161,163,162,101,156,592,155,157,2,6,30,593,594,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,595,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,6,6,25,5,1,76,22,-348,-348,-348,-348,-348,-348,7,6,25,5,1,15,61,22,-351,-351,-351,-351,-351,-351,-351,8,6,11,14,5,1,15,61,22,-353,596,-353,-353,-353,-353,-353,-353,57,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,6,2,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,2,6,31,108,597,2,112,20,143,351,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-165,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,598,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,599,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-168,1,37,600,1,37,601,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-529,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-162,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,602,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,604,603,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,605,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,607,606,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,608,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,131,132,-182,127,128,129,-182,-182,130,-182,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,45,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,3,1,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,609,407,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,10,20,7,6,3,22,44,6,34,9,55,614,100,611,165,613,96,612,162,101,610,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,616,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,615,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,45,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,3,1,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,617,407,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,45,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,3,1,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,618,407,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,619,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,620,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,621,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,622,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,217,623,1,219,624,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,625,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,11,20,7,6,69,6,7,26,1,9,17,54,158,100,160,96,159,161,163,162,101,203,626,3,209,1,1,627,423,424,4,37,159,14,1,628,629,630,424,3,37,159,15,-470,-470,-470,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,4,1,7,3,1,1,4,1,1,1,1,1,632,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,631,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,633,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,634,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,37,635,3,17,19,22,637,165,636,4,17,4,15,76,-339,638,-339,433,4,17,4,15,76,-339,639,-339,433,18,6,14,7,4,2,3,66,6,5,2,19,7,1,9,6,9,1,1,-341,158,100,-341,160,-341,96,159,-341,161,640,163,162,101,156,154,155,157,3,17,19,22,642,165,641,4,17,4,15,76,-339,643,-339,433,4,17,4,15,76,-339,644,-339,433,45,1,5,22,3,5,1,21,40,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-362,-362,-362,-362,165,-362,645,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-362,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,646,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,647,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,26,36,141,12,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,220,648,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,2,6,31,650,649,2,6,31,-375,-375,26,6,31,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-378,-378,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,6,6,31,152,1,9,1,-379,-379,135,136,133,134,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,651,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,102,652,1,37,653,3,27,6,118,100,654,101,3,23,69,1,655,171,107,3,26,1,13,656,657,231,3,23,69,1,658,171,107,1,25,659,5,6,22,2,1,5,-407,-407,660,661,-407,5,6,22,3,5,1,-35,-35,-35,-35,-35,6,20,9,6,1,3,63,458,662,456,457,459,96,6,6,22,3,5,1,1,-40,-40,-40,-40,-40,663,6,6,22,3,5,1,1,-42,-42,-42,-42,-42,664,1,25,665,1,25,666,7,20,8,1,6,1,3,63,458,667,668,456,457,459,96,2,20,82,669,96,45,1,5,19,3,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,670,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,5,6,22,2,1,5,-407,-407,671,672,-407,5,6,22,3,5,1,-89,-89,-89,-89,-89,6,20,16,3,3,18,42,674,467,469,673,466,96,8,6,22,3,5,2,14,2,101,-94,-94,-94,-94,675,-313,-313,-313,6,6,22,3,5,1,1,-97,-97,-97,-97,-97,676,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,131,132,-56,127,128,129,-56,-56,130,-56,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,3,27,6,118,100,677,101,3,23,69,1,678,171,107,3,20,19,63,679,680,96,6,20,16,3,3,18,42,674,467,469,681,466,96,6,17,4,15,17,1,58,-339,682,-339,431,432,433,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,684,683,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,685,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,52,3,1,1,2,686,689,687,688,690,1,52,691,2,52,3,692,693,4,55,1,1,2,366,363,364,367,4,17,38,1,1,694,372,370,371,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,2,6,31,108,695,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,696,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,57,10,5,4,3,5,10,4,18,28,1,1,1,1,1,1,6,1,2,18,7,1,1,4,4,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,4,4,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,57,10,5,4,3,5,10,4,18,28,1,1,1,1,1,1,6,1,2,18,7,1,1,4,4,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,4,4,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,5,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,61,6,4,5,4,3,5,4,5,1,4,18,28,1,1,1,1,1,1,6,1,2,25,1,1,4,4,1,1,1,1,1,1,8,6,2,1,11,2,1,2,7,3,2,1,1,4,4,3,6,1,5,7,3,1,1,4,1,1,1,1,1,494,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,5,6,25,5,1,106,-258,-258,-258,-258,-258,2,36,107,698,697,115,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,1,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,1,1,3,1,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-408,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,-408,-408,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,-408,700,699,259,255,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,4,6,30,1,106,701,-259,-259,-259,61,6,4,5,4,3,5,4,5,1,4,18,28,1,1,1,1,1,1,6,1,2,25,1,1,4,4,1,1,1,1,1,1,8,6,2,1,11,2,1,2,7,3,2,1,1,4,4,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,6,6,24,1,5,1,109,-407,493,492,-407,-407,702,109,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,6,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,490,489,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,30,6,25,5,1,76,30,46,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-358,-358,-358,-358,-358,-358,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,25,120,69,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,703,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,704,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,57,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,6,3,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-225,-225,-225,-225,-225,-225,-225,-225,-225,143,-225,-225,-225,-225,-225,-225,-225,-225,-225,705,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,2,103,1,706,270,2,103,1,707,270,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,708,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,23,69,1,709,171,107,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,29,31,89,37,7,1,24,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,711,710,487,712,486,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,108,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,5,6,1,1,4,3,1,1,1,1,1,1,9,6,2,1,4,1,6,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,713,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,714,94,95,89,41,42,90,91,86,87,88,83,101,487,84,85,513,486,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,120,715,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,4,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,4,7,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,716,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,-326,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,-326,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,717,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,718,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,6,24,1,5,89,-407,719,720,-407,-407,7,20,82,1,1,20,38,1,519,96,520,270,721,517,518,5,6,25,5,1,88,-303,-303,-303,-303,-303,7,6,25,5,1,15,73,30,-307,-307,-307,-307,723,-307,722,7,6,25,5,1,15,73,30,-311,-311,-311,-311,-311,-311,-311,7,6,25,5,1,15,73,30,-312,-312,-312,-312,-312,-312,-312,5,6,24,1,5,89,-407,724,720,-407,-407,7,20,82,1,1,20,38,1,519,96,520,270,725,517,518,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,45,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,4,1,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,726,727,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,728,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,3,6,22,8,730,729,731,25,6,14,3,5,8,1,48,1,4,1,1,1,6,1,2,1,1,11,26,1,10,1,1,2,1,-408,302,103,-408,-408,-408,298,296,102,104,171,107,105,106,96,303,270,304,300,299,732,294,295,297,301,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,733,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,734,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,735,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,736,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,737,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,155,738,25,143,46,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,739,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,740,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,14,6,22,3,5,1,45,30,5,1,1,4,3,6,29,-281,-281,-281,-281,-281,-283,143,-283,-283,-283,-283,-283,741,-283,14,6,22,3,5,1,45,30,5,1,1,4,3,6,29,-282,-282,-282,-282,-282,746,143,743,744,745,748,749,742,747,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,4,112,5,2,13,143,263,264,750,2,112,20,143,751,5,6,22,2,1,5,-407,-407,752,529,-407,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,5,92,1,2,2,4,-141,-141,-141,-141,-141,2,6,92,108,753,106,4,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,754,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,92,1,2,2,4,-144,-144,-144,-144,-144,62,1,5,22,3,1,4,1,45,2,8,1,2,2,1,3,11,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,755,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,757,178,337,338,28,29,30,31,73,32,65,54,71,103,100,76,756,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,758,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,759,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,760,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,761,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,217,762,1,219,763,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,764,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,765,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,766,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,767,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,6,30,77,769,770,768,111,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,1,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,5,2,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-408,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,-408,-408,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,-408,92,93,94,95,89,41,42,90,91,86,87,88,83,771,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,6,24,1,5,1,-407,772,564,-407,-407,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-151,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,773,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-153,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,774,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,775,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,57,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,6,3,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-193,-193,-193,-193,-193,-193,137,138,-193,776,-193,-237,-237,-237,-193,-237,-237,-193,-237,140,-193,-193,-193,-193,142,-193,141,391,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-156,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,777,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,778,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,780,779,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,781,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,376,375,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,782,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,193,192,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,194,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,783,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,376,375,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,784,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-164,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,131,132,-179,127,128,129,-179,-179,130,-179,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,785,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,110,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,5,1,1,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,357,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,786,787,92,93,94,95,89,41,42,90,91,86,87,88,83,356,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,2,36,22,165,788,3,136,1,1,789,90,91,6,6,25,5,1,76,22,-343,-343,-343,-343,-343,-343,13,20,7,6,69,6,7,26,1,9,6,9,1,1,158,100,160,96,159,161,163,162,101,156,790,155,157,18,6,14,7,4,2,3,1,65,6,7,19,7,1,9,6,9,1,1,-341,158,100,-341,160,-341,-341,96,159,161,791,163,162,101,156,154,155,157,30,6,25,5,1,76,22,54,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-347,-347,-347,-347,-347,-347,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,7,6,25,5,1,15,61,22,-352,-352,-352,-352,-352,-352,-352,57,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,6,2,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,792,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-167,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-163,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-169,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,793,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,794,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,131,132,-172,127,128,129,-172,-172,130,-172,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,795,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,796,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,2,36,22,165,797,2,36,22,165,798,2,36,22,165,799,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,2,17,19,800,-462,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,131,132,-457,127,128,129,-457,-457,130,-457,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,28,36,22,131,1,1,5,3,1,13,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,801,131,132,803,127,128,129,130,802,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,27,36,22,131,1,1,5,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,804,131,132,805,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,27,36,22,131,1,1,5,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,806,131,132,807,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,27,36,22,131,1,1,5,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,808,131,132,809,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,810,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,811,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,812,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,4,215,2,2,2,-510,-510,-510,-510,4,37,159,14,1,813,814,630,424,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,2,36,22,165,815,3,37,159,15,-471,-471,-471,3,31,5,22,817,165,816,26,31,5,153,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-474,-474,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,818,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,819,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,45,1,5,22,3,5,1,21,40,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-17,-17,-17,-17,165,-17,820,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,3,17,19,22,822,165,821,3,17,19,22,824,165,823,5,6,24,1,5,77,-407,384,383,-407,825,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,2,36,22,165,826,3,17,19,22,828,165,827,3,17,19,22,830,165,829,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,45,1,5,22,3,5,1,21,40,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-366,-366,-366,-366,165,-366,831,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-366,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,832,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,109,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,4,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,3,1,1,2,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-377,445,446,26,27,28,29,30,31,73,32,65,54,71,103,100,76,-377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,833,447,448,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,26,6,31,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-380,-380,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,3,6,19,12,-381,834,-381,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,45,1,5,22,3,1,4,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-19,-19,-19,-19,835,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,1,25,836,6,20,9,6,1,3,63,458,837,456,457,459,96,45,1,5,22,3,1,4,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-20,-20,-20,-20,838,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,3,23,69,1,839,171,107,3,6,22,8,841,840,842,8,6,14,8,7,1,1,2,63,-408,458,-408,843,-408,-408,459,96,5,6,24,1,5,1,-407,844,661,-407,-407,2,20,82,845,96,2,20,82,846,96,3,23,69,1,847,171,107,3,23,69,1,848,171,107,1,25,849,5,6,22,2,1,5,-407,-407,850,661,-407,1,25,-45,3,23,69,1,851,171,107,3,6,22,8,853,852,854,8,6,14,8,8,1,2,21,42,-408,674,-408,-408,-408,469,855,96,5,6,24,1,5,1,-407,856,672,-407,-407,6,6,22,3,5,1,1,-94,-94,-94,-94,-94,675,3,20,19,63,857,858,96,2,20,82,859,96,1,37,860,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,1,25,861,1,25,862,5,6,22,2,1,5,-407,-407,863,672,-407,3,17,19,22,864,165,636,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,131,132,-64,127,128,129,-64,-64,130,-64,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,865,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,866,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,868,867,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,869,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,871,870,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,872,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,874,873,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,875,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,877,876,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,878,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,880,879,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,881,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,882,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,884,883,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,885,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,887,886,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,888,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,55,1,1,582,580,581,1,187,889,25,143,46,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,890,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,5,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,113,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,2,1,2,1,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,257,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,496,891,256,259,255,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,6,25,5,1,106,-253,-253,-253,-253,-253,112,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,1,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,1,5,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,-260,-260,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,-260,490,489,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,111,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,2,3,1,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,496,892,259,255,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,2,36,1,698,893,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,894,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,25,120,69,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,895,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,896,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,4,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,4,7,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,897,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,-324,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,-324,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,28,37,120,7,1,24,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,898,487,712,486,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,1,37,899,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,26,37,83,69,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-325,-325,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,120,69,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,900,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,901,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,6,30,89,903,904,902,10,6,14,16,1,65,1,1,21,37,1,-408,519,-408,-408,96,520,270,-408,905,518,5,6,24,1,5,1,-407,906,720,-407,-407,5,20,82,1,1,59,519,96,520,270,907,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,908,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,6,30,89,903,904,909,5,6,24,1,5,1,-407,910,720,-407,-407,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,3,36,22,136,165,912,911,2,36,22,165,913,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,5,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,21,20,3,62,1,4,1,1,1,6,1,2,1,1,11,26,1,10,1,1,2,1,302,103,298,296,102,104,171,107,105,106,96,303,270,304,300,299,914,294,295,297,301,26,6,14,3,8,5,1,48,1,4,1,1,1,6,1,2,1,1,11,26,1,8,2,1,1,2,1,-267,302,103,-267,-267,-267,298,296,102,104,171,107,105,106,96,303,270,304,300,299,915,293,294,295,297,301,5,6,22,3,5,1,-269,-269,-269,-269,-269,29,6,22,3,5,1,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-274,-274,-274,-274,-274,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,916,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,29,6,22,3,5,1,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-276,-276,-276,-276,-276,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,29,6,22,3,5,1,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-277,-277,-277,-277,-277,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,917,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,918,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,919,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,6,6,22,3,5,1,118,-318,-318,-318,-318,-318,-318,25,143,46,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,920,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,2,103,1,921,270,2,103,1,922,270,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,923,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,924,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,14,6,22,3,5,1,45,30,5,1,1,4,3,6,29,-298,-298,-298,-298,-298,-298,143,-298,-298,-298,-298,-298,925,-298,8,20,16,66,1,1,20,38,1,519,927,96,520,270,926,517,518,8,20,16,66,1,1,20,38,1,519,929,96,520,270,928,517,518,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,3,6,22,8,730,930,731,5,92,1,2,2,4,-142,-142,-142,-142,-142,2,6,31,108,931,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-520,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,932,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,131,132,-443,127,-443,-443,-443,-443,130,-443,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-443,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,933,-493,-493,-493,-493,-493,-493,934,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-493,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,935,-498,-498,-498,-498,-498,-498,-498,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-498,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,936,-502,-502,-502,-502,-502,-502,-502,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-502,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,937,-506,-506,-506,-506,-506,-506,-506,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-506,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,938,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,939,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-424,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-426,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-425,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-427,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,107,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,940,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,109,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,6,1,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,357,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,941,92,93,94,95,89,41,42,90,91,86,87,88,83,356,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,6,25,5,1,76,-401,-401,-401,-401,-401,3,6,30,1,769,770,942,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-154,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,943,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,110,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,5,1,1,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,357,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,944,945,92,93,94,95,89,41,42,90,91,86,87,88,83,356,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-157,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,946,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-159,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,947,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,948,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-194,-194,-194,-194,-194,-194,-398,-398,-194,-398,-194,-398,-398,-398,-194,-398,-398,-194,-398,-194,-194,-194,-194,-398,-194,-398,-398,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,5,6,24,1,5,77,-407,949,564,-407,-407,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,2,36,22,165,950,6,6,25,5,1,76,22,-344,-344,-344,-344,-344,-344,5,6,24,1,5,1,-407,951,383,-407,-407,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-170,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,952,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,131,132,-173,127,128,129,-173,-173,130,-173,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,953,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,1,36,-463,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,954,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,955,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,956,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,957,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,958,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,27,36,22,131,1,1,5,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,959,131,132,960,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,27,36,22,131,1,1,5,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,961,131,132,962,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,2,36,22,165,963,1,37,964,4,6,31,159,15,965,-472,-472,-472,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,966,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,2,36,22,165,967,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,2,36,22,165,968,2,17,19,-340,-340,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,2,36,22,165,969,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,2,36,22,165,970,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,2,6,31,-376,-376,2,102,80,972,971,3,27,6,118,100,973,101,3,23,69,1,974,171,107,5,6,22,2,1,5,-407,-407,975,661,-407,3,27,6,118,100,976,101,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,1,25,977,4,20,15,4,63,458,978,459,96,6,20,9,6,1,3,63,458,979,456,457,459,96,5,6,22,3,5,1,-36,-36,-36,-36,-36,3,6,30,1,841,842,980,5,6,22,3,5,1,-41,-41,-41,-41,-41,5,6,22,3,5,1,-43,-43,-43,-43,-43,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,3,23,69,1,981,171,107,3,6,22,8,841,982,842,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,45,1,5,19,3,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-47,-47,983,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,4,20,19,21,42,674,469,984,96,6,20,16,3,3,18,42,674,467,469,985,466,96,5,6,22,3,5,1,-90,-90,-90,-90,-90,3,6,30,1,853,854,986,5,6,22,3,5,1,-95,-95,-95,-95,-95,5,6,22,3,5,1,-96,-96,-96,-96,-96,5,6,22,3,5,1,-98,-98,-98,-98,-98,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,3,23,69,1,987,171,107,3,23,69,1,988,171,107,3,6,22,8,853,989,854,2,36,22,165,820,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,131,132,-65,127,128,129,-65,-65,130,-65,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,990,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,131,132,-67,127,128,129,-67,-67,130,-67,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,991,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,992,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,131,132,-77,127,128,129,-77,-77,130,-77,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,993,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,994,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,131,132,-80,127,128,129,-80,-80,130,-80,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,995,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,131,132,-83,127,128,129,-83,-83,130,-83,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,996,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,997,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,131,132,-86,127,128,129,-86,-86,130,-86,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,998,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,131,132,-70,127,128,129,-70,-70,130,-70,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,131,132,-71,127,128,129,-71,-71,130,-71,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,999,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1000,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,131,132,-74,127,128,129,-74,-74,130,-74,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1001,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1002,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,6,6,24,1,5,1,109,-407,493,492,-407,-407,1003,5,6,25,5,1,106,-254,-254,-254,-254,-254,5,6,25,5,1,106,-255,-255,-255,-255,-255,1,120,1004,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,25,120,69,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1005,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,37,83,69,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-323,-323,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,1,120,1006,1,120,1007,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1008,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,6,20,82,1,1,58,1,519,96,520,270,1009,518,7,20,82,1,1,20,38,1,519,96,520,270,1010,517,518,5,6,25,5,1,88,-304,-304,-304,-304,-304,3,6,30,1,903,904,1011,6,6,25,5,1,15,73,-308,-308,-308,-308,1012,-308,29,6,25,5,1,88,64,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-309,-309,-309,-309,-309,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,3,6,30,1,903,904,1013,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1014,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,5,6,22,3,5,1,-270,-270,-270,-270,-270,5,6,24,1,5,1,-407,1015,529,-407,-407,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1016,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1017,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,29,6,22,3,5,1,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-279,-279,-279,-279,-279,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1018,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,6,6,22,3,5,1,118,-319,-319,-319,-319,-319,-319,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,25,120,69,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1019,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1020,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,5,6,24,1,5,89,-407,1021,720,-407,-407,7,20,82,1,1,20,38,1,519,96,520,270,1022,517,518,5,6,24,1,5,89,-407,1023,720,-407,-407,7,20,82,1,1,20,38,1,519,96,520,270,1024,517,518,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,5,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,1,98,1025,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1026,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1027,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1028,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1029,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1030,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1031,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,1032,-500,-500,-500,-500,-500,-500,-500,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-500,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,1033,-504,-504,-504,-504,-504,-504,-504,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-504,5,6,25,5,1,76,-402,-402,-402,-402,-402,5,6,24,1,5,1,-407,1034,564,-407,-407,5,6,25,5,1,76,-403,-403,-403,-403,-403,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-195,-195,-195,-195,-195,-195,-398,-398,-195,-398,-195,-398,-398,-398,-195,-398,-398,-195,-398,-195,-195,-195,-195,-398,-195,-398,-398,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,5,6,24,1,5,77,-407,1035,564,-407,-407,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-160,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1036,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,3,6,30,77,769,770,1037,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,3,6,30,1,593,594,1038,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,27,36,22,131,1,1,5,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1039,131,132,1040,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,27,36,22,131,1,6,3,1,13,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1041,131,132,127,128,129,130,1042,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1043,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1044,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1045,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1046,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1047,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,37,1048,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,3,37,159,15,-473,-473,-473,26,31,5,153,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-475,-475,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,3,6,31,80,-382,-382,1049,3,6,31,80,-383,-383,-383,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,45,1,5,22,3,1,4,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-23,-23,-23,-23,1050,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,3,6,22,8,841,1051,842,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,3,23,69,1,1052,171,107,5,6,22,3,5,1,-37,-37,-37,-37,-37,5,6,24,1,5,1,-407,1053,661,-407,-407,5,6,22,3,5,1,-38,-38,-38,-38,-38,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,1,25,1054,3,23,69,1,1055,171,107,5,6,22,3,5,1,-91,-91,-91,-91,-91,5,6,24,1,5,1,-407,1056,672,-407,-407,5,6,22,3,5,1,-92,-92,-92,-92,-92,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,1,25,1057,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,131,132,-68,127,128,129,-68,-68,130,-68,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1058,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,131,132,-78,127,128,129,-78,-78,130,-78,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1059,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,131,132,-81,127,128,129,-81,-81,130,-81,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,131,132,-84,127,128,129,-84,-84,130,-84,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1060,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,131,132,-87,127,128,129,-87,-87,130,-87,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,131,132,-72,127,128,129,-72,-72,130,-72,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1061,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,131,132,-75,127,128,129,-75,-75,130,-75,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1062,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,2,36,1,698,1063,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,1,120,1064,5,6,25,5,1,88,-305,-305,-305,-305,-305,5,6,24,1,5,1,-407,1065,720,-407,-407,1,125,1066,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1067,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,125,1068,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1069,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,3,6,30,1,730,731,1070,5,6,22,3,5,1,-275,-275,-275,-275,-275,5,6,22,3,5,1,-278,-278,-278,-278,-278,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1071,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1072,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,3,6,30,89,903,904,1073,5,6,24,1,5,1,-407,1074,720,-407,-407,3,6,30,89,903,904,1075,5,6,24,1,5,1,-407,1076,720,-407,-407,5,92,1,2,2,4,-143,-143,-143,-143,-143,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,1077,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-494,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,1078,-495,-495,-495,-495,-495,-495,-495,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-495,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-499,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-503,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-507,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1079,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1080,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,6,30,1,769,770,1081,3,6,30,77,769,770,1082,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-196,-196,-196,-196,-196,-196,-399,-399,-196,-399,-196,-399,-399,-399,-196,-399,-399,-196,-399,-196,-196,-196,-196,-399,-196,-399,-399,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,6,6,25,5,1,76,22,-345,-345,-345,-345,-345,-345,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1083,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1084,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1085,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1086,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,2,103,1,1087,270,3,27,6,118,100,1088,101,1,25,1089,45,1,5,22,3,1,4,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-22,-22,-22,-22,1090,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,3,6,30,1,841,842,1091,3,23,69,1,1092,171,107,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,3,6,30,1,853,854,1093,3,23,69,1,1094,171,107,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,5,6,25,5,1,106,-256,-256,-256,-256,-256,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,3,6,30,1,903,904,1095,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,29,6,25,5,1,88,64,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,-310,-310,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,45,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,4,1,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,1096,727,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,5,6,22,3,5,1,-271,-271,-271,-271,-271,5,6,22,3,5,1,-280,-280,-280,-280,-280,1,120,1097,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,3,6,30,1,903,904,1098,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,3,6,30,1,903,904,1099,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1100,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1101,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-501,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-505,5,6,25,5,1,76,-404,-404,-404,-404,-404,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-197,-197,-197,-197,-197,-197,-399,-399,-197,-399,-197,-399,-399,-399,-197,-399,-399,-197,-399,-197,-197,-197,-197,-399,-197,-399,-399,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1102,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1103,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,3,6,31,80,-384,-384,-384,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,3,23,69,1,1104,171,107,3,27,6,118,100,1105,101,5,6,22,3,5,1,-39,-39,-39,-39,-39,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,5,6,22,3,5,1,-93,-93,-93,-93,-93,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,5,6,25,5,1,88,-306,-306,-306,-306,-306,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,1,125,1106,1,125,1107,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-496,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-497,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,45,1,5,22,3,1,4,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-24,-24,-24,-24,1108,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,3,27,6,118,100,1109,101,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30],t=[],r=0,s,i,n,a;while(r","ArrowKind → =>","DoIife → DO_IIFE Code","This → THIS","This → @","ThisProperty → @ Property","ThisProperty → @ STRING","Array → [ ]","Array → [ Elisions ]","Array → [ ArgElisionList OptElisions ]","ArgElisionList → ArgElision","ArgElisionList → ArgElisionList , ArgElision","ArgElisionList → ArgElisionList OptComma TERMINATOR ArgElision","ArgElisionList → INDENT ArgElisionList OptElisions OUTDENT","ArgElisionList → ArgElisionList OptElisions INDENT ArgElisionList OptElisions OUTDENT","ArgElision → Arg","ArgElision → Elisions Arg","OptElisions → OptComma","OptElisions → , Elisions","Elisions → Elision","Elisions → Elisions Elision","Elision → ,","Elision → Elision TERMINATOR","Object → { AssignList OptComma }","Object → MAP_START { AssignList OptComma }","AssignList → ε","AssignList → AssignObj","AssignList → AssignList , AssignObj","AssignList → AssignList OptComma TERMINATOR AssignObj","AssignList → AssignList OptComma INDENT AssignList OptComma OUTDENT","AssignObj → ObjAssignable","AssignObj → ObjRestValue","AssignObj → ObjAssignable : Expression","AssignObj → ObjAssignable : INDENT Expression OUTDENT","AssignObj → Regex : Expression","AssignObj → SimpleObjAssignable = Expression","AssignObj → SimpleObjAssignable = INDENT Expression OUTDENT","AssignObj → SimpleObjAssignable VOID_MARKER : Expression","AssignObj → SimpleObjAssignable VOID_MARKER : INDENT Expression OUTDENT","ObjRestValue → ... SimpleObjAssignable","ObjRestValue → ... ObjSpreadExpr","ObjSpreadExpr → SimpleObjAssignable","ObjSpreadExpr → Object","ObjSpreadExpr → Parenthetical","ObjSpreadExpr → Super","ObjSpreadExpr → This","ObjSpreadExpr → SUPER Arguments","ObjSpreadExpr → DYNAMIC_IMPORT Arguments","ObjSpreadExpr → SimpleObjAssignable Arguments","ObjSpreadExpr → ObjSpreadExpr Arguments","ObjSpreadExpr → ObjSpreadExpr . Property","ObjSpreadExpr → ObjSpreadExpr ?. Property","ObjSpreadExpr → ObjSpreadExpr INDEX_START Expression INDEX_END","ObjSpreadExpr → ObjSpreadExpr INDEX_START INDENT Expression OUTDENT INDEX_END","ObjSpreadExpr → ObjSpreadExpr DAMMIT","ObjSpreadExpr → ObjSpreadExpr MAYBE_DAMMIT Arguments","ObjSpreadExpr → ObjSpreadExpr MAYBE_DAMMIT","ObjSpreadExpr → ObjSpreadExpr PICK_START PickList OptComma PICK_END","ObjSpreadExpr → ObjSpreadExpr OPTPICK_START PickList OptComma PICK_END","ObjSpreadExpr → ObjSpreadExpr PICK_START INDENT PickList OptComma OUTDENT PICK_END","ObjSpreadExpr → ObjSpreadExpr OPTPICK_START INDENT PickList OptComma OUTDENT PICK_END","PickList → PickItem","PickList → PickList , PickItem","PickList → PickList OptComma TERMINATOR PickItem","PickList → PickList OptComma INDENT PickList OptComma OUTDENT","PickItem → PickKey","PickItem → PickKey : PickKey","PickItem → PickKey = Expression","PickItem → PickKey : PickKey = Expression","PickKey → Identifier","PickKey → Property","SimpleObjAssignable → Identifier","SimpleObjAssignable → Property","SimpleObjAssignable → ThisProperty","ObjAssignable → SimpleObjAssignable","ObjAssignable → Atom","ObjAssignable → [ Expression ]","ObjAssignable → @ [ Expression ]","RangeDots → ..","RangeDots → ...","Range → [ Expression RangeDots Expression ]","Slice → Expression RangeDots Expression","Slice → Expression RangeDots","Slice → RangeDots Expression","Slice → RangeDots","Def → DEF Identifier OptParams Block","Def → DEF Identifier OptParams TYPE Block","Def → DEF Identifier TYPE_PARAMS OptParams Block","Def → DEF Identifier TYPE_PARAMS OptParams TYPE Block","Def → DEF Identifier VOID_MARKER OptParams Block","Def → DEF Identifier VOID_MARKER OptParams TYPE Block","Def → DEF ThisProperty OptParams Block","Def → DEF ThisProperty OptParams TYPE Block","Def → DEF ThisProperty TYPE_PARAMS OptParams Block","Def → DEF ThisProperty TYPE_PARAMS OptParams TYPE Block","Def → DEF ThisProperty VOID_MARKER OptParams Block","Def → DEF ThisProperty VOID_MARKER OptParams TYPE Block","OptParams → ε","OptParams → CALL_START ParamList CALL_END","ParamList → ε","ParamList → Param","ParamList → ParamList , Param","ParamList → ParamList OptComma TERMINATOR Param","ParamList → ParamList OptComma INDENT ParamList OptComma OUTDENT","Param → TypedParamVar","Param → TypedParamVar = Expression","Param → ... TypedParamVar","Param → ...","TypedParamVar → ParamVar","TypedParamVar → ParamVar TYPE","TypedParamVar → ParamVar OPT_MARKER TYPE","TypedParamVar → ParamVar OPT_MARKER","ParamVar → Identifier","ParamVar → Array","ParamVar → Object","ParamVar → ThisProperty","Splat → ... Expression","ClassName → Identifier","Class → CLASS","Class → CLASS Block","Class → CLASS EXTENDS Expression","Class → CLASS EXTENDS Expression Block","Class → CLASS ClassName","Class → CLASS ClassName Block","Class → CLASS ClassName EXTENDS Expression","Class → CLASS ClassName EXTENDS Expression Block","Class → CLASS ThisProperty Block","Class → CLASS ThisProperty EXTENDS Expression Block","Enum → ENUM Identifier Block","Schema → SCHEMA SCHEMA_BODY","Component → COMPONENT ComponentBlock","Component → COMPONENT EXTENDS Expression ComponentBlock","ComponentBlock → INDENT ComponentBody OUTDENT","ComponentBody → ComponentLine","ComponentBody → ComponentBody TERMINATOR ComponentLine","ComponentBody → ComponentBody TERMINATOR","ComponentLine → Expression","ComponentLine → Statement","ComponentLine → OFFER Expression","ComponentLine → ACCEPT IDENTIFIER","ComponentLine → ACCEPT IDENTIFIER FROM ProviderPath","ProviderPath → IDENTIFIER","ProviderPath → ProviderPath . Property","Render → RENDER Block","Render → RENDER Expression","Super → SUPER . Property","Super → SUPER INDEX_START Expression INDEX_END","Super → SUPER INDEX_START INDENT Expression OUTDENT INDEX_END","Invocation → Value Arguments","Invocation → SUPER Arguments","Invocation → Value ES6_OPTIONAL_CALL Arguments","Invocation → Value ? Arguments","Invocation → Value MAYBE_DAMMIT Arguments","Invocation → Value MAYBE_DAMMIT","Invocation → DYNAMIC_IMPORT Arguments","Invocation → DYNAMIC_IMPORT DAMMIT Arguments","Arguments → CALL_START CALL_END","Arguments → CALL_START ArgList OptComma CALL_END","ArgList → Arg","ArgList → ArgList , Arg","ArgList → ArgList OptComma TERMINATOR Arg","ArgList → INDENT ArgList OptComma OUTDENT","ArgList → ArgList OptComma INDENT ArgList OptComma OUTDENT","Arg → Expression","Arg → Splat","OptComma → ε","OptComma → ,","Block → INDENT OUTDENT","Block → INDENT Body OUTDENT","Parenthetical → ( Body )","Parenthetical → ( INDENT Body OUTDENT )","Return → RETURN Expression","Return → RETURN INDENT Object OUTDENT","Return → RETURN","While → WHILE Expression Block","While → UNTIL Expression Block","While → WHILE Expression WHEN Expression Block","While → UNTIL Expression WHEN Expression Block","While → Expression WHILE Expression","While → Statement WHILE Expression","While → Expression UNTIL Expression","While → Statement UNTIL Expression","While → Expression WHILE Expression WHEN Expression","While → Statement WHILE Expression WHEN Expression","While → Expression UNTIL Expression WHEN Expression","While → Statement UNTIL Expression WHEN Expression","While → Loop","IfBlock → IF Expression Block","IfBlock → IF Expression Block IfElseTail","IfElseTail → ELSE IF Expression Block","IfElseTail → ELSE IF Expression Block IfElseTail","IfElseTail → ELSE Block","UnlessBlock → UNLESS Expression Block","UnlessBlock → UNLESS Expression Block ELSE Block","If → IfBlock","If → UnlessBlock","If → Statement POST_IF Expression","If → Expression POST_IF Expression","If → Statement POST_UNLESS Expression","If → Expression POST_UNLESS Expression","If → Expression POST_IF Expression ELSE INDENT Expression OUTDENT","If → Expression POST_IF Expression ELSE Expression","Try → TRY Block","Try → TRY Expression","Try → TRY Expression Catch","Try → TRY Statement","Try → TRY Statement Catch","Try → TRY Block Catch","Try → TRY Block Finalizer","Try → TRY Block Catch Finalizer","Try → TRY Expression Finalizer","Try → TRY Expression Catch Finalizer","Try → TRY Statement Finalizer","Try → TRY Statement Catch Finalizer","Finalizer → FINALLY Block","Finalizer → FINALLY Expression","Catch → CATCH CatchVar Block","Catch → CATCH Object Block","Catch → CATCH Array Block","Catch → CATCH Block","CatchVar → Identifier","CatchVar → Identifier TYPE","Throw → THROW Expression","Throw → THROW INDENT Object OUTDENT","Switch → SWITCH Expression INDENT Cases OUTDENT","Switch → SWITCH Expression INDENT Cases ELSE Block OUTDENT","Switch → SWITCH INDENT Cases OUTDENT","Switch → SWITCH INDENT Cases ELSE Block OUTDENT","Cases → When","Cases → Cases When","When → LEADING_WHEN SimpleArgs Block","When → LEADING_WHEN SimpleArgs Block TERMINATOR","SimpleArgs → Expression","SimpleArgs → SimpleArgs , Expression","For → FOR ForVariables FORIN Expression Block","For → FOR ForVariables FORIN Expression BY Expression Block","For → FOR ForVariables FORIN Expression WHEN Expression Block","For → FOR ForVariables FORIN Expression WHEN Expression BY Expression Block","For → FOR ForVariables FORIN Expression BY Expression WHEN Expression Block","For → FOR ForVariables FOROF Expression Block","For → FOR ForVariables FOROF Expression WHEN Expression Block","For → FOR OWN ForVariables FOROF Expression Block","For → FOR OWN ForVariables FOROF Expression WHEN Expression Block","For → FOR ForVariables FORAS Expression Block","For → FOR ForVariables FORAS Expression WHEN Expression Block","For → FOR AWAIT ForVariables FORAS Expression Block","For → FOR AWAIT ForVariables FORAS Expression WHEN Expression Block","For → FOR ForVariables FORASAWAIT Expression Block","For → FOR ForVariables FORASAWAIT Expression WHEN Expression Block","For → FOR Range Block","For → FOR Range BY Expression Block","For → Expression FOR ForVariables FORIN Expression","For → Expression FOR ForVariables FORIN Expression WHEN Expression","For → Expression FOR ForVariables FORIN Expression BY Expression","For → Expression FOR ForVariables FORIN Expression WHEN Expression BY Expression","For → Expression FOR ForVariables FORIN Expression BY Expression WHEN Expression","For → Expression FOR ForVariables FOROF Expression","For → Expression FOR ForVariables FOROF Expression WHEN Expression","For → Expression FOR OWN ForVariables FOROF Expression","For → Expression FOR OWN ForVariables FOROF Expression WHEN Expression","For → Expression FOR ForVariables FORAS Expression","For → Expression FOR ForVariables FORAS Expression WHEN Expression","For → Expression FOR AWAIT ForVariables FORAS Expression","For → Expression FOR AWAIT ForVariables FORAS Expression WHEN Expression","For → Expression FOR ForVariables FORASAWAIT Expression","For → Expression FOR ForVariables FORASAWAIT Expression WHEN Expression","ForValue → ParamVar","ForVariables → ForValue","ForVariables → ForValue , ForValue","Loop → LOOP Block","Loop → LOOP Expression Block","Operation → -- SimpleAssignable","Operation → ++ SimpleAssignable","Operation → SimpleAssignable --","Operation → SimpleAssignable ++","Operation → Value ?","Operation → Expression CAST","Operation → Expression SATISFIES","Operation → Expression TERNARY Expression : Expression","Operation → UNARY Expression","Operation → DO Expression","Operation → UNARY_MATH Expression","Operation → AWAIT Expression","Operation → AWAIT INDENT Object OUTDENT","Operation → YIELD","Operation → YIELD Expression","Operation → YIELD INDENT Object OUTDENT","Operation → YIELD FROM Expression","Operation → - Expression","Operation → + Expression","Operation → Expression ** Expression","Operation → Expression + Expression","Operation → Expression - Expression","Operation → Expression MATH Expression","Operation → Expression SHIFT Expression","Operation → Expression & Expression","Operation → Expression ^ Expression","Operation → Expression | Expression","Operation → Expression COMPARE Expression","Operation → Expression MATCH Expression","Operation → Expression RELATION Expression","Operation → Expression && Expression","Operation → Expression || Expression","Operation → Expression ?? Expression","Operation → Expression && Return","Operation → Expression || Return","Operation → Expression ?? Return","Operation → Expression && STATEMENT","Operation → Expression || STATEMENT","Operation → Expression ?? STATEMENT","Operation → Expression THEN Expression","Operation → Expression ELSE Expression","Operation → Expression THEN Return","Operation → Expression ELSE Return","Operation → Expression THEN STATEMENT","Operation → Expression ELSE STATEMENT"],ruleActions:(e,t,r,s)=>{let i=t,n=t.length-1;switch(e){case 1:return["program"];case 2:return["program",...i[n]];case 3:case 35:case 89:case 140:case 257:case 261:case 268:case 303:case 342:case 375:case 400:case 470:case 474:case 509:return[i[n]];case 4:case 36:case 90:case 269:case 304:case 343:case 376:case 401:{let a=i[n-2];return a.push(i[n]),a}break;case 5:case 142:case 180:case 264:case 340:case 377:return i[n-1];case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 40:case 42:case 44:case 94:case 97:case 99:case 100:case 101:case 102:case 103:case 104:case 105:case 106:case 107:case 108:case 109:case 110:case 111:case 112:case 113:case 114:case 115:case 116:case 117:case 118:case 119:case 120:case 121:case 122:case 123:case 124:case 125:case 126:case 128:case 130:case 131:case 134:case 135:case 136:case 138:case 145:case 146:case 148:case 149:case 175:case 176:case 177:case 178:case 179:case 181:case 182:case 183:case 205:case 206:case 228:case 229:case 230:case 231:case 232:case 237:case 238:case 242:case 243:case 252:case 273:case 283:case 284:case 285:case 286:case 287:case 311:case 312:case 313:case 314:case 315:case 316:case 317:case 346:case 350:case 354:case 355:case 356:case 357:case 359:case 378:case 379:case 383:case 405:case 406:case 407:case 408:case 428:case 433:case 436:case 437:case 456:case 462:case 508:return i[n];case 14:return["type-decl",i[n]];case 15:case 351:case 463:return["typed-var",i[n-1],i[n]];case 16:case 352:return["typed-var",i[n-2],i[n]];case 17:return["def-sig",i[n-2],i[n-1],i[n]];case 18:return["import",i[n]];case 19:case 20:case 31:case 32:return["import",i[n-2],i[n]];case 21:case 33:return["import","{}",i[n]];case 22:case 34:return["import",i[n-4],i[n]];case 23:return["import",i[n-4],i[n-2],i[n]];case 24:return["import",i[n-7],i[n-4],i[n]];case 25:return["import",[i[n-1],i[n]],i[n-2]];case 26:case 27:return["import",i[n-4],[i[n-1],i[n]],i[n-2]];case 28:return["import",i[n-6],[i[n-1],i[n]],i[n-2]];case 29:return["import",i[n-6],i[n-4],[i[n-1],i[n]],i[n-2]];case 30:return["import",i[n-9],i[n-6],[i[n-1],i[n]],i[n-2]];case 37:case 91:case 270:case 305:case 344:case 402:{let a=i[n-3];return a.push(i[n]),a}break;case 38:case 92:case 143:case 399:case 403:return i[n-2];case 39:case 93:case 271:case 306:case 345:case 404:{let a=i[n-5];return a.push(...i[n-2]),a}break;case 41:case 43:case 95:case 96:case 98:case 510:return[i[n-2],i[n]];case 45:return["*",i[n]];case 46:return["export","{}"];case 47:return["export",i[n-2]];case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:return["export",i[n]];case 56:return["export-default",i[n]];case 57:return["export-default",i[n-1]];case 58:return["export-all",i[n]];case 59:case 60:return["export-all",i[n],i[n-2]];case 61:return["export-from","{}",i[n]];case 62:case 63:return["export-from",i[n-4],i[n]];case 64:case 150:case 162:case 277:return["=",i[n-2],i[n]];case 65:case 67:case 70:case 151:case 153:case 156:case 163:case 164:return["=",i[n-3],i[n]];case 66:case 152:case 278:return["=",i[n-4],i[n-1]];case 68:case 154:case 157:case 159:return["=",i[n-4],i[n]];case 69:case 155:case 158:return["=",i[n-5],i[n-1]];case 71:case 169:return["void-assign",i[n-3],i[n]];case 72:case 170:return["void-assign",i[n-4],i[n]];case 73:case 171:return["void-assign",i[n-5],i[n-1]];case 74:case 172:return["void-readonly",i[n-3],i[n]];case 75:case 173:return["void-readonly",i[n-4],i[n]];case 76:case 174:return["void-readonly",i[n-5],i[n-1]];case 77:case 185:case 186:return["state",i[n-3],i[n]];case 78:case 187:return["state",i[n-4],i[n]];case 79:return["state",i[n-5],i[n-1]];case 80:case 82:case 189:case 190:return["computed",i[n-3],i[n]];case 81:case 191:return["computed",i[n-4],i[n]];case 83:case 199:case 200:return["readonly",i[n-3],i[n]];case 84:case 201:return["readonly",i[n-4],i[n]];case 85:return["readonly",i[n-5],i[n-1]];case 86:case 88:case 203:return["effect",i[n-3],i[n]];case 87:return["effect",i[n-4],i[n]];case 127:case 296:return["dammit!",i[n-1]];case 129:case 236:return["tagged-template",i[n-2],i[n]];case 132:return"undefined";case 133:return"null";case 137:return["symbol",i[n]];case 139:return["str",...i[n-1]];case 141:case 262:case 471:{let a=i[n-1];return a.push(i[n]),a}break;case 144:return"";case 147:return["here-regex",i[n],...i[n-1]];case 160:return["=",i[n-5],i[n]];case 161:return["=",i[n-6],i[n-1]];case 165:case 323:case 535:case 536:case 540:case 542:return[i[n-1],i[n-2],i[n]];case 166:return[i[n-3],i[n-4],i[n-1]];case 167:return[i[n-2],i[n-3],i[n]];case 168:return[".=",i[n-2],i[n]];case 184:return["state",i[n-2],i[n]];case 188:return["computed",i[n-2],i[n]];case 192:return["gate",i[n-2],i[n]];case 193:return["gate",i[n-3],i[n]];case 194:return["gate",i[n-4],i[n-2]];case 195:return["gate",i[n-5],i[n-2]];case 196:return["gate",i[n-6],i[n-4],...i[n-2]];case 197:return["gate",i[n-7],i[n-4],...i[n-2]];case 198:return["readonly",i[n-2],i[n]];case 202:return["effect",i[n-2],i[n]];case 204:return["effect",null,i[n]];case 207:case 220:case 221:case 233:case 292:case 384:return[".",i[n-2],i[n]];case 208:case 234:case 293:return["?.",i[n-2],i[n]];case 209:case 212:case 235:case 294:return["[]",i[n-3],i[n-1]];case 210:case 213:case 295:return["[]",i[n-5],i[n-2]];case 211:return["regex-index",i[n-5],i[n-3],i[n-1]];case 214:return["optindex",i[n-4],i[n-1]];case 215:return["optindex",i[n-6],i[n-2]];case 216:case 299:return[".{}",i[n-4],...i[n-2]];case 217:case 300:return["?.{}",i[n-4],...i[n-2]];case 218:case 301:return[".{}",i[n-6],...i[n-3]];case 219:case 302:return["?.{}",i[n-6],...i[n-3]];case 222:case 223:case 224:case 458:case 459:case 460:case 521:case 523:return[i[n-1],i[n]];case 225:return["await",["new",i[n-1]]];case 226:return["await",["new",[i[n-2],...i[n]]]];case 227:case 289:case 290:case 291:case 390:case 396:return[i[n-1],...i[n]];case 239:return[i[n-1],i[n-3],i[n]];case 240:return[i[n-1],i[n-4],i[n]];case 241:return[i[n-1],[],i[n]];case 244:case 522:return["do-iife",i[n]];case 245:case 246:return"this";case 247:case 248:return[".","this",i[n]];case 249:return["array"];case 250:return["array",...i[n-1]];case 251:return["array",...i[n-2],...i[n-1]];case 253:{let a=i[n-2];return a.push(...i[n]),a}break;case 254:{let a=i[n-3];return a.push(...i[n]),a}break;case 255:return[...i[n-2],...i[n-1]];case 256:{let a=i[n-5];return a.push(...i[n-4],...i[n-2],...i[n-1]),a}break;case 258:return[...i[n-1],i[n]];case 259:case 267:case 339:case 341:case 398:return[];case 260:return[...i[n]];case 263:return null;case 265:return["object",...i[n-2]];case 266:return["map",...i[n-2]];case 272:return[null,i[n],i[n]];case 274:case 276:return[":",i[n-2],i[n]];case 275:return[":",i[n-4],i[n-1]];case 279:return["void-pair",i[n-3],i[n]];case 280:return["void-pair",i[n-5],i[n-1]];case 281:case 282:case 358:return["...",i[n]];case 288:case 391:return["super",...i[n]];case 297:case 394:return["dammit?",i[n-2],...i[n]];case 298:case 395:return["dammit?",i[n-1]];case 307:return[i[n],i[n],null];case 308:return[i[n-2],i[n],null];case 309:return[i[n-2],i[n-2],i[n]];case 310:return[i[n-4],i[n-2],i[n]];case 318:return["dynamicKey",i[n-1]];case 319:return["[]","this",i[n-1]];case 320:return"..";case 321:return"...";case 322:return[i[n-2],i[n-3],i[n-1]];case 324:return[i[n],i[n-1],null];case 325:return[i[n-1],null,i[n]];case 326:return[i[n],null,null];case 327:case 333:return["def",i[n-2],i[n-1],i[n]];case 328:case 334:return["def",i[n-3],i[n-2],i[n]];case 329:case 335:return["def",i[n-3],i[n-1],i[n]];case 330:case 336:return["def",i[n-4],i[n-2],i[n]];case 331:case 337:return["void-def",i[n-3],i[n-1],i[n]];case 332:case 338:return["void-def",i[n-4],i[n-2],i[n]];case 347:return["default",i[n-2],i[n]];case 348:return["rest",i[n]];case 349:return["expansion"];case 353:return["typed-var",i[n-1],""];case 360:return["class",null,null];case 361:return["class",null,null,i[n]];case 362:return["class",null,i[n]];case 363:return["class",null,i[n-1],i[n]];case 364:return["class",i[n],null];case 365:case 368:return["class",i[n-1],null,i[n]];case 366:return["class",i[n-2],i[n]];case 367:case 369:return["class",i[n-3],i[n-1],i[n]];case 370:return["enum",i[n-1],i[n]];case 371:return["schema",i[n]];case 372:return["component",null,i[n]];case 373:return["component",i[n-1],i[n]];case 374:case 410:return["block",...i[n-1]];case 380:return["offer",i[n]];case 381:return["accept",i[n]];case 382:return["accept",i[n-2],i[n]];case 385:case 386:return["render",i[n]];case 387:return[".","super",i[n]];case 388:return["[]","super",i[n-1]];case 389:return["[]","super",i[n-2]];case 392:case 393:return["optcall",i[n-2],...i[n]];case 397:return["await",["import",...i[n]]];case 409:return["block"];case 411:return i[n-1].length===1?(Array.isArray(i[n-1][0])&&(i[n-1][0].parenthesized=!0),i[n-1][0]):["block",...i[n-1]];case 412:return i[n-2].length===1?(Array.isArray(i[n-2][0])&&(i[n-2][0].parenthesized=!0),i[n-2][0]):["block",...i[n-2]];case 413:return["return",i[n]];case 414:return["return",i[n-1]];case 415:return["return"];case 416:return["while",i[n-1],i[n]];case 417:return["while",["!",i[n-1]],i[n]];case 418:return["while",i[n-3],i[n-1],i[n]];case 419:return["while",["!",i[n-3]],i[n-1],i[n]];case 420:case 421:return["while",i[n],[i[n-2]]];case 422:case 423:return["while",["!",i[n]],[i[n-2]]];case 424:case 425:return["while",i[n-2],i[n],[i[n-4]]];case 426:case 427:return["while",["!",i[n-2]],i[n],[i[n-4]]];case 429:case 431:return["if",i[n-1],i[n]];case 430:case 432:return["if",i[n-2],i[n-1],i[n]];case 434:return["if",["!",i[n-1]],i[n]];case 435:return["if",["!",i[n-3]],i[n-2],i[n]];case 438:case 439:return["if",i[n],[i[n-2]]];case 440:case 441:return["if",["!",i[n]],[i[n-2]]];case 442:return["?:",i[n-4],i[n-6],i[n-1]];case 443:return["?:",i[n-2],i[n-4],i[n]];case 444:case 445:case 447:return["try",i[n]];case 446:case 448:case 449:case 450:case 452:case 454:return["try",i[n-1],i[n]];case 451:case 453:case 455:return["try",i[n-2],i[n-1],i[n]];case 457:return["block",i[n]];case 461:return[null,i[n]];case 464:return["throw",i[n]];case 465:return["throw",i[n-1]];case 466:return["switch",i[n-3],i[n-1],null];case 467:return["switch",i[n-5],i[n-3],i[n-1]];case 468:return["switch",null,i[n-1],null];case 469:return["switch",null,i[n-3],i[n-1]];case 472:return["when",i[n-1],i[n]];case 473:return["when",i[n-2],i[n-1]];case 475:return[...i[n-2],i[n]];case 476:return["for-in",i[n-3],i[n-1],null,null,i[n]];case 477:return["for-in",i[n-5],i[n-3],i[n-1],null,i[n]];case 478:return["for-in",i[n-5],i[n-3],null,i[n-1],i[n]];case 479:return["for-in",i[n-7],i[n-5],i[n-1],i[n-3],i[n]];case 480:return["for-in",i[n-7],i[n-5],i[n-3],i[n-1],i[n]];case 481:return["for-of",i[n-3],i[n-1],!1,null,i[n]];case 482:return["for-of",i[n-5],i[n-3],!1,i[n-1],i[n]];case 483:return["for-of",i[n-3],i[n-1],!0,null,i[n]];case 484:return["for-of",i[n-5],i[n-3],!0,i[n-1],i[n]];case 485:return["for-as",i[n-3],i[n-1],!1,null,i[n]];case 486:return["for-as",i[n-5],i[n-3],!1,i[n-1],i[n]];case 487:case 489:return["for-as",i[n-3],i[n-1],!0,null,i[n]];case 488:case 490:return["for-as",i[n-5],i[n-3],!0,i[n-1],i[n]];case 491:return["for-in",[],i[n-1],null,null,i[n]];case 492:return["for-in",[],i[n-3],i[n-1],null,i[n]];case 493:return["comprehension",i[n-4],[["for-in",i[n-2],i[n],null]],[]];case 494:return["comprehension",i[n-6],[["for-in",i[n-4],i[n-2],null]],[i[n]]];case 495:return["comprehension",i[n-6],[["for-in",i[n-4],i[n-2],i[n]]],[]];case 496:return["comprehension",i[n-8],[["for-in",i[n-6],i[n-4],i[n]]],[i[n-2]]];case 497:return["comprehension",i[n-8],[["for-in",i[n-6],i[n-4],i[n-2]]],[i[n]]];case 498:return["comprehension",i[n-4],[["for-of",i[n-2],i[n],!1]],[]];case 499:return["comprehension",i[n-6],[["for-of",i[n-4],i[n-2],!1]],[i[n]]];case 500:return["comprehension",i[n-5],[["for-of",i[n-2],i[n],!0]],[]];case 501:return["comprehension",i[n-7],[["for-of",i[n-4],i[n-2],!0]],[i[n]]];case 502:return["comprehension",i[n-4],[["for-as",i[n-2],i[n],!1,null]],[]];case 503:return["comprehension",i[n-6],[["for-as",i[n-4],i[n-2],!1,null]],[i[n]]];case 504:return["comprehension",i[n-5],[["for-as",i[n-2],i[n],!0,null]],[]];case 505:return["comprehension",i[n-7],[["for-as",i[n-4],i[n-2],!0,null]],[i[n]]];case 506:return["comprehension",i[n-4],[["for-as",i[n-2],i[n],!0,null]],[]];case 507:return["comprehension",i[n-6],[["for-as",i[n-4],i[n-2],!0,null]],[i[n]]];case 511:return["loop",i[n]];case 512:return["loop-n",i[n-1],i[n]];case 513:return["--",i[n],!1];case 514:return["++",i[n],!1];case 515:return["--",i[n-1],!0];case 516:return["++",i[n-1],!0];case 517:return["?",i[n-1]];case 518:return["cast",i[n-1],i[n]];case 519:return["satisfies",i[n-1],i[n]];case 520:return["?:",i[n-4],i[n-2],i[n]];case 524:return["await",i[n]];case 525:return["await",i[n-1]];case 526:return["yield"];case 527:return["yield",i[n]];case 528:return["yield",i[n-1]];case 529:return["yield-from",i[n]];case 530:return["-",i[n]];case 531:return["+",i[n]];case 532:return["**",i[n-2],i[n]];case 533:return["+",i[n-2],i[n]];case 534:return["-",i[n-2],i[n]];case 537:return["&",i[n-2],i[n]];case 538:return["^",i[n-2],i[n]];case 539:return["|",i[n-2],i[n]];case 541:return["=~",i[n-2],i[n]];case 543:case 546:case 549:case 552:case 554:case 556:return["&&",i[n-2],i[n]];case 544:case 547:case 550:case 553:case 555:case 557:return["||",i[n-2],i[n]];case 545:case 548:case 551:return["??",i[n-2],i[n]]}},parse(e,{primitives:t=!1,tolerant:r=!1}={}){let s,i,n,a,o,l,c,f,h,u,d,p,m,g,b,S,w,R,T,F,L,P,N,D,O,W,[H,G,k,v]=[[0],[null],[null],[[]]],j=this.parseTable,X=1,x=[],Z=[],U=24,r1=e.length;if(r)while(r1>0&&(e[r1-1]===` -`||e[r1-1]==="\r"))r1--;let Q=new Set,l1=!1,I=[],s1=[],e1=[],K=new WeakMap,a1=1,A=Object.create(this.lexer),V={ctx:{}},B=this.ctx;for(let M in B){if(!Object.hasOwn(B,M))continue;let n1=B[M];V.ctx[M]=n1}if(A.setInput(e,V.ctx),r&&Array.isArray(A.lexDiagnostics))x.push(...A.lexDiagnostics);[V.ctx.lexer,V.ctx.parser]=[A,this];let i1=()=>{let M=A.lex()||X;if(typeof M!=="number")M=this.symbolIds[M]||M;return M},f1=null,h1=null,u1={},p1=()=>{f=[];let M=j[W];for(let n1 in M){if(!Object.hasOwn(M,n1))continue;if(this.tokenNames[n1]&&+n1>2){if(!f.includes(this.tokenNames[n1]))f.push(this.tokenNames[n1])}}return f},c1=[this.symbolIds.INDENT,this.symbolIds.OUTDENT,this.symbolIds.TERMINATOR],d1=()=>{if(f1===X)return"end of input";let M=this.tokenNames[f1]||f1,n1=A.text,_=typeof n1==="string"&&n1.trim().length>0&&n1.length<=24&&!c1.includes(f1)&&!/^["'`]/.test(n1);if(_&&A.token?.generated)return`implicit '${n1}'`;return _?`'${n1}'`:`'${M}'`};while(!0){if(W=H[H.length-1],f1==null)if(Z.length>0)R=Z.shift(),f1=R.symbol,h1=R.loc,A.text=R.text,A.loc=R.loc,A.token=R.token;else f1=i1(),h1=f1===X?{start:e.length,end:e.length}:A.loc??null;if(s=j[W]?.[f1],s==null&&r&&U>0){a=f1===X?r1:h1?.start??r1,F=(M=null)=>{if(l1)return;if(l1=!0,u=d1(),f=M!=null?[this.tokenNames[M]||M]:p1(),b=`Unexpected ${u}`,f.length)b+=` — expected ${f.join(", ")}`;return x.push({message:b,start:a,end:h1?.end??a,expected:f,got:u})},i=f1===X||A.token?.generated,d=function(M){return`${H.length}:${W}:${M}`},p=null;for(let M of this.repairTable[W]??[]){if(Q.has(d(M)))continue;if(i||M===this.symbolIds.TERMINATOR){p=M;break}}if(p!=null)F(p),U--,Q.add(d(p)),Z.unshift({symbol:f1,loc:h1,text:A.text,token:A.token}),f1=p,h1={start:a,end:a},A.text="",A.loc=h1,A.token={generated:!0,hole:!0},s=j[W]?.[f1];else if(f1!==X){if(F(),U--,!A.token?.hole)Q.clear();f1=null;continue}}if(s==null){if(f=p1(),u=d1(),O=h1?.start??0,c=h1?.end??O,b=`Unexpected ${u}`,f.length)b+=` — expected ${f.join(", ")}`;return x.push({message:b,start:O,end:c,expected:f,got:u}),{sexpr:null,stores:null,diagnostics:x,trivia:A.trivia??null,tokens:A.tokens??null}}if(s>0){if(r&&!A.token?.hole)Q.clear();if(H.push(f1,s),G.push(A.text),k.push(A.loc??null),t)v.push(Array.isArray(A.text?.primitiveSpans)?A.text.primitiveSpans:A.loc!=null?[{value:A.text,sourceStart:A.loc.start,sourceEnd:A.loc.end}]:[]);f1=null}else if(s<0){if(this.ctx?.onReduce)this.ctx.onReduce(-s);if(g=this.ruleTable[-s*2+1],D=(()=>{if(g)return h=k[k.length-g],m=k[k.length-1],{start:h?.start??0,end:m?.end??(h?.end??0)};else return n=h1?.start??(k[k.length-1]?.end??0),{start:n,end:n}})(),u1.$=G[G.length-(g||1)],u1._$=D,T=this.ruleActions.call(u1,-s,G,k,V.ctx),T!=null)u1.$=T;if(o=G.length-g,l=[],t)for(let M of this.primitiveRefs[-s])l.push(...v[o+M-1]??[]);if(S=u1.$,Array.isArray(S)&&K.has(S)&&this.accumulators[-s])P=I[K.get(S)-1],P.sourceStart=D.start,P.sourceEnd=D.end;if(Array.isArray(S)&&!K.has(S))N=this.semantics[-s],o=G.length-g,L=(M,n1,_,z,q)=>{let t1,C,Y,o1,E1,y1,S1=[],_1=1/0,v1=-1/0;for(let g1 of z){t1=M;for(let m1 of g1.path)t1=t1[m1];if(!(Array.isArray(t1)&&!K.has(t1)))throw Error(`parse: nested annotation '${g1.role}' of rule ${-s} does not address a fresh array`);C=L(t1,g1.kind,g1.roles,g1.nested,null),S1.push(C),_1=Math.min(_1,I[C-1].sourceStart),v1=Math.max(v1,I[C-1].sourceEnd)}for(let g1 of _)if(g1.grammarRef!=null){if(E1=k[o+g1.grammarRef-1],E1==null)throw Error(`parse: missing loc for grammarRef ${g1.grammarRef} of rule ${-s} — lexer protocol violation`);_1=Math.min(_1,E1.start),v1=Math.max(v1,E1.end)}let R1=q??(_1===1/0?D:{start:_1,end:v1}),w1=a1++;K.set(M,w1),I.push({nodeId:w1,fileId:0,semanticKind:n1,ruleId:-s,sourceStart:R1.start,sourceEnd:R1.end});for(let g1 of _)if(g1.grammarRef!=null){if(o1=o+g1.grammarRef-1,E1=k[o1],y1={nodeId:w1,role:g1.name,grammarRef:g1.grammarRef,childSlot:g1.childSlot,sourceStart:E1.start,sourceEnd:E1.end,childNodeId:null,fileId:0},g1.spread)y1.spread=!0;else y1.childNodeId=K.get(G[o1])??null;s1.push(y1)}else s1.push({nodeId:w1,role:g1.name,grammarRef:null,childSlot:g1.childSlot,literal:g1.literal,fileId:0});for(let g1=0;g1{let t=Object.create(h3);return Object.defineProperty(t,"ctx",{value:{...e},enumerable:!1,writable:!0,configurable:!0}),t},vs=Os();var nr=Os,L4=vs.parse.bind(vs);var Is=()=>{throw Error("rip: filesystem access is unavailable in the browser")};class ar{constructor({nodes:e,roles:t,primitives:r=[],nodeIds:s=null}){this.nodes=e,this.roles=t,this.primitives=r,this.nodeIds=s,this.byId=new Map(e.map((i)=>[i.nodeId,i])),this.rolesByNode=new Map,this.primitivesByValue=new Map;for(let i of t){let n=this.rolesByNode.get(i.nodeId);if(!n)n={list:[],byName:new Map},this.rolesByNode.set(i.nodeId,n);n.list.push(i),n.byName.set(i.role,i)}for(let i of r){let n=this.primitivesByValue.get(i.value);if(!n)this.primitivesByValue.set(i.value,n=[]);n.push(i)}for(let i of this.primitivesByValue.values())i.sort((n,a)=>n.sourceStart-a.sourceStart)}idOf(e){return this.nodeIds?.get(e)??null}alias(e,t){let r=this.nodeIds?.get(t);if(r!=null)this.nodeIds.set(e,r);return e}node(e){return this.byId.get(e)??null}nodesByKind(e){return this.nodes.filter((t)=>t.semanticKind===e)}rolesOf(e){return this.rolesByNode.get(e)?.list??[]}role(e,t){return this.rolesByNode.get(e)?.byName.get(t)??null}primitiveSpans(e,t,r){return(this.primitivesByValue.get(e)??[]).filter((s)=>t<=s.sourceStart&&s.sourceEnd<=r)}selfSpan(e){let t=this.byId.get(e);return t?[t.sourceStart,t.sourceEnd]:null}}var sr=(e)=>{if(e.length===0)return null;let t=e[e.length>>1].start,r=[],s=[],i=[];for(let n of e){if(J.on)J.n++;if(n.end<=t)s.push(n);else if(n.start>t)i.push(n);else r.push(n)}return{center:t,byStart:r,byEnd:[...r].sort((n,a)=>a.end-n.end),left:sr(s),right:sr(i)}},u3=(e,t,r)=>{let s=e;while(s!==null){if(J.on)J.n++;if(tt)break;r.push(i)}s=s.left}else if(t>s.center){for(let i of s.byEnd){if(J.on)J.n++;if(i.end<=t)break;r.push(i)}s=s.right}else{for(let i of s.byStart){if(J.on)J.n++;r.push(i)}break}}return r},wi=new Set(["tsDirective","shorthandProp","identifier","literal"]);class Se{constructor(e){this.rows=e,this._genTree=null,this._srcTree=null,this._genCount=-1,this._srcCount=-1}_tree(e){let t=e==="generated";if((t?this._genCount:this._srcCount)!==this.rows.length){let r=[];if(this.rows.forEach((s,i)=>{if(J.on)J.n++;let n=t?s.generatedStart:s.sourceStart,a=t?s.generatedEnd:s.sourceEnd;if(n!=null&&ns.start-i.start||s.i-i.i),t)this._genTree=sr(r),this._genCount=this.rows.length;else this._srcTree=sr(r),this._srcCount=this.rows.length}return t?this._genTree:this._srcTree}_stab(e,t){let r=u3(this._tree(e),t,[]);return r.sort((s,i)=>s.width-i.width||s.i-i.i),r.map((s)=>this.rows[s.i])}of(e,t){return this.rows.filter((r)=>r.nodeId===e&&r.role===t).sort((r,s)=>r.generatedStart-s.generatedStart)}atGenerated(e){return this._stab("generated",e)}atSource(e){return this._stab("source",e)}static isDirect(e){return e.mappingKind==="exact"||e.mappingKind==="synthetic"}directAtGenerated(e){return this.atGenerated(e).find(Se.isDirect)??null}directAtSource(e){let t=this.atSource(e).filter(Se.isDirect);if(t.length===0)return null;let r=(i)=>i.sourceEnd-i.sourceStart;return t.filter((i)=>r(i)===r(t[0])).find((i)=>!wi.has(i.role))??t[0]}zeroWidthExactAtSource(e){if(this._zeroSrcCount!==this.rows.length){this._zeroSrc=new Map;for(let t of this.rows){if(t.mappingKind!=="exact"||t.sourceStart!==t.sourceEnd)continue;let r=this._zeroSrc.get(t.sourceStart);if(r===void 0||t.generatedStartn.mappingKind==="exact"||n.mappingKind==="cover"&&n.role==="$self"&&n.generatedStart!==n.generatedEnd,t=(n)=>n.mappingKind==="exact"?0:1,r=(n)=>n.generatedEnd-n.generatedStart,s=(n)=>n.sourceEnd-n.sourceStart,i=new Map;for(let n of this.rows){if(!e(n))continue;let a=i.get(n.generatedStart);if(!a||t(n)n.generatedStart-a.generatedStart)}}class Re{constructor(e,{source:t=null,primitives:r=!1}={}){this.stores=e,this.source=t,this.trackPrimitives=r,this.suppressClaims=!1,this.claimWithin=null,this.chunks=[],this.length=0,this.openMarks=0,this.rows=[],this.exactSourceSpans=new Set,this.markStack=[],this.exactRanges=new Map,this.tsRegions=[],this.tsDepth=0,this.echoSpans=[]}tsOnly(e){let t=this.length;if(this.tsDepth++,e(),this.tsDepth--,this.tsDepth===0&&this.length>t)this.tsRegions.push([t,this.length])}echo(e){let t=this.length;if(e(),this.length>t)this.echoSpans.push([t,this.length])}get currentMark(){return this.markStack[this.markStack.length-1]??null}get offset(){return this.length}get code(){if(this.openMarks>0)return this.chunks.join("");if(this.chunks.length!==1)this.chunks=[this.chunks.join("")],this.exactRanges.clear();return this.chunks[0]}emit(e){return this.chunks.push(e),this.length+=e.length,this}beginMark(e,t){let r,s,i=null;if(t==="$self"){let n=this.stores.node(e);r=n.sourceStart,s=n.sourceEnd}else{let n=this.stores.role(e,t);if("literal"in n)i="synthetic",r=s=this.stores.node(e).sourceStart;else r=n.sourceStart,s=n.sourceEnd}this.openMarks++,this.markStack.push({nodeId:e,role:t,sourceStart:r,sourceEnd:s,mappingKind:i,generatedStart:this.length,chunkStart:this.chunks.length})}endMark(){let e=this.markStack.pop();this.openMarks--;let{mappingKind:t}=e;if(t===null){if(t=this.matchesSource(e)?"exact":"cover",t==="cover"&&Re.NORMALIZED_ROLES.has(e.role))this.layoutTwinSegments(e)}if(this.rows.push({nodeId:e.nodeId,role:e.role,mappingKind:t,sourceStart:e.sourceStart,sourceEnd:e.sourceEnd,generatedStart:e.generatedStart,generatedEnd:this.length,fileId:0}),this.trackPrimitives&&t==="exact")this.exactSourceSpans.add(`${e.sourceStart}:${e.sourceEnd}`)}static NORMALIZED_ROLES=new Set(["annotation","returnType"]);layoutTwinSegments(e){if(this.source===null)return;let t=e.sourceEnd-e.sourceStart,r=this.length-e.generatedStart;if(t===0||r===0||t>256||r>256)return;let s=this.source.slice(e.sourceStart,e.sourceEnd),i=this.chunks.slice(e.chunkStart).join("");if(s.replace(/\s+/g," ")!==i.replace(/\s+/g," "))return;let n=0,a=0;while(n0)a=a.filter((p)=>!t.some(([m,g])=>p.sourceStart>=m&&p.sourceEnd<=g));if(a.length===0)return null;let o=r.primitiveClaims??(r.primitiveClaims=new Map),l=o.get(e);if(l===void 0)o.set(e,l=new Set);let c=a.filter((p)=>!l.has(p.sourceStart)),f=c.filter((p)=>!this.exactSourceSpans.has(`${p.sourceStart}:${p.sourceEnd}`)),h=f.length>0?f:c,u=h.filter((p)=>p.nodeId===r.nodeId),d=(u.length>0?u:h)[0];if(d===void 0){let p=[...l].pop();if(d=p===void 0?void 0:a.find((m)=>m.sourceStart===p),d===void 0){let m=a.filter((g)=>this.exactSourceSpans.has(`${g.sourceStart}:${g.sourceEnd}`));d=m[m.length-1]}if(d===void 0)return null}if(l.add(d.sourceStart),this.source!==null){let p=this.source.slice(d.sourceStart,d.sourceEnd);if(p!==e&&p.endsWith(e)&&!/[\w$]/.test(p[p.length-e.length-1]??""))return[d.sourceEnd-e.length,d.sourceEnd]}return[d.sourceStart,d.sourceEnd]}matchesSource(e){if(this.source===null)return!1;if(e.sourceStart<0||e.sourceEnd>this.source.length)throw Error(`builder: mark (nodeId ${e.nodeId}, role '${e.role}') has source span [${e.sourceStart}, ${e.sourceEnd}) outside the source text [0, ${this.source.length}) — store-protocol violation`);let t=this.length;if(t-e.generatedStart!==e.sourceEnd-e.sourceStart)return!1;let r=e.sourceStart-e.generatedStart,s=this.exactRanges.get(r),i=s!==void 0&&s.genEnd<=t,n=this.chunks.length,{generatedStart:a,chunkStart:o}=e;while(o=s.genStart&&a{throw Error("rip: schema type story is unavailable in the browser")},Ds=()=>!1;var d3={__proto__:null,maxlength:"maxLength",minlength:"minLength",readonly:"readOnly",tabindex:"tabIndex",colspan:"colSpan",rowspan:"rowSpan",contenteditable:"contentEditable",formaction:"formAction",formenctype:"formEnctype",formmethod:"formMethod",formnovalidate:"formNoValidate",formtarget:"formTarget",novalidate:"noValidate",crossorigin:"crossOrigin",usemap:"useMap",srclang:"srcLang",inputmode:"inputMode",cellpadding:"cellPadding",cellspacing:"cellSpacing",bgcolor:"bgColor",valign:"vAlign",nowrap:"noWrap",for:"htmlFor",datetime:"dateTime",ismap:"isMap",nomodule:"noModule",playsinline:"playsInline",dirname:"dirName",accesskey:"accessKey",enterkeyhint:"enterKeyHint",referrerpolicy:"referrerPolicy",fetchpriority:"fetchPriority",imagesrcset:"imageSrcset",imagesizes:"imageSizes",popovertargetaction:"popoverTargetAction",allowfullscreen:"allowFullscreen"},m3="type __RipClassValue = string | boolean | null | undefined | Record | __RipClassValue[];",p3="/** What a component projects through `slot`: the DOM its parent built for it — an element, a fragment, or a text node — or a value rendered as text. */\n"+"type __RipChildren = Node | string | number | boolean | null;",xs="(...args: (__RipClassValue | __RipClassValue[])[]) => string",g3=`type __RipAV = E extends Record ? V | string : F; -type __RipProp = E extends Record ? V : any;`,b3=["animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","columnCount","columns","flex","flexGrow","flexShrink","fontWeight","gridArea","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","lineHeight","opacity","order","orphans","scale","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","webkitLineClamp"],Ps=b3.map((e)=>`'${e}'`).join(" | "),Cs=(e)=>`{ [K in Exclude]?: K extends ${e} ? string | number : string | 0 } & { [k: \`--\${string}\`]: string | number }`,y3=`type __RipUnitless = ${Ps}; -`+"/** An inline style as an object: CSS property names, camelCased, plus `--custom` properties. Values are written as given — no unit is appended — so a number is admitted only where CSS reads one bare: the unitless properties, and 0 anywhere. */\n"+`type __RipCSSProperties = ${Cs("__RipUnitless")};`,K4=`(${Cs(Ps)})`,Ni="__RipCSSProperties | string",Ls="(el: object, value: __RipCSSProperties | string | null | undefined) => void",or="__RipClassValue | __RipClassValue[]",Ms=" [k: `data-${string}`]: string | number | boolean;\n [k: `aria-${string}`]: string | number | boolean;",Ai=(e)=>/^[A-Za-z_$][\w$]*$/.test(e)?e:`'${e}'`,lr=(e,t)=>`__RipAttrVals_${t?"svg_":""}${e}`,vi=(e,t)=>`__RipEl_${t?"svg_":""}${e}`,xe=(e,t)=>`${t?"SVGElementTagNameMap":"HTMLElementTagNameMap"}['${e}']`,ot=(e,t)=>typeof e==="string"&&(t?Ve.has(e):Bt.has(e));function js(e,t){let r=d3[e]??e,s=e==="class"?or:e==="style"?Ni:`__RipAV<${t}, '${r}'>`;return[` ${Ai(e)}: ${s};`]}function S3(){let e=[];for(let t of De)e.push(...js(t,"HTMLElement"));return`interface __RipGlobalAttrVals { +`||_==="\r"){u=c,f=!0,c+=_==="\r"?2:1;continue}if(_==="#"){if(T&&/[A-Za-z_]/.test(e[c+1]??"")){let Y=/^#([A-Za-z_][\w-]*)/.exec(e.slice(c)),o1=H();if(o1&&(o1.kind==="IDENTIFIER"||o1.kind==="PROPERTY")&&!d&&!o1.generated){o1.value+=Y[0],o1.end=c+Y[0].length,c+=Y[0].length;continue}if(o1&&(o1.kind==="TERMINATOR"||o1.kind==="INDENT"||o1.kind==="OUTDENT"||o1.kind==="RENDER")){O("IDENTIFIER",`div${Y[0]}`,c,c+Y[0].length),c+=Y[0].length;continue}}let P=c;while(P{let R1=c;while(e[R1]===" "||e[R1]==="\t")R1++;let w1=e[R1]??"";if(w1==="{"||w1==="*")return!0;if(!j1.test(w1))return!1;let g1=R1+1;while(g1{let R1=c;while(e[R1]===" "||e[R1]==="\t")R1++;return e[R1]==="{"})())O("EXPORT_TYPE",Y,P,c);else if(Y==="type"&&l[l.length-1]?.specifiers===!0&&(()=>{let R1=c;while(e[R1]===" "||e[R1]==="\t")R1++;if(!j1.test(e[R1]??""))return!1;let w1=R1+1;while(w1"}[P]??P,E1=o1!==P,y1=1,S1=c+3;while(S10){let g1=e[S1];if(g1==="\\"){S1+=2;continue}if(E1&&g1===P)y1++;if(g1===o1)y1--;if(y1>0)S1++}if(y1!==0)D(`unclosed %w${P} — never closed by '${o1}'`,c,c+3);O("[","[",c,c+3);let _1=/(?:\\\s|\S)+/g;_1.lastIndex=c+3;let v1,R1=!0,w1=c+3;while((v1=_1.exec(e))!==null&&v1.index=S1)break;_1.lastIndex=g1}O("]","]",S1,S1+1),c=S1+1;continue}}let z=e.slice(c,c+4);if(Ts[z]){O(Ts[z],z,c,c+4),c+=4;continue}let q=e.slice(c,c+3);if(q==="==="||q==="!=="){O("COMPARE",q.slice(0,2),c,c+3),c+=3;continue}if(ws[q]){O(ws[q],q,c,c+3),c+=3;continue}let t1=e.slice(c,c+2);if(t1==="?="&&e[c+2]!=="="){O("COMPOUND_ASSIGN","??=",c,c+2),c+=2;continue}if(t1==="*{"){O("MAP_START","*",c,c+1),c+=1;continue}if(_s[t1]){if(t1==="!="&&!d&&(H()?.kind==="IDENTIFIER"||H()?.kind==="PROPERTY"))N(`cannot use the '!' sigil in an assignment to '${H().value}' (write 'a != b' with a space for comparison)`,c);O(_s[t1],t1,c,c+2),c+=2;continue}if(_==="<"||_===">"){O("COMPARE",_,c,c+1),c++;continue}if(_==="*"||_==="/"||_==="%"){if(_==="*"&&w&&(H()?.kind==="IMPORT"||H()?.kind==="IMPORT_TYPE"||H()?.kind===","))O("IMPORT_ALL",_,c,c+1);else if(_==="*"&&H()?.kind==="EXPORT")O("EXPORT_ALL",_,c,c+1);else if(_==="*"&&H()?.kind==="YIELD"&&!p)O("FROM",_,c,c+1);else O("MATH",_,c,c+1);c++;continue}if(_==="!"||_==="~"){if(_==="!"&&!d&&(H()?.kind==="IDENTIFIER"||H()?.kind==="PROPERTY"||H()?.kind==="DYNAMIC_IMPORT")){O("DAMMIT","!",c,c+1),c++;continue}O("UNARY_MATH",_,c,c+1),c++;continue}if(_==="&"||_==="|"||_==="^"){O(_,_,c,c+1),c++;continue}if(_==="?"){if(!d){if(e[c+1]==="("||e[c+1]==="["){O("?.","?",c,c+1),c++;continue}let P=H();if(e[c+1]==="!"&&P&&!P.generated&&at.has(P.kind)){if(P.kind!=="IDENTIFIER"&&P.kind!=="PROPERTY")N("maybe dammit '?!' follows a name, as dammit does (`f?!`, `obj.method?!`) — bind the value to a name first",c,c+2);O("MAYBE_DAMMIT","?!",c,c+2),c+=2;continue}if(P&&!P.generated&&at.has(P.kind)){let o1=i[i.length-2]??null,E1=o1===null||o1.kind==="@"||o1.kind==="TERMINATOR"||o1.kind==="INDENT"||o1.kind==="OUTDENT";if((P.kind==="PROPERTY"||P.kind==="IDENTIFIER")&&E1&&/^[^\S\n]*(:=|~=|=!|=(?![=>!])|:(?![:=]))/.test(e.slice(c+1))){O("OPT_MARKER","?",c,c+1),c++;continue}O("?","?",c,c+1),c++;continue}let Y=i[i.length-2]??null;if(P&&(P.kind==="-"||P.kind==="+")&&!P.spaced&&(Y?.kind==="]"||Y?.kind==="INDEX_END")&&e[c+1]===":"){O("?","?",c,c+1),c++;continue}N("unspaced '?' needs a value before it (postfix existence) — write ' ? ' for a ternary",c)}h++,O("TERNARY","?",c,c+1),c++;continue}if(_==="@"){O("@","@",c,c+1),c++;continue}if(_==="("){let P=H();if(P&&!d&&P.kind==="?."){P.kind="ES6_OPTIONAL_CALL",e1("call",c),O("CALL_START","(",c,c+1),c++;continue}let Y=P&&!d&&!P.generated&&ir.has(P.kind);e1(Y?"call":"group",c),O(Y?"CALL_START":"(","(",c,c+1),c++;continue}if(_===")"){let P=c1();if(P?.kind!=="call"&&P?.kind!=="group")N("unmatched ')'",c);O(P.kind==="call"?"CALL_END":")",")",c,c+1),c++;continue}if(_==="["){let P=H();if(P&&!d&&P.kind==="?."){P.kind="ES6_OPTIONAL_INDEX",e1("index",c),O("INDEX_START","[",c,c+1),c++;continue}let Y=P&&!d&&!P.generated&&at.has(P.kind);e1(Y?"index":"array",c),O(Y?"INDEX_START":"[","[",c,c+1),c++;continue}if(_==="]"){let P=c1();if(P?.kind!=="index"&&P?.kind!=="array")N("unmatched ']'",c);O(P.kind==="index"?"INDEX_END":"]","]",c,c+1),c++;continue}if(_==="{"){let P=H();if(P!=null&&(P.kind==="."||P.kind==="?.")&&!d&&!P.newLine&&i.length>=2&&at.has(i[i.length-2].kind)&&i[i.length-2].kind!=="PICK_END")i.pop(),e1("object",c,{pick:!0,pickKeys:e[c+1]!==" "&&e[c+1]!=="\t"}),O(P.kind==="?."?"OPTPICK_START":"PICK_START","{",c,c+1);else{let o1=P!=null&&(P.kind==="IMPORT"||P.kind==="IMPORT_TYPE"||P.kind==="EXPORT"||P.kind==="EXPORT_TYPE"||w&&P.kind===",");e1("object",c,o1?{specifiers:!0}:{}),O("{","{",c,c+1)}c++;continue}if(_==="}"){let P=c1();if(P?.kind==="interp"){if(O("INTERPOLATION_END",")",c,c+1),c++,P.heregex)I(P.ctx);else r1(P.ctx);continue}if(P?.kind!=="object")N("unmatched '}'",c);O(P.pick?"PICK_END":"}","}",c,c+1),c++;continue}if(_===":"&&e[c+1]===":"){if(!A()&&!V()&&j1.test(e[c+2]??"")){let P=i[i.length-1];if(P?.kind==="?"&&P.end===c)P.kind="?.",P.value="?.",P.end=c+2,O("PROPERTY","prototype",c,c+2),O(".",".",c,c+2);else O(".",".",c,c+2),O("PROPERTY","prototype",c,c+2),O(".",".",c,c+2);c+=2;continue}N("type annotations use a single ':' (e.g. `x: number`), not '::'",c,c+2)}if(_===":"&&j1.test(e[c+1]??"")&&!A()&&!V()){let P=i[i.length-1];if(!(P!==void 0&&(P.kind==="PROPERTY"||P.kind===")"||P.kind==="]"||P.kind==="}"||P.kind==="CALL_END"||P.kind==="INDEX_END"||P.kind==="PARAM_END"||P.kind==="PICK_END"||P.kind==="STRING"||P.kind==="STRING_END"||P.kind==="NUMBER"||P.kind==="REGEX"||P.kind==="HEREGEX_END"||P.kind==="BOOL"||P.kind==="NULL"||P.kind==="UNDEFINED"||P.kind==="DAMMIT"||P.kind==="?"||P.kind==="MAYBE_DAMMIT"||P.kind==="OPT_MARKER"||P.kind==="THIS"||P.kind==="@"||P.kind==="SYMBOL"||h>0&&P.kind==="IDENTIFIER"))){let o1=s3(e,c+1);O("SYMBOL",e.slice(c+1,o1),c,o1),c=o1;continue}}if(_==="="||_==="+"||_==="-"||_==="."||_===","||_===";"||_===":"){if(_===":"&&h>0)h--;O(_===";"?"TERMINATOR":_,_,c,c+1),c++;continue}if(_==="`"&&(A()||V())){let P=f1(c);O("TYPE_TEMPLATE",e.slice(c,P),c,P),c=P;continue}N(`cannot tokenize '${_}'`,c)}if(l.length>0){if(!(r&&l.every((q)=>q.kind!=="interp"))){let q=l[0],t1={call:"(",group:"(",index:"[",array:"[",object:"{",interp:"#{"}[q.kind]??q.kind;D(`unclosed '${t1}' — never closed by end of input`,q.at,q.at+t1.length)}let z=e.length;while(z>0&&(e[z-1]===` +`||e[z-1]==="\r"))z--;while(l.length>0){let q=l[l.length-1],t1={call:"(",group:"(",index:"[",array:"[",object:"{"}[q.kind]??q.kind;a.push({message:`unclosed '${t1}' — never closed by end of input`,start:q.at,end:q.at+t1.length,expected:[],got:"end of input"});let P=q.kind==="call"?"CALL_END":q.kind==="group"?")":q.kind==="index"?"INDEX_END":q.kind==="array"?"]":q.pick?"PICK_END":"}";c1();let Y=i.length;while(Y>0&&(i[Y-1].kind==="OUTDENT"||i[Y-1].kind==="INDENT"||i[Y-1].kind==="TERMINATOR"))Y--;let o1=i[Y-1]?.kind,E1=q.kind==="call"&&o1==="CALL_START"||q.kind==="index"&&o1==="INDEX_START";if(o1===","||E1){let y1={id:L++,kind:"IDENTIFIER",value:"",start:z,end:z,spaced:!1,newLine:!1,generated:!0,origin:null};C.push(y1),i.splice(Y,0,y1)}W(P,z)}}let M=s1();while(o.length>1)o.pop(),W("OUTDENT",M);let n1=()=>L++;Zl(i),Ql(i),i3(i),Un(i,n1,e,N,r?(_)=>a.push({message:_.reason??String(_.message),start:_.start??0,end:_.end??_.start??0,expected:[],got:""}):null),tr(i,n1,e,N);for(let _ of i)if(_.kind==="RESERVED")N(`'${_.value}' is reserved and not supported yet`,_.start);return ss(i,n1,N),r3(i),Kt(i,n1),Ti(i),Yt(i,n1),zt(i,n1),t3(i),{tokens:i,trivia:s,source:n,lexDiagnostics:a}}function Ti(e){for(let t=0;t"&&o!=="=>"&&o!=="ELSE"&&o!=="TRY"&&o!=="FINALLY"){n=!1;break}}}if(oe.has(a))i++;else if(ae.has(a)){if(i--,i<0)break}}if(n)e[t].kind=r==="IF"?"POST_IF":"POST_UNLESS"}return e}function As(e="",{tolerant:t=!1}={}){return{setInput(r){let n=f3(r,e,{tolerant:t});this.tokens=n.tokens,this.trivia=n.trivia,this.source=n.source,this.lexDiagnostics=n.lexDiagnostics??[],this.index=0,this.text="",this.loc=null,this.token=null},lex(){let r=this.tokens[this.index];if(!r)return null;return this.index++,this.text=r.value,this.loc={start:r.start,end:r.end},this.token=r,r.kind}}}var u3={symbolIds:{$accept:0,$end:1,error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,Statement:8,Return:9,STATEMENT:10,Import:11,Export:12,TypeDecl:13,Enum:14,TYPE_DECL:15,Assignable:16,TYPE:17,OPT_MARKER:18,DEF:19,Identifier:20,OptParams:21,IMPORT:22,String:23,ImportDefaultSpecifier:24,FROM:25,ImportNamespaceSpecifier:26,"{":27,"}":28,ImportSpecifierList:29,OptComma:30,",":31,WITH:32,Object:33,IMPORT_TYPE:34,ImportSpecifier:35,INDENT:36,OUTDENT:37,AS:38,DEFAULT:39,IMPORT_ALL:40,EXPORT:41,ExportSpecifierList:42,Class:43,Def:44,ExportAssign:45,ReactiveAssign:46,ComputedAssign:47,Readonly:48,Effect:49,EXPORT_ALL:50,EXPORT_TYPE:51,"=":52,TYPE_PARAMS:53,VOID_MARKER:54,READONLY_ASSIGN:55,REACTIVE_ASSIGN:56,COMPUTED_ASSIGN:57,Block:58,EFFECT:59,ExportSpecifier:60,Value:61,Code:62,Operation:63,Assign:64,Gate:65,If:66,Try:67,For:68,Switch:69,While:70,Throw:71,Schema:72,Component:73,Render:74,Literal:75,Parenthetical:76,Range:77,Invocation:78,DoIife:79,This:80,Super:81,DAMMIT:82,NewValue:83,TEMPLATE_TAG:84,Atom:85,Regex:86,UNDEFINED:87,NULL:88,BOOL:89,NUMBER:90,SYMBOL:91,STRING:92,STRING_START:93,Interpolations:94,STRING_END:95,InterpolationChunk:96,INTERPOLATION_START:97,INTERPOLATION_END:98,REGEX:99,HEREGEX_START:100,HEREGEX_END:101,IDENTIFIER:102,Property:103,PROPERTY:104,SimpleAssignable:105,COMPOUND_ASSIGN:106,METHOD_ASSIGN:107,Array:108,Rhs:109,BlockRhs:110,GATE:111,CALL_START:112,CALL_END:113,ArgList:114,ThisProperty:115,Subjectable:116,".":117,"?.":118,INDEX_START:119,INDEX_END:120,Slice:121,ES6_OPTIONAL_INDEX:122,PICK_START:123,PickList:124,PICK_END:125,OPTPICK_START:126,IMPORT_META:127,NEW_TARGET:128,NEW:129,NewSpine:130,NewCall:131,Arguments:132,PARAM_START:133,ParamList:134,PARAM_END:135,ArrowKind:136,"->":137,"=>":138,DO_IIFE:139,THIS:140,"@":141,"[":142,"]":143,Elisions:144,ArgElisionList:145,OptElisions:146,ArgElision:147,Arg:148,Elision:149,AssignList:150,MAP_START:151,AssignObj:152,ObjAssignable:153,ObjRestValue:154,":":155,SimpleObjAssignable:156,"...":157,ObjSpreadExpr:158,SUPER:159,DYNAMIC_IMPORT:160,MAYBE_DAMMIT:161,PickItem:162,PickKey:163,RangeDots:164,"..":165,Param:166,TypedParamVar:167,ParamVar:168,Splat:169,ClassName:170,CLASS:171,EXTENDS:172,ENUM:173,SCHEMA:174,SCHEMA_BODY:175,COMPONENT:176,ComponentBlock:177,ComponentBody:178,ComponentLine:179,OFFER:180,ACCEPT:181,ProviderPath:182,RENDER:183,ES6_OPTIONAL_CALL:184,"?":185,"(":186,")":187,RETURN:188,WHILE:189,UNTIL:190,WHEN:191,Loop:192,IfBlock:193,IF:194,IfElseTail:195,ELSE:196,UnlessBlock:197,UNLESS:198,POST_IF:199,POST_UNLESS:200,TRY:201,Catch:202,Finalizer:203,FINALLY:204,CATCH:205,CatchVar:206,THROW:207,SWITCH:208,Cases:209,When:210,LEADING_WHEN:211,SimpleArgs:212,FOR:213,ForVariables:214,FORIN:215,BY:216,FOROF:217,OWN:218,FORAS:219,AWAIT:220,FORASAWAIT:221,ForValue:222,LOOP:223,"--":224,"++":225,CAST:226,SATISFIES:227,TERNARY:228,UNARY:229,DO:230,UNARY_MATH:231,YIELD:232,"-":233,"+":234,"**":235,MATH:236,SHIFT:237,"&":238,"^":239,"|":240,COMPARE:241,MATCH:242,RELATION:243,"&&":244,"||":245,"??":246,THEN:247},tokenNames:{2:"error",6:"newline",10:"break/continue/debugger",15:"type/interface",17:"a type annotation",18:"?",19:"def",22:"import",25:"from",27:"{",28:"}",31:",",32:"with",34:"type",36:"indent",37:"dedent",38:"as",39:"default",40:"*",41:"export",50:"*",51:"type",52:"=",53:"<…>",54:"!",55:"=!",56:":=",57:"~=",59:"~>",82:"!",84:"$",87:"undefined",88:"null",89:"true/false",90:"a number",91:"a :symbol",92:"a string",93:"a string",95:"the closing quote",97:"#{",98:"}",99:"a regex",100:"///",101:"///",102:"a name",104:"a property name",106:"a compound assignment",107:".=",111:"<~",112:"(",113:")",117:".",118:"?.",119:"[",120:"]",122:"?.[",123:".{",125:"}",126:"?.{",127:"import.meta",128:"new.target",129:"new",133:"(",135:")",137:"->",138:"=>",139:"do",140:"this",141:"@",142:"[",143:"]",151:"*{",155:":",157:"...",159:"super",160:"import(",161:"?!",165:"..",171:"class",172:"extends",173:"enum",174:"schema",175:"a schema body",176:"component",180:"offer",181:"accept",183:"render",184:"?.(",185:"?",186:"(",187:")",188:"return",189:"while",190:"until",191:"when",194:"if",196:"else",198:"unless",199:"if",200:"unless",201:"try",204:"finally",205:"catch",207:"throw",208:"switch",211:"when",213:"for",215:"in",216:"by",217:"of",218:"own",219:"as",220:"await",221:"as!",223:"loop",224:"--",225:"++",226:"as",227:"satisfies",228:"?",229:"not/typeof/delete",230:"do",231:"!/~",232:"yield",233:"-",234:"+",235:"**",236:"a math operator",237:"a shift operator",238:"&",239:"^",240:"|",241:"a comparison",242:"=~",243:"in/of/instanceof",244:"&&",245:"||",246:"??",247:"then"},semantics:{"1":{kind:"program",roles:[]},"2":{kind:"program",roles:[{name:"body",grammarRef:1,childSlot:1,spread:!0}]},"14":{kind:"typedecl",roles:[{name:"declaration",grammarRef:1,childSlot:1,spread:!1}]},"15":{kind:"typedvar",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:2,childSlot:2,spread:!1}]},"16":{kind:"typedvar",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:3,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"17":{kind:"defsig",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:3,childSlot:2,spread:!1},{name:"returnType",grammarRef:4,childSlot:3,spread:!1}]},"18":{kind:"import",roles:[{name:"source",grammarRef:2,childSlot:1,spread:!1}]},"19":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"source",grammarRef:4,childSlot:2,spread:!1}]},"20":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"source",grammarRef:4,childSlot:2,spread:!1}]},"21":{kind:"import",roles:[{name:"spec",grammarRef:null,childSlot:1,literal:"{}"},{name:"source",grammarRef:5,childSlot:2,spread:!1}]},"22":{kind:"import",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1},{name:"source",grammarRef:7,childSlot:2,spread:!1}]},"23":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"extra",grammarRef:4,childSlot:2,spread:!1},{name:"source",grammarRef:6,childSlot:3,spread:!1}]},"24":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"extra",grammarRef:5,childSlot:2,spread:!1},{name:"source",grammarRef:9,childSlot:3,spread:!1}]},"25":{kind:"import",roles:[{name:"source",grammarRef:2,childSlot:2,spread:!1}],nested:[{role:"attributes",path:[1],kind:"withattrs",roles:[{name:"keyword",grammarRef:3,childSlot:0,spread:!1},{name:"value",grammarRef:4,childSlot:1,spread:!1}],nested:[]}]},"26":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"source",grammarRef:4,childSlot:3,spread:!1}],nested:[{role:"attributes",path:[2],kind:"withattrs",roles:[{name:"keyword",grammarRef:5,childSlot:0,spread:!1},{name:"value",grammarRef:6,childSlot:1,spread:!1}],nested:[]}]},"27":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"source",grammarRef:4,childSlot:3,spread:!1}],nested:[{role:"attributes",path:[2],kind:"withattrs",roles:[{name:"keyword",grammarRef:5,childSlot:0,spread:!1},{name:"value",grammarRef:6,childSlot:1,spread:!1}],nested:[]}]},"28":{kind:"import",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1},{name:"source",grammarRef:7,childSlot:3,spread:!1}],nested:[{role:"attributes",path:[2],kind:"withattrs",roles:[{name:"keyword",grammarRef:8,childSlot:0,spread:!1},{name:"value",grammarRef:9,childSlot:1,spread:!1}],nested:[]}]},"29":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"extra",grammarRef:4,childSlot:2,spread:!1},{name:"source",grammarRef:6,childSlot:4,spread:!1}],nested:[{role:"attributes",path:[3],kind:"withattrs",roles:[{name:"keyword",grammarRef:7,childSlot:0,spread:!1},{name:"value",grammarRef:8,childSlot:1,spread:!1}],nested:[]}]},"30":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"extra",grammarRef:5,childSlot:2,spread:!1},{name:"source",grammarRef:9,childSlot:4,spread:!1}],nested:[{role:"attributes",path:[3],kind:"withattrs",roles:[{name:"keyword",grammarRef:10,childSlot:0,spread:!1},{name:"value",grammarRef:11,childSlot:1,spread:!1}],nested:[]}]},"31":{kind:"import",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1},{name:"source",grammarRef:5,childSlot:2,spread:!1},{name:"typeOnly",grammarRef:2,childSlot:null,spread:!1}]},"32":{kind:"import",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1},{name:"source",grammarRef:5,childSlot:2,spread:!1},{name:"typeOnly",grammarRef:2,childSlot:null,spread:!1}]},"33":{kind:"import",roles:[{name:"spec",grammarRef:null,childSlot:1,literal:"{}"},{name:"source",grammarRef:6,childSlot:2,spread:!1},{name:"typeOnly",grammarRef:2,childSlot:null,spread:!1}]},"34":{kind:"import",roles:[{name:"spec",grammarRef:4,childSlot:1,spread:!1},{name:"source",grammarRef:8,childSlot:2,spread:!1},{name:"typeOnly",grammarRef:2,childSlot:null,spread:!1}]},"41":{kind:"as",roles:[{name:"name",grammarRef:1,childSlot:0,spread:!1},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"43":{kind:"as",roles:[{name:"name",grammarRef:1,childSlot:0,spread:!1},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"45":{kind:"as",roles:[{name:"name",grammarRef:null,childSlot:0,literal:"*"},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"46":{kind:"export",roles:[{name:"spec",grammarRef:null,childSlot:1,literal:"{}"}]},"47":{kind:"export",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1}]},"48":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"49":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"50":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"51":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"52":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"53":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"54":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"55":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"56":{kind:"export",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1}]},"57":{kind:"export",roles:[{name:"spec",grammarRef:4,childSlot:1,spread:!1}]},"58":{kind:"export",roles:[{name:"source",grammarRef:4,childSlot:1,spread:!1}]},"59":{kind:"export",roles:[{name:"source",grammarRef:6,childSlot:1,spread:!1},{name:"alias",grammarRef:4,childSlot:2,spread:!1}]},"60":{kind:"export",roles:[{name:"source",grammarRef:6,childSlot:1,spread:!1},{name:"alias",grammarRef:4,childSlot:2,spread:!1}]},"61":{kind:"export",roles:[{name:"spec",grammarRef:null,childSlot:1,literal:"{}"},{name:"source",grammarRef:5,childSlot:2,spread:!1}]},"62":{kind:"export",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1},{name:"source",grammarRef:7,childSlot:2,spread:!1}]},"63":{kind:"export",roles:[{name:"spec",grammarRef:4,childSlot:1,spread:!1},{name:"source",grammarRef:8,childSlot:2,spread:!1},{name:"typeOnly",grammarRef:2,childSlot:null,spread:!1}]},"64":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"65":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"66":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"67":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"68":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"69":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"70":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"typeParams",grammarRef:2,childSlot:null,spread:!1}]},"71":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"72":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"73":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"74":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"75":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"76":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"77":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"78":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"79":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"80":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"81":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"82":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"83":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"84":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"85":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"86":{kind:"effect",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"87":{kind:"effect",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"88":{kind:"effect",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"95":{kind:"as",roles:[{name:"name",grammarRef:1,childSlot:0,spread:!1},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"96":{kind:"as",roles:[{name:"name",grammarRef:1,childSlot:0,spread:!1},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"98":{kind:"as",roles:[{name:"name",grammarRef:1,childSlot:0,spread:!1},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"127":{kind:"dammit",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"129":{kind:"tagged",roles:[{name:"tag",grammarRef:1,childSlot:1,spread:!1},{name:"str",grammarRef:3,childSlot:2,spread:!1}]},"137":{kind:"symbol",roles:[{name:"name",grammarRef:1,childSlot:1,spread:!1}]},"139":{kind:"str",roles:[{name:"parts",grammarRef:2,childSlot:1,spread:!0}]},"147":{kind:"heregex",roles:[{name:"flags",grammarRef:3,childSlot:1,spread:!1},{name:"parts",grammarRef:2,childSlot:2,spread:!0}]},"150":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"151":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"152":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"153":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"154":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"155":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"156":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"157":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"158":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"159":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1}]},"160":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:6,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1}]},"161":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:6,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1}]},"162":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"163":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"164":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"typeParams",grammarRef:2,childSlot:null,spread:!1}]},"165":{kind:"assign",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"166":{kind:"assign",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"167":{kind:"assign",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"168":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:".="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"169":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"170":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"171":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"172":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"173":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"174":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"184":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"185":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"186":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"187":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1},{name:"operator",grammarRef:4,childSlot:null,spread:!1}]},"188":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"189":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"190":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"191":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1},{name:"operator",grammarRef:4,childSlot:null,spread:!1}]},"192":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"193":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"194":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"195":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"196":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:3,childSlot:2,spread:!1},{name:"key",grammarRef:5,childSlot:3,spread:!0},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"197":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:4,childSlot:2,spread:!1},{name:"key",grammarRef:6,childSlot:3,spread:!0},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"198":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"199":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"200":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"201":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1},{name:"operator",grammarRef:4,childSlot:null,spread:!1}]},"202":{kind:"effect",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"203":{kind:"effect",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"204":{kind:"effect",roles:[{name:"target",grammarRef:null,childSlot:1,literal:null},{name:"value",grammarRef:2,childSlot:2,spread:!1},{name:"operator",grammarRef:1,childSlot:null,spread:!1}]},"207":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"208":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"209":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"210":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:4,childSlot:2,spread:!1}]},"211":{kind:"regexindex",roles:[{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:3,childSlot:2,spread:!1},{name:"capture",grammarRef:5,childSlot:3,spread:!1}]},"212":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"213":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:4,childSlot:2,spread:!1}]},"214":{kind:"optindex",roles:[{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:4,childSlot:2,spread:!1}]},"215":{kind:"optindex",roles:[{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:5,childSlot:2,spread:!1}]},"216":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:3,childSlot:2,spread:!0}]},"217":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:3,childSlot:2,spread:!0}]},"218":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:4,childSlot:2,spread:!0}]},"219":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:4,childSlot:2,spread:!0}]},"220":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"221":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"222":{kind:"unary",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"223":{kind:"unary",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"224":{kind:"unary",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"225":{kind:"await",roles:[{name:"operator",grammarRef:3,childSlot:null,spread:!1}],nested:[{role:"value",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"new"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}],nested:[]}]},"226":{kind:"await",roles:[{name:"operator",grammarRef:3,childSlot:null,spread:!1}],nested:[{role:"value",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"new"}],nested:[{role:"operand",path:[1],kind:"call",roles:[{name:"callee",grammarRef:2,childSlot:0,spread:!1},{name:"args",grammarRef:4,childSlot:1,spread:!0}],nested:[]}]}]},"227":{kind:"call",roles:[{name:"callee",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"233":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"234":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"235":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"236":{kind:"tagged",roles:[{name:"tag",grammarRef:1,childSlot:1,spread:!1},{name:"str",grammarRef:3,childSlot:2,spread:!1}]},"239":{kind:"func",roles:[{name:"kind",grammarRef:4,childSlot:0,spread:!1},{name:"params",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:5,childSlot:2,spread:!1}]},"240":{kind:"func",roles:[{name:"kind",grammarRef:5,childSlot:0,spread:!1},{name:"params",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:6,childSlot:2,spread:!1},{name:"returnType",grammarRef:4,childSlot:null,spread:!1}]},"241":{kind:"func",roles:[{name:"kind",grammarRef:1,childSlot:0,spread:!1},{name:"body",grammarRef:2,childSlot:2,spread:!1}]},"244":{kind:"doiife",roles:[{name:"func",grammarRef:2,childSlot:1,spread:!1}]},"247":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"property",grammarRef:2,childSlot:2,spread:!1}]},"248":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"property",grammarRef:2,childSlot:2,spread:!1}]},"249":{kind:"array",roles:[]},"250":{kind:"array",roles:[{name:"elisions",grammarRef:2,childSlot:1,spread:!0}]},"251":{kind:"array",roles:[{name:"items",grammarRef:2,childSlot:1,spread:!0},{name:"elisions",grammarRef:3,childSlot:null,spread:!0}]},"265":{kind:"object",roles:[{name:"pairs",grammarRef:2,childSlot:1,spread:!0}]},"266":{kind:"map",roles:[{name:"pairs",grammarRef:3,childSlot:1,spread:!0}]},"272":{kind:"pair",roles:[{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:1,childSlot:2,spread:!1}]},"274":{kind:"pair",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:":"},{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"275":{kind:"pair",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:":"},{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"276":{kind:"pair",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:":"},{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"277":{kind:"pair",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"278":{kind:"pair",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"279":{kind:"pair",roles:[{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"280":{kind:"pair",roles:[{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"281":{kind:"splat",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"282":{kind:"splat",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"288":{kind:"super",roles:[{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"289":{kind:"dynimport",roles:[{name:"keyword",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"290":{kind:"call",roles:[{name:"callee",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"291":{kind:"call",roles:[{name:"callee",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"292":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"293":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"294":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"295":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:4,childSlot:2,spread:!1}]},"296":{kind:"dammit",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"297":{kind:"maybe-dammit",roles:[{name:"callee",grammarRef:1,childSlot:1,spread:!1},{name:"args",grammarRef:3,childSlot:2,spread:!0},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"298":{kind:"maybe-dammit",roles:[{name:"callee",grammarRef:1,childSlot:1,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"299":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:3,childSlot:2,spread:!0}]},"300":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:3,childSlot:2,spread:!0}]},"301":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:4,childSlot:2,spread:!0}]},"302":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:4,childSlot:2,spread:!0}]},"307":{kind:"pickitem",roles:[{name:"key",grammarRef:1,childSlot:0,spread:!1},{name:"target",grammarRef:1,childSlot:1,spread:!1}]},"308":{kind:"pickitem",roles:[{name:"key",grammarRef:1,childSlot:0,spread:!1},{name:"target",grammarRef:3,childSlot:1,spread:!1}]},"309":{kind:"pickitem",roles:[{name:"key",grammarRef:1,childSlot:0,spread:!1},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"default",grammarRef:3,childSlot:2,spread:!1}]},"310":{kind:"pickitem",roles:[{name:"key",grammarRef:1,childSlot:0,spread:!1},{name:"target",grammarRef:3,childSlot:1,spread:!1},{name:"default",grammarRef:5,childSlot:2,spread:!1}]},"318":{kind:"dynamicKey",roles:[{name:"key",grammarRef:2,childSlot:1,spread:!1}]},"319":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:null,childSlot:1,literal:"this"},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"322":{kind:"range",roles:[{name:"operator",grammarRef:3,childSlot:0,spread:!1},{name:"from",grammarRef:2,childSlot:1,spread:!1},{name:"to",grammarRef:4,childSlot:2,spread:!1}]},"323":{kind:"range",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"from",grammarRef:1,childSlot:1,spread:!1},{name:"to",grammarRef:3,childSlot:2,spread:!1}]},"324":{kind:"range",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"from",grammarRef:1,childSlot:1,spread:!1},{name:"to",grammarRef:null,childSlot:2,literal:null}]},"325":{kind:"range",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"from",grammarRef:null,childSlot:1,literal:null},{name:"to",grammarRef:2,childSlot:2,spread:!1}]},"326":{kind:"range",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"from",grammarRef:null,childSlot:1,literal:null},{name:"to",grammarRef:null,childSlot:2,literal:null}]},"327":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:3,childSlot:2,spread:!1},{name:"body",grammarRef:4,childSlot:3,spread:!1}]},"328":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:3,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"returnType",grammarRef:4,childSlot:null,spread:!1}]},"329":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"typeParams",grammarRef:3,childSlot:null,spread:!1}]},"330":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:6,childSlot:3,spread:!1},{name:"typeParams",grammarRef:3,childSlot:null,spread:!1},{name:"returnType",grammarRef:5,childSlot:null,spread:!1}]},"331":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"voidMarker",grammarRef:3,childSlot:null,spread:!1}]},"332":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:6,childSlot:3,spread:!1},{name:"voidMarker",grammarRef:3,childSlot:null,spread:!1},{name:"returnType",grammarRef:5,childSlot:null,spread:!1}]},"333":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:3,childSlot:2,spread:!1},{name:"body",grammarRef:4,childSlot:3,spread:!1}]},"334":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:3,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"returnType",grammarRef:4,childSlot:null,spread:!1}]},"335":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"typeParams",grammarRef:3,childSlot:null,spread:!1}]},"336":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:6,childSlot:3,spread:!1},{name:"typeParams",grammarRef:3,childSlot:null,spread:!1},{name:"returnType",grammarRef:5,childSlot:null,spread:!1}]},"337":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"voidMarker",grammarRef:3,childSlot:null,spread:!1}]},"338":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:6,childSlot:3,spread:!1},{name:"voidMarker",grammarRef:3,childSlot:null,spread:!1},{name:"returnType",grammarRef:5,childSlot:null,spread:!1}]},"347":{kind:"default",roles:[{name:"name",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"348":{kind:"rest",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1}]},"349":{kind:"expansion",roles:[]},"351":{kind:"typedvar",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:2,childSlot:2,spread:!1}]},"352":{kind:"typedvar",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:3,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"353":{kind:"typedvar",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:null,childSlot:2,literal:""},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"358":{kind:"splat",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"360":{kind:"class",roles:[{name:"name",grammarRef:null,childSlot:1,literal:null},{name:"parent",grammarRef:null,childSlot:2,literal:null}]},"361":{kind:"class",roles:[{name:"name",grammarRef:null,childSlot:1,literal:null},{name:"parent",grammarRef:null,childSlot:2,literal:null},{name:"body",grammarRef:2,childSlot:3,spread:!1}]},"362":{kind:"class",roles:[{name:"name",grammarRef:null,childSlot:1,literal:null},{name:"parent",grammarRef:3,childSlot:2,spread:!1}]},"363":{kind:"class",roles:[{name:"name",grammarRef:null,childSlot:1,literal:null},{name:"parent",grammarRef:3,childSlot:2,spread:!1},{name:"body",grammarRef:4,childSlot:3,spread:!1}]},"364":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:null,childSlot:2,literal:null}]},"365":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:null,childSlot:2,literal:null},{name:"body",grammarRef:3,childSlot:3,spread:!1}]},"366":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:4,childSlot:2,spread:!1}]},"367":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1}]},"368":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:null,childSlot:2,literal:null},{name:"body",grammarRef:3,childSlot:3,spread:!1}]},"369":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1}]},"370":{kind:"enum",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:3,childSlot:2,spread:!1}]},"371":{kind:"schema",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"372":{kind:"component",roles:[{name:"parent",grammarRef:null,childSlot:1,literal:null},{name:"body",grammarRef:2,childSlot:2,spread:!1}]},"373":{kind:"component",roles:[{name:"parent",grammarRef:3,childSlot:1,spread:!1},{name:"body",grammarRef:4,childSlot:2,spread:!1}]},"374":{kind:"block",roles:[{name:"statements",grammarRef:2,childSlot:1,spread:!0}]},"380":{kind:"offer",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"381":{kind:"accept",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1}]},"382":{kind:"accept",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"provider",grammarRef:4,childSlot:2,spread:!1}]},"384":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"385":{kind:"render",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"386":{kind:"render",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"387":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:null,childSlot:1,literal:"super"},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"388":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:null,childSlot:1,literal:"super"},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"389":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:null,childSlot:1,literal:"super"},{name:"key",grammarRef:4,childSlot:2,spread:!1}]},"390":{kind:"call",roles:[{name:"callee",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"391":{kind:"super",roles:[{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"392":{kind:"optcall",roles:[{name:"callee",grammarRef:1,childSlot:1,spread:!1},{name:"args",grammarRef:3,childSlot:2,spread:!0}]},"393":{kind:"optcall",roles:[{name:"callee",grammarRef:1,childSlot:1,spread:!1},{name:"args",grammarRef:3,childSlot:2,spread:!0}]},"394":{kind:"maybe-dammit",roles:[{name:"callee",grammarRef:1,childSlot:1,spread:!1},{name:"args",grammarRef:3,childSlot:2,spread:!0},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"395":{kind:"maybe-dammit",roles:[{name:"callee",grammarRef:1,childSlot:1,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"396":{kind:"dynimport",roles:[{name:"keyword",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"397":{kind:"await",roles:[{name:"operator",grammarRef:2,childSlot:null,spread:!1}],nested:[{role:"value",path:[1],kind:"dynimport",roles:[{name:"keyword",grammarRef:null,childSlot:0,literal:"import"},{name:"args",grammarRef:3,childSlot:1,spread:!0}],nested:[]}]},"409":{kind:"block",roles:[]},"410":{kind:"block",roles:[{name:"statements",grammarRef:2,childSlot:1,spread:!0}]},"413":{kind:"return",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"414":{kind:"return",roles:[{name:"value",grammarRef:3,childSlot:1,spread:!1}]},"415":{kind:"return",roles:[]},"416":{kind:"while",roles:[{name:"condition",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:3,childSlot:2,spread:!1}]},"417":{kind:"while",roles:[{name:"body",grammarRef:3,childSlot:2,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}],nested:[]}]},"418":{kind:"while",roles:[{name:"condition",grammarRef:2,childSlot:1,spread:!1},{name:"guard",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1}]},"419":{kind:"while",roles:[{name:"guard",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}],nested:[]}]},"420":{kind:"while",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}]},"421":{kind:"while",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}]},"422":{kind:"while",roles:[{name:"body",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"423":{kind:"while",roles:[{name:"body",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"424":{kind:"while",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"guard",grammarRef:5,childSlot:2,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}]},"425":{kind:"while",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"guard",grammarRef:5,childSlot:2,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}]},"426":{kind:"while",roles:[{name:"guard",grammarRef:5,childSlot:2,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"427":{kind:"while",roles:[{name:"guard",grammarRef:5,childSlot:2,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"429":{kind:"if",roles:[{name:"condition",grammarRef:2,childSlot:1,spread:!1},{name:"then",grammarRef:3,childSlot:2,spread:!1}]},"430":{kind:"if",roles:[{name:"condition",grammarRef:2,childSlot:1,spread:!1},{name:"then",grammarRef:3,childSlot:2,spread:!1},{name:"else",grammarRef:4,childSlot:3,spread:!1}]},"431":{kind:"if",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:4,childSlot:2,spread:!1}]},"432":{kind:"if",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:4,childSlot:2,spread:!1},{name:"else",grammarRef:5,childSlot:3,spread:!1}]},"434":{kind:"if",roles:[{name:"then",grammarRef:3,childSlot:2,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}],nested:[]}]},"435":{kind:"if",roles:[{name:"then",grammarRef:3,childSlot:2,spread:!1},{name:"else",grammarRef:5,childSlot:3,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}],nested:[]}]},"438":{kind:"if",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:1,childSlot:null,spread:!1}]},"439":{kind:"if",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:1,childSlot:null,spread:!1}]},"440":{kind:"if",roles:[{name:"then",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"441":{kind:"if",roles:[{name:"then",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"442":{kind:"ternary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?:"},{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:1,childSlot:2,spread:!1},{name:"else",grammarRef:6,childSlot:3,spread:!1}]},"443":{kind:"ternary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?:"},{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:1,childSlot:2,spread:!1},{name:"else",grammarRef:5,childSlot:3,spread:!1}]},"444":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"445":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"446":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1}]},"447":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"448":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1}]},"449":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1}]},"450":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"finalizer",grammarRef:3,childSlot:2,spread:!1}]},"451":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1},{name:"finalizer",grammarRef:4,childSlot:3,spread:!1}]},"452":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"finalizer",grammarRef:3,childSlot:2,spread:!1}]},"453":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1},{name:"finalizer",grammarRef:4,childSlot:3,spread:!1}]},"454":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"finalizer",grammarRef:3,childSlot:2,spread:!1}]},"455":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1},{name:"finalizer",grammarRef:4,childSlot:3,spread:!1}]},"457":{kind:"block",roles:[{name:"statements",grammarRef:2,childSlot:1,spread:!1}]},"458":{kind:"catch",roles:[{name:"binding",grammarRef:2,childSlot:0,spread:!1},{name:"body",grammarRef:3,childSlot:1,spread:!1}]},"459":{kind:"catch",roles:[{name:"binding",grammarRef:2,childSlot:0,spread:!1},{name:"body",grammarRef:3,childSlot:1,spread:!1}]},"460":{kind:"catch",roles:[{name:"binding",grammarRef:2,childSlot:0,spread:!1},{name:"body",grammarRef:3,childSlot:1,spread:!1}]},"461":{kind:"catch",roles:[{name:"binding",grammarRef:null,childSlot:0,literal:null},{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"463":{kind:"typedvar",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:2,childSlot:2,spread:!1}]},"464":{kind:"throw",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"465":{kind:"throw",roles:[{name:"value",grammarRef:3,childSlot:1,spread:!1}]},"466":{kind:"switch",roles:[{name:"subject",grammarRef:2,childSlot:1,spread:!1},{name:"cases",grammarRef:4,childSlot:2,spread:!1},{name:"default",grammarRef:null,childSlot:3,literal:null}]},"467":{kind:"switch",roles:[{name:"subject",grammarRef:2,childSlot:1,spread:!1},{name:"cases",grammarRef:4,childSlot:2,spread:!1},{name:"default",grammarRef:6,childSlot:3,spread:!1}]},"468":{kind:"switch",roles:[{name:"subject",grammarRef:null,childSlot:1,literal:null},{name:"cases",grammarRef:3,childSlot:2,spread:!1},{name:"default",grammarRef:null,childSlot:3,literal:null}]},"469":{kind:"switch",roles:[{name:"subject",grammarRef:null,childSlot:1,literal:null},{name:"cases",grammarRef:3,childSlot:2,spread:!1},{name:"default",grammarRef:5,childSlot:3,spread:!1}]},"472":{kind:"when",roles:[{name:"conditions",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:3,childSlot:2,spread:!1}]},"473":{kind:"when",roles:[{name:"conditions",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:3,childSlot:2,spread:!1}]},"476":{kind:"forin",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"step",grammarRef:null,childSlot:3,literal:null},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:5,childSlot:5,spread:!1}]},"477":{kind:"forin",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"step",grammarRef:6,childSlot:3,spread:!1},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:7,childSlot:5,spread:!1}]},"478":{kind:"forin",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"step",grammarRef:null,childSlot:3,literal:null},{name:"guard",grammarRef:6,childSlot:4,spread:!1},{name:"body",grammarRef:7,childSlot:5,spread:!1}]},"479":{kind:"forin",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"step",grammarRef:8,childSlot:3,spread:!1},{name:"guard",grammarRef:6,childSlot:4,spread:!1},{name:"body",grammarRef:9,childSlot:5,spread:!1}]},"480":{kind:"forin",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"step",grammarRef:6,childSlot:3,spread:!1},{name:"guard",grammarRef:8,childSlot:4,spread:!1},{name:"body",grammarRef:9,childSlot:5,spread:!1}]},"481":{kind:"forof",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"object",grammarRef:4,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!1},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:5,childSlot:5,spread:!1}]},"482":{kind:"forof",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"object",grammarRef:4,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!1},{name:"guard",grammarRef:6,childSlot:4,spread:!1},{name:"body",grammarRef:7,childSlot:5,spread:!1}]},"483":{kind:"forof",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"object",grammarRef:5,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:6,childSlot:5,spread:!1}]},"484":{kind:"forof",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"object",grammarRef:5,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:7,childSlot:4,spread:!1},{name:"body",grammarRef:8,childSlot:5,spread:!1}]},"485":{kind:"foras",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!1},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:5,childSlot:5,spread:!1}]},"486":{kind:"foras",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!1},{name:"guard",grammarRef:6,childSlot:4,spread:!1},{name:"body",grammarRef:7,childSlot:5,spread:!1}]},"487":{kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:6,childSlot:5,spread:!1}]},"488":{kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:7,childSlot:4,spread:!1},{name:"body",grammarRef:8,childSlot:5,spread:!1}]},"489":{kind:"foras",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:5,childSlot:5,spread:!1}]},"490":{kind:"foras",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:6,childSlot:4,spread:!1},{name:"body",grammarRef:7,childSlot:5,spread:!1}]},"491":{kind:"forin",roles:[{name:"iterable",grammarRef:2,childSlot:2,spread:!1},{name:"step",grammarRef:null,childSlot:3,literal:null},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:3,childSlot:5,spread:!1}]},"492":{kind:"forin",roles:[{name:"iterable",grammarRef:2,childSlot:2,spread:!1},{name:"step",grammarRef:4,childSlot:3,spread:!1},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:5,childSlot:5,spread:!1}]},"493":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forin",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"step",grammarRef:null,childSlot:3,literal:null}],nested:[]}]},"494":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:7,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forin",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"step",grammarRef:null,childSlot:3,literal:null}],nested:[]}]},"495":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forin",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"step",grammarRef:7,childSlot:3,spread:!1}],nested:[]}]},"496":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:7,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forin",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"step",grammarRef:9,childSlot:3,spread:!1}],nested:[]}]},"497":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:9,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forin",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"step",grammarRef:7,childSlot:3,spread:!1}],nested:[]}]},"498":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forof",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"object",grammarRef:5,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!1}],nested:[]}]},"499":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:7,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forof",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"object",grammarRef:5,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!1}],nested:[]}]},"500":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forof",roles:[{name:"vars",grammarRef:4,childSlot:1,spread:!1},{name:"object",grammarRef:6,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"501":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:8,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forof",roles:[{name:"vars",grammarRef:4,childSlot:1,spread:!1},{name:"object",grammarRef:6,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"502":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!1}],nested:[]}]},"503":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:7,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!1}],nested:[]}]},"504":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:4,childSlot:1,spread:!1},{name:"iterable",grammarRef:6,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"505":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:8,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:4,childSlot:1,spread:!1},{name:"iterable",grammarRef:6,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"506":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"507":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:7,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"511":{kind:"loop",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"512":{kind:"loop",roles:[{name:"count",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:3,childSlot:2,spread:!1}]},"513":{kind:"update",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"--"},{name:"target",grammarRef:2,childSlot:1,spread:!1},{name:"prefix",grammarRef:null,childSlot:2,literal:!1}]},"514":{kind:"update",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"++"},{name:"target",grammarRef:2,childSlot:1,spread:!1},{name:"prefix",grammarRef:null,childSlot:2,literal:!1}]},"515":{kind:"update",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"--"},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"prefix",grammarRef:null,childSlot:2,literal:!0}]},"516":{kind:"update",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"++"},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"prefix",grammarRef:null,childSlot:2,literal:!0}]},"517":{kind:"existence",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?"},{name:"value",grammarRef:1,childSlot:1,spread:!1}]},"518":{kind:"cast",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:2,childSlot:2,spread:!1}]},"519":{kind:"satisfies",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:2,childSlot:2,spread:!1}]},"520":{kind:"ternary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?:"},{name:"condition",grammarRef:1,childSlot:1,spread:!1},{name:"then",grammarRef:3,childSlot:2,spread:!1},{name:"else",grammarRef:5,childSlot:3,spread:!1}]},"521":{kind:"unary",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"522":{kind:"doiife",roles:[{name:"func",grammarRef:2,childSlot:1,spread:!1}]},"523":{kind:"unary",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"524":{kind:"await",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1},{name:"operator",grammarRef:1,childSlot:null,spread:!1}]},"525":{kind:"await",roles:[{name:"value",grammarRef:3,childSlot:1,spread:!1},{name:"operator",grammarRef:1,childSlot:null,spread:!1}]},"526":{kind:"yield",roles:[]},"527":{kind:"yield",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"528":{kind:"yield",roles:[{name:"value",grammarRef:3,childSlot:1,spread:!1}]},"529":{kind:"yieldfrom",roles:[{name:"value",grammarRef:3,childSlot:1,spread:!1}]},"530":{kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"-"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"531":{kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"+"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"532":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"**"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"533":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"+"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"534":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"-"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"535":{kind:"binary",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"536":{kind:"binary",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"537":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"538":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"^"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"539":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"|"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"540":{kind:"binary",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"541":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"=~"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"542":{kind:"relation",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"543":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"544":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"545":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"??"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"546":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"547":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"548":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"??"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"549":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"550":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"551":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"??"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"552":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"553":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"554":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"555":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"556":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"557":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]}},primitiveRefs:{"1":[],"2":[1],"3":[1],"4":[1,3],"5":[1],"6":[1],"7":[1],"8":[1],"9":[1],"10":[1],"11":[1],"12":[1],"13":[1],"14":[1],"15":[1,2],"16":[1,3],"17":[2,3,4],"18":[2],"19":[2,4],"20":[2,4],"21":[5],"22":[3,7],"23":[2,4,6],"24":[2,5,9],"25":[3,4,2],"26":[2,5,6,4],"27":[2,5,6,4],"28":[3,8,9,7],"29":[2,4,7,8,6],"30":[2,5,10,11,9],"31":[3,5],"32":[3,5],"33":[6],"34":[4,8],"35":[1],"36":[1,3],"37":[1,4],"38":[2],"39":[1,4],"40":[1],"41":[1,3],"42":[1],"43":[1,3],"44":[1],"45":[3],"46":[],"47":[3],"48":[2],"49":[2],"50":[2],"51":[2],"52":[2],"53":[2],"54":[2],"55":[2],"56":[3],"57":[4],"58":[4],"59":[6,4],"60":[6,4],"61":[5],"62":[3,7],"63":[4,8],"64":[1,3],"65":[1,4],"66":[1,4],"67":[1,4],"68":[1,5],"69":[1,5],"70":[1,4],"71":[1,4],"72":[1,5],"73":[1,5],"74":[1,4],"75":[1,5],"76":[1,5],"77":[1,4],"78":[1,5],"79":[1,5],"80":[1,4],"81":[1,5],"82":[1,4],"83":[1,4],"84":[1,5],"85":[1,5],"86":[1,4],"87":[1,5],"88":[1,4],"89":[1],"90":[1,3],"91":[1,4],"92":[2],"93":[1,4],"94":[1],"95":[1,3],"96":[1,3],"97":[1],"98":[1,3],"99":[1],"100":[1],"101":[1],"102":[1],"103":[1],"104":[1],"105":[1],"106":[1],"107":[1],"108":[1],"109":[1],"110":[1],"111":[1],"112":[1],"113":[1],"114":[1],"115":[1],"116":[1],"117":[1],"118":[1],"119":[1],"120":[1],"121":[1],"122":[1],"123":[1],"124":[1],"125":[1],"126":[1],"127":[1],"128":[1],"129":[1,3],"130":[1],"131":[1],"132":[],"133":[],"134":[1],"135":[1],"136":[1],"137":[1],"138":[1],"139":[2],"140":[1],"141":[1,2],"142":[2],"143":[3],"144":[],"145":[1],"146":[1],"147":[3,2],"148":[1],"149":[1],"150":[1,3],"151":[1,4],"152":[1,4],"153":[1,4],"154":[1,5],"155":[1,5],"156":[1,4],"157":[1,5],"158":[1,5],"159":[1,5],"160":[1,6],"161":[1,6],"162":[1,3],"163":[1,4],"164":[1,4],"165":[2,1,3],"166":[2,1,4],"167":[2,1,4],"168":[1,3],"169":[1,4],"170":[1,5],"171":[1,5],"172":[1,4],"173":[1,5],"174":[1,5],"175":[1],"176":[1],"177":[1],"178":[1],"179":[2],"180":[2],"181":[1],"182":[2],"183":[1],"184":[1,3],"185":[1,4],"186":[1,4],"187":[1,5],"188":[1,3],"189":[1,4],"190":[1,4],"191":[1,5],"192":[1,3],"193":[1,4],"194":[1,3],"195":[1,4],"196":[1,3,5],"197":[1,4,6],"198":[1,3],"199":[1,4],"200":[1,4],"201":[1,5],"202":[1,3],"203":[1,4],"204":[2],"205":[1],"206":[1],"207":[1,3],"208":[1,3],"209":[1,3],"210":[1,4],"211":[1,3,5],"212":[1,3],"213":[1,4],"214":[1,4],"215":[1,5],"216":[1,3],"217":[1,3],"218":[1,4],"219":[1,4],"220":[1,3],"221":[1,3],"222":[1,2],"223":[1,2],"224":[1,2],"225":[2],"226":[2,4],"227":[1,2],"228":[1],"229":[1],"230":[1],"231":[1],"232":[1],"233":[1,3],"234":[1,3],"235":[1,3],"236":[1,3],"237":[1],"238":[1],"239":[4,2,5],"240":[5,2,6],"241":[1,2],"242":[1],"243":[1],"244":[2],"245":[],"246":[],"247":[2],"248":[2],"249":[],"250":[2],"251":[2,3],"252":[1],"253":[1,3],"254":[1,4],"255":[2,3],"256":[1,2,4,5],"257":[1],"258":[1,2],"259":[],"260":[2],"261":[1],"262":[1,2],"263":[],"264":[1],"265":[2],"266":[3],"267":[],"268":[1],"269":[1,3],"270":[1,4],"271":[1,4],"272":[1,1],"273":[1],"274":[1,3],"275":[1,4],"276":[1,3],"277":[1,3],"278":[1,4],"279":[1,4],"280":[1,5],"281":[2],"282":[2],"283":[1],"284":[1],"285":[1],"286":[1],"287":[1],"288":[2],"289":[1,2],"290":[1,2],"291":[1,2],"292":[1,3],"293":[1,3],"294":[1,3],"295":[1,4],"296":[1],"297":[1,3],"298":[1],"299":[1,3],"300":[1,3],"301":[1,4],"302":[1,4],"303":[1],"304":[1,3],"305":[1,4],"306":[1,4],"307":[1,1],"308":[1,3],"309":[1,1,3],"310":[1,3,5],"311":[1],"312":[1],"313":[1],"314":[1],"315":[1],"316":[1],"317":[1],"318":[2],"319":[3],"320":[],"321":[],"322":[3,2,4],"323":[2,1,3],"324":[2,1],"325":[1,2],"326":[1],"327":[2,3,4],"328":[2,3,5],"329":[2,4,5],"330":[2,4,6],"331":[2,4,5],"332":[2,4,6],"333":[2,3,4],"334":[2,3,5],"335":[2,4,5],"336":[2,4,6],"337":[2,4,5],"338":[2,4,6],"339":[],"340":[2],"341":[],"342":[1],"343":[1,3],"344":[1,4],"345":[1,4],"346":[1],"347":[1,3],"348":[2],"349":[],"350":[1],"351":[1,2],"352":[1,3],"353":[1],"354":[1],"355":[1],"356":[1],"357":[1],"358":[2],"359":[1],"360":[],"361":[2],"362":[3],"363":[3,4],"364":[2],"365":[2,3],"366":[2,4],"367":[2,4,5],"368":[2,3],"369":[2,4,5],"370":[2,3],"371":[2],"372":[2],"373":[3,4],"374":[2],"375":[1],"376":[1,3],"377":[1],"378":[1],"379":[1],"380":[2],"381":[2],"382":[2,4],"383":[1],"384":[1,3],"385":[2],"386":[2],"387":[3],"388":[3],"389":[4],"390":[1,2],"391":[2],"392":[1,3],"393":[1,3],"394":[1,3],"395":[1],"396":[1,2],"397":[3],"398":[],"399":[2],"400":[1],"401":[1,3],"402":[1,4],"403":[2],"404":[1,4],"405":[1],"406":[1],"407":[1],"408":[1],"409":[],"410":[2],"411":[2],"412":[3],"413":[2],"414":[3],"415":[],"416":[2,3],"417":[2,3],"418":[2,4,5],"419":[2,4,5],"420":[3,1],"421":[3,1],"422":[3,1],"423":[3,1],"424":[3,5,1],"425":[3,5,1],"426":[3,5,1],"427":[3,5,1],"428":[1],"429":[2,3],"430":[2,3,4],"431":[3,4],"432":[3,4,5],"433":[2],"434":[2,3],"435":[2,3,5],"436":[1],"437":[1],"438":[3,1],"439":[3,1],"440":[3,1],"441":[3,1],"442":[3,1,6],"443":[3,1,5],"444":[2],"445":[2],"446":[2,3],"447":[2],"448":[2,3],"449":[2,3],"450":[2,3],"451":[2,3,4],"452":[2,3],"453":[2,3,4],"454":[2,3],"455":[2,3,4],"456":[2],"457":[2],"458":[2,3],"459":[2,3],"460":[2,3],"461":[2],"462":[1],"463":[1,2],"464":[2],"465":[3],"466":[2,4],"467":[2,4,6],"468":[3],"469":[3,5],"470":[1],"471":[1,2],"472":[2,3],"473":[2,3],"474":[1],"475":[1,3],"476":[2,4,5],"477":[2,4,6,7],"478":[2,4,6,7],"479":[2,4,8,6,9],"480":[2,4,6,8,9],"481":[2,4,5],"482":[2,4,6,7],"483":[3,5,6],"484":[3,5,7,8],"485":[2,4,5],"486":[2,4,6,7],"487":[3,5,6],"488":[3,5,7,8],"489":[2,4,5],"490":[2,4,6,7],"491":[2,3],"492":[2,4,5],"493":[1,3,5],"494":[1,3,5,7],"495":[1,3,5,7],"496":[1,3,5,9,7],"497":[1,3,5,7,9],"498":[1,3,5],"499":[1,3,5,7],"500":[1,4,6],"501":[1,4,6,8],"502":[1,3,5],"503":[1,3,5,7],"504":[1,4,6],"505":[1,4,6,8],"506":[1,3,5],"507":[1,3,5,7],"508":[1],"509":[1],"510":[1,3],"511":[2],"512":[2,3],"513":[2],"514":[2],"515":[1],"516":[1],"517":[1],"518":[1,2],"519":[1,2],"520":[1,3,5],"521":[1,2],"522":[2],"523":[1,2],"524":[2],"525":[3],"526":[],"527":[2],"528":[3],"529":[3],"530":[2],"531":[2],"532":[1,3],"533":[1,3],"534":[1,3],"535":[2,1,3],"536":[2,1,3],"537":[1,3],"538":[1,3],"539":[1,3],"540":[2,1,3],"541":[1,3],"542":[2,1,3],"543":[1,3],"544":[1,3],"545":[1,3],"546":[1,3],"547":[1,3],"548":[1,3],"549":[1,3],"550":[1,3],"551":[1,3],"552":[1,3],"553":[1,3],"554":[1,3],"555":[1,3],"556":[1,3],"557":[1,3]},accumulators:{"4":!0,"36":!0,"37":!0,"39":!0,"90":!0,"91":!0,"93":!0,"141":!0,"253":!0,"254":!0,"256":!0,"262":!0,"269":!0,"270":!0,"271":!0,"304":!0,"305":!0,"306":!0,"343":!0,"344":!0,"345":!0,"376":!0,"401":!0,"402":!0,"404":!0,"471":!0},parseTable:(()=>{let e=[108,1,2,1,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-1,1,2,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,1,0,2,1,5,-2,108,5,1,5,31,61,89,-3,-3,-3,-3,-3,29,1,5,31,61,89,2,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,9,1,5,31,61,89,2,1,9,1,-7,-7,-7,-7,-7,135,136,133,134,57,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,6,3,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-99,-99,-99,-99,-99,-99,137,138,-99,143,-99,-237,-237,-237,-99,-237,-237,-99,-237,140,-99,-99,-99,-99,142,-99,141,139,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,50,1,5,22,3,5,1,61,15,4,1,1,1,2,1,2,1,9,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-100,-100,-100,-100,-100,-100,-100,-100,-238,-238,-238,-100,-238,-238,-100,-238,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,65,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-119,-119,145,146,-119,-119,-119,-119,144,147,151,148,149,152,-119,-119,-119,150,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,18,6,14,7,4,2,3,66,6,7,19,1,6,1,9,6,9,1,1,-341,158,100,-341,160,-341,96,159,161,153,-341,163,162,101,156,154,155,157,2,36,22,165,164,46,16,4,3,4,6,28,1,13,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,26,170,167,103,100,76,168,169,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,171,107,105,106,96,166,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,82,46,16,4,3,4,6,28,1,13,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,26,170,167,103,100,76,168,169,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,171,107,105,106,96,172,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,82,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,175,176,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,173,174,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,177,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,179,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,180,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,181,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,182,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,144,1,5,1,1,1,1,1,1,1,1,1,1,3,1,2,1,2,2,1,3,2,3,1,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,5,1,1,2,3,3,5,2,1,4,5,2,1,1,4,2,1,1,1,1,1,1,1,1,8,4,2,2,1,5,6,2,1,2,7,3,1,1,1,1,1,1,1,1,2,1,1,1,1,1,3,1,2,1,5,3,4,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-526,-526,183,178,26,27,28,29,30,31,73,32,65,54,71,103,185,100,-526,-526,76,184,-526,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,-526,105,106,96,45,75,-526,92,93,-526,-526,94,95,89,41,-526,42,90,91,86,87,88,83,-526,101,-526,-526,84,85,-526,66,74,67,68,69,82,-526,70,-526,-526,-526,63,56,97,-526,57,98,-526,-526,58,-526,-526,64,60,-526,-526,49,99,43,44,-526,-526,-526,46,47,48,50,51,52,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,186,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,187,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,58,1,5,11,11,3,5,1,15,30,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-138,-138,189,-138,-138,-138,-138,188,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,70,1,5,11,1,10,3,5,1,15,1,1,1,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,190,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,193,192,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,194,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,191,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,196,197,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,195,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,15,20,7,6,44,25,6,7,26,1,9,17,46,4,2,2,158,100,160,201,96,159,161,163,83,101,203,198,199,200,202,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,204,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,205,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,206,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,207,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,208,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,209,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,4,20,82,13,26,210,96,211,163,51,1,5,14,8,3,5,1,21,40,4,11,2,5,5,10,6,2,12,2,8,5,2,15,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-360,-360,216,-360,-360,165,-360,212,-360,96,-360,215,-360,-360,-360,163,-360,-360,-360,-360,214,213,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,1,175,217,3,36,136,5,220,219,218,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,222,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,221,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,143,1,5,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,1,3,2,3,1,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,5,1,1,2,3,3,5,2,1,4,5,2,1,1,4,2,1,1,1,1,1,1,1,1,8,4,2,2,1,5,6,2,1,2,7,3,1,1,1,1,1,1,1,1,2,1,1,1,1,1,3,1,2,1,5,3,4,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-415,-415,223,178,26,27,28,29,30,31,73,32,65,54,71,103,100,-415,-415,76,224,-415,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,-415,105,106,96,45,75,-415,92,93,-415,-415,94,95,89,41,-415,42,90,91,86,87,88,83,-415,101,-415,-415,84,85,-415,66,74,67,68,69,82,-415,70,-415,-415,-415,63,56,97,-415,57,98,-415,-415,58,-415,-415,64,60,-415,-415,49,99,43,44,-415,-415,-415,46,47,48,50,51,52,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,10,20,3,1,2,1,7,6,52,1,9,230,225,226,227,228,229,231,171,107,96,61,14,2,3,1,3,4,6,6,4,1,1,1,1,1,1,1,1,8,2,1,13,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,13,235,246,244,245,103,232,76,241,233,234,236,237,238,239,240,242,243,55,168,169,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,171,107,105,106,96,247,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,82,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,2,20,82,248,96,65,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,65,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,107,4,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,249,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,250,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,114,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,1,1,1,2,1,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,251,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,257,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,252,253,254,256,259,255,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,4,112,5,2,13,143,263,264,262,3,82,30,20,266,143,265,5,62,71,3,1,1,267,41,42,90,91,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,59,1,5,22,3,5,1,45,2,8,6,5,1,8,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-246,-246,-246,-246,-246,-246,-246,-246,269,-246,268,270,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,14,20,56,4,1,2,19,13,14,1,1,9,1,18,27,274,277,276,278,272,96,275,89,271,273,87,88,279,82,1,36,-242,1,36,-243,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,6,117,1,1,3,1,3,280,281,282,283,284,285,1,117,286,1,117,287,77,1,5,11,1,7,3,3,5,1,1,14,1,1,1,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,7,12,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,3,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,288,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,289,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,291,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,290,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,26,6,14,3,5,3,5,49,1,4,1,1,1,6,1,2,1,1,11,26,1,8,2,1,1,2,1,-267,302,103,-267,-267,-267,298,296,102,104,171,107,105,106,96,303,270,304,300,299,292,293,294,295,297,301,1,27,305,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,6,23,69,1,1,2,1,309,171,107,306,307,308,6,23,69,1,1,2,1,309,171,107,310,307,308,110,1,4,1,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,4,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,5,1,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,1,1,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-5,311,-5,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,-5,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,-5,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,-5,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,312,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,313,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,314,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,315,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,316,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,317,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,318,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,319,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,320,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,321,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,322,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,323,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,324,178,325,326,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,327,178,328,329,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,330,178,331,332,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,333,178,334,335,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,336,178,337,338,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,339,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,340,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,14,20,7,6,69,6,7,26,1,9,17,46,4,2,2,158,100,160,96,159,161,163,162,101,203,341,342,343,202,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,344,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,345,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,346,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,347,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,348,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,349,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,3,23,69,1,350,171,107,46,1,5,22,3,5,1,61,14,1,7,5,7,3,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-517,-517,-517,-517,-517,-517,-517,143,-517,-517,-517,351,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,2,112,20,143,352,57,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,6,3,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-395,-395,-395,-395,-395,-395,-395,-395,-395,143,-395,-395,-395,-395,-395,-395,-395,-395,-395,353,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,110,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,5,1,1,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,357,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,354,355,92,93,94,95,89,41,42,90,91,86,87,88,83,356,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,360,359,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,361,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,50,1,5,22,3,5,1,15,3,1,1,2,39,13,2,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-15,-15,-15,-15,-15,-15,362,366,363,364,367,-15,365,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,5,17,35,3,1,1,369,368,372,370,371,1,52,373,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,376,375,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,374,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,193,192,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,194,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,378,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,46,16,4,3,4,6,28,1,13,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,26,170,167,103,100,76,379,169,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,171,107,105,106,96,247,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,82,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,376,375,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,380,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,193,192,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,194,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,381,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,6,24,1,5,99,-407,384,383,-407,382,6,6,25,5,1,76,22,-342,-342,-342,-342,-342,-342,7,6,25,5,1,15,61,22,-346,-346,-346,-346,385,-346,-346,17,6,14,7,4,2,3,1,65,6,5,2,20,6,1,9,16,1,-349,158,100,-349,160,-349,-349,96,159,-349,161,-349,163,162,101,386,157,9,6,11,1,13,5,1,15,61,22,-350,387,388,-350,-350,-350,-350,-350,-350,13,6,11,1,13,5,1,15,61,22,80,2,2,2,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,13,6,11,1,13,5,1,15,61,22,80,2,2,2,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,13,6,11,1,13,5,1,15,61,22,80,2,2,2,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,13,6,11,1,13,5,1,15,61,22,80,2,2,2,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,114,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,1,1,1,2,1,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,257,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,252,253,254,256,259,255,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,92,11,1,269,268,270,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,107,4,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,4,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,390,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,389,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-513,-513,-513,-513,-513,-513,-175,-175,-513,-175,-513,-175,-175,-175,-513,-175,-175,-513,-175,-513,-513,-513,-513,-175,-513,-175,-175,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,13,82,2,28,5,1,1,3,1,3,6,29,23,1,137,138,143,-237,-237,-237,-237,-237,-237,140,142,141,391,6,117,1,1,3,1,3,-238,-238,-238,-238,-238,-238,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,62,1,5,22,3,1,4,1,45,2,8,1,2,2,1,3,11,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-514,-514,-514,-514,-514,-514,-175,-175,-514,-175,-514,-175,-175,-175,-514,-175,-175,-514,-175,-514,-514,-514,-514,-175,-514,-175,-175,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,394,392,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,393,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,395,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,4,189,1,9,1,135,136,133,134,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,112,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,3,27,6,118,100,396,101,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-527,3,27,6,118,100,397,101,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,398,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,112,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,112,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,399,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,52,400,2,52,3,401,402,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,131,132,-181,127,128,129,-181,-181,130,-181,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,403,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,46,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,2,1,1,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,404,405,407,406,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,46,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,2,1,1,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,131,132,-445,127,128,129,408,409,407,406,130,-445,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,46,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,2,1,1,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,135,136,-447,-447,133,134,410,411,407,406,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,4,215,2,2,2,412,413,414,415,12,20,7,6,69,6,7,26,1,9,17,46,8,158,100,160,96,159,161,163,162,101,203,416,202,12,20,7,6,69,6,7,26,1,9,17,46,8,158,100,160,96,159,161,163,162,101,203,417,202,3,36,22,158,165,418,419,5,31,184,2,2,2,420,-509,-509,-509,-509,5,31,184,2,2,2,-508,-508,-508,-508,-508,25,36,153,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,421,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,3,209,1,1,422,423,424,27,36,22,131,1,1,5,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,425,131,132,426,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,27,36,22,131,1,1,5,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,427,131,132,428,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-464,3,27,6,118,100,429,101,6,17,4,15,17,1,58,-339,430,-339,431,432,433,6,17,4,15,17,1,58,-339,434,-339,435,436,433,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,437,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,46,1,5,22,3,5,1,21,40,15,7,5,10,8,12,2,8,7,15,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-364,-364,-364,-364,165,-364,438,-364,-364,-364,-364,-364,-364,-364,-364,-364,439,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,3,36,22,114,165,440,441,45,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,7,15,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,442,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,2,1,1,1,2,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,445,446,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,443,444,447,448,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,131,132,-386,127,-386,-386,-386,-386,130,-386,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-386,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-413,3,27,6,118,100,449,101,45,1,5,22,3,1,4,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-18,-18,-18,-18,450,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,2,25,6,451,452,1,25,453,7,20,8,1,6,1,3,63,458,454,455,456,457,459,96,6,20,4,2,1,13,62,230,460,461,462,231,96,2,25,6,-44,-44,1,38,463,29,6,14,3,5,3,5,3,3,18,25,1,4,1,1,1,6,1,2,1,1,11,26,1,8,2,1,1,2,1,-267,468,103,464,-267,467,469,465,466,298,296,102,104,171,107,105,106,96,303,270,304,300,299,292,293,294,295,297,301,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,470,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,471,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,2,25,13,472,473,1,27,474,4,20,82,13,26,475,96,211,163,21,17,1,34,1,1,1,1,1,2,23,2,28,5,1,1,3,1,3,35,23,1,477,-205,476,478,479,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,18,17,1,37,1,1,2,23,2,28,5,1,1,3,1,3,35,23,1,480,481,151,148,149,152,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,62,1,5,11,1,10,3,5,1,18,1,1,2,23,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,2,36,22,165,482,2,6,181,108,483,106,4,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,484,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,31,6,25,5,107,14,7,1,24,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-405,-405,-405,-405,487,485,486,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,5,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,110,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,1,5,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,488,490,489,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,6,6,24,1,5,107,3,-407,493,492,-407,-407,491,61,6,4,5,4,3,5,4,5,1,4,18,28,1,1,1,1,1,1,6,1,2,25,1,1,4,4,1,1,1,1,1,1,8,6,2,1,11,2,1,2,7,3,2,1,1,4,4,3,6,1,5,7,3,1,1,4,1,1,1,1,1,494,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,5,6,25,5,1,106,-252,-252,-252,-252,-252,113,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,2,1,2,1,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,257,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,496,495,256,259,255,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,61,6,4,5,4,3,5,4,5,1,4,18,28,1,1,1,1,1,1,6,1,2,25,1,1,4,4,1,1,1,1,1,1,8,6,2,1,11,2,1,2,7,3,2,1,1,4,4,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,5,6,25,5,1,106,-257,-257,-257,-257,-257,6,6,25,5,1,76,30,-406,-406,-406,-406,-406,-406,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,497,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,2,103,1,498,270,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,499,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,500,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,2,112,20,143,501,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,75,1,5,11,1,10,3,5,1,15,1,1,1,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,7,12,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,3,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,75,1,5,11,1,10,3,5,1,15,1,1,1,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,7,12,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,3,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,75,1,5,11,1,10,3,5,1,15,1,1,1,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,7,12,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,3,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,57,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,6,3,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-222,-222,-222,-222,-222,-222,502,506,-222,143,-222,503,504,505,-222,-222,-222,-222,-222,507,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,2,117,2,263,264,2,103,1,508,270,2,103,1,509,270,109,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,5,6,1,1,4,3,1,1,1,1,1,1,9,6,2,1,4,1,6,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,510,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,511,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,512,94,95,89,41,42,90,91,86,87,88,83,101,487,84,85,513,486,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,119,514,8,20,16,66,1,1,20,38,1,519,516,96,520,270,515,517,518,8,20,16,66,1,1,20,38,1,519,522,96,520,270,521,517,518,2,103,1,523,270,2,103,1,524,270,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,525,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,526,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,527,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,5,6,22,2,1,5,-407,-407,528,529,-407,5,6,22,3,5,1,-268,-268,-268,-268,-268,6,6,22,3,5,1,118,-272,-272,-272,-272,-272,530,5,6,22,3,5,1,-273,-273,-273,-273,-273,1,155,531,8,6,22,3,5,1,15,2,101,-316,-316,-316,-316,-316,532,533,-316,6,6,22,3,5,1,118,-317,-317,-317,-317,-317,-317,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,534,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,4,92,11,1,38,269,268,270,535,18,20,7,6,43,4,1,21,1,1,11,25,1,10,5,2,1,1,26,302,100,538,539,541,540,96,303,270,304,87,88,101,536,537,542,543,82,16,6,22,3,5,1,15,2,28,30,5,1,1,4,3,29,6,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,16,6,22,3,5,1,15,2,28,30,5,1,1,4,3,29,6,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,16,6,22,3,5,1,15,2,28,30,5,1,1,4,3,29,6,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,26,6,14,3,5,3,5,49,1,4,1,1,1,6,1,2,1,1,11,26,1,8,2,1,1,2,1,-267,302,103,-267,-267,-267,298,296,102,104,171,107,105,106,96,303,270,304,300,299,544,293,294,295,297,301,6,23,69,1,3,1,4,309,171,107,546,308,545,5,92,1,2,2,4,-140,-140,-140,-140,-140,108,4,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,5,1,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,547,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,548,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,549,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,92,1,2,2,4,-145,-145,-145,-145,-145,6,23,69,1,2,1,1,309,171,107,550,546,308,5,1,5,31,61,89,-4,-4,-4,-4,-4,25,155,34,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,551,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,112,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,112,115,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,112,115,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,112,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,114,113,112,115,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,109,110,-537,114,113,112,115,116,-537,-537,-537,120,121,122,-537,-537,-537,-537,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,109,110,-538,114,113,112,115,116,117,-538,-538,120,121,122,-538,-538,-538,-538,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,109,110,-539,114,113,112,115,116,117,118,-539,120,121,122,-539,-539,-539,-539,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,109,110,-540,114,113,112,115,116,-540,-540,-540,-540,-540,122,-540,-540,-540,-540,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,109,110,-541,114,113,112,115,116,-541,-541,-541,-541,-541,122,-541,-541,-541,-541,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,109,110,-542,114,113,112,115,116,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,109,110,-543,114,113,112,115,116,117,118,119,120,121,122,-543,-543,-543,-543,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,109,110,-544,114,113,112,115,116,117,118,119,120,121,122,123,-544,-544,-544,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,109,110,-545,114,113,112,115,116,117,118,119,120,121,122,123,-545,-545,-545,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-552,-552,-552,-552,-552,-552,-552,-552,-552,-552,-552,-552,-552,-552,-552,-552,131,132,-552,127,-552,-552,-552,-552,130,-552,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-552,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-553,-553,-553,-553,-553,-553,-553,-553,-553,-553,-553,-553,-553,-553,-553,-553,131,132,-553,127,-553,-553,-553,-553,130,-553,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-553,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,131,132,-439,552,-439,-439,-439,-439,130,-439,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,131,132,-441,127,-441,-441,-441,-441,130,-441,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,4,215,2,2,2,553,554,555,556,12,20,7,6,69,6,7,26,1,9,17,46,8,158,100,160,96,159,161,163,162,101,203,557,202,12,20,7,6,69,6,7,26,1,9,17,46,8,158,100,160,96,159,161,163,162,101,203,558,202,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,131,132,559,127,-420,-420,-420,-420,130,-420,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-420,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,131,132,560,127,-422,-422,-422,-422,130,-422,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-422,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,131,132,-438,127,-438,-438,-438,-438,130,-438,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,131,132,-440,127,-440,-440,-440,-440,130,-440,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,131,132,561,127,-421,-421,-421,-421,130,-421,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-421,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,131,132,562,127,-423,-423,-423,-423,130,-423,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-423,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,5,6,24,1,5,77,-407,563,564,-407,-407,5,6,25,5,1,76,-400,-400,-400,-400,-400,109,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,6,1,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,357,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,565,92,93,94,95,89,41,42,90,91,86,87,88,83,356,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,30,6,25,5,1,76,30,46,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-405,-405,-405,-405,-405,-405,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-150,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,566,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,567,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,569,568,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,570,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,376,375,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,571,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,193,192,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,194,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,572,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,46,16,4,3,4,6,28,1,13,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,26,170,167,103,100,76,573,169,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,171,107,105,106,96,247,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,82,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,376,375,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,574,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,193,192,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,194,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,575,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,577,576,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,578,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,48,1,5,22,3,5,1,15,3,1,1,41,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-16,-16,-16,-16,-16,-16,579,582,580,581,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,376,375,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,583,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,193,192,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,194,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,584,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,376,375,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,585,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,586,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,131,132,-178,127,128,129,-178,-178,130,-178,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,587,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,588,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,57,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,6,3,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-192,-192,-192,-192,-192,-192,137,138,-192,589,-192,-237,-237,-237,-192,-237,-237,-192,-237,140,-192,-192,-192,-192,142,-192,141,391,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,4,17,119,1,1,591,590,90,91,16,6,14,7,6,3,1,65,6,7,26,1,9,6,9,1,1,-408,158,100,160,-408,-408,96,159,161,163,162,101,156,592,155,157,2,6,30,593,594,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,595,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,6,6,25,5,1,76,22,-348,-348,-348,-348,-348,-348,7,6,25,5,1,15,61,22,-351,-351,-351,-351,-351,-351,-351,8,6,11,14,5,1,15,61,22,-353,596,-353,-353,-353,-353,-353,-353,57,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,6,2,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,2,6,31,108,597,2,112,20,143,351,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-165,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,598,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,599,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-168,1,37,600,1,37,601,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-529,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-162,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,602,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,604,603,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,605,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,607,606,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,608,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,131,132,-182,127,128,129,-182,-182,130,-182,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,45,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,3,1,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,609,407,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,10,20,7,6,3,22,44,6,34,9,55,614,100,611,165,613,96,612,162,101,610,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,616,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,615,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,45,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,3,1,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,617,407,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,45,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,3,1,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,618,407,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,619,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,620,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,621,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,622,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,217,623,1,219,624,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,625,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,11,20,7,6,69,6,7,26,1,9,17,54,158,100,160,96,159,161,163,162,101,203,626,3,209,1,1,627,423,424,4,37,159,14,1,628,629,630,424,3,37,159,15,-470,-470,-470,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,4,1,7,3,1,1,4,1,1,1,1,1,632,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,631,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,633,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,634,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,37,635,3,17,19,22,637,165,636,4,17,4,15,76,-339,638,-339,433,4,17,4,15,76,-339,639,-339,433,18,6,14,7,4,2,3,66,6,5,2,19,7,1,9,6,9,1,1,-341,158,100,-341,160,-341,96,159,-341,161,640,163,162,101,156,154,155,157,3,17,19,22,642,165,641,4,17,4,15,76,-339,643,-339,433,4,17,4,15,76,-339,644,-339,433,45,1,5,22,3,5,1,21,40,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-362,-362,-362,-362,165,-362,645,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-362,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,646,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,647,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,26,36,141,12,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,220,648,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,2,6,31,650,649,2,6,31,-375,-375,26,6,31,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-378,-378,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,6,6,31,152,1,9,1,-379,-379,135,136,133,134,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,651,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,102,652,1,37,653,3,27,6,118,100,654,101,3,23,69,1,655,171,107,3,26,1,13,656,657,231,3,23,69,1,658,171,107,1,25,659,5,6,22,2,1,5,-407,-407,660,661,-407,5,6,22,3,5,1,-35,-35,-35,-35,-35,6,20,9,6,1,3,63,458,662,456,457,459,96,6,6,22,3,5,1,1,-40,-40,-40,-40,-40,663,6,6,22,3,5,1,1,-42,-42,-42,-42,-42,664,1,25,665,1,25,666,7,20,8,1,6,1,3,63,458,667,668,456,457,459,96,2,20,82,669,96,45,1,5,19,3,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,670,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,5,6,22,2,1,5,-407,-407,671,672,-407,5,6,22,3,5,1,-89,-89,-89,-89,-89,6,20,16,3,3,18,42,674,467,469,673,466,96,8,6,22,3,5,2,14,2,101,-94,-94,-94,-94,675,-313,-313,-313,6,6,22,3,5,1,1,-97,-97,-97,-97,-97,676,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,131,132,-56,127,128,129,-56,-56,130,-56,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,3,27,6,118,100,677,101,3,23,69,1,678,171,107,3,20,19,63,679,680,96,6,20,16,3,3,18,42,674,467,469,681,466,96,6,17,4,15,17,1,58,-339,682,-339,431,432,433,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,684,683,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,685,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,52,3,1,1,2,686,689,687,688,690,1,52,691,2,52,3,692,693,4,55,1,1,2,366,363,364,367,4,17,38,1,1,694,372,370,371,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,2,6,31,108,695,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,696,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,57,10,5,4,3,5,10,4,18,28,1,1,1,1,1,1,6,1,2,18,7,1,1,4,4,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,4,4,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,57,10,5,4,3,5,10,4,18,28,1,1,1,1,1,1,6,1,2,18,7,1,1,4,4,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,4,4,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,5,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,61,6,4,5,4,3,5,4,5,1,4,18,28,1,1,1,1,1,1,6,1,2,25,1,1,4,4,1,1,1,1,1,1,8,6,2,1,11,2,1,2,7,3,2,1,1,4,4,3,6,1,5,7,3,1,1,4,1,1,1,1,1,494,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,5,6,25,5,1,106,-258,-258,-258,-258,-258,2,36,107,698,697,115,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,1,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,1,1,3,1,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-408,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,-408,-408,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,-408,700,699,259,255,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,4,6,30,1,106,701,-259,-259,-259,61,6,4,5,4,3,5,4,5,1,4,18,28,1,1,1,1,1,1,6,1,2,25,1,1,4,4,1,1,1,1,1,1,8,6,2,1,11,2,1,2,7,3,2,1,1,4,4,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,6,6,24,1,5,1,109,-407,493,492,-407,-407,702,109,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,6,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,490,489,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,30,6,25,5,1,76,30,46,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-358,-358,-358,-358,-358,-358,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,25,120,69,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,703,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,704,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,57,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,6,3,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-225,-225,-225,-225,-225,-225,-225,-225,-225,143,-225,-225,-225,-225,-225,-225,-225,-225,-225,705,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,2,103,1,706,270,2,103,1,707,270,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,708,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,23,69,1,709,171,107,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,29,31,89,37,7,1,24,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,711,710,487,712,486,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,108,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,5,6,1,1,4,3,1,1,1,1,1,1,9,6,2,1,4,1,6,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,713,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,714,94,95,89,41,42,90,91,86,87,88,83,101,487,84,85,513,486,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,120,715,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,4,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,4,7,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,716,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,-326,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,-326,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,717,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,718,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,6,24,1,5,89,-407,719,720,-407,-407,7,20,82,1,1,20,38,1,519,96,520,270,721,517,518,5,6,25,5,1,88,-303,-303,-303,-303,-303,7,6,25,5,1,15,73,30,-307,-307,-307,-307,723,-307,722,7,6,25,5,1,15,73,30,-311,-311,-311,-311,-311,-311,-311,7,6,25,5,1,15,73,30,-312,-312,-312,-312,-312,-312,-312,5,6,24,1,5,89,-407,724,720,-407,-407,7,20,82,1,1,20,38,1,519,96,520,270,725,517,518,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,45,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,4,1,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,726,727,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,728,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,3,6,22,8,730,729,731,25,6,14,3,5,8,1,48,1,4,1,1,1,6,1,2,1,1,11,26,1,10,1,1,2,1,-408,302,103,-408,-408,-408,298,296,102,104,171,107,105,106,96,303,270,304,300,299,732,294,295,297,301,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,733,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,734,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,735,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,736,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,737,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,155,738,25,143,46,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,739,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,740,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,14,6,22,3,5,1,45,30,5,1,1,4,3,6,29,-281,-281,-281,-281,-281,-283,143,-283,-283,-283,-283,-283,741,-283,14,6,22,3,5,1,45,30,5,1,1,4,3,6,29,-282,-282,-282,-282,-282,746,143,743,744,745,748,749,742,747,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,4,112,5,2,13,143,263,264,750,2,112,20,143,751,5,6,22,2,1,5,-407,-407,752,529,-407,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,5,92,1,2,2,4,-141,-141,-141,-141,-141,2,6,92,108,753,106,4,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,754,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,92,1,2,2,4,-144,-144,-144,-144,-144,62,1,5,22,3,1,4,1,45,2,8,1,2,2,1,3,11,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,755,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,757,178,337,338,28,29,30,31,73,32,65,54,71,103,100,76,756,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,758,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,759,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,760,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,761,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,217,762,1,219,763,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,764,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,765,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,766,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,767,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,6,30,77,769,770,768,111,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,1,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,5,2,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-408,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,-408,-408,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,-408,92,93,94,95,89,41,42,90,91,86,87,88,83,771,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,6,24,1,5,1,-407,772,564,-407,-407,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-151,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,773,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-153,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,774,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,775,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,57,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,6,3,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-193,-193,-193,-193,-193,-193,137,138,-193,776,-193,-237,-237,-237,-193,-237,-237,-193,-237,140,-193,-193,-193,-193,142,-193,141,391,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-156,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,777,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,778,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,780,779,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,781,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,376,375,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,782,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,193,192,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,194,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,783,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,376,375,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,784,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-164,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,131,132,-179,127,128,129,-179,-179,130,-179,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,785,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,110,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,5,1,1,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,357,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,786,787,92,93,94,95,89,41,42,90,91,86,87,88,83,356,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,2,36,22,165,788,3,136,1,1,789,90,91,6,6,25,5,1,76,22,-343,-343,-343,-343,-343,-343,13,20,7,6,69,6,7,26,1,9,6,9,1,1,158,100,160,96,159,161,163,162,101,156,790,155,157,18,6,14,7,4,2,3,1,65,6,7,19,7,1,9,6,9,1,1,-341,158,100,-341,160,-341,-341,96,159,161,791,163,162,101,156,154,155,157,30,6,25,5,1,76,22,54,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-347,-347,-347,-347,-347,-347,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,7,6,25,5,1,15,61,22,-352,-352,-352,-352,-352,-352,-352,57,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,6,2,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,792,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-167,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-163,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-169,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,793,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,794,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,131,132,-172,127,128,129,-172,-172,130,-172,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,795,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,796,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,2,36,22,165,797,2,36,22,165,798,2,36,22,165,799,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,2,17,19,800,-462,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,131,132,-457,127,128,129,-457,-457,130,-457,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,28,36,22,131,1,1,5,3,1,13,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,801,131,132,803,127,128,129,130,802,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,27,36,22,131,1,1,5,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,804,131,132,805,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,27,36,22,131,1,1,5,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,806,131,132,807,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,27,36,22,131,1,1,5,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,808,131,132,809,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,810,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,811,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,812,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,4,215,2,2,2,-510,-510,-510,-510,4,37,159,14,1,813,814,630,424,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,2,36,22,165,815,3,37,159,15,-471,-471,-471,3,31,5,22,817,165,816,26,31,5,153,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-474,-474,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,818,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,819,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,45,1,5,22,3,5,1,21,40,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-17,-17,-17,-17,165,-17,820,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,3,17,19,22,822,165,821,3,17,19,22,824,165,823,5,6,24,1,5,77,-407,384,383,-407,825,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,2,36,22,165,826,3,17,19,22,828,165,827,3,17,19,22,830,165,829,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,45,1,5,22,3,5,1,21,40,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-366,-366,-366,-366,165,-366,831,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-366,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,832,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,109,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,4,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,3,1,1,2,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-377,445,446,26,27,28,29,30,31,73,32,65,54,71,103,100,76,-377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,833,447,448,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,26,6,31,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-380,-380,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,3,6,19,12,-381,834,-381,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,45,1,5,22,3,1,4,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-19,-19,-19,-19,835,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,1,25,836,6,20,9,6,1,3,63,458,837,456,457,459,96,45,1,5,22,3,1,4,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-20,-20,-20,-20,838,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,3,23,69,1,839,171,107,3,6,22,8,841,840,842,8,6,14,8,7,1,1,2,63,-408,458,-408,843,-408,-408,459,96,5,6,24,1,5,1,-407,844,661,-407,-407,2,20,82,845,96,2,20,82,846,96,3,23,69,1,847,171,107,3,23,69,1,848,171,107,1,25,849,5,6,22,2,1,5,-407,-407,850,661,-407,1,25,-45,3,23,69,1,851,171,107,3,6,22,8,853,852,854,8,6,14,8,8,1,2,21,42,-408,674,-408,-408,-408,469,855,96,5,6,24,1,5,1,-407,856,672,-407,-407,6,6,22,3,5,1,1,-94,-94,-94,-94,-94,675,3,20,19,63,857,858,96,2,20,82,859,96,1,37,860,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,1,25,861,1,25,862,5,6,22,2,1,5,-407,-407,863,672,-407,3,17,19,22,864,165,636,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,131,132,-64,127,128,129,-64,-64,130,-64,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,865,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,866,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,868,867,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,869,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,871,870,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,872,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,874,873,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,875,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,877,876,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,878,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,880,879,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,881,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,882,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,884,883,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,885,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,887,886,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,888,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,55,1,1,582,580,581,1,187,889,25,143,46,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,890,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,5,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,113,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,2,1,2,1,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,257,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,496,891,256,259,255,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,6,25,5,1,106,-253,-253,-253,-253,-253,112,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,1,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,1,5,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,-260,-260,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,-260,490,489,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,111,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,2,3,1,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,496,892,259,255,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,2,36,1,698,893,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,894,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,25,120,69,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,895,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,896,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,4,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,4,7,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,897,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,-324,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,-324,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,28,37,120,7,1,24,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,898,487,712,486,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,1,37,899,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,26,37,83,69,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-325,-325,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,120,69,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,900,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,901,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,6,30,89,903,904,902,10,6,14,16,1,65,1,1,21,37,1,-408,519,-408,-408,96,520,270,-408,905,518,5,6,24,1,5,1,-407,906,720,-407,-407,5,20,82,1,1,59,519,96,520,270,907,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,908,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,6,30,89,903,904,909,5,6,24,1,5,1,-407,910,720,-407,-407,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,3,36,22,136,165,912,911,2,36,22,165,913,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,5,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,21,20,3,62,1,4,1,1,1,6,1,2,1,1,11,26,1,10,1,1,2,1,302,103,298,296,102,104,171,107,105,106,96,303,270,304,300,299,914,294,295,297,301,26,6,14,3,8,5,1,48,1,4,1,1,1,6,1,2,1,1,11,26,1,8,2,1,1,2,1,-267,302,103,-267,-267,-267,298,296,102,104,171,107,105,106,96,303,270,304,300,299,915,293,294,295,297,301,5,6,22,3,5,1,-269,-269,-269,-269,-269,29,6,22,3,5,1,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-274,-274,-274,-274,-274,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,916,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,29,6,22,3,5,1,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-276,-276,-276,-276,-276,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,29,6,22,3,5,1,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-277,-277,-277,-277,-277,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,917,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,918,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,919,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,6,6,22,3,5,1,118,-318,-318,-318,-318,-318,-318,25,143,46,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,920,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,2,103,1,921,270,2,103,1,922,270,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,923,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,924,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,14,6,22,3,5,1,45,30,5,1,1,4,3,6,29,-298,-298,-298,-298,-298,-298,143,-298,-298,-298,-298,-298,925,-298,8,20,16,66,1,1,20,38,1,519,927,96,520,270,926,517,518,8,20,16,66,1,1,20,38,1,519,929,96,520,270,928,517,518,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,3,6,22,8,730,930,731,5,92,1,2,2,4,-142,-142,-142,-142,-142,2,6,31,108,931,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-520,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,932,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,131,132,-443,127,-443,-443,-443,-443,130,-443,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-443,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,933,-493,-493,-493,-493,-493,-493,934,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-493,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,935,-498,-498,-498,-498,-498,-498,-498,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-498,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,936,-502,-502,-502,-502,-502,-502,-502,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-502,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,937,-506,-506,-506,-506,-506,-506,-506,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-506,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,938,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,939,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-424,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-426,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-425,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-427,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,107,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,940,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,109,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,6,1,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,357,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,941,92,93,94,95,89,41,42,90,91,86,87,88,83,356,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,6,25,5,1,76,-401,-401,-401,-401,-401,3,6,30,1,769,770,942,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-154,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,943,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,110,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,5,1,1,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,357,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,944,945,92,93,94,95,89,41,42,90,91,86,87,88,83,356,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-157,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,946,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-159,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,947,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,948,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-194,-194,-194,-194,-194,-194,-398,-398,-194,-398,-194,-398,-398,-398,-194,-398,-398,-194,-398,-194,-194,-194,-194,-398,-194,-398,-398,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,5,6,24,1,5,77,-407,949,564,-407,-407,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,2,36,22,165,950,6,6,25,5,1,76,22,-344,-344,-344,-344,-344,-344,5,6,24,1,5,1,-407,951,383,-407,-407,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-170,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,952,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,131,132,-173,127,128,129,-173,-173,130,-173,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,953,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,1,36,-463,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,954,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,955,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,956,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,957,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,958,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,27,36,22,131,1,1,5,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,959,131,132,960,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,27,36,22,131,1,1,5,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,961,131,132,962,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,2,36,22,165,963,1,37,964,4,6,31,159,15,965,-472,-472,-472,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,966,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,2,36,22,165,967,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,2,36,22,165,968,2,17,19,-340,-340,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,2,36,22,165,969,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,2,36,22,165,970,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,2,6,31,-376,-376,2,102,80,972,971,3,27,6,118,100,973,101,3,23,69,1,974,171,107,5,6,22,2,1,5,-407,-407,975,661,-407,3,27,6,118,100,976,101,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,1,25,977,4,20,15,4,63,458,978,459,96,6,20,9,6,1,3,63,458,979,456,457,459,96,5,6,22,3,5,1,-36,-36,-36,-36,-36,3,6,30,1,841,842,980,5,6,22,3,5,1,-41,-41,-41,-41,-41,5,6,22,3,5,1,-43,-43,-43,-43,-43,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,3,23,69,1,981,171,107,3,6,22,8,841,982,842,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,45,1,5,19,3,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-47,-47,983,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,4,20,19,21,42,674,469,984,96,6,20,16,3,3,18,42,674,467,469,985,466,96,5,6,22,3,5,1,-90,-90,-90,-90,-90,3,6,30,1,853,854,986,5,6,22,3,5,1,-95,-95,-95,-95,-95,5,6,22,3,5,1,-96,-96,-96,-96,-96,5,6,22,3,5,1,-98,-98,-98,-98,-98,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,3,23,69,1,987,171,107,3,23,69,1,988,171,107,3,6,22,8,853,989,854,2,36,22,165,820,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,131,132,-65,127,128,129,-65,-65,130,-65,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,990,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,131,132,-67,127,128,129,-67,-67,130,-67,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,991,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,992,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,131,132,-77,127,128,129,-77,-77,130,-77,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,993,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,994,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,131,132,-80,127,128,129,-80,-80,130,-80,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,995,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,131,132,-83,127,128,129,-83,-83,130,-83,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,996,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,997,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,131,132,-86,127,128,129,-86,-86,130,-86,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,998,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,131,132,-70,127,128,129,-70,-70,130,-70,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,131,132,-71,127,128,129,-71,-71,130,-71,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,999,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1000,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,131,132,-74,127,128,129,-74,-74,130,-74,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1001,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1002,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,6,6,24,1,5,1,109,-407,493,492,-407,-407,1003,5,6,25,5,1,106,-254,-254,-254,-254,-254,5,6,25,5,1,106,-255,-255,-255,-255,-255,1,120,1004,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,25,120,69,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1005,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,37,83,69,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-323,-323,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,1,120,1006,1,120,1007,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1008,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,6,20,82,1,1,58,1,519,96,520,270,1009,518,7,20,82,1,1,20,38,1,519,96,520,270,1010,517,518,5,6,25,5,1,88,-304,-304,-304,-304,-304,3,6,30,1,903,904,1011,6,6,25,5,1,15,73,-308,-308,-308,-308,1012,-308,29,6,25,5,1,88,64,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-309,-309,-309,-309,-309,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,3,6,30,1,903,904,1013,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1014,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,5,6,22,3,5,1,-270,-270,-270,-270,-270,5,6,24,1,5,1,-407,1015,529,-407,-407,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1016,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1017,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,29,6,22,3,5,1,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-279,-279,-279,-279,-279,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1018,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,6,6,22,3,5,1,118,-319,-319,-319,-319,-319,-319,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,25,120,69,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1019,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1020,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,5,6,24,1,5,89,-407,1021,720,-407,-407,7,20,82,1,1,20,38,1,519,96,520,270,1022,517,518,5,6,24,1,5,89,-407,1023,720,-407,-407,7,20,82,1,1,20,38,1,519,96,520,270,1024,517,518,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,5,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,1,98,1025,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1026,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1027,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1028,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1029,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1030,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1031,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,1032,-500,-500,-500,-500,-500,-500,-500,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-500,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,1033,-504,-504,-504,-504,-504,-504,-504,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-504,5,6,25,5,1,76,-402,-402,-402,-402,-402,5,6,24,1,5,1,-407,1034,564,-407,-407,5,6,25,5,1,76,-403,-403,-403,-403,-403,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-195,-195,-195,-195,-195,-195,-398,-398,-195,-398,-195,-398,-398,-398,-195,-398,-398,-195,-398,-195,-195,-195,-195,-398,-195,-398,-398,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,5,6,24,1,5,77,-407,1035,564,-407,-407,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-160,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1036,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,3,6,30,77,769,770,1037,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,3,6,30,1,593,594,1038,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,27,36,22,131,1,1,5,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1039,131,132,1040,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,27,36,22,131,1,6,3,1,13,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1041,131,132,127,128,129,130,1042,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1043,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1044,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1045,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1046,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1047,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,37,1048,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,3,37,159,15,-473,-473,-473,26,31,5,153,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-475,-475,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,3,6,31,80,-382,-382,1049,3,6,31,80,-383,-383,-383,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,45,1,5,22,3,1,4,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-23,-23,-23,-23,1050,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,3,6,22,8,841,1051,842,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,3,23,69,1,1052,171,107,5,6,22,3,5,1,-37,-37,-37,-37,-37,5,6,24,1,5,1,-407,1053,661,-407,-407,5,6,22,3,5,1,-38,-38,-38,-38,-38,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,1,25,1054,3,23,69,1,1055,171,107,5,6,22,3,5,1,-91,-91,-91,-91,-91,5,6,24,1,5,1,-407,1056,672,-407,-407,5,6,22,3,5,1,-92,-92,-92,-92,-92,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,1,25,1057,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,131,132,-68,127,128,129,-68,-68,130,-68,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1058,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,131,132,-78,127,128,129,-78,-78,130,-78,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1059,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,131,132,-81,127,128,129,-81,-81,130,-81,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,131,132,-84,127,128,129,-84,-84,130,-84,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1060,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,131,132,-87,127,128,129,-87,-87,130,-87,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,131,132,-72,127,128,129,-72,-72,130,-72,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1061,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,131,132,-75,127,128,129,-75,-75,130,-75,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1062,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,2,36,1,698,1063,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,1,120,1064,5,6,25,5,1,88,-305,-305,-305,-305,-305,5,6,24,1,5,1,-407,1065,720,-407,-407,1,125,1066,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1067,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,125,1068,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1069,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,3,6,30,1,730,731,1070,5,6,22,3,5,1,-275,-275,-275,-275,-275,5,6,22,3,5,1,-278,-278,-278,-278,-278,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1071,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1072,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,3,6,30,89,903,904,1073,5,6,24,1,5,1,-407,1074,720,-407,-407,3,6,30,89,903,904,1075,5,6,24,1,5,1,-407,1076,720,-407,-407,5,92,1,2,2,4,-143,-143,-143,-143,-143,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,1077,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-494,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,1078,-495,-495,-495,-495,-495,-495,-495,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-495,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-499,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-503,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-507,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1079,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1080,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,6,30,1,769,770,1081,3,6,30,77,769,770,1082,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-196,-196,-196,-196,-196,-196,-399,-399,-196,-399,-196,-399,-399,-399,-196,-399,-399,-196,-399,-196,-196,-196,-196,-399,-196,-399,-399,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,6,6,25,5,1,76,22,-345,-345,-345,-345,-345,-345,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1083,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1084,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1085,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1086,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,2,103,1,1087,270,3,27,6,118,100,1088,101,1,25,1089,45,1,5,22,3,1,4,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-22,-22,-22,-22,1090,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,3,6,30,1,841,842,1091,3,23,69,1,1092,171,107,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,3,6,30,1,853,854,1093,3,23,69,1,1094,171,107,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,5,6,25,5,1,106,-256,-256,-256,-256,-256,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,3,6,30,1,903,904,1095,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,29,6,25,5,1,88,64,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,-310,-310,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,45,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,4,1,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,1096,727,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,5,6,22,3,5,1,-271,-271,-271,-271,-271,5,6,22,3,5,1,-280,-280,-280,-280,-280,1,120,1097,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,3,6,30,1,903,904,1098,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,3,6,30,1,903,904,1099,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1100,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1101,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-501,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-505,5,6,25,5,1,76,-404,-404,-404,-404,-404,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-197,-197,-197,-197,-197,-197,-399,-399,-197,-399,-197,-399,-399,-399,-197,-399,-399,-197,-399,-197,-197,-197,-197,-399,-197,-399,-399,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1102,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1103,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,3,6,31,80,-384,-384,-384,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,3,23,69,1,1104,171,107,3,27,6,118,100,1105,101,5,6,22,3,5,1,-39,-39,-39,-39,-39,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,5,6,22,3,5,1,-93,-93,-93,-93,-93,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,5,6,25,5,1,88,-306,-306,-306,-306,-306,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,1,125,1106,1,125,1107,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-496,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-497,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,45,1,5,22,3,1,4,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-24,-24,-24,-24,1108,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,3,27,6,118,100,1109,101,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30],t=[],r=0,n,i,s,a;while(r","ArrowKind → =>","DoIife → DO_IIFE Code","This → THIS","This → @","ThisProperty → @ Property","ThisProperty → @ STRING","Array → [ ]","Array → [ Elisions ]","Array → [ ArgElisionList OptElisions ]","ArgElisionList → ArgElision","ArgElisionList → ArgElisionList , ArgElision","ArgElisionList → ArgElisionList OptComma TERMINATOR ArgElision","ArgElisionList → INDENT ArgElisionList OptElisions OUTDENT","ArgElisionList → ArgElisionList OptElisions INDENT ArgElisionList OptElisions OUTDENT","ArgElision → Arg","ArgElision → Elisions Arg","OptElisions → OptComma","OptElisions → , Elisions","Elisions → Elision","Elisions → Elisions Elision","Elision → ,","Elision → Elision TERMINATOR","Object → { AssignList OptComma }","Object → MAP_START { AssignList OptComma }","AssignList → ε","AssignList → AssignObj","AssignList → AssignList , AssignObj","AssignList → AssignList OptComma TERMINATOR AssignObj","AssignList → AssignList OptComma INDENT AssignList OptComma OUTDENT","AssignObj → ObjAssignable","AssignObj → ObjRestValue","AssignObj → ObjAssignable : Expression","AssignObj → ObjAssignable : INDENT Expression OUTDENT","AssignObj → Regex : Expression","AssignObj → SimpleObjAssignable = Expression","AssignObj → SimpleObjAssignable = INDENT Expression OUTDENT","AssignObj → SimpleObjAssignable VOID_MARKER : Expression","AssignObj → SimpleObjAssignable VOID_MARKER : INDENT Expression OUTDENT","ObjRestValue → ... SimpleObjAssignable","ObjRestValue → ... ObjSpreadExpr","ObjSpreadExpr → SimpleObjAssignable","ObjSpreadExpr → Object","ObjSpreadExpr → Parenthetical","ObjSpreadExpr → Super","ObjSpreadExpr → This","ObjSpreadExpr → SUPER Arguments","ObjSpreadExpr → DYNAMIC_IMPORT Arguments","ObjSpreadExpr → SimpleObjAssignable Arguments","ObjSpreadExpr → ObjSpreadExpr Arguments","ObjSpreadExpr → ObjSpreadExpr . Property","ObjSpreadExpr → ObjSpreadExpr ?. Property","ObjSpreadExpr → ObjSpreadExpr INDEX_START Expression INDEX_END","ObjSpreadExpr → ObjSpreadExpr INDEX_START INDENT Expression OUTDENT INDEX_END","ObjSpreadExpr → ObjSpreadExpr DAMMIT","ObjSpreadExpr → ObjSpreadExpr MAYBE_DAMMIT Arguments","ObjSpreadExpr → ObjSpreadExpr MAYBE_DAMMIT","ObjSpreadExpr → ObjSpreadExpr PICK_START PickList OptComma PICK_END","ObjSpreadExpr → ObjSpreadExpr OPTPICK_START PickList OptComma PICK_END","ObjSpreadExpr → ObjSpreadExpr PICK_START INDENT PickList OptComma OUTDENT PICK_END","ObjSpreadExpr → ObjSpreadExpr OPTPICK_START INDENT PickList OptComma OUTDENT PICK_END","PickList → PickItem","PickList → PickList , PickItem","PickList → PickList OptComma TERMINATOR PickItem","PickList → PickList OptComma INDENT PickList OptComma OUTDENT","PickItem → PickKey","PickItem → PickKey : PickKey","PickItem → PickKey = Expression","PickItem → PickKey : PickKey = Expression","PickKey → Identifier","PickKey → Property","SimpleObjAssignable → Identifier","SimpleObjAssignable → Property","SimpleObjAssignable → ThisProperty","ObjAssignable → SimpleObjAssignable","ObjAssignable → Atom","ObjAssignable → [ Expression ]","ObjAssignable → @ [ Expression ]","RangeDots → ..","RangeDots → ...","Range → [ Expression RangeDots Expression ]","Slice → Expression RangeDots Expression","Slice → Expression RangeDots","Slice → RangeDots Expression","Slice → RangeDots","Def → DEF Identifier OptParams Block","Def → DEF Identifier OptParams TYPE Block","Def → DEF Identifier TYPE_PARAMS OptParams Block","Def → DEF Identifier TYPE_PARAMS OptParams TYPE Block","Def → DEF Identifier VOID_MARKER OptParams Block","Def → DEF Identifier VOID_MARKER OptParams TYPE Block","Def → DEF ThisProperty OptParams Block","Def → DEF ThisProperty OptParams TYPE Block","Def → DEF ThisProperty TYPE_PARAMS OptParams Block","Def → DEF ThisProperty TYPE_PARAMS OptParams TYPE Block","Def → DEF ThisProperty VOID_MARKER OptParams Block","Def → DEF ThisProperty VOID_MARKER OptParams TYPE Block","OptParams → ε","OptParams → CALL_START ParamList CALL_END","ParamList → ε","ParamList → Param","ParamList → ParamList , Param","ParamList → ParamList OptComma TERMINATOR Param","ParamList → ParamList OptComma INDENT ParamList OptComma OUTDENT","Param → TypedParamVar","Param → TypedParamVar = Expression","Param → ... TypedParamVar","Param → ...","TypedParamVar → ParamVar","TypedParamVar → ParamVar TYPE","TypedParamVar → ParamVar OPT_MARKER TYPE","TypedParamVar → ParamVar OPT_MARKER","ParamVar → Identifier","ParamVar → Array","ParamVar → Object","ParamVar → ThisProperty","Splat → ... Expression","ClassName → Identifier","Class → CLASS","Class → CLASS Block","Class → CLASS EXTENDS Expression","Class → CLASS EXTENDS Expression Block","Class → CLASS ClassName","Class → CLASS ClassName Block","Class → CLASS ClassName EXTENDS Expression","Class → CLASS ClassName EXTENDS Expression Block","Class → CLASS ThisProperty Block","Class → CLASS ThisProperty EXTENDS Expression Block","Enum → ENUM Identifier Block","Schema → SCHEMA SCHEMA_BODY","Component → COMPONENT ComponentBlock","Component → COMPONENT EXTENDS Expression ComponentBlock","ComponentBlock → INDENT ComponentBody OUTDENT","ComponentBody → ComponentLine","ComponentBody → ComponentBody TERMINATOR ComponentLine","ComponentBody → ComponentBody TERMINATOR","ComponentLine → Expression","ComponentLine → Statement","ComponentLine → OFFER Expression","ComponentLine → ACCEPT IDENTIFIER","ComponentLine → ACCEPT IDENTIFIER FROM ProviderPath","ProviderPath → IDENTIFIER","ProviderPath → ProviderPath . Property","Render → RENDER Block","Render → RENDER Expression","Super → SUPER . Property","Super → SUPER INDEX_START Expression INDEX_END","Super → SUPER INDEX_START INDENT Expression OUTDENT INDEX_END","Invocation → Value Arguments","Invocation → SUPER Arguments","Invocation → Value ES6_OPTIONAL_CALL Arguments","Invocation → Value ? Arguments","Invocation → Value MAYBE_DAMMIT Arguments","Invocation → Value MAYBE_DAMMIT","Invocation → DYNAMIC_IMPORT Arguments","Invocation → DYNAMIC_IMPORT DAMMIT Arguments","Arguments → CALL_START CALL_END","Arguments → CALL_START ArgList OptComma CALL_END","ArgList → Arg","ArgList → ArgList , Arg","ArgList → ArgList OptComma TERMINATOR Arg","ArgList → INDENT ArgList OptComma OUTDENT","ArgList → ArgList OptComma INDENT ArgList OptComma OUTDENT","Arg → Expression","Arg → Splat","OptComma → ε","OptComma → ,","Block → INDENT OUTDENT","Block → INDENT Body OUTDENT","Parenthetical → ( Body )","Parenthetical → ( INDENT Body OUTDENT )","Return → RETURN Expression","Return → RETURN INDENT Object OUTDENT","Return → RETURN","While → WHILE Expression Block","While → UNTIL Expression Block","While → WHILE Expression WHEN Expression Block","While → UNTIL Expression WHEN Expression Block","While → Expression WHILE Expression","While → Statement WHILE Expression","While → Expression UNTIL Expression","While → Statement UNTIL Expression","While → Expression WHILE Expression WHEN Expression","While → Statement WHILE Expression WHEN Expression","While → Expression UNTIL Expression WHEN Expression","While → Statement UNTIL Expression WHEN Expression","While → Loop","IfBlock → IF Expression Block","IfBlock → IF Expression Block IfElseTail","IfElseTail → ELSE IF Expression Block","IfElseTail → ELSE IF Expression Block IfElseTail","IfElseTail → ELSE Block","UnlessBlock → UNLESS Expression Block","UnlessBlock → UNLESS Expression Block ELSE Block","If → IfBlock","If → UnlessBlock","If → Statement POST_IF Expression","If → Expression POST_IF Expression","If → Statement POST_UNLESS Expression","If → Expression POST_UNLESS Expression","If → Expression POST_IF Expression ELSE INDENT Expression OUTDENT","If → Expression POST_IF Expression ELSE Expression","Try → TRY Block","Try → TRY Expression","Try → TRY Expression Catch","Try → TRY Statement","Try → TRY Statement Catch","Try → TRY Block Catch","Try → TRY Block Finalizer","Try → TRY Block Catch Finalizer","Try → TRY Expression Finalizer","Try → TRY Expression Catch Finalizer","Try → TRY Statement Finalizer","Try → TRY Statement Catch Finalizer","Finalizer → FINALLY Block","Finalizer → FINALLY Expression","Catch → CATCH CatchVar Block","Catch → CATCH Object Block","Catch → CATCH Array Block","Catch → CATCH Block","CatchVar → Identifier","CatchVar → Identifier TYPE","Throw → THROW Expression","Throw → THROW INDENT Object OUTDENT","Switch → SWITCH Expression INDENT Cases OUTDENT","Switch → SWITCH Expression INDENT Cases ELSE Block OUTDENT","Switch → SWITCH INDENT Cases OUTDENT","Switch → SWITCH INDENT Cases ELSE Block OUTDENT","Cases → When","Cases → Cases When","When → LEADING_WHEN SimpleArgs Block","When → LEADING_WHEN SimpleArgs Block TERMINATOR","SimpleArgs → Expression","SimpleArgs → SimpleArgs , Expression","For → FOR ForVariables FORIN Expression Block","For → FOR ForVariables FORIN Expression BY Expression Block","For → FOR ForVariables FORIN Expression WHEN Expression Block","For → FOR ForVariables FORIN Expression WHEN Expression BY Expression Block","For → FOR ForVariables FORIN Expression BY Expression WHEN Expression Block","For → FOR ForVariables FOROF Expression Block","For → FOR ForVariables FOROF Expression WHEN Expression Block","For → FOR OWN ForVariables FOROF Expression Block","For → FOR OWN ForVariables FOROF Expression WHEN Expression Block","For → FOR ForVariables FORAS Expression Block","For → FOR ForVariables FORAS Expression WHEN Expression Block","For → FOR AWAIT ForVariables FORAS Expression Block","For → FOR AWAIT ForVariables FORAS Expression WHEN Expression Block","For → FOR ForVariables FORASAWAIT Expression Block","For → FOR ForVariables FORASAWAIT Expression WHEN Expression Block","For → FOR Range Block","For → FOR Range BY Expression Block","For → Expression FOR ForVariables FORIN Expression","For → Expression FOR ForVariables FORIN Expression WHEN Expression","For → Expression FOR ForVariables FORIN Expression BY Expression","For → Expression FOR ForVariables FORIN Expression WHEN Expression BY Expression","For → Expression FOR ForVariables FORIN Expression BY Expression WHEN Expression","For → Expression FOR ForVariables FOROF Expression","For → Expression FOR ForVariables FOROF Expression WHEN Expression","For → Expression FOR OWN ForVariables FOROF Expression","For → Expression FOR OWN ForVariables FOROF Expression WHEN Expression","For → Expression FOR ForVariables FORAS Expression","For → Expression FOR ForVariables FORAS Expression WHEN Expression","For → Expression FOR AWAIT ForVariables FORAS Expression","For → Expression FOR AWAIT ForVariables FORAS Expression WHEN Expression","For → Expression FOR ForVariables FORASAWAIT Expression","For → Expression FOR ForVariables FORASAWAIT Expression WHEN Expression","ForValue → ParamVar","ForVariables → ForValue","ForVariables → ForValue , ForValue","Loop → LOOP Block","Loop → LOOP Expression Block","Operation → -- SimpleAssignable","Operation → ++ SimpleAssignable","Operation → SimpleAssignable --","Operation → SimpleAssignable ++","Operation → Value ?","Operation → Expression CAST","Operation → Expression SATISFIES","Operation → Expression TERNARY Expression : Expression","Operation → UNARY Expression","Operation → DO Expression","Operation → UNARY_MATH Expression","Operation → AWAIT Expression","Operation → AWAIT INDENT Object OUTDENT","Operation → YIELD","Operation → YIELD Expression","Operation → YIELD INDENT Object OUTDENT","Operation → YIELD FROM Expression","Operation → - Expression","Operation → + Expression","Operation → Expression ** Expression","Operation → Expression + Expression","Operation → Expression - Expression","Operation → Expression MATH Expression","Operation → Expression SHIFT Expression","Operation → Expression & Expression","Operation → Expression ^ Expression","Operation → Expression | Expression","Operation → Expression COMPARE Expression","Operation → Expression MATCH Expression","Operation → Expression RELATION Expression","Operation → Expression && Expression","Operation → Expression || Expression","Operation → Expression ?? Expression","Operation → Expression && Return","Operation → Expression || Return","Operation → Expression ?? Return","Operation → Expression && STATEMENT","Operation → Expression || STATEMENT","Operation → Expression ?? STATEMENT","Operation → Expression THEN Expression","Operation → Expression ELSE Expression","Operation → Expression THEN Return","Operation → Expression ELSE Return","Operation → Expression THEN STATEMENT","Operation → Expression ELSE STATEMENT"],ruleActions:(e,t,r,n)=>{let i=t,s=t.length-1;switch(e){case 1:return["program"];case 2:return["program",...i[s]];case 3:case 35:case 89:case 140:case 257:case 261:case 268:case 303:case 342:case 375:case 400:case 470:case 474:case 509:return[i[s]];case 4:case 36:case 90:case 269:case 304:case 343:case 376:case 401:{let a=i[s-2];return a.push(i[s]),a}break;case 5:case 142:case 180:case 264:case 340:case 377:return i[s-1];case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 40:case 42:case 44:case 94:case 97:case 99:case 100:case 101:case 102:case 103:case 104:case 105:case 106:case 107:case 108:case 109:case 110:case 111:case 112:case 113:case 114:case 115:case 116:case 117:case 118:case 119:case 120:case 121:case 122:case 123:case 124:case 125:case 126:case 128:case 130:case 131:case 134:case 135:case 136:case 138:case 145:case 146:case 148:case 149:case 175:case 176:case 177:case 178:case 179:case 181:case 182:case 183:case 205:case 206:case 228:case 229:case 230:case 231:case 232:case 237:case 238:case 242:case 243:case 252:case 273:case 283:case 284:case 285:case 286:case 287:case 311:case 312:case 313:case 314:case 315:case 316:case 317:case 346:case 350:case 354:case 355:case 356:case 357:case 359:case 378:case 379:case 383:case 405:case 406:case 407:case 408:case 428:case 433:case 436:case 437:case 456:case 462:case 508:return i[s];case 14:return["type-decl",i[s]];case 15:case 351:case 463:return["typed-var",i[s-1],i[s]];case 16:case 352:return["typed-var",i[s-2],i[s]];case 17:return["def-sig",i[s-2],i[s-1],i[s]];case 18:return["import",i[s]];case 19:case 20:case 31:case 32:return["import",i[s-2],i[s]];case 21:case 33:return["import","{}",i[s]];case 22:case 34:return["import",i[s-4],i[s]];case 23:return["import",i[s-4],i[s-2],i[s]];case 24:return["import",i[s-7],i[s-4],i[s]];case 25:return["import",[i[s-1],i[s]],i[s-2]];case 26:case 27:return["import",i[s-4],[i[s-1],i[s]],i[s-2]];case 28:return["import",i[s-6],[i[s-1],i[s]],i[s-2]];case 29:return["import",i[s-6],i[s-4],[i[s-1],i[s]],i[s-2]];case 30:return["import",i[s-9],i[s-6],[i[s-1],i[s]],i[s-2]];case 37:case 91:case 270:case 305:case 344:case 402:{let a=i[s-3];return a.push(i[s]),a}break;case 38:case 92:case 143:case 399:case 403:return i[s-2];case 39:case 93:case 271:case 306:case 345:case 404:{let a=i[s-5];return a.push(...i[s-2]),a}break;case 41:case 43:case 95:case 96:case 98:case 510:return[i[s-2],i[s]];case 45:return["*",i[s]];case 46:return["export","{}"];case 47:return["export",i[s-2]];case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:return["export",i[s]];case 56:return["export-default",i[s]];case 57:return["export-default",i[s-1]];case 58:return["export-all",i[s]];case 59:case 60:return["export-all",i[s],i[s-2]];case 61:return["export-from","{}",i[s]];case 62:case 63:return["export-from",i[s-4],i[s]];case 64:case 150:case 162:case 277:return["=",i[s-2],i[s]];case 65:case 67:case 70:case 151:case 153:case 156:case 163:case 164:return["=",i[s-3],i[s]];case 66:case 152:case 278:return["=",i[s-4],i[s-1]];case 68:case 154:case 157:case 159:return["=",i[s-4],i[s]];case 69:case 155:case 158:return["=",i[s-5],i[s-1]];case 71:case 169:return["void-assign",i[s-3],i[s]];case 72:case 170:return["void-assign",i[s-4],i[s]];case 73:case 171:return["void-assign",i[s-5],i[s-1]];case 74:case 172:return["void-readonly",i[s-3],i[s]];case 75:case 173:return["void-readonly",i[s-4],i[s]];case 76:case 174:return["void-readonly",i[s-5],i[s-1]];case 77:case 185:case 186:return["state",i[s-3],i[s]];case 78:case 187:return["state",i[s-4],i[s]];case 79:return["state",i[s-5],i[s-1]];case 80:case 82:case 189:case 190:return["computed",i[s-3],i[s]];case 81:case 191:return["computed",i[s-4],i[s]];case 83:case 199:case 200:return["readonly",i[s-3],i[s]];case 84:case 201:return["readonly",i[s-4],i[s]];case 85:return["readonly",i[s-5],i[s-1]];case 86:case 88:case 203:return["effect",i[s-3],i[s]];case 87:return["effect",i[s-4],i[s]];case 127:case 296:return["dammit!",i[s-1]];case 129:case 236:return["tagged-template",i[s-2],i[s]];case 132:return"undefined";case 133:return"null";case 137:return["symbol",i[s]];case 139:return["str",...i[s-1]];case 141:case 262:case 471:{let a=i[s-1];return a.push(i[s]),a}break;case 144:return"";case 147:return["here-regex",i[s],...i[s-1]];case 160:return["=",i[s-5],i[s]];case 161:return["=",i[s-6],i[s-1]];case 165:case 323:case 535:case 536:case 540:case 542:return[i[s-1],i[s-2],i[s]];case 166:return[i[s-3],i[s-4],i[s-1]];case 167:return[i[s-2],i[s-3],i[s]];case 168:return[".=",i[s-2],i[s]];case 184:return["state",i[s-2],i[s]];case 188:return["computed",i[s-2],i[s]];case 192:return["gate",i[s-2],i[s]];case 193:return["gate",i[s-3],i[s]];case 194:return["gate",i[s-4],i[s-2]];case 195:return["gate",i[s-5],i[s-2]];case 196:return["gate",i[s-6],i[s-4],...i[s-2]];case 197:return["gate",i[s-7],i[s-4],...i[s-2]];case 198:return["readonly",i[s-2],i[s]];case 202:return["effect",i[s-2],i[s]];case 204:return["effect",null,i[s]];case 207:case 220:case 221:case 233:case 292:case 384:return[".",i[s-2],i[s]];case 208:case 234:case 293:return["?.",i[s-2],i[s]];case 209:case 212:case 235:case 294:return["[]",i[s-3],i[s-1]];case 210:case 213:case 295:return["[]",i[s-5],i[s-2]];case 211:return["regex-index",i[s-5],i[s-3],i[s-1]];case 214:return["optindex",i[s-4],i[s-1]];case 215:return["optindex",i[s-6],i[s-2]];case 216:case 299:return[".{}",i[s-4],...i[s-2]];case 217:case 300:return["?.{}",i[s-4],...i[s-2]];case 218:case 301:return[".{}",i[s-6],...i[s-3]];case 219:case 302:return["?.{}",i[s-6],...i[s-3]];case 222:case 223:case 224:case 458:case 459:case 460:case 521:case 523:return[i[s-1],i[s]];case 225:return["await",["new",i[s-1]]];case 226:return["await",["new",[i[s-2],...i[s]]]];case 227:case 289:case 290:case 291:case 390:case 396:return[i[s-1],...i[s]];case 239:return[i[s-1],i[s-3],i[s]];case 240:return[i[s-1],i[s-4],i[s]];case 241:return[i[s-1],[],i[s]];case 244:case 522:return["do-iife",i[s]];case 245:case 246:return"this";case 247:case 248:return[".","this",i[s]];case 249:return["array"];case 250:return["array",...i[s-1]];case 251:return["array",...i[s-2],...i[s-1]];case 253:{let a=i[s-2];return a.push(...i[s]),a}break;case 254:{let a=i[s-3];return a.push(...i[s]),a}break;case 255:return[...i[s-2],...i[s-1]];case 256:{let a=i[s-5];return a.push(...i[s-4],...i[s-2],...i[s-1]),a}break;case 258:return[...i[s-1],i[s]];case 259:case 267:case 339:case 341:case 398:return[];case 260:return[...i[s]];case 263:return null;case 265:return["object",...i[s-2]];case 266:return["map",...i[s-2]];case 272:return[null,i[s],i[s]];case 274:case 276:return[":",i[s-2],i[s]];case 275:return[":",i[s-4],i[s-1]];case 279:return["void-pair",i[s-3],i[s]];case 280:return["void-pair",i[s-5],i[s-1]];case 281:case 282:case 358:return["...",i[s]];case 288:case 391:return["super",...i[s]];case 297:case 394:return["dammit?",i[s-2],...i[s]];case 298:case 395:return["dammit?",i[s-1]];case 307:return[i[s],i[s],null];case 308:return[i[s-2],i[s],null];case 309:return[i[s-2],i[s-2],i[s]];case 310:return[i[s-4],i[s-2],i[s]];case 318:return["dynamicKey",i[s-1]];case 319:return["[]","this",i[s-1]];case 320:return"..";case 321:return"...";case 322:return[i[s-2],i[s-3],i[s-1]];case 324:return[i[s],i[s-1],null];case 325:return[i[s-1],null,i[s]];case 326:return[i[s],null,null];case 327:case 333:return["def",i[s-2],i[s-1],i[s]];case 328:case 334:return["def",i[s-3],i[s-2],i[s]];case 329:case 335:return["def",i[s-3],i[s-1],i[s]];case 330:case 336:return["def",i[s-4],i[s-2],i[s]];case 331:case 337:return["void-def",i[s-3],i[s-1],i[s]];case 332:case 338:return["void-def",i[s-4],i[s-2],i[s]];case 347:return["default",i[s-2],i[s]];case 348:return["rest",i[s]];case 349:return["expansion"];case 353:return["typed-var",i[s-1],""];case 360:return["class",null,null];case 361:return["class",null,null,i[s]];case 362:return["class",null,i[s]];case 363:return["class",null,i[s-1],i[s]];case 364:return["class",i[s],null];case 365:case 368:return["class",i[s-1],null,i[s]];case 366:return["class",i[s-2],i[s]];case 367:case 369:return["class",i[s-3],i[s-1],i[s]];case 370:return["enum",i[s-1],i[s]];case 371:return["schema",i[s]];case 372:return["component",null,i[s]];case 373:return["component",i[s-1],i[s]];case 374:case 410:return["block",...i[s-1]];case 380:return["offer",i[s]];case 381:return["accept",i[s]];case 382:return["accept",i[s-2],i[s]];case 385:case 386:return["render",i[s]];case 387:return[".","super",i[s]];case 388:return["[]","super",i[s-1]];case 389:return["[]","super",i[s-2]];case 392:case 393:return["optcall",i[s-2],...i[s]];case 397:return["await",["import",...i[s]]];case 409:return["block"];case 411:return i[s-1].length===1?(Array.isArray(i[s-1][0])&&(i[s-1][0].parenthesized=!0),i[s-1][0]):["block",...i[s-1]];case 412:return i[s-2].length===1?(Array.isArray(i[s-2][0])&&(i[s-2][0].parenthesized=!0),i[s-2][0]):["block",...i[s-2]];case 413:return["return",i[s]];case 414:return["return",i[s-1]];case 415:return["return"];case 416:return["while",i[s-1],i[s]];case 417:return["while",["!",i[s-1]],i[s]];case 418:return["while",i[s-3],i[s-1],i[s]];case 419:return["while",["!",i[s-3]],i[s-1],i[s]];case 420:case 421:return["while",i[s],[i[s-2]]];case 422:case 423:return["while",["!",i[s]],[i[s-2]]];case 424:case 425:return["while",i[s-2],i[s],[i[s-4]]];case 426:case 427:return["while",["!",i[s-2]],i[s],[i[s-4]]];case 429:case 431:return["if",i[s-1],i[s]];case 430:case 432:return["if",i[s-2],i[s-1],i[s]];case 434:return["if",["!",i[s-1]],i[s]];case 435:return["if",["!",i[s-3]],i[s-2],i[s]];case 438:case 439:return["if",i[s],[i[s-2]]];case 440:case 441:return["if",["!",i[s]],[i[s-2]]];case 442:return["?:",i[s-4],i[s-6],i[s-1]];case 443:return["?:",i[s-2],i[s-4],i[s]];case 444:case 445:case 447:return["try",i[s]];case 446:case 448:case 449:case 450:case 452:case 454:return["try",i[s-1],i[s]];case 451:case 453:case 455:return["try",i[s-2],i[s-1],i[s]];case 457:return["block",i[s]];case 461:return[null,i[s]];case 464:return["throw",i[s]];case 465:return["throw",i[s-1]];case 466:return["switch",i[s-3],i[s-1],null];case 467:return["switch",i[s-5],i[s-3],i[s-1]];case 468:return["switch",null,i[s-1],null];case 469:return["switch",null,i[s-3],i[s-1]];case 472:return["when",i[s-1],i[s]];case 473:return["when",i[s-2],i[s-1]];case 475:return[...i[s-2],i[s]];case 476:return["for-in",i[s-3],i[s-1],null,null,i[s]];case 477:return["for-in",i[s-5],i[s-3],i[s-1],null,i[s]];case 478:return["for-in",i[s-5],i[s-3],null,i[s-1],i[s]];case 479:return["for-in",i[s-7],i[s-5],i[s-1],i[s-3],i[s]];case 480:return["for-in",i[s-7],i[s-5],i[s-3],i[s-1],i[s]];case 481:return["for-of",i[s-3],i[s-1],!1,null,i[s]];case 482:return["for-of",i[s-5],i[s-3],!1,i[s-1],i[s]];case 483:return["for-of",i[s-3],i[s-1],!0,null,i[s]];case 484:return["for-of",i[s-5],i[s-3],!0,i[s-1],i[s]];case 485:return["for-as",i[s-3],i[s-1],!1,null,i[s]];case 486:return["for-as",i[s-5],i[s-3],!1,i[s-1],i[s]];case 487:case 489:return["for-as",i[s-3],i[s-1],!0,null,i[s]];case 488:case 490:return["for-as",i[s-5],i[s-3],!0,i[s-1],i[s]];case 491:return["for-in",[],i[s-1],null,null,i[s]];case 492:return["for-in",[],i[s-3],i[s-1],null,i[s]];case 493:return["comprehension",i[s-4],[["for-in",i[s-2],i[s],null]],[]];case 494:return["comprehension",i[s-6],[["for-in",i[s-4],i[s-2],null]],[i[s]]];case 495:return["comprehension",i[s-6],[["for-in",i[s-4],i[s-2],i[s]]],[]];case 496:return["comprehension",i[s-8],[["for-in",i[s-6],i[s-4],i[s]]],[i[s-2]]];case 497:return["comprehension",i[s-8],[["for-in",i[s-6],i[s-4],i[s-2]]],[i[s]]];case 498:return["comprehension",i[s-4],[["for-of",i[s-2],i[s],!1]],[]];case 499:return["comprehension",i[s-6],[["for-of",i[s-4],i[s-2],!1]],[i[s]]];case 500:return["comprehension",i[s-5],[["for-of",i[s-2],i[s],!0]],[]];case 501:return["comprehension",i[s-7],[["for-of",i[s-4],i[s-2],!0]],[i[s]]];case 502:return["comprehension",i[s-4],[["for-as",i[s-2],i[s],!1,null]],[]];case 503:return["comprehension",i[s-6],[["for-as",i[s-4],i[s-2],!1,null]],[i[s]]];case 504:return["comprehension",i[s-5],[["for-as",i[s-2],i[s],!0,null]],[]];case 505:return["comprehension",i[s-7],[["for-as",i[s-4],i[s-2],!0,null]],[i[s]]];case 506:return["comprehension",i[s-4],[["for-as",i[s-2],i[s],!0,null]],[]];case 507:return["comprehension",i[s-6],[["for-as",i[s-4],i[s-2],!0,null]],[i[s]]];case 511:return["loop",i[s]];case 512:return["loop-n",i[s-1],i[s]];case 513:return["--",i[s],!1];case 514:return["++",i[s],!1];case 515:return["--",i[s-1],!0];case 516:return["++",i[s-1],!0];case 517:return["?",i[s-1]];case 518:return["cast",i[s-1],i[s]];case 519:return["satisfies",i[s-1],i[s]];case 520:return["?:",i[s-4],i[s-2],i[s]];case 524:return["await",i[s]];case 525:return["await",i[s-1]];case 526:return["yield"];case 527:return["yield",i[s]];case 528:return["yield",i[s-1]];case 529:return["yield-from",i[s]];case 530:return["-",i[s]];case 531:return["+",i[s]];case 532:return["**",i[s-2],i[s]];case 533:return["+",i[s-2],i[s]];case 534:return["-",i[s-2],i[s]];case 537:return["&",i[s-2],i[s]];case 538:return["^",i[s-2],i[s]];case 539:return["|",i[s-2],i[s]];case 541:return["=~",i[s-2],i[s]];case 543:case 546:case 549:case 552:case 554:case 556:return["&&",i[s-2],i[s]];case 544:case 547:case 550:case 553:case 555:case 557:return["||",i[s-2],i[s]];case 545:case 548:case 551:return["??",i[s-2],i[s]]}},parse(e,{primitives:t=!1,tolerant:r=!1}={}){let n,i,s,a,o,l,c,h,f,u,d,p,m,g,b,S,w,R,T,F,L,C,N,D,O,W,[H,G,k,v]=[[0],[null],[null],[[]]],j=this.parseTable,X=1,x=[],Z=[],U=24,r1=e.length;if(r)while(r1>0&&(e[r1-1]===` +`||e[r1-1]==="\r"))r1--;let Q=new Set,l1=!1,I=[],s1=[],e1=[],K=new WeakMap,a1=1,A=Object.create(this.lexer),V={ctx:{}},B=this.ctx;for(let M in B){if(!Object.hasOwn(B,M))continue;let n1=B[M];V.ctx[M]=n1}if(A.setInput(e,V.ctx),r&&Array.isArray(A.lexDiagnostics))x.push(...A.lexDiagnostics);[V.ctx.lexer,V.ctx.parser]=[A,this];let i1=()=>{let M=A.lex()||X;if(typeof M!=="number")M=this.symbolIds[M]||M;return M},h1=null,f1=null,u1={},p1=()=>{h=[];let M=j[W];for(let n1 in M){if(!Object.hasOwn(M,n1))continue;if(this.tokenNames[n1]&&+n1>2){if(!h.includes(this.tokenNames[n1]))h.push(this.tokenNames[n1])}}return h},c1=[this.symbolIds.INDENT,this.symbolIds.OUTDENT,this.symbolIds.TERMINATOR],d1=()=>{if(h1===X)return"end of input";let M=this.tokenNames[h1]||h1,n1=A.text,_=typeof n1==="string"&&n1.trim().length>0&&n1.length<=24&&!c1.includes(h1)&&!/^["'`]/.test(n1);if(_&&A.token?.generated)return`implicit '${n1}'`;return _?`'${n1}'`:`'${M}'`};while(!0){if(W=H[H.length-1],h1==null)if(Z.length>0)R=Z.shift(),h1=R.symbol,f1=R.loc,A.text=R.text,A.loc=R.loc,A.token=R.token;else h1=i1(),f1=h1===X?{start:e.length,end:e.length}:A.loc??null;if(n=j[W]?.[h1],n==null&&r&&U>0){a=h1===X?r1:f1?.start??r1,F=(M=null)=>{if(l1)return;if(l1=!0,u=d1(),h=M!=null?[this.tokenNames[M]||M]:p1(),b=`Unexpected ${u}`,h.length)b+=` — expected ${h.join(", ")}`;return x.push({message:b,start:a,end:f1?.end??a,expected:h,got:u})},i=h1===X||A.token?.generated,d=function(M){return`${H.length}:${W}:${M}`},p=null;for(let M of this.repairTable[W]??[]){if(Q.has(d(M)))continue;if(i||M===this.symbolIds.TERMINATOR){p=M;break}}if(p!=null)F(p),U--,Q.add(d(p)),Z.unshift({symbol:h1,loc:f1,text:A.text,token:A.token}),h1=p,f1={start:a,end:a},A.text="",A.loc=f1,A.token={generated:!0,hole:!0},n=j[W]?.[h1];else if(h1!==X){if(F(),U--,!A.token?.hole)Q.clear();h1=null;continue}}if(n==null){if(h=p1(),u=d1(),O=f1?.start??0,c=f1?.end??O,b=`Unexpected ${u}`,h.length)b+=` — expected ${h.join(", ")}`;return x.push({message:b,start:O,end:c,expected:h,got:u}),{sexpr:null,stores:null,diagnostics:x,trivia:A.trivia??null,tokens:A.tokens??null}}if(n>0){if(r&&!A.token?.hole)Q.clear();if(H.push(h1,n),G.push(A.text),k.push(A.loc??null),t)v.push(Array.isArray(A.text?.primitiveSpans)?A.text.primitiveSpans:A.loc!=null?[{value:A.text,sourceStart:A.loc.start,sourceEnd:A.loc.end}]:[]);h1=null}else if(n<0){if(this.ctx?.onReduce)this.ctx.onReduce(-n);if(g=this.ruleTable[-n*2+1],D=(()=>{if(g)return f=k[k.length-g],m=k[k.length-1],{start:f?.start??0,end:m?.end??(f?.end??0)};else return s=f1?.start??(k[k.length-1]?.end??0),{start:s,end:s}})(),u1.$=G[G.length-(g||1)],u1._$=D,T=this.ruleActions.call(u1,-n,G,k,V.ctx),T!=null)u1.$=T;if(o=G.length-g,l=[],t)for(let M of this.primitiveRefs[-n])l.push(...v[o+M-1]??[]);if(S=u1.$,Array.isArray(S)&&K.has(S)&&this.accumulators[-n])C=I[K.get(S)-1],C.sourceStart=D.start,C.sourceEnd=D.end;if(Array.isArray(S)&&!K.has(S))N=this.semantics[-n],o=G.length-g,L=(M,n1,_,z,q)=>{let t1,P,Y,o1,E1,y1,S1=[],_1=1/0,v1=-1/0;for(let g1 of z){t1=M;for(let m1 of g1.path)t1=t1[m1];if(!(Array.isArray(t1)&&!K.has(t1)))throw Error(`parse: nested annotation '${g1.role}' of rule ${-n} does not address a fresh array`);P=L(t1,g1.kind,g1.roles,g1.nested,null),S1.push(P),_1=Math.min(_1,I[P-1].sourceStart),v1=Math.max(v1,I[P-1].sourceEnd)}for(let g1 of _)if(g1.grammarRef!=null){if(E1=k[o+g1.grammarRef-1],E1==null)throw Error(`parse: missing loc for grammarRef ${g1.grammarRef} of rule ${-n} — lexer protocol violation`);_1=Math.min(_1,E1.start),v1=Math.max(v1,E1.end)}let R1=q??(_1===1/0?D:{start:_1,end:v1}),w1=a1++;K.set(M,w1),I.push({nodeId:w1,fileId:0,semanticKind:n1,ruleId:-n,sourceStart:R1.start,sourceEnd:R1.end});for(let g1 of _)if(g1.grammarRef!=null){if(o1=o+g1.grammarRef-1,E1=k[o1],y1={nodeId:w1,role:g1.name,grammarRef:g1.grammarRef,childSlot:g1.childSlot,sourceStart:E1.start,sourceEnd:E1.end,childNodeId:null,fileId:0},g1.spread)y1.spread=!0;else y1.childNodeId=K.get(G[o1])??null;s1.push(y1)}else s1.push({nodeId:w1,role:g1.name,grammarRef:null,childSlot:g1.childSlot,literal:g1.literal,fileId:0});for(let g1=0;g1{let t=Object.create(u3);return Object.defineProperty(t,"ctx",{value:{...e},enumerable:!1,writable:!0,configurable:!0}),t},vs=Os();var nr=Os,F4=vs.parse.bind(vs);var Is=()=>{throw Error("rip: filesystem access is unavailable in the browser")};class ar{constructor({nodes:e,roles:t,primitives:r=[],nodeIds:n=null}){this.nodes=e,this.roles=t,this.primitives=r,this.nodeIds=n,this.byId=new Map(e.map((i)=>[i.nodeId,i])),this.rolesByNode=new Map,this.primitivesByValue=new Map;for(let i of t){let s=this.rolesByNode.get(i.nodeId);if(!s)s={list:[],byName:new Map},this.rolesByNode.set(i.nodeId,s);s.list.push(i),s.byName.set(i.role,i)}for(let i of r){let s=this.primitivesByValue.get(i.value);if(!s)this.primitivesByValue.set(i.value,s=[]);s.push(i)}for(let i of this.primitivesByValue.values())i.sort((s,a)=>s.sourceStart-a.sourceStart)}idOf(e){return this.nodeIds?.get(e)??null}alias(e,t){let r=this.nodeIds?.get(t);if(r!=null)this.nodeIds.set(e,r);return e}node(e){return this.byId.get(e)??null}nodesByKind(e){return this.nodes.filter((t)=>t.semanticKind===e)}rolesOf(e){return this.rolesByNode.get(e)?.list??[]}role(e,t){return this.rolesByNode.get(e)?.byName.get(t)??null}primitiveSpans(e,t,r){return(this.primitivesByValue.get(e)??[]).filter((n)=>t<=n.sourceStart&&n.sourceEnd<=r)}selfSpan(e){let t=this.byId.get(e);return t?[t.sourceStart,t.sourceEnd]:null}}var sr=(e)=>{if(e.length===0)return null;let t=e[e.length>>1].start,r=[],n=[],i=[];for(let s of e){if(J.on)J.n++;if(s.end<=t)n.push(s);else if(s.start>t)i.push(s);else r.push(s)}return{center:t,byStart:r,byEnd:[...r].sort((s,a)=>a.end-s.end),left:sr(n),right:sr(i)}},d3=(e,t,r)=>{let n=e;while(n!==null){if(J.on)J.n++;if(tt)break;r.push(i)}n=n.left}else if(t>n.center){for(let i of n.byEnd){if(J.on)J.n++;if(i.end<=t)break;r.push(i)}n=n.right}else{for(let i of n.byStart){if(J.on)J.n++;r.push(i)}break}}return r},wi=new Set(["tsDirective","shorthandProp","identifier","literal"]);class Se{constructor(e){this.rows=e,this._genTree=null,this._srcTree=null,this._genCount=-1,this._srcCount=-1}_tree(e){let t=e==="generated";if((t?this._genCount:this._srcCount)!==this.rows.length){let r=[];if(this.rows.forEach((n,i)=>{if(J.on)J.n++;let s=t?n.generatedStart:n.sourceStart,a=t?n.generatedEnd:n.sourceEnd;if(s!=null&&sn.start-i.start||n.i-i.i),t)this._genTree=sr(r),this._genCount=this.rows.length;else this._srcTree=sr(r),this._srcCount=this.rows.length}return t?this._genTree:this._srcTree}_stab(e,t){let r=d3(this._tree(e),t,[]);return r.sort((n,i)=>n.width-i.width||n.i-i.i),r.map((n)=>this.rows[n.i])}of(e,t){return this.rows.filter((r)=>r.nodeId===e&&r.role===t).sort((r,n)=>r.generatedStart-n.generatedStart)}atGenerated(e){return this._stab("generated",e)}atSource(e){return this._stab("source",e)}static isDirect(e){return e.mappingKind==="exact"||e.mappingKind==="synthetic"}directAtGenerated(e){return this.atGenerated(e).find(Se.isDirect)??null}directAtSource(e){let t=this.atSource(e).filter(Se.isDirect);if(t.length===0)return null;let r=(i)=>i.sourceEnd-i.sourceStart;return t.filter((i)=>r(i)===r(t[0])).find((i)=>!wi.has(i.role))??t[0]}zeroWidthExactAtSource(e){if(this._zeroSrcCount!==this.rows.length){this._zeroSrc=new Map;for(let t of this.rows){if(t.mappingKind!=="exact"||t.sourceStart!==t.sourceEnd)continue;let r=this._zeroSrc.get(t.sourceStart);if(r===void 0||t.generatedStarts.mappingKind==="exact"||s.mappingKind==="cover"&&s.role==="$self"&&s.generatedStart!==s.generatedEnd,t=(s)=>s.mappingKind==="exact"?0:1,r=(s)=>s.generatedEnd-s.generatedStart,n=(s)=>s.sourceEnd-s.sourceStart,i=new Map;for(let s of this.rows){if(!e(s))continue;let a=i.get(s.generatedStart);if(!a||t(s)s.generatedStart-a.generatedStart)}}class Re{constructor(e,{source:t=null,primitives:r=!1}={}){this.stores=e,this.source=t,this.trackPrimitives=r,this.suppressClaims=!1,this.claimWithin=null,this.chunks=[],this.length=0,this.openMarks=0,this.rows=[],this.exactSourceSpans=new Set,this.markStack=[],this.exactRanges=new Map,this.tsRegions=[],this.tsDepth=0,this.echoSpans=[]}tsOnly(e){let t=this.length;if(this.tsDepth++,e(),this.tsDepth--,this.tsDepth===0&&this.length>t)this.tsRegions.push([t,this.length])}echo(e){let t=this.length;if(e(),this.length>t)this.echoSpans.push([t,this.length])}get currentMark(){return this.markStack[this.markStack.length-1]??null}get offset(){return this.length}get code(){if(this.openMarks>0)return this.chunks.join("");if(this.chunks.length!==1)this.chunks=[this.chunks.join("")],this.exactRanges.clear();return this.chunks[0]}emit(e){return this.chunks.push(e),this.length+=e.length,this}beginMark(e,t){let r,n,i=null;if(t==="$self"){let s=this.stores.node(e);r=s.sourceStart,n=s.sourceEnd}else{let s=this.stores.role(e,t);if("literal"in s)i="synthetic",r=n=this.stores.node(e).sourceStart;else r=s.sourceStart,n=s.sourceEnd}this.openMarks++,this.markStack.push({nodeId:e,role:t,sourceStart:r,sourceEnd:n,mappingKind:i,generatedStart:this.length,chunkStart:this.chunks.length})}endMark(){let e=this.markStack.pop();this.openMarks--;let{mappingKind:t}=e;if(t===null){if(t=this.matchesSource(e)?"exact":"cover",t==="cover"&&Re.NORMALIZED_ROLES.has(e.role))this.layoutTwinSegments(e)}if(this.rows.push({nodeId:e.nodeId,role:e.role,mappingKind:t,sourceStart:e.sourceStart,sourceEnd:e.sourceEnd,generatedStart:e.generatedStart,generatedEnd:this.length,fileId:0}),this.trackPrimitives&&t==="exact")this.exactSourceSpans.add(`${e.sourceStart}:${e.sourceEnd}`)}static NORMALIZED_ROLES=new Set(["annotation","returnType"]);layoutTwinSegments(e){if(this.source===null)return;let t=e.sourceEnd-e.sourceStart,r=this.length-e.generatedStart;if(t===0||r===0||t>256||r>256)return;let n=this.source.slice(e.sourceStart,e.sourceEnd),i=this.chunks.slice(e.chunkStart).join("");if(n.replace(/\s+/g," ")!==i.replace(/\s+/g," "))return;let s=0,a=0;while(s0)a=a.filter((p)=>!t.some(([m,g])=>p.sourceStart>=m&&p.sourceEnd<=g));if(a.length===0)return null;let o=r.primitiveClaims??(r.primitiveClaims=new Map),l=o.get(e);if(l===void 0)o.set(e,l=new Set);let c=a.filter((p)=>!l.has(p.sourceStart)),h=c.filter((p)=>!this.exactSourceSpans.has(`${p.sourceStart}:${p.sourceEnd}`)),f=h.length>0?h:c,u=f.filter((p)=>p.nodeId===r.nodeId),d=(u.length>0?u:f)[0];if(d===void 0){let p=[...l].pop();if(d=p===void 0?void 0:a.find((m)=>m.sourceStart===p),d===void 0){let m=a.filter((g)=>this.exactSourceSpans.has(`${g.sourceStart}:${g.sourceEnd}`));d=m[m.length-1]}if(d===void 0)return null}if(l.add(d.sourceStart),this.source!==null){let p=this.source.slice(d.sourceStart,d.sourceEnd);if(p!==e&&p.endsWith(e)&&!/[\w$]/.test(p[p.length-e.length-1]??""))return[d.sourceEnd-e.length,d.sourceEnd]}return[d.sourceStart,d.sourceEnd]}matchesSource(e){if(this.source===null)return!1;if(e.sourceStart<0||e.sourceEnd>this.source.length)throw Error(`builder: mark (nodeId ${e.nodeId}, role '${e.role}') has source span [${e.sourceStart}, ${e.sourceEnd}) outside the source text [0, ${this.source.length}) — store-protocol violation`);let t=this.length;if(t-e.generatedStart!==e.sourceEnd-e.sourceStart)return!1;let r=e.sourceStart-e.generatedStart,n=this.exactRanges.get(r),i=n!==void 0&&n.genEnd<=t,s=this.chunks.length,{generatedStart:a,chunkStart:o}=e;while(o=n.genStart&&a{throw Error("rip: schema type story is unavailable in the browser")},Ds=()=>!1;var m3={__proto__:null,maxlength:"maxLength",minlength:"minLength",readonly:"readOnly",tabindex:"tabIndex",colspan:"colSpan",rowspan:"rowSpan",contenteditable:"contentEditable",formaction:"formAction",formenctype:"formEnctype",formmethod:"formMethod",formnovalidate:"formNoValidate",formtarget:"formTarget",novalidate:"noValidate",crossorigin:"crossOrigin",usemap:"useMap",srclang:"srcLang",inputmode:"inputMode",cellpadding:"cellPadding",cellspacing:"cellSpacing",bgcolor:"bgColor",valign:"vAlign",nowrap:"noWrap",for:"htmlFor",datetime:"dateTime",ismap:"isMap",nomodule:"noModule",playsinline:"playsInline",dirname:"dirName",accesskey:"accessKey",enterkeyhint:"enterKeyHint",referrerpolicy:"referrerPolicy",fetchpriority:"fetchPriority",imagesrcset:"imageSrcset",imagesizes:"imageSizes",popovertargetaction:"popoverTargetAction",allowfullscreen:"allowFullscreen"},p3="type __RipClassValue = string | boolean | null | undefined | Record | __RipClassValue[];",g3="/** What a component projects through `slot`: the DOM its parent built for it — an element, a fragment, or a text node — or a value rendered as text. */\n"+"type __RipChildren = Node | string | number | boolean | null;",xs="(...args: (__RipClassValue | __RipClassValue[])[]) => string",b3=`type __RipAV = E extends Record ? V | string : F; +type __RipProp = E extends Record ? V : any;`,y3=["animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","columnCount","columns","flex","flexGrow","flexShrink","fontWeight","gridArea","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","lineHeight","opacity","order","orphans","scale","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","webkitLineClamp"],Cs=y3.map((e)=>`'${e}'`).join(" | "),Ps=(e)=>`{ [K in Exclude]?: K extends ${e} ? string | number : string | 0 } & { [k: \`--\${string}\`]: string | number }`,S3=`type __RipUnitless = ${Cs}; +`+"/** An inline style as an object: CSS property names, camelCased, plus `--custom` properties. Values are written as given — no unit is appended — so a number is admitted only where CSS reads one bare: the unitless properties, and 0 anywhere. */\n"+`type __RipCSSProperties = ${Ps("__RipUnitless")};`,q4=`(${Ps(Cs)})`,Ni="__RipCSSProperties | string",Ls="(el: object, value: __RipCSSProperties | string | null | undefined) => void",or="__RipClassValue | __RipClassValue[]",Ms=" [k: `data-${string}`]: string | number | boolean;\n [k: `aria-${string}`]: string | number | boolean;",Ai=(e)=>/^[A-Za-z_$][\w$]*$/.test(e)?e:`'${e}'`,lr=(e,t)=>`__RipAttrVals_${t?"svg_":""}${e}`,vi=(e,t)=>`__RipEl_${t?"svg_":""}${e}`,xe=(e,t)=>`${t?"SVGElementTagNameMap":"HTMLElementTagNameMap"}['${e}']`,ot=(e,t)=>typeof e==="string"&&(t?Ve.has(e):Bt.has(e));function js(e,t){let r=m3[e]??e,n=e==="class"?or:e==="style"?Ni:`__RipAV<${t}, '${r}'>`;return[` ${Ai(e)}: ${n};`]}function R3(){let e=[];for(let t of De)e.push(...js(t,"HTMLElement"));return`interface __RipGlobalAttrVals { ${e.join(` `)} ${Ms} -}`}function R3(){let e=[];for(let t of new Set([...De,...nt]))e.push(` ${Ai(t)}: ${t==="class"?or:t==="style"?Ni:"string | number"};`);return`interface __RipSvgAttrVals { +}`}function E3(){let e=[];for(let t of new Set([...De,...nt]))e.push(` ${Ai(t)}: ${t==="class"?or:t==="style"?Ni:"string | number"};`);return`interface __RipSvgAttrVals { ${e.join(` `)} ${Ms} -}`}function E3(e,t){let r=t?"__RipSvgAttrVals":"__RipGlobalAttrVals",s=t?new Set([...De,...nt]):De,i=[];for(let a of ui(e)){if(s.has(a))continue;if(t)i.push(` ${Ai(a)}: ${a==="class"?or:a==="style"?Ni:"string | number"};`);else i.push(...js(a,xe(e,t)))}let n=i.length?` +}`}function k3(e,t){let r=t?"__RipSvgAttrVals":"__RipGlobalAttrVals",n=t?new Set([...De,...nt]):De,i=[];for(let a of ui(e)){if(n.has(a))continue;if(t)i.push(` ${Ai(a)}: ${a==="class"?or:a==="style"?Ni:"string | number"};`);else i.push(...js(a,xe(e,t)))}let s=i.length?` ${i.join(` `)} -`:"";return`interface ${lr(e,t)} extends ${r} {${n}}`}function k3(e,t){let r=lr(e,t),s=xe(e,t),i=`keyof ${r} & string`,n=[` setAttribute(name: A, value: ${r}[A]): void;`,` toggleAttribute(name: ${i}, force?: boolean): boolean;`,` removeAttribute(name: ${i}): void;`,` addEventListener(type: K, listener: (e: HTMLElementEventMap[K] & { target: ${s}; currentTarget: ${s} }) => unknown, options?: boolean | AddEventListenerOptions): void;`," addEventListener(type: string, listener: (e: any) => unknown, options?: boolean | AddEventListenerOptions): void;"];if(!t)n.push(` className: ${or};`);for(let a of["value","checked","innerHTML","textContent","innerText"])n.push(` ${a}: __RipProp<${s}, '${a}'>;`);return`interface ${vi(e,t)} { -${n.join(` +`:"";return`interface ${lr(e,t)} extends ${r} {${s}}`}function T3(e,t){let r=lr(e,t),n=xe(e,t),i=`keyof ${r} & string`,s=[` setAttribute(name: A, value: ${r}[A]): void;`,` toggleAttribute(name: ${i}, force?: boolean): boolean;`,` removeAttribute(name: ${i}): void;`,` addEventListener(type: K, listener: (e: HTMLElementEventMap[K] & { target: ${n}; currentTarget: ${n} }) => unknown, options?: boolean | AddEventListenerOptions): void;`," addEventListener(type: string, listener: (e: any) => unknown, options?: boolean | AddEventListenerOptions): void;"];if(!t)s.push(` className: ${or};`);for(let a of["value","checked","innerHTML","textContent","innerText"])s.push(` ${a}: __RipProp<${n}, '${a}'>;`);return`interface ${vi(e,t)} { +${s.join(` `)} -}`}function Fs(e,{needsClassValue:t=!1,needsCssProperties:r=!1,needsRefCell:s=!1,needsChildren:i=!1,extra:n=[]}={}){let a=new Map;for(let{tag:l,svg:c}of e)if(ot(l,c))a.set(`${c?"svg:":""}${l}`,{tag:l,svg:Boolean(c)});let o=[];if(a.size>0||t)o.push(m3);if(i)o.push(p3);if(r||[...a.values()].some((l)=>!l.svg)||n.length>0)o.push(y3);for(let l of n)o.push(l);if(a.size>0){o.push(g3);let l=[...a.values()].some((f)=>!f.svg),c=[...a.values()].some((f)=>f.svg);if(l)o.push(S3());if(c)o.push(R3());for(let{tag:f,svg:h}of a.values())o.push(E3(f,h),k3(f,h))}if(s)o.push(T3);return o.length?` +}`}function Fs(e,{needsClassValue:t=!1,needsCssProperties:r=!1,needsRefCell:n=!1,needsChildren:i=!1,extra:s=[]}={}){let a=new Map;for(let{tag:l,svg:c}of e)if(ot(l,c))a.set(`${c?"svg:":""}${l}`,{tag:l,svg:Boolean(c)});let o=[];if(a.size>0||t)o.push(p3);if(i)o.push(g3);if(r||[...a.values()].some((l)=>!l.svg)||s.length>0)o.push(S3);for(let l of s)o.push(l);if(a.size>0){o.push(b3);let l=[...a.values()].some((h)=>!h.svg),c=[...a.values()].some((h)=>h.svg);if(l)o.push(R3());if(c)o.push(E3());for(let{tag:h,svg:f}of a.values())o.push(k3(h,f),T3(h,f))}if(n)o.push(w3);return o.length?` ${o.join(` `)} -`:""}var T3=["type __RipEqEl = (() => T extends A ? 1 : 2) extends (() => T extends B ? 1 : 2) ? true : false;","type __RipBaseEl = __RipEqEl extends true ? true : __RipEqEl extends true ? true : __RipEqEl extends true ? true : __RipEqEl extends true ? true : __RipEqEl extends true ? true : __RipEqEl extends true ? true : __RipEqEl extends true ? true : false;","type __RipRefOk = 0 extends (1 & V) ? unknown : [V] extends [null] ? unknown : null extends V ? ([E] extends [Extract, E>] ? unknown : __RipBaseEl> extends true ? ([E] extends [NonNullable] ? unknown : never) : never) : never;","declare function __ripRefCell(tag: K, cell: { value: V } & __RipRefOk): { value: HTMLElementTagNameMap[K] | null };","declare function __ripRefCellSvg(tag: K, cell: { value: V } & __RipRefOk): { value: SVGElementTagNameMap[K] | null };"].join(` -`);var Oi=()=>{throw Error("rip: component type story is unavailable in the browser")},Bs=()=>{throw Error("rip: component type story is unavailable in the browser")},Us=()=>!1,Vs=()=>!1,Ws=()=>{throw Error("rip: component type story is unavailable in the browser")},Hs=()=>{throw Error("rip: component type story is unavailable in the browser")},Ii=()=>!0,Gs=()=>{throw Error("rip: component type story is unavailable in the browser")},$i=()=>{throw Error("rip: component type story is unavailable in the browser")},Di=()=>{throw Error("rip: component type story is unavailable in the browser")},xi="",Ks=()=>null,Ys=()=>"",zs=()=>"",qs=()=>{throw Error("rip: component type story is unavailable in the browser")},Xs=()=>"string",Js="",Zs=()=>[],Qs=()=>!1,ea=()=>!1,ta="",ra=()=>{throw Error("rip: component type story is unavailable in the browser")},ia=()=>[],na=()=>[],Pi=()=>{throw Error("rip: component type story is unavailable in the browser")},sa=()=>{throw Error("rip: component type story is unavailable in the browser")},aa=()=>{throw Error("rip: component type story is unavailable in the browser")},oa=()=>[];var w3=new Set(["beforeMount","mounted","beforeUnmount","unmounted","onError"]),_3=new Set(["_state","_frame","_parent","_children","_root","_nodes","_target","_context","_rest","_restWriters","_restHandlers","_inheritedEl","_inheritedInst","_inheritedOwn","_refCleanups","_initFailed","_hmrOrphans","_hmrReleasing","_hmrPropKeys"]),N3=new Set(["+","-","*","/","%","**","<",">","<=",">=","==","!=","&&","||","??","<<",">>",">>>","&","^","|"]),F1=new Set(["=","void-assign","+=","-=","*=","/=","%=","**=","&&=","||=","??=","<<=",">>=",">>>=","&=","^=","|="]),lt=(e)=>F1.has(e)||e==="//="||e==="%%=",ct=new Set(["=","void-assign"]),la=new Set(["=","+=","-=","*=","/=","%=","**=","&&=","||=","??="]),ft=/^[A-Za-z_$][\w$]*$/,Ci={"==":"===","!=":"!=="},A3=new Set(["true","false","null","undefined","this"]),cr=(e,t=0)=>{let r=[],s=null;for(let i=0;iArray.isArray(e),ht=(e)=>y(e)&&N3.has(e[0])&&e.length===3,fr=new Set([".","?.","[]","optindex"]),Pe=(e)=>y(e)&&e[0]==="."&&e.length===3&&e[2]==="new",v3={__proto__:null,Array:"",ReadonlyArray:"",Map:"",Set:"",WeakMap:"",WeakSet:"",Promise:"",WeakRef:""};function O3(e){if(e[0]!=="="||e.length!==3)return null;let t=e[1];if(!y(t)||t[0]!=="."||typeof t[2]!=="string")return null;let r=t[1];if(!y(r)||r[0]!=="."||r[2]!=="prototype"||typeof r[1]!=="string")return null;return{head:r[1],member:t[2]}}function gt(e){let t=e;if(y(t)&&t[0]==="typed-var"&&t.length===3)t=t[1];if(y(t)&&t[0]==="."&&t[1]==="this"&&typeof t[2]==="string")return t[2];return null}function I3(e){let t=e;if(y(t)&&t[0]==="default"&&t.length===3)t=t[1];let r=gt(t);if(r===null)return null;return{name:r,typed:y(t)&&t[0]==="typed-var"&&t.length===3?t:null}}function $3(e){let t=[],r=new Map,s=(i,n)=>{if(!y(i))return;let a=i[0];if(a==="->"||a==="def"||a==="void-def"||a==="class"||a==="component"||a==="schema")return;if((a==="="||a==="void-assign")&&i.length===3&&y(i[1])&&i[1][0]==="."&&i[1][1]==="this"&&typeof i[1][2]==="string"){let o=i[1][2],l=r.get(o);if(l===void 0){let c={name:o,node:i,nodes:[i],viaArrow:n};r.set(o,c),t.push(c)}else if(l.nodes.push(i),l.viaArrow&&!n)l.viaArrow=!1}for(let o of i.slice(1))s(o,n||a==="=>")};for(let i of e)if(i!==null&&i!==void 0)s(i,!1);return t}var ca=new Set(["<",">","<=",">=","==","!="]),ut=(e)=>y(e)&&ca.has(e[0])&&e.length===3&&y(e[1])&&ca.has(e[1][0])&&e[1].length===3&&!e[1].parenthesized,fa=(e)=>y(e)&&(e[0]==="-"||e[0]==="+"||e[0]==="!"||e[0]==="~"||e[0]==="typeof"||e[0]==="delete")&&e.length===2,D3=(e)=>y(e)&&F1.has(e[0])&&e.length===3,ha=(e)=>y(e)&&(e[0]==="in"||e[0]==="of"||e[0]==="instanceof"||e[0]==="!in"||e[0]==="!of"||e[0]==="!instanceof")&&e.length===3,ua=(e)=>y(e)&&e[0]==="if",We=(e)=>y(e)&&(e[0]===".."||e[0]==="...")&&e.length===3,dt=(e)=>y(e)&&e[0]==="..."&&e.length===2,O1=(e)=>y(e)&&e[0]==="object",T1=(e)=>y(e)&&(e[0]==="->"||e[0]==="=>")&&e.length===3,x3=new Set(["break","continue","return"]),P3=new Set(["break"]),k1=(e)=>e==="def"||e==="void-def";function Bi(e,t){if(!y(e))return!1;let r=e[0];if(r==="await"||r==="dammit!"||r==="dammit?")return!0;if(r==="for-as"&&e[3]===!0)return!0;if(r==="class")return Bi(e[2],t);if(r==="->"||r==="=>"||k1(r)||E.isEffectDeclIn(t,e))return!1;return e.some((s)=>Bi(s,t))}function dr(e){if(!y(e))return!1;let t=e[0];if(t==="yield"||t==="yield-from")return!0;if(t==="class")return dr(e[2]);if(t==="->"||t==="=>"||k1(t))return!1;return e.some((r)=>dr(r))}var U1=(e)=>y(e)&&(e[0]==="++"||e[0]==="--")&&e.length===3,ur=/^[A-Za-z_$][A-Za-z0-9_$]*$/,mr=(e,t="",r=[])=>{if(!y(e))return r;if(e[0]==="object"){for(let s of e.slice(1)){if(!y(s)||s.length!==3)continue;let i=s[0];if(i!==":"&&i!==null)continue;let n=s[1];if(typeof n!=="string")continue;let a=ur.test(n)?`.${n}`:`[${n}]`,o=s[2];if(typeof o==="string"){if(ur.test(o))r.push([o,t+a])}else mr(o,t+a,r)}return r}if(e[0]==="array")return e.slice(1).forEach((s,i)=>{if(y(s)&&s[0]==="...")return;if(typeof s==="string"){if(ur.test(s))r.push([s,`${t}[${i}]`])}else mr(s,`${t}[${i}]`,r)}),r;return r},Li=(e)=>y(e)&&e[0]==="?:"&&e.length===4,b1=(e)=>y(e)&&e[0]==="block",te=(e)=>$e.has(String(e).split("#")[0]),re=(e)=>y(e)&&e[0]==="comprehension"&&e.length===4&&Array.isArray(e[2])&&e[2].length>0&&Array.isArray(e[2][0])&&String(e[2][0][0]).startsWith("for-");var mt=(e)=>y(e)&&((e[0]==="for-in"||e[0]==="for-of"||e[0]==="for-as")&&e.length===6||e[0]==="while"&&(e.length===3||e.length===4)||e[0]==="loop"&&e.length===2||e[0]==="loop-n"&&e.length===3);function C3(e){let t=0,r=!0,s=(i)=>Array.isArray(i);return e.map((i)=>{if(typeof i==="string"){if(!r)return{item:i,name:i,value:null};return{item:i,name:i,value:String(t++)}}if(s(i)&&i[0]==="="&&i.length===3){let n=i[2],a=typeof n==="string"&&/^[0-9]/.test(n)?Number(n.replace(/_/g,"")):s(n)&&n[0]==="-"&&typeof n[1]==="string"?-Number(n[1].replace(/_/g,"")):null;if(a!==null&&Number.isFinite(a))t=a+1,r=!0;else if(typeof n==="string"&&n.startsWith('"'))r=!1;return{item:i,name:i[1],value:n}}return{item:i,name:null,value:void 0}})}var hr=(e)=>String(e).replace(/^['"`]|['"`]$/g,"");function Ce(e){return`'${String(e).slice(1,-1).replace(/\\/g,"\\\\").replace(/'/g,"\\'")}'`}function Mi(e,t){if(!y(t)||t[0]!=="import"||t.length<2)return!1;let r=e.idOf(t);return(r!==null?e.node(r)?.semanticKind:null)==="import"}class E{constructor(e,t,{face:r="js",pins:s=null,strict:i=!1,script:n=!1,browserModule:a=!1,repl:o=!1,hmr:l=!1,tolerant:c=!1,modulePath:f=null,appStashSpec:h=null,routesUnion:u=null,routeParams:d=null}={}){this.stores=e,this.b=t,this.repl=o,this.tolerant=c,this.replResultName=null,this.replImportResolver=null,this.script=n,this.appStashSpec=h,this.routesUnion=typeof u==="string"&&u.length>0?u:null,this.routeParams=typeof d==="string"&&d.length>0?d:null,this.appAccessors={stash:null,router:null},this.routeWrapSpans=[],this.memberInitSites=[],this.sourceKeySpans=[],this.stashMemberSpans=[],this.domSurfaces=new Map,this._needsClassValue=!1,this._needsCssProperties=!1,this._needsChildren=!1,this._restTags=new Set,this._needsRefCellHelper=!1,this.intrinsics=[],this.componentUses=[],this.namespaceExports=[],this.componentNames=[],this.renderPairs=[],this.browserModule=a,this.hmr=l===!0,this.modulePath=typeof f==="string"&&f.length>0?f:null,this.importSpans=[],this.typeOnlyImports=new Set,this.pins=s,this.pinnables=[],this.pinnedWrites=new Set,this.mutables=[],this.enums=[],this.classDecls=[],this.pinSpans=[],this.loopVars=[],this.loopVarDecls=[],this.attrNames=[],this.importedRefs=[],this.strict=i,this.ts=r==="ts",this.pendingHoistTypes=new Map,this.tsDirectiveMap=new Map,this.tsNocheck=null,this.pendingHoistDirectives=[],this.tsDirectivesArmed=!1,this.pendingSigs=new WeakMap,this.pendingTypeDecls=[],this.primitiveAvoid=null,this.primitiveReuse=null,this.declaringName=!1,this.vocabulary=[],this.silences=[],this.memberDecls=[],this.narrowedDecls=[],this._narrowedReads=null,this._textOwner=null,this.kinds=[],this.componentInfo=new Map,this.schemaFns=new Map,this.moduleComponentNames=new Map,this.ind=0,this.methodName=null,this.scopes=[],this.lastProgramStmt=null,this.inPattern=!1,this.bindingPattern=!1,this.deopt=!1,this.inTarget=!1,this.voidFuncs=new WeakSet,this.sideEffectOnly=!1,this.voidReason=null,this.usesSchema=!1,this.exprDepth=0,this.renderRecord=null,this.postfixGuardDepth=0,this._schemaName=null,this.subParses=new Map,this.runtimeAliases=new Map,this.temps={used:new Set,n:0,byNode:new WeakMap},this.refPlans=new WeakMap,this.ctrlDepth=0,this.tailReturnOk=!1,this.rframes=[],this.cframes=[],this._componentName=null,this.moduleBound=new Set,this.renderSelf=null,this.projectionHost=null}isReactiveDecl(e){return E.isReactiveDeclIn(this.stores,e)}static isReactiveDeclIn(e,t){if(!y(t)||t[0]!=="state"&&t[0]!=="computed"||t.length!==3)return!1;let r=e.idOf(t),s=r!==null?e.node(r)?.semanticKind:null;return s==="state"||s==="computed"}isGateDecl(e){return E.isGateDeclIn(this.stores,e)}static isGateDeclIn(e,t){if(!y(t)||t[0]!=="gate"||t.length<3)return!1;let r=e.idOf(t);return(r!==null?e.node(r)?.semanticKind:null)==="gate"}isEffectDecl(e){return E.isEffectDeclIn(this.stores,e)}static isEffectDeclIn(e,t){if(!y(t)||t[0]!=="effect"||t.length!==3)return!1;let r=e.idOf(t);return(r!==null?e.node(r)?.semanticKind:null)==="effect"}isReadonlyDecl(e){return E.isReadonlyDeclIn(this.stores,e)}static isReadonlyDeclIn(e,t){if(!y(t)||t[0]!=="readonly"&&t[0]!=="void-readonly"||t.length!==3)return!1;let r=e.idOf(t);return(r!==null?e.node(r)?.semanticKind:null)==="readonly"}lockedHead(e,t){let r=this.stores.idOf(e);if(r===null)return!0;return this.stores.node(r)?.semanticKind===t}static pureSpine(e){return typeof e==="string"||y(e)&&typeof e[0]==="string"&&fr.has(e[0])&&!Pe(e)&&E.pureSpine(e[1])}semanticKindOf(e){let t=this.stores.idOf(e);return t!==null?this.stores.node(t)?.semanticKind??null:null}isModuleImport(e){return E.isModuleImportIn(this.stores,e)}static isModuleImportIn(e,t){return Mi(e,t)}static BLOCK_HEADS=new Set(["if","while","loop","for-in","for-of","for-as","switch","when","try","block","comprehension"]);collectReactiveNames(e){let t=new Set,r=(s,i)=>{if(!y(s)||k1(s[0])||T1(s)||s[0]==="class"||s[0]==="enum")return;if(s[0]==="component"&&s.length===3)return;if(this.isReactiveDecl(s)){if(i){let a=s[0]==="state"?":=":"~=";throw this.positionedError(s,`emitter: a reactive declaration ('${typeof s[1]==="string"?s[1]:"…"} ${a} …') must sit at module or function scope — `+"inside a statement block it lowers to a block-scoped const, and any later read would unwrap '.value' off a binding that no longer exists")}if(typeof s[1]==="string")t.add(s[1]);return}if(this.isEffectDecl(s))return;let n=i||E.BLOCK_HEADS.has(s[0]);for(let a of s)r(a,n)};for(let s of e)r(s,!1);return t}collectEffectHandles(e){let t=new Set,r=(s,i)=>{if(!y(s)||k1(s[0])||T1(s)||s[0]==="class"||s[0]==="enum")return;if(s[0]==="component"&&s.length===3)return;if(this.isReactiveDecl(s))return;if(this.isEffectDecl(s)){if(s[1]!==null){if(i)throw this.positionedError(s,`emitter: a bound effect ('${typeof s[1]==="string"?s[1]:"…"} ~> …') must sit at module or function scope — `+"inside a statement block its dispose handle would be a block-scoped const, dead to every later read "+"; a BARE '~> …' stays legal here");if(typeof s[1]==="string")t.add(s[1])}return}let n=i||E.BLOCK_HEADS.has(s[0]);for(let a of s)r(a,n)};for(let s of e)r(s,!1);return t}collectReadonlyNames(e){let t=new Set,r=(s,i)=>{if(!y(s)||k1(s[0])||T1(s)||s[0]==="class"||s[0]==="enum")return;if(s[0]==="component"&&s.length===3)return;if(this.isReactiveDecl(s)||this.isEffectDecl(s))return;if(this.isReadonlyDecl(s)){if(i)throw this.positionedError(s,`emitter: a readonly declaration ('${typeof s[1]==="string"?s[1]:"…"} =! …') must sit at module or function scope — `+"inside a statement block it lowers to a block-scoped const, dead to every later read ");if(typeof s[1]==="string")t.add(s[1]);r(s[2],i);return}let n=i||E.BLOCK_HEADS.has(s[0]);for(let a of s)r(a,n)};for(let s of e)r(s,!1);return t}static exportedConstNames(e){let t=new Set;for(let r of e){if(!y(r)||r[0]!=="export")continue;for(let s of r.slice(1))if(y(s)&&(s[0]==="="||s[0]==="void-assign")&&s.length===3&&typeof s[1]==="string")t.add(s[1])}return t}isExportedConst(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e))return!1;if(r.exportedConst!==void 0&&r.exportedConst.has(e))return!0;if(r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}checkExportedConstWrite(e,t){let r=typeof t==="string"?[t]:E.isPattern(t)?this.patternNames(t):[];for(let s of r){if(!this.isExportedConst(s))continue;throw this.positionedError(e,`emitter: cannot assign to exported '${s}' — an exported binding lowers to `+`'export const', which never changes after its declaration; declare it as state ('export ${s} := …') to write it, or drop the export`)}}positionedError(e,t,...r){let s=Error(t);for(let i of[e,...r]){let n=this.stores.idOf(i),a=n!==null?this.stores.selfSpan(n):null;if(a){s.start=a[0],s.end=a[1];break}}return s}positionedErrorAt(e,t,r){let s=Error(r);return s.start=e,s.end=t,s}static declaredNames(e){let t=[],r=(s)=>{if(!y(s))return;if((s[0]==="enum"||s[0]==="class")&&typeof s[1]==="string")t.push(s[1]);if(k1(s[0])&&s.length===4&&typeof s[1]==="string")t.push(s[1])};for(let s of e)if(r(s),y(s)&&s[0]==="export"&&y(s[1]))r(s[1]);return t}static declaredClassNames(e){let t=new Set,r=(s)=>{if(!y(s)||!ct.has(s[0])||s.length!==3)return;if(typeof s[1]!=="string")return;let i=s[2];if(y(i)&&(i[0]==="class"||i[0]==="component"))t.add(s[1])};for(let s of e)if(r(s),y(s)&&s[0]==="export"&&y(s[1]))r(s[1]);return t}static declaredEnumNames(e){let t=new Set,r=(s)=>{if(y(s)&&s[0]==="enum"&&typeof s[1]==="string")t.add(s[1])};for(let s of e)if(r(s),y(s)&&s[0]==="export"&&y(s[1]))r(s[1]);return t}nodeLine(e){let t=this.stores.idOf(e),r=t!==null?this.stores.selfSpan(t):null;if(!r||typeof this.b.source!=="string")return null;let s=1;for(let i=0;i{if(typeof f==="string")s.push({name:f,kind:h,node:u,auth:!0})},n=(f,h)=>{if(typeof f==="string")s.push({name:f,kind:"plain",node:h,auth:!1})},a=(f,h,u)=>{let d=new Set;for(let p of f){if(d.has(p))throw this.positionedError(h,`emitter: '${p}' is bound twice in one ${u} — one binding per name; rename or drop the duplicate`,...r!==null?[r]:[]);d.add(p)}return f};{let f=[],h=[];for(let u of t??[]){this.patternNames(u,f,!0);let d=y(u)?u:t;while(h.lengthi(u,"parameter",h[d]))}let o=(f,h)=>{if(!y(f))return;if(this.isModuleImport(f)){for(let d of E.importedNames([f]))i(d,"import",f);return}if(T1(f))return;if(k1(f[0])){if(!h&&f.length===4&&typeof f[1]==="string")i(f[1],"def",f);return}if(f[0]==="enum"){if(!h)i(f[1],"enum",f);return}if(f[0]==="component"&&f.length===3)return;if(f[0]==="class"){if(!h)i(f[1],"class",f);if(f[2]!=null)o(f[2],!0);let d=f[3];if(b1(d)){for(let p of d.slice(1))if(y(p)&&F1.has(p[0])&&p.length===3)o(p[2],!0);else if(!E.isTypedWrapper(p))o(p,!0)}return}if(this.isReactiveDecl(f)){if(i(f[1],f[0]==="computed"?"computed":"state",f),!(f[0]==="computed"&&b1(f[2])&&f[2].length>2))o(f[2],h);return}if(this.isEffectDecl(f)){if(f[1]!==null)i(f[1],"effect",f);return}if(this.isReadonlyDecl(f)){i(f[1],"readonly",f),o(f[2],h);return}if(f[0]==="export"){for(let d of f.slice(1)){if(!y(d))continue;if((d[0]==="="||d[0]==="void-assign")&&d.length===3&&typeof d[1]==="string")i(d[1],"plain",d),o(d[2],h);else o(d,h)}return}if(f[0]==="for-in"||f[0]==="for-of"||f[0]==="for-as"){if(y(f[1])){let d=[];for(let p of f[1])this.patternNames(p,d,!0);a(d,f,"loop head")}for(let d of f.slice(2))o(d,!0);return}if(re(f)){o(f[1],!0);for(let d of f[2]??[]){let p=[];if(y(d[1]))for(let m of d[1])this.patternNames(m,p,!0);a(p,f,"comprehension clause"),o(d[2],!0)}for(let d of f[3]??[])o(d,!0);return}if(f[0]==="try"){for(let d of f.slice(2))if(y(d)&&d.length===2&&E.isPattern(d[0])){for(let p of a(this.patternNames(d[0]),d[0],"catch pattern"))n(p,f);o(d[1],!0)}else o(d,!0);o(f[1],!0);return}if(F1.has(f[0])&&f.length===3){if(typeof f[1]==="string")n(f[1],f);else if(f[0]==="="&&E.isPattern(f[1]))for(let d of a(this.patternNames(f[1]),f,"destructuring pattern"))n(d,f)}let u=h||E.BLOCK_HEADS.has(f[0]);for(let d of f)o(d,u)};for(let f of e)o(f,!1);s.forEach((f,h)=>{f.order=h});let l=(f,h)=>{let u=h.node!==null?this.nodeLine(h.node):null,d=h.kind==="state"||h.kind==="parameter"||h.kind==="plain"?` — assign with '${f.name} = …' to update it, or choose a different name`:" — choose a different name";throw this.positionedError(f.node,`emitter: '${f.name}' was already declared as ${h.kind}${u!==null?` on line ${u}`:""}${d}`,...r!==null?[r]:[])},c=new Map;for(let f of s){if(!f.auth)continue;let h=c.get(f.name);if(h!==void 0)l(f,h);c.set(f.name,f)}for(let f of s){if(f.auth)continue;let h=c.get(f.name);if(h!==void 0){if(h.auth&&f.orderu.members.has(f.name)))continue;c.set(f.name,f)}}pushReactiveFrame(e,t,r=[],s=null){let i=this.collectReactiveNames(e),n=this.collectEffectHandles(e),a=this.collectReadonlyNames(e);return this.checkScopeRedeclarations(e,r,s),this.rframes.push({reactive:i,computed:this.collectComputedNames(e),readonly:a,handles:n,bound:new Set([...t,...E.declaredNames(e),...n,...a]),enums:E.declaredEnumNames(e),classes:E.declaredClassNames(e),importSpecs:E.importedSpecs(e),exportedConst:E.exportedConstNames(e)}),new Set([...i,...n,...a])}withBindings(e,t){this.rframes.push({reactive:new Set,bound:new Set(e),block:!0}),t(),this.rframes.pop()}resolveBareRead(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e))return"reactive";if(r.bound.has(e))return null;if(r.members!==void 0&&r.members.has(e))return r.memberReactive.has(e)?"member-reactive":"member"}return null}kindOfName(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive?.has(e))return r.computed?.has(e)?"computed":"state";if(r.readonly?.has(e))return"readonly";if(r.handles?.has(e))return"effect";if(r.bound?.has(e))return null;if(r.members!==void 0&&r.members.has(e))return r.memberKinds?.get(e)??null}return null}isReactiveName(e){return this.resolveBareRead(e)==="reactive"}isEnumName(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.enums!==void 0&&r.enums.has(e))return!0;if(r.reactive.has(e)||r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}isClassName(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.classes!==void 0&&r.classes.has(e))return!0;if(r.reactive.has(e)||r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}noteLoopVarRead(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.loopVars!==void 0&&r.loopVars.has(e)){let s=r.loopBindings?.get(e);if(s!==void 0)s.owner.readVars.add(s.which);return}if(r.reactive.has(e)||r.bound.has(e))return;if(r.members!==void 0&&r.members.has(e))return}}static loopBindingsOf(e){let t=new Map;for(let r of e.loopStack){if(r.owner===void 0)continue;t.set(r.itemVar,{owner:r.owner,which:"item"}),t.set(r.indexVar,{owner:r.owner,which:"index"})}return t}isRenderLoopName(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.loopVars!==void 0&&r.loopVars.has(e))return!0;if(r.reactive.has(e)||r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}importSpecOf(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t],s=r.importSpecs?.get(e);if(s!==void 0)return s;if(r.reactive.has(e)||r.bound.has(e))return null;if(r.members!==void 0&&r.members.has(e))return null}return null}isComputedName(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e))return r.computed!==void 0&&r.computed.has(e);if(r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}isAmbientReadonly(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e))return!1;if(r.ambientReadonly!==void 0&&r.ambientReadonly.has(e))return!0;if(r.readonly!==void 0&&r.readonly.has(e))return!0;if(r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}memberKindOf(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e))return null;if(r.bound.has(e))return null;if(r.members!==void 0&&r.members.has(e))return r.members.get(e)}return null}thisMemberKindOf(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.members!==void 0)return r.members.has(e)?r.members.get(e):null}return null}static targetsRestView(e){if(!y(e))return!1;if(e[0]==="array")return e.slice(1).some((r)=>E.targetsRestView(r));if(e[0]==="object")return e.slice(1).some((r)=>y(r)&&E.targetsRestView(r[2]??r[1]));if(e[0]==="default"||e[0]==="rest")return E.targetsRestView(e[1]);let t=e;while(y(t)&&(t[0]==="."||t[0]==="[]"||t[0]==="?."||t[0]==="optindex")&&t.length===3){if(t[0]==="."&&t[1]==="this"&&t[2]==="rest")return!0;t=t[1]}return!1}checkBareRest(e,t){if(t!=="rest"||this.memberKindOf(t)!=="rest")return;let r=this.positionedError(e,"emitter: `rest` is provided by `extends`, not declared here — spell it `@rest`, as with `@stash` and `@router`");if(typeof r.start!=="number"&&this.b.currentMark)r.start=this.b.currentMark.sourceStart,r.end=this.b.currentMark.sourceEnd;throw r}checkMemberWrite(e,t){if(this.cframes.length===0)return;if(this.thisMemberKindOf("rest")==="rest"&&E.targetsRestView(t))throw this.positionedError(e,"emitter: `@rest` is the runtime-owned view of the caller's undeclared props and is never assigned — "+"set the attribute on the element in render, or declare the name as a prop the caller supplies");let r=null,s=null;if(typeof t==="string")this.checkBareRest(e,t),r=t,s=this.memberKindOf(t);else if(y(t)&&t[0]==="."&&t[1]==="this"&&typeof t[2]==="string")r=t[2],s=this.thisMemberKindOf(r);if(s===null)return;if(s==="readonly")throw this.positionedError(e,`emitter: cannot assign to readonly member '${r}' — a '=!' member never changes after _init; `+"a member that changes is state (':=')");if(s==="plain"){let i=this.cframes[this.cframes.length-1];if(!i.plainWrites.has(r))i.plainWrites.set(r,e)}}notePlainRenderRead(e,t=!1){if(this.rstate==null||this.cframes.length===0)return;if((t?this.thisMemberKindOf(e):this.memberKindOf(e))!=="plain")return;this.cframes[this.cframes.length-1].renderPlainReads.add(e)}collectComputedNames(e){let t=new Set,r=(s,i)=>{if(!y(s)||k1(s[0])||T1(s)||s[0]==="class"||s[0]==="enum")return;if(s[0]==="component"&&s.length===3)return;if(this.isReactiveDecl(s)){if(!i&&s[0]==="computed"&&typeof s[1]==="string")t.add(s[1]);return}if(this.isEffectDecl(s))return;let n=i||E.BLOCK_HEADS.has(s[0]);for(let a of s)r(a,n)};for(let s of e)r(s,!1);return t}bareRewrite(e){if(this.inPattern&&this.bindingPattern)return null;return this.resolveBareRead(e)}isReactiveRead(e){return this.bareRewrite(e)==="reactive"}memberIsReactive(e){let t=this.cframes[this.cframes.length-1];return t!==void 0&&t.memberReactive.has(e)}inComponent(){return this.cframes.length>0}reactiveRead(e){let t=this.b.currentMark,r=this.b.source;if(this.ts){let s=this.emitPrimitive(e);if(s!==null&&this._narrowedReads?.has(e))this.narrowedDecls.push({start:s[0],end:s[1]})}else if(t!==null&&r!==null&&r.slice(t.sourceStart,t.sourceEnd)===e)this.b.mark(t.nodeId,t.role,()=>this.b.emit(e));else this.b.emit(e);this.b.emit(".value")}memberRead(e,t){let r=this.b.currentMark,s=this.b.source;if(this.b.emit((this.renderSelf??"this")+"."),this.ts){let i=this.emitPrimitive(e);if(t&&i!==null)this.memberDecls.push({start:i[0],end:i[1]});if(i!==null&&this._narrowedReads?.has(e))this.narrowedDecls.push({start:i[0],end:i[1]})}else if(r!==null&&s!==null&&s.slice(r.sourceStart,r.sourceEnd)===e)this.b.mark(r.nodeId,r.role,()=>this.b.emit(e));else this.b.emit(e);if(t)this.b.emit(".value")}emitPrimitive(e){let t=this.b.currentMark,r=this.ts&&typeof e==="string"?this.b.claimPrimitiveSpan(e,this.primitiveAvoid):null;if(r===null&&this.primitiveReuse!==null&&this.primitiveReuse.name===e)r=this.primitiveReuse.span,this.primitiveReuse=null;if(r!==null&&Z1(e)){let s=this.kindOfName(e),i=typeof s==="string"?{label:s,optional:!1}:s;if(i!==null)this.kinds.push({start:r[0],end:r[1],label:i.label,name:e,optional:i.optional})}if(t!==null&&r!==null){let s=Z1(e)?"identifier":"literal";this.b.markSpan(t.nodeId,s,r[0],r[1],()=>this.noteNameSpan(e))}else this.noteNameSpan(e);return r}noteNameSpan(e){if(!this.ts||this.declaringName||typeof e!=="string"||!Z1(e)){this.b.emit(e);return}let t=this.b.offset;if(this.b.emit(e),this.isEnumName(e)){this.enums.push([t,this.b.offset]);return}if(this.isReactiveName(e)&&!this.isComputedName(e)){this.mutables.push([t,this.b.offset]);return}if(this.isClassName(e)){this.classDecls.push([t,this.b.offset]);return}if(this.isRenderLoopName(e)){this.loopVars.push([t,this.b.offset]),this.noteLoopVarRead(e);return}let r=this.importSpecOf(e);if(r!==null)this.importedRefs.push([t,this.b.offset,r.importedName,r.specifier])}withDeclaredName(e){let t=this.declaringName;this.declaringName=!0;try{return e()}finally{this.declaringName=t}}noteVocabulary(e,t,r){let s=this.wordSpanIn(t,r);if(s!==null)this.vocabulary.push({kind:e,start:s[0],end:s[1]})}noteShorthandClasses(e,t){for(let r of e)this.noteVocabulary("render-channel",r,t)}noteHeadKeyword(e,t,r){if(!this.ts)return;let s=y(r)?this.stores.idOf(r):null,i=s!==null?this.stores.selfSpan(s):null;if(i===null||this.b.source===null)return;let n=i[0]+t.length;if(n>i[1]||this.b.source.slice(i[0],n)!==t)return;this.vocabulary.push({kind:e,start:i[0],end:n})}noteKind(e,t,r){let s=this.stores.idOf(e),i=s!==null?this.stores.role(s,t):null;if(i?.sourceStart!=null&&i.sourceEnd>i.sourceStart){let n=this.b.source?.slice(i.sourceStart,i.sourceEnd)??null;this.kinds.push({start:i.sourceStart,end:i.sourceEnd,label:r,name:n})}}noteSilence(e,t){let r=this.wordSpanIn(e,t);if(r!==null)this.silences.push([r[0],r[1]])}static MEMBER_KINDS={state:"state",computed:"computed",readonly:"readonly",gate:"gate",accept:"accept"};static memberLabel(e){if(e.isPublic&&(e.kind==="prop"||e.kind==="state"))return"prop";return E.MEMBER_KINDS[e.kind]??null}noteMemberDecl(e){if(!this.ts)return;let t=y(e.nameNode)?this.stores.idOf(e.nameNode):null,r=t!==null?this.stores.role(t,e.nameRole):null;if(!r||typeof r.sourceStart!=="number")return;let s=E.memberLabel(e);if(s!==null)this.kinds.push({start:r.sourceStart,end:r.sourceEnd,label:s,name:e.name,optional:e.optional===!0,...e.kind==="accept"&&e.provider!=null?{provider:e.provider}:{}});if(!Vs(e))return;this.memberDecls.push({start:r.sourceStart,end:r.sourceEnd})}wordSpanIn(e,t){if(!this.ts)return null;let r=y(t)?this.stores.idOf(t):null,s=r!==null?this.stores.selfSpan(r):null;if(s===null)return null;let i=this.stores.primitiveSpans(e,s[0],s[1]);if(i.length!==1)return null;return[i[0].sourceStart,i[0].sourceEnd]}bareChildSpan(e,t,r){let s=(l)=>{let c=y(l)?this.stores.idOf(l):null;return c!==null?this.stores.selfSpan(c):null},i=s(r)??s(this.rstate?.node??null);if(i===null)return null;let[n,a]=i;for(let l=t-1;l>=0;l--){let c=s(e[l]);if(c){n=c[1];break}}for(let l=t+1;l — did you mean '${i}'?`;if(r)return`'${t}' is not a known attribute of <${e}> — a bare word sets the boolean attribute it `+`names; render a value with \`= ${t}\`, or spell \`name: value\``;return`'${t}' is not a known attribute of <${e}> — `+(s?"SVG attribute names are the spec's own, case-sensitive (`viewBox`)":"HTML attribute names are the spec's own, lowercase")+"; `data-`/`aria-` names take any suffix"}emitRewrittenPrimitive(e,t){let r=this.b.currentMark,s=this.ts?this.b.claimPrimitiveSpan(e):null;if(r!==null&&s!==null)this.b.markSpan(r.nodeId,"identifier",s[0],s[1],()=>this.b.emit(t));else this.b.emit(t);return s}emitQuotedPrimitive(e,t="'"){this.b.emit(t);let r=this.emitPrimitive(e);return this.b.emit(t),r}emitKeyAs(e,t){return e===t?this.emitPrimitive(e):this.emitRewrittenPrimitive(e,t)}emitPropertyRoadKey(e){let t=this.b.offset;if(e(),this.ts)this.attrNames.push([t,this.b.offset])}emitSchemaText(e,t=!1){let r=0,s=null;while(r0){let c=e[o];if(l!==null){if(c==="\\")o++;else if(c===l)l=null}else if(c==='"'||c==="'"||c==="`")l=c;else if(c==="{")a++;else if(c==="}")a--;o++}if(this.b.emit("${"),this.emitSchemaText(e.slice(n+2,a===0?o-1:o),t),a===0)this.b.emit("}");n=o;continue}this.b.emit(e[n]),n++}if(nthis.b.emit(a));else if(Z1(a))this.emitPrimitive(a);else this.b.emit(a);if(np.value===o[m].value),h=null;if(!f){h=Array.from({length:l+1},()=>Array(c+1).fill(0));for(let p=l-1;p>=0;p--)for(let m=c-1;m>=0;m--)h[p][m]=a[p].value===o[m].value?h[p+1][m+1]+1:Math.max(h[p][m+1],h[p+1][m])}let u=0,d=0;for(let p=0;pthis.noteNameSpan(m.value)),u++}else this.noteNameSpan(m.value);d=m.end}this.b.emit(r.slice(d))}registerVoidValue(e,t){if(T1(e)){this.voidFuncs.add(e);return}if(!(y(e)&&k1(e[0])))throw this.positionedError(e,"emitter: the void marker (a trailing '!' on the defined name) requires a function value — `save! = ->`, `save! =! ->`, `save! = =>`, `fn!: ->`",t)}withTarget(e){let t=this.inTarget;this.inTarget=!0,e(),this.inTarget=t}withPattern(e,t=!1){let r=this.inPattern,s=this.bindingPattern;this.inPattern=!0,this.bindingPattern=t,e(),this.inPattern=r,this.bindingPattern=s}withExpression(e){let t=this.inPattern,r=this.bindingPattern;this.inPattern=!1,this.bindingPattern=!1,e(),this.inPattern=t,this.bindingPattern=r}withDeopt(e){let t=this.deopt;this.deopt=!0,e(),this.deopt=t}mark(e,t,r){let s=this.stores.idOf(e);if(s!==null&&(t==="$self"||this.stores.role(s,t)!==null))this.b.mark(s,t,r);else r()}beginMark(e,t){let r=this.stores.idOf(e);if(r!==null&&(t==="$self"||this.stores.role(r,t)!==null))return this.b.beginMark(r,t),!0;return!1}endMark(e){if(e)this.b.endMark()}annotationText(e,t="annotation"){let r=this.stores.idOf(e);if(r===null)return null;let s=this.stores.role(r,t);if(!s||s.sourceStart==null||this.b.source===null)return null;return jt(this.b.source.slice(s.sourceStart,s.sourceEnd).replace(/^\s*:\s*/,""))}tsAnnotate(e,t,r){this.b.tsOnly(()=>this.mark(e,t,()=>this.emitTypeText(e,t,`: ${r}`)))}tsReturnAnnotation(e,t,r,s,i=e){if(!this.ts)return;let n=this.annotationText(e,"returnType");if(n!==null){let a=t&&!s&&!/^Promise\s*`:n;this.b.tsOnly(()=>this.mark(e,"returnType",()=>this.emitTypeText(e,"returnType",`: ${a}`)));return}if(r&&!s){let a=t?"Promise":"void";this.b.tsOnly(()=>this.mark(i,"voidMarker",()=>this.b.emit(`: ${a}`)))}}tsRendered(e,t){try{return t()}catch(r){if(r instanceof ii)throw this.positionedError(e,`emitter: ${r.message}`);throw r}}emitTsTypeDecls(e,t){if(!this.ts)return;for(let r of e){if(!y(r)||r[0]!=="type-decl")continue;this.tsTypeDeclLine(r,t)}}tsTypeDeclLine(e,t){let r=this.tsRendered(e,()=>vn(e[1])),s=this.tsDirectiveMap.get(e);if(s!==void 0){if(this.tsDirectiveMap.delete(e),r.length===1)for(let i of s)this.tsDirectiveLine(i,t,!0)}this.b.tsOnly(()=>{this.b.emit(t),this.mark(e,"$self",()=>this.mark(e,"declaration",()=>{this.emitTypeText(e,"declaration",r.join(` +`:""}var w3=["type __RipEqEl = (() => T extends A ? 1 : 2) extends (() => T extends B ? 1 : 2) ? true : false;","type __RipBaseEl = __RipEqEl extends true ? true : __RipEqEl extends true ? true : __RipEqEl extends true ? true : __RipEqEl extends true ? true : __RipEqEl extends true ? true : __RipEqEl extends true ? true : __RipEqEl extends true ? true : false;","type __RipRefOk = 0 extends (1 & V) ? unknown : [V] extends [null] ? unknown : null extends V ? ([E] extends [Extract, E>] ? unknown : __RipBaseEl> extends true ? ([E] extends [NonNullable] ? unknown : never) : never) : never;","declare function __ripRefCell(tag: K, cell: { value: V } & __RipRefOk): { value: HTMLElementTagNameMap[K] | null };","declare function __ripRefCellSvg(tag: K, cell: { value: V } & __RipRefOk): { value: SVGElementTagNameMap[K] | null };"].join(` +`);var Oi=()=>{throw Error("rip: component type story is unavailable in the browser")},Bs=()=>{throw Error("rip: component type story is unavailable in the browser")},Us=()=>!1,Vs=()=>!1,Ws=()=>{throw Error("rip: component type story is unavailable in the browser")},Hs=()=>{throw Error("rip: component type story is unavailable in the browser")},Ii=()=>!0,Gs=()=>{throw Error("rip: component type story is unavailable in the browser")},$i=()=>{throw Error("rip: component type story is unavailable in the browser")},Di=()=>{throw Error("rip: component type story is unavailable in the browser")},xi="",Ks=()=>null,Ys=()=>"",zs=()=>"",qs=()=>{throw Error("rip: component type story is unavailable in the browser")},Xs=()=>"string",Js="",Zs=()=>[],Qs=()=>!1,ea=()=>!1,ta="",ra=()=>{throw Error("rip: component type story is unavailable in the browser")},ia=()=>[],na=()=>[],Ci=()=>{throw Error("rip: component type story is unavailable in the browser")},sa=()=>{throw Error("rip: component type story is unavailable in the browser")},aa=()=>{throw Error("rip: component type story is unavailable in the browser")},oa=()=>[];var _3=new Set(["beforeMount","mounted","beforeUnmount","unmounted","onError"]),N3=new Set(["_state","_frame","_parent","_children","_root","_nodes","_target","_context","_rest","_restWriters","_restHandlers","_inheritedEl","_inheritedInst","_inheritedOwn","_refCleanups","_initFailed","_hmrOrphans","_hmrReleasing","_hmrPropKeys","_asChild"]),A3=new Set(["+","-","*","/","%","**","<",">","<=",">=","==","!=","&&","||","??","<<",">>",">>>","&","^","|"]),F1=new Set(["=","void-assign","+=","-=","*=","/=","%=","**=","&&=","||=","??=","<<=",">>=",">>>=","&=","^=","|="]),lt=(e)=>F1.has(e)||e==="//="||e==="%%=",ct=new Set(["=","void-assign"]),la=new Set(["=","+=","-=","*=","/=","%=","**=","&&=","||=","??="]),ht=/^[A-Za-z_$][\w$]*$/,Pi={"==":"===","!=":"!=="},v3=new Set(["true","false","null","undefined","this"]),cr=(e,t=0)=>{let r=[],n=null;for(let i=0;iArray.isArray(e),ft=(e)=>y(e)&&A3.has(e[0])&&e.length===3,hr=new Set([".","?.","[]","optindex"]),Ce=(e)=>y(e)&&e[0]==="."&&e.length===3&&e[2]==="new",O3={__proto__:null,Array:"",ReadonlyArray:"",Map:"",Set:"",WeakMap:"",WeakSet:"",Promise:"",WeakRef:""};function I3(e){if(e[0]!=="="||e.length!==3)return null;let t=e[1];if(!y(t)||t[0]!=="."||typeof t[2]!=="string")return null;let r=t[1];if(!y(r)||r[0]!=="."||r[2]!=="prototype"||typeof r[1]!=="string")return null;return{head:r[1],member:t[2]}}function gt(e){let t=e;if(y(t)&&t[0]==="typed-var"&&t.length===3)t=t[1];if(y(t)&&t[0]==="."&&t[1]==="this"&&typeof t[2]==="string")return t[2];return null}function $3(e){let t=e;if(y(t)&&t[0]==="default"&&t.length===3)t=t[1];let r=gt(t);if(r===null)return null;return{name:r,typed:y(t)&&t[0]==="typed-var"&&t.length===3?t:null}}function D3(e){let t=[],r=new Map,n=(i,s)=>{if(!y(i))return;let a=i[0];if(a==="->"||a==="def"||a==="void-def"||a==="class"||a==="component"||a==="schema")return;if((a==="="||a==="void-assign")&&i.length===3&&y(i[1])&&i[1][0]==="."&&i[1][1]==="this"&&typeof i[1][2]==="string"){let o=i[1][2],l=r.get(o);if(l===void 0){let c={name:o,node:i,nodes:[i],viaArrow:s};r.set(o,c),t.push(c)}else if(l.nodes.push(i),l.viaArrow&&!s)l.viaArrow=!1}for(let o of i.slice(1))n(o,s||a==="=>")};for(let i of e)if(i!==null&&i!==void 0)n(i,!1);return t}var ca=new Set(["<",">","<=",">=","==","!="]),ut=(e)=>y(e)&&ca.has(e[0])&&e.length===3&&y(e[1])&&ca.has(e[1][0])&&e[1].length===3&&!e[1].parenthesized,ha=(e)=>y(e)&&(e[0]==="-"||e[0]==="+"||e[0]==="!"||e[0]==="~"||e[0]==="typeof"||e[0]==="delete")&&e.length===2,x3=(e)=>y(e)&&F1.has(e[0])&&e.length===3,fa=(e)=>y(e)&&(e[0]==="in"||e[0]==="of"||e[0]==="instanceof"||e[0]==="!in"||e[0]==="!of"||e[0]==="!instanceof")&&e.length===3,ua=(e)=>y(e)&&e[0]==="if",We=(e)=>y(e)&&(e[0]===".."||e[0]==="...")&&e.length===3,dt=(e)=>y(e)&&e[0]==="..."&&e.length===2,O1=(e)=>y(e)&&e[0]==="object",T1=(e)=>y(e)&&(e[0]==="->"||e[0]==="=>")&&e.length===3,C3=new Set(["break","continue","return"]),P3=new Set(["break"]),k1=(e)=>e==="def"||e==="void-def";function Bi(e,t){if(!y(e))return!1;let r=e[0];if(r==="await"||r==="dammit!"||r==="dammit?")return!0;if(r==="for-as"&&e[3]===!0)return!0;if(r==="class")return Bi(e[2],t);if(r==="->"||r==="=>"||k1(r)||E.isEffectDeclIn(t,e))return!1;return e.some((n)=>Bi(n,t))}function dr(e){if(!y(e))return!1;let t=e[0];if(t==="yield"||t==="yield-from")return!0;if(t==="class")return dr(e[2]);if(t==="->"||t==="=>"||k1(t))return!1;return e.some((r)=>dr(r))}var U1=(e)=>y(e)&&(e[0]==="++"||e[0]==="--")&&e.length===3,ur=/^[A-Za-z_$][A-Za-z0-9_$]*$/,mr=(e,t="",r=[])=>{if(!y(e))return r;if(e[0]==="object"){for(let n of e.slice(1)){if(!y(n)||n.length!==3)continue;let i=n[0];if(i!==":"&&i!==null)continue;let s=n[1];if(typeof s!=="string")continue;let a=ur.test(s)?`.${s}`:`[${s}]`,o=n[2];if(typeof o==="string"){if(ur.test(o))r.push([o,t+a])}else mr(o,t+a,r)}return r}if(e[0]==="array")return e.slice(1).forEach((n,i)=>{if(y(n)&&n[0]==="...")return;if(typeof n==="string"){if(ur.test(n))r.push([n,`${t}[${i}]`])}else mr(n,`${t}[${i}]`,r)}),r;return r},Li=(e)=>y(e)&&e[0]==="?:"&&e.length===4,b1=(e)=>y(e)&&e[0]==="block",te=(e)=>$e.has(String(e).split("#")[0]),re=(e)=>y(e)&&e[0]==="comprehension"&&e.length===4&&Array.isArray(e[2])&&e[2].length>0&&Array.isArray(e[2][0])&&String(e[2][0][0]).startsWith("for-");var mt=(e)=>y(e)&&((e[0]==="for-in"||e[0]==="for-of"||e[0]==="for-as")&&e.length===6||e[0]==="while"&&(e.length===3||e.length===4)||e[0]==="loop"&&e.length===2||e[0]==="loop-n"&&e.length===3);function L3(e){let t=0,r=!0,n=(i)=>Array.isArray(i);return e.map((i)=>{if(typeof i==="string"){if(!r)return{item:i,name:i,value:null};return{item:i,name:i,value:String(t++)}}if(n(i)&&i[0]==="="&&i.length===3){let s=i[2],a=typeof s==="string"&&/^[0-9]/.test(s)?Number(s.replace(/_/g,"")):n(s)&&s[0]==="-"&&typeof s[1]==="string"?-Number(s[1].replace(/_/g,"")):null;if(a!==null&&Number.isFinite(a))t=a+1,r=!0;else if(typeof s==="string"&&s.startsWith('"'))r=!1;return{item:i,name:i[1],value:s}}return{item:i,name:null,value:void 0}})}var fr=(e)=>String(e).replace(/^['"`]|['"`]$/g,"");function Pe(e){return`'${String(e).slice(1,-1).replace(/\\/g,"\\\\").replace(/'/g,"\\'")}'`}function Mi(e,t){if(!y(t)||t[0]!=="import"||t.length<2)return!1;let r=e.idOf(t);return(r!==null?e.node(r)?.semanticKind:null)==="import"}class E{constructor(e,t,{face:r="js",pins:n=null,strict:i=!1,script:s=!1,browserModule:a=!1,repl:o=!1,hmr:l=!1,tolerant:c=!1,modulePath:h=null,appStashSpec:f=null,routesUnion:u=null,routeParams:d=null}={}){this.stores=e,this.b=t,this.repl=o,this.tolerant=c,this.replResultName=null,this.replImportResolver=null,this.script=s,this.appStashSpec=f,this.routesUnion=typeof u==="string"&&u.length>0?u:null,this.routeParams=typeof d==="string"&&d.length>0?d:null,this.appAccessors={stash:null,router:null},this.routeWrapSpans=[],this.memberInitSites=[],this.sourceKeySpans=[],this.stashMemberSpans=[],this.domSurfaces=new Map,this._needsClassValue=!1,this._needsCssProperties=!1,this._needsChildren=!1,this._restTags=new Set,this._needsRefCellHelper=!1,this.intrinsics=[],this.componentUses=[],this.namespaceExports=[],this.componentNames=[],this.renderPairs=[],this.browserModule=a,this.hmr=l===!0,this.modulePath=typeof h==="string"&&h.length>0?h:null,this.importSpans=[],this.typeOnlyImports=new Set,this.pins=n,this.pinnables=[],this.pinnedWrites=new Set,this.mutables=[],this.enums=[],this.classDecls=[],this.pinSpans=[],this.loopVars=[],this.loopVarDecls=[],this.attrNames=[],this.importedRefs=[],this.strict=i,this.ts=r==="ts",this.pendingHoistTypes=new Map,this.tsDirectiveMap=new Map,this.tsNocheck=null,this.pendingHoistDirectives=[],this.tsDirectivesArmed=!1,this.pendingSigs=new WeakMap,this.pendingTypeDecls=[],this.primitiveAvoid=null,this.primitiveReuse=null,this.declaringName=!1,this.vocabulary=[],this.silences=[],this.memberDecls=[],this.narrowedDecls=[],this._narrowedReads=null,this._textOwner=null,this.kinds=[],this.componentInfo=new Map,this.schemaFns=new Map,this.moduleComponentNames=new Map,this.ind=0,this.methodName=null,this.scopes=[],this.lastProgramStmt=null,this.inPattern=!1,this.bindingPattern=!1,this.deopt=!1,this.inTarget=!1,this.voidFuncs=new WeakSet,this.sideEffectOnly=!1,this.voidReason=null,this.usesSchema=!1,this.exprDepth=0,this.renderRecord=null,this.postfixGuardDepth=0,this._schemaName=null,this.subParses=new Map,this.runtimeAliases=new Map,this.temps={used:new Set,n:0,byNode:new WeakMap},this.refPlans=new WeakMap,this.ctrlDepth=0,this.tailReturnOk=!1,this.rframes=[],this.cframes=[],this._componentName=null,this.moduleBound=new Set,this.renderSelf=null,this.projectionHost=null}isReactiveDecl(e){return E.isReactiveDeclIn(this.stores,e)}static isReactiveDeclIn(e,t){if(!y(t)||t[0]!=="state"&&t[0]!=="computed"||t.length!==3)return!1;let r=e.idOf(t),n=r!==null?e.node(r)?.semanticKind:null;return n==="state"||n==="computed"}isGateDecl(e){return E.isGateDeclIn(this.stores,e)}static isGateDeclIn(e,t){if(!y(t)||t[0]!=="gate"||t.length<3)return!1;let r=e.idOf(t);return(r!==null?e.node(r)?.semanticKind:null)==="gate"}isEffectDecl(e){return E.isEffectDeclIn(this.stores,e)}static isEffectDeclIn(e,t){if(!y(t)||t[0]!=="effect"||t.length!==3)return!1;let r=e.idOf(t);return(r!==null?e.node(r)?.semanticKind:null)==="effect"}isReadonlyDecl(e){return E.isReadonlyDeclIn(this.stores,e)}static isReadonlyDeclIn(e,t){if(!y(t)||t[0]!=="readonly"&&t[0]!=="void-readonly"||t.length!==3)return!1;let r=e.idOf(t);return(r!==null?e.node(r)?.semanticKind:null)==="readonly"}lockedHead(e,t){let r=this.stores.idOf(e);if(r===null)return!0;return this.stores.node(r)?.semanticKind===t}static pureSpine(e){return typeof e==="string"||y(e)&&typeof e[0]==="string"&&hr.has(e[0])&&!Ce(e)&&E.pureSpine(e[1])}semanticKindOf(e){let t=this.stores.idOf(e);return t!==null?this.stores.node(t)?.semanticKind??null:null}isModuleImport(e){return E.isModuleImportIn(this.stores,e)}static isModuleImportIn(e,t){return Mi(e,t)}static BLOCK_HEADS=new Set(["if","while","loop","for-in","for-of","for-as","switch","when","try","block","comprehension"]);collectReactiveNames(e){let t=new Set,r=(n,i)=>{if(!y(n)||k1(n[0])||T1(n)||n[0]==="class"||n[0]==="enum")return;if(n[0]==="component"&&n.length===3)return;if(this.isReactiveDecl(n)){if(i){let a=n[0]==="state"?":=":"~=";throw this.positionedError(n,`emitter: a reactive declaration ('${typeof n[1]==="string"?n[1]:"…"} ${a} …') must sit at module or function scope — `+"inside a statement block it lowers to a block-scoped const, and any later read would unwrap '.value' off a binding that no longer exists")}if(typeof n[1]==="string")t.add(n[1]);return}if(this.isEffectDecl(n))return;let s=i||E.BLOCK_HEADS.has(n[0]);for(let a of n)r(a,s)};for(let n of e)r(n,!1);return t}collectEffectHandles(e){let t=new Set,r=(n,i)=>{if(!y(n)||k1(n[0])||T1(n)||n[0]==="class"||n[0]==="enum")return;if(n[0]==="component"&&n.length===3)return;if(this.isReactiveDecl(n))return;if(this.isEffectDecl(n)){if(n[1]!==null){if(i)throw this.positionedError(n,`emitter: a bound effect ('${typeof n[1]==="string"?n[1]:"…"} ~> …') must sit at module or function scope — `+"inside a statement block its dispose handle would be a block-scoped const, dead to every later read "+"; a BARE '~> …' stays legal here");if(typeof n[1]==="string")t.add(n[1])}return}let s=i||E.BLOCK_HEADS.has(n[0]);for(let a of n)r(a,s)};for(let n of e)r(n,!1);return t}collectReadonlyNames(e){let t=new Set,r=(n,i)=>{if(!y(n)||k1(n[0])||T1(n)||n[0]==="class"||n[0]==="enum")return;if(n[0]==="component"&&n.length===3)return;if(this.isReactiveDecl(n)||this.isEffectDecl(n))return;if(this.isReadonlyDecl(n)){if(i)throw this.positionedError(n,`emitter: a readonly declaration ('${typeof n[1]==="string"?n[1]:"…"} =! …') must sit at module or function scope — `+"inside a statement block it lowers to a block-scoped const, dead to every later read ");if(typeof n[1]==="string")t.add(n[1]);r(n[2],i);return}let s=i||E.BLOCK_HEADS.has(n[0]);for(let a of n)r(a,s)};for(let n of e)r(n,!1);return t}static exportedConstNames(e){let t=new Set;for(let r of e){if(!y(r)||r[0]!=="export")continue;for(let n of r.slice(1))if(y(n)&&(n[0]==="="||n[0]==="void-assign")&&n.length===3&&typeof n[1]==="string")t.add(n[1])}return t}isExportedConst(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e))return!1;if(r.exportedConst!==void 0&&r.exportedConst.has(e))return!0;if(r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}checkExportedConstWrite(e,t){let r=typeof t==="string"?[t]:E.isPattern(t)?this.patternNames(t):[];for(let n of r){if(!this.isExportedConst(n))continue;throw this.positionedError(e,`emitter: cannot assign to exported '${n}' — an exported binding lowers to `+`'export const', which never changes after its declaration; declare it as state ('export ${n} := …') to write it, or drop the export`)}}positionedError(e,t,...r){let n=Error(t);for(let i of[e,...r]){let s=this.stores.idOf(i),a=s!==null?this.stores.selfSpan(s):null;if(a){n.start=a[0],n.end=a[1];break}}return n}positionedErrorAt(e,t,r){let n=Error(r);return n.start=e,n.end=t,n}static declaredNames(e){let t=[],r=(n)=>{if(!y(n))return;if((n[0]==="enum"||n[0]==="class")&&typeof n[1]==="string")t.push(n[1]);if(k1(n[0])&&n.length===4&&typeof n[1]==="string")t.push(n[1])};for(let n of e)if(r(n),y(n)&&n[0]==="export"&&y(n[1]))r(n[1]);return t}static declaredClassNames(e){let t=new Set,r=(n)=>{if(!y(n)||!ct.has(n[0])||n.length!==3)return;if(typeof n[1]!=="string")return;let i=n[2];if(y(i)&&(i[0]==="class"||i[0]==="component"))t.add(n[1])};for(let n of e)if(r(n),y(n)&&n[0]==="export"&&y(n[1]))r(n[1]);return t}static declaredEnumNames(e){let t=new Set,r=(n)=>{if(y(n)&&n[0]==="enum"&&typeof n[1]==="string")t.add(n[1])};for(let n of e)if(r(n),y(n)&&n[0]==="export"&&y(n[1]))r(n[1]);return t}nodeLine(e){let t=this.stores.idOf(e),r=t!==null?this.stores.selfSpan(t):null;if(!r||typeof this.b.source!=="string")return null;let n=1;for(let i=0;i{if(typeof h==="string")n.push({name:h,kind:f,node:u,auth:!0})},s=(h,f)=>{if(typeof h==="string")n.push({name:h,kind:"plain",node:f,auth:!1})},a=(h,f,u)=>{let d=new Set;for(let p of h){if(d.has(p))throw this.positionedError(f,`emitter: '${p}' is bound twice in one ${u} — one binding per name; rename or drop the duplicate`,...r!==null?[r]:[]);d.add(p)}return h};{let h=[],f=[];for(let u of t??[]){this.patternNames(u,h,!0);let d=y(u)?u:t;while(f.lengthi(u,"parameter",f[d]))}let o=(h,f)=>{if(!y(h))return;if(this.isModuleImport(h)){for(let d of E.importedNames([h]))i(d,"import",h);return}if(T1(h))return;if(k1(h[0])){if(!f&&h.length===4&&typeof h[1]==="string")i(h[1],"def",h);return}if(h[0]==="enum"){if(!f)i(h[1],"enum",h);return}if(h[0]==="component"&&h.length===3)return;if(h[0]==="class"){if(!f)i(h[1],"class",h);if(h[2]!=null)o(h[2],!0);let d=h[3];if(b1(d)){for(let p of d.slice(1))if(y(p)&&F1.has(p[0])&&p.length===3)o(p[2],!0);else if(!E.isTypedWrapper(p))o(p,!0)}return}if(this.isReactiveDecl(h)){if(i(h[1],h[0]==="computed"?"computed":"state",h),!(h[0]==="computed"&&b1(h[2])&&h[2].length>2))o(h[2],f);return}if(this.isEffectDecl(h)){if(h[1]!==null)i(h[1],"effect",h);return}if(this.isReadonlyDecl(h)){i(h[1],"readonly",h),o(h[2],f);return}if(h[0]==="export"){for(let d of h.slice(1)){if(!y(d))continue;if((d[0]==="="||d[0]==="void-assign")&&d.length===3&&typeof d[1]==="string")i(d[1],"plain",d),o(d[2],f);else o(d,f)}return}if(h[0]==="for-in"||h[0]==="for-of"||h[0]==="for-as"){if(y(h[1])){let d=[];for(let p of h[1])this.patternNames(p,d,!0);a(d,h,"loop head")}for(let d of h.slice(2))o(d,!0);return}if(re(h)){o(h[1],!0);for(let d of h[2]??[]){let p=[];if(y(d[1]))for(let m of d[1])this.patternNames(m,p,!0);a(p,h,"comprehension clause"),o(d[2],!0)}for(let d of h[3]??[])o(d,!0);return}if(h[0]==="try"){for(let d of h.slice(2))if(y(d)&&d.length===2&&E.isPattern(d[0])){for(let p of a(this.patternNames(d[0]),d[0],"catch pattern"))s(p,h);o(d[1],!0)}else o(d,!0);o(h[1],!0);return}if(F1.has(h[0])&&h.length===3){if(typeof h[1]==="string")s(h[1],h);else if(h[0]==="="&&E.isPattern(h[1]))for(let d of a(this.patternNames(h[1]),h,"destructuring pattern"))s(d,h)}let u=f||E.BLOCK_HEADS.has(h[0]);for(let d of h)o(d,u)};for(let h of e)o(h,!1);n.forEach((h,f)=>{h.order=f});let l=(h,f)=>{let u=f.node!==null?this.nodeLine(f.node):null,d=f.kind==="state"||f.kind==="parameter"||f.kind==="plain"?` — assign with '${h.name} = …' to update it, or choose a different name`:" — choose a different name";throw this.positionedError(h.node,`emitter: '${h.name}' was already declared as ${f.kind}${u!==null?` on line ${u}`:""}${d}`,...r!==null?[r]:[])},c=new Map;for(let h of n){if(!h.auth)continue;let f=c.get(h.name);if(f!==void 0)l(h,f);c.set(h.name,h)}for(let h of n){if(h.auth)continue;let f=c.get(h.name);if(f!==void 0){if(f.auth&&h.orderu.members.has(h.name)))continue;c.set(h.name,h)}}pushReactiveFrame(e,t,r=[],n=null){let i=this.collectReactiveNames(e),s=this.collectEffectHandles(e),a=this.collectReadonlyNames(e);return this.checkScopeRedeclarations(e,r,n),this.rframes.push({reactive:i,computed:this.collectComputedNames(e),readonly:a,handles:s,bound:new Set([...t,...E.declaredNames(e),...s,...a]),enums:E.declaredEnumNames(e),classes:E.declaredClassNames(e),importSpecs:E.importedSpecs(e),exportedConst:E.exportedConstNames(e)}),new Set([...i,...s,...a])}withBindings(e,t){this.rframes.push({reactive:new Set,bound:new Set(e),block:!0}),t(),this.rframes.pop()}resolveBareRead(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e))return"reactive";if(r.bound.has(e))return null;if(r.members!==void 0&&r.members.has(e))return r.memberReactive.has(e)?"member-reactive":"member"}return null}kindOfName(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive?.has(e))return r.computed?.has(e)?"computed":"state";if(r.readonly?.has(e))return"readonly";if(r.handles?.has(e))return"effect";if(r.bound?.has(e))return null;if(r.members!==void 0&&r.members.has(e))return r.memberKinds?.get(e)??null}return null}isReactiveName(e){return this.resolveBareRead(e)==="reactive"}isEnumName(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.enums!==void 0&&r.enums.has(e))return!0;if(r.reactive.has(e)||r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}isClassName(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.classes!==void 0&&r.classes.has(e))return!0;if(r.reactive.has(e)||r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}noteLoopVarRead(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.loopVars!==void 0&&r.loopVars.has(e)){let n=r.loopBindings?.get(e);if(n!==void 0)n.owner.readVars.add(n.which);return}if(r.reactive.has(e)||r.bound.has(e))return;if(r.members!==void 0&&r.members.has(e))return}}static loopBindingsOf(e){let t=new Map;for(let r of e.loopStack){if(r.owner===void 0)continue;t.set(r.itemVar,{owner:r.owner,which:"item"}),t.set(r.indexVar,{owner:r.owner,which:"index"})}return t}isRenderLoopName(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.loopVars!==void 0&&r.loopVars.has(e))return!0;if(r.reactive.has(e)||r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}importSpecOf(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t],n=r.importSpecs?.get(e);if(n!==void 0)return n;if(r.reactive.has(e)||r.bound.has(e))return null;if(r.members!==void 0&&r.members.has(e))return null}return null}isComputedName(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e))return r.computed!==void 0&&r.computed.has(e);if(r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}isAmbientReadonly(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e))return!1;if(r.ambientReadonly!==void 0&&r.ambientReadonly.has(e))return!0;if(r.readonly!==void 0&&r.readonly.has(e))return!0;if(r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}memberKindOf(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e))return null;if(r.bound.has(e))return null;if(r.members!==void 0&&r.members.has(e))return r.members.get(e)}return null}thisMemberKindOf(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.members!==void 0)return r.members.has(e)?r.members.get(e):null}return null}static targetsRestView(e){if(!y(e))return!1;if(e[0]==="array")return e.slice(1).some((r)=>E.targetsRestView(r));if(e[0]==="object")return e.slice(1).some((r)=>y(r)&&E.targetsRestView(r[2]??r[1]));if(e[0]==="default"||e[0]==="rest")return E.targetsRestView(e[1]);let t=e;while(y(t)&&(t[0]==="."||t[0]==="[]"||t[0]==="?."||t[0]==="optindex")&&t.length===3){if(t[0]==="."&&t[1]==="this"&&t[2]==="rest")return!0;t=t[1]}return!1}checkBareRest(e,t){if(t!=="rest"||this.memberKindOf(t)!=="rest")return;let r=this.positionedError(e,"emitter: `rest` is provided by `extends`, not declared here — spell it `@rest`, as with `@stash` and `@router`");if(typeof r.start!=="number"&&this.b.currentMark)r.start=this.b.currentMark.sourceStart,r.end=this.b.currentMark.sourceEnd;throw r}checkMemberWrite(e,t){if(this.cframes.length===0)return;if(this.thisMemberKindOf("rest")==="rest"&&E.targetsRestView(t))throw this.positionedError(e,"emitter: `@rest` is the runtime-owned view of the caller's undeclared props and is never assigned — "+"set the attribute on the element in render, or declare the name as a prop the caller supplies");let r=null,n=null;if(typeof t==="string")this.checkBareRest(e,t),r=t,n=this.memberKindOf(t);else if(y(t)&&t[0]==="."&&t[1]==="this"&&typeof t[2]==="string")r=t[2],n=this.thisMemberKindOf(r);if(n===null)return;if(n==="readonly")throw this.positionedError(e,`emitter: cannot assign to readonly member '${r}' — a '=!' member never changes after _init; `+"a member that changes is state (':=')");if(n==="plain"){let i=this.cframes[this.cframes.length-1];if(!i.plainWrites.has(r))i.plainWrites.set(r,e)}}notePlainRenderRead(e,t=!1){if(this.rstate==null||this.cframes.length===0)return;if((t?this.thisMemberKindOf(e):this.memberKindOf(e))!=="plain")return;this.cframes[this.cframes.length-1].renderPlainReads.add(e)}collectComputedNames(e){let t=new Set,r=(n,i)=>{if(!y(n)||k1(n[0])||T1(n)||n[0]==="class"||n[0]==="enum")return;if(n[0]==="component"&&n.length===3)return;if(this.isReactiveDecl(n)){if(!i&&n[0]==="computed"&&typeof n[1]==="string")t.add(n[1]);return}if(this.isEffectDecl(n))return;let s=i||E.BLOCK_HEADS.has(n[0]);for(let a of n)r(a,s)};for(let n of e)r(n,!1);return t}bareRewrite(e){if(this.inPattern&&this.bindingPattern)return null;return this.resolveBareRead(e)}isReactiveRead(e){return this.bareRewrite(e)==="reactive"}memberIsReactive(e){let t=this.cframes[this.cframes.length-1];return t!==void 0&&t.memberReactive.has(e)}inComponent(){return this.cframes.length>0}reactiveRead(e){let t=this.b.currentMark,r=this.b.source;if(this.ts){let n=this.emitPrimitive(e);if(n!==null&&this._narrowedReads?.has(e))this.narrowedDecls.push({start:n[0],end:n[1]})}else if(t!==null&&r!==null&&r.slice(t.sourceStart,t.sourceEnd)===e)this.b.mark(t.nodeId,t.role,()=>this.b.emit(e));else this.b.emit(e);this.b.emit(".value")}memberRead(e,t){let r=this.b.currentMark,n=this.b.source;if(this.b.emit((this.renderSelf??"this")+"."),this.ts){let i=this.emitPrimitive(e);if(t&&i!==null)this.memberDecls.push({start:i[0],end:i[1]});if(i!==null&&this._narrowedReads?.has(e))this.narrowedDecls.push({start:i[0],end:i[1]})}else if(r!==null&&n!==null&&n.slice(r.sourceStart,r.sourceEnd)===e)this.b.mark(r.nodeId,r.role,()=>this.b.emit(e));else this.b.emit(e);if(t)this.b.emit(".value")}emitPrimitive(e){let t=this.b.currentMark,r=this.ts&&typeof e==="string"?this.b.claimPrimitiveSpan(e,this.primitiveAvoid):null;if(r===null&&this.primitiveReuse!==null&&this.primitiveReuse.name===e)r=this.primitiveReuse.span,this.primitiveReuse=null;if(r!==null&&Z1(e)){let n=this.kindOfName(e),i=typeof n==="string"?{label:n,optional:!1}:n;if(i!==null)this.kinds.push({start:r[0],end:r[1],label:i.label,name:e,optional:i.optional})}if(t!==null&&r!==null){let n=Z1(e)?"identifier":"literal";this.b.markSpan(t.nodeId,n,r[0],r[1],()=>this.noteNameSpan(e))}else this.noteNameSpan(e);return r}noteNameSpan(e){if(!this.ts||this.declaringName||typeof e!=="string"||!Z1(e)){this.b.emit(e);return}let t=this.b.offset;if(this.b.emit(e),this.isEnumName(e)){this.enums.push([t,this.b.offset]);return}if(this.isReactiveName(e)&&!this.isComputedName(e)){this.mutables.push([t,this.b.offset]);return}if(this.isClassName(e)){this.classDecls.push([t,this.b.offset]);return}if(this.isRenderLoopName(e)){this.loopVars.push([t,this.b.offset]),this.noteLoopVarRead(e);return}let r=this.importSpecOf(e);if(r!==null)this.importedRefs.push([t,this.b.offset,r.importedName,r.specifier])}withDeclaredName(e){let t=this.declaringName;this.declaringName=!0;try{return e()}finally{this.declaringName=t}}noteVocabulary(e,t,r){let n=this.wordSpanIn(t,r);if(n!==null)this.vocabulary.push({kind:e,start:n[0],end:n[1]})}noteShorthandClasses(e,t){for(let r of e)this.noteVocabulary("render-channel",r,t)}noteHeadKeyword(e,t,r){if(!this.ts)return;let n=y(r)?this.stores.idOf(r):null,i=n!==null?this.stores.selfSpan(n):null;if(i===null||this.b.source===null)return;let s=i[0]+t.length;if(s>i[1]||this.b.source.slice(i[0],s)!==t)return;this.vocabulary.push({kind:e,start:i[0],end:s})}noteKind(e,t,r){let n=this.stores.idOf(e),i=n!==null?this.stores.role(n,t):null;if(i?.sourceStart!=null&&i.sourceEnd>i.sourceStart){let s=this.b.source?.slice(i.sourceStart,i.sourceEnd)??null;this.kinds.push({start:i.sourceStart,end:i.sourceEnd,label:r,name:s})}}noteSilence(e,t){let r=this.wordSpanIn(e,t);if(r!==null)this.silences.push([r[0],r[1]])}static MEMBER_KINDS={state:"state",computed:"computed",readonly:"readonly",gate:"gate",accept:"accept"};static memberLabel(e){if(e.isPublic&&(e.kind==="prop"||e.kind==="state"))return"prop";return E.MEMBER_KINDS[e.kind]??null}noteMemberDecl(e){if(!this.ts)return;let t=y(e.nameNode)?this.stores.idOf(e.nameNode):null,r=t!==null?this.stores.role(t,e.nameRole):null;if(!r||typeof r.sourceStart!=="number")return;let n=E.memberLabel(e);if(n!==null)this.kinds.push({start:r.sourceStart,end:r.sourceEnd,label:n,name:e.name,optional:e.optional===!0,...e.kind==="accept"&&e.provider!=null?{provider:e.provider}:{}});if(!Vs(e))return;this.memberDecls.push({start:r.sourceStart,end:r.sourceEnd})}wordSpanIn(e,t){if(!this.ts)return null;let r=y(t)?this.stores.idOf(t):null,n=r!==null?this.stores.selfSpan(r):null;if(n===null)return null;let i=this.stores.primitiveSpans(e,n[0],n[1]);if(i.length!==1)return null;return[i[0].sourceStart,i[0].sourceEnd]}bareChildSpan(e,t,r){let n=(l)=>{let c=y(l)?this.stores.idOf(l):null;return c!==null?this.stores.selfSpan(c):null},i=n(r)??n(this.rstate?.node??null);if(i===null)return null;let[s,a]=i;for(let l=t-1;l>=0;l--){let c=n(e[l]);if(c){s=c[1];break}}for(let l=t+1;l — did you mean '${i}'?`;if(r)return`'${t}' is not a known attribute of <${e}> — a bare word sets the boolean attribute it `+`names; render a value with \`= ${t}\`, or spell \`name: value\``;return`'${t}' is not a known attribute of <${e}> — `+(n?"SVG attribute names are the spec's own, case-sensitive (`viewBox`)":"HTML attribute names are the spec's own, lowercase")+"; `data-`/`aria-` names take any suffix"}emitRewrittenPrimitive(e,t){let r=this.b.currentMark,n=this.ts?this.b.claimPrimitiveSpan(e):null;if(r!==null&&n!==null)this.b.markSpan(r.nodeId,"identifier",n[0],n[1],()=>this.b.emit(t));else this.b.emit(t);return n}emitQuotedPrimitive(e,t="'"){this.b.emit(t);let r=this.emitPrimitive(e);return this.b.emit(t),r}emitKeyAs(e,t){return e===t?this.emitPrimitive(e):this.emitRewrittenPrimitive(e,t)}emitPropertyRoadKey(e){let t=this.b.offset;if(e(),this.ts)this.attrNames.push([t,this.b.offset])}emitSchemaText(e,t=!1){let r=0,n=null;while(r0){let c=e[o];if(l!==null){if(c==="\\")o++;else if(c===l)l=null}else if(c==='"'||c==="'"||c==="`")l=c;else if(c==="{")a++;else if(c==="}")a--;o++}if(this.b.emit("${"),this.emitSchemaText(e.slice(s+2,a===0?o-1:o),t),a===0)this.b.emit("}");s=o;continue}this.b.emit(e[s]),s++}if(sthis.b.emit(a));else if(Z1(a))this.emitPrimitive(a);else this.b.emit(a);if(sp.value===o[m].value),f=null;if(!h){f=Array.from({length:l+1},()=>Array(c+1).fill(0));for(let p=l-1;p>=0;p--)for(let m=c-1;m>=0;m--)f[p][m]=a[p].value===o[m].value?f[p+1][m+1]+1:Math.max(f[p][m+1],f[p+1][m])}let u=0,d=0;for(let p=0;pthis.noteNameSpan(m.value)),u++}else this.noteNameSpan(m.value);d=m.end}this.b.emit(r.slice(d))}registerVoidValue(e,t){if(T1(e)){this.voidFuncs.add(e);return}if(!(y(e)&&k1(e[0])))throw this.positionedError(e,"emitter: the void marker (a trailing '!' on the defined name) requires a function value — `save! = ->`, `save! =! ->`, `save! = =>`, `fn!: ->`",t)}withTarget(e){let t=this.inTarget;this.inTarget=!0,e(),this.inTarget=t}withPattern(e,t=!1){let r=this.inPattern,n=this.bindingPattern;this.inPattern=!0,this.bindingPattern=t,e(),this.inPattern=r,this.bindingPattern=n}withExpression(e){let t=this.inPattern,r=this.bindingPattern;this.inPattern=!1,this.bindingPattern=!1,e(),this.inPattern=t,this.bindingPattern=r}withDeopt(e){let t=this.deopt;this.deopt=!0,e(),this.deopt=t}mark(e,t,r){let n=this.stores.idOf(e);if(n!==null&&(t==="$self"||this.stores.role(n,t)!==null))this.b.mark(n,t,r);else r()}beginMark(e,t){let r=this.stores.idOf(e);if(r!==null&&(t==="$self"||this.stores.role(r,t)!==null))return this.b.beginMark(r,t),!0;return!1}endMark(e){if(e)this.b.endMark()}annotationText(e,t="annotation"){let r=this.stores.idOf(e);if(r===null)return null;let n=this.stores.role(r,t);if(!n||n.sourceStart==null||this.b.source===null)return null;return jt(this.b.source.slice(n.sourceStart,n.sourceEnd).replace(/^\s*:\s*/,""))}tsAnnotate(e,t,r){this.b.tsOnly(()=>this.mark(e,t,()=>this.emitTypeText(e,t,`: ${r}`)))}tsReturnAnnotation(e,t,r,n,i=e){if(!this.ts)return;let s=this.annotationText(e,"returnType");if(s!==null){let a=t&&!n&&!/^Promise\s*`:s;this.b.tsOnly(()=>this.mark(e,"returnType",()=>this.emitTypeText(e,"returnType",`: ${a}`)));return}if(r&&!n){let a=t?"Promise":"void";this.b.tsOnly(()=>this.mark(i,"voidMarker",()=>this.b.emit(`: ${a}`)))}}tsRendered(e,t){try{return t()}catch(r){if(r instanceof ii)throw this.positionedError(e,`emitter: ${r.message}`);throw r}}emitTsTypeDecls(e,t){if(!this.ts)return;for(let r of e){if(!y(r)||r[0]!=="type-decl")continue;this.tsTypeDeclLine(r,t)}}tsTypeDeclLine(e,t){let r=this.tsRendered(e,()=>vn(e[1])),n=this.tsDirectiveMap.get(e);if(n!==void 0){if(this.tsDirectiveMap.delete(e),r.length===1)for(let i of n)this.tsDirectiveLine(i,t,!0)}this.b.tsOnly(()=>{this.b.emit(t),this.mark(e,"$self",()=>this.mark(e,"declaration",()=>{this.emitTypeText(e,"declaration",r.join(` `+t))})),this.b.emit(` `)})}flushPendingTypeDecls(e,t=!1){if(!this.ts||this.pendingTypeDecls.length===0)return;let r=this.pendingTypeDecls;if(this.pendingTypeDecls=[],t)this.b.tsOnly(()=>this.b.emit(` -`));for(let s of r)this.tsTypeDeclLine(s,e)}emitSegments(e){for(let t of e)if(t.node!==void 0)this.mark(t.node,t.role,()=>this.emitAnnotationWords(t));else this.emitDeclaredTypeCopies(t.text)}emitDeclaredTypeCopies(e,t=null){let r=t??this.b.currentMark?.nodeId??null;if(r===null||!this.ts){this.b.emit(e);return}this.emitNamedCopies(e,null,r,null)}emitNamedCopies(e,t,r,s){if(r===null||!this.ts){this.b.emit(e);return}let i=this.moduleTypeDeclarationSpans();if(t!==null&&s!==null)i.set(t,s);if(i.size===0){this.b.emit(e);return}let n=0;for(let a of e.matchAll(/[A-Za-z_$][\w$]*/g)){let o=i.get(a[0]);if(o===void 0||a.indexthis.b.emit(a[0])),n=a.index+a[0].length}this.b.emit(e.slice(n))}moduleTypeDeclarationSpans(){if(this._typeDeclSpans===void 0){let e=new Map;if(this.b.source!==null){let t=/^(?:export\s+)?(?:(?:type|interface|enum)\s+([A-Za-z_$][\w$]*)|([A-Za-z_$][\w$]*)\s*=\s*schema\b|([A-Za-z_$][\w$]*)\s*=\s*[A-Za-z_$][\w$]*\s*\.\s*(?:pick|omit|partial|required|extend)\b)/gmd;for(let s of this.b.source.matchAll(t)){let i=s.indices[1]??s.indices[2]??s.indices[3],n=this.b.source.slice(i[0],i[1]);if(e.has(n))continue;e.set(n,[i[0],i[1]])}let r=/(?:^|,)\s*(?:type\s+)?(?:[A-Za-z_$][\w$]*\s+as\s+)?([A-Za-z_$][\w$]*)/gd;for(let s of this.b.source.matchAll(/^import\s+(?:type\s+)?\{([^}]*)\}/gmd)){let[i]=s.indices[1],n=s.index+s[0].length;for(let a of s[1].matchAll(r)){let[o,l]=a.indices[1],c=s[1].slice(o,l);if(e.has(c))continue;let f=new RegExp(`(?0){let o=this.b.source.lastIndexOf(r,a-1);if(o<0)break;if(!/[\w$]/.test(this.b.source[o-1]??" ")&&!/[\w$]/.test(this.b.source[o+r.length]??" "))return{id:s,span:[o,o+r.length]};a=o}return null}emitAnnotationWords(e){if(e.role!=="annotation"||!this.ts){this.b.emit(e.text);return}let t=this.stores.idOf(e.node),r=t!==null?this.stores.role(t,"annotation"):null,s=r?.sourceStart!=null&&this.b.source!==null?this.b.source.slice(r.sourceStart,r.sourceEnd):null;if(s===null||e.text.includes(s)){this.noteImportedTypeWords(e.text);return}let i=new Map;for(let a of s.matchAll(/[A-Za-z_$][\w$]*/g))if(!i.has(a[0]))i.set(a[0],[r.sourceStart+a.index,r.sourceStart+a.index+a[0].length]);let n=0;for(let a of e.text.matchAll(/[A-Za-z_$][\w$]*/g)){let o=i.get(a[0]);if(!o)continue;this.b.emit(e.text.slice(n,a.index)),this.b.markSpan(t,"identifier",o[0],o[1],()=>this.noteImportedTypeWords(a[0])),n=a.index+a[0].length}this.b.emit(e.text.slice(n))}noteImportedTypeWords(e){let t=this.declaringName;this.declaringName=!1;try{let r=0;for(let s of cr(e)){if(s.start>0&&e[s.start-1]==="."||this.importSpecOf(s.value)===null)continue;this.b.emit(e.slice(r,s.start)),this.noteNameSpan(s.value),r=s.end}this.b.emit(e.slice(r))}finally{this.declaringName=t}}tsComponentMemberDeclares(e,t){let r=(n)=>this.b.tsOnly(()=>{this.b.emit(t),n(),this.b.emit(` -`)}),s=!1;for(let n of e.members){if(n.name==="children")s=!0;if(!Us(n))continue;this.noteMemberDecl(n);let a=this.gateTwinSource(n,e);if(a!==null&&n.annotation==null){r(()=>this.emitGateTwin(n,a));continue}if(r(()=>this.emitSegments(Bs(n,e))),a!==null)r(()=>this.emitGateTwin(n,a,`__${n.name}__gate`))}if(!s)r(()=>this.b.emit("declare children?: __RipChildren;"));this._needsChildren=!0,r(()=>this.b.emit(`declare ${ta}: ${ra(e)};`));let i=Zs(e);if(i.some((n)=>n.includes("__ripAmbientStash(")))this._needsAmbienceHelper=!0;for(let n of i)r(()=>this.b.emit(n));if(e.extendsTag!==null)this._restTags.add(e.extendsTag),this._needsClassValue=!0,r(()=>this.b.emit(`declare rest: ${Di(Pi(e.extendsTag))};`));else if(e.extendsComponent!==null)r(()=>this.b.emit(`declare rest: ${Di(aa(e))};`)),r(()=>{if(this.b.emit("private static __ripHost() { return new "),e.hostSpan!==null&&e.hostNodeId!==null){let n=e.hostSpan[0];e.extendsComponent.split(".").forEach((a,o)=>{if(o>0)this.b.emit("."),n+=1;let l=n;n+=a.length,this.b.markSpan(e.hostNodeId,"identifier",l,n,()=>o===0?this.noteNameSpan(a):this.b.emit(a))})}else this.b.emit(e.extendsComponent);this.b.emit("(null!); }")});for(let n of na("this"))r(()=>this.b.emit(n));r(()=>this.b.emit("[key: `_${string}`]: any;"))}gateTwinSource(e,t){if(e.kind!=="gate"||!t.appStashSpec)return null;let r=E.gateSource(e.node);return r.error?null:r}emitGateTwin(e,t,r=null){if(r===null)this.mark(e.nameNode,e.nameRole,()=>this.b.emit(e.name));else this.b.emit(r);if(this.b.emit(" = __computed(() => this."),this.mark(t.pathNode,"$self",()=>{let s=E.gateChain(t.pathNode).slice(1);if(s.forEach((i,n)=>{if(n>0)this.b.emit(".");this.emitPrimitive(i)}),this.ts&&(s[0]==="stash"||s[0]==="router")){let i=this.stores.idOf(t.pathNode),n=i!==null?this.stores.selfSpan(i):null,a=n!==null?this.stores.primitiveSpans(s[0],n[0],n[1])[0]??null:null;if(a&&!this.kinds.some((o)=>o.start===a.sourceStart&&o.label===s[0]))this.kinds.push({start:a.sourceStart,end:a.sourceEnd,label:s[0],name:s[0],optional:!1})}}),t.key!==null){if(this.b.emit("("),t.keyParts===null)this.b.emit(t.keyCode);else this.mark(t.key,"$self",()=>{this.b.emit("this."),t.keyParts.forEach((s,i)=>{if(i>0)this.b.emit(".");this.emitPrimitive(s)})});this.b.emit(")")}this.b.emit("!);")}tsScaffoldAny(e=""){if(this.ts)this.b.tsOnly(()=>this.b.emit(`: any${e}`))}tsServedValue(e,t){if(!this.ts)return t(),null;let r=null;return this.b.tsOnly(()=>{this.b.emit("({ "),r=this.b.offset,this.b.emit(`${e}: `)}),t(),this.b.tsOnly(()=>this.b.emit(` }).${e}`)),r}capturedExprText(e,{source:t=null}={}){let r=this.b;this.b=new Re(this.stores,{source:t});let{n:s,used:i}=this.temps;this.temps.used=new Set(i);let n=["pinnables","mutables","enums","classDecls","loopVars","attrNames","importedRefs","vocabulary","silences","memberDecls","narrowedDecls","importSpans","pendingTypeDecls","loopVarDecls"],a={};for(let o of n)a[o]=this[o],this[o]=[];try{return this.withExpression(e),this.b.code}finally{this.b=r,Object.assign(this.temps,{n:s,used:i});for(let o of n)this[o]=a[o]}}tsLoopItemTypeText(e,t){let r=this.tsIterThunkName(e);return r===null?null:`NonNullable> extends readonly (infer __E)[] ? __E : any`}tsIterThunkName(e){let t=e.owner,{iter:r}=e;if(!this.ts||t===void 0||r===void 0)return null;if(this.containsAwait(r)||dr(r))return null;if(Ee(r,t.parent.locals))return null;let s=new Set;E.collectLeafNames(r,s);for(let i of[t.self,e.itemVar,e.indexVar,...t.renameHazardNames])if(s.has(i))return null;return`${t.name}_iter`}tsEventTypeText(e,t=null){let r=e.filter((n)=>Ut.has(n));if(r.length===0)return null;let s=r.map((n)=>`HTMLElementEventMap['${n}']`).join(" | "),i=t??"any";return`${r.length>1?`(${s})`:s} & { target: ${i}; currentTarget: ${i} }`}tsElReceiver(e){if(this.ts){let t=this.rstate?.tags?.get(e),r=this.rstate?.svgEls?.has(e)===!0;if(typeof t==="string"&&ot(t,r)){let s=vi(t,r);return this.domSurfaces.set(s,{tag:t,svg:r}),{surfaced:!0,emit:()=>{this.b.tsOnly(()=>this.b.emit("(")),this.b.emit(e),this.b.tsOnly(()=>this.b.emit(` as ${s})`))},valsName:lr(t,r),hostText:xe(t,r)}}}return{surfaced:!1,emit:()=>this.b.emit(e),valsName:null,hostText:null}}tsHandlerCast(e,t=null){if(!this.ts)return e(),null;let r=this.b.offset;return this.b.tsOnly(()=>this.b.emit("(")),e(),this.b.tsOnly(()=>this.b.emit(t===null?") as any":`) as (e: ${t}) => unknown`)),t===null?null:[r,this.b.offset]}tsComponentCtor(e,t){if(e.members.some((r)=>r.kind==="gate")){this.b.tsOnly(()=>{this.b.emit(`${t}declare static mount: never; +`));for(let n of r)this.tsTypeDeclLine(n,e)}emitSegments(e){for(let t of e)if(t.node!==void 0)this.mark(t.node,t.role,()=>this.emitAnnotationWords(t));else this.emitDeclaredTypeCopies(t.text)}emitDeclaredTypeCopies(e,t=null){let r=t??this.b.currentMark?.nodeId??null;if(r===null||!this.ts){this.b.emit(e);return}this.emitNamedCopies(e,null,r,null)}emitNamedCopies(e,t,r,n){if(r===null||!this.ts){this.b.emit(e);return}let i=this.moduleTypeDeclarationSpans();if(t!==null&&n!==null)i.set(t,n);if(i.size===0){this.b.emit(e);return}let s=0;for(let a of e.matchAll(/[A-Za-z_$][\w$]*/g)){let o=i.get(a[0]);if(o===void 0||a.indexthis.b.emit(a[0])),s=a.index+a[0].length}this.b.emit(e.slice(s))}moduleTypeDeclarationSpans(){if(this._typeDeclSpans===void 0){let e=new Map;if(this.b.source!==null){let t=/^(?:export\s+)?(?:(?:type|interface|enum)\s+([A-Za-z_$][\w$]*)|([A-Za-z_$][\w$]*)\s*=\s*schema\b|([A-Za-z_$][\w$]*)\s*=\s*[A-Za-z_$][\w$]*\s*\.\s*(?:pick|omit|partial|required|extend)\b)/gmd;for(let n of this.b.source.matchAll(t)){let i=n.indices[1]??n.indices[2]??n.indices[3],s=this.b.source.slice(i[0],i[1]);if(e.has(s))continue;e.set(s,[i[0],i[1]])}let r=/(?:^|,)\s*(?:type\s+)?(?:[A-Za-z_$][\w$]*\s+as\s+)?([A-Za-z_$][\w$]*)/gd;for(let n of this.b.source.matchAll(/^import\s+(?:type\s+)?\{([^}]*)\}/gmd)){let[i]=n.indices[1],s=n.index+n[0].length;for(let a of n[1].matchAll(r)){let[o,l]=a.indices[1],c=n[1].slice(o,l);if(e.has(c))continue;let h=new RegExp(`(?0){let o=this.b.source.lastIndexOf(r,a-1);if(o<0)break;if(!/[\w$]/.test(this.b.source[o-1]??" ")&&!/[\w$]/.test(this.b.source[o+r.length]??" "))return{id:n,span:[o,o+r.length]};a=o}return null}emitAnnotationWords(e){if(e.role!=="annotation"||!this.ts){this.b.emit(e.text);return}let t=this.stores.idOf(e.node),r=t!==null?this.stores.role(t,"annotation"):null,n=r?.sourceStart!=null&&this.b.source!==null?this.b.source.slice(r.sourceStart,r.sourceEnd):null;if(n===null||e.text.includes(n)){this.noteImportedTypeWords(e.text);return}let i=new Map;for(let a of n.matchAll(/[A-Za-z_$][\w$]*/g))if(!i.has(a[0]))i.set(a[0],[r.sourceStart+a.index,r.sourceStart+a.index+a[0].length]);let s=0;for(let a of e.text.matchAll(/[A-Za-z_$][\w$]*/g)){let o=i.get(a[0]);if(!o)continue;this.b.emit(e.text.slice(s,a.index)),this.b.markSpan(t,"identifier",o[0],o[1],()=>this.noteImportedTypeWords(a[0])),s=a.index+a[0].length}this.b.emit(e.text.slice(s))}noteImportedTypeWords(e){let t=this.declaringName;this.declaringName=!1;try{let r=0;for(let n of cr(e)){if(n.start>0&&e[n.start-1]==="."||this.importSpecOf(n.value)===null)continue;this.b.emit(e.slice(r,n.start)),this.noteNameSpan(n.value),r=n.end}this.b.emit(e.slice(r))}finally{this.declaringName=t}}tsComponentMemberDeclares(e,t){let r=(s)=>this.b.tsOnly(()=>{this.b.emit(t),s(),this.b.emit(` +`)}),n=!1;for(let s of e.members){if(s.name==="children")n=!0;if(!Us(s))continue;this.noteMemberDecl(s);let a=this.gateTwinSource(s,e);if(a!==null&&s.annotation==null){r(()=>this.emitGateTwin(s,a));continue}if(r(()=>this.emitSegments(Bs(s,e))),a!==null)r(()=>this.emitGateTwin(s,a,`__${s.name}__gate`))}if(!n)r(()=>this.b.emit("declare children?: __RipChildren;"));this._needsChildren=!0,r(()=>this.b.emit(`declare ${ta}: ${ra(e)};`));let i=Zs(e);if(i.some((s)=>s.includes("__ripAmbientStash(")))this._needsAmbienceHelper=!0;for(let s of i)r(()=>this.b.emit(s));if(e.extendsTag!==null)this._restTags.add(e.extendsTag),this._needsClassValue=!0,r(()=>this.b.emit(`declare rest: ${Di(Ci(e.extendsTag))};`));else if(e.extendsComponent!==null)r(()=>this.b.emit(`declare rest: ${Di(aa(e))};`)),r(()=>{if(this.b.emit("private static __ripHost() { return new "),e.hostSpan!==null&&e.hostNodeId!==null){let s=e.hostSpan[0];e.extendsComponent.split(".").forEach((a,o)=>{if(o>0)this.b.emit("."),s+=1;let l=s;s+=a.length,this.b.markSpan(e.hostNodeId,"identifier",l,s,()=>o===0?this.noteNameSpan(a):this.b.emit(a))})}else this.b.emit(e.extendsComponent);this.b.emit("(null!); }")});for(let s of na("this"))r(()=>this.b.emit(s));r(()=>this.b.emit("[key: `_${string}`]: any;"))}gateTwinSource(e,t){if(e.kind!=="gate"||!t.appStashSpec)return null;let r=E.gateSource(e.node);return r.error?null:r}emitGateTwin(e,t,r=null){if(r===null)this.mark(e.nameNode,e.nameRole,()=>this.b.emit(e.name));else this.b.emit(r);if(this.b.emit(" = __computed(() => this."),this.mark(t.pathNode,"$self",()=>{let n=E.gateChain(t.pathNode).slice(1);if(n.forEach((i,s)=>{if(s>0)this.b.emit(".");this.emitPrimitive(i)}),this.ts&&(n[0]==="stash"||n[0]==="router")){let i=this.stores.idOf(t.pathNode),s=i!==null?this.stores.selfSpan(i):null,a=s!==null?this.stores.primitiveSpans(n[0],s[0],s[1])[0]??null:null;if(a&&!this.kinds.some((o)=>o.start===a.sourceStart&&o.label===n[0]))this.kinds.push({start:a.sourceStart,end:a.sourceEnd,label:n[0],name:n[0],optional:!1})}}),t.key!==null){if(this.b.emit("("),t.keyParts===null)this.b.emit(t.keyCode);else this.mark(t.key,"$self",()=>{this.b.emit("this."),t.keyParts.forEach((n,i)=>{if(i>0)this.b.emit(".");this.emitPrimitive(n)})});this.b.emit(")")}this.b.emit("!);")}tsScaffoldAny(e=""){if(this.ts)this.b.tsOnly(()=>this.b.emit(`: any${e}`))}tsServedValue(e,t){if(!this.ts)return t(),null;let r=null;return this.b.tsOnly(()=>{this.b.emit("({ "),r=this.b.offset,this.b.emit(`${e}: `)}),t(),this.b.tsOnly(()=>this.b.emit(` }).${e}`)),r}capturedExprText(e,{source:t=null}={}){let r=this.b;this.b=new Re(this.stores,{source:t});let{n,used:i}=this.temps;this.temps.used=new Set(i);let s=["pinnables","mutables","enums","classDecls","loopVars","attrNames","importedRefs","vocabulary","silences","memberDecls","narrowedDecls","importSpans","pendingTypeDecls","loopVarDecls"],a={};for(let o of s)a[o]=this[o],this[o]=[];try{return this.withExpression(e),this.b.code}finally{this.b=r,Object.assign(this.temps,{n,used:i});for(let o of s)this[o]=a[o]}}tsLoopItemTypeText(e,t){let r=this.tsIterThunkName(e);return r===null?null:`NonNullable> extends readonly (infer __E)[] ? __E : any`}tsIterThunkName(e){let t=e.owner,{iter:r}=e;if(!this.ts||t===void 0||r===void 0)return null;if(this.containsAwait(r)||dr(r))return null;if(Ee(r,t.parent.locals))return null;let n=new Set;E.collectLeafNames(r,n);for(let i of[t.self,e.itemVar,e.indexVar,...t.renameHazardNames])if(n.has(i))return null;return`${t.name}_iter`}tsEventTypeText(e,t=null){let r=e.filter((s)=>Ut.has(s));if(r.length===0)return null;let n=r.map((s)=>`HTMLElementEventMap['${s}']`).join(" | "),i=t??"any";return`${r.length>1?`(${n})`:n} & { target: ${i}; currentTarget: ${i} }`}tsElReceiver(e){if(this.ts){let t=this.rstate?.tags?.get(e),r=this.rstate?.svgEls?.has(e)===!0;if(typeof t==="string"&&ot(t,r)){let n=vi(t,r);return this.domSurfaces.set(n,{tag:t,svg:r}),{surfaced:!0,emit:()=>{this.b.tsOnly(()=>this.b.emit("(")),this.b.emit(e),this.b.tsOnly(()=>this.b.emit(` as ${n})`))},valsName:lr(t,r),hostText:xe(t,r)}}}return{surfaced:!1,emit:()=>this.b.emit(e),valsName:null,hostText:null}}tsHandlerCast(e,t=null){if(!this.ts)return e(),null;let r=this.b.offset;return this.b.tsOnly(()=>this.b.emit("(")),e(),this.b.tsOnly(()=>this.b.emit(t===null?") as any":`) as (e: ${t}) => unknown`)),t===null?null:[r,this.b.offset]}tsComponentCtor(e,t){if(e.members.some((r)=>r.kind==="gate")){this.b.tsOnly(()=>{this.b.emit(`${t}declare static mount: never; `),this.b.emit(`${t}private constructor() { super(); } `)});return}if(!Ii(e))this.b.tsOnly(()=>this.b.emit(`${t}declare static mount: never; `));else this.b.tsOnly(()=>this.b.emit(`${t}declare static mount: (target?: Node | string) => InstanceType; `));this.b.tsOnly(()=>{this.b.emit(`${t}constructor(props${Ii(e)?"?":""}: `),this.emitSegments(Ws(e,{road:"face"})),this.b.emit(`) { super(props); } -`)})}tsComponentCompanion(e,t,r,s=null){if(!this.ts)return;let i=this.componentInfo.get(e);if(i===void 0)return;let n=" ".repeat(this.ind),a=Ys(s);this.b.tsOnly(()=>{this.b.emit(` -`+n),this.mark(e,"$self",()=>{let c=this.stores.idOf(e),f=c!==null?this.stores.selfSpan(c):null,h=-1;if(f!==null&&this.b.source!==null){let p=f[0];while(p>0){let m=this.b.source.lastIndexOf(t,p-1);if(m<0)break;let g=this.b.source[m-1]??" ",b=this.b.source[m+t.length]??" ";if(!/[\w$]/.test(g)&&!/[\w$]/.test(b)){h=m;break}p=m}}let u=this.moduleTypeDeclarationSpans();if(h>=0)u.set(t,[h,h+t.length]);let d=(p)=>{if(u.size===0){this.b.emit(p);return}let m=0;for(let g of p.matchAll(/[A-Za-z_$][\w$]*/g)){let b=u.get(g[0]);if(!b)continue;this.b.emit(p.slice(m,g.index)),this.b.markSpan(c,"identifier",b[0],b[1],()=>this.b.emit(g[0])),m=g.index+g[0].length}this.b.emit(p.slice(m))};this.b.emit(`${r?"export ":""}interface `),d(t),this.b.emit(`${s??""} {`);for(let p of Gs(i,`${t}${a}`,{road:"face"})){this.b.emit(` -`+n+" ");let m=()=>{for(let g of p.segs)if(g.node!==void 0)this.mark(g.node,g.role,()=>this.emitAnnotationWords(g));else d(g.text)};if(p.node!==void 0)this.mark(p.node,p.role,m);else m()}this.b.emit(` -`+n+"}")})});let o=i.computedBodies??[];if(i.behavior===null||o.length===0)return;if(this.scopes[0]?.has(i.behavior)||this.moduleBound?.has(i.behavior))throw this.positionedError(e,`emitter: the module binds '${i.behavior}', the face-only name this component's `+"computed types read through — rename the binding");let l=`${t}${zs(s)}`;this.b.tsOnly(()=>this.b.echo(()=>{this.b.emit(` -`+n),this.mark(e,"$self",()=>{this.b.emit(`const ${i.behavior} = {`);let c=this.stores.idOf(e),f=c!==null?this.stores.selfSpan(c):null,h=-1;if(f!==null&&this.b.source!==null){let u=f[0];while(u>0){let d=this.b.source.lastIndexOf(t,u-1);if(d<0)break;if(!/[\w$]/.test(this.b.source[d-1]??" ")&&!/[\w$]/.test(this.b.source[d+t.length]??" ")){h=d;break}u=d}}o.forEach(({name:u,code:d,block:p},m)=>{this.b.emit(`${m>0?",":""} ${u}: function (this: `),this.emitNamedCopies(l,t,h>=0?c:null,h>=0?[h,h+t.length]:null),this.b.emit(`) ${p?d:`{ return ${d}; }`}`)}),this.b.emit(" };")})}))}static TS_DIRECTIVE=/^#[ \t]*@ts-(expect-error|ignore|nocheck)(?=\s|$)/;collectTypeOnlyImports(e,t){let r=new Set,s=[],i=(a)=>{if(typeof a==="string"){r.add(a);return}if(!y(a))return;if(Mi(this.stores,a)){let o=this.stores.idOf(a);if(o===null||this.stores.role(o,"typeOnly")===null)s.push(...E.importedNames([a]));return}if(a[0]==="typed-var"&&a.length===3){i(a[1]);return}if(a[0]==="def-sig"){i(a[2]);return}if(a[0]==="type-decl")return;for(let o of a)i(o)};if(i(e),s.length===0||!t)return;let n=new Set;for(let a of this.stores.nodes??[])for(let o of this.stores.rolesOf(a.nodeId)){if(!E.TYPE_ROLES.has(o.role)||typeof o.sourceStart!=="number")continue;for(let l of t.slice(o.sourceStart,o.sourceEnd).matchAll(/[A-Za-z_$][\w$]*/g))n.add(l[0])}for(let a of s)if(n.has(a)&&!r.has(a))this.typeOnlyImports.add(a)}collectAppAccessors(e){this.appAccessors={stash:null,router:null};for(let t of e.slice(1)){if(!Mi(this.stores,t))continue;let r=t[t.length-1];if(typeof r!=="string"||r.slice(1,-1)!=="rip/app")continue;let s=this.stores.idOf(t);if(s!==null&&this.stores.role(s,"typeOnly")!==null)continue;for(let i of E.importSpecs(t)){if(!y(i)||i[0]==="*")continue;for(let n of i){let a=y(n)?n[0]:n,o=y(n)?n[1]:n;if(a==="currentStash")this.appAccessors.stash=o;else if(a==="currentRouter")this.appAccessors.router=o}}}}isAccessorCall(e,t){if(t===null||!y(e)||e.length!==1||e[0]!==t)return!1;return!this.scopes.slice(1).some((r)=>r.has(t))}collectTsDirectives(e,t,r){if(this.tsDirectiveMap=new Map,this.tsNocheck=null,this.pendingHoistDirectives=[],t.length===0)return;let s=[0];for(let h=0;h{let u=0,d=s.length-1;while(u>1;if(s[p]<=h)u=p;else d=p-1}return u},n=[],a=[];for(let h of t){if(h.kind!=="comment")continue;let u=E.TS_DIRECTIVE.exec(h.text);if(u===null)continue;if(!/^[ \t]*$/.test(r.slice(s[i(h.start)],h.start)))continue;(u[1]==="nocheck"?a:n).push(h)}if(n.length===0&&a.length===0)return;let o=[],l=(h)=>{for(let u of h){if(!y(u))continue;let d=this.stores.idOf(u);if(d===null)continue;let p=this.stores.node(d);o.push({el:u,id:d,start:p.sourceStart,end:p.sourceEnd})}};l(e.slice(1));let c=(h)=>{if(!y(h))return;if(b1(h)){l(h.slice(1));for(let u of h.slice(1))if(y(u)&&O1(u))l(u.slice(1))}for(let u of h)c(u)};c(e),o.sort((h,u)=>h.start-u.start||u.end-h.end);for(let h of n){let u=o.find((p)=>p.start>=h.end);if(u===void 0||i(u.start)!==i(h.start)+1)continue;let d=this.tsDirectiveMap.get(u.el)??[];d.push({t:h,nodeId:u.id}),this.tsDirectiveMap.set(u.el,d)}let f=o.length>0?o[0].start:1/0;this.tsNocheck=this.ts?a.find((h)=>h.end<=f)??null:null}tsDirectiveLine(e,t,r=!1){this.b.tsOnly(()=>{if(r)this.b.emit(t);this.b.markSpan(e.nodeId,"tsDirective",e.t.start,e.t.end,()=>{this.b.emit("//"+e.t.text.slice(1))}),this.b.emit(r?` +`)})}tsComponentCompanion(e,t,r,n=null){if(!this.ts)return;let i=this.componentInfo.get(e);if(i===void 0)return;let s=" ".repeat(this.ind),a=Ys(n);this.b.tsOnly(()=>{this.b.emit(` +`+s),this.mark(e,"$self",()=>{let c=this.stores.idOf(e),h=c!==null?this.stores.selfSpan(c):null,f=-1;if(h!==null&&this.b.source!==null){let p=h[0];while(p>0){let m=this.b.source.lastIndexOf(t,p-1);if(m<0)break;let g=this.b.source[m-1]??" ",b=this.b.source[m+t.length]??" ";if(!/[\w$]/.test(g)&&!/[\w$]/.test(b)){f=m;break}p=m}}let u=this.moduleTypeDeclarationSpans();if(f>=0)u.set(t,[f,f+t.length]);let d=(p)=>{if(u.size===0){this.b.emit(p);return}let m=0;for(let g of p.matchAll(/[A-Za-z_$][\w$]*/g)){let b=u.get(g[0]);if(!b)continue;this.b.emit(p.slice(m,g.index)),this.b.markSpan(c,"identifier",b[0],b[1],()=>this.b.emit(g[0])),m=g.index+g[0].length}this.b.emit(p.slice(m))};this.b.emit(`${r?"export ":""}interface `),d(t),this.b.emit(`${n??""} {`);for(let p of Gs(i,`${t}${a}`,{road:"face"})){this.b.emit(` +`+s+" ");let m=()=>{for(let g of p.segs)if(g.node!==void 0)this.mark(g.node,g.role,()=>this.emitAnnotationWords(g));else d(g.text)};if(p.node!==void 0)this.mark(p.node,p.role,m);else m()}this.b.emit(` +`+s+"}")})});let o=i.computedBodies??[];if(i.behavior===null||o.length===0)return;if(this.scopes[0]?.has(i.behavior)||this.moduleBound?.has(i.behavior))throw this.positionedError(e,`emitter: the module binds '${i.behavior}', the face-only name this component's `+"computed types read through — rename the binding");let l=`${t}${zs(n)}`;this.b.tsOnly(()=>this.b.echo(()=>{this.b.emit(` +`+s),this.mark(e,"$self",()=>{this.b.emit(`const ${i.behavior} = {`);let c=this.stores.idOf(e),h=c!==null?this.stores.selfSpan(c):null,f=-1;if(h!==null&&this.b.source!==null){let u=h[0];while(u>0){let d=this.b.source.lastIndexOf(t,u-1);if(d<0)break;if(!/[\w$]/.test(this.b.source[d-1]??" ")&&!/[\w$]/.test(this.b.source[d+t.length]??" ")){f=d;break}u=d}}o.forEach(({name:u,code:d,block:p},m)=>{this.b.emit(`${m>0?",":""} ${u}: function (this: `),this.emitNamedCopies(l,t,f>=0?c:null,f>=0?[f,f+t.length]:null),this.b.emit(`) ${p?d:`{ return ${d}; }`}`)}),this.b.emit(" };")})}))}static TS_DIRECTIVE=/^#[ \t]*@ts-(expect-error|ignore|nocheck)(?=\s|$)/;collectTypeOnlyImports(e,t){let r=new Set,n=[],i=(a)=>{if(typeof a==="string"){r.add(a);return}if(!y(a))return;if(Mi(this.stores,a)){let o=this.stores.idOf(a);if(o===null||this.stores.role(o,"typeOnly")===null)n.push(...E.importedNames([a]));return}if(a[0]==="typed-var"&&a.length===3){i(a[1]);return}if(a[0]==="def-sig"){i(a[2]);return}if(a[0]==="type-decl")return;for(let o of a)i(o)};if(i(e),n.length===0||!t)return;let s=new Set;for(let a of this.stores.nodes??[])for(let o of this.stores.rolesOf(a.nodeId)){if(!E.TYPE_ROLES.has(o.role)||typeof o.sourceStart!=="number")continue;for(let l of t.slice(o.sourceStart,o.sourceEnd).matchAll(/[A-Za-z_$][\w$]*/g))s.add(l[0])}for(let a of n)if(s.has(a)&&!r.has(a))this.typeOnlyImports.add(a)}collectAppAccessors(e){this.appAccessors={stash:null,router:null};for(let t of e.slice(1)){if(!Mi(this.stores,t))continue;let r=t[t.length-1];if(typeof r!=="string"||r.slice(1,-1)!=="rip/app")continue;let n=this.stores.idOf(t);if(n!==null&&this.stores.role(n,"typeOnly")!==null)continue;for(let i of E.importSpecs(t)){if(!y(i)||i[0]==="*")continue;for(let s of i){let a=y(s)?s[0]:s,o=y(s)?s[1]:s;if(a==="currentStash")this.appAccessors.stash=o;else if(a==="currentRouter")this.appAccessors.router=o}}}}isAccessorCall(e,t){if(t===null||!y(e)||e.length!==1||e[0]!==t)return!1;return!this.scopes.slice(1).some((r)=>r.has(t))}collectTsDirectives(e,t,r){if(this.tsDirectiveMap=new Map,this.tsNocheck=null,this.pendingHoistDirectives=[],t.length===0)return;let n=[0];for(let f=0;f{let u=0,d=n.length-1;while(u>1;if(n[p]<=f)u=p;else d=p-1}return u},s=[],a=[];for(let f of t){if(f.kind!=="comment")continue;let u=E.TS_DIRECTIVE.exec(f.text);if(u===null)continue;if(!/^[ \t]*$/.test(r.slice(n[i(f.start)],f.start)))continue;(u[1]==="nocheck"?a:s).push(f)}if(s.length===0&&a.length===0)return;let o=[],l=(f)=>{for(let u of f){if(!y(u))continue;let d=this.stores.idOf(u);if(d===null)continue;let p=this.stores.node(d);o.push({el:u,id:d,start:p.sourceStart,end:p.sourceEnd})}};l(e.slice(1));let c=(f)=>{if(!y(f))return;if(b1(f)){l(f.slice(1));for(let u of f.slice(1))if(y(u)&&O1(u))l(u.slice(1))}for(let u of f)c(u)};c(e),o.sort((f,u)=>f.start-u.start||u.end-f.end);for(let f of s){let u=o.find((p)=>p.start>=f.end);if(u===void 0||i(u.start)!==i(f.start)+1)continue;let d=this.tsDirectiveMap.get(u.el)??[];d.push({t:f,nodeId:u.id}),this.tsDirectiveMap.set(u.el,d)}let h=o.length>0?o[0].start:1/0;this.tsNocheck=this.ts?a.find((f)=>f.end<=h)??null:null}tsDirectiveLine(e,t,r=!1){this.b.tsOnly(()=>{if(r)this.b.emit(t);this.b.markSpan(e.nodeId,"tsDirective",e.t.start,e.t.end,()=>{this.b.emit("//"+e.t.text.slice(1))}),this.b.emit(r?` `:` -`+t)})}withTsDirectives(e,t,r,s=!1){let i=this.ts&&this.tsDirectivesArmed&&y(e)?this.tsDirectiveMap.get(e):void 0;if(i===void 0)return r();this.tsDirectiveMap.delete(e);for(let n of i)this.tsDirectiveLine(n,t,s);r()}tsForwardDirectives(e){if(!this.ts||!this.tsDirectivesArmed)return;let t=this.tsDirectiveMap?.get(e);if(t===void 0)return;this.tsDirectiveMap.delete(e);for(let r of t)r.forwardOwner=e;this.pendingHoistDirectives.push(...t)}tsOverloadSigs(e,t){if(!this.ts)return;let r=this.pendingSigs.get(e);if(!r)return;for(let s of r){let i=this.tsRendered(s,()=>On(s[2],In(this.stores))),n=this.tsDirectiveMap.get(s);if(n!==void 0){this.tsDirectiveMap.delete(s);for(let a of n)this.tsDirectiveLine(a," ".repeat(t))}this.b.tsOnly(()=>{this.mark(s,"$self",()=>{this.b.emit("function "),this.mark(s,"name",()=>this.b.emit(s[1])),this.mark(s,"params",()=>this.b.emit(i)),this.mark(s,"returnType",()=>this.emitTypeText(s,"returnType",`: ${Be(s[3])}`)),this.b.emit(";")}),this.b.emit(` -`+" ".repeat(t))})}}patternNames(e,t=[],r=!1,s=null){if(!y(e)){if(typeof e==="string"&&e!==","){if(A3.has(e))throw this.positionedError(s,`emitter: \`${e}\` cannot be a destructuring target — a value word lowers to its literal before scope exists, so the binding would be unreachable`);t.push(e)}return t}if(e[0]==="array")for(let i of e.slice(1))this.patternNames(i,t,r,e);else if(e[0]==="object"){for(let i of e.slice(1))if(i[0]===null)this.patternNames(i[1],t,r,e);else if(i[0]===":")this.patternNames(i[2],t,r,e);else if(i[0]==="=")this.patternNames(i[1],t,r,e);else if(i[0]==="...")this.patternNames(i[1],t,r,e)}else if(e[0]==="rest"){if(!r)throw this.positionedError(e,"emitter: Cannot use 'rest' expression as a destructuring target (destructuring rest is spelled '...name')");this.patternNames(e[1],t,r,e)}else if(e[0]==="...")this.patternNames(e[1],t,r,e);else if(e[0]==="default")this.patternNames(e[1],t,r,e);else if(e[0]==="=")this.patternNames(e[1],t,r,e);else if(e[0]==="cast"||e[0]==="satisfies")this.patternNames(e[1],t,r,e);else if(e[0]==="typed-var")this.patternNames(e[1],t,r,e);return t}static isPattern(e){return O1(e)||y(e)&&e[0]==="array"}static declarablePattern(e){let t=(r)=>typeof r==="string"||(y(r)&&r[0]==="="?t(r[1]):E.declarablePattern(r));if(y(e)&&e[0]==="array"){let r=e.slice(1);return r.every((s,i)=>y(s)&&s[0]==="..."?i===r.length-1&&typeof s[1]==="string":t(s))}if(O1(e)){let r=e.slice(1);return r.every((s,i)=>{if(!y(s))return!1;if(s[0]===null)return typeof s[2]==="string";if(s[0]==="=")return typeof s[1]==="string";if(s[0]==="...")return i===r.length-1&&typeof s[1]==="string";return s[0]===":"&&t(s[2])})}return!1}rejectDuplicateDefault(e){let t=null;for(let r of e){if(!y(r)||r[0]!=="export-default")continue;if(t!==null)throw this.positionedError(r,"emitter: duplicate 'export default' — a module has exactly one default export",t);t=r}}static classDeclNames(e){let t=new Set;for(let r of e){if(!y(r))continue;let s=r[0]==="export"&&y(r[1])?r[1]:r;if(y(s)&&s[0]==="class"&&typeof s[1]==="string")t.add(s[1])}return t}static isTypedWrapper(e){return y(e)&&e[0]==="typed-var"&&e.length===3}static isErasedStmt(e){return y(e)&&(e[0]==="type-decl"||E.isTypedWrapper(e)||e[0]==="def-sig"&&e.length===4)}static stripErased(e){return e.filter((t)=>!E.isErasedStmt(t))}liveStmts(e,{forwards:t=!1}={}){let r=[];for(let s=0;sy(o)&&k1(o[0])&&o.length===4&&o[1]===n);if(!a)throw this.positionedError(i,`emitter: overload signature 'def ${n}' has no implementation — `+`a bodiless typed def must be followed by 'def ${n}' with a body in the same block`);if(this.ts){let o=this.pendingSigs.get(a)??[];if(!o.includes(i))o.push(i),this.pendingSigs.set(a,o)}}if(this.ts&&t&&E.isTypedWrapper(i)&&typeof i[1]==="string"&&!this.pendingHoistTypes.has(i[1]))this.pendingHoistTypes.set(i[1],i);if(t&&E.isTypedWrapper(i))this.tsForwardDirectives(i);this.erasedRows(i)}else r.push(i)}return r}erasedRows(e){this.mark(e,"$self",()=>{});let t=e[0]==="type-decl"?["declaration"]:e[0]==="def-sig"?["name","params","returnType"]:["target","annotation"];for(let r of t)this.mark(e,r,()=>{})}inScope(e){return this.scopes.some((t)=>t.has(e))||this.rframes.some((t)=>t.block===!0&&t.bound.has(e))}scopedHoist(e,t=[],{declareInPlace:r=!0}={}){for(let a of t){let o=E.paramMatchWrite(a);if(o!==null)throw this.positionedError(o,"emitter: a parameter default cannot write the last-match binding — "+"`_` lives in the enclosing body, which a default cannot reach (move the match into the body)")}let s=this.hoistTargets(e,t),i=s.filter(([a,o])=>{if(y(o)&&F1.has(o[0])&&!ct.has(o[0])&&typeof o[1]==="string"&&this.isExportedConst(o[1]))return!1;return!this.inScope(a)||a==="_"&&s.matchWrite});i.annotations=s.annotations,i.directives=s.directives;let n=new Set(i.map(([a])=>a));for(let a of t)for(let o of this.patternNames(a,[],!0))n.add(o);if(r)i=this.applyDeclareInPlace(i,e,{tailIsExpression:!0});return{entries:i,names:n}}hoistTargets(e,t=[],r=[]){let s=new Map,i=!1,n=new Set,a=[],o=new Map,l=(m,g)=>{if(this.ts&&!o.has(m)&&this.annotationText(g)!==null)o.set(m,g)},c=(m,g)=>{if(!s.has(m))s.set(m,g)},f=(m)=>{if(this.scopeBoundary(m)==="skip")return;if(E.isMatchWrite(m))c("_",m),i=!0;for(let g of m)f(g)},h=(m)=>{let g=this.scopeBoundary(m);if(g==="skip")return;if(this.ts&&E.isTypedWrapper(m)){if(typeof m[1]==="string")l(m[1],m);this.tsForwardDirectives(m)}if(ut(m)&&y(m[1][2]))a.push([this.chainTemp(m),m[1][2],"$self"]);if(g==="reactive"){if(typeof m[1]==="string")n.add(m[1]);if(!(m[0]==="computed"&&b1(m[2])&&m[2].length>2))h(m[2]);return}if(g==="effect"){if(typeof m[1]==="string")n.add(m[1]);return}if(g==="readonly"){if(typeof m[1]==="string")n.add(m[1]);h(m[2]);return}if(m[0]==="export"&&y(m[1])){let b=m[1];if((this.isReactiveDecl(b)||this.isEffectDecl(b)||this.isReadonlyDecl(b))&&typeof b[1]==="string"){if(n.add(b[1]),!this.isEffectDecl(b)&&!(b[0]==="computed"&&b1(b[2])&&b[2].length>2))h(b[2]);return}if(F1.has(b[0])&&b.length===3)h(b[2]);return}if(g==="loop"){f(m[1]);for(let b of m.slice(2))h(b);return}if(g==="comprehension"){h(m[1]);for(let b of m[2]??[])f(b[1]),h(b[2]);for(let b of m[3]??[])h(b);return}if(m[0]==="export")return;if(g==="class"){if(m[2]!=null)h(m[2]);let b=m[3];if(b1(b)){for(let S of b.slice(1))if(y(S)&&F1.has(S[0])&&S.length===3)h(S[2]);else if(!E.isTypedWrapper(S))h(S)}return}if(E.isMatchWrite(m))c("_",m),i=!0;if(F1.has(m[0])&&m.length===3){if(typeof m[1]==="string")c(m[1],m),l(m[1],m);else if(m[0]==="="&&E.isPattern(m[1]))for(let b of this.patternNames(m[1]))c(b,m)}if(m[0]==="try"){for(let b of m.slice(2))if(y(b)&&b.length===2&&E.isPattern(b[0]))for(let S of this.patternNames(b[0]))c(S,m)}for(let b of m)h(b)};for(let m of e)h(m);let u=[];for(let m of t)this.patternNames(m,u,!0);for(let m of u)s.delete(m);for(let m of n)s.delete(m);for(let m of E.declaredNames(e))s.delete(m);for(let m of r)s.delete(m);for(let m of e)if(this.isModuleImport(m))for(let g of E.importedNames([m]))s.delete(g);for(let m of this.cframes)for(let g of m.members.keys())s.delete(g);let d=[...s.entries()].map(([m,g])=>[m,g,"target"]);d.matchWrite=i,d.push(...a);let p=new Set([...s.keys(),...u,...n]);if(d.push(...this.planReferenceTemps(e,p)),d.sort(([m],[g])=>mg?1:0),this.ts){for(let[m,g]of this.pendingHoistTypes)if(!o.has(m))o.set(m,g);this.pendingHoistTypes.clear(),d.annotations=o,d.directives=this.pendingHoistDirectives,this.pendingHoistDirectives=[]}return d}static declaresInPlace=new WeakSet;static inlineOwners=new WeakMap;captureScan(e){let t=new Set(e.filter(y)),r=new Map,s=(a,o,l=!1,c=null,f=null,h="")=>{if(typeof a!=="string"||!ur.test(a))return;let u=r.get(a);if(u===void 0)r.set(a,u={decl:null,seen:!1,nested:!1,nestedWrite:!1,inDef:!1,annotated:null,firstWrite:null,firstWritePath:""});if(!u.seen)u.seen=!0,u.decl=c;if(l&&u.firstWrite===null&&f!==null)u.firstWrite=f,u.firstWritePath=h;if(o>0){if(u.nested=!0,l)u.nestedWrite=!0;if(o===2)u.inDef=!0}},i=(a,o,l)=>{let c=(f)=>{if(typeof f==="string"){if(f!==",")l(f);return}if(f[0]==="="){n(f[2],o),c(f[1]);return}if(f[0]==="..."){l(f[1]);return}i(f,o,l)};if(a[0]==="array"){for(let f of a.slice(1))c(f);return}for(let f of a.slice(1))if(f[0]===null)l(f[2]);else if(f[0]==="=")n(f[2],o),l(f[1]);else if(f[0]==="...")l(f[1]);else if(f[0]===":"){if(y(f[1]))n(f[1],o);c(f[2])}},n=(a,o)=>{if(typeof a==="string")return s(a,o);if(!y(a))return;if(E.isTypedWrapper(a)){if(typeof a[1]==="string"){let c=r.get(a[1]);if(c!==void 0&&c.annotated===null)c.annotated=a}return}let l=a[0];if(T1(a)){for(let c of a.slice(1))n(c,Math.max(o,1));return}if(k1(l)||l==="class"||l==="component"||l==="enum"){let c=k1(l)?2:Math.max(o,1);if(l==="class"){for(let f of a.slice(2)){let h=y(f)&&f[0]==="block"?f.slice(1):[f];for(let u of h)if(y(u)&&k1(u[0])&&u.length===4)for(let d of u.slice(2))n(d,c);else n(u,c)}return}for(let f of a.slice(typeof a[1]==="string"?2:1))n(f,c);return}if(E.isMatchWrite(a)){for(let c of a.slice(1))n(c,o);s("_",o,!0);return}if(F1.has(l)&&a.length===3){if(n(a[2],o),typeof a[1]==="string"){let c=ct.has(l);if(!c)s(a[1],o);if(s(a[1],o,!0,c&&!o&&t.has(a)?a:null,c?a:null),c&&this.annotationText(a)!==null){let f=r.get(a[1]);if(f!==void 0&&f.annotated===null)f.annotated=a}}else if(l==="="&&E.declarablePattern(a[1])){let c=!o&&t.has(a)?a:null,f=new Map(mr(a[1]));i(a[1],o,(h)=>s(h,o,!0,c,f.has(h)?a:null,f.get(h)??""))}else if(n(a[1],o),ct.has(l))for(let[c,f]of mr(a[1]))s(c,o,!0,null,a,f);return}if(U1(a)){if(typeof a[1]==="string")s(a[1],o,!0);else n(a[1],o);return}if((l==="."||l==="?.")&&a.length===3){if(n(a[1],o),typeof a[2]!=="string")n(a[2],o);return}if(l==="object"){for(let c of a.slice(1))if(y(c)&&c[0]===":"&&c.length===3){if(typeof c[1]!=="string")n(c[1],o);n(c[2],o)}else n(c,o);return}for(let c of a)n(c,o)};for(let a of e)n(a,0);return r}applyDeclareInPlace(e,t,{tailIsExpression:r=!1}={}){if(!e.some(([,,f])=>f==="target"))return e;let s=this.captureScan(t),i=null;if(r){for(let f=t.length-1;f>=0;f--)if(!E.isErasedStmt(t[f])){i=t[f];break}}let n=new Map,a=new Set(e.filter(([,,f])=>f==="target").map(([f])=>f)),o=new Map,l=(f)=>{let h=o.get(f);if(h===void 0){let u=this.patternNames(f[1]);if(h=u.every((d)=>{let p=s.get(d);return a.has(d)&&p!==void 0&&p.decl===f&&!p.inDef}),h){let d=u.find((p)=>s.get(p).annotated!==null);if(d!==void 0)throw this.positionedError(s.get(d).annotated,`emitter: '${d}' is declared by a destructuring pattern, which cannot carry this annotation — `+`rename the element in the pattern (\`${d}: raw\`) and declare \`${d}: T\` from it, or annotate the pattern's source`)}o.set(f,h)}return h},c=e.filter(([f,,h])=>{if(h!=="target")return!0;let u=s.get(f);if(!u||u.decl===null||u.inDef||u.decl===i)return!0;if(y(u.decl)&&ct.has(u.decl[0])&&E.controlGuard(u.decl[2]))return!0;if(E.isPattern(u.decl[1])){if(!l(u.decl))return!0;return E.declaresInPlace.add(u.decl),!1}let d=e.annotations?.get(f);if(d!==void 0&&d!==u.decl)E.inlineOwners.set(u.decl,d),n.set(d,u.decl);return E.declaresInPlace.add(u.decl),!1});if(c.annotations=e.annotations,c.schemaConsts=e.schemaConsts,e.directives?.length&&n.size){c.directives=[];for(let f of e.directives){let h=f.forwardOwner!==void 0?n.get(f.forwardOwner):void 0;if(h!==void 0){let u=this.tsDirectiveMap.get(h)??[];u.push(f),this.tsDirectiveMap.set(h,u)}else c.directives.push(f)}}else c.directives=e.directives;c.classBindings=new Set,c.componentTypes=new Map;for(let[f,,h]of c){if(h!=="target")continue;let u=s.get(f)?.firstWrite??null,d=u?.[2];if(!y(d))continue;if(d[0]==="class"||d[0]==="component")c.classBindings.add(f);if(!this.ts||!this.isComponentDecl(d))continue;if(this.annotationText(u,"typeParams")!==null)continue;let p=Oi(this.stores,this.b.source,d,`__${f}__computed`);p.appStashSpec=this.appStashSpec,p.routesUnion=this.routesUnion,p.routeParams=this.routeParams,c.componentTypes.set(f,`{ ${ia(p,f,"",f,{road:"face"}).join(" ")} }`),(c.componentInfos??=new Map).set(f,p)}c.pinnable=new Map;for(let[f,,h]of c){if(h!=="target")continue;let u=s.get(f);if(!u?.nested||u.firstWrite===null)continue;if(c.annotations?.has(f)||c.schemaConsts?.has(f))continue;if(c.componentTypes.has(f))continue;let d=this.pinKey(f,u.firstWrite,u.firstWritePath);c.pinnable.set(f,{node:u.firstWrite,key:d}),this.pinnables?.push({name:f,node:u.firstWrite,path:u.firstWritePath,key:d})}return c}pinKey(e,t,r=""){let s=this.stores.idOf(t),i=s!==null?this.stores.role(s,"value"):null;if(!i||i.sourceStart==null||this.b.source===null)return null;let n=r+"\x00"+this.b.source.slice(i.sourceStart,i.sourceEnd),a=5381;for(let o=0;o>>0;return`${e}@${a.toString(36)}`}chainTemp(e){let t=this.temps.byNode.get(e);if(t===void 0)t=this.freshTempName(),this.temps.byNode.set(e,t);return t}freshTempName(){let e;do e=this.temps.n===0?"_ref":`_ref${this.temps.n}`,this.temps.n++;while(this.temps.used.has(e));return e}inCtrl(e){this.ctrlDepth++;try{e()}finally{this.ctrlDepth--}}loopTempName(e){let t=e;for(let r=1;this.temps.used.has(t);r++)t=`${e}${r}`;return t}runtimeName(e){let t=this.runtimeAliases.get(e);if(t===void 0)throw Error(`emitter invariant: generated runtime name '${e}' is not registered`);return t}hoistLine(e,t=""){if(e.length===1)for(let r of e.directives??[])this.tsDirectiveLine(r,t);this.b.emit("let "),e.forEach(([r,s,i],n)=>{if(n>0)this.b.emit(", ");let a=this.ts&&i==="target"?e.annotations?.get(r)??null:null,o=a!==null?this.stores.idOf(a):null,l=o!==null&&E.isTypedWrapper(a)&&this.stores.role(o,"target")!==null,c=this.b.offset;if(l)this.mark(a,"target",()=>this.b.emit(r));else{let f=this.stores.idOf(s),h=f!==null?this.stores.role(f,i):null,u=h?.sourceStart!=null&&this.b.source!==null?this.b.source.slice(h.sourceStart,h.sourceEnd):null,d=u!==null&&u!==r?this.stores.primitiveSpans(r,h.sourceStart,h.sourceEnd)[0]??null:null;if(d)this.b.markSpan(f,"identifier",d.sourceStart,d.sourceEnd,()=>this.b.emit(r));else this.mark(s,i,()=>this.b.emit(r))}if(this.ts&&i==="target"&&e.classBindings?.has(r))this.classDecls.push([c,this.b.offset]);if(this.ts&&i==="target")if(a!==null)this.b.tsOnly(()=>{if(E.isTypedWrapper(a)&&!this.strict)this.b.emit("!");this.mark(a,"annotation",()=>this.b.emit(`: ${this.annotationText(a)}`))});else{let f=e.schemaConsts?.get(r)??null,h=e.componentTypes?.get(r)??null;if(f!==null){let u=this.bindingNameSpan(s,i,r);this.b.tsOnly(()=>{this.b.emit(": "),this.emitNamedCopies(f,r,u?.id??null,u?.span??null)})}else if(h!==null){let u=e.componentInfos?.get(r)??null,d=this.stores.idOf(s),p=d!==null?this.stores.role(d,i):null,m=p?.sourceStart!=null&&this.b.source?.slice(p.sourceStart,p.sourceEnd)===r?[p.sourceStart,p.sourceEnd]:null;this.b.tsOnly(()=>{if(this.b.emit(`${this.strict?"":"!"}: `),u!==null)for(let g of oa(u,r,"",r,{road:"face"})){if(g.node!==void 0){this.mark(g.node,g.role,()=>this.b.emit(g.text));continue}this.emitNamedCopies(g.text,r,d,m)}else this.b.emit(h)})}else{let u=e.pinnable?.get(r)?.key??null,d=u!==null?this.pins?.get(u):void 0;if(d!==void 0)this.b.tsOnly(()=>{this.pinnedWrites.add(e.pinnable.get(r).node);let p=this.b.offset;this.b.emit(`${this.strict?"":"!"}: `),this.emitDeclaredTypeCopies(d,this.stores.idOf(s)),this.pinSpans.push([p,this.b.offset])})}}}),this.b.emit(";")}program(e){return this.programWith(e)}ambientHoistFilter(e){if(this.scopes.length===0)return e;let t=e.filter(([r])=>!this.inScope(r)||r==="_"&&e.matchWrite);return t.matchWrite=e.matchWrite,t.annotations=e.annotations,t.directives=e.directives,t}attachSchemaConsts(e){if(!this.schemaStories)return;let t=new Map;for(let r of this.schemaStories.values())if(!r.decl.exported&&r.constType!==null)t.set(r.decl.name,r.constType);if(t.size)e.schemaConsts=t}programWith(e){let t=this.liveStmts(e.slice(1),{forwards:!0}),r=0;while(r0){this.mark(e,"$self",()=>{for(let a of t.slice(0,r))this.statement(a,0);this.emitDataConst();let s=t.slice(r),i=this.ambientHoistFilter(this.hoistTargets(s,[],E.importedNames(t.slice(0,r))));this.attachSchemaConsts(i);let n=new Set([...i.map(([a])=>a),...E.importedNames(t.slice(0,r))]);for(let a of this.pushReactiveFrame(t,n))n.add(a);if(this.moduleBound=E.moduleBoundNames(s),this.moduleClassNames=E.classDeclNames(s),this.rejectDuplicateDefault(s),this.scopes.push(n),i=this.applyDeclareInPlace(i,e.slice(1),{tailIsExpression:this.repl}),i.length)this.hoistLine(i),this.b.emit(` +`+t)})}withTsDirectives(e,t,r,n=!1){let i=this.ts&&this.tsDirectivesArmed&&y(e)?this.tsDirectiveMap.get(e):void 0;if(i===void 0)return r();this.tsDirectiveMap.delete(e);for(let s of i)this.tsDirectiveLine(s,t,n);r()}tsForwardDirectives(e){if(!this.ts||!this.tsDirectivesArmed)return;let t=this.tsDirectiveMap?.get(e);if(t===void 0)return;this.tsDirectiveMap.delete(e);for(let r of t)r.forwardOwner=e;this.pendingHoistDirectives.push(...t)}tsOverloadSigs(e,t){if(!this.ts)return;let r=this.pendingSigs.get(e);if(!r)return;for(let n of r){let i=this.tsRendered(n,()=>On(n[2],In(this.stores))),s=this.tsDirectiveMap.get(n);if(s!==void 0){this.tsDirectiveMap.delete(n);for(let a of s)this.tsDirectiveLine(a," ".repeat(t))}this.b.tsOnly(()=>{this.mark(n,"$self",()=>{this.b.emit("function "),this.mark(n,"name",()=>this.b.emit(n[1])),this.mark(n,"params",()=>this.b.emit(i)),this.mark(n,"returnType",()=>this.emitTypeText(n,"returnType",`: ${Be(n[3])}`)),this.b.emit(";")}),this.b.emit(` +`+" ".repeat(t))})}}patternNames(e,t=[],r=!1,n=null){if(!y(e)){if(typeof e==="string"&&e!==","){if(v3.has(e))throw this.positionedError(n,`emitter: \`${e}\` cannot be a destructuring target — a value word lowers to its literal before scope exists, so the binding would be unreachable`);t.push(e)}return t}if(e[0]==="array")for(let i of e.slice(1))this.patternNames(i,t,r,e);else if(e[0]==="object"){for(let i of e.slice(1))if(i[0]===null)this.patternNames(i[1],t,r,e);else if(i[0]===":")this.patternNames(i[2],t,r,e);else if(i[0]==="=")this.patternNames(i[1],t,r,e);else if(i[0]==="...")this.patternNames(i[1],t,r,e)}else if(e[0]==="rest"){if(!r)throw this.positionedError(e,"emitter: Cannot use 'rest' expression as a destructuring target (destructuring rest is spelled '...name')");this.patternNames(e[1],t,r,e)}else if(e[0]==="...")this.patternNames(e[1],t,r,e);else if(e[0]==="default")this.patternNames(e[1],t,r,e);else if(e[0]==="=")this.patternNames(e[1],t,r,e);else if(e[0]==="cast"||e[0]==="satisfies")this.patternNames(e[1],t,r,e);else if(e[0]==="typed-var")this.patternNames(e[1],t,r,e);return t}static isPattern(e){return O1(e)||y(e)&&e[0]==="array"}static declarablePattern(e){let t=(r)=>typeof r==="string"||(y(r)&&r[0]==="="?t(r[1]):E.declarablePattern(r));if(y(e)&&e[0]==="array"){let r=e.slice(1);return r.every((n,i)=>y(n)&&n[0]==="..."?i===r.length-1&&typeof n[1]==="string":t(n))}if(O1(e)){let r=e.slice(1);return r.every((n,i)=>{if(!y(n))return!1;if(n[0]===null)return typeof n[2]==="string";if(n[0]==="=")return typeof n[1]==="string";if(n[0]==="...")return i===r.length-1&&typeof n[1]==="string";return n[0]===":"&&t(n[2])})}return!1}rejectDuplicateDefault(e){let t=null;for(let r of e){if(!y(r)||r[0]!=="export-default")continue;if(t!==null)throw this.positionedError(r,"emitter: duplicate 'export default' — a module has exactly one default export",t);t=r}}static classDeclNames(e){let t=new Set;for(let r of e){if(!y(r))continue;let n=r[0]==="export"&&y(r[1])?r[1]:r;if(y(n)&&n[0]==="class"&&typeof n[1]==="string")t.add(n[1])}return t}static isTypedWrapper(e){return y(e)&&e[0]==="typed-var"&&e.length===3}static isErasedStmt(e){return y(e)&&(e[0]==="type-decl"||E.isTypedWrapper(e)||e[0]==="def-sig"&&e.length===4)}static stripErased(e){return e.filter((t)=>!E.isErasedStmt(t))}liveStmts(e,{forwards:t=!1}={}){let r=[];for(let n=0;ny(o)&&k1(o[0])&&o.length===4&&o[1]===s);if(!a)throw this.positionedError(i,`emitter: overload signature 'def ${s}' has no implementation — `+`a bodiless typed def must be followed by 'def ${s}' with a body in the same block`);if(this.ts){let o=this.pendingSigs.get(a)??[];if(!o.includes(i))o.push(i),this.pendingSigs.set(a,o)}}if(this.ts&&t&&E.isTypedWrapper(i)&&typeof i[1]==="string"&&!this.pendingHoistTypes.has(i[1]))this.pendingHoistTypes.set(i[1],i);if(t&&E.isTypedWrapper(i))this.tsForwardDirectives(i);this.erasedRows(i)}else r.push(i)}return r}erasedRows(e){this.mark(e,"$self",()=>{});let t=e[0]==="type-decl"?["declaration"]:e[0]==="def-sig"?["name","params","returnType"]:["target","annotation"];for(let r of t)this.mark(e,r,()=>{})}inScope(e){return this.scopes.some((t)=>t.has(e))||this.rframes.some((t)=>t.block===!0&&t.bound.has(e))}scopedHoist(e,t=[],{declareInPlace:r=!0}={}){for(let a of t){let o=E.paramMatchWrite(a);if(o!==null)throw this.positionedError(o,"emitter: a parameter default cannot write the last-match binding — "+"`_` lives in the enclosing body, which a default cannot reach (move the match into the body)")}let n=this.hoistTargets(e,t),i=n.filter(([a,o])=>{if(y(o)&&F1.has(o[0])&&!ct.has(o[0])&&typeof o[1]==="string"&&this.isExportedConst(o[1]))return!1;return!this.inScope(a)||a==="_"&&n.matchWrite});i.annotations=n.annotations,i.directives=n.directives;let s=new Set(i.map(([a])=>a));for(let a of t)for(let o of this.patternNames(a,[],!0))s.add(o);if(r)i=this.applyDeclareInPlace(i,e,{tailIsExpression:!0});return{entries:i,names:s}}hoistTargets(e,t=[],r=[]){let n=new Map,i=!1,s=new Set,a=[],o=new Map,l=(m,g)=>{if(this.ts&&!o.has(m)&&this.annotationText(g)!==null)o.set(m,g)},c=(m,g)=>{if(!n.has(m))n.set(m,g)},h=(m)=>{if(this.scopeBoundary(m)==="skip")return;if(E.isMatchWrite(m))c("_",m),i=!0;for(let g of m)h(g)},f=(m)=>{let g=this.scopeBoundary(m);if(g==="skip")return;if(this.ts&&E.isTypedWrapper(m)){if(typeof m[1]==="string")l(m[1],m);this.tsForwardDirectives(m)}if(ut(m)&&y(m[1][2]))a.push([this.chainTemp(m),m[1][2],"$self"]);if(g==="reactive"){if(typeof m[1]==="string")s.add(m[1]);if(!(m[0]==="computed"&&b1(m[2])&&m[2].length>2))f(m[2]);return}if(g==="effect"){if(typeof m[1]==="string")s.add(m[1]);return}if(g==="readonly"){if(typeof m[1]==="string")s.add(m[1]);f(m[2]);return}if(m[0]==="export"&&y(m[1])){let b=m[1];if((this.isReactiveDecl(b)||this.isEffectDecl(b)||this.isReadonlyDecl(b))&&typeof b[1]==="string"){if(s.add(b[1]),!this.isEffectDecl(b)&&!(b[0]==="computed"&&b1(b[2])&&b[2].length>2))f(b[2]);return}if(F1.has(b[0])&&b.length===3)f(b[2]);return}if(g==="loop"){h(m[1]);for(let b of m.slice(2))f(b);return}if(g==="comprehension"){f(m[1]);for(let b of m[2]??[])h(b[1]),f(b[2]);for(let b of m[3]??[])f(b);return}if(m[0]==="export")return;if(g==="class"){if(m[2]!=null)f(m[2]);let b=m[3];if(b1(b)){for(let S of b.slice(1))if(y(S)&&F1.has(S[0])&&S.length===3)f(S[2]);else if(!E.isTypedWrapper(S))f(S)}return}if(E.isMatchWrite(m))c("_",m),i=!0;if(F1.has(m[0])&&m.length===3){if(typeof m[1]==="string")c(m[1],m),l(m[1],m);else if(m[0]==="="&&E.isPattern(m[1]))for(let b of this.patternNames(m[1]))c(b,m)}if(m[0]==="try"){for(let b of m.slice(2))if(y(b)&&b.length===2&&E.isPattern(b[0]))for(let S of this.patternNames(b[0]))c(S,m)}for(let b of m)f(b)};for(let m of e)f(m);let u=[];for(let m of t)this.patternNames(m,u,!0);for(let m of u)n.delete(m);for(let m of s)n.delete(m);for(let m of E.declaredNames(e))n.delete(m);for(let m of r)n.delete(m);for(let m of e)if(this.isModuleImport(m))for(let g of E.importedNames([m]))n.delete(g);for(let m of this.cframes)for(let g of m.members.keys())n.delete(g);let d=[...n.entries()].map(([m,g])=>[m,g,"target"]);d.matchWrite=i,d.push(...a);let p=new Set([...n.keys(),...u,...s]);if(d.push(...this.planReferenceTemps(e,p)),d.sort(([m],[g])=>mg?1:0),this.ts){for(let[m,g]of this.pendingHoistTypes)if(!o.has(m))o.set(m,g);this.pendingHoistTypes.clear(),d.annotations=o,d.directives=this.pendingHoistDirectives,this.pendingHoistDirectives=[]}return d}static declaresInPlace=new WeakSet;static inlineOwners=new WeakMap;captureScan(e){let t=new Set(e.filter(y)),r=new Map,n=(a,o,l=!1,c=null,h=null,f="")=>{if(typeof a!=="string"||!ur.test(a))return;let u=r.get(a);if(u===void 0)r.set(a,u={decl:null,seen:!1,nested:!1,nestedWrite:!1,inDef:!1,annotated:null,firstWrite:null,firstWritePath:""});if(!u.seen)u.seen=!0,u.decl=c;if(l&&u.firstWrite===null&&h!==null)u.firstWrite=h,u.firstWritePath=f;if(o>0){if(u.nested=!0,l)u.nestedWrite=!0;if(o===2)u.inDef=!0}},i=(a,o,l)=>{let c=(h)=>{if(typeof h==="string"){if(h!==",")l(h);return}if(h[0]==="="){s(h[2],o),c(h[1]);return}if(h[0]==="..."){l(h[1]);return}i(h,o,l)};if(a[0]==="array"){for(let h of a.slice(1))c(h);return}for(let h of a.slice(1))if(h[0]===null)l(h[2]);else if(h[0]==="=")s(h[2],o),l(h[1]);else if(h[0]==="...")l(h[1]);else if(h[0]===":"){if(y(h[1]))s(h[1],o);c(h[2])}},s=(a,o)=>{if(typeof a==="string")return n(a,o);if(!y(a))return;if(E.isTypedWrapper(a)){if(typeof a[1]==="string"){let c=r.get(a[1]);if(c!==void 0&&c.annotated===null)c.annotated=a}return}let l=a[0];if(T1(a)){for(let c of a.slice(1))s(c,Math.max(o,1));return}if(k1(l)||l==="class"||l==="component"||l==="enum"){let c=k1(l)?2:Math.max(o,1);if(l==="class"){for(let h of a.slice(2)){let f=y(h)&&h[0]==="block"?h.slice(1):[h];for(let u of f)if(y(u)&&k1(u[0])&&u.length===4)for(let d of u.slice(2))s(d,c);else s(u,c)}return}for(let h of a.slice(typeof a[1]==="string"?2:1))s(h,c);return}if(E.isMatchWrite(a)){for(let c of a.slice(1))s(c,o);n("_",o,!0);return}if(F1.has(l)&&a.length===3){if(s(a[2],o),typeof a[1]==="string"){let c=ct.has(l);if(!c)n(a[1],o);if(n(a[1],o,!0,c&&!o&&t.has(a)?a:null,c?a:null),c&&this.annotationText(a)!==null){let h=r.get(a[1]);if(h!==void 0&&h.annotated===null)h.annotated=a}}else if(l==="="&&E.declarablePattern(a[1])){let c=!o&&t.has(a)?a:null,h=new Map(mr(a[1]));i(a[1],o,(f)=>n(f,o,!0,c,h.has(f)?a:null,h.get(f)??""))}else if(s(a[1],o),ct.has(l))for(let[c,h]of mr(a[1]))n(c,o,!0,null,a,h);return}if(U1(a)){if(typeof a[1]==="string")n(a[1],o,!0);else s(a[1],o);return}if((l==="."||l==="?.")&&a.length===3){if(s(a[1],o),typeof a[2]!=="string")s(a[2],o);return}if(l==="object"){for(let c of a.slice(1))if(y(c)&&c[0]===":"&&c.length===3){if(typeof c[1]!=="string")s(c[1],o);s(c[2],o)}else s(c,o);return}for(let c of a)s(c,o)};for(let a of e)s(a,0);return r}applyDeclareInPlace(e,t,{tailIsExpression:r=!1}={}){if(!e.some(([,,h])=>h==="target"))return e;let n=this.captureScan(t),i=null;if(r){for(let h=t.length-1;h>=0;h--)if(!E.isErasedStmt(t[h])){i=t[h];break}}let s=new Map,a=new Set(e.filter(([,,h])=>h==="target").map(([h])=>h)),o=new Map,l=(h)=>{let f=o.get(h);if(f===void 0){let u=this.patternNames(h[1]);if(f=u.every((d)=>{let p=n.get(d);return a.has(d)&&p!==void 0&&p.decl===h&&!p.inDef}),f){let d=u.find((p)=>n.get(p).annotated!==null);if(d!==void 0)throw this.positionedError(n.get(d).annotated,`emitter: '${d}' is declared by a destructuring pattern, which cannot carry this annotation — `+`rename the element in the pattern (\`${d}: raw\`) and declare \`${d}: T\` from it, or annotate the pattern's source`)}o.set(h,f)}return f},c=e.filter(([h,,f])=>{if(f!=="target")return!0;let u=n.get(h);if(!u||u.decl===null||u.inDef||u.decl===i)return!0;if(y(u.decl)&&ct.has(u.decl[0])&&E.controlGuard(u.decl[2]))return!0;if(E.isPattern(u.decl[1])){if(!l(u.decl))return!0;return E.declaresInPlace.add(u.decl),!1}let d=e.annotations?.get(h);if(d!==void 0&&d!==u.decl)E.inlineOwners.set(u.decl,d),s.set(d,u.decl);return E.declaresInPlace.add(u.decl),!1});if(c.annotations=e.annotations,c.schemaConsts=e.schemaConsts,e.directives?.length&&s.size){c.directives=[];for(let h of e.directives){let f=h.forwardOwner!==void 0?s.get(h.forwardOwner):void 0;if(f!==void 0){let u=this.tsDirectiveMap.get(f)??[];u.push(h),this.tsDirectiveMap.set(f,u)}else c.directives.push(h)}}else c.directives=e.directives;c.classBindings=new Set,c.componentTypes=new Map;for(let[h,,f]of c){if(f!=="target")continue;let u=n.get(h)?.firstWrite??null,d=u?.[2];if(!y(d))continue;if(d[0]==="class"||d[0]==="component")c.classBindings.add(h);if(!this.ts||!this.isComponentDecl(d))continue;if(this.annotationText(u,"typeParams")!==null)continue;let p=Oi(this.stores,this.b.source,d,`__${h}__computed`);p.appStashSpec=this.appStashSpec,p.routesUnion=this.routesUnion,p.routeParams=this.routeParams,c.componentTypes.set(h,`{ ${ia(p,h,"",h,{road:"face"}).join(" ")} }`),(c.componentInfos??=new Map).set(h,p)}c.pinnable=new Map;for(let[h,,f]of c){if(f!=="target")continue;let u=n.get(h);if(!u?.nested||u.firstWrite===null)continue;if(c.annotations?.has(h)||c.schemaConsts?.has(h))continue;if(c.componentTypes.has(h))continue;let d=this.pinKey(h,u.firstWrite,u.firstWritePath);c.pinnable.set(h,{node:u.firstWrite,key:d}),this.pinnables?.push({name:h,node:u.firstWrite,path:u.firstWritePath,key:d})}return c}pinKey(e,t,r=""){let n=this.stores.idOf(t),i=n!==null?this.stores.role(n,"value"):null;if(!i||i.sourceStart==null||this.b.source===null)return null;let s=r+"\x00"+this.b.source.slice(i.sourceStart,i.sourceEnd),a=5381;for(let o=0;o>>0;return`${e}@${a.toString(36)}`}chainTemp(e){let t=this.temps.byNode.get(e);if(t===void 0)t=this.freshTempName(),this.temps.byNode.set(e,t);return t}freshTempName(){let e;do e=this.temps.n===0?"_ref":`_ref${this.temps.n}`,this.temps.n++;while(this.temps.used.has(e));return e}inCtrl(e){this.ctrlDepth++;try{e()}finally{this.ctrlDepth--}}loopTempName(e){let t=e;for(let r=1;this.temps.used.has(t);r++)t=`${e}${r}`;return t}runtimeName(e){let t=this.runtimeAliases.get(e);if(t===void 0)throw Error(`emitter invariant: generated runtime name '${e}' is not registered`);return t}hoistLine(e,t=""){if(e.length===1)for(let r of e.directives??[])this.tsDirectiveLine(r,t);this.b.emit("let "),e.forEach(([r,n,i],s)=>{if(s>0)this.b.emit(", ");let a=this.ts&&i==="target"?e.annotations?.get(r)??null:null,o=a!==null?this.stores.idOf(a):null,l=o!==null&&E.isTypedWrapper(a)&&this.stores.role(o,"target")!==null,c=this.b.offset;if(l)this.mark(a,"target",()=>this.b.emit(r));else{let h=this.stores.idOf(n),f=h!==null?this.stores.role(h,i):null,u=f?.sourceStart!=null&&this.b.source!==null?this.b.source.slice(f.sourceStart,f.sourceEnd):null,d=u!==null&&u!==r?this.stores.primitiveSpans(r,f.sourceStart,f.sourceEnd)[0]??null:null;if(d)this.b.markSpan(h,"identifier",d.sourceStart,d.sourceEnd,()=>this.b.emit(r));else this.mark(n,i,()=>this.b.emit(r))}if(this.ts&&i==="target"&&e.classBindings?.has(r))this.classDecls.push([c,this.b.offset]);if(this.ts&&i==="target")if(a!==null)this.b.tsOnly(()=>{if(E.isTypedWrapper(a)&&!this.strict)this.b.emit("!");this.mark(a,"annotation",()=>this.b.emit(`: ${this.annotationText(a)}`))});else{let h=e.schemaConsts?.get(r)??null,f=e.componentTypes?.get(r)??null;if(h!==null){let u=this.bindingNameSpan(n,i,r);this.b.tsOnly(()=>{this.b.emit(": "),this.emitNamedCopies(h,r,u?.id??null,u?.span??null)})}else if(f!==null){let u=e.componentInfos?.get(r)??null,d=this.stores.idOf(n),p=d!==null?this.stores.role(d,i):null,m=p?.sourceStart!=null&&this.b.source?.slice(p.sourceStart,p.sourceEnd)===r?[p.sourceStart,p.sourceEnd]:null;this.b.tsOnly(()=>{if(this.b.emit(`${this.strict?"":"!"}: `),u!==null)for(let g of oa(u,r,"",r,{road:"face"})){if(g.node!==void 0){this.mark(g.node,g.role,()=>this.b.emit(g.text));continue}this.emitNamedCopies(g.text,r,d,m)}else this.b.emit(f)})}else{let u=e.pinnable?.get(r)?.key??null,d=u!==null?this.pins?.get(u):void 0;if(d!==void 0)this.b.tsOnly(()=>{this.pinnedWrites.add(e.pinnable.get(r).node);let p=this.b.offset;this.b.emit(`${this.strict?"":"!"}: `),this.emitDeclaredTypeCopies(d,this.stores.idOf(n)),this.pinSpans.push([p,this.b.offset])})}}}),this.b.emit(";")}program(e){return this.programWith(e)}ambientHoistFilter(e){if(this.scopes.length===0)return e;let t=e.filter(([r])=>!this.inScope(r)||r==="_"&&e.matchWrite);return t.matchWrite=e.matchWrite,t.annotations=e.annotations,t.directives=e.directives,t}attachSchemaConsts(e){if(!this.schemaStories)return;let t=new Map;for(let r of this.schemaStories.values())if(!r.decl.exported&&r.constType!==null)t.set(r.decl.name,r.constType);if(t.size)e.schemaConsts=t}programWith(e){let t=this.liveStmts(e.slice(1),{forwards:!0}),r=0;while(r0){this.mark(e,"$self",()=>{for(let a of t.slice(0,r))this.statement(a,0);this.emitDataConst();let n=t.slice(r),i=this.ambientHoistFilter(this.hoistTargets(n,[],E.importedNames(t.slice(0,r))));this.attachSchemaConsts(i);let s=new Set([...i.map(([a])=>a),...E.importedNames(t.slice(0,r))]);for(let a of this.pushReactiveFrame(t,s))s.add(a);if(this.moduleBound=E.moduleBoundNames(n),this.moduleClassNames=E.classDeclNames(n),this.rejectDuplicateDefault(n),this.scopes.push(s),i=this.applyDeclareInPlace(i,e.slice(1),{tailIsExpression:this.repl}),i.length)this.hoistLine(i),this.b.emit(` -`);if(this.emitTsTypeDecls(e.slice(1),""),s.length)this.mark(e,"body",()=>this.statements(s,0,"program"));this.emitHmrComponentTable(),this.scopes.pop(),this.rframes.pop()});return}this.programPlain(e,t)}static moduleBoundNames(e){let t=new Set,r=(s)=>{if(!y(s))return;if(F1.has(s[0])&&s.length===3&&typeof s[1]==="string")t.add(s[1]);else if((s[0]==="class"||s[0]==="enum")&&typeof s[1]==="string")t.add(s[1]);else if(k1(s[0])&&typeof s[1]==="string")t.add(s[1])};for(let s of e){if(!y(s))continue;if(s[0]==="export")for(let i of s.slice(1))r(i);else r(s)}return t}static importAttributes(e){let t=e.length>2?e[e.length-2]:null;return y(t)&&t[0]==="with"&&t.length===2?t:null}static importSpecs(e){return e.slice(1,-1).filter((t)=>!(y(t)&&t[0]==="with"))}static importedSpecs(e){let t=new Map;for(let r of e){if(!y(r)||r[0]!=="import"||r.length<3)continue;let s=r[r.length-1];if(typeof s!=="string")continue;let i=s.replace(/^['"`]|['"`]$/g,"");for(let n of E.importSpecs(r)){if(n==="{}")continue;if(typeof n==="string")t.set(n,{specifier:i,importedName:"default"});else if(n[0]==="*")t.set(n[1],{specifier:i,importedName:"*"});else for(let a of n){let o=y(a)?a[0]:a,l=y(a)?a[1]:a;t.set(l,{specifier:i,importedName:o})}}}return t}static TYPE_ROLES=new Set(["annotation","returnType","typeParams","declaration"]);static importedNames(e){let t=[];for(let r of e)for(let s of E.importSpecs(r)){if(s==="{}")continue;if(typeof s==="string")t.push(s);else if(s[0]==="*")t.push(s[1]);else for(let i of s)t.push(y(i)?i[1]:i)}return t}emitDataConst(){if(this.dataPayload==null)return;this.b.emit(`const DATA = ${JSON.stringify(this.dataPayload)}; +`);if(this.emitTsTypeDecls(e.slice(1),""),n.length)this.mark(e,"body",()=>this.statements(n,0,"program"));this.emitHmrComponentTable(),this.scopes.pop(),this.rframes.pop()});return}this.programPlain(e,t)}static moduleBoundNames(e){let t=new Set,r=(n)=>{if(!y(n))return;if(F1.has(n[0])&&n.length===3&&typeof n[1]==="string")t.add(n[1]);else if((n[0]==="class"||n[0]==="enum")&&typeof n[1]==="string")t.add(n[1]);else if(k1(n[0])&&typeof n[1]==="string")t.add(n[1])};for(let n of e){if(!y(n))continue;if(n[0]==="export")for(let i of n.slice(1))r(i);else r(n)}return t}static importAttributes(e){let t=e.length>2?e[e.length-2]:null;return y(t)&&t[0]==="with"&&t.length===2?t:null}static importSpecs(e){return e.slice(1,-1).filter((t)=>!(y(t)&&t[0]==="with"))}static importedSpecs(e){let t=new Map;for(let r of e){if(!y(r)||r[0]!=="import"||r.length<3)continue;let n=r[r.length-1];if(typeof n!=="string")continue;let i=n.replace(/^['"`]|['"`]$/g,"");for(let s of E.importSpecs(r)){if(s==="{}")continue;if(typeof s==="string")t.set(s,{specifier:i,importedName:"default"});else if(s[0]==="*")t.set(s[1],{specifier:i,importedName:"*"});else for(let a of s){let o=y(a)?a[0]:a,l=y(a)?a[1]:a;t.set(l,{specifier:i,importedName:o})}}}return t}static TYPE_ROLES=new Set(["annotation","returnType","typeParams","declaration"]);static importedNames(e){let t=[];for(let r of e)for(let n of E.importSpecs(r)){if(n==="{}")continue;if(typeof n==="string")t.push(n);else if(n[0]==="*")t.push(n[1]);else for(let i of n)t.push(y(i)?i[1]:i)}return t}emitDataConst(){if(this.dataPayload==null)return;this.b.emit(`const DATA = ${JSON.stringify(this.dataPayload)}; `)}emitHmrComponentTable(){if(!this.hmr||!this.modulePath||this.moduleComponentNames.size===0)return;this.b.emit(` -export const __hmrComponents = { ${[...this.moduleComponentNames.keys()].join(", ")} };`)}programPlain(e,t){this.mark(e,"$self",()=>{this.emitDataConst();let r=this.ambientHoistFilter(this.hoistTargets(t));this.attachSchemaConsts(r);let s=new Set(r.map(([i])=>i));for(let i of this.pushReactiveFrame(t,s))s.add(i);if(this.moduleBound=E.moduleBoundNames(t),this.moduleClassNames=E.classDeclNames(t),this.rejectDuplicateDefault(t),this.scopes.push(s),r=this.applyDeclareInPlace(r,e.slice(1),{tailIsExpression:this.repl}),r.length)this.hoistLine(r),this.b.emit(` +export const __hmrComponents = { ${[...this.moduleComponentNames.keys()].join(", ")} };`)}programPlain(e,t){this.mark(e,"$self",()=>{this.emitDataConst();let r=this.ambientHoistFilter(this.hoistTargets(t));this.attachSchemaConsts(r);let n=new Set(r.map(([i])=>i));for(let i of this.pushReactiveFrame(t,n))n.add(i);if(this.moduleBound=E.moduleBoundNames(t),this.moduleClassNames=E.classDeclNames(t),this.rejectDuplicateDefault(t),this.scopes.push(n),r=this.applyDeclareInPlace(r,e.slice(1),{tailIsExpression:this.repl}),r.length)this.hoistLine(r),this.b.emit(` -`);this.emitTsTypeDecls(e.slice(1),""),this.mark(e,"body",()=>this.statements(t,0,"program")),this.emitHmrComponentTable(),this.scopes.pop(),this.rframes.pop()})}statements(e,t,r){let s=" ".repeat(t),i=this.liveStmts(e);this.emitTsTypeDecls(e,s),i.forEach((n,a)=>{if(this.b.emit(s),r==="program")this.moduleTopStmt=n;this.statement(n,t);let o=a===i.length-1;if(r==="block"||!o)this.b.emit(` -`);this.flushPendingTypeDecls(s,r!=="block"&&o)})}static STATEMENT_FORMS={__proto__:null,if:(e,t,r)=>(e.ifStatement(t,r),!0),def:(e,t,r)=>t.length===4&&(e.defStatement(t,r),!0),"void-def":(e,t,r)=>t.length===4&&(e.defStatement(t,r),!0),return:(e,t)=>(e.returnStatement(t),!0),while:(e,t,r)=>(t.length===3||t.length===4)&&(e.whileStatement(t,r),!0),loop:(e,t,r)=>(e.loopStatement(t,r),!0),"loop-n":(e,t,r)=>(e.loopStatement(t,r),!0),"for-in":(e,t,r)=>(e.forIn(t,r),!0),"for-of":(e,t,r)=>(e.forOf(t,r),!0),"for-as":(e,t,r)=>(e.forAs(t,r),!0),switch:(e,t,r)=>(e.switchStatement(t,r),!0),try:(e,t,r)=>(e.tryStatement(t,r),!0),throw:(e,t)=>(e.throwStatement(t),!0),comprehension:(e,t,r)=>{if(!re(t))return!1;if(e.ind=r,t===e.lastProgramStmt){if(e.repl)e.b.emit(`const ${e.replSlot()} = `);e.comprehension(t,r),e.b.emit(";")}else{let s=e.funcBodyStmt;if(e.plainLoopComprehension(t,r),!s)e.b.emit(";")}return!0},block:(e,t,r)=>(e.bareBlockStatement(t,r),!0),class:(e,t,r)=>t[1]!=null&&(e.classStatement(t,r),!0),enum:(e,t)=>(e.enumStatement(t),!0),state:(e,t,r)=>e.isReactiveDecl(t)&&(e.reactiveDecl(t,r),!0),computed:(e,t,r)=>e.isReactiveDecl(t)&&(e.reactiveDecl(t,r),!0),effect:(e,t,r)=>e.isEffectDecl(t)&&(e.effectStatement(t,r),!0),readonly:(e,t,r)=>e.isReadonlyDecl(t)&&(e.readonlyDecl(t,r),!0),"void-readonly":(e,t,r)=>e.isReadonlyDecl(t)&&(e.readonlyDecl(t,r),!0),import:(e,t)=>e.isModuleImport(t)&&(e.importStatement(t),!0),export:(e,t,r)=>(e.exportStatement(t,r),!0),"export-default":(e,t,r)=>(e.exportStatement(t,r),!0),"export-all":(e,t,r)=>(e.exportStatement(t,r),!0),"export-from":(e,t,r)=>(e.exportStatement(t,r),!0)};moduleSource(e){return Ce(e)}static specifierLocal(e){return y(e)?e[1]:e}emitSpecifiers(e,t=null){let r=e.filter((n)=>!this.typeOnlyImports.has(E.specifierLocal(n))),s=0,i=0;e.forEach((n)=>{let a=this.typeOnlyImports.has(E.specifierLocal(n)),o=(c,f)=>{if(this.ts&&t!==null)this.importedRefs.push([c,this.b.offset,f,t,"declaration"])},l=()=>{let c=this.declaringName;this.declaringName=!0;try{if(y(n)){this.emitPrimitive(n[0]),this.b.emit(" as ");let f=this.b.offset;this.emitPrimitive(n[1]),o(f,n[0])}else{let f=this.b.offset;this.emitPrimitive(n),o(f,n)}}finally{this.declaringName=c}};if(a){if(!this.ts)return;this.b.tsOnly(()=>{if(s>0||r.length===0&&i>0)this.b.emit(", ");if(l(),s===0&&r.length>0)this.b.emit(", ")}),i++;return}if(s>0)this.b.emit(", ");l(),s++})}emitImportClause(e,t=null){e.forEach((r,s)=>{if(s>0)this.b.emit(", ");let i=t===null?null:s===0?"spec":"extra",n=(a)=>i===null?a():this.mark(t,i,a);if(r==="{}")this.b.emit("{}");else if(typeof r==="string")n(()=>this.b.emit(r));else if(r[0]==="*")n(()=>{this.b.emit("* as ");let a=this.b.offset;if(this.b.emit(r[1]),this.ts&&t!==null)this.importedRefs.push([a,this.b.offset,"*",hr(t[t.length-1]),"declaration"])});else this.b.emit("{ "),n(()=>this.emitSpecifiers(r,t!==null?hr(t[t.length-1]):null)),this.b.emit(" }")}),this.b.emit(" from ")}importStatement(e){if(this.script)throw this.positionedError(e,"emitter: module imports are not available in a script tag — script sources share one scope, and modules arrive with the package graph");let t=e[e.length-1],r=E.importSpecs(e),s=E.importAttributes(e);for(let n of r){if(!Array.isArray(n)||n[0]==="*")continue;if(n.includes("default"))throw this.positionedError(e,"emitter: `import { default }` binds nothing — spell the default import `import name from '…'`, or alias it: `import { default as name } from '…'`")}let i=this.stores.idOf(e);if(i!==null&&this.stores.role(i,"typeOnly")!==null){if(!this.ts){this.mark(e,"$self",()=>{}),this.mark(e,"source",()=>{});return}this.b.tsOnly(()=>{this.mark(e,"$self",()=>{this.b.emit("import "),this.mark(e,"typeOnly",()=>this.b.emit("type")),this.b.emit(" "),this.emitImportClause(r,e);let n=this.b.offset;this.mark(e,"source",()=>this.b.emit(this.moduleSource(t))),this.importSpans.push({start:n,end:this.b.offset,specifier:Ce(t)}),this.emitImportAttributes(s)}),this.b.emit(`; -`)});return}if(this.repl)return this.replImportStatement(e);this.mark(e,"$self",()=>{this.b.emit("import ");let n=r.length>0&&r.every((a)=>a!=="{}"&&(typeof a==="string"||a[0]==="*"?this.typeOnlyImports.has(typeof a==="string"?a:a[1]):a.every((o)=>this.typeOnlyImports.has(E.specifierLocal(o)))));if(r.length>0){if(!n)this.emitImportClause(r,e);else if(this.ts)this.b.tsOnly(()=>this.emitImportClause(r,e))}{let a=this.b.offset;this.mark(e,"source",()=>this.b.emit(this.moduleSource(t))),this.importSpans.push({start:a,end:this.b.offset,specifier:Ce(t)})}this.emitImportAttributes(s)}),this.b.emit(`; -`)}emitImportAttributes(e){if(e===null)return;for(let t of e[1].slice(1))if(!(t[0]===":"&&typeof t[2]==="string"&&(t[2][0]==='"'||t[2][0]==="'")))throw this.positionedError(t,'emitter: an import attribute is a string-literal pair (`with { type: "json" }`) — the module loader reads it before any code runs');this.b.emit(" "),this.mark(e,"$self",()=>{this.mark(e,"keyword",()=>this.b.emit("with")),this.b.emit(" "),this.mark(e,"value",()=>this.expr(e[1]))})}replImportStatement(e){let t=e[e.length-1],r=E.importSpecs(e),s=E.importAttributes(e),i=[],n=null;for(let a of r){if(a==="{}")continue;if(typeof a==="string")i.push(`default: ${a}`);else if(a[0]==="*")n=a[1];else for(let o of a)i.push(y(o)?`${o[0]}: ${o[1]}`:o)}this.mark(e,"$self",()=>{if(n!==null)this.b.emit(`const ${n} = `);else if(i.length>0)this.b.emit(`const { ${i.join(", ")} } = `);this.b.emit(`await import(${this.replResolver()}(`);{let a=this.b.offset;this.mark(e,"source",()=>this.b.emit(this.moduleSource(t))),this.importSpans.push({start:a,end:this.b.offset,specifier:Ce(t)})}if(this.b.emit(")"),s!==null)this.b.emit(", { with: "),this.mark(s,"value",()=>this.expr(s[1])),this.b.emit(" }");if(this.b.emit(")"),n!==null&&i.length>0)this.b.emit(`, { ${i.join(", ")} } = ${n}`)}),this.b.emit(`; -`)}exportStatement(e,t){if(this.script)throw this.positionedError(e,"emitter: exports are not available in a script tag — drop the export keyword; script sources share one scope");if(this.repl)throw this.positionedError(e,"emitter: 'export' has no meaning in a REPL entry — every top-level binding already persists to later lines; drop the export keyword");if(t>0||this.postfixGuardDepth>0)throw this.positionedError(e,"emitter: 'export' must be a top-level statement — a module's exports are static, so a guarded or block-nested export has no form; "+"move it to the top level, or guard the exported value instead (`export x = v if c`)");let r=e[0],s=this.stores.idOf(e);if(r==="export-from"&&s!==null&&this.stores.role(s,"typeOnly")!==null){if(!this.ts){this.mark(e,"$self",()=>{}),this.mark(e,"source",()=>{});return}this.b.tsOnly(()=>{this.mark(e,"$self",()=>{this.b.emit("export "),this.mark(e,"typeOnly",()=>this.b.emit("type")),this.b.emit(" { "),this.emitSpecifiers(e[1],hr(e[2])),this.b.emit(" } from ");let i=this.b.offset;this.mark(e,"source",()=>this.b.emit(this.moduleSource(e[2]))),this.importSpans.push({start:i,end:this.b.offset,specifier:Ce(e[2])})}),this.b.emit(";")});return}this.mark(e,"$self",()=>{if(r==="export-all"){if(e.length===3)this.b.emit("export * as "),this.mark(e,"alias",()=>this.b.emit(e[2])),this.namespaceExports.push(e[2]),this.b.emit(" from ");else this.b.emit("export * from ");{let i=this.b.offset;this.mark(e,"source",()=>this.b.emit(this.moduleSource(e[1]))),this.importSpans.push({start:i,end:this.b.offset,specifier:Ce(e[1])})}this.b.emit(";")}else if(r==="export-from"){if(this.b.emit("export "),e[1]==="{}")this.b.emit("{}");else this.b.emit("{ "),this.emitSpecifiers(e[1],hr(e[2])),this.b.emit(" }");this.b.emit(" from ");{let i=this.b.offset;this.mark(e,"source",()=>this.b.emit(this.moduleSource(e[2]))),this.importSpans.push({start:i,end:this.b.offset,specifier:Ce(e[2])})}this.b.emit(";")}else if(r==="export-default"){if(this.b.emit("export default "),y(e[1])&&k1(e[1][0])&&e[1].length===4)this.mark(e,"spec",()=>this.defStatement(e[1],t));else this.mark(e,"spec",()=>this.expr(e[1]));this.b.emit(";")}else{let i=e[1];if(i==="{}")this.b.emit("export {};");else if(y(i)&&i[0]==="class")this.b.emit("export "),this.classStatement(i,t),this.b.emit(";");else if(y(i)&&k1(i[0]))this.b.emit("export "),this.defStatement(i,t),this.b.emit(";");else if(y(i)&&i[0]==="enum")this.b.emit("export "),this.enumCode(i),this.b.emit(";"),this.tsEnumCompanion(i,!0);else if(this.isReactiveDecl(i))this.b.emit("export "),this.reactiveDecl(i,t);else if(this.isReadonlyDecl(i))this.b.emit("export "),this.readonlyDecl(i,t);else if(this.isEffectDecl(i)){if(i[1]===null)throw this.positionedError(e,"emitter: a bare effect ('export ~> …') binds nothing to export — bind a dispose handle (`export h ~> …`) or drop the export (`export __effect(…)` would be invalid JS)");this.b.emit("export "),this.effectStatement(i,t)}else if(y(i)&&(i[0]==="="||i[0]==="void-assign")){if(i[0]==="void-assign")this.registerVoidValue(i[2],i);if(this.b.emit("export "),this.mark(i,"voidMarker",()=>this.mark(i,"annotation",()=>this.mark(i,"$self",()=>{if(this.b.emit("const "),this.mark(i,"target",()=>this.b.emit(i[1])),this.ts&&this.annotationText(i)!==null)this.tsAnnotate(i,"annotation",this.annotationText(i));this.b.emit(" "),this.mark(i,"operator",()=>this.b.emit("=")),this.b.emit(" ");let n=this._schemaName,a=this._componentName,o=this._componentTypeParams;if(this._componentTypeParams=null,y(i[2])&&i[2][0]==="schema")this._schemaName=i[1];if(this.isComponentDecl(i[2])&&typeof i[1]==="string"){this._componentName=i[1];let l=this.annotationText(i,"typeParams");this._componentTypeParams=l===null?null:{text:l,owner:i}}this.mark(i,"value",()=>this.withExpression(()=>this.expr(i[2]))),this._schemaName=n,this._componentName=a,this._componentTypeParams=o}))),this.b.emit(";"),this.ts&&typeof i[1]==="string"&&this.componentInfo.has(i[2]))this.tsComponentCompanion(i[2],i[1],!0,this.annotationText(i,"typeParams"));if(this.ts)this.tsSchemaBehavior(i[2])}else this.b.emit("export { "),this.emitSpecifiers(i),this.b.emit(" };")}})}enumValue(e,t,r,s){if(typeof e==="string"){if(e.startsWith('"'))try{return[e,JSON.parse(e)]}catch{let i=/\\u(?![0-9a-fA-F]{4})|\\[^"\\/bfnrtu]/.exec(e)?.[0]??"\\";throw this.positionedError(s,`emitter: enum '${t}' member '${r}' — its string value uses the `+`'${i}' escape, which enum values do not support (JSON escapes only; '\\uXXXX' spells the same character)`)}if(/^[\d.]/.test(e)){let i=e.replace(/_/g,"").replace(/n$/,"");return[e,String(Number(i))]}return null}if(y(e)&&e[0]==="-"&&e.length===2){let i=this.enumValue(e[1],t,r,s);if(i===null||e[1].startsWith('"'))return null;return[`-${e[1]}`,`-${i[1]}`]}return null}enumStatement(e){this.enumCode(e),this.b.emit(";"),this.tsEnumCompanion(e,!1)}tsEnumCompanion(e,t){if(!this.ts||typeof e[1]!=="string")return;let r=e[1];this.b.tsOnly(()=>{this.b.emit(` -`),this.mark(e,"$self",()=>{let s=this.stores.idOf(e),i=s!==null?this.stores.selfSpan(s):null,n=i!==null?this.stores.primitiveSpans(r,i[0],i[1])[0]??null:null,a=()=>n?this.b.markSpan(s,"identifier",n.sourceStart,n.sourceEnd,()=>this.b.emit(r)):this.b.emit(r);this.b.emit(`${t?"export ":""}type `),a(),this.b.emit(" = (typeof "),a(),this.b.emit(")[keyof typeof "),a(),this.b.emit("];")})})}enumCode(e){let[,t,r]=e,s=b1(r)?r.slice(1):[r],i=[],n=new Set,a=(f,h,u)=>{if(n.has(f))throw this.positionedError(u,`emitter: enum '${t}' key '${f}' is used more than once (${h}) — `+"forward and reverse entries share one object, so every member name and value must be distinct ",e);n.add(f)},o=C3(s),l=(f)=>{let h=this.b.source,u=this.stores.idOf(r),d=u!==null?this.stores.selfSpan(u)?.[0]??null:null;if(h===null||d===null||typeof s[f]!=="string")return null;for(let m=0;m=0)d=w+g.length}}let p=h.indexOf(s[f],d);return p>=0?[p,p+s[f].length]:null};for(let f=0;f' lines — `+"a bare or computed member has no enum form here",g=l(f);if(g)throw this.positionedErrorAt(g[0],g[1],m);throw this.positionedError(h,m,e)}let u=this.enumValue(h[2],t,h[1],h);if(u===null)throw this.positionedError(h,`emitter: enum '${t}' member '${h[1]}' needs a number or string literal value — `+"the reverse mapping uses the value as an object key, so expressions have no enum form ",e);let[d,p]=u;a(h[1],`member '${h[1]}'`,h),a(p,`value of '${h[1]}'`,h),i.push([h,h[1],d,p])}let c=E.ownKeyText;this.mark(e,"$self",()=>{this.b.emit("const "),this.mark(e,"name",()=>this.noteNameSpan(t)),this.b.emit(" = "),this.mark(e,"body",()=>{this.b.emit("{"),i.forEach(([f,h,u],d)=>{if(d>0)this.b.emit(", ");this.mark(f,"$self",()=>{this.mark(f,"target",()=>{let p=c(h,h);if(p===h)this.emitPrimitive(h);else this.b.emit(p)}),this.b.emit(": "),this.mark(f,"value",()=>this.b.emit(u))})}),i.forEach(([f,h,u,d])=>{this.b.emit(", "),this.mark(f,"$self",()=>{this.b.emit(u.startsWith("-")?JSON.stringify(d):c(u,d)),this.b.emit(`: "${h}"`)})}),this.b.emit("}")})})}schemaExpr(e){let t=e[1];if(!t||typeof t!=="object"||!Array.isArray(t.entries))throw this.positionedError(e,"emitter: schema node without a descriptor — the lexer pass owns SCHEMA_BODY values");if(this.scopes.slice(1).some((o)=>o.has("__schema")))throw this.positionedError(e,"emitter: a function-scope binding of '__schema' shadows the schema runtime where this "+"schema declaration needs it — rename the local, or bind '__schema' at MODULE scope to "+"supply your own factory (the suppression hatch)");this.usesSchema=!0;let r=this._schemaName??null,s=new Map;for(let{entry:o,index:l,tokens:c,value:f}of E.schemaBodies(t)){if(f){s.set(l,this.schemaValueCode(c));continue}let h=this.schemaBodyParams(o);s.set(l,this.schemaFnCode(h,c))}let i=this.schemaStories?.get(e)??null,n=this.stores.idOf(e);if(this.ts&&i!==null)this.schemaFns.set(e,s);this.schemaPins=this.ts?new Map:null,this.schemaPinNode=n;let a=(o,l,c)=>{if(l===null||l===void 0)return;let f=`${o}:${c}`;if(!this.schemaPins.has(f))this.schemaPins.set(f,[]);this.schemaPins.get(f).push([l[0],l[1]])};if(this.ts&&r!==null)a("name",this.moduleTypeDeclarationSpans().get(r)??null,r);for(let o of this.ts?t.entries:[]){let l=(c,f,h)=>{if(typeof h!=="number"||typeof f!=="string")return;a(c,[h,h+f.length],f)};if(o.tag==="union-member")l("name",o.name,o.start);else if(o.tag==="directive"&&o.name==="mixin"&&o.argTokens?.[0]?.kind==="IDENTIFIER")l("target",o.argTokens[0].value,o.argTokens[0].start);else if(o.tag==="ensure")l("field",o.field,o.fieldStart);else if((Ui[o.tag]??null)!==null){if(l("name",o.name,o.start),o.tag==="field"&&Array.isArray(o.typeSpan)&&this.b.source!==null){let c=/[A-Za-z_$][\w$]*/.exec(this.b.source.slice(o.typeSpan[0],o.typeSpan[1]));if(c!==null&&c[0]===o.typeName)l("typeName",c[0],o.typeSpan[0]+c.index)}}}for(let o of this.schemaPins?.values()??[])for(let[l,c]of o)this.b.exactSourceSpans.add(`${l}:${c}`);this.mark(e,"$self",()=>{if(this.b.emit("__schema("),this.mark(e,"body",()=>{let o=zn(t,r,s,s.get("adapter")??null,i?.thisTypes??null,this.ts,i?.defaultTypes??null,i?.ensureTypes??null);for(let l of o)if(typeof l==="string")this.emitSchemaText(l);else if(l.body!==void 0)this.emitSchemaText(l.body,!0);else if(l.span!==null&&l.span!==void 0&&n!==null)this.b.tsOnly(()=>this.b.markSpan(n,"literal",l.span[0],l.span[1],()=>this.b.emit(l.ts)));else if(i!==null){let c=this.bindingNameSpan(i.decl.node,"target",i.decl.name);this.b.tsOnly(()=>this.emitNamedCopies(l.ts,i.decl.name,c?.id??null,c?.span??null))}else this.b.tsOnly(()=>this.b.emit(l.ts))}),this.b.emit(")"),i!==null&&i.constType!==null){let o=this.bindingNameSpan(i.decl.node,"target",i.decl.name);this.b.tsOnly(()=>{this.b.emit(" as unknown as "),this.emitNamedCopies(i.constType,i.decl.name,o?.id??null,o?.span??null)})}}),this.schemaPins=null,this.schemaPinNode=null}static schemaFail(e,t){let r=Error(`schema: ${e}`);throw r.start=t,r}static schemaBodies(e){let t=[];if(e.entries.forEach((r,s)=>{if(r.tag==="method"||r.tag==="computed"||r.tag==="derived"||r.tag==="ensure"||r.tag==="hook"||r.tag==="scope"||r.tag==="defaultScope")t.push({entry:r,index:s,tokens:r.bodyTokens});else if(r.tag==="field"&&r.transformTokens)t.push({entry:r,index:s,tokens:r.transformTokens})}),e.adapterTokens)t.push({entry:{tag:"adapter"},index:"adapter",tokens:e.adapterTokens,value:!0});return t}schemaBodyParams(e){if(e.tag==="adapter")return[];if(e.tag==="field")return[{name:"it",type:null}];return Kn(e.paramTokens??[],e.tag==="ensure"?"@ensure":`'${e.name}'`,E.schemaFail,this.b.source)}schemaFnCode(e,t){let r=e.map((d)=>d.name),{stmts:s,stores:i}=this.subParse(t);if(s.length===0)return{code:"(function() {})",thisAt:10,annots:[]};let n=s.length===1?s[0]:["block",...s],a=this.containsAwait(n),o=E.containsYield(n),l=this.subEmitter(i),c;if(s.length===1){let d=s[0],{entries:p,names:m}=l.scopedHoist([d],r);for(let g of l.pushReactiveFrame(s,m,r))m.add(g);if(l.scopes.push(m),p.length)l.hoistLine(p),l.b.emit(" ");if(mt(d)||re(d))l.statement(d,0);else l.implicitReturn(d,0);c=`{ ${l.b.code} }`}else{let{entries:d,names:p}=l.scopedHoist(s,r);for(let m of l.pushReactiveFrame(s,p,r))p.add(m);if(l.scopes.push(p),l.b.emit(`{ +`);this.emitTsTypeDecls(e.slice(1),""),this.mark(e,"body",()=>this.statements(t,0,"program")),this.emitHmrComponentTable(),this.scopes.pop(),this.rframes.pop()})}statements(e,t,r){let n=" ".repeat(t),i=this.liveStmts(e);this.emitTsTypeDecls(e,n),i.forEach((s,a)=>{if(this.b.emit(n),r==="program")this.moduleTopStmt=s;this.statement(s,t);let o=a===i.length-1;if(r==="block"||!o)this.b.emit(` +`);this.flushPendingTypeDecls(n,r!=="block"&&o)})}static STATEMENT_FORMS={__proto__:null,if:(e,t,r)=>(e.ifStatement(t,r),!0),def:(e,t,r)=>t.length===4&&(e.defStatement(t,r),!0),"void-def":(e,t,r)=>t.length===4&&(e.defStatement(t,r),!0),return:(e,t)=>(e.returnStatement(t),!0),while:(e,t,r)=>(t.length===3||t.length===4)&&(e.whileStatement(t,r),!0),loop:(e,t,r)=>(e.loopStatement(t,r),!0),"loop-n":(e,t,r)=>(e.loopStatement(t,r),!0),"for-in":(e,t,r)=>(e.forIn(t,r),!0),"for-of":(e,t,r)=>(e.forOf(t,r),!0),"for-as":(e,t,r)=>(e.forAs(t,r),!0),switch:(e,t,r)=>(e.switchStatement(t,r),!0),try:(e,t,r)=>(e.tryStatement(t,r),!0),throw:(e,t)=>(e.throwStatement(t),!0),comprehension:(e,t,r)=>{if(!re(t))return!1;if(e.ind=r,t===e.lastProgramStmt){if(e.repl)e.b.emit(`const ${e.replSlot()} = `);e.comprehension(t,r),e.b.emit(";")}else{let n=e.funcBodyStmt;if(e.plainLoopComprehension(t,r),!n)e.b.emit(";")}return!0},block:(e,t,r)=>(e.bareBlockStatement(t,r),!0),class:(e,t,r)=>t[1]!=null&&(e.classStatement(t,r),!0),enum:(e,t)=>(e.enumStatement(t),!0),state:(e,t,r)=>e.isReactiveDecl(t)&&(e.reactiveDecl(t,r),!0),computed:(e,t,r)=>e.isReactiveDecl(t)&&(e.reactiveDecl(t,r),!0),effect:(e,t,r)=>e.isEffectDecl(t)&&(e.effectStatement(t,r),!0),readonly:(e,t,r)=>e.isReadonlyDecl(t)&&(e.readonlyDecl(t,r),!0),"void-readonly":(e,t,r)=>e.isReadonlyDecl(t)&&(e.readonlyDecl(t,r),!0),import:(e,t)=>e.isModuleImport(t)&&(e.importStatement(t),!0),export:(e,t,r)=>(e.exportStatement(t,r),!0),"export-default":(e,t,r)=>(e.exportStatement(t,r),!0),"export-all":(e,t,r)=>(e.exportStatement(t,r),!0),"export-from":(e,t,r)=>(e.exportStatement(t,r),!0)};moduleSource(e){return Pe(e)}static specifierLocal(e){return y(e)?e[1]:e}emitSpecifiers(e,t=null){let r=e.filter((s)=>!this.typeOnlyImports.has(E.specifierLocal(s))),n=0,i=0;e.forEach((s)=>{let a=this.typeOnlyImports.has(E.specifierLocal(s)),o=(c,h)=>{if(this.ts&&t!==null)this.importedRefs.push([c,this.b.offset,h,t,"declaration"])},l=()=>{let c=this.declaringName;this.declaringName=!0;try{if(y(s)){this.emitPrimitive(s[0]),this.b.emit(" as ");let h=this.b.offset;this.emitPrimitive(s[1]),o(h,s[0])}else{let h=this.b.offset;this.emitPrimitive(s),o(h,s)}}finally{this.declaringName=c}};if(a){if(!this.ts)return;this.b.tsOnly(()=>{if(n>0||r.length===0&&i>0)this.b.emit(", ");if(l(),n===0&&r.length>0)this.b.emit(", ")}),i++;return}if(n>0)this.b.emit(", ");l(),n++})}emitImportClause(e,t=null){e.forEach((r,n)=>{if(n>0)this.b.emit(", ");let i=t===null?null:n===0?"spec":"extra",s=(a)=>i===null?a():this.mark(t,i,a);if(r==="{}")this.b.emit("{}");else if(typeof r==="string")s(()=>this.b.emit(r));else if(r[0]==="*")s(()=>{this.b.emit("* as ");let a=this.b.offset;if(this.b.emit(r[1]),this.ts&&t!==null)this.importedRefs.push([a,this.b.offset,"*",fr(t[t.length-1]),"declaration"])});else this.b.emit("{ "),s(()=>this.emitSpecifiers(r,t!==null?fr(t[t.length-1]):null)),this.b.emit(" }")}),this.b.emit(" from ")}importStatement(e){if(this.script)throw this.positionedError(e,"emitter: module imports are not available in a script tag — script sources share one scope, and modules arrive with the package graph");let t=e[e.length-1],r=E.importSpecs(e),n=E.importAttributes(e);for(let s of r){if(!Array.isArray(s)||s[0]==="*")continue;if(s.includes("default"))throw this.positionedError(e,"emitter: `import { default }` binds nothing — spell the default import `import name from '…'`, or alias it: `import { default as name } from '…'`")}let i=this.stores.idOf(e);if(i!==null&&this.stores.role(i,"typeOnly")!==null){if(!this.ts){this.mark(e,"$self",()=>{}),this.mark(e,"source",()=>{});return}this.b.tsOnly(()=>{this.mark(e,"$self",()=>{this.b.emit("import "),this.mark(e,"typeOnly",()=>this.b.emit("type")),this.b.emit(" "),this.emitImportClause(r,e);let s=this.b.offset;this.mark(e,"source",()=>this.b.emit(this.moduleSource(t))),this.importSpans.push({start:s,end:this.b.offset,specifier:Pe(t)}),this.emitImportAttributes(n)}),this.b.emit(`; +`)});return}if(this.repl)return this.replImportStatement(e);this.mark(e,"$self",()=>{this.b.emit("import ");let s=r.length>0&&r.every((a)=>a!=="{}"&&(typeof a==="string"||a[0]==="*"?this.typeOnlyImports.has(typeof a==="string"?a:a[1]):a.every((o)=>this.typeOnlyImports.has(E.specifierLocal(o)))));if(r.length>0){if(!s)this.emitImportClause(r,e);else if(this.ts)this.b.tsOnly(()=>this.emitImportClause(r,e))}{let a=this.b.offset;this.mark(e,"source",()=>this.b.emit(this.moduleSource(t))),this.importSpans.push({start:a,end:this.b.offset,specifier:Pe(t)})}this.emitImportAttributes(n)}),this.b.emit(`; +`)}emitImportAttributes(e){if(e===null)return;for(let t of e[1].slice(1))if(!(t[0]===":"&&typeof t[2]==="string"&&(t[2][0]==='"'||t[2][0]==="'")))throw this.positionedError(t,'emitter: an import attribute is a string-literal pair (`with { type: "json" }`) — the module loader reads it before any code runs');this.b.emit(" "),this.mark(e,"$self",()=>{this.mark(e,"keyword",()=>this.b.emit("with")),this.b.emit(" "),this.mark(e,"value",()=>this.expr(e[1]))})}replImportStatement(e){let t=e[e.length-1],r=E.importSpecs(e),n=E.importAttributes(e),i=[],s=null;for(let a of r){if(a==="{}")continue;if(typeof a==="string")i.push(`default: ${a}`);else if(a[0]==="*")s=a[1];else for(let o of a)i.push(y(o)?`${o[0]}: ${o[1]}`:o)}this.mark(e,"$self",()=>{if(s!==null)this.b.emit(`const ${s} = `);else if(i.length>0)this.b.emit(`const { ${i.join(", ")} } = `);this.b.emit(`await import(${this.replResolver()}(`);{let a=this.b.offset;this.mark(e,"source",()=>this.b.emit(this.moduleSource(t))),this.importSpans.push({start:a,end:this.b.offset,specifier:Pe(t)})}if(this.b.emit(")"),n!==null)this.b.emit(", { with: "),this.mark(n,"value",()=>this.expr(n[1])),this.b.emit(" }");if(this.b.emit(")"),s!==null&&i.length>0)this.b.emit(`, { ${i.join(", ")} } = ${s}`)}),this.b.emit(`; +`)}exportStatement(e,t){if(this.script)throw this.positionedError(e,"emitter: exports are not available in a script tag — drop the export keyword; script sources share one scope");if(this.repl)throw this.positionedError(e,"emitter: 'export' has no meaning in a REPL entry — every top-level binding already persists to later lines; drop the export keyword");if(t>0||this.postfixGuardDepth>0)throw this.positionedError(e,"emitter: 'export' must be a top-level statement — a module's exports are static, so a guarded or block-nested export has no form; "+"move it to the top level, or guard the exported value instead (`export x = v if c`)");let r=e[0],n=this.stores.idOf(e);if(r==="export-from"&&n!==null&&this.stores.role(n,"typeOnly")!==null){if(!this.ts){this.mark(e,"$self",()=>{}),this.mark(e,"source",()=>{});return}this.b.tsOnly(()=>{this.mark(e,"$self",()=>{this.b.emit("export "),this.mark(e,"typeOnly",()=>this.b.emit("type")),this.b.emit(" { "),this.emitSpecifiers(e[1],fr(e[2])),this.b.emit(" } from ");let i=this.b.offset;this.mark(e,"source",()=>this.b.emit(this.moduleSource(e[2]))),this.importSpans.push({start:i,end:this.b.offset,specifier:Pe(e[2])})}),this.b.emit(";")});return}this.mark(e,"$self",()=>{if(r==="export-all"){if(e.length===3)this.b.emit("export * as "),this.mark(e,"alias",()=>this.b.emit(e[2])),this.namespaceExports.push(e[2]),this.b.emit(" from ");else this.b.emit("export * from ");{let i=this.b.offset;this.mark(e,"source",()=>this.b.emit(this.moduleSource(e[1]))),this.importSpans.push({start:i,end:this.b.offset,specifier:Pe(e[1])})}this.b.emit(";")}else if(r==="export-from"){if(this.b.emit("export "),e[1]==="{}")this.b.emit("{}");else this.b.emit("{ "),this.emitSpecifiers(e[1],fr(e[2])),this.b.emit(" }");this.b.emit(" from ");{let i=this.b.offset;this.mark(e,"source",()=>this.b.emit(this.moduleSource(e[2]))),this.importSpans.push({start:i,end:this.b.offset,specifier:Pe(e[2])})}this.b.emit(";")}else if(r==="export-default"){if(this.b.emit("export default "),y(e[1])&&k1(e[1][0])&&e[1].length===4)this.mark(e,"spec",()=>this.defStatement(e[1],t));else this.mark(e,"spec",()=>this.expr(e[1]));this.b.emit(";")}else{let i=e[1];if(i==="{}")this.b.emit("export {};");else if(y(i)&&i[0]==="class")this.b.emit("export "),this.classStatement(i,t),this.b.emit(";");else if(y(i)&&k1(i[0]))this.b.emit("export "),this.defStatement(i,t),this.b.emit(";");else if(y(i)&&i[0]==="enum")this.b.emit("export "),this.enumCode(i),this.b.emit(";"),this.tsEnumCompanion(i,!0);else if(this.isReactiveDecl(i))this.b.emit("export "),this.reactiveDecl(i,t);else if(this.isReadonlyDecl(i))this.b.emit("export "),this.readonlyDecl(i,t);else if(this.isEffectDecl(i)){if(i[1]===null)throw this.positionedError(e,"emitter: a bare effect ('export ~> …') binds nothing to export — bind a dispose handle (`export h ~> …`) or drop the export (`export __effect(…)` would be invalid JS)");this.b.emit("export "),this.effectStatement(i,t)}else if(y(i)&&(i[0]==="="||i[0]==="void-assign")){if(i[0]==="void-assign")this.registerVoidValue(i[2],i);if(this.b.emit("export "),this.mark(i,"voidMarker",()=>this.mark(i,"annotation",()=>this.mark(i,"$self",()=>{if(this.b.emit("const "),this.mark(i,"target",()=>this.b.emit(i[1])),this.ts&&this.annotationText(i)!==null)this.tsAnnotate(i,"annotation",this.annotationText(i));this.b.emit(" "),this.mark(i,"operator",()=>this.b.emit("=")),this.b.emit(" ");let s=this._schemaName,a=this._componentName,o=this._componentTypeParams;if(this._componentTypeParams=null,y(i[2])&&i[2][0]==="schema")this._schemaName=i[1];if(this.isComponentDecl(i[2])&&typeof i[1]==="string"){this._componentName=i[1];let l=this.annotationText(i,"typeParams");this._componentTypeParams=l===null?null:{text:l,owner:i}}this.mark(i,"value",()=>this.withExpression(()=>this.expr(i[2]))),this._schemaName=s,this._componentName=a,this._componentTypeParams=o}))),this.b.emit(";"),this.ts&&typeof i[1]==="string"&&this.componentInfo.has(i[2]))this.tsComponentCompanion(i[2],i[1],!0,this.annotationText(i,"typeParams"));if(this.ts)this.tsSchemaBehavior(i[2])}else this.b.emit("export { "),this.emitSpecifiers(i),this.b.emit(" };")}})}enumValue(e,t,r,n){if(typeof e==="string"){if(e.startsWith('"'))try{return[e,JSON.parse(e)]}catch{let i=/\\u(?![0-9a-fA-F]{4})|\\[^"\\/bfnrtu]/.exec(e)?.[0]??"\\";throw this.positionedError(n,`emitter: enum '${t}' member '${r}' — its string value uses the `+`'${i}' escape, which enum values do not support (JSON escapes only; '\\uXXXX' spells the same character)`)}if(/^[\d.]/.test(e)){let i=e.replace(/_/g,"").replace(/n$/,"");return[e,String(Number(i))]}return null}if(y(e)&&e[0]==="-"&&e.length===2){let i=this.enumValue(e[1],t,r,n);if(i===null||e[1].startsWith('"'))return null;return[`-${e[1]}`,`-${i[1]}`]}return null}enumStatement(e){this.enumCode(e),this.b.emit(";"),this.tsEnumCompanion(e,!1)}tsEnumCompanion(e,t){if(!this.ts||typeof e[1]!=="string")return;let r=e[1];this.b.tsOnly(()=>{this.b.emit(` +`),this.mark(e,"$self",()=>{let n=this.stores.idOf(e),i=n!==null?this.stores.selfSpan(n):null,s=i!==null?this.stores.primitiveSpans(r,i[0],i[1])[0]??null:null,a=()=>s?this.b.markSpan(n,"identifier",s.sourceStart,s.sourceEnd,()=>this.b.emit(r)):this.b.emit(r);this.b.emit(`${t?"export ":""}type `),a(),this.b.emit(" = (typeof "),a(),this.b.emit(")[keyof typeof "),a(),this.b.emit("];")})})}enumCode(e){let[,t,r]=e,n=b1(r)?r.slice(1):[r],i=[],s=new Set,a=(h,f,u)=>{if(s.has(h))throw this.positionedError(u,`emitter: enum '${t}' key '${h}' is used more than once (${f}) — `+"forward and reverse entries share one object, so every member name and value must be distinct ",e);s.add(h)},o=L3(n),l=(h)=>{let f=this.b.source,u=this.stores.idOf(r),d=u!==null?this.stores.selfSpan(u)?.[0]??null:null;if(f===null||d===null||typeof n[h]!=="string")return null;for(let m=0;m=0)d=w+g.length}}let p=f.indexOf(n[h],d);return p>=0?[p,p+n[h].length]:null};for(let h=0;h' lines — `+"a bare or computed member has no enum form here",g=l(h);if(g)throw this.positionedErrorAt(g[0],g[1],m);throw this.positionedError(f,m,e)}let u=this.enumValue(f[2],t,f[1],f);if(u===null)throw this.positionedError(f,`emitter: enum '${t}' member '${f[1]}' needs a number or string literal value — `+"the reverse mapping uses the value as an object key, so expressions have no enum form ",e);let[d,p]=u;a(f[1],`member '${f[1]}'`,f),a(p,`value of '${f[1]}'`,f),i.push([f,f[1],d,p])}let c=E.ownKeyText;this.mark(e,"$self",()=>{this.b.emit("const "),this.mark(e,"name",()=>this.noteNameSpan(t)),this.b.emit(" = "),this.mark(e,"body",()=>{this.b.emit("{"),i.forEach(([h,f,u],d)=>{if(d>0)this.b.emit(", ");this.mark(h,"$self",()=>{this.mark(h,"target",()=>{let p=c(f,f);if(p===f)this.emitPrimitive(f);else this.b.emit(p)}),this.b.emit(": "),this.mark(h,"value",()=>this.b.emit(u))})}),i.forEach(([h,f,u,d])=>{this.b.emit(", "),this.mark(h,"$self",()=>{this.b.emit(u.startsWith("-")?JSON.stringify(d):c(u,d)),this.b.emit(`: "${f}"`)})}),this.b.emit("}")})})}schemaExpr(e){let t=e[1];if(!t||typeof t!=="object"||!Array.isArray(t.entries))throw this.positionedError(e,"emitter: schema node without a descriptor — the lexer pass owns SCHEMA_BODY values");if(this.scopes.slice(1).some((o)=>o.has("__schema")))throw this.positionedError(e,"emitter: a function-scope binding of '__schema' shadows the schema runtime where this "+"schema declaration needs it — rename the local, or bind '__schema' at MODULE scope to "+"supply your own factory (the suppression hatch)");this.usesSchema=!0;let r=this._schemaName??null,n=new Map;for(let{entry:o,index:l,tokens:c,value:h}of E.schemaBodies(t)){if(h){n.set(l,this.schemaValueCode(c));continue}let f=this.schemaBodyParams(o);n.set(l,this.schemaFnCode(f,c))}let i=this.schemaStories?.get(e)??null,s=this.stores.idOf(e);if(this.ts&&i!==null)this.schemaFns.set(e,n);this.schemaPins=this.ts?new Map:null,this.schemaPinNode=s;let a=(o,l,c)=>{if(l===null||l===void 0)return;let h=`${o}:${c}`;if(!this.schemaPins.has(h))this.schemaPins.set(h,[]);this.schemaPins.get(h).push([l[0],l[1]])};if(this.ts&&r!==null)a("name",this.moduleTypeDeclarationSpans().get(r)??null,r);for(let o of this.ts?t.entries:[]){let l=(c,h,f)=>{if(typeof f!=="number"||typeof h!=="string")return;a(c,[f,f+h.length],h)};if(o.tag==="union-member")l("name",o.name,o.start);else if(o.tag==="directive"&&o.name==="mixin"&&o.argTokens?.[0]?.kind==="IDENTIFIER")l("target",o.argTokens[0].value,o.argTokens[0].start);else if(o.tag==="ensure")l("field",o.field,o.fieldStart);else if((Ui[o.tag]??null)!==null){if(l("name",o.name,o.start),o.tag==="field"&&Array.isArray(o.typeSpan)&&this.b.source!==null){let c=/[A-Za-z_$][\w$]*/.exec(this.b.source.slice(o.typeSpan[0],o.typeSpan[1]));if(c!==null&&c[0]===o.typeName)l("typeName",c[0],o.typeSpan[0]+c.index)}}}for(let o of this.schemaPins?.values()??[])for(let[l,c]of o)this.b.exactSourceSpans.add(`${l}:${c}`);this.mark(e,"$self",()=>{if(this.b.emit("__schema("),this.mark(e,"body",()=>{let o=zn(t,r,n,n.get("adapter")??null,i?.thisTypes??null,this.ts,i?.defaultTypes??null,i?.ensureTypes??null);for(let l of o)if(typeof l==="string")this.emitSchemaText(l);else if(l.body!==void 0)this.emitSchemaText(l.body,!0);else if(l.span!==null&&l.span!==void 0&&s!==null)this.b.tsOnly(()=>this.b.markSpan(s,"literal",l.span[0],l.span[1],()=>this.b.emit(l.ts)));else if(i!==null){let c=this.bindingNameSpan(i.decl.node,"target",i.decl.name);this.b.tsOnly(()=>this.emitNamedCopies(l.ts,i.decl.name,c?.id??null,c?.span??null))}else this.b.tsOnly(()=>this.b.emit(l.ts))}),this.b.emit(")"),i!==null&&i.constType!==null){let o=this.bindingNameSpan(i.decl.node,"target",i.decl.name);this.b.tsOnly(()=>{this.b.emit(" as unknown as "),this.emitNamedCopies(i.constType,i.decl.name,o?.id??null,o?.span??null)})}}),this.schemaPins=null,this.schemaPinNode=null}static schemaFail(e,t){let r=Error(`schema: ${e}`);throw r.start=t,r}static schemaBodies(e){let t=[];if(e.entries.forEach((r,n)=>{if(r.tag==="method"||r.tag==="computed"||r.tag==="derived"||r.tag==="ensure"||r.tag==="hook"||r.tag==="scope"||r.tag==="defaultScope")t.push({entry:r,index:n,tokens:r.bodyTokens});else if(r.tag==="field"&&r.transformTokens)t.push({entry:r,index:n,tokens:r.transformTokens})}),e.adapterTokens)t.push({entry:{tag:"adapter"},index:"adapter",tokens:e.adapterTokens,value:!0});return t}schemaBodyParams(e){if(e.tag==="adapter")return[];if(e.tag==="field")return[{name:"it",type:null}];return Kn(e.paramTokens??[],e.tag==="ensure"?"@ensure":`'${e.name}'`,E.schemaFail,this.b.source)}schemaFnCode(e,t){let r=e.map((d)=>d.name),{stmts:n,stores:i}=this.subParse(t);if(n.length===0)return{code:"(function() {})",thisAt:10,annots:[]};let s=n.length===1?n[0]:["block",...n],a=this.containsAwait(s),o=E.containsYield(s),l=this.subEmitter(i),c;if(n.length===1){let d=n[0],{entries:p,names:m}=l.scopedHoist([d],r);for(let g of l.pushReactiveFrame(n,m,r))m.add(g);if(l.scopes.push(m),p.length)l.hoistLine(p),l.b.emit(" ");if(mt(d)||re(d))l.statement(d,0);else l.implicitReturn(d,0);c=`{ ${l.b.code} }`}else{let{entries:d,names:p}=l.scopedHoist(n,r);for(let m of l.pushReactiveFrame(n,p,r))p.add(m);if(l.scopes.push(p),l.b.emit(`{ `),d.length)l.b.emit(" "),l.hoistLine(d," "),l.b.emit(` -`);s.forEach((m,g)=>{if(l.b.emit(" "),g===s.length-1)l.implicitReturn(m,1);else l.statement(m,1,!0);l.b.emit(` -`)}),l.b.emit("}"),c=l.b.code}let f=`(${a?"async ":""}function${o?"*":""}(`,h=[],u=f.length;return e.forEach((d,p)=>{if(u+=d.name.length,d.type!==null)h.push([u,`: ${d.type}`]);else if(d.optional)h.push([u,"?"]);if(ps++;tr(r,i,t??"",(l,c)=>{let f=Error(`schema: ${l}`);throw f.start=c,f.end=c,f}),Kt(r,i),Ti(r),Yt(r,i),zt(r,i);let a=nr();a.lexer={tokens:r,index:0,text:"",loc:null,setInput(){this.index=0},lex(){let l=this.tokens[this.index];if(!l)return null;return this.index++,this.text=l.value,this.loc={start:l.start,end:l.end},l.kind}};let o=a.parse("");if(o.diagnostics.length>0){let l=o.diagnostics[0],c=Error(`schema: failed to compile a schema function body: ${l.message}`);throw c.start=l.start,c.end=l.end,c}return{stmts:o.sexpr.slice(1),stores:new ar(o.stores)}}bareBlockStatement(e,t){this.mark(e,"$self",()=>{this.b.emit(`{ -`),this.statements(e.slice(1),t+1,"block"),this.b.emit(" ".repeat(t)+"}")}),this.b.emit(";")}statement(e,t,r=!1){this.withTsDirectives(e," ".repeat(t),()=>this.statementCore(e,t,r))}statementCore(e,t,r){if(this.ind=t,this.funcBodyStmt=r,y(e)){let i=E.STATEMENT_FORMS[e[0]];if(i&&i(this,e,t)){this.replDeclEcho(e);return}if(E.controlGuard(e))return this.returnGuardStatement(e,null);if(e[0]==="="&&e.length===3&&typeof e[1]==="string"&&E.controlGuard(e[2]))return this.returnGuardStatement(e[2],e);if(e[0]==="="&&e.length===3&&E.middleRestPattern(e[1])){this.middleRestAssign(e,t),this.b.emit(";");return}if(e[0]===".="&&e.length===3){this.methodAssignStatement(e,t),this.b.emit(";");return}if(e[0]==="="&&e.length===3&&E.sliceTarget(e[1])!==null){this.sliceAssignStatement(e),this.b.emit(";");return}if(lt(e[0])&&e.length===3&&E.sliceTarget(e[1])!==null)throw this.sliceAssignError(e);if(lt(e[0])&&e.length===3){let n=E.optionalGuard(e[1]);if(n!==null){this.optionalAssign(e,n,"statement"),this.b.emit(";");return}}}if(this.replCapture(e))return;if(E.needsGrouping(e,"statement"))this.mark(e,"$self",()=>{this.b.emit("("),this.expr(e),this.b.emit(")")}),this.b.emit(";");else this.expr(e),this.b.emit(";");if(this.ts&&y(e)&&e[0]==="="&&e.length===3&&typeof e[1]==="string"&&this.componentInfo.has(e[2]))this.tsComponentCompanion(e[2],e[1],!1,this.annotationText(e,"typeParams"));if(this.ts&&y(e)&&e[0]==="="&&e.length===3)this.tsSchemaBehavior(e[2])}tsSchemaBehavior(e){let t=this.schemaStories?.get(e)??null,r=this.schemaFns.get(e);if(t===null||r===void 0)return;let s=qn(e[1],t.decl.name,r,t.thisTypes);if(s===null)return;if(this.scopes[0]?.has(t.behaviorName)||this.moduleBound?.has(t.behaviorName))throw this.positionedError(e,`emitter: the module binds '${t.behaviorName}', the face-only name this schema's `+"callable types read through — rename the binding");let i=this.stores.idOf(e);this.b.tsOnly(()=>this.b.echo(()=>{if(this.b.emit(` -`+" ".repeat(this.ind)),i!==null)this.b.mark(i,"$self",()=>{let n=this.bindingNameSpan(t.decl.node,"target",t.decl.name);this.emitNamedCopies(s,t.decl.name,n?.id??null,n?.span??null)});else this.b.emit(s)}))}replSlot(){if(this.replResultName===null)this.replResultName=E.mintName("__result",this.temps.used);return this.replResultName}replResolver(){if(this.replImportResolver===null)this.replImportResolver=E.mintName("__resolveImport",this.temps.used);return this.replImportResolver}replCapture(e){if(!this.repl||e!==this.lastProgramStmt)return!1;return this.b.emit(`const ${this.replSlot()} = `),this.expr(e),this.b.emit(";"),!0}replDeclEcho(e){if(!this.repl||e!==this.lastProgramStmt||!y(e))return;let t=null,r=!1;if(this.isReactiveDecl(e)&&typeof e[1]==="string")t=e[1],r=!0;else if(this.isReadonlyDecl(e)&&typeof e[1]==="string")t=e[1];else if(this.isEffectDecl(e)&&typeof e[1]==="string")t=e[1];if(t===null)return;this.b.emit(` -const ${this.replSlot()} = ${t}${r?".value":""};`)}whileStatement(e,t){this.inCtrl(()=>this.whileStatementCtrl(e,t))}whileStatementCtrl(e,t){let r=e.length===4?e[2]:null,s=e[e.length-1];this.mark(e,"$self",()=>{if(this.b.emit("while ("),this.mark(e,"condition",()=>this.expr(e[1])),this.b.emit(") "),r!==null){let i=b1(s)?s.slice(1):s;this.b.emit(`{ +`);n.forEach((m,g)=>{if(l.b.emit(" "),g===n.length-1)l.implicitReturn(m,1);else l.statement(m,1,!0);l.b.emit(` +`)}),l.b.emit("}"),c=l.b.code}let h=`(${a?"async ":""}function${o?"*":""}(`,f=[],u=h.length;return e.forEach((d,p)=>{if(u+=d.name.length,d.type!==null)f.push([u,`: ${d.type}`]);else if(d.optional)f.push([u,"?"]);if(pn++;tr(r,i,t??"",(l,c)=>{let h=Error(`schema: ${l}`);throw h.start=c,h.end=c,h}),Kt(r,i),Ti(r),Yt(r,i),zt(r,i);let a=nr();a.lexer={tokens:r,index:0,text:"",loc:null,setInput(){this.index=0},lex(){let l=this.tokens[this.index];if(!l)return null;return this.index++,this.text=l.value,this.loc={start:l.start,end:l.end},l.kind}};let o=a.parse("");if(o.diagnostics.length>0){let l=o.diagnostics[0],c=Error(`schema: failed to compile a schema function body: ${l.message}`);throw c.start=l.start,c.end=l.end,c}return{stmts:o.sexpr.slice(1),stores:new ar(o.stores)}}bareBlockStatement(e,t){this.mark(e,"$self",()=>{this.b.emit(`{ +`),this.statements(e.slice(1),t+1,"block"),this.b.emit(" ".repeat(t)+"}")}),this.b.emit(";")}statement(e,t,r=!1){this.withTsDirectives(e," ".repeat(t),()=>this.statementCore(e,t,r))}statementCore(e,t,r){if(this.ind=t,this.funcBodyStmt=r,y(e)){let i=E.STATEMENT_FORMS[e[0]];if(i&&i(this,e,t)){this.replDeclEcho(e);return}if(E.controlGuard(e))return this.returnGuardStatement(e,null);if(e[0]==="="&&e.length===3&&typeof e[1]==="string"&&E.controlGuard(e[2]))return this.returnGuardStatement(e[2],e);if(e[0]==="="&&e.length===3&&E.middleRestPattern(e[1])){this.middleRestAssign(e,t),this.b.emit(";");return}if(e[0]===".="&&e.length===3){this.methodAssignStatement(e,t),this.b.emit(";");return}if(e[0]==="="&&e.length===3&&E.sliceTarget(e[1])!==null){this.sliceAssignStatement(e),this.b.emit(";");return}if(lt(e[0])&&e.length===3&&E.sliceTarget(e[1])!==null)throw this.sliceAssignError(e);if(lt(e[0])&&e.length===3){let s=E.optionalGuard(e[1]);if(s!==null){this.optionalAssign(e,s,"statement"),this.b.emit(";");return}}}if(this.replCapture(e))return;if(E.needsGrouping(e,"statement"))this.mark(e,"$self",()=>{this.b.emit("("),this.expr(e),this.b.emit(")")}),this.b.emit(";");else this.expr(e),this.b.emit(";");if(this.ts&&y(e)&&e[0]==="="&&e.length===3&&typeof e[1]==="string"&&this.componentInfo.has(e[2]))this.tsComponentCompanion(e[2],e[1],!1,this.annotationText(e,"typeParams"));if(this.ts&&y(e)&&e[0]==="="&&e.length===3)this.tsSchemaBehavior(e[2])}tsSchemaBehavior(e){let t=this.schemaStories?.get(e)??null,r=this.schemaFns.get(e);if(t===null||r===void 0)return;let n=qn(e[1],t.decl.name,r,t.thisTypes);if(n===null)return;if(this.scopes[0]?.has(t.behaviorName)||this.moduleBound?.has(t.behaviorName))throw this.positionedError(e,`emitter: the module binds '${t.behaviorName}', the face-only name this schema's `+"callable types read through — rename the binding");let i=this.stores.idOf(e);this.b.tsOnly(()=>this.b.echo(()=>{if(this.b.emit(` +`+" ".repeat(this.ind)),i!==null)this.b.mark(i,"$self",()=>{let s=this.bindingNameSpan(t.decl.node,"target",t.decl.name);this.emitNamedCopies(n,t.decl.name,s?.id??null,s?.span??null)});else this.b.emit(n)}))}replSlot(){if(this.replResultName===null)this.replResultName=E.mintName("__result",this.temps.used);return this.replResultName}replResolver(){if(this.replImportResolver===null)this.replImportResolver=E.mintName("__resolveImport",this.temps.used);return this.replImportResolver}replCapture(e){if(!this.repl||e!==this.lastProgramStmt)return!1;return this.b.emit(`const ${this.replSlot()} = `),this.expr(e),this.b.emit(";"),!0}replDeclEcho(e){if(!this.repl||e!==this.lastProgramStmt||!y(e))return;let t=null,r=!1;if(this.isReactiveDecl(e)&&typeof e[1]==="string")t=e[1],r=!0;else if(this.isReadonlyDecl(e)&&typeof e[1]==="string")t=e[1];else if(this.isEffectDecl(e)&&typeof e[1]==="string")t=e[1];if(t===null)return;this.b.emit(` +const ${this.replSlot()} = ${t}${r?".value":""};`)}whileStatement(e,t){this.inCtrl(()=>this.whileStatementCtrl(e,t))}whileStatementCtrl(e,t){let r=e.length===4?e[2]:null,n=e[e.length-1];this.mark(e,"$self",()=>{if(this.b.emit("while ("),this.mark(e,"condition",()=>this.expr(e[1])),this.b.emit(") "),r!==null){let i=b1(n)?n.slice(1):n;this.b.emit(`{ `+" ".repeat(t+1)+"if ("),this.expr(r),this.b.emit(`) { `),this.mark(e,"body",()=>this.statements(i,t+2,"block")),this.b.emit(" ".repeat(t+1)+`} -`+" ".repeat(t)+"}");return}if(!b1(s)&&y(s))this.mark(e,"body",()=>{this.b.emit(`{ -`),this.b.emit(" ".repeat(t+1)),this.statement(s[0],t+1),this.b.emit(` -`+" ".repeat(t)+"}")});else this.mark(e,"body",()=>this.braceBlock(s,t))})}ifStatement(e,t){if(!b1(e[2])&&y(e[2])){let r=e[2][0],s=y(r)&&E.LOOP_HEADS.has(r[0]);this.mark(e,"$self",()=>{if(this.b.emit("if ("),this.mark(e,"condition",()=>this.expr(e[1])),this.b.emit(") "),this.postfixGuardDepth++,s)this.b.emit(`{ +`+" ".repeat(t)+"}");return}if(!b1(n)&&y(n))this.mark(e,"body",()=>{this.b.emit(`{ +`),this.b.emit(" ".repeat(t+1)),this.statement(n[0],t+1),this.b.emit(` +`+" ".repeat(t)+"}")});else this.mark(e,"body",()=>this.braceBlock(n,t))})}ifStatement(e,t){if(!b1(e[2])&&y(e[2])){let r=e[2][0],n=y(r)&&E.LOOP_HEADS.has(r[0]);this.mark(e,"$self",()=>{if(this.b.emit("if ("),this.mark(e,"condition",()=>this.expr(e[1])),this.b.emit(") "),this.postfixGuardDepth++,n)this.b.emit(`{ `+" ".repeat(t+1)),this.statement(r,t+1),this.b.emit(` -`+" ".repeat(t)+"}");else this.statement(r,t);this.postfixGuardDepth--});return}this.mark(e,"$self",()=>this.ifChain(e,t))}static LOOP_HEADS=new Set(["for-in","for-of","for-as","while","loop","comprehension"]);loopStatement(e,t){this.withBindings(this.loopBindingNames(e),()=>this.inCtrl(()=>this.loopStatementCtrl(e,t)))}loopStatementCtrl(e,t){this.mark(e,"$self",()=>{let{body:r}=this.loopHeader(e);this.b.emit(" "),this.mark(e,"body",()=>this.braceBlock(r,t))})}throwStatement(e){this.mark(e,"$self",()=>{this.b.emit("throw "),this.mark(e,"value",()=>this.expr(e[1]))}),this.b.emit(";")}tryStatement(e,t){this.mark(e,"$self",()=>{this.b.emit("try ");let r=b1(e[1])?e[1]:["block",e[1]];if(this.mark(e,"body",()=>this.braceBlock(r,t)),e.length===2)this.b.emit(" catch {}");for(let s of e.slice(2)){if(!y(s))continue;if(b1(s))this.b.emit(" finally "),this.braceBlock(s,t);else{let[i,n]=s;if(i===null)this.b.emit(" catch "),this.braceBlock(n,t);else if(E.isPattern(i)){this.checkExportedConstWrite(s,i);let a=this.loopTempName("_err");this.b.emit(` catch (${a}`),this.tsScaffoldAny(),this.b.emit(`) { -`);let o=" ".repeat(t+1);this.b.emit(o+"("),this.mark(s,"binding",()=>this.withPattern(()=>this.expr(i))),this.b.emit(` = ${a}); -`),this.statements(b1(n)?n.slice(1):[n],t+1,"block"),this.b.emit(" ".repeat(t)+"}")}else if(E.isTypedWrapper(i))this.b.emit(" catch ("),this.mark(s,"binding",()=>this.emitParam(i)),this.b.emit(") "),this.withBindings([i[1]],()=>this.braceBlock(n,t));else this.b.emit(" catch ("),this.mark(s,"binding",()=>this.b.emit(i)),this.b.emit(") "),this.withBindings([i],()=>this.braceBlock(n,t))}}})}static isMatchArm(e){if(typeof e==="string")return e.startsWith("/");if(!y(e))return!1;return e[0]==="here-regex"||(e[0]===".."||e[0]==="...")&&e.length===3}static hasMatchArms(e){return e.some((t)=>t[1].some((r)=>E.isMatchArm(r)))}checkMatchSwitch(e){let[,t,r,s]=e;if(t===null)throw this.positionedError(e,"emitter: a regex or range `when` tests the switch subject, and this switch has none — give it one (`switch x`) or spell the test out (`when /re/.test(x)`)");for(let i of[...r.map((n)=>n[2]),s])if(i!==null&&E.findCapturedCtrl(i,P3)!==null)throw this.positionedError(e,"emitter: `break` in an arm of a switch with a regex or range `when` has nothing to leave — the switch is an if-chain and each arm ends on its own; drop the `break`")}static matchArmSexpr(e,t){if(!E.isMatchArm(t))return["==",e,t];if(y(t)&&(t[0]===".."||t[0]==="..."))return["&&",[">=",e,t[1]],[t[0]===".."?"<=":"<",e,t[2]]];return[[".",t,"test"],e]}matchArmTest(e,t){if(typeof e==="string"&&e.startsWith("/"))this.expr(e),this.b.emit(".test("),t(),this.b.emit(")");else if(y(e)&&e[0]==="here-regex")this.b.emit("("),this.expr(e),this.b.emit(").test("),t(),this.b.emit(")");else if(y(e)&&(e[0]===".."||e[0]==="...")&&e.length===3)this.b.emit("("),t(),this.b.emit(" >= "),this.expr(e[1]),this.b.emit(" && "),t(),this.b.emit(e[0]===".."?" <= ":" < "),this.expr(e[2]),this.b.emit(")");else t(),this.b.emit(" === "),this.expr(e)}matchChain(e,t,r){let[,s,i,n]=e,a=" ".repeat(t),l=typeof s==="string"&&/^[A-Za-z_$][\w$]*$/.test(s)&&!this.isReactiveName(s)?null:this.loopTempName("_switch"),c=()=>l!==null?this.b.emit(l):this.mark(e,"subject",()=>this.expr(s));if(l!==null)this.temps.used.add(l),this.b.emit(`const ${l} = `),this.mark(e,"subject",()=>this.expr(s)),this.b.emit(`; -${a}`);if(this.mark(e,"cases",()=>{i.forEach((f,h)=>{this.mark(f,"$self",()=>{let[,u,d]=f;if(h>0)this.b.emit(" else ");this.b.emit("if ("),u.forEach((p,m)=>{if(m>0)this.b.emit(" || ");this.matchArmTest(p,c)}),this.b.emit(") "),r(d)})})}),n!==null)this.b.emit(" else "),r(n)}switchStatement(e,t){let[,r,s,i]=e,n=" ".repeat(t);if(E.hasMatchArms(s)){this.checkMatchSwitch(e),this.mark(e,"$self",()=>this.matchChain(e,t,(a)=>this.braceBlock(a,t)));return}this.mark(e,"$self",()=>{if(r!==null){if(this.b.emit("switch ("),this.mark(e,"subject",()=>this.expr(r)),this.b.emit(`) { -`),this.mark(e,"cases",()=>{for(let a of s)this.mark(a,"$self",()=>{let[,o,l]=a;for(let c of o)this.b.emit(`${n} case `),this.expr(c),this.b.emit(`: -`);this.caseBody(l,t)})}),i!==null)this.b.emit(`${n} default: -`),this.caseBody(i,t);this.b.emit(`${n}}`)}else if(s.forEach((a,o)=>{let[,l,c]=a;if(o>0)this.b.emit(" else ");this.b.emit("if (("),l.forEach((f,h)=>{if(h>0)this.b.emit(") || (");this.expr(f)}),this.b.emit(")) "),this.braceBlock(c,t)}),i!==null)this.b.emit(" else "),this.braceBlock(i,t)})}caseBody(e,t){this.inCtrl(()=>this.caseBodyCtrl(e,t))}caseBodyCtrl(e,t){let r=this.liveStmts(b1(e)?e.slice(1):[e]);this.emitTsTypeDecls(b1(e)?e.slice(1):[e]," ".repeat(t+2));for(let s of r)this.b.emit(" ".repeat(t+2)),this.statement(s,t+2),this.b.emit(` +`+" ".repeat(t)+"}");else this.statement(r,t);this.postfixGuardDepth--});return}this.mark(e,"$self",()=>this.ifChain(e,t))}static LOOP_HEADS=new Set(["for-in","for-of","for-as","while","loop","comprehension"]);loopStatement(e,t){this.withBindings(this.loopBindingNames(e),()=>this.inCtrl(()=>this.loopStatementCtrl(e,t)))}loopStatementCtrl(e,t){this.mark(e,"$self",()=>{let{body:r}=this.loopHeader(e);this.b.emit(" "),this.mark(e,"body",()=>this.braceBlock(r,t))})}throwStatement(e){this.mark(e,"$self",()=>{this.b.emit("throw "),this.mark(e,"value",()=>this.expr(e[1]))}),this.b.emit(";")}tryStatement(e,t){this.mark(e,"$self",()=>{this.b.emit("try ");let r=b1(e[1])?e[1]:["block",e[1]];if(this.mark(e,"body",()=>this.braceBlock(r,t)),e.length===2)this.b.emit(" catch {}");for(let n of e.slice(2)){if(!y(n))continue;if(b1(n))this.b.emit(" finally "),this.braceBlock(n,t);else{let[i,s]=n;if(i===null)this.b.emit(" catch "),this.braceBlock(s,t);else if(E.isPattern(i)){this.checkExportedConstWrite(n,i);let a=this.loopTempName("_err");this.b.emit(` catch (${a}`),this.tsScaffoldAny(),this.b.emit(`) { +`);let o=" ".repeat(t+1);this.b.emit(o+"("),this.mark(n,"binding",()=>this.withPattern(()=>this.expr(i))),this.b.emit(` = ${a}); +`),this.statements(b1(s)?s.slice(1):[s],t+1,"block"),this.b.emit(" ".repeat(t)+"}")}else if(E.isTypedWrapper(i))this.b.emit(" catch ("),this.mark(n,"binding",()=>this.emitParam(i)),this.b.emit(") "),this.withBindings([i[1]],()=>this.braceBlock(s,t));else this.b.emit(" catch ("),this.mark(n,"binding",()=>this.b.emit(i)),this.b.emit(") "),this.withBindings([i],()=>this.braceBlock(s,t))}}})}static isMatchArm(e){if(typeof e==="string")return e.startsWith("/");if(!y(e))return!1;return e[0]==="here-regex"||(e[0]===".."||e[0]==="...")&&e.length===3}static hasMatchArms(e){return e.some((t)=>t[1].some((r)=>E.isMatchArm(r)))}checkMatchSwitch(e){let[,t,r,n]=e;if(t===null)throw this.positionedError(e,"emitter: a regex or range `when` tests the switch subject, and this switch has none — give it one (`switch x`) or spell the test out (`when /re/.test(x)`)");for(let i of[...r.map((s)=>s[2]),n])if(i!==null&&E.findCapturedCtrl(i,P3)!==null)throw this.positionedError(e,"emitter: `break` in an arm of a switch with a regex or range `when` has nothing to leave — the switch is an if-chain and each arm ends on its own; drop the `break`")}static matchArmSexpr(e,t){if(!E.isMatchArm(t))return["==",e,t];if(y(t)&&(t[0]===".."||t[0]==="..."))return["&&",[">=",e,t[1]],[t[0]===".."?"<=":"<",e,t[2]]];return[[".",t,"test"],e]}matchArmTest(e,t){if(typeof e==="string"&&e.startsWith("/"))this.expr(e),this.b.emit(".test("),t(),this.b.emit(")");else if(y(e)&&e[0]==="here-regex")this.b.emit("("),this.expr(e),this.b.emit(").test("),t(),this.b.emit(")");else if(y(e)&&(e[0]===".."||e[0]==="...")&&e.length===3)this.b.emit("("),t(),this.b.emit(" >= "),this.expr(e[1]),this.b.emit(" && "),t(),this.b.emit(e[0]===".."?" <= ":" < "),this.expr(e[2]),this.b.emit(")");else t(),this.b.emit(" === "),this.expr(e)}matchChain(e,t,r){let[,n,i,s]=e,a=" ".repeat(t),l=typeof n==="string"&&/^[A-Za-z_$][\w$]*$/.test(n)&&!this.isReactiveName(n)?null:this.loopTempName("_switch"),c=()=>l!==null?this.b.emit(l):this.mark(e,"subject",()=>this.expr(n));if(l!==null)this.temps.used.add(l),this.b.emit(`const ${l} = `),this.mark(e,"subject",()=>this.expr(n)),this.b.emit(`; +${a}`);if(this.mark(e,"cases",()=>{i.forEach((h,f)=>{this.mark(h,"$self",()=>{let[,u,d]=h;if(f>0)this.b.emit(" else ");this.b.emit("if ("),u.forEach((p,m)=>{if(m>0)this.b.emit(" || ");this.matchArmTest(p,c)}),this.b.emit(") "),r(d)})})}),s!==null)this.b.emit(" else "),r(s)}switchStatement(e,t){let[,r,n,i]=e,s=" ".repeat(t);if(E.hasMatchArms(n)){this.checkMatchSwitch(e),this.mark(e,"$self",()=>this.matchChain(e,t,(a)=>this.braceBlock(a,t)));return}this.mark(e,"$self",()=>{if(r!==null){if(this.b.emit("switch ("),this.mark(e,"subject",()=>this.expr(r)),this.b.emit(`) { +`),this.mark(e,"cases",()=>{for(let a of n)this.mark(a,"$self",()=>{let[,o,l]=a;for(let c of o)this.b.emit(`${s} case `),this.expr(c),this.b.emit(`: +`);this.caseBody(l,t)})}),i!==null)this.b.emit(`${s} default: +`),this.caseBody(i,t);this.b.emit(`${s}}`)}else if(n.forEach((a,o)=>{let[,l,c]=a;if(o>0)this.b.emit(" else ");this.b.emit("if (("),l.forEach((h,f)=>{if(f>0)this.b.emit(") || (");this.expr(h)}),this.b.emit(")) "),this.braceBlock(c,t)}),i!==null)this.b.emit(" else "),this.braceBlock(i,t)})}caseBody(e,t){this.inCtrl(()=>this.caseBodyCtrl(e,t))}caseBodyCtrl(e,t){let r=this.liveStmts(b1(e)?e.slice(1):[e]);this.emitTsTypeDecls(b1(e)?e.slice(1):[e]," ".repeat(t+2));for(let n of r)this.b.emit(" ".repeat(t+2)),this.statement(n,t+2),this.b.emit(` `);this.b.emit(" ".repeat(t+2)+`break; -`)}loopBindingNames(e){let t=y(e)?e[0]:null,r=null;if(t==="loop-n")return["it"];if(t==="for-in"||t==="for-of"||t==="for-as")r=e[1];else if(re(e))r=e[2][0][1];if(r===null)return[];if(r.length===0)throw this.positionedError(e,"emitter: a for loop binds no variable — spell a bare repeat with a binding (`for i in [1...3]`)");let s=[];for(let i of r)this.patternNames(i,s,!0);return s}rangedHeader(e,t,r,s,i){let[n,a,o]=s,l=n===".."?"<=":"<",c=n===".."?">=":">",f=(L)=>typeof L==="string"&&/^[0-9.]/.test(L)?L:null,h=(L)=>f(L)??(y(L)&&(L[0]==="+"||L[0]==="-")&&L.length===2&&f(L[1])!==null?`${L[0]==="-"?"-":""}${f(L[1])}`:null),u=(L)=>{let P=h(L);return P===null?null:Number(P.replace(/_/g,""))},d=i===null?null:u(i);if(d===0)throw this.positionedError(e,"emitter: a BY step of 0 never advances the loop");let p=u(a),m=u(o),g=i===null?p!==null&&m!==null&&p>m:d!==null&&d<0,b=r[0],S=r.length===2?r[1]:null,w=m!==null||this.singleReadIterable(o)?null:this.loopTempName("_ref"),R=i===null||d!==null?null:this.loopTempName("_step");if(this.b.emit("for (let "),t(b),this.b.emit(" = "),this.expr(a),w!==null)this.b.emit(`, ${w} = `),this.expr(o);if(R!==null)this.b.emit(`, ${R} = `),this.mark(e,"step",()=>this.expr(i));if(S!==null)this.b.emit(", "),t(S),this.b.emit(" = 0");let T=()=>{if(w!==null)this.b.emit(w);else this.expr(o)},F=()=>{if(R!==null)this.b.emit(`${b} += ${R}`);else if(i===null)this.b.emit(g?`${b}--`:`${b}++`);else this.b.emit(`${b} ${g?"-=":"+="} `),this.mark(e,"step",()=>this.b.emit(String(Math.abs(d))));if(S!==null)this.b.emit(`, ${S}++`)};if(this.b.emit("; "),R!==null)this.b.emit(`${R} > 0 ? ${b} ${l} `),T(),this.b.emit(` : ${b} ${c} `),T();else this.b.emit(`${b} ${g?c:l} `),T();this.b.emit("; "),F(),this.b.emit(")")}forIn(e,t){this.inCtrl(()=>this.forInCtrl(e,t))}forInCtrl(e,t){let[,r,s,i,n,a]=e;this.withBindings(this.loopBindingNames(e),()=>this.forInCore(e,r,s,i,n,a,t))}forInCore(e,t,r,s,i,n,a){this.mark(e,"$self",()=>{let o=(l)=>this.mark(e,"vars",()=>typeof l==="string"?this.emitPrimitive(l):this.withPattern(()=>this.expr(l),!0));if(y(t[0])&&(We(r)||s!==null))throw this.positionedError(e,"emitter: pattern loop variables with ranges or BY steps are not supported yet");if(We(r))this.rangedHeader(e,o,t,r,s),this.b.emit(" "),this.guardedBlock(n,i,a);else if(s!==null){let l=t.length===2?t[1]:this.loopTempName("_i"),c=()=>{if(t.length===2)o(l);else this.b.emit(l)},f=(g)=>typeof g==="string"&&/^[0-9.]/.test(g)?g:null,h=f(s)??(y(s)&&s[0]==="+"&&s.length===2?f(s[1]):null),u=y(s)&&s[0]==="-"&&s.length===2?f(s[1]):null;if((h??u)!==null&&Number((h??u).replace(/_/g,""))===0)throw this.positionedError(e,"emitter: a BY step of 0 never advances the loop");let d=this.singleReadIterable(r)?null:this.loopTempName("_ref"),p=()=>{if(d)this.b.emit(`${d} = `),this.expr(r),this.b.emit(", ")},m=()=>{if(d)this.b.emit(d);else this.expr(r)};if(u!==null)if(this.b.emit("for (let "),p(),c(),this.b.emit(" = "),m(),this.b.emit(`.length - 1; ${l} >= 0; `),u==="1")this.mark(e,"step",()=>this.b.emit(`${l}--`));else this.b.emit(`${l} += `),this.mark(e,"step",()=>{this.b.emit("(-"),this.expr(s[1]),this.b.emit(")")});else if(h!==null)if(this.b.emit("for (let "),p(),c(),this.b.emit(` = 0; ${l} < `),m(),this.b.emit(".length; "),s==="1")this.mark(e,"step",()=>this.b.emit(`${l}++`));else this.b.emit(`${l} += `),this.grouped(e,"step",s,E.needsGrouping(s,"operand"));else{let g=this.loopTempName("_step");this.b.emit(`for (let ${g} = `),this.mark(e,"step",()=>this.expr(s)),this.b.emit(", "),p(),c(),this.b.emit(` = ${g} > 0 ? 0 : `),m(),this.b.emit(`.length - 1; ${g} > 0 ? ${l} < `),m(),this.b.emit(`.length : ${g} < 0 && ${l} >= 0; ${l} += ${g}`)}this.b.emit(`) { +`)}loopBindingNames(e){let t=y(e)?e[0]:null,r=null;if(t==="loop-n")return["it"];if(t==="for-in"||t==="for-of"||t==="for-as")r=e[1];else if(re(e))r=e[2][0][1];if(r===null)return[];if(r.length===0)throw this.positionedError(e,"emitter: a for loop binds no variable — spell a bare repeat with a binding (`for i in [1...3]`)");let n=[];for(let i of r)this.patternNames(i,n,!0);return n}rangedHeader(e,t,r,n,i){let[s,a,o]=n,l=s===".."?"<=":"<",c=s===".."?">=":">",h=(L)=>typeof L==="string"&&/^[0-9.]/.test(L)?L:null,f=(L)=>h(L)??(y(L)&&(L[0]==="+"||L[0]==="-")&&L.length===2&&h(L[1])!==null?`${L[0]==="-"?"-":""}${h(L[1])}`:null),u=(L)=>{let C=f(L);return C===null?null:Number(C.replace(/_/g,""))},d=i===null?null:u(i);if(d===0)throw this.positionedError(e,"emitter: a BY step of 0 never advances the loop");let p=u(a),m=u(o),g=i===null?p!==null&&m!==null&&p>m:d!==null&&d<0,b=r[0],S=r.length===2?r[1]:null,w=m!==null||this.singleReadIterable(o)?null:this.loopTempName("_ref"),R=i===null||d!==null?null:this.loopTempName("_step");if(this.b.emit("for (let "),t(b),this.b.emit(" = "),this.expr(a),w!==null)this.b.emit(`, ${w} = `),this.expr(o);if(R!==null)this.b.emit(`, ${R} = `),this.mark(e,"step",()=>this.expr(i));if(S!==null)this.b.emit(", "),t(S),this.b.emit(" = 0");let T=()=>{if(w!==null)this.b.emit(w);else this.expr(o)},F=()=>{if(R!==null)this.b.emit(`${b} += ${R}`);else if(i===null)this.b.emit(g?`${b}--`:`${b}++`);else this.b.emit(`${b} ${g?"-=":"+="} `),this.mark(e,"step",()=>this.b.emit(String(Math.abs(d))));if(S!==null)this.b.emit(`, ${S}++`)};if(this.b.emit("; "),R!==null)this.b.emit(`${R} > 0 ? ${b} ${l} `),T(),this.b.emit(` : ${b} ${c} `),T();else this.b.emit(`${b} ${g?c:l} `),T();this.b.emit("; "),F(),this.b.emit(")")}forIn(e,t){this.inCtrl(()=>this.forInCtrl(e,t))}forInCtrl(e,t){let[,r,n,i,s,a]=e;this.withBindings(this.loopBindingNames(e),()=>this.forInCore(e,r,n,i,s,a,t))}forInCore(e,t,r,n,i,s,a){this.mark(e,"$self",()=>{let o=(l)=>this.mark(e,"vars",()=>typeof l==="string"?this.emitPrimitive(l):this.withPattern(()=>this.expr(l),!0));if(y(t[0])&&(We(r)||n!==null))throw this.positionedError(e,"emitter: pattern loop variables with ranges or BY steps are not supported yet");if(We(r))this.rangedHeader(e,o,t,r,n),this.b.emit(" "),this.guardedBlock(s,i,a);else if(n!==null){let l=t.length===2?t[1]:this.loopTempName("_i"),c=()=>{if(t.length===2)o(l);else this.b.emit(l)},h=(g)=>typeof g==="string"&&/^[0-9.]/.test(g)?g:null,f=h(n)??(y(n)&&n[0]==="+"&&n.length===2?h(n[1]):null),u=y(n)&&n[0]==="-"&&n.length===2?h(n[1]):null;if((f??u)!==null&&Number((f??u).replace(/_/g,""))===0)throw this.positionedError(e,"emitter: a BY step of 0 never advances the loop");let d=this.singleReadIterable(r)?null:this.loopTempName("_ref"),p=()=>{if(d)this.b.emit(`${d} = `),this.expr(r),this.b.emit(", ")},m=()=>{if(d)this.b.emit(d);else this.expr(r)};if(u!==null)if(this.b.emit("for (let "),p(),c(),this.b.emit(" = "),m(),this.b.emit(`.length - 1; ${l} >= 0; `),u==="1")this.mark(e,"step",()=>this.b.emit(`${l}--`));else this.b.emit(`${l} += `),this.mark(e,"step",()=>{this.b.emit("(-"),this.expr(n[1]),this.b.emit(")")});else if(f!==null)if(this.b.emit("for (let "),p(),c(),this.b.emit(` = 0; ${l} < `),m(),this.b.emit(".length; "),n==="1")this.mark(e,"step",()=>this.b.emit(`${l}++`));else this.b.emit(`${l} += `),this.grouped(e,"step",n,E.needsGrouping(n,"operand"));else{let g=this.loopTempName("_step");this.b.emit(`for (let ${g} = `),this.mark(e,"step",()=>this.expr(n)),this.b.emit(", "),p(),c(),this.b.emit(` = ${g} > 0 ? 0 : `),m(),this.b.emit(`.length - 1; ${g} > 0 ? ${l} < `),m(),this.b.emit(`.length : ${g} < 0 && ${l} >= 0; ${l} += ${g}`)}this.b.emit(`) { let `),o(t[0]),this.b.emit(" = "),m(),this.b.emit(`[${l}]; -`),this.flatBody(n,i," "),this.b.emit("}")}else if(t.length===2){let l=this.singleReadIterable(r)?null:this.loopTempName("_ref");if(this.b.emit("for (let "),l)this.b.emit(`${l} = `),this.expr(r),this.b.emit(", ");if(o(t[1]),this.b.emit(` = 0; ${t[1]} < `),l)this.b.emit(l);else this.expr(r);if(this.b.emit(`.length; ${t[1]}++) { +`),this.flatBody(s,i," "),this.b.emit("}")}else if(t.length===2){let l=this.singleReadIterable(r)?null:this.loopTempName("_ref");if(this.b.emit("for (let "),l)this.b.emit(`${l} = `),this.expr(r),this.b.emit(", ");if(o(t[1]),this.b.emit(` = 0; ${t[1]} < `),l)this.b.emit(l);else this.expr(r);if(this.b.emit(`.length; ${t[1]}++) { `),this.b.emit(" ".repeat(a+1)+"let "),o(t[0]),this.b.emit(" = "),l)this.b.emit(l);else this.expr(r);if(this.b.emit(`[${t[1]}]; -`),i!==null)this.b.emit(" ".repeat(a+1)+"if ("),this.expr(i),this.b.emit(") "),this.braceBlock(n,a+1),this.b.emit(` -`);else this.bodyLines(n,a);this.b.emit(" ".repeat(a)+"}")}else this.b.emit("for (let "),o(t[0]),this.b.emit(" of "),this.mark(e,"iterable",()=>this.expr(r)),this.b.emit(") "),this.guardedBlock(n,i,a)})}forOf(e,t){this.inCtrl(()=>this.forOfCtrl(e,t))}forOfCtrl(e,t){let[,r,s,i,n,a]=e;this.checkForOfPatternKey(r,i),this.withBindings(this.loopBindingNames(e),()=>this.forOfCore(e,r,s,i,n,a,t))}forOfCore(e,t,r,s,i,n,a){this.mark(e,"$self",()=>{let o=(h)=>this.mark(e,"vars",()=>typeof h==="string"?this.emitPrimitive(h):this.withPattern(()=>this.expr(h),!0)),c=(s||t.length===2)&&!this.singleReadIterable(r)?this.loopTempName("_ref"):null;if(c!==null)this.temps.used.add(c),this.b.emit(`const ${c} = `),this.mark(e,"object",()=>this.expr(r)),this.b.emit(`; -${" ".repeat(a)}`);let f=()=>{if(c)this.b.emit(c);else this.expr(r)};if(this.b.emit("for (let "),o(t[0]),this.b.emit(" in "),c)this.b.emit(c);else this.mark(e,"object",()=>this.expr(r));if(this.b.emit(") "),s||t.length===2){if(this.b.emit(`{ -`),s)this.b.emit("if (!Object.hasOwn("),f(),this.b.emit(`, ${t[0]})) continue; -`);if(t.length===2)this.b.emit("let "),o(t[1]),this.b.emit(" = "),f(),this.b.emit(`[${t[0]}]; -`);this.flatBody(n,i,""),this.b.emit("}")}else this.guardedBlock(n,i,a)})}checkForOfPatternKey(e,t){if(!y(e[0]))return;if(t)throw this.positionedError(e[0],"emitter: a for…of pattern key cannot combine with 'own' — the hasOwn filter reads the key by name (name the key and destructure the value slot)");if(e.length===2)throw this.positionedError(e[0],"emitter: a for…of pattern key cannot combine with a value variable — the value binding indexes the object by the key name (name the key and destructure the value slot)")}forAs(e,t){this.inCtrl(()=>this.forAsCtrl(e,t))}forAsCtrl(e,t){let[,r,s,i,n,a]=e;this.withBindings(this.loopBindingNames(e),()=>{this.mark(e,"$self",()=>{this.clauseHeader(e,"for-as",r,s,i),this.b.emit(" "),this.guardedBlock(a,n,t)})})}guardedBlock(e,t,r){if(t===null){this.braceBlock(e,r);return}this.b.emit(`{ +`),i!==null)this.b.emit(" ".repeat(a+1)+"if ("),this.expr(i),this.b.emit(") "),this.braceBlock(s,a+1),this.b.emit(` +`);else this.bodyLines(s,a);this.b.emit(" ".repeat(a)+"}")}else this.b.emit("for (let "),o(t[0]),this.b.emit(" of "),this.mark(e,"iterable",()=>this.expr(r)),this.b.emit(") "),this.guardedBlock(s,i,a)})}forOf(e,t){this.inCtrl(()=>this.forOfCtrl(e,t))}forOfCtrl(e,t){let[,r,n,i,s,a]=e;this.checkForOfPatternKey(r,i),this.withBindings(this.loopBindingNames(e),()=>this.forOfCore(e,r,n,i,s,a,t))}forOfCore(e,t,r,n,i,s,a){this.mark(e,"$self",()=>{let o=(f)=>this.mark(e,"vars",()=>typeof f==="string"?this.emitPrimitive(f):this.withPattern(()=>this.expr(f),!0)),c=(n||t.length===2)&&!this.singleReadIterable(r)?this.loopTempName("_ref"):null;if(c!==null)this.temps.used.add(c),this.b.emit(`const ${c} = `),this.mark(e,"object",()=>this.expr(r)),this.b.emit(`; +${" ".repeat(a)}`);let h=()=>{if(c)this.b.emit(c);else this.expr(r)};if(this.b.emit("for (let "),o(t[0]),this.b.emit(" in "),c)this.b.emit(c);else this.mark(e,"object",()=>this.expr(r));if(this.b.emit(") "),n||t.length===2){if(this.b.emit(`{ +`),n)this.b.emit("if (!Object.hasOwn("),h(),this.b.emit(`, ${t[0]})) continue; +`);if(t.length===2)this.b.emit("let "),o(t[1]),this.b.emit(" = "),h(),this.b.emit(`[${t[0]}]; +`);this.flatBody(s,i,""),this.b.emit("}")}else this.guardedBlock(s,i,a)})}checkForOfPatternKey(e,t){if(!y(e[0]))return;if(t)throw this.positionedError(e[0],"emitter: a for…of pattern key cannot combine with 'own' — the hasOwn filter reads the key by name (name the key and destructure the value slot)");if(e.length===2)throw this.positionedError(e[0],"emitter: a for…of pattern key cannot combine with a value variable — the value binding indexes the object by the key name (name the key and destructure the value slot)")}forAs(e,t){this.inCtrl(()=>this.forAsCtrl(e,t))}forAsCtrl(e,t){let[,r,n,i,s,a]=e;this.withBindings(this.loopBindingNames(e),()=>{this.mark(e,"$self",()=>{this.clauseHeader(e,"for-as",r,n,i),this.b.emit(" "),this.guardedBlock(a,s,t)})})}guardedBlock(e,t,r){if(t===null){this.braceBlock(e,r);return}this.b.emit(`{ `+" ".repeat(r+1)+"if ("),this.expr(t),this.b.emit(") "),this.braceBlock(e,r+1),this.b.emit(` -`+" ".repeat(r)+"}")}flatBody(e,t,r){let s=this.liveStmts(b1(e)?e.slice(1):[e]);if(this.emitTsTypeDecls(b1(e)?e.slice(1):[e],""),t!==null){let i=E.needsGrouping(t,"operand")||U1(t);if(this.b.emit("if ("),i)this.b.emit("(");if(this.expr(t),i)this.b.emit(")");this.b.emit(`) { -`);for(let n of s)this.b.emit(r),this.statement(n,0),this.b.emit(` +`+" ".repeat(r)+"}")}flatBody(e,t,r){let n=this.liveStmts(b1(e)?e.slice(1):[e]);if(this.emitTsTypeDecls(b1(e)?e.slice(1):[e],""),t!==null){let i=E.needsGrouping(t,"operand")||U1(t);if(this.b.emit("if ("),i)this.b.emit("(");if(this.expr(t),i)this.b.emit(")");this.b.emit(`) { +`);for(let s of n)this.b.emit(r),this.statement(s,0),this.b.emit(` `);this.b.emit(` } -`);return}for(let i of s)this.statement(i,0),this.b.emit(` -`)}bodyLines(e,t){let r=this.liveStmts(b1(e)?e.slice(1):[e]);this.emitTsTypeDecls(b1(e)?e.slice(1):[e]," ".repeat(t+1));for(let s of r)this.b.emit(" ".repeat(t+1)),this.statement(s,t+1),this.b.emit(` -`)}clauseHeader(e,t,r,s,i,n=null){let a=(c)=>this.mark(e,"vars",()=>typeof c==="string"?this.emitPrimitive(c):this.withPattern(()=>this.expr(c),!0)),o=[];if(t==="for-of"){this.checkForOfPatternKey(r,i===!0);let f=(i===!0||r.length===2)&&!this.singleReadIterable(s)?this.loopTempName("_ref"):null;if(f!==null)this.temps.used.add(f),this.b.emit(`const ${f} = `),this.mark(e,"object",()=>this.expr(s)),this.b.emit(`; -${n??""}`);let h=()=>{if(f)this.b.emit(f);else this.expr(s)};if(this.b.emit("for (let "),a(r[0]),this.b.emit(" in "),f)this.b.emit(f);else this.mark(e,"object",()=>this.expr(s));if(this.b.emit(")"),i===!0)o.push(()=>{this.b.emit("if (!Object.hasOwn("),h(),this.b.emit(`, ${r[0]})) continue;`)});if(r.length===2)o.push(()=>{this.b.emit("let "),a(r[1]),this.b.emit(" = "),h(),this.b.emit(`[${r[0]}];`)});return o}if(t==="for-as"){if(r.length!==1)throw this.positionedError(e,"emitter: for-as takes ONE loop variable — the iterator protocol yields single values (destructure with a pattern instead)");if(i===!0)this.renderSyncGuard(e);return this.b.emit(i===!0?"for await (let ":"for (let "),a(r[0]),this.b.emit(" of "),this.mark(e,"iterable",()=>this.expr(s)),this.b.emit(")"),o}let l=i;if(y(r[0])&&(We(s)||l!==null))throw this.positionedError(e,"emitter: pattern loop variables with ranges or BY steps are not supported yet");if(We(s))return this.rangedHeader(e,a,r,s,l),o;if(l!==null){let c=r.length===2?r[1]:this.loopTempName("_i"),f=()=>{if(r.length===2)a(c);else this.b.emit(c)},h=(b)=>typeof b==="string"&&/^[0-9.]/.test(b)?b:null,u=h(l)??(y(l)&&l[0]==="+"&&l.length===2?h(l[1]):null),d=y(l)&&l[0]==="-"&&l.length===2?h(l[1]):null;if((u??d)!==null&&Number((u??d).replace(/_/g,""))===0)throw this.positionedError(e,"emitter: a BY step of 0 never advances the loop");let p=this.singleReadIterable(s)?null:this.loopTempName("_ref"),m=()=>{if(p)this.b.emit(`${p} = `),this.expr(s),this.b.emit(", ")},g=()=>{if(p)this.b.emit(p);else this.expr(s)};if(d!==null)if(this.b.emit("for (let "),m(),f(),this.b.emit(" = "),g(),this.b.emit(`.length - 1; ${c} >= 0; `),d==="1")this.mark(e,"step",()=>this.b.emit(`${c}--`));else this.b.emit(`${c} += `),this.mark(e,"step",()=>{this.b.emit("(-"),this.expr(l[1]),this.b.emit(")")});else if(u!==null)if(this.b.emit("for (let "),m(),f(),this.b.emit(` = 0; ${c} < `),g(),this.b.emit(".length; "),l==="1")this.mark(e,"step",()=>this.b.emit(`${c}++`));else this.b.emit(`${c} += `),this.grouped(e,"step",l,E.needsGrouping(l,"operand"));else{let b=this.loopTempName("_step");this.b.emit(`for (let ${b} = `),this.mark(e,"step",()=>this.expr(l)),this.b.emit(", "),m(),f(),this.b.emit(` = ${b} > 0 ? 0 : `),g(),this.b.emit(`.length - 1; ${b} > 0 ? ${c} < `),g(),this.b.emit(`.length : ${b} < 0 && ${c} >= 0; ${c} += ${b}`)}return this.b.emit(")"),o.push(()=>{this.b.emit("let "),a(r[0]),this.b.emit(" = "),g(),this.b.emit(`[${c}];`)}),o}if(r.length===2){let c=this.singleReadIterable(s)?null:this.loopTempName("_ref");if(this.b.emit("for (let "),c)this.b.emit(`${c} = `),this.expr(s),this.b.emit(", ");if(a(r[1]),this.b.emit(` = 0; ${r[1]} < `),c)this.b.emit(c);else this.expr(s);return this.b.emit(`.length; ${r[1]}++)`),o.push(()=>{if(this.b.emit("let "),a(r[0]),this.b.emit(" = "),c)this.b.emit(c);else this.expr(s);this.b.emit(`[${r[1]}];`)}),o}return this.b.emit("for (let "),a(r[0]),this.b.emit(" of "),this.mark(e,"iterable",()=>this.expr(s)),this.b.emit(")"),o}guardOpen(e){this.b.emit("if (");let t=E.needsGrouping(e,"operand")||U1(e);if(t)this.b.emit("(");if(this.expr(e),t)this.b.emit(")");this.b.emit(`) { -`)}comprehension(e,t,r=null){this.withBindings(this.loopBindingNames(e),()=>this.comprehensionCore(e,t,r))}comprehensionCore(e,t,r){this.inCtrl(()=>this.comprehensionCoreCtrl(e,t,r))}bareReads(e,t=new Set){if(typeof e==="string")return t.add(e),t;if(!y(e)||T1(e)||k1(e[0])||e[0]==="class")return t;let r=e[0];if((r==="."||r==="?.")&&e.length===3)return this.bareReads(e[1],t);if((r===":"||r==="void-pair")&&e.length===3)return this.bareReads(e[2],t);if(typeof r==="string"){if(this.semanticKindOf(e)==="call")t.add(r)}else this.bareReads(r,t);for(let s=1;sf.has(d)&&!h.has(d)&&!this.inScope(d));if(u!==void 0)throw this.positionedError(e,`emitter: this clause reads '${u}', which only the clause written before it binds — chained clauses nest with the `+`LAST one outermost, so '${u}' is unbound here. For one flat list, write one \`for\` per comprehension, outer loop last, and \`.flat()\` the result`)}let a=()=>this.mark(e,"value",()=>this.expr(s)),o=r?.expr??r,l=" ".repeat(t);this.rejectYieldInIIFE(e),this.mark(e,"$self",()=>{this.b.emit(this.containsAwait(e)?`await (async () => { +`);return}for(let i of n)this.statement(i,0),this.b.emit(` +`)}bodyLines(e,t){let r=this.liveStmts(b1(e)?e.slice(1):[e]);this.emitTsTypeDecls(b1(e)?e.slice(1):[e]," ".repeat(t+1));for(let n of r)this.b.emit(" ".repeat(t+1)),this.statement(n,t+1),this.b.emit(` +`)}clauseHeader(e,t,r,n,i,s=null){let a=(c)=>this.mark(e,"vars",()=>typeof c==="string"?this.emitPrimitive(c):this.withPattern(()=>this.expr(c),!0)),o=[];if(t==="for-of"){this.checkForOfPatternKey(r,i===!0);let h=(i===!0||r.length===2)&&!this.singleReadIterable(n)?this.loopTempName("_ref"):null;if(h!==null)this.temps.used.add(h),this.b.emit(`const ${h} = `),this.mark(e,"object",()=>this.expr(n)),this.b.emit(`; +${s??""}`);let f=()=>{if(h)this.b.emit(h);else this.expr(n)};if(this.b.emit("for (let "),a(r[0]),this.b.emit(" in "),h)this.b.emit(h);else this.mark(e,"object",()=>this.expr(n));if(this.b.emit(")"),i===!0)o.push(()=>{this.b.emit("if (!Object.hasOwn("),f(),this.b.emit(`, ${r[0]})) continue;`)});if(r.length===2)o.push(()=>{this.b.emit("let "),a(r[1]),this.b.emit(" = "),f(),this.b.emit(`[${r[0]}];`)});return o}if(t==="for-as"){if(r.length!==1)throw this.positionedError(e,"emitter: for-as takes ONE loop variable — the iterator protocol yields single values (destructure with a pattern instead)");if(i===!0)this.renderSyncGuard(e);return this.b.emit(i===!0?"for await (let ":"for (let "),a(r[0]),this.b.emit(" of "),this.mark(e,"iterable",()=>this.expr(n)),this.b.emit(")"),o}let l=i;if(y(r[0])&&(We(n)||l!==null))throw this.positionedError(e,"emitter: pattern loop variables with ranges or BY steps are not supported yet");if(We(n))return this.rangedHeader(e,a,r,n,l),o;if(l!==null){let c=r.length===2?r[1]:this.loopTempName("_i"),h=()=>{if(r.length===2)a(c);else this.b.emit(c)},f=(b)=>typeof b==="string"&&/^[0-9.]/.test(b)?b:null,u=f(l)??(y(l)&&l[0]==="+"&&l.length===2?f(l[1]):null),d=y(l)&&l[0]==="-"&&l.length===2?f(l[1]):null;if((u??d)!==null&&Number((u??d).replace(/_/g,""))===0)throw this.positionedError(e,"emitter: a BY step of 0 never advances the loop");let p=this.singleReadIterable(n)?null:this.loopTempName("_ref"),m=()=>{if(p)this.b.emit(`${p} = `),this.expr(n),this.b.emit(", ")},g=()=>{if(p)this.b.emit(p);else this.expr(n)};if(d!==null)if(this.b.emit("for (let "),m(),h(),this.b.emit(" = "),g(),this.b.emit(`.length - 1; ${c} >= 0; `),d==="1")this.mark(e,"step",()=>this.b.emit(`${c}--`));else this.b.emit(`${c} += `),this.mark(e,"step",()=>{this.b.emit("(-"),this.expr(l[1]),this.b.emit(")")});else if(u!==null)if(this.b.emit("for (let "),m(),h(),this.b.emit(` = 0; ${c} < `),g(),this.b.emit(".length; "),l==="1")this.mark(e,"step",()=>this.b.emit(`${c}++`));else this.b.emit(`${c} += `),this.grouped(e,"step",l,E.needsGrouping(l,"operand"));else{let b=this.loopTempName("_step");this.b.emit(`for (let ${b} = `),this.mark(e,"step",()=>this.expr(l)),this.b.emit(", "),m(),h(),this.b.emit(` = ${b} > 0 ? 0 : `),g(),this.b.emit(`.length - 1; ${b} > 0 ? ${c} < `),g(),this.b.emit(`.length : ${b} < 0 && ${c} >= 0; ${c} += ${b}`)}return this.b.emit(")"),o.push(()=>{this.b.emit("let "),a(r[0]),this.b.emit(" = "),g(),this.b.emit(`[${c}];`)}),o}if(r.length===2){let c=this.singleReadIterable(n)?null:this.loopTempName("_ref");if(this.b.emit("for (let "),c)this.b.emit(`${c} = `),this.expr(n),this.b.emit(", ");if(a(r[1]),this.b.emit(` = 0; ${r[1]} < `),c)this.b.emit(c);else this.expr(n);return this.b.emit(`.length; ${r[1]}++)`),o.push(()=>{if(this.b.emit("let "),a(r[0]),this.b.emit(" = "),c)this.b.emit(c);else this.expr(n);this.b.emit(`[${r[1]}];`)}),o}return this.b.emit("for (let "),a(r[0]),this.b.emit(" of "),this.mark(e,"iterable",()=>this.expr(n)),this.b.emit(")"),o}guardOpen(e){this.b.emit("if (");let t=E.needsGrouping(e,"operand")||U1(e);if(t)this.b.emit("(");if(this.expr(e),t)this.b.emit(")");this.b.emit(`) { +`)}comprehension(e,t,r=null){this.withBindings(this.loopBindingNames(e),()=>this.comprehensionCore(e,t,r))}comprehensionCore(e,t,r){this.inCtrl(()=>this.comprehensionCoreCtrl(e,t,r))}bareReads(e,t=new Set){if(typeof e==="string")return t.add(e),t;if(!y(e)||T1(e)||k1(e[0])||e[0]==="class")return t;let r=e[0];if((r==="."||r==="?.")&&e.length===3)return this.bareReads(e[1],t);if((r===":"||r==="void-pair")&&e.length===3)return this.bareReads(e[2],t);if(typeof r==="string"){if(this.semanticKindOf(e)==="call")t.add(r)}else this.bareReads(r,t);for(let n=1;nh.has(d)&&!f.has(d)&&!this.inScope(d));if(u!==void 0)throw this.positionedError(e,`emitter: this clause reads '${u}', which only the clause written before it binds — chained clauses nest with the `+`LAST one outermost, so '${u}' is unbound here. For one flat list, write one \`for\` per comprehension, outer loop last, and \`.flat()\` the result`)}let a=()=>this.mark(e,"value",()=>this.expr(n)),o=r?.expr??r,l=" ".repeat(t);this.rejectYieldInIIFE(e),this.mark(e,"$self",()=>{this.b.emit(this.containsAwait(e)?`await (async () => { `:`(() => { `);let c=this.loopTempName("result");this.b.emit(`${l} const ${c} = ${o===null?"[]":"{}"}; -`),this.b.emit(`${l} `);let[f,h,u,d]=i,p=[],m=this.stores.idOf(e),g=m!==null?this.stores.role(m,"value"):null;if(g!==null&&g.sourceStart!=null)p.push([g.sourceStart,g.sourceEnd]);for(let T of n){let F=y(T)?this.stores.idOf(T):null,L=F!==null?this.stores.selfSpan(F):null;if(L!==null)p.push(L)}let b=p.length>0?()=>{this.primitiveAvoid=null}:()=>{},S=p.length>0?()=>{this.primitiveAvoid=p}:()=>{};S();let w=this.clauseHeader(e,f,h,u,d??null,`${l} `);b(),this.b.emit(` { +`),this.b.emit(`${l} `);let[h,f,u,d]=i,p=[],m=this.stores.idOf(e),g=m!==null?this.stores.role(m,"value"):null;if(g!==null&&g.sourceStart!=null)p.push([g.sourceStart,g.sourceEnd]);for(let T of s){let F=y(T)?this.stores.idOf(T):null,L=F!==null?this.stores.selfSpan(F):null;if(L!==null)p.push(L)}let b=p.length>0?()=>{this.primitiveAvoid=null}:()=>{},S=p.length>0?()=>{this.primitiveAvoid=p}:()=>{};S();let w=this.clauseHeader(e,h,f,u,d??null,`${l} `);b(),this.b.emit(` { `);let R=`${l} `;for(let T of w)this.b.emit(R),S(),T(),b(),this.b.emit(` -`);if(n.length>0)this.b.emit(R),this.guardOpen(n[0]),R+=" ";if(o===null){this.b.emit(`${R}${c}.push(`);let T=E.needsGrouping(s,"operand")||U1(s);if(T)this.b.emit("(");if(a(),T)this.b.emit(")");this.b.emit(`); -`)}else{let T=this.loopTempName("_k"),F=this.loopTempName("_v");this.b.emit(`${R}const ${T} = ${this.runtimeName("__toPropertyKey")}(`);let L=y(o)&&(E.needsGrouping(o,"operand")||U1(o)),P=()=>{if(L)this.b.emit("(");if(this.expr(o),L)this.b.emit(")")};if(r?.pair!==void 0)if(r.keyNode!==null)this.mark(r.pair,"key",()=>this.mark(r.keyNode,"$self",()=>this.mark(r.keyNode,"key",P)));else this.mark(r.pair,"key",P);else P();this.b.emit(`), ${F} = `);let N=E.needsGrouping(s,"operand")||U1(s);if(N)this.b.emit("(");if(a(),N)this.b.emit(")");this.b.emit(`; +`);if(s.length>0)this.b.emit(R),this.guardOpen(s[0]),R+=" ";if(o===null){this.b.emit(`${R}${c}.push(`);let T=E.needsGrouping(n,"operand")||U1(n);if(T)this.b.emit("(");if(a(),T)this.b.emit(")");this.b.emit(`); +`)}else{let T=this.loopTempName("_k"),F=this.loopTempName("_v");this.b.emit(`${R}const ${T} = ${this.runtimeName("__toPropertyKey")}(`);let L=y(o)&&(E.needsGrouping(o,"operand")||U1(o)),C=()=>{if(L)this.b.emit("(");if(this.expr(o),L)this.b.emit(")")};if(r?.pair!==void 0)if(r.keyNode!==null)this.mark(r.pair,"key",()=>this.mark(r.keyNode,"$self",()=>this.mark(r.keyNode,"key",C)));else this.mark(r.pair,"key",C);else C();this.b.emit(`), ${F} = `);let N=E.needsGrouping(n,"operand")||U1(n);if(N)this.b.emit("(");if(a(),N)this.b.emit(")");this.b.emit(`; `),this.b.emit(`${R}${this.runtimeName("__defineOwnDataProperty")}(${c}, ${T}, ${F}); -`)}if(n.length>0)this.b.emit(`${l} } +`)}if(s.length>0)this.b.emit(`${l} } `);this.b.emit(`${l} } `),this.b.emit(`${l} return ${c}; -`),this.b.emit(`${l}})()`)})}static objectComprehension(e){if(e.length!==2)return null;let t=e[1];if(!y(t)||t[0]!==":")return null;if(!(typeof t[1]==="string"||y(t[1])&&t[1][0]==="dynamicKey"))return null;if(!re(t[2]))return null;if(t[2][2][0][0]!=="for-of")return null;return t}static ifArms(e){let t=[],r=e,s=null;while(!0){if(t.push(r),r.length<4)break;if(y(r[3])&&r[3][0]==="if"){r=r[3];continue}s=r[3];break}return{arms:t,elseBlock:s}}static branchStmts(e){return E.stripErased(b1(e)?e.slice(1):[e[0]])}branchLive(e,t=!1){let r=b1(e)?e.slice(1):[e[0]];if(this.ts&&t){for(let s of r)if(y(s)&&s[0]==="type-decl")this.pendingTypeDecls.push(s)}return this.liveStmts(r)}static statementOnly(e){if(typeof e==="string"&&(e==="break"||e==="continue"||e==="debugger"))return!0;return y(e)&&(e[0]==="return"||e[0]==="throw"||k1(e[0]))}static containsReturn(e){if(!y(e))return!1;let t=e[0];if(t==="return")return!0;if(t==="->"||t==="=>"||k1(t)||t==="class")return!1;return e.some((r)=>E.containsReturn(r))}static containsCtrl(e){if(typeof e==="string")return e==="break"||e==="continue";if(!y(e))return!1;let t=e[0];if(t==="break"||t==="continue"||t==="return"||t==="throw")return!0;if(t==="->"||t==="=>"||k1(t)||t==="class")return!1;return e.some((r)=>E.containsCtrl(r))}static ifIsSimple(e){let{arms:t,elseBlock:r}=E.ifArms(e),s=(i)=>{let n=E.branchStmts(i);return n.length===1&&!E.statementOnly(n[0])};return t.every((i)=>s(i[2]))&&(r===null||s(r))}valueIf(e){if(!E.ifIsSimple(e)){let t=this.ind;this.rejectYieldInIIFE(e);let r=this.containsAwait(e);this.b.emit(r?"await (async () => { ":"(() => { "),this.mark(e,"$self",()=>this.returnifyIf(e,t)),this.b.emit(" })()");return}this.mark(e,"$self",()=>this.ifTernary(e))}ifTernary(e){if(this.grouped(e,"condition",e[1],E.needsGrouping(e[1],"operand")||y(e[1])&&(e[1][0]==="await"||e[1][0]==="yield")),this.b.emit(" ? "),this.ternaryArm(e,"then",this.branchLive(e[2],!0)[0]),this.b.emit(" : "),e.length<4)this.b.emit("undefined");else if(y(e[3])&&e[3][0]==="if")this.mark(e,"else",()=>{this.b.emit("("),this.ifTernary(e[3]),this.b.emit(")")});else this.ternaryArm(e,"else",this.branchLive(e[3],!0)[0])}ternaryArm(e,t,r){this.mark(e,t,()=>{let s=E.needsGrouping(r,"operand")||U1(r);if(s)this.b.emit("(");if(this.expr(r),s)this.b.emit(")")})}returnBlock(e,t){let r=this.branchLive(e);this.b.emit(`{ -`),this.emitTsTypeDecls(b1(e)?e.slice(1):[e[0]]," ".repeat(t+1)),r.forEach((s,i)=>{if(this.b.emit(" ".repeat(t+1)),i===r.length-1)this.implicitReturn(s,t+1);else this.statement(s,t+1);this.b.emit(` -`)}),this.b.emit(" ".repeat(t)+"}")}returnifyIf(e,t){if(this.b.emit("if ("),this.grouped(e,"condition",e[1],E.needsGrouping(e[1],"operand")),this.b.emit(") "),this.mark(e,"then",()=>this.returnBlock(e[2],t)),e.length>=4)if(this.b.emit(" else "),y(e[3])&&e[3][0]==="if")this.returnifyIf(e[3],t);else this.mark(e,"else",()=>this.returnBlock(e[3],t))}rejectYieldInIIFE(e){if(E.containsYield(e))throw this.positionedError(e,"emitter: yield inside an expression-lowered construct cannot cross the IIFE boundary; restructure as statements");this.rejectCapturedCtrl(e)}static findCapturedCtrl(e,t=x3){let r=null,s=(i,n,a)=>{if(r!==null||!y(i))return;let o=i[0];if(T1(i)||k1(o)||o==="class")return;if(o==="return"){if(t.has("return"))r={kind:"return",node:i};return}let l=mt(i)||re(i)?n+1:n,c=o==="switch"?a+1:a,f=o==="block"||o==="program"||o==="try";for(let h=1;h { ":"(() => { "),this.tryBranches(e,t),this.b.emit(" })()")}tryBranches(e,t){this.mark(e,"$self",()=>{this.b.emit("try ");let r=b1(e[1])?e[1]:["block",e[1]];if(this.mark(e,"body",()=>this.returnBlock(r,t)),e.length===2)this.b.emit(" catch {}");for(let s of e.slice(2)){if(!y(s))continue;if(b1(s))this.b.emit(" finally "),this.braceBlock(s,t);else{let[i,n]=s;if(i===null)this.b.emit(" catch "),this.returnBlock(n,t);else if(E.isPattern(i)){this.checkExportedConstWrite(s,i);let a=this.loopTempName("_err");this.b.emit(` catch (${a}`),this.tsScaffoldAny(),this.b.emit(`) { -`),this.b.emit(" ".repeat(t+1)+"("),this.mark(s,"binding",()=>this.withPattern(()=>this.expr(i))),this.b.emit(` = ${a}); -`);let o=this.branchLive(n);this.emitTsTypeDecls(b1(n)?n.slice(1):[n[0]]," ".repeat(t+1)),o.forEach((l,c)=>{if(this.b.emit(" ".repeat(t+1)),c===o.length-1)this.implicitReturn(l,t+1);else this.statement(l,t+1);this.b.emit(` -`)}),this.b.emit(" ".repeat(t)+"}")}else if(E.isTypedWrapper(i))this.b.emit(" catch ("),this.mark(s,"binding",()=>this.emitParam(i)),this.b.emit(") "),this.withBindings([i[1]],()=>this.returnBlock(n,t));else this.b.emit(" catch ("),this.mark(s,"binding",()=>this.b.emit(i)),this.b.emit(") "),this.withBindings([i],()=>this.returnBlock(n,t))}}})}valueSwitch(e){let[,t,r,s]=e,i=this.ind,n=" ".repeat(i);this.rejectYieldInIIFE(e),this.b.emit(this.containsAwait(e)?"await (async () => { ":"(() => { "),this.mark(e,"$self",()=>{if(E.hasMatchArms(r))this.checkMatchSwitch(e),this.matchChain(e,i,(a)=>this.returnBlock(a,i));else if(t!==null){this.b.emit("switch ("),this.mark(e,"subject",()=>this.expr(t)),this.b.emit(`) { -`);for(let a of r){let[,o,l]=a;for(let c of o)this.b.emit(`${n} case `),this.expr(c),this.b.emit(`: -`);this.returnCaseBody(l,i)}if(s!==null)this.b.emit(`${n} default: -`),this.returnCaseBody(s,i);this.b.emit(`${n}}`)}else if(r.forEach((a,o)=>{let[,l,c]=a;if(o>0)this.b.emit(" else ");this.b.emit("if (("),(Array.isArray(l)?l:[l]).forEach((h,u)=>{if(u>0)this.b.emit(") || (");this.expr(h)}),this.b.emit(")) "),this.returnBlock(c,i)}),s!==null)this.b.emit(" else "),this.returnBlock(s,i)}),this.b.emit(" })()")}returnCaseBody(e,t){this.inCtrl(()=>this.returnCaseBodyCtrl(e,t))}returnCaseBodyCtrl(e,t){let r=this.branchLive(e);this.emitTsTypeDecls(b1(e)?e.slice(1):[e[0]]," ".repeat(t+2)),r.forEach((s,i)=>{if(this.b.emit(" ".repeat(t+2)),i===r.length-1)this.implicitReturn(s,t+2);else this.statement(s,t+2);this.b.emit(` -`)})}loopHeader(e){let t=e[0];if(t==="while")return this.b.emit("while ("),this.mark(e,"condition",()=>this.expr(e[1])),this.b.emit(")"),{body:e[e.length-1],guard:e.length===4?e[2]:null,setups:[]};if(t==="loop")return this.b.emit("while (true)"),{body:e[1],guard:null,setups:[]};if(t==="loop-n"){let l=e[1],f=this.repeatSafeValue(l)?null:this.loopTempName("_n");if(this.b.emit("for (let it = 0"),f!==null)this.b.emit(`, ${f} = `),this.mark(e,"count",()=>this.expr(l));if(this.b.emit("; it < "),f!==null)this.b.emit(f);else this.mark(e,"count",()=>this.expr(l));return this.b.emit("; it++)"),{body:e[2],guard:null,setups:[]}}let[,r,s,i,n,a]=e,o=this.clauseHeader(e,t,r,s,i);return{body:a,guard:n,setups:o}}accumulatorIIFE(e){this.withBindings(this.loopBindingNames(e),()=>this.accumulatorIIFECore(e))}accumulatorIIFECore(e){this.inCtrl(()=>this.accumulatorIIFECoreCtrl(e))}accumulatorIIFECoreCtrl(e){let t=this.ind,r=" ".repeat(t+1);this.rejectYieldInIIFE(e),this.b.emit(this.containsAwait(e)?`await (async () => { +`),this.b.emit(`${l}})()`)})}static objectComprehension(e){if(e.length!==2)return null;let t=e[1];if(!y(t)||t[0]!==":")return null;if(!(typeof t[1]==="string"||y(t[1])&&t[1][0]==="dynamicKey"))return null;if(!re(t[2]))return null;if(t[2][2][0][0]!=="for-of")return null;return t}static ifArms(e){let t=[],r=e,n=null;while(!0){if(t.push(r),r.length<4)break;if(y(r[3])&&r[3][0]==="if"){r=r[3];continue}n=r[3];break}return{arms:t,elseBlock:n}}static branchStmts(e){return E.stripErased(b1(e)?e.slice(1):[e[0]])}branchLive(e,t=!1){let r=b1(e)?e.slice(1):[e[0]];if(this.ts&&t){for(let n of r)if(y(n)&&n[0]==="type-decl")this.pendingTypeDecls.push(n)}return this.liveStmts(r)}static statementOnly(e){if(typeof e==="string"&&(e==="break"||e==="continue"||e==="debugger"))return!0;return y(e)&&(e[0]==="return"||e[0]==="throw"||k1(e[0]))}static containsReturn(e){if(!y(e))return!1;let t=e[0];if(t==="return")return!0;if(t==="->"||t==="=>"||k1(t)||t==="class")return!1;return e.some((r)=>E.containsReturn(r))}static containsCtrl(e){if(typeof e==="string")return e==="break"||e==="continue";if(!y(e))return!1;let t=e[0];if(t==="break"||t==="continue"||t==="return"||t==="throw")return!0;if(t==="->"||t==="=>"||k1(t)||t==="class")return!1;return e.some((r)=>E.containsCtrl(r))}static ifIsSimple(e){let{arms:t,elseBlock:r}=E.ifArms(e),n=(i)=>{let s=E.branchStmts(i);return s.length===1&&!E.statementOnly(s[0])};return t.every((i)=>n(i[2]))&&(r===null||n(r))}valueIf(e){if(!E.ifIsSimple(e)){let t=this.ind;this.rejectYieldInIIFE(e);let r=this.containsAwait(e);this.b.emit(r?"await (async () => { ":"(() => { "),this.mark(e,"$self",()=>this.returnifyIf(e,t)),this.b.emit(" })()");return}this.mark(e,"$self",()=>this.ifTernary(e))}ifTernary(e){if(this.grouped(e,"condition",e[1],E.needsGrouping(e[1],"operand")||y(e[1])&&(e[1][0]==="await"||e[1][0]==="yield")),this.b.emit(" ? "),this.ternaryArm(e,"then",this.branchLive(e[2],!0)[0]),this.b.emit(" : "),e.length<4)this.b.emit("undefined");else if(y(e[3])&&e[3][0]==="if")this.mark(e,"else",()=>{this.b.emit("("),this.ifTernary(e[3]),this.b.emit(")")});else this.ternaryArm(e,"else",this.branchLive(e[3],!0)[0])}ternaryArm(e,t,r){this.mark(e,t,()=>{let n=E.needsGrouping(r,"operand")||U1(r);if(n)this.b.emit("(");if(this.expr(r),n)this.b.emit(")")})}returnBlock(e,t){let r=this.branchLive(e);this.b.emit(`{ +`),this.emitTsTypeDecls(b1(e)?e.slice(1):[e[0]]," ".repeat(t+1)),r.forEach((n,i)=>{if(this.b.emit(" ".repeat(t+1)),i===r.length-1)this.implicitReturn(n,t+1);else this.statement(n,t+1);this.b.emit(` +`)}),this.b.emit(" ".repeat(t)+"}")}returnifyIf(e,t){if(this.b.emit("if ("),this.grouped(e,"condition",e[1],E.needsGrouping(e[1],"operand")),this.b.emit(") "),this.mark(e,"then",()=>this.returnBlock(e[2],t)),e.length>=4)if(this.b.emit(" else "),y(e[3])&&e[3][0]==="if")this.returnifyIf(e[3],t);else this.mark(e,"else",()=>this.returnBlock(e[3],t))}rejectYieldInIIFE(e){if(E.containsYield(e))throw this.positionedError(e,"emitter: yield inside an expression-lowered construct cannot cross the IIFE boundary; restructure as statements");this.rejectCapturedCtrl(e)}static findCapturedCtrl(e,t=C3){let r=null,n=(i,s,a)=>{if(r!==null||!y(i))return;let o=i[0];if(T1(i)||k1(o)||o==="class")return;if(o==="return"){if(t.has("return"))r={kind:"return",node:i};return}let l=mt(i)||re(i)?s+1:s,c=o==="switch"?a+1:a,h=o==="block"||o==="program"||o==="try";for(let f=1;f { ":"(() => { "),this.tryBranches(e,t),this.b.emit(" })()")}tryBranches(e,t){this.mark(e,"$self",()=>{this.b.emit("try ");let r=b1(e[1])?e[1]:["block",e[1]];if(this.mark(e,"body",()=>this.returnBlock(r,t)),e.length===2)this.b.emit(" catch {}");for(let n of e.slice(2)){if(!y(n))continue;if(b1(n))this.b.emit(" finally "),this.braceBlock(n,t);else{let[i,s]=n;if(i===null)this.b.emit(" catch "),this.returnBlock(s,t);else if(E.isPattern(i)){this.checkExportedConstWrite(n,i);let a=this.loopTempName("_err");this.b.emit(` catch (${a}`),this.tsScaffoldAny(),this.b.emit(`) { +`),this.b.emit(" ".repeat(t+1)+"("),this.mark(n,"binding",()=>this.withPattern(()=>this.expr(i))),this.b.emit(` = ${a}); +`);let o=this.branchLive(s);this.emitTsTypeDecls(b1(s)?s.slice(1):[s[0]]," ".repeat(t+1)),o.forEach((l,c)=>{if(this.b.emit(" ".repeat(t+1)),c===o.length-1)this.implicitReturn(l,t+1);else this.statement(l,t+1);this.b.emit(` +`)}),this.b.emit(" ".repeat(t)+"}")}else if(E.isTypedWrapper(i))this.b.emit(" catch ("),this.mark(n,"binding",()=>this.emitParam(i)),this.b.emit(") "),this.withBindings([i[1]],()=>this.returnBlock(s,t));else this.b.emit(" catch ("),this.mark(n,"binding",()=>this.b.emit(i)),this.b.emit(") "),this.withBindings([i],()=>this.returnBlock(s,t))}}})}valueSwitch(e){let[,t,r,n]=e,i=this.ind,s=" ".repeat(i);this.rejectYieldInIIFE(e),this.b.emit(this.containsAwait(e)?"await (async () => { ":"(() => { "),this.mark(e,"$self",()=>{if(E.hasMatchArms(r))this.checkMatchSwitch(e),this.matchChain(e,i,(a)=>this.returnBlock(a,i));else if(t!==null){this.b.emit("switch ("),this.mark(e,"subject",()=>this.expr(t)),this.b.emit(`) { +`);for(let a of r){let[,o,l]=a;for(let c of o)this.b.emit(`${s} case `),this.expr(c),this.b.emit(`: +`);this.returnCaseBody(l,i)}if(n!==null)this.b.emit(`${s} default: +`),this.returnCaseBody(n,i);this.b.emit(`${s}}`)}else if(r.forEach((a,o)=>{let[,l,c]=a;if(o>0)this.b.emit(" else ");this.b.emit("if (("),(Array.isArray(l)?l:[l]).forEach((f,u)=>{if(u>0)this.b.emit(") || (");this.expr(f)}),this.b.emit(")) "),this.returnBlock(c,i)}),n!==null)this.b.emit(" else "),this.returnBlock(n,i)}),this.b.emit(" })()")}returnCaseBody(e,t){this.inCtrl(()=>this.returnCaseBodyCtrl(e,t))}returnCaseBodyCtrl(e,t){let r=this.branchLive(e);this.emitTsTypeDecls(b1(e)?e.slice(1):[e[0]]," ".repeat(t+2)),r.forEach((n,i)=>{if(this.b.emit(" ".repeat(t+2)),i===r.length-1)this.implicitReturn(n,t+2);else this.statement(n,t+2);this.b.emit(` +`)})}loopHeader(e){let t=e[0];if(t==="while")return this.b.emit("while ("),this.mark(e,"condition",()=>this.expr(e[1])),this.b.emit(")"),{body:e[e.length-1],guard:e.length===4?e[2]:null,setups:[]};if(t==="loop")return this.b.emit("while (true)"),{body:e[1],guard:null,setups:[]};if(t==="loop-n"){let l=e[1],h=this.repeatSafeValue(l)?null:this.loopTempName("_n");if(this.b.emit("for (let it = 0"),h!==null)this.b.emit(`, ${h} = `),this.mark(e,"count",()=>this.expr(l));if(this.b.emit("; it < "),h!==null)this.b.emit(h);else this.mark(e,"count",()=>this.expr(l));return this.b.emit("; it++)"),{body:e[2],guard:null,setups:[]}}let[,r,n,i,s,a]=e,o=this.clauseHeader(e,t,r,n,i);return{body:a,guard:s,setups:o}}accumulatorIIFE(e){this.withBindings(this.loopBindingNames(e),()=>this.accumulatorIIFECore(e))}accumulatorIIFECore(e){this.inCtrl(()=>this.accumulatorIIFECoreCtrl(e))}accumulatorIIFECoreCtrl(e){let t=this.ind,r=" ".repeat(t+1);this.rejectYieldInIIFE(e),this.b.emit(this.containsAwait(e)?`await (async () => { `:`(() => { -`);let s=this.loopTempName("result");this.b.emit(`${r}const ${s} = []; -`),this.b.emit(r),this.mark(e,"$self",()=>{let{body:i,guard:n,setups:a}=this.loopHeader(e);this.b.emit(` { +`);let n=this.loopTempName("result");this.b.emit(`${r}const ${n} = []; +`),this.b.emit(r),this.mark(e,"$self",()=>{let{body:i,guard:s,setups:a}=this.loopHeader(e);this.b.emit(` { `);let o=" ".repeat(t+2);for(let l of a)this.b.emit(o),l(),this.b.emit(` -`);if(n!==null&&e[0]==="while")this.b.emit(o),this.b.emit("if (!("),this.expr(n),this.b.emit(`)) continue; -`),this.accumulateBody(i,t+1,s);else if(n!==null)this.b.emit(o),this.guardOpen(n),this.accumulateBody(i,t+2,s),this.b.emit(`${o}} -`);else this.accumulateBody(i,t+1,s);this.b.emit(`${r}}`)}),this.b.emit(` -`),this.b.emit(`${r}return ${s}; -`),this.b.emit(" ".repeat(t)+"})()")}accumulateBody(e,t,r){let s=this.branchLive(e),i=" ".repeat(t+1);this.emitTsTypeDecls(b1(e)?e.slice(1):[e[0]],i),s.forEach((n,a)=>{if(this.b.emit(i),a===s.length-1&&mt(n)&&!E.containsReturn(n)){this.b.emit(`${r}.push(`),this.expr(n),this.b.emit(");"),this.b.emit(` -`);return}if(a===s.length-1&&!E.statementOnly(n)&&!mt(n)&&!E.containsCtrl(n)){this.b.emit(`${r}.push(`);let l=E.needsGrouping(n,"operand")||U1(n);if(l)this.b.emit("(");if(this.expr(n),l)this.b.emit(")");this.b.emit(");")}else if(this.statement(n,t+1),mt(n))this.b.emit(";");this.b.emit(` -`)})}plainLoopComprehension(e,t){this.withBindings(this.loopBindingNames(e),()=>this.plainLoopComprehensionCore(e,t))}plainLoopComprehensionCore(e,t){this.inCtrl(()=>this.plainLoopComprehensionCoreCtrl(e,t))}plainLoopComprehensionCoreCtrl(e,t){let[,r,[s],i]=e,n=" ".repeat(t);this.mark(e,"$self",()=>{let[a,o,l,c]=s,f=this.clauseHeader(e,a,o,l,c??null,n);this.b.emit(` { -`);let h=`${n} `;for(let u of f)this.b.emit(h),u(),this.b.emit(` -`);if(i.length>0)this.b.emit(h),this.guardOpen(i[0]),h+=" ";if(this.b.emit(h),this.statement(r,t+(i.length>0?2:1)),this.b.emit(` -`),i.length>0)this.b.emit(`${n} } -`);this.b.emit(`${n}}`)})}returnifyLoop(e,t){this.withBindings(this.loopBindingNames(e),()=>this.returnifyLoopCore(e,t))}returnifyLoopCore(e,t){this.inCtrl(()=>this.returnifyLoopCoreCtrl(e,t))}returnifyLoopCoreCtrl(e,t){let r=" ".repeat(t),s=this.loopTempName("_result");this.b.emit(`const ${s} = []; -`),this.b.emit(r),this.mark(e,"$self",()=>{let{body:i,guard:n,setups:a}=this.loopHeader(e);this.b.emit(` { +`);if(s!==null&&e[0]==="while")this.b.emit(o),this.b.emit("if (!("),this.expr(s),this.b.emit(`)) continue; +`),this.accumulateBody(i,t+1,n);else if(s!==null)this.b.emit(o),this.guardOpen(s),this.accumulateBody(i,t+2,n),this.b.emit(`${o}} +`);else this.accumulateBody(i,t+1,n);this.b.emit(`${r}}`)}),this.b.emit(` +`),this.b.emit(`${r}return ${n}; +`),this.b.emit(" ".repeat(t)+"})()")}accumulateBody(e,t,r){let n=this.branchLive(e),i=" ".repeat(t+1);this.emitTsTypeDecls(b1(e)?e.slice(1):[e[0]],i),n.forEach((s,a)=>{if(this.b.emit(i),a===n.length-1&&mt(s)&&!E.containsReturn(s)){this.b.emit(`${r}.push(`),this.expr(s),this.b.emit(");"),this.b.emit(` +`);return}if(a===n.length-1&&!E.statementOnly(s)&&!mt(s)&&!E.containsCtrl(s)){this.b.emit(`${r}.push(`);let l=E.needsGrouping(s,"operand")||U1(s);if(l)this.b.emit("(");if(this.expr(s),l)this.b.emit(")");this.b.emit(");")}else if(this.statement(s,t+1),mt(s))this.b.emit(";");this.b.emit(` +`)})}plainLoopComprehension(e,t){this.withBindings(this.loopBindingNames(e),()=>this.plainLoopComprehensionCore(e,t))}plainLoopComprehensionCore(e,t){this.inCtrl(()=>this.plainLoopComprehensionCoreCtrl(e,t))}plainLoopComprehensionCoreCtrl(e,t){let[,r,[n],i]=e,s=" ".repeat(t);this.mark(e,"$self",()=>{let[a,o,l,c]=n,h=this.clauseHeader(e,a,o,l,c??null,s);this.b.emit(` { +`);let f=`${s} `;for(let u of h)this.b.emit(f),u(),this.b.emit(` +`);if(i.length>0)this.b.emit(f),this.guardOpen(i[0]),f+=" ";if(this.b.emit(f),this.statement(r,t+(i.length>0?2:1)),this.b.emit(` +`),i.length>0)this.b.emit(`${s} } +`);this.b.emit(`${s}}`)})}returnifyLoop(e,t){this.withBindings(this.loopBindingNames(e),()=>this.returnifyLoopCore(e,t))}returnifyLoopCore(e,t){this.inCtrl(()=>this.returnifyLoopCoreCtrl(e,t))}returnifyLoopCoreCtrl(e,t){let r=" ".repeat(t),n=this.loopTempName("_result");this.b.emit(`const ${n} = []; +`),this.b.emit(r),this.mark(e,"$self",()=>{let{body:i,guard:s,setups:a}=this.loopHeader(e);this.b.emit(` { `);let o=" ".repeat(t+1);for(let l of a)this.b.emit(o),l(),this.b.emit(` -`);if(n!==null)this.b.emit(o),this.guardOpen(n),this.accumulateBody(i,t+1,s),this.b.emit(`${o}} -`);else this.accumulateBody(i,t,s);this.b.emit(`${r}}`)}),this.b.emit(` -`),this.b.emit(`${r}return ${s};`)}ifChain(e,t){if(this.b.emit("if ("),this.mark(e,"condition",()=>this.expr(e[1])),this.b.emit(") "),this.mark(e,"then",()=>this.braceBlock(e[2],t)),e.length===4)this.b.emit(" "),this.mark(e,"else",()=>{this.b.emit("else ");let r=e[3];if(ua(r))this.mark(r,"$self",()=>this.ifChain(r,t));else this.braceBlock(r,t)})}defStatement(e,t){let r=e[0]==="void-def";if(typeof e[1]!=="string")throw this.positionedError(e,"emitter: `def @name` declares a static class method — spell it inside a class body");let s=this.containsAwait(e[3]),i=E.containsYield(e[3]);this.tsOverloadSigs(e,t),this.mark(e,"voidMarker",()=>this.mark(e,"returnType",()=>this.mark(e,"$self",()=>{if(s)this.b.emit("async ");if(this.b.emit(i?"function* ":"function "),this.mark(e,"name",()=>this.b.emit(e[1])),this.ts){let l=this.annotationText(e,"typeParams");if(l!==null)this.b.tsOnly(()=>this.mark(e,"typeParams",()=>this.emitTypeText(e,"typeParams",l)))}this.mark(e,"params",()=>{this.b.emit("("),this.mark(e[2],"$self",()=>this.emitParams(e[2])),this.b.emit(")")}),this.tsReturnAnnotation(e,s,r,i),this.b.emit(" ");let n=this.liveStmts(b1(e[3])?e[3].slice(1):[e[3]],{forwards:!0}),{entries:a,names:o}=this.scopedHoist(b1(e[3])?e[3].slice(1):[e[3]],e[2]);for(let l of this.pushReactiveFrame(n,o,e[2],e))o.add(l);this.scopes.push(o),this.funcBlock(e,e[3],n,t,a,r),this.scopes.pop(),this.rframes.pop()})))}returnStatement(e){if(this.scopes.length<=1)throw this.positionedError(e,"emitter: 'return' outside a function");if(e.length===2&&this.sideEffectOnly)throw this.positionedError(e,`emitter: cannot return a value from a void function (${this.voidReason??"the trailing '!' on its definition suppresses returns"})`);this.mark(e,"$self",()=>{if(this.b.emit("return"),e.length===2)this.b.emit(" "),this.grouped(e,"value",e[1],E.needsGrouping(e[1],"return"))}),this.b.emit(";")}braceBlock(e,t,r=[]){let s=y(e)&&e[0]==="block"?e.slice(1):[e];this.mark(e,"$self",()=>{if(this.b.emit(`{ +`);if(s!==null)this.b.emit(o),this.guardOpen(s),this.accumulateBody(i,t+1,n),this.b.emit(`${o}} +`);else this.accumulateBody(i,t,n);this.b.emit(`${r}}`)}),this.b.emit(` +`),this.b.emit(`${r}return ${n};`)}ifChain(e,t){if(this.b.emit("if ("),this.mark(e,"condition",()=>this.expr(e[1])),this.b.emit(") "),this.mark(e,"then",()=>this.braceBlock(e[2],t)),e.length===4)this.b.emit(" "),this.mark(e,"else",()=>{this.b.emit("else ");let r=e[3];if(ua(r))this.mark(r,"$self",()=>this.ifChain(r,t));else this.braceBlock(r,t)})}defStatement(e,t){let r=e[0]==="void-def";if(typeof e[1]!=="string")throw this.positionedError(e,"emitter: `def @name` declares a static class method — spell it inside a class body");let n=this.containsAwait(e[3]),i=E.containsYield(e[3]);this.tsOverloadSigs(e,t),this.mark(e,"voidMarker",()=>this.mark(e,"returnType",()=>this.mark(e,"$self",()=>{if(n)this.b.emit("async ");if(this.b.emit(i?"function* ":"function "),this.mark(e,"name",()=>this.b.emit(e[1])),this.ts){let l=this.annotationText(e,"typeParams");if(l!==null)this.b.tsOnly(()=>this.mark(e,"typeParams",()=>this.emitTypeText(e,"typeParams",l)))}this.mark(e,"params",()=>{this.b.emit("("),this.mark(e[2],"$self",()=>this.emitParams(e[2])),this.b.emit(")")}),this.tsReturnAnnotation(e,n,r,i),this.b.emit(" ");let s=this.liveStmts(b1(e[3])?e[3].slice(1):[e[3]],{forwards:!0}),{entries:a,names:o}=this.scopedHoist(b1(e[3])?e[3].slice(1):[e[3]],e[2]);for(let l of this.pushReactiveFrame(s,o,e[2],e))o.add(l);this.scopes.push(o),this.funcBlock(e,e[3],s,t,a,r),this.scopes.pop(),this.rframes.pop()})))}returnStatement(e){if(this.scopes.length<=1)throw this.positionedError(e,"emitter: 'return' outside a function");if(e.length===2&&this.sideEffectOnly)throw this.positionedError(e,`emitter: cannot return a value from a void function (${this.voidReason??"the trailing '!' on its definition suppresses returns"})`);this.mark(e,"$self",()=>{if(this.b.emit("return"),e.length===2)this.b.emit(" "),this.grouped(e,"value",e[1],E.needsGrouping(e[1],"return"))}),this.b.emit(";")}braceBlock(e,t,r=[]){let n=y(e)&&e[0]==="block"?e.slice(1):[e];this.mark(e,"$self",()=>{if(this.b.emit(`{ `),r.length)this.b.emit(" ".repeat(t+1)),this.hoistLine(r," ".repeat(t+1)),this.b.emit(` -`);this.mark(e,"statements",()=>this.statements(s,t+1,"block")),this.b.emit(" ".repeat(t)+"}")})}containsAwait(e){return Bi(e,this.stores)}static isStringLiteral(e){if(Array.isArray(e))return String(e[0])==="str";let t=String(e)[0];return t==='"'||t==="'"||t==="`"}static containsBareIt(e){if(e==="it")return!0;if(!y(e))return!1;let t=e[0];if(t==="->"||t==="=>"||k1(t))return!1;if((t==="."||t==="?.")&&e.length===3)return E.containsBareIt(e[1])||typeof e[2]!=="string"&&E.containsBareIt(e[2]);if(t==="object")return e.slice(1).some((r)=>y(r)&&r[0]===":"&&r.length===3?E.containsBareIt(r[2])||typeof r[1]!=="string"&&E.containsBareIt(r[1]):E.containsBareIt(r));return e.some((r)=>E.containsBareIt(r))}static containsYield(e){return dr(e)}static jsTier(e){if(!y(e))return"primary";if((e[0]==="cast"||e[0]==="satisfies")&&e.length===3)return E.jsTier(e[1]);if(D3(e))return"assign";if(Li(e)||ua(e)&&e.length<=4&&E.ifIsSimple(e))return"ternary";if(e[0]==="?"&&e.length===2)return"binary";if(E.isStrRepeat(e))return"primary";if(ht(e)||ha(e))return"binary";if(fa(e))return"unary";if((e[0]==="await"||e[0]==="dammit!")&&e.length===2)return"unary";if(e[0]==="dammit?")return"unary";if(y(e[0])&&e[0][0]==="dammit!")return"unary";if((e[0]==="yield"||e[0]==="yield-from")&&e.length<=2)return"yield";if(T1(e))return"function";if(O1(e))return"object";return"primary"}static needsGrouping(e,t){let r=E.jsTier(e);if(t==="operand"||t==="return"){if(r==="unary")return!(e[0]==="!"||e[0]==="typeof"||e[0]==="await"||e[0]==="dammit!"||e[0]==="dammit?"||y(e[0])&&e[0][0]==="dammit!");if(r==="yield")return t==="operand";return r==="binary"||r==="ternary"||r==="assign"||r==="function"}if(t==="head")return r!=="primary"||U1(e);if(E.leadsWithObject(e))return!0;return r==="object"||U1(e)||r==="function"&&e[0]==="->"||y(e)&&(e[0]==="class"||e[0]==="component")||Li(e)&&!E.ternaryHoists(e)||r==="unary"&&e[0]==="delete"}operand(e,t,r){this.grouped(e,t,r,E.needsGrouping(r,"operand"))}head(e,t,r){this.grouped(e,t,r,E.needsGrouping(r,"head"))}static isIntegerLiteral(e){return typeof e==="string"&&e.charCodeAt(0)>=48&&e.charCodeAt(0)<=57&&/^[0-9][0-9_]*$/.test(e)}grouped(e,t,r,s){if(s)this.b.emit("(");if(this.mark(e,t,()=>this.expr(r)),s)this.b.emit(")")}static escapeTemplate(e){return e.replace(/\\[^]|`|\$\{/g,(t)=>t==="`"||t==="${"?`\\${t}`:t)}static MAX_EXPR_DEPTH=1024;expr(e){if(++this.exprDepth>E.MAX_EXPR_DEPTH){let t=this.positionedError(e,`emitter: expression nesting exceeds ${E.MAX_EXPR_DEPTH} levels — restructure the expression (the compile-time nesting bound)`);if(typeof t.start!=="number"&&this.b.currentMark)t.start=this.b.currentMark.sourceStart,t.end=this.b.currentMark.sourceEnd;throw t}try{this.exprCore(e)}finally{this.exprDepth--}}exprCore(e){if(!y(e)){if(typeof e==="string"){let r=this.bareRewrite(e);if(r==="reactive")return this.reactiveRead(e);if(r==="member")this.notePlainRenderRead(e);if(r!==null)this.checkBareRest(e,e);if(r!==null)return this.memberRead(e,r==="member-reactive");if(e==="this"&&this.renderSelf!==null)return this.b.emit(this.renderSelf)}if((e==="break"||e==="continue")&&this.ctrlDepth===0){let r=this.positionedError(e,`emitter: '${e}' outside a loop${e==="break"?" or switch":""}`);if(typeof r.start!=="number"&&this.b.currentMark)r.start=this.b.currentMark.sourceStart,r.end=this.b.currentMark.sourceEnd;throw r}if(typeof e==="string")this.emitPrimitive(e);else this.b.emit(e);return}let t=e[0];if(t==="str"&&this.lockedHead(e,"str"))return this.strTemplate(e);if(t==="tagged-template"&&e.length===3)return this.taggedTemplate(e);if(t==="here-regex")return this.heregex(e);if(y(t))return this.call(e);if(lt(t)&&e.length===3&&!this.inPattern&&E.sliceTarget(e[1])!==null)throw this.sliceAssignError(e);if(lt(t)&&e.length===3&&!this.inPattern){let r=E.optionalGuard(e[1]);if(r!==null)return this.optionalAssign(e,r,"value")}if(F1.has(t)&&e.length===3)return this.assign(e);if((t==="."||t==="?.")&&e.length===3)return this.member(e);if((t===".{}"||t==="?.{}")&&e.length>=3)return this.pick(e);if(t==="[]"&&e.length===3)return this.index(e);if(t==="optindex"&&e.length===3&&this.lockedHead(e,"optindex"))return this.optIndex(e);if(t==="optcall"&&this.lockedHead(e,"optcall"))return this.optCall(e);if(T1(e))return this.func(e);if(U1(e))return this.update(e);if(Li(e))return this.ternary(e);if(t==="array"&&this.lockedHead(e,"array"))return this.array(e);if(t==="object"&&this.lockedHead(e,"object"))return this.object(e);if(We(e))return this.range(e);if((t==="in"||t==="of"||t==="!in"||t==="!of"||t==="!instanceof")&&e.length===3)return this.relation(e);if(t==="instanceof"&&e.length===3){this.mark(e,"$self",()=>{this.operand(e,"left",e[1]),this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("instanceof")),this.b.emit(" "),this.operand(e,"right",e[2])});return}if(t==="//"&&e.length===3)return this.floorDiv(e);if(t==="%%"&&e.length===3)return this.modulo(e);if(t==="//="&&e.length===3)return this.floorDivAssign(e);if(t==="=~"&&e.length===3)return this.matchOp(e);if(t==="map"&&this.lockedHead(e,"map"))return this.mapLiteral(e);if(t==="regex-index"&&e.length===4){if(!(typeof e[2]==="string"&&e[2][0]==="/"))throw this.positionedError(e,"emitter: a two-part index is the regex-capture form (`text[/re/, n]`) — its key must be a regex literal");return this.regexIndex(e,e[1],e[2],e[3])}if(t==="symbol"&&e.length===2&&this.lockedHead(e,"symbol"))return this.mark(e,"$self",()=>{let r=JSON.stringify(e[1]);if(r===`"${e[1]}"`)this.b.emit('Symbol.for("'),this.emitPrimitive(e[1]),this.b.emit('")');else this.b.emit(`Symbol.for(${r})`)});if(t===".="&&e.length===3)throw this.positionedError(e,`emitter: ${t} is a statement — its target is spelled twice (write + read), which has no single-expression form`);if(t==="%%="&&e.length===3)return this.moduloAssign(e);if(re(e))return this.comprehension(e,this.ind);if(t==="do-iife"&&e.length===2)return this.doIife(e);if((t==="cast"||t==="satisfies")&&e.length===3)return this.postfixType(e);if(t==="?"&&e.length===2)return this.existence(e);if(t==="await"&&e.length===2)return this.awaitExpr(e);if(t==="dammit!"&&e.length===2)return this.dammit(e);if(t==="dammit?")return this.maybeDammit(e);if((t==="yield"||t==="yield-from")&&e.length<=2)return this.yieldExpr(e);if(t==="class")return this.classExpr(e);if(this.isReactiveDecl(e)){let r=t==="state"?":=":"~=";throw this.positionedError(e,`emitter: a reactive declaration ('${typeof e[1]==="string"?e[1]:"…"} ${r} …') is a statement — it lowers to a const declaration, which has no expression form`)}if(this.isGateDecl(e))throw this.positionedError(e,"emitter: a render gate ('<~') can only be used as a direct component body line");if(this.isReadonlyDecl(e))throw this.positionedError(e,`emitter: a readonly declaration ('${typeof e[1]==="string"?e[1]:"…"} =! …') is a statement — it lowers to a const declaration, which has no expression form`);if(this.isEffectDecl(e)){if(e[1]!==null)throw this.positionedError(e,`emitter: a bound effect ('${typeof e[1]==="string"?e[1]:"…"} ~> …') is a statement — it lowers to a const declaration, which has no expression form ; a BARE '~> …' is the expression form`);this.mark(e,"$self",()=>this.effectValue(e,e[2],this.ind,!0));return}if(t==="schema"&&e.length===2)return this.schemaExpr(e);if(this.isComponentDecl(e))return this.componentExpr(e);if(this.isRenderNode(e))throw this.positionedError(e,"emitter: render blocks can only be used inside a component (as a direct body line)");if(this.isOfferNode(e))throw this.positionedError(e,"emitter: offer can only be used as a direct component body line");if(this.isAcceptNode(e))throw this.positionedError(e,"emitter: accept can only be used as a direct component body line");if(t==="super")return this.superCall(e);if(t==="new"&&e.length===2)return this.newExpr(e);if(t==="..."&&e.length===2)return this.spread(e);if(ht(e))return this.binary(e);if(fa(e))return this.unary(e);if(t==="block"){this.mark(e,"$self",()=>{this.b.emit("("),e.slice(1).forEach((r,s)=>{if(s>0)this.b.emit(", ");this.expr(r)}),this.b.emit(")")});return}if(t==="if"&&e.length>=3&&e.length<=4)return this.valueIf(e);if(t==="try")return this.valueTry(e);if(t==="switch"&&e.length===4)return this.valueSwitch(e);if(t==="while"&&(e.length===3||e.length===4))return this.accumulatorIIFE(e);if(t==="loop"&&e.length===2)return this.accumulatorIIFE(e);if(t==="loop-n"&&e.length===3)return this.accumulatorIIFE(e);if((t==="for-in"||t==="for-of"||t==="for-as")&&e.length===6)return this.accumulatorIIFE(e);if(t==="throw"&&e.length===2){this.rejectYieldInIIFE(e),this.mark(e,"$self",()=>{this.b.emit(this.containsAwait(e)?"await (async () => { throw ":"(() => { throw "),this.mark(e,"value",()=>this.expr(e[1])),this.b.emit("; })()")});return}if(k1(t)||t==="return"||t==="program"&&this.lockedHead(e,"program"))throw this.positionedError(e,`emitter: '${t}' is not supported in expression position`);if(t==="type-decl"||E.isTypedWrapper(e))throw this.positionedError(e,"emitter: an erased type statement reached expression position — a statement list missed its filter");return this.call(e)}static optionalGuard(e){if(!y(e)||e.length!==3)return null;if(e[0]==="?."||e[0]==="optindex")return e;if(e[0]==="."||e[0]==="[]")return E.optionalGuard(e[1]);return null}repeatSafeValue(e,t=null){if(typeof e!=="string")return!1;if(e==="this")return!0;if(e[0]==="/")return!1;if(!Z1(e))return!0;if(E.LITERAL_WORDS.has(e))return!0;if(t!==null&&t.has(e))return!0;return this.lexicallyBound(e)}lexicallyBound(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e)||r.bound.has(e))return!0;if(r.members!==void 0&&r.members.has(e))return!0}return this.inScope(e)||this.moduleBound.has(e)}singleReadIterable(e,t=null){if(this.repeatSafeValue(e,t))return!0;if(!y(e))return!1;if(e[0]==="array")return e.slice(1).every((r)=>this.singleReadIterable(r,t));return!1}scopeBoundary(e){if(!y(e)||k1(e[0])||T1(e))return"skip";if(e[0]==="component"&&e.length===3)return"skip";if(e[0]==="enum")return"skip";if(this.isEffectDecl(e))return"effect";if(this.isReactiveDecl(e))return"reactive";if(this.isReadonlyDecl(e))return"readonly";if(e[0]==="class")return"class";if(e[0]==="for-in"||e[0]==="for-of"||e[0]==="for-as")return"loop";if(re(e))return"comprehension";if(e[0]==="try")return"try";return null}static planNeedsFor(e){if(!y(e)||e.length!==3)return null;let t=e[0],r=t==="//="||t==="%%=";if(!r&&!F1.has(t))return null;let s=E.optionalGuard(e[1]);if(s===null&&!r)return null;if(s===null&&!(y(e[1])&&(e[1][0]==="."||e[1][0]==="[]")&&e[1].length===3))return null;return{synth:r,optLink:s}}planReferenceTemps(e,t){let r=[],s=(o)=>{let l=this.loopTempName(o);return this.temps.used.add(l),l},i=(o,l,c)=>{let f=this.refPlans.get(o);if(f!==void 0){for(let d of[f.recv,f.obj,f.key])if(d!==null)r.push([d,o,"$self"]);return}let h=(d)=>this.repeatSafeValue(d,c)||t.has(d),u={recv:null,obj:null,key:null};if(l.optLink!==null&&!h(l.optLink[1]))u.recv=s("_ref");if(l.synth){let d=n(o,l,u),p=d[1];if(!(typeof p==="string"&&(p===u.recv||h(p))))u.obj=s("_o");if((d[0]==="[]"||d[0]==="optindex")&&!h(d[2]))u.key=s("_k")}if(u.recv===null&&u.obj===null&&u.key===null)return;this.refPlans.set(o,u);for(let d of[u.recv,u.obj,u.key])if(d!==null)r.push([d,o,"$self"])},n=(o,l,c)=>{let f=o[1];if(l.optLink!==null&&f===l.optLink)return[f[0],c.recv??f[1],f[2]];return f},a=(o,l)=>{let c=this.scopeBoundary(o);if(c==="skip"||c==="effect")return;if(c==="reactive"){if(!(o[0]==="computed"&&b1(o[2])&&o[2].length>2))a(o[2],l);return}if(c==="readonly"){a(o[2],l);return}if(c==="class"){if(o[2]!=null)a(o[2],l);return}if(c==="loop"){let h=new Set(l);for(let u of this.patternNames(o[1],[],!0))h.add(u);for(let u of o.slice(2))a(u,h);return}if(c==="comprehension"){let h=new Set(l);for(let u of o[2]??[])for(let d of this.patternNames(u[1],[],!0))h.add(d);a(o[1],h);for(let u of o[2]??[])a(u[2],h);for(let u of o[3]??[])a(u,h);return}if(c==="try"){for(let h of o.slice(2)){if(y(h)&&h.length===2&&E.isPattern(h[0])){let u=new Set(l);for(let d of this.patternNames(h[0]))u.add(d);a(h[1],u);continue}a(h,l)}a(o[1],l);return}let f=E.planNeedsFor(o);if(f!==null)i(o,f,l);for(let h of o)a(h,l)};for(let o of e)a(o,new Set);return r}optionalAssign(e,t,r){this.checkMemberWrite(e,e[1]);let s=e[0],i=s==="//="||s==="%%=",n=this.refPlans.get(e)??{recv:null,obj:null,key:null};if(n.recv===null&&!this.repeatSafeValue(t[1]))throw this.positionedError(e,"emitter: reference plan missing for an optional assignment with an impure receiver — a capture site the planner walk did not reach");let a=(h)=>{if(h===t)return this.stores.alias([h[0],n.recv??h[1],h[2]],h);return y(h)?this.stores.alias(h.map(a),h):h},o=a(e[1]),l=()=>{if(n.recv!==null)this.b.emit(`(${n.recv} = `),this.mark(t,"object",()=>this.withExpression(()=>this.expr(t[1]))),this.b.emit(")");else this.mark(t,"object",()=>this.expr(t[1]))},c=()=>this.mark(e,"value",()=>this.withExpression(()=>this.expr(e[2]))),f=()=>{if(!i){(()=>this.mark(e,"target",()=>this.withTarget(()=>this.withDeopt(()=>this.expr(o)))))(),this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit(s)),this.b.emit(" "),c();return}let h=null;if(n.obj!==null)this.b.emit(`${n.obj} = `),this.mark(o,"object",()=>this.withDeopt(()=>this.expr(o[1]))),this.b.emit(", "),h=n.obj;if(n.key!==null)this.b.emit(`${n.key} = `),this.mark(o,"key",()=>this.withExpression(()=>this.expr(o[2]))),this.b.emit(", ");let u=["[]","."].includes(o[0])||o[0]==="?."||o[0]==="optindex"?this.stores.alias([o[0],h??o[1],n.key??o[2]],e[1]):o,d=()=>this.mark(e,"target",()=>this.withTarget(()=>this.withDeopt(()=>this.expr(u))));d(),this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.mark(e,"operator",()=>{this.b.emit(s==="//="?"Math.floor(":E.MODULO+"("),d(),this.b.emit(s==="//="?" / ":", "),this.operand(e,"value",e[2]),this.b.emit(")")})};this.mark(e,"$self",()=>{if(r==="statement")this.b.emit("if ("),l(),this.b.emit(" != null) "),f();else l(),this.b.emit(" != null ? ("),f(),this.b.emit(") : undefined")})}sliceAssignError(e){if(e[0]==="=")return this.positionedError(e,"emitter: a slice assignment (`a[i..j] = v`) is a statement — it splices the range in place and has no value form; move it to its own line");return this.positionedError(e,`emitter: a slice takes plain assignment only (\`a[i..j] = v\`) — '${e[0]}' has no in-place reading`)}assign(e){if(typeof e[1]==="string"&&e[1][0]==='"')throw this.positionedError(e,'emitter: a string is not an assignment target — a string-NAMED member (`"data-src" = v`) lives in a class body');let t=E.isPattern(e[1]),r=E.declaresInPlace.has(e),s=O1(e[1])&&!this.inPattern&&!r;if(typeof e[1]==="string"&&this.isComputedName(e[1]))throw this.positionedError(e,`emitter: cannot assign to computed '${e[1]}' — a '~=' binding derives from its dependencies; write to those instead`);if(typeof e[1]==="string"&&this.isAmbientReadonly(e[1]))throw this.positionedError(e,`emitter: cannot assign to readonly '${e[1]}' — a '=!' binding never changes after its declaration`);if(E.middleRestPattern(e[1]))throw this.positionedError(e,"emitter: a middle-rest pattern (`[a, ...mid, b]`) assigns only as a STATEMENT — "+"it binds its source once and reads by index, which has no expression form; move the assignment to its own line");if(!this.inPattern)this.checkExportedConstWrite(e,e[1]);if(this.checkMemberWrite(e,e[1]),e[0]==="void-assign")this.registerVoidValue(e[2],e);{let i=O3(e),n=i!==null?this.annotationText(e):null;if(n!==null){let a=(c)=>{let f=this.stores.idOf(e),h=f!==null?this.stores.role(f,"annotation"):null;return h!==null&&h.sourceStart!=null?this.positionedErrorAt(h.sourceStart,h.sourceEnd,c):this.positionedError(e,c)};if(e!==this.moduleTopStmt)throw a("emitter: an annotated prototype member must be a module top-level statement — "+"the annotation manifests as an interface augmentation, which TypeScript admits only at a module's top level; move the write there or drop the annotation");let o=(()=>{let c=this.stores.idOf(e),f=c!==null?this.stores.selfSpan(c):null,h=f!==null?this.stores.primitiveSpans(i.member,f[0],f[1])[0]??null:null;return h===null?null:{id:c,start:h.sourceStart,end:h.sourceEnd}})(),l=(c,f)=>{if(this.b.emit(c),o!==null)this.b.markSpan(o.id,"identifier",o.start,o.end,()=>this.b.emit(i.member));else this.b.emit(i.member);this.emitTypeText(e,"annotation",f)};if(this.moduleClassNames?.has(i.head)){if(this.ts)this.b.tsOnly(()=>this.mark(e,"annotation",()=>l(`interface ${i.head} { `,`: ${n} } -`)))}else if(!this.scopes[0].has(i.head)){let c=v3[i.head]??"";if(this.ts)this.b.tsOnly(()=>this.mark(e,"annotation",()=>l(`declare global { interface ${i.head}${c} { `,`: ${n} } } -`)))}else throw a(`emitter: the annotation on \`${i.head}::${i.member}\` cannot augment — `+`\`${i.head}\` is a module binding, not a class declaration, so the interface has nothing to merge with; declare \`class ${i.head}\`, drop the annotation, or describe the member in a workspace .d.ts`)}}if(r)this.b.emit("let ");this.mark(e,"voidMarker",()=>this.mark(e,"annotation",()=>this.mark(e,"$self",()=>{if(s)this.b.emit("(");if(this.mark(e,"target",()=>{if(t)this.withPattern(()=>this.expr(e[1]));else this.withTarget(()=>this.expr(e[1]))}),this.ts&&r){let l=E.inlineOwners.get(e),c=this.annotationText(e)??(l!==void 0?this.annotationText(l):null);if(c!==null)this.tsAnnotate(l??e,"annotation",c);else{let f=this.schemaStories?.get(e);if(f&&!f.decl.exported&&f.constType!==null){let h=this.bindingNameSpan(e,"target",f.decl.name);this.b.tsOnly(()=>{this.b.emit(": "),this.emitNamedCopies(f.constType,f.decl.name,h?.id??null,h?.span??null)})}}}this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit(e[0]==="void-assign"?"=":e[0])),this.b.emit(" ");let i=this._schemaName,n=this._componentName,a=this._componentTypeParams;if(this._componentTypeParams=null,y(e[2])&&e[2][0]==="schema"&&typeof e[1]==="string")this._schemaName=e[1];if(this.isComponentDecl(e[2])&&typeof e[1]==="string"){this._componentName=e[1];let l=this.annotationText(e,"typeParams");this._componentTypeParams=l===null?null:{text:l,owner:e}}let o=this.ts&&this.strict&&this.pinnedWrites.has(e);if(o)this.b.tsOnly(()=>this.b.emit("("));if(this.mark(e,"value",()=>this.withExpression(()=>this.expr(e[2]))),o)this.b.tsOnly(()=>this.b.emit(") satisfies unknown"));if(this._schemaName=i,this._componentName=n,this._componentTypeParams=a,s)this.b.emit(")")})))}reactiveDecl(e,t){let[r,s,i]=e,n=r==="state"?":=":"~=";if(typeof s!=="string")throw this.positionedError(e,`emitter: a reactive declaration takes a plain name — ' ${n} …' cannot declare a ${y(s)&&s[0]==="object"?"destructuring pattern":y(s)&&s[0]==="array"?"destructuring pattern":"member or index target"}`);if(r==="state"&&s==="__state"||r==="computed"&&s==="__computed")throw this.positionedError(e,`emitter: '${s} ${n} …' would bind the very runtime name its own lowering calls (const ${s} = ${s}(…) — a TDZ self-reference); rename the variable`);if(r==="computed"&&this.containsAwait(i))throw this.positionedError(e,"emitter: a computed ('~=') body cannot await — computeds evaluate synchronously (make it a state written by an effect)");if(r==="computed"&&E.containsYield(i))throw this.positionedError(e,"emitter: a computed ('~=') body cannot yield — computeds evaluate synchronously");this.mark(e,"annotation",()=>this.mark(e,"$self",()=>{this.b.emit("const ");let a=this.b.offset;if(this.mark(e,"target",()=>this.b.emit(s)),r==="state"&&this.ts)this.mutables.push([a,this.b.offset]);if(this.ts)this.noteKind(e,"target",r==="state"?"state":"computed");if(this.ts&&this.annotationText(e)!==null){let c=r==="computed"?"readonly ":"";this.tsAnnotate(e,"annotation",$i(this.annotationText(e),c,xi))}else if(this.ts){let c=Ks(i);if(c!==null){let f=r==="computed"?"readonly ":"";this.b.tsOnly(()=>this.b.emit(`: ${$i(c,f,xi)}`))}}this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" ");let o=this.ts?this.annotationText(e):null,l=()=>{if(o===null)return;this.b.tsOnly(()=>this.mark(e,"annotation",()=>this.emitTypeText(e,"annotation",`<${o}>`)))};if(r==="state")this.b.emit(this.runtimeName("__state")),l(),this.b.emit("("),this.mark(e,"value",()=>this.withExpression(()=>{let c=E.needsGrouping(i,"operand");if(c)this.b.emit("(");if(this.expr(i),c)this.b.emit(")")})),this.b.emit(")");else this.b.emit(this.runtimeName("__computed")),l(),this.b.emit("(() => "),this.mark(e,"value",()=>this.withExpression(()=>this.computedBody(e,i,t))),this.b.emit(")")})),this.b.emit(";")}computedBody(e,t,r){if(b1(t)&&t.length>2){let i=this.liveStmts(t.slice(1),{forwards:!0}),{entries:n,names:a}=this.scopedHoist(i,[]);for(let o of this.pushReactiveFrame(i,a))a.add(o);this.scopes.push(a),this.funcBlock(e,t,i,r,n),this.scopes.pop(),this.rframes.pop();return}let s=E.needsGrouping(t,"operand")||O1(t);if(s)this.b.emit("(");if(this.expr(t),s)this.b.emit(")")}readonlyDecl(e,t){let[r,s,i]=e;if(r==="void-readonly")this.registerVoidValue(i,e);if(typeof s!=="string")throw this.positionedError(e,`emitter: a readonly declaration takes a plain name — ' =! …' cannot declare a ${y(s)&&(s[0]==="object"||s[0]==="array")?"destructuring pattern":"member or index target"}`);this.mark(e,"voidMarker",()=>this.mark(e,"annotation",()=>this.mark(e,"$self",()=>{if(this.b.emit("const "),this.mark(e,"target",()=>this.b.emit(s)),this.ts)this.noteKind(e,"target","readonly");if(this.ts&&this.annotationText(e)!==null)this.tsAnnotate(e,"annotation",this.annotationText(e));this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.mark(e,"value",()=>this.withExpression(()=>{let n=E.needsGrouping(i,"operand");if(n)this.b.emit("(");if(this.expr(i),n)this.b.emit(")")}))}))),this.b.emit(";")}effectStatement(e,t){let[,r,s]=e;if(r!==null&&typeof r!=="string")throw this.positionedError(e,`emitter: an effect handle takes a plain name — ' ~> …' cannot bind a ${y(r)&&(r[0]==="object"||r[0]==="array")?"destructuring pattern":"member or index target"}`);if(r==="__effect")throw this.positionedError(e,"emitter: '__effect ~> …' would bind the very runtime name its own lowering calls (const __effect = __effect(…) — a TDZ self-reference); rename the handle");this.mark(e,"annotation",()=>this.mark(e,"$self",()=>{if(r!==null){if(this.b.emit("const "),this.mark(e,"target",()=>this.b.emit(r)),this.ts)this.noteKind(e,"target","effect");if(this.ts&&this.annotationText(e)!==null)this.tsAnnotate(e,"annotation",this.annotationText(e));this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.effectValue(e,s,t,!1)}else this.effectValue(e,s,t,!0)})),this.b.emit(";")}renderSyncGuard(e){let t=this.rstate;if(t&&this.scopes.length===t.scopeDepth)throw this.renderSyncError(e)}renderSyncError(e){return this.positionedError(e,"emitter: a render body evaluates synchronously — 'await'/'yield' cannot appear in a render expression "+"(text, attributes, props, and event listeners emit into non-async generated scopes); compute the value into a member (a state written by an effect), or make the handler a function ('-> await ...')",this.rstate.node)}firstAwaitIn(e){if(!y(e))return null;let t=e[0];if(t==="await"||t==="dammit!"||t==="dammit?"||t==="yield"||t==="yield-from")return e;if(t==="for-as"&&e[3]===!0)return e;if(t==="class")return this.firstAwaitIn(e[2]);if(T1(e)||k1(t)||this.isEffectDecl(e))return null;for(let r of e){let s=this.firstAwaitIn(r);if(s!==null)return s}return null}effectValue(e,t,r,s){if(E.effectBodyYields(t))throw this.positionedError(e,"emitter: an effect ('~>') body cannot yield — the runtime calls the effect function (make the generator a named function the effect calls)");let i=()=>{let l=this.runtimeName("__effect");if(s)this.mark(e,"operator",()=>this.b.emit(l));else this.b.emit(l)};if(T1(t)){i(),this.b.emit("("),this.mark(e,"value",()=>this.withExpression(()=>{let l=t[0]==="->";if(l)this.b.emit("(");if(this.expr(t),l)this.b.emit(")")})),this.b.emit(")");return}let n=this.containsAwait(t);if(i(),this.b.emit(n?"(async () => ":"(() => "),b1(t)){this.mark(e,"value",()=>this.withExpression(()=>{let l=this.liveStmts(t.slice(1),{forwards:!0}),{entries:c,names:f}=this.scopedHoist(l,[]);for(let h of this.pushReactiveFrame(l,f))f.add(h);this.scopes.push(f),this.funcBlock(e,t,l,r,c),this.scopes.pop(),this.rframes.pop()})),this.b.emit(")");return}let{entries:a,names:o}=this.scopedHoist([t],[]);if(this.checkScopeRedeclarations([t],[],e),this.scopes.push(o),this.rframes.push({reactive:new Set,bound:o}),this.b.emit("{ "),a.length)this.hoistLine(a),this.b.emit(" ");this.mark(e,"value",()=>this.withExpression(()=>{let l=E.needsGrouping(t,"operand")||O1(t);if(l)this.b.emit("(");if(this.expr(t),l)this.b.emit(")")})),this.b.emit("; })"),this.scopes.pop(),this.rframes.pop()}static effectBodyYields(e){return T1(e)?E.containsYield(e[2]):E.containsYield(e)}static COMPONENT_HOOKS=w3;static BOOLEAN_ATTRS=Qn;static SVG_NS="http://www.w3.org/2000/svg";isComponentDecl(e){return E.isComponentDeclIn(this.stores,e)}static isComponentDeclIn(e,t){if(!y(t)||t[0]!=="component"||t.length!==3)return!1;let r=e.idOf(t);return(r!==null?e.node(r)?.semanticKind:null)==="component"}componentKindOf(e,t,r){if(!y(e)||e[0]!==t||e.length!==r)return!1;let s=this.stores.idOf(e);return(s!==null?this.stores.node(s)?.semanticKind:null)===t}isRenderNode(e){return this.componentKindOf(e,"render",2)}isOfferNode(e){return this.componentKindOf(e,"offer",2)}isAcceptNode(e){return this.componentKindOf(e,"accept",2)||this.componentKindOf(e,"accept",3)}static memberTarget(e){if(typeof e==="string")return{name:e,isPublic:!1};if(y(e)&&e[0]==="."&&e[1]==="this"&&e.length===3&&typeof e[2]==="string")return{name:e[2],isPublic:!0};return null}static gateChain(e){let t=[],r=e;while(y(r)&&r[0]==="."&&r.length===3&&typeof r[2]==="string")t.unshift(r[2]),r=r[1];if(typeof r!=="string")return null;return t.unshift(r),t}static gateSource(e){let t=e[2],r=e.slice(3);if(r.length>1)return{error:"arity",node:e};let s=r[0]??null,i=E.gateChain(t);if(i===null||i.length<3||i[0]!=="this"||i[1]!=="stash")return{error:"path",node:t};let n=i.slice(2).join(".");if(s===null)return{path:n,pathNode:t,key:null,keyCode:null,keyParts:null};if(typeof s==="string"&&(/^-?(?:\d+(?:\.\d+)?|\.\d+)$/.test(s.replace(/_/g,""))||/^["'][^]*["']$/.test(s)||s==="true"||s==="false"))return{path:n,pathNode:t,key:s,keyCode:s,keyParts:null};let a=E.gateChain(s);if(a===null)return{error:"key",node:s};if(a[0]==="this")a.shift();if(a[0]!=="params"&&a[0]!=="query"||a.length<2)return{error:"key",node:s};return{path:n,pathNode:t,key:s,keyCode:a.join("."),keyParts:a}}static hmrFingerprint(e){let t=JSON.stringify(e),r=2166136261;for(let s=0;s>>0).toString(16).padStart(8,"0")}emitComponentHmrMeta(e,{bindingName:t,declaredProps:r,stateVars:s,derivedVars:i,gateVars:n,extendsTag:a,methods:o,hooks:l,hasRender:c}){let f=(T)=>[...T].sort(),h=f(r),u=f(s.map((T)=>T.name)),d=f(i.map((T)=>T.name)),p=f(o.map((T)=>T.name)),m=f(l.map((T)=>T.name)),g=n.length,b=E.hmrFingerprint({props:h,state:u,computed:d,gates:g,extends:a}),S=E.hmrFingerprint({methods:p,hooks:m,render:c}),w=`${this.modulePath}#${t}`,R={shape:b,impl:S,state:u,computed:d,props:h,gates:g,extends:a};this.b.emit(`${e}static __hmrId = ${JSON.stringify(w)}; +`);this.mark(e,"statements",()=>this.statements(n,t+1,"block")),this.b.emit(" ".repeat(t)+"}")})}containsAwait(e){return Bi(e,this.stores)}static isStringLiteral(e){if(Array.isArray(e))return String(e[0])==="str";let t=String(e)[0];return t==='"'||t==="'"||t==="`"}static containsBareIt(e){if(e==="it")return!0;if(!y(e))return!1;let t=e[0];if(t==="->"||t==="=>"||k1(t))return!1;if((t==="."||t==="?.")&&e.length===3)return E.containsBareIt(e[1])||typeof e[2]!=="string"&&E.containsBareIt(e[2]);if(t==="object")return e.slice(1).some((r)=>y(r)&&r[0]===":"&&r.length===3?E.containsBareIt(r[2])||typeof r[1]!=="string"&&E.containsBareIt(r[1]):E.containsBareIt(r));return e.some((r)=>E.containsBareIt(r))}static containsYield(e){return dr(e)}static jsTier(e){if(!y(e))return"primary";if((e[0]==="cast"||e[0]==="satisfies")&&e.length===3)return E.jsTier(e[1]);if(x3(e))return"assign";if(Li(e)||ua(e)&&e.length<=4&&E.ifIsSimple(e))return"ternary";if(e[0]==="?"&&e.length===2)return"binary";if(E.isStrRepeat(e))return"primary";if(ft(e)||fa(e))return"binary";if(ha(e))return"unary";if((e[0]==="await"||e[0]==="dammit!")&&e.length===2)return"unary";if(e[0]==="dammit?")return"unary";if(y(e[0])&&e[0][0]==="dammit!")return"unary";if((e[0]==="yield"||e[0]==="yield-from")&&e.length<=2)return"yield";if(T1(e))return"function";if(O1(e))return"object";return"primary"}static needsGrouping(e,t){let r=E.jsTier(e);if(t==="operand"||t==="return"){if(r==="unary")return!(e[0]==="!"||e[0]==="typeof"||e[0]==="await"||e[0]==="dammit!"||e[0]==="dammit?"||y(e[0])&&e[0][0]==="dammit!");if(r==="yield")return t==="operand";return r==="binary"||r==="ternary"||r==="assign"||r==="function"}if(t==="head")return r!=="primary"||U1(e);if(E.leadsWithObject(e))return!0;return r==="object"||U1(e)||r==="function"&&e[0]==="->"||y(e)&&(e[0]==="class"||e[0]==="component")||Li(e)&&!E.ternaryHoists(e)||r==="unary"&&e[0]==="delete"}operand(e,t,r){this.grouped(e,t,r,E.needsGrouping(r,"operand"))}head(e,t,r){this.grouped(e,t,r,E.needsGrouping(r,"head"))}static isIntegerLiteral(e){return typeof e==="string"&&e.charCodeAt(0)>=48&&e.charCodeAt(0)<=57&&/^[0-9][0-9_]*$/.test(e)}grouped(e,t,r,n){if(n)this.b.emit("(");if(this.mark(e,t,()=>this.expr(r)),n)this.b.emit(")")}static escapeTemplate(e){return e.replace(/\\[^]|`|\$\{/g,(t)=>t==="`"||t==="${"?`\\${t}`:t)}static MAX_EXPR_DEPTH=1024;expr(e){if(++this.exprDepth>E.MAX_EXPR_DEPTH){let t=this.positionedError(e,`emitter: expression nesting exceeds ${E.MAX_EXPR_DEPTH} levels — restructure the expression (the compile-time nesting bound)`);if(typeof t.start!=="number"&&this.b.currentMark)t.start=this.b.currentMark.sourceStart,t.end=this.b.currentMark.sourceEnd;throw t}try{this.exprCore(e)}finally{this.exprDepth--}}exprCore(e){if(!y(e)){if(typeof e==="string"){let r=this.bareRewrite(e);if(r==="reactive")return this.reactiveRead(e);if(r==="member")this.notePlainRenderRead(e);if(r!==null)this.checkBareRest(e,e);if(r!==null)return this.memberRead(e,r==="member-reactive");if(e==="this"&&this.renderSelf!==null)return this.b.emit(this.renderSelf)}if((e==="break"||e==="continue")&&this.ctrlDepth===0){let r=this.positionedError(e,`emitter: '${e}' outside a loop${e==="break"?" or switch":""}`);if(typeof r.start!=="number"&&this.b.currentMark)r.start=this.b.currentMark.sourceStart,r.end=this.b.currentMark.sourceEnd;throw r}if(typeof e==="string")this.emitPrimitive(e);else this.b.emit(e);return}let t=e[0];if(t==="str"&&this.lockedHead(e,"str"))return this.strTemplate(e);if(t==="tagged-template"&&e.length===3)return this.taggedTemplate(e);if(t==="here-regex")return this.heregex(e);if(y(t))return this.call(e);if(lt(t)&&e.length===3&&!this.inPattern&&E.sliceTarget(e[1])!==null)throw this.sliceAssignError(e);if(lt(t)&&e.length===3&&!this.inPattern){let r=E.optionalGuard(e[1]);if(r!==null)return this.optionalAssign(e,r,"value")}if(F1.has(t)&&e.length===3)return this.assign(e);if((t==="."||t==="?.")&&e.length===3)return this.member(e);if((t===".{}"||t==="?.{}")&&e.length>=3)return this.pick(e);if(t==="[]"&&e.length===3)return this.index(e);if(t==="optindex"&&e.length===3&&this.lockedHead(e,"optindex"))return this.optIndex(e);if(t==="optcall"&&this.lockedHead(e,"optcall"))return this.optCall(e);if(T1(e))return this.func(e);if(U1(e))return this.update(e);if(Li(e))return this.ternary(e);if(t==="array"&&this.lockedHead(e,"array"))return this.array(e);if(t==="object"&&this.lockedHead(e,"object"))return this.object(e);if(We(e))return this.range(e);if((t==="in"||t==="of"||t==="!in"||t==="!of"||t==="!instanceof")&&e.length===3)return this.relation(e);if(t==="instanceof"&&e.length===3){this.mark(e,"$self",()=>{this.operand(e,"left",e[1]),this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("instanceof")),this.b.emit(" "),this.operand(e,"right",e[2])});return}if(t==="//"&&e.length===3)return this.floorDiv(e);if(t==="%%"&&e.length===3)return this.modulo(e);if(t==="//="&&e.length===3)return this.floorDivAssign(e);if(t==="=~"&&e.length===3)return this.matchOp(e);if(t==="map"&&this.lockedHead(e,"map"))return this.mapLiteral(e);if(t==="regex-index"&&e.length===4){if(!(typeof e[2]==="string"&&e[2][0]==="/"))throw this.positionedError(e,"emitter: a two-part index is the regex-capture form (`text[/re/, n]`) — its key must be a regex literal");return this.regexIndex(e,e[1],e[2],e[3])}if(t==="symbol"&&e.length===2&&this.lockedHead(e,"symbol"))return this.mark(e,"$self",()=>{let r=JSON.stringify(e[1]);if(r===`"${e[1]}"`)this.b.emit('Symbol.for("'),this.emitPrimitive(e[1]),this.b.emit('")');else this.b.emit(`Symbol.for(${r})`)});if(t===".="&&e.length===3)throw this.positionedError(e,`emitter: ${t} is a statement — its target is spelled twice (write + read), which has no single-expression form`);if(t==="%%="&&e.length===3)return this.moduloAssign(e);if(re(e))return this.comprehension(e,this.ind);if(t==="do-iife"&&e.length===2)return this.doIife(e);if((t==="cast"||t==="satisfies")&&e.length===3)return this.postfixType(e);if(t==="?"&&e.length===2)return this.existence(e);if(t==="await"&&e.length===2)return this.awaitExpr(e);if(t==="dammit!"&&e.length===2)return this.dammit(e);if(t==="dammit?")return this.maybeDammit(e);if((t==="yield"||t==="yield-from")&&e.length<=2)return this.yieldExpr(e);if(t==="class")return this.classExpr(e);if(this.isReactiveDecl(e)){let r=t==="state"?":=":"~=";throw this.positionedError(e,`emitter: a reactive declaration ('${typeof e[1]==="string"?e[1]:"…"} ${r} …') is a statement — it lowers to a const declaration, which has no expression form`)}if(this.isGateDecl(e))throw this.positionedError(e,"emitter: a render gate ('<~') can only be used as a direct component body line");if(this.isReadonlyDecl(e))throw this.positionedError(e,`emitter: a readonly declaration ('${typeof e[1]==="string"?e[1]:"…"} =! …') is a statement — it lowers to a const declaration, which has no expression form`);if(this.isEffectDecl(e)){if(e[1]!==null)throw this.positionedError(e,`emitter: a bound effect ('${typeof e[1]==="string"?e[1]:"…"} ~> …') is a statement — it lowers to a const declaration, which has no expression form ; a BARE '~> …' is the expression form`);this.mark(e,"$self",()=>this.effectValue(e,e[2],this.ind,!0));return}if(t==="schema"&&e.length===2)return this.schemaExpr(e);if(this.isComponentDecl(e))return this.componentExpr(e);if(this.isRenderNode(e))throw this.positionedError(e,"emitter: render blocks can only be used inside a component (as a direct body line)");if(this.isOfferNode(e))throw this.positionedError(e,"emitter: offer can only be used as a direct component body line");if(this.isAcceptNode(e))throw this.positionedError(e,"emitter: accept can only be used as a direct component body line");if(t==="super")return this.superCall(e);if(t==="new"&&e.length===2)return this.newExpr(e);if(t==="..."&&e.length===2)return this.spread(e);if(ft(e))return this.binary(e);if(ha(e))return this.unary(e);if(t==="block"){this.mark(e,"$self",()=>{this.b.emit("("),e.slice(1).forEach((r,n)=>{if(n>0)this.b.emit(", ");this.expr(r)}),this.b.emit(")")});return}if(t==="if"&&e.length>=3&&e.length<=4)return this.valueIf(e);if(t==="try")return this.valueTry(e);if(t==="switch"&&e.length===4)return this.valueSwitch(e);if(t==="while"&&(e.length===3||e.length===4))return this.accumulatorIIFE(e);if(t==="loop"&&e.length===2)return this.accumulatorIIFE(e);if(t==="loop-n"&&e.length===3)return this.accumulatorIIFE(e);if((t==="for-in"||t==="for-of"||t==="for-as")&&e.length===6)return this.accumulatorIIFE(e);if(t==="throw"&&e.length===2){this.rejectYieldInIIFE(e),this.mark(e,"$self",()=>{this.b.emit(this.containsAwait(e)?"await (async () => { throw ":"(() => { throw "),this.mark(e,"value",()=>this.expr(e[1])),this.b.emit("; })()")});return}if(k1(t)||t==="return"||t==="program"&&this.lockedHead(e,"program"))throw this.positionedError(e,`emitter: '${t}' is not supported in expression position`);if(t==="type-decl"||E.isTypedWrapper(e))throw this.positionedError(e,"emitter: an erased type statement reached expression position — a statement list missed its filter");return this.call(e)}static optionalGuard(e){if(!y(e)||e.length!==3)return null;if(e[0]==="?."||e[0]==="optindex")return e;if(e[0]==="."||e[0]==="[]")return E.optionalGuard(e[1]);return null}repeatSafeValue(e,t=null){if(typeof e!=="string")return!1;if(e==="this")return!0;if(e[0]==="/")return!1;if(!Z1(e))return!0;if(E.LITERAL_WORDS.has(e))return!0;if(t!==null&&t.has(e))return!0;return this.lexicallyBound(e)}lexicallyBound(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e)||r.bound.has(e))return!0;if(r.members!==void 0&&r.members.has(e))return!0}return this.inScope(e)||this.moduleBound.has(e)}singleReadIterable(e,t=null){if(this.repeatSafeValue(e,t))return!0;if(!y(e))return!1;if(e[0]==="array")return e.slice(1).every((r)=>this.singleReadIterable(r,t));return!1}scopeBoundary(e){if(!y(e)||k1(e[0])||T1(e))return"skip";if(e[0]==="component"&&e.length===3)return"skip";if(e[0]==="enum")return"skip";if(this.isEffectDecl(e))return"effect";if(this.isReactiveDecl(e))return"reactive";if(this.isReadonlyDecl(e))return"readonly";if(e[0]==="class")return"class";if(e[0]==="for-in"||e[0]==="for-of"||e[0]==="for-as")return"loop";if(re(e))return"comprehension";if(e[0]==="try")return"try";return null}static planNeedsFor(e){if(!y(e)||e.length!==3)return null;let t=e[0],r=t==="//="||t==="%%=";if(!r&&!F1.has(t))return null;let n=E.optionalGuard(e[1]);if(n===null&&!r)return null;if(n===null&&!(y(e[1])&&(e[1][0]==="."||e[1][0]==="[]")&&e[1].length===3))return null;return{synth:r,optLink:n}}planReferenceTemps(e,t){let r=[],n=(o)=>{let l=this.loopTempName(o);return this.temps.used.add(l),l},i=(o,l,c)=>{let h=this.refPlans.get(o);if(h!==void 0){for(let d of[h.recv,h.obj,h.key])if(d!==null)r.push([d,o,"$self"]);return}let f=(d)=>this.repeatSafeValue(d,c)||t.has(d),u={recv:null,obj:null,key:null};if(l.optLink!==null&&!f(l.optLink[1]))u.recv=n("_ref");if(l.synth){let d=s(o,l,u),p=d[1];if(!(typeof p==="string"&&(p===u.recv||f(p))))u.obj=n("_o");if((d[0]==="[]"||d[0]==="optindex")&&!f(d[2]))u.key=n("_k")}if(u.recv===null&&u.obj===null&&u.key===null)return;this.refPlans.set(o,u);for(let d of[u.recv,u.obj,u.key])if(d!==null)r.push([d,o,"$self"])},s=(o,l,c)=>{let h=o[1];if(l.optLink!==null&&h===l.optLink)return[h[0],c.recv??h[1],h[2]];return h},a=(o,l)=>{let c=this.scopeBoundary(o);if(c==="skip"||c==="effect")return;if(c==="reactive"){if(!(o[0]==="computed"&&b1(o[2])&&o[2].length>2))a(o[2],l);return}if(c==="readonly"){a(o[2],l);return}if(c==="class"){if(o[2]!=null)a(o[2],l);return}if(c==="loop"){let f=new Set(l);for(let u of this.patternNames(o[1],[],!0))f.add(u);for(let u of o.slice(2))a(u,f);return}if(c==="comprehension"){let f=new Set(l);for(let u of o[2]??[])for(let d of this.patternNames(u[1],[],!0))f.add(d);a(o[1],f);for(let u of o[2]??[])a(u[2],f);for(let u of o[3]??[])a(u,f);return}if(c==="try"){for(let f of o.slice(2)){if(y(f)&&f.length===2&&E.isPattern(f[0])){let u=new Set(l);for(let d of this.patternNames(f[0]))u.add(d);a(f[1],u);continue}a(f,l)}a(o[1],l);return}let h=E.planNeedsFor(o);if(h!==null)i(o,h,l);for(let f of o)a(f,l)};for(let o of e)a(o,new Set);return r}optionalAssign(e,t,r){this.checkMemberWrite(e,e[1]);let n=e[0],i=n==="//="||n==="%%=",s=this.refPlans.get(e)??{recv:null,obj:null,key:null};if(s.recv===null&&!this.repeatSafeValue(t[1]))throw this.positionedError(e,"emitter: reference plan missing for an optional assignment with an impure receiver — a capture site the planner walk did not reach");let a=(f)=>{if(f===t)return this.stores.alias([f[0],s.recv??f[1],f[2]],f);return y(f)?this.stores.alias(f.map(a),f):f},o=a(e[1]),l=()=>{if(s.recv!==null)this.b.emit(`(${s.recv} = `),this.mark(t,"object",()=>this.withExpression(()=>this.expr(t[1]))),this.b.emit(")");else this.mark(t,"object",()=>this.expr(t[1]))},c=()=>this.mark(e,"value",()=>this.withExpression(()=>this.expr(e[2]))),h=()=>{if(!i){(()=>this.mark(e,"target",()=>this.withTarget(()=>this.withDeopt(()=>this.expr(o)))))(),this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit(n)),this.b.emit(" "),c();return}let f=null;if(s.obj!==null)this.b.emit(`${s.obj} = `),this.mark(o,"object",()=>this.withDeopt(()=>this.expr(o[1]))),this.b.emit(", "),f=s.obj;if(s.key!==null)this.b.emit(`${s.key} = `),this.mark(o,"key",()=>this.withExpression(()=>this.expr(o[2]))),this.b.emit(", ");let u=["[]","."].includes(o[0])||o[0]==="?."||o[0]==="optindex"?this.stores.alias([o[0],f??o[1],s.key??o[2]],e[1]):o,d=()=>this.mark(e,"target",()=>this.withTarget(()=>this.withDeopt(()=>this.expr(u))));d(),this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.mark(e,"operator",()=>{this.b.emit(n==="//="?"Math.floor(":E.MODULO+"("),d(),this.b.emit(n==="//="?" / ":", "),this.operand(e,"value",e[2]),this.b.emit(")")})};this.mark(e,"$self",()=>{if(r==="statement")this.b.emit("if ("),l(),this.b.emit(" != null) "),h();else l(),this.b.emit(" != null ? ("),h(),this.b.emit(") : undefined")})}sliceAssignError(e){if(e[0]==="=")return this.positionedError(e,"emitter: a slice assignment (`a[i..j] = v`) is a statement — it splices the range in place and has no value form; move it to its own line");return this.positionedError(e,`emitter: a slice takes plain assignment only (\`a[i..j] = v\`) — '${e[0]}' has no in-place reading`)}assign(e){if(typeof e[1]==="string"&&e[1][0]==='"')throw this.positionedError(e,'emitter: a string is not an assignment target — a string-NAMED member (`"data-src" = v`) lives in a class body');let t=E.isPattern(e[1]),r=E.declaresInPlace.has(e),n=O1(e[1])&&!this.inPattern&&!r;if(typeof e[1]==="string"&&this.isComputedName(e[1]))throw this.positionedError(e,`emitter: cannot assign to computed '${e[1]}' — a '~=' binding derives from its dependencies; write to those instead`);if(typeof e[1]==="string"&&this.isAmbientReadonly(e[1]))throw this.positionedError(e,`emitter: cannot assign to readonly '${e[1]}' — a '=!' binding never changes after its declaration`);if(E.middleRestPattern(e[1]))throw this.positionedError(e,"emitter: a middle-rest pattern (`[a, ...mid, b]`) assigns only as a STATEMENT — "+"it binds its source once and reads by index, which has no expression form; move the assignment to its own line");if(!this.inPattern)this.checkExportedConstWrite(e,e[1]);if(this.checkMemberWrite(e,e[1]),e[0]==="void-assign")this.registerVoidValue(e[2],e);{let i=I3(e),s=i!==null?this.annotationText(e):null;if(s!==null){let a=(c)=>{let h=this.stores.idOf(e),f=h!==null?this.stores.role(h,"annotation"):null;return f!==null&&f.sourceStart!=null?this.positionedErrorAt(f.sourceStart,f.sourceEnd,c):this.positionedError(e,c)};if(e!==this.moduleTopStmt)throw a("emitter: an annotated prototype member must be a module top-level statement — "+"the annotation manifests as an interface augmentation, which TypeScript admits only at a module's top level; move the write there or drop the annotation");let o=(()=>{let c=this.stores.idOf(e),h=c!==null?this.stores.selfSpan(c):null,f=h!==null?this.stores.primitiveSpans(i.member,h[0],h[1])[0]??null:null;return f===null?null:{id:c,start:f.sourceStart,end:f.sourceEnd}})(),l=(c,h)=>{if(this.b.emit(c),o!==null)this.b.markSpan(o.id,"identifier",o.start,o.end,()=>this.b.emit(i.member));else this.b.emit(i.member);this.emitTypeText(e,"annotation",h)};if(this.moduleClassNames?.has(i.head)){if(this.ts)this.b.tsOnly(()=>this.mark(e,"annotation",()=>l(`interface ${i.head} { `,`: ${s} } +`)))}else if(!this.scopes[0].has(i.head)){let c=O3[i.head]??"";if(this.ts)this.b.tsOnly(()=>this.mark(e,"annotation",()=>l(`declare global { interface ${i.head}${c} { `,`: ${s} } } +`)))}else throw a(`emitter: the annotation on \`${i.head}::${i.member}\` cannot augment — `+`\`${i.head}\` is a module binding, not a class declaration, so the interface has nothing to merge with; declare \`class ${i.head}\`, drop the annotation, or describe the member in a workspace .d.ts`)}}if(r)this.b.emit("let ");this.mark(e,"voidMarker",()=>this.mark(e,"annotation",()=>this.mark(e,"$self",()=>{if(n)this.b.emit("(");if(this.mark(e,"target",()=>{if(t)this.withPattern(()=>this.expr(e[1]));else this.withTarget(()=>this.expr(e[1]))}),this.ts&&r){let l=E.inlineOwners.get(e),c=this.annotationText(e)??(l!==void 0?this.annotationText(l):null);if(c!==null)this.tsAnnotate(l??e,"annotation",c);else{let h=this.schemaStories?.get(e);if(h&&!h.decl.exported&&h.constType!==null){let f=this.bindingNameSpan(e,"target",h.decl.name);this.b.tsOnly(()=>{this.b.emit(": "),this.emitNamedCopies(h.constType,h.decl.name,f?.id??null,f?.span??null)})}}}this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit(e[0]==="void-assign"?"=":e[0])),this.b.emit(" ");let i=this._schemaName,s=this._componentName,a=this._componentTypeParams;if(this._componentTypeParams=null,y(e[2])&&e[2][0]==="schema"&&typeof e[1]==="string")this._schemaName=e[1];if(this.isComponentDecl(e[2])&&typeof e[1]==="string"){this._componentName=e[1];let l=this.annotationText(e,"typeParams");this._componentTypeParams=l===null?null:{text:l,owner:e}}let o=this.ts&&this.strict&&this.pinnedWrites.has(e);if(o)this.b.tsOnly(()=>this.b.emit("("));if(this.mark(e,"value",()=>this.withExpression(()=>this.expr(e[2]))),o)this.b.tsOnly(()=>this.b.emit(") satisfies unknown"));if(this._schemaName=i,this._componentName=s,this._componentTypeParams=a,n)this.b.emit(")")})))}reactiveDecl(e,t){let[r,n,i]=e,s=r==="state"?":=":"~=";if(typeof n!=="string")throw this.positionedError(e,`emitter: a reactive declaration takes a plain name — ' ${s} …' cannot declare a ${y(n)&&n[0]==="object"?"destructuring pattern":y(n)&&n[0]==="array"?"destructuring pattern":"member or index target"}`);if(r==="state"&&n==="__state"||r==="computed"&&n==="__computed")throw this.positionedError(e,`emitter: '${n} ${s} …' would bind the very runtime name its own lowering calls (const ${n} = ${n}(…) — a TDZ self-reference); rename the variable`);if(r==="computed"&&this.containsAwait(i))throw this.positionedError(e,"emitter: a computed ('~=') body cannot await — computeds evaluate synchronously (make it a state written by an effect)");if(r==="computed"&&E.containsYield(i))throw this.positionedError(e,"emitter: a computed ('~=') body cannot yield — computeds evaluate synchronously");this.mark(e,"annotation",()=>this.mark(e,"$self",()=>{this.b.emit("const ");let a=this.b.offset;if(this.mark(e,"target",()=>this.b.emit(n)),r==="state"&&this.ts)this.mutables.push([a,this.b.offset]);if(this.ts)this.noteKind(e,"target",r==="state"?"state":"computed");if(this.ts&&this.annotationText(e)!==null){let c=r==="computed"?"readonly ":"";this.tsAnnotate(e,"annotation",$i(this.annotationText(e),c,xi))}else if(this.ts){let c=Ks(i);if(c!==null){let h=r==="computed"?"readonly ":"";this.b.tsOnly(()=>this.b.emit(`: ${$i(c,h,xi)}`))}}this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" ");let o=this.ts?this.annotationText(e):null,l=()=>{if(o===null)return;this.b.tsOnly(()=>this.mark(e,"annotation",()=>this.emitTypeText(e,"annotation",`<${o}>`)))};if(r==="state")this.b.emit(this.runtimeName("__state")),l(),this.b.emit("("),this.mark(e,"value",()=>this.withExpression(()=>{let c=E.needsGrouping(i,"operand");if(c)this.b.emit("(");if(this.expr(i),c)this.b.emit(")")})),this.b.emit(")");else this.b.emit(this.runtimeName("__computed")),l(),this.b.emit("(() => "),this.mark(e,"value",()=>this.withExpression(()=>this.computedBody(e,i,t))),this.b.emit(")")})),this.b.emit(";")}computedBody(e,t,r){if(b1(t)&&t.length>2){let i=this.liveStmts(t.slice(1),{forwards:!0}),{entries:s,names:a}=this.scopedHoist(i,[]);for(let o of this.pushReactiveFrame(i,a))a.add(o);this.scopes.push(a),this.funcBlock(e,t,i,r,s),this.scopes.pop(),this.rframes.pop();return}let n=E.needsGrouping(t,"operand")||O1(t);if(n)this.b.emit("(");if(this.expr(t),n)this.b.emit(")")}readonlyDecl(e,t){let[r,n,i]=e;if(r==="void-readonly")this.registerVoidValue(i,e);if(typeof n!=="string")throw this.positionedError(e,`emitter: a readonly declaration takes a plain name — ' =! …' cannot declare a ${y(n)&&(n[0]==="object"||n[0]==="array")?"destructuring pattern":"member or index target"}`);this.mark(e,"voidMarker",()=>this.mark(e,"annotation",()=>this.mark(e,"$self",()=>{if(this.b.emit("const "),this.mark(e,"target",()=>this.b.emit(n)),this.ts)this.noteKind(e,"target","readonly");if(this.ts&&this.annotationText(e)!==null)this.tsAnnotate(e,"annotation",this.annotationText(e));this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.mark(e,"value",()=>this.withExpression(()=>{let s=E.needsGrouping(i,"operand");if(s)this.b.emit("(");if(this.expr(i),s)this.b.emit(")")}))}))),this.b.emit(";")}effectStatement(e,t){let[,r,n]=e;if(r!==null&&typeof r!=="string")throw this.positionedError(e,`emitter: an effect handle takes a plain name — ' ~> …' cannot bind a ${y(r)&&(r[0]==="object"||r[0]==="array")?"destructuring pattern":"member or index target"}`);if(r==="__effect")throw this.positionedError(e,"emitter: '__effect ~> …' would bind the very runtime name its own lowering calls (const __effect = __effect(…) — a TDZ self-reference); rename the handle");this.mark(e,"annotation",()=>this.mark(e,"$self",()=>{if(r!==null){if(this.b.emit("const "),this.mark(e,"target",()=>this.b.emit(r)),this.ts)this.noteKind(e,"target","effect");if(this.ts&&this.annotationText(e)!==null)this.tsAnnotate(e,"annotation",this.annotationText(e));this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.effectValue(e,n,t,!1)}else this.effectValue(e,n,t,!0)})),this.b.emit(";")}renderSyncGuard(e){let t=this.rstate;if(t&&this.scopes.length===t.scopeDepth)throw this.renderSyncError(e)}renderSyncError(e){return this.positionedError(e,"emitter: a render body evaluates synchronously — 'await'/'yield' cannot appear in a render expression "+"(text, attributes, props, and event listeners emit into non-async generated scopes); compute the value into a member (a state written by an effect), or make the handler a function ('-> await ...')",this.rstate.node)}firstAwaitIn(e){if(!y(e))return null;let t=e[0];if(t==="await"||t==="dammit!"||t==="dammit?"||t==="yield"||t==="yield-from")return e;if(t==="for-as"&&e[3]===!0)return e;if(t==="class")return this.firstAwaitIn(e[2]);if(T1(e)||k1(t)||this.isEffectDecl(e))return null;for(let r of e){let n=this.firstAwaitIn(r);if(n!==null)return n}return null}effectValue(e,t,r,n){if(E.effectBodyYields(t))throw this.positionedError(e,"emitter: an effect ('~>') body cannot yield — the runtime calls the effect function (make the generator a named function the effect calls)");let i=()=>{let l=this.runtimeName("__effect");if(n)this.mark(e,"operator",()=>this.b.emit(l));else this.b.emit(l)};if(T1(t)){i(),this.b.emit("("),this.mark(e,"value",()=>this.withExpression(()=>{let l=t[0]==="->";if(l)this.b.emit("(");if(this.expr(t),l)this.b.emit(")")})),this.b.emit(")");return}let s=this.containsAwait(t);if(i(),this.b.emit(s?"(async () => ":"(() => "),b1(t)){this.mark(e,"value",()=>this.withExpression(()=>{let l=this.liveStmts(t.slice(1),{forwards:!0}),{entries:c,names:h}=this.scopedHoist(l,[]);for(let f of this.pushReactiveFrame(l,h))h.add(f);this.scopes.push(h),this.funcBlock(e,t,l,r,c),this.scopes.pop(),this.rframes.pop()})),this.b.emit(")");return}let{entries:a,names:o}=this.scopedHoist([t],[]);if(this.checkScopeRedeclarations([t],[],e),this.scopes.push(o),this.rframes.push({reactive:new Set,bound:o}),this.b.emit("{ "),a.length)this.hoistLine(a),this.b.emit(" ");this.mark(e,"value",()=>this.withExpression(()=>{let l=E.needsGrouping(t,"operand")||O1(t);if(l)this.b.emit("(");if(this.expr(t),l)this.b.emit(")")})),this.b.emit("; })"),this.scopes.pop(),this.rframes.pop()}static effectBodyYields(e){return T1(e)?E.containsYield(e[2]):E.containsYield(e)}static COMPONENT_HOOKS=_3;static BOOLEAN_ATTRS=Qn;static SVG_NS="http://www.w3.org/2000/svg";isComponentDecl(e){return E.isComponentDeclIn(this.stores,e)}static isComponentDeclIn(e,t){if(!y(t)||t[0]!=="component"||t.length!==3)return!1;let r=e.idOf(t);return(r!==null?e.node(r)?.semanticKind:null)==="component"}componentKindOf(e,t,r){if(!y(e)||e[0]!==t||e.length!==r)return!1;let n=this.stores.idOf(e);return(n!==null?this.stores.node(n)?.semanticKind:null)===t}isRenderNode(e){return this.componentKindOf(e,"render",2)}isOfferNode(e){return this.componentKindOf(e,"offer",2)}isAcceptNode(e){return this.componentKindOf(e,"accept",2)||this.componentKindOf(e,"accept",3)}static memberTarget(e){if(typeof e==="string")return{name:e,isPublic:!1};if(y(e)&&e[0]==="."&&e[1]==="this"&&e.length===3&&typeof e[2]==="string")return{name:e[2],isPublic:!0};return null}static gateChain(e){let t=[],r=e;while(y(r)&&r[0]==="."&&r.length===3&&typeof r[2]==="string")t.unshift(r[2]),r=r[1];if(typeof r!=="string")return null;return t.unshift(r),t}static gateSource(e){let t=e[2],r=e.slice(3);if(r.length>1)return{error:"arity",node:e};let n=r[0]??null,i=E.gateChain(t);if(i===null||i.length<3||i[0]!=="this"||i[1]!=="stash")return{error:"path",node:t};let s=i.slice(2).join(".");if(n===null)return{path:s,pathNode:t,key:null,keyCode:null,keyParts:null};if(typeof n==="string"&&(/^-?(?:\d+(?:\.\d+)?|\.\d+)$/.test(n.replace(/_/g,""))||/^["'][^]*["']$/.test(n)||n==="true"||n==="false"))return{path:s,pathNode:t,key:n,keyCode:n,keyParts:null};let a=E.gateChain(n);if(a===null)return{error:"key",node:n};if(a[0]==="this")a.shift();if(a[0]!=="params"&&a[0]!=="query"||a.length<2)return{error:"key",node:n};return{path:s,pathNode:t,key:n,keyCode:a.join("."),keyParts:a}}static hmrFingerprint(e){let t=JSON.stringify(e),r=2166136261;for(let n=0;n>>0).toString(16).padStart(8,"0")}emitComponentHmrMeta(e,{bindingName:t,declaredProps:r,stateVars:n,derivedVars:i,gateVars:s,extendsTag:a,methods:o,hooks:l,hasRender:c}){let h=(T)=>[...T].sort(),f=h(r),u=h(n.map((T)=>T.name)),d=h(i.map((T)=>T.name)),p=h(o.map((T)=>T.name)),m=h(l.map((T)=>T.name)),g=s.length,b=E.hmrFingerprint({props:f,state:u,computed:d,gates:g,extends:a}),S=E.hmrFingerprint({methods:p,hooks:m,render:c}),w=`${this.modulePath}#${t}`,R={shape:b,impl:S,state:u,computed:d,props:f,gates:g,extends:a};this.b.emit(`${e}static __hmrId = ${JSON.stringify(w)}; `),this.b.emit(`${e}static __hmrSig = ${JSON.stringify(R)}; -`)}componentExpr(e){let[,t,r]=e,s=null,i=null;if(t!==null){let I=typeof t==="string"?t:Vt(t),s1=I!==null?Wt(I):null;if(I!==null&&te(I)&&!I.includes("#"))s=I;else if(I!==null&&K1(I.slice(I.lastIndexOf(".")+1))&&(this.inScope(s1)||this.moduleBound.has(s1))){if(I===this._componentName)throw this.positionedError(e,`emitter: component '${I}' cannot extend itself — the render would construct it without end`);if(s1!==I&&this.importSpecOf(s1)===null)throw this.positionedError(e,`emitter: 'component extends ${I}' roots at '${s1}', a binding of this module — a host named through a `+"path must root at an import (`import * as Ns …`), since a declaration file spells the host through it");i=I}else throw this.positionedError(e,"emitter: 'component extends' takes an HTML tag or a component bound in this module — rest props forward "+`onto the first one the render creates; '${I??"…"}' is neither`)}let n=s??i,a=null,o=null;if(this.ts){let I=this.stores.idOf(e)??null,s1=I!==null?this.stores.selfSpan(I):null,e1=this.b.source;if(s1!==null&&e1!==null&&e1.startsWith("component",s1[0])){if(this.silences.push([s1[0],s1[0]+9]),n!==null){let K=/^component(\s+)extends(\s+)/.exec(e1.slice(s1[0],s1[1]));if(K!==null&&e1.startsWith(n,s1[0]+K[0].length)){let a1=s1[0]+9+K[1].length;this.silences.push([a1,a1+7]);let A=s1[0]+K[0].length;if(s!==null)this.intrinsics.push({start:A,end:A+s.length,kind:"tag",tag:s,svg:!1});else a=[A,A+i.length],o=I}}}}let l=b1(r)?r.slice(1):[],c=[],f=[],h=[],u=[],d=[],p=[],m=[],g=[],b=[],S=[],w=new Map,R=null,T=new Map,F=new Set,L=new Map,P=(I,s1,e1,K)=>{if(L.has(I))throw this.positionedError(e1,`emitter: duplicate component member '${I}' — it is already declared in this component body; `+"duplicates clobber silently across kinds",e);if(_3.has(I))throw this.positionedError(e1,`emitter: component member '${I}' collides with component runtime state — `+"the runtime owns this exact instance field; rename the member",e);if(I==="_init"||I==="_create"||I==="_setup"||/^create_block_\d+$/.test(I))throw this.positionedError(e1,`emitter: component member '${I}' collides with the generated lifecycle machinery — '_init', `+"'_create', '_setup', and 'create_block_N' are the class methods the component lowering emits (a same-named member would silently replace the generated one at runtime); rename the member",e);if(I==="mount"||I==="unmount"||I==="emit")throw this.positionedError(e1,`emitter: component member '${I}' collides with the component runtime API — 'mount', 'unmount', `+"and 'emit' are __Component's own methods, and the machinery calls them on every instance (a same-named member would silently shadow them); rename the member",e);if(L.set(I,e1),s1!=="hook"){if(T.set(I,s1),K)F.add(I)}},N=(I)=>{let s1="emitter: a component body line must be a member declaration — state (`x := v`, `@x := v`), a prop (`@x`, `@x?`), "+"computed (`x ~= e`), readonly (`x =! v`), a plain field (`x = v`), a method (`save = (e) ->`), a lifecycle hook "+"(beforeMount/mounted/beforeUnmount/unmounted/onError), an effect (`~> …`), `offer`/`accept`, or `render` — "+"this statement matches no category",e1=this.b.source;if((!y(I)||this.stores.idOf(I)===null)&&e1!==null){let K=(B)=>{let i1=y(B)?this.stores.idOf(B):null;return i1!==null?this.stores.selfSpan(i1):null},a1=l.indexOf(I),A=K(r),V=null;for(let B=a1-1;B>=0&&V===null;B--)V=K(l[B])?.[1]??null;if(V===null)V=A?.[0]??null;if(V!==null){while(VV&&/\s/.test(e1[B-1]))B--;throw this.positionedErrorAt(V,B,s1)}}throw this.positionedError(I,s1,e)},D=(I,s1,e1,K)=>{let a1=this.stores.idOf(I),A=a1!==null?this.stores.role(a1,s1):null;if(A?.sourceStart!=null)throw this.positionedErrorAt(A.sourceStart,A.sourceEnd,K);throw this.positionedError(e1,K,I,e)},O=(I,s1)=>{if(this.isRenderNode(I)){if(s1)W(I);if(R!==null)throw this.positionedError(I,"emitter: duplicate render block — a component takes exactly one",e);R=I;return}if(this.isAcceptNode(I)){if(s1)W(I);if(this.noteHeadKeyword("context-channel","accept",I),I.length===2)throw this.positionedError(I,`emitter: accept names its provider — \`accept ${I[1]} from \` reads the nearest ancestor instance of that component`,e);let e1=typeof I[2]==="string"?I[2]:Vt(I[2]),K=e1!==null?Wt(e1):null;if(!(e1!==null&&K1(e1.slice(e1.lastIndexOf(".")+1))&&(this.inScope(K)||this.moduleBound.has(K))))throw this.positionedError(I,`emitter: accept reads from a component bound in this module — '${e1??"…"}' is not one`,e);if(K!==e1&&this.importSpecOf(K)===null)throw this.positionedError(I,`emitter: accept reads from '${e1}', which roots at '${K}', a binding of this module — a provider `+"named through a path must root at an import (`import * as Ns …`), since a declaration file spells the "+"member through it",e);P(I[1],"accept",I,!0),S.push(I[1]),w.set(I[1],I[2]);return}if(this.isGateDecl(I)){if(s1)W(I);let e1=E.memberTarget(I[1]);if(e1===null)D(I,"target",I[1],"emitter: a render gate ('<~') target must be one private component name — patterns and member chains cannot name a gate");if(e1.isPublic)D(I,"target",I[1],`emitter: render gate '${e1.name}' must be private — '@${e1.name} <~ …' would expose route-prefetched state as a caller prop; remove '@' and pass an explicit prop where public input is intended`);let K=E.gateSource(I);if(K.error==="arity")D(I,"key",K.node,"emitter: a keyed render gate takes exactly one key argument — use @stash.name(params.id)");if(K.error==="path")D(I,"rhs",K.node,"emitter: '<~' requires a literal @stash. on the right-hand side, optionally called with one key");if(K.error==="key")D(I,"key",K.node,"emitter: a keyed render gate key may only be a literal or a params/query path (for example params.id or @query.tab)");P(e1.name,"gate",I,!0),d.push({name:e1.name,...K,node:I});return}if(this.isReactiveDecl(I)){let e1=E.memberTarget(I[1]);if(e1===null)throw this.positionedError(I,`emitter: a component ${I[0]==="state"?"state":"computed"} member takes a plain name or '@name' — `+"patterns and member chains have no member reading ",e);if(I[0]==="state"){if(this.firstAwaitIn(I[2])!==null)throw this.positionedError(I,"emitter: a component state initializer cannot await or yield — _init runs synchronously during construction",e);P(e1.name,"state",I,!0),h.push({name:e1.name,value:I[2],isPublic:e1.isPublic,required:!1,node:I})}else{if(this.containsAwait(I[2]))throw this.positionedError(I,"emitter: a computed ('~=') body cannot await — computeds evaluate synchronously (make it a state written by an effect)",e);if(E.containsYield(I[2]))throw this.positionedError(I,"emitter: a computed ('~=') body cannot yield — computeds evaluate synchronously",e);P(e1.name,"computed",I,!0),u.push({name:e1.name,value:I[2],node:I})}return}if(this.isReadonlyDecl(I)){let e1=E.memberTarget(I[1]);if(e1===null)throw this.positionedError(I,"emitter: a component readonly member takes a plain name or '@name' — patterns and member chains have no member reading ",e);if(this.firstAwaitIn(I[2])!==null)throw this.positionedError(I,"emitter: a component readonly initializer cannot await or yield — _init runs synchronously during construction",e);P(e1.name,"readonly",I,!1),c.push({name:e1.name,value:I[2],isPublic:e1.isPublic,node:I});return}if(this.isEffectDecl(I)){if(s1)W(I);if(I[1]!==null)throw this.positionedError(I,`emitter: a bound effect ('${typeof I[1]==="string"?I[1]:"…"} ~> …') has no component-body reading — `+"the handle would bind nothing; use a bare `~> …` effect, or bind the handle inside a method",e);if(E.effectBodyYields(I[2]))throw this.positionedError(I,"emitter: an effect ('~>') body cannot yield — the runtime calls the effect function (make the generator a named function the effect calls)",I);g.push(I);return}if(y(I)&&I[0]==="?"&&I.length===2){let e1=E.memberTarget(I[1]);if(e1!==null&&e1.isPublic){P(e1.name,"prop",I,!0),h.push({name:e1.name,value:void 0,isPublic:!0,required:!1,optional:!0,node:I});return}N(I)}if(E.isTypedWrapper(I)){let e1=E.memberTarget(I[1]);if(e1!==null&&e1.isPublic){P(e1.name,"prop",I,!0),h.push({name:e1.name,value:void 0,isPublic:!0,required:!0,node:I});return}N(I)}if(y(I)&&I[0]==="."&&I[1]==="this"&&I.length===3&&typeof I[2]==="string"){P(I[2],"prop",I,!0),h.push({name:I[2],value:void 0,isPublic:!0,required:!0,node:I});return}if(y(I)&&(I[0]==="="||I[0]==="void-assign")&&I.length===3){let e1=E.memberTarget(I[1]);if(e1===null)N(I);let K=I[0]==="void-assign";if(E.COMPONENT_HOOKS.has(e1.name)){if(s1)W(I);if(!T1(I[2]))throw this.positionedError(I,`emitter: the lifecycle hook '${e1.name}' takes a function value — \`${e1.name} = -> …\``,e);P(e1.name,"hook",I,!1),m.push({name:e1.name,func:I[2],isVoid:K,node:I});return}if(T1(I[2])){P(e1.name,"method",I,!1),p.push({name:e1.name,func:I[2],isVoid:K,node:I});return}if(K)throw this.positionedError(I,"emitter: the void marker (a trailing '!' on the defined name) requires a function value — `save! = ->`",e);if(this.firstAwaitIn(I[2])!==null)throw this.positionedError(I,"emitter: a component member initializer cannot await or yield — _init runs synchronously during construction",e);P(e1.name,"plain",I,!1),f.push({name:e1.name,value:I[2],isPublic:e1.isPublic,node:I});return}if(O1(I)){if(s1)W(I);for(let e1 of I.slice(1)){if(!y(e1)||e1[0]!==":"&&e1[0]!=="void-pair"||typeof e1[1]!=="string"||!T1(e1[2]))N(I);let K=e1[0]==="void-pair";if(E.COMPONENT_HOOKS.has(e1[1]))P(e1[1],"hook",I,!1),m.push({name:e1[1],func:e1[2],isVoid:K,node:e1});else P(e1[1],"method",I,!1),p.push({name:e1[1],func:e1[2],isVoid:K,node:e1})}return}N(I)},W=(I)=>{throw this.positionedError(I,"emitter: offer takes a state declaration — `offer theme := v` — so every offered value is a "+"container an accept reads and writes",e)};for(let I of l){if(this.isOfferNode(I)){let s1=I[1];if(!(this.isReactiveDecl(s1)&&s1[0]==="state"))W(I);this.noteHeadKeyword("context-channel","offer",I),O(s1,!0);let e1=E.memberTarget(s1[1]);b.push(e1.name);continue}O(I,!1)}let H=[];for(let{name:I,isPublic:s1}of[...h,...c,...f])if(s1)H.push(I);if(n!==null){if(L.has("rest"))throw this.positionedError(L.get("rest"),"emitter: a component that extends a host cannot declare a member named 'rest' — `@rest` is the reactive "+"view of the undeclared caller props (the rest-forwarding seam)",e);T.set("rest","rest"),F.add("rest")}if(this.scopes.length===1&&typeof this._componentName==="string"){let I=this.moduleComponentNames.get(this._componentName);if(I!==void 0&&I!==e)throw this.positionedError(e,`emitter: component '${this._componentName}' is bound more than once at module scope — rebinding `+"clobbers the first class silently (existing instances keep the old identity) and the typed artifacts would merge two same-named companion interfaces; give each component its own name");this.moduleComponentNames.set(this._componentName,e)}let G=this.ts&&this.scopes.length===1&&typeof this._componentName==="string"?`__${this._componentName}__computed`:null,k=this.ts?Oi(this.stores,this.b.source,e,G):null;if(k)k.hostSpan=a,k.hostNodeId=o,k.appStashSpec=this.appStashSpec,k.routesUnion=this.routesUnion,k.routeParams=this.routeParams;if(k!==null)this.componentInfo.set(e,k);let v=new Map;for(let I of k?.members??[]){let s1=E.memberLabel(I);if(s1!==null)v.set(I.name,{label:s1,optional:I.optional===!0})}if(n!==null)v.set("rest",{label:"rest",optional:!1});let j={members:T,memberReactive:F,memberKinds:v,name:this._componentName,extendsTag:s,extendsComponent:i,plainWrites:new Map,renderPlainReads:new Set},X=this.ind,x=" ".repeat(X+1),Z=x+" ";this.cframes.push(j),this.rframes.push({reactive:new Set,bound:new Set,members:T,memberReactive:F,memberKinds:v});let U=this.methodName;this.methodName=null;let r1=[...[...c,...f,...h].map((I)=>I.value),...u.map((I)=>I.value).filter((I)=>!(b1(I)&&I.length>2))].filter((I)=>I!==void 0),{entries:Q,names:l1}=this.scopedHoist(r1,[],{declareInPlace:!1});this.mark(e,"$self",()=>{if(this.b.emit("class"),this.ts&&this._componentTypeParams){let{text:M,owner:n1}=this._componentTypeParams;this.b.tsOnly(()=>this.mark(n1,"typeParams",()=>this.emitTypeText(n1,"typeParams",M)))}if(this.b.emit(` extends ${this.runtimeName("__Component")} { +`)}componentExpr(e){let[,t,r]=e,n=null,i=null;if(t!==null){let I=typeof t==="string"?t:Vt(t),s1=I!==null?Wt(I):null;if(I!==null&&te(I)&&!I.includes("#"))n=I;else if(I!==null&&K1(I.slice(I.lastIndexOf(".")+1))&&(this.inScope(s1)||this.moduleBound.has(s1))){if(I===this._componentName)throw this.positionedError(e,`emitter: component '${I}' cannot extend itself — the render would construct it without end`);if(s1!==I&&this.importSpecOf(s1)===null)throw this.positionedError(e,`emitter: 'component extends ${I}' roots at '${s1}', a binding of this module — a host named through a `+"path must root at an import (`import * as Ns …`), since a declaration file spells the host through it");i=I}else throw this.positionedError(e,"emitter: 'component extends' takes an HTML tag or a component bound in this module — rest props forward "+`onto the first one the render creates; '${I??"…"}' is neither`)}let s=n??i,a=null,o=null;if(this.ts){let I=this.stores.idOf(e)??null,s1=I!==null?this.stores.selfSpan(I):null,e1=this.b.source;if(s1!==null&&e1!==null&&e1.startsWith("component",s1[0])){if(this.silences.push([s1[0],s1[0]+9]),s!==null){let K=/^component(\s+)extends(\s+)/.exec(e1.slice(s1[0],s1[1]));if(K!==null&&e1.startsWith(s,s1[0]+K[0].length)){let a1=s1[0]+9+K[1].length;this.silences.push([a1,a1+7]);let A=s1[0]+K[0].length;if(n!==null)this.intrinsics.push({start:A,end:A+n.length,kind:"tag",tag:n,svg:!1});else a=[A,A+i.length],o=I}}}}let l=b1(r)?r.slice(1):[],c=[],h=[],f=[],u=[],d=[],p=[],m=[],g=[],b=[],S=[],w=new Map,R=null,T=new Map,F=new Set,L=new Map,C=(I,s1,e1,K)=>{if(L.has(I))throw this.positionedError(e1,`emitter: duplicate component member '${I}' — it is already declared in this component body; `+"duplicates clobber silently across kinds",e);if(N3.has(I))throw this.positionedError(e1,`emitter: component member '${I}' collides with component runtime state — `+"the runtime owns this exact instance field; rename the member",e);if(I==="_init"||I==="_create"||I==="_setup"||/^create_block_\d+$/.test(I))throw this.positionedError(e1,`emitter: component member '${I}' collides with the generated lifecycle machinery — '_init', `+"'_create', '_setup', and 'create_block_N' are the class methods the component lowering emits (a same-named member would silently replace the generated one at runtime); rename the member",e);if(I==="mount"||I==="unmount"||I==="emit")throw this.positionedError(e1,`emitter: component member '${I}' collides with the component runtime API — 'mount', 'unmount', `+"and 'emit' are __Component's own methods, and the machinery calls them on every instance (a same-named member would silently shadow them); rename the member",e);if(L.set(I,e1),s1!=="hook"){if(T.set(I,s1),K)F.add(I)}},N=(I)=>{let s1="emitter: a component body line must be a member declaration — state (`x := v`, `@x := v`), a prop (`@x`, `@x?`), "+"computed (`x ~= e`), readonly (`x =! v`), a plain field (`x = v`), a method (`save = (e) ->`), a lifecycle hook "+"(beforeMount/mounted/beforeUnmount/unmounted/onError), an effect (`~> …`), `offer`/`accept`, or `render` — "+"this statement matches no category",e1=this.b.source;if((!y(I)||this.stores.idOf(I)===null)&&e1!==null){let K=(B)=>{let i1=y(B)?this.stores.idOf(B):null;return i1!==null?this.stores.selfSpan(i1):null},a1=l.indexOf(I),A=K(r),V=null;for(let B=a1-1;B>=0&&V===null;B--)V=K(l[B])?.[1]??null;if(V===null)V=A?.[0]??null;if(V!==null){while(VV&&/\s/.test(e1[B-1]))B--;throw this.positionedErrorAt(V,B,s1)}}throw this.positionedError(I,s1,e)},D=(I,s1,e1,K)=>{let a1=this.stores.idOf(I),A=a1!==null?this.stores.role(a1,s1):null;if(A?.sourceStart!=null)throw this.positionedErrorAt(A.sourceStart,A.sourceEnd,K);throw this.positionedError(e1,K,I,e)},O=(I,s1)=>{if(this.isRenderNode(I)){if(s1)W(I);if(R!==null)throw this.positionedError(I,"emitter: duplicate render block — a component takes exactly one",e);R=I;return}if(this.isAcceptNode(I)){if(s1)W(I);if(this.noteHeadKeyword("context-channel","accept",I),I.length===2)throw this.positionedError(I,`emitter: accept names its provider — \`accept ${I[1]} from \` reads the nearest ancestor instance of that component`,e);let e1=typeof I[2]==="string"?I[2]:Vt(I[2]),K=e1!==null?Wt(e1):null;if(!(e1!==null&&K1(e1.slice(e1.lastIndexOf(".")+1))&&(this.inScope(K)||this.moduleBound.has(K))))throw this.positionedError(I,`emitter: accept reads from a component bound in this module — '${e1??"…"}' is not one`,e);if(K!==e1&&this.importSpecOf(K)===null)throw this.positionedError(I,`emitter: accept reads from '${e1}', which roots at '${K}', a binding of this module — a provider `+"named through a path must root at an import (`import * as Ns …`), since a declaration file spells the "+"member through it",e);C(I[1],"accept",I,!0),S.push(I[1]),w.set(I[1],I[2]);return}if(this.isGateDecl(I)){if(s1)W(I);let e1=E.memberTarget(I[1]);if(e1===null)D(I,"target",I[1],"emitter: a render gate ('<~') target must be one private component name — patterns and member chains cannot name a gate");if(e1.isPublic)D(I,"target",I[1],`emitter: render gate '${e1.name}' must be private — '@${e1.name} <~ …' would expose route-prefetched state as a caller prop; remove '@' and pass an explicit prop where public input is intended`);let K=E.gateSource(I);if(K.error==="arity")D(I,"key",K.node,"emitter: a keyed render gate takes exactly one key argument — use @stash.name(params.id)");if(K.error==="path")D(I,"rhs",K.node,"emitter: '<~' requires a literal @stash. on the right-hand side, optionally called with one key");if(K.error==="key")D(I,"key",K.node,"emitter: a keyed render gate key may only be a literal or a params/query path (for example params.id or @query.tab)");C(e1.name,"gate",I,!0),d.push({name:e1.name,...K,node:I});return}if(this.isReactiveDecl(I)){let e1=E.memberTarget(I[1]);if(e1===null)throw this.positionedError(I,`emitter: a component ${I[0]==="state"?"state":"computed"} member takes a plain name or '@name' — `+"patterns and member chains have no member reading ",e);if(I[0]==="state"){if(this.firstAwaitIn(I[2])!==null)throw this.positionedError(I,"emitter: a component state initializer cannot await or yield — _init runs synchronously during construction",e);C(e1.name,"state",I,!0),f.push({name:e1.name,value:I[2],isPublic:e1.isPublic,required:!1,node:I})}else{if(this.containsAwait(I[2]))throw this.positionedError(I,"emitter: a computed ('~=') body cannot await — computeds evaluate synchronously (make it a state written by an effect)",e);if(E.containsYield(I[2]))throw this.positionedError(I,"emitter: a computed ('~=') body cannot yield — computeds evaluate synchronously",e);C(e1.name,"computed",I,!0),u.push({name:e1.name,value:I[2],node:I})}return}if(this.isReadonlyDecl(I)){let e1=E.memberTarget(I[1]);if(e1===null)throw this.positionedError(I,"emitter: a component readonly member takes a plain name or '@name' — patterns and member chains have no member reading ",e);if(this.firstAwaitIn(I[2])!==null)throw this.positionedError(I,"emitter: a component readonly initializer cannot await or yield — _init runs synchronously during construction",e);C(e1.name,"readonly",I,!1),c.push({name:e1.name,value:I[2],isPublic:e1.isPublic,node:I});return}if(this.isEffectDecl(I)){if(s1)W(I);if(I[1]!==null)throw this.positionedError(I,`emitter: a bound effect ('${typeof I[1]==="string"?I[1]:"…"} ~> …') has no component-body reading — `+"the handle would bind nothing; use a bare `~> …` effect, or bind the handle inside a method",e);if(E.effectBodyYields(I[2]))throw this.positionedError(I,"emitter: an effect ('~>') body cannot yield — the runtime calls the effect function (make the generator a named function the effect calls)",I);g.push(I);return}if(y(I)&&I[0]==="?"&&I.length===2){let e1=E.memberTarget(I[1]);if(e1!==null&&e1.isPublic){C(e1.name,"prop",I,!0),f.push({name:e1.name,value:void 0,isPublic:!0,required:!1,optional:!0,node:I});return}N(I)}if(E.isTypedWrapper(I)){let e1=E.memberTarget(I[1]);if(e1!==null&&e1.isPublic){C(e1.name,"prop",I,!0),f.push({name:e1.name,value:void 0,isPublic:!0,required:!0,node:I});return}N(I)}if(y(I)&&I[0]==="."&&I[1]==="this"&&I.length===3&&typeof I[2]==="string"){C(I[2],"prop",I,!0),f.push({name:I[2],value:void 0,isPublic:!0,required:!0,node:I});return}if(y(I)&&(I[0]==="="||I[0]==="void-assign")&&I.length===3){let e1=E.memberTarget(I[1]);if(e1===null)N(I);let K=I[0]==="void-assign";if(E.COMPONENT_HOOKS.has(e1.name)){if(s1)W(I);if(!T1(I[2]))throw this.positionedError(I,`emitter: the lifecycle hook '${e1.name}' takes a function value — \`${e1.name} = -> …\``,e);C(e1.name,"hook",I,!1),m.push({name:e1.name,func:I[2],isVoid:K,node:I});return}if(T1(I[2])){C(e1.name,"method",I,!1),p.push({name:e1.name,func:I[2],isVoid:K,node:I});return}if(K)throw this.positionedError(I,"emitter: the void marker (a trailing '!' on the defined name) requires a function value — `save! = ->`",e);if(this.firstAwaitIn(I[2])!==null)throw this.positionedError(I,"emitter: a component member initializer cannot await or yield — _init runs synchronously during construction",e);C(e1.name,"plain",I,!1),h.push({name:e1.name,value:I[2],isPublic:e1.isPublic,node:I});return}if(O1(I)){if(s1)W(I);for(let e1 of I.slice(1)){if(!y(e1)||e1[0]!==":"&&e1[0]!=="void-pair"||typeof e1[1]!=="string"||!T1(e1[2]))N(I);let K=e1[0]==="void-pair";if(E.COMPONENT_HOOKS.has(e1[1]))C(e1[1],"hook",I,!1),m.push({name:e1[1],func:e1[2],isVoid:K,node:e1});else C(e1[1],"method",I,!1),p.push({name:e1[1],func:e1[2],isVoid:K,node:e1})}return}N(I)},W=(I)=>{throw this.positionedError(I,"emitter: offer takes a state declaration — `offer theme := v` — so every offered value is a "+"container an accept reads and writes",e)};for(let I of l){if(this.isOfferNode(I)){let s1=I[1];if(!(this.isReactiveDecl(s1)&&s1[0]==="state"))W(I);this.noteHeadKeyword("context-channel","offer",I),O(s1,!0);let e1=E.memberTarget(s1[1]);b.push(e1.name);continue}O(I,!1)}let H=[];for(let{name:I,isPublic:s1}of[...f,...c,...h])if(s1)H.push(I);if(s!==null){if(L.has("rest"))throw this.positionedError(L.get("rest"),"emitter: a component that extends a host cannot declare a member named 'rest' — `@rest` is the reactive "+"view of the undeclared caller props (the rest-forwarding seam)",e);if(T.set("rest","rest"),F.add("rest"),H.includes("asChild"))throw this.positionedError(L.get("asChild"),"emitter: a component that extends a host cannot declare a prop named 'asChild' — `asChild: true` at a "+"call site renders the projected element as the host, and the key is reserved beside key, ref, and children",e)}if(this.scopes.length===1&&typeof this._componentName==="string"){let I=this.moduleComponentNames.get(this._componentName);if(I!==void 0&&I!==e)throw this.positionedError(e,`emitter: component '${this._componentName}' is bound more than once at module scope — rebinding `+"clobbers the first class silently (existing instances keep the old identity) and the typed artifacts would merge two same-named companion interfaces; give each component its own name");this.moduleComponentNames.set(this._componentName,e)}let G=this.ts&&this.scopes.length===1&&typeof this._componentName==="string"?`__${this._componentName}__computed`:null,k=this.ts?Oi(this.stores,this.b.source,e,G):null;if(k)k.hostSpan=a,k.hostNodeId=o,k.appStashSpec=this.appStashSpec,k.routesUnion=this.routesUnion,k.routeParams=this.routeParams;if(k!==null)this.componentInfo.set(e,k);let v=new Map;for(let I of k?.members??[]){let s1=E.memberLabel(I);if(s1!==null)v.set(I.name,{label:s1,optional:I.optional===!0})}if(s!==null)v.set("rest",{label:"rest",optional:!1});let j={members:T,memberReactive:F,memberKinds:v,name:this._componentName,extendsTag:n,extendsComponent:i,plainWrites:new Map,renderPlainReads:new Set},X=this.ind,x=" ".repeat(X+1),Z=x+" ";this.cframes.push(j),this.rframes.push({reactive:new Set,bound:new Set,members:T,memberReactive:F,memberKinds:v});let U=this.methodName;this.methodName=null;let r1=[...[...c,...h,...f].map((I)=>I.value),...u.map((I)=>I.value).filter((I)=>!(b1(I)&&I.length>2))].filter((I)=>I!==void 0),{entries:Q,names:l1}=this.scopedHoist(r1,[],{declareInPlace:!1});this.mark(e,"$self",()=>{if(this.b.emit("class"),this.ts&&this._componentTypeParams){let{text:M,owner:n1}=this._componentTypeParams;this.b.tsOnly(()=>this.mark(n1,"typeParams",()=>this.emitTypeText(n1,"typeParams",M)))}if(this.b.emit(` extends ${this.runtimeName("__Component")} { `),k!==null)this.tsComponentMemberDeclares(k,x);if(d.length>0)this.b.emit(`${x}static __gates = [`),d.forEach((M,n1)=>{if(n1>0)this.b.emit(", ");if(!(this.ts&&k!==null&&k.members.some((z)=>z.node===M.node&&this.gateTwinSource(z,k)!==null))){this.noteVocabulary("gate-prefix","stash",M.pathNode);for(let z of M.keyParts??[])this.noteSilence(z,M.key)}this.mark(M.node,"$self",()=>{this.mark(M.node,"operator",()=>{}),this.mark(M.node,"rhs",()=>{if(M.key===null)this.emitQuotedPrimitive(M.path);else{if(this.b.emit("{ path: "),this.emitQuotedPrimitive(M.path),this.b.emit(", key: (params"),this.ts)this.b.tsOnly(()=>this.b.emit(": Record"));if(this.b.emit(", query"),this.ts)this.b.tsOnly(()=>this.b.emit(": Record"));this.b.emit(") => "),this.mark(M.node,"key",()=>{this.mark(M.key,"$self",()=>{if(M.keyParts===null){this.b.emit(M.keyCode);return}M.keyParts.forEach((z,q)=>{if(q>0)this.b.emit(".");this.emitPrimitive(z)})})}),this.b.emit(" }")}})})}),this.b.emit(`]; `);if(H.length>0)this.b.emit(`${x}static __props = [${H.map((M)=>`'${M}'`).join(", ")}]; -`);if(n!==null){if(this.b.emit(`${x}static __extends = `),s!==null)this.emitQuotedPrimitive(s);else this.b.emit(`'${i}'`);this.b.emit(`; -`)}if(this.scopes.length===1&&typeof this._componentName==="string")this.componentNames.push(this._componentName);if(this.hmr&&this.modulePath&&this.scopes.length===1&&typeof this._componentName==="string")this.emitComponentHmrMeta(x,{bindingName:this._componentName,declaredProps:H,stateVars:h,derivedVars:u,gateVars:d,extendsTag:n,methods:p,hooks:m,hasRender:R!==null});if(k!==null)this.tsComponentCtor(k,x);if(this.b.emit(x),k!==null)this.b.tsOnly(()=>this.b.emit("private "));if(this.b.emit("_init(__given"),k!==null)this.b.tsOnly(()=>{this.b.emit(": "),this.emitDeclaredTypeCopies(Hs(k,{road:"face"}))});if(this.b.emit(`) { +`);if(s!==null){if(this.b.emit(`${x}static __extends = `),n!==null)this.emitQuotedPrimitive(n);else this.b.emit(`'${i}'`);this.b.emit(`; +`)}if(this.scopes.length===1&&typeof this._componentName==="string")this.componentNames.push(this._componentName);if(this.hmr&&this.modulePath&&this.scopes.length===1&&typeof this._componentName==="string")this.emitComponentHmrMeta(x,{bindingName:this._componentName,declaredProps:H,stateVars:f,derivedVars:u,gateVars:d,extendsTag:s,methods:p,hooks:m,hasRender:R!==null});if(k!==null)this.tsComponentCtor(k,x);if(this.b.emit(x),k!==null)this.b.tsOnly(()=>this.b.emit("private "));if(this.b.emit("_init(__given"),k!==null)this.b.tsOnly(()=>{this.b.emit(": "),this.emitDeclaredTypeCopies(Hs(k,{road:"face"}))});if(this.b.emit(`) { `),this.scopes.push(l1),this.rframes.push({reactive:new Set,bound:l1}),Q.length)this.b.emit(Z),this.hoistLine(Q,Z),this.b.emit(` `);let I=(M,n1)=>{this.renderDirectives(M,Z),this.b.emit(Z),this.mark(M,"$self",n1),this.b.emit(`; -`)},s1=(M,n1)=>{this.mark(M,"value",()=>this.withExpression(()=>{let _=E.needsGrouping(n1,"operand");if(_)this.b.emit("(");if(this.expr(n1),_)this.b.emit(")")}))},e1=(M,n1,_="target")=>{let z=this.b.offset;if(this.b.emit("this."),this.mark(M,_,()=>this.b.emit(n1)),this.ts){let q=this.stores.idOf(M),t1=q!==null?this.stores.role(q,_):null;if(t1&&typeof t1.sourceStart==="number")this.memberInitSites.push({key:[t1.sourceStart,t1.sourceEnd],site:[z,this.b.offset]})}},K=new Set(c),a1=[];if(k!==null)k.computedBodies=a1;let A=(M)=>{if(I(M.node,()=>{if(K.has(M)&&this.ts){let _=k?.members.find((z)=>z.node===M.node&&z.kind==="readonly");this.b.tsOnly(()=>this.b.emit("(")),this.b.emit("this"),this.b.tsOnly(()=>{this.b.emit(" as "),this.emitDeclaredTypeCopies(_?qs(_):"any"),this.b.emit(")")}),this.b.emit("."),this.mark(M.node,"target",()=>this.b.emit(M.name))}else e1(M.node,M.name);if(this.b.emit(" = "),M.isPublic)this.b.emit(`__given.${M.name} ?? `);let n1=this._componentName;if(this.isComponentDecl(M.value))this._componentName=M.name;s1(M.node,M.value),this._componentName=n1}),G!==null&&k!==null){let n1=k.members.find((_)=>_.node===M.node);if(n1!==void 0&&Qs(n1)){let _=this.capturedExprText(()=>s1(M.node,M.value));a1.push({name:M.name,code:_,block:!1})}}},V=(M)=>{let n1=L.get(M);I(n1,()=>{e1(n1,M,"name"),this.b.emit(` = ${this.runtimeName("getContext")}(`),this.mark(n1,"provider",()=>{let _=w.get(M);if(typeof _==="string")this.noteNameSpan(_);else this.expr(_)}),this.b.emit(`, '${M}')`)})},B=(M)=>{if(I(M.node,()=>{if(e1(M.node,M.name,M.value===void 0?"property":"target"),this.b.emit(` = ${this.runtimeName("__state")}(`),M.isPublic&&(M.required||M.value===void 0)){if(this.b.emit(`__given.__bind_${M.name}__ ?? __given.${M.name}`),M.required&&this.ts)this.b.tsOnly(()=>this.b.emit("!"))}else if(M.isPublic)this.b.emit(`__given.__bind_${M.name}__ ?? __given.${M.name} ?? `),s1(M.node,M.value);else s1(M.node,M.value);this.b.emit(")")}),G!==null&&k!==null){let n1=k.members.find((_)=>_.node===M.node);if(n1!==void 0&&ea(n1)){let _=this.capturedExprText(()=>s1(M.node,M.value));a1.push({name:M.name,code:_,block:!1})}}},i1=(M)=>{if(I(M.node,()=>{e1(M.node,M.name),this.b.emit(` = ${this.runtimeName("__computed")}(() => `),this.mark(M.node,"value",()=>this.withExpression(()=>this.computedBody(M.node,M.value,X+2))),this.b.emit(")")}),G===null||k===null)return;let n1=k.members.find((z)=>z.node===M.node&&z.kind==="computed");if(n1===void 0||n1.annotation!=null)return;let _=this.capturedExprText(()=>this.computedBody(M.node,M.value,0));a1.push({name:M.name,code:_,block:b1(M.value)&&M.value.length>2})},f1=(M,n1)=>{I(M.node,()=>{e1(M.node,M.name),this.b.emit(` = ${this.runtimeName("__gateBind")}(`),this.mark(M.node,"operator",()=>{}),this.mark(M.node,"rhs",()=>{this.b.emit(`this, ${n1}`)}),this.b.emit(")")})},h1=new Map;l.forEach((M,n1)=>{if(h1.set(M,n1),this.isOfferNode(M))h1.set(M[1],n1)});let u1=[...[...c,...f].map((M)=>({at:h1.get(M.node)??0,run:()=>A(M)})),...S.map((M)=>({at:h1.get(L.get(M))??0,run:()=>V(M)})),...h.map((M)=>({at:h1.get(M.node)??0,run:()=>B(M)})),...u.map((M)=>({at:h1.get(M.node)??0,run:()=>i1(M)}))].sort((M,n1)=>M.at-n1.at);for(let[M,n1]of d.entries())f1(n1,M);for(let M of u1)M.run();for(let M of b)I(L.get(M),()=>this.b.emit(`${this.runtimeName("setContext")}('${M}', this.${M})`));let p1=(M)=>{for(let n1 of g){let _=n1[2],z=this.containsAwait(_);this.b.emit(M),this.mark(n1,"$self",()=>{if(this.mark(n1,"operator",()=>this.b.emit(this.runtimeName("__effect"))),this.b.emit(z?"(async () => ":"(() => "),b1(_)&&_.length>2)this.mark(n1,"value",()=>this.withExpression(()=>{let q=this.liveStmts(_.slice(1),{forwards:!0}),{entries:t1,names:C}=this.scopedHoist(q,[]);for(let Y of this.pushReactiveFrame(q,C))C.add(Y);this.scopes.push(C),this.funcBlock(n1,_,q,X+2,t1),this.scopes.pop(),this.rframes.pop()}));else{let q=b1(_)?_[1]:_,{entries:t1,names:C}=this.scopedHoist([q],[]);if(this.scopes.push(C),this.rframes.push({reactive:new Set,bound:C}),this.b.emit("{ "),t1.length)this.hoistLine(t1),this.b.emit(" ");this.b.emit("return "),this.mark(n1,"value",()=>this.withExpression(()=>{let Y=E.needsGrouping(q,"operand")||O1(q);if(Y)this.b.emit("(");if(this.expr(q),Y)this.b.emit(")")})),this.b.emit("; }"),this.scopes.pop(),this.rframes.pop()}this.b.emit(")")}),this.b.emit(`; +`)},s1=(M,n1)=>{this.mark(M,"value",()=>this.withExpression(()=>{let _=E.needsGrouping(n1,"operand");if(_)this.b.emit("(");if(this.expr(n1),_)this.b.emit(")")}))},e1=(M,n1,_="target")=>{let z=this.b.offset;if(this.b.emit("this."),this.mark(M,_,()=>this.b.emit(n1)),this.ts){let q=this.stores.idOf(M),t1=q!==null?this.stores.role(q,_):null;if(t1&&typeof t1.sourceStart==="number")this.memberInitSites.push({key:[t1.sourceStart,t1.sourceEnd],site:[z,this.b.offset]})}},K=new Set(c),a1=[];if(k!==null)k.computedBodies=a1;let A=(M)=>{if(I(M.node,()=>{if(K.has(M)&&this.ts){let _=k?.members.find((z)=>z.node===M.node&&z.kind==="readonly");this.b.tsOnly(()=>this.b.emit("(")),this.b.emit("this"),this.b.tsOnly(()=>{this.b.emit(" as "),this.emitDeclaredTypeCopies(_?qs(_):"any"),this.b.emit(")")}),this.b.emit("."),this.mark(M.node,"target",()=>this.b.emit(M.name))}else e1(M.node,M.name);if(this.b.emit(" = "),M.isPublic)this.b.emit(`__given.${M.name} ?? `);let n1=this._componentName;if(this.isComponentDecl(M.value))this._componentName=M.name;s1(M.node,M.value),this._componentName=n1}),G!==null&&k!==null){let n1=k.members.find((_)=>_.node===M.node);if(n1!==void 0&&Qs(n1)){let _=this.capturedExprText(()=>s1(M.node,M.value));a1.push({name:M.name,code:_,block:!1})}}},V=(M)=>{let n1=L.get(M);I(n1,()=>{e1(n1,M,"name"),this.b.emit(` = ${this.runtimeName("getContext")}(`),this.mark(n1,"provider",()=>{let _=w.get(M);if(typeof _==="string")this.noteNameSpan(_);else this.expr(_)}),this.b.emit(`, '${M}')`)})},B=(M)=>{if(I(M.node,()=>{if(e1(M.node,M.name,M.value===void 0?"property":"target"),this.b.emit(` = ${this.runtimeName("__state")}(`),M.isPublic&&(M.required||M.value===void 0)){if(this.b.emit(`__given.__bind_${M.name}__ ?? __given.${M.name}`),M.required&&this.ts)this.b.tsOnly(()=>this.b.emit("!"))}else if(M.isPublic)this.b.emit(`__given.__bind_${M.name}__ ?? __given.${M.name} ?? `),s1(M.node,M.value);else s1(M.node,M.value);this.b.emit(")")}),G!==null&&k!==null){let n1=k.members.find((_)=>_.node===M.node);if(n1!==void 0&&ea(n1)){let _=this.capturedExprText(()=>s1(M.node,M.value));a1.push({name:M.name,code:_,block:!1})}}},i1=(M)=>{if(I(M.node,()=>{e1(M.node,M.name),this.b.emit(` = ${this.runtimeName("__computed")}(() => `),this.mark(M.node,"value",()=>this.withExpression(()=>this.computedBody(M.node,M.value,X+2))),this.b.emit(")")}),G===null||k===null)return;let n1=k.members.find((z)=>z.node===M.node&&z.kind==="computed");if(n1===void 0||n1.annotation!=null)return;let _=this.capturedExprText(()=>this.computedBody(M.node,M.value,0));a1.push({name:M.name,code:_,block:b1(M.value)&&M.value.length>2})},h1=(M,n1)=>{I(M.node,()=>{e1(M.node,M.name),this.b.emit(` = ${this.runtimeName("__gateBind")}(`),this.mark(M.node,"operator",()=>{}),this.mark(M.node,"rhs",()=>{this.b.emit(`this, ${n1}`)}),this.b.emit(")")})},f1=new Map;l.forEach((M,n1)=>{if(f1.set(M,n1),this.isOfferNode(M))f1.set(M[1],n1)});let u1=[...[...c,...h].map((M)=>({at:f1.get(M.node)??0,run:()=>A(M)})),...S.map((M)=>({at:f1.get(L.get(M))??0,run:()=>V(M)})),...f.map((M)=>({at:f1.get(M.node)??0,run:()=>B(M)})),...u.map((M)=>({at:f1.get(M.node)??0,run:()=>i1(M)}))].sort((M,n1)=>M.at-n1.at);for(let[M,n1]of d.entries())h1(n1,M);for(let M of u1)M.run();for(let M of b)I(L.get(M),()=>this.b.emit(`${this.runtimeName("setContext")}('${M}', this.${M})`));let p1=(M)=>{for(let n1 of g){let _=n1[2],z=this.containsAwait(_);this.b.emit(M),this.mark(n1,"$self",()=>{if(this.mark(n1,"operator",()=>this.b.emit(this.runtimeName("__effect"))),this.b.emit(z?"(async () => ":"(() => "),b1(_)&&_.length>2)this.mark(n1,"value",()=>this.withExpression(()=>{let q=this.liveStmts(_.slice(1),{forwards:!0}),{entries:t1,names:P}=this.scopedHoist(q,[]);for(let Y of this.pushReactiveFrame(q,P))P.add(Y);this.scopes.push(P),this.funcBlock(n1,_,q,X+2,t1),this.scopes.pop(),this.rframes.pop()}));else{let q=b1(_)?_[1]:_,{entries:t1,names:P}=this.scopedHoist([q],[]);if(this.scopes.push(P),this.rframes.push({reactive:new Set,bound:P}),this.b.emit("{ "),t1.length)this.hoistLine(t1),this.b.emit(" ");this.b.emit("return "),this.mark(n1,"value",()=>this.withExpression(()=>{let Y=E.needsGrouping(q,"operand")||O1(q);if(Y)this.b.emit("(");if(this.expr(q),Y)this.b.emit(")")})),this.b.emit("; }"),this.scopes.pop(),this.rframes.pop()}this.b.emit(")")}),this.b.emit(`; `)}};if(this.hmr&&g.length>0)this.b.emit(`${Z}this._hmrBindEffects(); `);else p1(Z);if(this.rframes.pop(),this.scopes.pop(),this.b.emit(`${x}} `),this.hmr&&g.length>0)this.b.emit(`${x}_hmrBindEffects() { @@ -178,184 +178,184 @@ ${n??""}`);let h=()=>{if(f)this.b.emit(f);else this.expr(s)};if(this.b.emit("for `),this.scopes.push(l1),this.rframes.push({reactive:new Set,bound:l1});for(let M of u)this.b.emit(`${Z}this.${M.name}?.kill?.(); `),this.b.emit(Z),e1(M.node,M.name),this.b.emit(` = ${this.runtimeName("__computed")}(() => `),this.mark(M.node,"value",()=>this.withExpression(()=>this.computedBody(M.node,M.value,X+2))),this.b.emit(`); `);this.rframes.pop(),this.scopes.pop(),this.b.emit(`${x}} -`)}let c1=new Map;if(this.ts&&R!==null){let M=(n1,_)=>{if(!y(n1))return;let z=_,q=n1[0]==="switch"&&n1.length===4?null:E.templateHeadTag(n1);if(q==="object")z=O1(n1)&&n1.slice(1).some((t1)=>y(t1)&&t1[0]===":")?_:null;else if(q!==null&&$e.has(q))z={tag:q,svg:_?.svg===!0||hi.has(q)};else if(typeof n1[0]==="string"&&/^[A-Z]/.test(n1[0]))z=null;if(n1[0]===":"&&n1.length===3&&y(n1[1])&&n1[1][0]==="."&&n1[1][1]==="this"&&typeof n1[1][2]==="string"&&Ut.has(n1[1][2])){let t1=n1[2],C=typeof t1==="string"&&T.has(t1)?t1:y(t1)&&t1[0]==="."&&t1[1]==="this"&&t1.length===3&&typeof t1[2]==="string"&&T.has(t1[2])?t1[2]:null;if(C!==null){if(!c1.has(C))c1.set(C,{events:new Set,hosts:new Set,unknownHost:!1});let Y=c1.get(C);if(Y.events.add(n1[1][2]),_!==null&&ot(_.tag,_.svg))Y.hosts.add(xe(_.tag,_.svg));else Y.unknownHost=!0}}for(let t1 of n1)M(t1,z)};M(R,null)}let d1=({name:M,func:n1,isVoid:_,node:z})=>{let[,q,t1]=n1,C=c1.get(M),Y=C!==void 0&&!C.unknownHost&&C.hosts.size>0?[...C.hosts].join(" | "):null,o1=C!==void 0?this.tsEventTypeText([...C.events],Y):M==="onError"?Js:null;this.b.emit(x),this.mark(z,"$self",()=>{if(this.containsAwait(t1))this.b.emit("async ");if(E.containsYield(t1))this.b.emit("*");this.mark(z,"target",()=>this.mark(z,"key",()=>this.b.emit(M))),this.b.emit("("),this.emitParams(q,o1),this.b.emit(")"),this.tsReturnAnnotation(n1,this.containsAwait(t1),_,E.containsYield(t1),z),this.b.emit(" "),this.mark(z,"value",()=>{this.methodBlock(n1,t1,X+1,{isConstructor:!1,binds:[],methodName:M,voidBody:_})})}),this.b.emit(` -`)};for(let M of p)d1(M);for(let M of m)d1(M);if(R!==null)this.renderBody(R,X,j);if(s!==null&&j.inheritedBound!==!0)throw this.positionedError(e,`emitter: this component extends '${s}' but its render never creates a '<${s}>' element `+"at class scope — rest props forward onto the FIRST class-scope element of the extended tag (at any "+"nesting depth; conditional branches and loop rows never bind it), and without one every caller prop lands nowhere");if(i!==null&&j.inheritedBound!==!0)throw this.positionedError(e,`emitter: this component extends '${i}' but its render never constructs a '${i}' `+"at class scope — rest props forward onto the FIRST class-scope construction of the extended component (at "+"any nesting depth; conditional branches and loop rows never bind it), and without one every caller prop lands nowhere");this.b.emit(" ".repeat(X)+"}")}),this.methodName=U;for(let[I,s1]of j.plainWrites)if(j.renderPlainReads.has(I))throw this.positionedError(s1,`emitter: writing to '${I}' silently freezes the render — it is a plain ('=') member and render `+"reads it, but render never re-runs for a non-reactive field; declare it with ':=' (state) if it changes");this.rframes.pop(),this.cframes.pop(),this.ind=X}renderBody(e,t,r){let s=" ".repeat(t+1),i=s+" ",n=this.rstate,a={kind:"class",name:null,parent:null,self:null,creates:[],setups:[],vars:null,locals:new Set,localDecls:new Map,bindings:new Set,refs:[],loopStack:[],stmts:[],forceNonStatic:!1,root:null,originNode:e,renameHazardNames:new Set};this.rstate={elCount:0,textCount:0,blockCount:0,svgDepth:0,fragChildren:new Map,tags:new Map,svgEls:new Set,pendingClassArgs:null,pendingClassEl:null,pad:i,frame:r,node:e,records:[],sink:a,classRecord:a,transitionSlot:null,suppressedPairs:new Set,slotSeen:!1,scopeDepth:this.scopes.length};let o=e[1],l=b1(o)?o.slice(1):[o];a.stmts=l,this.rframes.push({reactive:new Set,bound:a.bindings});let c;try{c=this.walkRenderRoot(l,a)}finally{this.rframes.pop()}if(this.closeRenderScope(a),this.b.emit(s),this.ts)this.b.tsOnly(()=>this.b.emit("private "));if(this.b.emit(`_create() { +`)}let c1=new Map;if(this.ts&&R!==null){let M=(n1,_)=>{if(!y(n1))return;let z=_,q=n1[0]==="switch"&&n1.length===4?null:E.templateHeadTag(n1);if(q==="object")z=O1(n1)&&n1.slice(1).some((t1)=>y(t1)&&t1[0]===":")?_:null;else if(q!==null&&$e.has(q))z={tag:q,svg:_?.svg===!0||fi.has(q)};else if(typeof n1[0]==="string"&&/^[A-Z]/.test(n1[0]))z=null;if(n1[0]===":"&&n1.length===3&&y(n1[1])&&n1[1][0]==="."&&n1[1][1]==="this"&&typeof n1[1][2]==="string"&&Ut.has(n1[1][2])){let t1=n1[2],P=typeof t1==="string"&&T.has(t1)?t1:y(t1)&&t1[0]==="."&&t1[1]==="this"&&t1.length===3&&typeof t1[2]==="string"&&T.has(t1[2])?t1[2]:null;if(P!==null){if(!c1.has(P))c1.set(P,{events:new Set,hosts:new Set,unknownHost:!1});let Y=c1.get(P);if(Y.events.add(n1[1][2]),_!==null&&ot(_.tag,_.svg))Y.hosts.add(xe(_.tag,_.svg));else Y.unknownHost=!0}}for(let t1 of n1)M(t1,z)};M(R,null)}let d1=({name:M,func:n1,isVoid:_,node:z})=>{let[,q,t1]=n1,P=c1.get(M),Y=P!==void 0&&!P.unknownHost&&P.hosts.size>0?[...P.hosts].join(" | "):null,o1=P!==void 0?this.tsEventTypeText([...P.events],Y):M==="onError"?Js:null;this.b.emit(x),this.mark(z,"$self",()=>{if(this.containsAwait(t1))this.b.emit("async ");if(E.containsYield(t1))this.b.emit("*");this.mark(z,"target",()=>this.mark(z,"key",()=>this.b.emit(M))),this.b.emit("("),this.emitParams(q,o1),this.b.emit(")"),this.tsReturnAnnotation(n1,this.containsAwait(t1),_,E.containsYield(t1),z),this.b.emit(" "),this.mark(z,"value",()=>{this.methodBlock(n1,t1,X+1,{isConstructor:!1,binds:[],methodName:M,voidBody:_})})}),this.b.emit(` +`)};for(let M of p)d1(M);for(let M of m)d1(M);if(R!==null)this.renderBody(R,X,j);if(n!==null&&j.inheritedBound!==!0)throw this.positionedError(e,`emitter: this component extends '${n}' but its render never creates a '<${n}>' element `+"at class scope — rest props forward onto the FIRST class-scope element of the extended tag (at any "+"nesting depth; conditional branches and loop rows never bind it), and without one every caller prop lands nowhere");if(i!==null&&j.inheritedBound!==!0)throw this.positionedError(e,`emitter: this component extends '${i}' but its render never constructs a '${i}' `+"at class scope — rest props forward onto the FIRST class-scope construction of the extended component (at "+"any nesting depth; conditional branches and loop rows never bind it), and without one every caller prop lands nowhere");this.b.emit(" ".repeat(X)+"}")}),this.methodName=U;for(let[I,s1]of j.plainWrites)if(j.renderPlainReads.has(I))throw this.positionedError(s1,`emitter: writing to '${I}' silently freezes the render — it is a plain ('=') member and render `+"reads it, but render never re-runs for a non-reactive field; declare it with ':=' (state) if it changes");this.rframes.pop(),this.cframes.pop(),this.ind=X}renderBody(e,t,r){let n=" ".repeat(t+1),i=n+" ",s=this.rstate,a={kind:"class",name:null,parent:null,self:null,creates:[],setups:[],vars:null,locals:new Set,localDecls:new Map,bindings:new Set,refs:[],loopStack:[],stmts:[],forceNonStatic:!1,root:null,originNode:e,renameHazardNames:new Set};this.rstate={elCount:0,textCount:0,blockCount:0,svgDepth:0,fragChildren:new Map,tags:new Map,svgEls:new Set,pendingClassArgs:null,pendingClassEl:null,pad:i,frame:r,node:e,records:[],sink:a,classRecord:a,transitionSlot:null,suppressedPairs:new Set,slotSeen:!1,scopeDepth:this.scopes.length};let o=e[1],l=b1(o)?o.slice(1):[o];a.stmts=l,this.rframes.push({reactive:new Set,bound:a.bindings});let c;try{c=this.walkRenderRoot(l,a)}finally{this.rframes.pop()}if(this.closeRenderScope(a),this.b.emit(n),this.ts)this.b.tsOnly(()=>this.b.emit("private "));if(this.b.emit(`_create() { `),this.mark(e,"$self",()=>this.mark(e,"body",()=>{this.withRecordContext(a,()=>{if(a.locals.size>0)this.b.emit(`${i}let ${[...a.locals].join(", ")}; `);this.replayCreates(a,i)}),this.b.emit(`${i}return ${c}; -`)})),this.b.emit(`${s}} -`),a.setups.length>0){if(this.b.emit(s),this.ts)this.b.tsOnly(()=>this.b.emit("private "));this.b.emit(`_setup() { -`),this.withRecordContext(a,()=>this.replaySetups(a,i)),this.b.emit(`${s}} -`)}for(let f of this.rstate.records)this.emitFactory(f,t,e);this.rstate=n}walkRenderRoot(e,t){if(e.length===0||e.length===1&&e[0]==="null")return"null";let r=this.walkChildStmts(e);if(t.kind==="class"&&this.rstate.fragChildren.has(r))this.renderLine(null,()=>this.b.emit(`this._nodes = [...${r}.childNodes]`));return r}walkChildStmts(e){let t=this.rstate,r=()=>{if(t.transitionSlot!==null&&t.transitionSlot.record===t.sink)t.transitionSlot=null},s=e.reduce((a,o)=>a+(this.isRenderBinding(o)?0:1),0);if(s===0){for(let o of e)this.renderNode(o);let a=this.newRenderVar("empty");return this.renderLine(null,()=>this.b.emit(`${a} = document.createComment('')`)),a}if(s===1){let a=null;for(let o of e){let l=this.renderNode(o);if(l!=null)a=l,r()}return a}let i=this.newRenderVar("frag");this.renderLine(null,()=>this.b.emit(`${i} = document.createDocumentFragment()`));let n=[];for(let a of e){let o=this.renderNode(a);if(o==null)continue;r(),this.renderLine(null,()=>this.b.emit(`${i}.appendChild(${o})`)),n.push(o)}return this.rstate.fragChildren.set(i,n),i}withRecordContext(e,t){let r=this.renderSelf,s=this.renderRecord;this.renderSelf=e.self,this.renderRecord=e,this.rframes.push({reactive:new Set,bound:e.bindings,block:!0,loopVars:e.bindings,loopBindings:E.loopBindingsOf(e)});try{t()}finally{this.rframes.pop(),this.renderSelf=r,this.renderRecord=s}}renderDirectives(e,t){if(!this.ts||!this.tsDirectivesArmed||e==null||!y(e))return;let r=this.tsDirectiveMap.get(e);if(r===void 0)return;this.tsDirectiveMap.delete(e);for(let s of r)this.tsDirectiveLine(s,t,!0)}replayCreates(e,t){let r=this.replayPad;this.replayPad=t;try{for(let{node:s,fn:i,semi:n}of e.creates){if(this.renderDirectives(s,t),this.b.emit(t),s!=null)this.mark(s,"$self",i);else i();this.b.emit(n?`; +`)})),this.b.emit(`${n}} +`),a.setups.length>0){if(this.b.emit(n),this.ts)this.b.tsOnly(()=>this.b.emit("private "));this.b.emit(`_setup() { +`),this.withRecordContext(a,()=>this.replaySetups(a,i)),this.b.emit(`${n}} +`)}for(let h of this.rstate.records)this.emitFactory(h,t,e);this.rstate=s}walkRenderRoot(e,t){if(e.length===0||e.length===1&&e[0]==="null")return"null";let r=this.walkChildStmts(e);if(t.kind==="class"&&this.rstate.fragChildren.has(r))this.renderLine(null,()=>this.b.emit(`this._nodes = [...${r}.childNodes]`));return r}walkChildStmts(e){let t=this.rstate,r=()=>{if(t.transitionSlot!==null&&t.transitionSlot.record===t.sink)t.transitionSlot=null},n=e.reduce((a,o)=>a+(this.isRenderBinding(o)?0:1),0);if(n===0){for(let o of e)this.renderNode(o);let a=this.newRenderVar("empty");return this.renderLine(null,()=>this.b.emit(`${a} = document.createComment('')`)),a}if(n===1){let a=null;for(let o of e){let l=this.renderNode(o);if(l!=null)a=l,r()}return a}let i=this.newRenderVar("frag");this.renderLine(null,()=>this.b.emit(`${i} = document.createDocumentFragment()`));let s=[];for(let a of e){let o=this.renderNode(a);if(o==null)continue;r(),this.renderLine(null,()=>this.b.emit(`${i}.appendChild(${o})`)),s.push(o)}return this.rstate.fragChildren.set(i,s),i}withRecordContext(e,t){let r=this.renderSelf,n=this.renderRecord;this.renderSelf=e.self,this.renderRecord=e,this.rframes.push({reactive:new Set,bound:e.bindings,block:!0,loopVars:e.bindings,loopBindings:E.loopBindingsOf(e)});try{t()}finally{this.rframes.pop(),this.renderSelf=r,this.renderRecord=n}}renderDirectives(e,t){if(!this.ts||!this.tsDirectivesArmed||e==null||!y(e))return;let r=this.tsDirectiveMap.get(e);if(r===void 0)return;this.tsDirectiveMap.delete(e);for(let n of r)this.tsDirectiveLine(n,t,!0)}replayCreates(e,t){let r=this.replayPad;this.replayPad=t;try{for(let{node:n,fn:i,semi:s}of e.creates){if(this.renderDirectives(n,t),this.b.emit(t),n!=null)this.mark(n,"$self",i);else i();this.b.emit(s?`; `:` -`)}}finally{this.replayPad=r}}replaySetups(e,t){for(let r of e.setups)if(r.kind==="effect"){this.renderDirectives(r.node,t),this.b.emit(t);let s=()=>{this.b.emit(`${this.runtimeName("__effect")}(() => { `);let i=this._narrowedReads;this._narrowedReads=this.narrowedReadNames();try{this.narrowGuard(),r.fn()}finally{this._narrowedReads=i}this.b.emit(" })")};if(r.node!=null)this.mark(r.node,"$self",s);else if(r.within!=null){let i=this.b.claimWithin;this.b.claimWithin=r.within;try{s()}finally{this.b.claimWithin=i}}else s();this.b.emit(`; -`)}else{if(r.node!=null)this.renderDirectives(r.node,t);r.fn(t)}}renderLine(e,t,r=!0){this.rstate.sink.creates.push({node:e,fn:t,semi:r})}newRenderVar(e="el"){let t=this.rstate.elCount++,r=this.rstate.sink;if(r.kind==="class")return`this._${e}${t}`;let s=`_${e}${t}`;return r.vars.add(s),s}newRenderText(){let e=this.rstate.textCount++,t=this.rstate.sink;if(t.kind==="class")return`this._t${e}`;let r=`_t${e}`;return t.vars.add(r),r}newBlockName(){let e;do e=`create_block_${this.rstate.blockCount++}`;while(this.rstate.frame.members.has(e)||this.rstate.frame.members.has(`${e}_iter`));return e}renderEffect(e,t,r){if(r!==void 0)this.checkSetupLocalRefs(r,e);let s=e==null?this._textOwner:null,i=s!=null?this.stores.idOf(s):null,n=i!=null?[this.stores.node(i).sourceStart,this.stores.node(i).sourceEnd]:null;this.rstate.sink.setups.push({kind:"effect",node:e,fn:t,within:n})}checkSetupLocalRefs(e,t){let r=this.rstate.sink;if(r.kind!=="class"||r.locals.size===0)return;if(Ee(e,r.locals))throw this.positionedError(t??e,"emitter: a render local cannot appear in a LIVE binding or a dynamic block head at the render top level — "+"locals live in _create() and reactive machinery lives in _setup() (a compiled read here would be a mount-time ReferenceError); bind the value to a member instead",y(e)?e:this.rstate.node)}renderExpr(e){let t=null;return this.withExpression(()=>{let r=E.needsGrouping(e,"operand");if(r)this.b.emit("(");let s=this.b.offset;if(this.expr(e),t=[s,this.b.offset],r)this.b.emit(")")}),t}renderVarKind(e,t){let r=this.rstate;if(!r)return null;if(r.sink.locals.has(e))return"local";for(let s=r.sink.loopStack.length-1;s>=0;s--){let i=r.sink.loopStack[s];if(i.itemVar===e||i.indexVar===e)return i.reactiveSource?"loop-reactive":"loop"}if(t!==void 0){for(let s=r.sink.parent;s;s=s.parent)if(s.locals.has(e))throw this.positionedError(t,`emitter: render local '${e}' is not visible here — each dynamic block (a conditional branch, a loop body) `+"is its own factory function, and render locals never cross that boundary; declare the local inside this block, or use a member",this.rstate.node)}return null}renderReactive(e){if(typeof e==="string"){let i=this.renderVarKind(e);if(i!==null)return i==="loop-reactive";let n=this.resolveBareRead(e);return n==="reactive"||n==="member-reactive"}if(!y(e))return!1;if(e[0]==="."&&e[1]==="this"&&e.length===3&&typeof e[2]==="string")return this.memberIsReactive(e[2]);let t=(i)=>{if(typeof i!=="string"||i==="this"||this.renderVarKind(i)!==null)return!1;let n=this.resolveBareRead(i);return n==="member"||n===null&&(this.inScope(i)||this.moduleBound!==void 0&&this.moduleBound.has(i))},r=(i)=>{while(y(i)&&(i[0]==="."||i[0]==="[]")&&i.length===3)i=i[1];return i==="this"||t(i)},s=(i)=>{while(y(i)&&(i[0]==="."||i[0]==="[]"||i[0]==="?."||i[0]==="optindex")&&i.length===3)i=i[1];return typeof i==="string"&&this.renderVarKind(i)==="loop-reactive"};if(e[0]==="."&&e.length===3&&r(e[1]))return!0;if((e[0]==="."||e[0]==="[]")&&e.length===3&&s(e))return!0;if(y(e[0])&&e[0][0]==="."&&e[0][1]==="this"&&typeof e[0][2]==="string"&&this.cframes.length>0&&this.cframes[this.cframes.length-1].members.has(e[0][2]))return!0;return e.some((i)=>this.renderReactive(i))}isRenderBinding(e){return y(e)&&la.has(e[0])&&e.length===3&&typeof e[1]==="string"&&ft.test(e[1])}renderSpreadError(e,t=null){return this.positionedError(e,t!==null?"emitter: a spread has no reading on a child component — pass each prop as a named pair; to forward the "+`caller's undeclared props onto '${t}', declare the wrapper \`component extends ${t}\` and construct it in the render`:"emitter: a spread has no render reading — an element takes named attribute pairs, and `= expr` renders ONE value",this.rstate.node)}renderNode(e){if(this.isRenderBinding(e))return this.renderBinding(e);if(dt(e))throw this.renderSpreadError(e);if(y(e)&<(e[0])&&e.length===3)throw this.positionedError(e,"emitter: an assignment at a render child position must declare a render local (`name = expr` / compound forms "+"on a plain name) — member and chain writes have no render reading here; put the write in a handler or method");if(typeof e==="string"){if(e.startsWith('"')||e.startsWith("'")||e.startsWith("`")){let c=this.newRenderText();return this.renderLine(null,()=>this.b.emit(`${c} = document.createTextNode(${e})`)),c}let n=this.renderVarKind(e,e);if(n!==null){let c=this.newRenderText();if(n==="loop-reactive")this.renderLine(null,()=>this.b.emit(`${c} = document.createTextNode('')`)),this.renderEffect(null,()=>this.b.emit(`${c}.data = ${e};`));else this.renderLine(null,()=>this.b.emit(`${c} = document.createTextNode(String(${e}))`));return c}let a=this.resolveBareRead(e);if(a==="reactive"||a==="member-reactive"){let c=this.newRenderText();return this.renderLine(null,()=>this.b.emit(`${c} = document.createTextNode('')`)),this.renderEffect(null,()=>{this.b.emit(`${c}.data = `),this.expr(e),this.b.emit(";")}),c}if(e==="slot")return this.renderSlot(e,[]);if(K1(e))return this.renderChildComponent(e,e,[]);if(a==="member"){let c=this.newRenderText();return this.renderLine(null,()=>{this.b.emit(`${c} = document.createTextNode(String(`),this.expr(e),this.b.emit("))")}),c}let[o,l]=e.split("#");return this.renderTag(e,o||"div",[],[],l)}if(!y(e))throw this.positionedError(e,"emitter: unsupported render child");let t=e[0],r=typeof t==="string"?t:null;if(r==="if"&&e.length>=3)return this.renderCond(e);if(r==="switch"&&e.length===4)return this.renderSwitch(e);if(r==="for-in"&&e.length===6)return this.renderLoop(e);if(r==="for-of"&&e.length===6)throw this.positionedError(e,"emitter: `for … of` (object iteration) has no reconcile reading inside render — "+"__reconcile expects an array and crashes at mount; iterate entries instead: `for pair in Object.entries(obj)`");if(r==="for-as"&&e.length===6)throw this.positionedError(e,"emitter: an async loop has no render reading — reconciliation is synchronous; collect the items into a state "+"member and loop over it");if(r==="comprehension"||r==="while"||r==="loop")throw this.positionedError(e,"emitter: only `for … in` drives list rendering — while/loop/comprehensions have no reconcile reading inside "+"render");if(this.isEffectDecl(e)||this.isReactiveDecl(e)||this.isReadonlyDecl(e))throw this.positionedError(e,"emitter: declarations and effects have no render-body reading — declare members in the component body, above render");if(r==="slot")return this.renderSlot(e,e.slice(1));if(r!==null&&K1(r))return this.renderChildComponent(e,r,e.slice(1));if(r==="."&&e[1]==="this"&&typeof e[2]==="string")throw this.positionedError(e,`emitter: bare \`@${e[2]}\` is not rendered as text — use \`= @${e[2]}\` to render it`);let s=pi(e);if(s!==null)return this.renderChildComponent(e,{text:s,node:e},[]);let i=y(t)?pi(t):null;if(i!==null)return this.renderChildComponent(e,{text:i,node:t},e.slice(1));if(r==="."){let{tag:n,classes:a,id:o}=E.collectTemplateClasses(e);if(n!==null&&te(n)&&this.renderVarKind(n)===null)return this.renderTag(e,n,a,[],o);return this.renderTextExpr(e)}if(r==="__text__"){if(e.length>2)throw this.positionedError(e,"emitter: the `= expr` text form takes ONE expression — an indented continuation under the `=` line has no "+"render reading (inside render a leading `.` starts a NEW element, so the continuation cannot be a method chain; put the whole expression on the `=` line, or bind it in a method)",this.rstate.node);if(dt(e[1]))throw this.renderSpreadError(e[1]);return this.renderTextExpr(e[1]??"undefined",e,!0)}if(r!==null&&te(r.split("#")[0])&&e.length>=1&&this.renderVarKind(r)===null){let[n,a]=r.split("#");return this.renderTag(e,n||"div",[],e.slice(1),a)}if(y(t)){if(y(t[0])&&t[0][0]==="."&&t[0][2]==="__clsx"){let l=t[0][1],c=t.slice(1);if(y(l)){let{tag:f,classes:h,id:u}=E.collectTemplateClasses(l);if(f!==null&&te(f))return this.renderDynamicTag(e,f,c,e.slice(1),h,u)}else if(typeof l==="string"&&te(l.split("#")[0])){let[f,h]=l.split("#");return this.renderDynamicTag(e,f||"div",c,e.slice(1),[],h)}}let{tag:n,classes:a,id:o}=E.collectTemplateClasses(t);if(n!==null&&te(n)&&this.renderVarKind(n)===null){if(a.length>0&&a[a.length-1]==="__clsx")return this.renderDynamicTag(e,n,e.slice(1),[],a.slice(0,-1),o);return this.renderTag(e,n,a,e.slice(1),o)}}if(r==="->"||r==="=>")return this.renderChildBlock(e[2]);return this.renderTextExpr(e)}renderTextExpr(e,t=null,r=!1){let s=this.newRenderText(),i=t??(y(e)?e:null);this.checkCrossScopeLocals(e,i??this.rstate.node);let n=(a)=>{if(r&&t!==null)this.mark(t,"args",a);else a()};if(this.renderReactive(e))this.renderLine(i,()=>this.b.emit(`${s} = document.createTextNode('')`)),this.renderEffect(i,()=>{if(this.b.emit(`${s}.data = `),r)this.b.emit("String("),n(()=>this.renderExpr(e)),this.b.emit(")");else this.renderExpr(e);this.b.emit(";")},e);else this.renderLine(i,()=>{this.b.emit(`${s} = document.createTextNode(String(`),n(()=>this.withExpression(()=>this.expr(e))),this.b.emit("))")});return s}bindInheritedTarget(e,t,r,s){let i=this.rstate;if(i.frame.extendsTag!==t||i.sink.kind!=="class"||i.frame.inheritedBound===!0)return;if(i.frame.inheritedBound=!0,this.renderLine(e,()=>this.b.emit(`this._inheritedEl = ${r}`)),s.length>0)this.renderLine(e,()=>this.b.emit(`this._inheritedOwn = new Set([${s.map((n)=>JSON.stringify(n)).join(", ")}])`));this.renderLine(e,()=>this.b.emit("this._applyRestToInheritedEl()"))}elementOwnKeys(e,t,r){let s=new Set;if(r)s.add("id");if(e)s.add("class");let i=(n)=>{for(let a of n.slice(1)){if(!y(a)||a.length!==3||typeof a[1]!=="string")continue;let o=a[1];s.add(o.startsWith('"')&&o.endsWith('"')?o.slice(1,-1):o)}};for(let n of t)if(O1(n))i(n);else if(T1(n)&&b1(n[2])){for(let a of n[2].slice(1))if(O1(a))i(a)}for(let n of["ref","key"])s.delete(n);for(let n of[...s])if(n.startsWith("__"))s.delete(n);if(s.has("class")||s.has("className"))s.add("class"),s.add("className");return[...s]}renderElementPrologue(e,t){let r=this.rstate,s=this.newRenderVar();if(r.tags.set(s,t),r.transitionSlot!==null&&r.transitionSlot.record===r.sink&&r.transitionSlot.el===null)r.transitionSlot.el=s;let i=r.svgDepth>0||hi.has(t);if(i)r.svgEls.add(s);return this.renderLine(e,()=>{if(i)this.b.emit(`${s} = document.createElementNS('${E.SVG_NS}', `);else this.b.emit(`${s} = document.createElement(`);let n=this.emitQuotedPrimitive(t);if(n!==null&&ot(t,i))this.intrinsics.push({start:n[0],end:n[1],kind:"tag",tag:t,svg:i});this.b.emit(")")}),{el:s,isSvg:i}}renderElementBasics(e,t,r,s,i){let n=this.rstate;if(s)this.renderLine(e,()=>this.b.emit(`${r}.id = '${s}'`));if(this.bindInheritedTarget(e,t,r,i),n.frame.name!==null&&n.elCount===1&&n.sink.kind==="class")this.renderLine(e,()=>this.b.emit(`${r}.setAttribute('data-part', '${n.frame.name}')`))}renderTag(e,t,r,s,i){this.noteShorthandClasses(r,e);let n=this.rstate,{el:a,isSvg:o}=this.renderElementPrologue(e,t);this.renderElementBasics(e,t,a,i,this.elementOwnKeys(r.length>0,s,i));let{pendingClassArgs:l,pendingClassEl:c,pendingClassKeys:f}=n;if(r.length>0)n.pendingClassArgs=[`'${r.join(" ")}'`],n.pendingClassEl=a,n.pendingClassKeys=null;if(o)n.svgDepth++;if(this.renderChildren(a,s,e),o)n.svgDepth--;if(r.length>0){if(n.pendingClassArgs.length===1)this.renderLine(e,()=>this.b.emit(o?`${a}.setAttribute('class', '${r.join(" ")}')`:`${a}.className = '${r.join(" ")}'`));else{let h=n.pendingClassArgs.slice(1),u=n.pendingClassKeys??[],d=this.tsElReceiver(a);this.renderEffect(e,()=>{let p=this.runtimeName("__clsx");if(o){d.emit();let m=this.b.offset+1;this.b.emit(`.setAttribute('class', ${p}('${r.join(" ")}', `);for(let g of u)this.intrinsics.push({start:g[0],end:g[1],kind:"attr",name:"class",gen:m})}else{d.emit(),this.b.emit(".");let m=this.b.offset;this.b.emit(`className = ${p}('${r.join(" ")}', `);for(let g of u)this.intrinsics.push({start:g[0],end:g[1],kind:"classkey",gen:m})}h.forEach((m,g)=>{if(g>0)this.b.emit(", ");m()}),this.b.emit(o?"));":");")})}n.pendingClassKeys=f,n.pendingClassArgs=l,n.pendingClassEl=c}return a}renderDynamicTag(e,t,r,s,i,n){this.noteShorthandClasses(i,e);let a=this.rstate,{el:o,isSvg:l}=this.renderElementPrologue(e,t);this.renderElementBasics(e,t,o,n,this.elementOwnKeys(!0,s,n));for(let p of r)this.checkCrossScopeLocals(p,e);let{pendingClassArgs:c,pendingClassEl:f,pendingClassKeys:h}=a;if(a.pendingClassArgs=[...i.map((p)=>`'${p}'`),...r.map((p)=>()=>this.renderExpr(p))],a.pendingClassEl=o,a.pendingClassKeys=null,l)a.svgDepth++;if(this.renderChildren(o,s,e),l)a.svgDepth--;let u=a.pendingClassArgs,d=a.pendingClassKeys??[];if(u.length>0)this.renderEffect(e,()=>{let p=this.runtimeName("__clsx");this.b.emit(`${o}`);let m=this.b.offset+1;this.b.emit(l?`.setAttribute('class', ${p}(`:`.className = ${p}(`);for(let g of d)this.intrinsics.push(l?{start:g[0],end:g[1],kind:"attr",name:"class",gen:m}:{start:g[0],end:g[1],kind:"classkey",gen:m});u.forEach((g,b)=>{if(b>0)this.b.emit(", ");if(typeof g==="string")this.b.emit(g);else g()}),this.b.emit(l?"));":");")});return a.pendingClassKeys=h,a.pendingClassArgs=c,a.pendingClassEl=f,o}renderChildBlock(e){if(!b1(e)){let r=this.renderNode(e);if(r!=null)return r;let s=this.newRenderVar("empty");return this.renderLine(null,()=>this.b.emit(`${s} = document.createComment('')`)),s}let t=e.slice(1);if(t.length===0){let r=this.newRenderVar("empty");return this.renderLine(null,()=>this.b.emit(`${r} = document.createComment('')`)),r}return this.walkChildStmts(t)}renderChildren(e,t,r=null){let s=this._textOwner;this._textOwner=r;try{this.renderChildrenOf(e,t,r)}finally{this._textOwner=s}}renderChildrenOf(e,t,r){for(let s=0;s0)throw this.positionedError(i,"emitter: a parameterized function is not a render child — element children arrows carry no parameters "+"(an indented `.method (v) -> …` continuation re-reads as a NEW element inside render; put the chain on one "+"line or bind it in a method)",this.rstate.node);let n=i[2];if(b1(n))for(let a=1;athis.b.emit(`${e}.appendChild(${l})`))}}else if(n){if(!this.renderOwnLineWord(e,n,[n],0,r)){let a=this.renderNode(n);if(a!=null)this.renderLine(null,()=>this.b.emit(`${e}.appendChild(${a})`))}}continue}if(O1(i)){this.renderAttributes(e,i);continue}if(typeof i==="string"){let n=i.split(/[#.]/)[0],a=n===i?this.renderVarKind(i,i):null;if(a!==null){let l=this.newRenderText();if(a==="loop-reactive")this.renderLine(null,()=>this.b.emit(`${l} = document.createTextNode('')`)),this.renderEffect(null,()=>{this.b.emit(`${l}.data = `),this.emitPrimitive(i),this.b.emit(";")});else this.renderLine(null,()=>{this.b.emit(`${l} = document.createTextNode(`),this.emitPrimitive(i),this.b.emit(")")});this.renderLine(null,()=>this.b.emit(`${e}.appendChild(${l})`));continue}if(te(n||"div")){let l=this.renderNode(i);this.renderLine(null,()=>this.b.emit(`${e}.appendChild(${l})`));continue}if(K1(n)&&n===i){let l=this.renderChildComponent(i,i,[]);this.renderLine(null,()=>this.b.emit(`${e}.appendChild(${l})`));continue}if(/^[A-Za-z_$][\w$]*$/.test(i)&&this.resolveBareRead(i)===null&&!this.inScope(i)){this.renderBareAttribute(e,i,t,s,r);continue}let o=this.newRenderText();if(i.startsWith('"')||i.startsWith("'")||i.startsWith("`"))this.renderLine(null,()=>this.b.emit(`${o} = document.createTextNode(${i})`));else{let l=this.resolveBareRead(i);if(l==="reactive"||l==="member-reactive")this.renderLine(null,()=>this.b.emit(`${o} = document.createTextNode('')`)),this.renderEffect(null,()=>{this.b.emit(`${o}.data = `),this.expr(i),this.b.emit(";")});else if(l==="member")this.renderLine(null,()=>{this.b.emit(`${o} = document.createTextNode(String(`),this.expr(i),this.b.emit("))")});else this.renderLine(null,()=>{this.b.emit(`${o} = document.createTextNode(`),this.expr(i),this.b.emit(")")})}this.renderLine(null,()=>this.b.emit(`${e}.appendChild(${o})`));continue}if(i!=null){let n=this.renderNode(i);this.renderLine(null,()=>this.b.emit(`${e}.appendChild(${n})`))}}}renderTagOf(e){return this.rstate.tags?.get(e)??"div"}renderBareAttribute(e,t,r,s,i){let n=this.renderTagOf(e),a=null;if(this.ts&&!di(n,t)){let c=this.bareChildSpan(r,s,i);if(c!==null)a=c,this.intrinsics.push({start:c[0],end:c[1],kind:"unknown-attr",tag:n,name:t,message:this.unknownAttrMessage(n,t,{bare:!0,svg:this.rstate?.svgEls?.has(e)===!0})})}let o=this.tsElReceiver(e),l=a===null?null:this.stores.idOf(i);this.renderLine(null,()=>{if(o.emit(),this.b.emit(".setAttribute("),l!==null)this.b.markSpan(l,"identifier",a[0],a[1],()=>this.emitQuotedPrimitive(t));else this.emitQuotedPrimitive(t);this.b.emit(", '')")})}renderOwnLineWord(e,t,r,s,i){if(typeof t!=="string"||!/^[A-Za-z_$][\w$]*$/.test(t))return!1;if(te(t)||K1(t))return!1;if(this.renderVarKind(t,t)!==null)return!1;if(this.resolveBareRead(t)!==null||this.inScope(t))return!1;return this.renderBareAttribute(e,t,r,s,i),!0}claimSlot(e){let t=this.rstate,r=e??this.rstate.node;if(t.sink.loopStack.length>0)throw this.positionedError(r,"emitter: `slot` inside a loop row has no working reading — `children` is ONE node, and every row would fight "+"over it; project it once, outside the loop",this.rstate.node);if(t.slotSeen)throw this.positionedError(r,"emitter: a second `slot` in one render — `children` is ONE node, and a second projection point MOVES it "+"",this.rstate.node);t.slotSeen=!0,this.noteVocabulary("render-channel","slot",r)}childrenReadText(){return`${this.renderSelf??"this"}.children${this.memberIsReactive("children")?".value":""}`}emitChildrenRead(e){if(this.b.emit(`${this.renderSelf??"this"}.`),e!==null)this.intrinsics.push({start:e[0],end:e[1],kind:"slot",gen:this.b.offset});if(this.b.emit("children"),this.memberIsReactive("children"))this.b.emit(".value")}renderSlot(e,t){let r=y(e)?e:null;if(t.length>0)throw this.positionedError(r??e,"emitter: `slot` takes no arguments — fallback content has no "+"reading here (render it through a conditional around the slot)",this.rstate.node);this.claimSlot(r);let s=this.newRenderVar("slot"),i=this.ts?this.wordSpanIn("slot",r??this.rstate.node):null;return this.renderLine(r,()=>{let n=this.childrenReadText();this.b.emit(`${s} = `),this.emitChildrenRead(i),this.b.emit(` instanceof Node ? ${n} : (${n} != null ? document.createTextNode(String(${n})) : document.createComment(''))`)}),s}renderChildComponent(e,t,r){let s=this.rstate,i=s.sink,n=y(e)?e:null,a=typeof t==="string"?null:t;if(a!==null)t=a.text;let o=a!==null?Wt(a.text):t,l=(A)=>{if(this.ts&&A!==null)this.componentUses.push({start:A[0],end:A[1],name:t})},c;if(a!==null){if(this.renderVarKind(o)===null&&this.resolveBareRead(o)===null&&!this.inScope(o)&&!(this.moduleBound!==void 0&&this.moduleBound.has(o)))throw this.positionedError(n??e,`emitter: component '${t}' is not defined in this module — a child component's path starts at a module `+`binding, an import, or a component member, and '${o}' is none of these`,this.rstate.node);let A=this.stores.idOf(a.node)??null;c=()=>{l(A!==null?this.stores.selfSpan(A):null),this.renderExpr(a.node)}}else if(this.renderVarKind(t)!==null)c=()=>l(this.emitPrimitive(t));else{let A=this.resolveBareRead(t);if(A==="member"||A==="member-reactive")c=()=>{if(this.b.emit(`${this.renderSelf??"this"}.`),l(this.emitPrimitive(t)),A==="member-reactive")this.b.emit(".value")};else if(A==="reactive")c=()=>{l(this.emitPrimitive(t)),this.b.emit(".value")};else if(this.inScope(t)||this.moduleBound!==void 0&&this.moduleBound.has(t))c=()=>l(this.emitPrimitive(t));else throw this.positionedError(n??e,`emitter: component '${t}' is not defined in this module — a child component must be a module binding, `+"an import, or a component member (an undefined name would degrade to a comment placeholder at mount)",this.rstate.node)}let f=this.newRenderVar("inst"),h=this.newRenderVar("el"),u=s.frame.extendsComponent===t&&i.kind==="class"&&s.frame.inheritedBound!==!0&&this.renderVarKind(o)===null&&this.resolveBareRead(o)===null;if(u)s.frame.inheritedBound=!0;let d=[],p=[],m=[],g=[],b=new Map,S={prop:"an explicit `children:` prop",body:"element body content",slot:"a nested `slot`"},w=null,R=(A,V,B="prop")=>{let i1=A.startsWith("__bind_")&&A.endsWith("__")?A.slice(7,-2):A;if(b.has(i1)){if(i1==="children")throw this.positionedError(V??n??e,`emitter: this child component receives \`children\` TWICE — ${S[w]} beside ${S[B]}; give the children ONE spelling: the element body (indented or inline), the explicit \`children:\` prop, or a nested \`slot\` forwarding the received children`,this.rstate.node);throw this.positionedError(V??n??e,`emitter: duplicate prop '${i1}' on a child component — duplicate keys emit one object literal where the `+"last silently wins, and on an extends child the pair leaves two live writers racing over the inherited element; pass one value per prop",this.rstate.node)}if(b.set(i1,V??null),i1==="children")w=B},T=(A)=>{if(dt(A))throw this.renderSpreadError(A,t);if(!y(A)||A.length!==3)throw this.positionedError(A,"emitter: unsupported attribute form on a child component",n??this.rstate.node);if(s.suppressedPairs.has(A))return;let[,V,B]=A;if(y(V)&&V[0]==="."&&V[1]==="this"&&typeof V[2]==="string"){this.checkBareEventHandler(A,B),this.checkCrossScopeLocals(B,A),m.push({pair:A,event:V[2],value:B});return}if(H(A),typeof V!=="string")throw this.positionedError(A,"emitter: computed prop keys are not supported on a child component",n??this.rstate.node);let i1=V.startsWith('"')&&V.endsWith('"')?V.slice(1,-1):V;if(i1==="__transition__")throw this.positionedError(A,"emitter: a transition directive has no child-component reading — the enter/leave phases animate ELEMENTS "+"; put it on the branch's first element, inside the child's own render",this.rstate.node);if(i1==="ref")throw this.positionedError(A,"emitter: `ref:` captures ELEMENTS — on a child component it has no reading "+"(a dead prop, silently); put the ref on an element inside the child, or emit the instance through an event",this.rstate.node);if(i1==="key")throw this.positionedError(A,"emitter: `key:` identifies loop rows — it is read only on the FIRST element of a `for` body inside render; "+"anywhere else it would leak into the DOM as an attribute",this.rstate.node);if(R(i1,A),i1.startsWith("__bind_")&&i1.endsWith("__")){this.checkUserSpelledBind(A),this.noteVocabulary("render-channel",i1,A);let h1=i1.slice(7,-2),u1=this.childContainerRef(B);if(u1!==null){d.push({pair:A,key:V,fn:u1});return}let p1=(c1,d1)=>this.positionedError(A,`emitter: \`${h1} <=> …\` on a child component shares a reactive CONTAINER, and ${c1} ; ${d1}`,this.rstate.node);if(typeof B==="string"&&this.renderVarKind(B)===null){let c1=this.resolveBareRead(B);if(c1==="member")throw p1(`'${B}' is a plain member`,"declare it with ':=' to share it");if(c1===null&&!this.inScope(B))throw p1(`'${B}' is not declared`,"bind a reactive member or module reactive name")}if(y(B)&&B[0]==="."&&B[1]==="this"&&B.length===3&&typeof B[2]==="string")throw p1(`'@${B[2]}' is not a reactive member`,"declare it with ':=' to share it");if(typeof B!=="string"&&!E.isChainNode(B))throw p1("this expression is never a container","bind a reactive member or module reactive name");this.checkCrossScopeLocals(B,A),d.push({pair:A,key:V,fn:()=>this.renderExpr(B)});return}this.addChildProp(d,p,A,V,i1,B)},F=(A,V)=>{throw this.positionedError(A,`emitter: bare '${V}' under a child component is ambiguous — it names an HTML element AND a `+`value in scope, and the value would win silently; render the value with \`= ${V}\`, or give the element content or attributes`,this.rstate.node)},L=(A,V)=>{R(V,null),d.push({pair:null,key:V,span:O(V),fn:()=>this.b.emit("true")})},P=n!==null&&this.stores.idOf(n)!==null?this.stores.selfSpan(this.stores.idOf(n)):null,N=P!==null&&this.b.source!==null?P[0]:null,D=(A)=>{if(N===null||A==null)return;if(y(A)){let V=this.stores.idOf(A),B=V!==null?this.stores.selfSpan(V):null;N=B!==null?Math.max(N,B[1]):null;return}if(typeof A==="string"){let V=this.b.source.indexOf(A,N);N=V>=0&&V+A.length<=P[1]?V+A.length:null;return}N=null},O=(A)=>{if(N===null)return null;let V=new RegExp(`(?P[1])return null;return N=B.index+A.length,[B.index,B.index+A.length]},W=new Map,H=(A)=>{if(!this.tsDirectivesArmed)return;let V=this.tsDirectiveMap.get(A);if(V===void 0)return;this.tsDirectiveMap.delete(A),W.set(A,[...W.get(A)??[],...V])},G=(A)=>{if(!this.tsDirectivesArmed)return;let V=this.tsDirectiveMap.get(A);if(V===void 0)return;let B=A.slice(1).find((i1)=>y(i1));if(B===void 0||s.suppressedPairs.has(B))return;this.tsDirectiveMap.delete(A),this.tsDirectiveMap.set(B,[...V,...this.tsDirectiveMap.get(B)??[]])},k=[],v=!1,j=(A)=>!y(A)&&!(typeof A==="string"&&((te(A.split(/[#.]/)[0])||K1(A.split(/[#.]/)[0]))&&this.renderVarKind(A)===null&&this.resolveBareRead(A)===null)),X=(A)=>{if(A==null)return;if(dt(A))throw this.renderSpreadError(A,t);let V=typeof A==="string"&&ft.test(A)&&this.renderVarKind(A)===null&&this.resolveBareRead(A)===null;if(V&&(te(A)||A==="slot")&&(this.inScope(A)||this.moduleBound.has(A)))F(n??this.rstate.node,A);if(V&&A==="slot"){v=!0,D(A),k.push(A);return}if(V&&!this.inScope(A)&&!this.moduleBound.has(A)){L(n??this.rstate.node,A);return}D(A),k.push(A)};for(let A of r)if(O1(A)){G(A);for(let V of A.slice(1))T(V);D(A)}else if(T1(A)){if(y(A[1])&&A[1].length>0)throw this.positionedError(A,`emitter: a parameterized function is not a render child — the children of '${t}' arrive as a bare block (a callback the component should run is passed as a named prop)`,this.rstate.node);let V=A[2],B=b1(V)?V.slice(1):V!=null?[V]:[];for(let i1 of B)if(O1(i1)){G(i1);for(let f1 of i1.slice(1))T(f1);D(i1)}else X(i1)}else X(A);let x=(A)=>{if(!j(A))return this.renderNode(A);this.checkCrossScopeLocals(A,n??this.rstate.node);let V=this.newRenderText();if(this.renderReactive(A))this.renderLine(n,()=>this.b.emit(`${V} = document.createTextNode('')`)),this.renderEffect(n,()=>{this.b.emit(`${V}.data = `),this.renderExpr(A),this.b.emit(";")},A);else this.renderLine(n,()=>{this.b.emit(`${V} = document.createTextNode(`),this.renderExpr(A),this.b.emit(")")});return V},Z=null,U=k.filter((A)=>!this.isRenderBinding(A));if(U.length===1&&v){R("children",null,"slot"),this.claimSlot(n);let A=this.ts?this.wordSpanIn("slot",n??this.rstate.node):null;for(let V of k)if(V!=="slot")x(V);d.push({pair:null,key:"children",fn:()=>this.emitChildrenRead(A)})}else if(U.length===1)R("children",null,"body"),Z=()=>{let A=null;for(let V of k){let B=x(V);if(B!=null)A=B}return A};else if(U.length>1)R("children",null,"body"),Z=()=>{let A=this.newRenderVar("frag");this.renderLine(null,()=>this.b.emit(`${A} = document.createDocumentFragment()`));for(let V of k){let B=x(V);if(B!=null)this.renderLine(null,()=>this.b.emit(`${A}.appendChild(${B})`))}return A};else for(let A of k)x(A);let r1=new Set([...i.bindings,...i.locals]);if(i.vars!==null)for(let A of i.vars)r1.add(A);if(y(e))E.collectLeafNames(e,r1);let Q=E.mintName("__prev",r1),l1=E.mintName("__kid",r1),I=E.mintName("__childErr",r1);if(i.kind!=="class")i.hasKids=!0;let s1=(A)=>this.renderLine(n,A,!1),e1=()=>this.renderSelf??"this",K=this.projectionHost;this.threadProjectionHost(K);let a1=()=>K!==null&&K.startsWith("this.")?`${e1()}.${K.slice(5)}`:K;if(s1(()=>this.b.emit(K!==null?`{ const ${Q} = ${a1()}._beginProjection(${e1()}); try {`:`{ const ${Q} = ${this.runtimeName("__pushComponent")}(${e1()}); try {`)),s1(()=>this.b.emit("try {")),s1(()=>{if(this.b.emit(`${f} = new `),c(),this.b.emit("("),d.length===0)this.b.emit(u?`{ ...${e1()}._rest }`:"{}");else{let A=W.size>0,V=this.replayPad+" ";if(this.b.emit(A?"{":"{ "),u)this.b.emit(A?` +`)}}finally{this.replayPad=r}}replaySetups(e,t){for(let r of e.setups)if(r.kind==="effect"){this.renderDirectives(r.node,t),this.b.emit(t);let n=()=>{this.b.emit(`${this.runtimeName("__effect")}(() => { `);let i=this._narrowedReads;this._narrowedReads=this.narrowedReadNames();try{this.narrowGuard(),r.fn()}finally{this._narrowedReads=i}this.b.emit(" })")};if(r.node!=null)this.mark(r.node,"$self",n);else if(r.within!=null){let i=this.b.claimWithin;this.b.claimWithin=r.within;try{n()}finally{this.b.claimWithin=i}}else n();this.b.emit(`; +`)}else{if(r.node!=null)this.renderDirectives(r.node,t);r.fn(t)}}renderLine(e,t,r=!0){this.rstate.sink.creates.push({node:e,fn:t,semi:r})}newRenderVar(e="el"){let t=this.rstate.elCount++,r=this.rstate.sink;if(r.kind==="class")return`this._${e}${t}`;let n=`_${e}${t}`;return r.vars.add(n),n}newRenderText(){let e=this.rstate.textCount++,t=this.rstate.sink;if(t.kind==="class")return`this._t${e}`;let r=`_t${e}`;return t.vars.add(r),r}newBlockName(){let e;do e=`create_block_${this.rstate.blockCount++}`;while(this.rstate.frame.members.has(e)||this.rstate.frame.members.has(`${e}_iter`));return e}renderEffect(e,t,r){if(r!==void 0)this.checkSetupLocalRefs(r,e);let n=e==null?this._textOwner:null,i=n!=null?this.stores.idOf(n):null,s=i!=null?[this.stores.node(i).sourceStart,this.stores.node(i).sourceEnd]:null;this.rstate.sink.setups.push({kind:"effect",node:e,fn:t,within:s})}checkSetupLocalRefs(e,t){let r=this.rstate.sink;if(r.kind!=="class"||r.locals.size===0)return;if(Ee(e,r.locals))throw this.positionedError(t??e,"emitter: a render local cannot appear in a LIVE binding or a dynamic block head at the render top level — "+"locals live in _create() and reactive machinery lives in _setup() (a compiled read here would be a mount-time ReferenceError); bind the value to a member instead",y(e)?e:this.rstate.node)}renderExpr(e){let t=null;return this.withExpression(()=>{let r=E.needsGrouping(e,"operand");if(r)this.b.emit("(");let n=this.b.offset;if(this.expr(e),t=[n,this.b.offset],r)this.b.emit(")")}),t}renderVarKind(e,t){let r=this.rstate;if(!r)return null;if(r.sink.locals.has(e))return"local";for(let n=r.sink.loopStack.length-1;n>=0;n--){let i=r.sink.loopStack[n];if(i.itemVar===e||i.indexVar===e)return i.reactiveSource?"loop-reactive":"loop"}if(t!==void 0){for(let n=r.sink.parent;n;n=n.parent)if(n.locals.has(e))throw this.positionedError(t,`emitter: render local '${e}' is not visible here — each dynamic block (a conditional branch, a loop body) `+"is its own factory function, and render locals never cross that boundary; declare the local inside this block, or use a member",this.rstate.node)}return null}renderReactive(e){if(typeof e==="string"){let i=this.renderVarKind(e);if(i!==null)return i==="loop-reactive";let s=this.resolveBareRead(e);return s==="reactive"||s==="member-reactive"}if(!y(e))return!1;if(e[0]==="."&&e[1]==="this"&&e.length===3&&typeof e[2]==="string")return this.memberIsReactive(e[2]);let t=(i)=>{if(typeof i!=="string"||i==="this"||this.renderVarKind(i)!==null)return!1;let s=this.resolveBareRead(i);return s==="member"||s===null&&(this.inScope(i)||this.moduleBound!==void 0&&this.moduleBound.has(i))},r=(i)=>{while(y(i)&&(i[0]==="."||i[0]==="[]")&&i.length===3)i=i[1];return i==="this"||t(i)},n=(i)=>{while(y(i)&&(i[0]==="."||i[0]==="[]"||i[0]==="?."||i[0]==="optindex")&&i.length===3)i=i[1];return typeof i==="string"&&this.renderVarKind(i)==="loop-reactive"};if(e[0]==="."&&e.length===3&&r(e[1]))return!0;if((e[0]==="."||e[0]==="[]")&&e.length===3&&n(e))return!0;if(y(e[0])&&e[0][0]==="."&&e[0][1]==="this"&&typeof e[0][2]==="string"&&this.cframes.length>0&&this.cframes[this.cframes.length-1].members.has(e[0][2]))return!0;return e.some((i)=>this.renderReactive(i))}isRenderBinding(e){return y(e)&&la.has(e[0])&&e.length===3&&typeof e[1]==="string"&&ht.test(e[1])}renderSpreadError(e,t=null){return this.positionedError(e,t!==null?"emitter: a spread has no reading on a child component — pass each prop as a named pair; to forward the "+`caller's undeclared props onto '${t}', declare the wrapper \`component extends ${t}\` and construct it in the render`:"emitter: a spread has no render reading — an element takes named attribute pairs, and `= expr` renders ONE value",this.rstate.node)}renderNode(e){if(this.isRenderBinding(e))return this.renderBinding(e);if(dt(e))throw this.renderSpreadError(e);if(y(e)&<(e[0])&&e.length===3)throw this.positionedError(e,"emitter: an assignment at a render child position must declare a render local (`name = expr` / compound forms "+"on a plain name) — member and chain writes have no render reading here; put the write in a handler or method");if(typeof e==="string"){if(e.startsWith('"')||e.startsWith("'")||e.startsWith("`")){let c=this.newRenderText();return this.renderLine(null,()=>this.b.emit(`${c} = document.createTextNode(${e})`)),c}let s=this.renderVarKind(e,e);if(s!==null){let c=this.newRenderText();if(s==="loop-reactive")this.renderLine(null,()=>this.b.emit(`${c} = document.createTextNode('')`)),this.renderEffect(null,()=>this.b.emit(`${c}.data = ${e};`));else this.renderLine(null,()=>this.b.emit(`${c} = document.createTextNode(String(${e}))`));return c}let a=this.resolveBareRead(e);if(a==="reactive"||a==="member-reactive"){let c=this.newRenderText();return this.renderLine(null,()=>this.b.emit(`${c} = document.createTextNode('')`)),this.renderEffect(null,()=>{this.b.emit(`${c}.data = `),this.expr(e),this.b.emit(";")}),c}if(e==="slot")return this.renderSlot(e,[]);if(K1(e))return this.renderChildComponent(e,e,[]);if(a==="member"){let c=this.newRenderText();return this.renderLine(null,()=>{this.b.emit(`${c} = document.createTextNode(String(`),this.expr(e),this.b.emit("))")}),c}let[o,l]=e.split("#");return this.renderTag(e,o||"div",[],[],l)}if(!y(e))throw this.positionedError(e,"emitter: unsupported render child");let t=e[0],r=typeof t==="string"?t:null;if(r==="if"&&e.length>=3)return this.renderCond(e);if(r==="switch"&&e.length===4)return this.renderSwitch(e);if(r==="for-in"&&e.length===6)return this.renderLoop(e);if(r==="for-of"&&e.length===6)throw this.positionedError(e,"emitter: `for … of` (object iteration) has no reconcile reading inside render — "+"__reconcile expects an array and crashes at mount; iterate entries instead: `for pair in Object.entries(obj)`");if(r==="for-as"&&e.length===6)throw this.positionedError(e,"emitter: an async loop has no render reading — reconciliation is synchronous; collect the items into a state "+"member and loop over it");if(r==="comprehension"||r==="while"||r==="loop")throw this.positionedError(e,"emitter: only `for … in` drives list rendering — while/loop/comprehensions have no reconcile reading inside "+"render");if(this.isEffectDecl(e)||this.isReactiveDecl(e)||this.isReadonlyDecl(e))throw this.positionedError(e,"emitter: declarations and effects have no render-body reading — declare members in the component body, above render");if(r==="slot")return this.renderSlot(e,e.slice(1));if(r!==null&&K1(r))return this.renderChildComponent(e,r,e.slice(1));if(r==="."&&e[1]==="this"&&typeof e[2]==="string")throw this.positionedError(e,`emitter: bare \`@${e[2]}\` is not rendered as text — use \`= @${e[2]}\` to render it`);let n=pi(e);if(n!==null)return this.renderChildComponent(e,{text:n,node:e},[]);let i=y(t)?pi(t):null;if(i!==null)return this.renderChildComponent(e,{text:i,node:t},e.slice(1));if(r==="."){let{tag:s,classes:a,id:o}=E.collectTemplateClasses(e);if(s!==null&&te(s)&&this.renderVarKind(s)===null)return this.renderTag(e,s,a,[],o);return this.renderTextExpr(e)}if(r==="__text__"){if(e.length>2)throw this.positionedError(e,"emitter: the `= expr` text form takes ONE expression — an indented continuation under the `=` line has no "+"render reading (inside render a leading `.` starts a NEW element, so the continuation cannot be a method chain; put the whole expression on the `=` line, or bind it in a method)",this.rstate.node);if(dt(e[1]))throw this.renderSpreadError(e[1]);return this.renderTextExpr(e[1]??"undefined",e,!0)}if(r!==null&&te(r.split("#")[0])&&e.length>=1&&this.renderVarKind(r)===null){let[s,a]=r.split("#");return this.renderTag(e,s||"div",[],e.slice(1),a)}if(y(t)){if(y(t[0])&&t[0][0]==="."&&t[0][2]==="__clsx"){let l=t[0][1],c=t.slice(1);if(y(l)){let{tag:h,classes:f,id:u}=E.collectTemplateClasses(l);if(h!==null&&te(h))return this.renderDynamicTag(e,h,c,e.slice(1),f,u)}else if(typeof l==="string"&&te(l.split("#")[0])){let[h,f]=l.split("#");return this.renderDynamicTag(e,h||"div",c,e.slice(1),[],f)}}let{tag:s,classes:a,id:o}=E.collectTemplateClasses(t);if(s!==null&&te(s)&&this.renderVarKind(s)===null){if(a.length>0&&a[a.length-1]==="__clsx")return this.renderDynamicTag(e,s,e.slice(1),[],a.slice(0,-1),o);return this.renderTag(e,s,a,e.slice(1),o)}}if(r==="->"||r==="=>")return this.renderChildBlock(e[2]);return this.renderTextExpr(e)}renderTextExpr(e,t=null,r=!1){let n=this.newRenderText(),i=t??(y(e)?e:null);this.checkCrossScopeLocals(e,i??this.rstate.node);let s=(a)=>{if(r&&t!==null)this.mark(t,"args",a);else a()};if(this.renderReactive(e))this.renderLine(i,()=>this.b.emit(`${n} = document.createTextNode('')`)),this.renderEffect(i,()=>{if(this.b.emit(`${n}.data = `),r)this.b.emit("String("),s(()=>this.renderExpr(e)),this.b.emit(")");else this.renderExpr(e);this.b.emit(";")},e);else this.renderLine(i,()=>{this.b.emit(`${n} = document.createTextNode(String(`),s(()=>this.withExpression(()=>this.expr(e))),this.b.emit("))")});return n}isInheritedTarget(e){let t=this.rstate;return t.frame.extendsTag===e&&t.sink.kind==="class"&&t.frame.inheritedBound!==!0}bindInheritedTarget(e,t,r,n){let i=this.rstate;if(!this.isInheritedTarget(t))return;if(i.frame.inheritedBound=!0,this.renderLine(e,()=>this.b.emit(`this._inheritedEl = ${r}`)),n.length>0)this.renderLine(e,()=>this.b.emit(`this._inheritedOwn = new Set([${n.map((s)=>JSON.stringify(s)).join(", ")}])`));this.renderLine(e,()=>this.b.emit("this._applyRestToInheritedEl()"))}elementOwnKeys(e,t,r){let n=new Set;if(r)n.add("id");if(e)n.add("class");let i=(s)=>{for(let a of s.slice(1)){if(!y(a)||a.length!==3||typeof a[1]!=="string")continue;let o=a[1];n.add(o.startsWith('"')&&o.endsWith('"')?o.slice(1,-1):o)}};for(let s of t)if(O1(s))i(s);else if(T1(s)&&b1(s[2])){for(let a of s[2].slice(1))if(O1(a))i(a)}for(let s of["ref","key"])n.delete(s);for(let s of[...n])if(s.startsWith("__"))n.delete(s);if(n.has("class")||n.has("className"))n.add("class"),n.add("className");return[...n]}renderElementPrologue(e,t){let r=this.rstate,n=this.newRenderVar();if(r.tags.set(n,t),r.transitionSlot!==null&&r.transitionSlot.record===r.sink&&r.transitionSlot.el===null)r.transitionSlot.el=n;let i=r.svgDepth>0||fi.has(t);if(i)r.svgEls.add(n);let s=this.isInheritedTarget(t);return this.renderLine(e,()=>{let a=this.renderSelf??"this";if(this.b.emit(`${n} = `),s)this.b.emit(`${a}._asChild ? ${a}._adoptChild() : `);if(i)this.b.emit(`document.createElementNS('${E.SVG_NS}', `);else this.b.emit("document.createElement(");let o=this.emitQuotedPrimitive(t);if(o!==null&&ot(t,i))this.intrinsics.push({start:o[0],end:o[1],kind:"tag",tag:t,svg:i});this.b.emit(")")}),{el:n,isSvg:i}}renderElementBasics(e,t,r,n,i){let s=this.rstate;if(n)this.renderLine(e,()=>this.b.emit(`${r}.id = '${n}'`));if(this.bindInheritedTarget(e,t,r,i),s.frame.name!==null&&s.elCount===1&&s.sink.kind==="class")this.renderLine(e,()=>this.b.emit(`${r}.setAttribute('data-part', '${s.frame.name}')`))}renderTag(e,t,r,n,i){this.noteShorthandClasses(r,e);let s=this.rstate,{el:a,isSvg:o}=this.renderElementPrologue(e,t);this.renderElementBasics(e,t,a,i,this.elementOwnKeys(r.length>0,n,i));let{pendingClassArgs:l,pendingClassEl:c,pendingClassKeys:h}=s;if(r.length>0)s.pendingClassArgs=[`'${r.join(" ")}'`],s.pendingClassEl=a,s.pendingClassKeys=null;if(o)s.svgDepth++;if(this.renderChildren(a,n,e),o)s.svgDepth--;if(r.length>0){if(s.pendingClassArgs.length===1)this.renderLine(e,()=>this.b.emit(o?`${a}.setAttribute('class', '${r.join(" ")}')`:`${a}.className = '${r.join(" ")}'`));else{let f=s.pendingClassArgs.slice(1),u=s.pendingClassKeys??[],d=this.tsElReceiver(a);this.renderEffect(e,()=>{let p=this.runtimeName("__clsx");if(o){d.emit();let m=this.b.offset+1;this.b.emit(`.setAttribute('class', ${p}('${r.join(" ")}', `);for(let g of u)this.intrinsics.push({start:g[0],end:g[1],kind:"attr",name:"class",gen:m})}else{d.emit(),this.b.emit(".");let m=this.b.offset;this.b.emit(`className = ${p}('${r.join(" ")}', `);for(let g of u)this.intrinsics.push({start:g[0],end:g[1],kind:"classkey",gen:m})}f.forEach((m,g)=>{if(g>0)this.b.emit(", ");m()}),this.b.emit(o?"));":");")})}s.pendingClassKeys=h,s.pendingClassArgs=l,s.pendingClassEl=c}return a}renderDynamicTag(e,t,r,n,i,s){this.noteShorthandClasses(i,e);let a=this.rstate,{el:o,isSvg:l}=this.renderElementPrologue(e,t);this.renderElementBasics(e,t,o,s,this.elementOwnKeys(!0,n,s));for(let p of r)this.checkCrossScopeLocals(p,e);let{pendingClassArgs:c,pendingClassEl:h,pendingClassKeys:f}=a;if(a.pendingClassArgs=[...i.map((p)=>`'${p}'`),...r.map((p)=>()=>this.renderExpr(p))],a.pendingClassEl=o,a.pendingClassKeys=null,l)a.svgDepth++;if(this.renderChildren(o,n,e),l)a.svgDepth--;let u=a.pendingClassArgs,d=a.pendingClassKeys??[];if(u.length>0)this.renderEffect(e,()=>{let p=this.runtimeName("__clsx");this.b.emit(`${o}`);let m=this.b.offset+1;this.b.emit(l?`.setAttribute('class', ${p}(`:`.className = ${p}(`);for(let g of d)this.intrinsics.push(l?{start:g[0],end:g[1],kind:"attr",name:"class",gen:m}:{start:g[0],end:g[1],kind:"classkey",gen:m});u.forEach((g,b)=>{if(b>0)this.b.emit(", ");if(typeof g==="string")this.b.emit(g);else g()}),this.b.emit(l?"));":");")});return a.pendingClassKeys=f,a.pendingClassArgs=c,a.pendingClassEl=h,o}renderChildBlock(e){if(!b1(e)){let r=this.renderNode(e);if(r!=null)return r;let n=this.newRenderVar("empty");return this.renderLine(null,()=>this.b.emit(`${n} = document.createComment('')`)),n}let t=e.slice(1);if(t.length===0){let r=this.newRenderVar("empty");return this.renderLine(null,()=>this.b.emit(`${r} = document.createComment('')`)),r}return this.walkChildStmts(t)}renderChildren(e,t,r=null){let n=this._textOwner;this._textOwner=r;try{this.renderChildrenOf(e,t,r)}finally{this._textOwner=n}}renderAppend(e,t){this.renderLine(null,()=>{let r=t===this.rstate.frame?.asChildSlot?`if (!${this.renderSelf??"this"}._asChild) `:"";this.b.emit(`${r}${e}.appendChild(${t})`)})}renderChildrenOf(e,t,r){for(let n=0;n0)throw this.positionedError(i,"emitter: a parameterized function is not a render child — element children arrows carry no parameters "+"(an indented `.method (v) -> …` continuation re-reads as a NEW element inside render; put the chain on one "+"line or bind it in a method)",this.rstate.node);let s=i[2];if(b1(s))for(let a=1;athis.b.emit(`${l} = document.createTextNode('')`)),this.renderEffect(null,()=>{this.b.emit(`${l}.data = `),this.emitPrimitive(i),this.b.emit(";")});else this.renderLine(null,()=>{this.b.emit(`${l} = document.createTextNode(`),this.emitPrimitive(i),this.b.emit(")")});this.renderLine(null,()=>this.b.emit(`${e}.appendChild(${l})`));continue}if(te(s||"div")){let l=this.renderNode(i);this.renderAppend(e,l);continue}if(K1(s)&&s===i){let l=this.renderChildComponent(i,i,[]);this.renderAppend(e,l);continue}if(/^[A-Za-z_$][\w$]*$/.test(i)&&this.resolveBareRead(i)===null&&!this.inScope(i)){this.renderBareAttribute(e,i,t,n,r);continue}let o=this.newRenderText();if(i.startsWith('"')||i.startsWith("'")||i.startsWith("`"))this.renderLine(null,()=>this.b.emit(`${o} = document.createTextNode(${i})`));else{let l=this.resolveBareRead(i);if(l==="reactive"||l==="member-reactive")this.renderLine(null,()=>this.b.emit(`${o} = document.createTextNode('')`)),this.renderEffect(null,()=>{this.b.emit(`${o}.data = `),this.expr(i),this.b.emit(";")});else if(l==="member")this.renderLine(null,()=>{this.b.emit(`${o} = document.createTextNode(String(`),this.expr(i),this.b.emit("))")});else this.renderLine(null,()=>{this.b.emit(`${o} = document.createTextNode(`),this.expr(i),this.b.emit(")")})}this.renderLine(null,()=>this.b.emit(`${e}.appendChild(${o})`));continue}if(i!=null){let s=this.renderNode(i);this.renderAppend(e,s)}}}renderTagOf(e){return this.rstate.tags?.get(e)??"div"}renderBareAttribute(e,t,r,n,i){let s=this.renderTagOf(e),a=null;if(this.ts&&!di(s,t)){let c=this.bareChildSpan(r,n,i);if(c!==null)a=c,this.intrinsics.push({start:c[0],end:c[1],kind:"unknown-attr",tag:s,name:t,message:this.unknownAttrMessage(s,t,{bare:!0,svg:this.rstate?.svgEls?.has(e)===!0})})}let o=this.tsElReceiver(e),l=a===null?null:this.stores.idOf(i);this.renderLine(null,()=>{if(o.emit(),this.b.emit(".setAttribute("),l!==null)this.b.markSpan(l,"identifier",a[0],a[1],()=>this.emitQuotedPrimitive(t));else this.emitQuotedPrimitive(t);this.b.emit(", '')")})}renderOwnLineWord(e,t,r,n,i){if(typeof t!=="string"||!/^[A-Za-z_$][\w$]*$/.test(t))return!1;if(te(t)||K1(t))return!1;if(this.renderVarKind(t,t)!==null)return!1;if(this.resolveBareRead(t)!==null||this.inScope(t))return!1;return this.renderBareAttribute(e,t,r,n,i),!0}claimSlot(e){let t=this.rstate,r=e??this.rstate.node;if(t.sink.loopStack.length>0)throw this.positionedError(r,"emitter: `slot` inside a loop row has no working reading — `children` is ONE node, and every row would fight "+"over it; project it once, outside the loop",this.rstate.node);if(t.slotSeen)throw this.positionedError(r,"emitter: a second `slot` in one render — `children` is ONE node, and a second projection point MOVES it "+"",this.rstate.node);t.slotSeen=!0,this.noteVocabulary("render-channel","slot",r)}childrenReadText(){return`${this.renderSelf??"this"}.children${this.memberIsReactive("children")?".value":""}`}emitChildrenRead(e){if(this.b.emit(`${this.renderSelf??"this"}.`),e!==null)this.intrinsics.push({start:e[0],end:e[1],kind:"slot",gen:this.b.offset});if(this.b.emit("children"),this.memberIsReactive("children"))this.b.emit(".value")}renderSlot(e,t){let r=y(e)?e:null;if(t.length>0)throw this.positionedError(r??e,"emitter: `slot` takes no arguments — fallback content has no "+"reading here (render it through a conditional around the slot)",this.rstate.node);this.claimSlot(r);let n=this.newRenderVar("slot");if(this.rstate.frame.extendsTag!==null&&this.rstate.sink.kind==="class")this.rstate.frame.asChildSlot=n;let i=this.ts?this.wordSpanIn("slot",r??this.rstate.node):null;return this.renderLine(r,()=>{let s=this.childrenReadText();this.b.emit(`${n} = `),this.emitChildrenRead(i),this.b.emit(` instanceof Node ? ${s} : (${s} != null ? document.createTextNode(String(${s})) : document.createComment(''))`)}),n}renderChildComponent(e,t,r){let n=this.rstate,i=n.sink,s=y(e)?e:null,a=typeof t==="string"?null:t;if(a!==null)t=a.text;let o=a!==null?Wt(a.text):t,l=(A)=>{if(this.ts&&A!==null)this.componentUses.push({start:A[0],end:A[1],name:t})},c;if(a!==null){if(this.renderVarKind(o)===null&&this.resolveBareRead(o)===null&&!this.inScope(o)&&!(this.moduleBound!==void 0&&this.moduleBound.has(o)))throw this.positionedError(s??e,`emitter: component '${t}' is not defined in this module — a child component's path starts at a module `+`binding, an import, or a component member, and '${o}' is none of these`,this.rstate.node);let A=this.stores.idOf(a.node)??null;c=()=>{l(A!==null?this.stores.selfSpan(A):null),this.renderExpr(a.node)}}else if(this.renderVarKind(t)!==null)c=()=>l(this.emitPrimitive(t));else{let A=this.resolveBareRead(t);if(A==="member"||A==="member-reactive")c=()=>{if(this.b.emit(`${this.renderSelf??"this"}.`),l(this.emitPrimitive(t)),A==="member-reactive")this.b.emit(".value")};else if(A==="reactive")c=()=>{l(this.emitPrimitive(t)),this.b.emit(".value")};else if(this.inScope(t)||this.moduleBound!==void 0&&this.moduleBound.has(t))c=()=>l(this.emitPrimitive(t));else throw this.positionedError(s??e,`emitter: component '${t}' is not defined in this module — a child component must be a module binding, `+"an import, or a component member (an undefined name would degrade to a comment placeholder at mount)",this.rstate.node)}let h=this.newRenderVar("inst"),f=this.newRenderVar("el"),u=n.frame.extendsComponent===t&&i.kind==="class"&&n.frame.inheritedBound!==!0&&this.renderVarKind(o)===null&&this.resolveBareRead(o)===null;if(u)n.frame.inheritedBound=!0;let d=[],p=[],m=[],g=[],b=new Map,S={prop:"an explicit `children:` prop",body:"element body content",slot:"a nested `slot`"},w=null,R=(A,V,B="prop")=>{let i1=A.startsWith("__bind_")&&A.endsWith("__")?A.slice(7,-2):A;if(b.has(i1)){if(i1==="children")throw this.positionedError(V??s??e,`emitter: this child component receives \`children\` TWICE — ${S[w]} beside ${S[B]}; give the children ONE spelling: the element body (indented or inline), the explicit \`children:\` prop, or a nested \`slot\` forwarding the received children`,this.rstate.node);throw this.positionedError(V??s??e,`emitter: duplicate prop '${i1}' on a child component — duplicate keys emit one object literal where the `+"last silently wins, and on an extends child the pair leaves two live writers racing over the inherited element; pass one value per prop",this.rstate.node)}if(b.set(i1,V??null),i1==="children")w=B},T=(A)=>{if(dt(A))throw this.renderSpreadError(A,t);if(!y(A)||A.length!==3)throw this.positionedError(A,"emitter: unsupported attribute form on a child component",s??this.rstate.node);if(n.suppressedPairs.has(A))return;let[,V,B]=A;if(y(V)&&V[0]==="."&&V[1]==="this"&&typeof V[2]==="string"){this.checkBareEventHandler(A,B),this.checkCrossScopeLocals(B,A),m.push({pair:A,event:V[2],value:B});return}if(H(A),typeof V!=="string")throw this.positionedError(A,"emitter: computed prop keys are not supported on a child component",s??this.rstate.node);let i1=V.startsWith('"')&&V.endsWith('"')?V.slice(1,-1):V;if(i1==="__transition__")throw this.positionedError(A,"emitter: a transition directive has no child-component reading — the enter/leave phases animate ELEMENTS "+"; put it on the branch's first element, inside the child's own render",this.rstate.node);if(i1==="ref")throw this.positionedError(A,"emitter: `ref:` captures ELEMENTS — on a child component it has no reading "+"(a dead prop, silently); put the ref on an element inside the child, or emit the instance through an event",this.rstate.node);if(i1==="key")throw this.positionedError(A,"emitter: `key:` identifies loop rows — it is read only on the FIRST element of a `for` body inside render; "+"anywhere else it would leak into the DOM as an attribute",this.rstate.node);if(R(i1,A),i1.startsWith("__bind_")&&i1.endsWith("__")){this.checkUserSpelledBind(A),this.noteVocabulary("render-channel",i1,A);let f1=i1.slice(7,-2),u1=this.childContainerRef(B);if(u1!==null){d.push({pair:A,key:V,fn:u1});return}let p1=(c1,d1)=>this.positionedError(A,`emitter: \`${f1} <=> …\` on a child component shares a reactive CONTAINER, and ${c1} ; ${d1}`,this.rstate.node);if(typeof B==="string"&&this.renderVarKind(B)===null){let c1=this.resolveBareRead(B);if(c1==="member")throw p1(`'${B}' is a plain member`,"declare it with ':=' to share it");if(c1===null&&!this.inScope(B))throw p1(`'${B}' is not declared`,"bind a reactive member or module reactive name")}if(y(B)&&B[0]==="."&&B[1]==="this"&&B.length===3&&typeof B[2]==="string")throw p1(`'@${B[2]}' is not a reactive member`,"declare it with ':=' to share it");if(typeof B!=="string"&&!E.isChainNode(B))throw p1("this expression is never a container","bind a reactive member or module reactive name");this.checkCrossScopeLocals(B,A),d.push({pair:A,key:V,fn:()=>this.renderExpr(B)});return}this.addChildProp(d,p,A,V,i1,B)},F=(A,V)=>{throw this.positionedError(A,`emitter: bare '${V}' under a child component is ambiguous — it names an HTML element AND a `+`value in scope, and the value would win silently; render the value with \`= ${V}\`, or give the element content or attributes`,this.rstate.node)},L=(A,V)=>{R(V,null),d.push({pair:null,key:V,span:O(V),fn:()=>this.b.emit("true")})},C=s!==null&&this.stores.idOf(s)!==null?this.stores.selfSpan(this.stores.idOf(s)):null,N=C!==null&&this.b.source!==null?C[0]:null,D=(A)=>{if(N===null||A==null)return;if(y(A)){let V=this.stores.idOf(A),B=V!==null?this.stores.selfSpan(V):null;N=B!==null?Math.max(N,B[1]):null;return}if(typeof A==="string"){let V=this.b.source.indexOf(A,N);N=V>=0&&V+A.length<=C[1]?V+A.length:null;return}N=null},O=(A)=>{if(N===null)return null;let V=new RegExp(`(?C[1])return null;return N=B.index+A.length,[B.index,B.index+A.length]},W=new Map,H=(A)=>{if(!this.tsDirectivesArmed)return;let V=this.tsDirectiveMap.get(A);if(V===void 0)return;this.tsDirectiveMap.delete(A),W.set(A,[...W.get(A)??[],...V])},G=(A)=>{if(!this.tsDirectivesArmed)return;let V=this.tsDirectiveMap.get(A);if(V===void 0)return;let B=A.slice(1).find((i1)=>y(i1));if(B===void 0||n.suppressedPairs.has(B))return;this.tsDirectiveMap.delete(A),this.tsDirectiveMap.set(B,[...V,...this.tsDirectiveMap.get(B)??[]])},k=[],v=!1,j=(A)=>!y(A)&&!(typeof A==="string"&&((te(A.split(/[#.]/)[0])||K1(A.split(/[#.]/)[0]))&&this.renderVarKind(A)===null&&this.resolveBareRead(A)===null)),X=(A)=>{if(A==null)return;if(dt(A))throw this.renderSpreadError(A,t);let V=typeof A==="string"&&ht.test(A)&&this.renderVarKind(A)===null&&this.resolveBareRead(A)===null;if(V&&(te(A)||A==="slot")&&(this.inScope(A)||this.moduleBound.has(A)))F(s??this.rstate.node,A);if(V&&A==="slot"){v=!0,D(A),k.push(A);return}if(V&&!this.inScope(A)&&!this.moduleBound.has(A)){L(s??this.rstate.node,A);return}D(A),k.push(A)};for(let A of r)if(O1(A)){G(A);for(let V of A.slice(1))T(V);D(A)}else if(T1(A)){if(y(A[1])&&A[1].length>0)throw this.positionedError(A,`emitter: a parameterized function is not a render child — the children of '${t}' arrive as a bare block (a callback the component should run is passed as a named prop)`,this.rstate.node);let V=A[2],B=b1(V)?V.slice(1):V!=null?[V]:[];for(let i1 of B)if(O1(i1)){G(i1);for(let h1 of i1.slice(1))T(h1);D(i1)}else X(i1)}else X(A);let x=(A)=>{if(!j(A))return this.renderNode(A);this.checkCrossScopeLocals(A,s??this.rstate.node);let V=this.newRenderText();if(this.renderReactive(A))this.renderLine(s,()=>this.b.emit(`${V} = document.createTextNode('')`)),this.renderEffect(s,()=>{this.b.emit(`${V}.data = `),this.renderExpr(A),this.b.emit(";")},A);else this.renderLine(s,()=>{this.b.emit(`${V} = document.createTextNode(`),this.renderExpr(A),this.b.emit(")")});return V},Z=null,U=k.filter((A)=>!this.isRenderBinding(A));if(U.length===1&&v){R("children",null,"slot"),this.claimSlot(s);let A=this.ts?this.wordSpanIn("slot",s??this.rstate.node):null;for(let V of k)if(V!=="slot")x(V);d.push({pair:null,key:"children",fn:()=>this.emitChildrenRead(A)})}else if(U.length===1)R("children",null,"body"),Z=()=>{let A=null;for(let V of k){let B=x(V);if(B!=null)A=B}return A};else if(U.length>1)R("children",null,"body"),Z=()=>{let A=this.newRenderVar("frag");this.renderLine(null,()=>this.b.emit(`${A} = document.createDocumentFragment()`));for(let V of k){let B=x(V);if(B!=null)this.renderLine(null,()=>this.b.emit(`${A}.appendChild(${B})`))}return A};else for(let A of k)x(A);let r1=new Set([...i.bindings,...i.locals]);if(i.vars!==null)for(let A of i.vars)r1.add(A);if(y(e))E.collectLeafNames(e,r1);let Q=E.mintName("__prev",r1),l1=E.mintName("__kid",r1),I=E.mintName("__childErr",r1);if(i.kind!=="class")i.hasKids=!0;let s1=(A)=>this.renderLine(s,A,!1),e1=()=>this.renderSelf??"this",K=this.projectionHost;this.threadProjectionHost(K);let a1=()=>K!==null&&K.startsWith("this.")?`${e1()}.${K.slice(5)}`:K;if(s1(()=>this.b.emit(K!==null?`{ const ${Q} = ${a1()}._beginProjection(${e1()}); try {`:`{ const ${Q} = ${this.runtimeName("__pushComponent")}(${e1()}); try {`)),s1(()=>this.b.emit("try {")),s1(()=>{if(this.b.emit(`${h} = new `),c(),this.b.emit("("),d.length===0)this.b.emit(u?`{ ...${e1()}._rest }`:"{}");else{let A=W.size>0,V=this.replayPad+" ";if(this.b.emit(A?"{":"{ "),u)this.b.emit(A?` ${V}...${e1()}._rest,`:`...${e1()}._rest, `);d.forEach((B,i1)=>{if(A){if(i1>0)this.b.emit(",");this.b.emit(` -`);let h1=B.pair!==null?W.get(B.pair):void 0;if(this.ts&&h1!==void 0)for(let u1 of h1)this.tsDirectiveLine(u1,V,!0);this.b.emit(V)}else if(i1>0)this.b.emit(", ");let f1=()=>{let h1=(p1)=>{let c1=this.b.offset,d1=p1();if(this.ts)this.attrNames.push([c1,this.b.offset]);if("routeKey"in B)B.routeKey=[c1,this.b.offset];if(this.ts&&d1!=null){let M=B.pair!==null?this.stores.idOf(B.pair):null,n1=M!==null?this.stores.selfSpan(M):null,_=[d1[0],d1[1]];this.renderPairs.push({key:_,pair:n1??_,sites:[[c1,this.b.offset]]})}},u1=y(n)?this.stores.idOf(n):null;if(this.ts&&B.span!=null&&u1!==null){h1(()=>(this.b.markSpan(u1,"shorthandProp",B.span[0],B.span[1],()=>this.b.emit(B.key)),[B.span[0],B.span[1]])),this.b.emit(": "),B.fn();return}if(B.key.startsWith("__bind_")&&B.key.endsWith("__"))h1(()=>{let p1=this.b.offset;this.b.emit("__bind_");let c1=this.emitRewrittenPrimitive(B.key,B.key.slice(7,-2));if(this.ts&&c1!==null)this.intrinsics.push({start:c1[0],end:c1[1],kind:"bind",name:B.key.slice(7,-2),gen:p1});return this.b.emit("__"),c1});else h1(()=>this.emitPrimitive(B.key));this.b.emit(": "),B.fn()};if(B.pair!==null&&this.stores.idOf(B.pair)!==null)this.mark(B.pair,"$self",f1);else f1()}),this.b.emit(A?` -${this.replayPad}}`:" }")}this.b.emit(");")}),s1(()=>this.b.emit(`if (${f} && ${f}._initFailed) {`)),s1(()=>this.b.emit(` ${f} = null;`)),s1(()=>this.b.emit(` ${h} = document.createComment('rip:child-init-failed: ${t}');`)),Z!==null){s1(()=>this.b.emit("} else {")),s1(()=>this.b.emit(`{ const ${l1} = ${f}._beginProjection(${e1()}); try {`));let A=this.projectionHost;this.projectionHost=f;let V=i.setups.length,B;try{B=Z()}finally{this.projectionHost=A}let i1=(h1)=>({kind:"raw",node:null,fn:(u1)=>{this.b.emit(`${u1}if (${f}) { -`),this.replaySetups({setups:h1},`${u1} `),this.b.emit(`${u1}} -`)}}),f1=[];for(let h1 of i.setups.splice(V)){if(h1.latch!==!0){f1.push(h1);continue}if(f1.length>0)i.setups.push(i1(f1));f1=[],i.setups.push(h1)}if(f1.length>0)i.setups.push(i1(f1));s1(()=>this.b.emit(`} finally { ${f}._endProjection(${l1}); } }`)),s1(()=>this.b.emit(`${f}._setChildren(${B});`))}if(s1(()=>{this.b.emit(Z!==null?"if (":"} else if (");let A=()=>this.b.emit(`${f}._mountCreate()`);if(n!==null)this.mark(n,"$self",A);else A();this.b.emit(") {")}),s1(()=>this.b.emit(` ${h} = ${f}._root;`)),u){let A=[...b.keys()].filter((V)=>V!=="children").map((V)=>JSON.stringify(V)).join(", ");s1(()=>this.b.emit(` ${e1()}._inheritedInst = ${f};`)),s1(()=>this.b.emit(` ${e1()}._inheritedOwn = new Set([${A}]);`))}if(i.kind==="class")s1(()=>this.b.emit(` (this._children || (this._children = [])).push(${f});`));else s1(()=>this.b.emit(` ${i.kidsVar}.push(${f});`));if(s1(()=>this.b.emit("} else {")),s1(()=>this.b.emit(` ${f} = null;`)),s1(()=>this.b.emit(` ${h} = document.createComment('rip:child-error: ${t}');`)),s1(()=>this.b.emit("}")),Z!==null)s1(()=>this.b.emit("}"));s1(()=>this.b.emit(`} catch (${I}) {`)),s1(()=>this.b.emit(` ${this.runtimeName("__reportChildFailure")}('${t}', ${I});`)),s1(()=>this.b.emit(` ${f} = null;`)),s1(()=>this.b.emit(` ${h} = document.createComment('rip:child-error: ${t}');`)),s1(()=>this.b.emit("}")),s1(()=>this.b.emit(K!==null?`} finally { ${a1()}._endProjection(${Q}); } }`:`} finally { ${this.runtimeName("__popComponent")}(${Q}); } }`));for(let{pair:A,event:V,value:B}of m){if(this.ts){let h1=y(A)&&y(A[1])?A[1]:null,u1=h1!==null?this.stores.idOf(h1)??null:null,p1=u1!==null?this.stores.selfSpan(u1):null;if(p1!==null)this.intrinsics.push({start:p1[0],end:p1[1],kind:"event",name:V,type:this.tsEventTypeText([V])!==null?`HTMLElementEventMap['${V}']`:null,child:t})}let i1=new Set;E.collectLeafNames(B,i1);let f1=E.mintName("e",i1);this.renderLine(A,()=>{let h1=`(${f}._nodes?.[0] ?? ${h})`;if(!this.ts)this.b.emit(`if (${f}) ${h1}.addEventListener('${V}', (${f1}`);else this.b.emit(`if (${f}) ${h1}.addEventListener(`),this.emitQuotedPrimitive(V),this.b.emit(`, (${f1}`);this.tsScaffoldAny(),this.b.emit(`) => ${this.runtimeName("__batch")}(() => (`),this.tsHandlerCast(()=>this.withExpression(()=>this.expr(B))),this.b.emit(`)(${f1})))`)})}i.setups.push({kind:"raw",latch:!0,fn:(A)=>{this.b.emit(A);let V=()=>{this.b.emit(`if (${f} && ${f}._state === 'mounting') { -${A} ${h} = ${f}._mountSetup(document.createComment('rip:child-error: ${t}')); -`);let B=this.rstate.fragChildren.get(i.root),i1=B!==void 0?B[0]:i.root;if(i.kind!=="class"&&i1===h){if(this.b.emit(`${A} `),this.ts)this.b.tsOnly(()=>this.b.emit("("));if(this.b.emit("this"),this.ts)this.b.tsOnly(()=>this.b.emit(" as any)"));this.b.emit(`._first = ${h}; -`)}this.b.emit(`${A}}`)};if(n!==null)this.mark(n,"$self",V);else V();this.b.emit(` -`)}});for(let{pair:A,key:V,value:B}of p){let i1=V.startsWith('"')&&V.endsWith('"')?V.slice(1,-1):V;this.renderEffect(A,()=>{this.b.emit(`if (${f}) ${f}._updateProp('${i1}', `),this.renderExpr(B),this.b.emit(");")},B)}return h}addChildProp(e,t,r,s,i,n){let a=this.childContainerRef(n);if(a!==null){e.push({pair:r,key:s,fn:a});return}if(this.checkCrossScopeLocals(n,r),this.ts&&this.routesUnion!==null&&i==="href"&&this.isRouteLiteralValue(n)){this._needsRouteHelper=!0;let l={pair:r,key:s,routeKey:null};l.fn=()=>{this.b.tsOnly(()=>this.b.emit("__ripRoute("));let c=this.b.offset;this.renderExpr(n);let f=this.b.offset;if(this.b.tsOnly(()=>this.b.emit(")")),l.routeKey!==null)this.routeWrapSpans.push({key:l.routeKey,value:[c,f]})},e.push(l)}else e.push({pair:r,key:s,fn:()=>this.renderExpr(n)});if(!T1(n)&&this.renderReactive(n))t.push({pair:r,key:s,value:n})}childContainerRef(e){if(typeof e==="string"){if(this.renderVarKind(e)!==null)return null;let t=this.resolveBareRead(e);if(t==="member-reactive")return this.narrowedContainer(e,()=>{this.b.emit(`${this.renderSelf??"this"}.`);let r=this.emitPrimitive(e);if(this.ts&&r!==null)this.memberDecls.push({start:r[0],end:r[1]});return r});if(t==="reactive")return this.narrowedContainer(e,()=>this.emitPrimitive(e));return null}if(y(e)&&e[0]==="."&&e[1]==="this"&&e.length===3&&typeof e[2]==="string"&&this.memberIsReactive(e[2]))return this.narrowedContainer(e[2],()=>(this.b.emit(`${this.renderSelf??"this"}.`),this.emitPrimitive(e[2])));return null}narrowedContainer(e,t){if(!this.ts)return t;return()=>{if(!this.activeNarrowed().some((i)=>i===e||y(i)&&i[0]==="."&&i[1]==="this"&&i.length===3&&i[2]===e))return t();this._needsNarrowedHelper=!0,this.b.tsOnly(()=>this.b.emit("__ripNarrowed("));let s=t();if(this.b.tsOnly(()=>this.b.emit(")")),s!=null)this.narrowedDecls.push({start:s[0],end:s[1]})}}isRouteLiteralValue(e){let t=(r)=>typeof r==="string"&&/^["'`]\//.test(r);return t(e)||y(e)&&e[0]==="str"&&t(e[1])}renderAttributes(e,t){let r=this.rstate;if(this.ts&&this.tsDirectivesArmed&&this.tsDirectiveMap.has(t)){let s=t.slice(1).find((n)=>y(n));if(s!==void 0&&s.length===3&&!r.suppressedPairs.has(s)&&(()=>{let n=s[1];if(typeof n!=="string")return!0;if(n.startsWith('"')&&n.endsWith('"'))n=n.slice(1,-1);if((n==="class"||n==="className")&&r.pendingClassArgs!==null&&r.pendingClassEl===e)return!1;if(n==="ref"&&this.rstate.sink.kind!=="class")return!1;return!0})()){let n=this.tsDirectiveMap.get(t);this.tsDirectiveMap.delete(t),this.tsDirectiveMap.set(s,[...n,...this.tsDirectiveMap.get(s)??[]])}}for(let s of t.slice(1)){if(dt(s))throw this.renderSpreadError(s);if(!y(s)||s.length!==3)throw this.positionedError(s,"emitter: unsupported attribute form in render",t);if(r.suppressedPairs.has(s))continue;let[,i,n]=s;this.checkCrossScopeLocals(n,s);let a=null;if(this.ts){let L=this.stores.idOf(s),P=L!==null?this.stores.selfSpan(L):null,N=this.b.source;if(P!==null&&N!==null){let D=P[0];while(DP[0])a={key:[P[0],D],pair:[P[0],P[1]],sites:[]},this.renderPairs.push(a)}}let o=(L)=>{if(a!==null&&L!==null&&L[1]>L[0])a.sites.push(L)},l=a!==null?a.key:null,c=(L)=>{if(l===null)return L();let P=this.b.claimWithin;this.b.claimWithin=l;try{return L()}finally{this.b.claimWithin=P}},f=(L)=>{if(l===null)return L();let P=this.primitiveAvoid;this.primitiveAvoid=[...P??[],l];try{return L()}finally{this.primitiveAvoid=P}};if(y(i)&&i[0]==="."&&i[1]==="this"&&typeof i[2]==="string"){let L=i[2];if(this.checkBareEventHandler(s,n),this.rstate.sink.kind==="loop"&&this.loopVarNames().size>0&&Ee(n,this.loopVarNames()))this.rstate.sink.forceNonStatic=!0;let P=new Set;E.collectLeafNames(n,P);let N=E.mintName("e",P),D=this.tsElReceiver(e),O=this.ts?this.tsEventTypeText([L],D.hostText):null;if(this.ts){let W=this.stores.idOf(i)??null,H=W!==null?this.stores.selfSpan(W):null;if(H!==null)this.intrinsics.push({start:H[0],end:H[1],kind:"event",name:L,type:O,tag:this.rstate?.tags?.get(e)??null,svg:this.rstate?.svgEls?.has(e)===!0})}this.renderLine(s,()=>{let W=this.renderSelf??"this";if(!this.ts)this.b.emit(`${e}.addEventListener('${L}', (${N}`);else D.emit(),this.b.emit(".addEventListener("),c(()=>this.emitQuotedPrimitive(L)),this.b.emit(`, (${N}`);if(this.tsScaffoldAny(),this.b.emit(`) => ${this.runtimeName("__batch")}(() => `),typeof n==="string"&&this.renderVarKind(n)===null&&this.cframes[this.cframes.length-1].members.has(n)){if(this.ts)this.b.tsOnly(()=>this.b.emit("("));let H=this.b.offset;if(this.b.emit(`${W}.`),f(()=>this.emitPrimitive(n)),this.ts)this.b.tsOnly(()=>this.b.emit(O!==null?` as (e: ${O}) => unknown)`:" as any)"));if(this.ts&&O!==null)o([H,this.b.offset-1]);this.b.emit(`(${N})`)}else{let H=!this.ts?null:T1(n)&&(n[1].length===0||n[1].length===1&&typeof n[1][0]==="string")?O??"any":T1(n)?null:O;this.b.emit("("),o(this.tsHandlerCast(()=>f(()=>this.withExpression(()=>this.expr(n))),H)),this.b.emit(`)(${N})`)}this.b.emit("))")});continue}if(typeof i!=="string")throw this.positionedError(s,"emitter: computed attribute keys are not supported in render",t);let h=i;if(i.startsWith('"')&&i.endsWith('"'))i=i.slice(1,-1);if(i==="__transition__"){this.noteVocabulary("render-channel",i,s),this.renderTransition(e,s,n,t);continue}if(i==="ref"){this.noteVocabulary("render-channel",i,s),this.renderRef(e,s,n,t,o);continue}if(i.startsWith("__bind_")&&i.endsWith("__")){this.noteVocabulary("render-channel",i,s),this.checkUserSpelledBind(s);let L=i.slice(7,-2);this.renderBind(e,s,L,n,t,o);continue}if(i==="key")throw this.positionedError(s,"emitter: `key:` identifies loop rows — it is read only on the FIRST element of a `for` body inside render; "+"anywhere else it would leak into the DOM as an attribute",t);if(i==="class"||i==="className"){let L=(P,N)=>{if(this.ts&&P!==null)this.intrinsics.push({start:P[0],end:P[1],kind:"attr",name:"class",gen:N})};if(r.pendingClassArgs!==null&&r.pendingClassEl===e){this.checkSetupLocalRefs(n,s);let P=this.stores.idOf(s),N=P!==null?this.stores.selfSpan(P):null;if(this.ts&&N!==null)(r.pendingClassKeys??=[]).push([N[0],N[0]+i.length]);r.pendingClassArgs.push(()=>o(this.renderExpr(n)))}else if(this.renderReactive(n)){let P=r.svgDepth>0,N=this.tsElReceiver(e);this.renderEffect(s,()=>{let D=this.runtimeName("__clsx");if(N.emit(),P){let O=this.b.offset+1;this.b.emit(".setAttribute('"),L(this.emitKeyAs(i,"class"),O),this.b.emit(`', ${D}(`)}else this.b.emit("."),this.emitPropertyRoadKey(()=>this.emitKeyAs(i,"className")),this.b.emit(` = ${D}(`);o(this.renderExpr(n)),this.b.emit(P?"));":");")},n)}else{let P=r.svgDepth>0,N=y(n),D=this.tsElReceiver(e);this.renderLine(s,()=>{let O=this.b.offset;if(D.emit(),P){let H=this.b.offset+1;this.b.emit(".setAttribute('"),L(this.emitKeyAs(i,"class"),H),this.b.emit("', ")}else{if(this.b.emit("."),this.emitPropertyRoadKey(()=>this.emitKeyAs(i,"className")),!N)o([O,this.b.offset]);this.b.emit(" = ")}if(N)this.b.emit(`${this.runtimeName("__clsx")}(`);let W=this.renderExpr(n);if(P||N)o(W);if(N)this.b.emit(")");if(P)this.b.emit(")")})}continue}if((i==="value"||i==="checked")&&this.renderReactive(n)){let L=this.tsElReceiver(e);this.renderEffect(s,()=>{let P=this.b.offset;if(L.emit(),this.b.emit("."),this.emitPropertyRoadKey(()=>this.emitPrimitive(i)),o([P,this.b.offset]),this.b.emit(" = "),this.renderExpr(n),i==="value"&&!E.isStringLiteral(n))this.b.emit(" ?? ''");this.b.emit(";")},n);continue}if(i==="innerHTML"||i==="textContent"||i==="innerText"){let L=this.tsElReceiver(e),P=()=>{let N=this.b.offset;L.emit(),this.b.emit("."),this.emitPropertyRoadKey(()=>this.emitPrimitive(i)),o([N,this.b.offset]),this.b.emit(" = "),this.renderExpr(n)};if(this.renderReactive(n))this.renderEffect(s,()=>{P(),this.b.emit(";")},n);else this.renderLine(s,P);continue}if(E.BOOLEAN_ATTRS.has(i)){let L=this.tsElReceiver(e),P=()=>{let N=c(()=>this.emitKeyAs(h,i));if(this.ts&&L.surfaced&&N!==null)this.intrinsics.push({start:N[0],end:N[1],kind:"attr",name:i,type:"boolean | undefined"})};if(this.renderReactive(n))this.renderEffect(s,()=>{if(L.emit(),this.b.emit(".toggleAttribute('"),P(),this.b.emit("', !!"),this.ts)this.b.tsOnly(()=>this.b.emit("("));f(()=>this.renderExpr(n));let N=this.b.offset+1;if(this.ts)this.b.tsOnly(()=>this.b.emit(" satisfies boolean | undefined)"));if(this.ts)o([N,N+9]);this.b.emit(");")},n);else this.renderLine(s,()=>{this.b.emit("if ("),f(()=>this.withExpression(()=>this.expr(n)));let N=this.b.offset+1;if(this.ts)this.b.tsOnly(()=>this.b.emit(" satisfies boolean | undefined"));if(this.ts)o([N,N+9]);this.b.emit(") "),L.emit(),this.b.emit(".setAttribute('"),P(),this.b.emit("', '')")});continue}if(i==="style"){let L=this.tsElReceiver(e),P=()=>{if(this.b.emit("{ const __v"),o([this.b.offset-3,this.b.offset]),this.ts)this.b.tsOnly(()=>{if(L.surfaced)this.b.emit(`: ${L.valsName}['`),this.emitKeyAs(h,i),this.b.emit("'] | undefined");else this.b.emit(": any")});this.b.emit(" = "),this.renderExpr(n),this.b.emit(`; ${this.runtimeName("__style")}(`),L.emit(),this.b.emit(", __v); }")};if(this.renderReactive(n))this.renderEffect(s,P,n);else this.renderLine(s,P,!1);if(this.ts&&L.surfaced&&a!==null)this.intrinsics.push({start:a.key[0],end:a.key[1],kind:"attr",name:i,type:"string | __RipCSSProperties | undefined"});continue}let u=this.ts&&this.routesUnion!==null&&i==="href"&&this.rstate.tags?.get(e)==="a"&&this.isRouteLiteralValue(n);if(u)this._needsRouteHelper=!0;let d=this.tsElReceiver(e),p=!(typeof n==="string"&&(!Z1(n)||n==="true"||n==="false")||y(n)&&n[0]==="str"),m=null,g=null,b=!1,S=()=>{if(b||!this.ts||!d.surfaced||m===null||g===null)return;b=!0,this.intrinsics.push(u?{start:m[0],end:m[1],kind:"attr",name:i,type:this.routesUnion,route:!0}:{start:m[0],end:m[1],kind:"attr",name:i,gen:g});let L=this.renderTagOf(e);if(!di(L,i))this.intrinsics.push({start:m[0],end:m[1],kind:"unknown-attr",tag:L,name:i,message:this.unknownAttrMessage(L,i,{bare:!1,svg:this.rstate?.svgEls?.has(e)===!0})})},w=()=>{g=this.b.offset+1,this.b.emit(".setAttribute('"),S()},R=()=>{let L=c(()=>this.emitKeyAs(h,i));if(m===null)m=L;S()},T=()=>f(()=>this.renderExpr(n)),F=()=>{if(!this.ts)return;this.b.tsOnly(()=>this.b.emit(d.surfaced?`: ${d.valsName}['${i}'] | undefined`:": any"))};if(this.renderReactive(n))if(p)this.renderEffect(s,()=>{this.b.emit("{ const __v"),o([this.b.offset-3,this.b.offset]),F(),this.b.emit(" = "),T(),this.b.emit("; __v == null ? "),d.emit(),this.b.emit(".removeAttribute('"),R(),this.b.emit("') : "),d.emit(),w(),R(),this.b.emit("', __v); }")},n);else this.renderEffect(s,()=>{d.emit(),w();let L=this.b.offset;R();let P=this.b.offset;if(this.b.emit("', "),u)this.b.tsOnly(()=>this.b.emit("__ripRoute("));let N=this.b.offset;o(T());let D=this.b.offset;if(this.ts){if(u)this.b.tsOnly(()=>this.b.emit(")"));else if(!d.surfaced)this.b.tsOnly(()=>this.b.emit(" as any"))}if(this.b.emit(");"),u)this.routeWrapSpans.push({key:[L,P],value:[N,D]})},n);else if(p)this.renderLine(s,()=>{this.b.emit("{ const __v"),o([this.b.offset-3,this.b.offset]),F(),this.b.emit(" = "),T(),this.b.emit("; if (__v != null) "),d.emit(),w(),R(),this.b.emit("', __v); }")},!1);else this.renderLine(s,()=>{d.emit(),w();let L=this.b.offset;R();let P=this.b.offset;if(this.b.emit("', "),u)this.b.tsOnly(()=>this.b.emit("__ripRoute("));let N=this.b.offset;o(T());let D=this.b.offset;if(this.ts){if(u)this.b.tsOnly(()=>this.b.emit(")"));else if(!d.surfaced)this.b.tsOnly(()=>this.b.emit(" as any"))}if(this.b.emit(")"),u)this.routeWrapSpans.push({key:[L,P],value:[N,D]})})}}loopVarNames(){let e=new Set;for(let t of this.rstate.sink.loopStack)e.add(t.itemVar),e.add(t.indexVar);return e}checkCrossScopeLocals(e,t){let r=this.rstate;if(!r)return;let s=this.loopVarNames(),i=(n)=>r.sink.locals.has(n)||s.has(n);for(let n=r.sink.parent;n!==null;n=n.parent){if(n.locals.size===0)continue;let a=new Set([...n.locals].filter((o)=>!i(o)));if(a.size>0&&Ee(e,a))throw this.positionedError(t,"emitter: this expression reads a render local of an ENCLOSING render scope — each dynamic block (a "+"conditional branch, a loop body) is its own factory function, and render locals never cross that boundary ; declare the local inside this block, or use a member",this.rstate.node)}}renderBinding(e){let[t,r,s]=e,i=this.rstate.sink,n=this.firstAwaitIn(s);if(n!==null)throw this.renderSyncError(n);if(r.startsWith("__"))throw this.positionedError(e,`emitter: render local '${r}' — double-underscore names are the compiler/runtime namespace inside render `+"(factory scaffolding and injected helpers live there)");if(i.loopStack.some((a)=>a.itemVar===r||a.indexVar===r))throw this.positionedError(e,`emitter: '${r}' is a loop variable — a render local cannot re-declare or assign it `);if(t==="="){if(!i.locals.has(r)){if(i.locals.add(r),i.bindings.add(r),i.localDecls.set(r,e),i.kind!=="class")i.vars.add(r)}}else if(!i.locals.has(r))throw this.positionedError(e,`emitter: compound assignment to '${r}' — no render local of that name is declared in this render scope `+"(`name = expr` declares one)");return this.checkCrossScopeLocals(s,e),this.renderLine(e,()=>{this.mark(e,"target",()=>this.b.emit(r)),this.b.emit(` ${t} `),this.mark(e,"value",()=>this.withExpression(()=>this.expr(s)))}),null}closeRenderScope(e){for(let[t,r]of e.localDecls){let s=0,i=(n)=>{if(typeof n==="string"){if(n===t)s++;return}if(!y(n))return;if(la.has(n[0])&&n.length===3&&n[1]===t){i(n[2]);return}if((n[0]===":"||n[0]==="void-pair")&&n.length===3&&typeof n[1]==="string"){i(n[2]);return}if((n[0]==="."||n[0]==="?.")&&n.length===3&&typeof n[2]==="string"){i(n[1]);return}for(let a of n)i(a)};for(let n of e.stmts)i(n);if(s===0)throw this.positionedError(r,`emitter: render local '${t}' is never read — a dead local renders NOTHING (if this line meant an `+`element with expression text, spell it \`${t}\` + indented \`= expr\`: inside render \`${t} = expr\` declares a local named the tag)`,this.rstate.node)}}static collectLeafNames(e,t){if(typeof e==="string"){if(ft.test(e))t.add(e);return}if(!y(e))return;if((e[0]===":"||e[0]==="void-pair")&&e.length===3&&typeof e[1]==="string"){E.collectLeafNames(e[2],t);return}if((e[0]==="."||e[0]==="?.")&&e.length===3&&typeof e[2]==="string"){E.collectLeafNames(e[1],t);return}for(let r of e)E.collectLeafNames(r,t)}static mintName(e,t){let r=e;while(t.has(r))r=`${r}_`;return t.add(r),r}threadProjectionHost(e){if(e===null||e.startsWith("this."))return;for(let t=this.rstate.sink;t&&t.hostParams!==void 0&&!t.vars.has(e);t=t.parent){if(t.hostParams.includes(e))continue;t.hostParams.push(e),t.paramNames.push(e)}}walkFactory(e,t,r,s=null){let i=this.rstate,n=i.sink,a=this.newBlockName(),o=s!==null?[s.itemVar,s.indexVar]:[],l=new Set(o),c=new Set;E.collectLeafNames(e,c);let f=new Set(n.renameHazardNames??[]),h=(S)=>{if(!l.has(S))return l.add(S),S;let w=`${S}_`;while(l.has(w)||c.has(w))w+="_";return l.add(w),f.add(S),f.add(w),w},u=n.loopStack.map((S)=>({...S,itemVar:h(S.itemVar),indexVar:h(S.indexVar)})),d=u.flatMap((S)=>[S.itemVar,S.indexVar]),p=s!==null?[...u,s]:u,m={kind:t,name:a,parent:n,self:"ctx",paramNames:[...o,...d],hostParams:[],frameVar:"__fr",ownerVar:"__o",creates:[],setups:[],vars:new Set,locals:new Set,localDecls:new Map,bindings:new Set([...d,...o]),refs:[],loopStack:p,stmts:[],forceNonStatic:!1,root:null,isStatic:!1,originNode:r,hasKids:!1,kidsVar:null,renameHazardNames:f,readVars:new Set,narrowed:[...n.narrowed??[],...this._narrowNext??[]]};if(this._narrowNext=null,s!==null)s.owner=m;i.records.push(m);let g=i.transitionSlot;i.transitionSlot=t==="branch"?{record:m,el:null}:null,i.sink=m,this.rframes.push({reactive:new Set,bound:m.bindings,loopVars:m.bindings,loopBindings:E.loopBindingsOf(m)});try{let S;if(b1(e))S=e.slice(1);else if(y(e)&&e.length===1&&y(e[0])&&this.stores.idOf(e)===null)S=[e[0]];else S=[e];if(m.stmts=S,m.root=S.length===0?null:this.walkChildStmts(S),m.root===null)m.root=this.newRenderVar("empty"),this.renderLine(null,()=>this.b.emit(`${m.root} = document.createComment('')`))}finally{this.rframes.pop(),i.sink=n,i.transitionSlot=g}this.closeRenderScope(m),m.isStatic=t==="loop"&&m.setups.length===0&&!m.forceNonStatic;let b=new Set([...m.bindings,...m.locals,...m.vars]);if(E.collectLeafNames(m.stmts,b),m.self=E.mintName("ctx",b),m.frameVar=E.mintName("__fr",b),m.ownerVar=E.mintName("__o",b),m.hasKids)m.kidsVar=E.mintName("_factoryChildren",b);return m}narrowConjuncts(e){if(y(e)&&e[0]==="&&"&&e.length===3)return[...this.narrowConjuncts(e[1]),...this.narrowConjuncts(e[2])];if(typeof e==="string")return this.renderVarKind(e)!==null||this.bareRewrite(e)===null?[]:[e];if(!E.isDotChain(e))return[];let t=e;while(y(t))t=t[1];if(t==="this")return[e];if(this.renderVarKind(t)!==null||this.bareRewrite(t)===null)return[];return[e]}static isDotChain(e){if(!y(e)||e[0]!=="."||e.length!==3||typeof e[2]!=="string"||e[2][0]==='"')return!1;let t=e[1];if(t==="this")return!0;if(typeof t==="string")return/^[A-Za-z_$][\w$]*$/.test(t);return E.isDotChain(t)}activeNarrowed(){let e=this.renderRecord;if(!this.ts||!e||!(e.narrowed?.length>0))return[];return e.narrowed.filter((t)=>{let r=t;while(y(r))r=r[1];return r==="this"||!(e.bindings.has(r)||e.locals.has(r))})}hasNarrow(){return this.activeNarrowed().length>0}narrowedReadNames(){let e=new Set;for(let t of this.activeNarrowed())if(typeof t==="string")e.add(t);else if(t[0]==="."&&t[1]==="this"&&t.length===3&&typeof t[2]==="string")e.add(t[2]);return e}narrowGuard(e="statement",{trailing:t=!0}={}){let r=this.activeNarrowed();if(r.length===0)return!1;this._needsNarrowHelper=!0,this.b.suppressClaims=!0;try{this.b.tsOnly(()=>this.b.echo(()=>{if(r.forEach((s,i)=>{if(i>0)this.b.emit(" ");this.b.emit(e==="statement"?"__ripNarrow(":"(__ripNarrow("),this.renderExpr(s),this.b.emit(e==="statement"?");":"),")}),t)this.b.emit(" ")}))}finally{this.b.suppressClaims=!1}return!0}narrowGuardClose(e){if(e)this.b.tsOnly(()=>this.b.emit(")".repeat(this.activeNarrowed().length)))}renderCond(e,t=e){if(e.length>4)throw this.positionedError(e,"emitter: unexpected flat conditional chain shape in render (internal)");if(this.stores.idOf(t)===null&&this._chainMarkNode)t=this._chainMarkNode;let[,r,s]=e,i=e.length===4?e[3]:null;this.checkSetupLocalRefs(r,t),this.checkCrossScopeLocals(r,t);let n=this.newRenderVar("anchor");this.renderLine(null,()=>this.b.emit(`${n} = document.createComment('if')`)),this._narrowNext=this.narrowConjuncts(r);let a=this.walkFactory(s,"branch",t),o=this._chainMarkNode;if(i!==null&&y(i)&&i[0]==="if"&&this.stores.idOf(i)===null)this._chainMarkNode=t;let l=i!==null?this.walkFactory(i,"branch",t):null;this._chainMarkNode=o;let c=a.refs.length>0||l!==null&&l.refs.length>0,f=this.rstate.sink;if(l!==null){for(let[u,d]of[[a,l],[l,a]])for(let p of u.hostParams){if(d.hostParams.includes(p))continue;d.hostParams.push(p),d.paramNames.push(p)}l.hostParams.sort((u,d)=>a.hostParams.indexOf(u)-a.hostParams.indexOf(d)),l.paramNames.splice(l.paramNames.length-l.hostParams.length,l.hostParams.length,...l.hostParams)}let h=[...f.loopStack.flatMap((u)=>[u.itemVar,u.indexVar]),...a.hostParams];return f.setups.push({kind:"raw",node:t,fn:(u)=>this.emitCondSetup(u,t,e,n,a,l,c,h)}),n}renderSwitch(e){let[,t,r,s]=e;if(E.hasMatchArms(r))this.checkMatchSwitch(e);let i=s;for(let n=r.length-1;n>=0;n--){let[,a,o]=r[n],l;if(t===null)l=a.reduce((c,f)=>c===null?f:["||",c,f],null);else l=a.map((c)=>E.matchArmSexpr(t,c)).reduce((c,f)=>c===null?f:["||",c,f],null);i=i!==null?["if",l,o,i]:["if",l,o]}if(i===null||i[0]!=="if")return i===null?this.renderNode("null"):this.renderChildBlock(i);return this.renderCond(i,e)}renderLoop(e){let[,t,r,s,i,n]=e;if(s!==null)throw this.positionedError(e,"emitter: a `by` step has no render reading — the reconciler patches whole collections; step the collection itself: `items.filter((x, i) -> i % 2 == 0)`");if(i!==null)throw this.positionedError(e,"emitter: a `when` guard has no render reading — the reconciler patches whole collections; filter the collection itself: `for x in items.filter((x) -> cond)`");if(t.length>2||t.some((w)=>typeof w!=="string"))throw this.positionedError(e,"emitter: a render loop takes plain item and index variables (`for item, i in items`) — destructuring loop "+"variables have no factory-parameter reading here; destructure inside the body");if(t.length===2&&t[0]===t[1])throw this.positionedError(e,`emitter: a render loop cannot bind '${t[0]}' as BOTH item and index — one name cannot hold two row facts `);for(let w of t)if(w.startsWith("__"))throw this.positionedError(e,`emitter: render loop variable '${w}' — double-underscore names are the compiler/runtime namespace inside `+"render (factory scaffolding and injected helpers live there)");this.checkSetupLocalRefs(r,e),this.checkCrossScopeLocals(r,e);let a=t[0],o=t[1]??null;if(o===null){let w=new Set(this.loopVarNames());w.add(a),E.collectRenderBodyBindings(n,w);let R=(T,F)=>{if(typeof T==="string")return T===F;return y(T)&&T.some((L)=>R(L,F))};for(let T of["i","j","k","l","m","n"])if(!w.has(T)&&!R(n,T)){o=T;break}o=o??`__rip_idx${this.rstate.sink.loopStack.length}`}let l=this.newRenderVar("anchor");this.renderLine(null,()=>this.b.emit(`${l} = document.createComment('for')`));let c=this.renderReactive(r),f=this.extractLoopKey(n,e),h=f!==null?this.rstate.keySpan??null:null;if(f!==null)this.checkSetupLocalRefs(f,e),this.checkCrossScopeLocals(f,e);let u=this.stores.idOf(e),d=u!==null?this.stores.role(u,"vars"):null,p=this.primitiveAvoid;if(d?.sourceStart!=null)this.primitiveAvoid=[...p??[],[d.sourceStart,d.sourceEnd]];let m;try{m=this.walkFactory(n,"loop",e,{itemVar:a,indexVar:o,reactiveSource:c,iter:r,node:e})}finally{this.primitiveAvoid=p}if(f!==null){if(m.locals.size>0&&Ee(f,m.locals))throw this.positionedError(e,"emitter: a `key:` expression must be evaluable in the loop HEADER scope — it reads a render local declared "+"inside the loop body, which lives in the row factory (derive the key from the item inline: `key: item.id`)");if(!Ee(f,new Set([a,o])))throw this.positionedError(e,`emitter: a loop key must derive from the row — this \`key:\` expression never reads '${a}'${t.length===2?` or '${o}'`:""} (a row-independent key cannot identify rows)`)}let g=m.refs.length>0,b=this.rstate.sink,S=[...b.loopStack.flatMap((w)=>[w.itemVar,w.indexVar]),...m.hostParams];return b.setups.push({kind:"raw",node:e,fn:(w)=>this.emitLoopSetup(w,e,l,r,m,f,a,o,g,S,h)}),l}static collectRenderBodyBindings(e,t){if(!y(e))return;if((e[0]==="for-in"||e[0]==="for-of"||e[0]==="for-as")&&y(e[1])){for(let r of e[1])if(typeof r==="string")t.add(r)}else if(e[0]==="="&&e.length===3&&typeof e[1]==="string")t.add(e[1]);for(let r of e)E.collectRenderBodyBindings(r,t)}extractLoopKey(e,t){let s=(b1(e)?e.slice(1):[e]).find((n)=>!this.isRenderBinding(n));if(!y(s))return null;let i=(n)=>{for(let a=1;athis.b.emit(e.join(", ")))}emitCondSetup(e,t,r,s,i,n,a,o){let l=this.renderSelf??"this",c=e+" ",f=c+" ",h=new Set([l,...o]);E.collectLeafNames(r[1],h);let u=E.mintName("anchor",h),d=E.mintName("currentBlock",h),p=E.mintName("showing",h),m=E.mintName("show",h),g=E.mintName("want",h),b=E.mintName("leaving",h),S=this.runtimeName("__transition"),w=(T)=>{this.b.emit(`${f} ${d} = ${l}.${T.name}(${l}`),this.emitOuterLoopArgs(o),this.b.emit(`); -`),this.b.emit(`${f} ${d}.c(); -`),this.b.emit(`${f} if (${u}.parentNode) ${d}.m(${u}.parentNode, ${u}.nextSibling); -`),this.b.emit(`${f} ${d}.p(${l}`),this.emitOuterLoopArgs(o),this.b.emit(`); -`),this.b.emit(`${f} if (${d}._t) ${S}(${d}._first, ${d}._t, 'enter', undefined); +`);let f1=B.pair!==null?W.get(B.pair):void 0;if(this.ts&&f1!==void 0)for(let u1 of f1)this.tsDirectiveLine(u1,V,!0);this.b.emit(V)}else if(i1>0)this.b.emit(", ");let h1=()=>{let f1=(p1)=>{let c1=this.b.offset,d1=p1();if(this.ts)this.attrNames.push([c1,this.b.offset]);if("routeKey"in B)B.routeKey=[c1,this.b.offset];if(this.ts&&d1!=null){let M=B.pair!==null?this.stores.idOf(B.pair):null,n1=M!==null?this.stores.selfSpan(M):null,_=[d1[0],d1[1]];this.renderPairs.push({key:_,pair:n1??_,sites:[[c1,this.b.offset]]})}},u1=y(s)?this.stores.idOf(s):null;if(this.ts&&B.span!=null&&u1!==null){f1(()=>(this.b.markSpan(u1,"shorthandProp",B.span[0],B.span[1],()=>this.b.emit(B.key)),[B.span[0],B.span[1]])),this.b.emit(": "),B.fn();return}if(B.key.startsWith("__bind_")&&B.key.endsWith("__"))f1(()=>{let p1=this.b.offset;this.b.emit("__bind_");let c1=this.emitRewrittenPrimitive(B.key,B.key.slice(7,-2));if(this.ts&&c1!==null)this.intrinsics.push({start:c1[0],end:c1[1],kind:"bind",name:B.key.slice(7,-2),gen:p1});return this.b.emit("__"),c1});else f1(()=>this.emitPrimitive(B.key));this.b.emit(": "),B.fn()};if(B.pair!==null&&this.stores.idOf(B.pair)!==null)this.mark(B.pair,"$self",h1);else h1()}),this.b.emit(A?` +${this.replayPad}}`:" }")}this.b.emit(");")}),s1(()=>this.b.emit(`if (${h} && ${h}._initFailed) {`)),s1(()=>this.b.emit(` ${h} = null;`)),s1(()=>this.b.emit(` ${f} = document.createComment('rip:child-init-failed: ${t}');`)),Z!==null){s1(()=>this.b.emit("} else {")),s1(()=>this.b.emit(`{ const ${l1} = ${h}._beginProjection(${e1()}); try {`));let A=this.projectionHost;this.projectionHost=h;let V=i.setups.length,B;try{B=Z()}finally{this.projectionHost=A}let i1=(f1)=>({kind:"raw",node:null,fn:(u1)=>{this.b.emit(`${u1}if (${h}) { +`),this.replaySetups({setups:f1},`${u1} `),this.b.emit(`${u1}} +`)}}),h1=[];for(let f1 of i.setups.splice(V)){if(f1.latch!==!0){h1.push(f1);continue}if(h1.length>0)i.setups.push(i1(h1));h1=[],i.setups.push(f1)}if(h1.length>0)i.setups.push(i1(h1));s1(()=>this.b.emit(`} finally { ${h}._endProjection(${l1}); } }`)),s1(()=>this.b.emit(`${h}._setChildren(${B});`))}if(s1(()=>{this.b.emit(Z!==null?"if (":"} else if (");let A=()=>this.b.emit(`${h}._mountCreate()`);if(s!==null)this.mark(s,"$self",A);else A();this.b.emit(") {")}),s1(()=>this.b.emit(` ${f} = ${h}._root;`)),u){let A=[...b.keys()].filter((V)=>V!=="children").map((V)=>JSON.stringify(V)).join(", ");s1(()=>this.b.emit(` ${e1()}._inheritedInst = ${h};`)),s1(()=>this.b.emit(` ${e1()}._inheritedOwn = new Set([${A}]);`))}if(i.kind==="class")s1(()=>this.b.emit(` (this._children || (this._children = [])).push(${h});`));else s1(()=>this.b.emit(` ${i.kidsVar}.push(${h});`));if(s1(()=>this.b.emit("} else {")),s1(()=>this.b.emit(` ${h} = null;`)),s1(()=>this.b.emit(` ${f} = document.createComment('rip:child-error: ${t}');`)),s1(()=>this.b.emit("}")),Z!==null)s1(()=>this.b.emit("}"));s1(()=>this.b.emit(`} catch (${I}) {`)),s1(()=>this.b.emit(` ${this.runtimeName("__reportChildFailure")}('${t}', ${I});`)),s1(()=>this.b.emit(` ${h} = null;`)),s1(()=>this.b.emit(` ${f} = document.createComment('rip:child-error: ${t}');`)),s1(()=>this.b.emit("}")),s1(()=>this.b.emit(K!==null?`} finally { ${a1()}._endProjection(${Q}); } }`:`} finally { ${this.runtimeName("__popComponent")}(${Q}); } }`));for(let{pair:A,event:V,value:B}of m){if(this.ts){let f1=y(A)&&y(A[1])?A[1]:null,u1=f1!==null?this.stores.idOf(f1)??null:null,p1=u1!==null?this.stores.selfSpan(u1):null;if(p1!==null)this.intrinsics.push({start:p1[0],end:p1[1],kind:"event",name:V,type:this.tsEventTypeText([V])!==null?`HTMLElementEventMap['${V}']`:null,child:t})}let i1=new Set;E.collectLeafNames(B,i1);let h1=E.mintName("e",i1);this.renderLine(A,()=>{let f1=`(${h}._nodes?.[0] ?? ${f})`;if(!this.ts)this.b.emit(`if (${h}) ${f1}.addEventListener('${V}', (${h1}`);else this.b.emit(`if (${h}) ${f1}.addEventListener(`),this.emitQuotedPrimitive(V),this.b.emit(`, (${h1}`);this.tsScaffoldAny(),this.b.emit(`) => ${this.runtimeName("__batch")}(() => (`),this.tsHandlerCast(()=>this.withExpression(()=>this.expr(B))),this.b.emit(`)(${h1})))`)})}i.setups.push({kind:"raw",latch:!0,fn:(A)=>{this.b.emit(A);let V=()=>{this.b.emit(`if (${h} && ${h}._state === 'mounting') { +${A} ${f} = ${h}._mountSetup(document.createComment('rip:child-error: ${t}')); +`);let B=this.rstate.fragChildren.get(i.root),i1=B!==void 0?B[0]:i.root;if(i.kind!=="class"&&i1===f){if(this.b.emit(`${A} `),this.ts)this.b.tsOnly(()=>this.b.emit("("));if(this.b.emit("this"),this.ts)this.b.tsOnly(()=>this.b.emit(" as any)"));this.b.emit(`._first = ${f}; +`)}this.b.emit(`${A}}`)};if(s!==null)this.mark(s,"$self",V);else V();this.b.emit(` +`)}});for(let{pair:A,key:V,value:B}of p){let i1=V.startsWith('"')&&V.endsWith('"')?V.slice(1,-1):V;this.renderEffect(A,()=>{this.b.emit(`if (${h}) ${h}._updateProp('${i1}', `),this.renderExpr(B),this.b.emit(");")},B)}return f}addChildProp(e,t,r,n,i,s){let a=this.childContainerRef(s);if(a!==null){e.push({pair:r,key:n,fn:a});return}if(this.checkCrossScopeLocals(s,r),this.ts&&this.routesUnion!==null&&i==="href"&&this.isRouteLiteralValue(s)){this._needsRouteHelper=!0;let l={pair:r,key:n,routeKey:null};l.fn=()=>{this.b.tsOnly(()=>this.b.emit("__ripRoute("));let c=this.b.offset;this.renderExpr(s);let h=this.b.offset;if(this.b.tsOnly(()=>this.b.emit(")")),l.routeKey!==null)this.routeWrapSpans.push({key:l.routeKey,value:[c,h]})},e.push(l)}else e.push({pair:r,key:n,fn:()=>this.renderExpr(s)});if(!T1(s)&&this.renderReactive(s))t.push({pair:r,key:n,value:s})}childContainerRef(e){if(typeof e==="string"){if(this.renderVarKind(e)!==null)return null;let t=this.resolveBareRead(e);if(t==="member-reactive")return this.narrowedContainer(e,()=>{this.b.emit(`${this.renderSelf??"this"}.`);let r=this.emitPrimitive(e);if(this.ts&&r!==null)this.memberDecls.push({start:r[0],end:r[1]});return r});if(t==="reactive")return this.narrowedContainer(e,()=>this.emitPrimitive(e));return null}if(y(e)&&e[0]==="."&&e[1]==="this"&&e.length===3&&typeof e[2]==="string"&&this.memberIsReactive(e[2]))return this.narrowedContainer(e[2],()=>(this.b.emit(`${this.renderSelf??"this"}.`),this.emitPrimitive(e[2])));return null}narrowedContainer(e,t){if(!this.ts)return t;return()=>{if(!this.activeNarrowed().some((i)=>i===e||y(i)&&i[0]==="."&&i[1]==="this"&&i.length===3&&i[2]===e))return t();this._needsNarrowedHelper=!0,this.b.tsOnly(()=>this.b.emit("__ripNarrowed("));let n=t();if(this.b.tsOnly(()=>this.b.emit(")")),n!=null)this.narrowedDecls.push({start:n[0],end:n[1]})}}isRouteLiteralValue(e){let t=(r)=>typeof r==="string"&&/^["'`]\//.test(r);return t(e)||y(e)&&e[0]==="str"&&t(e[1])}renderAttributes(e,t){let r=this.rstate;if(this.ts&&this.tsDirectivesArmed&&this.tsDirectiveMap.has(t)){let n=t.slice(1).find((s)=>y(s));if(n!==void 0&&n.length===3&&!r.suppressedPairs.has(n)&&(()=>{let s=n[1];if(typeof s!=="string")return!0;if(s.startsWith('"')&&s.endsWith('"'))s=s.slice(1,-1);if((s==="class"||s==="className")&&r.pendingClassArgs!==null&&r.pendingClassEl===e)return!1;if(s==="ref"&&this.rstate.sink.kind!=="class")return!1;return!0})()){let s=this.tsDirectiveMap.get(t);this.tsDirectiveMap.delete(t),this.tsDirectiveMap.set(n,[...s,...this.tsDirectiveMap.get(n)??[]])}}for(let n of t.slice(1)){if(dt(n))throw this.renderSpreadError(n);if(!y(n)||n.length!==3)throw this.positionedError(n,"emitter: unsupported attribute form in render",t);if(r.suppressedPairs.has(n))continue;let[,i,s]=n;this.checkCrossScopeLocals(s,n);let a=null;if(this.ts){let L=this.stores.idOf(n),C=L!==null?this.stores.selfSpan(L):null,N=this.b.source;if(C!==null&&N!==null){let D=C[0];while(DC[0])a={key:[C[0],D],pair:[C[0],C[1]],sites:[]},this.renderPairs.push(a)}}let o=(L)=>{if(a!==null&&L!==null&&L[1]>L[0])a.sites.push(L)},l=a!==null?a.key:null,c=(L)=>{if(l===null)return L();let C=this.b.claimWithin;this.b.claimWithin=l;try{return L()}finally{this.b.claimWithin=C}},h=(L)=>{if(l===null)return L();let C=this.primitiveAvoid;this.primitiveAvoid=[...C??[],l];try{return L()}finally{this.primitiveAvoid=C}};if(y(i)&&i[0]==="."&&i[1]==="this"&&typeof i[2]==="string"){let L=i[2];if(this.checkBareEventHandler(n,s),this.rstate.sink.kind==="loop"&&this.loopVarNames().size>0&&Ee(s,this.loopVarNames()))this.rstate.sink.forceNonStatic=!0;let C=new Set;E.collectLeafNames(s,C);let N=E.mintName("e",C),D=this.tsElReceiver(e),O=this.ts?this.tsEventTypeText([L],D.hostText):null;if(this.ts){let W=this.stores.idOf(i)??null,H=W!==null?this.stores.selfSpan(W):null;if(H!==null)this.intrinsics.push({start:H[0],end:H[1],kind:"event",name:L,type:O,tag:this.rstate?.tags?.get(e)??null,svg:this.rstate?.svgEls?.has(e)===!0})}this.renderLine(n,()=>{let W=this.renderSelf??"this";if(!this.ts)this.b.emit(`${e}.addEventListener('${L}', (${N}`);else D.emit(),this.b.emit(".addEventListener("),c(()=>this.emitQuotedPrimitive(L)),this.b.emit(`, (${N}`);if(this.tsScaffoldAny(),this.b.emit(`) => ${this.runtimeName("__batch")}(() => `),typeof s==="string"&&this.renderVarKind(s)===null&&this.cframes[this.cframes.length-1].members.has(s)){if(this.ts)this.b.tsOnly(()=>this.b.emit("("));let H=this.b.offset;if(this.b.emit(`${W}.`),h(()=>this.emitPrimitive(s)),this.ts)this.b.tsOnly(()=>this.b.emit(O!==null?` as (e: ${O}) => unknown)`:" as any)"));if(this.ts&&O!==null)o([H,this.b.offset-1]);this.b.emit(`(${N})`)}else{let H=!this.ts?null:T1(s)&&(s[1].length===0||s[1].length===1&&typeof s[1][0]==="string")?O??"any":T1(s)?null:O;this.b.emit("("),o(this.tsHandlerCast(()=>h(()=>this.withExpression(()=>this.expr(s))),H)),this.b.emit(`)(${N})`)}this.b.emit("))")});continue}if(typeof i!=="string")throw this.positionedError(n,"emitter: computed attribute keys are not supported in render",t);let f=i;if(i.startsWith('"')&&i.endsWith('"'))i=i.slice(1,-1);if(i==="__transition__"){this.noteVocabulary("render-channel",i,n),this.renderTransition(e,n,s,t);continue}if(i==="ref"){this.noteVocabulary("render-channel",i,n),this.renderRef(e,n,s,t,o);continue}if(i.startsWith("__bind_")&&i.endsWith("__")){this.noteVocabulary("render-channel",i,n),this.checkUserSpelledBind(n);let L=i.slice(7,-2);this.renderBind(e,n,L,s,t,o);continue}if(i==="key")throw this.positionedError(n,"emitter: `key:` identifies loop rows — it is read only on the FIRST element of a `for` body inside render; "+"anywhere else it would leak into the DOM as an attribute",t);if(i==="class"||i==="className"){let L=(C,N)=>{if(this.ts&&C!==null)this.intrinsics.push({start:C[0],end:C[1],kind:"attr",name:"class",gen:N})};if(r.pendingClassArgs!==null&&r.pendingClassEl===e){this.checkSetupLocalRefs(s,n);let C=this.stores.idOf(n),N=C!==null?this.stores.selfSpan(C):null;if(this.ts&&N!==null)(r.pendingClassKeys??=[]).push([N[0],N[0]+i.length]);r.pendingClassArgs.push(()=>o(this.renderExpr(s)))}else if(this.renderReactive(s)){let C=r.svgDepth>0,N=this.tsElReceiver(e);this.renderEffect(n,()=>{let D=this.runtimeName("__clsx");if(N.emit(),C){let O=this.b.offset+1;this.b.emit(".setAttribute('"),L(this.emitKeyAs(i,"class"),O),this.b.emit(`', ${D}(`)}else this.b.emit("."),this.emitPropertyRoadKey(()=>this.emitKeyAs(i,"className")),this.b.emit(` = ${D}(`);o(this.renderExpr(s)),this.b.emit(C?"));":");")},s)}else{let C=r.svgDepth>0,N=y(s),D=this.tsElReceiver(e);this.renderLine(n,()=>{let O=this.b.offset;if(D.emit(),C){let H=this.b.offset+1;this.b.emit(".setAttribute('"),L(this.emitKeyAs(i,"class"),H),this.b.emit("', ")}else{if(this.b.emit("."),this.emitPropertyRoadKey(()=>this.emitKeyAs(i,"className")),!N)o([O,this.b.offset]);this.b.emit(" = ")}if(N)this.b.emit(`${this.runtimeName("__clsx")}(`);let W=this.renderExpr(s);if(C||N)o(W);if(N)this.b.emit(")");if(C)this.b.emit(")")})}continue}if((i==="value"||i==="checked")&&this.renderReactive(s)){let L=this.tsElReceiver(e);this.renderEffect(n,()=>{let C=this.b.offset;if(L.emit(),this.b.emit("."),this.emitPropertyRoadKey(()=>this.emitPrimitive(i)),o([C,this.b.offset]),this.b.emit(" = "),this.renderExpr(s),i==="value"&&!E.isStringLiteral(s))this.b.emit(" ?? ''");this.b.emit(";")},s);continue}if(i==="innerHTML"||i==="textContent"||i==="innerText"){let L=this.tsElReceiver(e),C=()=>{let N=this.b.offset;L.emit(),this.b.emit("."),this.emitPropertyRoadKey(()=>this.emitPrimitive(i)),o([N,this.b.offset]),this.b.emit(" = "),this.renderExpr(s)};if(this.renderReactive(s))this.renderEffect(n,()=>{C(),this.b.emit(";")},s);else this.renderLine(n,C);continue}if(E.BOOLEAN_ATTRS.has(i)){let L=this.tsElReceiver(e),C=()=>{let N=c(()=>this.emitKeyAs(f,i));if(this.ts&&L.surfaced&&N!==null)this.intrinsics.push({start:N[0],end:N[1],kind:"attr",name:i,type:"boolean | undefined"})};if(this.renderReactive(s))this.renderEffect(n,()=>{if(L.emit(),this.b.emit(".toggleAttribute('"),C(),this.b.emit("', !!"),this.ts)this.b.tsOnly(()=>this.b.emit("("));h(()=>this.renderExpr(s));let N=this.b.offset+1;if(this.ts)this.b.tsOnly(()=>this.b.emit(" satisfies boolean | undefined)"));if(this.ts)o([N,N+9]);this.b.emit(");")},s);else this.renderLine(n,()=>{this.b.emit("if ("),h(()=>this.withExpression(()=>this.expr(s)));let N=this.b.offset+1;if(this.ts)this.b.tsOnly(()=>this.b.emit(" satisfies boolean | undefined"));if(this.ts)o([N,N+9]);this.b.emit(") "),L.emit(),this.b.emit(".setAttribute('"),C(),this.b.emit("', '')")});continue}if(i==="style"){let L=this.tsElReceiver(e),C=()=>{if(this.b.emit("{ const __v"),o([this.b.offset-3,this.b.offset]),this.ts)this.b.tsOnly(()=>{if(L.surfaced)this.b.emit(`: ${L.valsName}['`),this.emitKeyAs(f,i),this.b.emit("'] | undefined");else this.b.emit(": any")});this.b.emit(" = "),this.renderExpr(s),this.b.emit(`; ${this.runtimeName("__style")}(`),L.emit(),this.b.emit(", __v); }")};if(this.renderReactive(s))this.renderEffect(n,C,s);else this.renderLine(n,C,!1);if(this.ts&&L.surfaced&&a!==null)this.intrinsics.push({start:a.key[0],end:a.key[1],kind:"attr",name:i,type:"string | __RipCSSProperties | undefined"});continue}let u=this.ts&&this.routesUnion!==null&&i==="href"&&this.rstate.tags?.get(e)==="a"&&this.isRouteLiteralValue(s);if(u)this._needsRouteHelper=!0;let d=this.tsElReceiver(e),p=!(typeof s==="string"&&(!Z1(s)||s==="true"||s==="false")||y(s)&&s[0]==="str"),m=null,g=null,b=!1,S=()=>{if(b||!this.ts||!d.surfaced||m===null||g===null)return;b=!0,this.intrinsics.push(u?{start:m[0],end:m[1],kind:"attr",name:i,type:this.routesUnion,route:!0}:{start:m[0],end:m[1],kind:"attr",name:i,gen:g});let L=this.renderTagOf(e);if(!di(L,i))this.intrinsics.push({start:m[0],end:m[1],kind:"unknown-attr",tag:L,name:i,message:this.unknownAttrMessage(L,i,{bare:!1,svg:this.rstate?.svgEls?.has(e)===!0})})},w=()=>{g=this.b.offset+1,this.b.emit(".setAttribute('"),S()},R=()=>{let L=c(()=>this.emitKeyAs(f,i));if(m===null)m=L;S()},T=()=>h(()=>this.renderExpr(s)),F=()=>{if(!this.ts)return;this.b.tsOnly(()=>this.b.emit(d.surfaced?`: ${d.valsName}['${i}'] | undefined`:": any"))};if(this.renderReactive(s))if(p)this.renderEffect(n,()=>{this.b.emit("{ const __v"),o([this.b.offset-3,this.b.offset]),F(),this.b.emit(" = "),T(),this.b.emit("; __v == null ? "),d.emit(),this.b.emit(".removeAttribute('"),R(),this.b.emit("') : "),d.emit(),w(),R(),this.b.emit("', __v); }")},s);else this.renderEffect(n,()=>{d.emit(),w();let L=this.b.offset;R();let C=this.b.offset;if(this.b.emit("', "),u)this.b.tsOnly(()=>this.b.emit("__ripRoute("));let N=this.b.offset;o(T());let D=this.b.offset;if(this.ts){if(u)this.b.tsOnly(()=>this.b.emit(")"));else if(!d.surfaced)this.b.tsOnly(()=>this.b.emit(" as any"))}if(this.b.emit(");"),u)this.routeWrapSpans.push({key:[L,C],value:[N,D]})},s);else if(p)this.renderLine(n,()=>{this.b.emit("{ const __v"),o([this.b.offset-3,this.b.offset]),F(),this.b.emit(" = "),T(),this.b.emit("; if (__v != null) "),d.emit(),w(),R(),this.b.emit("', __v); }")},!1);else this.renderLine(n,()=>{d.emit(),w();let L=this.b.offset;R();let C=this.b.offset;if(this.b.emit("', "),u)this.b.tsOnly(()=>this.b.emit("__ripRoute("));let N=this.b.offset;o(T());let D=this.b.offset;if(this.ts){if(u)this.b.tsOnly(()=>this.b.emit(")"));else if(!d.surfaced)this.b.tsOnly(()=>this.b.emit(" as any"))}if(this.b.emit(")"),u)this.routeWrapSpans.push({key:[L,C],value:[N,D]})})}}loopVarNames(){let e=new Set;for(let t of this.rstate.sink.loopStack)e.add(t.itemVar),e.add(t.indexVar);return e}checkCrossScopeLocals(e,t){let r=this.rstate;if(!r)return;let n=this.loopVarNames(),i=(s)=>r.sink.locals.has(s)||n.has(s);for(let s=r.sink.parent;s!==null;s=s.parent){if(s.locals.size===0)continue;let a=new Set([...s.locals].filter((o)=>!i(o)));if(a.size>0&&Ee(e,a))throw this.positionedError(t,"emitter: this expression reads a render local of an ENCLOSING render scope — each dynamic block (a "+"conditional branch, a loop body) is its own factory function, and render locals never cross that boundary ; declare the local inside this block, or use a member",this.rstate.node)}}renderBinding(e){let[t,r,n]=e,i=this.rstate.sink,s=this.firstAwaitIn(n);if(s!==null)throw this.renderSyncError(s);if(r.startsWith("__"))throw this.positionedError(e,`emitter: render local '${r}' — double-underscore names are the compiler/runtime namespace inside render `+"(factory scaffolding and injected helpers live there)");if(i.loopStack.some((a)=>a.itemVar===r||a.indexVar===r))throw this.positionedError(e,`emitter: '${r}' is a loop variable — a render local cannot re-declare or assign it `);if(t==="="){if(!i.locals.has(r)){if(i.locals.add(r),i.bindings.add(r),i.localDecls.set(r,e),i.kind!=="class")i.vars.add(r)}}else if(!i.locals.has(r))throw this.positionedError(e,`emitter: compound assignment to '${r}' — no render local of that name is declared in this render scope `+"(`name = expr` declares one)");return this.checkCrossScopeLocals(n,e),this.renderLine(e,()=>{this.mark(e,"target",()=>this.b.emit(r)),this.b.emit(` ${t} `),this.mark(e,"value",()=>this.withExpression(()=>this.expr(n)))}),null}closeRenderScope(e){for(let[t,r]of e.localDecls){let n=0,i=(s)=>{if(typeof s==="string"){if(s===t)n++;return}if(!y(s))return;if(la.has(s[0])&&s.length===3&&s[1]===t){i(s[2]);return}if((s[0]===":"||s[0]==="void-pair")&&s.length===3&&typeof s[1]==="string"){i(s[2]);return}if((s[0]==="."||s[0]==="?.")&&s.length===3&&typeof s[2]==="string"){i(s[1]);return}for(let a of s)i(a)};for(let s of e.stmts)i(s);if(n===0)throw this.positionedError(r,`emitter: render local '${t}' is never read — a dead local renders NOTHING (if this line meant an `+`element with expression text, spell it \`${t}\` + indented \`= expr\`: inside render \`${t} = expr\` declares a local named the tag)`,this.rstate.node)}}static collectLeafNames(e,t){if(typeof e==="string"){if(ht.test(e))t.add(e);return}if(!y(e))return;if((e[0]===":"||e[0]==="void-pair")&&e.length===3&&typeof e[1]==="string"){E.collectLeafNames(e[2],t);return}if((e[0]==="."||e[0]==="?.")&&e.length===3&&typeof e[2]==="string"){E.collectLeafNames(e[1],t);return}for(let r of e)E.collectLeafNames(r,t)}static mintName(e,t){let r=e;while(t.has(r))r=`${r}_`;return t.add(r),r}threadProjectionHost(e){if(e===null||e.startsWith("this."))return;for(let t=this.rstate.sink;t&&t.hostParams!==void 0&&!t.vars.has(e);t=t.parent){if(t.hostParams.includes(e))continue;t.hostParams.push(e),t.paramNames.push(e)}}walkFactory(e,t,r,n=null){let i=this.rstate,s=i.sink,a=this.newBlockName(),o=n!==null?[n.itemVar,n.indexVar]:[],l=new Set(o),c=new Set;E.collectLeafNames(e,c);let h=new Set(s.renameHazardNames??[]),f=(S)=>{if(!l.has(S))return l.add(S),S;let w=`${S}_`;while(l.has(w)||c.has(w))w+="_";return l.add(w),h.add(S),h.add(w),w},u=s.loopStack.map((S)=>({...S,itemVar:f(S.itemVar),indexVar:f(S.indexVar)})),d=u.flatMap((S)=>[S.itemVar,S.indexVar]),p=n!==null?[...u,n]:u,m={kind:t,name:a,parent:s,self:"ctx",paramNames:[...o,...d],hostParams:[],frameVar:"__fr",ownerVar:"__o",creates:[],setups:[],vars:new Set,locals:new Set,localDecls:new Map,bindings:new Set([...d,...o]),refs:[],loopStack:p,stmts:[],forceNonStatic:!1,root:null,isStatic:!1,originNode:r,hasKids:!1,kidsVar:null,renameHazardNames:h,readVars:new Set,narrowed:[...s.narrowed??[],...this._narrowNext??[]]};if(this._narrowNext=null,n!==null)n.owner=m;i.records.push(m);let g=i.transitionSlot;i.transitionSlot=t==="branch"?{record:m,el:null}:null,i.sink=m,this.rframes.push({reactive:new Set,bound:m.bindings,loopVars:m.bindings,loopBindings:E.loopBindingsOf(m)});try{let S;if(b1(e))S=e.slice(1);else if(y(e)&&e.length===1&&y(e[0])&&this.stores.idOf(e)===null)S=[e[0]];else S=[e];if(m.stmts=S,m.root=S.length===0?null:this.walkChildStmts(S),m.root===null)m.root=this.newRenderVar("empty"),this.renderLine(null,()=>this.b.emit(`${m.root} = document.createComment('')`))}finally{this.rframes.pop(),i.sink=s,i.transitionSlot=g}this.closeRenderScope(m),m.isStatic=t==="loop"&&m.setups.length===0&&!m.forceNonStatic;let b=new Set([...m.bindings,...m.locals,...m.vars]);if(E.collectLeafNames(m.stmts,b),m.self=E.mintName("ctx",b),m.frameVar=E.mintName("__fr",b),m.ownerVar=E.mintName("__o",b),m.hasKids)m.kidsVar=E.mintName("_factoryChildren",b);return m}narrowConjuncts(e){if(y(e)&&e[0]==="&&"&&e.length===3)return[...this.narrowConjuncts(e[1]),...this.narrowConjuncts(e[2])];if(typeof e==="string")return this.renderVarKind(e)!==null||this.bareRewrite(e)===null?[]:[e];if(!E.isDotChain(e))return[];let t=e;while(y(t))t=t[1];if(t==="this")return[e];if(this.renderVarKind(t)!==null||this.bareRewrite(t)===null)return[];return[e]}static isDotChain(e){if(!y(e)||e[0]!=="."||e.length!==3||typeof e[2]!=="string"||e[2][0]==='"')return!1;let t=e[1];if(t==="this")return!0;if(typeof t==="string")return/^[A-Za-z_$][\w$]*$/.test(t);return E.isDotChain(t)}activeNarrowed(){let e=this.renderRecord;if(!this.ts||!e||!(e.narrowed?.length>0))return[];return e.narrowed.filter((t)=>{let r=t;while(y(r))r=r[1];return r==="this"||!(e.bindings.has(r)||e.locals.has(r))})}hasNarrow(){return this.activeNarrowed().length>0}narrowedReadNames(){let e=new Set;for(let t of this.activeNarrowed())if(typeof t==="string")e.add(t);else if(t[0]==="."&&t[1]==="this"&&t.length===3&&typeof t[2]==="string")e.add(t[2]);return e}narrowGuard(e="statement",{trailing:t=!0}={}){let r=this.activeNarrowed();if(r.length===0)return!1;this._needsNarrowHelper=!0,this.b.suppressClaims=!0;try{this.b.tsOnly(()=>this.b.echo(()=>{if(r.forEach((n,i)=>{if(i>0)this.b.emit(" ");this.b.emit(e==="statement"?"__ripNarrow(":"(__ripNarrow("),this.renderExpr(n),this.b.emit(e==="statement"?");":"),")}),t)this.b.emit(" ")}))}finally{this.b.suppressClaims=!1}return!0}narrowGuardClose(e){if(e)this.b.tsOnly(()=>this.b.emit(")".repeat(this.activeNarrowed().length)))}renderCond(e,t=e){if(e.length>4)throw this.positionedError(e,"emitter: unexpected flat conditional chain shape in render (internal)");if(this.stores.idOf(t)===null&&this._chainMarkNode)t=this._chainMarkNode;let[,r,n]=e,i=e.length===4?e[3]:null;this.checkSetupLocalRefs(r,t),this.checkCrossScopeLocals(r,t);let s=this.newRenderVar("anchor");this.renderLine(null,()=>this.b.emit(`${s} = document.createComment('if')`)),this._narrowNext=this.narrowConjuncts(r);let a=this.walkFactory(n,"branch",t),o=this._chainMarkNode;if(i!==null&&y(i)&&i[0]==="if"&&this.stores.idOf(i)===null)this._chainMarkNode=t;let l=i!==null?this.walkFactory(i,"branch",t):null;this._chainMarkNode=o;let c=a.refs.length>0||l!==null&&l.refs.length>0,h=this.rstate.sink;if(l!==null){for(let[u,d]of[[a,l],[l,a]])for(let p of u.hostParams){if(d.hostParams.includes(p))continue;d.hostParams.push(p),d.paramNames.push(p)}l.hostParams.sort((u,d)=>a.hostParams.indexOf(u)-a.hostParams.indexOf(d)),l.paramNames.splice(l.paramNames.length-l.hostParams.length,l.hostParams.length,...l.hostParams)}let f=[...h.loopStack.flatMap((u)=>[u.itemVar,u.indexVar]),...a.hostParams];return h.setups.push({kind:"raw",node:t,fn:(u)=>this.emitCondSetup(u,t,e,s,a,l,c,f)}),s}renderSwitch(e){let[,t,r,n]=e;if(E.hasMatchArms(r))this.checkMatchSwitch(e);let i=n;for(let s=r.length-1;s>=0;s--){let[,a,o]=r[s],l;if(t===null)l=a.reduce((c,h)=>c===null?h:["||",c,h],null);else l=a.map((c)=>E.matchArmSexpr(t,c)).reduce((c,h)=>c===null?h:["||",c,h],null);i=i!==null?["if",l,o,i]:["if",l,o]}if(i===null||i[0]!=="if")return i===null?this.renderNode("null"):this.renderChildBlock(i);return this.renderCond(i,e)}renderLoop(e){let[,t,r,n,i,s]=e;if(n!==null)throw this.positionedError(e,"emitter: a `by` step has no render reading — the reconciler patches whole collections; step the collection itself: `items.filter((x, i) -> i % 2 == 0)`");if(i!==null)throw this.positionedError(e,"emitter: a `when` guard has no render reading — the reconciler patches whole collections; filter the collection itself: `for x in items.filter((x) -> cond)`");if(t.length>2||t.some((w)=>typeof w!=="string"))throw this.positionedError(e,"emitter: a render loop takes plain item and index variables (`for item, i in items`) — destructuring loop "+"variables have no factory-parameter reading here; destructure inside the body");if(t.length===2&&t[0]===t[1])throw this.positionedError(e,`emitter: a render loop cannot bind '${t[0]}' as BOTH item and index — one name cannot hold two row facts `);for(let w of t)if(w.startsWith("__"))throw this.positionedError(e,`emitter: render loop variable '${w}' — double-underscore names are the compiler/runtime namespace inside `+"render (factory scaffolding and injected helpers live there)");this.checkSetupLocalRefs(r,e),this.checkCrossScopeLocals(r,e);let a=t[0],o=t[1]??null;if(o===null){let w=new Set(this.loopVarNames());w.add(a),E.collectRenderBodyBindings(s,w);let R=(T,F)=>{if(typeof T==="string")return T===F;return y(T)&&T.some((L)=>R(L,F))};for(let T of["i","j","k","l","m","n"])if(!w.has(T)&&!R(s,T)){o=T;break}o=o??`__rip_idx${this.rstate.sink.loopStack.length}`}let l=this.newRenderVar("anchor");this.renderLine(null,()=>this.b.emit(`${l} = document.createComment('for')`));let c=this.renderReactive(r),h=this.extractLoopKey(s,e),f=h!==null?this.rstate.keySpan??null:null;if(h!==null)this.checkSetupLocalRefs(h,e),this.checkCrossScopeLocals(h,e);let u=this.stores.idOf(e),d=u!==null?this.stores.role(u,"vars"):null,p=this.primitiveAvoid;if(d?.sourceStart!=null)this.primitiveAvoid=[...p??[],[d.sourceStart,d.sourceEnd]];let m;try{m=this.walkFactory(s,"loop",e,{itemVar:a,indexVar:o,reactiveSource:c,iter:r,node:e})}finally{this.primitiveAvoid=p}if(h!==null){if(m.locals.size>0&&Ee(h,m.locals))throw this.positionedError(e,"emitter: a `key:` expression must be evaluable in the loop HEADER scope — it reads a render local declared "+"inside the loop body, which lives in the row factory (derive the key from the item inline: `key: item.id`)");if(!Ee(h,new Set([a,o])))throw this.positionedError(e,`emitter: a loop key must derive from the row — this \`key:\` expression never reads '${a}'${t.length===2?` or '${o}'`:""} (a row-independent key cannot identify rows)`)}let g=m.refs.length>0,b=this.rstate.sink,S=[...b.loopStack.flatMap((w)=>[w.itemVar,w.indexVar]),...m.hostParams];return b.setups.push({kind:"raw",node:e,fn:(w)=>this.emitLoopSetup(w,e,l,r,m,h,a,o,g,S,f)}),l}static collectRenderBodyBindings(e,t){if(!y(e))return;if((e[0]==="for-in"||e[0]==="for-of"||e[0]==="for-as")&&y(e[1])){for(let r of e[1])if(typeof r==="string")t.add(r)}else if(e[0]==="="&&e.length===3&&typeof e[1]==="string")t.add(e[1]);for(let r of e)E.collectRenderBodyBindings(r,t)}extractLoopKey(e,t){let n=(b1(e)?e.slice(1):[e]).find((s)=>!this.isRenderBinding(s));if(!y(n))return null;let i=(s)=>{for(let a=1;athis.b.emit(e.join(", ")))}emitCondSetup(e,t,r,n,i,s,a,o){let l=this.renderSelf??"this",c=e+" ",h=c+" ",f=new Set([l,...o]);E.collectLeafNames(r[1],f);let u=E.mintName("anchor",f),d=E.mintName("currentBlock",f),p=E.mintName("showing",f),m=E.mintName("show",f),g=E.mintName("want",f),b=E.mintName("leaving",f),S=this.runtimeName("__transition"),w=(T)=>{this.b.emit(`${h} ${d} = ${l}.${T.name}(${l}`),this.emitOuterLoopArgs(o),this.b.emit(`); +`),this.b.emit(`${h} ${d}.c(); +`),this.b.emit(`${h} if (${u}.parentNode) ${d}.m(${u}.parentNode, ${u}.nextSibling); +`),this.b.emit(`${h} ${d}.p(${l}`),this.emitOuterLoopArgs(o),this.b.emit(`); +`),this.b.emit(`${h} if (${d}._t) ${S}(${d}._first, ${d}._t, 'enter', undefined); `)},R=()=>{if(this.b.emit(`${e}{ -`),this.b.emit(`${c}const ${u} = ${s}; +`),this.b.emit(`${c}const ${u} = ${n}; `),this.b.emit(`${c}let ${d}`),this.tsScaffoldAny(),this.b.emit(` = null; `),this.b.emit(`${c}let ${p}`),this.tsScaffoldAny(),this.b.emit(` = null; `),this.b.emit(`${c}${this.runtimeName("__effect")}(() => { -`),a)this.b.emit(`${f}${this.runtimeName("__batch")}(() => { -`);if(this.hasNarrow())this.b.tsOnly(()=>{this.b.emit(f),this.narrowGuard("statement",{trailing:!1}),this.b.emit(` -`)});if(this.b.emit(`${f}const ${m} = !!(`),this.mark(t,"$self",()=>this.mark(t,"condition",()=>this.renderExpr(r[1]))),this.b.emit(`); -`),this.b.emit(`${f}const ${g} = ${m} ? 'then' : ${n!==null?"'else'":"null"}; -`),this.b.emit(`${f}if (${g} === ${p}) return; -`),this.b.emit(`${f}if (${d}) { -`),this.b.emit(`${f} const ${b} = ${d}; -`),this.b.emit(`${f} if (${b}._t) { ${b}.f(); ${S}(${b}._first, ${b}._t, 'leave', () => ${b}.d(true)); } -`),this.b.emit(`${f} else { ${b}.d(true); } -`),this.b.emit(`${f} ${d} = null; -`),this.b.emit(`${f}} -`),this.b.emit(`${f}${p} = ${g}; -`),this.b.emit(`${f}if (${g} === 'then') { -`),w(i),this.b.emit(`${f}} -`),n!==null)this.b.emit(`${f}if (${g} === 'else') { -`),w(n),this.b.emit(`${f}} -`);if(a)this.b.emit(`${f}}); +`),a)this.b.emit(`${h}${this.runtimeName("__batch")}(() => { +`);if(this.hasNarrow())this.b.tsOnly(()=>{this.b.emit(h),this.narrowGuard("statement",{trailing:!1}),this.b.emit(` +`)});if(this.b.emit(`${h}const ${m} = !!(`),this.mark(t,"$self",()=>this.mark(t,"condition",()=>this.renderExpr(r[1]))),this.b.emit(`); +`),this.b.emit(`${h}const ${g} = ${m} ? 'then' : ${s!==null?"'else'":"null"}; +`),this.b.emit(`${h}if (${g} === ${p}) return; +`),this.b.emit(`${h}if (${d}) { +`),this.b.emit(`${h} const ${b} = ${d}; +`),this.b.emit(`${h} if (${b}._t) { ${b}.f(); ${S}(${b}._first, ${b}._t, 'leave', () => ${b}.d(true)); } +`),this.b.emit(`${h} else { ${b}.d(true); } +`),this.b.emit(`${h} ${d} = null; +`),this.b.emit(`${h}} +`),this.b.emit(`${h}${p} = ${g}; +`),this.b.emit(`${h}if (${g} === 'then') { +`),w(i),this.b.emit(`${h}} +`),s!==null)this.b.emit(`${h}if (${g} === 'else') { +`),w(s),this.b.emit(`${h}} +`);if(a)this.b.emit(`${h}}); `);this.b.emit(`${c}}); `),this.b.emit(`${c}${this.runtimeName("__ownerFrame")}().add(() => { if (${d}) { ${d}.d(true); ${d} = null; } }); `),this.b.emit(`${e}} -`)};this.mark(t,"$self",R)}emitLoopSetup(e,t,r,s,i,n,a,o,l,c,f=null){let h=this.renderSelf??"this",u=e+" ",d=u+" ",p=new Set([h,a,o,...c]);if(E.collectLeafNames(s,p),n!==null)E.collectLeafNames(n,p);let m=E.mintName("__s",p),g=E.mintName("__b",p);this.mark(t,"$self",()=>{if(this.b.emit(`${e}{ +`)};this.mark(t,"$self",R)}emitLoopSetup(e,t,r,n,i,s,a,o,l,c,h=null){let f=this.renderSelf??"this",u=e+" ",d=u+" ",p=new Set([f,a,o,...c]);if(E.collectLeafNames(n,p),s!==null)E.collectLeafNames(s,p);let m=E.mintName("__s",p),g=E.mintName("__b",p);this.mark(t,"$self",()=>{if(this.b.emit(`${e}{ `),this.b.emit(`${u}const ${m}`),this.tsScaffoldAny(),this.b.emit(` = { blocks: [], keys: [] }; `),this.b.emit(`${u}${this.runtimeName("__effect")}(() => { -`),this.b.emit(d),l)this.b.emit(`${this.runtimeName("__batch")}(() => `);let b=this.narrowGuard(l?"expression":"statement");this.b.emit(`${this.runtimeName("__reconcile")}(${r}, ${m}, `);let S=this._narrowedReads;this._narrowedReads=this.narrowedReadNames();try{this.withExpression(()=>this.expr(s))}finally{this._narrowedReads=S}if(this.b.emit(`, ${h}, ${h}.${i.name}, `),n!==null){let w=this.tsLoopItemTypeText(i.loopStack.at(-1),h);{let R=this.stores.idOf(t),T=R!==null?this.stores.role(R,"vars"):null,F=T?.sourceStart!=null?this.stores.primitiveSpans(a,T.sourceStart,T.sourceEnd)[0]??null:null;if(this.b.emit("("),F){let L=this.b.offset;this.b.markSpan(R,"identifier",F.sourceStart,F.sourceEnd,()=>this.b.emit(a)),this.loopVars.push([L,this.b.offset]),this.loopVarDecls.push({span:[L,this.b.offset],owner:i,which:"item"})}else this.b.emit(a)}if(w!==null)this.b.tsOnly(()=>this.b.echo(()=>this.b.emit(`: ${w}`)));if(this.b.emit(`, ${o}`),this.ts)this.b.tsOnly(()=>this.b.emit(": number"));this.b.emit(") => "),this.rframes.push({reactive:new Set,bound:new Set([a,o]),block:!0,loopVars:new Set([a,o]),loopBindings:new Map([[a,{owner:i,which:"item"}],[o,{owner:i,which:"index"}]])});try{this.withExpression(()=>{let R=E.needsGrouping(n,"operand")||O1(n),T=this.tsServedValue("__key",()=>{if(R)this.b.emit("(");{let F=this.stores.idOf(t),L=F!==null?this.stores.role(F,"vars"):null,P=this.primitiveAvoid;if(L?.sourceStart!=null)this.primitiveAvoid=[...P??[],[L.sourceStart,L.sourceEnd]];try{this.expr(n)}finally{this.primitiveAvoid=P}}if(R)this.b.emit(")")});if(T!==null&&f!==null)this.intrinsics.push({start:f[0],end:f[1],kind:"key",gen:T})})}finally{this.rframes.pop()}}else this.b.emit("null");if(this.emitOuterLoopArgs(c),this.b.emit(")"),l)this.narrowGuardClose(b);if(l)this.b.emit(")");this.b.emit(`; +`),this.b.emit(d),l)this.b.emit(`${this.runtimeName("__batch")}(() => `);let b=this.narrowGuard(l?"expression":"statement");this.b.emit(`${this.runtimeName("__reconcile")}(${r}, ${m}, `);let S=this._narrowedReads;this._narrowedReads=this.narrowedReadNames();try{this.withExpression(()=>this.expr(n))}finally{this._narrowedReads=S}if(this.b.emit(`, ${f}, ${f}.${i.name}, `),s!==null){let w=this.tsLoopItemTypeText(i.loopStack.at(-1),f);{let R=this.stores.idOf(t),T=R!==null?this.stores.role(R,"vars"):null,F=T?.sourceStart!=null?this.stores.primitiveSpans(a,T.sourceStart,T.sourceEnd)[0]??null:null;if(this.b.emit("("),F){let L=this.b.offset;this.b.markSpan(R,"identifier",F.sourceStart,F.sourceEnd,()=>this.b.emit(a)),this.loopVars.push([L,this.b.offset]),this.loopVarDecls.push({span:[L,this.b.offset],owner:i,which:"item"})}else this.b.emit(a)}if(w!==null)this.b.tsOnly(()=>this.b.echo(()=>this.b.emit(`: ${w}`)));if(this.b.emit(`, ${o}`),this.ts)this.b.tsOnly(()=>this.b.emit(": number"));this.b.emit(") => "),this.rframes.push({reactive:new Set,bound:new Set([a,o]),block:!0,loopVars:new Set([a,o]),loopBindings:new Map([[a,{owner:i,which:"item"}],[o,{owner:i,which:"index"}]])});try{this.withExpression(()=>{let R=E.needsGrouping(s,"operand")||O1(s),T=this.tsServedValue("__key",()=>{if(R)this.b.emit("(");{let F=this.stores.idOf(t),L=F!==null?this.stores.role(F,"vars"):null,C=this.primitiveAvoid;if(L?.sourceStart!=null)this.primitiveAvoid=[...C??[],[L.sourceStart,L.sourceEnd]];try{this.expr(s)}finally{this.primitiveAvoid=C}}if(R)this.b.emit(")")});if(T!==null&&h!==null)this.intrinsics.push({start:h[0],end:h[1],kind:"key",gen:T})})}finally{this.rframes.pop()}}else this.b.emit("null");if(this.emitOuterLoopArgs(c),this.b.emit(")"),l)this.narrowGuardClose(b);if(l)this.b.emit(")");this.b.emit(`; `),this.b.emit(`${u}}); `),this.b.emit(`${u}${this.runtimeName("__ownerFrame")}().add(() => { for (const ${g} of ${m}.blocks) { try { ${g}.d(true); } catch {} } ${m}.blocks = []; ${m}.keys = []; ${m}.items = []; }); `),this.b.emit(`${e}} -`)})}emitFactory(e,t,r){let s=" ".repeat(t+1),i=s+" ",n=i+" ",a=n+" ",{self:o,frameVar:l,ownerVar:c}=e,f=[o,...e.paramNames],h=e.setups.length>0,u=new Set([...e.bindings,...e.locals,...e.vars,o,l,c]);if(e.kidsVar!==null)u.add(e.kidsVar);E.collectLeafNames(e.stmts,u);let d=[o,...e.paramNames.map((P)=>E.mintName(`__${P}`,u))],p=e.kidsVar!==null?E.mintName("__c",u):null,m=e.kidsVar!==null?E.mintName("__e",u):null,g=!e.isStatic,b=this.ts?E.mintName("__Ctx",u):null,S=new Map,w=new Map;if(e.loopStack.forEach((P)=>{if(P.node!==void 0)w.set(P.itemVar,P.node),w.set(P.indexVar,P.node)}),this.ts){for(let P of e.loopStack){let N=this.tsLoopItemTypeText(P,e.self);if(N!==null)S.set(P.itemVar,N);S.set(P.indexVar,"number")}for(let P of e.hostParams)S.set(P,"any")}let R=new Map;for(let P of e.loopStack){let N=P.node?this.stores.idOf(P.node):null,D=N!==null?this.stores.role(N,"vars"):null;if(D?.sourceStart==null)continue;for(let O of[P.itemVar,P.indexVar]){if(typeof O!=="string"||R.has(O))continue;let W=this.stores.primitiveSpans(O,D.sourceStart,D.sourceEnd)[0]??null;if(W)R.set(O,{id:N,start:W.sourceStart,end:W.sourceEnd,owner:P.owner,which:O===P.itemVar?"item":"index"})}}let T=(P,N,D)=>{P.forEach((O,W)=>{if(W>0)this.b.emit(", ");let H=()=>{let k=R.get(O);if(k){let j=this.b.offset;if(this.b.markSpan(k.id,"identifier",k.start,k.end,()=>this.b.emit(O)),this.isRenderLoopName(O))this.loopVars.push([j,this.b.offset]);if(k.owner!==void 0)this.loopVarDecls.push({span:[j,this.b.offset],owner:k.owner,which:k.which})}else this.emitPrimitive(O);if(!this.ts)return;let v=W===0?N:D(O,W);if(v!=null)this.b.tsOnly(()=>this.b.echo(()=>this.b.emit(`: ${v}`)))},G=w.get(O);if(G!==void 0)this.mark(G,"$self",H);else H()})},F=e.kind==="loop"?e.loopStack.at(-1):null,L=F!==null?this.tsIterThunkName(F):null;if(L!==null){let P=e.paramNames.slice(2,e.paramNames.length-e.hostParams.length),N;this.withRecordContext(e,()=>{N=this.capturedExprText(()=>this.expr(F.iter),{source:this.b.source})});let D=[`${o}: this`,...P.map((O)=>S.has(O)?`${O}: ${S.get(O)}`:O)];this.b.tsOnly(()=>this.b.echo(()=>this.b.emit(`${s}${L}(${D.join(", ")}) { return ${N}; } -`)))}this.mark(r,"$self",()=>{this.withRecordContext(e,()=>{if(this.b.emit(`${s}${e.name}(`),T(f,"this",(D)=>S.get(D)),this.b.emit(`) { +`)})}emitFactory(e,t,r){let n=" ".repeat(t+1),i=n+" ",s=i+" ",a=s+" ",{self:o,frameVar:l,ownerVar:c}=e,h=[o,...e.paramNames],f=e.setups.length>0,u=new Set([...e.bindings,...e.locals,...e.vars,o,l,c]);if(e.kidsVar!==null)u.add(e.kidsVar);E.collectLeafNames(e.stmts,u);let d=[o,...e.paramNames.map((C)=>E.mintName(`__${C}`,u))],p=e.kidsVar!==null?E.mintName("__c",u):null,m=e.kidsVar!==null?E.mintName("__e",u):null,g=!e.isStatic,b=this.ts?E.mintName("__Ctx",u):null,S=new Map,w=new Map;if(e.loopStack.forEach((C)=>{if(C.node!==void 0)w.set(C.itemVar,C.node),w.set(C.indexVar,C.node)}),this.ts){for(let C of e.loopStack){let N=this.tsLoopItemTypeText(C,e.self);if(N!==null)S.set(C.itemVar,N);S.set(C.indexVar,"number")}for(let C of e.hostParams)S.set(C,"any")}let R=new Map;for(let C of e.loopStack){let N=C.node?this.stores.idOf(C.node):null,D=N!==null?this.stores.role(N,"vars"):null;if(D?.sourceStart==null)continue;for(let O of[C.itemVar,C.indexVar]){if(typeof O!=="string"||R.has(O))continue;let W=this.stores.primitiveSpans(O,D.sourceStart,D.sourceEnd)[0]??null;if(W)R.set(O,{id:N,start:W.sourceStart,end:W.sourceEnd,owner:C.owner,which:O===C.itemVar?"item":"index"})}}let T=(C,N,D)=>{C.forEach((O,W)=>{if(W>0)this.b.emit(", ");let H=()=>{let k=R.get(O);if(k){let j=this.b.offset;if(this.b.markSpan(k.id,"identifier",k.start,k.end,()=>this.b.emit(O)),this.isRenderLoopName(O))this.loopVars.push([j,this.b.offset]);if(k.owner!==void 0)this.loopVarDecls.push({span:[j,this.b.offset],owner:k.owner,which:k.which})}else this.emitPrimitive(O);if(!this.ts)return;let v=W===0?N:D(O,W);if(v!=null)this.b.tsOnly(()=>this.b.echo(()=>this.b.emit(`: ${v}`)))},G=w.get(O);if(G!==void 0)this.mark(G,"$self",H);else H()})},F=e.kind==="loop"?e.loopStack.at(-1):null,L=F!==null?this.tsIterThunkName(F):null;if(L!==null){let C=e.paramNames.slice(2,e.paramNames.length-e.hostParams.length),N;this.withRecordContext(e,()=>{N=this.capturedExprText(()=>this.expr(F.iter),{source:this.b.source})});let D=[`${o}: this`,...C.map((O)=>S.has(O)?`${O}: ${S.get(O)}`:O)];this.b.tsOnly(()=>this.b.echo(()=>this.b.emit(`${n}${L}(${D.join(", ")}) { return ${N}; } +`)))}this.mark(r,"$self",()=>{this.withRecordContext(e,()=>{if(this.b.emit(`${n}${e.name}(`),T(h,"this",(D)=>S.get(D)),this.b.emit(`) { `),this.ts&&g)this.b.tsOnly(()=>this.b.emit(`${i}type ${b} = typeof ${o}; `));if(e.vars.size>0)this.b.emit(`${i}let `),[...e.vars].forEach((D,O)=>{if(O>0)this.b.emit(", ");this.b.emit(D),this.tsScaffoldAny()}),this.b.emit(`; `);if(e.kidsVar!==null)this.b.emit(`${i}let ${e.kidsVar}`),this.tsScaffoldAny("[]"),this.b.emit(` = []; -`);if(h)this.b.emit(`${i}let ${l}`),this.tsScaffoldAny(),this.b.emit(`; +`);if(f)this.b.emit(`${i}let ${l}`),this.tsScaffoldAny(),this.b.emit(`; `);if(this.b.emit(`${i}return { -`),e.isStatic)this.b.emit(`${n}_s: true, -`);this.b.emit(`${n}c() { -`),this.replayCreates(e,a);let P=this.rstate.fragChildren.get(e.root),N=P!==void 0?P[0]:e.root;if(this.b.emit(a),this.ts)this.b.tsOnly(()=>this.b.emit("("));if(this.b.emit("this"),this.ts)this.b.tsOnly(()=>this.b.emit(" as any)"));if(this.b.emit(`._first = ${N}; -`),this.b.emit(`${n}}, -`),this.b.emit(`${n}m(target`),this.tsScaffoldAny(),this.b.emit(", anchor"),this.tsScaffoldAny(),this.b.emit(`) { -`),P!==void 0)for(let D of P)this.b.emit(`${a}if (target) target.insertBefore(${D}, anchor); +`),e.isStatic)this.b.emit(`${s}_s: true, +`);this.b.emit(`${s}c() { +`),this.replayCreates(e,a);let C=this.rstate.fragChildren.get(e.root),N=C!==void 0?C[0]:e.root;if(this.b.emit(a),this.ts)this.b.tsOnly(()=>this.b.emit("("));if(this.b.emit("this"),this.ts)this.b.tsOnly(()=>this.b.emit(" as any)"));if(this.b.emit(`._first = ${N}; +`),this.b.emit(`${s}}, +`),this.b.emit(`${s}m(target`),this.tsScaffoldAny(),this.b.emit(", anchor"),this.tsScaffoldAny(),this.b.emit(`) { +`),C!==void 0)for(let D of C)this.b.emit(`${a}if (target) target.insertBefore(${D}, anchor); `);else this.b.emit(`${a}if (target) target.insertBefore(${e.root}, anchor); `);for(let D of e.refs)this.b.emit(a),this.mark(D.node,"$self",()=>{let O=this.ts&&typeof D.tag==="string";if(O)this.b.tsOnly(()=>this.b.emit(`${D.svg?"__ripRefCellSvg":"__ripRefCell"}('${D.tag}', `));let W=this.b.offset;this.b.emit(`${o}.`);let H=this.emitPrimitive(D.name);if(H!==null)this.memberDecls.push({start:H[0],end:H[1]});if(O)D.site([W,this.b.offset]);if(O)this.b.tsOnly(()=>this.b.emit(")"));if(this.b.emit(`.value = ${D.elVar}`),O)this.b.tsOnly(()=>this.b.emit(` as ${xe(D.tag,D.svg)} | null`));this.b.emit(";")}),this.b.emit(` -`);if(this.b.emit(`${n}}, -`),this.b.emit(`${n}p(`),g)T(d,b,(D,O)=>`typeof ${e.paramNames[O-1]}`);if(this.b.emit(`) { +`);if(this.b.emit(`${s}}, +`),this.b.emit(`${s}p(`),g)T(d,b,(D,O)=>`typeof ${e.paramNames[O-1]}`);if(this.b.emit(`) { `),g&&e.paramNames.length>0)this.b.emit(a),this.b.echo(()=>this.b.emit(e.paramNames.map((D,O)=>`${D} = ${d[O+1]};`).join(" "))),this.b.emit(` -`);if(h)this.b.emit(`${a}if (${l}) ${l}.dispose(); +`);if(f)this.b.emit(`${a}if (${l}) ${l}.dispose(); `),this.b.emit(`${a}const ${c} = ${this.runtimeName("__pushOwner")}(${l} = ${this.runtimeName("__ownerFrame")}()); `),this.b.emit(`${a}try { `),this.replaySetups(e,a+" "),this.b.emit(`${a}} finally { ${this.runtimeName("__popOwner")}(${c}); } -`);if(this.b.emit(`${n}}, -`),e.kind==="branch"){if(this.b.emit(`${n}f() {`),h)this.b.emit(` if (${l}) { ${l}.dispose(); ${l} = null; }`);this.b.emit(` }, -`)}if(this.b.emit(`${n}d(detaching`),this.tsScaffoldAny(),this.b.emit(`) { +`);if(this.b.emit(`${s}}, +`),e.kind==="branch"){if(this.b.emit(`${s}f() {`),f)this.b.emit(` if (${l}) { ${l}.dispose(); ${l} = null; }`);this.b.emit(` }, +`)}if(this.b.emit(`${s}d(detaching`),this.tsScaffoldAny(),this.b.emit(`) { `),e.kidsVar!==null)this.b.emit(`${a}for (const ${p} of ${e.kidsVar}) { try { ${p}.unmount?.({removeDOM: detaching}); } catch (${m}) { console.error('[Rip] factory child unmount error:', ${m}); } } `),this.b.emit(`${a}${e.kidsVar} = []; -`);if(h)this.b.emit(`${a}if (${l}) { ${l}.dispose(); ${l} = null; } +`);if(f)this.b.emit(`${a}if (${l}) { ${l}.dispose(); ${l} = null; } `);if(e.refs.length>0){this.b.emit(`${a}if (detaching) ${this.runtimeName("__batch")}(() => { `);for(let D of e.refs)this.b.emit(`${a} ${this.runtimeName("__detachRef")}(${o}.${D.name}, ${D.elVar}); `);this.b.emit(`${a}}); -`)}if(P!==void 0)for(let D of P)this.b.emit(`${a}if (detaching) ${this.runtimeName("__detach")}(${D}); +`)}if(C!==void 0)for(let D of C)this.b.emit(`${a}if (detaching) ${this.runtimeName("__detach")}(${D}); `);else this.b.emit(`${a}if (detaching) ${this.runtimeName("__detach")}(${e.root}); -`);this.b.emit(`${n}} +`);this.b.emit(`${s}} `),this.b.emit(`${i}}; -`),this.b.emit(`${s}} -`)})})}renderTransition(e,t,r,s){let i=this.rstate,n=i.transitionSlot;if(n===null||n.record!==i.sink||n.el!==e){let o=i.sink.kind==="class"?"a static element)":i.sink.kind==="loop"?"a loop body — the reconciler has no enter/leave phase for rows":"a nested position — the swap animates the branch's FIRST node, so a deeper directive would animate an "+"element it does not name";throw this.positionedError(t,`emitter: a transition (\`~name\`) runs where a conditional branch enters or leaves, and this directive sits on ${o}; put it on the FIRST top-level element of an if/else branch`,this.rstate.node)}if(typeof r!=="string"||!(r.startsWith('"')||r.startsWith("'")))throw this.positionedError(t,"emitter: a transition takes a literal name (`~fade`) — computed transition names have no reading",this.rstate.node);let a=r.replace(/^["']|["']$/g,"");this.renderLine(t,()=>{if(this.ts)this.b.tsOnly(()=>this.b.emit("("));if(this.b.emit("this"),this.ts)this.b.tsOnly(()=>this.b.emit(" as any)"));this.b.emit(`._t = "${a}"`)})}renderRef(e,t,r,s,i){let n=typeof r==="string"&&ft.test(r)?r:null;if(n===null)throw this.positionedError(t,"emitter: ref: expects a state cell — declare `el := null` then write `ref: el`",this.rstate.node);let a=this.rstate.frame.members.get(n);if(a!=="state"&&a!=="prop")throw this.positionedError(t,a!==void 0?`emitter: ref: target '${n}' is not a writable state cell — declare it with ':=' (computed '~=' and `+"readonly '=!' members can't hold a ref)":`emitter: ref: target '${n}' must be a state cell declared with ':=' (e.g. \`${n} := null\`)`,this.rstate.node);let o=this.renderTagOf(e),l=this.ts&&o!==null&&/^[a-z][a-z0-9-]*$/.test(o),c=this.rstate.svgEls?.has(e)===!0;if(l){this._needsRefCellHelper=!0;let f=this.wordSpanIn("ref",t);if(f!==null)this.intrinsics.push({start:f[0],end:f[1],kind:"ref",tag:o,svg:c,name:n})}if(this.rstate.sink.kind==="class")this.renderLine(t,()=>{if(l)this.b.tsOnly(()=>this.b.emit(`${c?"__ripRefCellSvg":"__ripRefCell"}('${o}', `));let f=this.b.offset;this.b.emit("this.");let h=this.emitPrimitive(n);if(h!==null)this.memberDecls.push({start:h[0],end:h[1]});if(l)i([f,this.b.offset]);if(l)this.b.tsOnly(()=>this.b.emit(")"));if(this.b.emit(`.value = ${e}`),l)this.b.tsOnly(()=>this.b.emit(` as ${xe(o,c)} | null`))}),this.renderLine(t,()=>{this.b.emit(`(this._refCleanups ??= []).push(() => ${this.runtimeName("__detachRef")}(this.`),this.emitPrimitive(n),this.b.emit(`, ${e}))`)});else this.rstate.sink.refs.push({name:n,elVar:e,node:t,tag:l?o:null,svg:c,site:i})}renderBind(e,t,r,s,i,n){if(this.checkBindTarget(t,s),this.rstate.sink.kind==="loop"&&this.loopVarNames().size>0&&Ee(s,this.loopVarNames()))this.rstate.sink.forceNonStatic=!0;let a=null;for(let u of i.slice(1))if(y(u)&&u.length===3&&(u[1]==="type"||u[1]==='"type"')&&typeof u[2]==="string")a=u[2].replace(/^["']|["']$/g,"");let o,l;if(r==="checked")o="change",l="target.checked";else o="input",l=a==="number"||a==="range"?"target.valueAsNumber":"target.value";this.renderEffect(t,()=>{this.b.emit(`${e}.`);let u=this.emitRewrittenPrimitive(`__bind_${r}__`,r);this.b.emit(" = ");let d=this.tsServedValue("__bind",()=>this.withExpression(()=>this.expr(s)));if(d!==null&&u!==null)this.intrinsics.push({start:u[0],end:u[1],kind:"bind",name:r,gen:d});if(r==="value")this.b.emit(" ?? ''");this.b.emit(";")},s);let c=this.bindRootTouch(s),f=new Set;E.collectLeafNames(s,f);let h=E.mintName("e",f);this.renderLine(t,()=>{this.b.emit(`${e}.addEventListener('${o}', (${h}`);let u=this.tsElReceiver(e),d=this.ts?this.tsEventTypeText([o],u.hostText):null;if(d!==null)this.b.tsOnly(()=>this.b.emit(`: ${d}`));else this.tsScaffoldAny();this.b.emit(") => { ");let p=this.b.offset;if(this.withExpression(()=>this.expr(s)),n([p,this.b.offset]),this.b.emit(` = ${h}.${l};`),c!==null)this.b.emit(" "),c(),this.b.emit(".touch?.();");this.b.emit(" })")})}checkBindTarget(e,t){let r=(n)=>{throw this.positionedError(e,n,this.rstate.node)};if(typeof t==="string"){if(!ft.test(t))r("emitter: a two-way binding (`<=>`) needs an assignable target — a literal cannot receive the input");let n=this.renderVarKind(t,e);if(n!==null)r(`emitter: a two-way binding cannot target a ${n==="local"?"render local":"loop variable"} — `+"the write would land on a factory parameter and reach nothing; bind a state member or a chain into row data");let a=this.resolveBareRead(t);if(a==="member-reactive"&&this.rstate.frame.members.get(t)==="computed")r(`emitter: '<=>' targets '${t}', a computed ('~=') member — a derived value has no writable `+"container (its .value is get-only); bind the state it derives from");if(a==="reactive"||a==="member-reactive")return;if(a==="member")r(`emitter: '<=>' targets '${t}', a plain (\`=\`) member — writes would never notify and the display `+"would never update; declare it with ':='");r(`emitter: '<=>' targets '${t}', which is not declared — declare a state member (\`${t} := ""\`) to bind it`)}if(y(t)&&t[0]==="."&&t[1]==="this"&&t.length===3&&typeof t[2]==="string"){if(this.memberIsReactive(t[2])&&this.rstate.frame.members.get(t[2])==="computed")r(`emitter: '<=>' targets '@${t[2]}', a computed ('~=') member — a derived value has no writable `+"container; bind the state it derives from");if(this.memberIsReactive(t[2]))return;if(this.rstate.frame.members.has(t[2]))r(`emitter: '<=>' targets '@${t[2]}', a non-reactive member — writes would never notify`+"); declare it with ':='");r(`emitter: '<=>' targets '@${t[2]}', which is not a declared member`)}if(y(t)&&E.optionalGuard(t)!==null)r("emitter: a two-way binding target cannot carry optional links — the write form would be invalid JS");let s=t,i=!1;while(y(s)&&(s[0]==="."||s[0]==="[]")&&s.length===3)i=!0,s=s[1];if(i)return;r("emitter: a two-way binding (`<=>`) needs an assignable target — a state member or a member/index chain "+"")}bindRootTouch(e){if(typeof e==="string")return null;if(y(e)&&e[0]==="."&&e[1]==="this"&&e.length===3)return null;let t=e;while(y(t)&&(t[0]==="."||t[0]==="[]")&&t.length===3){if(t[0]==="."&&t[1]==="this"&&typeof t[2]==="string"){let r=t[2];if(this.memberIsReactive(r))return()=>this.b.emit(`${this.renderSelf??"this"}.${r}`);return null}t=t[1]}if(typeof t==="string"){if(this.renderVarKind(t)!==null)return null;let r=this.resolveBareRead(t);if(r==="member-reactive"){let s=t;return()=>this.b.emit(`${this.renderSelf??"this"}.${s}`)}if(r==="reactive"){let s=t;return()=>this.b.emit(s)}}return null}checkUserSpelledBind(e){let t=y(e)?this.stores.idOf(e):null,r=t!==null?this.stores.role(t,"key"):null;if(!r||r.sourceStart==null||this.b.source===null)return;if(this.b.source.slice(r.sourceStart,r.sourceEnd).startsWith("__bind_"))throw this.positionedError(e,"emitter: '__bind_…__:' is the compiler's two-way-binding channel — spell the binding `name <=> container` "+"(`__`-prefixed names are the compiler/runtime namespace)",this.rstate.node)}checkBareEventHandler(e,t){if(!y(t)||t[0]!=="."||t[1]!=="this"||typeof t[2]!=="string")return;let r=this.stores.idOf(t),s=r!==null?this.stores.selfSpan(r):null;if(s===null||s[0]!==s[1])return;let i=e[1],n=typeof i[2]==="string"?i[2]:String(i[2]);if(!Ut.has(n))throw this.positionedError(e,`emitter: \`@${n}\` is not a DOM event — use \`= @${n}\` to render text, or \`@${n}: handler\` for an explicit handler`);if(n==="error")throw this.positionedError(e,"emitter: bare `@error` is ambiguous with the onError lifecycle hook — write `@error: handler` to bind a DOM error listener explicitly");let a=t[2];if(!this.cframes[this.cframes.length-1].members.has(a))throw this.positionedError(e,`emitter: bare \`@${n}\` requires a component method \`${a}\` — define \`${a}\`, or use \`@${n}: handler\` for an explicit handler`)}static collectTemplateClasses(e){let t=[],r,s=e;while(y(s)&&s[0]==="."&&s.length===3){if(typeof s[2]!=="string")return{tag:null,classes:t,id:r};t.unshift(s[2]),s=s[1]}if(typeof s!=="string")return{tag:null,classes:t,id:r};let[i,n]=s.split("#");if(n)r=n;for(let a=0;a=0)r=t[a].slice(o+1),t[a]=t[a].slice(0,o)}return{tag:i||"div",classes:t.filter((a)=>a!==""),id:r}}static templateHeadTag(e){if(!y(e))return null;let t=e[0];if(typeof t==="string"){if(t===".")return E.collectTemplateClasses(e).tag;return t.length>0?t.split("#")[0]||"div":null}if(!y(t))return null;if(y(t[0])&&t[0][0]==="."&&t[0][2]==="__clsx"){let r=t[0][1];if(typeof r==="string")return r.split("#")[0]||"div";return E.collectTemplateClasses(r).tag}return E.collectTemplateClasses(t).tag}static returnGuard(e){return y(e)&&(e[0]==="||"||e[0]==="&&"||e[0]==="??")&&e.length===3&&y(e[2])&&e[2][0]==="return"}static stmtGuard(e){return y(e)&&(e[0]==="||"||e[0]==="&&"||e[0]==="??")&&e.length===3&&(e[2]==="continue"||e[2]==="break"||e[2]==="debugger")}static controlGuard(e){return E.returnGuard(e)||E.throwGuard(e)||E.stmtGuard(e)}static throwGuard(e){return y(e)&&(e[0]==="||"||e[0]==="&&"||e[0]==="??")&&e.length===3&&y(e[2])&&e[2][0]==="throw"&&e[2].length===2}static isStrRepeat(e){return y(e)&&e[0]==="*"&&e.length===3&&typeof e[1]==="string"&&e[1][0]==='"'}static leadsWithObject(e){let t=e;for(;;){if(!y(t))return!1;if(O1(t))return!0;if(ht(t)||ha(t)||ut(t)){t=t[1];continue}let r=E.chainHeadSlot(t);if(r!==null){t=t[r];continue}return!1}}static chainHeadSlot(e){if((e[0]==="."||e[0]==="?."||e[0]==="[]"||e[0]==="optindex")&&e.length===3)return 1;if(e[0]==="optcall")return 1;return E.chainHeadSlotRest(e)}chainHeadSlotOf(e){if((e[0]==="."||e[0]==="?."||e[0]==="[]")&&e.length===3)return 1;if(e[0]==="optindex"&&e.length===3&&this.lockedHead(e,"optindex"))return 1;if(e[0]==="optcall"&&this.lockedHead(e,"optcall"))return 1;return E.chainHeadSlotRest(e)}static chainHeadSlotRest(e){if(y(e[0])&&e[0][0]!=="dammit!"&&!(e[0][0]==="."&&e[0].length===3&&e[0][2]==="new"))return 0;return null}static isChainNode(e){return y(e)&&E.chainHeadSlot(e)!==null}isChainNodeOf(e){return y(e)&&this.chainHeadSlotOf(e)!==null}chain(e){this.noteProvidedRead(e);let t=[e];while(!0){let s=t[t.length-1],i=s[this.chainHeadSlotOf(s)];if(!this.isChainNodeOf(i))break;t.push(i)}let r=[];for(let s=0;s=0;s--){let i=t[s],n=i[0],a=r[s];if(this.endMark(a.role),a.kind==="member"){this.inTarget=a.savedTarget;let o=this.deopt&&n==="?."?".":n;if(typeof i[2]==="string"&&i[2][0]==='"')this.mark(i,"operator",()=>this.b.emit(n==="?."&&!this.deopt?"?.":"")),this.mark(i,"property",()=>this.b.emit(`[${i[2]}]`));else this.mark(i,"operator",()=>this.b.emit(o)),this.mark(i,"property",()=>{let l=this.b.offset;if(this.stores.idOf(i)===null)this.emitPrimitive(i[2]);else this.b.emit(i[2]);if(this.ts&&this.appStashSpec!==null&&typeof i[2]==="string"&&E.isThisMember(i[1],"stash")&&!(this.cframes.length&&this.cframes[this.cframes.length-1].members.has("stash")))this.stashMemberSpans.push([l,this.b.offset]);if(this.ts&&i[1]==="this"&&typeof i[2]==="string"){let f=this.cframes[this.cframes.length-1]?.memberKinds?.get(i[2])??null,h=this.stores.idOf(i)??null,u=h!==null?this.stores.role(h,"property"):null;if(f!==null&&u&&typeof u.sourceStart==="number")this.kinds.push({start:u.sourceStart,end:u.sourceEnd,label:f.label,name:i[2],optional:f.optional})}});if(i[1]==="this"&&typeof i[2]==="string"&&this.memberIsReactive(i[2])){if(this.ts){let l=this.stores.idOf(i)??null,c=l!==null?this.stores.role(l,"property"):null;if(c&&typeof c.sourceStart==="number")this.memberDecls.push({start:c.sourceStart,end:c.sourceEnd})}this.b.emit(".value")}}else if(a.kind==="index")this.indexTail(i,a.opt,a.isWrite),this.inTarget=a.savedTarget;else if(a.kind==="optcall")this.b.emit("?."),this.mark(i,"args",()=>{this.b.emit("("),i.slice(2).forEach((o,l)=>{if(l>0)this.b.emit(", ");this.expr(o)}),this.b.emit(")")});else{let o=this.sourceKeyArgOf(i);if(o!==null)(this._sourceKeyArgs??=new Set).add(o),this._needsSourceKeyHelper=!0;let l=this.routerArgOf(i);if(l!==null){if((this._routerArgs??=new Map).set(l.arg,l.wrap),l.wrap)this._needsRouteHelper=!0}this.mark(i,"args",()=>{this.b.emit("("),i.slice(1).forEach((c,f)=>{if(f>0)this.b.emit(", ");this.callArg(c)}),this.b.emit(")")})}this.endMark(a.self)}}member(e){if(e[0]==="."&&e[1]==="this"&&typeof e[2]==="string"&&!this.inTarget)this.notePlainRenderRead(e[2],!0);this.chain(e)}noteProvidedRead(e){if(!this.ts||!(this.cframes?.length>0))return;let t=e;while(y(t)){let n=this.chainHeadSlotOf(t);if(n===null||!y(t[n]))break;t=t[n]}if(!y(t)||t[0]!=="."||t[1]!=="this"||t[2]!=="stash"&&t[2]!=="router")return;if(this.cframes[this.cframes.length-1].members?.has(t[2]))return;let r=this.stores.idOf(t),s=r!==null?this.stores.selfSpan(r):null,i=s!==null?this.stores.primitiveSpans(t[2],s[0],s[1])[0]??null:null;if(i&&!this.kinds.some((n)=>n.start===i.sourceStart&&n.label===t[2]))this.kinds.push({start:i.sourceStart,end:i.sourceEnd,label:t[2],name:t[2],optional:!1})}pick(e,t=!1){let[r,s,...i]=e;if(this.inPattern||this.inTarget)throw this.positionedError(e,"emitter: a pick expression is not an assignment target — it lowers to a fresh object literal (`({…}) = value` would be invalid JS)");let n=r==="?.{}",a=typeof s==="string"&&(s==="this"||/^[A-Za-z_$][\w$]*$/.test(s));if(!a)for(let l of i){if(l[2]!==null&&this.containsAwait(l[2]))throw this.positionedError(l,"emitter: a pick default cannot await when the source needs single evaluation — the lowering's '(_) =>' arrow is not async; bind the source first",e);if(l[2]!==null&&E.containsYield(l[2]))throw this.positionedError(l,"emitter: a pick default cannot yield when the source needs single evaluation — yield cannot cross the lowering's '(_) =>' arrow; bind the source first",e)}let o=(l)=>this.mark(e,"items",()=>{i.forEach((c,f)=>{if(f>0)this.b.emit(", ");let[h,u,d]=c;this.mark(c,"$self",()=>{if(this.mark(c,"target",()=>this.b.emit(E.ownKeyText(u,u))),this.b.emit(": "),d!==null)this.b.emit("(");if(l(),this.b.emit("."),this.mark(c,"key",()=>this.b.emit(h)),d!==null)this.b.emit(" ?? "),this.withExpression(()=>this.operand(c,"default",d)),this.b.emit(")")})})});this.mark(e,"$self",()=>{if(a&&!n)this.b.emit(t?"{":"({"),o(()=>this.mark(e,"source",()=>this.expr(s))),this.b.emit(t?"}":"})");else if(a){if(!t)this.b.emit("(");this.mark(e,"source",()=>this.expr(s)),this.b.emit(" == null ? undefined : {"),o(()=>this.mark(e,"source",()=>this.expr(s))),this.b.emit(t?"}":"})")}else{let l=this.loopTempName("_");this.b.emit(n?`((${l}) => ${l} == null ? undefined : ({`:`((${l}) => ({`),o(()=>this.b.emit(l)),this.b.emit("}))("),this.withExpression(()=>this.grouped(e,"source",s,E.needsGrouping(s,"operand"))),this.b.emit(")")}})}callArg(e){if(this._sourceKeyArgs?.has(e)){this._sourceKeyArgs.delete(e),this.b.tsOnly(()=>this.b.emit("__ripSourceKey("));let r=this.b.offset;this.expr(e),this.sourceKeySpans.push([r,this.b.offset]),this.b.tsOnly(()=>this.b.emit(")"));return}let t=this._routerArgs?.get(e);if(t!==void 0){if(this._routerArgs.delete(e),t)this.b.tsOnly(()=>this.b.emit("__ripRoute("));let r=this.b.offset;if(this.expr(e),this.routeWrapSpans.push({key:null,value:[r,this.b.offset]}),t)this.b.tsOnly(()=>this.b.emit(")"));return}if(y(e)&&(e[0]===".{}"||e[0]==="?.{}")&&e.length>=3)return this.pick(e,!0);this.expr(e)}sourceKeyArgOf(e){if(!this.ts||this.appStashSpec===null)return null;let t=e[1];if(typeof t!=="string"||!/^["']/.test(t))return null;let r=e[0];if(!y(r)||r.length!==3||r[2]!=="source")return null;let s=r[1];if(r[0]==="."&&E.isThisMember(s,"stash")){if(this.cframes.length&&this.cframes[this.cframes.length-1].members.has("stash"))return null;return t}if((r[0]==="."||r[0]==="?.")&&this.isAccessorCall(s,this.appAccessors.stash))return t;return null}static isThisMember(e,t){return y(e)&&e[0]==="."&&e.length===3&&e[1]==="this"&&e[2]===t}static stashKeysOf(e,t){let r=null;for(let n of e.slice(1)){let a=y(n)&&n[0]==="export"?n[1]:n;if(y(a)&&a[0]==="="&&a[1]===t){r=a[2];break}}if(y(r)&&r.length===2&&typeof r[0]==="string"&&y(r[1])&&r[1][0]==="object")r=r[1];if(!y(r)||r[0]!=="object")return null;let s=[],i=!0;for(let n of r.slice(1)){if(!y(n))continue;if(n[0]==="..."){i=!1;continue}let a=n[0]===":"?n[1]:n[0]===null?n[1]:null;if(typeof a!=="string"){i=!1;continue}s.push(/^["']/.test(a)?a.slice(1,-1):a)}return{keys:s,complete:i}}routerArgOf(e){if(!this.ts||this.routesUnion===null)return null;let t=e[1];if(typeof t!=="string"||!/^["']/.test(t))return null;let r=e[0];if(!y(r)||r.length!==3||r[2]!=="push"&&r[2]!=="replace")return null;let s=r[1];if(r[0]==="."&&E.isThisMember(s,"router")){if(this.cframes.length&&this.cframes[this.cframes.length-1].members.has("router"))return null;return{arg:t,method:r[2],wrap:!1}}if((r[0]==="."||r[0]==="?.")&&this.isAccessorCall(s,this.appAccessors.router))return{arg:t,method:r[2],wrap:!0};return null}binary(e){if(E.returnGuard(e))throw this.positionedError(e[2],"emitter: a return guard is a statement — in value position the 'return' would lose its function target (bind the value first, or use `or throw`)");if(E.stmtGuard(e))throw this.positionedError(e[2],`emitter: a ${e[2]} guard is a statement`);if(e[0]==="&&"||e[0]==="||")return this.logicalChain(e);if(E.isStrRepeat(e)){this.mark(e,"$self",()=>{this.mark(e,"left",()=>this.b.emit(e[1])),this.b.emit(".repeat("),this.mark(e,"right",()=>this.expr(e[2])),this.b.emit(")")});return}if(ut(e))return this.comparisonChain(e);let t=(o)=>ht(o)&&o[0]!=="&&"&&o[0]!=="||"&&!ut(o)&&!E.isStrRepeat(o),r=[e];while(t(r[r.length-1][1]))r.push(r[r.length-1][1]);let s=[];for(let o=0;o=0;o--){let l=r[o];if(this.b.emit(" "),this.mark(l,"operator",()=>this.b.emit(Ci[l[0]]??l[0])),this.b.emit(" "),this.operand(l,"right",l[2]),this.endMark(s[o].self),o>0)this.endMark(s[o-1].left),this.b.emit(")")}}logicalChain(e){let t=e[0],r=(a)=>ht(a)&&a[0]===t,s=[e];while(r(s[s.length-1][1]))s.push(s[s.length-1][1]);let i=[];for(let a=0;a=0;a--){let o=s[a];if(this.b.emit(" "),this.mark(o,"operator",()=>this.b.emit(t)),this.b.emit(" "),r(o[2]))this.grouped(o,"right",o[2],!1);else this.operand(o,"right",o[2]);if(this.endMark(i[a].self),a>0)this.endMark(i[a-1].left)}}comparisonChain(e){let t=[e];while(ut(t[t.length-1]))t.push(t[t.length-1][1]);t.reverse();let r=[];for(let n=t.length-1;n>=1;n--){let a=t[n],o=this.beginMark(a,"$self");this.b.emit("("),r[n]={self:o,left:this.beginMark(a,"left")}}let s=t[0],i=this.beginMark(s,"$self");this.operand(s,"left",s[1]),this.b.emit(" "),this.mark(s,"operator",()=>this.b.emit(Ci[s[0]]??s[0])),this.b.emit(" "),this.chainRight(s,t[1]),this.endMark(i);for(let n=1;nthis.b.emit(Ci[a[0]]??a[0])),this.b.emit(" "),this.chainRight(a,t[n+1]),this.b.emit(")"),this.endMark(r[n].self)}}chainRight(e,t){let r=e[2];if(t!==void 0&&y(r)){let s=this.temps.byNode.get(t);if(s===void 0)throw this.positionedError(r,"emitter: a chained comparison here cannot cache its middle operand for single evaluation "+"(no enclosing scope hoist) — bind the middle operand to a variable first ",e);this.b.emit("("),this.mark(e,"right",()=>{this.b.emit(`${s} = `),this.expr(r)}),this.b.emit(")");return}this.operand(e,"right",r)}chainMid(e,t){let r=this.temps.byNode.get(t);if(r!==void 0){this.mark(e,"right",()=>this.b.emit(r));return}this.operand(e,"right",e[2])}postfixType(e){if(!this.ts){this.mark(e,"$self",()=>this.mark(e,"annotation",()=>this.mark(e,"value",()=>this.expr(e[1]))));return}let t=this.stores.idOf(e),r=t===null?null:this.stores.role(t,"annotation"),s=r&&r.sourceStart!=null&&this.b.source!==null?this.b.source.slice(r.sourceStart,r.sourceEnd):`${e[0]==="cast"?"as":"satisfies"} ${Be(e[2])}`;this.mark(e,"$self",()=>{this.b.tsOnly(()=>this.b.emit("("));let i=E.jsTier(e[1])!=="primary";if(i)this.b.tsOnly(()=>this.b.emit("("));if(this.mark(e,"value",()=>this.expr(e[1])),i)this.b.tsOnly(()=>this.b.emit(")"));this.b.tsOnly(()=>{this.b.emit(" "),this.mark(e,"annotation",()=>this.emitTypeText(e,"annotation",s))}),this.b.tsOnly(()=>this.b.emit(")"))})}existence(e){this.mark(e,"$self",()=>{this.operand(e,"value",e[1]),this.b.emit(" != null")})}unary(e){if(e[0]==="delete"&&typeof e[1]==="string"&&this.isReactiveName(e[1]))throw this.positionedError(e,`emitter: cannot delete the reactive variable '${e[1]}' — \`delete ${e[1]}.value\` would remove the container's accessor and silently kill the reactive`);if(e[0]==="delete"&&!(y(e[1])&&(e[1][0]==="."||e[1][0]==="[]")))throw this.positionedError(e,"emitter: delete requires a property reference (delete obj.a / delete obj[k]) — deleting a plain binding is a strict-mode SyntaxError in modules");this.mark(e,"$self",()=>{if(this.mark(e,"operator",()=>this.b.emit(e[0])),/^[a-z]/.test(e[0]))this.b.emit(" ");this.operand(e,"operand",e[1])})}spread(e){this.mark(e,"$self",()=>{if(this.b.emit("..."),this.inPattern)this.mark(e,"value",()=>this.expr(e[1]));else this.operand(e,"value",e[1])})}array(e){this.mark(e,"$self",()=>{this.b.emit("["),this.mark(e,"items",()=>{let t=e.slice(1);t.forEach((r,s)=>{if(s>0)this.b.emit(", ");if(r===","){if(s===t.length-1)this.b.emit(",");return}if(y(r)&&r[0]==="rest"&&this.inPattern){if(!this.bindingPattern)throw this.positionedError(r,"emitter: Cannot use 'rest' expression as a destructuring target (destructuring rest is spelled '...name')",e);if(r.length!==2||s!==t.length-1)throw this.positionedError(r,"emitter: a `rest` element takes the pattern's tail alone",e);if(typeof r[1]!=="string")throw this.positionedError(r,"emitter: a `rest` element takes a plain name",e);this.b.emit("..."),this.b.emit(r[1]);return}let i=!this.inPattern&&!(y(r)&&r[0]==="...")&&E.needsGrouping(r,"operand");if(i)this.b.emit("(");if(this.expr(r),i)this.b.emit(")")})}),this.b.emit("]")})}symbolKey(e){this.b.emit("["),this.expr(e),this.b.emit("]")}static isMethodPair(e){return y(e)&&(e[0]===":"||e[0]==="void-pair")&&typeof e[1]==="string"&&/^[A-Za-z_$][\w$]*$/.test(e[1])&&y(e[2])&&e[2][0]==="->"}object(e){for(let a of e.slice(1)){if(y(a)&&a[0]===":"&&typeof a[1]==="string"&&a[1][0]==="/")throw this.positionedError(a,"emitter: a regex key needs a MAP literal (`*{ /re/: v }`) — object property names are strings");if(!this.inPattern&&!this.tolerant&&y(a)&&a[0]==="="&&a.length===3)throw this.positionedError(a,"emitter: `a = 1` inside an object literal is a destructuring default, which only a pattern can carry — spell the pair `a: 1`",e)}let t=!this.inPattern&&E.objectComprehension(e);if(t){let a=y(t[1])?t[1]:null,o={expr:a!==null?a[1]:t[1],pair:t,keyNode:a};return this.mark(e,"$self",()=>this.mark(e,"pairs",()=>this.mark(t,"$self",()=>this.mark(t,"value",()=>this.comprehension(t[2],this.ind,o)))))}let r=e.slice(1),s=this.ind,i=r.map((a)=>!this.inPattern&&E.isMethodPair(a)),n=(a)=>i[a]||i.slice(0,a).some(Boolean)?`, -`:", ";this.mark(e,"$self",()=>{this.b.emit("{"),this.mark(e,"pairs",()=>{r.forEach((a,o)=>{if(o>0)this.b.emit(n(o));if(i[o]){this.mark(a,"voidMarker",()=>this.mark(a,"$self",()=>{if(this.containsAwait(a[2][2]))this.b.emit("async ");if(E.containsYield(a[2][2]))this.b.emit("*");this.mark(a,"key",()=>this.b.emit(a[1]));let[,h,u]=a[2],d=this.ts&&this.contextuallyTyped(a[2]);this.b.emit("("),this.mark(a[2],"params",()=>this.emitParams(h,null,!d)),this.b.emit(")"),this.tsReturnAnnotation(a[2],this.containsAwait(u),a[0]==="void-pair",E.containsYield(u),a),this.b.emit(" "),this.mark(a,"value",()=>{this.methodBlock(a[2],u,s,{isConstructor:!1,binds:[],methodName:a[1],voidBody:a[0]==="void-pair"})})}));return}let l=y(a[1])&&a[1][0]==="dynamicKey";if(l&&a[0]===null)throw this.positionedError(a,"emitter: a computed key needs an explicit value ({[k]: v}) — there is no shorthand form",e);let c=y(a[1])&&a[1][0]==="str",f=a[0]===":"&&y(a[1])&&a[1][0]==="symbol";if(a[0]!=="..."&&y(a[1])&&!l&&!c&&!f)throw this.positionedError(a,"emitter: @-keys are only supported in class bodies",e);if(f){this.mark(a,"$self",()=>{this.mark(a,"key",()=>this.symbolKey(a[1])),this.b.emit(": "),this.mark(a,"value",()=>this.expr(a[2]))});return}if(a[0]===":"&&c){this.mark(a,"$self",()=>{this.b.emit("["),this.mark(a,"key",()=>this.strTemplate(a[1])),this.b.emit("]: "),this.mark(a,"value",()=>this.expr(a[2]))});return}this.mark(a,"$self",()=>{if(a[0]===":"&&l)if(this.mark(a,"key",()=>{this.mark(a[1],"$self",()=>{this.b.emit("["),this.withExpression(()=>this.operand(a[1],"key",a[1][1])),this.b.emit("]")})}),this.b.emit(": "),this.inPattern||y(a[2])&&a[2][0]==="=>")this.mark(a,"value",()=>this.expr(a[2]));else this.operand(a,"value",a[2]);else if(a[0]===":"||a[0]==="void-pair"){if(a[0]==="void-pair"){if(this.inPattern)throw this.positionedError(a,"emitter: the void marker has no meaning in a destructuring pattern — a pattern key takes no trailing '!'",e);this.registerVoidValue(a[2],a)}this.mark(a,"voidMarker",()=>{if(this.mark(a,"key",()=>this.b.emit(a[1])),this.b.emit(": "),this.inPattern||y(a[2])&&a[2][0]==="=>")this.mark(a,"value",()=>this.expr(a[2]));else this.operand(a,"value",a[2])})}else if(a[0]==="=")this.mark(a,"key",()=>this.b.emit(a[1])),this.b.emit(" = "),this.withExpression(()=>this.operand(a,"value",a[2]));else if(a[0]==="..."){if(this.inPattern&&(y(a[1])||a[1]==="this"))throw this.positionedError(a,"emitter: object rest in a destructuring pattern takes a plain name — chained-accessor rest targets are not supported",e);if(this.b.emit("..."),this.inPattern)this.mark(a,"value",()=>this.expr(a[1]));else this.operand(a,"value",a[1])}else if(typeof a[1]==="string"&&this.bareRewrite(a[1])!==null)this.mark(a,"key",()=>this.b.emit(a[1])),this.b.emit(": "),this.mark(a,"value",()=>this.expr(a[1]));else this.mark(a,"value",()=>this.mark(a,"key",()=>this.b.emit(a[1])))})})}),this.b.emit("}")})}static negativeLiteralKey(e){return y(e)&&e[0]==="-"&&e.length===2&&typeof e[1]==="string"&&/^\d+$/.test(e[1])}indexTail(e,t,r){let s=e[2],i=()=>{let n=this.deopt;this.deopt=!1,this.mark(e,"key",()=>this.expr(s)),this.deopt=n};if(!t&&We(s))this.mark(e,"key",()=>this.slice(s));else if(E.negativeLiteralKey(s)){if(r)throw this.positionedError(e,"emitter: a negative-literal index cannot be an assignment target (reads lower to .at(-n), and a call is not assignable)");this.b.emit(t?"?.at(":".at("),this.mark(e,"key",()=>{this.b.emit("-"),this.b.emit(s[1])}),this.b.emit(")")}else this.b.emit(t?"?.[":"["),i(),this.b.emit("]")}index(e){if(e.length===3&&typeof e[2]==="string"&&e[2][0]==="/")return this.regexIndex(e,e[1],e[2],null);this.chain(e)}optIndex(e){this.chain(e)}optCall(e){this.chain(e)}slice(e){let[t,r,s]=e;if(this.b.emit(".slice("),this.mark(e,"from",()=>r===null?this.b.emit("0"):this.expr(r)),s!==null)if(this.b.emit(", "),t==="...")this.mark(e,"to",()=>this.expr(s));else if(typeof s==="string"&&/^\d+$/.test(s))this.mark(e,"to",()=>this.b.emit(String(Number(s)+1)));else this.b.emit("+"),this.mark(e,"to",()=>this.expr(s)),this.b.emit(" + 1 || 9e9");this.b.emit(")")}range(e){let[t,r,s]=e,i=t===".."?"((s, e) => Array.from({length: Math.abs(e - s) + 1}, (_, i) => s + (i * (s <= e ? 1 : -1))))":"((s, e) => Array.from({length: Math.max(0, Math.abs(e - s))}, (_, i) => s + (i * (s <= e ? 1 : -1))))";this.mark(e,"$self",()=>{this.b.emit(i),this.b.emit("("),this.mark(e,"from",()=>this.expr(r)),this.b.emit(", "),this.mark(e,"to",()=>this.expr(s)),this.b.emit(")")})}classStatement(e,t){this.mark(e,"$self",()=>this.classCode(e,t))}classExpr(e){this.mark(e,"$self",()=>this.classCode(e,this.ind))}classCode(e,t){let[,r,s,i]=e;if(this.b.emit("class"),r!=null){if(typeof r!=="string")throw this.positionedError(e,"emitter: `class @Name` is a STATIC member class — it lives inside a class body (`static Name = class`); at the top level give the class a plain name");this.b.emit(" "),this.mark(e,"name",()=>this.b.emit(r))}if(s!=null)this.b.emit(" extends "),this.grouped(e,"parent",s,E.needsGrouping(s,"head"));if(this.b.emit(` { -`),i!=null)this.mark(e,"body",()=>this.classMembers(i,t));this.b.emit(" ".repeat(t)+"}")}classMethodForm(e){if(!y(e))return null;if(k1(e[0])&&e.length===4){let t=this.stores.alias(["->",e[2],e[3]],e);return{form:"def",pair:this.stores.alias([e[0]==="void-def"?"void-pair":":",e[1],t],e)}}if((e[0]==="get"||e[0]==="set")&&e.length===2&&O1(e[1])&&e[1].length===2){let t=e[1][1];if(y(t)&&t[0]===":"&&t.length===3&&T1(t[2]))return{form:e[0],pair:t}}return null}classMembers(e,t){let r=y(e)&&e[0]==="block"?e.slice(1):[e],s=new Map(r.map((b)=>[b,this.classMethodForm(b)])),i=(b)=>y(b)&&b[0]==="."&&b[1]==="this"?b[2]:b,n=(b)=>y(b)&&b[0]==="."&&b[1]==="this"&&b.length===3&&typeof b[2]==="string",a=" ".repeat(t+1),o=[],l=null,c=!1,f=new Set,h=null,u=null,d=[],p=(b)=>n(b)?`static ${b[2]}`:b,m=new Set,g=[];for(let b of r){let S=s.get(b)??null,w=S!==null?[S.pair]:O1(b)?b.slice(1):null;if(w===null){let R=typeof b==="string"||n(b)?b:E.isTypedWrapper(b)&&(typeof b[1]==="string"||n(b[1]))?b[1]:y(b)&&b[0]==="="&&b.length===3&&(typeof b[1]==="string"||n(b[1]))?b[1]:null;if(R!==null){if(m.add(p(R)),!n(R))f.add(R)}continue}for(let R of w){if(R[0]!==":"&&R[0]!=="void-pair")throw this.positionedError(R,"emitter: class bodies support methods and fields only",b);if(S!==null&&S.form!=="def"){let F=R[2][1].length;if(R[2][0]==="=>")throw this.positionedError(R,`emitter: a ${S.form} accessor takes '->' — accessors are looked up on the instance, never bound`,b);if(this.containsAwait(R[2][2])||E.containsYield(R[2][2]))throw this.positionedError(R,`emitter: a ${S.form} accessor cannot await or yield — JavaScript has no async or generator accessors`,b);if(S.form==="get"&&F!==0)throw this.positionedError(R,"emitter: a getter takes no parameters (`get x: -> …`)",b);if(S.form==="set"&&F!==1)throw this.positionedError(R,"emitter: a setter takes exactly one parameter (`set x: (v) -> …`)",b)}if(y(R[1])&&(R[1][0]==="dynamicKey"||R[1][0]==="[]"))throw this.positionedError(R,"emitter: computed class members are not supported yet",b);let T=i(R[1]);if(S!==null&&S.form!=="def"){if(T==="constructor")throw this.positionedError(R,`emitter: a class constructor cannot be a ${S.form} accessor`,b);g.push({pair:R,stmt:b,key:p(R[1]),form:S.form})}if(T==="constructor"&&!n(R[1])){if(c=!0,T1(R[2]))h=R[2][1],u=R[2][2]}else if(!n(R[1])&&typeof T==="string")f.add(T);if(T1(R[2])&&!n(R[1])&&T!=="constructor")d.push(R[2][2]);if(T1(R[2])&&R[2][0]==="=>"&&!n(R[1])&&T!=="constructor"){if(typeof T!=="string")throw this.positionedError(R,"emitter: a symbol-keyed method cannot be bound ('=>') — the constructor binds members by name; use '->'",b);o.push(T),l??=R}}}if(o.length>0&&!c)throw this.positionedError(l,"emitter: bound ('=>') class methods require an explicit constructor",e);for(let b of g)if(m.has(b.key))throw this.positionedError(b.pair,`emitter: field and ${b.form} accessor '${i(b.pair[1])}' share a name — the field would shadow the accessor on every instance; drop one`,b.stmt);if(this.ts&&h!==null)for(let b of h){let S=I3(b);if(S===null||f.has(S.name))continue;f.add(S.name);let w=S.typed===null?null:this.annotationText(S.typed)??(S.typed[2]===""?null:Be(S.typed[2])),R=this.stores.idOf(e),T=R!==null?this.stores.selfSpan(R):null,F=T!==null?this.stores.primitiveSpans(S.name,T[0],T[1])[0]??null:null;this.b.tsOnly(()=>{if(this.b.emit(a),F)this.b.markSpan(R,"identifier",F.sourceStart,F.sourceEnd,()=>this.b.emit(S.name));else this.b.emit(S.name);this.b.emit(`${w?`: ${w}`:""}; -`)})}if(this.ts)for(let b of $3([u,...d])){if(f.has(b.name))continue;f.add(b.name);let w=b.nodes.map((R)=>this.annotationText(R)).find((R)=>R!=null)??null??(b.viaArrow?"any":null);this.b.tsOnly(()=>this.b.emit(`${a}${b.name}${w?`: ${w}`:""}; -`))}for(let b of r)this.withTsDirectives(b,a,()=>this.classMember(b,e,t,a,{memberName:i,isStaticKey:n,bound:o,form:s.get(b)??null}),!0)}classFieldValue(e){if(this.containsAwait(e))throw this.positionedError(e,"emitter: a class field initializer cannot await — JavaScript evaluates class fields synchronously");if(E.containsYield(e))throw this.positionedError(e,"emitter: a class field initializer cannot yield — class field evaluation is not a generator context");let t=this.planReferenceTemps([e],new Set);if(t.length===0){this.expr(e);return}this.b.emit("(() => { "),this.hoistLine(t),this.b.emit(" return "),this.expr(e),this.b.emit("; })()")}classMember(e,t,r,s,{memberName:i,isStaticKey:n,bound:a,form:o}){let l=o!==null&&o.form!=="def"?o.form:null,c=o!==null&&o.form==="def"?"name":"key",f=e;if(o!==null)e=this.stores.alias(["object",o.pair],e);{if(y(e)&&e[0]==="class"&&y(e[1])&&e[1][0]==="."&&e[1][1]==="this"&&typeof e[1][2]==="string"){this.b.emit(s+"static "),this.mark(e,"name",()=>this.emitPrimitive(e[1][2])),this.b.emit(" = "),this.classCode(["class",null,e[2]??null,e[3]],r+1),this.b.emit(`; -`);return}if(O1(e)){for(let h of e.slice(1))this.withTsDirectives(h,s,()=>{let u=h[1],d=h[2],p=i(u),m=h[0]==="void-pair";if(!T1(d)){if(m)throw this.positionedError(h,"emitter: the void marker (a trailing '!' on the method key) requires a function value — `fn!: ->` (this class member's value is not a function)",e);throw this.positionedError(h,"emitter: a class field takes '=' for its value (`x = v`, `x: T = v`, `@x = v`) — `name: value` is a typed bodiless field only when the value is a TYPE",e)}if(m&&p==="constructor")throw this.positionedError(h,"emitter: a constructor cannot carry the void marker (`constructor!:`) — constructors have no implicit return to suppress",e);this.b.emit(s),this.mark(h,"voidMarker",()=>this.mark(h,"$self",()=>{if(n(u))this.b.emit("static ");if(this.containsAwait(d[2]))this.b.emit("async ");if(E.containsYield(d[2]))this.b.emit("*");if(l!==null){let R=this.stores.idOf(f),T=R!==null?this.stores.role(R,"callee"):null;if(T!==null)this.silences.push([T.sourceStart,T.sourceEnd]);this.mark(f,"callee",()=>this.b.emit(l)),this.b.emit(" ")}if(y(u)&&u[0]==="symbol")this.mark(h,"key",()=>this.symbolKey(u));else this.mark(h,c,()=>this.emitPrimitive(p));if(this.ts){let R=this.annotationText(h,"typeParams");if(R!==null)this.b.tsOnly(()=>this.mark(h,"typeParams",()=>this.emitTypeText(h,"typeParams",R)))}let[,g,b]=d,S=[],w=p==="constructor"&&!n(h[1]);if(w){let R=(T)=>{let F=gt(T);if(F!==null)return S.push(F),y(T)&&T[0]==="typed-var"?["typed-var",F,T[2]]:F;if(y(T)&&T[0]==="default"&&T.length===3){let L=gt(T[1]);if(L!==null)return S.push(L),["default",y(T[1])&&T[1][0]==="typed-var"&&T[1].length===3?["typed-var",L,T[1][2]]:L,T[2]]}return T};if(g=g.map(R),S.length>0&&y(b)&&b[0]==="block"&&y(b[1])&&b[1][0]==="super"){let T=new Set(S),F=(L)=>{if(!y(L))return L;if(L[0]==="."&&L[1]==="this"&&T.has(L[2]))return L[2];return L.map(F)};b=["block",F(b[1]),...b.slice(2)]}}if(this.b.emit("("),this.emitParams(g,null,l!=="set"),this.b.emit(")"),!w)this.tsReturnAnnotation(d,this.containsAwait(d[2]),m,E.containsYield(d[2]),h);this.b.emit(" "),this.mark(h,"value",()=>{this.methodBlock(d,b,r+1,{isConstructor:w,binds:w?a:[],methodName:typeof p==="string"?p:"symbol",voidBody:m||l==="set",tailReturn:l!=="set",voidReason:l==="set"?"a setter discards its return value":null,atParams:S})})})),this.b.emit(` -`)},!0);return}if(typeof e==="string"){this.b.emit(s+e+`; -`);return}if(n(e)){this.b.emit(s),this.mark(e,"$self",()=>{this.b.emit("static "),this.mark(e,"property",()=>this.emitPrimitive(e[2]))}),this.b.emit(`; -`);return}if(E.isTypedWrapper(e)&&(typeof e[1]==="string"||n(e[1]))){this.b.emit(s),this.mark(e,"$self",()=>this.mark(e,"annotation",()=>{if(n(e[1]))this.b.emit("static ");if(this.mark(e,"target",()=>this.withDeclaredName(()=>this.emitPrimitive(i(e[1])))),this.ts)this.tsAnnotate(e,"annotation",this.annotationText(e)??Be(e[2]))})),this.b.emit(`; -`);return}if(y(e)&&e[0]==="="&&e.length===3&&(typeof e[1]==="string"||n(e[1]))){this.ind=r+1,this.b.emit(s),this.mark(e,"annotation",()=>this.mark(e,"$self",()=>{if(n(e[1]))this.b.emit("static ");if(this.mark(e,"target",()=>this.withDeclaredName(()=>this.emitPrimitive(i(e[1])))),this.ts&&this.annotationText(e)!==null)this.tsAnnotate(e,"annotation",this.annotationText(e));this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.mark(e,"value",()=>this.withExpression(()=>this.classFieldValue(e[2])))})),this.b.emit(`; -`);return}if(y(e)&&e[0]==="type-decl")throw this.positionedError(e,"emitter: type declarations are not allowed as class members — move the `type`/`interface` to module scope");if(this.isReactiveDecl(e))throw this.positionedError(e,`emitter: a reactive declaration ('${typeof e[1]==="string"?e[1]:"…"} ${e[0]==="state"?":=":"~="} …') cannot be a class member — declare it at module or function scope`);if(this.isEffectDecl(e))throw this.positionedError(e,"emitter: an effect ('~>') cannot be a class member — run it at module or function scope, or inside a method");if(this.isReadonlyDecl(e))throw this.positionedError(e,`emitter: a readonly declaration ('${typeof e[1]==="string"?e[1]:"…"} =! …') cannot be a class member — declare it at module or function scope`);throw this.positionedError(e,"emitter: unsupported class member — fields take `name = value`, `name: T = value`, `name: T`, or their `@`-static forms; methods take `name: -> …`",t)}}static middleRestPattern(e){if(!y(e)||e[0]!=="array")return!1;let t=e.slice(1),r=t.findIndex((s)=>y(s)&&s[0]==="..."&&s.length===2);return r!==-1&&ry(o)&&o[0]==="..."&&o.length===2),i=r.slice(0,s),n=r[s][1],a=r.slice(s+1);for(let o of[...i,n,...a])if(typeof o!=="string")throw this.positionedError(e,"emitter: a middle-rest pattern takes plain names (`[a, ...mid, b]`) — nested patterns have no single-read lowering");this.mark(e,"$self",()=>{let o=e[2],l=this.repeatSafeValue(o)?null:this.loopTempName("_ref");if(l!==null)this.temps.used.add(l),this.b.emit(`const ${l} = `),this.mark(e,"value",()=>this.expr(o)),this.b.emit(`; -${" ".repeat(t)}`);let c=()=>{if(l!==null)this.b.emit(l);else this.expr(o)},f=()=>this.b.emit(`; -${" ".repeat(t)}`);i.forEach((h,u)=>{this.b.emit(`${h} = `),c(),this.b.emit(`[${u}]`),f()}),this.b.emit(`${n} = `),c(),this.b.emit(a.length>0?`.slice(${i.length}, -${a.length})`:`.slice(${i.length})`),a.forEach((h,u)=>{f(),this.b.emit(`${h} = `),c(),this.b.emit("["),c(),this.b.emit(`.length - ${a.length-u}]`)})})}methodBlock(e,t,r,{isConstructor:s,binds:i,methodName:n,voidBody:a=!1,tailReturn:o=!0,voidReason:l=null,atParams:c=[]}){let f=this.liveStmts(y(t)&&t[0]==="block"?t.slice(1):[t],{forwards:!0}),{entries:h,names:u}=this.scopedHoist(f,e[1]);for(let g of this.pushReactiveFrame(f,u,e[1],e))u.add(g);this.scopes.push(u);let d=this.methodName;this.methodName=n;let p=this.sideEffectOnly,m=this.voidReason;this.sideEffectOnly=a,this.voidReason=l,this.mark(t,"$self",()=>{if(this.b.emit(`{ -`),h.length)this.b.emit(" ".repeat(r+1)),this.hoistLine(h," ".repeat(r+1)),this.b.emit(` +`),this.b.emit(`${n}} +`)})})}renderTransition(e,t,r,n){let i=this.rstate,s=i.transitionSlot;if(s===null||s.record!==i.sink||s.el!==e){let o=i.sink.kind==="class"?"a static element)":i.sink.kind==="loop"?"a loop body — the reconciler has no enter/leave phase for rows":"a nested position — the swap animates the branch's FIRST node, so a deeper directive would animate an "+"element it does not name";throw this.positionedError(t,`emitter: a transition (\`~name\`) runs where a conditional branch enters or leaves, and this directive sits on ${o}; put it on the FIRST top-level element of an if/else branch`,this.rstate.node)}if(typeof r!=="string"||!(r.startsWith('"')||r.startsWith("'")))throw this.positionedError(t,"emitter: a transition takes a literal name (`~fade`) — computed transition names have no reading",this.rstate.node);let a=r.replace(/^["']|["']$/g,"");this.renderLine(t,()=>{if(this.ts)this.b.tsOnly(()=>this.b.emit("("));if(this.b.emit("this"),this.ts)this.b.tsOnly(()=>this.b.emit(" as any)"));this.b.emit(`._t = "${a}"`)})}renderRef(e,t,r,n,i){let s=typeof r==="string"&&ht.test(r)?r:null;if(s===null)throw this.positionedError(t,"emitter: ref: expects a state cell — declare `el := null` then write `ref: el`",this.rstate.node);let a=this.rstate.frame.members.get(s);if(a!=="state"&&a!=="prop")throw this.positionedError(t,a!==void 0?`emitter: ref: target '${s}' is not a writable state cell — declare it with ':=' (computed '~=' and `+"readonly '=!' members can't hold a ref)":`emitter: ref: target '${s}' must be a state cell declared with ':=' (e.g. \`${s} := null\`)`,this.rstate.node);let o=this.renderTagOf(e),l=this.ts&&o!==null&&/^[a-z][a-z0-9-]*$/.test(o),c=this.rstate.svgEls?.has(e)===!0;if(l){this._needsRefCellHelper=!0;let h=this.wordSpanIn("ref",t);if(h!==null)this.intrinsics.push({start:h[0],end:h[1],kind:"ref",tag:o,svg:c,name:s})}if(this.rstate.sink.kind==="class")this.renderLine(t,()=>{if(l)this.b.tsOnly(()=>this.b.emit(`${c?"__ripRefCellSvg":"__ripRefCell"}('${o}', `));let h=this.b.offset;this.b.emit("this.");let f=this.emitPrimitive(s);if(f!==null)this.memberDecls.push({start:f[0],end:f[1]});if(l)i([h,this.b.offset]);if(l)this.b.tsOnly(()=>this.b.emit(")"));if(this.b.emit(`.value = ${e}`),l)this.b.tsOnly(()=>this.b.emit(` as ${xe(o,c)} | null`))}),this.renderLine(t,()=>{this.b.emit(`(this._refCleanups ??= []).push(() => ${this.runtimeName("__detachRef")}(this.`),this.emitPrimitive(s),this.b.emit(`, ${e}))`)});else this.rstate.sink.refs.push({name:s,elVar:e,node:t,tag:l?o:null,svg:c,site:i})}renderBind(e,t,r,n,i,s){if(this.checkBindTarget(t,n),this.rstate.sink.kind==="loop"&&this.loopVarNames().size>0&&Ee(n,this.loopVarNames()))this.rstate.sink.forceNonStatic=!0;let a=null;for(let u of i.slice(1))if(y(u)&&u.length===3&&(u[1]==="type"||u[1]==='"type"')&&typeof u[2]==="string")a=u[2].replace(/^["']|["']$/g,"");let o,l;if(r==="checked")o="change",l="target.checked";else o="input",l=a==="number"||a==="range"?"target.valueAsNumber":"target.value";this.renderEffect(t,()=>{this.b.emit(`${e}.`);let u=this.emitRewrittenPrimitive(`__bind_${r}__`,r);this.b.emit(" = ");let d=this.tsServedValue("__bind",()=>this.withExpression(()=>this.expr(n)));if(d!==null&&u!==null)this.intrinsics.push({start:u[0],end:u[1],kind:"bind",name:r,gen:d});if(r==="value")this.b.emit(" ?? ''");this.b.emit(";")},n);let c=this.bindRootTouch(n),h=new Set;E.collectLeafNames(n,h);let f=E.mintName("e",h);this.renderLine(t,()=>{this.b.emit(`${e}.addEventListener('${o}', (${f}`);let u=this.tsElReceiver(e),d=this.ts?this.tsEventTypeText([o],u.hostText):null;if(d!==null)this.b.tsOnly(()=>this.b.emit(`: ${d}`));else this.tsScaffoldAny();this.b.emit(") => { ");let p=this.b.offset;if(this.withExpression(()=>this.expr(n)),s([p,this.b.offset]),this.b.emit(` = ${f}.${l};`),c!==null)this.b.emit(" "),c(),this.b.emit(".touch?.();");this.b.emit(" })")})}checkBindTarget(e,t){let r=(s)=>{throw this.positionedError(e,s,this.rstate.node)};if(typeof t==="string"){if(!ht.test(t))r("emitter: a two-way binding (`<=>`) needs an assignable target — a literal cannot receive the input");let s=this.renderVarKind(t,e);if(s!==null)r(`emitter: a two-way binding cannot target a ${s==="local"?"render local":"loop variable"} — `+"the write would land on a factory parameter and reach nothing; bind a state member or a chain into row data");let a=this.resolveBareRead(t);if(a==="member-reactive"&&this.rstate.frame.members.get(t)==="computed")r(`emitter: '<=>' targets '${t}', a computed ('~=') member — a derived value has no writable `+"container (its .value is get-only); bind the state it derives from");if(a==="reactive"||a==="member-reactive")return;if(a==="member")r(`emitter: '<=>' targets '${t}', a plain (\`=\`) member — writes would never notify and the display `+"would never update; declare it with ':='");r(`emitter: '<=>' targets '${t}', which is not declared — declare a state member (\`${t} := ""\`) to bind it`)}if(y(t)&&t[0]==="."&&t[1]==="this"&&t.length===3&&typeof t[2]==="string"){if(this.memberIsReactive(t[2])&&this.rstate.frame.members.get(t[2])==="computed")r(`emitter: '<=>' targets '@${t[2]}', a computed ('~=') member — a derived value has no writable `+"container; bind the state it derives from");if(this.memberIsReactive(t[2]))return;if(this.rstate.frame.members.has(t[2]))r(`emitter: '<=>' targets '@${t[2]}', a non-reactive member — writes would never notify`+"); declare it with ':='");r(`emitter: '<=>' targets '@${t[2]}', which is not a declared member`)}if(y(t)&&E.optionalGuard(t)!==null)r("emitter: a two-way binding target cannot carry optional links — the write form would be invalid JS");let n=t,i=!1;while(y(n)&&(n[0]==="."||n[0]==="[]")&&n.length===3)i=!0,n=n[1];if(i)return;r("emitter: a two-way binding (`<=>`) needs an assignable target — a state member or a member/index chain "+"")}bindRootTouch(e){if(typeof e==="string")return null;if(y(e)&&e[0]==="."&&e[1]==="this"&&e.length===3)return null;let t=e;while(y(t)&&(t[0]==="."||t[0]==="[]")&&t.length===3){if(t[0]==="."&&t[1]==="this"&&typeof t[2]==="string"){let r=t[2];if(this.memberIsReactive(r))return()=>this.b.emit(`${this.renderSelf??"this"}.${r}`);return null}t=t[1]}if(typeof t==="string"){if(this.renderVarKind(t)!==null)return null;let r=this.resolveBareRead(t);if(r==="member-reactive"){let n=t;return()=>this.b.emit(`${this.renderSelf??"this"}.${n}`)}if(r==="reactive"){let n=t;return()=>this.b.emit(n)}}return null}checkUserSpelledBind(e){let t=y(e)?this.stores.idOf(e):null,r=t!==null?this.stores.role(t,"key"):null;if(!r||r.sourceStart==null||this.b.source===null)return;if(this.b.source.slice(r.sourceStart,r.sourceEnd).startsWith("__bind_"))throw this.positionedError(e,"emitter: '__bind_…__:' is the compiler's two-way-binding channel — spell the binding `name <=> container` "+"(`__`-prefixed names are the compiler/runtime namespace)",this.rstate.node)}checkBareEventHandler(e,t){if(!y(t)||t[0]!=="."||t[1]!=="this"||typeof t[2]!=="string")return;let r=this.stores.idOf(t),n=r!==null?this.stores.selfSpan(r):null;if(n===null||n[0]!==n[1])return;let i=e[1],s=typeof i[2]==="string"?i[2]:String(i[2]);if(!Ut.has(s))throw this.positionedError(e,`emitter: \`@${s}\` is not a DOM event — use \`= @${s}\` to render text, or \`@${s}: handler\` for an explicit handler`);if(s==="error")throw this.positionedError(e,"emitter: bare `@error` is ambiguous with the onError lifecycle hook — write `@error: handler` to bind a DOM error listener explicitly");let a=t[2];if(!this.cframes[this.cframes.length-1].members.has(a))throw this.positionedError(e,`emitter: bare \`@${s}\` requires a component method \`${a}\` — define \`${a}\`, or use \`@${s}: handler\` for an explicit handler`)}static collectTemplateClasses(e){let t=[],r,n=e;while(y(n)&&n[0]==="."&&n.length===3){if(typeof n[2]!=="string")return{tag:null,classes:t,id:r};t.unshift(n[2]),n=n[1]}if(typeof n!=="string")return{tag:null,classes:t,id:r};let[i,s]=n.split("#");if(s)r=s;for(let a=0;a=0)r=t[a].slice(o+1),t[a]=t[a].slice(0,o)}return{tag:i||"div",classes:t.filter((a)=>a!==""),id:r}}static templateHeadTag(e){if(!y(e))return null;let t=e[0];if(typeof t==="string"){if(t===".")return E.collectTemplateClasses(e).tag;return t.length>0?t.split("#")[0]||"div":null}if(!y(t))return null;if(y(t[0])&&t[0][0]==="."&&t[0][2]==="__clsx"){let r=t[0][1];if(typeof r==="string")return r.split("#")[0]||"div";return E.collectTemplateClasses(r).tag}return E.collectTemplateClasses(t).tag}static returnGuard(e){return y(e)&&(e[0]==="||"||e[0]==="&&"||e[0]==="??")&&e.length===3&&y(e[2])&&e[2][0]==="return"}static stmtGuard(e){return y(e)&&(e[0]==="||"||e[0]==="&&"||e[0]==="??")&&e.length===3&&(e[2]==="continue"||e[2]==="break"||e[2]==="debugger")}static controlGuard(e){return E.returnGuard(e)||E.throwGuard(e)||E.stmtGuard(e)}static throwGuard(e){return y(e)&&(e[0]==="||"||e[0]==="&&"||e[0]==="??")&&e.length===3&&y(e[2])&&e[2][0]==="throw"&&e[2].length===2}static isStrRepeat(e){return y(e)&&e[0]==="*"&&e.length===3&&typeof e[1]==="string"&&e[1][0]==='"'}static leadsWithObject(e){let t=e;for(;;){if(!y(t))return!1;if(O1(t))return!0;if(ft(t)||fa(t)||ut(t)){t=t[1];continue}let r=E.chainHeadSlot(t);if(r!==null){t=t[r];continue}return!1}}static chainHeadSlot(e){if((e[0]==="."||e[0]==="?."||e[0]==="[]"||e[0]==="optindex")&&e.length===3)return 1;if(e[0]==="optcall")return 1;return E.chainHeadSlotRest(e)}chainHeadSlotOf(e){if((e[0]==="."||e[0]==="?."||e[0]==="[]")&&e.length===3)return 1;if(e[0]==="optindex"&&e.length===3&&this.lockedHead(e,"optindex"))return 1;if(e[0]==="optcall"&&this.lockedHead(e,"optcall"))return 1;return E.chainHeadSlotRest(e)}static chainHeadSlotRest(e){if(y(e[0])&&e[0][0]!=="dammit!"&&!(e[0][0]==="."&&e[0].length===3&&e[0][2]==="new"))return 0;return null}static isChainNode(e){return y(e)&&E.chainHeadSlot(e)!==null}isChainNodeOf(e){return y(e)&&this.chainHeadSlotOf(e)!==null}chain(e){this.noteProvidedRead(e);let t=[e];while(!0){let n=t[t.length-1],i=n[this.chainHeadSlotOf(n)];if(!this.isChainNodeOf(i))break;t.push(i)}let r=[];for(let n=0;n=0;n--){let i=t[n],s=i[0],a=r[n];if(this.endMark(a.role),a.kind==="member"){this.inTarget=a.savedTarget;let o=this.deopt&&s==="?."?".":s;if(typeof i[2]==="string"&&i[2][0]==='"')this.mark(i,"operator",()=>this.b.emit(s==="?."&&!this.deopt?"?.":"")),this.mark(i,"property",()=>this.b.emit(`[${i[2]}]`));else this.mark(i,"operator",()=>this.b.emit(o)),this.mark(i,"property",()=>{let l=this.b.offset;if(this.stores.idOf(i)===null)this.emitPrimitive(i[2]);else this.b.emit(i[2]);if(this.ts&&this.appStashSpec!==null&&typeof i[2]==="string"&&E.isThisMember(i[1],"stash")&&!(this.cframes.length&&this.cframes[this.cframes.length-1].members.has("stash")))this.stashMemberSpans.push([l,this.b.offset]);if(this.ts&&i[1]==="this"&&typeof i[2]==="string"){let h=this.cframes[this.cframes.length-1]?.memberKinds?.get(i[2])??null,f=this.stores.idOf(i)??null,u=f!==null?this.stores.role(f,"property"):null;if(h!==null&&u&&typeof u.sourceStart==="number")this.kinds.push({start:u.sourceStart,end:u.sourceEnd,label:h.label,name:i[2],optional:h.optional})}});if(i[1]==="this"&&typeof i[2]==="string"&&this.memberIsReactive(i[2])){if(this.ts){let l=this.stores.idOf(i)??null,c=l!==null?this.stores.role(l,"property"):null;if(c&&typeof c.sourceStart==="number")this.memberDecls.push({start:c.sourceStart,end:c.sourceEnd})}this.b.emit(".value")}}else if(a.kind==="index")this.indexTail(i,a.opt,a.isWrite),this.inTarget=a.savedTarget;else if(a.kind==="optcall")this.b.emit("?."),this.mark(i,"args",()=>{this.b.emit("("),i.slice(2).forEach((o,l)=>{if(l>0)this.b.emit(", ");this.expr(o)}),this.b.emit(")")});else{let o=this.sourceKeyArgOf(i);if(o!==null)(this._sourceKeyArgs??=new Set).add(o),this._needsSourceKeyHelper=!0;let l=this.routerArgOf(i);if(l!==null){if((this._routerArgs??=new Map).set(l.arg,l.wrap),l.wrap)this._needsRouteHelper=!0}this.mark(i,"args",()=>{this.b.emit("("),i.slice(1).forEach((c,h)=>{if(h>0)this.b.emit(", ");this.callArg(c)}),this.b.emit(")")})}this.endMark(a.self)}}member(e){if(e[0]==="."&&e[1]==="this"&&typeof e[2]==="string"&&!this.inTarget)this.notePlainRenderRead(e[2],!0);this.chain(e)}noteProvidedRead(e){if(!this.ts||!(this.cframes?.length>0))return;let t=e;while(y(t)){let s=this.chainHeadSlotOf(t);if(s===null||!y(t[s]))break;t=t[s]}if(!y(t)||t[0]!=="."||t[1]!=="this"||t[2]!=="stash"&&t[2]!=="router")return;if(this.cframes[this.cframes.length-1].members?.has(t[2]))return;let r=this.stores.idOf(t),n=r!==null?this.stores.selfSpan(r):null,i=n!==null?this.stores.primitiveSpans(t[2],n[0],n[1])[0]??null:null;if(i&&!this.kinds.some((s)=>s.start===i.sourceStart&&s.label===t[2]))this.kinds.push({start:i.sourceStart,end:i.sourceEnd,label:t[2],name:t[2],optional:!1})}pick(e,t=!1){let[r,n,...i]=e;if(this.inPattern||this.inTarget)throw this.positionedError(e,"emitter: a pick expression is not an assignment target — it lowers to a fresh object literal (`({…}) = value` would be invalid JS)");let s=r==="?.{}",a=typeof n==="string"&&(n==="this"||/^[A-Za-z_$][\w$]*$/.test(n));if(!a)for(let l of i){if(l[2]!==null&&this.containsAwait(l[2]))throw this.positionedError(l,"emitter: a pick default cannot await when the source needs single evaluation — the lowering's '(_) =>' arrow is not async; bind the source first",e);if(l[2]!==null&&E.containsYield(l[2]))throw this.positionedError(l,"emitter: a pick default cannot yield when the source needs single evaluation — yield cannot cross the lowering's '(_) =>' arrow; bind the source first",e)}let o=(l)=>this.mark(e,"items",()=>{i.forEach((c,h)=>{if(h>0)this.b.emit(", ");let[f,u,d]=c;this.mark(c,"$self",()=>{if(this.mark(c,"target",()=>this.b.emit(E.ownKeyText(u,u))),this.b.emit(": "),d!==null)this.b.emit("(");if(l(),this.b.emit("."),this.mark(c,"key",()=>this.b.emit(f)),d!==null)this.b.emit(" ?? "),this.withExpression(()=>this.operand(c,"default",d)),this.b.emit(")")})})});this.mark(e,"$self",()=>{if(a&&!s)this.b.emit(t?"{":"({"),o(()=>this.mark(e,"source",()=>this.expr(n))),this.b.emit(t?"}":"})");else if(a){if(!t)this.b.emit("(");this.mark(e,"source",()=>this.expr(n)),this.b.emit(" == null ? undefined : {"),o(()=>this.mark(e,"source",()=>this.expr(n))),this.b.emit(t?"}":"})")}else{let l=this.loopTempName("_");this.b.emit(s?`((${l}) => ${l} == null ? undefined : ({`:`((${l}) => ({`),o(()=>this.b.emit(l)),this.b.emit("}))("),this.withExpression(()=>this.grouped(e,"source",n,E.needsGrouping(n,"operand"))),this.b.emit(")")}})}callArg(e){if(this._sourceKeyArgs?.has(e)){this._sourceKeyArgs.delete(e),this.b.tsOnly(()=>this.b.emit("__ripSourceKey("));let r=this.b.offset;this.expr(e),this.sourceKeySpans.push([r,this.b.offset]),this.b.tsOnly(()=>this.b.emit(")"));return}let t=this._routerArgs?.get(e);if(t!==void 0){if(this._routerArgs.delete(e),t)this.b.tsOnly(()=>this.b.emit("__ripRoute("));let r=this.b.offset;if(this.expr(e),this.routeWrapSpans.push({key:null,value:[r,this.b.offset]}),t)this.b.tsOnly(()=>this.b.emit(")"));return}if(y(e)&&(e[0]===".{}"||e[0]==="?.{}")&&e.length>=3)return this.pick(e,!0);this.expr(e)}sourceKeyArgOf(e){if(!this.ts||this.appStashSpec===null)return null;let t=e[1];if(typeof t!=="string"||!/^["']/.test(t))return null;let r=e[0];if(!y(r)||r.length!==3||r[2]!=="source")return null;let n=r[1];if(r[0]==="."&&E.isThisMember(n,"stash")){if(this.cframes.length&&this.cframes[this.cframes.length-1].members.has("stash"))return null;return t}if((r[0]==="."||r[0]==="?.")&&this.isAccessorCall(n,this.appAccessors.stash))return t;return null}static isThisMember(e,t){return y(e)&&e[0]==="."&&e.length===3&&e[1]==="this"&&e[2]===t}static stashKeysOf(e,t){let r=null;for(let s of e.slice(1)){let a=y(s)&&s[0]==="export"?s[1]:s;if(y(a)&&a[0]==="="&&a[1]===t){r=a[2];break}}if(y(r)&&r.length===2&&typeof r[0]==="string"&&y(r[1])&&r[1][0]==="object")r=r[1];if(!y(r)||r[0]!=="object")return null;let n=[],i=!0;for(let s of r.slice(1)){if(!y(s))continue;if(s[0]==="..."){i=!1;continue}let a=s[0]===":"?s[1]:s[0]===null?s[1]:null;if(typeof a!=="string"){i=!1;continue}n.push(/^["']/.test(a)?a.slice(1,-1):a)}return{keys:n,complete:i}}routerArgOf(e){if(!this.ts||this.routesUnion===null)return null;let t=e[1];if(typeof t!=="string"||!/^["']/.test(t))return null;let r=e[0];if(!y(r)||r.length!==3||r[2]!=="push"&&r[2]!=="replace")return null;let n=r[1];if(r[0]==="."&&E.isThisMember(n,"router")){if(this.cframes.length&&this.cframes[this.cframes.length-1].members.has("router"))return null;return{arg:t,method:r[2],wrap:!1}}if((r[0]==="."||r[0]==="?.")&&this.isAccessorCall(n,this.appAccessors.router))return{arg:t,method:r[2],wrap:!0};return null}binary(e){if(E.returnGuard(e))throw this.positionedError(e[2],"emitter: a return guard is a statement — in value position the 'return' would lose its function target (bind the value first, or use `or throw`)");if(E.stmtGuard(e))throw this.positionedError(e[2],`emitter: a ${e[2]} guard is a statement`);if(e[0]==="&&"||e[0]==="||")return this.logicalChain(e);if(E.isStrRepeat(e)){this.mark(e,"$self",()=>{this.mark(e,"left",()=>this.b.emit(e[1])),this.b.emit(".repeat("),this.mark(e,"right",()=>this.expr(e[2])),this.b.emit(")")});return}if(ut(e))return this.comparisonChain(e);let t=(o)=>ft(o)&&o[0]!=="&&"&&o[0]!=="||"&&!ut(o)&&!E.isStrRepeat(o),r=[e];while(t(r[r.length-1][1]))r.push(r[r.length-1][1]);let n=[];for(let o=0;o=0;o--){let l=r[o];if(this.b.emit(" "),this.mark(l,"operator",()=>this.b.emit(Pi[l[0]]??l[0])),this.b.emit(" "),this.operand(l,"right",l[2]),this.endMark(n[o].self),o>0)this.endMark(n[o-1].left),this.b.emit(")")}}logicalChain(e){let t=e[0],r=(a)=>ft(a)&&a[0]===t,n=[e];while(r(n[n.length-1][1]))n.push(n[n.length-1][1]);let i=[];for(let a=0;a=0;a--){let o=n[a];if(this.b.emit(" "),this.mark(o,"operator",()=>this.b.emit(t)),this.b.emit(" "),r(o[2]))this.grouped(o,"right",o[2],!1);else this.operand(o,"right",o[2]);if(this.endMark(i[a].self),a>0)this.endMark(i[a-1].left)}}comparisonChain(e){let t=[e];while(ut(t[t.length-1]))t.push(t[t.length-1][1]);t.reverse();let r=[];for(let s=t.length-1;s>=1;s--){let a=t[s],o=this.beginMark(a,"$self");this.b.emit("("),r[s]={self:o,left:this.beginMark(a,"left")}}let n=t[0],i=this.beginMark(n,"$self");this.operand(n,"left",n[1]),this.b.emit(" "),this.mark(n,"operator",()=>this.b.emit(Pi[n[0]]??n[0])),this.b.emit(" "),this.chainRight(n,t[1]),this.endMark(i);for(let s=1;sthis.b.emit(Pi[a[0]]??a[0])),this.b.emit(" "),this.chainRight(a,t[s+1]),this.b.emit(")"),this.endMark(r[s].self)}}chainRight(e,t){let r=e[2];if(t!==void 0&&y(r)){let n=this.temps.byNode.get(t);if(n===void 0)throw this.positionedError(r,"emitter: a chained comparison here cannot cache its middle operand for single evaluation "+"(no enclosing scope hoist) — bind the middle operand to a variable first ",e);this.b.emit("("),this.mark(e,"right",()=>{this.b.emit(`${n} = `),this.expr(r)}),this.b.emit(")");return}this.operand(e,"right",r)}chainMid(e,t){let r=this.temps.byNode.get(t);if(r!==void 0){this.mark(e,"right",()=>this.b.emit(r));return}this.operand(e,"right",e[2])}postfixType(e){if(!this.ts){this.mark(e,"$self",()=>this.mark(e,"annotation",()=>this.mark(e,"value",()=>this.expr(e[1]))));return}let t=this.stores.idOf(e),r=t===null?null:this.stores.role(t,"annotation"),n=r&&r.sourceStart!=null&&this.b.source!==null?this.b.source.slice(r.sourceStart,r.sourceEnd):`${e[0]==="cast"?"as":"satisfies"} ${Be(e[2])}`;this.mark(e,"$self",()=>{this.b.tsOnly(()=>this.b.emit("("));let i=E.jsTier(e[1])!=="primary";if(i)this.b.tsOnly(()=>this.b.emit("("));if(this.mark(e,"value",()=>this.expr(e[1])),i)this.b.tsOnly(()=>this.b.emit(")"));this.b.tsOnly(()=>{this.b.emit(" "),this.mark(e,"annotation",()=>this.emitTypeText(e,"annotation",n))}),this.b.tsOnly(()=>this.b.emit(")"))})}existence(e){this.mark(e,"$self",()=>{this.operand(e,"value",e[1]),this.b.emit(" != null")})}unary(e){if(e[0]==="delete"&&typeof e[1]==="string"&&this.isReactiveName(e[1]))throw this.positionedError(e,`emitter: cannot delete the reactive variable '${e[1]}' — \`delete ${e[1]}.value\` would remove the container's accessor and silently kill the reactive`);if(e[0]==="delete"&&!(y(e[1])&&(e[1][0]==="."||e[1][0]==="[]")))throw this.positionedError(e,"emitter: delete requires a property reference (delete obj.a / delete obj[k]) — deleting a plain binding is a strict-mode SyntaxError in modules");this.mark(e,"$self",()=>{if(this.mark(e,"operator",()=>this.b.emit(e[0])),/^[a-z]/.test(e[0]))this.b.emit(" ");this.operand(e,"operand",e[1])})}spread(e){this.mark(e,"$self",()=>{if(this.b.emit("..."),this.inPattern)this.mark(e,"value",()=>this.expr(e[1]));else this.operand(e,"value",e[1])})}array(e){this.mark(e,"$self",()=>{this.b.emit("["),this.mark(e,"items",()=>{let t=e.slice(1);t.forEach((r,n)=>{if(n>0)this.b.emit(", ");if(r===","){if(n===t.length-1)this.b.emit(",");return}if(y(r)&&r[0]==="rest"&&this.inPattern){if(!this.bindingPattern)throw this.positionedError(r,"emitter: Cannot use 'rest' expression as a destructuring target (destructuring rest is spelled '...name')",e);if(r.length!==2||n!==t.length-1)throw this.positionedError(r,"emitter: a `rest` element takes the pattern's tail alone",e);if(typeof r[1]!=="string")throw this.positionedError(r,"emitter: a `rest` element takes a plain name",e);this.b.emit("..."),this.b.emit(r[1]);return}let i=!this.inPattern&&!(y(r)&&r[0]==="...")&&E.needsGrouping(r,"operand");if(i)this.b.emit("(");if(this.expr(r),i)this.b.emit(")")})}),this.b.emit("]")})}symbolKey(e){this.b.emit("["),this.expr(e),this.b.emit("]")}static isMethodPair(e){return y(e)&&(e[0]===":"||e[0]==="void-pair")&&typeof e[1]==="string"&&/^[A-Za-z_$][\w$]*$/.test(e[1])&&y(e[2])&&e[2][0]==="->"}object(e){for(let a of e.slice(1)){if(y(a)&&a[0]===":"&&typeof a[1]==="string"&&a[1][0]==="/")throw this.positionedError(a,"emitter: a regex key needs a MAP literal (`*{ /re/: v }`) — object property names are strings");if(!this.inPattern&&!this.tolerant&&y(a)&&a[0]==="="&&a.length===3)throw this.positionedError(a,"emitter: `a = 1` inside an object literal is a destructuring default, which only a pattern can carry — spell the pair `a: 1`",e)}let t=!this.inPattern&&E.objectComprehension(e);if(t){let a=y(t[1])?t[1]:null,o={expr:a!==null?a[1]:t[1],pair:t,keyNode:a};return this.mark(e,"$self",()=>this.mark(e,"pairs",()=>this.mark(t,"$self",()=>this.mark(t,"value",()=>this.comprehension(t[2],this.ind,o)))))}let r=e.slice(1),n=this.ind,i=r.map((a)=>!this.inPattern&&E.isMethodPair(a)),s=(a)=>i[a]||i.slice(0,a).some(Boolean)?`, +`:", ";this.mark(e,"$self",()=>{this.b.emit("{"),this.mark(e,"pairs",()=>{r.forEach((a,o)=>{if(o>0)this.b.emit(s(o));if(i[o]){this.mark(a,"voidMarker",()=>this.mark(a,"$self",()=>{if(this.containsAwait(a[2][2]))this.b.emit("async ");if(E.containsYield(a[2][2]))this.b.emit("*");this.mark(a,"key",()=>this.b.emit(a[1]));let[,f,u]=a[2],d=this.ts&&this.contextuallyTyped(a[2]);this.b.emit("("),this.mark(a[2],"params",()=>this.emitParams(f,null,!d)),this.b.emit(")"),this.tsReturnAnnotation(a[2],this.containsAwait(u),a[0]==="void-pair",E.containsYield(u),a),this.b.emit(" "),this.mark(a,"value",()=>{this.methodBlock(a[2],u,n,{isConstructor:!1,binds:[],methodName:a[1],voidBody:a[0]==="void-pair"})})}));return}let l=y(a[1])&&a[1][0]==="dynamicKey";if(l&&a[0]===null)throw this.positionedError(a,"emitter: a computed key needs an explicit value ({[k]: v}) — there is no shorthand form",e);let c=y(a[1])&&a[1][0]==="str",h=a[0]===":"&&y(a[1])&&a[1][0]==="symbol";if(a[0]!=="..."&&y(a[1])&&!l&&!c&&!h)throw this.positionedError(a,"emitter: @-keys are only supported in class bodies",e);if(h){this.mark(a,"$self",()=>{this.mark(a,"key",()=>this.symbolKey(a[1])),this.b.emit(": "),this.mark(a,"value",()=>this.expr(a[2]))});return}if(a[0]===":"&&c){this.mark(a,"$self",()=>{this.b.emit("["),this.mark(a,"key",()=>this.strTemplate(a[1])),this.b.emit("]: "),this.mark(a,"value",()=>this.expr(a[2]))});return}this.mark(a,"$self",()=>{if(a[0]===":"&&l)if(this.mark(a,"key",()=>{this.mark(a[1],"$self",()=>{this.b.emit("["),this.withExpression(()=>this.operand(a[1],"key",a[1][1])),this.b.emit("]")})}),this.b.emit(": "),this.inPattern||y(a[2])&&a[2][0]==="=>")this.mark(a,"value",()=>this.expr(a[2]));else this.operand(a,"value",a[2]);else if(a[0]===":"||a[0]==="void-pair"){if(a[0]==="void-pair"){if(this.inPattern)throw this.positionedError(a,"emitter: the void marker has no meaning in a destructuring pattern — a pattern key takes no trailing '!'",e);this.registerVoidValue(a[2],a)}this.mark(a,"voidMarker",()=>{if(this.mark(a,"key",()=>this.b.emit(a[1])),this.b.emit(": "),this.inPattern||y(a[2])&&a[2][0]==="=>")this.mark(a,"value",()=>this.expr(a[2]));else this.operand(a,"value",a[2])})}else if(a[0]==="=")this.mark(a,"key",()=>this.b.emit(a[1])),this.b.emit(" = "),this.withExpression(()=>this.operand(a,"value",a[2]));else if(a[0]==="..."){if(this.inPattern&&(y(a[1])||a[1]==="this"))throw this.positionedError(a,"emitter: object rest in a destructuring pattern takes a plain name — chained-accessor rest targets are not supported",e);if(this.b.emit("..."),this.inPattern)this.mark(a,"value",()=>this.expr(a[1]));else this.operand(a,"value",a[1])}else if(typeof a[1]==="string"&&this.bareRewrite(a[1])!==null)this.mark(a,"key",()=>this.b.emit(a[1])),this.b.emit(": "),this.mark(a,"value",()=>this.expr(a[1]));else this.mark(a,"value",()=>this.mark(a,"key",()=>this.b.emit(a[1])))})})}),this.b.emit("}")})}static negativeLiteralKey(e){return y(e)&&e[0]==="-"&&e.length===2&&typeof e[1]==="string"&&/^\d+$/.test(e[1])}indexTail(e,t,r){let n=e[2],i=()=>{let s=this.deopt;this.deopt=!1,this.mark(e,"key",()=>this.expr(n)),this.deopt=s};if(!t&&We(n))this.mark(e,"key",()=>this.slice(n));else if(E.negativeLiteralKey(n)){if(r)throw this.positionedError(e,"emitter: a negative-literal index cannot be an assignment target (reads lower to .at(-n), and a call is not assignable)");this.b.emit(t?"?.at(":".at("),this.mark(e,"key",()=>{this.b.emit("-"),this.b.emit(n[1])}),this.b.emit(")")}else this.b.emit(t?"?.[":"["),i(),this.b.emit("]")}index(e){if(e.length===3&&typeof e[2]==="string"&&e[2][0]==="/")return this.regexIndex(e,e[1],e[2],null);this.chain(e)}optIndex(e){this.chain(e)}optCall(e){this.chain(e)}slice(e){let[t,r,n]=e;if(this.b.emit(".slice("),this.mark(e,"from",()=>r===null?this.b.emit("0"):this.expr(r)),n!==null)if(this.b.emit(", "),t==="...")this.mark(e,"to",()=>this.expr(n));else if(typeof n==="string"&&/^\d+$/.test(n))this.mark(e,"to",()=>this.b.emit(String(Number(n)+1)));else this.b.emit("+"),this.mark(e,"to",()=>this.expr(n)),this.b.emit(" + 1 || 9e9");this.b.emit(")")}range(e){let[t,r,n]=e,i=t===".."?"((s, e) => Array.from({length: Math.abs(e - s) + 1}, (_, i) => s + (i * (s <= e ? 1 : -1))))":"((s, e) => Array.from({length: Math.max(0, Math.abs(e - s))}, (_, i) => s + (i * (s <= e ? 1 : -1))))";this.mark(e,"$self",()=>{this.b.emit(i),this.b.emit("("),this.mark(e,"from",()=>this.expr(r)),this.b.emit(", "),this.mark(e,"to",()=>this.expr(n)),this.b.emit(")")})}classStatement(e,t){this.mark(e,"$self",()=>this.classCode(e,t))}classExpr(e){this.mark(e,"$self",()=>this.classCode(e,this.ind))}classCode(e,t){let[,r,n,i]=e;if(this.b.emit("class"),r!=null){if(typeof r!=="string")throw this.positionedError(e,"emitter: `class @Name` is a STATIC member class — it lives inside a class body (`static Name = class`); at the top level give the class a plain name");this.b.emit(" "),this.mark(e,"name",()=>this.b.emit(r))}if(n!=null)this.b.emit(" extends "),this.grouped(e,"parent",n,E.needsGrouping(n,"head"));if(this.b.emit(` { +`),i!=null)this.mark(e,"body",()=>this.classMembers(i,t));this.b.emit(" ".repeat(t)+"}")}classMethodForm(e){if(!y(e))return null;if(k1(e[0])&&e.length===4){let t=this.stores.alias(["->",e[2],e[3]],e);return{form:"def",pair:this.stores.alias([e[0]==="void-def"?"void-pair":":",e[1],t],e)}}if((e[0]==="get"||e[0]==="set")&&e.length===2&&O1(e[1])&&e[1].length===2){let t=e[1][1];if(y(t)&&t[0]===":"&&t.length===3&&T1(t[2]))return{form:e[0],pair:t}}return null}classMembers(e,t){let r=y(e)&&e[0]==="block"?e.slice(1):[e],n=new Map(r.map((b)=>[b,this.classMethodForm(b)])),i=(b)=>y(b)&&b[0]==="."&&b[1]==="this"?b[2]:b,s=(b)=>y(b)&&b[0]==="."&&b[1]==="this"&&b.length===3&&typeof b[2]==="string",a=" ".repeat(t+1),o=[],l=null,c=!1,h=new Set,f=null,u=null,d=[],p=(b)=>s(b)?`static ${b[2]}`:b,m=new Set,g=[];for(let b of r){let S=n.get(b)??null,w=S!==null?[S.pair]:O1(b)?b.slice(1):null;if(w===null){let R=typeof b==="string"||s(b)?b:E.isTypedWrapper(b)&&(typeof b[1]==="string"||s(b[1]))?b[1]:y(b)&&b[0]==="="&&b.length===3&&(typeof b[1]==="string"||s(b[1]))?b[1]:null;if(R!==null){if(m.add(p(R)),!s(R))h.add(R)}continue}for(let R of w){if(R[0]!==":"&&R[0]!=="void-pair")throw this.positionedError(R,"emitter: class bodies support methods and fields only",b);if(S!==null&&S.form!=="def"){let F=R[2][1].length;if(R[2][0]==="=>")throw this.positionedError(R,`emitter: a ${S.form} accessor takes '->' — accessors are looked up on the instance, never bound`,b);if(this.containsAwait(R[2][2])||E.containsYield(R[2][2]))throw this.positionedError(R,`emitter: a ${S.form} accessor cannot await or yield — JavaScript has no async or generator accessors`,b);if(S.form==="get"&&F!==0)throw this.positionedError(R,"emitter: a getter takes no parameters (`get x: -> …`)",b);if(S.form==="set"&&F!==1)throw this.positionedError(R,"emitter: a setter takes exactly one parameter (`set x: (v) -> …`)",b)}if(y(R[1])&&(R[1][0]==="dynamicKey"||R[1][0]==="[]"))throw this.positionedError(R,"emitter: computed class members are not supported yet",b);let T=i(R[1]);if(S!==null&&S.form!=="def"){if(T==="constructor")throw this.positionedError(R,`emitter: a class constructor cannot be a ${S.form} accessor`,b);g.push({pair:R,stmt:b,key:p(R[1]),form:S.form})}if(T==="constructor"&&!s(R[1])){if(c=!0,T1(R[2]))f=R[2][1],u=R[2][2]}else if(!s(R[1])&&typeof T==="string")h.add(T);if(T1(R[2])&&!s(R[1])&&T!=="constructor")d.push(R[2][2]);if(T1(R[2])&&R[2][0]==="=>"&&!s(R[1])&&T!=="constructor"){if(typeof T!=="string")throw this.positionedError(R,"emitter: a symbol-keyed method cannot be bound ('=>') — the constructor binds members by name; use '->'",b);o.push(T),l??=R}}}if(o.length>0&&!c)throw this.positionedError(l,"emitter: bound ('=>') class methods require an explicit constructor",e);for(let b of g)if(m.has(b.key))throw this.positionedError(b.pair,`emitter: field and ${b.form} accessor '${i(b.pair[1])}' share a name — the field would shadow the accessor on every instance; drop one`,b.stmt);if(this.ts&&f!==null)for(let b of f){let S=$3(b);if(S===null||h.has(S.name))continue;h.add(S.name);let w=S.typed===null?null:this.annotationText(S.typed)??(S.typed[2]===""?null:Be(S.typed[2])),R=this.stores.idOf(e),T=R!==null?this.stores.selfSpan(R):null,F=T!==null?this.stores.primitiveSpans(S.name,T[0],T[1])[0]??null:null;this.b.tsOnly(()=>{if(this.b.emit(a),F)this.b.markSpan(R,"identifier",F.sourceStart,F.sourceEnd,()=>this.b.emit(S.name));else this.b.emit(S.name);this.b.emit(`${w?`: ${w}`:""}; +`)})}if(this.ts)for(let b of D3([u,...d])){if(h.has(b.name))continue;h.add(b.name);let w=b.nodes.map((R)=>this.annotationText(R)).find((R)=>R!=null)??null??(b.viaArrow?"any":null);this.b.tsOnly(()=>this.b.emit(`${a}${b.name}${w?`: ${w}`:""}; +`))}for(let b of r)this.withTsDirectives(b,a,()=>this.classMember(b,e,t,a,{memberName:i,isStaticKey:s,bound:o,form:n.get(b)??null}),!0)}classFieldValue(e){if(this.containsAwait(e))throw this.positionedError(e,"emitter: a class field initializer cannot await — JavaScript evaluates class fields synchronously");if(E.containsYield(e))throw this.positionedError(e,"emitter: a class field initializer cannot yield — class field evaluation is not a generator context");let t=this.planReferenceTemps([e],new Set);if(t.length===0){this.expr(e);return}this.b.emit("(() => { "),this.hoistLine(t),this.b.emit(" return "),this.expr(e),this.b.emit("; })()")}classMember(e,t,r,n,{memberName:i,isStaticKey:s,bound:a,form:o}){let l=o!==null&&o.form!=="def"?o.form:null,c=o!==null&&o.form==="def"?"name":"key",h=e;if(o!==null)e=this.stores.alias(["object",o.pair],e);{if(y(e)&&e[0]==="class"&&y(e[1])&&e[1][0]==="."&&e[1][1]==="this"&&typeof e[1][2]==="string"){this.b.emit(n+"static "),this.mark(e,"name",()=>this.emitPrimitive(e[1][2])),this.b.emit(" = "),this.classCode(["class",null,e[2]??null,e[3]],r+1),this.b.emit(`; +`);return}if(O1(e)){for(let f of e.slice(1))this.withTsDirectives(f,n,()=>{let u=f[1],d=f[2],p=i(u),m=f[0]==="void-pair";if(!T1(d)){if(m)throw this.positionedError(f,"emitter: the void marker (a trailing '!' on the method key) requires a function value — `fn!: ->` (this class member's value is not a function)",e);throw this.positionedError(f,"emitter: a class field takes '=' for its value (`x = v`, `x: T = v`, `@x = v`) — `name: value` is a typed bodiless field only when the value is a TYPE",e)}if(m&&p==="constructor")throw this.positionedError(f,"emitter: a constructor cannot carry the void marker (`constructor!:`) — constructors have no implicit return to suppress",e);this.b.emit(n),this.mark(f,"voidMarker",()=>this.mark(f,"$self",()=>{if(s(u))this.b.emit("static ");if(this.containsAwait(d[2]))this.b.emit("async ");if(E.containsYield(d[2]))this.b.emit("*");if(l!==null){let R=this.stores.idOf(h),T=R!==null?this.stores.role(R,"callee"):null;if(T!==null)this.silences.push([T.sourceStart,T.sourceEnd]);this.mark(h,"callee",()=>this.b.emit(l)),this.b.emit(" ")}if(y(u)&&u[0]==="symbol")this.mark(f,"key",()=>this.symbolKey(u));else this.mark(f,c,()=>this.emitPrimitive(p));if(this.ts){let R=this.annotationText(f,"typeParams");if(R!==null)this.b.tsOnly(()=>this.mark(f,"typeParams",()=>this.emitTypeText(f,"typeParams",R)))}let[,g,b]=d,S=[],w=p==="constructor"&&!s(f[1]);if(w){let R=(T)=>{let F=gt(T);if(F!==null)return S.push(F),y(T)&&T[0]==="typed-var"?["typed-var",F,T[2]]:F;if(y(T)&&T[0]==="default"&&T.length===3){let L=gt(T[1]);if(L!==null)return S.push(L),["default",y(T[1])&&T[1][0]==="typed-var"&&T[1].length===3?["typed-var",L,T[1][2]]:L,T[2]]}return T};if(g=g.map(R),S.length>0&&y(b)&&b[0]==="block"&&y(b[1])&&b[1][0]==="super"){let T=new Set(S),F=(L)=>{if(!y(L))return L;if(L[0]==="."&&L[1]==="this"&&T.has(L[2]))return L[2];return L.map(F)};b=["block",F(b[1]),...b.slice(2)]}}if(this.b.emit("("),this.emitParams(g,null,l!=="set"),this.b.emit(")"),!w)this.tsReturnAnnotation(d,this.containsAwait(d[2]),m,E.containsYield(d[2]),f);this.b.emit(" "),this.mark(f,"value",()=>{this.methodBlock(d,b,r+1,{isConstructor:w,binds:w?a:[],methodName:typeof p==="string"?p:"symbol",voidBody:m||l==="set",tailReturn:l!=="set",voidReason:l==="set"?"a setter discards its return value":null,atParams:S})})})),this.b.emit(` +`)},!0);return}if(typeof e==="string"){this.b.emit(n+e+`; +`);return}if(s(e)){this.b.emit(n),this.mark(e,"$self",()=>{this.b.emit("static "),this.mark(e,"property",()=>this.emitPrimitive(e[2]))}),this.b.emit(`; +`);return}if(E.isTypedWrapper(e)&&(typeof e[1]==="string"||s(e[1]))){this.b.emit(n),this.mark(e,"$self",()=>this.mark(e,"annotation",()=>{if(s(e[1]))this.b.emit("static ");if(this.mark(e,"target",()=>this.withDeclaredName(()=>this.emitPrimitive(i(e[1])))),this.ts)this.tsAnnotate(e,"annotation",this.annotationText(e)??Be(e[2]))})),this.b.emit(`; +`);return}if(y(e)&&e[0]==="="&&e.length===3&&(typeof e[1]==="string"||s(e[1]))){this.ind=r+1,this.b.emit(n),this.mark(e,"annotation",()=>this.mark(e,"$self",()=>{if(s(e[1]))this.b.emit("static ");if(this.mark(e,"target",()=>this.withDeclaredName(()=>this.emitPrimitive(i(e[1])))),this.ts&&this.annotationText(e)!==null)this.tsAnnotate(e,"annotation",this.annotationText(e));this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.mark(e,"value",()=>this.withExpression(()=>this.classFieldValue(e[2])))})),this.b.emit(`; +`);return}if(y(e)&&e[0]==="type-decl")throw this.positionedError(e,"emitter: type declarations are not allowed as class members — move the `type`/`interface` to module scope");if(this.isReactiveDecl(e))throw this.positionedError(e,`emitter: a reactive declaration ('${typeof e[1]==="string"?e[1]:"…"} ${e[0]==="state"?":=":"~="} …') cannot be a class member — declare it at module or function scope`);if(this.isEffectDecl(e))throw this.positionedError(e,"emitter: an effect ('~>') cannot be a class member — run it at module or function scope, or inside a method");if(this.isReadonlyDecl(e))throw this.positionedError(e,`emitter: a readonly declaration ('${typeof e[1]==="string"?e[1]:"…"} =! …') cannot be a class member — declare it at module or function scope`);throw this.positionedError(e,"emitter: unsupported class member — fields take `name = value`, `name: T = value`, `name: T`, or their `@`-static forms; methods take `name: -> …`",t)}}static middleRestPattern(e){if(!y(e)||e[0]!=="array")return!1;let t=e.slice(1),r=t.findIndex((n)=>y(n)&&n[0]==="..."&&n.length===2);return r!==-1&&ry(o)&&o[0]==="..."&&o.length===2),i=r.slice(0,n),s=r[n][1],a=r.slice(n+1);for(let o of[...i,s,...a])if(typeof o!=="string")throw this.positionedError(e,"emitter: a middle-rest pattern takes plain names (`[a, ...mid, b]`) — nested patterns have no single-read lowering");this.mark(e,"$self",()=>{let o=e[2],l=this.repeatSafeValue(o)?null:this.loopTempName("_ref");if(l!==null)this.temps.used.add(l),this.b.emit(`const ${l} = `),this.mark(e,"value",()=>this.expr(o)),this.b.emit(`; +${" ".repeat(t)}`);let c=()=>{if(l!==null)this.b.emit(l);else this.expr(o)},h=()=>this.b.emit(`; +${" ".repeat(t)}`);i.forEach((f,u)=>{this.b.emit(`${f} = `),c(),this.b.emit(`[${u}]`),h()}),this.b.emit(`${s} = `),c(),this.b.emit(a.length>0?`.slice(${i.length}, -${a.length})`:`.slice(${i.length})`),a.forEach((f,u)=>{h(),this.b.emit(`${f} = `),c(),this.b.emit("["),c(),this.b.emit(`.length - ${a.length-u}]`)})})}methodBlock(e,t,r,{isConstructor:n,binds:i,methodName:s,voidBody:a=!1,tailReturn:o=!0,voidReason:l=null,atParams:c=[]}){let h=this.liveStmts(y(t)&&t[0]==="block"?t.slice(1):[t],{forwards:!0}),{entries:f,names:u}=this.scopedHoist(h,e[1]);for(let g of this.pushReactiveFrame(h,u,e[1],e))u.add(g);this.scopes.push(u);let d=this.methodName;this.methodName=s;let p=this.sideEffectOnly,m=this.voidReason;this.sideEffectOnly=a,this.voidReason=l,this.mark(t,"$self",()=>{if(this.b.emit(`{ +`),f.length)this.b.emit(" ".repeat(r+1)),this.hoistLine(f," ".repeat(r+1)),this.b.emit(` `);let g=" ".repeat(r+1),b=()=>{for(let S of i)this.b.emit(`${g}this.${S} = this.${S}.bind(this); `);for(let S of c)this.b.emit(`${g}this.${S} = ${S}; -`)};if(this.emitTsTypeDecls(y(t)&&t[0]==="block"?t.slice(1):[t],g),this.mark(t,"statements",()=>{let S=s&&f.length>0&&y(f[0])&&f[0][0]==="super";if(!S)b();f.forEach((w,R)=>{this.b.emit(g);let T=R===f.length-1;if(!s&&!a&&T)this.implicitReturn(w,r+1);else this.statement(w,r+1,!T||!s);if(this.b.emit(` -`),S&&R===0)b()})}),o)this.voidTailReturn(f,r);this.b.emit(" ".repeat(r)+"}")}),this.sideEffectOnly=p,this.voidReason=m,this.methodName=d,this.scopes.pop(),this.rframes.pop()}superCall(e){if(!this.methodName)throw this.positionedError(e,"emitter: super outside a class method");this.mark(e,"$self",()=>{this.b.emit(this.methodName==="constructor"?"super(":`super.${this.methodName}(`),this.mark(e,"args",()=>{e.slice(1).forEach((t,r)=>{if(r>0)this.b.emit(", ");this.callArg(t)})}),this.b.emit(")")})}newExpr(e){let[,t]=e;this.mark(e,"$self",()=>{this.mark(e,"operator",()=>this.b.emit("new")),this.b.emit(" "),this.mark(e,"operand",()=>{if(y(t)&&fr.has(t[0])&&E.optionalGuard(t))this.b.emit("("),this.expr(t),this.b.emit(" ?? undefined)()");else if(y(t)&&(t[0]==="."||t[0]==="?."))if(E.pureSpine(t))this.member(t),this.b.emit("()");else this.b.emit("("),this.expr(t),this.b.emit(")()");else if(y(t)&&t[0]==="new"&&t.length===2&&E.optionalGuard(t[1]))this.b.emit("("),this.newExpr(t),this.b.emit(")()");else if(y(t)&&t[0]==="tagged-template")this.b.emit("("),this.taggedTemplate(t),this.b.emit(")()");else if(y(t)&&y(t[0])&&!Pe(t[0])&&fr.has(t[0][0])&&E.optionalGuard(t[0]))this.mark(t,"$self",()=>{this.b.emit("("),this.expr(t[0]),this.b.emit(" ?? undefined)"),this.mark(t,"args",()=>{this.b.emit("("),t.slice(1).forEach((r,s)=>{if(s>0)this.b.emit(", ");this.callArg(r)}),this.b.emit(")")})});else if(y(t)&&t[0]==="new"&&t.length===2)this.b.emit("("),this.newExpr(t),this.b.emit(")()");else if(y(t)&&t[0]==="dammit!"){if(t.parenthesized)this.b.emit("(");if(this.dammit(t),t.parenthesized)this.b.emit(")");this.b.emit("()")}else if(y(t)){let r=this.semanticKindOf(t)==="call",s=t[0],i=!Pe(s)&&(E.pureSpine(s)||y(s)&&!s.parenthesized&&this.semanticKindOf(s)==="call"||y(s)&&s[0]==="dammit!");if(fr.has(t[0])&&E.pureSpine(t))this.call(t),this.b.emit("()");else if(r&&!t.parenthesized&&Pe(s))this.b.emit("("),this.call(t),this.b.emit(")()");else if(r&&!t.parenthesized&&i)this.call(t);else if(r&&!t.parenthesized){let n=this.ts&&y(s)&&(s[0]==="cast"||s[0]==="satisfies");this.mark(t,"$self",()=>{if(!n)this.b.emit("(");if(this.expr(s),!n)this.b.emit(")");this.mark(t,"args",()=>{this.b.emit("("),t.slice(1).forEach((a,o)=>{if(o>0)this.b.emit(", ");this.callArg(a)}),this.b.emit(")")})})}else{let n=this.ts&&(t[0]==="cast"||t[0]==="satisfies");if(!n)this.b.emit("(");this.expr(t),this.b.emit(n?"()":")()")}}else this.emitPrimitive(t),this.b.emit("()")})})}emitParam(e){if(typeof e==="string")return this.withDeclaredName(()=>this.emitPrimitive(e));if(e[0]==="typed-var"){this.mark(e,"$self",()=>this.mark(e,"annotation",()=>{if(this.mark(e,"target",()=>this.emitParam(e[1])),this.ts){let t=this.stores.idOf(e);if(t!==null&&this.stores.role(t,"optionalMarker"))this.b.tsOnly(()=>this.mark(e,"optionalMarker",()=>this.b.emit("?")));let r=this.annotationText(e)??(e[2]===""?"":Be(e[2]));if(r!=="")this.tsAnnotate(e,"annotation",r)}}));return}if(e[0]==="rest")return this.b.emit("..."),this.emitParam(e[1]);if(e[0]==="default")return this.emitParam(e[1]),this.b.emit(" = "),this.withExpression(()=>this.expr(e[2]));this.withPattern(()=>this.expr(e),!0)}static paramCore(e){return y(e)&&e[0]==="typed-var"?e[1]:e}static expansionSplit(e){let t=e.findIndex((s)=>y(s)&&s[0]==="expansion");if(t===-1)return{list:e,extractions:[]};let r=e.slice(t+1);return{list:[...e.slice(0,t),["rest","_rest"]],extractions:r.map((s,i)=>({node:s,name:E.paramCore(s),slot:`_rest[_rest.length - ${r.length-i}]`}))}}contextuallyTyped(e){let t=this.stores.idOf(e),r=t===null?null:this.stores.node(t);if(!r||typeof r.sourceStart!=="number")return!1;if(this._argSpans??=this.stores.roles.filter((s)=>s.role==="args"&&typeof s.sourceStart==="number").map((s)=>[s.sourceStart,s.sourceEnd]),this._argSpans.some(([s,i])=>r.sourceStart>=s&&r.sourceEnd<=i))return!0;return this._annotatedValueSpans??=(()=>{let s=new Set,i=[];for(let a of this.stores.nodes){if(a.semanticKind!=="assign"&&a.semanticKind!=="pair")continue;if(!this.stores.role(a.nodeId,"annotation"))continue;let o=this.stores.role(a.nodeId,"value");if(typeof o?.sourceStart==="number")s.add(`${o.sourceStart}:${o.sourceEnd}`),i.push([o.sourceStart,o.sourceEnd])}let n=[];for(let a of this.stores.nodes)if((a.semanticKind==="func"||a.semanticKind==="def"||a.semanticKind==="class")&&typeof a.sourceStart==="number"&&i.some(([o,l])=>a.sourceStart>=o&&a.sourceEnd<=l))n.push([a.sourceStart,a.sourceEnd]);for(let a of this.stores.nodes){if(a.semanticKind!=="pair"||typeof a.sourceStart!=="number")continue;if(!i.some(([l,c])=>a.sourceStart>=l&&a.sourceEnd<=c))continue;if(n.some(([l,c])=>a.sourceStart>=l&&a.sourceEnd<=c))continue;let o=this.stores.role(a.nodeId,"value");if(typeof o?.sourceStart==="number")s.add(`${o.sourceStart}:${o.sourceEnd}`)}return s})(),this._annotatedValueSpans.has(`${r.sourceStart}:${r.sourceEnd}`)}emitParams(e,t=null,r=!0){let s=E.expansionSplit(e).list,i=r&&this.ts?$n(s):new Set;if(t!==null)i.delete(0);s.forEach((n,a)=>{let o=this.firstAwaitIn(n);if(o!==null)throw this.positionedError(o,"emitter: a parameter cannot await or yield — JavaScript refuses both in formal parameters, a default "+"or a pattern's default included; take the argument and do it in the body (`a ?= load!`)");if(gt(n)!==null||y(n)&&n[0]==="default"&>(n[1])!==null)throw this.positionedError(y(n)?n:e,"emitter: an @-parameter promotes only in a constructor (`constructor: (@name) ->`) — bind a plain parameter and assign it here");if(a>0)this.b.emit(", ");if(this.emitParam(n),i.has(a)&&this.ts)this.b.tsOnly(()=>this.b.emit("?"));if(a===0&&t!==null&&typeof n==="string"&&this.ts)this.b.tsOnly(()=>this.b.emit(`: ${t}`))})}func(e){let t=this._narrowedReads;this._narrowedReads=null;try{return this.emitFunc(e)}finally{this._narrowedReads=t}}emitFunc(e){let[t,r,s]=e,i=r.length===0&&E.containsBareIt(s)?["it"]:r,n=t==="->"&&this.inComponent()?"=>":t,a=this.ind,o=this.voidFuncs.has(e),l=this.liveStmts(y(s)&&s[0]==="block"?s.slice(1):[s],{forwards:!0}),{entries:c,names:f}=this.scopedHoist(l,i);for(let p of this.pushReactiveFrame(l,f,i,e))f.add(p);this.scopes.push(f);let h=this.containsAwait(s),u=E.containsYield(s);if(u&&n==="=>")throw this.positionedError(e,t==="->"?"emitter: a generator arrow cannot sit inside a component body — thin arrows lower to fat arrows there to keep `this` on the instance, and JS has no generator arrows (name the generator a method and call it)":"emitter: fat arrows cannot contain yield (JS has no generator arrows; use ->)");let d=this.ts&&this.contextuallyTyped(e);this.mark(e,"returnType",()=>this.mark(e,"$self",()=>{if(n==="->"){if(h)this.b.emit("async ");this.mark(e,"kind",()=>this.b.emit(u?"function*":"function")),this.b.emit("("),this.mark(e,"params",()=>this.emitParams(i,null,!d)),this.b.emit(")"),this.tsReturnAnnotation(e,h,o,u),this.b.emit(" "),this.funcBlock(e,s,l,a,c,o)}else{if(h)this.b.emit("async ");let p=this.ts&&!d&&i.length===1&&typeof i[0]==="string",m=this.ts&&i.length===1&&typeof E.paramCore(i[0])==="string"&&(E.isTypedWrapper(i[0])||this.annotationText(e,"returnType")!==null||o||p);if(this.mark(e,"params",()=>{if(i.length===1&&typeof E.paramCore(i[0])==="string"){if(m)this.b.tsOnly(()=>this.b.emit("("));if(this.emitParam(i[0]),p)this.b.tsOnly(()=>this.b.emit("?"));if(m)this.b.tsOnly(()=>this.b.emit(")"))}else this.b.emit("("),this.emitParams(i,null,!d),this.b.emit(")")}),this.tsReturnAnnotation(e,h,o,u),this.b.emit(" "),this.mark(e,"kind",()=>this.b.emit("=>")),this.b.emit(" "),!o&&l.length===1&&c.length===0&&!E.statementOnly(l[0])&&!(y(l[0])&&(k1(l[0][0])||["return","if","while","block"].includes(l[0][0]))))this.mark(e,"body",()=>{let b=E.needsGrouping(l[0],"operand")||O1(l[0]);if(b)this.b.emit("(");if(this.expr(l[0]),b)this.b.emit(")")});else this.funcBlock(e,s,l,a,c,o)}})),this.scopes.pop(),this.rframes.pop(),this.ind=a}funcBlock(e,t,r,s,i,n=!1){let a=k1(e[0])?e[2]:e[1],{extractions:o}=E.expansionSplit(Array.isArray(a)?a:[]),l=this.sideEffectOnly,c=this.voidReason;this.sideEffectOnly=n,this.voidReason=null,this.mark(e,"body",()=>{this.mark(t,"$self",()=>{if(this.b.emit(`{ -`),i.length)this.b.emit(" ".repeat(s+1)),this.hoistLine(i," ".repeat(s+1)),this.b.emit(` -`);for(let f of o){let h=y(f.name)&&f.name[0]==="default",u=h?E.paramCore(f.name[1]):f.name,d=h?f.name[1]:f.node;if(y(u)&&u[0]==="rest")throw this.positionedError(f.node,"emitter: a rest parameter cannot follow the '...' gap — the gap already binds every argument between the head and the tail, so a second rest has nothing left to collect; name the tail parameter instead");if(this.b.emit(" ".repeat(s+1)+"const "),typeof u==="string")this.mark(f.node,"$self",()=>this.emitPrimitive(u));else this.withPattern(()=>this.expr(u),!0);let p=this.ts?this.annotationText(d):null;if(p!==null)this.tsAnnotate(d,"annotation",p);if(this.b.emit(" = "),h)this.b.emit(`${f.slot} === undefined ? `),this.withExpression(()=>this.expr(f.name[2])),this.b.emit(` : ${f.slot}`);else this.b.emit(f.slot);this.b.emit(`; -`)}this.emitTsTypeDecls(b1(t)?t.slice(1):[t]," ".repeat(s+1)),this.mark(t,"statements",()=>{r.forEach((f,h)=>{if(this.b.emit(" ".repeat(s+1)),!n&&h===r.length-1)this.implicitReturn(f,s+1);else this.statement(f,s+1,!0);this.b.emit(` -`)})}),this.voidTailReturn(r,s),this.b.emit(" ".repeat(s)+"}")})}),this.sideEffectOnly=l,this.voidReason=c}voidTailReturn(e,t){if(!this.sideEffectOnly||e.length===0)return;let r=e[e.length-1],s=y(r)?r[0]:null;if(["return","throw","break","continue"].includes(s))return;this.b.emit(" ".repeat(t+1)+`return; -`)}implicitReturn(e,t){this.withTsDirectives(e," ".repeat(t),()=>this.implicitReturnCore(e,t))}implicitReturnCore(e,t){if(y(e)&&(e[0]==="return"||e[0]==="throw"))return this.statement(e,t);if(typeof e==="string"&&(e==="break"||e==="continue"||e==="debugger"))return this.statement(e,t);if(this.ind=t,y(e)){let r=e[0];if(r==="if"&&e.length>=3&&e.length<=4){if(E.ifIsSimple(e))this.b.emit("return ("),this.mark(e,"$self",()=>this.ifTernary(e)),this.b.emit(");");else this.mark(e,"$self",()=>this.returnifyIf(e,t));return}if(r==="try"){this.withTailReturn(()=>this.tryBranches(e,t));return}if(r==="switch"&&e.length===4){this.b.emit("return "),this.withTailReturn(()=>this.valueSwitch(e)),this.b.emit(";");return}if(r==="while"&&(e.length===3||e.length===4)||r==="loop"&&e.length===2)return this.statement(e,t);if(E.returnGuard(e)||E.stmtGuard(e)||r==="="&&e.length===3&&(E.returnGuard(e[2])||E.stmtGuard(e[2])))return this.statement(e,t);if(r===".="&&e.length===3)return this.statement(e,t);if(r==="="&&e.length===3&&E.sliceTarget(e[1])!==null)return this.statement(e,t);if(r==="enum")return this.statement(e,t);if(this.isReactiveDecl(e)||this.isReadonlyDecl(e))return this.statement(e,t);if(this.isEffectDecl(e)&&e[1]!==null)return this.statement(e,t);if((r==="for-in"||r==="for-of"||r==="for-as")&&e.length===6)return this.returnifyLoop(e,t);if(k1(r))throw this.positionedError(e,"emitter: implicit return of a 'def' body is not supported yet")}this.b.emit("return "),this.withTailReturn(()=>{let r=E.needsGrouping(e,"return");if(r)this.b.emit("(");if(this.expr(e),r)this.b.emit(")")}),this.b.emit(";")}update(e){if(typeof e[1]==="string"&&this.isComputedName(e[1]))throw this.positionedError(e,`emitter: cannot assign to computed '${e[1]}' — a '~=' binding derives from its dependencies; write to those instead`);if(typeof e[1]==="string"&&this.isAmbientReadonly(e[1]))throw this.positionedError(e,`emitter: cannot assign to readonly '${e[1]}' — a '=!' binding never changes after its declaration`);if(this.checkExportedConstWrite(e,e[1]),this.checkMemberWrite(e,e[1]),y(e[1])&&E.optionalGuard(e[1])!==null)throw this.positionedError(e,"emitter: an optional chain cannot be an update target — no reference exists for `obj?.x++`; "+"guard it explicitly (`obj.x++ if obj?`)");this.mark(e,"$self",()=>{let[t,r,s]=e;if(s)this.mark(e,"target",()=>this.withTarget(()=>this.expr(r))),this.mark(e,"operator",()=>this.b.emit(t));else this.mark(e,"operator",()=>this.b.emit(t)),this.mark(e,"target",()=>this.withTarget(()=>this.expr(r)))})}relation(e){let[t,r,s]=e,i=t[0]==="!",n=i?t.slice(1):t;this.mark(e,"$self",()=>{if(i)this.b.emit("!(");if(n==="instanceof"){if(this.operand(e,"left",r),this.b.emit(" instanceof "),this.operand(e,"right",s),i)this.b.emit(")");return}if(n==="of"||n==="in"&&O1(s))this.operand(e,"left",r),this.b.emit(" in "),this.operand(e,"right",s);else if(y(s))this.b.emit(E.MEMBER_IN+"("),this.mark(e,"left",()=>this.expr(r)),this.b.emit(", "),this.mark(e,"right",()=>this.expr(s)),this.b.emit(")");else this.b.emit("Array.isArray("),this.expr(s),this.b.emit(") || typeof "),this.expr(s),this.b.emit(" === 'string' ? "),this.expr(s),this.b.emit(".includes("),this.mark(e,"left",()=>this.expr(r)),this.b.emit(") : ("),this.expr(r),this.b.emit(" in "),this.mark(e,"right",()=>this.expr(s)),this.b.emit(")");if(i)this.b.emit(")")})}static ternaryHoists(e){let t=e;while(y(t[2])&&t[2][0]==="?:"&&t[2].length===4&&!t[2].parenthesized)t=t[2];let r=t[2];return y(r)&&r[0]==="="&&r.length===3&&typeof r[1]==="string"&&!r.parenthesized}ternary(e){let t=[e];while(!0){let a=t[t.length-1][2];if(y(a)&&a[0]==="?:"&&a.length===4&&!a.parenthesized)t.push(a);else break}let r=t[t.length-1],s=E.ternaryHoists(r),i=(a,o,l)=>{this.grouped(a,o,l,E.needsGrouping(l,"operand")||U1(l))},n=(a)=>this.grouped(a,"condition",a[1],y(a[1])&&a[1][0]==="?:");this.mark(e,"$self",()=>{if(s)this.expr(r[2][1]),this.b.emit(" = (");n(r),this.b.emit(" ? "),i(r,"then",s?r[2][2]:r[2]);for(let a=t.length-2;a>=0;a--)this.b.emit(" : ("),n(t[a]),this.b.emit(" ? "),i(t[a+1],"else",t[a+1][3]);if(this.b.emit(" : "),i(t[0],"else",t[0][3]),this.b.emit(")".repeat(t.length-1)),s)this.b.emit(")")})}strTemplate(e){this.mark(e,"$self",()=>{this.b.emit("`"),this.templateChunks(e.slice(1)),this.b.emit("`")})}templateChunks(e){for(let t of e){if(t==="")continue;if(y(t)){if(t.length!==1)throw this.positionedError(t,"emitter: multi-statement interpolations are not supported yet");this.b.emit("${"),this.mark(t,"$self",()=>{let r=E.needsGrouping(t[0],"operand")||U1(t[0]);if(r)this.b.emit("(");if(this.expr(t[0]),r)this.b.emit(")")}),this.b.emit("}")}else{let r=t.slice(1,-1);if(r!=="")this.b.emit(E.escapeTemplate(r))}}}heregex(e){let[,t,...r]=e;this.mark(e,"$self",()=>{if(this.b.emit("RegExp(`"),this.templateChunks(r),this.b.emit("`"),t!=="")this.b.emit(`, '${t}'`);this.b.emit(")")})}call(e){if(this.browserModule&&e[0]==="import"&&this.lockedHead(e,"dynimport")){let t=this.positionedError(e,"emitter: dynamic import is not supported in a browser App module — use a static import so Rip can publish and resolve the dependency");if(typeof t.start!=="number"&&this.b.currentMark)t.start=this.b.currentMark.sourceStart,t.end=this.b.currentMark.sourceEnd;throw t}if(this.repl&&e[0]==="import"&&(e.length===2||e.length===3)&&this.lockedHead(e,"dynimport")){this.mark(e,"$self",()=>{this.b.emit(`import(${this.replResolver()}(`),this.mark(e,"args",()=>{if(this.callArg(e[1]),this.b.emit(")"),e.length===3)this.b.emit(", "),this.callArg(e[2])}),this.b.emit(")")});return}if(e[0]==="rest"&&this.inPattern)throw this.positionedError(e,this.bindingPattern?"emitter: a `rest` element is only legal at an array pattern's tail":"emitter: Cannot use 'rest' expression as a destructuring target (destructuring rest is spelled '...name')");if(y(e[0])&&e[0][0]==="dammit!"){if(this.renderSyncGuard(e),e[0].parenthesized){this.mark(e,"$self",()=>{this.b.emit("("),this.dammit(e[0]),this.b.emit(")"),this.mark(e,"args",()=>{this.b.emit("("),e.slice(1).forEach((s,i)=>{if(i>0)this.b.emit(", ");this.callArg(s)}),this.b.emit(")")})});return}let t=e[0][1],r=Pe(t);this.mark(e,"$self",()=>{this.b.emit(r?"await new ":"await "),this.mark(e[0],"$self",()=>{if(r)this.mark(e[0],"target",()=>this.rubyNewTarget(t));else this.head(e[0],"target",t)}),this.mark(e,"args",()=>{this.b.emit("("),e.slice(1).forEach((s,i)=>{if(i>0)this.b.emit(", ");this.callArg(s)}),this.b.emit(")")})});return}if(y(e[0])&&e[0][0]==="."&&e[0].length===3&&e[0][2]==="new"){this.mark(e,"$self",()=>{this.b.emit("new "),this.rubyNewTarget(e[0]),this.mark(e,"args",()=>{this.b.emit("("),e.slice(1).forEach((t,r)=>{if(r>0)this.b.emit(", ");this.callArg(t)}),this.b.emit(")")})});return}this.chain(e)}rubyNewTarget(e){let t=e[1];this.mark(e,"object",()=>{if(y(t))this.b.emit("("),this.expr(t),this.b.emit(E.optionalGuard(t)?" ?? undefined)":")");else this.expr(t)})}static MODULO="((n, d) => { n = +n; d = +d; return (n % d + d) % d; })";static LITERAL_WORDS=new Set(["true","false","null","undefined","NaN","Infinity"]);static ownKeyText(e,t){return t==="__proto__"?'["__proto__"]':e}static MEMBER_IN="((k, c) => Array.isArray(c) || typeof c === 'string' ? c.includes(k) : k in c)";floorDiv(e){this.mark(e,"$self",()=>{this.b.emit("Math.floor("),this.operand(e,"left",e[1]),this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("/")),this.b.emit(" "),this.operand(e,"right",e[2]),this.b.emit(")")})}returnGuardStatement(e,t){let r=e[2],s=typeof r==="string"?r:r[0];if(s==="return"&&this.scopes.length<=1)throw this.positionedError(r,"emitter: 'return' outside a function");if((s==="break"||s==="continue")&&this.ctrlDepth===0)throw this.positionedError(e,`emitter: '${s}' outside a loop${s==="break"?" or switch":""}`);let i=e[0],n=()=>{let a=()=>{if(t!==null)this.mark(t,"$self",()=>{this.mark(t,"target",()=>this.b.emit(t[1])),this.b.emit(" "),this.mark(t,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.mark(t,"value",()=>this.expr(e[1]))});else this.mark(e,"left",()=>this.expr(e[1]))},o=t!==null||E.jsTier(e[1])!=="primary";if(i==="||")if(this.b.emit("!"),o)this.b.emit("("),a(),this.b.emit(")");else a();else if(i==="??"){if(o)this.b.emit("("),a(),this.b.emit(")");else a();this.b.emit(" == null")}else if(o&&t!==null)this.b.emit("("),a(),this.b.emit(")");else a()};this.mark(e,"$self",()=>{this.b.emit("if ("),n(),this.b.emit(") ");let a=()=>{if(this.b.emit(s),y(r)&&r.length>1)this.b.emit(" "),this.mark(r,"value",()=>{if(r[0]==="return"&&E.needsGrouping(r[1],"return"))this.b.emit("("),this.expr(r[1]),this.b.emit(")");else this.expr(r[1])})};if(typeof r==="string")a();else this.mark(r,"$self",a);this.b.emit(";")})}compoundTarget(e,t,r){if(this.checkExportedConstWrite(e,t),this.repeatSafeValue(t))return this.mark(e,"target",()=>this.withTarget(()=>this.expr(t))),t;if(y(t)&&(t[0]==="."||t[0]==="[]")&&t.length===3){let s=t[1];if(!this.repeatSafeValue(s))s=this.loopTempName("_ref"),this.temps.used.add(s),this.b.emit(`const ${s} = `),this.expr(t[1]),this.b.emit(`; -${" ".repeat(r)}`);let i;if(t[0]==="[]"){let n=t[2];if(!this.repeatSafeValue(n)){let a=this.loopTempName("_key");this.temps.used.add(a),this.b.emit(`const ${a} = `),this.expr(n),this.b.emit(`; -${" ".repeat(r)}`),n=a}i=["[]",s,n]}else i=[".",s,t[2]];return this.mark(e,"target",()=>this.expr(i)),i}throw this.positionedError(e,`emitter: ${e[0]} needs a stable target — a plain name or member/index chain (an optional chain has no reference to write back to)`)}static sliceTarget(e){return y(e)&&e[0]==="[]"&&e.length===3&&y(e[2])&&(e[2][0]===".."||e[2][0]==="...")&&e[2].length===3?e:null}sliceAssignStatement(e){let[,t,r]=e,[,s,i]=t,[n,a,o]=i,l=(h)=>E.isIntegerLiteral(h)?parseInt(h.replace(/_/g,""),10):null,c=(h)=>typeof h==="string";for(let h of[a,o])if(y(h)&&h[0]==="-"&&h.length===2&&E.isIntegerLiteral(h[1]))throw this.positionedError(e,"emitter: a slice assignment cannot count from the end — `splice` takes a count, not a negative index; open the range instead (`a[i..] = v`) or compute the bound from `a.length`");let f=(h)=>{if(c(h))this.expr(h);else this.b.emit("("),this.expr(h),this.b.emit(")")};this.mark(e,"$self",()=>{this.mark(e,"target",()=>this.mark(t,"$self",()=>{this.head(t,"object",s),this.b.emit(".splice("),this.mark(t,"key",()=>{if(a===null)this.b.emit("0");else f(a);if(this.b.emit(", "),o===null)this.b.emit("Infinity");else if(l(o)!==null&&(a===null||l(a)!==null))this.b.emit(String(l(o)-(a===null?0:l(a))+(n===".."?1:0)));else{if(f(o),a!==null)this.b.emit(" - "),f(a);if(n==="..")this.b.emit(" + 1")}})})),this.mark(e,"operator",()=>{});let h=y(r)&&r[0]==="array"&&r.slice(1).every((u)=>!(y(u)&&u[0]==="...")&&u!==",");this.mark(e,"value",()=>{if(h)r.slice(1).forEach((u)=>{this.b.emit(", "),this.callArg(u)});else this.b.emit(", ...[].concat("),this.expr(r),this.b.emit(")")}),this.b.emit(")")})}methodAssignStatement(e,t){let[,r,s]=e,i=s;while(y(i)){let l=E.chainHeadSlot(i);if(l===null)break;i=i[l]}let n=y(i)?this.stores.idOf(i):null,a=n!==null?this.stores.node(n)?.semanticKind:null;if(!(y(i)&&typeof i[0]==="string"&&/^[A-Za-z_$][\w$]*$/.test(i[0])&&(a==="call"||a==null&&E.jsTier(i)==="primary")))throw this.positionedError(e,"emitter: `.=` re-binds its target to a METHOD CALL on itself — the right side must be a call chain (`x .= trim()`)");this.mark(e,"$self",()=>{let l=this.compoundTarget(e,r,t),c=(h)=>{if(h===i)return[[".",l,i[0]],...i.slice(1)];let u=E.chainHeadSlot(h),d=h.slice();return d[u]=c(h[u]),d};this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" ");let f=typeof l==="string"?this.bindingNameSpan(e,"target",l):null;if(f!==null)this.primitiveReuse={name:l,span:f.span};this.mark(e,"value",()=>this.expr(c(s))),this.primitiveReuse=null})}taggedTemplate(e){this.mark(e,"$self",()=>{let t=e[1];this.mark(e,"tag",()=>{if(E.needsGrouping(t,"head"))this.b.emit("("),this.expr(t),this.b.emit(")");else this.expr(t)});let r=e[2];this.mark(e,"str",()=>{if(typeof r==="string")if(r[0]==="`")this.b.emit(r);else this.b.emit("`"+E.escapeTemplate(r.slice(1,-1).replace(/\\"/g,'"'))+"`");else this.expr(r)})})}mapLiteral(e){this.mark(e,"$self",()=>{let t=e.slice(1);if(t.length===0){this.b.emit("new Map()");return}this.b.emit("new Map(["),t.forEach((r,s)=>{if(s>0)this.b.emit(", ");if(y(r)&&r[0]==="..."&&r.length===2){this.mark(r,"$self",()=>{this.b.emit("..."),this.expr(r[1])});return}if(!y(r)||r[0]!==":"||r.length!==3)throw this.positionedError(y(r)?r:e,"emitter: a map literal takes explicit `key: value` pairs — shorthand has no Map reading");this.mark(r,"$self",()=>{this.b.emit("[");let i=r[1];this.mark(r,"key",()=>{if(typeof i==="string"&&/^[A-Za-z_$][\w$]*$/.test(i)&&i!=="true"&&i!=="false"&&i!=="null"&&i!=="undefined")this.b.emit('"'),this.emitPrimitive(i),this.b.emit('"');else if(y(i)&&i[0]==="dynamicKey")this.expr(i[1]);else this.expr(i)}),this.b.emit(", "),this.mark(r,"value",()=>this.expr(r[2])),this.b.emit("]")})}),this.b.emit("])")})}matchReceiverClose(){this.b.emit(")"),this.b.emit(".match(")}regexIndex(e,t,r,s){this.mark(e,"$self",()=>{if(this.b.emit(`((_ = ${this.runtimeName("toMatchable")}(`),this.mark(e,"object",()=>this.expr(t)),this.matchReceiverClose(),this.mark(e,"key",()=>this.b.emit(r)),this.b.emit(")) && _["),s===null)this.b.emit("0");else this.mark(e,"capture",()=>this.expr(s));this.b.emit("])")})}static isMatchWrite(e){if(!y(e))return!1;if(e[0]==="=~"&&e.length===3)return!0;if(e[0]==="regex-index"&&e.length===4)return!0;return e[0]==="[]"&&e.length===3&&typeof e[2]==="string"&&e[2][0]==="/"}static paramMatchWrite(e){if(!y(e)||T1(e)||k1(e[0]))return null;if(E.isMatchWrite(e))return e;for(let t of e){let r=E.paramMatchWrite(t);if(r!==null)return r}return null}matchOp(e){if(y(e[1])&&e[1][0]==="=~"&&!e[1].parenthesized)throw this.positionedError(e,"emitter: `=~` does not chain — `a =~ b =~ c` would match the first match RESULT against the second pattern (parenthesize: `(a =~ b) =~ c`, or split the matches)");let t=e[2];this.mark(e,"$self",()=>{this.b.emit(`(_ = ${this.runtimeName("toMatchable")}(`),this.mark(e,"left",()=>this.expr(e[1])),this.matchReceiverClose(),this.mark(e,"right",()=>this.expr(t)),this.b.emit("))")})}modulo(e){this.mark(e,"$self",()=>{this.b.emit(E.MODULO+"("),this.mark(e,"left",()=>this.expr(e[1])),this.b.emit(", "),this.mark(e,"right",()=>this.expr(e[2])),this.b.emit(")")})}synthCompound(e,t,r,s){let i=e[1];if(this.checkExportedConstWrite(e,i),y(i)&&(i[0]==="."||i[0]==="[]")&&i.length===3){let n=this.refPlans.get(e)??{recv:null,obj:null,key:null};if(n.obj===null&&!this.repeatSafeValue(i[1]))throw this.positionedError(e,"emitter: reference plan missing for a compound target with an impure object — a capture site the planner walk did not reach");if(n.key===null&&i[0]==="[]"&&!this.repeatSafeValue(i[2]))throw this.positionedError(e,"emitter: reference plan missing for a compound target with an impure key — a capture site the planner walk did not reach");this.mark(e,"$self",()=>{let a=n.obj!==null||n.key!==null;if(a)this.b.emit("(");if(n.obj!==null)this.b.emit(`${n.obj} = `),this.mark(i,"object",()=>this.withExpression(()=>this.expr(i[1]))),this.b.emit(", ");if(n.key!==null)this.b.emit(`${n.key} = `),this.mark(i,"key",()=>this.withExpression(()=>this.expr(i[2]))),this.b.emit(", ");let o=this.stores.alias([i[0],n.obj??i[1],n.key??i[2]],i),l=()=>this.mark(e,"target",()=>this.withTarget(()=>this.expr(o)));if(l(),this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.mark(e,"operator",()=>{this.b.emit(t),l(),this.b.emit(r),this.operand(e,"value",e[2]),this.b.emit(s)}),a)this.b.emit(")")});return}this.mark(e,"$self",()=>{let n=()=>this.mark(e,"target",()=>this.withTarget(()=>this.expr(e[1])));n(),this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.mark(e,"operator",()=>{this.b.emit(t),n(),this.b.emit(r),this.operand(e,"value",e[2]),this.b.emit(s)})})}floorDivAssign(e){this.synthCompound(e,"Math.floor("," / ",")")}moduloAssign(e){this.synthCompound(e,E.MODULO+"(",", ",")")}awaitExpr(e){this.renderSyncGuard(e),this.mark(e,"$self",()=>{this.mark(e,"operator",()=>this.b.emit("await")),this.b.emit(" "),this.operand(e,"value",e[1])})}doIife(e){let[,t]=e;this.mark(e,"$self",()=>{if(this.b.emit("("),this.mark(e,"func",()=>this.expr(t)),this.b.emit(")("),T1(t)){let r=t[1],s=r.map((n)=>{let a=E.paramCore(n);if(typeof a==="string")return()=>this.expr(a);if(y(a)&&a[0]==="default"&&typeof E.paramCore(a[1])==="string")return()=>this.expr(a[2]);throw this.positionedError(n,"emitter: do-IIFE parameters must be plain names or defaulted names — patterns and rests have no capture argument",e)}),i=r.length;while(i>0&&y(r[i-1])&&r[i-1][0]==="default")i--;s.slice(0,i).forEach((n,a)=>{if(a>0)this.b.emit(", ");n()})}this.b.emit(")")})}dammit(e){if(this.renderSyncGuard(e),Pe(e[1])){this.mark(e,"$self",()=>{this.mark(e,"operator",()=>this.b.emit("await")),this.b.emit(" new "),this.mark(e,"target",()=>this.rubyNewTarget(e[1])),this.b.emit("()")});return}this.mark(e,"$self",()=>{this.mark(e,"operator",()=>this.b.emit("await")),this.b.emit(" "),this.head(e,"target",e[1]),this.b.emit("()")})}maybeDammit(e){this.renderSyncGuard(e);let t=e[1];if(y(t)&&t[0]==="new"||Pe(t))throw this.positionedError(e,"emitter: maybe dammit has no reading on a constructor — `?!` on a construction would make the "+"constructor an optional callee; construct and await with `new X!`");this.mark(e,"$self",()=>{this.mark(e,"operator",()=>this.b.emit("await")),this.b.emit(" "),this.head(e,"callee",e[1]),this.mark(e,"operator",()=>this.b.emit("?.")),this.mark(e,"args",()=>{this.b.emit("("),e.slice(2).forEach((r,s)=>{if(s>0)this.b.emit(", ");this.expr(r)}),this.b.emit(")")})})}yieldExpr(e){if(this.renderSyncGuard(e),this.scopes.length<=1)throw this.positionedError(e,"emitter: 'yield' outside a function");this.mark(e,"$self",()=>{this.b.emit(e[0]==="yield-from"?"yield*":"yield");let t=e[0]==="yield-from"?e[1]:e[1];if(e.length>1)this.b.emit(" "),this.operand(e,"value",t)})}}var pa=(e)=>{if(!y(e))return!1;if(e[0]==="schema"&&e.length===2&&typeof e[1]==="object")return!0;return e.some(pa)},ga=(e)=>{if(!y(e))return!1;if(e[0]==="schema"&&e.length===2&&e[1]&&typeof e[1]==="object"&&e[1].kind==="model")return!0;return e.some(ga)},ba=(e,t)=>{if(!y(e))return!1;if(t(e))return!0;return e.some((r)=>ba(r,t))},ya=(e,t)=>{if(!y(e))return!1;if(t(e))return!0;return e.some((r)=>ya(r,t))},Sa=(e)=>{if(!y(e))return!1;if(e[0]==="object"&&E.objectComprehension(e)!==null)return!0;return e.some(Sa)},Ra=(e)=>{if(!y(e))return!1;if(E.isMatchWrite(e))return!0;return e.some(Ra)},pt=[{key:"intrinsics",names:["__toPropertyKey","__defineOwnDataProperty"],generatedNames:["__toPropertyKey","__defineOwnDataProperty"],url:new URL("./runtime/intrinsics.js",import.meta.url),triggers:(e,t)=>Sa(e)},{key:"vocab",names:[],url:new URL("./runtime/vocab.js",import.meta.url),triggers:()=>!1},{key:"schema",names:["__schema","SchemaError","registerCoercer"],url:new URL("./runtime/schema.js",import.meta.url),requires:["vocab"],triggers:(e,t)=>pa(e)},{key:"duckdb",names:[],url:new URL("./runtime/duckdb.js",import.meta.url),triggers:()=>!1},{key:"orm",names:["schema","__schemaSetAdapter"],url:new URL("./runtime/orm.js",import.meta.url),requires:["schema","duckdb","vocab"],triggers:(e,t)=>ga(e)},{key:"reactive",names:["__state","__computed","__effect","__batch","__readonly","__setErrorHandler","__handleError","__catchErrors","getEffectSignal"],generatedNames:["__state","__computed","__effect","__batch"],url:new URL("./runtime/reactive.js",import.meta.url),triggers:(e,t)=>ba(e,t.isTrigger),types:{__state:"(value: T | { value: T; read(): T }) => { value: T; read(): T; touch(): void }",__computed:"(fn: () => T) => { readonly value: T; read(): T }",__effect:"(fn: () => void | (() => void)) => () => void",__batch:"(fn: () => T) => T",__readonly:"(value: T) => T",__setErrorHandler:"(handler: ((error: any, source?: string) => void) | null) => void",__handleError:"(error: any, source?: string) => void",__catchErrors:"(fn: () => T, onError?: (e: any) => void) => T | undefined",getEffectSignal:"() => AbortSignal | null"}},{key:"stdlib",names:["abort","assert","exit","kind","noop","p","pp","pj","pr","raise","rand","sleep","toMatchable","todo","warn","zip"],generatedNames:["toMatchable"],url:new URL("./runtime/stdlib.js",import.meta.url),triggers:(e,t)=>Ra(e),types:{abort:"(msg?: string) => never",assert:"(v: any, msg?: string) => void",exit:"(code?: number) => never",kind:"(v: any) => string",noop:"() => void",p:"(...args: any[]) => void",pp:"(v: T) => T",pj:"(v: T) => T",pr:"(v: T) => T",raise:"(a: any, b?: any) => never",rand:"(a?: number, b?: number) => number",sleep:"(ms: number) => Promise",toMatchable:"(v: any) => string",todo:"(msg?: string) => never",warn:"(...args: any[]) => void",zip:"(...arrays: any[][]) => any[][]"}},{key:"components",names:["setContext","getContext","hasContext","__Component","__pushComponent","__popComponent","__clsx","__style","__lis","__reconcile","__transition","__handleComponentError","__gateBind","__detach","__reportChildFailure","__ownerFrame","__pushOwner","__popOwner","__detachRef"],generatedNames:["setContext","getContext","__Component","__pushComponent","__popComponent","__clsx","__style","__reconcile","__transition","__gateBind","__detach","__reportChildFailure","__ownerFrame","__pushOwner","__popOwner","__detachRef"],types:{__clsx:xs,__style:Ls},url:new URL("./runtime/components.js",import.meta.url),requires:"reactive",triggers:(e,t)=>ya(e,t.isComponent)}],ji=new Map,da=(e)=>{if(!ji.has(e.key)){let r=Is(e.url,"utf8").replace(/^export \{[^}]*\};\s*$/gm,"").replace(/^import \{[^}]*\} from '\.\/[a-z-]+\.js';\s*$/gm,"").trimEnd(),s=/^[ \t]*(import|export)\b.*$/m.exec(r);if(s)throw Error(`emitter: runtime '${e.key}' carries a top-level ${s[1]} that inline delivery cannot strip — `+`${JSON.stringify(s[0].trim())}. Inline bodies share one IIFE scope, so it would emit unparseable output. Use the './name.js' import form, or move the dependency into RUNTIME_TABLE 'requires'.`);ji.set(e.key,r)}return ji.get(e.key)},Fi=(e)=>e.requires==null?[]:Array.isArray(e.requires)?e.requires:[e.requires],Ee=(e,t,r=()=>!1)=>{if(t.size===0)return!1;let s=(o)=>typeof o==="string"&&t.has(o),i=(o)=>y(o)&&o.some(n),n=(o)=>{if(!y(o))return!1;let[l]=o;if(l==="object"||l==="array")return o.slice(1).some(n);if(l===null&&o.length===3)return!1;if(l===":"&&o.length===3)return y(o[1])&&a(o[1])||n(o[2]);if(l==="="&&o.length===3)return n(o[1])||a(o[2]);if((l==="rest"||l==="..."||l==="expansion")&&o.length===2)return n(o[1]);if(l==="typed-var"&&o.length===3)return n(o[1]);return a(o)},a=(o)=>{if(s(o))return!0;if(!y(o))return!1;let[l]=o;if(l==="schema"&&o.length===2&&o[1]&&typeof o[1]==="object"&&Array.isArray(o[1].entries))return!1;if(l==="."||l==="?.")return a(o[1]);if((l===":"||l==="void-pair")&&o.length===3)return y(o[1])&&a(o[1])||a(o[2]);if(T1(o))return i(o[1])||a(o[2]);if(k1(l)&&o.length===4)return i(o[2])||a(o[3]);if(r(o))return a(o[2]);if(F1.has(l)&&o.length===3)return y(o[1])&&n(o[1])||a(o[2]);if(l==="for-in"||l==="for-of"||l==="for-as")return y(o[1])&&o[1].some(n)||o.slice(2).some(a);if(l==="try")return o.slice(1).some((c)=>{if(!y(c))return!1;if(c[0]==="block")return a(c);return n(c[0])||a(c[1])});if(l==="class"&&o.length>=2)return o.slice(2).some(a);if(l==="typed-var"&&o.length===3)return y(o[1])&&a(o[1]);if((l==="cast"||l==="satisfies")&&o.length===3)return a(o[1]);if(l==="import"||l==="type-decl")return!1;return o.some(a)};return a(e)},L3=(e,t)=>{let r=[],s=(i,n,a=[])=>{let o=(h)=>E.isReactiveDeclIn(n,h)||E.isEffectDeclIn(n,h)||E.isReadonlyDeclIn(n,h)||E.isGateDeclIn(n,h),l=(h)=>E.isReactiveDeclIn(n,h)||E.isEffectDeclIn(n,h),c=(h)=>E.isComponentDeclIn(n,h);r.push({tree:i,atoms:a,isDecl:o,isTrigger:l,isComponent:c});let f=(h)=>{if(!y(h))return;if(h[0]==="schema"&&h.length===2&&h[1]&&typeof h[1]==="object"&&Array.isArray(h[1].entries)){for(let{entry:u,tokens:d,value:p}of E.schemaBodies(h[1])){let m=e.subParse(d);if(m.stmts.length)s(["program",...m.stmts],m.stores,p?[]:e.schemaBodyParams(u).map((g)=>g.name))}return}h.forEach(f)};f(i)};return s(t,e.stores),r},M3=(e,t)=>{let r=new Set,s=(n)=>{for(let a of e.patternNames(n,[],!0))r.add(a)},i=(n,a)=>{if(!y(n))return;let[o]=n;if(e.isModuleImport(n)){for(let l of E.importedNames([n]))r.add(l);return}if(T1(n)){if(y(n[1]))for(let l of n[1])s(l);i(n[2],a);return}if(k1(o)&&n.length===4){if(typeof n[1]==="string")r.add(n[1]);if(y(n[2]))for(let l of n[2])s(l);i(n[3],a);return}if(o==="class"){if(typeof n[1]==="string")r.add(n[1]);for(let l of n.slice(2)){let c=y(l)&&l[0]==="block"?l.slice(1):[l];for(let f of c)if(y(f)&&k1(f[0])&&f.length===4){if(y(f[2]))for(let h of f[2])s(h);i(f[3],a)}else i(f,a)}return}if(o==="enum"){if(typeof n[1]==="string")r.add(n[1]);for(let l of n.slice(2))i(l,a);return}if(a(n)){if(typeof n[1]==="string")r.add(n[1]);else if(y(n[1]))s(n[1]);i(n[2],a);return}if((F1.has(o)||o==="void-assign")&&n.length>=2){if(typeof n[1]==="string")r.add(n[1]);else if(E.isPattern(n[1]))s(n[1])}if((o==="for-in"||o==="for-of"||o==="for-as")&&y(n[1]))for(let l of n[1])s(l);if(o==="try"){for(let l of n.slice(2))if(y(l)&&l.length===2&&E.isPattern(l[0]))s(l[0])}for(let l of n)i(l,a)};for(let{tree:n,atoms:a,isDecl:o}of t){i(n,o);for(let l of a)s(l)}return r},j3=(e,t)=>{let r=t.slice(1),s=new Set(e.hoistTargets(r).map(([a])=>a)),i=r.filter((a)=>e.isModuleImport(a));for(let a of E.importedNames(i))s.add(a);for(let a of e.collectReactiveNames(r))s.add(a);for(let a of e.collectEffectHandles(r))s.add(a);for(let a of e.collectReadonlyNames(r))s.add(a);let n=(a)=>{if(!y(a))return;if(a[0]==="enum"&&typeof a[1]==="string")s.add(a[1]);if(a[0]==="class"&&typeof a[1]==="string")s.add(a[1]);if(k1(a[0])&&a.length===4&&typeof a[1]==="string")s.add(a[1]);if((a[0]==="="||a[0]==="void-assign")&&typeof a[1]==="string")s.add(a[1])};for(let a of r)if(n(a),y(a)&&a[0]==="export"&&y(a[1]))n(a[1]);return s},ma=new Set(["plain","state","computed","effect","readonly","import","class","def","enum"]),F3=(e)=>{if(e==null)return[];if(!Array.isArray(e))throw Error(`emitter: ambientBindings must be an array of {name, kind}; got ${typeof e}`);let t=new Set;for(let r of e){if(r===null||typeof r!=="object"||!Z1(r.name))throw Error(`emitter: ambientBindings entries are {name, kind} with an identifier name; got ${JSON.stringify(r)}`);if(!ma.has(r.kind))throw Error(`emitter: ambientBindings kind '${r.kind}' for '${r.name}' is not a binding kind — expected one of ${[...ma].join(", ")}`);if(t.has(r.name))throw Error(`emitter: ambientBindings names '${r.name}' twice — one binding per name`);t.add(r.name)}return e},B3=(e,t,r)=>{let s=t.slice(1),i=new Map,n=(c,f)=>{if(typeof c==="string"&&!i.has(c))i.set(c,f)},a=(c)=>{if(!r.has(c))n(c,"plain")};for(let c of s)if(e.isModuleImport(c))for(let f of E.importedNames([c]))n(f,"import");let o=e.collectComputedNames(s);for(let c of e.collectReactiveNames(s))n(c,o.has(c)?"computed":"state");for(let c of e.collectEffectHandles(s))n(c,"effect");for(let c of e.collectReadonlyNames(s))n(c,"readonly");let l=(c,f)=>{if(!y(c))return;if(c[0]==="enum"&&typeof c[1]==="string")n(c[1],"enum");if(c[0]==="class"&&typeof c[1]==="string")n(c[1],"class");if(k1(c[0])&&c.length===4&&typeof c[1]==="string")n(c[1],"def");if((c[0]==="="||c[0]==="void-assign")&&typeof c[1]==="string")if(f)n(c[1],"plain");else a(c[1])};for(let c of s)if(l(c,!1),y(c)&&c[0]==="export"&&y(c[1]))l(c[1],!0);for(let[c,,f]of e.hoistTargets(s))if(f==="target")a(c);return[...i].map(([c,f])=>({name:c,kind:f}))},Ui={field:"field",computed:"computed",derived:"derived",method:"method"};function U3(e,t,r,s){let i=[],n=(l)=>l.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");for(let l of t.story?.decl?.descriptor?.entries??[]){let c=l.tag==="union-member"?{name:l.name,start:l.start}:l.tag==="directive"&&l.name==="mixin"&&l.argTokens?.[0]?.kind==="IDENTIFIER"?{name:l.argTokens[0].value,start:l.argTokens[0].start}:null;if(c!==null&&typeof c.start==="number"){let h=new RegExp(`(= |\\| |& )(${n(c.name)})(?= \\||;| &)`).exec(r);if(h!==null)i.push({at:h.index+h[1].length,len:c.name.length,start:c.start,end:c.start+c.name.length});continue}if((Ui[l.tag]??null)===null||typeof l.start!=="number")continue;let f=new RegExp(`([{;] )((?:readonly )?)(${n(l.name)})(\\??: )`).exec(r);if(f===null)continue;if(i.push({at:f.index+f[1].length+f[2].length,len:l.name.length,start:l.start,end:l.start+l.name.length}),l.tag==="field"&&Array.isArray(l.typeSpan)&&e.b.source!==null){let h=/[A-Za-z_$][\w$]*/.exec(e.b.source.slice(l.typeSpan[0],l.typeSpan[1]));if(h!==null){let u=f.index+f[0].length,d=r.indexOf(";",u)<0?r.length:r.indexOf(";",u)+1,p=new RegExp(`(?u[1]))];for(let u of f){if(c.has(u))continue;let d=a[0]+1,p=-1;while(d>0){let m=l.lastIndexOf(u,d-1);if(m<0)break;if(!/[\w$]/.test(l[m-1]??" ")&&!/[\w$]/.test(l[m+u.length]??" ")){p=m;break}d=m}if(p>=0)c.set(u,[p,p+u.length])}let h=(u,d)=>i.some((p)=>ul.at-c.at);let o=0;for(let l of i){if(l.ate.b.emit(r.slice(l.at,l.at+l.len)));else e.b.emit(r.slice(l.at,l.at+l.len));o=l.at+l.len}e.b.emit(r.slice(o))}function V3(e,t,r,s){let i=t.story?.decl?.descriptor?.entries??null;if(i===null)return;let n=(a)=>a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");for(let a of i){let o=a.tag==="union-member"?{name:a.name,start:a.start}:a.tag==="directive"&&a.name==="mixin"&&a.argTokens?.[0]?.kind==="IDENTIFIER"?{name:a.argTokens[0].value,start:a.argTokens[0].start}:null;if(o===null||typeof o.start!=="number")continue;let l=new RegExp(`(= |\\| |& )(${n(o.name)})(?= \\||;| &)`).exec(r);if(l===null)continue;e.intrinsics.push({start:o.start,end:o.start+o.name.length,kind:"schema",label:null,name:o.name,gen:s+l.index+l[1].length})}for(let a of i){let o=Ui[a.tag]??null;if(o===null||typeof a.start!=="number")continue;let l=n(a.name),c=new RegExp(`([{;] )((?:readonly )?)(${l})(\\??: )`).exec(r);if(c===null)continue;let f=s+c.index+c[1].length+c[2].length;if(e.intrinsics.push({start:a.start,end:a.start+a.name.length,kind:"schema",label:o,name:a.name,gen:f,optional:c[4].startsWith("?")}),a.tag==="field"&&a.typeSpan!==null&&a.typeSpan!==void 0)e.intrinsics.push({start:a.typeSpan[0],end:a.typeSpan[1],kind:"schema",label:null,name:a.name,gen:f+c[3].length+c[4].length})}}function Ea(e,{source:t="",runtimeDelivery:r="none",face:s="js",pins:i=null,strict:n=!1,script:a=!1,browserModule:o=!1,dataPayload:l=null,ambientBindings:c=null,repl:f=!1,hmr:h=!1,tolerant:u=!1,modulePath:d=null,appStashSpec:p=null,routesUnion:m=null,routeParams:g=null}={}){if(!e.sexpr)throw Error("emitter: cannot emit a failed parse");if(s!=="js"&&s!=="ts")throw Error(`emitter: unknown face '${s}' — expected 'js' (the shipping emission) or 'ts' (the editor face)`);let b=F3(c),S=new ar(e.stores),w=new Re(S,{source:t,primitives:s==="ts"}),R=new E(S,w,{face:s,pins:i,strict:n,script:a,browserModule:o,repl:f,hmr:h,tolerant:u,modulePath:d,appStashSpec:p,routesUnion:m,routeParams:g});if(R.dataPayload=l,r!=="none"&&r!=="import"&&r!=="inline")throw Error(`emitter: unknown runtimeDelivery '${r}' — expected 'none', 'import', or 'inline'`);if(R.collectTsDirectives(e.sexpr,e.trivia??[],t),R.collectTypeOnlyImports(e.sexpr,t),R.collectAppAccessors(e.sexpr),R.tsNocheck!==null){let k=S.idOf(e.sexpr),v=R.tsNocheck;w.tsOnly(()=>{let j=()=>w.emit("//"+v.text.slice(1));if(k!==null)w.markSpan(k,"tsDirective",v.start,v.end,j);else j();w.emit(` -`)})}let T=L3(R,e.sexpr),F=(k)=>{if(typeof k==="string")R.temps.used.add(k);else if(y(k))for(let v of k)F(v)};for(let{tree:k,atoms:v}of T)F(k),F(v);for(let{name:k}of b)R.temps.used.add(k);let L=M3(R,T);for(let{name:k}of b)L.add(k);let P=[...L];for(let k of pt)for(let v of k.generatedNames??[])R.runtimeAliases.set(v,E.mintName(v,L));let N=j3(R,e.sexpr),D=B3(R,e.sexpr,new Set(b.map(({name:k})=>k)));for(let{name:k}of b)N.add(k);let O=new Set;for(let k of pt){let v=new Set(k.names.filter((j)=>!N.has(j)));if(T.some(({tree:j,isDecl:X,isTrigger:x,isComponent:Z})=>k.triggers?.(j,{isTrigger:x,isComponent:Z})||Ee(j,v,X)))O.add(k.key)}for(let k=!0;k;){k=!1;for(let v of pt){if(!O.has(v.key))continue;for(let j of Fi(v))if(!O.has(j))O.add(j),k=!0}}if(r!=="none"){let k=pt.filter((X)=>O.has(X.key)),v=[];if(r==="import")for(let X of k)v.push({runtimes:[X],names:X.names,imp:X.url.pathname});else{let X=new Set(k.flatMap((x)=>Fi(x)));for(let x of k){if(X.has(x.key))continue;let Z=[],U=(Q)=>{if(Z.includes(Q))return;for(let l1 of Fi(Q)){let I=pt.find((s1)=>s1.key===l1);if(I)U(I)}Z.push(Q)};if(U(x),Z.length===1){v.push({runtimes:[x],names:x.names,body:da(x),types:x.types});continue}let r1=Z.some((Q)=>Q.types)?Object.assign({},...Z.map((Q)=>Q.types)):void 0;v.push({runtimes:Z,names:Z.flatMap((Q)=>Q.names),body:Z.map((Q)=>da(Q)).join(` +`)};if(this.emitTsTypeDecls(y(t)&&t[0]==="block"?t.slice(1):[t],g),this.mark(t,"statements",()=>{let S=n&&h.length>0&&y(h[0])&&h[0][0]==="super";if(!S)b();h.forEach((w,R)=>{this.b.emit(g);let T=R===h.length-1;if(!n&&!a&&T)this.implicitReturn(w,r+1);else this.statement(w,r+1,!T||!n);if(this.b.emit(` +`),S&&R===0)b()})}),o)this.voidTailReturn(h,r);this.b.emit(" ".repeat(r)+"}")}),this.sideEffectOnly=p,this.voidReason=m,this.methodName=d,this.scopes.pop(),this.rframes.pop()}superCall(e){if(!this.methodName)throw this.positionedError(e,"emitter: super outside a class method");this.mark(e,"$self",()=>{this.b.emit(this.methodName==="constructor"?"super(":`super.${this.methodName}(`),this.mark(e,"args",()=>{e.slice(1).forEach((t,r)=>{if(r>0)this.b.emit(", ");this.callArg(t)})}),this.b.emit(")")})}newExpr(e){let[,t]=e;this.mark(e,"$self",()=>{this.mark(e,"operator",()=>this.b.emit("new")),this.b.emit(" "),this.mark(e,"operand",()=>{if(y(t)&&hr.has(t[0])&&E.optionalGuard(t))this.b.emit("("),this.expr(t),this.b.emit(" ?? undefined)()");else if(y(t)&&(t[0]==="."||t[0]==="?."))if(E.pureSpine(t))this.member(t),this.b.emit("()");else this.b.emit("("),this.expr(t),this.b.emit(")()");else if(y(t)&&t[0]==="new"&&t.length===2&&E.optionalGuard(t[1]))this.b.emit("("),this.newExpr(t),this.b.emit(")()");else if(y(t)&&t[0]==="tagged-template")this.b.emit("("),this.taggedTemplate(t),this.b.emit(")()");else if(y(t)&&y(t[0])&&!Ce(t[0])&&hr.has(t[0][0])&&E.optionalGuard(t[0]))this.mark(t,"$self",()=>{this.b.emit("("),this.expr(t[0]),this.b.emit(" ?? undefined)"),this.mark(t,"args",()=>{this.b.emit("("),t.slice(1).forEach((r,n)=>{if(n>0)this.b.emit(", ");this.callArg(r)}),this.b.emit(")")})});else if(y(t)&&t[0]==="new"&&t.length===2)this.b.emit("("),this.newExpr(t),this.b.emit(")()");else if(y(t)&&t[0]==="dammit!"){if(t.parenthesized)this.b.emit("(");if(this.dammit(t),t.parenthesized)this.b.emit(")");this.b.emit("()")}else if(y(t)){let r=this.semanticKindOf(t)==="call",n=t[0],i=!Ce(n)&&(E.pureSpine(n)||y(n)&&!n.parenthesized&&this.semanticKindOf(n)==="call"||y(n)&&n[0]==="dammit!");if(hr.has(t[0])&&E.pureSpine(t))this.call(t),this.b.emit("()");else if(r&&!t.parenthesized&&Ce(n))this.b.emit("("),this.call(t),this.b.emit(")()");else if(r&&!t.parenthesized&&i)this.call(t);else if(r&&!t.parenthesized){let s=this.ts&&y(n)&&(n[0]==="cast"||n[0]==="satisfies");this.mark(t,"$self",()=>{if(!s)this.b.emit("(");if(this.expr(n),!s)this.b.emit(")");this.mark(t,"args",()=>{this.b.emit("("),t.slice(1).forEach((a,o)=>{if(o>0)this.b.emit(", ");this.callArg(a)}),this.b.emit(")")})})}else{let s=this.ts&&(t[0]==="cast"||t[0]==="satisfies");if(!s)this.b.emit("(");this.expr(t),this.b.emit(s?"()":")()")}}else this.emitPrimitive(t),this.b.emit("()")})})}emitParam(e){if(typeof e==="string")return this.withDeclaredName(()=>this.emitPrimitive(e));if(e[0]==="typed-var"){this.mark(e,"$self",()=>this.mark(e,"annotation",()=>{if(this.mark(e,"target",()=>this.emitParam(e[1])),this.ts){let t=this.stores.idOf(e);if(t!==null&&this.stores.role(t,"optionalMarker"))this.b.tsOnly(()=>this.mark(e,"optionalMarker",()=>this.b.emit("?")));let r=this.annotationText(e)??(e[2]===""?"":Be(e[2]));if(r!=="")this.tsAnnotate(e,"annotation",r)}}));return}if(e[0]==="rest")return this.b.emit("..."),this.emitParam(e[1]);if(e[0]==="default")return this.emitParam(e[1]),this.b.emit(" = "),this.withExpression(()=>this.expr(e[2]));this.withPattern(()=>this.expr(e),!0)}static paramCore(e){return y(e)&&e[0]==="typed-var"?e[1]:e}static expansionSplit(e){let t=e.findIndex((n)=>y(n)&&n[0]==="expansion");if(t===-1)return{list:e,extractions:[]};let r=e.slice(t+1);return{list:[...e.slice(0,t),["rest","_rest"]],extractions:r.map((n,i)=>({node:n,name:E.paramCore(n),slot:`_rest[_rest.length - ${r.length-i}]`}))}}contextuallyTyped(e){let t=this.stores.idOf(e),r=t===null?null:this.stores.node(t);if(!r||typeof r.sourceStart!=="number")return!1;if(this._argSpans??=this.stores.roles.filter((n)=>n.role==="args"&&typeof n.sourceStart==="number").map((n)=>[n.sourceStart,n.sourceEnd]),this._argSpans.some(([n,i])=>r.sourceStart>=n&&r.sourceEnd<=i))return!0;return this._annotatedValueSpans??=(()=>{let n=new Set,i=[];for(let a of this.stores.nodes){if(a.semanticKind!=="assign"&&a.semanticKind!=="pair")continue;if(!this.stores.role(a.nodeId,"annotation"))continue;let o=this.stores.role(a.nodeId,"value");if(typeof o?.sourceStart==="number")n.add(`${o.sourceStart}:${o.sourceEnd}`),i.push([o.sourceStart,o.sourceEnd])}let s=[];for(let a of this.stores.nodes)if((a.semanticKind==="func"||a.semanticKind==="def"||a.semanticKind==="class")&&typeof a.sourceStart==="number"&&i.some(([o,l])=>a.sourceStart>=o&&a.sourceEnd<=l))s.push([a.sourceStart,a.sourceEnd]);for(let a of this.stores.nodes){if(a.semanticKind!=="pair"||typeof a.sourceStart!=="number")continue;if(!i.some(([l,c])=>a.sourceStart>=l&&a.sourceEnd<=c))continue;if(s.some(([l,c])=>a.sourceStart>=l&&a.sourceEnd<=c))continue;let o=this.stores.role(a.nodeId,"value");if(typeof o?.sourceStart==="number")n.add(`${o.sourceStart}:${o.sourceEnd}`)}return n})(),this._annotatedValueSpans.has(`${r.sourceStart}:${r.sourceEnd}`)}emitParams(e,t=null,r=!0){let n=E.expansionSplit(e).list,i=r&&this.ts?$n(n):new Set;if(t!==null)i.delete(0);n.forEach((s,a)=>{let o=this.firstAwaitIn(s);if(o!==null)throw this.positionedError(o,"emitter: a parameter cannot await or yield — JavaScript refuses both in formal parameters, a default "+"or a pattern's default included; take the argument and do it in the body (`a ?= load!`)");if(gt(s)!==null||y(s)&&s[0]==="default"&>(s[1])!==null)throw this.positionedError(y(s)?s:e,"emitter: an @-parameter promotes only in a constructor (`constructor: (@name) ->`) — bind a plain parameter and assign it here");if(a>0)this.b.emit(", ");if(this.emitParam(s),i.has(a)&&this.ts)this.b.tsOnly(()=>this.b.emit("?"));if(a===0&&t!==null&&typeof s==="string"&&this.ts)this.b.tsOnly(()=>this.b.emit(`: ${t}`))})}func(e){let t=this._narrowedReads;this._narrowedReads=null;try{return this.emitFunc(e)}finally{this._narrowedReads=t}}emitFunc(e){let[t,r,n]=e,i=r.length===0&&E.containsBareIt(n)?["it"]:r,s=t==="->"&&this.inComponent()?"=>":t,a=this.ind,o=this.voidFuncs.has(e),l=this.liveStmts(y(n)&&n[0]==="block"?n.slice(1):[n],{forwards:!0}),{entries:c,names:h}=this.scopedHoist(l,i);for(let p of this.pushReactiveFrame(l,h,i,e))h.add(p);this.scopes.push(h);let f=this.containsAwait(n),u=E.containsYield(n);if(u&&s==="=>")throw this.positionedError(e,t==="->"?"emitter: a generator arrow cannot sit inside a component body — thin arrows lower to fat arrows there to keep `this` on the instance, and JS has no generator arrows (name the generator a method and call it)":"emitter: fat arrows cannot contain yield (JS has no generator arrows; use ->)");let d=this.ts&&this.contextuallyTyped(e);this.mark(e,"returnType",()=>this.mark(e,"$self",()=>{if(s==="->"){if(f)this.b.emit("async ");this.mark(e,"kind",()=>this.b.emit(u?"function*":"function")),this.b.emit("("),this.mark(e,"params",()=>this.emitParams(i,null,!d)),this.b.emit(")"),this.tsReturnAnnotation(e,f,o,u),this.b.emit(" "),this.funcBlock(e,n,l,a,c,o)}else{if(f)this.b.emit("async ");let p=this.ts&&!d&&i.length===1&&typeof i[0]==="string",m=this.ts&&i.length===1&&typeof E.paramCore(i[0])==="string"&&(E.isTypedWrapper(i[0])||this.annotationText(e,"returnType")!==null||o||p);if(this.mark(e,"params",()=>{if(i.length===1&&typeof E.paramCore(i[0])==="string"){if(m)this.b.tsOnly(()=>this.b.emit("("));if(this.emitParam(i[0]),p)this.b.tsOnly(()=>this.b.emit("?"));if(m)this.b.tsOnly(()=>this.b.emit(")"))}else this.b.emit("("),this.emitParams(i,null,!d),this.b.emit(")")}),this.tsReturnAnnotation(e,f,o,u),this.b.emit(" "),this.mark(e,"kind",()=>this.b.emit("=>")),this.b.emit(" "),!o&&l.length===1&&c.length===0&&!E.statementOnly(l[0])&&!(y(l[0])&&(k1(l[0][0])||["return","if","while","block"].includes(l[0][0]))))this.mark(e,"body",()=>{let b=E.needsGrouping(l[0],"operand")||O1(l[0]);if(b)this.b.emit("(");if(this.expr(l[0]),b)this.b.emit(")")});else this.funcBlock(e,n,l,a,c,o)}})),this.scopes.pop(),this.rframes.pop(),this.ind=a}funcBlock(e,t,r,n,i,s=!1){let a=k1(e[0])?e[2]:e[1],{extractions:o}=E.expansionSplit(Array.isArray(a)?a:[]),l=this.sideEffectOnly,c=this.voidReason;this.sideEffectOnly=s,this.voidReason=null,this.mark(e,"body",()=>{this.mark(t,"$self",()=>{if(this.b.emit(`{ +`),i.length)this.b.emit(" ".repeat(n+1)),this.hoistLine(i," ".repeat(n+1)),this.b.emit(` +`);for(let h of o){let f=y(h.name)&&h.name[0]==="default",u=f?E.paramCore(h.name[1]):h.name,d=f?h.name[1]:h.node;if(y(u)&&u[0]==="rest")throw this.positionedError(h.node,"emitter: a rest parameter cannot follow the '...' gap — the gap already binds every argument between the head and the tail, so a second rest has nothing left to collect; name the tail parameter instead");if(this.b.emit(" ".repeat(n+1)+"const "),typeof u==="string")this.mark(h.node,"$self",()=>this.emitPrimitive(u));else this.withPattern(()=>this.expr(u),!0);let p=this.ts?this.annotationText(d):null;if(p!==null)this.tsAnnotate(d,"annotation",p);if(this.b.emit(" = "),f)this.b.emit(`${h.slot} === undefined ? `),this.withExpression(()=>this.expr(h.name[2])),this.b.emit(` : ${h.slot}`);else this.b.emit(h.slot);this.b.emit(`; +`)}this.emitTsTypeDecls(b1(t)?t.slice(1):[t]," ".repeat(n+1)),this.mark(t,"statements",()=>{r.forEach((h,f)=>{if(this.b.emit(" ".repeat(n+1)),!s&&f===r.length-1)this.implicitReturn(h,n+1);else this.statement(h,n+1,!0);this.b.emit(` +`)})}),this.voidTailReturn(r,n),this.b.emit(" ".repeat(n)+"}")})}),this.sideEffectOnly=l,this.voidReason=c}voidTailReturn(e,t){if(!this.sideEffectOnly||e.length===0)return;let r=e[e.length-1],n=y(r)?r[0]:null;if(["return","throw","break","continue"].includes(n))return;this.b.emit(" ".repeat(t+1)+`return; +`)}implicitReturn(e,t){this.withTsDirectives(e," ".repeat(t),()=>this.implicitReturnCore(e,t))}implicitReturnCore(e,t){if(y(e)&&(e[0]==="return"||e[0]==="throw"))return this.statement(e,t);if(typeof e==="string"&&(e==="break"||e==="continue"||e==="debugger"))return this.statement(e,t);if(this.ind=t,y(e)){let r=e[0];if(r==="if"&&e.length>=3&&e.length<=4){if(E.ifIsSimple(e))this.b.emit("return ("),this.mark(e,"$self",()=>this.ifTernary(e)),this.b.emit(");");else this.mark(e,"$self",()=>this.returnifyIf(e,t));return}if(r==="try"){this.withTailReturn(()=>this.tryBranches(e,t));return}if(r==="switch"&&e.length===4){this.b.emit("return "),this.withTailReturn(()=>this.valueSwitch(e)),this.b.emit(";");return}if(r==="while"&&(e.length===3||e.length===4)||r==="loop"&&e.length===2)return this.statement(e,t);if(E.returnGuard(e)||E.stmtGuard(e)||r==="="&&e.length===3&&(E.returnGuard(e[2])||E.stmtGuard(e[2])))return this.statement(e,t);if(r===".="&&e.length===3)return this.statement(e,t);if(r==="="&&e.length===3&&E.sliceTarget(e[1])!==null)return this.statement(e,t);if(r==="enum")return this.statement(e,t);if(this.isReactiveDecl(e)||this.isReadonlyDecl(e))return this.statement(e,t);if(this.isEffectDecl(e)&&e[1]!==null)return this.statement(e,t);if((r==="for-in"||r==="for-of"||r==="for-as")&&e.length===6)return this.returnifyLoop(e,t);if(k1(r))throw this.positionedError(e,"emitter: implicit return of a 'def' body is not supported yet")}this.b.emit("return "),this.withTailReturn(()=>{let r=E.needsGrouping(e,"return");if(r)this.b.emit("(");if(this.expr(e),r)this.b.emit(")")}),this.b.emit(";")}update(e){if(typeof e[1]==="string"&&this.isComputedName(e[1]))throw this.positionedError(e,`emitter: cannot assign to computed '${e[1]}' — a '~=' binding derives from its dependencies; write to those instead`);if(typeof e[1]==="string"&&this.isAmbientReadonly(e[1]))throw this.positionedError(e,`emitter: cannot assign to readonly '${e[1]}' — a '=!' binding never changes after its declaration`);if(this.checkExportedConstWrite(e,e[1]),this.checkMemberWrite(e,e[1]),y(e[1])&&E.optionalGuard(e[1])!==null)throw this.positionedError(e,"emitter: an optional chain cannot be an update target — no reference exists for `obj?.x++`; "+"guard it explicitly (`obj.x++ if obj?`)");this.mark(e,"$self",()=>{let[t,r,n]=e;if(n)this.mark(e,"target",()=>this.withTarget(()=>this.expr(r))),this.mark(e,"operator",()=>this.b.emit(t));else this.mark(e,"operator",()=>this.b.emit(t)),this.mark(e,"target",()=>this.withTarget(()=>this.expr(r)))})}relation(e){let[t,r,n]=e,i=t[0]==="!",s=i?t.slice(1):t;this.mark(e,"$self",()=>{if(i)this.b.emit("!(");if(s==="instanceof"){if(this.operand(e,"left",r),this.b.emit(" instanceof "),this.operand(e,"right",n),i)this.b.emit(")");return}if(s==="of"||s==="in"&&O1(n))this.operand(e,"left",r),this.b.emit(" in "),this.operand(e,"right",n);else if(y(n))this.b.emit(E.MEMBER_IN+"("),this.mark(e,"left",()=>this.expr(r)),this.b.emit(", "),this.mark(e,"right",()=>this.expr(n)),this.b.emit(")");else this.b.emit("Array.isArray("),this.expr(n),this.b.emit(") || typeof "),this.expr(n),this.b.emit(" === 'string' ? "),this.expr(n),this.b.emit(".includes("),this.mark(e,"left",()=>this.expr(r)),this.b.emit(") : ("),this.expr(r),this.b.emit(" in "),this.mark(e,"right",()=>this.expr(n)),this.b.emit(")");if(i)this.b.emit(")")})}static ternaryHoists(e){let t=e;while(y(t[2])&&t[2][0]==="?:"&&t[2].length===4&&!t[2].parenthesized)t=t[2];let r=t[2];return y(r)&&r[0]==="="&&r.length===3&&typeof r[1]==="string"&&!r.parenthesized}ternary(e){let t=[e];while(!0){let a=t[t.length-1][2];if(y(a)&&a[0]==="?:"&&a.length===4&&!a.parenthesized)t.push(a);else break}let r=t[t.length-1],n=E.ternaryHoists(r),i=(a,o,l)=>{this.grouped(a,o,l,E.needsGrouping(l,"operand")||U1(l))},s=(a)=>this.grouped(a,"condition",a[1],y(a[1])&&a[1][0]==="?:");this.mark(e,"$self",()=>{if(n)this.expr(r[2][1]),this.b.emit(" = (");s(r),this.b.emit(" ? "),i(r,"then",n?r[2][2]:r[2]);for(let a=t.length-2;a>=0;a--)this.b.emit(" : ("),s(t[a]),this.b.emit(" ? "),i(t[a+1],"else",t[a+1][3]);if(this.b.emit(" : "),i(t[0],"else",t[0][3]),this.b.emit(")".repeat(t.length-1)),n)this.b.emit(")")})}strTemplate(e){this.mark(e,"$self",()=>{this.b.emit("`"),this.templateChunks(e.slice(1)),this.b.emit("`")})}templateChunks(e){for(let t of e){if(t==="")continue;if(y(t)){if(t.length!==1)throw this.positionedError(t,"emitter: multi-statement interpolations are not supported yet");this.b.emit("${"),this.mark(t,"$self",()=>{let r=E.needsGrouping(t[0],"operand")||U1(t[0]);if(r)this.b.emit("(");if(this.expr(t[0]),r)this.b.emit(")")}),this.b.emit("}")}else{let r=t.slice(1,-1);if(r!=="")this.b.emit(E.escapeTemplate(r))}}}heregex(e){let[,t,...r]=e;this.mark(e,"$self",()=>{if(this.b.emit("RegExp(`"),this.templateChunks(r),this.b.emit("`"),t!=="")this.b.emit(`, '${t}'`);this.b.emit(")")})}call(e){if(this.browserModule&&e[0]==="import"&&this.lockedHead(e,"dynimport")){let t=this.positionedError(e,"emitter: dynamic import is not supported in a browser App module — use a static import so Rip can publish and resolve the dependency");if(typeof t.start!=="number"&&this.b.currentMark)t.start=this.b.currentMark.sourceStart,t.end=this.b.currentMark.sourceEnd;throw t}if(this.repl&&e[0]==="import"&&(e.length===2||e.length===3)&&this.lockedHead(e,"dynimport")){this.mark(e,"$self",()=>{this.b.emit(`import(${this.replResolver()}(`),this.mark(e,"args",()=>{if(this.callArg(e[1]),this.b.emit(")"),e.length===3)this.b.emit(", "),this.callArg(e[2])}),this.b.emit(")")});return}if(e[0]==="rest"&&this.inPattern)throw this.positionedError(e,this.bindingPattern?"emitter: a `rest` element is only legal at an array pattern's tail":"emitter: Cannot use 'rest' expression as a destructuring target (destructuring rest is spelled '...name')");if(y(e[0])&&e[0][0]==="dammit!"){if(this.renderSyncGuard(e),e[0].parenthesized){this.mark(e,"$self",()=>{this.b.emit("("),this.dammit(e[0]),this.b.emit(")"),this.mark(e,"args",()=>{this.b.emit("("),e.slice(1).forEach((n,i)=>{if(i>0)this.b.emit(", ");this.callArg(n)}),this.b.emit(")")})});return}let t=e[0][1],r=Ce(t);this.mark(e,"$self",()=>{this.b.emit(r?"await new ":"await "),this.mark(e[0],"$self",()=>{if(r)this.mark(e[0],"target",()=>this.rubyNewTarget(t));else this.head(e[0],"target",t)}),this.mark(e,"args",()=>{this.b.emit("("),e.slice(1).forEach((n,i)=>{if(i>0)this.b.emit(", ");this.callArg(n)}),this.b.emit(")")})});return}if(y(e[0])&&e[0][0]==="."&&e[0].length===3&&e[0][2]==="new"){this.mark(e,"$self",()=>{this.b.emit("new "),this.rubyNewTarget(e[0]),this.mark(e,"args",()=>{this.b.emit("("),e.slice(1).forEach((t,r)=>{if(r>0)this.b.emit(", ");this.callArg(t)}),this.b.emit(")")})});return}this.chain(e)}rubyNewTarget(e){let t=e[1];this.mark(e,"object",()=>{if(y(t))this.b.emit("("),this.expr(t),this.b.emit(E.optionalGuard(t)?" ?? undefined)":")");else this.expr(t)})}static MODULO="((n, d) => { n = +n; d = +d; return (n % d + d) % d; })";static LITERAL_WORDS=new Set(["true","false","null","undefined","NaN","Infinity"]);static ownKeyText(e,t){return t==="__proto__"?'["__proto__"]':e}static MEMBER_IN="((k, c) => Array.isArray(c) || typeof c === 'string' ? c.includes(k) : k in c)";floorDiv(e){this.mark(e,"$self",()=>{this.b.emit("Math.floor("),this.operand(e,"left",e[1]),this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("/")),this.b.emit(" "),this.operand(e,"right",e[2]),this.b.emit(")")})}returnGuardStatement(e,t){let r=e[2],n=typeof r==="string"?r:r[0];if(n==="return"&&this.scopes.length<=1)throw this.positionedError(r,"emitter: 'return' outside a function");if((n==="break"||n==="continue")&&this.ctrlDepth===0)throw this.positionedError(e,`emitter: '${n}' outside a loop${n==="break"?" or switch":""}`);let i=e[0],s=()=>{let a=()=>{if(t!==null)this.mark(t,"$self",()=>{this.mark(t,"target",()=>this.b.emit(t[1])),this.b.emit(" "),this.mark(t,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.mark(t,"value",()=>this.expr(e[1]))});else this.mark(e,"left",()=>this.expr(e[1]))},o=t!==null||E.jsTier(e[1])!=="primary";if(i==="||")if(this.b.emit("!"),o)this.b.emit("("),a(),this.b.emit(")");else a();else if(i==="??"){if(o)this.b.emit("("),a(),this.b.emit(")");else a();this.b.emit(" == null")}else if(o&&t!==null)this.b.emit("("),a(),this.b.emit(")");else a()};this.mark(e,"$self",()=>{this.b.emit("if ("),s(),this.b.emit(") ");let a=()=>{if(this.b.emit(n),y(r)&&r.length>1)this.b.emit(" "),this.mark(r,"value",()=>{if(r[0]==="return"&&E.needsGrouping(r[1],"return"))this.b.emit("("),this.expr(r[1]),this.b.emit(")");else this.expr(r[1])})};if(typeof r==="string")a();else this.mark(r,"$self",a);this.b.emit(";")})}compoundTarget(e,t,r){if(this.checkExportedConstWrite(e,t),this.repeatSafeValue(t))return this.mark(e,"target",()=>this.withTarget(()=>this.expr(t))),t;if(y(t)&&(t[0]==="."||t[0]==="[]")&&t.length===3){let n=t[1];if(!this.repeatSafeValue(n))n=this.loopTempName("_ref"),this.temps.used.add(n),this.b.emit(`const ${n} = `),this.expr(t[1]),this.b.emit(`; +${" ".repeat(r)}`);let i;if(t[0]==="[]"){let s=t[2];if(!this.repeatSafeValue(s)){let a=this.loopTempName("_key");this.temps.used.add(a),this.b.emit(`const ${a} = `),this.expr(s),this.b.emit(`; +${" ".repeat(r)}`),s=a}i=["[]",n,s]}else i=[".",n,t[2]];return this.mark(e,"target",()=>this.expr(i)),i}throw this.positionedError(e,`emitter: ${e[0]} needs a stable target — a plain name or member/index chain (an optional chain has no reference to write back to)`)}static sliceTarget(e){return y(e)&&e[0]==="[]"&&e.length===3&&y(e[2])&&(e[2][0]===".."||e[2][0]==="...")&&e[2].length===3?e:null}sliceAssignStatement(e){let[,t,r]=e,[,n,i]=t,[s,a,o]=i,l=(f)=>E.isIntegerLiteral(f)?parseInt(f.replace(/_/g,""),10):null,c=(f)=>typeof f==="string";for(let f of[a,o])if(y(f)&&f[0]==="-"&&f.length===2&&E.isIntegerLiteral(f[1]))throw this.positionedError(e,"emitter: a slice assignment cannot count from the end — `splice` takes a count, not a negative index; open the range instead (`a[i..] = v`) or compute the bound from `a.length`");let h=(f)=>{if(c(f))this.expr(f);else this.b.emit("("),this.expr(f),this.b.emit(")")};this.mark(e,"$self",()=>{this.mark(e,"target",()=>this.mark(t,"$self",()=>{this.head(t,"object",n),this.b.emit(".splice("),this.mark(t,"key",()=>{if(a===null)this.b.emit("0");else h(a);if(this.b.emit(", "),o===null)this.b.emit("Infinity");else if(l(o)!==null&&(a===null||l(a)!==null))this.b.emit(String(l(o)-(a===null?0:l(a))+(s===".."?1:0)));else{if(h(o),a!==null)this.b.emit(" - "),h(a);if(s==="..")this.b.emit(" + 1")}})})),this.mark(e,"operator",()=>{});let f=y(r)&&r[0]==="array"&&r.slice(1).every((u)=>!(y(u)&&u[0]==="...")&&u!==",");this.mark(e,"value",()=>{if(f)r.slice(1).forEach((u)=>{this.b.emit(", "),this.callArg(u)});else this.b.emit(", ...[].concat("),this.expr(r),this.b.emit(")")}),this.b.emit(")")})}methodAssignStatement(e,t){let[,r,n]=e,i=n;while(y(i)){let l=E.chainHeadSlot(i);if(l===null)break;i=i[l]}let s=y(i)?this.stores.idOf(i):null,a=s!==null?this.stores.node(s)?.semanticKind:null;if(!(y(i)&&typeof i[0]==="string"&&/^[A-Za-z_$][\w$]*$/.test(i[0])&&(a==="call"||a==null&&E.jsTier(i)==="primary")))throw this.positionedError(e,"emitter: `.=` re-binds its target to a METHOD CALL on itself — the right side must be a call chain (`x .= trim()`)");this.mark(e,"$self",()=>{let l=this.compoundTarget(e,r,t),c=(f)=>{if(f===i)return[[".",l,i[0]],...i.slice(1)];let u=E.chainHeadSlot(f),d=f.slice();return d[u]=c(f[u]),d};this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" ");let h=typeof l==="string"?this.bindingNameSpan(e,"target",l):null;if(h!==null)this.primitiveReuse={name:l,span:h.span};this.mark(e,"value",()=>this.expr(c(n))),this.primitiveReuse=null})}taggedTemplate(e){this.mark(e,"$self",()=>{let t=e[1];this.mark(e,"tag",()=>{if(E.needsGrouping(t,"head"))this.b.emit("("),this.expr(t),this.b.emit(")");else this.expr(t)});let r=e[2];this.mark(e,"str",()=>{if(typeof r==="string")if(r[0]==="`")this.b.emit(r);else this.b.emit("`"+E.escapeTemplate(r.slice(1,-1).replace(/\\"/g,'"'))+"`");else this.expr(r)})})}mapLiteral(e){this.mark(e,"$self",()=>{let t=e.slice(1);if(t.length===0){this.b.emit("new Map()");return}this.b.emit("new Map(["),t.forEach((r,n)=>{if(n>0)this.b.emit(", ");if(y(r)&&r[0]==="..."&&r.length===2){this.mark(r,"$self",()=>{this.b.emit("..."),this.expr(r[1])});return}if(!y(r)||r[0]!==":"||r.length!==3)throw this.positionedError(y(r)?r:e,"emitter: a map literal takes explicit `key: value` pairs — shorthand has no Map reading");this.mark(r,"$self",()=>{this.b.emit("[");let i=r[1];this.mark(r,"key",()=>{if(typeof i==="string"&&/^[A-Za-z_$][\w$]*$/.test(i)&&i!=="true"&&i!=="false"&&i!=="null"&&i!=="undefined")this.b.emit('"'),this.emitPrimitive(i),this.b.emit('"');else if(y(i)&&i[0]==="dynamicKey")this.expr(i[1]);else this.expr(i)}),this.b.emit(", "),this.mark(r,"value",()=>this.expr(r[2])),this.b.emit("]")})}),this.b.emit("])")})}matchReceiverClose(){this.b.emit(")"),this.b.emit(".match(")}regexIndex(e,t,r,n){this.mark(e,"$self",()=>{if(this.b.emit(`((_ = ${this.runtimeName("toMatchable")}(`),this.mark(e,"object",()=>this.expr(t)),this.matchReceiverClose(),this.mark(e,"key",()=>this.b.emit(r)),this.b.emit(")) && _["),n===null)this.b.emit("0");else this.mark(e,"capture",()=>this.expr(n));this.b.emit("])")})}static isMatchWrite(e){if(!y(e))return!1;if(e[0]==="=~"&&e.length===3)return!0;if(e[0]==="regex-index"&&e.length===4)return!0;return e[0]==="[]"&&e.length===3&&typeof e[2]==="string"&&e[2][0]==="/"}static paramMatchWrite(e){if(!y(e)||T1(e)||k1(e[0]))return null;if(E.isMatchWrite(e))return e;for(let t of e){let r=E.paramMatchWrite(t);if(r!==null)return r}return null}matchOp(e){if(y(e[1])&&e[1][0]==="=~"&&!e[1].parenthesized)throw this.positionedError(e,"emitter: `=~` does not chain — `a =~ b =~ c` would match the first match RESULT against the second pattern (parenthesize: `(a =~ b) =~ c`, or split the matches)");let t=e[2];this.mark(e,"$self",()=>{this.b.emit(`(_ = ${this.runtimeName("toMatchable")}(`),this.mark(e,"left",()=>this.expr(e[1])),this.matchReceiverClose(),this.mark(e,"right",()=>this.expr(t)),this.b.emit("))")})}modulo(e){this.mark(e,"$self",()=>{this.b.emit(E.MODULO+"("),this.mark(e,"left",()=>this.expr(e[1])),this.b.emit(", "),this.mark(e,"right",()=>this.expr(e[2])),this.b.emit(")")})}synthCompound(e,t,r,n){let i=e[1];if(this.checkExportedConstWrite(e,i),y(i)&&(i[0]==="."||i[0]==="[]")&&i.length===3){let s=this.refPlans.get(e)??{recv:null,obj:null,key:null};if(s.obj===null&&!this.repeatSafeValue(i[1]))throw this.positionedError(e,"emitter: reference plan missing for a compound target with an impure object — a capture site the planner walk did not reach");if(s.key===null&&i[0]==="[]"&&!this.repeatSafeValue(i[2]))throw this.positionedError(e,"emitter: reference plan missing for a compound target with an impure key — a capture site the planner walk did not reach");this.mark(e,"$self",()=>{let a=s.obj!==null||s.key!==null;if(a)this.b.emit("(");if(s.obj!==null)this.b.emit(`${s.obj} = `),this.mark(i,"object",()=>this.withExpression(()=>this.expr(i[1]))),this.b.emit(", ");if(s.key!==null)this.b.emit(`${s.key} = `),this.mark(i,"key",()=>this.withExpression(()=>this.expr(i[2]))),this.b.emit(", ");let o=this.stores.alias([i[0],s.obj??i[1],s.key??i[2]],i),l=()=>this.mark(e,"target",()=>this.withTarget(()=>this.expr(o)));if(l(),this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.mark(e,"operator",()=>{this.b.emit(t),l(),this.b.emit(r),this.operand(e,"value",e[2]),this.b.emit(n)}),a)this.b.emit(")")});return}this.mark(e,"$self",()=>{let s=()=>this.mark(e,"target",()=>this.withTarget(()=>this.expr(e[1])));s(),this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.mark(e,"operator",()=>{this.b.emit(t),s(),this.b.emit(r),this.operand(e,"value",e[2]),this.b.emit(n)})})}floorDivAssign(e){this.synthCompound(e,"Math.floor("," / ",")")}moduloAssign(e){this.synthCompound(e,E.MODULO+"(",", ",")")}awaitExpr(e){this.renderSyncGuard(e),this.mark(e,"$self",()=>{this.mark(e,"operator",()=>this.b.emit("await")),this.b.emit(" "),this.operand(e,"value",e[1])})}doIife(e){let[,t]=e;this.mark(e,"$self",()=>{if(this.b.emit("("),this.mark(e,"func",()=>this.expr(t)),this.b.emit(")("),T1(t)){let r=t[1],n=r.map((s)=>{let a=E.paramCore(s);if(typeof a==="string")return()=>this.expr(a);if(y(a)&&a[0]==="default"&&typeof E.paramCore(a[1])==="string")return()=>this.expr(a[2]);throw this.positionedError(s,"emitter: do-IIFE parameters must be plain names or defaulted names — patterns and rests have no capture argument",e)}),i=r.length;while(i>0&&y(r[i-1])&&r[i-1][0]==="default")i--;n.slice(0,i).forEach((s,a)=>{if(a>0)this.b.emit(", ");s()})}this.b.emit(")")})}dammit(e){if(this.renderSyncGuard(e),Ce(e[1])){this.mark(e,"$self",()=>{this.mark(e,"operator",()=>this.b.emit("await")),this.b.emit(" new "),this.mark(e,"target",()=>this.rubyNewTarget(e[1])),this.b.emit("()")});return}this.mark(e,"$self",()=>{this.mark(e,"operator",()=>this.b.emit("await")),this.b.emit(" "),this.head(e,"target",e[1]),this.b.emit("()")})}maybeDammit(e){this.renderSyncGuard(e);let t=e[1];if(y(t)&&t[0]==="new"||Ce(t))throw this.positionedError(e,"emitter: maybe dammit has no reading on a constructor — `?!` on a construction would make the "+"constructor an optional callee; construct and await with `new X!`");this.mark(e,"$self",()=>{this.mark(e,"operator",()=>this.b.emit("await")),this.b.emit(" "),this.head(e,"callee",e[1]),this.mark(e,"operator",()=>this.b.emit("?.")),this.mark(e,"args",()=>{this.b.emit("("),e.slice(2).forEach((r,n)=>{if(n>0)this.b.emit(", ");this.expr(r)}),this.b.emit(")")})})}yieldExpr(e){if(this.renderSyncGuard(e),this.scopes.length<=1)throw this.positionedError(e,"emitter: 'yield' outside a function");this.mark(e,"$self",()=>{this.b.emit(e[0]==="yield-from"?"yield*":"yield");let t=e[0]==="yield-from"?e[1]:e[1];if(e.length>1)this.b.emit(" "),this.operand(e,"value",t)})}}var pa=(e)=>{if(!y(e))return!1;if(e[0]==="schema"&&e.length===2&&typeof e[1]==="object")return!0;return e.some(pa)},ga=(e)=>{if(!y(e))return!1;if(e[0]==="schema"&&e.length===2&&e[1]&&typeof e[1]==="object"&&e[1].kind==="model")return!0;return e.some(ga)},ba=(e,t)=>{if(!y(e))return!1;if(t(e))return!0;return e.some((r)=>ba(r,t))},ya=(e,t)=>{if(!y(e))return!1;if(t(e))return!0;return e.some((r)=>ya(r,t))},Sa=(e)=>{if(!y(e))return!1;if(e[0]==="object"&&E.objectComprehension(e)!==null)return!0;return e.some(Sa)},Ra=(e)=>{if(!y(e))return!1;if(E.isMatchWrite(e))return!0;return e.some(Ra)},pt=[{key:"intrinsics",names:["__toPropertyKey","__defineOwnDataProperty"],generatedNames:["__toPropertyKey","__defineOwnDataProperty"],url:new URL("./runtime/intrinsics.js",import.meta.url),triggers:(e,t)=>Sa(e)},{key:"vocab",names:[],url:new URL("./runtime/vocab.js",import.meta.url),triggers:()=>!1},{key:"schema",names:["__schema","SchemaError","registerCoercer"],url:new URL("./runtime/schema.js",import.meta.url),requires:["vocab"],triggers:(e,t)=>pa(e)},{key:"duckdb",names:[],url:new URL("./runtime/duckdb.js",import.meta.url),triggers:()=>!1},{key:"orm",names:["schema","__schemaSetAdapter"],url:new URL("./runtime/orm.js",import.meta.url),requires:["schema","duckdb","vocab"],triggers:(e,t)=>ga(e)},{key:"reactive",names:["__state","__computed","__effect","__batch","__readonly","__setErrorHandler","__handleError","__catchErrors","getEffectSignal"],generatedNames:["__state","__computed","__effect","__batch"],url:new URL("./runtime/reactive.js",import.meta.url),triggers:(e,t)=>ba(e,t.isTrigger),types:{__state:"(value: T | { value: T; read(): T }) => { value: T; read(): T; touch(): void }",__computed:"(fn: () => T) => { readonly value: T; read(): T }",__effect:"(fn: () => void | (() => void)) => () => void",__batch:"(fn: () => T) => T",__readonly:"(value: T) => T",__setErrorHandler:"(handler: ((error: any, source?: string) => void) | null) => void",__handleError:"(error: any, source?: string) => void",__catchErrors:"(fn: () => T, onError?: (e: any) => void) => T | undefined",getEffectSignal:"() => AbortSignal | null"}},{key:"stdlib",names:["abort","assert","exit","kind","noop","p","pp","pj","pr","raise","rand","sleep","toMatchable","todo","warn","zip"],generatedNames:["toMatchable"],url:new URL("./runtime/stdlib.js",import.meta.url),triggers:(e,t)=>Ra(e),types:{abort:"(msg?: string) => never",assert:"(v: any, msg?: string) => void",exit:"(code?: number) => never",kind:"(v: any) => string",noop:"() => void",p:"(...args: any[]) => void",pp:"(v: T) => T",pj:"(v: T) => T",pr:"(v: T) => T",raise:"(a: any, b?: any) => never",rand:"(a?: number, b?: number) => number",sleep:"(ms: number) => Promise",toMatchable:"(v: any) => string",todo:"(msg?: string) => never",warn:"(...args: any[]) => void",zip:"(...arrays: any[][]) => any[][]"}},{key:"components",names:["setContext","getContext","hasContext","__Component","__pushComponent","__popComponent","__clsx","__style","__lis","__reconcile","__transition","__handleComponentError","__gateBind","__detach","__reportChildFailure","__ownerFrame","__pushOwner","__popOwner","__detachRef"],generatedNames:["setContext","getContext","__Component","__pushComponent","__popComponent","__clsx","__style","__reconcile","__transition","__gateBind","__detach","__reportChildFailure","__ownerFrame","__pushOwner","__popOwner","__detachRef"],types:{__clsx:xs,__style:Ls},url:new URL("./runtime/components.js",import.meta.url),requires:"reactive",triggers:(e,t)=>ya(e,t.isComponent)}],ji=new Map,da=(e)=>{if(!ji.has(e.key)){let r=Is(e.url,"utf8").replace(/^export \{[^}]*\};\s*$/gm,"").replace(/^import \{[^}]*\} from '\.\/[a-z-]+\.js';\s*$/gm,"").trimEnd(),n=/^[ \t]*(import|export)\b.*$/m.exec(r);if(n)throw Error(`emitter: runtime '${e.key}' carries a top-level ${n[1]} that inline delivery cannot strip — `+`${JSON.stringify(n[0].trim())}. Inline bodies share one IIFE scope, so it would emit unparseable output. Use the './name.js' import form, or move the dependency into RUNTIME_TABLE 'requires'.`);ji.set(e.key,r)}return ji.get(e.key)},Fi=(e)=>e.requires==null?[]:Array.isArray(e.requires)?e.requires:[e.requires],Ee=(e,t,r=()=>!1)=>{if(t.size===0)return!1;let n=(o)=>typeof o==="string"&&t.has(o),i=(o)=>y(o)&&o.some(s),s=(o)=>{if(!y(o))return!1;let[l]=o;if(l==="object"||l==="array")return o.slice(1).some(s);if(l===null&&o.length===3)return!1;if(l===":"&&o.length===3)return y(o[1])&&a(o[1])||s(o[2]);if(l==="="&&o.length===3)return s(o[1])||a(o[2]);if((l==="rest"||l==="..."||l==="expansion")&&o.length===2)return s(o[1]);if(l==="typed-var"&&o.length===3)return s(o[1]);return a(o)},a=(o)=>{if(n(o))return!0;if(!y(o))return!1;let[l]=o;if(l==="schema"&&o.length===2&&o[1]&&typeof o[1]==="object"&&Array.isArray(o[1].entries))return!1;if(l==="."||l==="?.")return a(o[1]);if((l===":"||l==="void-pair")&&o.length===3)return y(o[1])&&a(o[1])||a(o[2]);if(T1(o))return i(o[1])||a(o[2]);if(k1(l)&&o.length===4)return i(o[2])||a(o[3]);if(r(o))return a(o[2]);if(F1.has(l)&&o.length===3)return y(o[1])&&s(o[1])||a(o[2]);if(l==="for-in"||l==="for-of"||l==="for-as")return y(o[1])&&o[1].some(s)||o.slice(2).some(a);if(l==="try")return o.slice(1).some((c)=>{if(!y(c))return!1;if(c[0]==="block")return a(c);return s(c[0])||a(c[1])});if(l==="class"&&o.length>=2)return o.slice(2).some(a);if(l==="typed-var"&&o.length===3)return y(o[1])&&a(o[1]);if((l==="cast"||l==="satisfies")&&o.length===3)return a(o[1]);if(l==="import"||l==="type-decl")return!1;return o.some(a)};return a(e)},M3=(e,t)=>{let r=[],n=(i,s,a=[])=>{let o=(f)=>E.isReactiveDeclIn(s,f)||E.isEffectDeclIn(s,f)||E.isReadonlyDeclIn(s,f)||E.isGateDeclIn(s,f),l=(f)=>E.isReactiveDeclIn(s,f)||E.isEffectDeclIn(s,f),c=(f)=>E.isComponentDeclIn(s,f);r.push({tree:i,atoms:a,isDecl:o,isTrigger:l,isComponent:c});let h=(f)=>{if(!y(f))return;if(f[0]==="schema"&&f.length===2&&f[1]&&typeof f[1]==="object"&&Array.isArray(f[1].entries)){for(let{entry:u,tokens:d,value:p}of E.schemaBodies(f[1])){let m=e.subParse(d);if(m.stmts.length)n(["program",...m.stmts],m.stores,p?[]:e.schemaBodyParams(u).map((g)=>g.name))}return}f.forEach(h)};h(i)};return n(t,e.stores),r},j3=(e,t)=>{let r=new Set,n=(s)=>{for(let a of e.patternNames(s,[],!0))r.add(a)},i=(s,a)=>{if(!y(s))return;let[o]=s;if(e.isModuleImport(s)){for(let l of E.importedNames([s]))r.add(l);return}if(T1(s)){if(y(s[1]))for(let l of s[1])n(l);i(s[2],a);return}if(k1(o)&&s.length===4){if(typeof s[1]==="string")r.add(s[1]);if(y(s[2]))for(let l of s[2])n(l);i(s[3],a);return}if(o==="class"){if(typeof s[1]==="string")r.add(s[1]);for(let l of s.slice(2)){let c=y(l)&&l[0]==="block"?l.slice(1):[l];for(let h of c)if(y(h)&&k1(h[0])&&h.length===4){if(y(h[2]))for(let f of h[2])n(f);i(h[3],a)}else i(h,a)}return}if(o==="enum"){if(typeof s[1]==="string")r.add(s[1]);for(let l of s.slice(2))i(l,a);return}if(a(s)){if(typeof s[1]==="string")r.add(s[1]);else if(y(s[1]))n(s[1]);i(s[2],a);return}if((F1.has(o)||o==="void-assign")&&s.length>=2){if(typeof s[1]==="string")r.add(s[1]);else if(E.isPattern(s[1]))n(s[1])}if((o==="for-in"||o==="for-of"||o==="for-as")&&y(s[1]))for(let l of s[1])n(l);if(o==="try"){for(let l of s.slice(2))if(y(l)&&l.length===2&&E.isPattern(l[0]))n(l[0])}for(let l of s)i(l,a)};for(let{tree:s,atoms:a,isDecl:o}of t){i(s,o);for(let l of a)n(l)}return r},F3=(e,t)=>{let r=t.slice(1),n=new Set(e.hoistTargets(r).map(([a])=>a)),i=r.filter((a)=>e.isModuleImport(a));for(let a of E.importedNames(i))n.add(a);for(let a of e.collectReactiveNames(r))n.add(a);for(let a of e.collectEffectHandles(r))n.add(a);for(let a of e.collectReadonlyNames(r))n.add(a);let s=(a)=>{if(!y(a))return;if(a[0]==="enum"&&typeof a[1]==="string")n.add(a[1]);if(a[0]==="class"&&typeof a[1]==="string")n.add(a[1]);if(k1(a[0])&&a.length===4&&typeof a[1]==="string")n.add(a[1]);if((a[0]==="="||a[0]==="void-assign")&&typeof a[1]==="string")n.add(a[1])};for(let a of r)if(s(a),y(a)&&a[0]==="export"&&y(a[1]))s(a[1]);return n},ma=new Set(["plain","state","computed","effect","readonly","import","class","def","enum"]),B3=(e)=>{if(e==null)return[];if(!Array.isArray(e))throw Error(`emitter: ambientBindings must be an array of {name, kind}; got ${typeof e}`);let t=new Set;for(let r of e){if(r===null||typeof r!=="object"||!Z1(r.name))throw Error(`emitter: ambientBindings entries are {name, kind} with an identifier name; got ${JSON.stringify(r)}`);if(!ma.has(r.kind))throw Error(`emitter: ambientBindings kind '${r.kind}' for '${r.name}' is not a binding kind — expected one of ${[...ma].join(", ")}`);if(t.has(r.name))throw Error(`emitter: ambientBindings names '${r.name}' twice — one binding per name`);t.add(r.name)}return e},U3=(e,t,r)=>{let n=t.slice(1),i=new Map,s=(c,h)=>{if(typeof c==="string"&&!i.has(c))i.set(c,h)},a=(c)=>{if(!r.has(c))s(c,"plain")};for(let c of n)if(e.isModuleImport(c))for(let h of E.importedNames([c]))s(h,"import");let o=e.collectComputedNames(n);for(let c of e.collectReactiveNames(n))s(c,o.has(c)?"computed":"state");for(let c of e.collectEffectHandles(n))s(c,"effect");for(let c of e.collectReadonlyNames(n))s(c,"readonly");let l=(c,h)=>{if(!y(c))return;if(c[0]==="enum"&&typeof c[1]==="string")s(c[1],"enum");if(c[0]==="class"&&typeof c[1]==="string")s(c[1],"class");if(k1(c[0])&&c.length===4&&typeof c[1]==="string")s(c[1],"def");if((c[0]==="="||c[0]==="void-assign")&&typeof c[1]==="string")if(h)s(c[1],"plain");else a(c[1])};for(let c of n)if(l(c,!1),y(c)&&c[0]==="export"&&y(c[1]))l(c[1],!0);for(let[c,,h]of e.hoistTargets(n))if(h==="target")a(c);return[...i].map(([c,h])=>({name:c,kind:h}))},Ui={field:"field",computed:"computed",derived:"derived",method:"method"};function V3(e,t,r,n){let i=[],s=(l)=>l.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");for(let l of t.story?.decl?.descriptor?.entries??[]){let c=l.tag==="union-member"?{name:l.name,start:l.start}:l.tag==="directive"&&l.name==="mixin"&&l.argTokens?.[0]?.kind==="IDENTIFIER"?{name:l.argTokens[0].value,start:l.argTokens[0].start}:null;if(c!==null&&typeof c.start==="number"){let f=new RegExp(`(= |\\| |& )(${s(c.name)})(?= \\||;| &)`).exec(r);if(f!==null)i.push({at:f.index+f[1].length,len:c.name.length,start:c.start,end:c.start+c.name.length});continue}if((Ui[l.tag]??null)===null||typeof l.start!=="number")continue;let h=new RegExp(`([{;] )((?:readonly )?)(${s(l.name)})(\\??: )`).exec(r);if(h===null)continue;if(i.push({at:h.index+h[1].length+h[2].length,len:l.name.length,start:l.start,end:l.start+l.name.length}),l.tag==="field"&&Array.isArray(l.typeSpan)&&e.b.source!==null){let f=/[A-Za-z_$][\w$]*/.exec(e.b.source.slice(l.typeSpan[0],l.typeSpan[1]));if(f!==null){let u=h.index+h[0].length,d=r.indexOf(";",u)<0?r.length:r.indexOf(";",u)+1,p=new RegExp(`(?u[1]))];for(let u of h){if(c.has(u))continue;let d=a[0]+1,p=-1;while(d>0){let m=l.lastIndexOf(u,d-1);if(m<0)break;if(!/[\w$]/.test(l[m-1]??" ")&&!/[\w$]/.test(l[m+u.length]??" ")){p=m;break}d=m}if(p>=0)c.set(u,[p,p+u.length])}let f=(u,d)=>i.some((p)=>ul.at-c.at);let o=0;for(let l of i){if(l.ate.b.emit(r.slice(l.at,l.at+l.len)));else e.b.emit(r.slice(l.at,l.at+l.len));o=l.at+l.len}e.b.emit(r.slice(o))}function W3(e,t,r,n){let i=t.story?.decl?.descriptor?.entries??null;if(i===null)return;let s=(a)=>a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");for(let a of i){let o=a.tag==="union-member"?{name:a.name,start:a.start}:a.tag==="directive"&&a.name==="mixin"&&a.argTokens?.[0]?.kind==="IDENTIFIER"?{name:a.argTokens[0].value,start:a.argTokens[0].start}:null;if(o===null||typeof o.start!=="number")continue;let l=new RegExp(`(= |\\| |& )(${s(o.name)})(?= \\||;| &)`).exec(r);if(l===null)continue;e.intrinsics.push({start:o.start,end:o.start+o.name.length,kind:"schema",label:null,name:o.name,gen:n+l.index+l[1].length})}for(let a of i){let o=Ui[a.tag]??null;if(o===null||typeof a.start!=="number")continue;let l=s(a.name),c=new RegExp(`([{;] )((?:readonly )?)(${l})(\\??: )`).exec(r);if(c===null)continue;let h=n+c.index+c[1].length+c[2].length;if(e.intrinsics.push({start:a.start,end:a.start+a.name.length,kind:"schema",label:o,name:a.name,gen:h,optional:c[4].startsWith("?")}),a.tag==="field"&&a.typeSpan!==null&&a.typeSpan!==void 0)e.intrinsics.push({start:a.typeSpan[0],end:a.typeSpan[1],kind:"schema",label:null,name:a.name,gen:h+c[3].length+c[4].length})}}function Ea(e,{source:t="",runtimeDelivery:r="none",face:n="js",pins:i=null,strict:s=!1,script:a=!1,browserModule:o=!1,dataPayload:l=null,ambientBindings:c=null,repl:h=!1,hmr:f=!1,tolerant:u=!1,modulePath:d=null,appStashSpec:p=null,routesUnion:m=null,routeParams:g=null}={}){if(!e.sexpr)throw Error("emitter: cannot emit a failed parse");if(n!=="js"&&n!=="ts")throw Error(`emitter: unknown face '${n}' — expected 'js' (the shipping emission) or 'ts' (the editor face)`);let b=B3(c),S=new ar(e.stores),w=new Re(S,{source:t,primitives:n==="ts"}),R=new E(S,w,{face:n,pins:i,strict:s,script:a,browserModule:o,repl:h,hmr:f,tolerant:u,modulePath:d,appStashSpec:p,routesUnion:m,routeParams:g});if(R.dataPayload=l,r!=="none"&&r!=="import"&&r!=="inline")throw Error(`emitter: unknown runtimeDelivery '${r}' — expected 'none', 'import', or 'inline'`);if(R.collectTsDirectives(e.sexpr,e.trivia??[],t),R.collectTypeOnlyImports(e.sexpr,t),R.collectAppAccessors(e.sexpr),R.tsNocheck!==null){let k=S.idOf(e.sexpr),v=R.tsNocheck;w.tsOnly(()=>{let j=()=>w.emit("//"+v.text.slice(1));if(k!==null)w.markSpan(k,"tsDirective",v.start,v.end,j);else j();w.emit(` +`)})}let T=M3(R,e.sexpr),F=(k)=>{if(typeof k==="string")R.temps.used.add(k);else if(y(k))for(let v of k)F(v)};for(let{tree:k,atoms:v}of T)F(k),F(v);for(let{name:k}of b)R.temps.used.add(k);let L=j3(R,T);for(let{name:k}of b)L.add(k);let C=[...L];for(let k of pt)for(let v of k.generatedNames??[])R.runtimeAliases.set(v,E.mintName(v,L));let N=F3(R,e.sexpr),D=U3(R,e.sexpr,new Set(b.map(({name:k})=>k)));for(let{name:k}of b)N.add(k);let O=new Set;for(let k of pt){let v=new Set(k.names.filter((j)=>!N.has(j)));if(T.some(({tree:j,isDecl:X,isTrigger:x,isComponent:Z})=>k.triggers?.(j,{isTrigger:x,isComponent:Z})||Ee(j,v,X)))O.add(k.key)}for(let k=!0;k;){k=!1;for(let v of pt){if(!O.has(v.key))continue;for(let j of Fi(v))if(!O.has(j))O.add(j),k=!0}}if(r!=="none"){let k=pt.filter((X)=>O.has(X.key)),v=[];if(r==="import")for(let X of k)v.push({runtimes:[X],names:X.names,imp:X.url.pathname});else{let X=new Set(k.flatMap((x)=>Fi(x)));for(let x of k){if(X.has(x.key))continue;let Z=[],U=(Q)=>{if(Z.includes(Q))return;for(let l1 of Fi(Q)){let I=pt.find((s1)=>s1.key===l1);if(I)U(I)}Z.push(Q)};if(U(x),Z.length===1){v.push({runtimes:[x],names:x.names,body:da(x),types:x.types});continue}let r1=Z.some((Q)=>Q.types)?Object.assign({},...Z.map((Q)=>Q.types)):void 0;v.push({runtimes:Z,names:Z.flatMap((Q)=>Q.names),body:Z.map((Q)=>da(Q)).join(` `),types:r1})}}let j=S.idOf(e.sexpr);for(let X of v){let x=new Set(X.runtimes.flatMap((r1)=>r1.generatedNames??[])),Z=X.names.filter((r1)=>x.has(r1)||!N.has(r1)).map((r1)=>({name:r1,local:x.has(r1)?R.runtimeAliases.get(r1):r1}));if(Z.length===0)continue;let U=w.offset;if(X.imp){w.emit(`import { ${Z.map(({name:Q,local:l1})=>Q===l1?Q:`${Q} as ${l1}`).join(", ")} } from `);let r1=w.offset;w.emit(JSON.stringify(X.imp)),R.importSpans.push({start:r1,end:w.offset,specifier:JSON.stringify(X.imp)}),w.emit(`; -`)}else{w.emit(`const { ${Z.map(({name:Q,local:l1})=>Q===l1?Q:`${Q}: ${l1}`).join(", ")} }`);let r1=s==="ts"&&X.types?`{ ${Z.map(({name:Q})=>`${Q}: ${X.types[Q]??"any"}`).join("; ")} }`:null;if(r1!==null&&r1.includes("__RipClassValue"))R._needsClassValue=!0;if(r1!==null&&r1.includes("__RipCSSProperties"))R._needsCssProperties=!0;if(w.emit(" = "),r1)w.tsOnly(()=>w.emit("("));if(w.emit(`(() => { +`)}else{w.emit(`const { ${Z.map(({name:Q,local:l1})=>Q===l1?Q:`${Q}: ${l1}`).join(", ")} }`);let r1=n==="ts"&&X.types?`{ ${Z.map(({name:Q})=>`${Q}: ${X.types[Q]??"any"}`).join("; ")} }`:null;if(r1!==null&&r1.includes("__RipClassValue"))R._needsClassValue=!0;if(r1!==null&&r1.includes("__RipCSSProperties"))R._needsCssProperties=!0;if(w.emit(" = "),r1)w.tsOnly(()=>w.emit("("));if(w.emit(`(() => { ${X.body} return { ${X.names.join(", ")} }; })()`),r1)w.tsOnly(()=>w.emit(` as ${r1})`));w.emit(`; -`)}if(j!==null)w.rows.push({nodeId:j,role:"runtime",mappingKind:"synthetic",sourceStart:0,sourceEnd:0,generatedStart:U,generatedEnd:w.offset,fileId:0})}}let W=null;if(s==="ts"){let k=null;try{k=$s(e.sexpr,w.source,E.importedNames(e.sexpr.slice(1).filter((v)=>R.isModuleImport(v))))}catch(v){if(v instanceof _i){let j=Error(`emitter: ${v.message}`),X=v.node!==null?S.idOf(v.node):null,x=X!==null?S.selfSpan(X):null;if(x)j.start=x[0],j.end=x[1];else if(v.start!==null)j.start=v.start,j.end=v.start;throw j}throw v}if(W=k,k!==null){let v=S.idOf(e.sexpr),j=w.offset;if(w.tsOnly(()=>w.emit(k.intrinsicLines.join(` +`)}if(j!==null)w.rows.push({nodeId:j,role:"runtime",mappingKind:"synthetic",sourceStart:0,sourceEnd:0,generatedStart:U,generatedEnd:w.offset,fileId:0})}}let W=null;if(n==="ts"){let k=null;try{k=$s(e.sexpr,w.source,E.importedNames(e.sexpr.slice(1).filter((v)=>R.isModuleImport(v))))}catch(v){if(v instanceof _i){let j=Error(`emitter: ${v.message}`),X=v.node!==null?S.idOf(v.node):null,x=X!==null?S.selfSpan(X):null;if(x)j.start=x[0],j.end=x[1];else if(v.start!==null)j.start=v.start,j.end=v.start;throw j}throw v}if(W=k,k!==null){let v=S.idOf(e.sexpr),j=w.offset;if(w.tsOnly(()=>w.emit(k.intrinsicLines.join(` `)+` `)),v!==null)w.rows.push({nodeId:v,role:"schemaTypes",mappingKind:"synthetic",sourceStart:0,sourceEnd:0,generatedStart:j,generatedEnd:w.offset,fileId:0});R.schemaStories=new Map;let X=[...k.stories.map((x)=>({node:x.decl.node,exported:x.decl.exported,story:x,lines:x.faceAliasLines??x.aliasLines})),...k.derivations.map((x)=>({node:x.decl.node,exported:x.decl.exported,story:null,lines:x.aliasLines}))];X.forEach((x,Z)=>{if(x.story!==null)R.schemaStories.set(x.node,x.story);let U=x.exported?"export ":"",r1=S.idOf(x.node),Q=Z===X.length-1?` `:` `;w.tsOnly(()=>{let l1=()=>{let I=w.offset,s1=x.lines.map((e1)=>`${U}${e1}`).join(` -`);U3(R,x,s1,r1),V3(R,x,s1,I)};if(r1!==null)w.mark(r1,"$self",l1);else l1();w.emit(Q)})})}}if(R.tsDirectivesArmed=!0,b.length>0){let k=new Set,v=new Set,j=new Set,X=new Set;for(let{name:x,kind:Z}of b){if(Z==="state"||Z==="computed")k.add(x);else X.add(x);if(Z==="computed")v.add(x);if(Z==="readonly")j.add(x)}R.rframes.push({reactive:k,computed:v,bound:X,ambientReadonly:j}),R.scopes.push(new Set(b.map(({name:x})=>x)))}if(R.program(e.sexpr),b.length>0)R.rframes.pop(),R.scopes.pop();if(s==="ts"&&Array.isArray(e.sexpr)){let k=(()=>{for(let v of e.sexpr){if(!Array.isArray(v)||v[0]!=="export"||!Array.isArray(v[1]))continue;let j=v[1];if(j[0]==="="){if(j[1]==="stash")return"stash";continue}if(!j.every((x)=>typeof x==="string"&&/^[A-Za-z_$][\w$]*$/.test(x)||Array.isArray(x)&&x.length===2&&typeof x[0]==="string"&&typeof x[1]==="string"))continue;for(let x of j){if(x==="stash")return"stash";if(Array.isArray(x)&&x[1]==="stash")return x[0]}}return null})();if(k!==null)R.stashKeys=E.stashKeysOf(e.sexpr,k),w.tsOnly(()=>{let v=/^(?:export\s+)?(stash)\s*=/m.exec(w.source??""),j=v!==null?S.idOf(e.sexpr):null;if(w.emit(` +`);V3(R,x,s1,r1),W3(R,x,s1,I)};if(r1!==null)w.mark(r1,"$self",l1);else l1();w.emit(Q)})})}}if(R.tsDirectivesArmed=!0,b.length>0){let k=new Set,v=new Set,j=new Set,X=new Set;for(let{name:x,kind:Z}of b){if(Z==="state"||Z==="computed")k.add(x);else X.add(x);if(Z==="computed")v.add(x);if(Z==="readonly")j.add(x)}R.rframes.push({reactive:k,computed:v,bound:X,ambientReadonly:j}),R.scopes.push(new Set(b.map(({name:x})=>x)))}if(R.program(e.sexpr),b.length>0)R.rframes.pop(),R.scopes.pop();if(n==="ts"&&Array.isArray(e.sexpr)){let k=(()=>{for(let v of e.sexpr){if(!Array.isArray(v)||v[0]!=="export"||!Array.isArray(v[1]))continue;let j=v[1];if(j[0]==="="){if(j[1]==="stash")return"stash";continue}if(!j.every((x)=>typeof x==="string"&&/^[A-Za-z_$][\w$]*$/.test(x)||Array.isArray(x)&&x.length===2&&typeof x[0]==="string"&&typeof x[1]==="string"))continue;for(let x of j){if(x==="stash")return"stash";if(Array.isArray(x)&&x[1]==="stash")return x[0]}}return null})();if(k!==null)R.stashKeys=E.stashKeysOf(e.sexpr,k),w.tsOnly(()=>{let v=/^(?:export\s+)?(stash)\s*=/m.exec(w.source??""),j=v!==null?S.idOf(e.sexpr):null;if(w.emit(` export type __RipStash = typeof `),j!==null)w.markSpan(j,"identifier",v.index+v[0].indexOf("stash"),v.index+v[0].indexOf("stash")+5,()=>w.emit(k));else w.emit(k);w.emit(`; -`)})}if(s==="ts"&&R.routesUnion!==null){let k=w.code;if(/\bRoutePath\b/.test(k)&&!/\b(?:type|interface)\s+RoutePath\b/.test(k)&&!/\bimport\b[^;\n]*\bRoutePath\b/.test(k))w.tsOnly(()=>w.emit(` +`)})}if(n==="ts"&&R.routesUnion!==null){let k=w.code;if(/\bRoutePath\b/.test(k)&&!/\b(?:type|interface)\s+RoutePath\b/.test(k)&&!/\bimport\b[^;\n]*\bRoutePath\b/.test(k))w.tsOnly(()=>w.emit(` type RoutePath = ${R.routesUnion}; `))}if(R._needsAmbienceHelper===!0)w.tsOnly(()=>w.emit(` declare function __ripAmbientStash(v: T): T; `));if(R._needsRouteHelper===!0)w.tsOnly(()=>w.emit(` declare function __ripRoute(s: ${Xs(R.routesUnion,"T")}): T; -`));if(s==="ts"&&(R.domSurfaces.size>0||R._needsClassValue===!0||R._needsCssProperties===!0||R._needsRefCellHelper===!0||R._needsChildren===!0||R._restTags.size>0)){let k=Fs(R.domSurfaces.values(),{needsClassValue:R._needsClassValue===!0,needsCssProperties:R._needsCssProperties===!0,needsRefCell:R._needsRefCellHelper===!0,needsChildren:R._needsChildren===!0,extra:[...R._restTags].sort().map((v)=>`type ${Pi(v)} = ${sa(v,"face")};`)});if(k!=="")w.tsOnly(()=>w.emit(k))}if(R._needsSourceKeyHelper===!0){let k=`keyof import(${JSON.stringify(R.appStashSpec)}).__RipStash & string`;w.tsOnly(()=>w.emit(` +`));if(n==="ts"&&(R.domSurfaces.size>0||R._needsClassValue===!0||R._needsCssProperties===!0||R._needsRefCellHelper===!0||R._needsChildren===!0||R._restTags.size>0)){let k=Fs(R.domSurfaces.values(),{needsClassValue:R._needsClassValue===!0,needsCssProperties:R._needsCssProperties===!0,needsRefCell:R._needsRefCellHelper===!0,needsChildren:R._needsChildren===!0,extra:[...R._restTags].sort().map((v)=>`type ${Ci(v)} = ${sa(v,"face")};`)});if(k!=="")w.tsOnly(()=>w.emit(k))}if(R._needsSourceKeyHelper===!0){let k=`keyof import(${JSON.stringify(R.appStashSpec)}).__RipStash & string`;w.tsOnly(()=>w.emit(` declare function __ripSourceKey(s: T): T; `))}if(R._needsNarrowHelper===!0)w.tsOnly(()=>w.emit(` declare function __ripNarrow(v: T): asserts v is NonNullable; `));if(R._needsNarrowedHelper===!0)w.tsOnly(()=>w.emit(` declare function __ripNarrowed(c: T): { readonly value: NonNullable; read(): NonNullable }; -`));let H=[];if(s==="ts"&&y(e.sexpr)&&e.sexpr[0]==="program"){let k=/^[A-Za-z_$][A-Za-z0-9_$]*$/;for(let v of e.sexpr.slice(1)){if(!y(v)||v[0]!=="??="||v.length!==3)continue;let j=v[1];if(!y(j)||j[0]!=="."||j[1]!=="globalThis")continue;if(typeof j[2]!=="string"||!k.test(j[2]))continue;let X=new Set(["null","undefined","true","false","this"]),x=v[2];H.push({name:j[2],anchor:typeof x==="string"&&k.test(x)&&!X.has(x)?x:null})}if(H.length)w.tsOnly(()=>{for(let v of H)if(v.anchor!==null)w.emit(` +`));let H=[];if(n==="ts"&&y(e.sexpr)&&e.sexpr[0]==="program"){let k=/^[A-Za-z_$][A-Za-z0-9_$]*$/;for(let v of e.sexpr.slice(1)){if(!y(v)||v[0]!=="??="||v.length!==3)continue;let j=v[1];if(!y(j)||j[0]!=="."||j[1]!=="globalThis")continue;if(typeof j[2]!=="string"||!k.test(j[2]))continue;let X=new Set(["null","undefined","true","false","this"]),x=v[2];H.push({name:j[2],anchor:typeof x==="string"&&k.test(x)&&!X.has(x)?x:null})}if(H.length)w.tsOnly(()=>{for(let v of H)if(v.anchor!==null)w.emit(` type __ripGlobal_${v.name} = typeof ${v.anchor};`);w.emit(` declare global {`);for(let v of H)w.emit(` var ${v.name}: ${v.anchor===null?"any":`__ripGlobal_${v.name}`};`);w.emit(` } -`)})}if(s==="ts"&&!Ds(e.sexpr,(k)=>R.isModuleImport(k)))w.tsOnly(()=>w.emit(` +`)})}if(n==="ts"&&!Ds(e.sexpr,(k)=>R.isModuleImport(k)))w.tsOnly(()=>w.emit(` export {}; -`));let G=[];for(let{name:k,node:v,path:j,key:X}of R.pinnables){if(X===null)continue;let x=S.idOf(v);if(x===null)continue;let Z=w.rows.find((r1)=>r1.nodeId===x&&r1.role==="$self"),U=w.rows.find((r1)=>r1.nodeId===x&&r1.role==="value");if(!Z||!U)continue;G.push({name:k,key:X,path:j??"",stmtGen:[Z.generatedStart,Z.generatedEnd],valueGen:[U.generatedStart,U.generatedEnd]})}return{code:w.code,mappings:w.rows,vocabulary:R.vocabulary,silences:R.silences,memberDecls:R.memberDecls,narrowedDecls:R.narrowedDecls,enums:R.enums,importedRefs:R.importedRefs,stores:S,runtimes:O,bindings:D,bindingNames:P,replResultName:R.replResultName,replImportResolver:R.replImportResolver,tsRegions:w.tsRegions,echoSpans:w.echoSpans,globalDecls:H.map((k)=>k.name),pinnables:G,mutables:R.mutables,classDecls:R.classDecls,pinSpans:R.pinSpans,loopVars:R.loopVars,readLoopVarDecls:R.loopVarDecls.filter((k)=>k.owner.readVars.has(k.which)).map((k)=>k.span),attrNames:R.attrNames,routeWraps:R.routeWrapSpans,sourceKeys:R.sourceKeySpans,stashMembers:R.stashMemberSpans,stashKeys:R.stashKeys??null,memberInits:R.memberInitSites,imports:R.importSpans,intrinsics:R.intrinsics,componentUses:R.componentUses,namespaceExports:R.namespaceExports,componentNames:R.componentNames,renderPairs:R.renderPairs,kinds:R.kinds}}var ka="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",d5=new Map([...ka].map((e,t)=>[e,t])),W3=/^[$_\p{ID_Start}][$\u200C\u200D_\p{ID_Continue}]*$/u;function bt(e){let t=e<0?-e<<1|1:e<<1,r="";do{let s=t&31;if(t>>>=5,t>0)s|=32;r+=ka[s]}while(t>0);return r}function Ta({code:e,mappings:t},{source:r,file:s="output.js",sourcePath:i="input.rip"}={}){let n=new ye(r,i),a=new ye(e,s),l=(t instanceof Se?t:new Se(t)).serializableRows(),c=[],f=new Map,h=[],u=0,d=0,p=0;for(let m of l){let g=a.lineColAt(m.generatedStart),b=n.lineColAt(m.sourceStart);while(h.length<=g.line)h.push([]);let S=h[g.line],w=S.length?S[S.length-1].genCol:0,R=bt(g.col-w)+bt(0)+bt(b.line-u)+bt(b.col-d);u=b.line,d=b.col;let T=e.slice(m.generatedStart,m.generatedEnd);if(m.mappingKind==="exact"&&W3.test(T)){let F=f.get(T);if(F===void 0)F=c.length,c.push(T),f.set(T,F);R+=bt(F-p),p=F}S.push({genCol:g.col,seg:R})}return{version:3,file:s,sources:[i],sourcesContent:[r],names:c,mappings:h.map((m)=>m.map((g)=>g.seg).join(",")).join(";")}}var wa=()=>{throw Error("rip: declaration emission is unavailable in the browser")};class He extends Error{constructor(e,{path:t,start:r=null,end:s=null,line:i=null,col:n=null}={}){super(e);this.name="CompileError",this.path=t,this.start=r,this.end=s,this.line=i,this.col=n}}var H3=(e,t)=>{let{line:r,col:s}=e.lineColAt(t),i=e.lineStarts[r],n=r+1c==="\t"?"\t":" ").join("");return` ${o} | ${a} - ${" ".repeat(o.length)} | ${l}^`},Vi=(e,t,r,s,i)=>{let{line:n,col:a}=e.lineColAt(s),o=`${t}:${n+1}:${a+1}: ${r} +`));let G=[];for(let{name:k,node:v,path:j,key:X}of R.pinnables){if(X===null)continue;let x=S.idOf(v);if(x===null)continue;let Z=w.rows.find((r1)=>r1.nodeId===x&&r1.role==="$self"),U=w.rows.find((r1)=>r1.nodeId===x&&r1.role==="value");if(!Z||!U)continue;G.push({name:k,key:X,path:j??"",stmtGen:[Z.generatedStart,Z.generatedEnd],valueGen:[U.generatedStart,U.generatedEnd]})}return{code:w.code,mappings:w.rows,vocabulary:R.vocabulary,silences:R.silences,memberDecls:R.memberDecls,narrowedDecls:R.narrowedDecls,enums:R.enums,importedRefs:R.importedRefs,stores:S,runtimes:O,bindings:D,bindingNames:C,replResultName:R.replResultName,replImportResolver:R.replImportResolver,tsRegions:w.tsRegions,echoSpans:w.echoSpans,globalDecls:H.map((k)=>k.name),pinnables:G,mutables:R.mutables,classDecls:R.classDecls,pinSpans:R.pinSpans,loopVars:R.loopVars,readLoopVarDecls:R.loopVarDecls.filter((k)=>k.owner.readVars.has(k.which)).map((k)=>k.span),attrNames:R.attrNames,routeWraps:R.routeWrapSpans,sourceKeys:R.sourceKeySpans,stashMembers:R.stashMemberSpans,stashKeys:R.stashKeys??null,memberInits:R.memberInitSites,imports:R.importSpans,intrinsics:R.intrinsics,componentUses:R.componentUses,namespaceExports:R.namespaceExports,componentNames:R.componentNames,renderPairs:R.renderPairs,kinds:R.kinds}}var ka="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",g5=new Map([...ka].map((e,t)=>[e,t])),H3=/^[$_\p{ID_Start}][$\u200C\u200D_\p{ID_Continue}]*$/u;function bt(e){let t=e<0?-e<<1|1:e<<1,r="";do{let n=t&31;if(t>>>=5,t>0)n|=32;r+=ka[n]}while(t>0);return r}function Ta({code:e,mappings:t},{source:r,file:n="output.js",sourcePath:i="input.rip"}={}){let s=new ye(r,i),a=new ye(e,n),l=(t instanceof Se?t:new Se(t)).serializableRows(),c=[],h=new Map,f=[],u=0,d=0,p=0;for(let m of l){let g=a.lineColAt(m.generatedStart),b=s.lineColAt(m.sourceStart);while(f.length<=g.line)f.push([]);let S=f[g.line],w=S.length?S[S.length-1].genCol:0,R=bt(g.col-w)+bt(0)+bt(b.line-u)+bt(b.col-d);u=b.line,d=b.col;let T=e.slice(m.generatedStart,m.generatedEnd);if(m.mappingKind==="exact"&&H3.test(T)){let F=h.get(T);if(F===void 0)F=c.length,c.push(T),h.set(T,F);R+=bt(F-p),p=F}S.push({genCol:g.col,seg:R})}return{version:3,file:n,sources:[i],sourcesContent:[r],names:c,mappings:f.map((m)=>m.map((g)=>g.seg).join(",")).join(";")}}var wa=()=>{throw Error("rip: declaration emission is unavailable in the browser")};class He extends Error{constructor(e,{path:t,start:r=null,end:n=null,line:i=null,col:s=null}={}){super(e);this.name="CompileError",this.path=t,this.start=r,this.end=n,this.line=i,this.col=s}}var G3=(e,t)=>{let{line:r,col:n}=e.lineColAt(t),i=e.lineStarts[r],s=r+1c==="\t"?"\t":" ").join("");return` ${o} | ${a} + ${" ".repeat(o.length)} | ${l}^`},Vi=(e,t,r,n,i)=>{let{line:s,col:a}=e.lineColAt(n),o=`${t}:${s+1}:${a+1}: ${r} -${H3(e,s)}`;return new He(o,{path:t,start:s,end:i,line:n+1,col:a+1})},G3=(e,t)=>{let r=e.text,s=r.slice(0,t.start),i=r.slice(t.start),n=s.slice(s.lastIndexOf(` -`)+1);if(t.expected?.[0]===":"||/\?[ \t]*$/.test(s))return"a two-operand '?' is incomplete — a default for null/undefined is spelled x ?? y";if(/^\.\.\.[^\n]*\)\s*[-=]>/.test(i)&&/[(,]\s*[A-Za-z_$][\w$]*\s*$/.test(s))return"a rest parameter is spelled `...name` — the dots lead the name";if(/^for\b/.test(i)&&/^\s*return\b/.test(n))return"`return` takes one expression — parenthesize the comprehension: `return (v for v in list)`";if(/^!/.test(i)&&/\bimport\s*$/.test(s))return"an awaited dynamic import is spelled `import!('mod')` — the call parens are required";if(/^!/.test(i)&&/\)\s*$/.test(s))return"the await bang goes on the callee — `fn!()`, not `fn()!`";if(/^if\b[^\n]*\n[ \t]*then\b/.test(i))return"`then` belongs on the `if` line (`if c then …`) — or indent the body beneath the condition";return null},K3=(e,t,r)=>{let s=G3(e,r),i=s!==null?`${r.message} - (${s})`:r.message;return Vi(e,t,i,r.start,r.end)};function _a(e,{path:t="",runtimeDelivery:r="inline",face:s="js",pins:i=null,strict:n=!1,script:a=!1,browserModule:o=!1,foldProjections:l=!1,ambientBindings:c=null,repl:f=!1,tolerant:h=!1,hmr:u=!1,appStashSpec:d=null,routesUnion:p=null,routeParams:m=null}={}){if(typeof e!=="string"){let P=e===null?"null":Array.isArray(e)?"an array":`a ${typeof e}`;throw new He(`compile: source must be a string; got ${P}`,{path:t})}let g=new ye(e,t),b=null,S=e;{let P=e.split(` -`),N=P.findIndex((D)=>D==="__DATA__");if(N!==-1){let D=P.slice(N+1);b=D.length>0?D.join(` +${G3(e,n)}`;return new He(o,{path:t,start:n,end:i,line:s+1,col:a+1})},K3=(e,t)=>{let r=e.text,n=r.slice(0,t.start),i=r.slice(t.start),s=n.slice(n.lastIndexOf(` +`)+1);if(t.expected?.[0]===":"||/\?[ \t]*$/.test(n))return"a two-operand '?' is incomplete — a default for null/undefined is spelled x ?? y";if(/^\.\.\.[^\n]*\)\s*[-=]>/.test(i)&&/[(,]\s*[A-Za-z_$][\w$]*\s*$/.test(n))return"a rest parameter is spelled `...name` — the dots lead the name";if(/^for\b/.test(i)&&/^\s*return\b/.test(s))return"`return` takes one expression — parenthesize the comprehension: `return (v for v in list)`";if(/^!/.test(i)&&/\bimport\s*$/.test(n))return"an awaited dynamic import is spelled `import!('mod')` — the call parens are required";if(/^!/.test(i)&&/\)\s*$/.test(n))return"the await bang goes on the callee — `fn!()`, not `fn()!`";if(/^if\b[^\n]*\n[ \t]*then\b/.test(i))return"`then` belongs on the `if` line (`if c then …`) — or indent the body beneath the condition";return null},Y3=(e,t,r)=>{let n=K3(e,r),i=n!==null?`${r.message} + (${n})`:r.message;return Vi(e,t,i,r.start,r.end)};function _a(e,{path:t="",runtimeDelivery:r="inline",face:n="js",pins:i=null,strict:s=!1,script:a=!1,browserModule:o=!1,foldProjections:l=!1,ambientBindings:c=null,repl:h=!1,tolerant:f=!1,hmr:u=!1,appStashSpec:d=null,routesUnion:p=null,routeParams:m=null}={}){if(typeof e!=="string"){let C=e===null?"null":Array.isArray(e)?"an array":`a ${typeof e}`;throw new He(`compile: source must be a string; got ${C}`,{path:t})}let g=new ye(e,t),b=null,S=e;{let C=e.split(` +`),N=C.findIndex((D)=>D==="__DATA__");if(N!==-1){let D=C.slice(N+1);b=D.length>0?D.join(` `)+` -`:"",S=P.slice(0,N).join(` -`)}}let w=nr();w.lexer=As(t,{tolerant:h});let R;try{R=w.parse(S,{primitives:s==="ts",tolerant:h})}catch(P){if(typeof P.start!=="number")throw P;throw Vi(g,t,P.reason??P.message,P.start,P.end)}if(R.diagnostics.length>0&&!(h&&R.sexpr!=null))throw K3(g,t,R.diagnostics[0]);if(l)Zn(R.sexpr);let T;try{T=Ea(R,{source:e,runtimeDelivery:r,face:s,pins:i,strict:n,script:a,browserModule:o,dataPayload:b,ambientBindings:c,repl:f,hmr:u,tolerant:h,modulePath:t,appStashSpec:d,routesUnion:p,routeParams:m})}catch(P){if(typeof P.start==="number")throw Vi(g,t,P.message,P.start,P.end);if(P instanceof RangeError)throw new He(`${t}: emitter: the program nests too deeply to emit (the engine stack was exhausted) — restructure the deepest expression or block`,{path:t});throw new He(`${t}: ${P.message}`,{path:t})}let F=Ta(T,{source:e,sourcePath:t,file:`${t}.js`}),L=null;return{parseDiagnostics:R.diagnostics,code:T.code,map:F,stores:T.stores,tokens:R.tokens??null,mappings:new Se(T.mappings),vocabulary:T.vocabulary??[],silences:T.silences??[],memberDecls:T.memberDecls??[],narrowedDecls:T.narrowedDecls??[],runtimes:T.runtimes,bindings:T.bindings,bindingNames:T.bindingNames,replResultName:T.replResultName,replImportResolver:T.replImportResolver,tsRegions:T.tsRegions,echoSpans:T.echoSpans??[],globalDecls:T.globalDecls??[],pinnables:T.pinnables,pinSpans:T.pinSpans??[],mutables:T.mutables,enums:T.enums,classDecls:T.classDecls,loopVars:T.loopVars,readLoopVarDecls:T.readLoopVarDecls,attrNames:T.attrNames,routeWraps:T.routeWraps,memberInits:T.memberInits,sourceKeys:T.sourceKeys,stashMembers:T.stashMembers,stashKeys:T.stashKeys,renderPairs:T.renderPairs,kinds:T.kinds,intrinsics:T.intrinsics??[],componentUses:T.componentUses??[],namespaceExports:T.namespaceExports??[],componentNames:T.componentNames??[],importedRefs:T.importedRefs,imports:T.imports,trivia:R.trivia??[],get declarations(){if(L===null)try{L=wa({sexpr:R.sexpr,stores:T.stores,source:e})}catch(P){throw new He(`${t}: ${P.message}`,{path:t})}return L}}}var pr={};Fe(pr,{__defineOwnDataProperty:()=>J3,__toPropertyKey:()=>X3});var{defineProperty:Y3,getOwnPropertyNames:z3,getOwnPropertySymbols:q3}={}.constructor,X3=(e)=>{let t={[e]:0},r=z3(t);return r.length===1?r[0]:q3(t)[0]},J3=(e,t,r)=>Y3(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0});var gr={};Fe(gr,{abort:()=>Na,assert:()=>Aa,exit:()=>va,kind:()=>Oa,noop:()=>Ia,p:()=>$a,pj:()=>xa,pp:()=>Da,pr:()=>Pa,raise:()=>Ca,rand:()=>La,sleep:()=>Ma,toMatchable:()=>Ua,todo:()=>ja,warn:()=>Fa,zip:()=>Ba});var Na=(e)=>{if(e)console.error(e);if(typeof process<"u")process.exit(1);throw Error(e||"abort")},Aa=(e,t)=>{if(!e)throw Error(t||"Assertion failed")},va=(e)=>{if(typeof process<"u")process.exit(e||0);throw Error(`exit(${e||0}) outside a process`)},Oa=(e)=>e!=null?(e.constructor?.name||Object.prototype.toString.call(e).slice(8,-1)).toLowerCase():String(e),Ia=()=>{},$a=(...e)=>console.log(...e),Da=(e)=>(console.dir(e,{depth:null,colors:!0}),e),xa=(e)=>(console.log(JSON.stringify(e,null,2)),e),Pa=(()=>{let e=/^[A-Za-z_$][A-Za-z0-9_$]*$/,t=(n,a)=>n.replace(/\\/g,"\\\\").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(new RegExp(a,"g"),"\\"+a),r=(n)=>!n.includes("'")?"'"+t(n,"'")+"'":!n.includes('"')?'"'+t(n,'"').split("#{").join("\\#{")+'"':"'"+t(n,"'")+"'",s=(n)=>{if(typeof n==="symbol"){let a=Symbol.keyFor(n);return a&&e.test(a)?":"+a:r(String(n))}return e.test(n)?n:r(n)},i=(n,a)=>{if(n===null)return"null";if(n===void 0)return"undefined";let o=typeof n;if(o==="number"||o==="boolean")return String(n);if(o==="string")return r(n);if(o==="symbol"){let l=Symbol.keyFor(n);return l&&e.test(l)?":"+l:null}if(Array.isArray(n)){if(n.length===0)return"[]";let l=" ".repeat(a+1),c=" ".repeat(a),f=n.map((h)=>i(h,a+1));if(f.some((h)=>h===null))return null;return`[ -`+l+f.join(` +`:"",S=C.slice(0,N).join(` +`)}}let w=nr();w.lexer=As(t,{tolerant:f});let R;try{R=w.parse(S,{primitives:n==="ts",tolerant:f})}catch(C){if(typeof C.start!=="number")throw C;throw Vi(g,t,C.reason??C.message,C.start,C.end)}if(R.diagnostics.length>0&&!(f&&R.sexpr!=null))throw Y3(g,t,R.diagnostics[0]);if(l)Zn(R.sexpr);let T;try{T=Ea(R,{source:e,runtimeDelivery:r,face:n,pins:i,strict:s,script:a,browserModule:o,dataPayload:b,ambientBindings:c,repl:h,hmr:u,tolerant:f,modulePath:t,appStashSpec:d,routesUnion:p,routeParams:m})}catch(C){if(typeof C.start==="number")throw Vi(g,t,C.message,C.start,C.end);if(C instanceof RangeError)throw new He(`${t}: emitter: the program nests too deeply to emit (the engine stack was exhausted) — restructure the deepest expression or block`,{path:t});throw new He(`${t}: ${C.message}`,{path:t})}let F=Ta(T,{source:e,sourcePath:t,file:`${t}.js`}),L=null;return{parseDiagnostics:R.diagnostics,code:T.code,map:F,stores:T.stores,tokens:R.tokens??null,mappings:new Se(T.mappings),vocabulary:T.vocabulary??[],silences:T.silences??[],memberDecls:T.memberDecls??[],narrowedDecls:T.narrowedDecls??[],runtimes:T.runtimes,bindings:T.bindings,bindingNames:T.bindingNames,replResultName:T.replResultName,replImportResolver:T.replImportResolver,tsRegions:T.tsRegions,echoSpans:T.echoSpans??[],globalDecls:T.globalDecls??[],pinnables:T.pinnables,pinSpans:T.pinSpans??[],mutables:T.mutables,enums:T.enums,classDecls:T.classDecls,loopVars:T.loopVars,readLoopVarDecls:T.readLoopVarDecls,attrNames:T.attrNames,routeWraps:T.routeWraps,memberInits:T.memberInits,sourceKeys:T.sourceKeys,stashMembers:T.stashMembers,stashKeys:T.stashKeys,renderPairs:T.renderPairs,kinds:T.kinds,intrinsics:T.intrinsics??[],componentUses:T.componentUses??[],namespaceExports:T.namespaceExports??[],componentNames:T.componentNames??[],importedRefs:T.importedRefs,imports:T.imports,trivia:R.trivia??[],get declarations(){if(L===null)try{L=wa({sexpr:R.sexpr,stores:T.stores,source:e})}catch(C){throw new He(`${t}: ${C.message}`,{path:t})}return L}}}var pr={};Fe(pr,{__defineOwnDataProperty:()=>Z3,__toPropertyKey:()=>J3});var{defineProperty:z3,getOwnPropertyNames:q3,getOwnPropertySymbols:X3}={}.constructor,J3=(e)=>{let t={[e]:0},r=q3(t);return r.length===1?r[0]:X3(t)[0]},Z3=(e,t,r)=>z3(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0});var gr={};Fe(gr,{abort:()=>Na,assert:()=>Aa,exit:()=>va,kind:()=>Oa,noop:()=>Ia,p:()=>$a,pj:()=>xa,pp:()=>Da,pr:()=>Ca,raise:()=>Pa,rand:()=>La,sleep:()=>Ma,toMatchable:()=>Ua,todo:()=>ja,warn:()=>Fa,zip:()=>Ba});var Na=(e)=>{if(e)console.error(e);if(typeof process<"u")process.exit(1);throw Error(e||"abort")},Aa=(e,t)=>{if(!e)throw Error(t||"Assertion failed")},va=(e)=>{if(typeof process<"u")process.exit(e||0);throw Error(`exit(${e||0}) outside a process`)},Oa=(e)=>e!=null?(e.constructor?.name||Object.prototype.toString.call(e).slice(8,-1)).toLowerCase():String(e),Ia=()=>{},$a=(...e)=>console.log(...e),Da=(e)=>(console.dir(e,{depth:null,colors:!0}),e),xa=(e)=>(console.log(JSON.stringify(e,null,2)),e),Ca=(()=>{let e=/^[A-Za-z_$][A-Za-z0-9_$]*$/,t=(s,a)=>s.replace(/\\/g,"\\\\").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(new RegExp(a,"g"),"\\"+a),r=(s)=>!s.includes("'")?"'"+t(s,"'")+"'":!s.includes('"')?'"'+t(s,'"').split("#{").join("\\#{")+'"':"'"+t(s,"'")+"'",n=(s)=>{if(typeof s==="symbol"){let a=Symbol.keyFor(s);return a&&e.test(a)?":"+a:r(String(s))}return e.test(s)?s:r(s)},i=(s,a)=>{if(s===null)return"null";if(s===void 0)return"undefined";let o=typeof s;if(o==="number"||o==="boolean")return String(s);if(o==="string")return r(s);if(o==="symbol"){let l=Symbol.keyFor(s);return l&&e.test(l)?":"+l:null}if(Array.isArray(s)){if(s.length===0)return"[]";let l=" ".repeat(a+1),c=" ".repeat(a),h=s.map((f)=>i(f,a+1));if(h.some((f)=>f===null))return null;return`[ +`+l+h.join(` `+l)+` -`+c+"]"}if(o==="object"){let l=Object.getPrototypeOf(n);if(l!==Object.prototype&&l!==null)return null;let c=Object.keys(n);if(c.length===0)return"{}";let f=" ".repeat(a+1),h=" ".repeat(a),u=c.map((d)=>{let p=i(n[d],a+1);return p===null?null:s(d)+": "+p});if(u.some((d)=>d===null))return null;return`{ -`+f+u.join(` -`+f)+` -`+h+"}"}return null};return(n)=>{let a=i(n,0);if(a!==null)console.log(a);else console.dir(n,{depth:null,colors:!0});return n}})(),Ca=(e,t)=>{throw t!==void 0?new e(t):Error(e)},La=(e,t)=>t!==void 0?(e>t&&([e,t]=[t,e]),Math.floor(Math.random()*(t-e+1)+e)):e?Math.floor(Math.random()*e):Math.random(),Ma=(e)=>new Promise((t)=>setTimeout(t,e)),ja=(e)=>{throw Error(e||"Not implemented")},Fa=(...e)=>console.warn(...e),Ba=(...e)=>e[0].map((t,r)=>e.map((s)=>s[r])),Ua=(e)=>{if(typeof e==="string")return e;if(e==null)return"";if(typeof e==="number"||typeof e==="bigint"||typeof e==="boolean")return String(e);if(typeof e==="symbol")return e.description||"";if(e instanceof Uint8Array||e instanceof ArrayBuffer)return new TextDecoder().decode(e instanceof Uint8Array?e:new Uint8Array(e));if(Array.isArray(e))return e.join(",");if(typeof e.toString==="function"&&e.toString!==Object.prototype.toString)try{return e.toString()}catch{return""}return""};var Er={};Fe(Er,{SchemaDef:()=>Et,SchemaError:()=>I1,SchemaRegistry:()=>ie,__schema:()=>ic,installPersistence:()=>Z3,registerCoercer:()=>ec});var Ka=Symbol.for("rip.runtime.schema");if(globalThis[Ka])throw Error("two copies of the Rip schema runtime loaded in one process — schemas from different copies "+"cannot see each other (separate registries, distinct SchemaError classes). Run .rip sources through the rip CLI/loader (one shared runtime module per process), or load only one standalone-compiled file per process.");globalThis[Ka]=!0;var Te=null;function Z3(e){if(Te&&Te!==e)throw Error("the Rip schema persistence runtime is already installed — two different copies met in one process");Te=e}class I1 extends Error{constructor(e,t,r){super(Q3(e,t));this.name="SchemaError",this.issues=e,this.schemaName=t||null,this.schemaKind=r||null}}function Q3(e,t){if(!e||!e.length)return"SchemaError";return(t?t+": ":"")+e.map((s)=>s.message||s.error||"invalid").join("; ")}var Ya={__proto__:null,string:(e)=>typeof e==="string",number:(e)=>typeof e==="number"&&!Number.isNaN(e),integer:(e)=>Number.isInteger(e),boolean:(e)=>typeof e==="boolean",date:(e)=>e instanceof Date&&!Number.isNaN(e.getTime()),datetime:(e)=>e instanceof Date&&!Number.isNaN(e.getTime()),email:(e)=>typeof e==="string"&&/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e),url:(e)=>typeof e==="string"&&/^https?:\/\/.+/.test(e),uuid:(e)=>typeof e==="string"&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e),phone:(e)=>typeof e==="string"&&/^[\d\s\-+()]+$/.test(e),zip:(e)=>typeof e==="string"&&/^\d{5}(-\d{4})?$/.test(e),text:(e)=>typeof e==="string",json:(e)=>e!==void 0,variant:(e)=>e!==void 0,any:()=>!0},Rr={integer(e){if(typeof e==="number")return Number.isInteger(e)?{ok:!0,value:e}:{ok:!1};if(typeof e==="string"&&/^[+-]?\d+$/.test(e.trim()))return{ok:!0,value:parseInt(e.trim(),10)};return{ok:!1}},number(e){if(typeof e==="number")return Number.isNaN(e)?{ok:!1}:{ok:!0,value:e};if(typeof e==="string"&&/^[+-]?(\d+\.?\d*|\.\d+)([eE][+-]?\d+)?$/.test(e.trim()))return{ok:!0,value:Number(e.trim())};return{ok:!1}},boolean(e){if(typeof e==="boolean")return{ok:!0,value:e};if(e==="true"||e==="1"||e===1)return{ok:!0,value:!0};if(e==="false"||e==="0"||e===0)return{ok:!0,value:!1};return{ok:!1}},date(e){if(e instanceof Date)return Number.isNaN(e.getTime())?{ok:!1}:{ok:!0,value:e};if(typeof e==="number"&&Number.isFinite(e))return{ok:!0,value:new Date(e)};let t=typeof e==="string"?/^(\d{4})-(\d{2})-(\d{2})/.exec(e):null;if(t){let r=+t[2],s=+t[3],i=new Date(Date.UTC(+t[1],r,0)).getUTCDate();if(r<1||r>12||s<1||s>i)return{ok:!1};let n=new Date(e);if(!Number.isNaN(n.getTime()))return{ok:!0,value:n}}return{ok:!1}}};Rr.datetime=Rr.date;function br(e){if(e!==null&&typeof e==="object"&&!Array.isArray(e))return null;return{field:"",error:"object",message:"input must be an object; got "+(e===null?"null":Array.isArray(e)?"an array":"a "+typeof e)}}var Hi=new Map;function ec(e,t,r){if(typeof e!=="string"||typeof t!=="function")throw Error("registerCoercer(name, fn, opts?): name string and fn required");let s=Object.prototype.toString.call(t);if(s==="[object AsyncFunction]"||s==="[object GeneratorFunction]"||s==="[object AsyncGeneratorFunction]")throw Error("registerCoercer: coercer '~:"+e+"' must be a plain synchronous function");let i=r?.raw===!0,n=Hi.get(e);if(n){if(n.raw===i&&String(n.fn)===String(t))return t;throw Error("registerCoercer: coercer '~:"+e+"' is already registered")}return Hi.set(e,{fn:t,raw:i}),t}function St(e){if(Ya[e])return null;let t=ie.get(e);return t&&(t.kind==="shape"||t.kind==="input"||t.kind==="model"||t.kind==="union")?t:null}function Gi(e,t,r){let s=Ya[t];if(s)return s(e)?{value:e}:{errors:[{field:"",error:"type",message:"must be "+t}]};let i=ie.get(t);if(!i)return{value:e};if(i.kind==="enum"){let a=i._validateEnum(e,!0);return a.length?{errors:[{field:"",error:"enum",message:a[0].message}]}:{value:i._materializeEnum(e)}}if(i.kind==="mixin")return{errors:[{field:"",error:"type",message:":mixin "+t+" is not usable as a field type"}]};if(i.kind==="union"){let a=i._unionResolve(e);if(a.issue)return{errors:[a.issue]};let o=r?.existing?a.def._runExistingSync(e,{...r,materialize:!1,materializeNested:!1}):a.def._runSync(e,{...r,materialize:!1,materializeNested:!1});if(o.thrown){if(r?.derived==="throw")throw o.thrown;return{errors:[{field:"",error:"derived",message:o.thrown?.message||String(o.thrown)}]}}return o.ok?{value:o.value}:{errors:o.errors}}if(e===null||typeof e!=="object"||Array.isArray(e))return{errors:[{field:"",error:"type",message:"must be a "+t+" object"}]};let n=r?.existing?i._runExistingSync(e,{...r,materialize:!1,materializeNested:!1}):i._runSync(e,{...r,materialize:!1,materializeNested:!1});if(n.thrown){if(r?.derived==="throw")throw n.thrown;return{errors:[{field:"",error:"derived",message:n.thrown?.message||String(n.thrown)}]}}return n.ok?{value:n.value}:{errors:n.errors}}async function Va(e,t,r){let s=St(t);if(s===null)return Gi(e,t,r);if(s.kind==="union"){let n=s._unionResolve(e);if(n.issue)return{errors:[n.issue]};let a=r?.existing?await n.def._runExistingAsync(e,{...r,materialize:!1,materializeNested:!1}):await n.def._runAsync(e,{...r,materialize:!1,materializeNested:!1});if(a.thrown){if(r?.derived==="throw")throw a.thrown;return{errors:[{field:"",error:"derived",message:a.thrown?.message||String(a.thrown)}]}}return a.ok?{value:a.value}:{errors:a.errors}}if(e===null||typeof e!=="object"||Array.isArray(e))return{errors:[{field:"",error:"type",message:"must be a "+t+" object"}]};let i=r?.existing?await s._runExistingAsync(e,{...r,materialize:!1,materializeNested:!1}):await s._runAsync(e,{...r,materialize:!1,materializeNested:!1});if(i.thrown){if(r?.derived==="throw")throw i.thrown;return{errors:[{field:"",error:"derived",message:i.thrown?.message||String(i.thrown)}]}}return i.ok?{value:i.value}:{errors:i.errors}}function Rt(e,t){if(!t)return e;return e+(t.startsWith("[")?t:"."+t)}function yr(e,t,r){if(!t)return e+" "+r;if(r.startsWith(t))return e+r.slice(t.length);return e+": "+r}var Sr=Symbol("schema.materialization-error");function Wa(e,t){if(e&&e[Sr])return{[Sr]:!0,error:e.error,field:Rt(t,e.field)};return{[Sr]:!0,error:e,field:t}}function Ge(e){return e&&e[Sr]?{thrown:e.error,derivedField:e.field}:{thrown:e,derivedField:""}}var tc=tt;function Ha(e){let t=(s)=>JSON.stringify(s??null,(i,n)=>n instanceof RegExp?String(n):typeof n==="function"?"":n),r=[e.kind];for(let s of e._desc.entries||[])switch(s.tag){case"field":r.push("f:"+s.name+":"+(s.typeName||"")+(s.array?"[]":"")+":"+(s.modifiers||[]).join("")+(s.literals?":"+s.literals.join(","):"")+":"+t(s.constraints)+(s.coerce?":~"+(s.coercer||""):"")+(s.transform?":t":""));break;case"enum-member":r.push("e:"+s.name+"="+String(s.value));break;case"directive":r.push("d:"+s.name+":"+t(s.args));break;case"ensure":r.push("n:"+(s.message||""));break;default:r.push(s.tag+":"+(s.name||""))}return r.join("|")}var ke=0,ie={_entries:new Map,replace:!1,register(e){if(!e.name)return;ke++;let t=this._entries.get(e.name);if(t&&t.def!==e&&!this.replace){if(Ha(t.def)!==Ha(e))throw new I1([{field:e.name,error:"collision",message:"schema name '"+e.name+"' is already registered with a different definition. Schema names are app-global (they resolve nested field types and @mixin references), so two "+"different schemas cannot share one name. Rename one — or, for dev/HMR reload semantics, set "+"SchemaRegistry.replace = true before re-evaluating modules."}],e.name,e.kind)}this._entries.set(e.name,{def:e,kind:e.kind})},get(e){let t=this._entries.get(e);return t?t.def:null},getKind(e,t){let r=this._entries.get(e);return r&&r.kind===t?r.def:null},has(e){return this._entries.has(e)},names(){return[...this._entries.keys()]},reset(){this._entries.clear(),ke++},scope(e){let t=this._entries;this._entries=new Map,ke++;let r=()=>{this._entries=t,ke++};try{let s=e();if(s&&typeof s.then==="function")return s.finally(r);return r(),s}catch(s){throw r(),s}}};class Et{constructor(e){if(e.kind==="model"&&!Te)throw Error("schema: kind 'model' needs the persistence runtime (src/runtime/orm.js), which is not "+"loaded in this process — reference a persistence name (schema.transaction, __schemaSetAdapter) "+"or import the module directly");if(this._desc=e,this.kind=e.kind,this.name=e.name||null,this._norm=null,this._klass=null,this._unionPlanCache=null,this._sourceModel=null,e.kind==="model")Te.decorateDef(this,e)}_normalize(){if(this._norm)return this._norm;let e=new Map,t=new Map,r=new Map,s=new Map,i=new Map,n=new Map,a=null,o=[],l=new Map,c=[],f=(S,w)=>{throw new I1([{field:S,error:"collision",message:S+" collides with "+w}],this.name,this.kind)},h=(S)=>{if(e.has(S))f(S,"field");if(t.has(S))f(S,"method");if(r.has(S))f(S,"computed");if(s.has(S))f(S,"derived");if(i.has(S))f(S,"hook")},u=(S)=>{throw new I1([{field:"",error:"kind",message:S+" is :model-only (this schema is :"+this.kind+")"}],this.name,this.kind)},d=this.kind==="union"?new Set(["on"]):new Set(["mixin"]),p=(S,w)=>{if(!tc(S))throw new I1([{field:S,error:"invalid-name",message:w+" name '"+S+"' is not canonical camelCase. Use a lowercase-first, alphanumeric identifier with no consecutive uppercase letters (e.g. 'mdmId' not 'mdmID')."}],this.name,this.kind)};for(let S of this._desc.entries)switch(S.tag){case"field":p(S.name,"field"),h(S.name),e.set(S.name,{name:S.name,required:S.modifiers.includes("!"),optional:S.modifiers.includes("?"),unique:S.unique===!0,primary:S.primary===!0,attrs:S.attrs||null,typeName:S.typeName,literals:S.literals||null,array:S.array===!0,coerce:S.coerce===!0,coercer:S.coercer||null,constraints:S.constraints||null,transform:S.transform||null});break;case"method":h(S.name),t.set(S.name,S.fn);break;case"computed":h(S.name),r.set(S.name,S.fn);break;case"derived":h(S.name),s.set(S.name,S.fn);break;case"hook":if(this.kind!=="model")u("lifecycle hook '"+S.name+"'");if(i.has(S.name))f(S.name,"duplicate hook");i.set(S.name,S.fn);break;case"scope":if(this.kind!=="model")u("query scope '@scope :"+S.name+"'");if(n.has(S.name))f(S.name,"scope");n.set(S.name,S.fn);break;case"defaultScope":if(this.kind!=="model")u("@defaultScope");if(a)throw new I1([{field:"",error:"collision",message:"only one @defaultScope per model"}],this.name,this.kind);a=S.fn;break;case"directive":if(this.kind!=="model"&&!d.has(S.name))throw new I1([{field:"",error:"directive",message:"unknown directive '@"+S.name+"' on :"+this.kind+" — legal here: "+[...d].map((w)=>"@"+w).join(", ")}],this.name,this.kind);o.push({name:S.name,args:S.args||[]});break;case"enum-member":l.set(S.name,S.value!==void 0?S.value:S.name);break;case"union-member":break;case"ensure":c.push({message:S.message,field:S.field||"",async:S.async===!0,fn:S.fn});break;default:throw new I1([{field:"",error:"entry",message:"unknown schema entry tag '"+S.tag+"'"}],this.name,this.kind)}if(this.kind==="shape"||this.kind==="input"||this.kind==="mixin"||this.kind==="model")Xa(this,e,o,{stack:[this.name||""],seen:new Set([this.name||""])});let m=null,g=[];if(this.kind==="union"){for(let S of o)if(S.name==="on"&&S.args?.[0]?.field)m=S.args[0].field;for(let S of this._desc.entries)if(S.tag==="union-member")g.push(S.name)}let b={fields:e,methods:t,computed:r,derived:s,hooks:i,scopes:n,defaultScope:a,directives:o,enumMembers:l,ensures:c,hasAsyncEnsures:c.some((S)=>S.async),unionOn:m,unionMembers:g};if(this.kind==="model")Te.finishModelNorm(this,b);return this._norm=b,this._norm}_unionPlan(){if(this._unionPlanCache&&this._unionPlanCache.gen===ke)return this._unionPlanCache.plan;let e=this._normalize(),t=e.unionOn;if(this.kind!=="union"||!t)throw Error("schema: '"+(this.name||"anon")+"' is not a :union");let r=new Map,s=[];for(let n of e.unionMembers){let a=ie.get(n);if(!a)throw new I1([{field:"",error:"union",message:"unknown union constituent: "+n+" (import the file that declares it)"}],this.name,this.kind);s.push(a);let o=a._normalize().fields.get(t);if(!o||o.typeName!=="literal-union"||!o.literals?.length)throw new I1([{field:t,error:"union",message:n+" must declare '"+t+"' as a string-literal type (e.g. "+t+'! "click") to join union '+(this.name||"")}],this.name,this.kind);for(let l of o.literals){if(r.has(l))throw new I1([{field:t,error:"union",message:"duplicate discriminator value "+JSON.stringify(l)+" in "+(r.get(l).name||"anon")+" and "+n}],this.name,this.kind);r.set(l,a)}}let i={disc:t,map:r,expected:[...r.keys()].join(" | "),hasAsyncEnsures:s.some((n)=>n._normalize().hasAsyncEnsures)};return this._unionPlanCache={gen:ke,plan:i},i}_unionResolve(e){let t=this._unionPlan();if(e===null||typeof e!=="object"||Array.isArray(e))return{issue:{field:t.disc,error:"union",message:"expected an object with "+t.disc}};let r=t.map.get(e[t.disc]);if(!r)return{issue:{field:t.disc,error:"union",message:"expected one of "+t.expected}};return{def:r}}_applyEagerDerived(e){let t=this._normalize();if(!t.derived.size)return;for(let[r,s]of t.derived){let i=s.call(e);Object.defineProperty(e,r,{value:i,enumerable:!0,writable:!0,configurable:!0})}}_materializeValidatedValue(e,t,r){return this._materializeNestedValues(e,t,r),this._materializeOwnValidatedValue(e,t,r)}_materializeNestedValues(e,t,r){let s=this._normalize();for(let[i,n]of s.fields){let a=St(n.typeName);if(!a)continue;let o=e[i];if(o===void 0||o===null)continue;let l=t==null?void 0:t[i];if(n.array){if(!Array.isArray(o))continue;let c=Array(o.length);for(let f=0;f{let a=()=>({field:i.field||"",error:"ensure",message:i.message||"ensure failed"});if(i.async)s.push((async()=>{let o=!1;try{o=!!await i.fn(e)}catch{o=!1}if(!o)r.push({idx:n,issue:a()})})());else{let o=!1;try{o=!!i.fn(e)}catch{o=!1}if(!o)r.push({idx:n,issue:a()})}}),await Promise.all(s),r.sort((i,n)=>i.idx-n.idx),r.map((i)=>i.issue)}_transitiveAsync(){if(this._taGen===ke)return this._taCache;let e=new Set,t=(r)=>{if(e.has(r))return!1;e.add(r);let s=r._normalize();if(s.hasAsyncEnsures)return!0;if(r.kind==="union"){for(let i of s.unionMembers){let n=ie.get(i);if(n&&t(n))return!0}return!1}for(let i of s.fields.values()){let n=St(i.typeName);if(n&&t(n))return!0}return!1};return this._taCache=t(this),this._taGen=ke,this._taCache}_assertSyncValidatable(e){if(!this._transitiveAsync())return;let t=this.kind!=="union"&&this._normalize().hasAsyncEnsures;throw Error("schema '"+(this.name||"anon")+"' has async refinements (@ensure!"+(t?"":" in a nested or constituent schema")+"); ."+e+"() is sync. Use parseAsync/safeAsync/okAsync instead.")}_getClass(){if(this._klass)return this._klass;let e=this._normalize(),t=this.name||"Schema",r=[...e.fields.keys()],s={[t]:class{constructor(i){if(i&&typeof i==="object"){for(let n of r)if(n in i&&i[n]!==void 0)this[n]=i[n]}}}}[t];for(let[i,n]of e.methods)Object.defineProperty(s.prototype,i,{value:n,writable:!0,enumerable:!1,configurable:!0});for(let[i,n]of e.computed)Object.defineProperty(s.prototype,i,{get:n,enumerable:!1,configurable:!0});return this._klass=s,s}_coerceDates(e){let t=this._normalize(),r=(n)=>typeof n==="string"&&/^\d{4}-\d{2}-\d{2}([T ].*)?$/.test(n),s=(n)=>{let a=/^(\d{4})-(\d{2})-(\d{2})/.exec(n),o=+a[2],l=+a[3];return o>=1&&o<=12&&l>=1&&l<=new Date(Date.UTC(+a[1],o,0)).getUTCDate()},i=(n)=>{if(!s(n))return n;let a=new Date(n);return Number.isNaN(a.getTime())?n:a};for(let[n,a]of t.fields){if(a.typeName!=="date"&&a.typeName!=="datetime")continue;let o=e[n];if(a.array&&Array.isArray(o))e[n]=o.map((l)=>r(l)?i(l):l);else if(r(o))e[n]=i(o)}}_validateFields(e,t,r,s){let i=this._normalize(),n=t?[]:null;for(let[a,o]of i.fields){if(r&&r.has(a))continue;let l=e==null?void 0:e[a];if(l===void 0||l===null){if(o.required){if(!t)return!1;n.push({field:a,error:"required",message:a+" is required"})}continue}if(o.array){if(!Array.isArray(l)){if(!t)return!1;n.push({field:a,error:"type",message:a+" must be an array"});continue}let f=o.constraints;if(f){if(f.min!=null&&l.lengthf.max){if(!t)return!1;n.push({field:a,error:"max",message:a+" must have at most "+f.max+" items"})}}if(s?.deferNested&&St(o.typeName))continue;let h=!1,u=!1,d=Array(l.length);for(let p=0;pJSON.stringify(f)).join(", ")});continue}}else{if(s?.deferNested&&St(o.typeName))continue;let f=Gi(l,o.typeName,s);if(f.errors){if(!t)return!1;for(let h of f.errors){let u=Rt(a,h.field);n.push({field:u,error:h.error,message:yr(u,h.field,h.message)})}continue}if(f.value!==l)e[a]=f.value}let c=o.constraints;if(c){if(typeof l==="string"){if(c.min!=null&&l.lengthc.max){if(!t)return!1;n.push({field:a,error:"max",message:a+" must be at most "+c.max+" chars"})}if(c.regex){if(c.regex.global||c.regex.sticky)c.regex.lastIndex=0;if(!c.regex.test(l)){if(!t)return!1;n.push({field:a,error:"pattern",message:a+" is invalid"})}}}else if(typeof l==="number"){if(c.min!=null&&l= "+c.min})}if(c.max!=null&&l>c.max){if(!t)return!1;n.push({field:a,error:"max",message:a+" must be <= "+c.max})}}}}return t?n:!0}_applyDefaults(e){let t=this._normalize();for(let[r,s]of t.fields)if((e[r]===void 0||e[r]===null)&&s.constraints?.default!==void 0){let i=s.constraints.default;e[r]=typeof i==="object"&&i!==null&&!(i instanceof RegExp)?structuredClone(i):i}return e}_applyTransforms(e,t){let r=this._normalize(),s=[];for(let[i,n]of r.fields){if(!n.transform)continue;try{t[i]=n.transform(e)}catch(a){s.push({field:i,error:"transform",message:a?.message||String(a)})}}return s}_applyCoercions(e,t){let r=this._normalize(),s=[];for(let[i,n]of r.fields){if(!n.coerce)continue;let a=e[i];if(a===void 0||a===null)continue;if(n.coercer){let l=Hi.get(n.coercer);if(!l)throw Error("schema: no coercer registered for '~:"+n.coercer+"' (field '"+i+"' on "+(this.name||"anon")+"). Register it with registerCoercer('"+n.coercer+"', fn).");let c=l.raw?a:String(a).trim(),f;try{f=l.fn(c)}catch{f=null}if(f===null||f===void 0)s.push({field:i,error:"coerce",message:i+" is not a valid "+n.coercer}),t.add(i);else e[i]=f;continue}let o=Rr[n.typeName]?Rr[n.typeName](a):{ok:!1};if(o.ok)e[i]=o.value;else s.push({field:i,error:"coerce",message:i+" cannot be coerced to "+n.typeName}),t.add(i)}return s}_orderFieldErrors(...e){let t=new Map,r=0;for(let[s]of this._normalize().fields)t.set(s,r++);return e.flat().map((s,i)=>{let n=String(s.field||"").split(/[.[]/,1)[0];return{issue:s,seq:i,rank:t.has(n)?t.get(n):r}}).sort((s,i)=>s.rank-i.rank||s.seq-i.seq).map((s)=>s.issue)}_validateEnum(e,t){let r=this._normalize();for(let[i,n]of r.enumMembers)if(e===i||e===n)return t?[]:!0;if(!t)return!1;let s=[...r.enumMembers.keys()].join(", ");return[{field:"",error:"enum",message:(this.name||"enum")+" expected one of: "+s}]}_materializeEnum(e){let t=this._normalize();for(let[r,s]of t.enumMembers)if(e===r||e===s)return s;return e}_runSync(e,t){if(this.kind==="union"){let f=this._unionResolve(e);if(f.issue)return{ok:!1,errors:[f.issue]};let h=f.def._runSync(e,t);return h.ok?h:{...h,from:h.from||f.def}}if(this.kind==="enum"){let f=this._validateEnum(e,!0);return f.length?{ok:!1,errors:f}:{ok:!0,value:this._materializeEnum(e)}}let r=br(e);if(r)return{ok:!1,errors:[r]};let s=e,i={...s},n=new Set,a=this._applyTransforms(s,i),o=this._applyCoercions(i,n);this._applyDefaults(i),this._coerceDates(i);let l=this._orderFieldErrors(a,o,this._validateFields(i,!0,n,t));if(l.length)return{ok:!1,errors:l};let c=t?.skipEnsures?[]:this._applyEnsures(i);if(c.length)return{ok:!1,errors:c};if(t?.materializeNested)try{this._materializeNestedValues(i,null,!1)}catch(f){return{ok:!1,errors:null,...Ge(f)}}if(!t?.materialize)return{ok:!0,value:i};try{return{ok:!0,value:this._materializeOwnValidatedValue(i,null,!1)}}catch(f){return{ok:!1,errors:null,...Ge(f)}}}async _runAsync(e,t){if(this.kind==="union"){let h=this._unionResolve(e);if(h.issue)return{ok:!1,errors:[h.issue]};let u=await h.def._runAsync(e,t);return u.ok?u:{...u,from:u.from||h.def}}if(this.kind==="enum")return this._runSync(e,t);let r=br(e);if(r)return{ok:!1,errors:[r]};let s=e,i={...s},n=new Set,a=this._applyTransforms(s,i),o=this._applyCoercions(i,n);this._applyDefaults(i),this._coerceDates(i);let l=await this._validateFieldsAsync(i,n,t),c=this._orderFieldErrors(a,o,l);if(c.length)return{ok:!1,errors:c};let f=t?.skipEnsures?[]:await this._applyEnsuresAsync(i);if(f.length)return{ok:!1,errors:f};if(t?.materializeNested)try{this._materializeNestedValues(i,null,!1)}catch(h){return{ok:!1,errors:null,...Ge(h)}}if(!t?.materialize)return{ok:!0,value:i};try{return{ok:!0,value:this._materializeOwnValidatedValue(i,null,!1)}}catch(h){return{ok:!1,errors:null,...Ge(h)}}}async _validateFieldsAsync(e,t,r){let s=this._normalize(),i=[];for(let[n,a]of s.fields){if(t&&t.has(n))continue;let o=e[n];if(o===void 0||o===null){if(a.required)i.push({field:n,error:"required",message:n+" is required"});continue}if(a.array){if(!Array.isArray(o)){i.push({field:n,error:"type",message:n+" must be an array"});continue}let f=a.constraints;if(f?.min!=null&&o.lengthf.max)i.push({field:n,error:"max",message:n+" must have at most "+f.max+" items"});let h=Array(o.length),u=!1;for(let d=0;dJSON.stringify(f)).join(", ")})}else{let f=await Va(o,a.typeName,r);if(f.errors)for(let h of f.errors){let u=Rt(n,h.field);i.push({field:u,error:h.error,message:yr(u,h.field,h.message)})}else e[n]=f.value}let l=e[n],c=a.constraints;if(c){if(typeof l==="string"){if(c.min!=null&&l.lengthc.max)i.push({field:n,error:"max",message:n+" must be at most "+c.max+" chars"});if(c.regex){if(c.regex.global||c.regex.sticky)c.regex.lastIndex=0;if(!c.regex.test(l))i.push({field:n,error:"pattern",message:n+" is invalid"})}}else if(typeof l==="number"){if(c.min!=null&&l= "+c.min});if(c.max!=null&&l>c.max)i.push({field:n,error:"max",message:n+" must be <= "+c.max})}}}return i}_runExistingSync(e,t){if(this.kind==="union"){let a=this._unionResolve(e);if(a.issue)return{ok:!1,errors:[a.issue]};let o=a.def._runExistingSync(e,t);return o.ok?o:{...o,from:o.from||a.def}}if(this.kind==="enum")return this._runSync(e,t);let r=br(e);if(r)return{ok:!1,errors:[r]};let s={...e},i=this._validateFields(s,!0,null,{...t,existing:!0});if(i.length)return{ok:!1,errors:i};let n=t?.skipEnsures?[]:this._applyEnsures(s);if(n.length)return{ok:!1,errors:n};if(t?.materializeNested)try{this._materializeNestedValues(s,e,!0)}catch(a){return{ok:!1,errors:null,...Ge(a)}}return this._finishExistingValue(e,s,t)}async _runExistingAsync(e,t){if(this.kind==="union"){let a=this._unionResolve(e);if(a.issue)return{ok:!1,errors:[a.issue]};let o=await a.def._runExistingAsync(e,t);return o.ok?o:{...o,from:o.from||a.def}}if(this.kind==="enum")return this._runSync(e,t);let r=br(e);if(r)return{ok:!1,errors:[r]};let s={...e},i=await this._validateFieldsAsync(s,null,{...t,existing:!0});if(i.length)return{ok:!1,errors:i};let n=t?.skipEnsures?[]:await this._applyEnsuresAsync(s);if(n.length)return{ok:!1,errors:n};if(t?.materializeNested)try{this._materializeNestedValues(s,e,!0)}catch(a){return{ok:!1,errors:null,...Ge(a)}}return this._finishExistingValue(e,s,t)}_finishExistingValue(e,t,r){if(!r?.materialize)return{ok:!0,value:t};let s=this._getClass(),i=!0;for(let[a]of this._normalize().fields)if(t[a]!==e[a]){i=!1;break}if(i)return{ok:!0,value:e};let n=new s(t);try{this._applyEagerDerived(n)}catch(a){return{ok:!1,errors:null,thrown:a}}return{ok:!0,value:n}}parse(e){if(this.kind==="mixin")throw Error(":mixin schema '"+(this.name||"anon")+"' is not instantiable");this._assertSyncValidatable("parse");let t=this._runSync(e,{materialize:!0,materializeNested:!0,derived:"throw"});if(t.ok)return t.value;if(t.thrown)throw t.thrown;let r=t.from||this;throw new I1(t.errors,r.name,r.kind)}get array(){let e=this,t=(n)=>({field:"",error:"not_array",message:"expected an array, received "+(n===null?"null":n===void 0?"undefined":typeof n==="object"?"an object with keys ["+Object.keys(n).join(", ")+"]":typeof n)}),r=(n)=>{let a=[],o=[];return n.forEach((l,c)=>{if(l.ok)a.push(l.value);else for(let f of l.errors)o.push({...f,field:"["+c+"]"+(f.field?"."+f.field:"")})}),{value:a,errors:o}},s=(n)=>{let a=[],o=[];return n.forEach((l,c)=>{try{a.push(e.parse(l))}catch(f){if(!(f instanceof I1))throw f;for(let h of f.issues)o.push({...h,field:"["+c+"]"+(h.field?"."+h.field:"")})}}),{value:a,errors:o}},i=async(n)=>{let a=[],o=[];for(let l=0;le.safe(l)));return o.length?{ok:!1,value:null,errors:o}:{ok:!0,value:a,errors:null}},ok(n){return Array.isArray(n)&&n.every((a)=>e.ok(a))},async parseAsync(n){if(!Array.isArray(n))throw new I1([t(n)],e.name,e.kind);let{value:a,errors:o}=await i(n);if(o.length)throw new I1(o,e.name,e.kind);return a},async safeAsync(n){if(!Array.isArray(n))return{ok:!1,value:null,errors:[t(n)]};let{value:a,errors:o}=r(await Promise.all(n.map((l)=>e.safeAsync(l))));return o.length?{ok:!1,value:null,errors:o}:{ok:!0,value:a,errors:null}},async okAsync(n){return Array.isArray(n)&&(await Promise.all(n.map((a)=>e.okAsync(a)))).every(Boolean)},toJSONSchema(){return{type:"array",items:e.toJSONSchema()}}}}safe(e){if(this.kind==="mixin")return{ok:!1,value:null,errors:[{field:"",error:"mixin",message:"not instantiable"}]};this._assertSyncValidatable("safe");let t=this._runSync(e,{materialize:!0,materializeNested:!0,derived:"issue"});if(t.ok)return{ok:!0,value:t.value,errors:null};if(t.thrown)return{ok:!1,value:null,errors:[{field:t.derivedField||"",error:"derived",message:t.thrown?.message||String(t.thrown)}]};return{ok:!1,value:null,errors:t.errors}}ok(e){if(this.kind==="mixin")return!1;return this._assertSyncValidatable("ok"),this._runSync(e,{materialize:!1,materializeNested:!1,derived:"issue"}).ok}async parseAsync(e){if(this.kind==="mixin")throw Error(":mixin schema '"+(this.name||"anon")+"' is not instantiable");let t=await this._runAsync(e,{materialize:!0,materializeNested:!0,derived:"throw"});if(t.ok)return t.value;if(t.thrown)throw t.thrown;let r=t.from||this;throw new I1(t.errors,r.name,r.kind)}async safeAsync(e){if(this.kind==="mixin")return{ok:!1,value:null,errors:[{field:"",error:"mixin",message:"not instantiable"}]};let t=await this._runAsync(e,{materialize:!0,materializeNested:!0,derived:"issue"});if(t.ok)return{ok:!0,value:t.value,errors:null};if(t.thrown)return{ok:!1,value:null,errors:[{field:t.derivedField||"",error:"derived",message:t.thrown?.message||String(t.thrown)}]};return{ok:!1,value:null,errors:t.errors}}async okAsync(e){if(this.kind==="mixin")return!1;return(await this._runAsync(e,{materialize:!1,materializeNested:!1,derived:"issue"})).ok}pick(...e){return yt(this,(t)=>{let r=Wi(e),s=new Map;for(let i of r){if(!t.has(i))throw Error("pick: unknown field '"+i+"' on "+(this.name||"schema"));s.set(i,t.get(i))}return s})}omit(...e){return yt(this,(t)=>{let r=new Set(Wi(e)),s=new Map;for(let[i,n]of t)if(!r.has(i))s.set(i,n);return s})}partial(){return yt(this,(e)=>{let t=new Map;for(let[r,s]of e)t.set(r,{...s,required:!1});return t})}required(...e){return yt(this,(t)=>{let r=new Set(Wi(e)),s=new Map;for(let[i,n]of t)s.set(i,{...n,required:r.has(i)?!0:n.required});return s})}extend(e){if(!(e instanceof Et))throw Error("extend(): argument must be a schema value");if(e.kind==="union")throw Error("extend(): :union schemas have no fields to merge");return yt(this,(t)=>{let r=new Map(t),s=e._normalize().fields;for(let[i,n]of s){if(r.has(i))throw Error("extend(): field '"+i+"' collides between "+(this.name||"schema")+" and "+(e.name||"other"));r.set(i,n)}return r})}toJSONSchema(){let e={defs:new Map,expanding:new Set},t=qa(this,e);if(t.$schema="https://json-schema.org/draft/2020-12/schema",this.name)t.title=this.name;if(e.defs.size){t.$defs={};for(let[r,s]of e.defs)t.$defs[r]=s}return t}}var Ga={__proto__:null,string:()=>({type:"string"}),text:()=>({type:"string"}),email:()=>({type:"string",format:"email"}),url:()=>({type:"string",format:"uri"}),uuid:()=>({type:"string",format:"uuid"}),phone:()=>({type:"string",pattern:"^[\\d\\s\\-+()]+$"}),zip:()=>({type:"string",pattern:"^\\d{5}(-\\d{4})?$"}),number:()=>({type:"number"}),integer:()=>({type:"integer"}),boolean:()=>({type:"boolean"}),date:()=>({type:"string",format:"date"}),datetime:()=>({type:"string",format:"date-time"}),json:()=>({}),variant:()=>({}),any:()=>({})};function rc(e,t){let r;if(e.typeName==="literal-union"&&e.literals?.length)r=e.literals.length===1?{const:e.literals[0]}:{enum:[...e.literals]};else if(Ga[e.typeName])r=Ga[e.typeName]();else{let i=ie.get(e.typeName);r=i?za(i,t):{}}let s=e.constraints;if(s&&!e.array){if(r.type==="string"){if(s.min!=null)r.minLength=s.min;if(s.max!=null)r.maxLength=s.max;if(s.regex)r.pattern=s.regex.source}else if(r.type==="number"||r.type==="integer"){if(s.min!=null)r.minimum=s.min;if(s.max!=null)r.maximum=s.max}}if(e.array){if(r={type:"array",items:r},s){if(s.min!=null)r.minItems=s.min;if(s.max!=null)r.maxItems=s.max}}if(s&&s.default!==void 0)r.default=s.default;if(e.coerce)r.description=((r.description?r.description+" ":"")+"Coerced from wire data ("+(e.coercer?"~:"+e.coercer:"~"+e.typeName)+").").trim();if(e.transform)r.description=((r.description?r.description+" ":"")+"Derived via transform; the raw input may use different keys.").trim();return r}function za(e,t){let r=e.name||"Anon";if(!t.defs.has(r)&&!t.expanding.has(r))t.expanding.add(r),t.defs.set(r,null),t.defs.set(r,qa(e,t)),t.expanding.delete(r);return{$ref:"#/$defs/"+r}}function qa(e,t){let r=e._normalize();if(e.kind==="enum")return{enum:[...new Set(r.enumMembers.values())]};if(e.kind==="union"){let a=e._unionPlan();return{oneOf:r.unionMembers.map((l)=>{let c=ie.get(l);return c?za(c,t):{}}),discriminator:{propertyName:a.disc}}}let s={},i=[];for(let[a,o]of r.fields)if(s[a]=rc(o,t),o.required&&o.constraints?.default===void 0)i.push(a);if(e.kind==="model")Te.jsonSchemaModelColumns(e,s);let n={type:"object",properties:s};if(i.length)n.required=i;if(r.ensures.length)n.description="Refinements (not expressible in JSON Schema): "+r.ensures.map((a)=>a.message).join("; ")+".";return n}function Wi(e){let t=[];for(let r of e)if(Array.isArray(r))for(let s of r)t.push(s);else t.push(r);return t}function yt(e,t){if(e.kind==="union")throw Error("schema algebra (.pick/.omit/.partial/.required/.extend) is not supported on :union — derive from a constituent schema instead");if(e.kind==="enum")throw Error("schema algebra is not supported on :enum — an enum has no field set");let r=e.kind==="model"?Te.projectableFields(e):e._normalize().fields,s=t(r),i=[];for(let[,o]of s){let l=[];if(o.required)l.push("!");if(o.optional&&!o.required)l.push("?");i.push({tag:"field",name:o.name,modifiers:l,unique:o.unique===!0,primary:o.primary===!0,attrs:o.attrs||null,typeName:o.typeName,array:o.array,literals:o.literals||null,coerce:o.coerce===!0,coercer:o.coercer||null,constraints:o.constraints,transform:o.transform||null})}let n=(e.name||"Schema")+"Derived",a=new Et({kind:"shape",name:n,entries:i});return a._sourceModel=e._sourceModel||(e.kind==="model"?e:null),a}function Xa(e,t,r,s){for(let i of r){if(i.name!=="mixin"||!i.args||!i.args[0])continue;let n=i.args[0].target;if(!n)continue;if(s.stack.includes(n))throw new I1([{field:"",error:"mixin-cycle",message:"mixin cycle: "+s.stack.concat(n).join(" -> ")}],e.name,e.kind);if(s.seen.has(n))continue;let a=ie.getKind(n,"mixin");if(!a)throw new I1([{field:"",error:"mixin-missing",message:"unknown mixin: "+n}],e.name,e.kind);s.seen.add(n),s.stack.push(n);let o=a._desc.entries.filter((l)=>l.tag==="directive"&&l.name==="mixin").map((l)=>({name:l.name,args:l.args||[]}));Xa(e,t,o,s);for(let l of a._desc.entries){if(l.tag!=="field")continue;if(t.has(l.name))throw new I1([{field:l.name,error:"mixin-collision",message:l.name+" from mixin "+n+" collides with existing field"}],e.name,e.kind);if(e.kind!=="model"&&(l.unique===!0||l.attrs))throw new I1([{field:l.name,error:"mixin-persistence",message:l.name+" from mixin "+n+" carries persistence metadata (@unique/attrs) — :model-only; a :"+e.kind+" cannot include it"}],e.name,e.kind);t.set(l.name,{name:l.name,required:l.modifiers.includes("!"),optional:l.modifiers.includes("?"),unique:l.unique===!0,attrs:l.attrs||null,typeName:l.typeName,literals:l.literals||null,array:l.array===!0,coerce:l.coerce===!0,coercer:l.coercer||null,constraints:l.constraints||null,transform:l.transform||null})}s.stack.pop()}}function ic(e){let t=new Et(e);if(t.name)ie.register(t);return t}if(typeof globalThis<"u")globalThis.__ripSchema=globalThis.__ripSchema||{},globalThis.__ripSchema.SchemaRegistry=ie;var Ar={};Fe(Ar,{__batch:()=>M1,__catchErrors:()=>me,__computed:()=>Y1,__detachRef:()=>Ki,__effect:()=>x1,__handleError:()=>ne,__ownerFrame:()=>Tt,__popOwner:()=>X1,__pushOwner:()=>fe,__readonly:()=>ue,__setEffectErrorReporter:()=>nc,__setErrorHandler:()=>de,__state:()=>A1,getEffectSignal:()=>he});var Qa=Symbol.for("rip.runtime.reactive");if(globalThis[Qa])throw Error("two copies of the Rip reactive runtime loaded in one process — states from different copies "+"cannot notify each other (separate dependency graphs, separate effect queues). Run .rip sources through the rip CLI/loader (one shared runtime module per process), or load only one standalone-compiled file per process.");globalThis[Qa]=!0;var N1=null,_r=[],Ke={buckets:[],cursors:[],size:0,low:0,add(e){let t=e.depth,r=this.buckets[t];if(r===void 0)r=this.buckets[t]=new Set;if(r.has(e))return;if(r.add(e),this.size++,tconsole.error(e,t);function nc(e){let t=kt;return kt=e,t}function eo(){try{while(Ke.size>0){let e=Ke.shift();if(!e._disposed)e.run()}}catch(e){throw Ke.clear(),e}}var to={valueOf(){return this.value},toString(){return String(this.value)},[Symbol.toPrimitive](e){return e==="string"?this.toString():this.valueOf()}};function A1(e){if(e!=null&&typeof e==="object"&&typeof e.read==="function")return e;let t=e,r=new Set,s=!1,i=!1,n=!1,a=()=>{if(N1&&typeof N1.markDirty==="function"&&N1.dependencies.has(r))throw Error("reactive runtime: computed dependency changed during evaluation — "+"computed functions must derive without writing or touching a dependency")},o=()=>{for(let f of _r)f.writtenSignals.add(r)},l=()=>{s=!0;try{for(let f of r)if(f.markDirty)f.markDirty(!0);else f._hard=!0,Ke.add(f);if(!wr)eo()}finally{s=!1}},c={get value(){if(n)return t;if(N1?.writtenSignals&&_r.some((f)=>f.writtenSignals.has(r)))throw Error("reactive runtime: computed dependency changed during evaluation — "+"computed functions must derive without writing or touching a dependency");if(N1)r.add(N1),N1.dependencies.add(r);return t},set value(f){if(n||i||f===t)return;if(a(),s)return;o(),t=f,l()},read(){return t},touch(){if(n)return;if(a(),s)return;o(),l()},lock(){return i=!0,c},free(){return r.clear(),c},kill(){return n=!0,r.clear(),t},...to};return c}var kr=0,Ja=1,Tr=2;function ro(e){let t=N1;N1=null;try{for(let[r,s]of e.computedDeps)if(r.value,r.version!==s)return!0;return!1}finally{N1=t}}function Y1(e){let t,r=Tr,s=new Set,i=!1,n=!1,a=!1,o={dependencies:new Set,computedDeps:new Map,writtenSignals:new Set,version:0,markDirty(l){if(n||i)return;if(a)throw Error("reactive runtime: computed dependency changed during evaluation — "+"computed functions must derive without writing or touching a dependency");let c=r;if(l)r=Tr;else if(r===kr)r=Ja;if(c!==kr)return;for(let f of s)if(f.markDirty)f.markDirty(!1);else Ke.add(f)},get value(){if(n)return t;if(N1&&N1!==o)s.add(N1),N1.dependencies.add(s),N1.computedDeps.set(o,-1);if(a)throw Error("reactive runtime: computed value read during its own evaluation — "+"recursive computed reads are not supported");if(r===Ja&&!i)r=ro(o)?Tr:kr;if(r===Tr&&!i){for(let c of o.dependencies)c.delete(o);o.dependencies.clear(),o.computedDeps.clear();let l=N1;o.writtenSignals.clear(),N1=o,_r.push(o),a=!0;try{let c=e();if(c!==t)o.version++;t=c,r=kr}finally{a=!1,_r.pop(),o.writtenSignals.clear(),N1=l}}if(N1&&N1!==o)N1.computedDeps.set(o,o.version);return t},read(){return t},lock(){return i=!0,o.value,o},free(){for(let l of o.dependencies)l.delete(o);return o.dependencies.clear(),o.computedDeps.clear(),s.clear(),o},kill(){n=!0;let l=t;return o.free(),l},...to};return o}function Za(e){let t=e._cleanup;if(!t)return;let r=N1;N1=null;try{t()}finally{N1=r}e._cleanup=null}function x1(e){let t=null,r=0,s=B1,i={depth:s?s.depth+1:0,dependencies:new Set,computedDeps:new Map,_hard:!0,_disposed:!1,get signal(){if(!t&&typeof AbortController<"u"){if(t=new AbortController,i._disposed)t.abort()}return t?t.signal:null},run(){if(i._disposed)return;let a=i._hard;if(i._hard=!1,!a&&!ro(i))return;if(t){try{t.abort()}catch{}t=null}let o=++r;Za(i);for(let f of i.dependencies)f.delete(i);i.dependencies.clear(),i.computedDeps.clear();let l=N1;N1=i;let c=B1;B1=s;try{let f=e();if(typeof f==="function")i._cleanup=f;else if(f&&typeof f.then==="function")f.then((h)=>{if(o!==r||i._disposed){if(typeof h==="function")try{h()}catch(u){kt("[Rip] superseded async cleanup error:",u)}return}if(typeof h==="function")i._cleanup=h},(h)=>{if(h&&h.name==="AbortError")return;if(o!==r||i._disposed)return;kt("[Rip] async effect error:",h)})}finally{N1=l,B1=c}},dispose(){if(i._disposed)return;if(i._disposed=!0,Ke.delete(i),t)try{t.abort()}catch{}Za(i);for(let a of i.dependencies)a.delete(i);i.dependencies.clear()}};try{i.run()}catch(a){throw i.dispose(),a}let n=()=>i.dispose();if(B1)B1.add(n);return n}function M1(e){if(wr)return e();wr=!0;try{return e()}finally{wr=!1,eo()}}function Tt({nested:e=!0}={}){let t=[],r=null,i={depth:B1?B1.depth+1:0,get disposed(){return t===null},get size(){return t===null?0:t.length},add(n){if(t===null)n();else t.push(n)},remove(n){if(t===null)return;let a=t.indexOf(n);if(a>=0)t.splice(a,1)},dispose(){if(t===null)return;let n=t;if(t=null,r!==null){let a=r;r=null,a()}for(let a of n)try{a()}catch(o){kt("[Rip] effect disposer error:",o)}}};if(e&&B1){let n=B1;n.add(i.dispose),r=()=>n.remove(i.dispose)}return i}function fe(e){let t={frame:e,prev:B1};return B1=e,t}function X1(e){if(!e||typeof e!=="object"||!("frame"in e))throw Error("reactive runtime: __popOwner takes the token the matching __pushOwner returned");if(B1!==e.frame)throw Error("reactive runtime: __popOwner out of order — the frame being popped is not the current owner "+"(an inner push was not popped, or this token was already popped)");B1=e.prev}function he(){return N1?N1.signal:null}function ue(e){return Object.freeze({value:e})}function Ki(e,t){if(e&&typeof e.read==="function"&&e.read()===t)e.value=null}var Nr=null;function de(e){let t=Nr;return Nr=e,t}function ne(e){if(Nr)try{Nr(e)}catch(t){console.error("Error in error handler:",t),console.error("Original error:",e)}else throw e}function me(e){return function(...t){try{return e.apply(this,t)}catch(r){ne(r)}}}var Nt={};Fe(Nt,{__Component:()=>Eo,__claimGateConstructor:()=>en,__clsx:()=>Dr,__detach:()=>$r,__detachRef:()=>Ki,__gateBind:()=>wc,__handleComponentError:()=>Xi,__hmrClassify:()=>_t,__hmrEmit:()=>_e,__hmrEntries:()=>Ji,__hmrEvents:()=>cc,__hmrLookup:()=>sc,__hmrMigrateDiff:()=>uo,__hmrMigrateRemount:()=>dc,__hmrPatch:()=>Qi,__hmrPreserveState:()=>xr,__hmrRegisterDefinition:()=>wt,__hmrRegistry:()=>we,__hmrRestoreUi:()=>Pr,__hmrSnapshotUi:()=>Zi,__lis:()=>So,__ownerFrame:()=>Tt,__popComponent:()=>pe,__popOwner:()=>X1,__pushComponent:()=>Le,__pushOwner:()=>fe,__reconcile:()=>bc,__reportChildFailure:()=>kc,__setChildFailureReporter:()=>Ec,__style:()=>Ro,__transition:()=>Sc,getContext:()=>pc,hasContext:()=>gc,setContext:()=>mc});var co=Symbol.for("rip.runtime.components");if(globalThis[co])throw Error("two copies of the Rip component runtime loaded in one process — components from different "+"copies cannot see each other (separate component stacks: context, parent chains, and error boundaries silently break across copies). Run .rip sources through the rip CLI/loader (one shared runtime module per process), or load only one standalone-compiled file per process.");globalThis[co]=!0;var z1=null,fo={},Or=null,ho=new WeakMap,io=!1,we=new Map;function Yi(e,t){if(e===t)return!0;if(!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length)return!1;for(let r=0;ri.has(c)),o=s.filter((c)=>!i.has(c)),l=r.filter((c)=>!n.has(c));return{kept:a,added:o,removed:l}}var Ir=[],lc=64;function _e(e,t={}){let r={type:e,at:Date.now(),...t};if(Ir.push(r),Ir.length>lc)Ir.shift();if(typeof window<"u"&&typeof window.dispatchEvent==="function"&&typeof CustomEvent==="function")try{window.dispatchEvent(new CustomEvent("rip:hmr",{detail:r}))}catch{}return r}function cc(){return Ir.slice()}function xr(e,t){let r=e?.constructor?.__hmrSig,s=t?.constructor?.__hmrSig,i=r?.state,n=s?.state,a=uo(r,s);if(!Array.isArray(i)||!Array.isArray(n))return _e("migrate",{id:t?.constructor?.__hmrId??null,...a,copied:[]}),a;let o=new Set(i),l=[];for(let f of n){if(!o.has(f))continue;let h=e[f],u=t[f];if(h!=null&&u!=null&&typeof h==="object"&&typeof u==="object"&&"value"in h&&"value"in u)u.value=h.value,l.push(f)}let c=t?.constructor?.__hmrId??e?.constructor?.__hmrId??null;return _e("migrate",{id:c,...a,copied:l}),{...a,copied:l}}var mo=["name","type","placeholder"];function po(e){let t=(s)=>typeof e[s]==="string"&&e[s]?e[s]:null,r={tag:e.tagName??null};for(let s of mo)r[s]=t(s);return r.label=typeof e.getAttribute==="function"?e.getAttribute("aria-label"):null,r.value=typeof e.value==="string"?e.value:null,r}function zi(e,t,r){if(!e||!t)return!1;let s=po(e);for(let i of["tag",...mo,"label"])if(s[i]!==t[i])return!1;return!r||t.value==null||s.value===t.value}function fc(e){let t=po(e),r=typeof e.id==="string"&&e.id?e.id:null,s=[],i=e;while(i&&i!==document.body){let n=i.parentElement??i.parentNode??null;if(!n||!n.children)return{identity:t,id:r,path:null};s.unshift(Array.prototype.indexOf.call(n.children,i)),i=n}return{identity:t,id:r,path:i===document.body?s:null}}function hc(e){let t=e.active;if(t&&t.isConnected!==!1&&typeof document.contains==="function"&&document.contains(t))return t;let r=e.locator;if(!r)return null;if(r.id&&typeof document.getElementById==="function"){let o=document.getElementById(r.id);if(zi(o,r.identity,!1))return o}if(!Array.isArray(r.path)||r.path.length===0)return null;let s=document.body;for(let o of r.path.slice(0,-1))if(s=s?.children?.[o]??null,!s)return null;let i=Array.from(s.children??[]),n=i[r.path[r.path.length-1]]??null;if(zi(n,r.identity,!0))return n;let a=i.filter((o)=>zi(o,r.identity,!0));return a.length===1?a[0]:null}function Zi(){if(typeof document>"u")return null;let e=document.activeElement,t=e&&e!==document.body&&e!==document.documentElement?e:null,r=null;if(t&&typeof t.selectionStart==="number")r={start:t.selectionStart,end:t.selectionEnd,direction:t.selectionDirection};return{active:t,locator:t?fc(t):null,selection:r,scrollX:typeof window<"u"?window.scrollX:0,scrollY:typeof window<"u"?window.scrollY:0}}function Pr(e){if(!e||typeof document>"u")return;if(typeof window<"u")window.scrollTo(e.scrollX??0,e.scrollY??0);let t=hc(e);if(!t||typeof t.focus!=="function")return;try{if(t.focus({preventScroll:!0}),e.selection&&typeof t.setSelectionRange==="function")t.setSelectionRange(e.selection.start,e.selection.end,e.selection.direction??"none")}catch{}}function go(e,t){let r=e.constructor?.__hmrId;if(typeof r==="string"&&r)we.get(r)?.instances.delete(e);Object.setPrototypeOf(e,t.prototype),Object.defineProperty(e,"constructor",{value:t,writable:!0,configurable:!0}),wt(t),we.get(t.__hmrId)?.instances.add(e)}function Qi(e,t){if(!e||!t)throw Error("__hmrPatch requires a living instance and a replacement constructor");let r=e.constructor?.__hmrId;return go(e,t),e._hmrRerender(),_e("patch",{id:t.__hmrId??r??null}),e}function bo(e){return Object.keys(e).sort().join(",")}function uc(e,t){let s=(z1?._projectionOwner??z1)?._hmrOrphans;if(!s||s.length===0)return null;let i=e.__hmrId;if(typeof i!=="string")return null;let n=bo(t),a=null;for(let o of s){if(o._state!=="mounted"||o.constructor.__hmrId!==i||o._hmrPropKeys!==n)continue;if(a)return null;a=o}if(!a||_t(a.constructor,e)!=="patch")return null;if(s.splice(s.indexOf(a),1),a.constructor!==e)go(a,e);a._hmrRelease();try{a._hmrApplyProps(t)}catch(o){throw a._teardown({state:"failed",hooks:!1,removeDOM:!0}),o}return a._hmrRebindPending=!0,a}function dc(e,t,r={}){let s=new t(r);return xr(e,s),s}function en(){if(io)throw Error("[Rip] the render-gate construction capability is already claimed");return io=!0,(e,t)=>{let r=Or;Or={brand:fo,component:e,gates:t.gates,parent:t.parent??null,stash:t.stash??null,router:t.router??null,used:!1};try{return new e({})}finally{Or=r}}}function $r(e){if(!e||e.nodeType===11)return;if(typeof e.remove==="function")e.remove();else if(e.parentNode)e.parentNode.removeChild(e)}function Le(e){let t=z1;if(e&&e._parent==null&&t&&t!==e)e._parent=t;return z1=e,t}function pe(e){z1=e}function mc(e,t){if(!z1)throw Error("setContext must be called during component initialization");if(!z1._context)z1._context=new Map;z1._context.set(e,t)}function yo(e,t,r){if(typeof t!=="function")throw Error(r===void 0?`${e}: a context read names its provider — ${e}(Provider, ${JSON.stringify(t)})`:`${e}: the provider named for ${JSON.stringify(r)} is not a component`);let s=typeof t.__hmrId==="string"?t.__hmrId:null,i=z1,n=new Set;while(i&&!n.has(i)){if(n.add(i),i instanceof t||s!==null&&i.constructor?.__hmrId===s)return i._context!==void 0&&i._context.has(r)?{found:!0,value:i._context.get(r)}:{found:!1,provider:i};i=i._parent}return{found:!1,provider:null}}function pc(e,t){let r=yo("getContext",e,t);if(r.found)return r.value;let s=e.name||"the provider";throw Error(r.provider!==null?`getContext: ${s} offers no ${JSON.stringify(t)}`:`getContext: no ${s} above this component — render one around it, or probe with hasContext(${s}, ${JSON.stringify(t)}) where absence is legal`)}function gc(e,t){return yo("hasContext",e,t).found}function Dr(...e){let t="";for(let r of e){if(!r)continue;if(typeof r==="string")t&&(t+=" "),t+=r;else if(typeof r==="object"){if(Array.isArray(r)){let s=Dr(...r);s&&(t&&(t+=" "),t+=s)}else for(let s in r)if(r[s])t&&(t+=" "),t+=s}}return t}function So(e){let t=e.length;if(t===0)return[];let r=[],s=[],i=Array(t).fill(-1);for(let o=0;o>1;if(r[f]0)i[o]=s[l-1]}let n=[],a=s[r.length-1];for(let o=r.length-1;o>=0;o--)n.push(a),a=i[a];return n.reverse(),n}function bc(e,t,r,s,i,n,...a){if(e==null)throw Error("__reconcile: no anchor — the list's create phase never placed one");let o=e.parentNode;if(!o)return;let l=t.keys,c=t.items||[],f=t.blocks,h=l.length,u=r.length,d=Array(u),p=n!=null,m=p?r.map((R,T)=>n(R,T)):r;if(p){let R=new Set;for(let T of m){if(R.has(T))throw Error(`__reconcile: duplicate key ${JSON.stringify(String(T))} — keyed rows need unique keys `+"(the key function must be injective over the items)");R.add(T)}}if(h===0){if(u>0){let R=document.createDocumentFragment();for(let T=0;T=g&&w>=g&&l[S]===m[w]){let R=f[S];if(!R._s)R.p(s,r[w],w,...a);d[w]=R,S--,w--}if(g>w)for(let R=g;R<=S;R++)f[R].d(!0);else if(g>S){let R=w+1=g;N--){let D=d[N];if(!L.has(N-g))D.m(o,P);P=D._first}}t.keys=p?m:r.slice(),t.items=r.slice(),t.blocks=d}var no=!1;function yc(){if(no)return;no=!0;let e=document.createElement("style");e.textContent=[".fade-enter-active,.fade-leave-active{transition:opacity .2s ease}",".fade-enter-from,.fade-leave-to{opacity:0}",".slide-enter-active,.slide-leave-active{transition:opacity .2s ease,transform .2s ease}",".slide-enter-from{opacity:0;transform:translateY(-8px)}",".slide-leave-to{opacity:0;transform:translateY(8px)}",".scale-enter-active,.scale-leave-active{transition:opacity .2s ease,transform .2s ease}",".scale-enter-from,.scale-leave-to{opacity:0;transform:scale(.95)}",".blur-enter-active,.blur-leave-active{transition:opacity .2s ease,filter .2s ease}",".blur-enter-from,.blur-leave-to{opacity:0;filter:blur(4px)}",".fly-enter-active,.fly-leave-active{transition:opacity .2s ease,transform .2s ease}",".fly-enter-from{opacity:0;transform:translateY(-20px)}",".fly-leave-to{opacity:0;transform:translateY(20px)}"].join(""),document.head.appendChild(e)}function Sc(e,t,r,s){yc();let i=e.classList,n=t+"-"+r+"-from",a=t+"-"+r+"-active",o=t+"-"+r+"-to",l=!1,c=null;i.add(n,a),requestAnimationFrame(()=>{requestAnimationFrame(()=>{i.remove(n),i.add(o);let f=(u)=>{if(l||u&&u.target!==e)return;if(l=!0,clearTimeout(c),e.removeEventListener("transitionend",f),e.removeEventListener("transitioncancel",f),i.remove(a,o),s)s()};e.addEventListener("transitionend",f),e.addEventListener("transitioncancel",f);let h=0;try{let u=getComputedStyle(e),d=(p)=>Math.max(0,...String(p).split(",").map((m)=>(parseFloat(m)||0)*(/ms\s*$/.test(m.trim())?1:1000)));h=d(u.transitionDuration)+d(u.transitionDelay)}catch{}c=setTimeout(()=>f(),h+50)})})}function Rc(e){let t=e!=null&&typeof e==="object"?e.name:null;if(t==="GateFailure"||t==="ComponentFailure")return e;let r=Error(e!=null&&e.message!==void 0?e.message:String(e));r.name="ComponentFailure";let s=e!=null?e.status??e.response?.status:void 0;if(s!==void 0)r.status=s;return r.error=e,r}var qi=(e,t)=>console.error(`[Rip] ${e} construction failed:`,t);function Ec(e){let t=qi;return qi=e,t}function kc(e,t){qi(e,t)}function Xi(e,t){let r=Rc(e),s=t,i=new Set;while(s&&!i.has(s)){if(i.add(s),s.onError){let n=Le(s),a=fe(s._frame);try{s.onError(r,t);return}catch(o){}finally{X1(a),pe(n)}}s=s._parent}throw e}var so=new WeakSet;function Tc(e,t){if(so.has(e))return;let r=e.__props??[];if(!Array.isArray(r))throw Error(`${e.name||"component"}: static __props must be an array of declared prop names`);for(let s of r){if(typeof s!=="string"||s.length===0)throw Error(`${e.name||"component"}: static __props entries must be non-empty strings`);if(s.startsWith("_"))throw Error(`${e.name||"component"}: declared prop '${s}' collides with component internals — `+"underscore-prefixed names are reserved for the runtime");if(s in t)throw Error(`${e.name||"component"}: declared prop '${s}' collides with a component member (a method or lifecycle slot already answers '${s}')`)}so.add(e)}function wc(e,t){let s=ho.get(e)?.gates?.[t];if(!s?.cell)throw Error(`[Rip] render gate ${t} has no renderer-resolved source binding — `+"gated components may only be constructed by rip/app createRenderer()");let i=s.value,n=!0;return Y1(()=>{if(n)return n=!1,s.cell.read(),i;let a=s.cell.read();for(let o of s.tail){if(a==null)break;a=a[o]}if(a!=null)i=a;return i})}var vr=new WeakMap;function ao(e,t,r){if(t.startsWith("--")&&typeof e.setProperty==="function")if(r==null||r==="")e.removeProperty(t);else e.setProperty(t,String(r));else e[t]=r}function Ro(e,t){let r=vr.get(e);if(t==null){e.removeAttribute("style"),vr.delete(e);return}if(typeof t!=="object"){e.setAttribute("style",String(t)),vr.delete(e);return}if(r){for(let s of r)if(!(s in t))ao(e.style,s,"")}vr.set(e,Object.keys(t));for(let s of Object.keys(t))ao(e.style,s,t[s])}var _c=new Set(["disabled","hidden","readonly","required","checked","selected","autofocus","autoplay","controls","loop","muted","multiple","novalidate","open","reversed","defer","async","formnovalidate","allowfullscreen","inert","ismap","nomodule","playsinline","default","itemscope","alpha","shadowrootdelegatesfocus","shadowrootclonable","shadowrootserializable"]),oo=(e)=>new Proxy(e,{get(t,r){let s=t[r];return s!=null&&typeof s==="object"&&typeof s.read==="function"?s.value:s}});function lo(e,t){let r=e.__props??[],s=e.__extends??null,i=null;for(let n of Object.keys(t)){if(n==="children")continue;if(n.startsWith("__bind_")&&n.endsWith("__")){let a=n.slice(7,-2);if(r.includes(a))continue;throw Error(`${e.name||"component"}: cannot bind unknown prop '${a}' — declared `+`props are [${r.join(", ")}]`)}if(r.includes(n))continue;if(s!==null){(i??={})[n]=t[n];continue}throw Error(`${e.name||"component"}: unknown prop '${n}' — declared props are `+`[${r.join(", ")}]`)}return i}class Eo{constructor(e={}){let t=uc(this.constructor,e);if(t)return t;this._state="new",this._owner=z1?._projectionOwner??z1??null,Tc(this.constructor,this);let r=this.constructor.__gates,s=Or,i=s?.brand===fo&&s.component===this.constructor&&s.used!==!0;if(i)s.used=!0;if(r?.length&&!i)throw Error("[Rip] component declares render gates (<~) and cannot be constructed directly or as an embedded child; render gates are honored only by rip/app createRenderer()");if(i){if(ho.set(this,s),s.parent)this._parent=s.parent;if(s.stash!=null)this.stash=s.stash;if(s.router!=null)this.router=s.router,Object.defineProperty(this,"params",{get:()=>s.router.params,configurable:!0}),Object.defineProperty(this,"query",{get:()=>s.router.query,configurable:!0})}if(this.stash==null&&globalThis.__ripStash!=null)this.stash=globalThis.__ripStash;if(this.router==null&&globalThis.__ripRouter!=null)this.router=globalThis.__ripRouter;let n=lo(this.constructor,e);if("children"in e)this.children=e.children;if(this.constructor.__hmrId)this._hmrPropKeys=bo(e);if(this.constructor.__extends!=null)this._rest=n??{},this.rest=A1(oo(this._rest));this._frame=Tt({nested:!1});let a=Le(this),o=fe(this._frame);try{this._init(e)}catch(l){X1(o),pe(a),this._teardown({state:"failed",hooks:!1,removeDOM:!0}),this._initFailed=!0,Xi(l,this);return}if(X1(o),pe(a),this.constructor.__hmrId)ac(this)}_init(e){}_beginProjection(e){let t={prev:Le(this),owner:this._projectionOwner??null};return this._projectionOwner=e,t}_endProjection(e){this._projectionOwner=e.owner,pe(e.prev)}_setChildren(e){let t=this.children;if(t!=null&&typeof t==="object"&&typeof t.read==="function"&&"value"in t){t.value=e;return}this.children=e}_updateProp(e,t){if(this._state==="failed"||this._state==="unmounted")return;let r=this.constructor.__props??[];if(!r.includes(e)){if(this.constructor.__extends){this._setRestProp(e,t);return}throw Error(`${this.constructor.name||"component"}: cannot update unknown prop '${e}' — declared `+`props are [${r.join(", ")}]`)}let s=this[e];if(s&&typeof s==="object"&&"value"in s){s.value=t;return}throw Error(`${this.constructor.name||"component"}: prop '${e}' is non-reactive — parent updates `+"cannot reach it (declare it with ':=' to receive updates)")}_setRestProp(e,t){if(e.startsWith("__bind_"))return;if(this._state==="failed"||this._state==="unmounted")return;if(this._rest||(this._rest={}),t==null)delete this._rest[e];else this._rest[e]=t;this.rest.touch();let r=fe(this._frame);try{this._applyInheritedProp(this._inheritedInst??this._inheritedEl,e,t)}finally{X1(r)}}_applyRestToInheritedEl(){if(this._state==="failed"||this._state==="unmounted")return;if(!this._inheritedEl||!this._rest)return;for(let e in this._rest)this._applyInheritedProp(this._inheritedEl,e,this._rest[e])}_applyInheritedProp(e,t,r){if(this._state==="failed"||this._state==="unmounted")return;if(!e||t==="key"||t==="ref"||t==="children"||t.startsWith("__bind_"))return;if(this._inheritedOwn?.has(t))return;let s=this._restWriters?.[t];if(s){if(s(),this._frame)this._frame.remove(s);delete this._restWriters[t]}if(r!=null&&typeof r==="object"&&typeof r.read==="function"){(this._restWriters??={})[t]=x1(()=>{this._applyPlainInheritedProp(e,t,r.value)});return}this._applyPlainInheritedProp(e,t,r)}_applyPlainInheritedProp(e,t,r){if(typeof e._updateProp==="function"){if(e._state==="failed"||e._state==="unmounted")return;e._updateProp(t,r);return}let s=e;if(t[0]==="@"){let i=t.slice(1).split(".")[0];this._restHandlers||(this._restHandlers={});let n=this._restHandlers[t];if(n)s.removeEventListener(i,n);if(typeof r==="function"){let a=(o)=>M1(()=>r(o));this._restHandlers[t]=a,s.addEventListener(i,a)}else delete this._restHandlers[t];return}if(t==="class"||t==="className"){if(s instanceof SVGElement)s.setAttribute("class",Dr(r));else s.className=Dr(r);return}if(t==="style"){Ro(s,r);return}if(t==="innerHTML"||t==="textContent"||t==="innerText"||t==="value"){s[t]=r??"";return}if(t==="checked"){s.checked=!!r;return}if(_c.has(t)){s.toggleAttribute(t,!!r);return}if(r==null)s.removeAttribute(t);else s.setAttribute(t,r)}_beginMount(){if(this._state==="new"){this._state="mounting";return}let e=this.constructor.name||"component";if(this._state==="mounting")throw Error(`${e}: cannot mount an instance whose mount is already in progress`);if(this._state==="mounted")throw Error(`${e}: cannot mount an already-mounted instance — construct a new instance for another target`);if(this._state==="failed")throw Error(`${e}: cannot mount a failed instance — its mount rolled back; construct a new instance`);throw Error(`${e}: cannot mount an unmounted instance — its effects were disposed on unmount; construct a new instance`)}_mountCreate(){if(this._beginMount(),this._hmrRebindPending){if(this._hmrRebindPending=!1,!this._hmrRebind())return!1}let e=Le(this),t=fe(this._frame),r=null,s=!1;try{this._root=this._create()}catch(i){r=i,s=!0}finally{X1(t),pe(e)}if(s)return this._failMount(r),!1;return!0}_mountSetup(e=null){if(this._state!=="mounting")return this._nodes?.[0]??this._root;let t=Le(this),r=fe(this._frame),s=null,i=!1;try{if(e){let n=this._nodes?.[0]??this._root;if(n?.parentNode)n.parentNode.insertBefore(e,n)}if(this.beforeMount)this.beforeMount();if(this._setup)this._setup();if(this.mounted)this.mounted();this._state="mounted",$r(e),this._hmrDrainOrphans((n,a)=>console.error(`[Rip] ${n} error:`,a))}catch(n){s=n,i=!0}finally{X1(r),pe(t)}if(i)return this._failMount(s),e;return this._nodes?.[0]??this._root}_failMount(e){this._teardown({state:"failed",hooks:!1,removeDOM:!0}),Xi(e,this)}_dispose(e,t){if(this._children){for(let r of this._children)try{t(r)}catch(s){e("child teardown",s)}this._children=null}try{this._frame?.dispose()}catch(r){e("owner disposal",r)}if(this._restWriters){for(let r of Object.values(this._restWriters))try{r()}catch(s){e("rest writer cleanup",s)}this._restWriters=null}if(this._restHandlers){if(this._inheritedEl)for(let[r,s]of Object.entries(this._restHandlers))try{this._inheritedEl.removeEventListener(r.slice(1).split(".")[0],s)}catch(i){e("rest handler cleanup",i)}this._restHandlers=null}if(this._refCleanups){let r=this._refCleanups;this._refCleanups=null;try{M1(()=>{for(let s of r)try{s()}catch(i){e("ref cleanup",i)}})}catch(s){e("ref cleanup batch flush",s)}}this._children=null,this._refCleanups=null,this._restWriters=null,this._restHandlers=null}_detachDOM(e,t){if(t)if(this._nodes)for(let r of this._nodes)try{$r(r)}catch(s){e("DOM detach",s)}else try{$r(this._root)}catch(r){e("DOM detach",r)}this._root=null,this._nodes=null,this._inheritedEl=null,this._inheritedInst=null,this._inheritedOwn=null}_teardown({state:e,hooks:t,removeDOM:r}){if(this._state==="failed"||this._state==="unmounted")return;if(this.constructor.__hmrId)oc(this);this._state=e;let s=(i,n)=>console.error(`[Rip] ${i} error:`,n);if(this._hmrDrainOrphans(s),t)try{if(this.beforeUnmount)this.beforeUnmount()}catch(i){s("beforeUnmount",i)}if(this._dispose(s,(i)=>{if(t)i.unmount({removeDOM:r});else i._teardown({state:i._state==="mounted"?"unmounted":"failed",hooks:!1,removeDOM:!0})}),t)try{if(this.unmounted)this.unmounted()}catch(i){s("unmounted",i)}this._detachDOM(s,r),this._target=null}_hmrRelease(){let e=(t,r)=>console.error(`[Rip] ${t} error:`,r);try{if(this.beforeUnmount)this.beforeUnmount()}catch(t){e("beforeUnmount",t)}this._hmrOrphans=[],this._hmrReleasing=!0;try{this._dispose(e,(t)=>t.unmount({removeDOM:!0}))}finally{this._hmrReleasing=!1}this._detachDOM(e,!0),this._frame=Tt({nested:!1}),this._state="new"}_hmrRebind(){let e=(s,i)=>console.error(`[Rip] ${s} error:`,i),t=Le(this),r=fe(this._frame);try{if(typeof this._hmrRefreshComputeds==="function")this._hmrRefreshComputeds();if(typeof this._hmrBindEffects==="function")this._hmrBindEffects()}catch(s){return X1(r),pe(t),e("hmr rebind",s),this._failMount(s),!1}return X1(r),pe(t),!0}_hmrApplyProps(e){let t=lo(this.constructor,e);if("children"in e)this.children=e.children;for(let r of this.constructor.__props??[]){let s=`__bind_${r}__`;if(s in e){this[r]=e[s];continue}if(!(r in e))continue;let i=e[r];if(i!=null&&typeof i==="object"&&typeof i.read==="function")this[r]=i;else this._updateProp(r,i)}if(this.constructor.__extends!=null)this._rest=t??{},this.rest.value=oo(this._rest)}_hmrDrainOrphans(e){let t=this._hmrOrphans;if(!t)return;this._hmrOrphans=null;for(let r of t)try{r.unmount({removeDOM:!0})}catch(s){e("orphan teardown",s)}}_hmrRerender(){let e=this.constructor.name||"component";if(this._state!=="mounted")throw Error(`${e}: _hmrRerender requires a mounted instance`);let t=this._target,r=this._nodes,i=(r?.[0]??this._root)?.parentNode??null,n=r?.length?r[r.length-1].nextSibling:this._root?this._root.nextSibling:null;if(this._hmrRelease(),!this._hmrRebind())return this;if(typeof this._create!=="function")return this._state="mounted",this._hmrDrainOrphans((a,o)=>console.error(`[Rip] ${a} error:`,o)),this;if(!this._mountCreate())return this;try{let a=i&&i.nodeType!==11?i:null;if(a&&a.isConnected===!1)a=null;if(!a&&typeof t==="string"&&typeof document<"u")a=document.querySelector(t);else if(!a&&t&&t.nodeType!==11&&t.isConnected!==!1)a=t;else if(!a&&typeof document<"u")a=document.querySelector("#content")||document.querySelector("#app");if(a){let o=n&&(typeof a.contains!=="function"||a.contains(n))?n:null;if(this._nodes)for(let l of this._nodes)a.insertBefore(l,o);else if(this._root)a.insertBefore(this._root,o);this._target=a.nodeType===11?null:a}}catch(a){return this._failMount(a),this}return this._mountSetup(),this}mount(e){if(!this._mountCreate())return this;try{if(typeof e==="string")e=document.querySelector(e);if(this._target=e,this._root)e.appendChild(this._root)}catch(t){return this._failMount(t),this}return this._mountSetup(),this}unmount({removeDOM:e=!0}={}){if(this._state==="failed"||this._state==="unmounted")return;if(this._state==="mounted"&&this._owner?._hmrReleasing){this._owner._hmrOrphans.push(this);return}if(this._state==="mounting")throw Error(`${this.constructor.name||"component"}: cannot unmount while mounting`);this._teardown({state:"unmounted",hooks:this._state==="mounted",removeDOM:e})}emit(e,t){if(this._state!=="mounted"||!this._root)throw Error(`${this.constructor.name||"component"}: emit('${e}') outside the mounted window — `+"emit dispatches on the live root; call after mount and before unmount");(this._nodes?.[0]??this._root).dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!0}))}static mount(e="body"){return new this().mount(e)}}var ti={};Fe(ti,{ariaCurrent:()=>Gr,browserAdapter:()=>Vr,buildRoutes:()=>Pt,check:()=>ei,connectFeed:()=>Zr,createApply:()=>Qr,createComponents:()=>Fr,createMutation:()=>$o,createRenderer:()=>Wr,createRouter:()=>Ur,createStash:()=>Mr,createWorkspace:()=>Xr,currentRouter:()=>Wc,currentStash:()=>Vc,debounce:()=>Do,delay:()=>jr,hold:()=>Po,interceptClicks:()=>Kr,launch:()=>zr,ownsAnchor:()=>Lt,parseQuery:()=>Ze,persistStash:()=>Hr,preloadLinks:()=>Yr,rash:()=>Mt,source:()=>wo,throttle:()=>xo,unwrapStash:()=>Ne,validatePrepared:()=>Rn});var Cr,tn,ko,To=Symbol.for("rip.source"),rn=Symbol.for("rip.source.family"),Nc=64,Ac=30000,vc=/^(\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)\s*(s|sec|second|seconds|m|min|minute|minutes|h|hr|hour|hours|d|day|days|w|week|weeks|y|year|years)$/;function P1(e){return e!=null&&(typeof e==="object"||typeof e==="function")&&(e[To]===!0||e[rn]===!0)}function ge(e){return e!=null&&typeof e==="function"&&e[rn]===!0}ko=function(e){let t,r;if(e==null)return 0;if(typeof e==="number"){if(!(Number.isFinite(e)&&e>=0))throw TypeError('Rip App: source staleTime must be a non-negative finite number, a duration string, or "forever"');return e}if(typeof e==="string"){if(e==="forever")return 1/0;if(r=e.match(vc),r)return t=parseFloat(r[1]),(()=>{switch(r[2][0]){case"s":return t*1000;case"m":return t*60000;case"h":return t*3600000;case"d":return t*86400000;case"w":return t*604800000;case"y":return t*31536000000}})()}throw TypeError('Rip App: source staleTime must be a non-negative number, a duration such as "5 min", or "forever"')};Cr=function(e,t,r=null){let s=A1(null),i=A1(!1),n=A1(null),a=0,o=null,l=null,c=!1,f=!1,h=!1,u=0,d=0,p=async function(S=!1,w=!1){let R,T;o?.abort(),o=typeof AbortController<"u"?new AbortController:null;let F=++a;if(!S)i.value=!0;let L=h;try{if(R=e(o?.signal),!(R!=null&&typeof R.then==="function"))throw TypeError("Rip App: source fetch must return a Promise");if(T=await R,F!==a)return T;return n.value=null,s.value=T,h=!0,u=Date.now(),d=w&&!f?u+Ac:0,T}catch(P){if(F!==a)return;if(P?.name==="AbortError")return;if(n.value=P,!L)throw h=!1,u=0,P;return}finally{if(F===a)i.value=!1,l=null,c=!1,f=!1,r?.()}},m=function(S=!1,w=!1){let R=p(S,w);return l=R,c=w,f=!1,R},g=function(){return t===1/0||Date.now()-uNc){o=!1;for(let[l,c]of r){if(l===a)continue;if(c.loading)continue;r.delete(l),c.reset(),o=!0;break}if(!o)break}return},i=function(a){if(a==null)throw TypeError("Rip App: keyed source requires a key");let o=Oc(a),l=r.get(o);if(l)return r.delete(o),r.set(o,l),l;return l=Cr(function(c){return e(a,c)},t,s),r.set(o,l),s(o),l},n=function(a){return i(a).read()};return n[rn]=!0,n.cellFor=i,n.reset=function(){let a=Array.from(r.values());r.clear();for(let o of a)o.reset();return},n};function wo(e){if(!(e!=null&&typeof e==="object"&&!Array.isArray(e)))throw TypeError("Rip App: source expects an options object");if(typeof e.fetch!=="function")throw TypeError("Rip App: source options require a fetch function");let t=ko(e.staleTime);if(Object.prototype.hasOwnProperty.call(e,"kind")){if(!(e.kind==="singleton"||e.kind==="keyed"))throw TypeError("Rip App: source kind must be 'singleton' or 'keyed'");if(e.kind==="singleton"){if(e.fetch.length>1)throw TypeError("Rip App: singleton source fetch accepts at most one AbortSignal parameter");return Cr(e.fetch,t)}if(e.fetch.length<1||e.fetch.length>2)throw TypeError("Rip App: keyed source fetch requires a key parameter and accepts one optional AbortSignal parameter");return tn(e.fetch,t)}if(e.fetch.length>1)throw TypeError("Rip App: inferred source fetch accepts no parameters for a singleton or one key parameter for a keyed family");return e.fetch.length===1?tn(e.fetch,t):Cr(e.fetch,t)}var ln,It,nn,vt,$1=Symbol("rip.app.stash.raw"),Ye=Symbol("rip.app.stash.signals"),Ic=Symbol("rip.app.stash.keys"),Ao=Symbol("rip.app.stash.defaults"),$c=Symbol.for("rip.app.stash.purge"),vo=new WeakMap,Dc=0,cn=A1(0),sn=function(){return cn.value++},Oo=function(e,t){let r=e[Ye];if(!r)r=new Map,Object.defineProperty(e,Ye,{value:r});let s=r.get(t);if(!s)s=A1(e[t]),r.set(t,s);return s},Ot=function(e){return Oo(e,Ic)},an=function(e){Ot(e).value=++Dc;return};It=function(e){if(!(e!=null&&typeof e==="object"))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null||Array.isArray(e)};var _o=function(e){if(!It(e))return e;let t=vo.get(e);if(t)return t;return ln(e)},ze=function(e,t){let r=e?.[$1];if(!r)return e[t];let s=r[t];if(P1(s)){if(ge(s))return s;return _o(s.read())}return _o(Oo(r,t).value)},on=function(e,t,r){let s,i,n,a,o=e?.[$1];if(!o)return e[t]=r,r;if(Array.isArray(o)&&t==="length"){if(a=o.length,n=+r,o.length=n,n!==a){if(o[Ye]){for(let h=Math.min(a,n),u=Math.max(a,n);h0))throw TypeError("Rip App: stash path must be a non-empty string");let n=[],a=0;if(e[0]!=="["){i=a;while(a=e.length||a===i)throw TypeError(`Rip App: malformed stash path '${e}'`);if(r=e.slice(i,a),a++,e[a]!=="]")throw TypeError(`Rip App: malformed stash path '${e}'`);a++,n.push(r)}else{i=a;while(a{let s=[];for(let i in r){if(!Object.hasOwn(r,i))continue;let n=r[i];s.push(nn(n,t))}return s})()};vt=function(e){if(!It(e))return e;let t=e[$1]?e[$1]:e;if(Array.isArray(t))return(()=>{let s=[];for(let i of t)if(!P1(i))s.push(vt(i));return s})();let r={};for(let s in t){if(!Object.hasOwn(t,s))continue;let i=t[s];if(P1(i))continue;r[s]=vt(i)}return r};function Io(e){let t=e?.[$1]?e[$1]:e;if(!(t!=null&&typeof t==="object"))return;Object.defineProperty(t,Ao,{value:vt(t),configurable:!0});return}function Lr(e){if(P1(e))return e;if(!It(e))return e;let t=e[$1]?e[$1]:e;if(Array.isArray(t))return(()=>{let s=[];for(let i of t)s.push(Lr(i));return s})();let r={};for(let s in t){if(!Object.hasOwn(t,s))continue;let i=t[s];Object.defineProperty(r,s,{value:Lr(i),writable:!0,enumerable:!0,configurable:!0})}return r}function Je(e,t){let r,s,i;if(!(e!=null&&typeof e==="object"))return;if(!(t!=null&&typeof t==="object"))return;let n=e[$1]?e[$1]:e;for(let a in t){if(!Object.hasOwn(t,a))continue;let o=t[a];if(r=Object.prototype.hasOwnProperty.call(n,a)?n[a]:void 0,P1(r))continue;if(Array.isArray(r)&&r.some(function(l){return P1(l)}))continue;if(s=r!=null&&typeof r==="object"&&!Array.isArray(r),i=o!=null&&typeof o==="object"&&!Array.isArray(o),s&&i)Je(e[a],o);else e[a]=vt(o)}return}var Cc=function(e,t){let r,s=t[Ao];if(!s)return;r=function(i,n,a){let o;for(let l in n){if(!Object.hasOwn(n,l))continue;if(o=n[l],P1(o))continue;if(!(a!=null&&Object.prototype.hasOwnProperty.call(a,l))){delete i[l];continue}if(o!=null&&typeof o==="object"&&!Array.isArray(o))r(i[l],o,a[l])}return},r(e,t,s),Je(e,s);return},Lc={inc:!0,dec:!0,flip:!0,join:!0,keys:!0,has:!0,del:!0,peek:!0,reset:!0,source:!0},Mc=function(e,t,r){if(r==="inc")return function(s,i=1){let n=(Me(e,s)??0)+i;return At(e,s,n),n};if(r==="dec")return function(s,i=1){let n=(Me(e,s)??0)-i;return At(e,s,n),n};if(r==="flip")return function(s){let i=!(Me(e,s)??!1);return At(e,s,i),i};if(r==="join")return function(s,i){if(!(i!=null&&typeof i==="object"&&!Array.isArray(i)))throw TypeError("Rip App: join expects a plain object");M1(function(){let n=Me(e,s);if(!(n!=null&&typeof n==="object"&&!Array.isArray(n)))At(e,s,{}),n=Me(e,s);return(()=>{let a=[];for(let o in i){if(!Object.hasOwn(i,o))continue;let l=i[o];a.push(n[o]=l)}return a})()});return};if(r==="keys")return function(s){let i=s!=null?Me(e,s):e;if(!(i!=null&&typeof i==="object"))return[];let n=i[$1]?i[$1]:i;return Ot(n).value,Object.keys(n)};if(r==="has")return function(s){let i,n,a=qe(s);if(!(a.length>0))return!1;let o=e;for(let l=0;l0))return;let a=e;for(let o=0;o0))throw TypeError("Rip App: component path must be a non-empty string");let t=e.split("/"),r=t.some(function(n){return!n||n==="."||n===".."}),s=t.at(-1),i=t.slice(0,-1).some(function(n){return n.endsWith(".rip")});if(e.includes("\\")||r||i||s===".rip"||!s.endsWith(".rip"))throw TypeError(`Rip App: invalid component path '${e}'`);return e};fn=function(e){if(typeof e!=="string")throw TypeError("Rip App: component source must be a string");return e};hn=function(e){if(e===""||e==null)return"";if(typeof e!=="string")throw TypeError("Rip App: component directory must be a string");let t=e.split("/");if(e.includes("\\")||t.some(function(r){return!r||r==="."||r===".."}))throw TypeError(`Rip App: invalid component directory '${e}'`);return e};function Fr(){let e=new Map,t=new Map,r=new Set,s=function(n,a){let o=[];for(let l of Array.from(r))o.push((()=>{try{return l(n,a)}catch(c){return console.error("[Rip] component watcher error:",c)}})());return o};return{read(n){return e.get(Ae(n))},write(n,a){n=Ae(n),a=fn(a);let o=e.has(n)?"change":"create";e.set(n,a),t.delete(n),s(o,n);return},del(n){n=Ae(n),e.delete(n),t.delete(n),s("delete",n);return},exists(n){return e.has(Ae(n))},size(){return e.size},list(n=""){let a;n=hn(n);let o=n?n+"/":"",l=[];for(let[c]of e)if(c.startsWith(o)){if(a=c.slice(o.length),!a.includes("/"))l.push(c)}return l},listAll(n=""){n=hn(n);let a=n?n+"/":"",o=[];for(let[l]of e)if(l.startsWith(a))o.push(l);return o},load(n){let a,o;if(!(n!=null&&typeof n==="object"&&!Array.isArray(n)))throw TypeError("Rip App: component load expects a source object");for(let l in n){if(!Object.hasOwn(n,l))continue;let c=n[l];l=Ae(l),c=fn(c),e.set(l,c),t.delete(l)}return},watch(n){if(typeof n!=="function")throw TypeError("Rip App: component watch expects a function");r.add(n);let a=!1;return function(){if(a)return;a=!0,r.delete(n);return}},getCompiled(n){return t.get(Ae(n))},setCompiled(n,a){if(n=Ae(n),!(a!=null&&typeof a==="object"&&!Array.isArray(a)))throw TypeError("Rip App: compiled component module must be an object");t.set(n,a);return}}}var Lo,Mo,C1,dn,jo,Fo,Bo,un=/^\w+$/,Uo={static:0,dynamic:1,optional:2,catchall:3},Co=8;C1=function(e){throw Error(`Rip App: ${e}`)};var xt=function(e){try{return decodeURIComponent(e)}catch(t){return null}};Bo=function(e){if(e==="")return"";if(typeof e!=="string")throw TypeError("Rip App: route root must be a string");let t=e.split("/");if(e.includes("\\")||t.some(function(r){return!r||r==="."||r===".."}))throw TypeError(`Rip App: invalid route root '${e}'`);return e};var Vo=function(e,t){let r;if(r=/^\[\[(.+)\]\]$/.exec(e)){if(!un.test(r[1]))C1(`invalid optional segment '${e}' in '${t}'`);return{kind:"optional",name:r[1]}}else if(r=/^\[\.\.\.(.+)\]$/.exec(e)){if(!un.test(r[1]))C1(`invalid catch-all segment '${e}' in '${t}'`);return{kind:"catchall",name:r[1]}}else if(e.startsWith("[..."))return C1(`invalid catch-all segment '${e}' in '${t}'`);else if(r=/^\[(.+)\]$/.exec(e)){if(!un.test(r[1]))C1(`invalid dynamic segment '${e}' in '${t}'`);return{kind:"dynamic",name:r[1]}}else if(/^\(.+\)$/.test(e))return{kind:"group"};else if(e.includes("[")||e.includes("]"))return C1(`invalid segment '${e}' in '${t}': markers claim a whole segment`);else return{kind:"static",text:e}};Lo=function(e){let t,r=(()=>{let h=[];for(let u of e.slice(0,-4).split("/"))h.push(Vo(u,e));return h})();if(r[r.length-1].kind==="group")C1(`route file name cannot be a group segment: '${e}'`);let s=r.filter(function(h){return h.kind!=="group"});for(let h=0;hCo)C1(`more than ${Co} optional segments in '${e}'`);let o="",l=[],c=[{shape:"",display:""}];for(let h of s)switch(l.push(Uo[h.kind]),h.kind){case"static":t="/"+h.text,o+=t,c=c.map(function(u){return{shape:u.shape+t,display:u.display+t}});break;case"dynamic":o+=`/:${h.name}`,c=c.map(function(u){return{shape:u.shape+"/:",display:`${u.display}/:${h.name}`}});break;case"optional":o+=`/:${h.name}?`,c=c.flatMap(function(u){return[u,{shape:u.shape+"/:",display:`${u.display}/:${h.name}`}]});break;case"catchall":o+=`/*${h.name}`,c=c.map(function(u){return{shape:u.shape+"/*",display:`${u.display}/*${h.name}`}});break}if(o==="")o="/";if(new Set(c.map(function(h){return h.shape||"/"})).size{let l=[];for(let c of e)l.push(Vo(c,t));return l})().filter(function(l){return l.kind!=="group"});for(let l of s)if(l.kind==="optional"||l.kind==="catchall")C1(`not-found page under an optional or catch-all segment: '${t}'`);let i=[];for(let l of s)if(l.name!=null){if(i.includes(l.name))C1(`duplicate parameter name '${l.name}' in '${t}'`);i.push(l.name)}let n="",a="",o=[];for(let l of s)if(o.push(Uo[l.kind]),l.kind==="static")n+="/"+l.text,a+="/"+l.text;else n+=`/:${l.name}`,a+="/:";return{pattern:n+"/*",shape:a+"/*",parts:s,ranks:o}};jo=function(e,t){let r;return r=function(s,i){let n,a,o,l;if(s===e.length)return i===t.length?[]:null;let c=e[s];return(()=>{switch(c.kind){case"static":if(!(if.length))continue;if(a=T.slice(f.length),l=a.split("/"),n=l.some(function(F){return!F||F==="."||F===".."}),a.includes("\\")||n||l.at(-1)===".rip")throw TypeError(`Rip App: invalid route file path '${T}'`);if(l.at(-1)==="_layout.rip"){h.set(l.slice(0,-1).join("/"),T);continue}if(l.at(-1)==="_404.rip"){if(l.slice(0,-1).some(function(F){return F.startsWith("_")}))continue;u.push({...Mo(l.slice(0,-1),a),rel:a,file:T});continue}if(l.some(function(F){return F.startsWith("_")}))continue;if(!a.endsWith(".rip"))throw TypeError(`Rip App: route files must be .rip sources: '${T}'`);d.push({...Lo(a),rel:a,file:T})}let p=new Map;for(let T of[...d].sort(function(F,L){return F.relF.pattern)return 1;return 0});let m=new Map;for(let T of[...u].sort(function(F,L){return F.relF.pattern)return 1;return 0});let g=d.map(function(T){return{route:Object.freeze({pattern:T.pattern,file:T.file,layouts:Object.freeze(dn(T.rel,h))}),parts:T.parts}}),b=u.map(function(T){return{route:Object.freeze({pattern:T.pattern,file:T.file,layouts:Object.freeze(dn(T.rel,h))}),parts:T.parts}}),S=function(T){if(typeof T!=="string")throw TypeError("Rip App: route match expects a path string");if(!T.startsWith("/"))return null;while(T.length>1&&T.endsWith("/"))T=T.slice(0,-1);return T==="/"?[]:T.slice(1).split("/")},w=function(T){let F;if(l=S(T),!l)return null;for(let L of g){if(F=jo(L.parts,l),!F)continue;return{route:L.route,params:Object.fromEntries(F)}}return null},R=function(T){let F;if(l=S(T),!l)return null;for(let L of b){if(F=Fo(L.parts,l),!F)continue;return{route:L.route,params:Object.fromEntries(F)}}return null};return Object.freeze({routes:Object.freeze(g.map(function(T){return T.route})),match:w,notFound:R})}function Ze(e){if(typeof e!=="string")throw TypeError("Rip App: parseQuery expects a query string");return Object.fromEntries(new URLSearchParams(e))}var q1,mn,Wo,Br;q1=function(e){let t=e.indexOf("#"),r=t>=0?e.slice(t+1):"",s=t>=0?e.slice(0,t):e,i=s.indexOf("?"),n=i>=0?s.slice(i+1):"";return{path:i>=0?s.slice(0,i):s,query:n,hash:r}};mn=function(e,t){let r=Object.keys(t);return r.length===Object.keys(e).length&&r.every(function(i){return e[i]===t[i]})?e:t};Br=function(e){if(!(e!=null&&typeof e.match==="function"&&Array.isArray(e.routes)))throw TypeError("Rip App: createRouter requires a route manifest");return e};Wo=function(e){if(e===""||e==null)return"";if(!(typeof e==="string"&&e.startsWith("/")&&!e.endsWith("/")))throw TypeError(`Rip App: invalid router base '${e}'`);return e};function Ur(e){let t,{routes:r,adapter:s,onError:i}=e??{};if(!(r!=null&&(typeof r==="function"||typeof r.match==="function"&&Array.isArray(r.routes))))throw TypeError("Rip App: createRouter requires a route manifest or manifest thunk");for(let v of["read","push","replace","go","listen"])if(typeof s?.[v]!=="function")throw TypeError(`Rip App: router adapter requires a ${v} function`);let n=Wo(e?.base),a=e?.hash===!0;if(n&&a)throw TypeError("Rip App: a base path does not apply in hash mode");let o=typeof r==="function"?Br(r()):Br(r),l=new Set,c=null,f=A1(null),h=A1(null),u=A1({}),d=A1({}),p=A1(""),m=jr(100,A1(!1)),g=Y1(function(){let v=h.value;if(!v)return null;return{route:v,layouts:v.layouts,params:u.value,query:d.value}}),b=function(v){if(!n)return v;if(v===n)return"/";if(v.startsWith(n+"/"))return v.slice(n.length);return null},S=function(v){if(!n)return v;return v==="/"?n:n+v},w=function(v){return a?s.read().split("#")[0]+"#"+v:S(v)},R=function(v){return i?.({status:404,path:v}),!1},T=0,F=function(v){return typeof v==="string"&&!v.startsWith("//")&&!v.includes("\\")},L=function(v){if(!F(v))return null;return o.match(v)},P=function(v){if(!F(v))return null;return o.match(v)??o.notFound?.(v)??null},N=function(v,j,X,x){let Z=mn(u.value,v.params),U=mn(d.value,Ze(X));M1(function(){return f.value=j,h.value=v.route,u.value=Z,d.value=U,p.value=x});let r1={path:j,route:v.route,params:Z,query:U,hash:x};T+=1;try{for(let Q of Array.from(l))try{Q(r1)}catch(l1){console.error("[Rip] router onNavigate error:",l1)}}finally{T-=1}return!0},D=function(){if(T>=10)throw Error("Rip App: navigation loop — ten nested navigations from onNavigate")},O=function(){let v,j,X,x,Z,U=s.read();if(a){if(v=U.indexOf("#"),X=v>=0?U.slice(v+1):"/",X==="")X="/";({path:x,query:Z,hash:j}=q1(X))}else if({path:x,query:Z,hash:j}=q1(U),x=b(x),x==null)return R(q1(U).path);let r1=P(x);if(!r1)return R(x);return N(r1,x,Z,j)},W=null,H=null,G=function(){W=null;let v=s.readState?.()??{};return s.replace(s.read(),{...v,__ripScroll:s.scroll?.save?.()??null})},k=function(){return!W?W=setTimeout(G,100):void 0};return t={init(){if(c)return t;return O(),c=s.listen(function(){if(!O())return;let v=s.readState?.();return s.scroll?.restore?.(v?.__ripScroll??null)}),H=s.scroll?.watch?.(k)??null,t},push(v,j={}){D();let{path:X,query:x,hash:Z}=q1(v),U=P(X);if(!U)return R(X);let r1=s.scroll?.save?.()??null,Q=s.readState?.()??{};if(s.replace(s.read(),{...Q,__ripScroll:r1}),s.push(w(v),null),N(U,X,x,Z),!j.noScroll)s.scroll?.top?.();return!0},replace(v,j={}){D();let{path:X,query:x,hash:Z}=q1(v),U=P(X);if(!U)return R(X);let r1=s.readState?.()??{};if(s.replace(w(v),{...r1,__ripScroll:null}),N(U,X,x,Z),!j.noScroll)s.scroll?.top?.();return!0},back(){return s.go(-1)},forward(){return s.go(1)},match(v){let{path:j,query:X,hash:x}=q1(v),Z=L(j);if(!Z)return null;return{route:Z.route,params:Z.params,query:Ze(X),hash:x}},claims(v){let j,X,x,Z,U;if(!(typeof v==="string"&&v.length>0))return null;if(a){if(j=v.indexOf("#"),j<0)return null;if(x=v.slice(j+1),x==="")x="/";({path:Z,query:U,hash:X}=q1(x))}else{if(!v.startsWith("/"))return null;if({path:Z,query:U,hash:X}=q1(v),Z=b(Z),Z==null)return null}let r1=L(Z);if(!r1)return null;let Q=Z+(U?"?"+U:"")+(X?"#"+X:"");return{path:Z,url:Q,route:r1.route,params:r1.params,query:Ze(U),hash:X}},onNavigate(v){if(typeof v!=="function")throw TypeError("Rip App: onNavigate expects a function");return l.add(v),function(){return l.delete(v)}},rebuild(){let v,j,X,x,Z;if(o=typeof r==="function"?Br(r()):o,!c)return;let U=s.read();if(a){if(v=U.indexOf("#"),X=v>=0?U.slice(v+1):"/",X==="")X="/";({path:x,query:Z,hash:j}=q1(X))}else if({path:x,query:Z,hash:j}=q1(U),x=b(x),x==null)return R(q1(U).path);let r1=P(x);if(!r1)return R(x);let Q=h.value,l1=Q?.layouts??[],I=r1.route.layouts??[],s1=l1.length===I.length&&l1.every(function(e1,K){return e1===I[K]});if(Q?.file===r1.route.file&&s1&&f.value===x)return;N(r1,x,Z,j);return},destroy(){if(c?.(),c=null,H?.(),H=null,W)clearTimeout(W);W=null;return}},Object.defineProperty(t,"current",{get(){return g.value}}),Object.defineProperty(t,"path",{get(){return f.value}}),Object.defineProperty(t,"hash",{get(){return p.value}}),Object.defineProperty(t,"params",{get(){return u.value}}),Object.defineProperty(t,"query",{get(){return d.value}}),Object.defineProperty(t,"navigating",{get(){return m.value},set(v){return m.value=v}}),t}function Vr(){if(typeof window>"u"||window.history==null||window.location==null)throw Error("Rip App: browserAdapter requires a browser environment");window.history.scrollRestoration="manual";let e=function(r){return window.requestAnimationFrame?window.requestAnimationFrame(r):setTimeout(r,16)},t=0;return{read(){return window.location.pathname+window.location.search+window.location.hash},readState(){return window.history.state},push(r,s){return window.history.pushState(s,"",r)},replace(r,s){return window.history.replaceState(s,"",r)},go(r){return window.history.go(r)},listen(r){return window.addEventListener("popstate",r),function(){return window.removeEventListener("popstate",r)}},scroll:{save(){return{x:window.scrollX,y:window.scrollY}},restore(r){let s;if(r==null)return;let i=++t,n=r.x||0,a=r.y||0,o=0;s=function(){if(i!==t)return;let l=Math.max(0,(window.document?.documentElement?.scrollHeight||0)-window.innerHeight);return window.scrollTo(n,Math.min(a,l)),o+=1,a>l&&o<20?e(s):void 0},e(s);return},top(){return t+=1,window.scrollTo(0,0)},watch(r){return window.addEventListener("scroll",r,{passive:!0}),function(){return window.removeEventListener("scroll",r)}}}}}var pn,Ho,je;Ho=en();je=function(e,t,r,s=null){let i=s??r?.message??String(r),n=Error(i);return n.name="GateFailure",n.status=r?.status??r?.response?.status??500,n.path=e,n.file=t,n.error=r,n};pn=function(e,t){let r=e.getCompiled(t);if(!(r!=null&&typeof r==="object"))throw Error(`Rip App: no precompiled component module for '${t}'`);let s=function(n){return typeof n==="function"&&typeof n.prototype?.mount==="function"};if(s(r.default))return r.default;let i=[];for(let n in r){let a=r[n];if(n==="default")continue;if(s(a))i.push(a)}if(i.length!==1)throw Error(`Rip App: precompiled module '${t}' must export exactly one component class`);return i[0]};function Wr(e){let t;if(!(e!=null&&typeof e==="object"))throw TypeError("Rip App: createRenderer expects an options object");let{router:r,stash:s,components:i,target:n,onError:a}=e;if(!(r!=null&&typeof r==="object"))throw TypeError("Rip App: createRenderer requires a router object");if(!(s!=null&&Ne(s)!==s))throw TypeError("Rip App: createRenderer requires a stash built by createStash");if(!(i!=null&&typeof i.getCompiled==="function"))throw TypeError("Rip App: createRenderer requires a component registry");if(!(n!=null&&typeof n.appendChild==="function"))throw TypeError("Rip App: createRenderer requires a target with appendChild()");if(a!=null&&typeof a!=="function")throw TypeError("Rip App: createRenderer onError must be a function");let o=[],l=null,c=0,f=null,h=[],u=null,d=null,p=null,m=!1,g=function(K,a1){let A=Object.keys(K);return A.length===Object.keys(a1).length&&A.every(function(V){return K[V]===a1[V]})},b=function(K,a1){return K.length===a1.length&&K.every(function(A,V){return a1[V]===A})},S=function(K){let a1=Ne(s),A=K.split(".");for(let V=0;V",M.file,`Rip App: ${M.file} static __gates must be an array`);for(let n1=0;n10))throw w(String(u1),M.file,`Rip App: ${M.file} has a malformed render gate path`);if(h1!=null&&typeof h1!=="function")throw w(u1,M.file,`Rip App: gate '${u1}' has a non-function key`);if(p1=S(u1),!p1)throw w(u1,M.file,`Rip App: gate '${u1}' does not resolve to a source`);if(V=p1.cell,ge(V)){if(!h1)throw w(u1,M.file,`Rip App: gate '${u1}' is keyed and requires a key function`);try{f1=h1(a1,A),V=V.cellFor(f1)}catch(z){throw B=z,je(u1,M.file,B,`Rip App: gate '${u1}' key failed: ${B.message}`)}}else if(h1)throw w(u1,M.file,`Rip App: gate '${u1}' is a singleton and does not accept a key function`);if(M.bindings[n1]={cell:V,tail:p1.tail,path:u1,file:M.file},!c1.has(V))c1.set(V,{cell:V,path:u1,file:M.file,entryIndex:d1})}}return Array.from(c1.values())},F=async function(K,a1,A,V){let B,i1,f1=T(K,a1,A),h1=await Promise.allSettled((()=>{let c1=[];for(let d1 of f1)c1.push(d1.cell.ensure());return c1})());if(V!==c)return!1;let u1=null,p1=function(c1,d1){if(c1.entryIndex=d1,u1==null||d1=u1.entryIndex)break;for(let M of d1.bindings){i1=M.cell.peek();for(let n1 of M.tail){if(i1==null)break;i1=i1[n1]}if(i1==null){p1(w(M.path,M.file,`Rip App: gate '${M.path}' resolved to ${i1}; every gated subpath must exist and be non-null`),c1);break}M.value=i1}}if(u1!=null)throw u1;return!0},L=function(K,a1){return Ho(K.cls,{gates:K.bindings,parent:a1,stash:s,router:r})},P=function(K){let a1=[];for(let A=K.length-1;A>=0;A--){let V=K[A];try{V.unmount?.()}catch(B){a1.push(B);try{V._teardown?.({state:"unmounted",hooks:!1,removeDOM:!0})}catch(i1){a1.push(i1)}}}return a1},N=function(){let K=o;o=[],l=null,h=[],u=null,d=null;let a1=P(K);if(a1.length)throw a1[0];return},D=null,O=function(){D?.remove?.(),D=null;return},W=function(K){let a1,A;O();let V=K.error?.stack??K.stack??K.message??String(K);D=(()=>{if(typeof document<"u"&&typeof document.createElement==="function")return a1=document.createElement("pre"),a1.style.cssText="margin:2rem;padding:1rem 1.25rem;color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;font:13px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;overflow-wrap:anywhere",a1.textContent=V,a1;else return A={nodeName:"PRE",textContent:V,parentNode:null,remove(){let B=A.parentNode?.children,i1=B?.indexOf(A)??-1;if(i1>=0)B.splice(i1,1);A.parentNode=null;return}},A})(),n.appendChild(D);return},H=function(){if(typeof document<"u"&&typeof document.createDocumentFragment==="function")return document.createDocumentFragment();let K=[];return{children:K,appendChild(a1){return K.push(a1),a1}}},G=function(K,a1=n){if(O(),K.nodeType===11)a1.appendChild(K);else for(let A of K.children)a1.appendChild(A);return},k=function(K,a1){let A,V=K._nodes??[K._root];for(let B of V){if(!B)continue;if(B.matches?.("#content"))return B;if(A=B.querySelector?.("#content"),A)return A}return V.find(function(B){return B!=null})??a1},v=function(K){return K?.childNodes??K?.children??[]},j=function(K,a1){K.slot=a1,K.slotOwned=v(a1).length;return},X=function(){let K,a1,A=n;for(let V=0;V0&&B.slot!=null&&B.slot!==A){a1=Array.from(v(B.slot)).slice(B.slotOwned??0),j(B,A);for(let i1 of a1)A.appendChild(i1);K._target=A}if(V===h.length-1)break;A=k(K,A)}if(h.length>1)u=A;return},x=function(K,a1,A){let V,B,i1;if(!K.some(function(c1){return typeof c1.cls.prototype?.onError==="function"}))return!1;let f1=H(),h1=f1,u1=[];try{for(let c1=0;c10)j(d1,h1);if(B.mount?.(h1),B._state==="failed")return P(u1),!1;h1=k(B,h1)}if(A!==c)return P(u1),!1;V=null;for(let c1=u1.length-1;c1>=0;c1--){let d1=u1[c1];if(typeof d1.onError==="function"){V=d1;break}}G(f1)}catch(c1){return console.error("[Rip] boundary chain failed to mount:",c1),P(u1),!1}let p1=o;o=u1,l=u1[u1.length-1]??null,h=K,u=h1,d=null;try{V.onError(a1)}catch(c1){console.error("[Rip] boundary onError error:",c1)}for(let c1 of P(p1))console.error("[Rip] boundary teardown error:",c1);return!0},Z=function(K,a1){let A=null;for(let B=K.length-1;B>=0;B--){let i1=K[B];if(typeof i1.instance?.onError==="function"){A=i1.instance;break}}if(!A)return!1;let V=o.slice(K.length);o=K.map(function(B){return B.instance}),l=o[o.length-1]??null,h=K,d=null;try{A.onError(a1)}catch(B){console.error("[Rip] boundary onError error:",B)}for(let B of P(V))console.error("[Rip] boundary teardown error:",B);return!0},U=async function(K,a1,A=i){let V,B,i1,f1,h1,u1,p1=K?.route;if(!p1?.file)throw Error("Rip App: renderer route state requires route.file");let c1=K.params??{},d1=K.query??{},M=K.layouts??[];if(!Array.isArray(M))throw Error("Rip App: renderer route state layouts must be an array");let n1=h.map(function(m1){return m1.file}),_=p;if(p=null,_==null&&l!=null&&d!=null&&p1.file===d.file){if(b([...M,p1.file],n1)&&g(c1,d.params)){if(!(g(d1,d.query)||R(h,c1,d1))){if(typeof l.load==="function")await l.load(c1,d1);if(a1!==c)return null;return d={file:p1.file,params:c1,query:d1},l}}}let z=[...M,p1.file],q=d!=null&&M.length>0&&h.length===M.length+1&&b(M,n1.slice(0,-1))&&!R(h.slice(0,-1),c1,d1),t1=_!=null?Math.max(0,Math.min(_,z.length-1)):q?M.length:0;if(_!=null&&t1>0){if(!(h.length===z.length&&b(z.slice(0,t1),n1.slice(0,t1))))t1=0}let C=[];for(let m1=0;m10){if(i1=q?Z(C.slice(0,V),B):x(C.slice(0,V),B,a1),i1)return null}}throw B}let o1=H(),E1=o1,y1=[],S1=t1>0?C[t1-1].instance:null,_1=t1>0,v1=_1?k(S1,n):n;try{for(let m1=C.slice(t1),D1=0;D10)j(be,E1);if(f1.mount?.(E1),f1._state==="failed")throw Error(`Rip App: component '${be.file}' failed during mount`);if(t1+D11?E1:v1,h=C,d={file:p1.file,params:c1,query:d1};let g1=P(R1);if(m=g1.length>0,g1.length)for(let m1 of g1)if(B=je("","",m1),a!=null)try{a(B)}catch(D1){console.error("[Rip] renderer teardown reporter failed:",D1)}else console.error("[Rip] renderer teardown error:",B);return l},r1=function(K){let a1,A,V=K?.route;if(!V?.file)return;let B=K.params??{},i1=K.query??{},f1=K.layouts??V.layouts??[],h1=h.map(function(c1){return c1.file}),u1=d!=null&&b(f1,h1.slice(0,-1));if(u1&&V.file===d.file&&g(B,d.params))return;let p1=u1?[V.file]:[...f1,V.file];try{a1=(()=>{let c1=[];for(let d1 of p1)c1.push({file:d1,cls:pn(i,d1)});return c1})(),A=T(a1,B,i1)}catch(c1){return}for(let c1 of A)c1.cell.preload().catch(function(){return null});return},Q=function(K,a1){if(!(K!=null&&typeof K==="object"&&typeof a1==="string"))return null;let A=function(B){return typeof B==="function"&&B.__hmrId===a1},V=K.__hmrComponents;if(V!=null&&typeof V==="object")for(let B in V){let i1=V[B];if(A(i1))return i1}if(A(K.default))return K.default;for(let B in K){let i1=K[B];if(A(i1))return i1}return null},l1=function(K){let a1=K+"#",A=[];for(let B of h)if(B.file===K&&B.instance!=null)A.push(B.instance);for(let[B,i1]of Ji())if(typeof B==="string"&&B.startsWith(a1)){for(let f1 of i1.instances)if(!A.includes(f1))A.push(f1)}let V=[];for(let B of A)V.push({instance:B,entry:h.find(function(i1){return i1.instance===B})??null});return V},I=function(K,a1){let A,V,B,i1,f1=(()=>{let c1=[];for(let d1 of K)if(typeof d1==="string"&&d1.endsWith(".rip"))c1.push(d1);return c1})();if(!(f1.length>0))return"unknown";let h1=0,u1=!1,p1=new Set;for(let c1 of f1){if(i1=a1.getCompiled(c1),B=l1(c1),i1==null){if(typeof a1.exists==="function"&&!a1.exists(c1)){if(B.some(function(d1){return d1.instance._state!=="unmounted"}))return"fallback"}else u1=!0;continue}for(let{instance:d1,entry:M}of B){if(p1.has(d1))continue;if(d1._state==="unmounted")continue;if(d1._state!=="mounted")return"fallback";if(V=d1.constructor?.__hmrId,A=typeof V==="string"?Q(i1,V):null,A==null)return"fallback";if(wt(A),_t(d1.constructor,A)!=="patch")return"fallback";if(Qi(d1,A),p1.add(d1),h1+=1,M!=null){if(M.cls=A,M!==h[h.length-1])X()}}}if(h1>0)return"done";return u1?"unknown":"idle"},s1=async function(K,a1=i){let A,V,B,i1,f1;if(!(Array.isArray(K)&&K.length>0))return"noop";for(let q of K)if(q==="stash.rip"||q.startsWith("stash/")||q==="seed.rip")return"escape";let h1=r.current;if(!(h1?.route?.file&&h.length>0))return"noop";let p1=[...h1.layouts??h1.route.layouts??[],h1.route.file],c1=b(p1,h.map(function(q){return q.file})),d1=Zi();try{if(f1=I(K,a1),f1==="done")return Pr(d1),"narrow";if(f1==="idle"&&c1)return _e("noop",{paths:[...K]}),"noop"}catch(q){console.error("[Rip] HMR patch failed; falling back to remount:",q),_e("reject",{reason:"patch-failed",paths:[...K],message:q?.message?String(q.message):String(q)})}let M=new Set(K),n1=-1;for(let q=0;q{if(A?.name==="GateFailure")return A;else return B=K?.route?.file??"",je(A?.path??B,B,A)})(),a?.(V),l==null)W(V);throw V}finally{if(i1===c&&(Array.isArray(r)||typeof r==="string"?r.includes("navigating"):("navigating"in r)))r.navigating=!1}};let e1=null;return e1={current:null,mount:t,preload:r1,remountDirty:s1,start(){if(f)return e1;return r.init?.(),f=x1(function(){let K=r.current;if(K?.route)t(K).catch(function(){return null});return}),e1},stop(){let K,a1;if(c++,f?.(),f=null,Array.isArray(r)||typeof r==="string"?r.includes("navigating"):("navigating"in r))r.navigating=!1;try{N()}catch(A){throw K=A,a1=je("","",K),a?.(a1),a1}return}},Object.defineProperty(e1,"current",{get(){return l}}),e1}var Ko,Yo,gn=Symbol.for("rip.app.stash.persisted"),Go=Symbol.for("rip.app.stash.purge");Yo=function(e,t){return P1(t)?void 0:t};Ko=function(e){if(e.storage!=null)return e.storage;if(!(typeof window<"u"&&window.localStorage!=null))throw Error("Rip App: persistStash requires a browser or an injected storage");return e.local?window.localStorage:window.sessionStorage};function Hr(e,t={}){let r,s=Ne(e)||e;if(s[gn])return function(){return null};s[gn]=!0;let i=Ko(t),n=t.key||"__rip_app",a=t.debounce??2000;try{if(r=i.getItem(n),r)Je(e,JSON.parse(r))}catch(u){}let o=null,l=function(){o=null;try{i.setItem(n,JSON.stringify(Ne(e),Yo))}catch(u){}return},c=!1,f=x1(function(){if(cn.value,!c){c=!0;return}if(o!=null)clearTimeout(o);return o=setTimeout(l,a),function(){return o!=null?clearTimeout(o):void 0}});if(typeof window<"u")window.addEventListener("beforeunload",l);Object.defineProperty(s,Go,{value(){if(o!=null)clearTimeout(o),o=null;try{i.removeItem(n)}catch(u){}return},configurable:!0,writable:!0});let h=!1;return function(){if(h)return;if(h=!0,f?.(),typeof window<"u")window.removeEventListener("beforeunload",l);l(),s[Go]=null,s[gn]=!1;return}}var zo,bn;bn=function(e){if(e.hasAttribute?.("data-router-ignore"))return!0;if(e.hasAttribute?.("download"))return!0;let t=e.getAttribute?.("target");if(t&&t.toLowerCase()!=="_self")return!0;return!1};function Ct(e){let t,r=e.getAttribute?.("href")??e.href;if(!(typeof r==="string"&&r.length>0))return null;if(/^[a-z][a-z0-9+.-]*:/i.test(r)){if(t=typeof location<"u"?location.origin:null,!(t!=null&&r.startsWith(t)))return null;r=r.slice(t.length)}if(r.startsWith("//")||r.includes("\\"))return null;return r}function Lt(e,t){if(t==null)return!1;if(bn(t))return!1;let r=Ct(t);if(r==null)return!1;return e.claims(r)!=null}zo=function(){if(!(typeof document<"u"&&typeof document.querySelectorAll==="function"))throw Error("Rip App: ariaCurrent requires a browser or an injected host");return{anchors(){return Array.from(document.querySelectorAll("a[href]"))},observe(e){if(typeof MutationObserver>"u")return null;let t=!1,r=new MutationObserver(function(){if(t)return;return t=!0,requestAnimationFrame(function(){return t=!1,e()})});return r.observe(document.documentElement??document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["href","target","download","data-router-ignore"]}),function(){return r.disconnect()}}}};function Gr(e,t=null){if(!(e!=null&&typeof e.claims==="function"))throw TypeError("Rip App: ariaCurrent requires a router");t=t??zo();let r=new WeakMap,s=function(){let l,c,f,h,u=e.path;for(let d of t.anchors()){if(l=bn(d)?null:e.claims(Ct(d)??""),f=l==null||u==null?null:l.path===u?"page":l.path!=="/"&&u.startsWith(l.path+"/")?"true":null,c=d.getAttribute?.("aria-current")??null,h=r.get(d),h!==void 0&&c!==h){if(r.delete(d),c!=null)continue;h=void 0}if(f!=null){if(h===void 0&&c!=null)continue;if(c!==f)d.setAttribute("aria-current",f);r.set(d,f)}else if(h!==void 0)d.removeAttribute("aria-current"),r.delete(d)}return},i=function(){try{s()}catch(l){console.error("[Rip] aria-current walk failed:",l)}return},n=x1(function(){return e.path,i()}),a=t.observe?.(i)??null,o=!1;return function(){if(o)return;o=!0,n(),a?.();try{for(let l of t.anchors())if(r.has(l)){if((l.getAttribute?.("aria-current")??null)===r.get(l))l.removeAttribute("aria-current");r.delete(l)}}catch(l){}return}}var qo,Xo,yn,Sn;Xo=50;qo=3000;Sn=function(){if(!(typeof document<"u"&&typeof document.addEventListener==="function"))throw Error("Rip App: link listeners require a browser or an injected host");return{listen(e,t,r=null){return document.addEventListener(e,t,r??!1),function(){return document.removeEventListener(e,t,r??!1)}}}};yn=function(e){while(e!=null&&e.tagName!=="A")e=e.parentElement;return e??null};function Kr(e,t=null){if(!(e!=null&&typeof e.claims==="function"&&typeof e.push==="function"))throw TypeError("Rip App: interceptClicks requires a router");t=t??Sn();let r=function(n){if(n.defaultPrevented)return;if(n.button!==0||n.metaKey||n.ctrlKey||n.shiftKey||n.altKey)return;let a=yn(n.target);if(!(a!=null&&Lt(e,a)))return;let o=e.claims(Ct(a));if(o==null)return;n.preventDefault(),e.push(o.url,{noScroll:a.hasAttribute?.("data-router-noscroll")===!0});return},s=t.listen("click",r),i=!1;return function(){if(i)return;i=!0,s();return}}function Yr(e,t,r=null){if(!(e!=null&&typeof e.claims==="function"))throw TypeError("Rip App: preloadLinks requires a router");if(!(t!=null&&typeof t.preload==="function"))throw TypeError("Rip App: preloadLinks requires a renderer with preload()");r=r??Sn();let s=null,i=null,n={href:null,at:0},a=function(){if(s!=null)clearTimeout(s);s=null,i=null;return},o=function(h){let u=yn(h.target);if(!(u!=null&&Lt(e,u)))return;if(u===i)return;a(),i=u;let d=Ct(u);s=setTimeout(function(){s=null,i=null;let p=Date.now();if(d===n.href&&p-n.at1)throw AggregateError(S,"Rip App: launch.destroy failed");return};globalThis.__ripStash=l,globalThis.__ripRouter=f;try{if(typeof n.replaceChildren==="function")n.replaceChildren();else if(Array.isArray(n.children))n.children.length=0;h.start()}catch(S){throw b(),S}return{stash:l,components:c,router:f,renderer:h,destroy:b}}var En,qr,kn,Tn,wn,V1;V1=function(e){if(!(typeof e==="string"&&e.length>0))throw TypeError("Rip Workspace: component path must be a non-empty string");let t=e.split("/"),r=t.some(function(n){return!n||n==="."||n===".."||n.startsWith(".")}),s=t.at(-1),i=t.slice(0,-1).some(function(n){return n.endsWith(".rip")});if(e.includes("\\")||e.startsWith("/")||r||i||s===".rip"||!s.endsWith(".rip"))throw TypeError(`Rip Workspace: invalid component path '${e}'`);return e};qr=function(e){if(typeof e!=="string")throw TypeError("Rip Workspace: component source must be a string");return e};kn=function(e){if(e===""||e==null)return"";if(typeof e!=="string")throw TypeError("Rip Workspace: component directory must be a string");let t=e.split("/");if(e.includes("\\")||e.startsWith("/")||t.some(function(r){return!r||r==="."||r===".."||r.startsWith(".")}))throw TypeError(`Rip Workspace: invalid component directory '${e}'`);return e};Tn=function(e){if(!(typeof e==="string"&&/^[A-Za-z0-9_]{6}$/.test(e)))throw TypeError("Rip Workspace: publication hash must be six Base64URL-folded characters");return e};wn=function(e){if(!(e!=null&&typeof e==="object"&&!Array.isArray(e)))throw TypeError("Rip Workspace: compiled component module must be an object");return e};En=function(e){let t;if(!(e!=null&&typeof e==="object"&&!Array.isArray(e)))throw TypeError("Rip Workspace: prepared state must be an object");let r=Tn(e.hash);if(!(e.sources!=null&&typeof e.sources==="object"&&!Array.isArray(e.sources)))throw TypeError("Rip Workspace: prepared sources must be an object");if(!(e.compiled!=null&&typeof e.compiled==="object"&&!Array.isArray(e.compiled)))throw TypeError("Rip Workspace: prepared compiled modules must be an object");let s=new Map,i=new Map,n=e.sources;for(let o in n){if(!Object.hasOwn(n,o))continue;let l=n[o];s.set(V1(o),qr(l))}let a=e.compiled;for(let o in a){if(!Object.hasOwn(a,o))continue;let l=a[o];if(o=V1(o),!s.has(o))throw Error(`Rip Workspace: compiled module '${o}' has no source`);i.set(o,wn(l))}return{hash:r,sources:s,compiled:i}};function Xr(){let e,t=new Map,r=new Map,s=new Set,i=null,n=!1,a=function(l,c){for(let f of Array.from(s))try{f(l,c)}catch(h){console.error("[Rip] workspace watcher error:",h)}return},o=function(l){t=l.sources,r=l.compiled,i=l.hash;return};return e={read(l){return t.get(V1(l))},write(l,c){if(n)throw Error("Rip Workspace: cannot write during a publication transition");l=V1(l),c=qr(c);let f=t.has(l)?"change":"create";t.set(l,c),r.delete(l),a(f,l);return},del(l){if(n)throw Error("Rip Workspace: cannot delete during a publication transition");l=V1(l),t.delete(l),r.delete(l),a("delete",l);return},exists(l){return t.has(V1(l))},size(){return t.size},list(l=""){let c;l=kn(l);let f=l?l+"/":"",h=[];for(let[u]of t)if(u.startsWith(f)){if(c=u.slice(f.length),!c.includes("/"))h.push(u)}return h},listAll(l=""){l=kn(l);let c=l?l+"/":"",f=[];for(let[h]of t)if(h.startsWith(c))f.push(h);return f},load(l){if(n)throw Error("Rip Workspace: cannot load during a publication transition");if(!(l!=null&&typeof l==="object"&&!Array.isArray(l)))throw TypeError("Rip Workspace: component load expects a source object");let c=[];for(let f in l){if(!Object.hasOwn(l,f))continue;let h=l[f];c.push([V1(f),qr(h)])}for(let[f,h]of c)t.set(f,h),r.delete(f);return},watch(l){if(typeof l!=="function")throw TypeError("Rip Workspace: component watch expects a function");s.add(l);let c=!1;return function(){if(c)return;c=!0,s.delete(l);return}},getCompiled(l){return r.get(V1(l))},setCompiled(l,c){if(n)throw Error("Rip Workspace: cannot compile during a publication transition");if(l=V1(l),!t.has(l))throw Error(`Rip Workspace: setCompiled for unknown component path '${l}'`);r.set(l,wn(c));return},hash(){return i},activate(l){if(i!=null)throw Error("Rip Workspace: a publication is already active");if(n)throw Error("Rip Workspace: a publication transition is already staged");o(En(l));return},stage(l,c,f){if(n)throw Error("Rip Workspace: a publication transition is already staged");if(l=Tn(l),i!==l)throw Error(`Rip Workspace: change starts at ${l}, not ${i}`);if(!Array.isArray(f))throw TypeError("Rip Workspace: changed paths must be an array");let h=f.map(function(g){return V1(g)});if(new Set(h).size!==h.length)throw Error("Rip Workspace: changed paths must be unique");let u=En(c),d={sources:t,compiled:r,hash:i};n=!0;let p=!1,m=function(g){let b;if(p)throw Error("Rip Workspace: publication transition is already finished");if(p=!0,n=!1,!g)return;o(u);for(let S of h)b=!u.sources.has(S)?"delete":d.sources.has(S)?"change":"create",a(b,S);return};return{components:{getCompiled(g){return u.compiled.get(V1(g))},exists(g){return u.sources.has(V1(g))}},commit(){return m(!0)},rollback(){return m(!1)}}},commit(l,c,f){e.stage(l,c,f).commit();return}},e}var Qo,e2,t2,r2,i2,n2,s2,Jr;t2=250;e2=8000;Qo=5000;s2=0;Jr=function(e){return typeof e==="string"&&/^[A-Za-z0-9_]{6}$/.test(e)};i2=function(){if(typeof location>"u")throw Error("Rip App: connectFeed needs a hub URL (no location to derive one from)");return`${location.protocol==="https:"?"wss":"ws"}://${location.host}/hub`};n2=function(){if(typeof WebSocket>"u")throw Error("Rip App: connectFeed needs a socket factory (no global WebSocket)");return function(e){return new WebSocket(e)}};r2=function(){if(typeof fetch>"u")throw Error("Rip App: connectFeed needs a fetch (no global fetch)");return function(e,t){return fetch(e,t)}};function Zr(e,t={}){let r;if(!(e!=null&&typeof e.hash==="function"&&typeof e.apply==="function"&&typeof e.reload==="function"))throw TypeError("Rip App: connectFeed expects hash, apply, and reload callbacks");if(!Jr(e.hash()))throw TypeError("Rip App: connectFeed client hash must be six Base64URL-folded characters");let s=t.hub??i2(),i=t.latestUrl??"/latest.json",n=t.makeSocket??n2(),a=t.fetch??r2(),o=t.report??function(...x){return console.error(...x)},l=t.backoff?.min??t2,c=t.backoff?.max??e2,f=t.ackTimeout??Qo,h=!1,u=!1,d=!1,p=!1,m=null,g=0,b=null,S=null,w=0,R=null,T=[],F=Promise.resolve(),L=new Map,P=null,N=function(x){if(u||h)return;u=!0,e.reload(x);return},D=async function(x){let Z;if(u||h)return!1;try{if(Z=await e.apply(x),Z==="rejected"){if(Jr(x?.hash))P=x?.hash;return!1}if(Z==="reload"||!Z)return N("change could not be applied"),!1;return P=null,!0}catch(U){return o("[Rip] publication change failed:",U),N("change failed"),!1}},O=function(x,Z){F=F.then(async function(){if(Z!==w)return!0;return await D(x)}),F=F.catch(function(U){return o("[Rip] publication queue failed:",U),N("change queue failed"),!1});return},W=async function(x){let Z,U;if(h||u||x!==w)return;let r1=e.hash(),Q=await a(i,{cache:"no-store"});if(!Q?.ok)throw Error(`latest.json fetch failed (${Q?.status})`);let l1=await Q.json();if(!(l1!=null&&typeof l1==="object"&&!Array.isArray(l1)&&Object.keys(l1).length===1&&Object.hasOwn(l1,"hash")&&Jr(l1.hash)))throw Error("latest.json is malformed");if(h||u||x!==w)return;if(P!=null){if(l1.hash!==P){N(`a newer App generation followed rejected ${P}`);return}T=[],p=!0,g=0;return}let I=new Set([r1]),s1=0;while(s10))return"ignore";let n=(()=>{let f=[];for(let h of s)if(typeof h==="string"&&h.endsWith(".css"))f.push(h);return f})(),a=(()=>{let f=[];for(let h of s)if(typeof h==="string"&&h.endsWith(".rip"))f.push(h);return f})(),o=(()=>{let f=[];for(let h of s)if(typeof h==="string"&&!h.endsWith(".rip")&&!h.endsWith(".css"))f.push(h);return f})();if(a.length===0){if(o.length>0)return"reload";if(n.length>0)return"css";return"ignore"}let l=await e.renderer.remountDirty(a,i);if(l==="narrow")return t(`[Rip] applied ${a.join(", ")} — update`),"update";if(l==="reload")return t(`[Rip] applied ${a.join(", ")} — reload`),"reload";if(l==="noop")return"ignore";if(await e.escape(a,i)==="reload")return"reload";return t(`[Rip] applied ${a.join(", ")} — update`),"update"}}}var Bc=function(e){if(e instanceof Uint8Array)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw TypeError("Rip App: rash expects bytes")},Uc=function(e){let t,r,s,i,n,a,o,l,c,f,h,u,d,p,m,g,b=Bc(e);if(typeof Bun<"u"&&Bun.CryptoHasher!=null)return new Uint8Array(new Bun.CryptoHasher("sha256").update(b).digest());let S=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],w=b.length*8,R=new Uint8Array(b.length+9+63&-64);R.set(b),R[b.length]=128;let T=new DataView(R.buffer);T.setUint32(R.length-4,w>>>0,!1),T.setUint32(R.length-8,Math.floor(w/4294967296)>>>0,!1);let F=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],L=function(W,H){return W>>>H|W<<32-H},P=new Uint32Array(64),N=0;while(N>>3,p=L(P[W-2],17)^L(P[W-2],19)^P[W-2]>>>10,P[W]=P[W-16]+d+P[W-7]+p>>>0;[s,i,n,o,l,c,f,h]=F;for(let W=0;W<64;W++)r=L(l,6)^L(l,11)^L(l,25),a=l&c^~l&f,m=h+r+a+S[W]+P[W]>>>0,t=L(s,2)^L(s,13)^L(s,22),u=s&i^s&n^i&n,g=t+u>>>0,h=f,f=c,c=l,l=o+m>>>0,o=n,n=i,i=s,s=m+g>>>0;F[0]=F[0]+s>>>0,F[1]=F[1]+i>>>0,F[2]=F[2]+n>>>0,F[3]=F[3]+o>>>0,F[4]=F[4]+l>>>0,F[5]=F[5]+c>>>0,F[6]=F[6]+f>>>0,F[7]=F[7]+h>>>0,N+=64}let D=new Uint8Array(32),O=new DataView(D.buffer);for(let W=0;W<8;W++)O.setUint32(W*4,F[W],!1);return D},Mt=function(e){let t=Uc(e),r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";return(r[t[0]>>2]+r[(t[0]&3)<<4|t[1]>>4]+r[(t[1]&15)<<2|t[2]>>6]+r[t[2]&63]+r[t[3]>>2]+r[(t[3]&3)<<4|t[4]>>4]).replaceAll("-","_")},ei=function(e){let t=JSON.stringify(e.map(function(r){return[r.id,r.hash]}));return Mt(new TextEncoder().encode(t))};var Vc=function(){return globalThis.__ripStash},Wc=function(){return globalThis.__ripRouter};(()=>{if(typeof document>"u"||typeof WebSocket>"u")return;let e=document.currentScript;if(!(e?/\bwatch\.js\b/.test(e.src||""):!!document.querySelector("script[watch]"))||globalThis.__ripWatch)return;globalThis.__ripWatch=!0;let r=location.pathname,s=(f)=>Array.isArray(f)&&(f.includes(r)||r.endsWith("/")&&f.includes(r+"index.html")),i=(f)=>f.headers.get("etag")||f.headers.get("last-modified")||"",n=null;fetch(location.href,{method:"HEAD",cache:"no-store"}).then((f)=>{n=i(f)}).catch(()=>{});let a=()=>{if(n===null)return;fetch(location.href,{method:"HEAD",cache:"no-store"}).then((f)=>{if(i(f)!==n)location.reload()}).catch(()=>{})},o=!1,l=0,c=()=>{let f=location.protocol==="https:"?"wss://":"ws://",h=new WebSocket(f+location.host+"/hub");h.onopen=()=>h.send('{"+":["/assets"],"?":"observe"}'),h.onmessage=(u)=>{let d;try{d=JSON.parse(u.data)}catch{return}for(let p of Array.isArray(d)?d:[d]){if(!p||typeof p!=="object"||"<"in p)continue;if("!"in p){if(o)a();o=!0,l=0}if(s(p.touched))location.reload()}},h.onclose=()=>{if(l+=1,!o&&l>=6)return;setTimeout(c,Math.min(8000,500*2**(l-1)))},h.onerror=()=>{}};c()})();var{__hmrEmit:Hc}=Nt;function Nn(e,t={}){if(t.face==="ts")throw Error("rip: TypeScript face is unavailable in the browser");return _a(e,{...t,face:"js"})}var h2={intrinsics:pr,stdlib:gr,schema:Er,reactive:Ar,components:Nt},u2=Object.freeze({...pr,...gr,...Er,...Ar,...Nt}),Gc=Object.freeze({rash:Mt,check:ei}),d2=Object.freeze({"rip/app":ti,"rip/app/rash":Gc});var Kc=new Map(Object.keys(h2).map((e)=>[new URL(`./runtime/${e}.js`,import.meta.url).pathname,e])),Yc=/(?:^|\/)src\/runtime\/(intrinsics|stdlib|schema|reactive|components)\.js$/,ri="__ripModuleBridge",zc=(e)=>e.slice(1,-1),a2=(e,t)=>{let r=e.split("/").slice(0,-1);for(let s of t.split("/")){if(s===""||s===".")continue;if(s===".."){if(!r.length)return null;r.pop()}else r.push(s)}return r.join("/")},o2=(e)=>{if(typeof URL<"u"&&typeof URL.createObjectURL==="function"&&typeof Blob<"u")return URL.createObjectURL(new Blob([e],{type:"text/javascript"}));return`data:text/javascript;base64,${btoa(unescape(encodeURIComponent(e)))}`};function m2({components:e,embeddedPackages:t={},debug:r=!1,hmr:s=!1}={}){if(!e||typeof e.read!=="function")throw TypeError("rip: createModuleLoader requires a component registry");let i=new Map,n=new Map,a=new Map,o=new Map,l=new Map,c=new Set,f=(m)=>{if(typeof m==="string"&&m.startsWith("blob:")&&typeof URL?.revokeObjectURL==="function")URL.revokeObjectURL(m)},h=async()=>{let m=[...c];c.clear(),await Promise.allSettled(m.map(async(g)=>f(await g)))},u=(m,g)=>{if(a.has(m))return a.get(m);globalThis[ri]??={};let b=globalThis[ri][m];if(b&&b!==g)throw Error(`rip: two copies of embedded module '${m}' are active on one page`);globalThis[ri][m]=g;let S=[`const ns = globalThis['${ri}'][${JSON.stringify(m)}];`];for(let R of Object.keys(g))if(R==="default")S.push("export default ns['default'];");else if(/^[A-Za-z_$][\w$]*$/.test(R))S.push(`export const ${R} = ns[${JSON.stringify(R)}];`);else throw Error(`rip: embedded module '${m}' exports '${R}', which cannot cross the module bridge`);let w=o2(S.join(` -`));return a.set(m,w),w},d=(m,g)=>{let b=zc(m),S=Kc.get(b)??b.match(Yc)?.[1];if(S)return{bridge:`runtime:${S}`,namespace:h2[S]};let w=(F)=>{try{return e.exists(F)}catch{return!1}},R=b.endsWith(".rip")?"":` — did you mean '${b}.rip'?`;if(b.startsWith("./")||b.startsWith("../")){let F=a2(g,b);if(F&&w(F))return{path:F};if(!g.startsWith("rip/")){let L=a2(`app/${g}`,b),P=L?.startsWith("app/")?L.slice(4):L;if(P&&w(P))return{path:P}}throw Error(`rip: '${g}' imports '${b}', which is not in the bundle${R}`)}let T=b.match(/^rip\/([\w-]+)(?:\/(.+))?$/);if(T){if(w(b))return{path:b};let F=`rip/${T[1]}`,L=t[b];if(L)return{bridge:`package:${b}`,namespace:L};if(t[F])throw Error(`rip: '${g}' imports '${b}', which '${F}' does not export in the browser`);let P=T[2]?T[2].endsWith(".rip")?T[2]:`${T[2]}.rip`:"index.rip",N=`${F}/${P}`;if(!w(N))throw Error(`rip: '${g}' imports '${b}', but '${N}' is not in the bundle — `+"only packages declaring browser safety travel to the browser");return{path:N}}throw Error(`rip: '${g}' imports '${b}', which is not loadable in a browser — `+"server-only and unknown modules never travel to the browser")},p=(m,g)=>{if(g.includes(m))throw Error(`rip: import cycle through '${m}' (${g.join(" -> ")} -> ${m})`);if(i.has(m))return i.get(m);let b=(async()=>{let S=e.read(m);if(S===void 0)throw Error(`rip: '${m}' is not in the bundle`);let w=Nn(S,{path:m,runtimeDelivery:"import",browserModule:!0,...s?{hmr:!0}:null}),R=w.code;for(let T of[...w.imports].reverse()){let F=d(T.specifier,m);if(F.path){let P=o.get(F.path);if(!P)o.set(F.path,P=new Set);P.add(m);let N=l.get(m);if(!N)l.set(m,N=new Set);N.add(F.path)}let L=F.bridge?u(F.bridge,F.namespace):await p(F.path,[...g,m]);R=`${R.slice(0,T.start)}${JSON.stringify(L)}${R.slice(T.end)}`}if(r){let T=btoa(unescape(encodeURIComponent(JSON.stringify(w.map))));R+=` -//# sourceMappingURL=data:application/json;charset=utf-8;base64,${T}`}return o2(R)})();return i.set(m,b),b.catch(()=>i.delete(m)),b};return{async import(m){if(n.has(m))return n.get(m);let b=await import(await p(m,[]));return n.set(m,b),e.setCompiled(m,{...b}),b},invalidate(m){let g=[m],b=new Set;while(g.length){let S=g.pop();if(b.has(S))continue;if(b.add(S),i.has(S))c.add(i.get(S));i.delete(S),n.delete(S);for(let w of o.get(S)??[])g.push(w);o.delete(S);for(let w of l.get(S)??[]){let R=o.get(w);if(R?.delete(S),R?.size===0)o.delete(w)}l.delete(S)}return b},collect:h,dispose(){for(let m of i.values())c.add(m);i.clear(),n.clear(),o.clear(),l.clear();for(let m of a.values())f(m);a.clear(),h()}}}var p2=Object.keys(u2),qc=p2.map((e)=>u2[e]),Xc=()=>{if(typeof document>"u"||typeof document.querySelectorAll!=="function")throw Error("rip: processRipScripts requires a browser or an injected host");return{scripts(){return Array.from(document.querySelectorAll('script[type="text/rip"]')).map((e)=>({src:e.getAttribute("src"),text:e.textContent??""}))},async fetchText(e){let t=await fetch(e);if(!t.ok)throw Error(`${t.status} ${t.statusText}`);return t.text()},prepare(e,t){return Function(...t,e)},async ready(){if(document.readyState==="loading")await new Promise((e)=>document.addEventListener("DOMContentLoaded",e,{once:!0}))},report(e){console.error("[Rip]",String(e))}}},Jc=(e)=>{let t=e.split(` -`),r=null;for(let s of t){if(!s.trim())continue;let i=s.match(/^[ \t]*/)[0];if(r===null){r=i;continue}let n=0;while(ns.trim()?s.slice(r.length):s).join(` -`)},Zc=(e)=>{try{return new URL(e,"https://rip.invalid/").href}catch{return e}};async function Mf(e=null){let t=e??Xc();await t.ready?.();let r=[],s=new Set,i=(u)=>{let d=Zc(u);if(s.has(d))throw Error(`rip: script source '${u}' is listed more than once`);s.add(d)};for(let u of t.dataSrc?.()??[])i(u),r.push({label:u,text:null,url:u});let n=0;for(let u of t.scripts?.()??[])if(n+=1,u.src)i(u.src),r.push({label:u.src,text:null,url:u.src});else r.push({label:``,text:Jc(u.text??"")});let a=[],o=(u,d)=>{a.push({label:u,error:d}),t.report?.(d)},l=[];for(let u of r){if(u.text!==null){l.push(u);continue}if(typeof t.fetchText!=="function")throw Error("rip: this host loads script sources by URL but provides no fetchText");try{l.push({...u,text:await t.fetchText(u.url)})}catch(d){o(u.label,Error(`rip: failed to load '${u.label}': ${d.message}`))}}let c=l,f=null;while(c.length){let u=[],d=1,p=[];for(let m of c){u.push({source:m,start:d});let g=m.text.endsWith(` +`+c+"]"}if(o==="object"){let l=Object.getPrototypeOf(s);if(l!==Object.prototype&&l!==null)return null;let c=Object.keys(s);if(c.length===0)return"{}";let h=" ".repeat(a+1),f=" ".repeat(a),u=c.map((d)=>{let p=i(s[d],a+1);return p===null?null:n(d)+": "+p});if(u.some((d)=>d===null))return null;return`{ +`+h+u.join(` +`+h)+` +`+f+"}"}return null};return(s)=>{let a=i(s,0);if(a!==null)console.log(a);else console.dir(s,{depth:null,colors:!0});return s}})(),Pa=(e,t)=>{throw t!==void 0?new e(t):Error(e)},La=(e,t)=>t!==void 0?(e>t&&([e,t]=[t,e]),Math.floor(Math.random()*(t-e+1)+e)):e?Math.floor(Math.random()*e):Math.random(),Ma=(e)=>new Promise((t)=>setTimeout(t,e)),ja=(e)=>{throw Error(e||"Not implemented")},Fa=(...e)=>console.warn(...e),Ba=(...e)=>e[0].map((t,r)=>e.map((n)=>n[r])),Ua=(e)=>{if(typeof e==="string")return e;if(e==null)return"";if(typeof e==="number"||typeof e==="bigint"||typeof e==="boolean")return String(e);if(typeof e==="symbol")return e.description||"";if(e instanceof Uint8Array||e instanceof ArrayBuffer)return new TextDecoder().decode(e instanceof Uint8Array?e:new Uint8Array(e));if(Array.isArray(e))return e.join(",");if(typeof e.toString==="function"&&e.toString!==Object.prototype.toString)try{return e.toString()}catch{return""}return""};var Er={};Fe(Er,{SchemaDef:()=>Et,SchemaError:()=>I1,SchemaRegistry:()=>ie,__schema:()=>nc,installPersistence:()=>Q3,registerCoercer:()=>tc});var Ka=Symbol.for("rip.runtime.schema");if(globalThis[Ka])throw Error("two copies of the Rip schema runtime loaded in one process — schemas from different copies "+"cannot see each other (separate registries, distinct SchemaError classes). Run .rip sources through the rip CLI/loader (one shared runtime module per process), or load only one standalone-compiled file per process.");globalThis[Ka]=!0;var Te=null;function Q3(e){if(Te&&Te!==e)throw Error("the Rip schema persistence runtime is already installed — two different copies met in one process");Te=e}class I1 extends Error{constructor(e,t,r){super(ec(e,t));this.name="SchemaError",this.issues=e,this.schemaName=t||null,this.schemaKind=r||null}}function ec(e,t){if(!e||!e.length)return"SchemaError";return(t?t+": ":"")+e.map((n)=>n.message||n.error||"invalid").join("; ")}var Ya={__proto__:null,string:(e)=>typeof e==="string",number:(e)=>typeof e==="number"&&!Number.isNaN(e),integer:(e)=>Number.isInteger(e),boolean:(e)=>typeof e==="boolean",date:(e)=>e instanceof Date&&!Number.isNaN(e.getTime()),datetime:(e)=>e instanceof Date&&!Number.isNaN(e.getTime()),email:(e)=>typeof e==="string"&&/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e),url:(e)=>typeof e==="string"&&/^https?:\/\/.+/.test(e),uuid:(e)=>typeof e==="string"&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e),phone:(e)=>typeof e==="string"&&/^[\d\s\-+()]+$/.test(e),zip:(e)=>typeof e==="string"&&/^\d{5}(-\d{4})?$/.test(e),text:(e)=>typeof e==="string",json:(e)=>e!==void 0,variant:(e)=>e!==void 0,any:()=>!0},Rr={integer(e){if(typeof e==="number")return Number.isInteger(e)?{ok:!0,value:e}:{ok:!1};if(typeof e==="string"&&/^[+-]?\d+$/.test(e.trim()))return{ok:!0,value:parseInt(e.trim(),10)};return{ok:!1}},number(e){if(typeof e==="number")return Number.isNaN(e)?{ok:!1}:{ok:!0,value:e};if(typeof e==="string"&&/^[+-]?(\d+\.?\d*|\.\d+)([eE][+-]?\d+)?$/.test(e.trim()))return{ok:!0,value:Number(e.trim())};return{ok:!1}},boolean(e){if(typeof e==="boolean")return{ok:!0,value:e};if(e==="true"||e==="1"||e===1)return{ok:!0,value:!0};if(e==="false"||e==="0"||e===0)return{ok:!0,value:!1};return{ok:!1}},date(e){if(e instanceof Date)return Number.isNaN(e.getTime())?{ok:!1}:{ok:!0,value:e};if(typeof e==="number"&&Number.isFinite(e))return{ok:!0,value:new Date(e)};let t=typeof e==="string"?/^(\d{4})-(\d{2})-(\d{2})/.exec(e):null;if(t){let r=+t[2],n=+t[3],i=new Date(Date.UTC(+t[1],r,0)).getUTCDate();if(r<1||r>12||n<1||n>i)return{ok:!1};let s=new Date(e);if(!Number.isNaN(s.getTime()))return{ok:!0,value:s}}return{ok:!1}}};Rr.datetime=Rr.date;function br(e){if(e!==null&&typeof e==="object"&&!Array.isArray(e))return null;return{field:"",error:"object",message:"input must be an object; got "+(e===null?"null":Array.isArray(e)?"an array":"a "+typeof e)}}var Hi=new Map;function tc(e,t,r){if(typeof e!=="string"||typeof t!=="function")throw Error("registerCoercer(name, fn, opts?): name string and fn required");let n=Object.prototype.toString.call(t);if(n==="[object AsyncFunction]"||n==="[object GeneratorFunction]"||n==="[object AsyncGeneratorFunction]")throw Error("registerCoercer: coercer '~:"+e+"' must be a plain synchronous function");let i=r?.raw===!0,s=Hi.get(e);if(s){if(s.raw===i&&String(s.fn)===String(t))return t;throw Error("registerCoercer: coercer '~:"+e+"' is already registered")}return Hi.set(e,{fn:t,raw:i}),t}function St(e){if(Ya[e])return null;let t=ie.get(e);return t&&(t.kind==="shape"||t.kind==="input"||t.kind==="model"||t.kind==="union")?t:null}function Gi(e,t,r){let n=Ya[t];if(n)return n(e)?{value:e}:{errors:[{field:"",error:"type",message:"must be "+t}]};let i=ie.get(t);if(!i)return{value:e};if(i.kind==="enum"){let a=i._validateEnum(e,!0);return a.length?{errors:[{field:"",error:"enum",message:a[0].message}]}:{value:i._materializeEnum(e)}}if(i.kind==="mixin")return{errors:[{field:"",error:"type",message:":mixin "+t+" is not usable as a field type"}]};if(i.kind==="union"){let a=i._unionResolve(e);if(a.issue)return{errors:[a.issue]};let o=r?.existing?a.def._runExistingSync(e,{...r,materialize:!1,materializeNested:!1}):a.def._runSync(e,{...r,materialize:!1,materializeNested:!1});if(o.thrown){if(r?.derived==="throw")throw o.thrown;return{errors:[{field:"",error:"derived",message:o.thrown?.message||String(o.thrown)}]}}return o.ok?{value:o.value}:{errors:o.errors}}if(e===null||typeof e!=="object"||Array.isArray(e))return{errors:[{field:"",error:"type",message:"must be a "+t+" object"}]};let s=r?.existing?i._runExistingSync(e,{...r,materialize:!1,materializeNested:!1}):i._runSync(e,{...r,materialize:!1,materializeNested:!1});if(s.thrown){if(r?.derived==="throw")throw s.thrown;return{errors:[{field:"",error:"derived",message:s.thrown?.message||String(s.thrown)}]}}return s.ok?{value:s.value}:{errors:s.errors}}async function Va(e,t,r){let n=St(t);if(n===null)return Gi(e,t,r);if(n.kind==="union"){let s=n._unionResolve(e);if(s.issue)return{errors:[s.issue]};let a=r?.existing?await s.def._runExistingAsync(e,{...r,materialize:!1,materializeNested:!1}):await s.def._runAsync(e,{...r,materialize:!1,materializeNested:!1});if(a.thrown){if(r?.derived==="throw")throw a.thrown;return{errors:[{field:"",error:"derived",message:a.thrown?.message||String(a.thrown)}]}}return a.ok?{value:a.value}:{errors:a.errors}}if(e===null||typeof e!=="object"||Array.isArray(e))return{errors:[{field:"",error:"type",message:"must be a "+t+" object"}]};let i=r?.existing?await n._runExistingAsync(e,{...r,materialize:!1,materializeNested:!1}):await n._runAsync(e,{...r,materialize:!1,materializeNested:!1});if(i.thrown){if(r?.derived==="throw")throw i.thrown;return{errors:[{field:"",error:"derived",message:i.thrown?.message||String(i.thrown)}]}}return i.ok?{value:i.value}:{errors:i.errors}}function Rt(e,t){if(!t)return e;return e+(t.startsWith("[")?t:"."+t)}function yr(e,t,r){if(!t)return e+" "+r;if(r.startsWith(t))return e+r.slice(t.length);return e+": "+r}var Sr=Symbol("schema.materialization-error");function Wa(e,t){if(e&&e[Sr])return{[Sr]:!0,error:e.error,field:Rt(t,e.field)};return{[Sr]:!0,error:e,field:t}}function Ge(e){return e&&e[Sr]?{thrown:e.error,derivedField:e.field}:{thrown:e,derivedField:""}}var rc=tt;function Ha(e){let t=(n)=>JSON.stringify(n??null,(i,s)=>s instanceof RegExp?String(s):typeof s==="function"?"":s),r=[e.kind];for(let n of e._desc.entries||[])switch(n.tag){case"field":r.push("f:"+n.name+":"+(n.typeName||"")+(n.array?"[]":"")+":"+(n.modifiers||[]).join("")+(n.literals?":"+n.literals.join(","):"")+":"+t(n.constraints)+(n.coerce?":~"+(n.coercer||""):"")+(n.transform?":t":""));break;case"enum-member":r.push("e:"+n.name+"="+String(n.value));break;case"directive":r.push("d:"+n.name+":"+t(n.args));break;case"ensure":r.push("n:"+(n.message||""));break;default:r.push(n.tag+":"+(n.name||""))}return r.join("|")}var ke=0,ie={_entries:new Map,replace:!1,register(e){if(!e.name)return;ke++;let t=this._entries.get(e.name);if(t&&t.def!==e&&!this.replace){if(Ha(t.def)!==Ha(e))throw new I1([{field:e.name,error:"collision",message:"schema name '"+e.name+"' is already registered with a different definition. Schema names are app-global (they resolve nested field types and @mixin references), so two "+"different schemas cannot share one name. Rename one — or, for dev/HMR reload semantics, set "+"SchemaRegistry.replace = true before re-evaluating modules."}],e.name,e.kind)}this._entries.set(e.name,{def:e,kind:e.kind})},get(e){let t=this._entries.get(e);return t?t.def:null},getKind(e,t){let r=this._entries.get(e);return r&&r.kind===t?r.def:null},has(e){return this._entries.has(e)},names(){return[...this._entries.keys()]},reset(){this._entries.clear(),ke++},scope(e){let t=this._entries;this._entries=new Map,ke++;let r=()=>{this._entries=t,ke++};try{let n=e();if(n&&typeof n.then==="function")return n.finally(r);return r(),n}catch(n){throw r(),n}}};class Et{constructor(e){if(e.kind==="model"&&!Te)throw Error("schema: kind 'model' needs the persistence runtime (src/runtime/orm.js), which is not "+"loaded in this process — reference a persistence name (schema.transaction, __schemaSetAdapter) "+"or import the module directly");if(this._desc=e,this.kind=e.kind,this.name=e.name||null,this._norm=null,this._klass=null,this._unionPlanCache=null,this._sourceModel=null,e.kind==="model")Te.decorateDef(this,e)}_normalize(){if(this._norm)return this._norm;let e=new Map,t=new Map,r=new Map,n=new Map,i=new Map,s=new Map,a=null,o=[],l=new Map,c=[],h=(S,w)=>{throw new I1([{field:S,error:"collision",message:S+" collides with "+w}],this.name,this.kind)},f=(S)=>{if(e.has(S))h(S,"field");if(t.has(S))h(S,"method");if(r.has(S))h(S,"computed");if(n.has(S))h(S,"derived");if(i.has(S))h(S,"hook")},u=(S)=>{throw new I1([{field:"",error:"kind",message:S+" is :model-only (this schema is :"+this.kind+")"}],this.name,this.kind)},d=this.kind==="union"?new Set(["on"]):new Set(["mixin"]),p=(S,w)=>{if(!rc(S))throw new I1([{field:S,error:"invalid-name",message:w+" name '"+S+"' is not canonical camelCase. Use a lowercase-first, alphanumeric identifier with no consecutive uppercase letters (e.g. 'mdmId' not 'mdmID')."}],this.name,this.kind)};for(let S of this._desc.entries)switch(S.tag){case"field":p(S.name,"field"),f(S.name),e.set(S.name,{name:S.name,required:S.modifiers.includes("!"),optional:S.modifiers.includes("?"),unique:S.unique===!0,primary:S.primary===!0,attrs:S.attrs||null,typeName:S.typeName,literals:S.literals||null,array:S.array===!0,coerce:S.coerce===!0,coercer:S.coercer||null,constraints:S.constraints||null,transform:S.transform||null});break;case"method":f(S.name),t.set(S.name,S.fn);break;case"computed":f(S.name),r.set(S.name,S.fn);break;case"derived":f(S.name),n.set(S.name,S.fn);break;case"hook":if(this.kind!=="model")u("lifecycle hook '"+S.name+"'");if(i.has(S.name))h(S.name,"duplicate hook");i.set(S.name,S.fn);break;case"scope":if(this.kind!=="model")u("query scope '@scope :"+S.name+"'");if(s.has(S.name))h(S.name,"scope");s.set(S.name,S.fn);break;case"defaultScope":if(this.kind!=="model")u("@defaultScope");if(a)throw new I1([{field:"",error:"collision",message:"only one @defaultScope per model"}],this.name,this.kind);a=S.fn;break;case"directive":if(this.kind!=="model"&&!d.has(S.name))throw new I1([{field:"",error:"directive",message:"unknown directive '@"+S.name+"' on :"+this.kind+" — legal here: "+[...d].map((w)=>"@"+w).join(", ")}],this.name,this.kind);o.push({name:S.name,args:S.args||[]});break;case"enum-member":l.set(S.name,S.value!==void 0?S.value:S.name);break;case"union-member":break;case"ensure":c.push({message:S.message,field:S.field||"",async:S.async===!0,fn:S.fn});break;default:throw new I1([{field:"",error:"entry",message:"unknown schema entry tag '"+S.tag+"'"}],this.name,this.kind)}if(this.kind==="shape"||this.kind==="input"||this.kind==="mixin"||this.kind==="model")Xa(this,e,o,{stack:[this.name||""],seen:new Set([this.name||""])});let m=null,g=[];if(this.kind==="union"){for(let S of o)if(S.name==="on"&&S.args?.[0]?.field)m=S.args[0].field;for(let S of this._desc.entries)if(S.tag==="union-member")g.push(S.name)}let b={fields:e,methods:t,computed:r,derived:n,hooks:i,scopes:s,defaultScope:a,directives:o,enumMembers:l,ensures:c,hasAsyncEnsures:c.some((S)=>S.async),unionOn:m,unionMembers:g};if(this.kind==="model")Te.finishModelNorm(this,b);return this._norm=b,this._norm}_unionPlan(){if(this._unionPlanCache&&this._unionPlanCache.gen===ke)return this._unionPlanCache.plan;let e=this._normalize(),t=e.unionOn;if(this.kind!=="union"||!t)throw Error("schema: '"+(this.name||"anon")+"' is not a :union");let r=new Map,n=[];for(let s of e.unionMembers){let a=ie.get(s);if(!a)throw new I1([{field:"",error:"union",message:"unknown union constituent: "+s+" (import the file that declares it)"}],this.name,this.kind);n.push(a);let o=a._normalize().fields.get(t);if(!o||o.typeName!=="literal-union"||!o.literals?.length)throw new I1([{field:t,error:"union",message:s+" must declare '"+t+"' as a string-literal type (e.g. "+t+'! "click") to join union '+(this.name||"")}],this.name,this.kind);for(let l of o.literals){if(r.has(l))throw new I1([{field:t,error:"union",message:"duplicate discriminator value "+JSON.stringify(l)+" in "+(r.get(l).name||"anon")+" and "+s}],this.name,this.kind);r.set(l,a)}}let i={disc:t,map:r,expected:[...r.keys()].join(" | "),hasAsyncEnsures:n.some((s)=>s._normalize().hasAsyncEnsures)};return this._unionPlanCache={gen:ke,plan:i},i}_unionResolve(e){let t=this._unionPlan();if(e===null||typeof e!=="object"||Array.isArray(e))return{issue:{field:t.disc,error:"union",message:"expected an object with "+t.disc}};let r=t.map.get(e[t.disc]);if(!r)return{issue:{field:t.disc,error:"union",message:"expected one of "+t.expected}};return{def:r}}_applyEagerDerived(e){let t=this._normalize();if(!t.derived.size)return;for(let[r,n]of t.derived){let i=n.call(e);Object.defineProperty(e,r,{value:i,enumerable:!0,writable:!0,configurable:!0})}}_materializeValidatedValue(e,t,r){return this._materializeNestedValues(e,t,r),this._materializeOwnValidatedValue(e,t,r)}_materializeNestedValues(e,t,r){let n=this._normalize();for(let[i,s]of n.fields){let a=St(s.typeName);if(!a)continue;let o=e[i];if(o===void 0||o===null)continue;let l=t==null?void 0:t[i];if(s.array){if(!Array.isArray(o))continue;let c=Array(o.length);for(let h=0;h{let a=()=>({field:i.field||"",error:"ensure",message:i.message||"ensure failed"});if(i.async)n.push((async()=>{let o=!1;try{o=!!await i.fn(e)}catch{o=!1}if(!o)r.push({idx:s,issue:a()})})());else{let o=!1;try{o=!!i.fn(e)}catch{o=!1}if(!o)r.push({idx:s,issue:a()})}}),await Promise.all(n),r.sort((i,s)=>i.idx-s.idx),r.map((i)=>i.issue)}_transitiveAsync(){if(this._taGen===ke)return this._taCache;let e=new Set,t=(r)=>{if(e.has(r))return!1;e.add(r);let n=r._normalize();if(n.hasAsyncEnsures)return!0;if(r.kind==="union"){for(let i of n.unionMembers){let s=ie.get(i);if(s&&t(s))return!0}return!1}for(let i of n.fields.values()){let s=St(i.typeName);if(s&&t(s))return!0}return!1};return this._taCache=t(this),this._taGen=ke,this._taCache}_assertSyncValidatable(e){if(!this._transitiveAsync())return;let t=this.kind!=="union"&&this._normalize().hasAsyncEnsures;throw Error("schema '"+(this.name||"anon")+"' has async refinements (@ensure!"+(t?"":" in a nested or constituent schema")+"); ."+e+"() is sync. Use parseAsync/safeAsync/okAsync instead.")}_getClass(){if(this._klass)return this._klass;let e=this._normalize(),t=this.name||"Schema",r=[...e.fields.keys()],n={[t]:class{constructor(i){if(i&&typeof i==="object"){for(let s of r)if(s in i&&i[s]!==void 0)this[s]=i[s]}}}}[t];for(let[i,s]of e.methods)Object.defineProperty(n.prototype,i,{value:s,writable:!0,enumerable:!1,configurable:!0});for(let[i,s]of e.computed)Object.defineProperty(n.prototype,i,{get:s,enumerable:!1,configurable:!0});return this._klass=n,n}_coerceDates(e){let t=this._normalize(),r=(s)=>typeof s==="string"&&/^\d{4}-\d{2}-\d{2}([T ].*)?$/.test(s),n=(s)=>{let a=/^(\d{4})-(\d{2})-(\d{2})/.exec(s),o=+a[2],l=+a[3];return o>=1&&o<=12&&l>=1&&l<=new Date(Date.UTC(+a[1],o,0)).getUTCDate()},i=(s)=>{if(!n(s))return s;let a=new Date(s);return Number.isNaN(a.getTime())?s:a};for(let[s,a]of t.fields){if(a.typeName!=="date"&&a.typeName!=="datetime")continue;let o=e[s];if(a.array&&Array.isArray(o))e[s]=o.map((l)=>r(l)?i(l):l);else if(r(o))e[s]=i(o)}}_validateFields(e,t,r,n){let i=this._normalize(),s=t?[]:null;for(let[a,o]of i.fields){if(r&&r.has(a))continue;let l=e==null?void 0:e[a];if(l===void 0||l===null){if(o.required){if(!t)return!1;s.push({field:a,error:"required",message:a+" is required"})}continue}if(o.array){if(!Array.isArray(l)){if(!t)return!1;s.push({field:a,error:"type",message:a+" must be an array"});continue}let h=o.constraints;if(h){if(h.min!=null&&l.lengthh.max){if(!t)return!1;s.push({field:a,error:"max",message:a+" must have at most "+h.max+" items"})}}if(n?.deferNested&&St(o.typeName))continue;let f=!1,u=!1,d=Array(l.length);for(let p=0;pJSON.stringify(h)).join(", ")});continue}}else{if(n?.deferNested&&St(o.typeName))continue;let h=Gi(l,o.typeName,n);if(h.errors){if(!t)return!1;for(let f of h.errors){let u=Rt(a,f.field);s.push({field:u,error:f.error,message:yr(u,f.field,f.message)})}continue}if(h.value!==l)e[a]=h.value}let c=o.constraints;if(c){if(typeof l==="string"){if(c.min!=null&&l.lengthc.max){if(!t)return!1;s.push({field:a,error:"max",message:a+" must be at most "+c.max+" chars"})}if(c.regex){if(c.regex.global||c.regex.sticky)c.regex.lastIndex=0;if(!c.regex.test(l)){if(!t)return!1;s.push({field:a,error:"pattern",message:a+" is invalid"})}}}else if(typeof l==="number"){if(c.min!=null&&l= "+c.min})}if(c.max!=null&&l>c.max){if(!t)return!1;s.push({field:a,error:"max",message:a+" must be <= "+c.max})}}}}return t?s:!0}_applyDefaults(e){let t=this._normalize();for(let[r,n]of t.fields)if((e[r]===void 0||e[r]===null)&&n.constraints?.default!==void 0){let i=n.constraints.default;e[r]=typeof i==="object"&&i!==null&&!(i instanceof RegExp)?structuredClone(i):i}return e}_applyTransforms(e,t){let r=this._normalize(),n=[];for(let[i,s]of r.fields){if(!s.transform)continue;try{t[i]=s.transform(e)}catch(a){n.push({field:i,error:"transform",message:a?.message||String(a)})}}return n}_applyCoercions(e,t){let r=this._normalize(),n=[];for(let[i,s]of r.fields){if(!s.coerce)continue;let a=e[i];if(a===void 0||a===null)continue;if(s.coercer){let l=Hi.get(s.coercer);if(!l)throw Error("schema: no coercer registered for '~:"+s.coercer+"' (field '"+i+"' on "+(this.name||"anon")+"). Register it with registerCoercer('"+s.coercer+"', fn).");let c=l.raw?a:String(a).trim(),h;try{h=l.fn(c)}catch{h=null}if(h===null||h===void 0)n.push({field:i,error:"coerce",message:i+" is not a valid "+s.coercer}),t.add(i);else e[i]=h;continue}let o=Rr[s.typeName]?Rr[s.typeName](a):{ok:!1};if(o.ok)e[i]=o.value;else n.push({field:i,error:"coerce",message:i+" cannot be coerced to "+s.typeName}),t.add(i)}return n}_orderFieldErrors(...e){let t=new Map,r=0;for(let[n]of this._normalize().fields)t.set(n,r++);return e.flat().map((n,i)=>{let s=String(n.field||"").split(/[.[]/,1)[0];return{issue:n,seq:i,rank:t.has(s)?t.get(s):r}}).sort((n,i)=>n.rank-i.rank||n.seq-i.seq).map((n)=>n.issue)}_validateEnum(e,t){let r=this._normalize();for(let[i,s]of r.enumMembers)if(e===i||e===s)return t?[]:!0;if(!t)return!1;let n=[...r.enumMembers.keys()].join(", ");return[{field:"",error:"enum",message:(this.name||"enum")+" expected one of: "+n}]}_materializeEnum(e){let t=this._normalize();for(let[r,n]of t.enumMembers)if(e===r||e===n)return n;return e}_runSync(e,t){if(this.kind==="union"){let h=this._unionResolve(e);if(h.issue)return{ok:!1,errors:[h.issue]};let f=h.def._runSync(e,t);return f.ok?f:{...f,from:f.from||h.def}}if(this.kind==="enum"){let h=this._validateEnum(e,!0);return h.length?{ok:!1,errors:h}:{ok:!0,value:this._materializeEnum(e)}}let r=br(e);if(r)return{ok:!1,errors:[r]};let n=e,i={...n},s=new Set,a=this._applyTransforms(n,i),o=this._applyCoercions(i,s);this._applyDefaults(i),this._coerceDates(i);let l=this._orderFieldErrors(a,o,this._validateFields(i,!0,s,t));if(l.length)return{ok:!1,errors:l};let c=t?.skipEnsures?[]:this._applyEnsures(i);if(c.length)return{ok:!1,errors:c};if(t?.materializeNested)try{this._materializeNestedValues(i,null,!1)}catch(h){return{ok:!1,errors:null,...Ge(h)}}if(!t?.materialize)return{ok:!0,value:i};try{return{ok:!0,value:this._materializeOwnValidatedValue(i,null,!1)}}catch(h){return{ok:!1,errors:null,...Ge(h)}}}async _runAsync(e,t){if(this.kind==="union"){let f=this._unionResolve(e);if(f.issue)return{ok:!1,errors:[f.issue]};let u=await f.def._runAsync(e,t);return u.ok?u:{...u,from:u.from||f.def}}if(this.kind==="enum")return this._runSync(e,t);let r=br(e);if(r)return{ok:!1,errors:[r]};let n=e,i={...n},s=new Set,a=this._applyTransforms(n,i),o=this._applyCoercions(i,s);this._applyDefaults(i),this._coerceDates(i);let l=await this._validateFieldsAsync(i,s,t),c=this._orderFieldErrors(a,o,l);if(c.length)return{ok:!1,errors:c};let h=t?.skipEnsures?[]:await this._applyEnsuresAsync(i);if(h.length)return{ok:!1,errors:h};if(t?.materializeNested)try{this._materializeNestedValues(i,null,!1)}catch(f){return{ok:!1,errors:null,...Ge(f)}}if(!t?.materialize)return{ok:!0,value:i};try{return{ok:!0,value:this._materializeOwnValidatedValue(i,null,!1)}}catch(f){return{ok:!1,errors:null,...Ge(f)}}}async _validateFieldsAsync(e,t,r){let n=this._normalize(),i=[];for(let[s,a]of n.fields){if(t&&t.has(s))continue;let o=e[s];if(o===void 0||o===null){if(a.required)i.push({field:s,error:"required",message:s+" is required"});continue}if(a.array){if(!Array.isArray(o)){i.push({field:s,error:"type",message:s+" must be an array"});continue}let h=a.constraints;if(h?.min!=null&&o.lengthh.max)i.push({field:s,error:"max",message:s+" must have at most "+h.max+" items"});let f=Array(o.length),u=!1;for(let d=0;dJSON.stringify(h)).join(", ")})}else{let h=await Va(o,a.typeName,r);if(h.errors)for(let f of h.errors){let u=Rt(s,f.field);i.push({field:u,error:f.error,message:yr(u,f.field,f.message)})}else e[s]=h.value}let l=e[s],c=a.constraints;if(c){if(typeof l==="string"){if(c.min!=null&&l.lengthc.max)i.push({field:s,error:"max",message:s+" must be at most "+c.max+" chars"});if(c.regex){if(c.regex.global||c.regex.sticky)c.regex.lastIndex=0;if(!c.regex.test(l))i.push({field:s,error:"pattern",message:s+" is invalid"})}}else if(typeof l==="number"){if(c.min!=null&&l= "+c.min});if(c.max!=null&&l>c.max)i.push({field:s,error:"max",message:s+" must be <= "+c.max})}}}return i}_runExistingSync(e,t){if(this.kind==="union"){let a=this._unionResolve(e);if(a.issue)return{ok:!1,errors:[a.issue]};let o=a.def._runExistingSync(e,t);return o.ok?o:{...o,from:o.from||a.def}}if(this.kind==="enum")return this._runSync(e,t);let r=br(e);if(r)return{ok:!1,errors:[r]};let n={...e},i=this._validateFields(n,!0,null,{...t,existing:!0});if(i.length)return{ok:!1,errors:i};let s=t?.skipEnsures?[]:this._applyEnsures(n);if(s.length)return{ok:!1,errors:s};if(t?.materializeNested)try{this._materializeNestedValues(n,e,!0)}catch(a){return{ok:!1,errors:null,...Ge(a)}}return this._finishExistingValue(e,n,t)}async _runExistingAsync(e,t){if(this.kind==="union"){let a=this._unionResolve(e);if(a.issue)return{ok:!1,errors:[a.issue]};let o=await a.def._runExistingAsync(e,t);return o.ok?o:{...o,from:o.from||a.def}}if(this.kind==="enum")return this._runSync(e,t);let r=br(e);if(r)return{ok:!1,errors:[r]};let n={...e},i=await this._validateFieldsAsync(n,null,{...t,existing:!0});if(i.length)return{ok:!1,errors:i};let s=t?.skipEnsures?[]:await this._applyEnsuresAsync(n);if(s.length)return{ok:!1,errors:s};if(t?.materializeNested)try{this._materializeNestedValues(n,e,!0)}catch(a){return{ok:!1,errors:null,...Ge(a)}}return this._finishExistingValue(e,n,t)}_finishExistingValue(e,t,r){if(!r?.materialize)return{ok:!0,value:t};let n=this._getClass(),i=!0;for(let[a]of this._normalize().fields)if(t[a]!==e[a]){i=!1;break}if(i)return{ok:!0,value:e};let s=new n(t);try{this._applyEagerDerived(s)}catch(a){return{ok:!1,errors:null,thrown:a}}return{ok:!0,value:s}}parse(e){if(this.kind==="mixin")throw Error(":mixin schema '"+(this.name||"anon")+"' is not instantiable");this._assertSyncValidatable("parse");let t=this._runSync(e,{materialize:!0,materializeNested:!0,derived:"throw"});if(t.ok)return t.value;if(t.thrown)throw t.thrown;let r=t.from||this;throw new I1(t.errors,r.name,r.kind)}get array(){let e=this,t=(s)=>({field:"",error:"not_array",message:"expected an array, received "+(s===null?"null":s===void 0?"undefined":typeof s==="object"?"an object with keys ["+Object.keys(s).join(", ")+"]":typeof s)}),r=(s)=>{let a=[],o=[];return s.forEach((l,c)=>{if(l.ok)a.push(l.value);else for(let h of l.errors)o.push({...h,field:"["+c+"]"+(h.field?"."+h.field:"")})}),{value:a,errors:o}},n=(s)=>{let a=[],o=[];return s.forEach((l,c)=>{try{a.push(e.parse(l))}catch(h){if(!(h instanceof I1))throw h;for(let f of h.issues)o.push({...f,field:"["+c+"]"+(f.field?"."+f.field:"")})}}),{value:a,errors:o}},i=async(s)=>{let a=[],o=[];for(let l=0;le.safe(l)));return o.length?{ok:!1,value:null,errors:o}:{ok:!0,value:a,errors:null}},ok(s){return Array.isArray(s)&&s.every((a)=>e.ok(a))},async parseAsync(s){if(!Array.isArray(s))throw new I1([t(s)],e.name,e.kind);let{value:a,errors:o}=await i(s);if(o.length)throw new I1(o,e.name,e.kind);return a},async safeAsync(s){if(!Array.isArray(s))return{ok:!1,value:null,errors:[t(s)]};let{value:a,errors:o}=r(await Promise.all(s.map((l)=>e.safeAsync(l))));return o.length?{ok:!1,value:null,errors:o}:{ok:!0,value:a,errors:null}},async okAsync(s){return Array.isArray(s)&&(await Promise.all(s.map((a)=>e.okAsync(a)))).every(Boolean)},toJSONSchema(){return{type:"array",items:e.toJSONSchema()}}}}safe(e){if(this.kind==="mixin")return{ok:!1,value:null,errors:[{field:"",error:"mixin",message:"not instantiable"}]};this._assertSyncValidatable("safe");let t=this._runSync(e,{materialize:!0,materializeNested:!0,derived:"issue"});if(t.ok)return{ok:!0,value:t.value,errors:null};if(t.thrown)return{ok:!1,value:null,errors:[{field:t.derivedField||"",error:"derived",message:t.thrown?.message||String(t.thrown)}]};return{ok:!1,value:null,errors:t.errors}}ok(e){if(this.kind==="mixin")return!1;return this._assertSyncValidatable("ok"),this._runSync(e,{materialize:!1,materializeNested:!1,derived:"issue"}).ok}async parseAsync(e){if(this.kind==="mixin")throw Error(":mixin schema '"+(this.name||"anon")+"' is not instantiable");let t=await this._runAsync(e,{materialize:!0,materializeNested:!0,derived:"throw"});if(t.ok)return t.value;if(t.thrown)throw t.thrown;let r=t.from||this;throw new I1(t.errors,r.name,r.kind)}async safeAsync(e){if(this.kind==="mixin")return{ok:!1,value:null,errors:[{field:"",error:"mixin",message:"not instantiable"}]};let t=await this._runAsync(e,{materialize:!0,materializeNested:!0,derived:"issue"});if(t.ok)return{ok:!0,value:t.value,errors:null};if(t.thrown)return{ok:!1,value:null,errors:[{field:t.derivedField||"",error:"derived",message:t.thrown?.message||String(t.thrown)}]};return{ok:!1,value:null,errors:t.errors}}async okAsync(e){if(this.kind==="mixin")return!1;return(await this._runAsync(e,{materialize:!1,materializeNested:!1,derived:"issue"})).ok}pick(...e){return yt(this,(t)=>{let r=Wi(e),n=new Map;for(let i of r){if(!t.has(i))throw Error("pick: unknown field '"+i+"' on "+(this.name||"schema"));n.set(i,t.get(i))}return n})}omit(...e){return yt(this,(t)=>{let r=new Set(Wi(e)),n=new Map;for(let[i,s]of t)if(!r.has(i))n.set(i,s);return n})}partial(){return yt(this,(e)=>{let t=new Map;for(let[r,n]of e)t.set(r,{...n,required:!1});return t})}required(...e){return yt(this,(t)=>{let r=new Set(Wi(e)),n=new Map;for(let[i,s]of t)n.set(i,{...s,required:r.has(i)?!0:s.required});return n})}extend(e){if(!(e instanceof Et))throw Error("extend(): argument must be a schema value");if(e.kind==="union")throw Error("extend(): :union schemas have no fields to merge");return yt(this,(t)=>{let r=new Map(t),n=e._normalize().fields;for(let[i,s]of n){if(r.has(i))throw Error("extend(): field '"+i+"' collides between "+(this.name||"schema")+" and "+(e.name||"other"));r.set(i,s)}return r})}toJSONSchema(){let e={defs:new Map,expanding:new Set},t=qa(this,e);if(t.$schema="https://json-schema.org/draft/2020-12/schema",this.name)t.title=this.name;if(e.defs.size){t.$defs={};for(let[r,n]of e.defs)t.$defs[r]=n}return t}}var Ga={__proto__:null,string:()=>({type:"string"}),text:()=>({type:"string"}),email:()=>({type:"string",format:"email"}),url:()=>({type:"string",format:"uri"}),uuid:()=>({type:"string",format:"uuid"}),phone:()=>({type:"string",pattern:"^[\\d\\s\\-+()]+$"}),zip:()=>({type:"string",pattern:"^\\d{5}(-\\d{4})?$"}),number:()=>({type:"number"}),integer:()=>({type:"integer"}),boolean:()=>({type:"boolean"}),date:()=>({type:"string",format:"date"}),datetime:()=>({type:"string",format:"date-time"}),json:()=>({}),variant:()=>({}),any:()=>({})};function ic(e,t){let r;if(e.typeName==="literal-union"&&e.literals?.length)r=e.literals.length===1?{const:e.literals[0]}:{enum:[...e.literals]};else if(Ga[e.typeName])r=Ga[e.typeName]();else{let i=ie.get(e.typeName);r=i?za(i,t):{}}let n=e.constraints;if(n&&!e.array){if(r.type==="string"){if(n.min!=null)r.minLength=n.min;if(n.max!=null)r.maxLength=n.max;if(n.regex)r.pattern=n.regex.source}else if(r.type==="number"||r.type==="integer"){if(n.min!=null)r.minimum=n.min;if(n.max!=null)r.maximum=n.max}}if(e.array){if(r={type:"array",items:r},n){if(n.min!=null)r.minItems=n.min;if(n.max!=null)r.maxItems=n.max}}if(n&&n.default!==void 0)r.default=n.default;if(e.coerce)r.description=((r.description?r.description+" ":"")+"Coerced from wire data ("+(e.coercer?"~:"+e.coercer:"~"+e.typeName)+").").trim();if(e.transform)r.description=((r.description?r.description+" ":"")+"Derived via transform; the raw input may use different keys.").trim();return r}function za(e,t){let r=e.name||"Anon";if(!t.defs.has(r)&&!t.expanding.has(r))t.expanding.add(r),t.defs.set(r,null),t.defs.set(r,qa(e,t)),t.expanding.delete(r);return{$ref:"#/$defs/"+r}}function qa(e,t){let r=e._normalize();if(e.kind==="enum")return{enum:[...new Set(r.enumMembers.values())]};if(e.kind==="union"){let a=e._unionPlan();return{oneOf:r.unionMembers.map((l)=>{let c=ie.get(l);return c?za(c,t):{}}),discriminator:{propertyName:a.disc}}}let n={},i=[];for(let[a,o]of r.fields)if(n[a]=ic(o,t),o.required&&o.constraints?.default===void 0)i.push(a);if(e.kind==="model")Te.jsonSchemaModelColumns(e,n);let s={type:"object",properties:n};if(i.length)s.required=i;if(r.ensures.length)s.description="Refinements (not expressible in JSON Schema): "+r.ensures.map((a)=>a.message).join("; ")+".";return s}function Wi(e){let t=[];for(let r of e)if(Array.isArray(r))for(let n of r)t.push(n);else t.push(r);return t}function yt(e,t){if(e.kind==="union")throw Error("schema algebra (.pick/.omit/.partial/.required/.extend) is not supported on :union — derive from a constituent schema instead");if(e.kind==="enum")throw Error("schema algebra is not supported on :enum — an enum has no field set");let r=e.kind==="model"?Te.projectableFields(e):e._normalize().fields,n=t(r),i=[];for(let[,o]of n){let l=[];if(o.required)l.push("!");if(o.optional&&!o.required)l.push("?");i.push({tag:"field",name:o.name,modifiers:l,unique:o.unique===!0,primary:o.primary===!0,attrs:o.attrs||null,typeName:o.typeName,array:o.array,literals:o.literals||null,coerce:o.coerce===!0,coercer:o.coercer||null,constraints:o.constraints,transform:o.transform||null})}let s=(e.name||"Schema")+"Derived",a=new Et({kind:"shape",name:s,entries:i});return a._sourceModel=e._sourceModel||(e.kind==="model"?e:null),a}function Xa(e,t,r,n){for(let i of r){if(i.name!=="mixin"||!i.args||!i.args[0])continue;let s=i.args[0].target;if(!s)continue;if(n.stack.includes(s))throw new I1([{field:"",error:"mixin-cycle",message:"mixin cycle: "+n.stack.concat(s).join(" -> ")}],e.name,e.kind);if(n.seen.has(s))continue;let a=ie.getKind(s,"mixin");if(!a)throw new I1([{field:"",error:"mixin-missing",message:"unknown mixin: "+s}],e.name,e.kind);n.seen.add(s),n.stack.push(s);let o=a._desc.entries.filter((l)=>l.tag==="directive"&&l.name==="mixin").map((l)=>({name:l.name,args:l.args||[]}));Xa(e,t,o,n);for(let l of a._desc.entries){if(l.tag!=="field")continue;if(t.has(l.name))throw new I1([{field:l.name,error:"mixin-collision",message:l.name+" from mixin "+s+" collides with existing field"}],e.name,e.kind);if(e.kind!=="model"&&(l.unique===!0||l.attrs))throw new I1([{field:l.name,error:"mixin-persistence",message:l.name+" from mixin "+s+" carries persistence metadata (@unique/attrs) — :model-only; a :"+e.kind+" cannot include it"}],e.name,e.kind);t.set(l.name,{name:l.name,required:l.modifiers.includes("!"),optional:l.modifiers.includes("?"),unique:l.unique===!0,attrs:l.attrs||null,typeName:l.typeName,literals:l.literals||null,array:l.array===!0,coerce:l.coerce===!0,coercer:l.coercer||null,constraints:l.constraints||null,transform:l.transform||null})}n.stack.pop()}}function nc(e){let t=new Et(e);if(t.name)ie.register(t);return t}if(typeof globalThis<"u")globalThis.__ripSchema=globalThis.__ripSchema||{},globalThis.__ripSchema.SchemaRegistry=ie;var Ar={};Fe(Ar,{__batch:()=>M1,__catchErrors:()=>me,__computed:()=>Y1,__detachRef:()=>Ki,__effect:()=>x1,__handleError:()=>ne,__ownerFrame:()=>Tt,__popOwner:()=>X1,__pushOwner:()=>he,__readonly:()=>ue,__setEffectErrorReporter:()=>sc,__setErrorHandler:()=>de,__state:()=>A1,getEffectSignal:()=>fe});var Qa=Symbol.for("rip.runtime.reactive");if(globalThis[Qa])throw Error("two copies of the Rip reactive runtime loaded in one process — states from different copies "+"cannot notify each other (separate dependency graphs, separate effect queues). Run .rip sources through the rip CLI/loader (one shared runtime module per process), or load only one standalone-compiled file per process.");globalThis[Qa]=!0;var N1=null,_r=[],Ke={buckets:[],cursors:[],size:0,low:0,add(e){let t=e.depth,r=this.buckets[t];if(r===void 0)r=this.buckets[t]=new Set;if(r.has(e))return;if(r.add(e),this.size++,tconsole.error(e,t);function sc(e){let t=kt;return kt=e,t}function eo(){try{while(Ke.size>0){let e=Ke.shift();if(!e._disposed)e.run()}}catch(e){throw Ke.clear(),e}}var to={valueOf(){return this.value},toString(){return String(this.value)},[Symbol.toPrimitive](e){return e==="string"?this.toString():this.valueOf()}};function A1(e){if(e!=null&&typeof e==="object"&&typeof e.read==="function")return e;let t=e,r=new Set,n=!1,i=!1,s=!1,a=()=>{if(N1&&typeof N1.markDirty==="function"&&N1.dependencies.has(r))throw Error("reactive runtime: computed dependency changed during evaluation — "+"computed functions must derive without writing or touching a dependency")},o=()=>{for(let h of _r)h.writtenSignals.add(r)},l=()=>{n=!0;try{for(let h of r)if(h.markDirty)h.markDirty(!0);else h._hard=!0,Ke.add(h);if(!wr)eo()}finally{n=!1}},c={get value(){if(s)return t;if(N1?.writtenSignals&&_r.some((h)=>h.writtenSignals.has(r)))throw Error("reactive runtime: computed dependency changed during evaluation — "+"computed functions must derive without writing or touching a dependency");if(N1)r.add(N1),N1.dependencies.add(r);return t},set value(h){if(s||i||h===t)return;if(a(),n)return;o(),t=h,l()},read(){return t},touch(){if(s)return;if(a(),n)return;o(),l()},lock(){return i=!0,c},free(){return r.clear(),c},kill(){return s=!0,r.clear(),t},...to};return c}var kr=0,Ja=1,Tr=2;function ro(e){let t=N1;N1=null;try{for(let[r,n]of e.computedDeps)if(r.value,r.version!==n)return!0;return!1}finally{N1=t}}function Y1(e){let t,r=Tr,n=new Set,i=!1,s=!1,a=!1,o={dependencies:new Set,computedDeps:new Map,writtenSignals:new Set,version:0,markDirty(l){if(s||i)return;if(a)throw Error("reactive runtime: computed dependency changed during evaluation — "+"computed functions must derive without writing or touching a dependency");let c=r;if(l)r=Tr;else if(r===kr)r=Ja;if(c!==kr)return;for(let h of n)if(h.markDirty)h.markDirty(!1);else Ke.add(h)},get value(){if(s)return t;if(N1&&N1!==o)n.add(N1),N1.dependencies.add(n),N1.computedDeps.set(o,-1);if(a)throw Error("reactive runtime: computed value read during its own evaluation — "+"recursive computed reads are not supported");if(r===Ja&&!i)r=ro(o)?Tr:kr;if(r===Tr&&!i){for(let c of o.dependencies)c.delete(o);o.dependencies.clear(),o.computedDeps.clear();let l=N1;o.writtenSignals.clear(),N1=o,_r.push(o),a=!0;try{let c=e();if(c!==t)o.version++;t=c,r=kr}finally{a=!1,_r.pop(),o.writtenSignals.clear(),N1=l}}if(N1&&N1!==o)N1.computedDeps.set(o,o.version);return t},read(){return t},lock(){return i=!0,o.value,o},free(){for(let l of o.dependencies)l.delete(o);return o.dependencies.clear(),o.computedDeps.clear(),n.clear(),o},kill(){s=!0;let l=t;return o.free(),l},...to};return o}function Za(e){let t=e._cleanup;if(!t)return;let r=N1;N1=null;try{t()}finally{N1=r}e._cleanup=null}function x1(e){let t=null,r=0,n=B1,i={depth:n?n.depth+1:0,dependencies:new Set,computedDeps:new Map,_hard:!0,_disposed:!1,get signal(){if(!t&&typeof AbortController<"u"){if(t=new AbortController,i._disposed)t.abort()}return t?t.signal:null},run(){if(i._disposed)return;let a=i._hard;if(i._hard=!1,!a&&!ro(i))return;if(t){try{t.abort()}catch{}t=null}let o=++r;Za(i);for(let h of i.dependencies)h.delete(i);i.dependencies.clear(),i.computedDeps.clear();let l=N1;N1=i;let c=B1;B1=n;try{let h=e();if(typeof h==="function")i._cleanup=h;else if(h&&typeof h.then==="function")h.then((f)=>{if(o!==r||i._disposed){if(typeof f==="function")try{f()}catch(u){kt("[Rip] superseded async cleanup error:",u)}return}if(typeof f==="function")i._cleanup=f},(f)=>{if(f&&f.name==="AbortError")return;if(o!==r||i._disposed)return;kt("[Rip] async effect error:",f)})}finally{N1=l,B1=c}},dispose(){if(i._disposed)return;if(i._disposed=!0,Ke.delete(i),t)try{t.abort()}catch{}Za(i);for(let a of i.dependencies)a.delete(i);i.dependencies.clear()}};try{i.run()}catch(a){throw i.dispose(),a}let s=()=>i.dispose();if(B1)B1.add(s);return s}function M1(e){if(wr)return e();wr=!0;try{return e()}finally{wr=!1,eo()}}function Tt({nested:e=!0}={}){let t=[],r=null,i={depth:B1?B1.depth+1:0,get disposed(){return t===null},get size(){return t===null?0:t.length},add(s){if(t===null)s();else t.push(s)},remove(s){if(t===null)return;let a=t.indexOf(s);if(a>=0)t.splice(a,1)},dispose(){if(t===null)return;let s=t;if(t=null,r!==null){let a=r;r=null,a()}for(let a of s)try{a()}catch(o){kt("[Rip] effect disposer error:",o)}}};if(e&&B1){let s=B1;s.add(i.dispose),r=()=>s.remove(i.dispose)}return i}function he(e){let t={frame:e,prev:B1};return B1=e,t}function X1(e){if(!e||typeof e!=="object"||!("frame"in e))throw Error("reactive runtime: __popOwner takes the token the matching __pushOwner returned");if(B1!==e.frame)throw Error("reactive runtime: __popOwner out of order — the frame being popped is not the current owner "+"(an inner push was not popped, or this token was already popped)");B1=e.prev}function fe(){return N1?N1.signal:null}function ue(e){return Object.freeze({value:e})}function Ki(e,t){if(e&&typeof e.read==="function"&&e.read()===t)e.value=null}var Nr=null;function de(e){let t=Nr;return Nr=e,t}function ne(e){if(Nr)try{Nr(e)}catch(t){console.error("Error in error handler:",t),console.error("Original error:",e)}else throw e}function me(e){return function(...t){try{return e.apply(this,t)}catch(r){ne(r)}}}var Nt={};Fe(Nt,{__Component:()=>ko,__claimGateConstructor:()=>en,__clsx:()=>Dr,__detach:()=>$r,__detachRef:()=>Ki,__gateBind:()=>_c,__handleComponentError:()=>Xi,__hmrClassify:()=>_t,__hmrEmit:()=>_e,__hmrEntries:()=>Ji,__hmrEvents:()=>hc,__hmrLookup:()=>ac,__hmrMigrateDiff:()=>mo,__hmrMigrateRemount:()=>mc,__hmrPatch:()=>Qi,__hmrPreserveState:()=>xr,__hmrRegisterDefinition:()=>wt,__hmrRegistry:()=>we,__hmrRestoreUi:()=>Cr,__hmrSnapshotUi:()=>Zi,__lis:()=>Ro,__ownerFrame:()=>Tt,__popComponent:()=>pe,__popOwner:()=>X1,__pushComponent:()=>Le,__pushOwner:()=>he,__reconcile:()=>yc,__reportChildFailure:()=>Tc,__setChildFailureReporter:()=>kc,__style:()=>Eo,__transition:()=>Rc,getContext:()=>gc,hasContext:()=>bc,setContext:()=>pc});var ho=Symbol.for("rip.runtime.components");if(globalThis[ho])throw Error("two copies of the Rip component runtime loaded in one process — components from different "+"copies cannot see each other (separate component stacks: context, parent chains, and error boundaries silently break across copies). Run .rip sources through the rip CLI/loader (one shared runtime module per process), or load only one standalone-compiled file per process.");globalThis[ho]=!0;var z1=null,fo={},Or=null,uo=new WeakMap,io=!1,we=new Map;function Yi(e,t){if(e===t)return!0;if(!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length)return!1;for(let r=0;ri.has(c)),o=n.filter((c)=>!i.has(c)),l=r.filter((c)=>!s.has(c));return{kept:a,added:o,removed:l}}var Ir=[],cc=64;function _e(e,t={}){let r={type:e,at:Date.now(),...t};if(Ir.push(r),Ir.length>cc)Ir.shift();if(typeof window<"u"&&typeof window.dispatchEvent==="function"&&typeof CustomEvent==="function")try{window.dispatchEvent(new CustomEvent("rip:hmr",{detail:r}))}catch{}return r}function hc(){return Ir.slice()}function xr(e,t){let r=e?.constructor?.__hmrSig,n=t?.constructor?.__hmrSig,i=r?.state,s=n?.state,a=mo(r,n);if(!Array.isArray(i)||!Array.isArray(s))return _e("migrate",{id:t?.constructor?.__hmrId??null,...a,copied:[]}),a;let o=new Set(i),l=[];for(let h of s){if(!o.has(h))continue;let f=e[h],u=t[h];if(f!=null&&u!=null&&typeof f==="object"&&typeof u==="object"&&"value"in f&&"value"in u)u.value=f.value,l.push(h)}let c=t?.constructor?.__hmrId??e?.constructor?.__hmrId??null;return _e("migrate",{id:c,...a,copied:l}),{...a,copied:l}}var po=["name","type","placeholder"];function go(e){let t=(n)=>typeof e[n]==="string"&&e[n]?e[n]:null,r={tag:e.tagName??null};for(let n of po)r[n]=t(n);return r.label=typeof e.getAttribute==="function"?e.getAttribute("aria-label"):null,r.value=typeof e.value==="string"?e.value:null,r}function zi(e,t,r){if(!e||!t)return!1;let n=go(e);for(let i of["tag",...po,"label"])if(n[i]!==t[i])return!1;return!r||t.value==null||n.value===t.value}function fc(e){let t=go(e),r=typeof e.id==="string"&&e.id?e.id:null,n=[],i=e;while(i&&i!==document.body){let s=i.parentElement??i.parentNode??null;if(!s||!s.children)return{identity:t,id:r,path:null};n.unshift(Array.prototype.indexOf.call(s.children,i)),i=s}return{identity:t,id:r,path:i===document.body?n:null}}function uc(e){let t=e.active;if(t&&t.isConnected!==!1&&typeof document.contains==="function"&&document.contains(t))return t;let r=e.locator;if(!r)return null;if(r.id&&typeof document.getElementById==="function"){let o=document.getElementById(r.id);if(zi(o,r.identity,!1))return o}if(!Array.isArray(r.path)||r.path.length===0)return null;let n=document.body;for(let o of r.path.slice(0,-1))if(n=n?.children?.[o]??null,!n)return null;let i=Array.from(n.children??[]),s=i[r.path[r.path.length-1]]??null;if(zi(s,r.identity,!0))return s;let a=i.filter((o)=>zi(o,r.identity,!0));return a.length===1?a[0]:null}function Zi(){if(typeof document>"u")return null;let e=document.activeElement,t=e&&e!==document.body&&e!==document.documentElement?e:null,r=null;if(t&&typeof t.selectionStart==="number")r={start:t.selectionStart,end:t.selectionEnd,direction:t.selectionDirection};return{active:t,locator:t?fc(t):null,selection:r,scrollX:typeof window<"u"?window.scrollX:0,scrollY:typeof window<"u"?window.scrollY:0}}function Cr(e){if(!e||typeof document>"u")return;if(typeof window<"u")window.scrollTo(e.scrollX??0,e.scrollY??0);let t=uc(e);if(!t||typeof t.focus!=="function")return;try{if(t.focus({preventScroll:!0}),e.selection&&typeof t.setSelectionRange==="function")t.setSelectionRange(e.selection.start,e.selection.end,e.selection.direction??"none")}catch{}}function bo(e,t){let r=e.constructor?.__hmrId;if(typeof r==="string"&&r)we.get(r)?.instances.delete(e);Object.setPrototypeOf(e,t.prototype),Object.defineProperty(e,"constructor",{value:t,writable:!0,configurable:!0}),wt(t),we.get(t.__hmrId)?.instances.add(e)}function Qi(e,t){if(!e||!t)throw Error("__hmrPatch requires a living instance and a replacement constructor");let r=e.constructor?.__hmrId;return bo(e,t),e._hmrRerender(),_e("patch",{id:t.__hmrId??r??null}),e}function yo(e){return Object.keys(e).sort().join(",")}function dc(e,t){let n=(z1?._projectionOwner??z1)?._hmrOrphans;if(!n||n.length===0)return null;let i=e.__hmrId;if(typeof i!=="string")return null;let s=yo(t),a=null;for(let o of n){if(o._state!=="mounted"||o.constructor.__hmrId!==i||o._hmrPropKeys!==s)continue;if(a)return null;a=o}if(!a||_t(a.constructor,e)!=="patch")return null;if(n.splice(n.indexOf(a),1),a.constructor!==e)bo(a,e);a._hmrRelease();try{a._hmrApplyProps(t)}catch(o){throw a._teardown({state:"failed",hooks:!1,removeDOM:!0}),o}return a._hmrRebindPending=!0,a}function mc(e,t,r={}){let n=new t(r);return xr(e,n),n}function en(){if(io)throw Error("[Rip] the render-gate construction capability is already claimed");return io=!0,(e,t)=>{let r=Or;Or={brand:fo,component:e,gates:t.gates,parent:t.parent??null,stash:t.stash??null,router:t.router??null,used:!1};try{return new e({})}finally{Or=r}}}function $r(e){if(!e||e.nodeType===11)return;if(typeof e.remove==="function")e.remove();else if(e.parentNode)e.parentNode.removeChild(e)}function Le(e){let t=z1;if(e&&e._parent==null&&t&&t!==e)e._parent=t;return z1=e,t}function pe(e){z1=e}function pc(e,t){if(!z1)throw Error("setContext must be called during component initialization");if(!z1._context)z1._context=new Map;z1._context.set(e,t)}function So(e,t,r){if(typeof t!=="function")throw Error(r===void 0?`${e}: a context read names its provider — ${e}(Provider, ${JSON.stringify(t)})`:`${e}: the provider named for ${JSON.stringify(r)} is not a component`);let n=typeof t.__hmrId==="string"?t.__hmrId:null,i=z1,s=new Set;while(i&&!s.has(i)){if(s.add(i),i instanceof t||n!==null&&i.constructor?.__hmrId===n)return i._context!==void 0&&i._context.has(r)?{found:!0,value:i._context.get(r)}:{found:!1,provider:i};i=i._parent}return{found:!1,provider:null}}function gc(e,t){let r=So("getContext",e,t);if(r.found)return r.value;let n=e.name||"the provider";throw Error(r.provider!==null?`getContext: ${n} offers no ${JSON.stringify(t)}`:`getContext: no ${n} above this component — render one around it, or probe with hasContext(${n}, ${JSON.stringify(t)}) where absence is legal`)}function bc(e,t){return So("hasContext",e,t).found}function Dr(...e){let t="";for(let r of e){if(!r)continue;if(typeof r==="string")t&&(t+=" "),t+=r;else if(typeof r==="object"){if(Array.isArray(r)){let n=Dr(...r);n&&(t&&(t+=" "),t+=n)}else for(let n in r)if(r[n])t&&(t+=" "),t+=n}}return t}function Ro(e){let t=e.length;if(t===0)return[];let r=[],n=[],i=Array(t).fill(-1);for(let o=0;o>1;if(r[h]0)i[o]=n[l-1]}let s=[],a=n[r.length-1];for(let o=r.length-1;o>=0;o--)s.push(a),a=i[a];return s.reverse(),s}function yc(e,t,r,n,i,s,...a){if(e==null)throw Error("__reconcile: no anchor — the list's create phase never placed one");let o=e.parentNode;if(!o)return;let l=t.keys,c=t.items||[],h=t.blocks,f=l.length,u=r.length,d=Array(u),p=s!=null,m=p?r.map((R,T)=>s(R,T)):r;if(p){let R=new Set;for(let T of m){if(R.has(T))throw Error(`__reconcile: duplicate key ${JSON.stringify(String(T))} — keyed rows need unique keys `+"(the key function must be injective over the items)");R.add(T)}}if(f===0){if(u>0){let R=document.createDocumentFragment();for(let T=0;T=g&&w>=g&&l[S]===m[w]){let R=h[S];if(!R._s)R.p(n,r[w],w,...a);d[w]=R,S--,w--}if(g>w)for(let R=g;R<=S;R++)h[R].d(!0);else if(g>S){let R=w+1=g;N--){let D=d[N];if(!L.has(N-g))D.m(o,C);C=D._first}}t.keys=p?m:r.slice(),t.items=r.slice(),t.blocks=d}var no=!1;function Sc(){if(no)return;no=!0;let e=document.createElement("style");e.textContent=[".fade-enter-active,.fade-leave-active{transition:opacity .2s ease}",".fade-enter-from,.fade-leave-to{opacity:0}",".slide-enter-active,.slide-leave-active{transition:opacity .2s ease,transform .2s ease}",".slide-enter-from{opacity:0;transform:translateY(-8px)}",".slide-leave-to{opacity:0;transform:translateY(8px)}",".scale-enter-active,.scale-leave-active{transition:opacity .2s ease,transform .2s ease}",".scale-enter-from,.scale-leave-to{opacity:0;transform:scale(.95)}",".blur-enter-active,.blur-leave-active{transition:opacity .2s ease,filter .2s ease}",".blur-enter-from,.blur-leave-to{opacity:0;filter:blur(4px)}",".fly-enter-active,.fly-leave-active{transition:opacity .2s ease,transform .2s ease}",".fly-enter-from{opacity:0;transform:translateY(-20px)}",".fly-leave-to{opacity:0;transform:translateY(20px)}"].join(""),document.head.appendChild(e)}function Rc(e,t,r,n){Sc();let i=e.classList,s=t+"-"+r+"-from",a=t+"-"+r+"-active",o=t+"-"+r+"-to",l=!1,c=null;i.add(s,a),requestAnimationFrame(()=>{requestAnimationFrame(()=>{i.remove(s),i.add(o);let h=(u)=>{if(l||u&&u.target!==e)return;if(l=!0,clearTimeout(c),e.removeEventListener("transitionend",h),e.removeEventListener("transitioncancel",h),i.remove(a,o),n)n()};e.addEventListener("transitionend",h),e.addEventListener("transitioncancel",h);let f=0;try{let u=getComputedStyle(e),d=(p)=>Math.max(0,...String(p).split(",").map((m)=>(parseFloat(m)||0)*(/ms\s*$/.test(m.trim())?1:1000)));f=d(u.transitionDuration)+d(u.transitionDelay)}catch{}c=setTimeout(()=>h(),f+50)})})}function Ec(e){let t=e!=null&&typeof e==="object"?e.name:null;if(t==="GateFailure"||t==="ComponentFailure")return e;let r=Error(e!=null&&e.message!==void 0?e.message:String(e));r.name="ComponentFailure";let n=e!=null?e.status??e.response?.status:void 0;if(n!==void 0)r.status=n;return r.error=e,r}var qi=(e,t)=>console.error(`[Rip] ${e} construction failed:`,t);function kc(e){let t=qi;return qi=e,t}function Tc(e,t){qi(e,t)}function Xi(e,t){let r=Ec(e),n=t,i=new Set;while(n&&!i.has(n)){if(i.add(n),n.onError){let s=Le(n),a=he(n._frame);try{n.onError(r,t);return}catch(o){}finally{X1(a),pe(s)}}n=n._parent}throw e}var so=new WeakSet;function wc(e,t){if(so.has(e))return;let r=e.__props??[];if(!Array.isArray(r))throw Error(`${e.name||"component"}: static __props must be an array of declared prop names`);for(let n of r){if(typeof n!=="string"||n.length===0)throw Error(`${e.name||"component"}: static __props entries must be non-empty strings`);if(n.startsWith("_"))throw Error(`${e.name||"component"}: declared prop '${n}' collides with component internals — `+"underscore-prefixed names are reserved for the runtime");if(n in t)throw Error(`${e.name||"component"}: declared prop '${n}' collides with a component member (a method or lifecycle slot already answers '${n}')`)}so.add(e)}function _c(e,t){let n=uo.get(e)?.gates?.[t];if(!n?.cell)throw Error(`[Rip] render gate ${t} has no renderer-resolved source binding — `+"gated components may only be constructed by rip/app createRenderer()");let i=n.value,s=!0;return Y1(()=>{if(s)return s=!1,n.cell.read(),i;let a=n.cell.read();for(let o of n.tail){if(a==null)break;a=a[o]}if(a!=null)i=a;return i})}var vr=new WeakMap;function ao(e,t,r){if(t.startsWith("--")&&typeof e.setProperty==="function")if(r==null||r==="")e.removeProperty(t);else e.setProperty(t,String(r));else e[t]=r}function Eo(e,t){let r=vr.get(e);if(t==null){e.removeAttribute("style"),vr.delete(e);return}if(typeof t!=="object"){e.setAttribute("style",String(t)),vr.delete(e);return}if(r){for(let n of r)if(!(n in t))ao(e.style,n,"")}vr.set(e,Object.keys(t));for(let n of Object.keys(t))ao(e.style,n,t[n])}var Nc=new Set(["disabled","hidden","readonly","required","checked","selected","autofocus","autoplay","controls","loop","muted","multiple","novalidate","open","reversed","defer","async","formnovalidate","allowfullscreen","inert","ismap","nomodule","playsinline","default","itemscope","alpha","shadowrootdelegatesfocus","shadowrootclonable","shadowrootserializable"]),oo=(e)=>new Proxy(e,{get(t,r){let n=t[r];return n!=null&&typeof n==="object"&&typeof n.read==="function"?n.value:n}});function lo(e,t){let r=e.__props??[],n=e.__extends??null,i=null;for(let s of Object.keys(t)){if(s==="children")continue;if(s.startsWith("__bind_")&&s.endsWith("__")){let a=s.slice(7,-2);if(r.includes(a))continue;throw Error(`${e.name||"component"}: cannot bind unknown prop '${a}' — declared `+`props are [${r.join(", ")}]`)}if(r.includes(s))continue;if(n!==null){(i??={})[s]=t[s];continue}throw Error(`${e.name||"component"}: unknown prop '${s}' — declared props are `+`[${r.join(", ")}]`)}return i}function co(e,t){let r=t?.asChild;if(r==null||r===!1)return!1;if(r===!0)return!0;let n=typeof r==="object"&&typeof r.read==="function"?"a reactive value":`${typeof r} ${String(r)}`;throw Error(`${e.name||"component"}: asChild takes true or nothing, fixed at construction — got ${n}`)}function Ac(e){return e!=null&&typeof e==="object"&&typeof e.read==="function"?e.value:e}function vc(e){if(e==null)return"nothing";if(e.nodeType===3)return"text";if(e.nodeType===8)return"a comment";if(e.nodeType===11)return`a fragment of ${e.childNodes.length} nodes`;return typeof e==="object"?"a value that is no node":`${typeof e} ${String(e)}`}class ko{constructor(e={}){let t=dc(this.constructor,e);if(t)return t;this._state="new",this._owner=z1?._projectionOwner??z1??null,wc(this.constructor,this);let r=this.constructor.__gates,n=Or,i=n?.brand===fo&&n.component===this.constructor&&n.used!==!0;if(i)n.used=!0;if(r?.length&&!i)throw Error("[Rip] component declares render gates (<~) and cannot be constructed directly or as an embedded child; render gates are honored only by rip/app createRenderer()");if(i){if(uo.set(this,n),n.parent)this._parent=n.parent;if(n.stash!=null)this.stash=n.stash;if(n.router!=null)this.router=n.router,Object.defineProperty(this,"params",{get:()=>n.router.params,configurable:!0}),Object.defineProperty(this,"query",{get:()=>n.router.query,configurable:!0})}if(this.stash==null&&globalThis.__ripStash!=null)this.stash=globalThis.__ripStash;if(this.router==null&&globalThis.__ripRouter!=null)this.router=globalThis.__ripRouter;let s=lo(this.constructor,e);if("children"in e)this.children=e.children;if(this.constructor.__hmrId)this._hmrPropKeys=yo(e);if(this.constructor.__extends!=null)this._rest=s??{},this.rest=A1(oo(this._rest)),this._asChild=co(this.constructor,this._rest);this._frame=Tt({nested:!1});let a=Le(this),o=he(this._frame);try{this._init(e)}catch(l){X1(o),pe(a),this._teardown({state:"failed",hooks:!1,removeDOM:!0}),this._initFailed=!0,Xi(l,this);return}if(X1(o),pe(a),this.constructor.__hmrId)oc(this)}_init(e){}_beginProjection(e){let t={prev:Le(this),owner:this._projectionOwner??null};return this._projectionOwner=e,t}_endProjection(e){this._projectionOwner=e.owner,pe(e.prev)}_setChildren(e){let t=this.children;if(t!=null&&typeof t==="object"&&typeof t.read==="function"&&"value"in t)t.value=e;else this.children=e;if(this._asChild&&this._state==="mounted")this._rehost()}_adoptChild(){let e=Ac(this.children);if(e!=null&&e.nodeType===1)return e;throw Error(`${this.constructor.name||"component"}: asChild renders the projected element as the host, so the body must `+`be exactly one element — got ${vc(e)}`)}_rehost(){let e=this._inheritedEl;if(this._hmrRelease(!1),!this._hmrRebind())return;if(!this._mountCreate())return;this._mountSetup(),this._rehostAbove(e)}_rehostAbove(e){let t=this._parent;if(e==null||this._root===e||!t?._asChild||t._state!=="mounted"||t._inheritedEl!==e)return;t._setChildren(this._root)}_updateProp(e,t){if(this._state==="failed"||this._state==="unmounted")return;let r=this.constructor.__props??[];if(!r.includes(e)){if(this.constructor.__extends){this._setRestProp(e,t);return}throw Error(`${this.constructor.name||"component"}: cannot update unknown prop '${e}' — declared `+`props are [${r.join(", ")}]`)}let n=this[e];if(n&&typeof n==="object"&&"value"in n){n.value=t;return}throw Error(`${this.constructor.name||"component"}: prop '${e}' is non-reactive — parent updates `+"cannot reach it (declare it with ':=' to receive updates)")}_setRestProp(e,t){if(e.startsWith("__bind_"))return;if(this._state==="failed"||this._state==="unmounted")return;if(e==="asChild")throw Error(`${this.constructor.name||"component"}: asChild is fixed at construction and takes no update`);if(this._rest||(this._rest={}),t==null)delete this._rest[e];else this._rest[e]=t;this.rest.touch();let r=he(this._frame);try{this._applyInheritedProp(this._inheritedInst??this._inheritedEl,e,t)}finally{X1(r)}}_applyRestToInheritedEl(){if(this._state==="failed"||this._state==="unmounted")return;if(!this._inheritedEl||!this._rest)return;for(let e in this._rest)this._applyInheritedProp(this._inheritedEl,e,this._rest[e])}_applyInheritedProp(e,t,r){if(this._state==="failed"||this._state==="unmounted")return;if(!e||t==="key"||t==="ref"||t==="children"||t==="asChild"||t.startsWith("__bind_"))return;if(this._inheritedOwn?.has(t))return;let n=this._restWriters?.[t];if(n){if(n(),this._frame)this._frame.remove(n);delete this._restWriters[t]}if(r!=null&&typeof r==="object"&&typeof r.read==="function"){(this._restWriters??={})[t]=x1(()=>{this._applyPlainInheritedProp(e,t,r.value)});return}this._applyPlainInheritedProp(e,t,r)}_applyPlainInheritedProp(e,t,r){if(typeof e._updateProp==="function"){if(e._state==="failed"||e._state==="unmounted")return;e._updateProp(t,r);return}let n=e;if(t[0]==="@"){let i=t.slice(1).split(".")[0];this._restHandlers||(this._restHandlers={});let s=this._restHandlers[t];if(s)n.removeEventListener(i,s);if(typeof r==="function"){let a=(o)=>M1(()=>r(o));this._restHandlers[t]=a,n.addEventListener(i,a)}else delete this._restHandlers[t];return}if(t==="class"||t==="className"){if(n instanceof SVGElement)n.setAttribute("class",Dr(r));else n.className=Dr(r);return}if(t==="style"){Eo(n,r);return}if(t==="innerHTML"||t==="textContent"||t==="innerText"||t==="value"){n[t]=r??"";return}if(t==="checked"){n.checked=!!r;return}if(Nc.has(t)){n.toggleAttribute(t,!!r);return}if(r==null)n.removeAttribute(t);else n.setAttribute(t,r)}_beginMount(){if(this._state==="new"){this._state="mounting";return}let e=this.constructor.name||"component";if(this._state==="mounting")throw Error(`${e}: cannot mount an instance whose mount is already in progress`);if(this._state==="mounted")throw Error(`${e}: cannot mount an already-mounted instance — construct a new instance for another target`);if(this._state==="failed")throw Error(`${e}: cannot mount a failed instance — its mount rolled back; construct a new instance`);throw Error(`${e}: cannot mount an unmounted instance — its effects were disposed on unmount; construct a new instance`)}_mountCreate(){if(this._beginMount(),this._hmrRebindPending){if(this._hmrRebindPending=!1,!this._hmrRebind())return!1}let e=Le(this),t=he(this._frame),r=null,n=!1;try{this._root=this._create()}catch(i){r=i,n=!0}finally{X1(t),pe(e)}if(n)return this._failMount(r),!1;return!0}_mountSetup(e=null){if(this._state!=="mounting")return this._nodes?.[0]??this._root;let t=Le(this),r=he(this._frame),n=null,i=!1;try{if(e){let s=this._nodes?.[0]??this._root;if(s?.parentNode)s.parentNode.insertBefore(e,s)}if(this.beforeMount)this.beforeMount();if(this._setup)this._setup();if(this.mounted)this.mounted();this._state="mounted",$r(e),this._hmrDrainOrphans((s,a)=>console.error(`[Rip] ${s} error:`,a))}catch(s){n=s,i=!0}finally{X1(r),pe(t)}if(i)return this._failMount(n),e;return this._nodes?.[0]??this._root}_failMount(e){this._teardown({state:"failed",hooks:!1,removeDOM:!0}),Xi(e,this)}_dispose(e,t){if(this._children){for(let r of this._children)try{t(r)}catch(n){e("child teardown",n)}this._children=null}try{this._frame?.dispose()}catch(r){e("owner disposal",r)}if(this._restWriters){for(let r of Object.values(this._restWriters))try{r()}catch(n){e("rest writer cleanup",n)}this._restWriters=null}if(this._restHandlers){if(this._inheritedEl)for(let[r,n]of Object.entries(this._restHandlers))try{this._inheritedEl.removeEventListener(r.slice(1).split(".")[0],n)}catch(i){e("rest handler cleanup",i)}this._restHandlers=null}if(this._refCleanups){let r=this._refCleanups;this._refCleanups=null;try{M1(()=>{for(let n of r)try{n()}catch(i){e("ref cleanup",i)}})}catch(n){e("ref cleanup batch flush",n)}}this._children=null,this._refCleanups=null,this._restWriters=null,this._restHandlers=null}_detachDOM(e,t){if(t)if(this._nodes)for(let r of this._nodes)try{$r(r)}catch(n){e("DOM detach",n)}else try{$r(this._root)}catch(r){e("DOM detach",r)}this._root=null,this._nodes=null,this._inheritedEl=null,this._inheritedInst=null,this._inheritedOwn=null}_teardown({state:e,hooks:t,removeDOM:r}){if(this._state==="failed"||this._state==="unmounted")return;if(this.constructor.__hmrId)lc(this);this._state=e;let n=(i,s)=>console.error(`[Rip] ${i} error:`,s);if(this._hmrDrainOrphans(n),t)try{if(this.beforeUnmount)this.beforeUnmount()}catch(i){n("beforeUnmount",i)}if(this._dispose(n,(i)=>{if(t)i.unmount({removeDOM:r});else i._teardown({state:i._state==="mounted"?"unmounted":"failed",hooks:!1,removeDOM:!0})}),t)try{if(this.unmounted)this.unmounted()}catch(i){n("unmounted",i)}this._detachDOM(n,r),this._target=null}_hmrRelease(e=!0){let t=(r,n)=>console.error(`[Rip] ${r} error:`,n);try{if(this.beforeUnmount)this.beforeUnmount()}catch(r){t("beforeUnmount",r)}this._hmrOrphans=[],this._hmrReleasing=!0;try{this._dispose(t,(r)=>r.unmount({removeDOM:!0}))}finally{this._hmrReleasing=!1}this._detachDOM(t,e),this._frame=Tt({nested:!1}),this._state="new"}_hmrRebind(){let e=(n,i)=>console.error(`[Rip] ${n} error:`,i),t=Le(this),r=he(this._frame);try{if(typeof this._hmrRefreshComputeds==="function")this._hmrRefreshComputeds();if(typeof this._hmrBindEffects==="function")this._hmrBindEffects()}catch(n){return X1(r),pe(t),e("hmr rebind",n),this._failMount(n),!1}return X1(r),pe(t),!0}_hmrApplyProps(e){let t=lo(this.constructor,e);if("children"in e)this.children=e.children;for(let r of this.constructor.__props??[]){let n=`__bind_${r}__`;if(n in e){this[r]=e[n];continue}if(!(r in e))continue;let i=e[r];if(i!=null&&typeof i==="object"&&typeof i.read==="function")this[r]=i;else this._updateProp(r,i)}if(this.constructor.__extends!=null)this._rest=t??{},this.rest.value=oo(this._rest),this._asChild=co(this.constructor,this._rest)}_hmrDrainOrphans(e){let t=this._hmrOrphans;if(!t)return;this._hmrOrphans=null;for(let r of t)try{r.unmount({removeDOM:!0})}catch(n){e("orphan teardown",n)}}_hmrRerender(){let e=this.constructor.name||"component";if(this._state!=="mounted")throw Error(`${e}: _hmrRerender requires a mounted instance`);let t=this._target,r=this._nodes,n=r?.[0]??this._root,i=n?.parentNode??null,s=r?.length?r[r.length-1].nextSibling:this._root?this._root.nextSibling:null,a=this._asChild===!0;if(this._hmrRelease(!a),!this._hmrRebind())return this;if(typeof this._create!=="function")return this._state="mounted",this._hmrDrainOrphans((o,l)=>console.error(`[Rip] ${o} error:`,l)),this;if(!this._mountCreate())return this;if(!a)try{let o=i&&i.nodeType!==11?i:null;if(o&&o.isConnected===!1)o=null;if(!o&&typeof t==="string"&&typeof document<"u")o=document.querySelector(t);else if(!o&&t&&t.nodeType!==11&&t.isConnected!==!1)o=t;else if(!o&&typeof document<"u")o=document.querySelector("#content")||document.querySelector("#app");if(o){let l=s&&(typeof o.contains!=="function"||o.contains(s))?s:null;if(this._nodes)for(let c of this._nodes)o.insertBefore(c,l);else if(this._root)o.insertBefore(this._root,l);this._target=o.nodeType===11?null:o}}catch(o){return this._failMount(o),this}return this._mountSetup(),this._rehostAbove(n),this}mount(e){if(!this._mountCreate())return this;try{if(typeof e==="string")e=document.querySelector(e);if(this._target=e,this._root)e.appendChild(this._root)}catch(t){return this._failMount(t),this}return this._mountSetup(),this}unmount({removeDOM:e=!0}={}){if(this._state==="failed"||this._state==="unmounted")return;if(this._state==="mounted"&&this._owner?._hmrReleasing){this._owner._hmrOrphans.push(this);return}if(this._state==="mounting")throw Error(`${this.constructor.name||"component"}: cannot unmount while mounting`);this._teardown({state:"unmounted",hooks:this._state==="mounted",removeDOM:e})}emit(e,t){if(this._state!=="mounted"||!this._root)throw Error(`${this.constructor.name||"component"}: emit('${e}') outside the mounted window — `+"emit dispatches on the live root; call after mount and before unmount");(this._nodes?.[0]??this._root).dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!0}))}static mount(e="body"){return new this().mount(e)}}var ti={};Fe(ti,{ariaCurrent:()=>Gr,browserAdapter:()=>Vr,buildRoutes:()=>Ct,check:()=>ei,connectFeed:()=>Zr,createApply:()=>Qr,createComponents:()=>Fr,createMutation:()=>Do,createRenderer:()=>Wr,createRouter:()=>Ur,createStash:()=>Mr,createWorkspace:()=>Xr,currentRouter:()=>Kc,currentStash:()=>Gc,debounce:()=>xo,delay:()=>jr,hold:()=>Po,interceptClicks:()=>Kr,launch:()=>zr,ownsAnchor:()=>Lt,parseQuery:()=>Ze,persistStash:()=>Hr,preloadLinks:()=>Yr,rash:()=>Mt,source:()=>_o,throttle:()=>Co,unwrapStash:()=>Ne,validatePrepared:()=>Rn});var Pr,tn,To,wo=Symbol.for("rip.source"),rn=Symbol.for("rip.source.family"),Oc=64,Ic=30000,$c=/^(\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)\s*(s|sec|second|seconds|m|min|minute|minutes|h|hr|hour|hours|d|day|days|w|week|weeks|y|year|years)$/;function C1(e){return e!=null&&(typeof e==="object"||typeof e==="function")&&(e[wo]===!0||e[rn]===!0)}function ge(e){return e!=null&&typeof e==="function"&&e[rn]===!0}To=function(e){let t,r;if(e==null)return 0;if(typeof e==="number"){if(!(Number.isFinite(e)&&e>=0))throw TypeError('Rip App: source staleTime must be a non-negative finite number, a duration string, or "forever"');return e}if(typeof e==="string"){if(e==="forever")return 1/0;if(r=e.match($c),r)return t=parseFloat(r[1]),(()=>{switch(r[2][0]){case"s":return t*1000;case"m":return t*60000;case"h":return t*3600000;case"d":return t*86400000;case"w":return t*604800000;case"y":return t*31536000000}})()}throw TypeError('Rip App: source staleTime must be a non-negative number, a duration such as "5 min", or "forever"')};Pr=function(e,t,r=null){let n=A1(null),i=A1(!1),s=A1(null),a=0,o=null,l=null,c=!1,h=!1,f=!1,u=0,d=0,p=async function(S=!1,w=!1){let R,T;o?.abort(),o=typeof AbortController<"u"?new AbortController:null;let F=++a;if(!S)i.value=!0;let L=f;try{if(R=e(o?.signal),!(R!=null&&typeof R.then==="function"))throw TypeError("Rip App: source fetch must return a Promise");if(T=await R,F!==a)return T;return s.value=null,n.value=T,f=!0,u=Date.now(),d=w&&!h?u+Ic:0,T}catch(C){if(F!==a)return;if(C?.name==="AbortError")return;if(s.value=C,!L)throw f=!1,u=0,C;return}finally{if(F===a)i.value=!1,l=null,c=!1,h=!1,r?.()}},m=function(S=!1,w=!1){let R=p(S,w);return l=R,c=w,h=!1,R},g=function(){return t===1/0||Date.now()-uOc){o=!1;for(let[l,c]of r){if(l===a)continue;if(c.loading)continue;r.delete(l),c.reset(),o=!0;break}if(!o)break}return},i=function(a){if(a==null)throw TypeError("Rip App: keyed source requires a key");let o=Dc(a),l=r.get(o);if(l)return r.delete(o),r.set(o,l),l;return l=Pr(function(c){return e(a,c)},t,n),r.set(o,l),n(o),l},s=function(a){return i(a).read()};return s[rn]=!0,s.cellFor=i,s.reset=function(){let a=Array.from(r.values());r.clear();for(let o of a)o.reset();return},s};function _o(e){if(!(e!=null&&typeof e==="object"&&!Array.isArray(e)))throw TypeError("Rip App: source expects an options object");if(typeof e.fetch!=="function")throw TypeError("Rip App: source options require a fetch function");let t=To(e.staleTime);if(Object.prototype.hasOwnProperty.call(e,"kind")){if(!(e.kind==="singleton"||e.kind==="keyed"))throw TypeError("Rip App: source kind must be 'singleton' or 'keyed'");if(e.kind==="singleton"){if(e.fetch.length>1)throw TypeError("Rip App: singleton source fetch accepts at most one AbortSignal parameter");return Pr(e.fetch,t)}if(e.fetch.length<1||e.fetch.length>2)throw TypeError("Rip App: keyed source fetch requires a key parameter and accepts one optional AbortSignal parameter");return tn(e.fetch,t)}if(e.fetch.length>1)throw TypeError("Rip App: inferred source fetch accepts no parameters for a singleton or one key parameter for a keyed family");return e.fetch.length===1?tn(e.fetch,t):Pr(e.fetch,t)}var ln,It,nn,vt,$1=Symbol("rip.app.stash.raw"),Ye=Symbol("rip.app.stash.signals"),xc=Symbol("rip.app.stash.keys"),vo=Symbol("rip.app.stash.defaults"),Cc=Symbol.for("rip.app.stash.purge"),Oo=new WeakMap,Pc=0,cn=A1(0),sn=function(){return cn.value++},Io=function(e,t){let r=e[Ye];if(!r)r=new Map,Object.defineProperty(e,Ye,{value:r});let n=r.get(t);if(!n)n=A1(e[t]),r.set(t,n);return n},Ot=function(e){return Io(e,xc)},an=function(e){Ot(e).value=++Pc;return};It=function(e){if(!(e!=null&&typeof e==="object"))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null||Array.isArray(e)};var No=function(e){if(!It(e))return e;let t=Oo.get(e);if(t)return t;return ln(e)},ze=function(e,t){let r=e?.[$1];if(!r)return e[t];let n=r[t];if(C1(n)){if(ge(n))return n;return No(n.read())}return No(Io(r,t).value)},on=function(e,t,r){let n,i,s,a,o=e?.[$1];if(!o)return e[t]=r,r;if(Array.isArray(o)&&t==="length"){if(a=o.length,s=+r,o.length=s,s!==a){if(o[Ye]){for(let f=Math.min(a,s),u=Math.max(a,s);f0))throw TypeError("Rip App: stash path must be a non-empty string");let s=[],a=0;if(e[0]!=="["){i=a;while(a=e.length||a===i)throw TypeError(`Rip App: malformed stash path '${e}'`);if(r=e.slice(i,a),a++,e[a]!=="]")throw TypeError(`Rip App: malformed stash path '${e}'`);a++,s.push(r)}else{i=a;while(a{let n=[];for(let i in r){if(!Object.hasOwn(r,i))continue;let s=r[i];n.push(nn(s,t))}return n})()};vt=function(e){if(!It(e))return e;let t=e[$1]?e[$1]:e;if(Array.isArray(t))return(()=>{let n=[];for(let i of t)if(!C1(i))n.push(vt(i));return n})();let r={};for(let n in t){if(!Object.hasOwn(t,n))continue;let i=t[n];if(C1(i))continue;r[n]=vt(i)}return r};function $o(e){let t=e?.[$1]?e[$1]:e;if(!(t!=null&&typeof t==="object"))return;Object.defineProperty(t,vo,{value:vt(t),configurable:!0});return}function Lr(e){if(C1(e))return e;if(!It(e))return e;let t=e[$1]?e[$1]:e;if(Array.isArray(t))return(()=>{let n=[];for(let i of t)n.push(Lr(i));return n})();let r={};for(let n in t){if(!Object.hasOwn(t,n))continue;let i=t[n];Object.defineProperty(r,n,{value:Lr(i),writable:!0,enumerable:!0,configurable:!0})}return r}function Je(e,t){let r,n,i;if(!(e!=null&&typeof e==="object"))return;if(!(t!=null&&typeof t==="object"))return;let s=e[$1]?e[$1]:e;for(let a in t){if(!Object.hasOwn(t,a))continue;let o=t[a];if(r=Object.prototype.hasOwnProperty.call(s,a)?s[a]:void 0,C1(r))continue;if(Array.isArray(r)&&r.some(function(l){return C1(l)}))continue;if(n=r!=null&&typeof r==="object"&&!Array.isArray(r),i=o!=null&&typeof o==="object"&&!Array.isArray(o),n&&i)Je(e[a],o);else e[a]=vt(o)}return}var jc=function(e,t){let r,n=t[vo];if(!n)return;r=function(i,s,a){let o;for(let l in s){if(!Object.hasOwn(s,l))continue;if(o=s[l],C1(o))continue;if(!(a!=null&&Object.prototype.hasOwnProperty.call(a,l))){delete i[l];continue}if(o!=null&&typeof o==="object"&&!Array.isArray(o))r(i[l],o,a[l])}return},r(e,t,n),Je(e,n);return},Fc={inc:!0,dec:!0,flip:!0,join:!0,keys:!0,has:!0,del:!0,peek:!0,reset:!0,source:!0},Bc=function(e,t,r){if(r==="inc")return function(n,i=1){let s=(Me(e,n)??0)+i;return At(e,n,s),s};if(r==="dec")return function(n,i=1){let s=(Me(e,n)??0)-i;return At(e,n,s),s};if(r==="flip")return function(n){let i=!(Me(e,n)??!1);return At(e,n,i),i};if(r==="join")return function(n,i){if(!(i!=null&&typeof i==="object"&&!Array.isArray(i)))throw TypeError("Rip App: join expects a plain object");M1(function(){let s=Me(e,n);if(!(s!=null&&typeof s==="object"&&!Array.isArray(s)))At(e,n,{}),s=Me(e,n);return(()=>{let a=[];for(let o in i){if(!Object.hasOwn(i,o))continue;let l=i[o];a.push(s[o]=l)}return a})()});return};if(r==="keys")return function(n){let i=n!=null?Me(e,n):e;if(!(i!=null&&typeof i==="object"))return[];let s=i[$1]?i[$1]:i;return Ot(s).value,Object.keys(s)};if(r==="has")return function(n){let i,s,a=qe(n);if(!(a.length>0))return!1;let o=e;for(let l=0;l0))return;let a=e;for(let o=0;o0))throw TypeError("Rip App: component path must be a non-empty string");let t=e.split("/"),r=t.some(function(s){return!s||s==="."||s===".."}),n=t.at(-1),i=t.slice(0,-1).some(function(s){return s.endsWith(".rip")});if(e.includes("\\")||r||i||n===".rip"||!n.endsWith(".rip"))throw TypeError(`Rip App: invalid component path '${e}'`);return e};hn=function(e){if(typeof e!=="string")throw TypeError("Rip App: component source must be a string");return e};fn=function(e){if(e===""||e==null)return"";if(typeof e!=="string")throw TypeError("Rip App: component directory must be a string");let t=e.split("/");if(e.includes("\\")||t.some(function(r){return!r||r==="."||r===".."}))throw TypeError(`Rip App: invalid component directory '${e}'`);return e};function Fr(){let e=new Map,t=new Map,r=new Set,n=function(s,a){let o=[];for(let l of Array.from(r))o.push((()=>{try{return l(s,a)}catch(c){return console.error("[Rip] component watcher error:",c)}})());return o};return{read(s){return e.get(Ae(s))},write(s,a){s=Ae(s),a=hn(a);let o=e.has(s)?"change":"create";e.set(s,a),t.delete(s),n(o,s);return},del(s){s=Ae(s),e.delete(s),t.delete(s),n("delete",s);return},exists(s){return e.has(Ae(s))},size(){return e.size},list(s=""){let a;s=fn(s);let o=s?s+"/":"",l=[];for(let[c]of e)if(c.startsWith(o)){if(a=c.slice(o.length),!a.includes("/"))l.push(c)}return l},listAll(s=""){s=fn(s);let a=s?s+"/":"",o=[];for(let[l]of e)if(l.startsWith(a))o.push(l);return o},load(s){let a,o;if(!(s!=null&&typeof s==="object"&&!Array.isArray(s)))throw TypeError("Rip App: component load expects a source object");for(let l in s){if(!Object.hasOwn(s,l))continue;let c=s[l];l=Ae(l),c=hn(c),e.set(l,c),t.delete(l)}return},watch(s){if(typeof s!=="function")throw TypeError("Rip App: component watch expects a function");r.add(s);let a=!1;return function(){if(a)return;a=!0,r.delete(s);return}},getCompiled(s){return t.get(Ae(s))},setCompiled(s,a){if(s=Ae(s),!(a!=null&&typeof a==="object"&&!Array.isArray(a)))throw TypeError("Rip App: compiled component module must be an object");t.set(s,a);return}}}var Mo,jo,P1,dn,Fo,Bo,Uo,un=/^\w+$/,Vo={static:0,dynamic:1,optional:2,catchall:3},Lo=8;P1=function(e){throw Error(`Rip App: ${e}`)};var xt=function(e){try{return decodeURIComponent(e)}catch(t){return null}};Uo=function(e){if(e==="")return"";if(typeof e!=="string")throw TypeError("Rip App: route root must be a string");let t=e.split("/");if(e.includes("\\")||t.some(function(r){return!r||r==="."||r===".."}))throw TypeError(`Rip App: invalid route root '${e}'`);return e};var Wo=function(e,t){let r;if(r=/^\[\[(.+)\]\]$/.exec(e)){if(!un.test(r[1]))P1(`invalid optional segment '${e}' in '${t}'`);return{kind:"optional",name:r[1]}}else if(r=/^\[\.\.\.(.+)\]$/.exec(e)){if(!un.test(r[1]))P1(`invalid catch-all segment '${e}' in '${t}'`);return{kind:"catchall",name:r[1]}}else if(e.startsWith("[..."))return P1(`invalid catch-all segment '${e}' in '${t}'`);else if(r=/^\[(.+)\]$/.exec(e)){if(!un.test(r[1]))P1(`invalid dynamic segment '${e}' in '${t}'`);return{kind:"dynamic",name:r[1]}}else if(/^\(.+\)$/.test(e))return{kind:"group"};else if(e.includes("[")||e.includes("]"))return P1(`invalid segment '${e}' in '${t}': markers claim a whole segment`);else return{kind:"static",text:e}};Mo=function(e){let t,r=(()=>{let f=[];for(let u of e.slice(0,-4).split("/"))f.push(Wo(u,e));return f})();if(r[r.length-1].kind==="group")P1(`route file name cannot be a group segment: '${e}'`);let n=r.filter(function(f){return f.kind!=="group"});for(let f=0;fLo)P1(`more than ${Lo} optional segments in '${e}'`);let o="",l=[],c=[{shape:"",display:""}];for(let f of n)switch(l.push(Vo[f.kind]),f.kind){case"static":t="/"+f.text,o+=t,c=c.map(function(u){return{shape:u.shape+t,display:u.display+t}});break;case"dynamic":o+=`/:${f.name}`,c=c.map(function(u){return{shape:u.shape+"/:",display:`${u.display}/:${f.name}`}});break;case"optional":o+=`/:${f.name}?`,c=c.flatMap(function(u){return[u,{shape:u.shape+"/:",display:`${u.display}/:${f.name}`}]});break;case"catchall":o+=`/*${f.name}`,c=c.map(function(u){return{shape:u.shape+"/*",display:`${u.display}/*${f.name}`}});break}if(o==="")o="/";if(new Set(c.map(function(f){return f.shape||"/"})).size{let l=[];for(let c of e)l.push(Wo(c,t));return l})().filter(function(l){return l.kind!=="group"});for(let l of n)if(l.kind==="optional"||l.kind==="catchall")P1(`not-found page under an optional or catch-all segment: '${t}'`);let i=[];for(let l of n)if(l.name!=null){if(i.includes(l.name))P1(`duplicate parameter name '${l.name}' in '${t}'`);i.push(l.name)}let s="",a="",o=[];for(let l of n)if(o.push(Vo[l.kind]),l.kind==="static")s+="/"+l.text,a+="/"+l.text;else s+=`/:${l.name}`,a+="/:";return{pattern:s+"/*",shape:a+"/*",parts:n,ranks:o}};Fo=function(e,t){let r;return r=function(n,i){let s,a,o,l;if(n===e.length)return i===t.length?[]:null;let c=e[n];return(()=>{switch(c.kind){case"static":if(!(ih.length))continue;if(a=T.slice(h.length),l=a.split("/"),s=l.some(function(F){return!F||F==="."||F===".."}),a.includes("\\")||s||l.at(-1)===".rip")throw TypeError(`Rip App: invalid route file path '${T}'`);if(l.at(-1)==="_layout.rip"){f.set(l.slice(0,-1).join("/"),T);continue}if(l.at(-1)==="_404.rip"){if(l.slice(0,-1).some(function(F){return F.startsWith("_")}))continue;u.push({...jo(l.slice(0,-1),a),rel:a,file:T});continue}if(l.some(function(F){return F.startsWith("_")}))continue;if(!a.endsWith(".rip"))throw TypeError(`Rip App: route files must be .rip sources: '${T}'`);d.push({...Mo(a),rel:a,file:T})}let p=new Map;for(let T of[...d].sort(function(F,L){return F.relF.pattern)return 1;return 0});let m=new Map;for(let T of[...u].sort(function(F,L){return F.relF.pattern)return 1;return 0});let g=d.map(function(T){return{route:Object.freeze({pattern:T.pattern,file:T.file,layouts:Object.freeze(dn(T.rel,f))}),parts:T.parts}}),b=u.map(function(T){return{route:Object.freeze({pattern:T.pattern,file:T.file,layouts:Object.freeze(dn(T.rel,f))}),parts:T.parts}}),S=function(T){if(typeof T!=="string")throw TypeError("Rip App: route match expects a path string");if(!T.startsWith("/"))return null;while(T.length>1&&T.endsWith("/"))T=T.slice(0,-1);return T==="/"?[]:T.slice(1).split("/")},w=function(T){let F;if(l=S(T),!l)return null;for(let L of g){if(F=Fo(L.parts,l),!F)continue;return{route:L.route,params:Object.fromEntries(F)}}return null},R=function(T){let F;if(l=S(T),!l)return null;for(let L of b){if(F=Bo(L.parts,l),!F)continue;return{route:L.route,params:Object.fromEntries(F)}}return null};return Object.freeze({routes:Object.freeze(g.map(function(T){return T.route})),match:w,notFound:R})}function Ze(e){if(typeof e!=="string")throw TypeError("Rip App: parseQuery expects a query string");return Object.fromEntries(new URLSearchParams(e))}var q1,mn,Ho,Br;q1=function(e){let t=e.indexOf("#"),r=t>=0?e.slice(t+1):"",n=t>=0?e.slice(0,t):e,i=n.indexOf("?"),s=i>=0?n.slice(i+1):"";return{path:i>=0?n.slice(0,i):n,query:s,hash:r}};mn=function(e,t){let r=Object.keys(t);return r.length===Object.keys(e).length&&r.every(function(i){return e[i]===t[i]})?e:t};Br=function(e){if(!(e!=null&&typeof e.match==="function"&&Array.isArray(e.routes)))throw TypeError("Rip App: createRouter requires a route manifest");return e};Ho=function(e){if(e===""||e==null)return"";if(!(typeof e==="string"&&e.startsWith("/")&&!e.endsWith("/")))throw TypeError(`Rip App: invalid router base '${e}'`);return e};function Ur(e){let t,{routes:r,adapter:n,onError:i}=e??{};if(!(r!=null&&(typeof r==="function"||typeof r.match==="function"&&Array.isArray(r.routes))))throw TypeError("Rip App: createRouter requires a route manifest or manifest thunk");for(let v of["read","push","replace","go","listen"])if(typeof n?.[v]!=="function")throw TypeError(`Rip App: router adapter requires a ${v} function`);let s=Ho(e?.base),a=e?.hash===!0;if(s&&a)throw TypeError("Rip App: a base path does not apply in hash mode");let o=typeof r==="function"?Br(r()):Br(r),l=new Set,c=null,h=A1(null),f=A1(null),u=A1({}),d=A1({}),p=A1(""),m=jr(100,A1(!1)),g=Y1(function(){let v=f.value;if(!v)return null;return{route:v,layouts:v.layouts,params:u.value,query:d.value}}),b=function(v){if(!s)return v;if(v===s)return"/";if(v.startsWith(s+"/"))return v.slice(s.length);return null},S=function(v){if(!s)return v;return v==="/"?s:s+v},w=function(v){return a?n.read().split("#")[0]+"#"+v:S(v)},R=function(v){return i?.({status:404,path:v}),!1},T=0,F=function(v){return typeof v==="string"&&!v.startsWith("//")&&!v.includes("\\")},L=function(v){if(!F(v))return null;return o.match(v)},C=function(v){if(!F(v))return null;return o.match(v)??o.notFound?.(v)??null},N=function(v,j,X,x){let Z=mn(u.value,v.params),U=mn(d.value,Ze(X));M1(function(){return h.value=j,f.value=v.route,u.value=Z,d.value=U,p.value=x});let r1={path:j,route:v.route,params:Z,query:U,hash:x};T+=1;try{for(let Q of Array.from(l))try{Q(r1)}catch(l1){console.error("[Rip] router onNavigate error:",l1)}}finally{T-=1}return!0},D=function(){if(T>=10)throw Error("Rip App: navigation loop — ten nested navigations from onNavigate")},O=function(){let v,j,X,x,Z,U=n.read();if(a){if(v=U.indexOf("#"),X=v>=0?U.slice(v+1):"/",X==="")X="/";({path:x,query:Z,hash:j}=q1(X))}else if({path:x,query:Z,hash:j}=q1(U),x=b(x),x==null)return R(q1(U).path);let r1=C(x);if(!r1)return R(x);return N(r1,x,Z,j)},W=null,H=null,G=function(){W=null;let v=n.readState?.()??{};return n.replace(n.read(),{...v,__ripScroll:n.scroll?.save?.()??null})},k=function(){return!W?W=setTimeout(G,100):void 0};return t={init(){if(c)return t;return O(),c=n.listen(function(){if(!O())return;let v=n.readState?.();return n.scroll?.restore?.(v?.__ripScroll??null)}),H=n.scroll?.watch?.(k)??null,t},push(v,j={}){D();let{path:X,query:x,hash:Z}=q1(v),U=C(X);if(!U)return R(X);let r1=n.scroll?.save?.()??null,Q=n.readState?.()??{};if(n.replace(n.read(),{...Q,__ripScroll:r1}),n.push(w(v),null),N(U,X,x,Z),!j.noScroll)n.scroll?.top?.();return!0},replace(v,j={}){D();let{path:X,query:x,hash:Z}=q1(v),U=C(X);if(!U)return R(X);let r1=n.readState?.()??{};if(n.replace(w(v),{...r1,__ripScroll:null}),N(U,X,x,Z),!j.noScroll)n.scroll?.top?.();return!0},back(){return n.go(-1)},forward(){return n.go(1)},match(v){let{path:j,query:X,hash:x}=q1(v),Z=L(j);if(!Z)return null;return{route:Z.route,params:Z.params,query:Ze(X),hash:x}},claims(v){let j,X,x,Z,U;if(!(typeof v==="string"&&v.length>0))return null;if(a){if(j=v.indexOf("#"),j<0)return null;if(x=v.slice(j+1),x==="")x="/";({path:Z,query:U,hash:X}=q1(x))}else{if(!v.startsWith("/"))return null;if({path:Z,query:U,hash:X}=q1(v),Z=b(Z),Z==null)return null}let r1=L(Z);if(!r1)return null;let Q=Z+(U?"?"+U:"")+(X?"#"+X:"");return{path:Z,url:Q,route:r1.route,params:r1.params,query:Ze(U),hash:X}},onNavigate(v){if(typeof v!=="function")throw TypeError("Rip App: onNavigate expects a function");return l.add(v),function(){return l.delete(v)}},rebuild(){let v,j,X,x,Z;if(o=typeof r==="function"?Br(r()):o,!c)return;let U=n.read();if(a){if(v=U.indexOf("#"),X=v>=0?U.slice(v+1):"/",X==="")X="/";({path:x,query:Z,hash:j}=q1(X))}else if({path:x,query:Z,hash:j}=q1(U),x=b(x),x==null)return R(q1(U).path);let r1=C(x);if(!r1)return R(x);let Q=f.value,l1=Q?.layouts??[],I=r1.route.layouts??[],s1=l1.length===I.length&&l1.every(function(e1,K){return e1===I[K]});if(Q?.file===r1.route.file&&s1&&h.value===x)return;N(r1,x,Z,j);return},destroy(){if(c?.(),c=null,H?.(),H=null,W)clearTimeout(W);W=null;return}},Object.defineProperty(t,"current",{get(){return g.value}}),Object.defineProperty(t,"path",{get(){return h.value}}),Object.defineProperty(t,"hash",{get(){return p.value}}),Object.defineProperty(t,"params",{get(){return u.value}}),Object.defineProperty(t,"query",{get(){return d.value}}),Object.defineProperty(t,"navigating",{get(){return m.value},set(v){return m.value=v}}),t}function Vr(){if(typeof window>"u"||window.history==null||window.location==null)throw Error("Rip App: browserAdapter requires a browser environment");window.history.scrollRestoration="manual";let e=function(r){return window.requestAnimationFrame?window.requestAnimationFrame(r):setTimeout(r,16)},t=0;return{read(){return window.location.pathname+window.location.search+window.location.hash},readState(){return window.history.state},push(r,n){return window.history.pushState(n,"",r)},replace(r,n){return window.history.replaceState(n,"",r)},go(r){return window.history.go(r)},listen(r){return window.addEventListener("popstate",r),function(){return window.removeEventListener("popstate",r)}},scroll:{save(){return{x:window.scrollX,y:window.scrollY}},restore(r){let n;if(r==null)return;let i=++t,s=r.x||0,a=r.y||0,o=0;n=function(){if(i!==t)return;let l=Math.max(0,(window.document?.documentElement?.scrollHeight||0)-window.innerHeight);return window.scrollTo(s,Math.min(a,l)),o+=1,a>l&&o<20?e(n):void 0},e(n);return},top(){return t+=1,window.scrollTo(0,0)},watch(r){return window.addEventListener("scroll",r,{passive:!0}),function(){return window.removeEventListener("scroll",r)}}}}}var pn,Go,je;Go=en();je=function(e,t,r,n=null){let i=n??r?.message??String(r),s=Error(i);return s.name="GateFailure",s.status=r?.status??r?.response?.status??500,s.path=e,s.file=t,s.error=r,s};pn=function(e,t){let r=e.getCompiled(t);if(!(r!=null&&typeof r==="object"))throw Error(`Rip App: no precompiled component module for '${t}'`);let n=function(s){return typeof s==="function"&&typeof s.prototype?.mount==="function"};if(n(r.default))return r.default;let i=[];for(let s in r){let a=r[s];if(s==="default")continue;if(n(a))i.push(a)}if(i.length!==1)throw Error(`Rip App: precompiled module '${t}' must export exactly one component class`);return i[0]};function Wr(e){let t;if(!(e!=null&&typeof e==="object"))throw TypeError("Rip App: createRenderer expects an options object");let{router:r,stash:n,components:i,target:s,onError:a}=e;if(!(r!=null&&typeof r==="object"))throw TypeError("Rip App: createRenderer requires a router object");if(!(n!=null&&Ne(n)!==n))throw TypeError("Rip App: createRenderer requires a stash built by createStash");if(!(i!=null&&typeof i.getCompiled==="function"))throw TypeError("Rip App: createRenderer requires a component registry");if(!(s!=null&&typeof s.appendChild==="function"))throw TypeError("Rip App: createRenderer requires a target with appendChild()");if(a!=null&&typeof a!=="function")throw TypeError("Rip App: createRenderer onError must be a function");let o=[],l=null,c=0,h=null,f=[],u=null,d=null,p=null,m=!1,g=function(K,a1){let A=Object.keys(K);return A.length===Object.keys(a1).length&&A.every(function(V){return K[V]===a1[V]})},b=function(K,a1){return K.length===a1.length&&K.every(function(A,V){return a1[V]===A})},S=function(K){let a1=Ne(n),A=K.split(".");for(let V=0;V",M.file,`Rip App: ${M.file} static __gates must be an array`);for(let n1=0;n10))throw w(String(u1),M.file,`Rip App: ${M.file} has a malformed render gate path`);if(f1!=null&&typeof f1!=="function")throw w(u1,M.file,`Rip App: gate '${u1}' has a non-function key`);if(p1=S(u1),!p1)throw w(u1,M.file,`Rip App: gate '${u1}' does not resolve to a source`);if(V=p1.cell,ge(V)){if(!f1)throw w(u1,M.file,`Rip App: gate '${u1}' is keyed and requires a key function`);try{h1=f1(a1,A),V=V.cellFor(h1)}catch(z){throw B=z,je(u1,M.file,B,`Rip App: gate '${u1}' key failed: ${B.message}`)}}else if(f1)throw w(u1,M.file,`Rip App: gate '${u1}' is a singleton and does not accept a key function`);if(M.bindings[n1]={cell:V,tail:p1.tail,path:u1,file:M.file},!c1.has(V))c1.set(V,{cell:V,path:u1,file:M.file,entryIndex:d1})}}return Array.from(c1.values())},F=async function(K,a1,A,V){let B,i1,h1=T(K,a1,A),f1=await Promise.allSettled((()=>{let c1=[];for(let d1 of h1)c1.push(d1.cell.ensure());return c1})());if(V!==c)return!1;let u1=null,p1=function(c1,d1){if(c1.entryIndex=d1,u1==null||d1=u1.entryIndex)break;for(let M of d1.bindings){i1=M.cell.peek();for(let n1 of M.tail){if(i1==null)break;i1=i1[n1]}if(i1==null){p1(w(M.path,M.file,`Rip App: gate '${M.path}' resolved to ${i1}; every gated subpath must exist and be non-null`),c1);break}M.value=i1}}if(u1!=null)throw u1;return!0},L=function(K,a1){return Go(K.cls,{gates:K.bindings,parent:a1,stash:n,router:r})},C=function(K){let a1=[];for(let A=K.length-1;A>=0;A--){let V=K[A];try{V.unmount?.()}catch(B){a1.push(B);try{V._teardown?.({state:"unmounted",hooks:!1,removeDOM:!0})}catch(i1){a1.push(i1)}}}return a1},N=function(){let K=o;o=[],l=null,f=[],u=null,d=null;let a1=C(K);if(a1.length)throw a1[0];return},D=null,O=function(){D?.remove?.(),D=null;return},W=function(K){let a1,A;O();let V=K.error?.stack??K.stack??K.message??String(K);D=(()=>{if(typeof document<"u"&&typeof document.createElement==="function")return a1=document.createElement("pre"),a1.style.cssText="margin:2rem;padding:1rem 1.25rem;color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;font:13px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;overflow-wrap:anywhere",a1.textContent=V,a1;else return A={nodeName:"PRE",textContent:V,parentNode:null,remove(){let B=A.parentNode?.children,i1=B?.indexOf(A)??-1;if(i1>=0)B.splice(i1,1);A.parentNode=null;return}},A})(),s.appendChild(D);return},H=function(){if(typeof document<"u"&&typeof document.createDocumentFragment==="function")return document.createDocumentFragment();let K=[];return{children:K,appendChild(a1){return K.push(a1),a1}}},G=function(K,a1=s){if(O(),K.nodeType===11)a1.appendChild(K);else for(let A of K.children)a1.appendChild(A);return},k=function(K,a1){let A,V=K._nodes??[K._root];for(let B of V){if(!B)continue;if(B.matches?.("#content"))return B;if(A=B.querySelector?.("#content"),A)return A}return V.find(function(B){return B!=null})??a1},v=function(K){return K?.childNodes??K?.children??[]},j=function(K,a1){K.slot=a1,K.slotOwned=v(a1).length;return},X=function(){let K,a1,A=s;for(let V=0;V0&&B.slot!=null&&B.slot!==A){a1=Array.from(v(B.slot)).slice(B.slotOwned??0),j(B,A);for(let i1 of a1)A.appendChild(i1);K._target=A}if(V===f.length-1)break;A=k(K,A)}if(f.length>1)u=A;return},x=function(K,a1,A){let V,B,i1;if(!K.some(function(c1){return typeof c1.cls.prototype?.onError==="function"}))return!1;let h1=H(),f1=h1,u1=[];try{for(let c1=0;c10)j(d1,f1);if(B.mount?.(f1),B._state==="failed")return C(u1),!1;f1=k(B,f1)}if(A!==c)return C(u1),!1;V=null;for(let c1=u1.length-1;c1>=0;c1--){let d1=u1[c1];if(typeof d1.onError==="function"){V=d1;break}}G(h1)}catch(c1){return console.error("[Rip] boundary chain failed to mount:",c1),C(u1),!1}let p1=o;o=u1,l=u1[u1.length-1]??null,f=K,u=f1,d=null;try{V.onError(a1)}catch(c1){console.error("[Rip] boundary onError error:",c1)}for(let c1 of C(p1))console.error("[Rip] boundary teardown error:",c1);return!0},Z=function(K,a1){let A=null;for(let B=K.length-1;B>=0;B--){let i1=K[B];if(typeof i1.instance?.onError==="function"){A=i1.instance;break}}if(!A)return!1;let V=o.slice(K.length);o=K.map(function(B){return B.instance}),l=o[o.length-1]??null,f=K,d=null;try{A.onError(a1)}catch(B){console.error("[Rip] boundary onError error:",B)}for(let B of C(V))console.error("[Rip] boundary teardown error:",B);return!0},U=async function(K,a1,A=i){let V,B,i1,h1,f1,u1,p1=K?.route;if(!p1?.file)throw Error("Rip App: renderer route state requires route.file");let c1=K.params??{},d1=K.query??{},M=K.layouts??[];if(!Array.isArray(M))throw Error("Rip App: renderer route state layouts must be an array");let n1=f.map(function(m1){return m1.file}),_=p;if(p=null,_==null&&l!=null&&d!=null&&p1.file===d.file){if(b([...M,p1.file],n1)&&g(c1,d.params)){if(!(g(d1,d.query)||R(f,c1,d1))){if(typeof l.load==="function")await l.load(c1,d1);if(a1!==c)return null;return d={file:p1.file,params:c1,query:d1},l}}}let z=[...M,p1.file],q=d!=null&&M.length>0&&f.length===M.length+1&&b(M,n1.slice(0,-1))&&!R(f.slice(0,-1),c1,d1),t1=_!=null?Math.max(0,Math.min(_,z.length-1)):q?M.length:0;if(_!=null&&t1>0){if(!(f.length===z.length&&b(z.slice(0,t1),n1.slice(0,t1))))t1=0}let P=[];for(let m1=0;m10){if(i1=q?Z(P.slice(0,V),B):x(P.slice(0,V),B,a1),i1)return null}}throw B}let o1=H(),E1=o1,y1=[],S1=t1>0?P[t1-1].instance:null,_1=t1>0,v1=_1?k(S1,s):s;try{for(let m1=P.slice(t1),D1=0;D10)j(be,E1);if(h1.mount?.(E1),h1._state==="failed")throw Error(`Rip App: component '${be.file}' failed during mount`);if(t1+D11?E1:v1,f=P,d={file:p1.file,params:c1,query:d1};let g1=C(R1);if(m=g1.length>0,g1.length)for(let m1 of g1)if(B=je("","",m1),a!=null)try{a(B)}catch(D1){console.error("[Rip] renderer teardown reporter failed:",D1)}else console.error("[Rip] renderer teardown error:",B);return l},r1=function(K){let a1,A,V=K?.route;if(!V?.file)return;let B=K.params??{},i1=K.query??{},h1=K.layouts??V.layouts??[],f1=f.map(function(c1){return c1.file}),u1=d!=null&&b(h1,f1.slice(0,-1));if(u1&&V.file===d.file&&g(B,d.params))return;let p1=u1?[V.file]:[...h1,V.file];try{a1=(()=>{let c1=[];for(let d1 of p1)c1.push({file:d1,cls:pn(i,d1)});return c1})(),A=T(a1,B,i1)}catch(c1){return}for(let c1 of A)c1.cell.preload().catch(function(){return null});return},Q=function(K,a1){if(!(K!=null&&typeof K==="object"&&typeof a1==="string"))return null;let A=function(B){return typeof B==="function"&&B.__hmrId===a1},V=K.__hmrComponents;if(V!=null&&typeof V==="object")for(let B in V){let i1=V[B];if(A(i1))return i1}if(A(K.default))return K.default;for(let B in K){let i1=K[B];if(A(i1))return i1}return null},l1=function(K){let a1=K+"#",A=[];for(let B of f)if(B.file===K&&B.instance!=null)A.push(B.instance);for(let[B,i1]of Ji())if(typeof B==="string"&&B.startsWith(a1)){for(let h1 of i1.instances)if(!A.includes(h1))A.push(h1)}let V=[];for(let B of A)V.push({instance:B,entry:f.find(function(i1){return i1.instance===B})??null});return V},I=function(K,a1){let A,V,B,i1,h1=(()=>{let c1=[];for(let d1 of K)if(typeof d1==="string"&&d1.endsWith(".rip"))c1.push(d1);return c1})();if(!(h1.length>0))return"unknown";let f1=0,u1=!1,p1=new Set;for(let c1 of h1){if(i1=a1.getCompiled(c1),B=l1(c1),i1==null){if(typeof a1.exists==="function"&&!a1.exists(c1)){if(B.some(function(d1){return d1.instance._state!=="unmounted"}))return"fallback"}else u1=!0;continue}for(let{instance:d1,entry:M}of B){if(p1.has(d1))continue;if(d1._state==="unmounted")continue;if(d1._state!=="mounted")return"fallback";if(V=d1.constructor?.__hmrId,A=typeof V==="string"?Q(i1,V):null,A==null)return"fallback";if(wt(A),_t(d1.constructor,A)!=="patch")return"fallback";if(Qi(d1,A),p1.add(d1),f1+=1,M!=null){if(M.cls=A,M!==f[f.length-1])X()}}}if(f1>0)return"done";return u1?"unknown":"idle"},s1=async function(K,a1=i){let A,V,B,i1,h1;if(!(Array.isArray(K)&&K.length>0))return"noop";for(let q of K)if(q==="stash.rip"||q.startsWith("stash/")||q==="seed.rip")return"escape";let f1=r.current;if(!(f1?.route?.file&&f.length>0))return"noop";let p1=[...f1.layouts??f1.route.layouts??[],f1.route.file],c1=b(p1,f.map(function(q){return q.file})),d1=Zi();try{if(h1=I(K,a1),h1==="done")return Cr(d1),"narrow";if(h1==="idle"&&c1)return _e("noop",{paths:[...K]}),"noop"}catch(q){console.error("[Rip] HMR patch failed; falling back to remount:",q),_e("reject",{reason:"patch-failed",paths:[...K],message:q?.message?String(q.message):String(q)})}let M=new Set(K),n1=-1;for(let q=0;q{if(A?.name==="GateFailure")return A;else return B=K?.route?.file??"",je(A?.path??B,B,A)})(),a?.(V),l==null)W(V);throw V}finally{if(i1===c&&(Array.isArray(r)||typeof r==="string"?r.includes("navigating"):("navigating"in r)))r.navigating=!1}};let e1=null;return e1={current:null,mount:t,preload:r1,remountDirty:s1,start(){if(h)return e1;return r.init?.(),h=x1(function(){let K=r.current;if(K?.route)t(K).catch(function(){return null});return}),e1},stop(){let K,a1;if(c++,h?.(),h=null,Array.isArray(r)||typeof r==="string"?r.includes("navigating"):("navigating"in r))r.navigating=!1;try{N()}catch(A){throw K=A,a1=je("","",K),a?.(a1),a1}return}},Object.defineProperty(e1,"current",{get(){return l}}),e1}var Yo,zo,gn=Symbol.for("rip.app.stash.persisted"),Ko=Symbol.for("rip.app.stash.purge");zo=function(e,t){return C1(t)?void 0:t};Yo=function(e){if(e.storage!=null)return e.storage;if(!(typeof window<"u"&&window.localStorage!=null))throw Error("Rip App: persistStash requires a browser or an injected storage");return e.local?window.localStorage:window.sessionStorage};function Hr(e,t={}){let r,n=Ne(e)||e;if(n[gn])return function(){return null};n[gn]=!0;let i=Yo(t),s=t.key||"__rip_app",a=t.debounce??2000;try{if(r=i.getItem(s),r)Je(e,JSON.parse(r))}catch(u){}let o=null,l=function(){o=null;try{i.setItem(s,JSON.stringify(Ne(e),zo))}catch(u){}return},c=!1,h=x1(function(){if(cn.value,!c){c=!0;return}if(o!=null)clearTimeout(o);return o=setTimeout(l,a),function(){return o!=null?clearTimeout(o):void 0}});if(typeof window<"u")window.addEventListener("beforeunload",l);Object.defineProperty(n,Ko,{value(){if(o!=null)clearTimeout(o),o=null;try{i.removeItem(s)}catch(u){}return},configurable:!0,writable:!0});let f=!1;return function(){if(f)return;if(f=!0,h?.(),typeof window<"u")window.removeEventListener("beforeunload",l);l(),n[Ko]=null,n[gn]=!1;return}}var qo,bn;bn=function(e){if(e.hasAttribute?.("data-router-ignore"))return!0;if(e.hasAttribute?.("download"))return!0;let t=e.getAttribute?.("target");if(t&&t.toLowerCase()!=="_self")return!0;return!1};function Pt(e){let t,r=e.getAttribute?.("href")??e.href;if(!(typeof r==="string"&&r.length>0))return null;if(/^[a-z][a-z0-9+.-]*:/i.test(r)){if(t=typeof location<"u"?location.origin:null,!(t!=null&&r.startsWith(t)))return null;r=r.slice(t.length)}if(r.startsWith("//")||r.includes("\\"))return null;return r}function Lt(e,t){if(t==null)return!1;if(bn(t))return!1;let r=Pt(t);if(r==null)return!1;return e.claims(r)!=null}qo=function(){if(!(typeof document<"u"&&typeof document.querySelectorAll==="function"))throw Error("Rip App: ariaCurrent requires a browser or an injected host");return{anchors(){return Array.from(document.querySelectorAll("a[href]"))},observe(e){if(typeof MutationObserver>"u")return null;let t=!1,r=new MutationObserver(function(){if(t)return;return t=!0,requestAnimationFrame(function(){return t=!1,e()})});return r.observe(document.documentElement??document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["href","target","download","data-router-ignore"]}),function(){return r.disconnect()}}}};function Gr(e,t=null){if(!(e!=null&&typeof e.claims==="function"))throw TypeError("Rip App: ariaCurrent requires a router");t=t??qo();let r=new WeakMap,n=function(){let l,c,h,f,u=e.path;for(let d of t.anchors()){if(l=bn(d)?null:e.claims(Pt(d)??""),h=l==null||u==null?null:l.path===u?"page":l.path!=="/"&&u.startsWith(l.path+"/")?"true":null,c=d.getAttribute?.("aria-current")??null,f=r.get(d),f!==void 0&&c!==f){if(r.delete(d),c!=null)continue;f=void 0}if(h!=null){if(f===void 0&&c!=null)continue;if(c!==h)d.setAttribute("aria-current",h);r.set(d,h)}else if(f!==void 0)d.removeAttribute("aria-current"),r.delete(d)}return},i=function(){try{n()}catch(l){console.error("[Rip] aria-current walk failed:",l)}return},s=x1(function(){return e.path,i()}),a=t.observe?.(i)??null,o=!1;return function(){if(o)return;o=!0,s(),a?.();try{for(let l of t.anchors())if(r.has(l)){if((l.getAttribute?.("aria-current")??null)===r.get(l))l.removeAttribute("aria-current");r.delete(l)}}catch(l){}return}}var Xo,Jo,yn,Sn;Jo=50;Xo=3000;Sn=function(){if(!(typeof document<"u"&&typeof document.addEventListener==="function"))throw Error("Rip App: link listeners require a browser or an injected host");return{listen(e,t,r=null){return document.addEventListener(e,t,r??!1),function(){return document.removeEventListener(e,t,r??!1)}}}};yn=function(e){while(e!=null&&e.tagName!=="A")e=e.parentElement;return e??null};function Kr(e,t=null){if(!(e!=null&&typeof e.claims==="function"&&typeof e.push==="function"))throw TypeError("Rip App: interceptClicks requires a router");t=t??Sn();let r=function(s){if(s.defaultPrevented)return;if(s.button!==0||s.metaKey||s.ctrlKey||s.shiftKey||s.altKey)return;let a=yn(s.target);if(!(a!=null&&Lt(e,a)))return;let o=e.claims(Pt(a));if(o==null)return;s.preventDefault(),e.push(o.url,{noScroll:a.hasAttribute?.("data-router-noscroll")===!0});return},n=t.listen("click",r),i=!1;return function(){if(i)return;i=!0,n();return}}function Yr(e,t,r=null){if(!(e!=null&&typeof e.claims==="function"))throw TypeError("Rip App: preloadLinks requires a router");if(!(t!=null&&typeof t.preload==="function"))throw TypeError("Rip App: preloadLinks requires a renderer with preload()");r=r??Sn();let n=null,i=null,s={href:null,at:0},a=function(){if(n!=null)clearTimeout(n);n=null,i=null;return},o=function(f){let u=yn(f.target);if(!(u!=null&&Lt(e,u)))return;if(u===i)return;a(),i=u;let d=Pt(u);n=setTimeout(function(){n=null,i=null;let p=Date.now();if(d===s.href&&p-s.at1)throw AggregateError(S,"Rip App: launch.destroy failed");return};globalThis.__ripStash=l,globalThis.__ripRouter=h;try{if(typeof s.replaceChildren==="function")s.replaceChildren();else if(Array.isArray(s.children))s.children.length=0;f.start()}catch(S){throw b(),S}return{stash:l,components:c,router:h,renderer:f,destroy:b}}var En,qr,kn,Tn,wn,V1;V1=function(e){if(!(typeof e==="string"&&e.length>0))throw TypeError("Rip Workspace: component path must be a non-empty string");let t=e.split("/"),r=t.some(function(s){return!s||s==="."||s===".."||s.startsWith(".")}),n=t.at(-1),i=t.slice(0,-1).some(function(s){return s.endsWith(".rip")});if(e.includes("\\")||e.startsWith("/")||r||i||n===".rip"||!n.endsWith(".rip"))throw TypeError(`Rip Workspace: invalid component path '${e}'`);return e};qr=function(e){if(typeof e!=="string")throw TypeError("Rip Workspace: component source must be a string");return e};kn=function(e){if(e===""||e==null)return"";if(typeof e!=="string")throw TypeError("Rip Workspace: component directory must be a string");let t=e.split("/");if(e.includes("\\")||e.startsWith("/")||t.some(function(r){return!r||r==="."||r===".."||r.startsWith(".")}))throw TypeError(`Rip Workspace: invalid component directory '${e}'`);return e};Tn=function(e){if(!(typeof e==="string"&&/^[A-Za-z0-9_]{6}$/.test(e)))throw TypeError("Rip Workspace: publication hash must be six Base64URL-folded characters");return e};wn=function(e){if(!(e!=null&&typeof e==="object"&&!Array.isArray(e)))throw TypeError("Rip Workspace: compiled component module must be an object");return e};En=function(e){let t;if(!(e!=null&&typeof e==="object"&&!Array.isArray(e)))throw TypeError("Rip Workspace: prepared state must be an object");let r=Tn(e.hash);if(!(e.sources!=null&&typeof e.sources==="object"&&!Array.isArray(e.sources)))throw TypeError("Rip Workspace: prepared sources must be an object");if(!(e.compiled!=null&&typeof e.compiled==="object"&&!Array.isArray(e.compiled)))throw TypeError("Rip Workspace: prepared compiled modules must be an object");let n=new Map,i=new Map,s=e.sources;for(let o in s){if(!Object.hasOwn(s,o))continue;let l=s[o];n.set(V1(o),qr(l))}let a=e.compiled;for(let o in a){if(!Object.hasOwn(a,o))continue;let l=a[o];if(o=V1(o),!n.has(o))throw Error(`Rip Workspace: compiled module '${o}' has no source`);i.set(o,wn(l))}return{hash:r,sources:n,compiled:i}};function Xr(){let e,t=new Map,r=new Map,n=new Set,i=null,s=!1,a=function(l,c){for(let h of Array.from(n))try{h(l,c)}catch(f){console.error("[Rip] workspace watcher error:",f)}return},o=function(l){t=l.sources,r=l.compiled,i=l.hash;return};return e={read(l){return t.get(V1(l))},write(l,c){if(s)throw Error("Rip Workspace: cannot write during a publication transition");l=V1(l),c=qr(c);let h=t.has(l)?"change":"create";t.set(l,c),r.delete(l),a(h,l);return},del(l){if(s)throw Error("Rip Workspace: cannot delete during a publication transition");l=V1(l),t.delete(l),r.delete(l),a("delete",l);return},exists(l){return t.has(V1(l))},size(){return t.size},list(l=""){let c;l=kn(l);let h=l?l+"/":"",f=[];for(let[u]of t)if(u.startsWith(h)){if(c=u.slice(h.length),!c.includes("/"))f.push(u)}return f},listAll(l=""){l=kn(l);let c=l?l+"/":"",h=[];for(let[f]of t)if(f.startsWith(c))h.push(f);return h},load(l){if(s)throw Error("Rip Workspace: cannot load during a publication transition");if(!(l!=null&&typeof l==="object"&&!Array.isArray(l)))throw TypeError("Rip Workspace: component load expects a source object");let c=[];for(let h in l){if(!Object.hasOwn(l,h))continue;let f=l[h];c.push([V1(h),qr(f)])}for(let[h,f]of c)t.set(h,f),r.delete(h);return},watch(l){if(typeof l!=="function")throw TypeError("Rip Workspace: component watch expects a function");n.add(l);let c=!1;return function(){if(c)return;c=!0,n.delete(l);return}},getCompiled(l){return r.get(V1(l))},setCompiled(l,c){if(s)throw Error("Rip Workspace: cannot compile during a publication transition");if(l=V1(l),!t.has(l))throw Error(`Rip Workspace: setCompiled for unknown component path '${l}'`);r.set(l,wn(c));return},hash(){return i},activate(l){if(i!=null)throw Error("Rip Workspace: a publication is already active");if(s)throw Error("Rip Workspace: a publication transition is already staged");o(En(l));return},stage(l,c,h){if(s)throw Error("Rip Workspace: a publication transition is already staged");if(l=Tn(l),i!==l)throw Error(`Rip Workspace: change starts at ${l}, not ${i}`);if(!Array.isArray(h))throw TypeError("Rip Workspace: changed paths must be an array");let f=h.map(function(g){return V1(g)});if(new Set(f).size!==f.length)throw Error("Rip Workspace: changed paths must be unique");let u=En(c),d={sources:t,compiled:r,hash:i};s=!0;let p=!1,m=function(g){let b;if(p)throw Error("Rip Workspace: publication transition is already finished");if(p=!0,s=!1,!g)return;o(u);for(let S of f)b=!u.sources.has(S)?"delete":d.sources.has(S)?"change":"create",a(b,S);return};return{components:{getCompiled(g){return u.compiled.get(V1(g))},exists(g){return u.sources.has(V1(g))}},commit(){return m(!0)},rollback(){return m(!1)}}},commit(l,c,h){e.stage(l,c,h).commit();return}},e}var e2,t2,r2,i2,n2,s2,a2,Jr;r2=250;t2=8000;e2=5000;a2=0;Jr=function(e){return typeof e==="string"&&/^[A-Za-z0-9_]{6}$/.test(e)};n2=function(){if(typeof location>"u")throw Error("Rip App: connectFeed needs a hub URL (no location to derive one from)");return`${location.protocol==="https:"?"wss":"ws"}://${location.host}/hub`};s2=function(){if(typeof WebSocket>"u")throw Error("Rip App: connectFeed needs a socket factory (no global WebSocket)");return function(e){return new WebSocket(e)}};i2=function(){if(typeof fetch>"u")throw Error("Rip App: connectFeed needs a fetch (no global fetch)");return function(e,t){return fetch(e,t)}};function Zr(e,t={}){let r;if(!(e!=null&&typeof e.hash==="function"&&typeof e.apply==="function"&&typeof e.reload==="function"))throw TypeError("Rip App: connectFeed expects hash, apply, and reload callbacks");if(!Jr(e.hash()))throw TypeError("Rip App: connectFeed client hash must be six Base64URL-folded characters");let n=t.hub??n2(),i=t.latestUrl??"/latest.json",s=t.makeSocket??s2(),a=t.fetch??i2(),o=t.report??function(...x){return console.error(...x)},l=t.backoff?.min??r2,c=t.backoff?.max??t2,h=t.ackTimeout??e2,f=!1,u=!1,d=!1,p=!1,m=null,g=0,b=null,S=null,w=0,R=null,T=[],F=Promise.resolve(),L=new Map,C=null,N=function(x){if(u||f)return;u=!0,e.reload(x);return},D=async function(x){let Z;if(u||f)return!1;try{if(Z=await e.apply(x),Z==="rejected"){if(Jr(x?.hash))C=x?.hash;return!1}if(Z==="reload"||!Z)return N("change could not be applied"),!1;return C=null,!0}catch(U){return o("[Rip] publication change failed:",U),N("change failed"),!1}},O=function(x,Z){F=F.then(async function(){if(Z!==w)return!0;return await D(x)}),F=F.catch(function(U){return o("[Rip] publication queue failed:",U),N("change queue failed"),!1});return},W=async function(x){let Z,U;if(f||u||x!==w)return;let r1=e.hash(),Q=await a(i,{cache:"no-store"});if(!Q?.ok)throw Error(`latest.json fetch failed (${Q?.status})`);let l1=await Q.json();if(!(l1!=null&&typeof l1==="object"&&!Array.isArray(l1)&&Object.keys(l1).length===1&&Object.hasOwn(l1,"hash")&&Jr(l1.hash)))throw Error("latest.json is malformed");if(f||u||x!==w)return;if(C!=null){if(l1.hash!==C){N(`a newer App generation followed rejected ${C}`);return}T=[],p=!0,g=0;return}let I=new Set([r1]),s1=0;while(s10))return"ignore";let s=(()=>{let h=[];for(let f of n)if(typeof f==="string"&&f.endsWith(".css"))h.push(f);return h})(),a=(()=>{let h=[];for(let f of n)if(typeof f==="string"&&f.endsWith(".rip"))h.push(f);return h})(),o=(()=>{let h=[];for(let f of n)if(typeof f==="string"&&!f.endsWith(".rip")&&!f.endsWith(".css"))h.push(f);return h})();if(a.length===0){if(o.length>0)return"reload";if(s.length>0)return"css";return"ignore"}let l=await e.renderer.remountDirty(a,i);if(l==="narrow")return t(`[Rip] applied ${a.join(", ")} — update`),"update";if(l==="reload")return t(`[Rip] applied ${a.join(", ")} — reload`),"reload";if(l==="noop")return"ignore";if(await e.escape(a,i)==="reload")return"reload";return t(`[Rip] applied ${a.join(", ")} — update`),"update"}}}var Wc=function(e){if(e instanceof Uint8Array)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw TypeError("Rip App: rash expects bytes")},Hc=function(e){let t,r,n,i,s,a,o,l,c,h,f,u,d,p,m,g,b=Wc(e);if(typeof Bun<"u"&&Bun.CryptoHasher!=null)return new Uint8Array(new Bun.CryptoHasher("sha256").update(b).digest());let S=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],w=b.length*8,R=new Uint8Array(b.length+9+63&-64);R.set(b),R[b.length]=128;let T=new DataView(R.buffer);T.setUint32(R.length-4,w>>>0,!1),T.setUint32(R.length-8,Math.floor(w/4294967296)>>>0,!1);let F=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],L=function(W,H){return W>>>H|W<<32-H},C=new Uint32Array(64),N=0;while(N>>3,p=L(C[W-2],17)^L(C[W-2],19)^C[W-2]>>>10,C[W]=C[W-16]+d+C[W-7]+p>>>0;[n,i,s,o,l,c,h,f]=F;for(let W=0;W<64;W++)r=L(l,6)^L(l,11)^L(l,25),a=l&c^~l&h,m=f+r+a+S[W]+C[W]>>>0,t=L(n,2)^L(n,13)^L(n,22),u=n&i^n&s^i&s,g=t+u>>>0,f=h,h=c,c=l,l=o+m>>>0,o=s,s=i,i=n,n=m+g>>>0;F[0]=F[0]+n>>>0,F[1]=F[1]+i>>>0,F[2]=F[2]+s>>>0,F[3]=F[3]+o>>>0,F[4]=F[4]+l>>>0,F[5]=F[5]+c>>>0,F[6]=F[6]+h>>>0,F[7]=F[7]+f>>>0,N+=64}let D=new Uint8Array(32),O=new DataView(D.buffer);for(let W=0;W<8;W++)O.setUint32(W*4,F[W],!1);return D},Mt=function(e){let t=Hc(e),r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";return(r[t[0]>>2]+r[(t[0]&3)<<4|t[1]>>4]+r[(t[1]&15)<<2|t[2]>>6]+r[t[2]&63]+r[t[3]>>2]+r[(t[3]&3)<<4|t[4]>>4]).replaceAll("-","_")},ei=function(e){let t=JSON.stringify(e.map(function(r){return[r.id,r.hash]}));return Mt(new TextEncoder().encode(t))};var Gc=function(){return globalThis.__ripStash},Kc=function(){return globalThis.__ripRouter};(()=>{if(typeof document>"u"||typeof WebSocket>"u")return;let e=document.currentScript;if(!(e?/\bwatch\.js\b/.test(e.src||""):!!document.querySelector("script[watch]"))||globalThis.__ripWatch)return;globalThis.__ripWatch=!0;let r=location.pathname,n=(h)=>Array.isArray(h)&&(h.includes(r)||r.endsWith("/")&&h.includes(r+"index.html")),i=(h)=>h.headers.get("etag")||h.headers.get("last-modified")||"",s=null;fetch(location.href,{method:"HEAD",cache:"no-store"}).then((h)=>{s=i(h)}).catch(()=>{});let a=()=>{if(s===null)return;fetch(location.href,{method:"HEAD",cache:"no-store"}).then((h)=>{if(i(h)!==s)location.reload()}).catch(()=>{})},o=!1,l=0,c=()=>{let h=location.protocol==="https:"?"wss://":"ws://",f=new WebSocket(h+location.host+"/hub");f.onopen=()=>f.send('{"+":["/assets"],"?":"observe"}'),f.onmessage=(u)=>{let d;try{d=JSON.parse(u.data)}catch{return}for(let p of Array.isArray(d)?d:[d]){if(!p||typeof p!=="object"||"<"in p)continue;if("!"in p){if(o)a();o=!0,l=0}if(n(p.touched))location.reload()}},f.onclose=()=>{if(l+=1,!o&&l>=6)return;setTimeout(c,Math.min(8000,500*2**(l-1)))},f.onerror=()=>{}};c()})();var{__hmrEmit:Yc}=Nt;function Nn(e,t={}){if(t.face==="ts")throw Error("rip: TypeScript face is unavailable in the browser");return _a(e,{...t,face:"js"})}var u2={intrinsics:pr,stdlib:gr,schema:Er,reactive:Ar,components:Nt},d2=Object.freeze({...pr,...gr,...Er,...Ar,...Nt}),zc=Object.freeze({rash:Mt,check:ei}),m2=Object.freeze({"rip/app":ti,"rip/app/rash":zc});var qc=new Map(Object.keys(u2).map((e)=>[new URL(`./runtime/${e}.js`,import.meta.url).pathname,e])),Xc=/(?:^|\/)src\/runtime\/(intrinsics|stdlib|schema|reactive|components)\.js$/,ri="__ripModuleBridge",Jc=(e)=>e.slice(1,-1),o2=(e,t)=>{let r=e.split("/").slice(0,-1);for(let n of t.split("/")){if(n===""||n===".")continue;if(n===".."){if(!r.length)return null;r.pop()}else r.push(n)}return r.join("/")},l2=(e)=>{if(typeof URL<"u"&&typeof URL.createObjectURL==="function"&&typeof Blob<"u")return URL.createObjectURL(new Blob([e],{type:"text/javascript"}));return`data:text/javascript;base64,${btoa(unescape(encodeURIComponent(e)))}`};function p2({components:e,embeddedPackages:t={},debug:r=!1,hmr:n=!1}={}){if(!e||typeof e.read!=="function")throw TypeError("rip: createModuleLoader requires a component registry");let i=new Map,s=new Map,a=new Map,o=new Map,l=new Map,c=new Set,h=(m)=>{if(typeof m==="string"&&m.startsWith("blob:")&&typeof URL?.revokeObjectURL==="function")URL.revokeObjectURL(m)},f=async()=>{let m=[...c];c.clear(),await Promise.allSettled(m.map(async(g)=>h(await g)))},u=(m,g)=>{if(a.has(m))return a.get(m);globalThis[ri]??={};let b=globalThis[ri][m];if(b&&b!==g)throw Error(`rip: two copies of embedded module '${m}' are active on one page`);globalThis[ri][m]=g;let S=[`const ns = globalThis['${ri}'][${JSON.stringify(m)}];`];for(let R of Object.keys(g))if(R==="default")S.push("export default ns['default'];");else if(/^[A-Za-z_$][\w$]*$/.test(R))S.push(`export const ${R} = ns[${JSON.stringify(R)}];`);else throw Error(`rip: embedded module '${m}' exports '${R}', which cannot cross the module bridge`);let w=l2(S.join(` +`));return a.set(m,w),w},d=(m,g)=>{let b=Jc(m),S=qc.get(b)??b.match(Xc)?.[1];if(S)return{bridge:`runtime:${S}`,namespace:u2[S]};let w=(F)=>{try{return e.exists(F)}catch{return!1}},R=b.endsWith(".rip")?"":` — did you mean '${b}.rip'?`;if(b.startsWith("./")||b.startsWith("../")){let F=o2(g,b);if(F&&w(F))return{path:F};if(!g.startsWith("rip/")){let L=o2(`app/${g}`,b),C=L?.startsWith("app/")?L.slice(4):L;if(C&&w(C))return{path:C}}throw Error(`rip: '${g}' imports '${b}', which is not in the bundle${R}`)}let T=b.match(/^rip\/([\w-]+)(?:\/(.+))?$/);if(T){if(w(b))return{path:b};let F=`rip/${T[1]}`,L=t[b];if(L)return{bridge:`package:${b}`,namespace:L};if(t[F])throw Error(`rip: '${g}' imports '${b}', which '${F}' does not export in the browser`);let C=T[2]?T[2].endsWith(".rip")?T[2]:`${T[2]}.rip`:"index.rip",N=`${F}/${C}`;if(!w(N))throw Error(`rip: '${g}' imports '${b}', but '${N}' is not in the bundle — `+"only packages declaring browser safety travel to the browser");return{path:N}}throw Error(`rip: '${g}' imports '${b}', which is not loadable in a browser — `+"server-only and unknown modules never travel to the browser")},p=(m,g)=>{if(g.includes(m))throw Error(`rip: import cycle through '${m}' (${g.join(" -> ")} -> ${m})`);if(i.has(m))return i.get(m);let b=(async()=>{let S=e.read(m);if(S===void 0)throw Error(`rip: '${m}' is not in the bundle`);let w=Nn(S,{path:m,runtimeDelivery:"import",browserModule:!0,...n?{hmr:!0}:null}),R=w.code;for(let T of[...w.imports].reverse()){let F=d(T.specifier,m);if(F.path){let C=o.get(F.path);if(!C)o.set(F.path,C=new Set);C.add(m);let N=l.get(m);if(!N)l.set(m,N=new Set);N.add(F.path)}let L=F.bridge?u(F.bridge,F.namespace):await p(F.path,[...g,m]);R=`${R.slice(0,T.start)}${JSON.stringify(L)}${R.slice(T.end)}`}if(r){let T=btoa(unescape(encodeURIComponent(JSON.stringify(w.map))));R+=` +//# sourceMappingURL=data:application/json;charset=utf-8;base64,${T}`}return l2(R)})();return i.set(m,b),b.catch(()=>i.delete(m)),b};return{async import(m){if(s.has(m))return s.get(m);let b=await import(await p(m,[]));return s.set(m,b),e.setCompiled(m,{...b}),b},invalidate(m){let g=[m],b=new Set;while(g.length){let S=g.pop();if(b.has(S))continue;if(b.add(S),i.has(S))c.add(i.get(S));i.delete(S),s.delete(S);for(let w of o.get(S)??[])g.push(w);o.delete(S);for(let w of l.get(S)??[]){let R=o.get(w);if(R?.delete(S),R?.size===0)o.delete(w)}l.delete(S)}return b},collect:f,dispose(){for(let m of i.values())c.add(m);i.clear(),s.clear(),o.clear(),l.clear();for(let m of a.values())h(m);a.clear(),f()}}}var g2=Object.keys(d2),Zc=g2.map((e)=>d2[e]),Qc=()=>{if(typeof document>"u"||typeof document.querySelectorAll!=="function")throw Error("rip: processRipScripts requires a browser or an injected host");return{scripts(){return Array.from(document.querySelectorAll('script[type="text/rip"]')).map((e)=>({src:e.getAttribute("src"),text:e.textContent??""}))},async fetchText(e){let t=await fetch(e);if(!t.ok)throw Error(`${t.status} ${t.statusText}`);return t.text()},prepare(e,t){return Function(...t,e)},async ready(){if(document.readyState==="loading")await new Promise((e)=>document.addEventListener("DOMContentLoaded",e,{once:!0}))},report(e){console.error("[Rip]",String(e))}}},e4=(e)=>{let t=e.split(` +`),r=null;for(let n of t){if(!n.trim())continue;let i=n.match(/^[ \t]*/)[0];if(r===null){r=i;continue}let s=0;while(sn.trim()?n.slice(r.length):n).join(` +`)},t4=(e)=>{try{return new URL(e,"https://rip.invalid/").href}catch{return e}};async function Fh(e=null){let t=e??Qc();await t.ready?.();let r=[],n=new Set,i=(u)=>{let d=t4(u);if(n.has(d))throw Error(`rip: script source '${u}' is listed more than once`);n.add(d)};for(let u of t.dataSrc?.()??[])i(u),r.push({label:u,text:null,url:u});let s=0;for(let u of t.scripts?.()??[])if(s+=1,u.src)i(u.src),r.push({label:u.src,text:null,url:u.src});else r.push({label:``,text:e4(u.text??"")});let a=[],o=(u,d)=>{a.push({label:u,error:d}),t.report?.(d)},l=[];for(let u of r){if(u.text!==null){l.push(u);continue}if(typeof t.fetchText!=="function")throw Error("rip: this host loads script sources by URL but provides no fetchText");try{l.push({...u,text:await t.fetchText(u.url)})}catch(d){o(u.label,Error(`rip: failed to load '${u.label}': ${d.message}`))}}let c=l,h=null;while(c.length){let u=[],d=1,p=[];for(let m of c){u.push({source:m,start:d});let g=m.text.endsWith(` `)?m.text.slice(0,-1):m.text;p.push(g),d+=g.split(` -`).length}try{f=Nn(p.join(` -`),{path:"",runtimeDelivery:"none",script:!0});break}catch(m){let g=u[0];for(let w of u)if(typeof m.line==="number"&&w.start<=m.line)g=w;let b=typeof m.line==="number"?m.line-g.start+1:null,S=Error(`rip: ${g.source.label}${b?`:${b}`:""} failed to compile: ${m.message}`);S.cause=m,S.line=b,S.col=m.col,o(g.source.label,S),c=c.filter((w)=>w!==g.source),f=null}}let h=!1;if(f){let u=`'use strict'; +`).length}try{h=Nn(p.join(` +`),{path:"",runtimeDelivery:"none",script:!0});break}catch(m){let g=u[0];for(let w of u)if(typeof m.line==="number"&&w.start<=m.line)g=w;let b=typeof m.line==="number"?m.line-g.start+1:null,S=Error(`rip: ${g.source.label}${b?`:${b}`:""} failed to compile: ${m.message}`);S.cause=m,S.line=b,S.col=m.col,o(g.source.label,S),c=c.filter((w)=>w!==g.source),h=null}}let f=!1;if(h){let u=`'use strict'; return (async () => { -${f.code} -})();`,d=null;try{d=t.prepare(u,p2)}catch(p){let m=Error("rip: script evaluation is blocked by Content Security Policy — running Rip from script tags requires 'unsafe-eval' "+"(script-src). Serve precompiled JavaScript or relax the policy for this page.");m.cause=p,o("",m)}if(d)try{await d(...qc),h=!0}catch(p){o("",p)}}return{count:c.length,executed:h,failures:a}}var Qc="data-rip-hmr-overlay",et=null,l2=(e)=>{if(e==null)return"Unknown update failure";if(typeof e==="string")return e;return e.message||e.stack||String(e)},c2=(e)=>{if(e==null||typeof e!=="object")return null;if(typeof e.path==="string"&&e.path)return e.path;if(typeof e.file==="string"&&e.file)return e.file;return null};function f2(e,t){if(typeof document>"u"||typeof document.createElement!=="function")return null;let r=document.body||document.documentElement;if(!r)return null;ve();let s=document.createElement("div");s.setAttribute(Qc,e||"compile"),s.setAttribute("role","alert"),s.style.cssText=["position:fixed","inset:0","z-index:2147483646","display:flex","align-items:flex-start","justify-content:center","padding:2rem 1rem","box-sizing:border-box","background:rgba(15,23,42,0.45)","overflow:auto"].join(";");let i=document.createElement("div");i.style.cssText="position:relative;max-width:52rem;width:100%";let n=document.createElement("pre");n.style.cssText=["margin:0","padding:1rem 1.25rem","color:#b91c1c","background:#fef2f2","border:1px solid #fecaca","border-radius:8px","font:13px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace","white-space:pre-wrap","overflow-wrap:anywhere"].join(";");let a=e==="activate"?"Rip: update failed to activate":"Rip: update failed to compile",o=c2(t),l=o?`${a} +${h.code} +})();`,d=null;try{d=t.prepare(u,g2)}catch(p){let m=Error("rip: script evaluation is blocked by Content Security Policy — running Rip from script tags requires 'unsafe-eval' "+"(script-src). Serve precompiled JavaScript or relax the policy for this page.");m.cause=p,o("",m)}if(d)try{await d(...Zc),f=!0}catch(p){o("",p)}}return{count:c.length,executed:f,failures:a}}var r4="data-rip-hmr-overlay",et=null,c2=(e)=>{if(e==null)return"Unknown update failure";if(typeof e==="string")return e;return e.message||e.stack||String(e)},h2=(e)=>{if(e==null||typeof e!=="object")return null;if(typeof e.path==="string"&&e.path)return e.path;if(typeof e.file==="string"&&e.file)return e.file;return null};function f2(e,t){if(typeof document>"u"||typeof document.createElement!=="function")return null;let r=document.body||document.documentElement;if(!r)return null;ve();let n=document.createElement("div");n.setAttribute(r4,e||"compile"),n.setAttribute("role","alert"),n.style.cssText=["position:fixed","inset:0","z-index:2147483646","display:flex","align-items:flex-start","justify-content:center","padding:2rem 1rem","box-sizing:border-box","background:rgba(15,23,42,0.45)","overflow:auto"].join(";");let i=document.createElement("div");i.style.cssText="position:relative;max-width:52rem;width:100%";let s=document.createElement("pre");s.style.cssText=["margin:0","padding:1rem 1.25rem","color:#b91c1c","background:#fef2f2","border:1px solid #fecaca","border-radius:8px","font:13px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace","white-space:pre-wrap","overflow-wrap:anywhere"].join(";");let a=e==="activate"?"Rip: update failed to activate":"Rip: update failed to compile",o=h2(t),l=o?`${a} ${o} `:`${a} -`;n.textContent=l+l2(t);let c=document.createElement("button");c.type="button",c.textContent="Dismiss",c.style.cssText=["position:absolute","top:0.5rem","right:0.5rem","padding:0.4rem 0.75rem","font:12px/1.2 system-ui,sans-serif","color:#0f172a","background:#fff","border:1px solid #cbd5e1","border-radius:6px","cursor:pointer"].join(";"),c.addEventListener("click",()=>ve()),i.appendChild(n),i.appendChild(c),s.appendChild(i),s.addEventListener("click",(h)=>{if(h.target===s)ve()});let f=(h)=>{if(h.key==="Escape")ve()};if(s._ripOnKey=f,typeof document.addEventListener==="function")document.addEventListener("keydown",f);return r.appendChild(s),et=s,Hc("reject",{kind:e||"compile",path:c2(t),message:l2(t).slice(0,500)}),s}function ve(){if(!et)return;let e=et._ripOnKey;if(e&&typeof document<"u"&&typeof document.removeEventListener==="function")document.removeEventListener("keydown",e);et.remove?.(),et=null}function jf(){return et}var{validatePrepared:e4}=ti,g2=(e)=>e!==null&&typeof e==="object"&&!Array.isArray(e),_n=(e)=>typeof e==="string"&&/^[A-Za-z0-9_]{6}$/.test(e),b2=(e,t=!1)=>{if(typeof e!=="string"||e.length===0||e.startsWith("/")||e.includes("\\"))return!1;let r=e.split("/");if(r.some((s)=>!s||s==="."||s===".."||s.startsWith(".")))return!1;if(t){let s=r.at(-1);if(s===".rip"||!s.endsWith(".rip")||r.slice(0,-1).some((i)=>i.endsWith(".rip")))return!1}return!0},y2=(e,t)=>{let r=Object.keys(e).sort(),s=[...t].sort();return r.length===s.length&&r.every((i,n)=>i===s[n])},t4=(e)=>{if(!g2(e)||!y2(e,["hash","list"])||!_n(e.hash)||!Array.isArray(e.list))throw Error("rip: bundle must contain exactly one hash and one source list");let t={},r=null;for(let s of e.list){if(!Array.isArray(s)||s.length!==2||!b2(s[0],!0)||typeof s[1]!=="string"||r!==null&&r>=s[0])throw Error(`rip: bundle has a malformed or unsorted source entry: ${JSON.stringify(s)}`);if(s[0]==="rip/app"||s[0].startsWith("rip/app/"))throw Error(`rip: bundle source '${s[0]}' collides with embedded package 'rip/app'`);r=s[0],t[s[0]]=s[1]}return t},r4=(e)=>{if(!g2(e)||!y2(e,["from","hash","list"])||!_n(e.from)||!_n(e.hash)||!Array.isArray(e.list))throw Error("rip: publication change must contain exactly from, hash, and list");let t=null,r=[];for(let s of e.list){if(!Array.isArray(s)||s.length<1||s.length>2||!b2(s[0])||t!==null&&t>=s[0])throw Error(`rip: publication change has a malformed or unsorted entry: ${JSON.stringify(s)}`);let[i]=s,n=s.length===2&&s[1]===null;if(i.endsWith(".rip")){if(s.length!==2||!n&&typeof s[1]!=="string")throw Error(`rip: Rip change '${i}' must carry source or null`)}else if(s.length===2&&!n)throw Error(`rip: ordinary asset change '${i}' cannot carry content`);t=i,r.push({path:i,source:s[1],deletion:n})}return{from:e.from,hash:e.hash,entries:r}},i4=async(e)=>{let t=await fetch(e);if(!t.ok)throw Error(`rip: failed to fetch bundle '${e}': ${t.status} ${t.statusText}`);return t.text()};async function n4(e,{fetchText:t=i4}={}){if(!e)throw Error("rip: fetchBundle requires a url");let r=await t(e),s=typeof r==="string"?r:r?.text;if(typeof s!=="string")throw Error(`rip: bundle '${e}' fetch did not return text`);try{return JSON.parse(s)}catch(i){throw Error(`rip: bundle '${e}' is not valid JSON: ${i.message}`)}}var s4=(e,t,{hmr:r=!1}={})=>{let s=new Map(Object.entries(e)),i=new Map,a=m2({components:{read:(o)=>s.get(o),exists:(o)=>s.has(o),getCompiled:(o)=>i.get(o),setCompiled:(o,l)=>void i.set(o,l)},embeddedPackages:d2,debug:t,hmr:r});return{sources(o){s=new Map(Object.entries(o))},async compile(o=[]){let l=new Set;for(let c of o)for(let f of a.invalidate(c))l.add(f);try{let c={};for(let f of s.keys())if(!f.startsWith("rip/"))c[f]={...await a.import(f)};return{compiled:c,invalidated:[...l]}}finally{await a.collect()}},dispose:()=>a.dispose()}},a4=(e,t)=>{let r=e.split("?")[0];return`${r.slice(0,r.lastIndexOf("/")+1)}${t}`};async function Ff(e={}){if(!e.bundle&&!e.url)throw Error("rip: bootApp requires a bundle or a url");let t=e.bundle??await n4(e.url,{fetchText:e.fetchText}),r=t4(t),s=e.debug===!0,i=e.watch===!0||e.feed!=null,n=s4(r,s,{hmr:i}),a=Xr(),o=(L)=>L["seed.rip"]?.seed,l=(L)=>zr({bundle:{compiled:L,seed:o(L)},components:a,target:e.target,adapter:e.adapter,base:e.base,hash:e.hash,persist:e.persist,storage:e.storage,onError:e.onError}),c;try{let{compiled:L}=await n.compile();a.activate({hash:t.hash,sources:r,compiled:L}),c=l(L)}catch(L){throw n.dispose(),L}let f=null,h=!1,u={},d=e.feed?.report??((...L)=>console.error(...L)),p=e.feed?.report??((...L)=>console.info(...L)),m=(L)=>{if(ve(),p(`[Rip] reloading${L?` — ${L}`:""}`),typeof e.reload==="function")e.reload(L);else if(typeof location<"u")location.reload()},g=(L)=>{if(typeof document>"u"||typeof document.querySelectorAll!=="function")return[];let P=new Set,N=new URL(typeof location>"u"?"http://rip.invalid/":location.href),D=new URL("/",N);D.pathname=`/${L.replaceAll("%","%25")}`;let O=D.pathname;for(let W of document.querySelectorAll('link[rel="stylesheet"]')){let H=W.getAttribute("data-rip-css")===L;if(H)P.add(W);let G=W.getAttribute("href")||"";if(!G)continue;let k;try{k=new URL(G,N)}catch{continue}if(!H&&k.origin===N.origin&&(k.pathname===O||k.pathname.endsWith(O)))P.add(W)}return[...P]},b=(L,P)=>{for(let N of g(L)){let D=N.getAttribute("href")||N.href,O=D.indexOf("#"),W=O<0?"":D.slice(O),G=(O<0?D:D.slice(0,O)).split("?")[0];N.setAttribute("href",`${G}?hash=${encodeURIComponent(P)}${W}`),N.disabled=!1}},S=Qr({renderer:{remountDirty:(L,P)=>c.renderer.remountDirty(L,P)},escape:async()=>"reload",report:p}),w=new Set,R=async(L)=>{let P;try{P=r4(L)}catch(U){return d("[Rip] malformed publication change:",U),"reload"}if(a.hash()===P.hash)return w.clear(),ve(),!0;if(w.has(P.hash))return!0;let N=P.from;if(a.hash()!==P.from)if(w.has(P.from))N=a.hash();else return"reload";let D=()=>Object.fromEntries(a.listAll().map((U)=>[U,a.read(U)])),O=D(),W=[];for(let U of P.entries){if(!U.path.endsWith(".rip"))continue;if(W.push(U.path),U.deletion)delete O[U.path];else O[U.path]=U.source}let H,G;try{n.sources(O);let U=await n.compile(W);H=U.compiled,G=U.invalidated.filter((r1)=>!r1.startsWith("rip/")),e4({compiled:H,seed:o(H)})}catch(U){return n.sources(D()),w.add(P.hash),d("[Rip] changed Rip program failed to compile:",U),f2("compile",U),"rejected"}let k=P.entries.some((U)=>!U.path.endsWith(".rip")&&(!U.path.endsWith(".css")||U.deletion)),v=c.router.current,j=new Set([...v?.layouts??v?.route?.layouts??[],v?.route?.file].filter(Boolean)),X=P.entries.some((U)=>U.deletion&&U.path.endsWith(".rip")&&j.has(U.path));if(k||X)return n.sources(D()),"reload";let x=null,Z=!1;try{x=a.stage(N,{hash:P.hash,sources:O,compiled:H},W);let U=G.length?await S.absorb(G,x.components):"ignore";x.commit(),Z=!0,w.clear();for(let r1 of P.entries)if(r1.path.endsWith(".css"))b(r1.path,P.hash);if(ve(),U==="reload")return p("[Rip] committed App update requires a document reload"),"reload";return!0}catch(U){if(x&&!Z)x.rollback();return n.sources(D()),w.add(P.hash),d("[Rip] changed Rip program failed to activate:",U),f2("activate",U),"rejected"}};if(i){let L=e.latestUrl??e.feed?.latestUrl??(e.url?a4(e.url,"latest.json"):"/latest.json");f=Zr({hash:()=>a.hash(),apply:R,reload:m},{...e.feed??{},latestUrl:L,report:d})}return Object.assign(u,c,{workspace:a,feed:f,destroy:()=>{if(h)return;h=!0,ve(),f?.close(),c.destroy(),n.dispose()}})}function Bf(e={}){return m2({...e,embeddedPackages:{...d2,...e.embeddedPackages}})}function Uf(e,t={}){if(t.runtimeDelivery!==void 0&&t.runtimeDelivery!=="none")throw Error(`rip: browser compilation delivers runtimes by scope; runtimeDelivery '${t.runtimeDelivery}' is not available here`);return Nn(e,{...t,runtimeDelivery:"none"})}export{ti as app,Ff as bootApp,ve as clearHmrOverlay,Nn as compile,Uf as compileToJS,Bf as createModuleLoader,d2 as embeddedPackages,n4 as fetchBundle,jf as hmrOverlayElement,Mf as processRipScripts,u2 as runtimes,f2 as showHmrOverlay}; +`;s.textContent=l+c2(t);let c=document.createElement("button");c.type="button",c.textContent="Dismiss",c.style.cssText=["position:absolute","top:0.5rem","right:0.5rem","padding:0.4rem 0.75rem","font:12px/1.2 system-ui,sans-serif","color:#0f172a","background:#fff","border:1px solid #cbd5e1","border-radius:6px","cursor:pointer"].join(";"),c.addEventListener("click",()=>ve()),i.appendChild(s),i.appendChild(c),n.appendChild(i),n.addEventListener("click",(f)=>{if(f.target===n)ve()});let h=(f)=>{if(f.key==="Escape")ve()};if(n._ripOnKey=h,typeof document.addEventListener==="function")document.addEventListener("keydown",h);return r.appendChild(n),et=n,Yc("reject",{kind:e||"compile",path:h2(t),message:c2(t).slice(0,500)}),n}function ve(){if(!et)return;let e=et._ripOnKey;if(e&&typeof document<"u"&&typeof document.removeEventListener==="function")document.removeEventListener("keydown",e);et.remove?.(),et=null}function Bh(){return et}var{validatePrepared:i4}=ti,b2=(e)=>e!==null&&typeof e==="object"&&!Array.isArray(e),_n=(e)=>typeof e==="string"&&/^[A-Za-z0-9_]{6}$/.test(e),y2=(e,t=!1)=>{if(typeof e!=="string"||e.length===0||e.startsWith("/")||e.includes("\\"))return!1;let r=e.split("/");if(r.some((n)=>!n||n==="."||n===".."||n.startsWith(".")))return!1;if(t){let n=r.at(-1);if(n===".rip"||!n.endsWith(".rip")||r.slice(0,-1).some((i)=>i.endsWith(".rip")))return!1}return!0},S2=(e,t)=>{let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((i,s)=>i===n[s])},n4=(e)=>{if(!b2(e)||!S2(e,["hash","list"])||!_n(e.hash)||!Array.isArray(e.list))throw Error("rip: bundle must contain exactly one hash and one source list");let t={},r=null;for(let n of e.list){if(!Array.isArray(n)||n.length!==2||!y2(n[0],!0)||typeof n[1]!=="string"||r!==null&&r>=n[0])throw Error(`rip: bundle has a malformed or unsorted source entry: ${JSON.stringify(n)}`);if(n[0]==="rip/app"||n[0].startsWith("rip/app/"))throw Error(`rip: bundle source '${n[0]}' collides with embedded package 'rip/app'`);r=n[0],t[n[0]]=n[1]}return t},s4=(e)=>{if(!b2(e)||!S2(e,["from","hash","list"])||!_n(e.from)||!_n(e.hash)||!Array.isArray(e.list))throw Error("rip: publication change must contain exactly from, hash, and list");let t=null,r=[];for(let n of e.list){if(!Array.isArray(n)||n.length<1||n.length>2||!y2(n[0])||t!==null&&t>=n[0])throw Error(`rip: publication change has a malformed or unsorted entry: ${JSON.stringify(n)}`);let[i]=n,s=n.length===2&&n[1]===null;if(i.endsWith(".rip")){if(n.length!==2||!s&&typeof n[1]!=="string")throw Error(`rip: Rip change '${i}' must carry source or null`)}else if(n.length===2&&!s)throw Error(`rip: ordinary asset change '${i}' cannot carry content`);t=i,r.push({path:i,source:n[1],deletion:s})}return{from:e.from,hash:e.hash,entries:r}},a4=async(e)=>{let t=await fetch(e);if(!t.ok)throw Error(`rip: failed to fetch bundle '${e}': ${t.status} ${t.statusText}`);return t.text()};async function o4(e,{fetchText:t=a4}={}){if(!e)throw Error("rip: fetchBundle requires a url");let r=await t(e),n=typeof r==="string"?r:r?.text;if(typeof n!=="string")throw Error(`rip: bundle '${e}' fetch did not return text`);try{return JSON.parse(n)}catch(i){throw Error(`rip: bundle '${e}' is not valid JSON: ${i.message}`)}}var l4=(e,t,{hmr:r=!1}={})=>{let n=new Map(Object.entries(e)),i=new Map,a=p2({components:{read:(o)=>n.get(o),exists:(o)=>n.has(o),getCompiled:(o)=>i.get(o),setCompiled:(o,l)=>void i.set(o,l)},embeddedPackages:m2,debug:t,hmr:r});return{sources(o){n=new Map(Object.entries(o))},async compile(o=[]){let l=new Set;for(let c of o)for(let h of a.invalidate(c))l.add(h);try{let c={};for(let h of n.keys())if(!h.startsWith("rip/"))c[h]={...await a.import(h)};return{compiled:c,invalidated:[...l]}}finally{await a.collect()}},dispose:()=>a.dispose()}},c4=(e,t)=>{let r=e.split("?")[0];return`${r.slice(0,r.lastIndexOf("/")+1)}${t}`};async function Uh(e={}){if(!e.bundle&&!e.url)throw Error("rip: bootApp requires a bundle or a url");let t=e.bundle??await o4(e.url,{fetchText:e.fetchText}),r=n4(t),n=e.debug===!0,i=e.watch===!0||e.feed!=null,s=l4(r,n,{hmr:i}),a=Xr(),o=(L)=>L["seed.rip"]?.seed,l=(L)=>zr({bundle:{compiled:L,seed:o(L)},components:a,target:e.target,adapter:e.adapter,base:e.base,hash:e.hash,persist:e.persist,storage:e.storage,onError:e.onError}),c;try{let{compiled:L}=await s.compile();a.activate({hash:t.hash,sources:r,compiled:L}),c=l(L)}catch(L){throw s.dispose(),L}let h=null,f=!1,u={},d=e.feed?.report??((...L)=>console.error(...L)),p=e.feed?.report??((...L)=>console.info(...L)),m=(L)=>{if(ve(),p(`[Rip] reloading${L?` — ${L}`:""}`),typeof e.reload==="function")e.reload(L);else if(typeof location<"u")location.reload()},g=(L)=>{if(typeof document>"u"||typeof document.querySelectorAll!=="function")return[];let C=new Set,N=new URL(typeof location>"u"?"http://rip.invalid/":location.href),D=new URL("/",N);D.pathname=`/${L.replaceAll("%","%25")}`;let O=D.pathname;for(let W of document.querySelectorAll('link[rel="stylesheet"]')){let H=W.getAttribute("data-rip-css")===L;if(H)C.add(W);let G=W.getAttribute("href")||"";if(!G)continue;let k;try{k=new URL(G,N)}catch{continue}if(!H&&k.origin===N.origin&&(k.pathname===O||k.pathname.endsWith(O)))C.add(W)}return[...C]},b=(L,C)=>{for(let N of g(L)){let D=N.getAttribute("href")||N.href,O=D.indexOf("#"),W=O<0?"":D.slice(O),G=(O<0?D:D.slice(0,O)).split("?")[0];N.setAttribute("href",`${G}?hash=${encodeURIComponent(C)}${W}`),N.disabled=!1}},S=Qr({renderer:{remountDirty:(L,C)=>c.renderer.remountDirty(L,C)},escape:async()=>"reload",report:p}),w=new Set,R=async(L)=>{let C;try{C=s4(L)}catch(U){return d("[Rip] malformed publication change:",U),"reload"}if(a.hash()===C.hash)return w.clear(),ve(),!0;if(w.has(C.hash))return!0;let N=C.from;if(a.hash()!==C.from)if(w.has(C.from))N=a.hash();else return"reload";let D=()=>Object.fromEntries(a.listAll().map((U)=>[U,a.read(U)])),O=D(),W=[];for(let U of C.entries){if(!U.path.endsWith(".rip"))continue;if(W.push(U.path),U.deletion)delete O[U.path];else O[U.path]=U.source}let H,G;try{s.sources(O);let U=await s.compile(W);H=U.compiled,G=U.invalidated.filter((r1)=>!r1.startsWith("rip/")),i4({compiled:H,seed:o(H)})}catch(U){return s.sources(D()),w.add(C.hash),d("[Rip] changed Rip program failed to compile:",U),f2("compile",U),"rejected"}let k=C.entries.some((U)=>!U.path.endsWith(".rip")&&(!U.path.endsWith(".css")||U.deletion)),v=c.router.current,j=new Set([...v?.layouts??v?.route?.layouts??[],v?.route?.file].filter(Boolean)),X=C.entries.some((U)=>U.deletion&&U.path.endsWith(".rip")&&j.has(U.path));if(k||X)return s.sources(D()),"reload";let x=null,Z=!1;try{x=a.stage(N,{hash:C.hash,sources:O,compiled:H},W);let U=G.length?await S.absorb(G,x.components):"ignore";x.commit(),Z=!0,w.clear();for(let r1 of C.entries)if(r1.path.endsWith(".css"))b(r1.path,C.hash);if(ve(),U==="reload")return p("[Rip] committed App update requires a document reload"),"reload";return!0}catch(U){if(x&&!Z)x.rollback();return s.sources(D()),w.add(C.hash),d("[Rip] changed Rip program failed to activate:",U),f2("activate",U),"rejected"}};if(i){let L=e.latestUrl??e.feed?.latestUrl??(e.url?c4(e.url,"latest.json"):"/latest.json");h=Zr({hash:()=>a.hash(),apply:R,reload:m},{...e.feed??{},latestUrl:L,report:d})}return Object.assign(u,c,{workspace:a,feed:h,destroy:()=>{if(f)return;f=!0,ve(),h?.close(),c.destroy(),s.dispose()}})}function Vh(e={}){return p2({...e,embeddedPackages:{...m2,...e.embeddedPackages}})}function Wh(e,t={}){if(t.runtimeDelivery!==void 0&&t.runtimeDelivery!=="none")throw Error(`rip: browser compilation delivers runtimes by scope; runtimeDelivery '${t.runtimeDelivery}' is not available here`);return Nn(e,{...t,runtimeDelivery:"none"})}export{ti as app,Uh as bootApp,ve as clearHmrOverlay,Nn as compile,Wh as compileToJS,Vh as createModuleLoader,m2 as embeddedPackages,o4 as fetchBundle,Bh as hmrOverlayElement,Fh as processRipScripts,d2 as runtimes,f2 as showHmrOverlay}; diff --git a/dist/@rip/rip.min.js.br b/dist/@rip/rip.min.js.br index da62a5f184b3e2af768dbfc1de4b3d7509a7b229..0ddd871546920c6f689a684e753dd4365eb98e2a 100644 GIT binary patch literal 184524 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 literal 184055 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

XM8fp7AvS*>TN8jOVwp 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 diff --git a/docs/HMR.md b/docs/HMR.md index 406bac97..0b4cbd33 100644 --- a/docs/HMR.md +++ b/docs/HMR.md @@ -259,6 +259,16 @@ These are load-bearing invariants, not folklore: gone before the rebuilt view can claim it. The pool drains at the end of the parent's setup and on any teardown, so a claim can only land during the rebuild and nothing outlives it. +8. **A rebuilt child rebinds the part that adopted it.** Under + `asChild` a part's host is its child's root element, so a child's + patch replaces the part's host. After its own setup the child hands + the new root to the adopting part through `_setChildren`, and the + part rehosts: released as a patch releases it but with the DOM kept, + since the host's place is the child's, then rebuilt by the ordinary + create/setup path, which adopts the new element; a part above that + adopted this one's root rebinds in turn. A patch of an adopting part + itself keeps the host in place for the same reason: it releases + without detaching and skips the reinsertion. --- diff --git a/docs/TYPES.md b/docs/TYPES.md index f16ea82d..780d50b0 100644 --- a/docs/TYPES.md +++ b/docs/TYPES.md @@ -230,6 +230,8 @@ A component body has two kinds of name. The names it declares — state, compute `extends` names a host, and the host may be a component the module binds or imports as well as a tag: the Drawer's `Popup = component extends Dialog.Popup` forwards the caller's undeclared props onto the first class-scope construction of `Dialog.Popup` in its render, spread into that construction's props ahead of the line's own keys, and a later update to a rest key reaches the host through its own prop updater — a declared prop of the host writes the member, an undeclared one rides on to the host's rest, and a key the line itself passes is the line's. The tag form keeps the same rule: an attribute the element's own line sets, its selector's `class` and `id` included, is never written from rest, whether the caller's value is fixed or reactive; listeners are not keys, so the line's and the caller's both run, and `@rest` still reads the caller's value, so a line that wants the override spells it (`id: @rest.id ?? mint()`). The props surface says the same: a key the host line sets is left out of it, on both hosts, unless the body reads it back through `@rest.`, so `DialogTrigger type: 'submit'` is refused at the keyboard rather than dropped at the element. This is delegation, never inheritance: nothing of the host's body is visible in the wrapper, no member is overridden, and the wrapper's class is not a subclass of the host's. The props surface is the wrapper's own props intersected with the host's less the keys the wrapper declares (their bind twins and `children` included), spelled through `ConstructorParameters` and distributed over the host's required-prop arms, and `@rest` holds that object. A render that never constructs the host at class scope is rejected as the tag form is; so is a component extending itself. +**`asChild`: the projected element is the host.** A caller of a tag-extending component may pass `asChild` (the boolean shorthand of `asChild: true`) with exactly one element as the body, and the component renders that element as its host instead of creating its tag: the host line in `_create` reads `this._asChild ? this._adoptChild() : document.createElement('button')`, every line after it writes to whichever element the fork chose, and the slot's append is skipped, since the slot is the host. So the line's attributes and listeners, its `data-part` stamp, the `ref:` on the host line, the setup effects, and the caller's other undeclared props all land on the projected element, under the extends rules unchanged: a key the line sets is the line's and rest never writes it, a listener the line adds and one the caller passes both run, and a `class` from rest replaces the element's own, so the element's styles belong on the child. A `style` object on the line replaces the child's as well, since the style writer remembers one object per element. A component child qualifies through its root element; text, a fragment, the comment a failed child leaves, or no body throws at mount naming the part. `asChild` takes `true` or nothing and is fixed at construction: a container or any other value is refused there, an update is refused, and it is never written as an attribute. It rides the rest map, so a wrapper built with `extends Dialog.Trigger` forwards it to the part it constructs and the part that binds the tag consumes it, and the props surface of a tag-extending component carries `asChild?: boolean`, which a wrapper's surface inherits. A declared prop named `asChild` on an extends component rejects at compile, as `rest` does, and a member named `_asChild` collides with the runtime's slot. Under HMR a rebuilt child hands its new root to the part above it (docs/HMR.md). + **A component named through a member path.** A tag, an `extends` host, and an accept provider each take a member path as well as a bare name: `Menu.Popup side: 'top'`, `component extends Dialog.Popup`, `accept open from Dialog.Root`. The path is plain property access rooted at an identifier, any depth, and its leaf is a component name; a lowercase leaf is a member read, never a tag, and `this` roots no path. The root resolves as a bare tag's name does, so a module namespace serves its parts behind the qualifier (`import * as Menu from 'rip/ui'`, or `export * as Menu from './menu.rip'` re-published by a package entry), a tag constructs through an object or a class static holding a component the same way, and a root bound nowhere rejects at compile naming the path. A host or a provider named through a path must root at an import: their types reach the declaration file through the path, and a declaration file carries imports and the module's own components, never a plain value, so a path rooted at a module binding rejects at compile. The lowering constructs through the member (`new Menu.Popup({…})`), the child's failure comments and the extends record carry the dotted text, and the runtime is unchanged: the context walk matches the class the member holds. On the face, the accept indexes `__offers` through the path (`typeof Dialog.Root`), the host is referenced through it, and each segment maps to its own bytes, so the part's name hovers the component's signature under its own name, defines into its module, and takes the token a bare tag takes, while the qualifier hovers as the module it is. A tag whose target is no component is the face's report, not the emitter's, since the emitter cannot tell what an import holds: tsgo's construction diagnostic (TS7009 under strict, TS2351 for a value with no construct signature) re-anchors on the tag's own bytes as `'Menu.Trigger' is not a component, so it cannot be rendered as one`, through the sites the emitter records (`componentUses`); gradual holds TS7009 with the rest of the implicit-any family, and the runtime reports the failed child at mount. **`offer` and `accept`.** An offer is a state declaration and nothing else, `offer open := false`, so every offered value is a writable container. `offer` opens a declaration the way `export` does, so it takes an annotation like any other state, `offer @side: Side := 'left'`, and an unannotated one types from what its initializer spells. An accept names the component it reads from, `accept open from Dialog`, and lowers to `getContext(Dialog, 'open')`: the runtime answers from the nearest ancestor that is an instance of that component and passes over a nearer one offering the same key, and a read with no such ancestor, or one naming a member that ancestor does not offer, throws at mount naming both. The calls underneath are callable from source and read the same way, `getContext(Provider, key)` and `hasContext(Provider, key)`; a read by key alone is refused at the call. Under HMR the walk also matches on the definition's `__hmrId`, since a swap re-points living instances one at a time and a part rebuilt before its provider names the next class. The provider is any binding that holds the component, so an alias provides as its original does (`Drawer = Dialog`). The accepted member's type is the provider's own offered member. Every component's face and declaration carry a TS-only `__offers` record, each offered name with the container an accept takes and empty when it offers nothing, and an accept indexes through it: `NonNullable['__offers']>['open']`. It indexes what the provider OFFERS rather than what it has, because a member the provider merely carries is the miss the runtime throws on. The record is declared on every component because the class's `_`-prefixed slot signature would otherwise answer a missing one as `any`, and it is optional on the companion interface so a hand-built value owes none; a `__`-prefixed user name rejects at parse, so the key is never an author's. A miss is reported once, on the accept's name, in the runtime's words: `Part offers no 'open'`, or `'Plain' is not a component, so it offers nothing to accept` (`mapTsDiagnostic`). The provider's name is a reference wherever the face spells it, in the lowered read and in the member's type, and each carries the span the author wrote after `from`, so the component renames and navigates through it. `rip check --public` does not count the record: each entry repeats a member already counted. diff --git a/packages/ui/README.md b/packages/ui/README.md index 0b58efe0..22a95373 100644 --- a/packages/ui/README.md +++ b/packages/ui/README.md @@ -42,6 +42,27 @@ Orders = component The `open <=> confirming` binding is optional. A dialog nobody observes is the same tree with no props on the root. +## Your own element as a part + +Every part that renders a tag takes `asChild`: it then renders the one element you project as its host instead of creating its own, so your `Button` component is the trigger, with the part's attributes, listeners, and state on your element. + +```coffee +import { Dialog } from 'rip/ui' +import { Button } from './button.rip' + +Orders = component + render + Dialog.Root + Dialog.Trigger asChild + Button 'Delete order' + Dialog.Popup class: 'rounded-lg p-6 backdrop:bg-black/40' + Dialog.Title 'Delete this order?' + Dialog.Close asChild + Button variant: 'secondary', 'Cancel' +``` + +The body must be exactly one element, a component counting through its root element; anything else throws at mount naming the part. The part's own attributes win where both set one (`type` on a trigger), and the element carries the part's `data-part`. Props you pass the part beyond its own (`id`, `aria-label`) still reach the element, and a `class` passed there replaces the element's own, so style the element on your component. A `style` object the part sets replaces the element's too: `Menu.Trigger` sets the anchor style, so a menu trigger's element keeps its styling in classes. `Dialog.Popup` and `Menu.Popup` take the mode by the same mechanism but are not exercised under it. + ## Dialog Native first: `Dialog.Popup` is a `

` opened with `showModal`, which gives the top layer, modality, an inert background, Escape, focus containment, and focus restore to the trigger. No JavaScript positioning ships. No engine wraps Tab inside a modal, so the popup wraps it, the WAI-ARIA modal dialog pattern: a hidden sentinel `` is the popup's first child and another its last, and when the browser's own Tab or Shift+Tab lands on one, it sends focus to the popup's first or last focusable. A focusable is a link with an `href`, a button, an input, a select, a textarea, a summary, a details, an iframe, an object, an embed, media with controls, an editable element, or an element with a `tabindex` of zero or more, rendered, visible, not disabled, and not inert. An iframe is one stop: a Tab inside it never reaches the popup, but the browser's own move out of it lands on a sentinel, so a frame at either end wraps too. The sentinels carry `aria-hidden` and `data-focus-guard`, and the package's own stylesheet hides them. On open, `showModal` focuses the leading sentinel as the first focusable descendant, and the popup moves focus on to the first focusable. A focusable inside a nested shadow root is never a landing spot, since the popup does not see into one, though the sentinels still catch the exit. diff --git a/packages/ui/demo/app/components/button.rip b/packages/ui/demo/app/components/button.rip new file mode 100644 index 00000000..18fce120 --- /dev/null +++ b/packages/ui/demo/app/components/button.rip @@ -0,0 +1,21 @@ +type Variant = 'primary' | 'secondary' +type Size = 'sm' | 'md' + +export Button = component extends button + @variant?: Variant := 'primary' + @size?: Size := 'md' + @classes?: string + render + button + type: 'button' + class: [ + 'rounded-lg border px-3 text-sm font-medium' + { + 'border-transparent bg-accent text-on-accent hover:bg-accent-hover active:bg-accent-active': variant is 'primary' + 'border-input bg-input text-secondary hover:bg-input-hover active:bg-input-active': variant is 'secondary' + 'py-1.5': size is 'sm' + 'py-2': size is 'md' + } + classes + ] + slot diff --git a/packages/ui/demo/app/components/page.rip b/packages/ui/demo/app/components/page.rip index 94c85ddb..47d93521 100644 --- a/packages/ui/demo/app/components/page.rip +++ b/packages/ui/demo/app/components/page.rip @@ -1,3 +1,5 @@ +import { Button } from './button.rip' + export Page = component @title: string @description: string @@ -25,14 +27,12 @@ export Row = component span class: 'w-24 shrink-0 font-mono text-sm text-secondary', name slot -export Choice = component extends button +export Choice = component extends Button @pressed: boolean render - button - type: 'button' + Button + variant: 'secondary' + size: 'sm' aria-pressed: if pressed then 'true' else 'false' - class: [ - 'rounded-lg border border-input bg-input px-3 py-1.5 text-sm font-medium text-secondary' - 'hover:bg-input-hover active:bg-input-active aria-pressed:bg-surface-active aria-pressed:text-primary' - ] + classes: 'aria-pressed:bg-surface-active aria-pressed:text-primary' slot diff --git a/packages/ui/demo/app/routes/dialog.rip b/packages/ui/demo/app/routes/dialog.rip index c39231a5..8d5bf5b8 100644 --- a/packages/ui/demo/app/routes/dialog.rip +++ b/packages/ui/demo/app/routes/dialog.rip @@ -1,5 +1,6 @@ import { Dialog } from 'rip/ui' import { COMPONENTS } from '../components.rip' +import { Button } from '../components/button.rip' import { Choice, Controls, Page, Row, Stage } from '../components/page.rip' export DialogPage = component @@ -9,9 +10,8 @@ export DialogPage = component Page title: COMPONENTS.dialog.name, description: COMPONENTS.dialog.description Stage Dialog.Root open <=> open - Dialog.Trigger - class: 'rounded-lg border border-transparent bg-accent px-3 py-2 text-sm font-medium text-on-accent hover:bg-accent-hover active:bg-accent-active' - 'Open Dialog' + Dialog.Trigger asChild + Button 'Open Dialog' Dialog.Popup closedby: closedby class: [ @@ -22,9 +22,8 @@ export DialogPage = component Dialog.Title class: 'text-lg font-semibold', 'Notifications' Dialog.Description class: 'mt-2 text-secondary', 'You are all caught up. Good job!' div class: 'mt-6 flex justify-end' - Dialog.Close - class: 'rounded-lg border border-transparent bg-accent px-3 py-2 text-sm font-medium text-on-accent hover:bg-accent-hover active:bg-accent-active' - 'Close' + Dialog.Close asChild + Button 'Close' Controls Row name: 'closedby' diff --git a/packages/ui/demo/app/routes/drawer.rip b/packages/ui/demo/app/routes/drawer.rip index 17faa67a..23c31046 100644 --- a/packages/ui/demo/app/routes/drawer.rip +++ b/packages/ui/demo/app/routes/drawer.rip @@ -1,5 +1,6 @@ import { Drawer } from 'rip/ui' import { COMPONENTS } from '../components.rip' +import { Button } from '../components/button.rip' import { Choice, Controls, Page, Row, Stage } from '../components/page.rip' # Each slide also sets the other axis to zero: WebKit does not substitute @@ -19,9 +20,8 @@ export DrawerPage = component Page title: COMPONENTS.drawer.name, description: COMPONENTS.drawer.description Stage Drawer.Root open <=> open - Drawer.Trigger - class: 'rounded-lg border border-transparent bg-accent px-3 py-2 text-sm font-medium text-on-accent hover:bg-accent-hover active:bg-accent-active' - 'Open Drawer' + Drawer.Trigger asChild + Button 'Open Drawer' Drawer.Popup side: side closedby: closedby @@ -33,9 +33,8 @@ export DrawerPage = component Drawer.Title class: 'text-lg font-semibold', 'Settings' Drawer.Description class: 'mt-2 text-secondary', 'Swipe the panel toward its side to dismiss it, or use the button.' div class: 'mt-6 flex justify-end' - Drawer.Close - class: 'rounded-lg border border-transparent bg-accent px-3 py-2 text-sm font-medium text-on-accent hover:bg-accent-hover active:bg-accent-active' - 'Close' + Drawer.Close asChild + Button 'Close' Controls Row name: 'side' diff --git a/packages/ui/demo/app/routes/menu.rip b/packages/ui/demo/app/routes/menu.rip index e075ee8b..a8c77177 100644 --- a/packages/ui/demo/app/routes/menu.rip +++ b/packages/ui/demo/app/routes/menu.rip @@ -1,5 +1,6 @@ import { Dialog, Menu } from 'rip/ui' import { COMPONENTS } from '../components.rip' +import { Button } from '../components/button.rip' import { Choice, Controls, Page, Row, Stage } from '../components/page.rip' ITEM = 'flex w-full items-center rounded-lg px-3 py-2 text-sm font-medium text-secondary outline-none focus:bg-surface-hover focus:text-primary' @@ -14,9 +15,8 @@ export MenuPage = component Page title: COMPONENTS.menu.name, description: COMPONENTS.menu.description Stage Menu.Root open <=> open - Menu.Trigger - class: 'rounded-lg border border-transparent bg-accent px-3 py-2 text-sm font-medium text-on-accent hover:bg-accent-hover active:bg-accent-active' - 'Open Menu' + Menu.Trigger asChild + Button 'Open Menu' Menu.Popup side: side align: align @@ -44,9 +44,8 @@ export MenuPage = component Stage Dialog.Root - Dialog.Trigger - class: 'rounded-lg border border-input bg-input px-3 py-2 text-sm font-medium text-secondary hover:bg-input-hover active:bg-input-active' - 'Open Dialog' + Dialog.Trigger asChild + Button variant: 'secondary', 'Open Dialog' Dialog.Popup class: [ 'm-auto w-96 scale-95 rounded-xl bg-surface p-6 opacity-0 shadow-xl transition-[opacity,scale] duration-150 ease-dialog' @@ -56,9 +55,8 @@ export MenuPage = component Dialog.Title class: 'text-lg font-semibold', 'Account' div class: 'mt-6 flex items-center justify-between' Menu.Root - Menu.Trigger - class: 'rounded-lg border border-input bg-input px-3 py-2 text-sm font-medium text-secondary hover:bg-input-hover active:bg-input-active' - 'Open Inner Menu' + Menu.Trigger asChild + Button variant: 'secondary', 'Open Inner Menu' Menu.Popup sideOffset: 6 class: [ @@ -67,6 +65,5 @@ export MenuPage = component ] Menu.Item class: ITEM, @click: (-> selected = 'Inner Settings'), 'Inner Settings' Menu.Item class: ITEM, @click: (-> selected = 'Inner Sign Out'), 'Inner Sign Out' - Dialog.Close - class: 'rounded-lg border border-transparent bg-accent px-3 py-2 text-sm font-medium text-on-accent hover:bg-accent-hover active:bg-accent-active' - 'Close' + Dialog.Close asChild + Button 'Close' diff --git a/packages/ui/test/browser/aschild.spec.mjs b/packages/ui/test/browser/aschild.spec.mjs new file mode 100644 index 00000000..1597ab1d --- /dev/null +++ b/packages/ui/test/browser/aschild.spec.mjs @@ -0,0 +1,81 @@ +import { expect, test } from '@playwright/test' +import { focusInside, isModal } from './support.mjs' + +// The demo renders every trigger and close part through its own Button +// with `asChild`, so the element the platform facts are asserted +// on is the application's, carrying both the Button's mark and the +// part's. +const hosted = async (locator, part, variant = 'primary') => { + await expect(locator).toHaveAttribute('data-part', part) + await expect(locator).toHaveAttribute('type', 'button') + await expect(locator).toHaveClass(variant === 'primary' ? /bg-accent/ : /bg-input/) +} + +for (const { path, name, close } of [ + { path: '/dialog', name: 'Open Dialog', close: 'Close' }, + { path: '/drawer', name: 'Open Drawer', close: 'Close' }, +]) { + test(`${path}: the app's Button is the trigger and the close part; the modal opens, focus lands inside, and Escape returns focus to it`, async ({ page }) => { + await page.goto(path) + const trigger = page.getByRole('button', { name }) + await expect(trigger).toBeVisible() + await hosted(trigger, 'Trigger') + await expect(trigger).toHaveAttribute('aria-haspopup', 'dialog') + expect(await isModal(page)).toBe(false) + await trigger.focus() + await page.keyboard.press('Enter') + await expect.poll(() => isModal(page)).toBe(true) + expect(await focusInside(page)).toBe(true) + await expect(trigger).toHaveAttribute('data-popup-open', 'true') + await expect(trigger).toHaveAttribute('aria-expanded', 'true') + const closePart = page.getByRole('button', { name: close, exact: true }) + await hosted(closePart, 'Close') + await expect(closePart).toBeFocused() + await page.keyboard.press('Escape') + await expect.poll(() => isModal(page)).toBe(false) + await expect(trigger).not.toHaveAttribute('data-popup-open') + await expect(trigger).toBeFocused() + // The close part closes it too. + await page.keyboard.press('Enter') + await expect.poll(() => isModal(page)).toBe(true) + await closePart.click() + await expect.poll(() => isModal(page)).toBe(false) + }) +} + +test('/menu: the app\'s Button is the menu trigger; the popup anchors under it, says its side, and Escape returns focus to it', async ({ page }) => { + await page.goto('/menu') + const trigger = page.getByRole('button', { name: 'Open Menu' }) + const popup = page.locator('main [role="menu"]').first() + await expect(trigger).toBeVisible() + await hosted(trigger, 'Trigger') + await expect(trigger).toHaveAttribute('aria-haspopup', 'menu') + await expect(trigger).toHaveAttribute('popovertarget', /rip-menu-popup/) + expect(await trigger.evaluate((el) => el.style.getPropertyValue('anchor-name'))).toMatch(/^--rip-menu-anchor/) + await trigger.focus() + await page.keyboard.press('ArrowDown') + await expect.poll(() => page.evaluate(() => document.querySelector('main [role="menu"]:popover-open') !== null)).toBe(true) + await expect(page.getByRole('menuitem', { name: 'Dialog', exact: true })).toBeFocused() + await popup.evaluate((el) => Promise.allSettled(el.getAnimations().map((a) => a.finished))) + const t = await trigger.boundingBox() + const p = await popup.boundingBox() + expect(Math.abs(p.x - t.x)).toBeLessThan(1) + expect(Math.abs(p.y - (t.y + t.height + 6))).toBeLessThan(1) + await expect(popup).toHaveAttribute('data-side', 'bottom') + await expect(trigger).toHaveAttribute('data-popup-open', 'true') + await page.keyboard.press('Escape') + await expect.poll(() => page.evaluate(() => document.querySelector(':popover-open'))).toBeNull() + await expect(trigger).toBeFocused() + // The input-styled variant hosts the inner triggers the same way. + const inner = page.getByRole('button', { name: 'Open Dialog' }) + await hosted(inner, 'Trigger', 'secondary') + await inner.click() + await expect.poll(() => isModal(page)).toBe(true) + const innerMenu = page.getByRole('button', { name: 'Open Inner Menu' }) + await hosted(innerMenu, 'Trigger', 'secondary') + await innerMenu.click() + await expect.poll(() => page.evaluate(() => document.querySelector('dialog [role="menu"]:popover-open') !== null)).toBe(true) + await page.keyboard.press('Escape') + await expect.poll(() => page.evaluate(() => document.querySelector(':popover-open'))).toBeNull() + expect(await isModal(page)).toBe(true) +}) diff --git a/packages/vscode/src/translate.js b/packages/vscode/src/translate.js index d2e9ad10..a6b51ccf 100644 --- a/packages/vscode/src/translate.js +++ b/packages/vscode/src/translate.js @@ -1007,6 +1007,7 @@ export function exactSpanMapper(mappings) { const RUNTIME_PRIVATE = new Set([ '_init', '_teardown', '_mountSetup', '_mountCreate', '_beginMount', '_failMount', '_hmrRerender', '_setRestProp', '_updateProp', '_applyInheritedProp', '_applyPlainInheritedProp', '_applyRestToInheritedEl', + '_adoptChild', ]); export function isScaffoldingLabel(label, source = '') { if (/^__/.test(label) || /^_ref\d*$/.test(label)) return true; diff --git a/src/emitter.js b/src/emitter.js index cc0df03e..7dd3e552 100644 --- a/src/emitter.js +++ b/src/emitter.js @@ -50,7 +50,7 @@ const COMPONENT_HOOKS = new Set(['beforeMount', 'mounted', 'beforeUnmount', 'unm const COMPONENT_RUNTIME_FIELDS = new Set([ '_state', '_frame', '_parent', '_children', '_root', '_nodes', '_target', '_context', '_rest', '_restWriters', '_restHandlers', '_inheritedEl', '_inheritedInst', '_inheritedOwn', - '_refCleanups', '_initFailed', '_hmrOrphans', '_hmrReleasing', '_hmrPropKeys', + '_refCleanups', '_initFailed', '_hmrOrphans', '_hmrReleasing', '_hmrPropKeys', '_asChild', ]); const BINOPS = new Set(['+', '-', '*', '/', '%', '**', '<', '>', '<=', '>=', '==', '!=', '&&', '||', '??', '<<', '>>', '>>>', '&', '^', '|']); @@ -9888,6 +9888,14 @@ class Emitter { } members.set('rest', 'rest'); memberReactive.add('rest'); + // `asChild` is the caller's word for rendering the projected + // element as the host; a declared prop of that name would take it + // off the rest map before the host line could read it. + if (declaredProps.includes('asChild')) { + throw this.positionedError(seen.get('asChild'), + "emitter: a component that extends a host cannot declare a prop named 'asChild' — `asChild` at a " + + 'call site renders the projected element as the host, and the key is reserved beside key, ref, and children', node); + } } // ── Emission ── @@ -11157,9 +11165,14 @@ class Emitter { // writes it, at mount or on a later update, as under a component // host. Listeners are not keys here — the line's and the caller's // both run. + isInheritedTarget(tag) { + const R = this.rstate; + return R.frame.extendsTag === tag && R.sink.kind === 'class' && R.frame.inheritedBound !== true; + } + bindInheritedTarget(node, tag, el, own) { const R = this.rstate; - if (R.frame.extendsTag !== tag || R.sink.kind !== 'class' || R.frame.inheritedBound === true) return; + if (!this.isInheritedTarget(tag)) return; R.frame.inheritedBound = true; this.renderLine(node, () => this.b.emit(`this._inheritedEl = ${el}`)); if (own.length > 0) { @@ -11211,9 +11224,16 @@ class Emitter { } const isSvg = R.svgDepth > 0 || SVG_ONLY_TAGS.has(tag); if (isSvg) R.svgEls.add(el); + // The inherited target under `asChild` is the projected element, + // handed back by the runtime in place of a fresh tag; every line + // after this one writes to whichever element the fork chose. + const adopts = this.isInheritedTarget(tag); this.renderLine(node, () => { - if (isSvg) this.b.emit(`${el} = document.createElementNS('${Emitter.SVG_NS}', `); - else this.b.emit(`${el} = document.createElement(`); + const self = this.renderSelf ?? 'this'; + this.b.emit(`${el} = `); + if (adopts) this.b.emit(`${self}._asChild ? ${self}._adoptChild() : `); + if (isSvg) this.b.emit(`document.createElementNS('${Emitter.SVG_NS}', `); + else this.b.emit(`document.createElement(`); // The TAG word's face position is a string literal — no symbol // to hover — so its span joins the intrinsics channel and the // editor serves the ruled answer from the record (a selector- @@ -11375,6 +11395,13 @@ class Emitter { try { this.renderChildrenOf(el, args, owner); } finally { this._textOwner = prevOwner; } } + renderAppend(el, v) { + this.renderLine(null, () => { + const guard = v === this.rstate.frame?.asChildSlot ? `if (!${this.renderSelf ?? 'this'}._asChild) ` : ''; + this.b.emit(`${guard}${el}.appendChild(${v})`); + }); + } + renderChildrenOf(el, args, owner) { for (let k = 0; k < args.length; k++) { const arg = args[k]; @@ -11398,13 +11425,13 @@ class Emitter { } else if (!this.renderOwnLineWord(el, child, block, j, owner)) { const v = this.renderNode(child); if (v == null) continue; - this.renderLine(null, () => this.b.emit(`${el}.appendChild(${v})`)); + this.renderAppend(el, v); } } } else if (block) { if (!this.renderOwnLineWord(el, block, [block], 0, owner)) { const v = this.renderNode(block); - if (v != null) this.renderLine(null, () => this.b.emit(`${el}.appendChild(${v})`)); + if (v != null) this.renderAppend(el, v); } } continue; @@ -11442,12 +11469,12 @@ class Emitter { } if (isHtmlTag(base || 'div')) { const v = this.renderNode(arg); - this.renderLine(null, () => this.b.emit(`${el}.appendChild(${v})`)); + this.renderAppend(el, v); continue; } if (isComponentName(base) && base === arg) { const v = this.renderChildComponent(arg, arg, []); - this.renderLine(null, () => this.b.emit(`${el}.appendChild(${v})`)); + this.renderAppend(el, v); continue; } if (/^[A-Za-z_$][\w$]*$/.test(arg) && this.resolveBareRead(arg) === null && !this.inScope(arg)) { @@ -11485,7 +11512,7 @@ class Emitter { } if (arg != null) { const v = this.renderNode(arg); - this.renderLine(null, () => this.b.emit(`${el}.appendChild(${v})`)); + this.renderAppend(el, v); } } } @@ -11625,6 +11652,9 @@ class Emitter { } this.claimSlot(markNode); const v = this.newRenderVar('slot'); + // Under `asChild` the projected element is the host, so the slot + // has no place to go: its append is guarded (renderAppend). + if (this.rstate.frame.extendsTag !== null && this.rstate.sink.kind === 'class') this.rstate.frame.asChildSlot = v; const slotSpan = this.ts ? this.wordSpanIn('slot', markNode ?? this.rstate.node) : null; this.renderLine(markNode, () => { const c = this.childrenReadText(); diff --git a/src/runtime/components.js b/src/runtime/components.js index 1f12034c..dec692d3 100644 --- a/src/runtime/components.js +++ b/src/runtime/components.js @@ -10,7 +10,9 @@ // and `static __extends` opens the rest // seam — undeclared props collect into the // reactive `rest` view and forward onto -// the inherited element) +// the inherited element; `asChild: true` +// there makes the projected element the +// inherited element) // __pushComponent(c) - make c the current component; returns prev // __popComponent(prev) - restore the previous component // setContext(key, value) - provide a context value on the current @@ -1016,6 +1018,32 @@ function __splitProps(ctor, props) { return rest; } +// `asChild` on an extends component: the projected element renders as +// the host. It rides the rest map so a component host forwards it to +// the part it constructs, and the part that binds a tag reads it here. +// The mode is fixed at construction: true or nothing, never a container. +function __asChildOf(ctor, rest) { + const value = rest?.asChild; + if (value == null || value === false) return false; + if (value === true) return true; + const shape = typeof value === 'object' && typeof value.read === 'function' ? 'a reactive value' : `${typeof value} ${String(value)}`; + throw new Error(`${ctor.name || 'component'}: asChild takes true or nothing, fixed at construction — got ${shape}`); +} + +// What `children` projects: the container's value when a declared +// `@children` holds one, else the node itself. +function __projected(children) { + return children != null && typeof children === 'object' && typeof children.read === 'function' ? children.value : children; +} + +function __describeProjection(node) { + if (node == null) return 'nothing'; + if (node.nodeType === 3) return 'text'; + if (node.nodeType === 8) return 'a comment'; + if (node.nodeType === 11) return `a fragment of ${node.childNodes.length} nodes`; + return typeof node === 'object' ? 'an object that is not a node' : `${typeof node} ${String(node)}`; +} + class __Component { constructor(props = {}) { // A living child released by its parent's HMR refresh answers the @@ -1083,6 +1111,7 @@ class __Component { // BEFORE _init so member initializers and effects can read it. this._rest = rest ?? {}; this.rest = __state(__restView(this._rest)); + this._asChild = __asChildOf(this.constructor, this._rest); } // The instance's owner frame: NON-nested (cross-component // teardown is the _children cascade, never frame nesting), alive @@ -1128,9 +1157,38 @@ class __Component { const current = this.children; if (current != null && typeof current === 'object' && typeof current.read === 'function' && 'value' in current) { current.value = value; - return; + } else { + this.children = value; } - this.children = value; + if (this._asChild && this._state === 'mounted') this._rehost(); + } + // Under `asChild` the host line reads the projected element in place + // of a fresh tag, so every line after it writes there. Exactly one + // element qualifies; a component child qualifies through its root. + _adoptChild() { + const child = __projected(this.children); + if (child != null && child.nodeType === 1) return child; + throw new Error( + `${this.constructor.name || 'component'}: asChild renders the projected element as the host, so the body must ` + + `be exactly one element — got ${__describeProjection(child)}`, + ); + } + // The view moves onto a new host: released as a patch releases it, + // the DOM kept since the host's place is the child's, and rebuilt by + // the ordinary create/setup path, which adopts the new element. A + // part above that adopted this one's root rebinds in turn. + _rehost() { + const prev = this._inheritedEl; + this._hmrRelease(false); + if (!this._hmrRebind()) return; + if (!this._mountCreate()) return; + this._mountSetup(); + this._rehostAbove(prev); + } + _rehostAbove(prev) { + const above = this._parent; + if (prev == null || this._root === prev || !above?._asChild || above._state !== 'mounted' || above._inheritedEl !== prev) return; + above._setChildren(this._root); } // The first-class prop updater: the child // emission's prop-updater effects call this instead of guessing at @@ -1173,6 +1231,9 @@ class __Component { _setRestProp(key, value) { if (key.startsWith('__bind_')) return; if (this._state === 'failed' || this._state === 'unmounted') return; + if (key === 'asChild') { + throw new Error(`${this.constructor.name || 'component'}: asChild is fixed at construction and takes no update`); + } this._rest || (this._rest = {}); if (value == null) delete this._rest[key]; else this._rest[key] = value; @@ -1199,7 +1260,7 @@ class __Component { // either host: rest never writes it, at mount or on an update. _applyInheritedProp(host, key, value) { if (this._state === 'failed' || this._state === 'unmounted') return; - if (!host || key === 'key' || key === 'ref' || key === 'children' || key.startsWith('__bind_')) return; + if (!host || key === 'key' || key === 'ref' || key === 'children' || key === 'asChild' || key.startsWith('__bind_')) return; if (this._inheritedOwn?.has(key)) return; // Each key holds at most ONE live writer: overwriting or deleting // a rest key disposes the previous container writer FIRST — and @@ -1452,7 +1513,7 @@ class __Component { // disposal — divert into the orphan pool while the release runs, so // the rebuilt view can adopt them (`__hmrAdopt`); whatever it does // not adopt drains once the rebuild settles. - _hmrRelease() { + _hmrRelease(removeDOM = true) { const report = (label, error) => console.error(`[Rip] ${label} error:`, error); try { if (this.beforeUnmount) this.beforeUnmount(); @@ -1464,7 +1525,7 @@ class __Component { } finally { this._hmrReleasing = false; } - this._detachDOM(report, true); + this._detachDOM(report, removeDOM); this._frame = __ownerFrame({ nested: false }); this._state = 'new'; } @@ -1514,6 +1575,7 @@ class __Component { if (this.constructor.__extends != null) { this._rest = rest ?? {}; this.rest.value = __restView(this._rest); + this._asChild = __asChildOf(this.constructor, this._rest); } } _hmrDrainOrphans(report) { @@ -1539,8 +1601,11 @@ class __Component { const insertBefore = nodes?.length ? nodes[nodes.length - 1].nextSibling : (this._root ? this._root.nextSibling : null); + // An adopting part's root is the child's element: it stays where + // the child put it, and the rebuild adopts it again in place. + const keepsHost = this._asChild === true; - this._hmrRelease(); + this._hmrRelease(!keepsHost); if (!this._hmrRebind()) return this; if (typeof this._create !== 'function') { @@ -1550,7 +1615,7 @@ class __Component { } if (!this._mountCreate()) return this; - try { + if (!keepsHost) try { // Resolve a CONNECTED parent. `mount()` often records a staging // DocumentFragment as `_target`; after the renderer commits that // fragment into #content, the fragment is empty and must not be @@ -1583,6 +1648,7 @@ class __Component { } this._mountSetup(); + this._rehostAbove(first); return this; } mount(target) { diff --git a/src/ts/components.js b/src/ts/components.js index ae4c9a5b..7756863d 100644 --- a/src/ts/components.js +++ b/src/ts/components.js @@ -926,6 +926,9 @@ export function propsTypeSegments(info, { road = 'dts' } = {}) { if (used.has(key) || info.lineOwned?.has(key)) continue; segs.push({ text: `; ${keyText(key)}?: ${valueOrContainer(t)}` }); } + // The mode that renders the projected element as the host: a plain + // boolean, fixed at construction, so no container arm. + segs.push({ text: '; asChild?: boolean' }); segs.push({ text: `; ${REST_TEMPLATES}` }); } segs.push({ text: ' }' }); diff --git a/test/corpus/expected/components.js b/test/corpus/expected/components.js index 55f72ffa..0979cd49 100644 --- a/test/corpus/expected/components.js +++ b/test/corpus/expected/components.js @@ -755,7 +755,7 @@ let FancyBtn = class extends __Component { this.label = __state(__given.__bind_label__ ?? __given.label ?? "go"); } _create() { - this._el0 = document.createElement('button'); + this._el0 = this._asChild ? this._adoptChild() : document.createElement('button'); this._inheritedEl = this._el0; this._applyRestToInheritedEl(); this._el0.setAttribute('data-part', 'FancyBtn'); diff --git a/test/rip/components.rip b/test/rip/components.rip index 97fc9be9..eb48eb47 100644 --- a/test/rip/components.rip +++ b/test/rip/components.rip @@ -3998,7 +3998,7 @@ code 'component extends: inherits tag, rest props forwarded', ''' _create() { this._el0 = document.createElement('fieldset'); this._el0.setAttribute('data-part', 'Test'); - this._el1 = document.createElement('input'); + this._el1 = this._asChild ? this._adoptChild() : document.createElement('input'); this._inheritedEl = this._el1; this._applyRestToInheritedEl(); this._el0.appendChild(this._el1); @@ -4007,6 +4007,57 @@ code 'component extends: inherits tag, rest props forwarded', ''' }; ''' +# Under `asChild` the host line adopts the projected element and the +# slot's append is skipped, since the slot is the host; a second element +# of the tag takes the plain line. +code 'component extends: the host line forks on asChild and the slot append is guarded', ''' + export Trigger = component extends button + render + button type: 'button' + slot + button "inner" + ''', ''' + export const Trigger = class extends __Component { + static __extends = 'button'; + _init(__given) { + } + _create() { + this._el0 = this._asChild ? this._adoptChild() : document.createElement('button'); + this._inheritedEl = this._el0; + this._inheritedOwn = new Set(["type"]); + this._applyRestToInheritedEl(); + this._el0.setAttribute('data-part', 'Trigger'); + this._el0.setAttribute('type', "button"); + this._slot1 = this.children instanceof Node ? this.children : (this.children != null ? document.createTextNode(String(this.children)) : document.createComment('')); + if (!this._asChild) this._el0.appendChild(this._slot1); + this._el2 = document.createElement('button'); + this._t0 = document.createTextNode("inner"); + this._el2.appendChild(this._t0); + this._el0.appendChild(this._el2); + return this._el0; + } + }; + ''' + +fail 'asChild is reserved on an extends component', ''' + Btn = component extends button + @asChild?: boolean + render + button + slot +''', "emitter: a component that extends a host cannot declare a prop named 'asChild'" + +test 'asChild rides rest and is read as the mode; a component with no host has no flag', ''' + A = component extends button + render + button + slot + B = component + render + div + [A.new({ asChild: true })._asChild, A.new({})._asChild, A.new({ asChild: true }).rest.value.asChild, B.new({})._asChild] +''', [true, false, true, undefined] + # ============================================================================== # Member initializer hoist — parenthetical multi-statement # ============================================================================== diff --git a/test/ui/components.test.js b/test/ui/components.test.js index 83b9a138..53c8157f 100644 --- a/test/ui/components.test.js +++ b/test/ui/components.test.js @@ -2432,7 +2432,7 @@ describe('`extends `: the rest-forwarding surface', () => { test('static __extends + the inherited-target binding lines (\'s order: create, inherited, data-part)', () => { const { code } = compile('Btn = component extends button\n @label := "b"\n render\n button\n = @label\n'); expect(code).toContain("static __extends = 'button';"); - const created = code.indexOf("this._el0 = document.createElement('button');"); + const created = code.indexOf("this._el0 = this._asChild ? this._adoptChild() : document.createElement('button');"); const bound = code.indexOf('this._inheritedEl = this._el0;'); const applied = code.indexOf('this._applyRestToInheritedEl();'); const part = code.indexOf("setAttribute('data-part', 'Btn')"); diff --git a/test/ui/runtime-components.test.js b/test/ui/runtime-components.test.js index 91ed9303..1318f6d4 100644 --- a/test/ui/runtime-components.test.js +++ b/test/ui/runtime-components.test.js @@ -2285,3 +2285,186 @@ describe('the component language surface (M12-B graduated boundary)', () => { expect(compile('x < ~load()').code).toBe('x < (~load());'); }); }); + +// `asChild` on an extends component: the projected element renders as +// the host. Compiled parts drive it, since the mode is the host line's +// fork; hmr builds, since the rebind is the patch machinery. +describe('asChild: the projected element is the host', () => { + const load = (src, names) => { + const { code } = fullCompile(src, { path: 'aschild.rip', runtimeDelivery: 'none', hmr: true }); + const body = code.replace(/^export /gm, ''); + const keys = Object.keys(RT); + return new Function(...keys, `${body}\nreturn { ${names} };`)(...keys.map((n) => RT[n])); + }; + const PART = `export Part = component extends button + open := false + el: HTMLElement | null := null + render + button + ref: el + type: 'button' + aria-expanded: if open then 'true' else 'false' + @click: (-> open = true) + slot +`; + const BUTTON = (cls) => `export Button = component extends button + @variant := 'primary' + render + button class: '${cls}', data-variant: variant + slot +`; + const APP = (cls) => `${PART} +${BUTTON(cls)} +export App = component + clicks := 0 + render + div + Part asChild, id: 'x', title: 't', @click: (-> clicks += 1) + Button variant: 'ghost', 'Go' +`; + const mountApp = (cls = 'a') => { + const mod = load(APP(cls), 'App, Part, Button'); + const target = document.createElement('main'); + const app = new mod.App({}); + app.mount(target); + const [button, part] = app._children; + return { mod, target, app, button, part }; + }; + + test('the host is the child component\'s root: the line\'s keys, its listener, the ref, the stamp, and rest all land there; the caller\'s listener adds; the bare word is the mode', () => { + const { target, app, button, part } = mountApp(); + const host = part._inheritedEl; + expect(host).toBe(button._root); + expect(part._root).toBe(host); + expect(part.el.value).toBe(host); + expect(serialize(target)).toBe('
'); + expect(host.childNodes.map((n) => n.nodeType)).toEqual([3]); + host.dispatchEvent({ type: 'click', bubbles: false }); + expect(host.getAttribute('aria-expanded')).toBe('true'); + expect(app.clicks.value).toBe(1); + expect(host.getAttribute('asChild')).toBeNull(); + expect(part._rest.asChild).toBe(true); + expect(part._asChild).toBe(true); + }); + + test('the line\'s keys stay the line\'s under the mode: a rest value for one is refused at mount and on update', () => { + const { Part } = load(PART, 'Part'); + const span = document.createElement('span'); + const part = new Part({ asChild: true, children: span, type: 'submit' }); + part.mount(document.createElement('main')); + expect(span.getAttribute('type')).toBe('button'); + part._updateProp('type', 'reset'); + expect(span.getAttribute('type')).toBe('button'); + part._updateProp('title', 'later'); + expect(span.getAttribute('title')).toBe('later'); + }); + + test('without the mode the same part builds its own tag and projects the child into it: byte-identical DOM to the rule before the mode', () => { + const { App, Part } = load(`${PART} +${BUTTON('a')} +export App = component + render + div + Part id: 'x' + Button 'Go' +`, 'App, Part'); + const target = document.createElement('main'); + new App({}).mount(target); + expect(serialize(target)).toBe('
'); + expect(new Part({}).rest.value.asChild).toBeUndefined(); + }); + + test('one element or a throw naming the part: a fragment, text, a comment, and no body are refused at mount', () => { + const { Part } = load(PART, 'Part'); + const mount = (children) => () => new Part({ asChild: true, children }).mount(document.createElement('main')); + const frag = document.createDocumentFragment(); + frag.appendChild(document.createElement('i')); + frag.appendChild(document.createElement('b')); + expect(mount(frag)).toThrow('Part: asChild renders the projected element as the host, so the body must be exactly one element — got a fragment of 2 nodes'); + expect(mount(document.createTextNode('x'))).toThrow('got text'); + expect(mount(document.createComment('rip:child-error: Button'))).toThrow('got a comment'); + expect(mount(undefined)).toThrow('got nothing'); + // The failed mount rolled back: the instance is terminal. + const failed = new Part({ asChild: true }); + expect(() => failed.mount(document.createElement('main'))).toThrow('got nothing'); + expect(failed._state).toBe('failed'); + }); + + test('asChild is fixed at construction: a container or a non-boolean is refused there, an update is refused, and a declared prop of the name rejects at compile', () => { + const { Part } = load(PART, 'Part'); + expect(() => new Part({ asChild: RT.__state(true) })).toThrow('Part: asChild takes true or nothing, fixed at construction — got a reactive value'); + expect(() => new Part({ asChild: 'yes' })).toThrow('got string yes'); + const part = new Part({ asChild: true, children: document.createElement('span') }); + part.mount(document.createElement('main')); + expect(() => part._updateProp('asChild', false)).toThrow('Part: asChild is fixed at construction and takes no update'); + expect(() => fullCompile('P = component extends button\n @asChild?: boolean\n render\n button\n slot\n', { path: 'p.rip', runtimeDelivery: 'none' })) + .toThrow("cannot declare a prop named 'asChild'"); + }); + + test('a rebuilt child rebinds: the part\'s writers leave the old element and land on the new one, the ref follows, and the cascade reaches a part adopted above', () => { + const { target, app, button, part } = mountApp('a'); + const host = part._inheritedEl; + host.dispatchEvent({ type: 'click', bubbles: false }); + expect(host.getAttribute('aria-expanded')).toBe('true'); + const next = load(APP('b'), 'App, Part, Button'); + expect(RT.__hmrClassify(button.constructor, next.Button)).toBe('patch'); + RT.__hmrPatch(button, next.Button); + const host2 = button._root; + expect(host2).not.toBe(host); + expect(part._inheritedEl).toBe(host2); + expect(part._root).toBe(host2); + expect(part.el.value).toBe(host2); + expect(serialize(target)).toBe('
'); + // The setup effect writes the new element only; the old one is inert. + part.open.value = false; + expect(host2.getAttribute('aria-expanded')).toBe('false'); + expect(host.getAttribute('aria-expanded')).toBe('true'); + // The line's listener moved with the view. + host2.dispatchEvent({ type: 'click', bubbles: false }); + expect(host2.getAttribute('aria-expanded')).toBe('true'); + // One rest writer per key, none leaked on the old element: a later + // rest update reaches the new host alone. + part._updateProp('title', 'moved'); + expect(host2.getAttribute('title')).toBe('moved'); + expect(host.getAttribute('title')).toBe('t'); + expect(part._state).toBe('mounted'); + // Two parts on one element: the outer part adopted the inner's root, + // and a rebuild of the child reaches both. + const nested = load(`${PART} +${BUTTON('a')} +export Outer = component extends button + render + button data-outer: 'y' + slot +export App = component + render + div + Outer asChild: true + Part asChild: true + Button 'Go' +`, 'App, Part, Button, Outer'); + const target2 = document.createElement('main'); + const app2 = new nested.App({}); + app2.mount(target2); + const [button2, part2, outer] = app2._children; + expect(outer._inheritedEl).toBe(button2._root); + expect(part2._inheritedEl).toBe(button2._root); + RT.__hmrPatch(button2, next.Button); + expect(part2._inheritedEl).toBe(button2._root); + expect(outer._inheritedEl).toBe(button2._root); + expect(serialize(target2)).toBe('
'); + }); + + test('a patch of the adopting part itself keeps the host in place and adopts it again', () => { + const { mod, target, button, part } = mountApp('a'); + const host = part._inheritedEl; + const next = load(APP('a').replace("type: 'button'", "type: 'button'\n data-v: '2'"), 'App, Part, Button'); + expect(RT.__hmrClassify(mod.Part, next.Part)).toBe('patch'); + RT.__hmrPatch(part, next.Part); + expect(part._inheritedEl).toBe(host); + expect(button._root).toBe(host); + expect(host.parentNode).toBe(target.childNodes[0]); + expect(host.getAttribute('data-v')).toBe('2'); + expect(target.childNodes[0].childNodes.length).toBe(1); + }); +}); From 60458316ce48c7c5c5e18af02772e64d76e3351a Mon Sep 17 00:00:00 2001 From: Philip Lindberg Date: Fri, 25 Sep 2026 10:38:32 +0100 Subject: [PATCH 4/5] docs: a changed module's importers patch with it, which is what keeps a parent's binding on a patched child --- docs/HMR.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/HMR.md b/docs/HMR.md index 0b4cbd33..ff4875e8 100644 --- a/docs/HMR.md +++ b/docs/HMR.md @@ -269,6 +269,15 @@ These are load-bearing invariants, not folklore: adopted this one's root rebinds in turn. A patch of an adopting part itself keeps the host in place for the same reason: it releases without detaching and skips the reinsertion. +9. **A changed module's importers patch with it.** A parent's `@event` + binding on a child component is a listener the parent's own + `_create` adds to the child's root, and a child's patch replaces + that root. The binding survives a child edit only because the + applier patches every module the loader's invalidation walk reaches, + the child first and each importer after it, so the parent's rebuild + attaches the listener to the new root. A patch of a child alone + (`__hmrPatch` on the child instance with its importers untouched) + leaves the binding on the detached root. --- From 3b55e5622cbbea22f2516ab3e3f869969f89db30 Mon Sep 17 00:00:00 2001 From: Philip Lindberg Date: Fri, 25 Sep 2026 15:06:58 +0100 Subject: [PATCH 5/5] components: class and style merge with the caller's on an extends host A key the host line sets is the line's, and rest never writes it. Two keys now merge instead, in two modes decided by whether the body reads the key back through @rest. In automatic mode a tag host's class write ends with the rest view's class read and its style merges by key, each as an effect since the caller's value may be reactive or arrive through _updateProp; a wrapper passes its line's class as [line, @rest.class] and its style through the same runtime merge, re-pushed by the updater effect, and the host merges that one value with its own line. A style key both sides set is refused, never resolved by precedence: a literal line style subtracts its keys on the props surface and admits no string, and a computed one is checked at each write by the runtime, which throws naming the part and the key. Reading @rest.class or @rest.style puts that key in the author's hands: no append, no merge. class and className are one key in the rest map, so a caller's className reaches a @rest.class read and the merge alike, and a line passing either spelling owns both. The rest-read scanner lives in render.js, since JS emission depends on it and the browser bundle stubs src/ts; it reads @rest., @rest['key'], and a destructuring pattern from @rest, never an object beside @rest in a call or an array. asChild stays out: a caller's class or style on an adopted host still lands through the runtime's rest writer, which replaces. The demo Button drops its classes prop, Choice passes class, and Icon extends svg so a caller's class reaches it the same way. --- dist/@rip/rip.js | 127 +++++- dist/@rip/rip.min.js | 466 ++++++++++----------- dist/@rip/rip.min.js.br | Bin 184524 -> 184987 bytes docs/TYPES.md | 2 +- packages/ui/README.md | 4 +- packages/ui/demo/app/components/button.rip | 2 - packages/ui/demo/app/components/icon.rip | 4 +- packages/ui/demo/app/components/page.rip | 2 +- packages/ui/demo/app/routes/_layout.rip | 4 +- src/emitter.js | 92 +++- src/render.js | 30 ++ src/runtime/components.js | 32 +- src/ts/components.js | 179 +++++--- test/rip/components.rip | 172 ++++++++ test/spawn/cli/check.test.js | 54 +++ test/toolchain/dts.test.js | 32 +- test/ui/runtime-components.test.js | 187 +++++++++ 17 files changed, 1061 insertions(+), 328 deletions(-) diff --git a/dist/@rip/rip.js b/dist/@rip/rip.js index 801e3374..3898a077 100644 --- a/dist/@rip/rip.js +++ b/dist/@rip/rip.js @@ -3335,6 +3335,35 @@ function rewriteRender(tokens, mintId, fail) { tokens[i] = out[i]; return tokens; } +var PATTERN_OPS = new Set(["=", "state", "readonly"]); +function restReadKeys(stmts) { + const reads = new Set; + const isNode = Array.isArray; + const isRestView = (n) => isNode(n) && n[0] === "." && n[1] === "this" && n[2] === "rest"; + const unquote = (k) => k.replace(/^"|"$/g, ""); + const scan = (n) => { + if (!isNode(n)) + return; + if (n[0] === "." && isRestView(n[1]) && typeof n[2] === "string") + reads.add(n[2]); + else if (n[0] === "[]" && isRestView(n[1]) && typeof n[2] === "string" && /^".*"$/.test(n[2])) + reads.add(unquote(n[2])); + else if (PATTERN_OPS.has(n[0]) && n.length === 3 && isNode(n[1]) && n[1][0] === "object" && isRestView(n[2])) { + for (const pair of n[1].slice(1)) + if (isNode(pair) && typeof pair[1] === "string") + reads.add(unquote(pair[1])); + } + for (const c of n) + scan(c); + }; + for (const st of stmts) + scan(st); + if (reads.has("class") || reads.has("className")) { + reads.add("class"); + reads.add("className"); + } + return reads; +} // src/implicit.js function applyInsertions(tokens, collect, mintId) { @@ -16160,7 +16189,7 @@ ${pad ?? ""}`); members.set("rest", "rest"); memberReactive.add("rest"); if (declaredProps.includes("asChild")) { - throw this.positionedError(seen.get("asChild"), "emitter: a component that extends a host cannot declare a prop named 'asChild' — `asChild: true` at a " + "call site renders the projected element as the host, and the key is reserved beside key, ref, and children", node); + throw this.positionedError(seen.get("asChild"), "emitter: a component that extends a host cannot declare a prop named 'asChild' — `asChild` at a " + "call site renders the projected element as the host, and the key is reserved beside key, ref, and children", node); } } if (this.scopes.length === 1 && typeof this._componentName === "string") { @@ -16189,7 +16218,8 @@ ${pad ?? ""}`); } if (extendsHost !== null) memberKinds.set("rest", { label: "rest", optional: false }); - const frame = { members, memberReactive, memberKinds, name: this._componentName, extendsTag, extendsComponent, plainWrites: new Map, renderPlainReads: new Set }; + const restReads = extendsHost !== null ? restReadKeys(stmts) : new Set; + const frame = { members, memberReactive, memberKinds, name: this._componentName, extendsTag, extendsComponent, restReads, plainWrites: new Map, renderPlainReads: new Set }; const ind = this.ind; const pad = " ".repeat(ind + 1); const ipad = pad + " "; @@ -17150,11 +17180,42 @@ ${pad ?? ""}`); const R = this.rstate; return R.frame.extendsTag === tag && R.sink.kind === "class" && R.frame.inheritedBound !== true; } + mergesRestKey(el, key) { + const R = this.rstate; + return R.frame.extendsTag !== null && R.frame.inheritedEl === el && !R.frame.restReads.has(key); + } + emitRestRead(key) { + this.b.emit(`${this.renderSelf ?? "this"}.rest.value.${key}`); + } + hostMergeKey(cleanKey) { + const R = this.rstate; + if (R.frame.extendsComponent === null) + return null; + if (cleanKey === "class" || cleanKey === "className") + return R.frame.restReads.has("class") ? null : "class"; + if (cleanKey === "style") + return R.frame.restReads.has("style") ? null : "style"; + return null; + } + emitHostMerge(merge, value) { + if (merge === "class") { + this.b.emit("["); + this.renderExpr(value); + this.b.emit(", "); + this.emitRestRead("class"); + this.b.emit("]"); + } else { + this.b.emit(`${this.renderSelf ?? "this"}._mergeRestStyle(`); + this.renderExpr(value); + this.b.emit(")"); + } + } bindInheritedTarget(node, tag, el, own) { const R = this.rstate; if (!this.isInheritedTarget(tag)) return; R.frame.inheritedBound = true; + R.frame.inheritedEl = el; this.renderLine(node, () => this.b.emit(`this._inheritedEl = ${el}`)); if (own.length > 0) { this.renderLine(node, () => this.b.emit(`this._inheritedOwn = new Set([${own.map((k) => JSON.stringify(k)).join(", ")}])`)); @@ -17251,6 +17312,8 @@ ${pad ?? ""}`); if (isSvg) R.svgDepth--; if (classes.length > 0) { + if (this.mergesRestKey(el, "class")) + R.pendingClassArgs.push(() => this.emitRestRead("class")); if (R.pendingClassArgs.length === 1) { this.renderLine(node, () => this.b.emit(isSvg ? `${el}.setAttribute('class', '${classes.join(" ")}')` : `${el}.className = '${classes.join(" ")}'`)); } else { @@ -17308,6 +17371,8 @@ ${pad ?? ""}`); this.renderChildren(el, children, node); if (isSvg) R.svgDepth--; + if (this.mergesRestKey(el, "class")) + R.pendingClassArgs.push(() => this.emitRestRead("class")); const parts = R.pendingClassArgs; const keys = R.pendingClassKeys ?? []; if (parts.length > 0) { @@ -17688,6 +17753,13 @@ ${pad ?? ""}`); props.push({ pair, key, fn: () => this.renderExpr(value) }); return; } + const merge = isHost ? this.hostMergeKey(cleanKey) : null; + if (merge !== null) { + this.checkCrossScopeLocals(value, pair); + props.push({ pair, key, fn: () => this.emitHostMerge(merge, value) }); + updaters.push({ pair, key, value, merge }); + return; + } this.addChildProp(props, updaters, pair, key, cleanKey, value); }; const rejectTagWord = (owner, word) => { @@ -18006,7 +18078,12 @@ ${this.replayPad}}` : " }"); }); line(() => this.b.emit(` ${elVar} = ${instVar}._root;`)); if (isHost) { - const own = [...seenKeys.keys()].filter((k) => k !== "children").map((k) => JSON.stringify(k)).join(", "); + const ownKeys = new Set([...seenKeys.keys()].filter((k) => k !== "children")); + if (ownKeys.has("class") || ownKeys.has("className")) { + ownKeys.add("class"); + ownKeys.add("className"); + } + const own = [...ownKeys].map((k) => JSON.stringify(k)).join(", "); line(() => this.b.emit(` ${self()}._inheritedInst = ${instVar};`)); line(() => this.b.emit(` ${self()}._inheritedOwn = new Set([${own}]);`)); } @@ -18092,11 +18169,14 @@ ${this.replayPad}}` : " }"); `); } }); - for (const { pair, key, value } of updaters) { + for (const { pair, key, value, merge = null } of updaters) { const cleanKey = key.startsWith('"') && key.endsWith('"') ? key.slice(1, -1) : key; this.renderEffect(pair, () => { this.b.emit(`if (${instVar}) ${instVar}._updateProp('${cleanKey}', `); - this.renderExpr(value); + if (merge !== null) + this.emitHostMerge(merge, value); + else + this.renderExpr(value); this.b.emit(");"); }, value); } @@ -18346,9 +18426,10 @@ ${this.replayPad}}` : " }"); (R.pendingClassKeys ??= []).push([extent[0], extent[0] + key.length]); } R.pendingClassArgs.push(() => site(this.renderExpr(value))); - } else if (this.renderReactive(value)) { + } else if (this.renderReactive(value) || this.mergesRestKey(el, "class")) { const isSvg = R.svgDepth > 0; const recv = this.tsElReceiver(el); + const merges = this.mergesRestKey(el, "class"); this.renderEffect(pair, () => { const clsx = this.runtimeName("__clsx"); recv.emit(); @@ -18363,6 +18444,10 @@ ${this.replayPad}}` : " }"); this.b.emit(` = ${clsx}(`); } site(this.renderExpr(value)); + if (merges) { + this.b.emit(", "); + this.emitRestRead("class"); + } this.b.emit(isSvg ? "));" : ");"); }, value); } else { @@ -18478,6 +18563,7 @@ ${this.replayPad}}` : " }"); } if (key === "style") { const recv = this.tsElReceiver(el); + const merges = this.mergesRestKey(el, "style"); const write = () => { this.b.emit("{ const __v"); site([this.b.offset - 3, this.b.offset]); @@ -18496,9 +18582,9 @@ ${this.replayPad}}` : " }"); this.renderExpr(value); this.b.emit(`; ${this.runtimeName("__style")}(`); recv.emit(); - this.b.emit(", __v); }"); + this.b.emit(merges ? `, ${this.renderSelf ?? "this"}._mergeRestStyle(__v)); }` : ", __v); }"); }; - if (this.renderReactive(value)) + if (merges || this.renderReactive(value)) this.renderEffect(pair, write, value); else this.renderLine(pair, write, false); @@ -26767,9 +26853,10 @@ var __BOOLEAN_ATTRS = new Set([ "shadowrootclonable", "shadowrootserializable" ]); +var __restKey = (key) => key === "className" ? "class" : key; var __restView = (rest) => new Proxy(rest, { get(map, key) { - const held = map[key]; + const held = map[typeof key === "string" ? __restKey(key) : key]; return held != null && typeof held === "object" && typeof held.read === "function" ? held.value : held; } }); @@ -26789,7 +26876,7 @@ function __splitProps(ctor, props) { if (declared.includes(key)) continue; if (extendsTag !== null) { - (rest ??= {})[key] = props[key]; + (rest ??= {})[__restKey(key)] = props[key]; continue; } throw new Error(`${ctor.name || "component"}: unknown prop '${key}' — declared props are ` + `[${declared.join(", ")}]`); @@ -26817,7 +26904,7 @@ function __describeProjection(node) { return "a comment"; if (node.nodeType === 11) return `a fragment of ${node.childNodes.length} nodes`; - return typeof node === "object" ? "a value that is no node" : `${typeof node} ${String(node)}`; + return typeof node === "object" ? "an object that is not a node" : `${typeof node} ${String(node)}`; } class __Component { @@ -26954,6 +27041,7 @@ class __Component { if (key === "asChild") { throw new Error(`${this.constructor.name || "component"}: asChild is fixed at construction and takes no update`); } + key = __restKey(key); this._rest || (this._rest = {}); if (value == null) delete this._rest[key]; @@ -26975,6 +27063,23 @@ class __Component { for (const key in this._rest) this._applyInheritedProp(this._inheritedEl, key, this._rest[key]); } + _mergeRestStyle(own) { + const rest = this.rest.value.style; + if (rest == null) + return own; + if (own == null) + return rest; + const name = this.constructor.name || "component"; + if (typeof own !== "object" || typeof rest !== "object") { + throw new Error(`${name}: style merges by key, and a string style has none — the host line's style and the caller's must both be objects`); + } + for (const key of Object.keys(rest)) { + if (Object.hasOwn(own, key)) { + throw new Error(`${name}: style key '${key}' is set by the host line and by the caller — a shared key is refused, never resolved by precedence`); + } + } + return { ...own, ...rest }; + } _applyInheritedProp(host, key, value) { if (this._state === "failed" || this._state === "unmounted") return; diff --git a/dist/@rip/rip.min.js b/dist/@rip/rip.min.js index 0b45566a..1fb99bda 100644 --- a/dist/@rip/rip.min.js +++ b/dist/@rip/rip.min.js @@ -1,216 +1,216 @@ -var R2=Object.defineProperty;var E2=(e)=>e;function k2(e,t){this[e]=E2.bind(null,t)}var Fe=(e,t)=>{for(var r in t)R2(e,r,{get:t[r],enumerable:!0,configurable:!0,set:k2.bind(t,r)})};class ye{constructor(e,t=""){this.path=t,this.text=e;let r=[0];for(let n=0;nthis.text.length)e=this.text.length;let t=this.lineStarts,r=0,n=t.length-1;while(r<=n){let i=r+n>>1;if(t[i]<=e)r=i+1;else n=i-1}return{line:n,col:e-t[n]}}offsetAt(e,t){if(e<0)return 0;if(e>=this.lineStarts.length)return this.text.length;let r=this.lineStarts[e],n=e+1r&&this.text.charCodeAt(n-1)===13)n--;let i=r+Math.max(0,t);return i>n?n:i}slice(e,t){return this.text.slice(e,t)}}var J={on:!1,n:0},An=()=>{if(J.on=typeof process<"u"&&!!process.env.RIP_COUNT_OPS,J.on)J.n=0;return J.on};class ii extends Error{constructor(e){super(e);this.name="TypeTextError"}}var jt=(e)=>String(e??"").trim(),Be=(e)=>String(e??""),vn=()=>{throw Error("rip: type-text rendering is unavailable in the browser")},On=()=>{throw Error("rip: type-text rendering is unavailable in the browser")},In=()=>()=>!1,$n=()=>new Set;function se(e){return String(e).replace(/([a-z0-9])([A-Z])/g,"$1_$2").toLowerCase()}function ni(e){return String(e).replace(/_([a-z])/g,(t,r)=>r.toUpperCase())}function si(e){return se(e)+"_id"}function tt(e){if(typeof e!=="string"||!/^[a-z][a-zA-Z0-9]*$/.test(e))return!1;if(/[A-Z]{2,}/.test(e))return!1;return!0}function ai(e){if(typeof e!=="string"||!/^[A-Z][a-zA-Z0-9]*$/.test(e))return!1;if(/[A-Z]{2,}/.test(e))return!1;return!0}function T2(e){return typeof e==="string"&&/^[a-z_][a-z0-9_]*$/.test(e)}function w2(e){return typeof e==="string"&&e.length>0&&!/[\u0000-\u001f\u007f".]/.test(e)}var oi={__proto__:null,mixin:"target",times:"none",softDelete:"none",belongsTo:"target",hasOne:"target",hasMany:"target",index:"columns",unique:"columns",idStart:"int",table:"name",tableWas:"name",primary:"field"},Dn=["idStart","table","tableWas","primary","times","softDelete"],xn=["belongsTo","hasOne","hasMany"],li={__proto__:null,column:"literal",was:"column"},Cn={__proto__:null,as:"property",foreignKey:"column",through:"model",targetKey:"column"};function ci(e,t,r){if(typeof r!=="string"||!r.length)return"'"+t+"' requires a non-empty string";if(e==="property"&&!tt(r))return"'"+t+"' is a property name — canonical camelCase, e.g. {"+t+": author}";if(e==="model"&&!ai(r))return"'"+t+"' is a model name — canonical PascalCase, e.g. {"+t+": Membership}";if(e==="column"&&!T2(r))return"'"+t+"' is a column name Rip generates — lowercase, digits and underscores "+"only, e.g. {"+t+': "author_id"}';if(e==="literal"&&!w2(r))return"'"+t+"' is a database column name — any spelling the database uses, but with "+"no dots, double quotes, or control characters";return null}var _2=new Set(["input","shape","mixin","enum","union","model"]);var N2=new Set(["beforeValidation","afterValidation","beforeSave","afterSave","beforeCreate","afterCreate","beforeUpdate","afterUpdate","beforeDestroy","afterDestroy","afterCommit","afterRollback"]),Pn=new Set(["integer","number","boolean","date","datetime"]),A2={__proto__:null,id:"integer",int:"integer",whole:"integer",float:"number",money:"integer",money_even:"integer",cents:"integer",decimal:"string",bool:"boolean",truthy:"boolean",falsy:"boolean",json:"json",hash:"json",array:"json",ids:{type:"integer",array:!0},string:"string",text:"string",name:"string",address:"string",date:"string",time:"string",time12:"string",email:"email",state:"string",zip:"zip",zipplus4:"string",ssn:"string",sex:"string",phone:"string",username:"string",ip:"string",mac:"string",url:"url",color:"string",uuid:"uuid",semver:"string",slug:"string"},v2=new Set(["string","email","url","phone","zip"]),O2=new Set(["TERMINATOR","INDENT","OUTDENT","=","COMPOUND_ASSIGN","RETURN","THROW","YIELD","AWAIT","EXPORT",",","(","[","{","CALL_START","PARAM_START","INDEX_START","->","=>",":","WHEN","LEADING_WHEN","THEN","IF","UNLESS","UNARY","UNARY_MATH"]),Ln=new Set(["defaultMaxString"]),L1=(e)=>e&&(e.kind==="IDENTIFIER"||e.kind==="PROPERTY"),rt=(e)=>e&&typeof e.value==="string"&&/^[a-z]+$/.test(e.value)&&(e.kind===e.value.toUpperCase()||e.kind==="LEADING_WHEN"||e.kind==="RELATION"||e.kind==="STATEMENT"),I2=(e)=>`__${e}__behavior`,H1=(e,t,r=!1)=>{if(e[t]?.kind!==":")return null;let n=e[t+1];if(!n||n.spaced)return null;if(L1(n)||r&&/^[a-z]+$/.test(n.value)&&n.kind===n.value.toUpperCase())return n;return null};function $2(e,t){if(typeof e?.start!=="number")throw e;t(e)}function Un(e,t,r,n,i=null){if(r.indexOf("schema")===-1)return;let s=[],a={defaultMaxString:null,tolerate:i},o=0,l=0;while(l0){l+=h;continue}if(C2(e,l,n)){l=P2(e,l,s,a,t,n,r);continue}s.push(c),l++}e.length=0;for(let c of s)e.push(c)}function D2(e,t,r,n,i){let s=e[t];if(!s||s.kind!=="IDENTIFIER"||s.value!=="schema")return 0;if(e[t+1]?.kind!==".")return 0;let a=e[t+2];if(!a||a.kind!=="PROPERTY")return 0;if(e[t+3]?.kind!=="=")return 0;let o=e[t-1];if(o&&o.kind!=="TERMINATOR"&&o.kind!=="INDENT"&&o.kind!=="OUTDENT")return 0;let l=a.value;if(!Ln.has(l))i(`unknown schema pragma 'schema.${l}' — known pragmas: ${[...Ln].join(", ")}`,a.start);if(n>0)i(`schema pragma 'schema.${l}' must be declared at file top level — inside a nested block it would leak into later top-level schemas`,a.start);let c=e[t+4];if(!c||c.kind!=="NUMBER")i(`pragma 'schema.${l}' requires a number literal — example: schema.${l} = 100`,(c??a).start);let h=Number(c.value);if(!Number.isFinite(h)||h<0||!Number.isInteger(h))i(`pragma 'schema.${l}' expects a non-negative integer (got ${c.value}); use 0 to disable`,c.start);r[l]=h===0?null:h;let f=t+5;if(e[f]?.kind==="TERMINATOR")f++;return f-t}var Vn=(e,t)=>{if(e[t]?.kind==="SYMBOL")return e[t];return e[t]?.kind===":"&&e[t].spaced?H1(e,t,!0):null},Wn=(e,t)=>e[t]?.kind==="SYMBOL"?1:2,x2=(e,t)=>{if(e[t]?.kind!==","||!L1(e[t+1])||e[t+1].value!=="on")return t;let r=t+2;if(e[r]?.kind===":")r++;while(r")s("inline schema bodies do not support '->' (methods/hooks/scopes/transforms) — use the indented form",R.start);else if(w===0&&(T==="EFFECT"||T==="!>"))s(`inline schema bodies do not support '${R.value}' (${T==="EFFECT"?"computed getters":"eager-derived fields"}) — use the indented form`,R.start);S++}while(S>b&&e[S-1].kind==="TERMINATOR")S--;if(d=e.slice(b,S),p=S,!d.length)s("inline schema body is empty — add '; field; …' entries or switch to the indented form",o.start);m=d[d.length-1].end}else{if(e[h]?.kind==="TERMINATOR")h++;if(e[h]?.kind!=="INDENT")s(`expected an indented schema body after 'schema${c?" :"+l:""}'`,o.start);let b=h,S=0,w=-1;for(let R=b;Rb.kind==="SYMBOL"?[{...b,kind:":",value:":",end:b.start+1},{...b,kind:"IDENTIFIER",start:b.start+1,spaced:!1}]:[b]);let g=L2(l,c,d,{schemaStart:o.start,defaultMaxString:n.defaultMaxString,tolerate:n.tolerate??null},s);if(u)g.adapterTokens=u;return g.start=(c??d[0]).start,g.end=m,g.primitiveSpans=[c,...d].filter((b)=>b&&typeof b.value==="string"&&/^[A-Za-z_$][\w$]*$/.test(b.value)).map((b)=>({value:b.value,sourceStart:b===c&&b.end-b.start===b.value.length+1?b.start+1:b.start,sourceEnd:b.end})),r.push({id:i(),kind:"SCHEMA",value:"schema",start:o.start,end:o.end,spaced:o.spaced}),r.push({id:i(),kind:"SCHEMA_BODY",value:g,start:g.start,end:g.end,spaced:!0}),p}function L2(e,t,r,n,i){let s=[],a=M2(r);if(e==="input"&&!t&&a.length>0&&H1(a[0],0))e="enum";if(e==="enum")for(let o of a)X2(o,s,i);else if(e==="union"){for(let c of a)q2(c,s,i);let o=s.filter((c)=>c.tag==="directive"&&c.name==="on").length,l=s.filter((c)=>c.tag==="union-member");if(o!==1)i(o===0?":union requires an '@on :field' discriminator — untagged unions are not supported":`:union takes exactly one '@on :field' discriminator (got ${o})`,n.schemaStart);if(l.length<2)i(`:union needs at least two constituent schemas (got ${l.length})`,n.schemaStart)}else{for(let o of a)j2(e,o,s,n,i);if(e==="model")V2(s,i);else for(let o of s){if(o.tag==="scope"||o.tag==="defaultScope")i(`:${e} schemas don't accept query scopes — '@${o.tag==="scope"?"scope":"defaultScope"}' is :model-only`,o.start);if(e==="mixin"&&(o.tag==="method"||o.tag==="computed"||o.tag==="derived"))i(`:mixin schemas are fields-only — '${o.name}' is a ${o.tag}; move it to a :shape or :model`,o.start);if(e==="mixin"&&o.tag==="ensure")i(":mixin schemas don't accept @ensure refinements — move the invariant to a :shape or :model that composes this mixin",o.start);if(e==="input"&&(o.tag==="method"||o.tag==="computed"))i(`:input schemas are fields-only — '${o.name}' is a ${o.tag}; use :shape or :model if you need behavior`,o.start);if(o.tag==="directive"&&o.name!=="mixin")i(`:${e} schemas only accept '@mixin Name'${e==="input"?" and '@ensure'":""} — '@${o.name}' is ${["times","softDelete","belongsTo","hasMany","hasOne","unique","index","idStart","table","tableWas","primary"].includes(o.name)?":model-only":"not a schema directive"}`,o.start)}}return{kind:e,entries:s,toJSON(){return this.kind}}}function M2(e){let t=[],r=[],n=0;for(let i of e){if(i.kind==="INDENT")n++;if(i.kind==="OUTDENT")n--;if(i.kind==="TERMINATOR"&&n===0){if(r.length)t.push(r),r=[];continue}r.push(i)}if(r.length)t.push(r);return t}function j2(e,t,r,n,i){let s=t[0];if(!s)return;if(s.kind==="@"){let U=t[1];if(!L1(U))i("expected a directive name after '@'",s.start);let r1=U.value;if(r1==="ensure"){let I=2,s1=!1;if(t[2]?.kind==="DAMMIT"&&!t[2].spaced)s1=!0,I=3;let e1=H2(t.slice(I),s,i);for(let K of e1)r.push({tag:"ensure",name:"ensure",message:K.message,field:K.field,fieldStart:K.fieldStart,async:s1,paramTokens:K.paramTokens,bodyTokens:K.bodyTokens,start:s.start});return}if(r1==="scope"){let I=U2(t.slice(2),s,i);r.push({tag:"scope",name:I.name,paramTokens:I.paramTokens,bodyTokens:I.bodyTokens,start:s.start});return}if(r1==="defaultScope"){let I=Hn(t.slice(2),s,"@defaultScope",i);if(I.paramTokens.length)i("@defaultScope takes no parameters — write '@defaultScope -> @where(...)'",s.start);r.push({tag:"defaultScope",name:"defaultScope",paramTokens:[],bodyTokens:I.bodyTokens,start:s.start});return}let Q=null,l1=t.slice(2);if(r1==="mixin"){let I=l1[0];if(!L1(I))i("@mixin requires a target name — '@mixin Timestamps'",s.start);if(l1.length>1)i("@mixin takes exactly one schema name",l1[1].start);Q=[{target:I.value}]}r.push({tag:"directive",name:r1,args:Q,argTokens:l1,start:s.start,nameStart:U.start});return}if(s.kind==="PROPERTY"){if(n.tolerate){try{Mn(e,s,t,r,i)}catch(U){$2(U,n.tolerate)}return}Mn(e,s,t,r,i);return}if(s.kind!=="IDENTIFIER"&&!rt(s))i(`unexpected ${s.kind} at schema top level — allowed: fields ('name! type'), directives ('@name'), methods ('name: -> body'), computed getters ('name: ~> body')`,s.start);let a=s.value;if(t[1]?.kind===":")i(`schema fields use 'name type' (space, no colon) — got '${a}:'`,t[1].start);let o=[],l=1;while(l{if(t[U]?.kind==="STRING"&&t[U].value.startsWith('"'))return{value:JSON.parse(t[U].value),bracketed:!1,start:t[U].start,end:t[U].end,next:U+1};if((t[U]?.kind==="["||t[U]?.kind==="INDEX_START")&&t[U+1]?.kind==="STRING"&&t[U+1].value.startsWith('"')&&(t[U+2]?.kind==="]"||t[U+2]?.kind==="INDEX_END"))return{value:JSON.parse(t[U+1].value),bracketed:!0,start:t[U].start,end:t[U+2].end,next:U+3};return null},S=void 0,w=null,R=b(l);if(m?.kind==="UNARY_MATH"&&m.value==="~"){let U=H1(t,l+1),r1=t[l+1];if(U){f=!0,u=U.value;let Q=A2[u];if(Q&&typeof Q==="object")c=Q.type,d=!0;else c=Q||"any";l+=3}else if(r1?.kind==="IDENTIFIER"&&!r1.spaced){if(!Pn.has(r1.value))i(`'~${r1.value}' is not coercible — built-in coercion exists for: ${[...Pn].join(", ")}; named coercers use a symbol ('~:${r1.value}'); otherwise write a transform ('${a}, -> …')`,r1.start);f=!0,c=r1.value,l+=2}else i("'~' in the type slot marks coercion and needs a type name ('~integer', '~date', …) or a registered coercer symbol ('~:ssn', …)",m.start);p=!0}else if(m?.kind==="IDENTIFIER")c=m.value,p=!0,l++;else if(R&&(!R.bracketed||t[R.next]?.kind==="|")){h=[];let U=(r1)=>{if(h.push(r1.value),r1.bracketed){if(w)i(`field '${a}' brackets more than one union member as its default — a field has one default`,r1.start);S=r1.value,w={start:r1.start,end:r1.end}}};U(R),l=R.next,p=!0;while(t[l]?.kind==="|"){let r1=b(l+1);if(!r1)i(`literal unions contain string literals only — '${t[l+1]?.kind??""}' is not allowed as a union member; use the '?' modifier for nullability`,t[l].start);U(r1),l=r1.next}c="literal-union"}let T=!1,F=(U)=>(t[U]?.kind==="["||t[U]?.kind==="INDEX_START")&&(t[U+1]?.kind==="]"||t[U+1]?.kind==="INDEX_END");if(F(l)){if(T=!0,l+=2,F(l))i(`field '${a}' — nested array types ('${c}[][]') are not supported: one '[]' validates element-wise; use 'json' or a '-> transform' for deeper nesting`,t[l].start)}if(f&&T)i(`coercion ('~${c}') does not apply to array types — coerce per-element with a transform instead`,m.start);if(d)T=!0;if(T&&h)i("array-of-literal-union is not supported — use 'string[]' for an array of strings",m.start);let L=m?.kind==="UNARY_MATH"&&m.value==="~"?t[g+1]:m,C=p?[L.start,t[l-1].end]:null,N=t.slice(l);if(p&&N[0]?.kind==="->")i(`field '${a}' has a transform after the type; a comma is required before '->' — write '${a} ${c}, -> …'`,N[0].start);let D=null,O=void 0,W=!1;if(w)O=S,W=!0;let H={};if(w)H.start=w.start,H.end=w.end;let G=null,k=null,v=null,j=!1,X=!1;if(N.length>0){if(N[0]?.kind===",")N=N.slice(1);if(N.length>=2&&N[0].kind==="INDENT"){let r1=0,Q=-1;for(let l1=0;l1"){let I=tl(Q),s1=Q[0].kind==="@"&&I===2;if(I>0&&!s1)i(`field '${a}' has a transform after other content; a comma is required before '->'`,Q[I].start);if(!s1){while(Q.length&&(Q[Q.length-1].kind==="OUTDENT"||Q[Q.length-1].kind==="TERMINATOR"))Q=Q.slice(0,-1);if(!Q.length)continue}}let l1=Q[0];if(l1.kind==="["||l1.kind==="INDEX_START"){if(W)i(`field '${a}' has more than one '[…]' default bracket`,l1.start);O=Q2(Q,a,i,H),W=!0}else if(l1.kind==="{"){if(e!=="model"&&e!=="mixin")i(`field attrs ('{…}') are persistence metadata — :model/:mixin-only ('{was: "old_column"}' annotates a column rename)`,l1.start);if(v)i(`field '${a}' has more than one '{…}' attrs bracket`,l1.start);v=F2(Q,a,i)}else if(J2(Q)){if(D)i(`field '${a}' has more than one range constraint — one 'min..max' per field`,l1.start);D=Z2(Q,a,i)}else if(l1.kind==="REGEX"&&Q.length===1){if(G)i(`field '${a}' has more than one regex constraint`,l1.start);G=el(l1,i)}else if(l1.kind==="->"){if(r1!==U.length-1)i(`transform '-> …' must be the last element on the field line for '${a}'`,l1.start);k=Q.slice(1)}else if(l1.kind==="@"){let I=L1(Q[1])?Q[1].value:null;if(e!=="model"&&e!=="mixin")i(`inline '@${I??""}' on field '${a}' is persistence metadata — :model/:mixin-only ('@unique' marks single-column uniqueness)`,l1.start);if(Q.length>2&&Q[2].kind==="->"){if(r1!==U.length-1)i(`transform '-> …' must be the last element on the field line for '${a}'`,Q[2].start);k=Q.slice(3),Q=Q.slice(0,2)}if(Q.length===2&&I==="unique"){if(j)i(`field '${a}' has more than one '@unique'`,l1.start);j=!0}else if(Q.length===2&&I==="primary"){if(e!=="model")i(`inline '@primary' on field '${a}' is :model-only — a mixin cannot declare the primary key`,l1.start);if(X)i(`field '${a}' has more than one '@primary'`,l1.start);X=!0}else i(`unknown inline attribute '@${I??""}' on field '${a}' — the inline attributes are '@unique' and '@primary'`,l1.start)}else i(`unexpected trailer for field '${a}' — expected '[…]' default, '/regex/', 'min..max' range, or '-> transform'`,l1.start)}}if(f&&k)i(`field '${a}' has both '~${c}' coercion and a '->' transform — a transform replaces coercion; coerce inside it instead`,s.start);let x={};if(D){if(D.min!==void 0)x.min=D.min;if(D.max!==void 0)x.max=D.max;if(D.min===void 0&&x.min===void 0&&o.includes("!"))x.min=1}if(G)x.regex=G;if(W)x.default=O;if(h&&x.default!==void 0&&!h.includes(x.default))i(`field '${a}' defaults to ${JSON.stringify(x.default)}, which is not a member of its literal union (${h.map((U)=>JSON.stringify(U)).join(" | ")})`,s.start);if(n.defaultMaxString!=null&&!G&&!h&&v2.has(c)&&x.max===void 0)x.max=n.defaultMaxString;if(x.min!==void 0&&x.max!==void 0&&x.min>x.max)i(`field '${a}' would have impossible constraints min=${x.min} > max=${x.max} after sugar is applied — write an explicit range or drop the conflicting pragma`,s.start);let Z=x.min!==void 0||x.max!==void 0||x.default!==void 0||x.regex!==void 0?x:null;r.push({tag:"field",name:a,modifiers:o,typeName:c,array:T,literals:h,coerce:f,coercer:u,constraints:Z,transformTokens:k,unique:j,primary:X,attrs:v,start:s.start,typeSpan:C,defaultSpan:H.start===void 0?null:[H.start,H.end]})}function hi(e,t,r,n){if(e[e.length-1]?.kind!=="}")n(`${r} — the '{…}' options bracket never closes`,e[0].start);let i=e.slice(1,-1).filter((a)=>a.kind!=="TERMINATOR"&&a.kind!=="INDENT"&&a.kind!=="OUTDENT"),s={};for(let a of Ie(i)){if(!a.length)continue;let o=a[0];if(!L1(o))n(`${r} options must be '{key: value}' pairs — got ${o.kind}`,o.start);let l=o.value,c=t[l];if(c===void 0)n(`unknown ${r} option '${l}' — known options: ${Object.keys(t).join(", ")}`,o.start);if(l in s)n(`${r} repeats option '${l}'`,o.start);let h=1;if(a[h]?.kind===":")h++;let f=a.slice(h);if(f.length!==1)n(`${r} option '${l}' takes a single value`,(f[0]??o).start);let u=f[0],d=c==="property"||c==="model",p;if(d){if(!L1(u)&&!rt(u)){let g=u.kind==="STRING"&&u.value.startsWith('"')?JSON.parse(u.value):null,b=g&&!ci(c,l,g)?g:c==="model"?"Membership":"author";n(`${r} option '${l}' names ${c==="model"?"a model":"a property"}, `+`so it is written BARE — '{${l}: ${b}}', not ${u.kind==="STRING"?u.value:`a ${u.kind}`}. Quoting would name a database identifier, which is a different thing`,u.start)}p=u.value}else{if(u.kind!=="STRING"||!u.value.startsWith('"'))n(`${r} option '${l}' names a database column, so it is QUOTED — `+`'{${l}: "${L1(u)?se(u.value):"author_id"}"}'. A bare name would be a Rip name, which is a different thing`,u.start);p=JSON.parse(u.value)}let m=ci(c,l,p);if(m)n(`${r} option ${m}; got '${p}'`,o.start);s[l]=p}if(!Object.keys(s).length)n(`${r} has an empty '{…}' options bracket`,e[0].start);return s}function F2(e,t,r){return hi(e,li,`field '${t}'`,r)}function B2(e,t,r){let n=hi(e,Cn,`@${t}`,r);if(n.through&&t==="belongsTo")r("@belongsTo option 'through' is for @hasMany/@hasOne — a @belongsTo holds its key in its own row, so it has nothing to read through",e[0].start);if(n.targetKey&&!n.through)r(`@${t} option 'targetKey' names a column on the join model, so it requires 'through' — '{through: Membership, targetKey: "team_id"}'`,e[0].start);return n}function U2(e,t,r){if(!e.length)r("@scope requires ':name, -> body' (or ':name, (args) -> body')",t.start);let n=H1(e,0);if(!n)r("@scope name must be a :symbol — '@scope :active, -> @where(active: true)'",e[0].start);let i=n.value,s=e[2],a=s&&!s.spaced&&s.start===n.end&&(s.value==="!"||s.value==="?");if(a||!/^[a-z][a-zA-Z0-9]*$/.test(i))r(`@scope name ':${i}${a?s.value:""}' must be a lowercase-first alphanumeric identifier — scopes chain as query-builder methods`,n.start);let o=e.slice(2);if(o[0]?.kind===",")o=o.slice(1);if(!o.length)r(`@scope :${i} is missing its body — '@scope :${i}, -> @where(...)'`,n.start);let l=Hn(o,n,`@scope :${i}`,r);return{name:i,paramTokens:l.paramTokens,bodyTokens:l.bodyTokens}}function Hn(e,t,r,n){if(!e.length)n(`${r}: expected '-> body' or '(args) -> body'`,t.start);let i=[],s=0,a=e[0];if(a.kind==="("||a.kind==="PARAM_START"||a.kind==="CALL_START"){let c=1;s=1;while(s0){let h=e[s].kind;if(h==="("||h==="PARAM_START"||h==="CALL_START")c++;if(h===")"||h==="PARAM_END"||h==="CALL_END"){if(c--,c===0){s++;break}}i.push(e[s]),s++}if(c!==0)n(`${r}: unclosed '(' in parameters`,a.start)}let o=e[s];if(o?.kind!=="->")n(`${r}: expected '->' ${i.length?"after parameters":"to start the body"}`,(o??t).start);let l=e.slice(s+1);if(!l.length)n(`${r}: function body is empty`,o.start);return{paramTokens:i,bodyTokens:l}}function V2(e,t){let r=new Set;for(let m of e){if(m.tag!=="directive")continue;let g=oi[m.name];if(g===void 0)t(`unknown directive '@${m.name}' on :model — legal: ${Object.keys(oi).map((b)=>"@"+b).join(", ")}, @ensure, @scope, @defaultScope`,m.nameStart??m.start);if(Dn.includes(m.name)){if(r.has(m.name))t(g==="none"?`duplicate '@${m.name}' — declared twice; a :model declares it once`:`duplicate '@${m.name}' — a :model declares it at most once (the second would silently override the first)`,m.nameStart??m.start);r.add(m.name)}if(m.name!=="mixin")m.args=W2(m,g,t)}if(e.some((m)=>m.tag==="directive"&&m.name==="mixin"))return;let i=new Set,s=new Map,a=new Map,o=new Map,l=(m,g,b,S)=>{if(i.has(g))t(`${s.get(g)} and ${b} both own column '${g}' — every table column has exactly one owner`,S);if(a.has(m))t(`${o.get(m)} and ${b} both own property '${m}' (columns '${a.get(m)}' and '${g}') — every property reads exactly one column`,S);i.add(g),s.set(g,b),a.set(m,g),o.set(m,b)},c=e.find((m)=>m.tag==="directive"&&m.name==="primary"),h=e.filter((m)=>m.tag==="field"&&m.primary);if(h.length>1)t(`both '${h[0].name}' and '${h[1].name}' declare '@primary' — a row has one identity`,h[1].start);if(h.length===1){if(c)t(`'@primary ${c.args[0].name}' and inline '@primary' on field '${h[0].name}' are two answers to one question — state it once`,c.start);c={tag:"directive",name:"primary",args:[{name:h[0].name}],start:h[0].start}}let f=c?c.args[0].column??se(c.args[0].name):"id",u=c?c.args[0].name:"id",d=e.find((m)=>m.tag==="field"&&m.name===u)??null,p=!!(c&&d);if(!c&&d)t(`field '${u}' collides with the runtime-managed primary key — a :model's ${u} is sequence-assigned. Drop the declaration, or write '@primary ${u}' to make it a caller-supplied natural key instead`,d.start);if(p){if(!d.modifiers?.includes("!"))t(`the primary key '${u}' is declared optional — a row's identity is never absent; declare it required ('${u}! string')`,d.start);if(d.array)t(`the primary key '${u}' is declared as an array — a primary key is one value`,d.start);let m=e.find((g)=>g.tag==="directive"&&g.name==="idStart");if(m)t(`@idStart seeds the sequence behind a runtime-managed primary key, but '${u}' is declared as a field, which makes it caller-supplied — there is no sequence to seed. Drop @idStart, or drop the field declaration`,m.start);if(c.args[0].column!==void 0&&c.args[0].column!==(d.attrs?.column??se(u)))t(`@primary names column '${c.args[0].column}' but field '${u}' reads a different one — state the column once, on the field`,c.start)}else l(u,f,"the primary key",c?.start??e[0]?.start??0);for(let m of e){if(m.tag!=="field")continue;l(m.name,m.attrs?.column??se(m.name),`field '${m.name}'`,m.start)}for(let m of e){if(m.tag!=="directive")continue;if(m.name==="times")l("createdAt","created_at","@times",m.start),l("updatedAt","updated_at","@times",m.start);else if(m.name==="softDelete")l("deletedAt","deleted_at","@softDelete",m.start);else if(m.name==="belongsTo"){let g=m.args[0],b=g.foreignKey??si(g.as??g.target);l(ni(b),b,`the @belongsTo ${g.target}${g.as?` (as ${g.as})`:""} relation`,m.start)}}for(let m of e){if(m.tag!=="directive"||m.name!=="index"&&m.name!=="unique")continue;let g=m.args[0].fields.map((b)=>a.get(b)??(i.has(b)?b:se(b)));g.forEach((b,S)=>{if(g.indexOf(b)!==S)t(`@${m.name} columns must be distinct after canonicalization: ${g.join(", ")}`,m.colTokens?.[S]?.start??m.start)}),g.forEach((b,S)=>{if(!i.has(b))t(`@${m.name}: unknown column '${m.args[0].fields[S]}' — the table has: ${[...i].sort().join(", ")}`,m.colTokens?.[S]?.start??m.start)})}}function W2(e,t,r){let n=e.argTokens??[],i=(s,a)=>r(`@${e.name}: ${a}`,s.start);switch(t){case"none":{if(n.length)i(n[0],"takes no arguments");return null}case"target":{let s=n[0];if(!L1(s))r(`@${e.name} requires a target name — '@${e.name} User'`,(s??{start:e.start}).start);let a=!1,o=1;if(n[o]?.kind==="?"&&!n[o].spaced)a=!0,o++;let l=null;if(n[o]?.kind===","&&n[o+1]?.kind==="{")l=B2(n.slice(o+1),e.name,r),o=n.length;if(oL1(c)||rt(c),l=0;if(H1(n,0)){let c=H1(n,0);s.push(c.value),a.push(c),l=2}else if(o(n[0]))s.push(n[0].value),a.push(n[0]),l=1;else if(n[0]?.kind==="["||n[0]?.kind==="INDEX_START"){let c=1;l=1;let h=[];while(l0){let f=n[l];if(f.kind==="["||f.kind==="INDEX_START")c++;if(f.kind==="]"||f.kind==="INDEX_END"){if(c--,c===0){l++;break}}if(c>=1)h.push(f);l++}if(c!==0)i(n[0],"unclosed '[' in the column list");for(let f of Ie(h)){let u=H1(f,0),d=u??(o(f[0])?f[0]:null);if(!d||f.length>(u?2:1))i(f[u?2:1]??f[0]??n[0],`column names are bare identifiers or :symbols — '@${e.name} [:a, :b]'`);s.push(d.value),a.push(d)}}if(!s.length)r(`@${e.name} requires a field name or list — '@${e.name} :email' or '@${e.name} [:a, :b]'`,(n[0]??{start:e.start}).start);if(l1)i(n[1],`takes one table name — unexpected ${n[1].kind}`);if(o);else{if(/[A-Z]{2,}/.test(a))r(`@${e.name} ${a}: a bare name is a LOGICAL name that Rip snake_cases, and consecutive capitals convert surprisingly ('${a}' → '${se(a)}'). Spell it 'MdmUser'-style, or name the table exactly by quoting it: '@${e.name} "${a}"'`,s.start);a=se(a)}return[{name:a}]}case"field":{let s=n[0];if(!L1(s)&&!rt(s))r(`@${e.name} requires a property name — '@${e.name} patientId'`,(s??{start:e.start}).start);let a=1,o=null;if(n[a]?.kind===","&&n[a+1]?.kind==="{")o=hi(n.slice(a+1),li,`@${e.name}`,r),a=n.length;if(a0){let d=r[a].kind;if(d==="("||d==="PARAM_START"||d==="CALL_START")u++;if(d===")"||d==="PARAM_END"||d==="CALL_END"){if(u--,u===0){a++;break}}o.push(r[a]),a++}if(u!==0)i(`'${s}': unclosed '(' in parameters`,r[2].start)}let l=r[a],c=null,h=-1;if(l?.kind==="->"||l?.kind==="EFFECT"||l?.kind==="!>")c=l.kind==="EFFECT"?"~>":l.kind,h=a+1;else if(L1(l)||l?.kind==="STRING"||l?.kind==="NUMBER")i(`schema fields use 'name type' (space, no colon) — got '${s}:'; for methods/computed use 'name: -> body' or 'name: ~> body'`,r[1].start);else i(`schema top-level '${s}:' must be followed by '->' (method), '~>' (computed getter), or '!>' (eager derived)`,r[1].start);let f=c==="~>"?"computed":c==="!>"?"derived":e==="model"&&N2.has(s)?"hook":"method";if(o.length&&f!=="method")i(`'${s}': ${f==="computed"?"computed getters (~>)":f==="derived"?"eager-derived fields (!>)":"lifecycle hooks"} take no parameters — only methods do`,r[1].start);n.push({tag:f,name:s,paramTokens:o,bodyTokens:r.slice(h),start:t.start})}function H2(e,t,r){let n=e;if(!n.length)r("@ensure requires 'message, (x) -> body' or a '[…]' array of pairs",t.start);let i=n[0];if(i.kind==="["||i.kind==="INDEX_START"){let a=G2(n,i,r),o=K2(a);if(o.length===0)r("@ensure […] must contain at least one 'message, fn' pair",i.start);return jn(o,i,r)}let s=Ie(n);if(s.length<2)r("@ensure inline form must be 'message, (x) -> body' — did you forget the comma?",i.start);if(s.length>3||s.length===3&&!Gn(s[1]))r(`@ensure inline form takes 'message[, :field], fn' (got ${s.length} comma-separated parts) — use '@ensure […]' for multiple refinements`,i.start);return jn(s,i,r)}var Gn=(e)=>e&&e.length===2&&H1(e,0)!==null;function jn(e,t,r){let n=[],i=0;while(i=e.length)r(`@ensure: missing function after message${a?" and :field":""}`,(s[0]??t).start);n.push(Y2(s,a,e[i++],t,r))}return n}function G2(e,t,r){let n=0,i=[];for(let s=0;s=2&&i[0].kind==="INDENT"&&i[i.length-1].kind==="OUTDENT"){let o=0,l=!1;for(let c=0;c=1)i.push(a)}r("@ensure: unclosed '['",t.start)}function K2(e){let t=[],r=[],n=0;for(let i of e){let s=i.kind;if(s==="("||s==="["||s==="{"||s==="CALL_START"||s==="INDEX_START"||s==="PARAM_START"||s==="INDENT")n++;if(s===")"||s==="]"||s==="}"||s==="CALL_END"||s==="INDEX_END"||s==="PARAM_END"||s==="OUTDENT")n--;if(n===0&&(s===","||s==="TERMINATOR")){if(r.length)t.push(r),r=[];continue}r.push(i)}if(r.length)t.push(r);return t}function Y2(e,t,r,n,i){if(!e?.length)i("@ensure: missing message (expected a string literal)",n.start);if(e.length!==1||e[0].kind!=="STRING"||!e[0].value.startsWith('"'))i("@ensure: each refinement's first element must be a string literal message",(e[0]??n).start);let s=e[0],a=JSON.parse(s.value),o=t?H1(t,0):null,l=t?o.value:null,c=o?.start??null;if(!r?.length)i("@ensure: missing function after message",s.start);let h=r[0];if(h.kind!=="("&&h.kind!=="PARAM_START")i("@ensure: expected '(args) -> body' after the message — predicates declare their parameter explicitly ('(u) -> …')",h.start);let f=1,u=1,d=[];while(u0){let g=r[u].kind;if(g==="("||g==="PARAM_START")f++;if(g===")"||g==="PARAM_END"){if(f--,f===0){u++;break}}d.push(r[u]),u++}if(f!==0)i("@ensure: unclosed '(' in predicate parameters",h.start);let p=r[u];if(p?.kind!=="->")i("@ensure: expected '->' after predicate parameters",(p??s).start);let m=r.slice(u+1);if(!m.length)i("@ensure: predicate function body is empty",p.start);return{message:a,field:l,fieldStart:c,paramTokens:d,bodyTokens:m}}function Kn(e,t,r,n=null){if(!e.length)return[];let i=z2(e,t,r,n);for(let s=i.length-1;s>=0&&i[s].type===null;s--)i[s].optional=!0;return i}function z2(e,t,r,n){let i=(s)=>s.kind!=="TERMINATOR"&&s.kind!=="INDENT"&&s.kind!=="OUTDENT";return Ie(e).map((s)=>{let a=s.filter((h)=>i(h)&&h.kind!=="TYPE"),o=a.length>=3&&(a[0].kind==="IDENTIFIER"||a[0].kind==="PROPERTY")&&a[1].kind===":";if(!o&&(a.length!==1||a[0].kind!=="IDENTIFIER"))r(`${t}: parameters must be plain identifiers, optionally typed ('name' or 'name: Type')`,(a[0]??s[0]).start);let l=o?[...s].filter(i).pop():null,c=o&&n!==null?jt(n.slice(a[1].end,l.end)).trim():null;return{name:a[0].value,type:c,optional:!1}})}function q2(e,t,r){let n=e[0];if(!n)return;if(n.kind==="@"){let i=e[1];if(!i||i.value!=="on")r(`:union bodies accept only '@on :field' and constituent schema names — '@${i?.value??""}' is not allowed`,(i??n).start);let s=H1(e,2);if(!s)r("@on requires the discriminator field as a symbol — '@on :kind'",(e[2]??i).start);if(e.length>4)r("@on takes exactly one :field symbol",e[4].start);t.push({tag:"directive",name:"on",args:[{field:s.value}],start:n.start});return}if(n.kind==="IDENTIFIER"&&e.length===1){t.push({tag:"union-member",name:n.value,start:n.start});return}r(`:union bodies accept only '@on :field' and bare constituent schema names (one per line) — got ${n.kind}${e.length>1?" followed by "+e[1].kind:""}`,n.start)}function X2(e,t,r){let n=e[0];if(!n)return;if(n.kind==="@")r(`:enum schemas don't accept '@${e[1]?.value??"directive"}' — enums hold only :symbol members`,n.start);let i=H1(e,0);if(!i)r(`enum member must be a :symbol — use ':${n.value??"name"}' for a bare member or ':${n.value??"name"} value' for a valued one`,n.start);let s=i.value,a=e[2];if(!a){t.push({tag:"enum-member",name:s,value:void 0,start:n.start});return}if(a.kind===":")r(`enum member ':${s}' — drop the ':' before the value; use ':${s} value'`,a.start);if(e.length>3&&!(e.length===4&&a.kind==="-"&&e[3].kind==="NUMBER"))r(`extra tokens after enum member ':${s}' value`,e[3].start);let o=a.kind==="-"&&e[3]?.kind==="NUMBER"?-Number(e[3].value):Yn(a,`enum member ':${s}' value`,r);t.push({tag:"enum-member",name:s,value:o,start:n.start})}function J2(e){return e.some((t)=>t.kind==="..")&&e.every((t)=>t.kind===".."||t.kind==="NUMBER"||t.kind==="-")}function Z2(e,t,r){let n=0,i=()=>{let l=1;if(e[n]?.kind==="-")l=-1,n++;let c=e[n++];if(c?.kind!=="NUMBER")r("range endpoints must be numeric literals",(c??e[0]).start);return l*Number(c.value)},s;if(e[n]?.kind!=="..")s=i();n++;let a;if(na)r(`range '${s}..${a}' is reversed — write the smaller endpoint first`,e[0].start);let o={};if(s!==void 0)o.min=s;if(a!==void 0)o.max=a;return o}function Q2(e,t,r,n={}){let i=e.slice(1,-1);if(i.length)n.start=i[0].start,n.end=i[i.length-1].end;let s=Ie(i);if(s.length!==1)r(s.length===2?"size/value ranges use 'min..max' syntax, not brackets — replace the bracket pair with a range":`the constraint bracket takes a single default value (got ${s.length} elements)`,e[0].start);let a=s[0];if(a.length===1&&a[0].kind==="REGEX")r(`regex constraints are written bare, not in brackets — replace '[${a[0].value}]' with '${a[0].value}'`,e[0].start);if(a.length===2&&a[0].kind==="-"&&a[1].kind==="NUMBER")return-Number(a[1].value);let o=H1(a,0);if(o&&a.length===2)return o.value;if(a.length!==1)r(`default values must be literals (number, string, boolean, null, :symbol) — field '${t}'`,a[0].start);return Yn(a[0],`field '${t}' default`,r)}function el(e,t){let r=/^\/((?:\\.|[^\\/])+)\/([a-z]*)$/.exec(e.value);if(!r)t(`invalid regex literal ${JSON.stringify(e.value)}`,e.start);try{return new RegExp(r[1],r[2])}catch(n){t(`invalid regex '${e.value}': ${n.message}`,e.start)}}function Yn(e,t,r){switch(e.kind){case"NUMBER":return Number(e.value);case"STRING":if(!e.value.startsWith('"'))r(`${t} must be a plain string literal (heredocs have no literal key form)`,e.start);return JSON.parse(e.value);case"BOOL":return e.value==="true";case"NULL":return null;case"UNDEFINED":return;default:r(`${t} must be a literal (number, string, boolean, null) — got ${e.kind}`,e.start)}}function Ie(e){let t=[],r=[],n=0;for(let i of e){let s=i.kind;if(s==="("||s==="["||s==="{"||s==="CALL_START"||s==="INDEX_START"||s==="PARAM_START"||s==="INDENT")n++;if(s===")"||s==="]"||s==="}"||s==="CALL_END"||s==="INDEX_END"||s==="PARAM_END"||s==="OUTDENT")n--;if(s===","&&n===0){if(r.length)t.push(r);r=[];continue}r.push(i)}if(r.length)t.push(r);return t}function tl(e){let t=0;for(let r=0;r")return r}return-1}function zn(e,t,r,n=null,i=null,s=!1,a=null,o=null){let l=[],c=(u)=>{if(l.length&&typeof l[l.length-1]==="string")l[l.length-1]+=u;else l.push(u)},h=(u,d=null)=>l.push({ts:u,span:d}),f=(u)=>l.push({body:u});if(c(`{kind: ${JSON.stringify(e.kind)}`),t)c(`, name: ${JSON.stringify(t)}`);if(c(", entries: ["),e.entries.forEach((u,d)=>{if(d>0)c(", ");il(u,r.get(d),i?.get(d)??null,c,h,s,a?.get(d)??null,o?.get(d)??null,f)}),c("]"),n)c(", adapter: "),f(n);return c("}"),l}var Ue=(e)=>typeof e==="string"?e:e.code;function qn(e,t,r,n){let i=[];return e.entries.forEach((s,a)=>{if(s.tag!=="derived"&&s.tag!=="computed"&&s.tag!=="method")return;let o=r.get(a);if(o===void 0)return;let l=n?.get(a)??null,c=Ue(o);for(let[h,f]of Xn(o,l).reverse())c=c.slice(0,h)+f+c.slice(h);i.push(`${s.name}: ${c}`)}),i.length?`const ${I2(t)} = {${i.join(", ")}};`:null}function Xn(e,t,r=!0){if(typeof e==="string")return[];let n=r?(e.annots??[]).map(([i,s])=>[i,s]):[];if(t!==null){let{code:i,thisAt:s}=e;n.push([s,`this: ${t}${i[s]===")"?"":", "}`])}return n.sort((i,s)=>i[0]-s[0])}function rl(e,t,r,n,i=!1){let s=Xn(e,t,i);if(s.length===0){r(Ue(e));return}let{code:a}=e,o=0;for(let[l,c]of s)r(a.slice(o,l)),n(c),o=l;r(a.slice(o))}function il(e,t,r,n,i,s=!1,a=null,o=null,l=n){switch(e.tag){case"computed":case"method":case"derived":case"hook":case"scope":case"defaultScope":n(`{tag: ${JSON.stringify(e.tag)}, name: ${JSON.stringify(e.name)}, fn: `),rl(t,r,l,i,s),n("}");return;default:let c={},h=nl(e,t,c),f=[];if(s&&a!==null&&c.defaultEnd!==void 0)f.push({at:c.defaultEnd,ts:` satisfies ${a}`,span:e.defaultSpan??null});if(s&&e.tag==="field"&&t!==void 0&&typeof t!=="string"&&Ue(t).startsWith("it",t.thisAt)){let d=Ue(t);f.push({at:h.length-1-d.length+t.thisAt+2,ts:": any"})}if(s&&e.tag==="ensure"&&o!==null&&c.fnAt!==void 0&&typeof t!=="string"&&t!==void 0){let d=/^[A-Za-z_$][\w$]*/.exec(Ue(t).slice(t.thisAt))?.[0];if(d)f.push({at:c.fnAt+t.thisAt+d.length,ts:`: ${o}`})}let u=0;for(let d of f)n(h.slice(u,d.at)),i(d.ts,d.span??null),u=d.at;n(h.slice(u))}}function nl(e,t,r={}){if(t!==void 0)t=Ue(t);switch(e.tag){case"field":{let n=['tag: "field"',`name: ${JSON.stringify(e.name)}`,`modifiers: ${JSON.stringify(e.modifiers)}`,`typeName: ${JSON.stringify(e.typeName)}`,`array: ${e.array?"true":"false"}`];if(e.unique)n.push("unique: true");if(e.primary)n.push("primary: true");if(e.literals)n.push(`literals: ${JSON.stringify(e.literals)}`);if(e.coerce){if(n.push("coerce: true"),e.coercer)n.push(`coercer: ${JSON.stringify(e.coercer)}`)}if(e.constraints){let i=[];if(e.constraints.min!==void 0)i.push(`min: ${Ft(e.constraints.min)}`);if(e.constraints.max!==void 0)i.push(`max: ${Ft(e.constraints.max)}`);let s=-1;if(e.constraints.default!==void 0)s=i.length,i.push(`default: ${Ft(e.constraints.default)}`);if(e.constraints.regex!==void 0)i.push(`regex: ${e.constraints.regex.toString()}`);if(i.length){if(s>=0){let a=`{${n.join(", ")}, constraints: {`;r.defaultEnd=a.length+i.slice(0,s+1).join(", ").length}n.push(`constraints: {${i.join(", ")}}`)}}if(e.attrs)n.push(`attrs: {${Object.keys(e.attrs).sort().map((i)=>`${i}: ${Ft(e.attrs[i])}`).join(", ")}}`);if(t)n.push(`transform: ${t}`);return`{${n.join(", ")}}`}case"directive":{let n=['tag: "directive"',`name: ${JSON.stringify(e.name)}`];if(e.args){if(e.name==="mixin"||xn.includes(e.name)){let i=e.args[0];n.push(`args: [{target: ${JSON.stringify(i.target)}${i.optional?", optional: true":""}${i.as?`, as: ${JSON.stringify(i.as)}`:""}${i.foreignKey?`, foreignKey: ${JSON.stringify(i.foreignKey)}`:""}${i.through?`, through: ${JSON.stringify(i.through)}`:""}${i.targetKey?`, targetKey: ${JSON.stringify(i.targetKey)}`:""}}]`)}else if(e.name==="primary")n.push(`args: [{name: ${JSON.stringify(e.args[0].name)}${e.args[0].column?`, column: ${JSON.stringify(e.args[0].column)}`:""}}]`);else if(e.name==="on")n.push(`args: [{field: ${JSON.stringify(e.args[0].field)}}]`);else if(e.name==="unique"||e.name==="index")n.push(`args: [{fields: ${JSON.stringify(e.args[0].fields)}}]`);else if(e.name==="idStart")n.push(`args: [{value: ${e.args[0].value}}]`);else if(e.name==="table"||e.name==="tableWas")n.push(`args: [{name: ${JSON.stringify(e.args[0].name)}}]`)}return`{${n.join(", ")}}`}case"ensure":{let n=['tag: "ensure"',`message: ${JSON.stringify(e.message)}`];r.fnAt=`{${n.join(", ")}, fn: `.length;let i=[...n,`fn: ${t}`];if(e.field)i.push(`field: ${JSON.stringify(e.field)}`);if(e.async)i.push("async: true");return`{${i.join(", ")}}`}case"enum-member":{let n=['tag: "enum-member"',`name: ${JSON.stringify(e.name)}`];if(e.value!==void 0)n.push(`value: ${JSON.stringify(e.value)}`);return`{${n.join(", ")}}`}case"union-member":return`{tag: "union-member", name: ${JSON.stringify(e.name)}}`;default:throw Error(`schema: unknown entry tag '${e.tag}'`)}}function Ft(e){if(e===null)return"null";if(e===void 0)return"undefined";if(typeof e==="string")return JSON.stringify(e);return String(e)}var sl=new Set(["pick","omit","partial","required","extend"]);function W1(e){return e&&e.valueOf?e.valueOf():e}function Jn(e){return e.entries.some((t)=>t.tag==="directive"&&t.name==="mixin")}function al(e){return ni(e.foreignKey??si(e.as??e.target))}function ol(e){if(Jn(e))return null;let t=new Map;for(let a of e.entries)if(a.tag==="field")t.set(a.name,a);if(e.kind!=="model")return t;let r=(a,o,l)=>{if(!t.has(a))t.set(a,{tag:"field",name:a,modifiers:l?["!"]:["?"],typeName:o,array:!1})},n=!1,i=!1,s=[];for(let a of e.entries){if(a.tag!=="directive")continue;if(a.name==="times")n=!0;else if(a.name==="softDelete")i=!0;else if(a.name==="belongsTo"){let o=a.args&&a.args[0];if(o&&o.target)s.push({fk:al(o),required:o.optional!==!0})}}if(r("id","integer",!0),n)r("createdAt","datetime",!0),r("updatedAt","datetime",!0);if(i)r("deletedAt","datetime",!1);for(let{fk:a,required:o}of s)r(a,"integer",o);return t}function ll(e){if(Jn(e))return null;let t=new Map;for(let r of e.entries)if(r.tag==="field")t.set(r.name,r);return t}function Fn(e,t){let r=e.modifiers.filter((i)=>i!==(t==="partial"?"!":"?")),n=t==="partial"?"?":"!";if(!r.includes(n))r=[...r,n];return{...e,modifiers:r}}function cl(e,t,r){switch(t.method){case"pick":{let n=new Map;for(let i of t.keys){if(!e.has(i))return null;n.set(i,e.get(i))}return n}case"omit":{let n=new Set(t.keys),i=new Map;for(let[s,a]of e)if(!n.has(s))i.set(s,a);return i}case"partial":{let n=new Map;for(let[i,s]of e)n.set(i,Fn(s,"partial"));return n}case"required":{let n=new Set(t.keys),i=new Map;for(let[s,a]of e)i.set(s,n.has(s)?Fn(a,"required"):a);return i}case"extend":{let n=t.otherDescriptor||r.get(t.otherName);if(!n)return null;let i=ll(n);if(!i)return null;let s=new Map(e);for(let[a,o]of i){if(s.has(a))return null;s.set(a,o)}return s}default:return null}}function hl(e,t,r){let n=ol(e);if(!n)return null;for(let i of t)if(n=cl(n,i,r),!n)return null;return{kind:"shape",entries:[...n.values()]}}function fl(e){let t=[],r=e;while(!0){if(!Array.isArray(r))return null;let n=r[0];if(!Array.isArray(n))return null;if(W1(n[0])!==".")return null;let i=W1(n[2]);if(!sl.has(i))return null;let s=r.slice(1),a;if(i==="partial"){if(s.length)return null;a={method:i}}else if(i==="extend"){if(s.length!==1)return null;let c=s[0];if(Array.isArray(c)){let h=W1(c[0])==="schema"&&c.length===2&&c[1]&&typeof c[1]==="object"&&Array.isArray(c[1].entries)?c[1]:null;if(!h||h.kind!=="shape"&&h.kind!=="input")return null;a={method:i,otherDescriptor:h}}else{let h=W1(c);if(typeof h!=="string"||!/^[A-Za-z_$][\w$]*$/.test(h))return null;a={method:i,otherName:h}}}else{let c=ul(s);if(!c||!c.length)return null;a={method:i,keys:c}}t.unshift(a);let o=n[1];if(Array.isArray(o)){r=o;continue}let l=W1(o);if(typeof l!=="string")return null;return{base:l,ops:t}}}function ul(e){let t=[];for(let r of e)if(Array.isArray(r)){if(W1(r[0])!=="array")return null;for(let n=1;n{r[2]=["schema",t]})}var Bt=new Set(["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","link","main","map","mark","menu","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","script","search","section","select","slot","small","source","span","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"]),Ve=new Set(["a","animate","animateMotion","animateTransform","circle","clipPath","defs","desc","ellipse","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","foreignObject","g","image","line","linearGradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tspan","use","view"]),$e=new Set([...Bt,...Ve]),fi=new Set([...Ve].filter((e)=>!Bt.has(e))),Ut=new Set(["abort","animationcancel","animationend","animationiteration","animationstart","auxclick","beforeinput","beforematch","beforetoggle","blur","cancel","canplay","canplaythrough","change","click","close","command","compositionend","compositionstart","compositionupdate","contextlost","contextmenu","contextrestored","copy","cuechange","cut","dblclick","drag","dragend","dragenter","dragleave","dragover","dragstart","drop","durationchange","emptied","ended","error","focus","focusin","focusout","formdata","fullscreenchange","fullscreenerror","gotpointercapture","input","invalid","keydown","keypress","keyup","load","loadeddata","loadedmetadata","loadstart","lostpointercapture","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","paste","pause","play","playing","pointercancel","pointerdown","pointerenter","pointerleave","pointermove","pointerout","pointerover","pointerrawupdate","pointerup","progress","ratechange","reset","resize","scroll","scrollend","securitypolicyviolation","seeked","seeking","select","selectionchange","selectstart","slotchange","stalled","submit","suspend","timeupdate","toggle","touchcancel","touchend","touchmove","touchstart","transitioncancel","transitionend","transitionrun","transitionstart","volumechange","waiting","webkitanimationend","webkitanimationiteration","webkitanimationstart","webkittransitionend","wheel"]),Qn=new Set(["disabled","hidden","readonly","required","checked","selected","autofocus","autoplay","controls","loop","muted","multiple","novalidate","open","reversed","defer","async","formnovalidate","allowfullscreen","inert","ismap","nomodule","playsinline","default","itemscope","alpha","shadowrootdelegatesfocus","shadowrootclonable","shadowrootserializable"]),De=new Set(["accesskey","autocapitalize","autocorrect","autofocus","class","contenteditable","dir","draggable","enterkeyhint","hidden","id","inert","inputmode","is","itemid","itemprop","itemref","itemscope","itemtype","lang","nonce","popover","role","slot","spellcheck","style","tabindex","title","translate","writingsuggestions"]),it={__proto__:null,a:["href","target","download","ping","rel","hreflang","type","referrerpolicy"],area:["alt","coords","shape","href","target","download","ping","rel","referrerpolicy"],audio:["src","crossorigin","preload","autoplay","loop","muted","controls"],base:["href","target"],blockquote:["cite"],button:["command","commandfor","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","name","popovertarget","popovertargetaction","type","value"],canvas:["width","height"],col:["span"],colgroup:["span"],data:["value"],del:["cite","datetime"],details:["name","open"],dialog:["open","closedby"],embed:["src","type","width","height"],fieldset:["disabled","form","name"],form:["accept-charset","action","autocomplete","enctype","method","name","novalidate","rel","target"],iframe:["src","srcdoc","name","sandbox","allow","allowfullscreen","width","height","referrerpolicy","loading"],img:["alt","src","srcset","sizes","crossorigin","usemap","ismap","width","height","referrerpolicy","decoding","loading","fetchpriority"],input:["accept","alpha","alt","autocomplete","checked","colorspace","dirname","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","height","list","max","maxlength","min","minlength","multiple","name","pattern","placeholder","popovertarget","popovertargetaction","readonly","required","size","src","step","type","value","width"],ins:["cite","datetime"],label:["for"],li:["value"],link:["href","crossorigin","rel","media","integrity","hreflang","type","referrerpolicy","sizes","imagesrcset","imagesizes","as","blocking","disabled","fetchpriority"],map:["name"],meta:["name","http-equiv","content","charset","media"],meter:["value","min","max","low","high","optimum"],object:["data","type","name","form","width","height"],ol:["reversed","start","type"],optgroup:["disabled","label"],option:["disabled","label","selected","value"],output:["for","form","name"],progress:["value","max"],q:["cite"],script:["src","type","nomodule","async","defer","crossorigin","integrity","referrerpolicy","blocking","fetchpriority"],select:["autocomplete","disabled","form","multiple","name","required","size"],slot:["name"],source:["type","media","src","srcset","sizes","width","height"],style:["media","blocking"],table:["align","bgcolor","border","cellpadding","cellspacing","width"],tbody:["align","valign"],td:["colspan","rowspan","headers","align","bgcolor","height","nowrap","valign","width"],template:["shadowrootmode","shadowrootdelegatesfocus","shadowrootclonable","shadowrootserializable"],tfoot:["align","valign"],textarea:["autocomplete","cols","dirname","disabled","form","maxlength","minlength","name","placeholder","readonly","required","rows","wrap"],th:["colspan","rowspan","headers","scope","abbr","align","bgcolor","height","nowrap","valign","width"],thead:["align","valign"],time:["datetime"],tr:["align","bgcolor","valign"],track:["default","kind","label","src","srclang"],video:["src","crossorigin","poster","preload","autoplay","playsinline","loop","muted","controls","width","height"]};for(let e in it)it[e]=new Set(it[e]);var nt=new Set(["id","class","style","lang","tabindex","href","pathLength","crossorigin","transform","viewBox","preserveAspectRatio","xmlns","x","y","x1","y1","x2","y2","cx","cy","r","rx","ry","width","height","d","points","dx","dy","rotate","fill","fill-opacity","fill-rule","stroke","stroke-width","stroke-linecap","stroke-linejoin","stroke-dasharray","stroke-dashoffset","stroke-opacity","stroke-miterlimit","opacity","clip-path","clip-rule","mask","filter","color","display","visibility","pointer-events","vector-effect","dominant-baseline","text-anchor","font-family","font-size","font-weight","font-style","letter-spacing","offset","stop-color","stop-opacity","gradientUnits","gradientTransform","spreadMethod","patternUnits","patternContentUnits","patternTransform","markerWidth","markerHeight","refX","refY","orient","markerUnits","maskUnits","maskContentUnits","clipPathUnits","filterUnits","primitiveUnits","in","in2","result","stdDeviation","values","type","mode","operator","radius","scale","baseFrequency","numOctaves","seed","dur","repeatCount","begin","end","from","to","attributeName","keyTimes","keySplines","calcMode","restart","min","max"]);function ui(e){let t=String(e).toLowerCase(),r=new Set(De),n=it[t];if(n)for(let i of n)r.add(i);if(Ve.has(String(e)))for(let i of nt)r.add(i);return[...r]}function ml(e,t){if(Math.abs(e.length-t.length)>2)return 3;let r=Array.from({length:t.length+1},(n,i)=>i);for(let n=1;n<=e.length;n++){let i=[n];for(let s=1;s<=t.length;s++)i[s]=Math.min(r[s]+1,i[s-1]+1,r[s-1]+(e[n-1]===t[s-1]?0:1));r=i}return r[t.length]}function es(e,t){let r=ui(e),n=String(t).toLowerCase(),i=r.find((l)=>l.toLowerCase()===n);if(i!==void 0&&i!==t)return i;if(String(t).length<3)return null;let s=null,a=3,o=!1;for(let l of r){if(l===String(t))continue;let c=ml(String(t),l);if(c=e.length)return null;if(!j1.test(e[t]))return null;let r=t+1;while(r$e.has(String(e).split("#")[0]),K1=(e)=>typeof e==="string"&&pl.test(e),mi=(e)=>Rl(e)||K1(e);function Vt(e){if(!Array.isArray(e)||e[0]!=="."||e.length!==3||typeof e[2]!=="string")return null;let t=[e[2]],r=e[1];while(Array.isArray(r)){if(r[0]!=="."||r.length!==3||typeof r[2]!=="string")return null;t.push(r[2]),r=r[1]}if(typeof r!=="string"||r==="this"||!Z1(r))return null;return t.push(r),t.reverse().join(".")}var pi=(e)=>Array.isArray(e)&&K1(e[2])?Vt(e):null,Wt=(e)=>e.split(".")[0];function ss(e,t,r){let n=!1;for(let G of e)if(G.kind==="RENDER"){n=!0;break}if(!n)return e;let i=[],s=(G,k,v,j={})=>{let{at:X,...x}=j,Z=X??v.end;return{id:t(),kind:G,value:k,start:Z,end:Z,spaced:!1,newLine:!1,generated:!0,origin:v.id,...x}},a=!1,o=0,l=0,c=[],h=[],f=[],u=(G,k,v)=>k{let x=1,Z=k;while(Z>=0&&x>0){if(J.on)J.n++;let U=u(G,Z,X)?.kind;if(U===v)x++;else if(U===j)x--;if(x>0)Z--}return Z},p=(G)=>{let k=i.length;while(k>0&&u(i,k,G)?.kind==="OUTDENT")k=d(i,k-1,"OUTDENT","INDENT",G);while(k>0){if(J.on)J.n++;let j=i[k-1].kind;if(j==="TERMINATOR"||j==="RENDER")break;if(j==="OUTDENT"){k=d(i,k-2,"OUTDENT","INDENT",G);continue}if(j==="INDENT"){let X=u(i,k,G)?.kind;if(X==="CALL_END"||X===")"){k=d(i,k-1,X,X==="CALL_END"?"CALL_START":"(",G);continue}break}if(j==="CALL_END"||j===")"){k=d(i,k-2,j,j==="CALL_END"?"CALL_START":"(",G);continue}if(j==="INTERPOLATION_END"){k=d(i,k-2,"INTERPOLATION_END","INTERPOLATION_START",G);continue}if(j==="STRING_END"){k=d(i,k-2,"STRING_END","STRING_START",G);continue}k--}let v=u(i,k,G);return v?.kind==="IDENTIFIER"&&(mi(v.value)||(k===0||["INDENT","TERMINATOR","RENDER"].includes(i[k-1]?.kind)))},m=()=>{let G=0;for(let k=i.length-1;k>=0;k--){if(J.on)J.n++;let v=i[k].kind;if(is.has(v))G++;else if(rs.has(v)){if(G===0)return 1;G--}else if(v==="TERMINATOR"||v==="RENDER"||v==="INDENT"||v==="OUTDENT")break}return 0},g=(G)=>{let k=i[i.length-1];if(!k)return!1;if(m()!==0)return!1;let v=k.kind;if((v===","||v==="IDENTIFIER"||v==="PROPERTY")&&p(G))return!0;if((v==="INDENT"||v==="TERMINATOR")&&h.includes(l))return!0;return!1},b=(G)=>{let k=1;for(let v=G+1;v0;v++){if(J.on)J.n++;let j=e[v].kind;if(j==="("||j==="CALL_START")k++;else if(j===")"){if(k--,k===0)e[v].kind="CALL_END"}else if(j==="CALL_END")k--}},S=(G)=>{let k=1;for(let v=i.length-1;v>=0&&k>0;v--){if(J.on)J.n++;if(i[v].kind==="CALL_END")k++;else if(i[v].kind==="CALL_START"){if(k--,k===0&&v>0&&i[v-1].kind==="PROPERTY"&&i[v-1].value==="__clsx")return!0}}return!1},w=(G)=>{while(f.length>0){let k=f[f.length-1];if(G.kind==="INDENT"||rs.has(G.kind)){k.depth++;return}if(G.kind==="OUTDENT"||is.has(G.kind)){if(k.depth===0){i.push(s("CALL_END",")",i[i.length-1]??G)),f.pop();continue}k.depth--;return}if(G.kind==="TERMINATOR"&&k.depth===0){i.push(s("CALL_END",")",i[i.length-1]??G)),f.pop();continue}return}},R=(G)=>G===0||st.has(e[G-1].kind),T=(G,k)=>{let v=e[G+1]?.kind==="TYPE"?e[G+2]:e[G+1];return v!==void 0&&k.has(v.kind)},F=new Set;for(let G=0,k=0;G{let k=new Set,v=G+1;while(vN.some((k)=>k.names.has(G))||C.length>0&&C[C.length-1].names.has(G)||F.has(G);for(let G=0;G0)w(k);if(!st.has(k.kind)&&R(G))O=k.kind;if(k.kind==="COMPONENT")C.push({level:l+1,names:L(G)});if(k.kind==="RENDER"){a=!0,o=l+1,N.push({level:o,names:new Set}),i.push(k);continue}if(k.kind==="INDENT"){if(l++,a){let j=e[G-1]?.kind;if(j==="->"||j==="=>")D.push(l);else if(D.length===0&&yl.has(O))N.push({level:l,names:new Set(O==="FOR"?W??[]:[])})}W=null,i.push(k);continue}if(k.kind==="OUTDENT"){l--;for(let j of[C,N])while(j.length>0&&j[j.length-1].level>l)j.pop();while(D.length>0&&D[D.length-1]>l)D.pop();while(h.length>0&&h[h.length-1]>l)h.pop();i.push(k);while(c.length>0&&c[c.length-1]>l)i.push(s("CALL_END",")",k)),c.pop();if(a&&l0){let j=i[i.length-1].kind;if(j==="TERMINATOR"||j==="INDENT"||j==="RENDER"){i.push(s("IDENTIFIER","__text__",k,{at:k.start,spaced:k.spaced,newLine:k.newLine})),i.push(s("CALL_START","(",k,{at:k.start})),f.push({depth:0});continue}}if(k.kind==="UNARY_MATH"&&k.value==="~"&&v?.kind==="IDENTIFIER"){i.push(s("PROPERTY","__transition__",k,{spaced:k.spaced,newLine:k.newLine})),i.push(s(":",":",k)),v.kind="STRING",v.value=`"${v.value}"`,v.transitionValue=!0;continue}if(k.transitionValue&&v!==null&&ns.has(v.kind)){i.push(k),i.push(s(",",",",k,{at:v.start}));continue}if(k.kind==="BIND"){let j=i[i.length-1];if(j!==void 0&&(j.kind==="IDENTIFIER"||j.kind==="PROPERTY")&&v!==null&&(v.kind==="IDENTIFIER"||v.kind==="@")){j.value=`__bind_${j.value}__`,i.push(s(":",":",k));continue}}if(k.kind==="IDENTIFIER"&&v?.kind==="-"&&!v.spaced){let j=[k.value],X=G+1,x=k.end;while(X+11&&e[X-1].kind==="PROPERTY"){let Z=j.join("-");i.push({...k,kind:"STRING",value:`"${Z}"`,end:x}),G=X-1;continue}}if(k.kind==="."){let j=i[i.length-1]?.kind;if(j==="INDENT"||j==="TERMINATOR"||j==="RENDER"){if(v?.kind==="PROPERTY"){let X=e[G+2];if(!X||X.kind!==":"){i.push(s("IDENTIFIER","div",k,{spaced:k.spaced,newLine:k.newLine})),i.push(k);continue}k={...k,kind:"IDENTIFIER",value:"div"}}else if(!v||v.kind!=="(")k={...k,kind:"IDENTIFIER",value:"div"}}}if(k.kind==="."&&v?.kind==="("){let j=i[i.length-1]?.kind,X=j==="INDENT"||j==="TERMINATOR"||j==="RENDER";if(v.kind="CALL_START",b(G+1),X)i.push(s("IDENTIFIER","div",k,{spaced:k.spaced,newLine:k.newLine})),i.push(k),i.push(s("PROPERTY","__clsx",k));else if(j===":")i.push(s("IDENTIFIER","__clsx",k,{spaced:k.spaced,newLine:k.newLine}));else i.push(k),i.push(s("PROPERTY","__clsx",k));continue}if(k.kind==="@"&&v?.kind==="PROPERTY"&&!v.spaced){let j=e[G+2],X=j?.kind===".",x=j?.kind===":";if(!X&&!x&&g(k)){let Z=String(v.value),U=`on${Z[0].toUpperCase()}${Z.slice(1)}`;if(j?.kind==="=")r(`a \`=\` cannot follow a bare event directive on one line — \`@${Z} = expr\` would assign to the minted handler and invoke the assignment as the listener; bind explicitly (\`@${Z}: handler\`), or keep the bare \`@${Z}\` and put the text on its own \`= expr\` line`,j.start);if(i.push(k),i.push(v),i.push(s(":",":",v)),i.push(s("@","@",v)),i.push(s("PROPERTY",U,v)),G++,e[G+1]?.kind==="INDENT")i.push(s(",",",",v,{at:e[G+1].start})),i.push(s("->","->",v,{at:e[G+1].start,newLine:!0})),h.push(l+1);else if(e[G+1]!==void 0&&ns.has(e[G+1].kind))i.push(s(",",",",v,{at:e[G+1].start}));continue}}if(v?.kind==="INDENT"&&k.kind!=="->"&&k.kind!=="=>"&&k.kind!=="CALL_START"&&k.kind!=="("){let j=i[i.length-1]?.kind,X=["IF","UNLESS","WHILE","UNTIL","WHEN","FORIN","FOROF","FORAS","FORASAWAIT","BY"].includes(j),x=k.kind==="IDENTIFIER"&&(j==="INDENT"||j==="TERMINATOR"||j==="RENDER"),Z=k.kind==="IDENTIFIER"&&mi(k.value)&&(x||!H(k.value)),U=!1,r1=!1;if(k.kind==="CALL_END")r1=S(k);if(r1)U=!0;else if(Z&&!X)U=!0;else if(k.kind==="IDENTIFIER"&&!X)U=x||p(k);else if(["PROPERTY","STRING","STRING_END","NUMBER","BOOL","CALL_END",")","]","INDEX_END","}","MAYBE_DAMMIT"].includes(k.kind))U=p(k);if(U){let Q=!1;if(k.kind==="PROPERTY"&&i[i.length-1]?.kind==="."){let I=i.length;while(I>=2&&i[I-1].kind==="."&&i[I-2].kind==="PROPERTY")I-=2;if(I>=2&&i[I-1].kind==="."&&i[I-2].kind==="IDENTIFIER"&&(mi(i[I-2].value)||K1(k.value))){let s1=i[I-3]?.kind??null;if(s1===null||["INDENT","OUTDENT","TERMINATOR","RENDER"].includes(s1))Q=!0}}let l1=r1||Z||x||Q;if(i.push(k),l1)i.push(s("CALL_START","(",k,{at:v.start})),i.push(s("->","->",k,{at:v.start,newLine:!0})),c.push(l+1);else i.push(s(",",",",k,{at:v.start})),i.push(s("->","->",k,{at:v.start,newLine:!0}));h.push(l+1);continue}}if(k.kind==="IDENTIFIER"&&K1(k.value)&&(v?.kind==="OUTDENT"||v?.kind==="TERMINATOR")){i.push(k),i.push(s("CALL_START","(",k)),i.push(s("CALL_END",")",k));continue}i.push(k)}e.length=i.length;for(let G=0;G=0;a--){if(J.on)J.n++;if(s>=0&&(i<0||n[s].at>i))e[a]=n[s--].token;else e[a]=e[i--]}return e}var El=new Set(["IF","UNLESS","WHILE","UNTIL","WHEN","LEADING_WHEN","CATCH","FOR","LOOP","CLASS"]),kl=new Set(["(","[","{","PICK_START","OPTPICK_START","CALL_START","INDEX_START","PARAM_START","STRING_START","INTERPOLATION_START","HEREGEX_START"]),Tl=new Set([")","]","}","PICK_END","CALL_END","INDEX_END","PARAM_END","STRING_END","INTERPOLATION_END","HEREGEX_END"]);function wl(e,t){let r=0;for(let n=t-1;n>=0;n--){if(J.on)J.n++;let i=e[n].kind;if(Tl.has(i)||i==="OUTDENT"){r++;continue}if(kl.has(i)||i==="INDENT"){if(r===0)return!1;r--;continue}if(r>0)continue;if(El.has(i))return!0;if(i==="TERMINATOR")return!1}return!1}function _l(e,t){let r=new Set(["(","[","{","PICK_START","OPTPICK_START","CALL_START","INDEX_START","PARAM_START","STRING_START","INTERPOLATION_START","HEREGEX_START"]),n=new Set([")","]","}","PICK_END","CALL_END","INDEX_END","PARAM_END","STRING_END","INTERPOLATION_END","HEREGEX_END"]),i=[],s=[],a=(p,m)=>{let g=0;for(let b=m-1;b>=p;b--){if(J.on)J.n++;let S=e[b].kind;if(n.has(S)||S==="OUTDENT"){g++;continue}if(r.has(S)||S==="INDENT"){if(S==="INDENT")return!1;if(g--,g<0)return!1;continue}if(g>0)continue;if(Gt(e,b))return!0}return!1},o=(p,m)=>{let g=0;for(let b=m-1;b>=p;b--){if(J.on)J.n++;let S=e[b].kind;if(n.has(S)||S==="OUTDENT"){g++;continue}if(r.has(S)||S==="INDENT"){if(g--,g<0)return!1;continue}if(g>0)continue;if(S===":"&&e[b-1]?.kind==="PROPERTY")return hs(e,m+1);if(S==="TERMINATOR")return!1}return!1},l=new Set(["IF","UNLESS","TRY","CATCH","FINALLY","SWITCH","FOR","CLASS"]),c=(p)=>{let m=0,g=0,b=0;for(let S=p;S({id:t(),kind:p,value:p,start:m,end:m,spaced:!1,newLine:!1,generated:!0,origin:g}),f=(p)=>{let m=c(p),g=null;for(let R=p;R=p;R--){if(J.on)J.n++;if(!e[R].generated){b=e[R];break}}let S=null;for(let R=m;R{while(s.length&&s[s.length-1].end===p){let m=s.pop();i.push({at:p,token:h("OUTDENT",m.closeAt,m.afterId)}),u=p}};for(let p=0;p"||m.kind==="=>")&&e[p+1]&&e[p+1].kind!=="INDENT"){let g=f(p+1);i.push({at:p+1,token:h("INDENT",g.openAt,g.firstReal?g.firstReal.id:null)}),s.push(g)}else if(m.kind==="THEN"&&wl(e,p)){let g=f(p+1);m.kind="INDENT",m.value="INDENT",m.generated=!0,m.start=m.end=g.firstReal?g.firstReal.start:m.end,m.origin=g.firstReal?g.firstReal.id:null,s.push(g)}else if(m.kind==="ELSE"&&e[p+1]&&e[p+1].kind!=="INDENT"&&e[p+1].kind!=="IF"&&(u===p||e[p-1]?.kind==="OUTDENT")){let g=f(p+1);i.push({at:p+1,token:h("INDENT",g.openAt,g.firstReal?g.firstReal.id:null)}),s.push(g)}}return d(e.length),i}var Ht=new Set(["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS","DAMMIT","?","MAYBE_DAMMIT"]),as=new Set(["IDENTIFIER","PROPERTY","NUMBER","STRING","STRING_START","REGEX","HEREGEX_START","SYMBOL","MAP_START","PARAM_START","IF","TRY","SWITCH","CLASS","THIS","SUPER","UNDEFINED","NULL","BOOL","UNARY","NEW","DO","DO_IIFE","UNARY_MATH","AWAIT","YIELD","THROW","@","->","=>","[","(","{","--","++"]),os=new Set(["POST_IF","POST_UNLESS","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR","||","&&","??","THEN","ELSE"]),ls=new Set(["IF","TRY","FINALLY","CATCH","SWITCH","FOR","CLASS"]),cs=new Set(["IDENTIFIER","PROPERTY","NUMBER","STRING","STRING_END","REGEX","HEREGEX_END",")","CALL_END","]","INDEX_END","}","PICK_END","BOOL","NULL","UNDEFINED","THIS","@"]),oe=new Set(["(","[","{","PICK_START","OPTPICK_START","CALL_START","INDEX_START","PARAM_START","STRING_START","INTERPOLATION_START","HEREGEX_START","INDENT"]),ae=new Set([")","]","}","PICK_END","CALL_END","INDEX_END","PARAM_END","STRING_END","INTERPOLATION_END","HEREGEX_END","OUTDENT"]),Gt=(e,t)=>{let r=e[t],n=e[t+1];if(!r||!n||!n.spaced||!Ht.has(r.kind))return!1;if((r.kind==="]"||r.kind==="}")&&(n.kind==="->"||n.kind==="=>"))return!1;if(r.kind==="IDENTIFIER"&&(r.value==="Infinity"||r.value==="NaN")&&(n.kind==="->"||n.kind==="=>"))return!1;if(as.has(n.kind))return!0;return n.kind==="..."&&e[t+2]!=null&&as.has(e[t+2].kind)},hs=(e,t)=>{if(!e[t])return!1;let r=(n)=>(e[n]?.kind==="DAMMIT"||e[n]?.kind==="VOID_MARKER")&&e[n+1]?.kind===":";if(e[t].kind==="@"&&(e[t+2]?.kind===":"||r(t+2)))return!0;if(e[t+1]?.kind===":"||r(t+1))return!0;if(oe.has(e[t].kind)){let n=1,i=t;while(++i0){if(J.on)J.n++;if(oe.has(e[i].kind))n++;else if(ae.has(e[i].kind))n--}if(n===0&&e[i]?.kind===":")return!0}return!1},fs=new Set(["->","=>","[","(",",","{","ELSE","="]),gi=new Set(["INDENT","OUTDENT","TERMINATOR"]),Nl=new Set(["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL","DEF"]),us=(e,t)=>{let r=0;for(;t>=0;t--){if(J.on)J.n++;let n=e[t].kind;if(r===0&&Nl.has(n))return!0;if(ae.has(n)){r++;continue}if(oe.has(n)){if(r>0){r--;continue}if(!e[t].generated||gi.has(n))return!1;continue}if(r===0&&gi.has(n))return!1}return!1};function Al(e,t){let r=[],n=[],i=[0],s=null,a=-1,o=()=>r[r.length-1],l=(g,b,S,w={})=>({id:t(),kind:g,value:g,start:b,end:b,spaced:w.spaced??!1,newLine:w.newLine??!1,generated:!0,origin:S}),c=(g)=>{r.pop(),n.push({at:g,token:l("}",s?s.end:0,s?s.id:null)})},h=(g)=>hs(e,g),f=()=>{for(let g=r.length-1;g>=0;g--){if(J.on)J.n++;let b=r[g];if(b.kind==="object")return b;if(!(b.kind==="INDENT"&&b.listContinuation))return null}return null},u=(g,b)=>{if(e[b]?.kind!=="...")return!1;let S=r[r.indexOf(g)-1];if(!S||!(S.kind==="["||S.kind==="CALL_START"))return!0;return p(S.at,g.at)},d=(g)=>{let b=e[g-1];return Boolean(b&&Ht.has(b.kind)&&h(g+1)&&!us(e,g-1))},p=(g,b)=>{let S=0;for(let w=b-1;w>g;w--){if(J.on)J.n++;let R=e[w].kind;if(ae.has(R)){S++;continue}if(oe.has(R)){if(R==="INDENT"&&S===0)return d(w);if(S--,S<0)return!1;continue}if(S>0)continue;if(R==="TERMINATOR")return!1;if(Gt(e,w))return!0}return!1},m=(g)=>{for(let b=0;g1)i.pop();if(S==="OUTDENT")for(let R=r.length-1;R>=0;R--){let T=r[R];if(T.kind!=="object"&&T.kind!=="CONTROL")break;if(T.kind==="object")T.sameLine=!1}continue}if(S==="TERNARY")i[i.length-1]++;if(S===":"){let R=i.length-1;if(i[R]>0){i[R]--;continue}if(w?.kind==="DAMMIT")w.kind="VOID_MARKER";let T=w?.kind==="VOID_MARKER"?1:0,F=ae.has(w?.kind)?o()?.at??g-1:g-1-T;if(e[g-2-T]?.kind==="@")F=g-2-T;let L=e[F-1],N=!Gt(e,F-1)&&(F<=0||gi.has(L?.kind)||Boolean(L?.newLine)),D=o(),O=r[r.length-2],W=(j)=>j&&(j.kind==="{"||j.kind==="PICK_START"||j.kind==="OPTPICK_START"||j.kind==="object"),H=(j)=>j==="{"||j==="PICK_START"||j==="OPTPICK_START",G=D?.kind==="INDENT"&&D.listContinuation?f():null,k=Boolean(G),v=G?G.at:D?.kind==="INDENT"&&O?O.at:D?.at;if(D&&(W(D)||D.kind==="INDENT"&&(H(O?.kind)||k))&&!(v!=null&&p(v,F))&&(N||L?.kind===","||H(L?.kind)||e[F]?.kind==="{"))continue;r.push({kind:"object",at:F,sameLine:!0,startsLine:N}),n.push({at:F,token:l("{",e[F].start,e[F].id,{spaced:e[F].spaced,newLine:e[F].newLine})});continue}if(os.has(S)||(S==="."||S==="?.")&&b.newLine){if(S==="||"||S==="&&"||S==="??"||S==="ELSE")continue;if(S==="TERMINATOR"){i[i.length-1]=0;for(let R=r.length-1;R>=0;R--){let T=r[R];if(T.kind!=="object"&&T.kind!=="CONTROL")break;if(T.kind==="object")T.sameLine=!1}}while(o()?.kind==="object"||S==="TERMINATOR"&&o()?.kind==="CONTROL"&&o()?.trigger==="CLASS"){let R=o();if(R.kind==="CONTROL"){r.pop();continue}if(S==="TERMINATOR")if(w?.kind!==","&&!(R.startsLine&&(h(g+1)||u(R,g+1))))c(g);else break;else if(R.sameLine&&w?.kind!==":"&&!((S==="POST_IF"||S==="POST_UNLESS")&&R.startsLine&&m(g+1)))c(g);else break}continue}if(S===","){let R=f(),T=(F)=>h(F)||u(R,F);if(R&&!p(R.at,g)&&!T(g+1)&&(e[g+1]?.kind!=="TERMINATOR"||!T(g+2))){if(e[g+1]?.kind==="INDENT"&&T(g+2))a=g;else if(o()?.kind==="object"){let F=e[g+1]?.kind==="OUTDENT"?1:0;while(o()?.kind==="object")c(g+F)}}}}if(e.length&&!e[e.length-1].generated)s=e[e.length-1];while(o()?.kind==="object"||o()?.kind==="CONTROL")if(o().kind==="object")c(e.length);else r.pop();return n}function vl(e,t){let r=[],n=[],i=-1,s=(l,c,h)=>({id:t(),kind:l,value:l==="CALL_START"?"(":")",start:c,end:c,spaced:!1,newLine:!1,generated:!0,origin:h}),a=null,o=(l)=>{r.pop(),n.push({at:l,token:s("CALL_END",a?a.end:0,a?a.id:null)})};for(let l=0;l0&&!e[l-1].generated)a=e[l-1];if(r[r.length-1]==="call"&&ls.has(f)&&!(f==="FOR"&&!c.newLine&&e[l-1]&&cs.has(e[l-1].kind))){r.push(f==="CLASS"?"CONTROL_CLASS":"CONTROL");continue}if(f==="INDENT"){if(l===i){r.push("INDENT");continue}let u=e[l-1];if(!u||!fs.has(u.kind))while(r[r.length-1]==="call")o(l);if(r[r.length-1]==="CONTROL"||r[r.length-1]==="CONTROL_CLASS")r.pop();r.push("INDENT");continue}if(oe.has(f))r.push(f);else if(ae.has(f)){while(r[r.length-1]==="call"||r[r.length-1]==="CONTROL"||r[r.length-1]==="CONTROL_CLASS")if(r[r.length-1]==="call")o(l);else r.pop();r.pop()}if(os.has(f)||(f==="."||f==="?.")&&c.newLine){if(f==="||"||f==="&&"||f==="??")continue;if(f==="ELSE"&&e[l-1]?.kind==="OUTDENT")continue;if(e[l-1]?.kind!==",")while(r[r.length-1]==="call"||f==="TERMINATOR"&&r[r.length-1]==="CONTROL_CLASS")if(r[r.length-1]==="call")o(l);else r.pop();continue}if(Gt(e,l)||Ht.has(f)&&h&&h.spaced&&(h.kind==="+"||h.kind==="-")&&e[l+2]&&!e[l+2].spaced&&!e[l+2].newLine)n.push({at:l+1,token:s("CALL_START",h.start,h.generated?h.origin:h.id)}),r.push("call");else if(Ht.has(f)&&h?.kind==="INDENT"&&e[l+2]?.kind==="{"&&e[l+2].generated&&!us(e,l))n.push({at:l+1,token:s("CALL_START",e[l+2].start,e[l+2].origin)}),r.push("call"),i=l+1}if(e.length&&!e[e.length-1].generated)a=e[e.length-1];while(r[r.length-1]==="call"||r[r.length-1]==="CONTROL"||r[r.length-1]==="CONTROL_CLASS")if(r[r.length-1]==="call")o(e.length);else r.pop();return n}var Kt=(e,t)=>bi(e,_l,t),Yt=(e,t)=>bi(e,Al,t),zt=(e,t)=>bi(e,vl,t);var bs=new Map([["as","CAST"],["satisfies","SATISFIES"]]),Zt=(e)=>e?.kind==="IDENTIFIER"&&bs.has(e.value),ys=new Set(["IDENTIFIER","PROPERTY","NUMBER","STRING","STRING_END","REGEX","HEREGEX_END","BOOL","NULL","UNDEFINED",")","CALL_END","PARAM_END","]","INDEX_END","}","PICK_END","THIS","@","SUPER","?","MAYBE_DAMMIT","DAMMIT","CAST","SATISFIES","IMPORT_META"]),Ol=new Set(["IDENTIFIER","PROPERTY","(","CALL_START","PARAM_START","{","[","INDEX_START","STRING","NUMBER","BOOL","NULL","UNDEFINED","-","UNARY","NEW","RESERVED"]),le=new Set(["(","CALL_START","PARAM_START","[","INDEX_START","{","PICK_START","OPTPICK_START"]),ce=new Set([")","CALL_END","PARAM_END","]","INDEX_END","}","PICK_END"]),Il=new Set(["TERMINATOR","INDENT","OUTDENT",",","=","COMPOUND_ASSIGN","REACTIVE_ASSIGN","COMPUTED_ASSIGN","READONLY_ASSIGN","GATE","EFFECT","->"]),$l=new Set(["+","-","MATH","**","SHIFT","COMPARE","MATCH","&&","||","??","^","RELATION","TERNARY","?","MAYBE_DAMMIT",":","?.","DAMMIT","EXTENDS","..","...","IF","UNLESS","ELSE","THEN","WHILE","UNTIL","LOOP","FOR","WHEN","BY","SWITCH","RETURN","THROW","CATCH","FINALLY"]),Dl=new Set(["IF","UNLESS","ELSE","THEN","WHILE","UNTIL","LOOP","FOR","WHEN","BY","SWITCH","RETURN","THROW"]),xl=new Set(["IDENTIFIER","PROPERTY","RESERVED","NUMBER","STRING","TYPE_TEMPLATE","BOOL","NULL","UNDEFINED","THIS",".",",",":","?","TERNARY","...","|","&","=>","EXTENDS","(",")","PARAM_START","PARAM_END","[","]","INDEX_START","INDEX_END","{","}","INDENT","OUTDENT","TERMINATOR"]),Cl=new Set(["IDENTIFIER","PROPERTY","RESERVED","NUMBER","STRING","TYPE_TEMPLATE","BOOL","NULL","UNDEFINED","THIS",")","PARAM_END","]","INDEX_END","}"]),Pl=new Set(["TERMINATOR","INDENT","OUTDENT","{",","]),Jt=(e,t,r)=>{if(t-1{let s=0,a=[],o=(u=0)=>a[a.length-1-u],l=null,c=!1,h=[],f=(u,d)=>{s-=d;for(let p=0;p"){f(d,1),c=!0;continue}if(p==="SHIFT"&&d.value===">>"){f(d,2),c=!0;continue}if(p==="SHIFT"&&d.value===">>>"){f(d,3),c=!0;continue}if(p==="UNARY"&&d.value==="typeof"){c=!1;continue}if(d.word==="is"&&c&&u-2>=t&&(e[u-1].kind==="IDENTIFIER"||e[u-1].kind==="PROPERTY"||e[u-1].kind==="THIS")&&(e[u-2].kind==="=>"||e[u-2].value==="asserts"||e[u-2].kind===":"&&e[u-3]?.kind==="CALL_END")){c=!1;continue}if(p==="RELATION"&&d.value==="in"&&o()==="["&&o(1)==="{"&&u-2>=t&&(e[u-2].kind==="["||e[u-2].kind==="INDEX_START")&&(e[u-1].kind==="IDENTIFIER"||e[u-1].kind==="PROPERTY")&&Jt(e,u-2,t)){c=!1;continue}if(d.value==="?"&&c&&e[u+1]?.kind===":"){c=!1;continue}if(p==="-"&&e[u+1]?.kind==="NUMBER"&&!c){u++,c=!0;continue}if((p==="-"||p==="+")&&e[u+1]?.value==="readonly"&&(e[u+2]?.kind==="["||e[u+2]?.kind==="INDEX_START")&&o()==="{"&&Jt(e,u,t)){c=!1;continue}if((p==="-"||p==="+")&&e[u+1]?.value==="?"&&e[u+2]?.kind===":"&&o()==="{"&&(e[u-1]?.kind==="]"||e[u-1]?.kind==="INDEX_END")){c=!0;continue}if(p==="="&&s>0){c=!1;continue}if((o()==="{"||i.methods&&o()===void 0)&&p==="CALL_START"){let m=e[u-1],g=Jt(e,u-1,t);if(m&&(m.kind==="IDENTIFIER"||m.kind==="PROPERTY")&&g){let b=1,S=u+1;while(S0){if(e[S].kind==="CALL_START")b++;else if(e[S].kind==="CALL_END")b--;S++}if(b===0&&e[S]?.kind===":"){h.push(S-1),a.push("("),c=!1;continue}if(b===0)n(`an interface method shorthand needs a return type — \`${m.value}(…): T\``,m.start)}}if(p==="CALL_END"&&u===h[h.length-1]){h.pop(),a.pop(),c=!0;continue}if(xl.has(p)){if(ds.has(p))a.push(ds.get(p));else if(Ll.has(p))a.pop();c=Cl.has(p);continue}n(`code expression ('${d.word??d.value}') in a type body — types erase and cannot execute`,d.start)}if(s>0)n("unclosed '<' in a type body — the generic never closes",l.start)},Ml=new Set(["=",":","COMPOUND_ASSIGN","REACTIVE_ASSIGN","COMPUTED_ASSIGN","READONLY_ASSIGN",",","[","(","{","CALL_START","INDEX_START","PARAM_START","PICK_START","OPTPICK_START","RETURN","THROW","AWAIT","YIELD"]),ee=(e,t)=>{let r=e[t];if(!r)return!0;if(r.kind==="TERMINATOR"||r.kind==="EXPORT"||r.kind==="OFFER")return!0;if(r.kind!=="INDENT"&&r.kind!=="OUTDENT")return!1;let n=0;for(let i=t;i>=0;i--){if(J.on)J.n++;let s=e[i].kind;if(s==="OUTDENT")n++;else if(s==="INDENT"){if(n===0){let a=e[i-1];return!(a&&Ml.has(a.kind))}n--}}return!0},Si=(e,t,r)=>{if(r<=t)return!1;let n=new Set(["|","&",",",":","?","TERNARY",".","..."]),i=0,s=0,a=0,o=0,l=!1,c=[],h=null;for(let f=t;f"){let p=f>t?e[f-1].kind:null;if((p===")"||p==="PARAM_END")&&h&&(h.colon||h.empty)){l=!1;continue}return!1}if(u==="("||u==="PARAM_START"){c.push({colon:!1,open:f}),i++,l=!1;continue}if(u===")"||u==="PARAM_END"){if(--i<0)return!1;let p=c.pop();h=p?{colon:p.colon,empty:f===p.open+1}:null,l=!0;continue}if(u==="["||u==="INDEX_START"){s++,l=!1;continue}if(u==="]"||u==="INDEX_END"){if(--s<0)return!1;l=!0;continue}if(u==="{"){a++,l=!1;continue}if(u==="}"){if(--a<0)return!1;l=!0;continue}if(u==="COMPARE"){if(d==="<"){o++,l=!1;continue}if(d===">"){if(o<=0)return!1;o--,l=!0;continue}return!1}if(u==="SHIFT"){if(d===">>"){if(o<2)return!1;o-=2,l=!0;continue}if(d===">>>"){if(o<3)return!1;o-=3,l=!0;continue}return!1}if(u==="="){if(o>0){l=!1;continue}return!1}if(n.has(u)){if(u===":"&&c.length)c[c.length-1].colon=!0;l=!1;continue}if(u==="IDENTIFIER"||u==="PROPERTY"||u==="NUMBER"||u==="RESERVED"||u==="STRING"||u==="NULL"||u==="UNDEFINED"||u==="BOOL"){if(l)return!1;l=!0;continue}return!1}return i===0&&s===0&&a===0&&o===0&&l},ms=(e,t,r,n)=>{let i=[],s=[],a=[],o=0,l=t,c=e[t-1]?.end??0,h=(u)=>n("unclosed '<' in a type — the generic argument list never closes"+(r.cast?"; if the '<' was meant as a comparison, parenthesize the cast: '(x as T) < y'":""),u.start),f=(u,d)=>{for(let p=0;pl&&u.newLine)break;if(d==="SHIFT"&&(u.value===">>"||u.value===">>>")&&a.length>0){f(u,u.value===">>"?2:3),i.push(u.value),c=u.end,t++;continue}if(d==="COMPARE"&&u.value===">"){if(o===0)break;f(u,1),i.push(u.value),c=u.end,t++;continue}if(le.has(d)||d==="COMPARE"&&u.value==="<"){o++;let m=d==="{"?"{":d==="["||d==="INDEX_START"?"[":d==="COMPARE"?"<":"(";if(s.push(m),m==="<")a.push(u);i.push(u.value),c=u.end,t++;continue}if(ce.has(d)){if(o===0)break;if(s[s.length-1]==="<")h(a[a.length-1]);o--,s.pop(),i.push(u.value),c=u.end,t++;continue}if(d==="INTERPOLATION_END"||d==="STRING_END"||d==="HEREGEX_END")break;if(o===0){if(Il.has(d))break;if(r.stopAtFatArrow&&d==="=>")break;if(r.stopAtThen&&d==="THEN")break;if(r.cast&&$l.has(d))if(t===l&&(d==="-"||d==="+")&&e[t+1]?.kind==="NUMBER"){if(d==="+")n("a numeric literal type spells its sign with '-' (TypeScript has no '+1' type)",u.start,e[t+1].end)}else break;if(r.alias&&Dl.has(d))break}else{if(d==="INDENT"||d==="OUTDENT"){t++;continue}if(d==="TERMINATOR"){i.push(";"),c=u.end,t++;continue}if(d==="PROPERTY"&&s[s.length-1]==="{"){let m=i[i.length-1];if(m&&m!=="{"&&m!==","&&m!==";")i.push(";")}}if(d==="?"&&!u.spaced&&e[t+1]?.kind===":"&&i.length){i[i.length-1]+="?",c=u.end,t++;continue}i.push(u.word==="is"?u.word:u.value),c=u.end,t++}if(a.length)h(a[0]);return{parts:i,consumed:t-l,end:c}},jl=(e)=>e.join(" ").replace(/\s+/g," ").trim().replace(/\s*<\s*/g,"<").replace(/\s*>\s*/g,">").replace(/\s*\[\s*/g,"[").replace(/\s*\]\s*/g,"]").replace(/\s*\(\s*/g,"(").replace(/\s*\)\s*/g,")").replace(/\s*,\s*/g,", ").replace(/\s*=>\s*/g," => ").replace(/ : /g,": "),Fl=(e,t,r)=>{let n=(l)=>l==="("||l==="PARAM_START"||l==="CALL_START",i=(l)=>l===")"||l==="PARAM_END"||l==="CALL_END";if(r-t<2||!n(e[t].kind))return!1;let s=0;for(let l=t;l{if(!(e[t]?.kind==="COMPARE"&&e[t].value==="<"&&!e[t].spaced))return t;let r=0;while(t")r--;else if(n.kind==="SHIFT"&&n.value===">>")r-=2;else if(n.kind==="SHIFT"&&n.value===">>>")r-=3;else if(n.kind==="TERMINATOR"||n.kind==="INDENT"||n.kind==="OUTDENT")return-1;if(t++,r===0)break}return r===0?t:-1},Qt=(e,t)=>{if(t<0||!e[t]||Ri(e[t])>=0)return t;let r=0;while(t>=0){if(J.on)J.n++;let n=e[t];if(n.kind==="TERMINATOR"||n.kind==="INDENT"||n.kind==="OUTDENT")return-1;if(r+=Ri(n),t--,r===0)break}return r===0?t:-1},er=(e,t)=>{let r=Qt(e,t-1);if(r<0||e[r]?.kind!=="IDENTIFIER")return!1;let n=e[r-1];if(!(n?.kind==="IDENTIFIER"&&n.value==="type"))return!1;return ee(e,r-2)},Ri=(e)=>e.kind==="COMPARE"&&e.value==="<"?1:e.kind==="COMPARE"&&e.value===">"?-1:e.kind==="SHIFT"&&e.value===">>"?-2:e.kind==="SHIFT"&&e.value===">>>"?-3:0,Q1=(e,t)=>{let r=e[t];if(!r||r.kind!=="IDENTIFIER"&&r.kind!=="PROPERTY")return!1;if(e[t-1]?.kind==="DEF")return!0;return r.kind==="PROPERTY"&&e[t-1]?.kind==="@"&&e[t-2]?.kind==="DEF"},Bl=(e,t)=>{let r=e[t-1];if(!r)return!1;if(r.kind===")"||r.kind==="CALL_END"||r.kind==="PARAM_END")return!0;if(r.kind==="IDENTIFIER"||r.kind==="PROPERTY"){if(Q1(e,t-1))return!0;let n=e[t-2]?.kind==="@"?t-3:t-2;if(ee(e,n))return!0}if(r.kind==="VOID_MARKER"&&Q1(e,t-2))return!0;return null},ps=(e)=>e.kind==="TERMINATOR"||e.kind==="INDENT"||e.kind==="OUTDENT",Ul=(e,t)=>{if(t.upTo>e.length||t.upTo>0&&e[t.upTo-1]!==t.ref){t.answers.clear(),t.level=0;let r=e.length-1;while(r>=0&&!ps(e[r])){if(J.on)J.n++;r--}t.upTo=r+1}for(let r=t.upTo;r{let n=e[e.length-1];if(!n)return!1;if(!(n.kind==="COMPARE"&&n.value===">"||n.kind==="SHIFT"&&(n.value===">>"||n.value===">>>")))return!1;if(t)return!0;return Ul(e,r),r.answers.get(r.level)??!1},Xt=(e,t)=>{let r=0,n=!1;for(let i=t+1;i")return-1;if(s==="=>")n=!0;else if(s==="="||s==="REACTIVE_ASSIGN"||s==="COMPUTED_ASSIGN"||s==="READONLY_ASSIGN"||s==="GATE"||s==="EFFECT"){if(!n||Si(e,t+1,i))return i}}}return-1},Vl=(e)=>{let t=[new Map],r=Array(e.length),n=[{id:0,up:null}],i=0;for(let s=0;s"||l==="=>";n.push({id:o,up:c?null:n[n.length-1]})}else if(a==="OUTDENT"){if(n.length>1)n.pop()}else if(le.has(a))i++;else if(ce.has(a))i--;else if(i===0&&(a==="IDENTIFIER"||a==="PROPERTY")&&e[s+1]?.kind==="=")for(let o=n[n.length-1];o;o=o.up){if(J.on)J.n++;t[o.id].set(e[s].value,s)}}return{blockMaps:t,blockIdAt:r}},Wl=(e,t)=>{let r=0;for(;t"||n==="=>")return!0;if(n==="TERMINATOR"||n==="INDENT"||n==="OUTDENT")return!1}}return!1},Hl=(e,t)=>{let r=0;for(let n=t+1;n{let n=0;for(let i=t;i{let r=0;for(let n=t;n","=>","DO","DO_IIFE","TRY","LOOP"]),zl=new Set(["IF","UNLESS","SWITCH","WHILE","UNTIL","FOR","CLASS"]),ql=new Set(["->","=>","THEN","ELSE"]),Xl=new Set(["TERMINATOR","INDENT","OUTDENT","THEN","ELSE","IF","UNLESS","POST_IF","POST_UNLESS","WHILE","UNTIL","LOOP","FOR","WHEN","BY","SWITCH","RETURN","THROW",",","=","COMPOUND_ASSIGN","&&","||","??","TERNARY","?",":","RELATION","+","-","MATH","**","SHIFT","&","|","^","STRING_START","STRING_END","INTERPOLATION_START","INTERPOLATION_END"]),Jl=new Map([["yes","true"],["no","false"],["on","true"],["off","false"],["true","true"],["false","false"],["null","null"],["undefined","undefined"],["this","this"]]);function tr(e,t,r,n){let i=[],s=[],a=new WeakSet,o=()=>s[s.length-1]??null,l=!1,c=[],h=()=>c.length>0&&!!c[c.length-1],f=()=>c[c.length-1]??!1,u=(N)=>{let D=Jl.get(N.value);if(D===void 0)return;n(`'${N.value}' cannot name a binding — every read of '${N.value}' lowers to \`${D}\`, so the binding would be unreachable`,N.start,N.end)},d=-1,p=0,m=!1,g=!1,b=null,S=(N,D)=>(b??=Vl(e),(b.blockMaps[b.blockIdAt[N]].get(D)??-1)>=N),w=null,R=(N)=>{let D=[],O=N,W=!0,H=-1;for(;;){if(J.on)J.n++;let j=Hl(e,O);if(j<0){if(Xt(e,O)>=0)break;D.push({colon:O,shaped:!1,assigned:!1}),W=!1,H=-1;break}if(Kl(e,O+1,j)){D.push({colon:O,shaped:!1,assigned:!1}),W=!1,H=-1;break}D.push({colon:O,shaped:j>O+1&&Si(e,O+1,j),assigned:S(j+1,e[O-1].value)}),H=j;let X=e[j+1];if(X&&(X.kind==="IDENTIFIER"||X.kind==="PROPERTY")&&e[j+2]?.kind===":"){O=j+2;continue}break}let G=H>=0?e[H+1]:null,k=W&&G!=null&&G.kind!=="OUTDENT",v=k&&D.every((j)=>j.shaped&&j.assigned);if(!v&&k&&D.some((j)=>j.shaped)&&D.some((j)=>j.assigned)){let j=D.find((Z)=>!(Z.shaped&&Z.assigned)),X=e[j.colon-1],x=j.shaped?`'${X.value}' is never assigned in this block`:`the value after '${X.value}:' is not a type`;n("these adjacent 'name:' lines are ambiguous — with every line a type and every "+`name assigned later they would all claim as typed forward declarations, but ${x}; for typed forwards, assign every name in this block or add an initializer ('${X.value}: T = value'); for an implicit object, parenthesize the literal or assign it to a target`,X.start)}w??=new Map;for(let j of D)w.set(j.colon,v);return v},T=(N,D,O,W,H)=>({id:t(),kind:N,value:D,start:O,end:W,spaced:H.spaced,newLine:H.newLine,generated:!1,origin:null}),F=(N,D,O,W)=>{if(e[O]?.kind===":")n("type annotations use a single ':' (e.g. `x: number`), not '::'",D.start,e[O].end);let H=ms(e,O,W,n);if(H.parts.length===0)return-1;for(let G=O;G R) => body`, not `(x): (a: T) => R => body`",e[O].start);return i.push(T(N,jl(H.parts),D.start,H.end,D)),O+H.consumed-1},L=(N)=>{let D=N+1;if(e[D]?.kind!=="IDENTIFIER")return-1;if(D++,D=qt(e,D),D<0)return-1;if(e[D]?.kind!=="=")return-1;if(D++,e[D]?.kind==="INDENT"){let H=gs(e,D);return yi(e,D+1,H,n,{methods:!0}),H}let O=ms(e,D,{alias:!0},n);if(O.parts.length===0)n("a type alias needs a type after '='",e[D-1].end);yi(e,D,D+O.consumed,n);let W=e[D+O.consumed];if(W&&W.kind!=="TERMINATOR"&&W.kind!=="OUTDENT")n(`a type alias must fill its line — unexpected '${W.value}' after the type`,W.start);return D+O.consumed-1},C=(N)=>{let D=N+1;if(e[D]?.kind!=="IDENTIFIER")return-1;if(D++,D=qt(e,D),D===-1)return-1;if(e[D]?.kind==="EXTENDS"){if(e[D+1]?.kind!=="IDENTIFIER")return-1;if(D+=2,D=qt(e,D),D===-1)return-1}if(e[D]?.kind!=="INDENT")return-1;let O=gs(e,D);return yi(e,D+1,O,n,{methods:!0}),O};for(let N=0;N=0){let G=W?.kind==="EXPORT"?i.pop():D,k=e[H].end;i.push(T("TYPE_DECL",r.slice(G.start,k).replace(/\r\n/g,` -`),G.start,k,D)),N=H;continue}}if(Zt(D)&&W&&W.kind!=="."&&W.kind!=="?."&&ys.has(W.kind)&&e[N+1]&&(Ol.has(e[N+1].kind)||e[N+1].kind==="+"&&e[N+2]?.kind==="NUMBER")){let H=F(bs.get(D.value),D,N+1,{cast:!0});if(H<0)n(`'${D.value}' takes a type — \`x ${D.value} T\``,D.start,D.end);if(H>=0){N=H;let G=e[N+1],k=i[i.length-1];if(G&&G.newLine&&G.kind!=="TERMINATOR"&&G.kind!=="INDENT"&&G.kind!=="OUTDENT"&&!Zt(G)){let v=r.slice(k.end,G.start),j=v.indexOf(` -`);if(j>=0){let X=v[j-1]==="\r",x=k.end+j-(X?1:0),Z=X?2:1;i.push({id:t(),kind:"TERMINATOR",value:r.slice(x,x+Z),start:x,end:x+Z,spaced:!1,newLine:!1,generated:!0,origin:null})}}continue}}if(O==="COMPARE"&&D.value==="<"&&!D.spaced&&W&&(W.kind==="IDENTIFIER"||Q1(i,i.length-1))){let H=i[i.length-2]??null,G=qt(e,N);if(G>N){let k=G-1,v=e[k+1]?.kind,j=H?.kind==="DEF"||Q1(i,i.length-1),X=v==="="&&e[k+2]?.kind==="COMPONENT";if(j||X){if(j&&v==="("){let x=0;for(let Z=k+1;Z=0){N=U;continue}}if(W.kind==="CALL_END"&&a.has(W)){let U=F("TYPE",D,N+1,{});if(U>=0){N=U;continue}}if(Q1(i,i.length-1)){let U=F("TYPE",D,N+1,{});if(U>=0){if(W.kind==="PROPERTY"&&G?.kind==="DEF")u(W),W.kind="IDENTIFIER";N=U;continue}}if(W.kind==="TYPE_PARAMS"&&Q1(i,i.length-2)){let U=F("TYPE",D,N+1,{});if(U>=0){N=U;continue}}if(W.kind==="VOID_MARKER"&&Q1(i,i.length-2)){let U=F("TYPE",D,N+1,{});if(U>=0){N=U;continue}}if(s.length===0&&(W.kind==="PROPERTY"||W.kind==="IDENTIFIER")&&G?.kind==="CATCH"){let U=F("TYPE",D,N+1,{stopAtThen:!0});if(U>=0){if(W.kind==="PROPERTY")u(W),W.kind="IDENTIFIER";N=U;continue}}if(H&&(H.kind==="param"||H.kind==="defparam")&&!H.sawEq&&!H.sawType&&H.bodyDepth===0&&!H.inlineBody){let U=W.kind==="PROPERTY"||W.kind==="IDENTIFIER",r1=W.kind==="}"||W.kind==="]",Q=W.kind==="?"&&(G?.kind==="PROPERTY"||G?.kind==="IDENTIFIER");if(U||r1||Q){let l1=F("TYPE",D,N+1,{});if(l1>=0){if(Q){if(W.kind="OPT_MARKER",G.kind==="PROPERTY")G.kind="IDENTIFIER"}else if(W.kind==="PROPERTY"&&e[N-2]?.kind!=="@")u(W),W.kind="IDENTIFIER";H.sawType=!0,N=l1;continue}}}let k=W.kind==="OPT_MARKER"?1:0,v=k?i[i.length-2]??null:W,j=(i[i.length-2-k]??null)?.kind==="@",X=i.length-(j?3:2)-k,x=v!==null&&(v.kind==="PROPERTY"||v.kind==="IDENTIFIER")&&ee(i,X),Z=v!==null&&v.kind==="STRING"&&ee(i,X);if(s.length===0&&x&&!j)g=!0;if(s.length===0&&W.kind==="PROPERTY"&&i[i.length-2]?.kind==="."&&i[i.length-3]?.kind==="PROPERTY"&&i[i.length-3].value==="prototype"&&i[i.length-4]?.kind==="?."&&i[i.length-5]?.kind==="IDENTIFIER"&&ee(i,i.length-6)&&Xt(e,N)>=0)n("an annotated prototype member requires the unconditional chain (`X::m: T = v`) — "+"the soak form cannot carry the annotation",D.start,D.end);if(s.length===0&&W.kind==="PROPERTY"&&i[i.length-2]?.kind==="."&&i[i.length-3]?.kind==="PROPERTY"&&i[i.length-3].value==="prototype"&&i[i.length-4]?.kind==="."&&i[i.length-5]?.kind==="IDENTIFIER"&&ee(i,i.length-6)&&Xt(e,N)>=0){let U=F("TYPE",D,N+1,{});if(U>=0){N=U;continue}}if(s.length===0&&(x||Z)&&Xt(e,N)>=0){let U=F("TYPE",D,N+1,{});if(U>=0){if(v.kind==="PROPERTY"&&!j){if(f()!=="class")u(v);v.kind="IDENTIFIER"}g=!1,N=U;continue}}if(s.length===0&&h()&&x&&!Wl(e,N+1)){let U=-1,r1=0;for(let Q=N+1;QN+1&&Si(e,N+1,U)){let Q=F("TYPE",D,N+1,{});if(Q>=0){if(v.kind==="PROPERTY"&&!j){if(f()==="component")u(v);v.kind="IDENTIFIER"}N=Q;continue}}}if(s.length===0&&!h()&&x&&!j&&!k){let U=w?.get(N);if(U!==void 0?U:!m&&R(N)){let Q=F("TYPE",D,N+1,{});if(Q>=0){if(W.kind==="PROPERTY")u(W),W.kind="IDENTIFIER";g=!1,N=Q;continue}}}}if(le.has(O))p++;else if(ce.has(O)){if(p--,d>=0&&p=0&&p===d){if(O==="COMPARE"&&D.value==="<")n("class generics are not supported — the class head's '<' parses as a comparison "+"and the statement miscompiles silently (`class Box` compiles to "+"`(class Box {} < T) && …`); remove the generic list",D.start);if(Xl.has(O))d=-1}if(O==="CLASS"||O==="COMPONENT")l=O==="CLASS"?"class":"component";else if(O==="THEN")l=!1;else if(O==="INDENT")c.push(l),l=!1;else if(O==="OUTDENT")c.pop();else if(O==="TERMINATOR")l=!1;if(s.length===0){if(O==="TERMINATOR")m=g,g=!1;else if(O==="INDENT"||O==="OUTDENT")m=!1,g=!1}if(le.has(O)){let H="other";if(O==="PARAM_START")H="param";else if(O==="CALL_START"&&Q1(i,i.length-1))H="defparam";else if(O==="CALL_START"&&W?.kind==="TYPE_PARAMS"&&Q1(i,i.length-2))H="defparam";else if(O==="CALL_START"&&W?.kind==="VOID_MARKER"&&Q1(i,i.length-2))H="defparam";s.push({kind:H,sawEq:!1,sawType:!1,bodyDepth:0,pendingImmediate:!1,pendingCond:!1,inlineBody:!1})}else if(ce.has(O)){if(s.pop()?.kind==="defparam"&&O==="CALL_END")a.add(D)}else{let H=o();if(H&&(H.kind==="param"||H.kind==="defparam")){let G=()=>{H.sawEq=!1,H.sawType=!1,H.pendingImmediate=!1,H.pendingCond=!1,H.inlineBody=!1};if(H.bodyDepth>0){if(O==="INDENT")H.bodyDepth++;else if(O==="OUTDENT")H.bodyDepth--}else if(O==="INDENT")if(H.pendingImmediate||H.pendingCond)H.bodyDepth=1,H.pendingImmediate=!1,H.pendingCond=!1,H.inlineBody=!1;else G();else if(O===","||O==="OUTDENT")G();else if(O==="TERMINATOR")if(H.inlineBody&&D.value===";")H.pendingImmediate=!1,H.pendingCond=!1;else G();else{if(H.pendingImmediate=Yl.has(O),zl.has(O)&&W?.kind==="=")H.pendingCond=!0;else if(O==="THEN")H.pendingCond=!1;if(ql.has(O))H.inlineBody=!0;if(O==="=")H.sawEq=!0}}}i.push(D)}e.length=i.length;for(let N=0;N"&&r!=="=>")continue;let n=t-1,i=e[n];if(!i)continue;if(i.kind==="DO"){i.kind="DO_IIFE";continue}if(i.kind!==")"){let a=0,o=-1;for(let l=t-1;l>=0;l--){if(J.on)J.n++;let c=e[l],h=c.kind;if(h===")"||h==="]"||h==="}"||h==="PICK_END"||h==="CALL_END"||h==="PARAM_END"||h==="INDEX_END"||h==="COMPARE"&&c.value===">")a++;else if(h==="("||h==="["||h==="{"||h==="PICK_START"||h==="OPTPICK_START"||h==="CALL_START"||h==="PARAM_START"||h==="INDEX_START"||h==="COMPARE"&&c.value==="<")a--;else if(h==="SHIFT"&&c.value===">>")a+=2;else if(h==="SHIFT"&&c.value===">>>")a+=3;else if(a===0){if(h===":"){if(e[l-1]?.kind===")")o=l-1;break}if(h==="TERMINATOR"||h==="INDENT"||h==="OUTDENT"||h==="="||h==="->"||h==="=>")break}}if(o<0)continue;n=o,i=e[n]}else{let a=0,o=-1;for(let l=t-1;l>=0;l--){if(J.on)J.n++;let c=e[l].kind;if(c===")"||c==="CALL_END"||c==="PARAM_END")a++;else if(c==="("||c==="CALL_START"||c==="PARAM_START"){if(--a===0){o=l;break}}}if(o>1&&e[o-1].kind===":"&&e[o-2]?.kind===")")n=o-2,i=e[n]}let s=0;for(let a=n-1;a>=0;a--){if(J.on)J.n++;let o=e[a];if(o.kind===")"||o.kind==="CALL_END"||o.kind==="INDEX_END"||o.kind==="]")s++;else if(o.kind==="("||o.kind==="CALL_START"||o.kind==="INDEX_START"||o.kind==="["){if(s>0){s--;continue}if(o.kind==="("){if(o.kind="PARAM_START",i.kind="PARAM_END",e[a-1]?.kind==="DO")e[a-1].kind="DO_IIFE"}break}}}return e}function Ql(e){let t=new Set(["(","[","{","PICK_START","OPTPICK_START","CALL_START","INDEX_START","PARAM_START","STRING_START","INTERPOLATION_START","HEREGEX_START","INDENT"]),r=new Set([")","]","}","PICK_END","CALL_END","INDEX_END","PARAM_END","STRING_END","INTERPOLATION_END","HEREGEX_END","OUTDENT"]),n=[0];for(let i=0;i0)n[a]--}else if(s==="INDEX_START"&&n[n.length-1]===0){let a=1,o=i;while(++o0){if(J.on)J.n++;if(t.has(e[o].kind))a++;else if(r.has(e[o].kind))a--}if(a===0&&e[o]?.kind===":")e[i].kind="[",e[o-1].kind="]"}if(t.has(e[i].kind))n.push(0);else if(r.has(e[i].kind))n.pop()}return e}var e3=new Set(["STRING","STRING_END","REGEX","HEREGEX_END","NUMBER","BOOL","NULL","UNDEFINED","]","}","SYMBOL"]);function t3(e){let t=0;for(let r=0;r0&&(n==="->"||n==="=>")&&r>0&&(e3.has(e[r-1].kind)||e[r-1].kind==="IDENTIFIER"&&(e[r-1].value==="Infinity"||e[r-1].value==="NaN")))e.splice(r,0,{kind:",",value:",",start:e[r].start,end:e[r].start}),r++}return e}function r3(e){let t=new Set(["(","[","{","PICK_START","OPTPICK_START","CALL_START","INDEX_START","PARAM_START","STRING_START","INTERPOLATION_START","HEREGEX_START","INDENT"]),r=new Set([")","]","}","PICK_END","CALL_END","INDEX_END","PARAM_END","STRING_END","INTERPOLATION_END","HEREGEX_END","OUTDENT"]),n=(s)=>s!==void 0&&(s.kind==="IDENTIFIER"||s.kind==="PROPERTY"),i=[0];for(let s=0;s0)i[o]--}else if(n(e[s])&&i[i.length-1]===0&&e[s-1]?.kind!=="."&&e[s-1]?.kind!=="?."&&e[s-1]?.kind!=="@"){let o=s;for(;;){if(J.on)J.n++;let l=e[o+1],c=e[o+2];if(l===void 0||!n(c))break;if(l.kind==="."){o+=2;continue}if(l.kind==="-"&&l.start===e[o].end&&c.start===l.end){o+=2;continue}break}if(o>s&&e[o+1]?.kind===":"){let l="";for(let h=s;h<=o;h++)l+=e[h].value;let c={...e[s],kind:"STRING",value:JSON.stringify(l),end:e[o].end};e.splice(s,o-s+1,c)}}if(t.has(e[s].kind))i.push(0);else if(r.has(e[s].kind))i.pop()}return e}function i3(e){for(let t=0;t>>=":"COMPOUND_ASSIGN"},ws={"**=":"COMPOUND_ASSIGN","&&=":"COMPOUND_ASSIGN","||=":"COMPOUND_ASSIGN","??=":"COMPOUND_ASSIGN","<<=":"COMPOUND_ASSIGN",">>=":"COMPOUND_ASSIGN","//=":"COMPOUND_ASSIGN","%%=":"COMPOUND_ASSIGN",">>>":"SHIFT","...":"...","<=>":"BIND"},_s={"==":"COMPARE","!=":"COMPARE","<=":"COMPARE",">=":"COMPARE","**":"**","&&":"&&","||":"||","??":"??","..":"..","+=":"COMPOUND_ASSIGN","-=":"COMPOUND_ASSIGN","*=":"COMPOUND_ASSIGN","/=":"COMPOUND_ASSIGN","%=":"COMPOUND_ASSIGN","&=":"COMPOUND_ASSIGN","^=":"COMPOUND_ASSIGN","|=":"COMPOUND_ASSIGN",":=":"REACTIVE_ASSIGN","~=":"COMPUTED_ASSIGN","<~":"GATE","=!":"READONLY_ASSIGN","<<":"SHIFT",">>":"SHIFT","//":"MATH","%%":"MATH","~>":"EFFECT","!>":"!>","=~":"MATCH","->":"->","=>":"=>","++":"++","--":"--","?.":"?.",".=":"METHOD_ASSIGN","*{":"MAP_START"},n3=new Set([".","?.","UNARY","NEW","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","??","TERNARY","EXTENDS"]),ir=new Set(["IDENTIFIER","PROPERTY",")","CALL_END","NUMBER","STRING","]","INDEX_END","SUPER","DAMMIT","MAYBE_DAMMIT","DYNAMIC_IMPORT"]),at=new Set([...ir,"BOOL","NULL","UNDEFINED","}","PICK_END","STRING_END","REGEX","HEREGEX_END","THIS","@"]);function s3(e,t){let r=t;while(r=e.length||a3.test(e[r+1])))r++;return r}var a3=/[\s,)\]};:]/,ki=/[0-9]/,o3=/^0b[01](?:_?[01])*n?|^0o[0-7](?:_?[0-7])*n?|^0x[\da-f](?:_?[\da-f])*n?|^\d+(?:_\d+)*n|^(?:\d+(?:_\d+)*)?\.?\d+(?:_\d+)*(?:e[+-]?\d+(?:_\d+)*)?/i,l3=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,c3=/^\w*/,Ns=/^(?!.*(.).*\1)[gimsuy]*$/,h3=new Set([...at,"++","--"]);function f3(e,t="",{tolerant:r=!1}={}){An();let n=new ye(e,t),i=[],s=[],a=[],o=[""],l=[],c=0,h=0,f=!0,u=-1,d=!1,p=!1,m=null,g=(_)=>_?.kind==="{"||_?.kind===","||(_?.kind==="INDENT"||_?.kind==="TERMINATOR")&&l.length>0,b=(_)=>Boolean(rr[_]&&_!=="own")||Es.has(_)||Rs.has(_)||Boolean(Ei[_])||_==="in"||_==="of"||_==="when"||_==="import"||_==="export",S=(_,z)=>w&&g(_)&&/^[^\S\n]+as[^\S\n]/.test(z)||R&&_?.kind==="AS",w=!1,R=!1,T=!1,F=0,L=0,C=[],N=(_,z,q=z)=>{let{line:t1,col:P}=n.lineColAt(z),Y=Error(`${t}:${t1+1}:${P+1}: ${_}`);throw Y.reason=_,Y.start=z,Y.end=q,Y},D=(_,z,q=z)=>{try{N(_,z,q)}catch(t1){throw t1.openAtEnd=!0,t1}},O=(_,z,q,t1,P={})=>{if((_==="STRING"||_==="STRING_START")&&(w||R)){let o1=i[i.length-1];if(o1?.kind==="IDENTIFIER"&&o1.value==="from")o1.kind="FROM"}if(_==="IDENTIFIER"&&z==="from"&&i[i.length-1]?.kind==="YIELD")_="FROM";if(_==="IDENTIFIER"&&z==="from"&&i[i.length-1]?.kind==="IDENTIFIER"&&i[i.length-2]?.kind==="ACCEPT")_="FROM";if(_==="RELATION"){let o1=i[i.length-1];if(o1?.kind==="UNARY"&&o1.value==="!")i.pop(),z="!"+z,q=o1.start}let Y={id:L++,kind:_,value:z,start:q,end:t1,spaced:d,newLine:p,generated:!1,origin:null,...P};if(i.push(Y),!Y.generated&&C.length>0){for(let o1 of C)o1.origin=Y.id;C.length=0}d=!1,p=!1},W=(_,z)=>{let q={id:L++,kind:_,value:_,start:z,end:z,spaced:!1,newLine:!1,generated:!0,origin:null};C.push(q),i.push(q)},H=()=>i[i.length-1]??null,G=()=>{let _=i.length-1;while(_>=2&&i[_].kind==="."&&i[_-1].kind==="PROPERTY"&&i[_-2].kind===".")_-=2;let z=i[_-1];if(!z||z.kind==="INDENT"||z.kind==="TERMINATOR"||z.kind==="OUTDENT"||z.kind==="RENDER")return!0;return z.kind==="IDENTIFIER"&&$e.has(String(z.value).split("#")[0])},k=()=>{let _=0,z=0;for(let q=i.length-1;q>=0;q--){let t1=i[q].kind;if(t1==="OUTDENT")_++;else if(t1==="INDENT"){if(_--,_=0;P--){let Y=i[P].kind;if(Y==="TERMINATOR"||Y==="INDENT"||Y==="OUTDENT")break;if(Y==="COMPONENT")return!0}}}}return!1},v=()=>{if(!l[l.length-1]?.pickKeys)return!1;let z=H()?.kind;return z==="PICK_START"||z==="OPTPICK_START"||z===","||z===":"||z==="TERMINATOR"||z==="INDENT"||z==="OUTDENT"},j=(_,z)=>{let q=c;while(c=e.length)D("unterminated string",z);let t1=e.slice(q,c);return c+=_.length,t1},X=(_)=>_.replace(/\\[\s\S]|`|\$\{/g,(z)=>z[0]==="\\"?z:`\\${z}`),x=(_)=>{let z=null,q=/\n+([^\S\n]*)(?=\S)/g,t1;while(t1=q.exec(_))if(z===null||t1[1].length>0&&t1[1].length{if(z===null)return _??"";if(_===null)return z;return z.length<=_.length?z:_},U=(_,z)=>{if(z.length===1)return _;if(_=_.replace(/\r\n?/g,` +var k2=Object.defineProperty;var T2=(e)=>e;function w2(e,t){this[e]=T2.bind(null,t)}var Fe=(e,t)=>{for(var r in t)k2(e,r,{get:t[r],enumerable:!0,configurable:!0,set:w2.bind(t,r)})};class ye{constructor(e,t=""){this.path=t,this.text=e;let r=[0];for(let s=0;sthis.text.length)e=this.text.length;let t=this.lineStarts,r=0,s=t.length-1;while(r<=s){let i=r+s>>1;if(t[i]<=e)r=i+1;else s=i-1}return{line:s,col:e-t[s]}}offsetAt(e,t){if(e<0)return 0;if(e>=this.lineStarts.length)return this.text.length;let r=this.lineStarts[e],s=e+1r&&this.text.charCodeAt(s-1)===13)s--;let i=r+Math.max(0,t);return i>s?s:i}slice(e,t){return this.text.slice(e,t)}}var J={on:!1,n:0},As=()=>{if(J.on=typeof process<"u"&&!!process.env.RIP_COUNT_OPS,J.on)J.n=0;return J.on};class ii extends Error{constructor(e){super(e);this.name="TypeTextError"}}var jt=(e)=>String(e??"").trim(),Be=(e)=>String(e??""),vs=()=>{throw Error("rip: type-text rendering is unavailable in the browser")},Os=()=>{throw Error("rip: type-text rendering is unavailable in the browser")},Is=()=>()=>!1,$s=()=>new Set;function ne(e){return String(e).replace(/([a-z0-9])([A-Z])/g,"$1_$2").toLowerCase()}function si(e){return String(e).replace(/_([a-z])/g,(t,r)=>r.toUpperCase())}function ni(e){return ne(e)+"_id"}function tt(e){if(typeof e!=="string"||!/^[a-z][a-zA-Z0-9]*$/.test(e))return!1;if(/[A-Z]{2,}/.test(e))return!1;return!0}function ai(e){if(typeof e!=="string"||!/^[A-Z][a-zA-Z0-9]*$/.test(e))return!1;if(/[A-Z]{2,}/.test(e))return!1;return!0}function _2(e){return typeof e==="string"&&/^[a-z_][a-z0-9_]*$/.test(e)}function N2(e){return typeof e==="string"&&e.length>0&&!/[\u0000-\u001f\u007f".]/.test(e)}var oi={__proto__:null,mixin:"target",times:"none",softDelete:"none",belongsTo:"target",hasOne:"target",hasMany:"target",index:"columns",unique:"columns",idStart:"int",table:"name",tableWas:"name",primary:"field"},Ds=["idStart","table","tableWas","primary","times","softDelete"],xs=["belongsTo","hasOne","hasMany"],li={__proto__:null,column:"literal",was:"column"},Cs={__proto__:null,as:"property",foreignKey:"column",through:"model",targetKey:"column"};function ci(e,t,r){if(typeof r!=="string"||!r.length)return"'"+t+"' requires a non-empty string";if(e==="property"&&!tt(r))return"'"+t+"' is a property name — canonical camelCase, e.g. {"+t+": author}";if(e==="model"&&!ai(r))return"'"+t+"' is a model name — canonical PascalCase, e.g. {"+t+": Membership}";if(e==="column"&&!_2(r))return"'"+t+"' is a column name Rip generates — lowercase, digits and underscores "+"only, e.g. {"+t+': "author_id"}';if(e==="literal"&&!N2(r))return"'"+t+"' is a database column name — any spelling the database uses, but with "+"no dots, double quotes, or control characters";return null}var A2=new Set(["input","shape","mixin","enum","union","model"]);var v2=new Set(["beforeValidation","afterValidation","beforeSave","afterSave","beforeCreate","afterCreate","beforeUpdate","afterUpdate","beforeDestroy","afterDestroy","afterCommit","afterRollback"]),Ps=new Set(["integer","number","boolean","date","datetime"]),O2={__proto__:null,id:"integer",int:"integer",whole:"integer",float:"number",money:"integer",money_even:"integer",cents:"integer",decimal:"string",bool:"boolean",truthy:"boolean",falsy:"boolean",json:"json",hash:"json",array:"json",ids:{type:"integer",array:!0},string:"string",text:"string",name:"string",address:"string",date:"string",time:"string",time12:"string",email:"email",state:"string",zip:"zip",zipplus4:"string",ssn:"string",sex:"string",phone:"string",username:"string",ip:"string",mac:"string",url:"url",color:"string",uuid:"uuid",semver:"string",slug:"string"},I2=new Set(["string","email","url","phone","zip"]),$2=new Set(["TERMINATOR","INDENT","OUTDENT","=","COMPOUND_ASSIGN","RETURN","THROW","YIELD","AWAIT","EXPORT",",","(","[","{","CALL_START","PARAM_START","INDEX_START","->","=>",":","WHEN","LEADING_WHEN","THEN","IF","UNLESS","UNARY","UNARY_MATH"]),Ls=new Set(["defaultMaxString"]),L1=(e)=>e&&(e.kind==="IDENTIFIER"||e.kind==="PROPERTY"),rt=(e)=>e&&typeof e.value==="string"&&/^[a-z]+$/.test(e.value)&&(e.kind===e.value.toUpperCase()||e.kind==="LEADING_WHEN"||e.kind==="RELATION"||e.kind==="STATEMENT"),D2=(e)=>`__${e}__behavior`,H1=(e,t,r=!1)=>{if(e[t]?.kind!==":")return null;let s=e[t+1];if(!s||s.spaced)return null;if(L1(s)||r&&/^[a-z]+$/.test(s.value)&&s.kind===s.value.toUpperCase())return s;return null};function x2(e,t){if(typeof e?.start!=="number")throw e;t(e)}function Us(e,t,r,s,i=null){if(r.indexOf("schema")===-1)return;let n=[],a={defaultMaxString:null,tolerate:i},o=0,l=0;while(l0){l+=h;continue}if(L2(e,l,s)){l=M2(e,l,n,a,t,s,r);continue}n.push(c),l++}e.length=0;for(let c of n)e.push(c)}function C2(e,t,r,s,i){let n=e[t];if(!n||n.kind!=="IDENTIFIER"||n.value!=="schema")return 0;if(e[t+1]?.kind!==".")return 0;let a=e[t+2];if(!a||a.kind!=="PROPERTY")return 0;if(e[t+3]?.kind!=="=")return 0;let o=e[t-1];if(o&&o.kind!=="TERMINATOR"&&o.kind!=="INDENT"&&o.kind!=="OUTDENT")return 0;let l=a.value;if(!Ls.has(l))i(`unknown schema pragma 'schema.${l}' — known pragmas: ${[...Ls].join(", ")}`,a.start);if(s>0)i(`schema pragma 'schema.${l}' must be declared at file top level — inside a nested block it would leak into later top-level schemas`,a.start);let c=e[t+4];if(!c||c.kind!=="NUMBER")i(`pragma 'schema.${l}' requires a number literal — example: schema.${l} = 100`,(c??a).start);let h=Number(c.value);if(!Number.isFinite(h)||h<0||!Number.isInteger(h))i(`pragma 'schema.${l}' expects a non-negative integer (got ${c.value}); use 0 to disable`,c.start);r[l]=h===0?null:h;let f=t+5;if(e[f]?.kind==="TERMINATOR")f++;return f-t}var Vs=(e,t)=>{if(e[t]?.kind==="SYMBOL")return e[t];return e[t]?.kind===":"&&e[t].spaced?H1(e,t,!0):null},Ws=(e,t)=>e[t]?.kind==="SYMBOL"?1:2,P2=(e,t)=>{if(e[t]?.kind!==","||!L1(e[t+1])||e[t+1].value!=="on")return t;let r=t+2;if(e[r]?.kind===":")r++;while(r")n("inline schema bodies do not support '->' (methods/hooks/scopes/transforms) — use the indented form",R.start);else if(w===0&&(T==="EFFECT"||T==="!>"))n(`inline schema bodies do not support '${R.value}' (${T==="EFFECT"?"computed getters":"eager-derived fields"}) — use the indented form`,R.start);S++}while(S>b&&e[S-1].kind==="TERMINATOR")S--;if(d=e.slice(b,S),p=S,!d.length)n("inline schema body is empty — add '; field; …' entries or switch to the indented form",o.start);m=d[d.length-1].end}else{if(e[h]?.kind==="TERMINATOR")h++;if(e[h]?.kind!=="INDENT")n(`expected an indented schema body after 'schema${c?" :"+l:""}'`,o.start);let b=h,S=0,w=-1;for(let R=b;Rb.kind==="SYMBOL"?[{...b,kind:":",value:":",end:b.start+1},{...b,kind:"IDENTIFIER",start:b.start+1,spaced:!1}]:[b]);let g=j2(l,c,d,{schemaStart:o.start,defaultMaxString:s.defaultMaxString,tolerate:s.tolerate??null},n);if(u)g.adapterTokens=u;return g.start=(c??d[0]).start,g.end=m,g.primitiveSpans=[c,...d].filter((b)=>b&&typeof b.value==="string"&&/^[A-Za-z_$][\w$]*$/.test(b.value)).map((b)=>({value:b.value,sourceStart:b===c&&b.end-b.start===b.value.length+1?b.start+1:b.start,sourceEnd:b.end})),r.push({id:i(),kind:"SCHEMA",value:"schema",start:o.start,end:o.end,spaced:o.spaced}),r.push({id:i(),kind:"SCHEMA_BODY",value:g,start:g.start,end:g.end,spaced:!0}),p}function j2(e,t,r,s,i){let n=[],a=F2(r);if(e==="input"&&!t&&a.length>0&&H1(a[0],0))e="enum";if(e==="enum")for(let o of a)Z2(o,n,i);else if(e==="union"){for(let c of a)J2(c,n,i);let o=n.filter((c)=>c.tag==="directive"&&c.name==="on").length,l=n.filter((c)=>c.tag==="union-member");if(o!==1)i(o===0?":union requires an '@on :field' discriminator — untagged unions are not supported":`:union takes exactly one '@on :field' discriminator (got ${o})`,s.schemaStart);if(l.length<2)i(`:union needs at least two constituent schemas (got ${l.length})`,s.schemaStart)}else{for(let o of a)B2(e,o,n,s,i);if(e==="model")H2(n,i);else for(let o of n){if(o.tag==="scope"||o.tag==="defaultScope")i(`:${e} schemas don't accept query scopes — '@${o.tag==="scope"?"scope":"defaultScope"}' is :model-only`,o.start);if(e==="mixin"&&(o.tag==="method"||o.tag==="computed"||o.tag==="derived"))i(`:mixin schemas are fields-only — '${o.name}' is a ${o.tag}; move it to a :shape or :model`,o.start);if(e==="mixin"&&o.tag==="ensure")i(":mixin schemas don't accept @ensure refinements — move the invariant to a :shape or :model that composes this mixin",o.start);if(e==="input"&&(o.tag==="method"||o.tag==="computed"))i(`:input schemas are fields-only — '${o.name}' is a ${o.tag}; use :shape or :model if you need behavior`,o.start);if(o.tag==="directive"&&o.name!=="mixin")i(`:${e} schemas only accept '@mixin Name'${e==="input"?" and '@ensure'":""} — '@${o.name}' is ${["times","softDelete","belongsTo","hasMany","hasOne","unique","index","idStart","table","tableWas","primary"].includes(o.name)?":model-only":"not a schema directive"}`,o.start)}}return{kind:e,entries:n,toJSON(){return this.kind}}}function F2(e){let t=[],r=[],s=0;for(let i of e){if(i.kind==="INDENT")s++;if(i.kind==="OUTDENT")s--;if(i.kind==="TERMINATOR"&&s===0){if(r.length)t.push(r),r=[];continue}r.push(i)}if(r.length)t.push(r);return t}function B2(e,t,r,s,i){let n=t[0];if(!n)return;if(n.kind==="@"){let F=t[1];if(!L1(F))i("expected a directive name after '@'",n.start);let e1=F.value;if(e1==="ensure"){let d1=2,I=!1;if(t[2]?.kind==="DAMMIT"&&!t[2].spaced)I=!0,d1=3;let l1=G2(t.slice(d1),n,i);for(let L of l1)r.push({tag:"ensure",name:"ensure",message:L.message,field:L.field,fieldStart:L.fieldStart,async:I,paramTokens:L.paramTokens,bodyTokens:L.bodyTokens,start:n.start});return}if(e1==="scope"){let d1=W2(t.slice(2),n,i);r.push({tag:"scope",name:d1.name,paramTokens:d1.paramTokens,bodyTokens:d1.bodyTokens,start:n.start});return}if(e1==="defaultScope"){let d1=Hs(t.slice(2),n,"@defaultScope",i);if(d1.paramTokens.length)i("@defaultScope takes no parameters — write '@defaultScope -> @where(...)'",n.start);r.push({tag:"defaultScope",name:"defaultScope",paramTokens:[],bodyTokens:d1.bodyTokens,start:n.start});return}let Q=null,a1=t.slice(2);if(e1==="mixin"){let d1=a1[0];if(!L1(d1))i("@mixin requires a target name — '@mixin Timestamps'",n.start);if(a1.length>1)i("@mixin takes exactly one schema name",a1[1].start);Q=[{target:d1.value}]}r.push({tag:"directive",name:e1,args:Q,argTokens:a1,start:n.start,nameStart:F.start});return}if(n.kind==="PROPERTY"){if(s.tolerate){try{Ms(e,n,t,r,i)}catch(F){x2(F,s.tolerate)}return}Ms(e,n,t,r,i);return}if(n.kind!=="IDENTIFIER"&&!rt(n))i(`unexpected ${n.kind} at schema top level — allowed: fields ('name! type'), directives ('@name'), methods ('name: -> body'), computed getters ('name: ~> body')`,n.start);let a=n.value;if(t[1]?.kind===":")i(`schema fields use 'name type' (space, no colon) — got '${a}:'`,t[1].start);let o=[],l=1;while(l{if(t[F]?.kind==="STRING"&&t[F].value.startsWith('"'))return{value:JSON.parse(t[F].value),bracketed:!1,start:t[F].start,end:t[F].end,next:F+1};if((t[F]?.kind==="["||t[F]?.kind==="INDEX_START")&&t[F+1]?.kind==="STRING"&&t[F+1].value.startsWith('"')&&(t[F+2]?.kind==="]"||t[F+2]?.kind==="INDEX_END"))return{value:JSON.parse(t[F+1].value),bracketed:!0,start:t[F].start,end:t[F+2].end,next:F+3};return null},S=void 0,w=null,R=b(l);if(m?.kind==="UNARY_MATH"&&m.value==="~"){let F=H1(t,l+1),e1=t[l+1];if(F){f=!0,u=F.value;let Q=O2[u];if(Q&&typeof Q==="object")c=Q.type,d=!0;else c=Q||"any";l+=3}else if(e1?.kind==="IDENTIFIER"&&!e1.spaced){if(!Ps.has(e1.value))i(`'~${e1.value}' is not coercible — built-in coercion exists for: ${[...Ps].join(", ")}; named coercers use a symbol ('~:${e1.value}'); otherwise write a transform ('${a}, -> …')`,e1.start);f=!0,c=e1.value,l+=2}else i("'~' in the type slot marks coercion and needs a type name ('~integer', '~date', …) or a registered coercer symbol ('~:ssn', …)",m.start);p=!0}else if(m?.kind==="IDENTIFIER")c=m.value,p=!0,l++;else if(R&&(!R.bracketed||t[R.next]?.kind==="|")){h=[];let F=(e1)=>{if(h.push(e1.value),e1.bracketed){if(w)i(`field '${a}' brackets more than one union member as its default — a field has one default`,e1.start);S=e1.value,w={start:e1.start,end:e1.end}}};F(R),l=R.next,p=!0;while(t[l]?.kind==="|"){let e1=b(l+1);if(!e1)i(`literal unions contain string literals only — '${t[l+1]?.kind??""}' is not allowed as a union member; use the '?' modifier for nullability`,t[l].start);F(e1),l=e1.next}c="literal-union"}let T=!1,j=(F)=>(t[F]?.kind==="["||t[F]?.kind==="INDEX_START")&&(t[F+1]?.kind==="]"||t[F+1]?.kind==="INDEX_END");if(j(l)){if(T=!0,l+=2,j(l))i(`field '${a}' — nested array types ('${c}[][]') are not supported: one '[]' validates element-wise; use 'json' or a '-> transform' for deeper nesting`,t[l].start)}if(f&&T)i(`coercion ('~${c}') does not apply to array types — coerce per-element with a transform instead`,m.start);if(d)T=!0;if(T&&h)i("array-of-literal-union is not supported — use 'string[]' for an array of strings",m.start);let M=m?.kind==="UNARY_MATH"&&m.value==="~"?t[g+1]:m,x=p?[M.start,t[l-1].end]:null,A=t.slice(l);if(p&&A[0]?.kind==="->")i(`field '${a}' has a transform after the type; a comma is required before '->' — write '${a} ${c}, -> …'`,A[0].start);let C=null,O=void 0,W=!1;if(w)O=S,W=!0;let G={};if(w)G.start=w.start,G.end=w.end;let Y=null,k=null,v=null,U=!1,Z=!1;if(A.length>0){if(A[0]?.kind===",")A=A.slice(1);if(A.length>=2&&A[0].kind==="INDENT"){let e1=0,Q=-1;for(let a1=0;a1"){let d1=il(Q),I=Q[0].kind==="@"&&d1===2;if(d1>0&&!I)i(`field '${a}' has a transform after other content; a comma is required before '->'`,Q[d1].start);if(!I){while(Q.length&&(Q[Q.length-1].kind==="OUTDENT"||Q[Q.length-1].kind==="TERMINATOR"))Q=Q.slice(0,-1);if(!Q.length)continue}}let a1=Q[0];if(a1.kind==="["||a1.kind==="INDEX_START"){if(W)i(`field '${a}' has more than one '[…]' default bracket`,a1.start);O=tl(Q,a,i,G),W=!0}else if(a1.kind==="{"){if(e!=="model"&&e!=="mixin")i(`field attrs ('{…}') are persistence metadata — :model/:mixin-only ('{was: "old_column"}' annotates a column rename)`,a1.start);if(v)i(`field '${a}' has more than one '{…}' attrs bracket`,a1.start);v=U2(Q,a,i)}else if(Q2(Q)){if(C)i(`field '${a}' has more than one range constraint — one 'min..max' per field`,a1.start);C=el(Q,a,i)}else if(a1.kind==="REGEX"&&Q.length===1){if(Y)i(`field '${a}' has more than one regex constraint`,a1.start);Y=rl(a1,i)}else if(a1.kind==="->"){if(e1!==F.length-1)i(`transform '-> …' must be the last element on the field line for '${a}'`,a1.start);k=Q.slice(1)}else if(a1.kind==="@"){let d1=L1(Q[1])?Q[1].value:null;if(e!=="model"&&e!=="mixin")i(`inline '@${d1??""}' on field '${a}' is persistence metadata — :model/:mixin-only ('@unique' marks single-column uniqueness)`,a1.start);if(Q.length>2&&Q[2].kind==="->"){if(e1!==F.length-1)i(`transform '-> …' must be the last element on the field line for '${a}'`,Q[2].start);k=Q.slice(3),Q=Q.slice(0,2)}if(Q.length===2&&d1==="unique"){if(U)i(`field '${a}' has more than one '@unique'`,a1.start);U=!0}else if(Q.length===2&&d1==="primary"){if(e!=="model")i(`inline '@primary' on field '${a}' is :model-only — a mixin cannot declare the primary key`,a1.start);if(Z)i(`field '${a}' has more than one '@primary'`,a1.start);Z=!0}else i(`unknown inline attribute '@${d1??""}' on field '${a}' — the inline attributes are '@unique' and '@primary'`,a1.start)}else i(`unexpected trailer for field '${a}' — expected '[…]' default, '/regex/', 'min..max' range, or '-> transform'`,a1.start)}}if(f&&k)i(`field '${a}' has both '~${c}' coercion and a '->' transform — a transform replaces coercion; coerce inside it instead`,n.start);let P={};if(C){if(C.min!==void 0)P.min=C.min;if(C.max!==void 0)P.max=C.max;if(C.min===void 0&&P.min===void 0&&o.includes("!"))P.min=1}if(Y)P.regex=Y;if(W)P.default=O;if(h&&P.default!==void 0&&!h.includes(P.default))i(`field '${a}' defaults to ${JSON.stringify(P.default)}, which is not a member of its literal union (${h.map((F)=>JSON.stringify(F)).join(" | ")})`,n.start);if(s.defaultMaxString!=null&&!Y&&!h&&I2.has(c)&&P.max===void 0)P.max=s.defaultMaxString;if(P.min!==void 0&&P.max!==void 0&&P.min>P.max)i(`field '${a}' would have impossible constraints min=${P.min} > max=${P.max} after sugar is applied — write an explicit range or drop the conflicting pragma`,n.start);let X=P.min!==void 0||P.max!==void 0||P.default!==void 0||P.regex!==void 0?P:null;r.push({tag:"field",name:a,modifiers:o,typeName:c,array:T,literals:h,coerce:f,coercer:u,constraints:X,transformTokens:k,unique:U,primary:Z,attrs:v,start:n.start,typeSpan:x,defaultSpan:G.start===void 0?null:[G.start,G.end]})}function hi(e,t,r,s){if(e[e.length-1]?.kind!=="}")s(`${r} — the '{…}' options bracket never closes`,e[0].start);let i=e.slice(1,-1).filter((a)=>a.kind!=="TERMINATOR"&&a.kind!=="INDENT"&&a.kind!=="OUTDENT"),n={};for(let a of Ie(i)){if(!a.length)continue;let o=a[0];if(!L1(o))s(`${r} options must be '{key: value}' pairs — got ${o.kind}`,o.start);let l=o.value,c=t[l];if(c===void 0)s(`unknown ${r} option '${l}' — known options: ${Object.keys(t).join(", ")}`,o.start);if(l in n)s(`${r} repeats option '${l}'`,o.start);let h=1;if(a[h]?.kind===":")h++;let f=a.slice(h);if(f.length!==1)s(`${r} option '${l}' takes a single value`,(f[0]??o).start);let u=f[0],d=c==="property"||c==="model",p;if(d){if(!L1(u)&&!rt(u)){let g=u.kind==="STRING"&&u.value.startsWith('"')?JSON.parse(u.value):null,b=g&&!ci(c,l,g)?g:c==="model"?"Membership":"author";s(`${r} option '${l}' names ${c==="model"?"a model":"a property"}, `+`so it is written BARE — '{${l}: ${b}}', not ${u.kind==="STRING"?u.value:`a ${u.kind}`}. Quoting would name a database identifier, which is a different thing`,u.start)}p=u.value}else{if(u.kind!=="STRING"||!u.value.startsWith('"'))s(`${r} option '${l}' names a database column, so it is QUOTED — `+`'{${l}: "${L1(u)?ne(u.value):"author_id"}"}'. A bare name would be a Rip name, which is a different thing`,u.start);p=JSON.parse(u.value)}let m=ci(c,l,p);if(m)s(`${r} option ${m}; got '${p}'`,o.start);n[l]=p}if(!Object.keys(n).length)s(`${r} has an empty '{…}' options bracket`,e[0].start);return n}function U2(e,t,r){return hi(e,li,`field '${t}'`,r)}function V2(e,t,r){let s=hi(e,Cs,`@${t}`,r);if(s.through&&t==="belongsTo")r("@belongsTo option 'through' is for @hasMany/@hasOne — a @belongsTo holds its key in its own row, so it has nothing to read through",e[0].start);if(s.targetKey&&!s.through)r(`@${t} option 'targetKey' names a column on the join model, so it requires 'through' — '{through: Membership, targetKey: "team_id"}'`,e[0].start);return s}function W2(e,t,r){if(!e.length)r("@scope requires ':name, -> body' (or ':name, (args) -> body')",t.start);let s=H1(e,0);if(!s)r("@scope name must be a :symbol — '@scope :active, -> @where(active: true)'",e[0].start);let i=s.value,n=e[2],a=n&&!n.spaced&&n.start===s.end&&(n.value==="!"||n.value==="?");if(a||!/^[a-z][a-zA-Z0-9]*$/.test(i))r(`@scope name ':${i}${a?n.value:""}' must be a lowercase-first alphanumeric identifier — scopes chain as query-builder methods`,s.start);let o=e.slice(2);if(o[0]?.kind===",")o=o.slice(1);if(!o.length)r(`@scope :${i} is missing its body — '@scope :${i}, -> @where(...)'`,s.start);let l=Hs(o,s,`@scope :${i}`,r);return{name:i,paramTokens:l.paramTokens,bodyTokens:l.bodyTokens}}function Hs(e,t,r,s){if(!e.length)s(`${r}: expected '-> body' or '(args) -> body'`,t.start);let i=[],n=0,a=e[0];if(a.kind==="("||a.kind==="PARAM_START"||a.kind==="CALL_START"){let c=1;n=1;while(n0){let h=e[n].kind;if(h==="("||h==="PARAM_START"||h==="CALL_START")c++;if(h===")"||h==="PARAM_END"||h==="CALL_END"){if(c--,c===0){n++;break}}i.push(e[n]),n++}if(c!==0)s(`${r}: unclosed '(' in parameters`,a.start)}let o=e[n];if(o?.kind!=="->")s(`${r}: expected '->' ${i.length?"after parameters":"to start the body"}`,(o??t).start);let l=e.slice(n+1);if(!l.length)s(`${r}: function body is empty`,o.start);return{paramTokens:i,bodyTokens:l}}function H2(e,t){let r=new Set;for(let m of e){if(m.tag!=="directive")continue;let g=oi[m.name];if(g===void 0)t(`unknown directive '@${m.name}' on :model — legal: ${Object.keys(oi).map((b)=>"@"+b).join(", ")}, @ensure, @scope, @defaultScope`,m.nameStart??m.start);if(Ds.includes(m.name)){if(r.has(m.name))t(g==="none"?`duplicate '@${m.name}' — declared twice; a :model declares it once`:`duplicate '@${m.name}' — a :model declares it at most once (the second would silently override the first)`,m.nameStart??m.start);r.add(m.name)}if(m.name!=="mixin")m.args=K2(m,g,t)}if(e.some((m)=>m.tag==="directive"&&m.name==="mixin"))return;let i=new Set,n=new Map,a=new Map,o=new Map,l=(m,g,b,S)=>{if(i.has(g))t(`${n.get(g)} and ${b} both own column '${g}' — every table column has exactly one owner`,S);if(a.has(m))t(`${o.get(m)} and ${b} both own property '${m}' (columns '${a.get(m)}' and '${g}') — every property reads exactly one column`,S);i.add(g),n.set(g,b),a.set(m,g),o.set(m,b)},c=e.find((m)=>m.tag==="directive"&&m.name==="primary"),h=e.filter((m)=>m.tag==="field"&&m.primary);if(h.length>1)t(`both '${h[0].name}' and '${h[1].name}' declare '@primary' — a row has one identity`,h[1].start);if(h.length===1){if(c)t(`'@primary ${c.args[0].name}' and inline '@primary' on field '${h[0].name}' are two answers to one question — state it once`,c.start);c={tag:"directive",name:"primary",args:[{name:h[0].name}],start:h[0].start}}let f=c?c.args[0].column??ne(c.args[0].name):"id",u=c?c.args[0].name:"id",d=e.find((m)=>m.tag==="field"&&m.name===u)??null,p=!!(c&&d);if(!c&&d)t(`field '${u}' collides with the runtime-managed primary key — a :model's ${u} is sequence-assigned. Drop the declaration, or write '@primary ${u}' to make it a caller-supplied natural key instead`,d.start);if(p){if(!d.modifiers?.includes("!"))t(`the primary key '${u}' is declared optional — a row's identity is never absent; declare it required ('${u}! string')`,d.start);if(d.array)t(`the primary key '${u}' is declared as an array — a primary key is one value`,d.start);let m=e.find((g)=>g.tag==="directive"&&g.name==="idStart");if(m)t(`@idStart seeds the sequence behind a runtime-managed primary key, but '${u}' is declared as a field, which makes it caller-supplied — there is no sequence to seed. Drop @idStart, or drop the field declaration`,m.start);if(c.args[0].column!==void 0&&c.args[0].column!==(d.attrs?.column??ne(u)))t(`@primary names column '${c.args[0].column}' but field '${u}' reads a different one — state the column once, on the field`,c.start)}else l(u,f,"the primary key",c?.start??e[0]?.start??0);for(let m of e){if(m.tag!=="field")continue;l(m.name,m.attrs?.column??ne(m.name),`field '${m.name}'`,m.start)}for(let m of e){if(m.tag!=="directive")continue;if(m.name==="times")l("createdAt","created_at","@times",m.start),l("updatedAt","updated_at","@times",m.start);else if(m.name==="softDelete")l("deletedAt","deleted_at","@softDelete",m.start);else if(m.name==="belongsTo"){let g=m.args[0],b=g.foreignKey??ni(g.as??g.target);l(si(b),b,`the @belongsTo ${g.target}${g.as?` (as ${g.as})`:""} relation`,m.start)}}for(let m of e){if(m.tag!=="directive"||m.name!=="index"&&m.name!=="unique")continue;let g=m.args[0].fields.map((b)=>a.get(b)??(i.has(b)?b:ne(b)));g.forEach((b,S)=>{if(g.indexOf(b)!==S)t(`@${m.name} columns must be distinct after canonicalization: ${g.join(", ")}`,m.colTokens?.[S]?.start??m.start)}),g.forEach((b,S)=>{if(!i.has(b))t(`@${m.name}: unknown column '${m.args[0].fields[S]}' — the table has: ${[...i].sort().join(", ")}`,m.colTokens?.[S]?.start??m.start)})}}function K2(e,t,r){let s=e.argTokens??[],i=(n,a)=>r(`@${e.name}: ${a}`,n.start);switch(t){case"none":{if(s.length)i(s[0],"takes no arguments");return null}case"target":{let n=s[0];if(!L1(n))r(`@${e.name} requires a target name — '@${e.name} User'`,(n??{start:e.start}).start);let a=!1,o=1;if(s[o]?.kind==="?"&&!s[o].spaced)a=!0,o++;let l=null;if(s[o]?.kind===","&&s[o+1]?.kind==="{")l=V2(s.slice(o+1),e.name,r),o=s.length;if(oL1(c)||rt(c),l=0;if(H1(s,0)){let c=H1(s,0);n.push(c.value),a.push(c),l=2}else if(o(s[0]))n.push(s[0].value),a.push(s[0]),l=1;else if(s[0]?.kind==="["||s[0]?.kind==="INDEX_START"){let c=1;l=1;let h=[];while(l0){let f=s[l];if(f.kind==="["||f.kind==="INDEX_START")c++;if(f.kind==="]"||f.kind==="INDEX_END"){if(c--,c===0){l++;break}}if(c>=1)h.push(f);l++}if(c!==0)i(s[0],"unclosed '[' in the column list");for(let f of Ie(h)){let u=H1(f,0),d=u??(o(f[0])?f[0]:null);if(!d||f.length>(u?2:1))i(f[u?2:1]??f[0]??s[0],`column names are bare identifiers or :symbols — '@${e.name} [:a, :b]'`);n.push(d.value),a.push(d)}}if(!n.length)r(`@${e.name} requires a field name or list — '@${e.name} :email' or '@${e.name} [:a, :b]'`,(s[0]??{start:e.start}).start);if(l1)i(s[1],`takes one table name — unexpected ${s[1].kind}`);if(o);else{if(/[A-Z]{2,}/.test(a))r(`@${e.name} ${a}: a bare name is a LOGICAL name that Rip snake_cases, and consecutive capitals convert surprisingly ('${a}' → '${ne(a)}'). Spell it 'MdmUser'-style, or name the table exactly by quoting it: '@${e.name} "${a}"'`,n.start);a=ne(a)}return[{name:a}]}case"field":{let n=s[0];if(!L1(n)&&!rt(n))r(`@${e.name} requires a property name — '@${e.name} patientId'`,(n??{start:e.start}).start);let a=1,o=null;if(s[a]?.kind===","&&s[a+1]?.kind==="{")o=hi(s.slice(a+1),li,`@${e.name}`,r),a=s.length;if(a0){let d=r[a].kind;if(d==="("||d==="PARAM_START"||d==="CALL_START")u++;if(d===")"||d==="PARAM_END"||d==="CALL_END"){if(u--,u===0){a++;break}}o.push(r[a]),a++}if(u!==0)i(`'${n}': unclosed '(' in parameters`,r[2].start)}let l=r[a],c=null,h=-1;if(l?.kind==="->"||l?.kind==="EFFECT"||l?.kind==="!>")c=l.kind==="EFFECT"?"~>":l.kind,h=a+1;else if(L1(l)||l?.kind==="STRING"||l?.kind==="NUMBER")i(`schema fields use 'name type' (space, no colon) — got '${n}:'; for methods/computed use 'name: -> body' or 'name: ~> body'`,r[1].start);else i(`schema top-level '${n}:' must be followed by '->' (method), '~>' (computed getter), or '!>' (eager derived)`,r[1].start);let f=c==="~>"?"computed":c==="!>"?"derived":e==="model"&&v2.has(n)?"hook":"method";if(o.length&&f!=="method")i(`'${n}': ${f==="computed"?"computed getters (~>)":f==="derived"?"eager-derived fields (!>)":"lifecycle hooks"} take no parameters — only methods do`,r[1].start);s.push({tag:f,name:n,paramTokens:o,bodyTokens:r.slice(h),start:t.start})}function G2(e,t,r){let s=e;if(!s.length)r("@ensure requires 'message, (x) -> body' or a '[…]' array of pairs",t.start);let i=s[0];if(i.kind==="["||i.kind==="INDEX_START"){let a=Y2(s,i,r),o=z2(a);if(o.length===0)r("@ensure […] must contain at least one 'message, fn' pair",i.start);return js(o,i,r)}let n=Ie(s);if(n.length<2)r("@ensure inline form must be 'message, (x) -> body' — did you forget the comma?",i.start);if(n.length>3||n.length===3&&!Ks(n[1]))r(`@ensure inline form takes 'message[, :field], fn' (got ${n.length} comma-separated parts) — use '@ensure […]' for multiple refinements`,i.start);return js(n,i,r)}var Ks=(e)=>e&&e.length===2&&H1(e,0)!==null;function js(e,t,r){let s=[],i=0;while(i=e.length)r(`@ensure: missing function after message${a?" and :field":""}`,(n[0]??t).start);s.push(q2(n,a,e[i++],t,r))}return s}function Y2(e,t,r){let s=0,i=[];for(let n=0;n=2&&i[0].kind==="INDENT"&&i[i.length-1].kind==="OUTDENT"){let o=0,l=!1;for(let c=0;c=1)i.push(a)}r("@ensure: unclosed '['",t.start)}function z2(e){let t=[],r=[],s=0;for(let i of e){let n=i.kind;if(n==="("||n==="["||n==="{"||n==="CALL_START"||n==="INDEX_START"||n==="PARAM_START"||n==="INDENT")s++;if(n===")"||n==="]"||n==="}"||n==="CALL_END"||n==="INDEX_END"||n==="PARAM_END"||n==="OUTDENT")s--;if(s===0&&(n===","||n==="TERMINATOR")){if(r.length)t.push(r),r=[];continue}r.push(i)}if(r.length)t.push(r);return t}function q2(e,t,r,s,i){if(!e?.length)i("@ensure: missing message (expected a string literal)",s.start);if(e.length!==1||e[0].kind!=="STRING"||!e[0].value.startsWith('"'))i("@ensure: each refinement's first element must be a string literal message",(e[0]??s).start);let n=e[0],a=JSON.parse(n.value),o=t?H1(t,0):null,l=t?o.value:null,c=o?.start??null;if(!r?.length)i("@ensure: missing function after message",n.start);let h=r[0];if(h.kind!=="("&&h.kind!=="PARAM_START")i("@ensure: expected '(args) -> body' after the message — predicates declare their parameter explicitly ('(u) -> …')",h.start);let f=1,u=1,d=[];while(u0){let g=r[u].kind;if(g==="("||g==="PARAM_START")f++;if(g===")"||g==="PARAM_END"){if(f--,f===0){u++;break}}d.push(r[u]),u++}if(f!==0)i("@ensure: unclosed '(' in predicate parameters",h.start);let p=r[u];if(p?.kind!=="->")i("@ensure: expected '->' after predicate parameters",(p??n).start);let m=r.slice(u+1);if(!m.length)i("@ensure: predicate function body is empty",p.start);return{message:a,field:l,fieldStart:c,paramTokens:d,bodyTokens:m}}function Gs(e,t,r,s=null){if(!e.length)return[];let i=X2(e,t,r,s);for(let n=i.length-1;n>=0&&i[n].type===null;n--)i[n].optional=!0;return i}function X2(e,t,r,s){let i=(n)=>n.kind!=="TERMINATOR"&&n.kind!=="INDENT"&&n.kind!=="OUTDENT";return Ie(e).map((n)=>{let a=n.filter((h)=>i(h)&&h.kind!=="TYPE"),o=a.length>=3&&(a[0].kind==="IDENTIFIER"||a[0].kind==="PROPERTY")&&a[1].kind===":";if(!o&&(a.length!==1||a[0].kind!=="IDENTIFIER"))r(`${t}: parameters must be plain identifiers, optionally typed ('name' or 'name: Type')`,(a[0]??n[0]).start);let l=o?[...n].filter(i).pop():null,c=o&&s!==null?jt(s.slice(a[1].end,l.end)).trim():null;return{name:a[0].value,type:c,optional:!1}})}function J2(e,t,r){let s=e[0];if(!s)return;if(s.kind==="@"){let i=e[1];if(!i||i.value!=="on")r(`:union bodies accept only '@on :field' and constituent schema names — '@${i?.value??""}' is not allowed`,(i??s).start);let n=H1(e,2);if(!n)r("@on requires the discriminator field as a symbol — '@on :kind'",(e[2]??i).start);if(e.length>4)r("@on takes exactly one :field symbol",e[4].start);t.push({tag:"directive",name:"on",args:[{field:n.value}],start:s.start});return}if(s.kind==="IDENTIFIER"&&e.length===1){t.push({tag:"union-member",name:s.value,start:s.start});return}r(`:union bodies accept only '@on :field' and bare constituent schema names (one per line) — got ${s.kind}${e.length>1?" followed by "+e[1].kind:""}`,s.start)}function Z2(e,t,r){let s=e[0];if(!s)return;if(s.kind==="@")r(`:enum schemas don't accept '@${e[1]?.value??"directive"}' — enums hold only :symbol members`,s.start);let i=H1(e,0);if(!i)r(`enum member must be a :symbol — use ':${s.value??"name"}' for a bare member or ':${s.value??"name"} value' for a valued one`,s.start);let n=i.value,a=e[2];if(!a){t.push({tag:"enum-member",name:n,value:void 0,start:s.start});return}if(a.kind===":")r(`enum member ':${n}' — drop the ':' before the value; use ':${n} value'`,a.start);if(e.length>3&&!(e.length===4&&a.kind==="-"&&e[3].kind==="NUMBER"))r(`extra tokens after enum member ':${n}' value`,e[3].start);let o=a.kind==="-"&&e[3]?.kind==="NUMBER"?-Number(e[3].value):Ys(a,`enum member ':${n}' value`,r);t.push({tag:"enum-member",name:n,value:o,start:s.start})}function Q2(e){return e.some((t)=>t.kind==="..")&&e.every((t)=>t.kind===".."||t.kind==="NUMBER"||t.kind==="-")}function el(e,t,r){let s=0,i=()=>{let l=1;if(e[s]?.kind==="-")l=-1,s++;let c=e[s++];if(c?.kind!=="NUMBER")r("range endpoints must be numeric literals",(c??e[0]).start);return l*Number(c.value)},n;if(e[s]?.kind!=="..")n=i();s++;let a;if(sa)r(`range '${n}..${a}' is reversed — write the smaller endpoint first`,e[0].start);let o={};if(n!==void 0)o.min=n;if(a!==void 0)o.max=a;return o}function tl(e,t,r,s={}){let i=e.slice(1,-1);if(i.length)s.start=i[0].start,s.end=i[i.length-1].end;let n=Ie(i);if(n.length!==1)r(n.length===2?"size/value ranges use 'min..max' syntax, not brackets — replace the bracket pair with a range":`the constraint bracket takes a single default value (got ${n.length} elements)`,e[0].start);let a=n[0];if(a.length===1&&a[0].kind==="REGEX")r(`regex constraints are written bare, not in brackets — replace '[${a[0].value}]' with '${a[0].value}'`,e[0].start);if(a.length===2&&a[0].kind==="-"&&a[1].kind==="NUMBER")return-Number(a[1].value);let o=H1(a,0);if(o&&a.length===2)return o.value;if(a.length!==1)r(`default values must be literals (number, string, boolean, null, :symbol) — field '${t}'`,a[0].start);return Ys(a[0],`field '${t}' default`,r)}function rl(e,t){let r=/^\/((?:\\.|[^\\/])+)\/([a-z]*)$/.exec(e.value);if(!r)t(`invalid regex literal ${JSON.stringify(e.value)}`,e.start);try{return new RegExp(r[1],r[2])}catch(s){t(`invalid regex '${e.value}': ${s.message}`,e.start)}}function Ys(e,t,r){switch(e.kind){case"NUMBER":return Number(e.value);case"STRING":if(!e.value.startsWith('"'))r(`${t} must be a plain string literal (heredocs have no literal key form)`,e.start);return JSON.parse(e.value);case"BOOL":return e.value==="true";case"NULL":return null;case"UNDEFINED":return;default:r(`${t} must be a literal (number, string, boolean, null) — got ${e.kind}`,e.start)}}function Ie(e){let t=[],r=[],s=0;for(let i of e){let n=i.kind;if(n==="("||n==="["||n==="{"||n==="CALL_START"||n==="INDEX_START"||n==="PARAM_START"||n==="INDENT")s++;if(n===")"||n==="]"||n==="}"||n==="CALL_END"||n==="INDEX_END"||n==="PARAM_END"||n==="OUTDENT")s--;if(n===","&&s===0){if(r.length)t.push(r);r=[];continue}r.push(i)}if(r.length)t.push(r);return t}function il(e){let t=0;for(let r=0;r")return r}return-1}function zs(e,t,r,s=null,i=null,n=!1,a=null,o=null){let l=[],c=(u)=>{if(l.length&&typeof l[l.length-1]==="string")l[l.length-1]+=u;else l.push(u)},h=(u,d=null)=>l.push({ts:u,span:d}),f=(u)=>l.push({body:u});if(c(`{kind: ${JSON.stringify(e.kind)}`),t)c(`, name: ${JSON.stringify(t)}`);if(c(", entries: ["),e.entries.forEach((u,d)=>{if(d>0)c(", ");nl(u,r.get(d),i?.get(d)??null,c,h,n,a?.get(d)??null,o?.get(d)??null,f)}),c("]"),s)c(", adapter: "),f(s);return c("}"),l}var Ue=(e)=>typeof e==="string"?e:e.code;function qs(e,t,r,s){let i=[];return e.entries.forEach((n,a)=>{if(n.tag!=="derived"&&n.tag!=="computed"&&n.tag!=="method")return;let o=r.get(a);if(o===void 0)return;let l=s?.get(a)??null,c=Ue(o);for(let[h,f]of Xs(o,l).reverse())c=c.slice(0,h)+f+c.slice(h);i.push(`${n.name}: ${c}`)}),i.length?`const ${D2(t)} = {${i.join(", ")}};`:null}function Xs(e,t,r=!0){if(typeof e==="string")return[];let s=r?(e.annots??[]).map(([i,n])=>[i,n]):[];if(t!==null){let{code:i,thisAt:n}=e;s.push([n,`this: ${t}${i[n]===")"?"":", "}`])}return s.sort((i,n)=>i[0]-n[0])}function sl(e,t,r,s,i=!1){let n=Xs(e,t,i);if(n.length===0){r(Ue(e));return}let{code:a}=e,o=0;for(let[l,c]of n)r(a.slice(o,l)),s(c),o=l;r(a.slice(o))}function nl(e,t,r,s,i,n=!1,a=null,o=null,l=s){switch(e.tag){case"computed":case"method":case"derived":case"hook":case"scope":case"defaultScope":s(`{tag: ${JSON.stringify(e.tag)}, name: ${JSON.stringify(e.name)}, fn: `),sl(t,r,l,i,n),s("}");return;default:let c={},h=al(e,t,c),f=[];if(n&&a!==null&&c.defaultEnd!==void 0)f.push({at:c.defaultEnd,ts:` satisfies ${a}`,span:e.defaultSpan??null});if(n&&e.tag==="field"&&t!==void 0&&typeof t!=="string"&&Ue(t).startsWith("it",t.thisAt)){let d=Ue(t);f.push({at:h.length-1-d.length+t.thisAt+2,ts:": any"})}if(n&&e.tag==="ensure"&&o!==null&&c.fnAt!==void 0&&typeof t!=="string"&&t!==void 0){let d=/^[A-Za-z_$][\w$]*/.exec(Ue(t).slice(t.thisAt))?.[0];if(d)f.push({at:c.fnAt+t.thisAt+d.length,ts:`: ${o}`})}let u=0;for(let d of f)s(h.slice(u,d.at)),i(d.ts,d.span??null),u=d.at;s(h.slice(u))}}function al(e,t,r={}){if(t!==void 0)t=Ue(t);switch(e.tag){case"field":{let s=['tag: "field"',`name: ${JSON.stringify(e.name)}`,`modifiers: ${JSON.stringify(e.modifiers)}`,`typeName: ${JSON.stringify(e.typeName)}`,`array: ${e.array?"true":"false"}`];if(e.unique)s.push("unique: true");if(e.primary)s.push("primary: true");if(e.literals)s.push(`literals: ${JSON.stringify(e.literals)}`);if(e.coerce){if(s.push("coerce: true"),e.coercer)s.push(`coercer: ${JSON.stringify(e.coercer)}`)}if(e.constraints){let i=[];if(e.constraints.min!==void 0)i.push(`min: ${Ft(e.constraints.min)}`);if(e.constraints.max!==void 0)i.push(`max: ${Ft(e.constraints.max)}`);let n=-1;if(e.constraints.default!==void 0)n=i.length,i.push(`default: ${Ft(e.constraints.default)}`);if(e.constraints.regex!==void 0)i.push(`regex: ${e.constraints.regex.toString()}`);if(i.length){if(n>=0){let a=`{${s.join(", ")}, constraints: {`;r.defaultEnd=a.length+i.slice(0,n+1).join(", ").length}s.push(`constraints: {${i.join(", ")}}`)}}if(e.attrs)s.push(`attrs: {${Object.keys(e.attrs).sort().map((i)=>`${i}: ${Ft(e.attrs[i])}`).join(", ")}}`);if(t)s.push(`transform: ${t}`);return`{${s.join(", ")}}`}case"directive":{let s=['tag: "directive"',`name: ${JSON.stringify(e.name)}`];if(e.args){if(e.name==="mixin"||xs.includes(e.name)){let i=e.args[0];s.push(`args: [{target: ${JSON.stringify(i.target)}${i.optional?", optional: true":""}${i.as?`, as: ${JSON.stringify(i.as)}`:""}${i.foreignKey?`, foreignKey: ${JSON.stringify(i.foreignKey)}`:""}${i.through?`, through: ${JSON.stringify(i.through)}`:""}${i.targetKey?`, targetKey: ${JSON.stringify(i.targetKey)}`:""}}]`)}else if(e.name==="primary")s.push(`args: [{name: ${JSON.stringify(e.args[0].name)}${e.args[0].column?`, column: ${JSON.stringify(e.args[0].column)}`:""}}]`);else if(e.name==="on")s.push(`args: [{field: ${JSON.stringify(e.args[0].field)}}]`);else if(e.name==="unique"||e.name==="index")s.push(`args: [{fields: ${JSON.stringify(e.args[0].fields)}}]`);else if(e.name==="idStart")s.push(`args: [{value: ${e.args[0].value}}]`);else if(e.name==="table"||e.name==="tableWas")s.push(`args: [{name: ${JSON.stringify(e.args[0].name)}}]`)}return`{${s.join(", ")}}`}case"ensure":{let s=['tag: "ensure"',`message: ${JSON.stringify(e.message)}`];r.fnAt=`{${s.join(", ")}, fn: `.length;let i=[...s,`fn: ${t}`];if(e.field)i.push(`field: ${JSON.stringify(e.field)}`);if(e.async)i.push("async: true");return`{${i.join(", ")}}`}case"enum-member":{let s=['tag: "enum-member"',`name: ${JSON.stringify(e.name)}`];if(e.value!==void 0)s.push(`value: ${JSON.stringify(e.value)}`);return`{${s.join(", ")}}`}case"union-member":return`{tag: "union-member", name: ${JSON.stringify(e.name)}}`;default:throw Error(`schema: unknown entry tag '${e.tag}'`)}}function Ft(e){if(e===null)return"null";if(e===void 0)return"undefined";if(typeof e==="string")return JSON.stringify(e);return String(e)}var ol=new Set(["pick","omit","partial","required","extend"]);function W1(e){return e&&e.valueOf?e.valueOf():e}function Js(e){return e.entries.some((t)=>t.tag==="directive"&&t.name==="mixin")}function ll(e){return si(e.foreignKey??ni(e.as??e.target))}function cl(e){if(Js(e))return null;let t=new Map;for(let a of e.entries)if(a.tag==="field")t.set(a.name,a);if(e.kind!=="model")return t;let r=(a,o,l)=>{if(!t.has(a))t.set(a,{tag:"field",name:a,modifiers:l?["!"]:["?"],typeName:o,array:!1})},s=!1,i=!1,n=[];for(let a of e.entries){if(a.tag!=="directive")continue;if(a.name==="times")s=!0;else if(a.name==="softDelete")i=!0;else if(a.name==="belongsTo"){let o=a.args&&a.args[0];if(o&&o.target)n.push({fk:ll(o),required:o.optional!==!0})}}if(r("id","integer",!0),s)r("createdAt","datetime",!0),r("updatedAt","datetime",!0);if(i)r("deletedAt","datetime",!1);for(let{fk:a,required:o}of n)r(a,"integer",o);return t}function hl(e){if(Js(e))return null;let t=new Map;for(let r of e.entries)if(r.tag==="field")t.set(r.name,r);return t}function Fs(e,t){let r=e.modifiers.filter((i)=>i!==(t==="partial"?"!":"?")),s=t==="partial"?"?":"!";if(!r.includes(s))r=[...r,s];return{...e,modifiers:r}}function fl(e,t,r){switch(t.method){case"pick":{let s=new Map;for(let i of t.keys){if(!e.has(i))return null;s.set(i,e.get(i))}return s}case"omit":{let s=new Set(t.keys),i=new Map;for(let[n,a]of e)if(!s.has(n))i.set(n,a);return i}case"partial":{let s=new Map;for(let[i,n]of e)s.set(i,Fs(n,"partial"));return s}case"required":{let s=new Set(t.keys),i=new Map;for(let[n,a]of e)i.set(n,s.has(n)?Fs(a,"required"):a);return i}case"extend":{let s=t.otherDescriptor||r.get(t.otherName);if(!s)return null;let i=hl(s);if(!i)return null;let n=new Map(e);for(let[a,o]of i){if(n.has(a))return null;n.set(a,o)}return n}default:return null}}function ul(e,t,r){let s=cl(e);if(!s)return null;for(let i of t)if(s=fl(s,i,r),!s)return null;return{kind:"shape",entries:[...s.values()]}}function dl(e){let t=[],r=e;while(!0){if(!Array.isArray(r))return null;let s=r[0];if(!Array.isArray(s))return null;if(W1(s[0])!==".")return null;let i=W1(s[2]);if(!ol.has(i))return null;let n=r.slice(1),a;if(i==="partial"){if(n.length)return null;a={method:i}}else if(i==="extend"){if(n.length!==1)return null;let c=n[0];if(Array.isArray(c)){let h=W1(c[0])==="schema"&&c.length===2&&c[1]&&typeof c[1]==="object"&&Array.isArray(c[1].entries)?c[1]:null;if(!h||h.kind!=="shape"&&h.kind!=="input")return null;a={method:i,otherDescriptor:h}}else{let h=W1(c);if(typeof h!=="string"||!/^[A-Za-z_$][\w$]*$/.test(h))return null;a={method:i,otherName:h}}}else{let c=ml(n);if(!c||!c.length)return null;a={method:i,keys:c}}t.unshift(a);let o=s[1];if(Array.isArray(o)){r=o;continue}let l=W1(o);if(typeof l!=="string")return null;return{base:l,ops:t}}}function ml(e){let t=[];for(let r of e)if(Array.isArray(r)){if(W1(r[0])!=="array")return null;for(let s=1;s{r[2]=["schema",t]})}var Bt=new Set(["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","link","main","map","mark","menu","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","script","search","section","select","slot","small","source","span","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"]),Ve=new Set(["a","animate","animateMotion","animateTransform","circle","clipPath","defs","desc","ellipse","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","foreignObject","g","image","line","linearGradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tspan","use","view"]),$e=new Set([...Bt,...Ve]),fi=new Set([...Ve].filter((e)=>!Bt.has(e))),Ut=new Set(["abort","animationcancel","animationend","animationiteration","animationstart","auxclick","beforeinput","beforematch","beforetoggle","blur","cancel","canplay","canplaythrough","change","click","close","command","compositionend","compositionstart","compositionupdate","contextlost","contextmenu","contextrestored","copy","cuechange","cut","dblclick","drag","dragend","dragenter","dragleave","dragover","dragstart","drop","durationchange","emptied","ended","error","focus","focusin","focusout","formdata","fullscreenchange","fullscreenerror","gotpointercapture","input","invalid","keydown","keypress","keyup","load","loadeddata","loadedmetadata","loadstart","lostpointercapture","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","paste","pause","play","playing","pointercancel","pointerdown","pointerenter","pointerleave","pointermove","pointerout","pointerover","pointerrawupdate","pointerup","progress","ratechange","reset","resize","scroll","scrollend","securitypolicyviolation","seeked","seeking","select","selectionchange","selectstart","slotchange","stalled","submit","suspend","timeupdate","toggle","touchcancel","touchend","touchmove","touchstart","transitioncancel","transitionend","transitionrun","transitionstart","volumechange","waiting","webkitanimationend","webkitanimationiteration","webkitanimationstart","webkittransitionend","wheel"]),Qs=new Set(["disabled","hidden","readonly","required","checked","selected","autofocus","autoplay","controls","loop","muted","multiple","novalidate","open","reversed","defer","async","formnovalidate","allowfullscreen","inert","ismap","nomodule","playsinline","default","itemscope","alpha","shadowrootdelegatesfocus","shadowrootclonable","shadowrootserializable"]),De=new Set(["accesskey","autocapitalize","autocorrect","autofocus","class","contenteditable","dir","draggable","enterkeyhint","hidden","id","inert","inputmode","is","itemid","itemprop","itemref","itemscope","itemtype","lang","nonce","popover","role","slot","spellcheck","style","tabindex","title","translate","writingsuggestions"]),it={__proto__:null,a:["href","target","download","ping","rel","hreflang","type","referrerpolicy"],area:["alt","coords","shape","href","target","download","ping","rel","referrerpolicy"],audio:["src","crossorigin","preload","autoplay","loop","muted","controls"],base:["href","target"],blockquote:["cite"],button:["command","commandfor","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","name","popovertarget","popovertargetaction","type","value"],canvas:["width","height"],col:["span"],colgroup:["span"],data:["value"],del:["cite","datetime"],details:["name","open"],dialog:["open","closedby"],embed:["src","type","width","height"],fieldset:["disabled","form","name"],form:["accept-charset","action","autocomplete","enctype","method","name","novalidate","rel","target"],iframe:["src","srcdoc","name","sandbox","allow","allowfullscreen","width","height","referrerpolicy","loading"],img:["alt","src","srcset","sizes","crossorigin","usemap","ismap","width","height","referrerpolicy","decoding","loading","fetchpriority"],input:["accept","alpha","alt","autocomplete","checked","colorspace","dirname","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","height","list","max","maxlength","min","minlength","multiple","name","pattern","placeholder","popovertarget","popovertargetaction","readonly","required","size","src","step","type","value","width"],ins:["cite","datetime"],label:["for"],li:["value"],link:["href","crossorigin","rel","media","integrity","hreflang","type","referrerpolicy","sizes","imagesrcset","imagesizes","as","blocking","disabled","fetchpriority"],map:["name"],meta:["name","http-equiv","content","charset","media"],meter:["value","min","max","low","high","optimum"],object:["data","type","name","form","width","height"],ol:["reversed","start","type"],optgroup:["disabled","label"],option:["disabled","label","selected","value"],output:["for","form","name"],progress:["value","max"],q:["cite"],script:["src","type","nomodule","async","defer","crossorigin","integrity","referrerpolicy","blocking","fetchpriority"],select:["autocomplete","disabled","form","multiple","name","required","size"],slot:["name"],source:["type","media","src","srcset","sizes","width","height"],style:["media","blocking"],table:["align","bgcolor","border","cellpadding","cellspacing","width"],tbody:["align","valign"],td:["colspan","rowspan","headers","align","bgcolor","height","nowrap","valign","width"],template:["shadowrootmode","shadowrootdelegatesfocus","shadowrootclonable","shadowrootserializable"],tfoot:["align","valign"],textarea:["autocomplete","cols","dirname","disabled","form","maxlength","minlength","name","placeholder","readonly","required","rows","wrap"],th:["colspan","rowspan","headers","scope","abbr","align","bgcolor","height","nowrap","valign","width"],thead:["align","valign"],time:["datetime"],tr:["align","bgcolor","valign"],track:["default","kind","label","src","srclang"],video:["src","crossorigin","poster","preload","autoplay","playsinline","loop","muted","controls","width","height"]};for(let e in it)it[e]=new Set(it[e]);var st=new Set(["id","class","style","lang","tabindex","href","pathLength","crossorigin","transform","viewBox","preserveAspectRatio","xmlns","x","y","x1","y1","x2","y2","cx","cy","r","rx","ry","width","height","d","points","dx","dy","rotate","fill","fill-opacity","fill-rule","stroke","stroke-width","stroke-linecap","stroke-linejoin","stroke-dasharray","stroke-dashoffset","stroke-opacity","stroke-miterlimit","opacity","clip-path","clip-rule","mask","filter","color","display","visibility","pointer-events","vector-effect","dominant-baseline","text-anchor","font-family","font-size","font-weight","font-style","letter-spacing","offset","stop-color","stop-opacity","gradientUnits","gradientTransform","spreadMethod","patternUnits","patternContentUnits","patternTransform","markerWidth","markerHeight","refX","refY","orient","markerUnits","maskUnits","maskContentUnits","clipPathUnits","filterUnits","primitiveUnits","in","in2","result","stdDeviation","values","type","mode","operator","radius","scale","baseFrequency","numOctaves","seed","dur","repeatCount","begin","end","from","to","attributeName","keyTimes","keySplines","calcMode","restart","min","max"]);function ui(e){let t=String(e).toLowerCase(),r=new Set(De),s=it[t];if(s)for(let i of s)r.add(i);if(Ve.has(String(e)))for(let i of st)r.add(i);return[...r]}function gl(e,t){if(Math.abs(e.length-t.length)>2)return 3;let r=Array.from({length:t.length+1},(s,i)=>i);for(let s=1;s<=e.length;s++){let i=[s];for(let n=1;n<=t.length;n++)i[n]=Math.min(r[n]+1,i[n-1]+1,r[n-1]+(e[s-1]===t[n-1]?0:1));r=i}return r[t.length]}function en(e,t){let r=ui(e),s=String(t).toLowerCase(),i=r.find((l)=>l.toLowerCase()===s);if(i!==void 0&&i!==t)return i;if(String(t).length<3)return null;let n=null,a=3,o=!1;for(let l of r){if(l===String(t))continue;let c=gl(String(t),l);if(c=e.length)return null;if(!j1.test(e[t]))return null;let r=t+1;while(r$e.has(String(e).split("#")[0]),G1=(e)=>typeof e==="string"&&bl.test(e),mi=(e)=>kl(e)||G1(e);function Vt(e){if(!Array.isArray(e)||e[0]!=="."||e.length!==3||typeof e[2]!=="string")return null;let t=[e[2]],r=e[1];while(Array.isArray(r)){if(r[0]!=="."||r.length!==3||typeof r[2]!=="string")return null;t.push(r[2]),r=r[1]}if(typeof r!=="string"||r==="this"||!Z1(r))return null;return t.push(r),t.reverse().join(".")}var pi=(e)=>Array.isArray(e)&&G1(e[2])?Vt(e):null,Wt=(e)=>e.split(".")[0];function an(e,t,r){let s=!1;for(let Y of e)if(Y.kind==="RENDER"){s=!0;break}if(!s)return e;let i=[],n=(Y,k,v,U={})=>{let{at:Z,...P}=U,X=Z??v.end;return{id:t(),kind:Y,value:k,start:X,end:X,spaced:!1,newLine:!1,generated:!0,origin:v.id,...P}},a=!1,o=0,l=0,c=[],h=[],f=[],u=(Y,k,v)=>k{let P=1,X=k;while(X>=0&&P>0){if(J.on)J.n++;let F=u(Y,X,Z)?.kind;if(F===v)P++;else if(F===U)P--;if(P>0)X--}return X},p=(Y)=>{let k=i.length;while(k>0&&u(i,k,Y)?.kind==="OUTDENT")k=d(i,k-1,"OUTDENT","INDENT",Y);while(k>0){if(J.on)J.n++;let U=i[k-1].kind;if(U==="TERMINATOR"||U==="RENDER")break;if(U==="OUTDENT"){k=d(i,k-2,"OUTDENT","INDENT",Y);continue}if(U==="INDENT"){let Z=u(i,k,Y)?.kind;if(Z==="CALL_END"||Z===")"){k=d(i,k-1,Z,Z==="CALL_END"?"CALL_START":"(",Y);continue}break}if(U==="CALL_END"||U===")"){k=d(i,k-2,U,U==="CALL_END"?"CALL_START":"(",Y);continue}if(U==="INTERPOLATION_END"){k=d(i,k-2,"INTERPOLATION_END","INTERPOLATION_START",Y);continue}if(U==="STRING_END"){k=d(i,k-2,"STRING_END","STRING_START",Y);continue}k--}let v=u(i,k,Y);return v?.kind==="IDENTIFIER"&&(mi(v.value)||(k===0||["INDENT","TERMINATOR","RENDER"].includes(i[k-1]?.kind)))},m=()=>{let Y=0;for(let k=i.length-1;k>=0;k--){if(J.on)J.n++;let v=i[k].kind;if(sn.has(v))Y++;else if(rn.has(v)){if(Y===0)return 1;Y--}else if(v==="TERMINATOR"||v==="RENDER"||v==="INDENT"||v==="OUTDENT")break}return 0},g=(Y)=>{let k=i[i.length-1];if(!k)return!1;if(m()!==0)return!1;let v=k.kind;if((v===","||v==="IDENTIFIER"||v==="PROPERTY")&&p(Y))return!0;if((v==="INDENT"||v==="TERMINATOR")&&h.includes(l))return!0;return!1},b=(Y)=>{let k=1;for(let v=Y+1;v0;v++){if(J.on)J.n++;let U=e[v].kind;if(U==="("||U==="CALL_START")k++;else if(U===")"){if(k--,k===0)e[v].kind="CALL_END"}else if(U==="CALL_END")k--}},S=(Y)=>{let k=1;for(let v=i.length-1;v>=0&&k>0;v--){if(J.on)J.n++;if(i[v].kind==="CALL_END")k++;else if(i[v].kind==="CALL_START"){if(k--,k===0&&v>0&&i[v-1].kind==="PROPERTY"&&i[v-1].value==="__clsx")return!0}}return!1},w=(Y)=>{while(f.length>0){let k=f[f.length-1];if(Y.kind==="INDENT"||rn.has(Y.kind)){k.depth++;return}if(Y.kind==="OUTDENT"||sn.has(Y.kind)){if(k.depth===0){i.push(n("CALL_END",")",i[i.length-1]??Y)),f.pop();continue}k.depth--;return}if(Y.kind==="TERMINATOR"&&k.depth===0){i.push(n("CALL_END",")",i[i.length-1]??Y)),f.pop();continue}return}},R=(Y)=>Y===0||nt.has(e[Y-1].kind),T=(Y,k)=>{let v=e[Y+1]?.kind==="TYPE"?e[Y+2]:e[Y+1];return v!==void 0&&k.has(v.kind)},j=new Set;for(let Y=0,k=0;Y{let k=new Set,v=Y+1;while(vA.some((k)=>k.names.has(Y))||x.length>0&&x[x.length-1].names.has(Y)||j.has(Y);for(let Y=0;Y0)w(k);if(!nt.has(k.kind)&&R(Y))O=k.kind;if(k.kind==="COMPONENT")x.push({level:l+1,names:M(Y)});if(k.kind==="RENDER"){a=!0,o=l+1,A.push({level:o,names:new Set}),i.push(k);continue}if(k.kind==="INDENT"){if(l++,a){let U=e[Y-1]?.kind;if(U==="->"||U==="=>")C.push(l);else if(C.length===0&&Rl.has(O))A.push({level:l,names:new Set(O==="FOR"?W??[]:[])})}W=null,i.push(k);continue}if(k.kind==="OUTDENT"){l--;for(let U of[x,A])while(U.length>0&&U[U.length-1].level>l)U.pop();while(C.length>0&&C[C.length-1]>l)C.pop();while(h.length>0&&h[h.length-1]>l)h.pop();i.push(k);while(c.length>0&&c[c.length-1]>l)i.push(n("CALL_END",")",k)),c.pop();if(a&&l0){let U=i[i.length-1].kind;if(U==="TERMINATOR"||U==="INDENT"||U==="RENDER"){i.push(n("IDENTIFIER","__text__",k,{at:k.start,spaced:k.spaced,newLine:k.newLine})),i.push(n("CALL_START","(",k,{at:k.start})),f.push({depth:0});continue}}if(k.kind==="UNARY_MATH"&&k.value==="~"&&v?.kind==="IDENTIFIER"){i.push(n("PROPERTY","__transition__",k,{spaced:k.spaced,newLine:k.newLine})),i.push(n(":",":",k)),v.kind="STRING",v.value=`"${v.value}"`,v.transitionValue=!0;continue}if(k.transitionValue&&v!==null&&nn.has(v.kind)){i.push(k),i.push(n(",",",",k,{at:v.start}));continue}if(k.kind==="BIND"){let U=i[i.length-1];if(U!==void 0&&(U.kind==="IDENTIFIER"||U.kind==="PROPERTY")&&v!==null&&(v.kind==="IDENTIFIER"||v.kind==="@")){U.value=`__bind_${U.value}__`,i.push(n(":",":",k));continue}}if(k.kind==="IDENTIFIER"&&v?.kind==="-"&&!v.spaced){let U=[k.value],Z=Y+1,P=k.end;while(Z+11&&e[Z-1].kind==="PROPERTY"){let X=U.join("-");i.push({...k,kind:"STRING",value:`"${X}"`,end:P}),Y=Z-1;continue}}if(k.kind==="."){let U=i[i.length-1]?.kind;if(U==="INDENT"||U==="TERMINATOR"||U==="RENDER"){if(v?.kind==="PROPERTY"){let Z=e[Y+2];if(!Z||Z.kind!==":"){i.push(n("IDENTIFIER","div",k,{spaced:k.spaced,newLine:k.newLine})),i.push(k);continue}k={...k,kind:"IDENTIFIER",value:"div"}}else if(!v||v.kind!=="(")k={...k,kind:"IDENTIFIER",value:"div"}}}if(k.kind==="."&&v?.kind==="("){let U=i[i.length-1]?.kind,Z=U==="INDENT"||U==="TERMINATOR"||U==="RENDER";if(v.kind="CALL_START",b(Y+1),Z)i.push(n("IDENTIFIER","div",k,{spaced:k.spaced,newLine:k.newLine})),i.push(k),i.push(n("PROPERTY","__clsx",k));else if(U===":")i.push(n("IDENTIFIER","__clsx",k,{spaced:k.spaced,newLine:k.newLine}));else i.push(k),i.push(n("PROPERTY","__clsx",k));continue}if(k.kind==="@"&&v?.kind==="PROPERTY"&&!v.spaced){let U=e[Y+2],Z=U?.kind===".",P=U?.kind===":";if(!Z&&!P&&g(k)){let X=String(v.value),F=`on${X[0].toUpperCase()}${X.slice(1)}`;if(U?.kind==="=")r(`a \`=\` cannot follow a bare event directive on one line — \`@${X} = expr\` would assign to the minted handler and invoke the assignment as the listener; bind explicitly (\`@${X}: handler\`), or keep the bare \`@${X}\` and put the text on its own \`= expr\` line`,U.start);if(i.push(k),i.push(v),i.push(n(":",":",v)),i.push(n("@","@",v)),i.push(n("PROPERTY",F,v)),Y++,e[Y+1]?.kind==="INDENT")i.push(n(",",",",v,{at:e[Y+1].start})),i.push(n("->","->",v,{at:e[Y+1].start,newLine:!0})),h.push(l+1);else if(e[Y+1]!==void 0&&nn.has(e[Y+1].kind))i.push(n(",",",",v,{at:e[Y+1].start}));continue}}if(v?.kind==="INDENT"&&k.kind!=="->"&&k.kind!=="=>"&&k.kind!=="CALL_START"&&k.kind!=="("){let U=i[i.length-1]?.kind,Z=["IF","UNLESS","WHILE","UNTIL","WHEN","FORIN","FOROF","FORAS","FORASAWAIT","BY"].includes(U),P=k.kind==="IDENTIFIER"&&(U==="INDENT"||U==="TERMINATOR"||U==="RENDER"),X=k.kind==="IDENTIFIER"&&mi(k.value)&&(P||!G(k.value)),F=!1,e1=!1;if(k.kind==="CALL_END")e1=S(k);if(e1)F=!0;else if(X&&!Z)F=!0;else if(k.kind==="IDENTIFIER"&&!Z)F=P||p(k);else if(["PROPERTY","STRING","STRING_END","NUMBER","BOOL","CALL_END",")","]","INDEX_END","}","MAYBE_DAMMIT"].includes(k.kind))F=p(k);if(F){let Q=!1;if(k.kind==="PROPERTY"&&i[i.length-1]?.kind==="."){let d1=i.length;while(d1>=2&&i[d1-1].kind==="."&&i[d1-2].kind==="PROPERTY")d1-=2;if(d1>=2&&i[d1-1].kind==="."&&i[d1-2].kind==="IDENTIFIER"&&(mi(i[d1-2].value)||G1(k.value))){let I=i[d1-3]?.kind??null;if(I===null||["INDENT","OUTDENT","TERMINATOR","RENDER"].includes(I))Q=!0}}let a1=e1||X||P||Q;if(i.push(k),a1)i.push(n("CALL_START","(",k,{at:v.start})),i.push(n("->","->",k,{at:v.start,newLine:!0})),c.push(l+1);else i.push(n(",",",",k,{at:v.start})),i.push(n("->","->",k,{at:v.start,newLine:!0}));h.push(l+1);continue}}if(k.kind==="IDENTIFIER"&&G1(k.value)&&(v?.kind==="OUTDENT"||v?.kind==="TERMINATOR")){i.push(k),i.push(n("CALL_START","(",k)),i.push(n("CALL_END",")",k));continue}i.push(k)}e.length=i.length;for(let Y=0;Yr(a)&&a[0]==="."&&a[1]==="this"&&a[2]==="rest",i=(a)=>a.replace(/^"|"$/g,""),n=(a)=>{if(!r(a))return;if(a[0]==="."&&s(a[1])&&typeof a[2]==="string")t.add(a[2]);else if(a[0]==="[]"&&s(a[1])&&typeof a[2]==="string"&&/^".*"$/.test(a[2]))t.add(i(a[2]));else if(Tl.has(a[0])&&a.length===3&&r(a[1])&&a[1][0]==="object"&&s(a[2])){for(let o of a[1].slice(1))if(r(o)&&typeof o[1]==="string")t.add(i(o[1]))}for(let o of a)n(o)};for(let a of e)n(a);if(t.has("class")||t.has("className"))t.add("class"),t.add("className");return t}function bi(e,t,r){let s=t(e,r);if(s.length===0)return e;let i=e.length-1,n=s.length-1;e.length+=s.length;for(let a=e.length-1;a>=0;a--){if(J.on)J.n++;if(n>=0&&(i<0||s[n].at>i))e[a]=s[n--].token;else e[a]=e[i--]}return e}var wl=new Set(["IF","UNLESS","WHILE","UNTIL","WHEN","LEADING_WHEN","CATCH","FOR","LOOP","CLASS"]),_l=new Set(["(","[","{","PICK_START","OPTPICK_START","CALL_START","INDEX_START","PARAM_START","STRING_START","INTERPOLATION_START","HEREGEX_START"]),Nl=new Set([")","]","}","PICK_END","CALL_END","INDEX_END","PARAM_END","STRING_END","INTERPOLATION_END","HEREGEX_END"]);function Al(e,t){let r=0;for(let s=t-1;s>=0;s--){if(J.on)J.n++;let i=e[s].kind;if(Nl.has(i)||i==="OUTDENT"){r++;continue}if(_l.has(i)||i==="INDENT"){if(r===0)return!1;r--;continue}if(r>0)continue;if(wl.has(i))return!0;if(i==="TERMINATOR")return!1}return!1}function vl(e,t){let r=new Set(["(","[","{","PICK_START","OPTPICK_START","CALL_START","INDEX_START","PARAM_START","STRING_START","INTERPOLATION_START","HEREGEX_START"]),s=new Set([")","]","}","PICK_END","CALL_END","INDEX_END","PARAM_END","STRING_END","INTERPOLATION_END","HEREGEX_END"]),i=[],n=[],a=(p,m)=>{let g=0;for(let b=m-1;b>=p;b--){if(J.on)J.n++;let S=e[b].kind;if(s.has(S)||S==="OUTDENT"){g++;continue}if(r.has(S)||S==="INDENT"){if(S==="INDENT")return!1;if(g--,g<0)return!1;continue}if(g>0)continue;if(Kt(e,b))return!0}return!1},o=(p,m)=>{let g=0;for(let b=m-1;b>=p;b--){if(J.on)J.n++;let S=e[b].kind;if(s.has(S)||S==="OUTDENT"){g++;continue}if(r.has(S)||S==="INDENT"){if(g--,g<0)return!1;continue}if(g>0)continue;if(S===":"&&e[b-1]?.kind==="PROPERTY")return un(e,m+1);if(S==="TERMINATOR")return!1}return!1},l=new Set(["IF","UNLESS","TRY","CATCH","FINALLY","SWITCH","FOR","CLASS"]),c=(p)=>{let m=0,g=0,b=0;for(let S=p;S({id:t(),kind:p,value:p,start:m,end:m,spaced:!1,newLine:!1,generated:!0,origin:g}),f=(p)=>{let m=c(p),g=null;for(let R=p;R=p;R--){if(J.on)J.n++;if(!e[R].generated){b=e[R];break}}let S=null;for(let R=m;R{while(n.length&&n[n.length-1].end===p){let m=n.pop();i.push({at:p,token:h("OUTDENT",m.closeAt,m.afterId)}),u=p}};for(let p=0;p"||m.kind==="=>")&&e[p+1]&&e[p+1].kind!=="INDENT"){let g=f(p+1);i.push({at:p+1,token:h("INDENT",g.openAt,g.firstReal?g.firstReal.id:null)}),n.push(g)}else if(m.kind==="THEN"&&Al(e,p)){let g=f(p+1);m.kind="INDENT",m.value="INDENT",m.generated=!0,m.start=m.end=g.firstReal?g.firstReal.start:m.end,m.origin=g.firstReal?g.firstReal.id:null,n.push(g)}else if(m.kind==="ELSE"&&e[p+1]&&e[p+1].kind!=="INDENT"&&e[p+1].kind!=="IF"&&(u===p||e[p-1]?.kind==="OUTDENT")){let g=f(p+1);i.push({at:p+1,token:h("INDENT",g.openAt,g.firstReal?g.firstReal.id:null)}),n.push(g)}}return d(e.length),i}var Ht=new Set(["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS","DAMMIT","?","MAYBE_DAMMIT"]),ln=new Set(["IDENTIFIER","PROPERTY","NUMBER","STRING","STRING_START","REGEX","HEREGEX_START","SYMBOL","MAP_START","PARAM_START","IF","TRY","SWITCH","CLASS","THIS","SUPER","UNDEFINED","NULL","BOOL","UNARY","NEW","DO","DO_IIFE","UNARY_MATH","AWAIT","YIELD","THROW","@","->","=>","[","(","{","--","++"]),cn=new Set(["POST_IF","POST_UNLESS","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR","||","&&","??","THEN","ELSE"]),hn=new Set(["IF","TRY","FINALLY","CATCH","SWITCH","FOR","CLASS"]),fn=new Set(["IDENTIFIER","PROPERTY","NUMBER","STRING","STRING_END","REGEX","HEREGEX_END",")","CALL_END","]","INDEX_END","}","PICK_END","BOOL","NULL","UNDEFINED","THIS","@"]),oe=new Set(["(","[","{","PICK_START","OPTPICK_START","CALL_START","INDEX_START","PARAM_START","STRING_START","INTERPOLATION_START","HEREGEX_START","INDENT"]),ae=new Set([")","]","}","PICK_END","CALL_END","INDEX_END","PARAM_END","STRING_END","INTERPOLATION_END","HEREGEX_END","OUTDENT"]),Kt=(e,t)=>{let r=e[t],s=e[t+1];if(!r||!s||!s.spaced||!Ht.has(r.kind))return!1;if((r.kind==="]"||r.kind==="}")&&(s.kind==="->"||s.kind==="=>"))return!1;if(r.kind==="IDENTIFIER"&&(r.value==="Infinity"||r.value==="NaN")&&(s.kind==="->"||s.kind==="=>"))return!1;if(ln.has(s.kind))return!0;return s.kind==="..."&&e[t+2]!=null&&ln.has(e[t+2].kind)},un=(e,t)=>{if(!e[t])return!1;let r=(s)=>(e[s]?.kind==="DAMMIT"||e[s]?.kind==="VOID_MARKER")&&e[s+1]?.kind===":";if(e[t].kind==="@"&&(e[t+2]?.kind===":"||r(t+2)))return!0;if(e[t+1]?.kind===":"||r(t+1))return!0;if(oe.has(e[t].kind)){let s=1,i=t;while(++i0){if(J.on)J.n++;if(oe.has(e[i].kind))s++;else if(ae.has(e[i].kind))s--}if(s===0&&e[i]?.kind===":")return!0}return!1},dn=new Set(["->","=>","[","(",",","{","ELSE","="]),gi=new Set(["INDENT","OUTDENT","TERMINATOR"]),Ol=new Set(["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL","DEF"]),mn=(e,t)=>{let r=0;for(;t>=0;t--){if(J.on)J.n++;let s=e[t].kind;if(r===0&&Ol.has(s))return!0;if(ae.has(s)){r++;continue}if(oe.has(s)){if(r>0){r--;continue}if(!e[t].generated||gi.has(s))return!1;continue}if(r===0&&gi.has(s))return!1}return!1};function Il(e,t){let r=[],s=[],i=[0],n=null,a=-1,o=()=>r[r.length-1],l=(g,b,S,w={})=>({id:t(),kind:g,value:g,start:b,end:b,spaced:w.spaced??!1,newLine:w.newLine??!1,generated:!0,origin:S}),c=(g)=>{r.pop(),s.push({at:g,token:l("}",n?n.end:0,n?n.id:null)})},h=(g)=>un(e,g),f=()=>{for(let g=r.length-1;g>=0;g--){if(J.on)J.n++;let b=r[g];if(b.kind==="object")return b;if(!(b.kind==="INDENT"&&b.listContinuation))return null}return null},u=(g,b)=>{if(e[b]?.kind!=="...")return!1;let S=r[r.indexOf(g)-1];if(!S||!(S.kind==="["||S.kind==="CALL_START"))return!0;return p(S.at,g.at)},d=(g)=>{let b=e[g-1];return Boolean(b&&Ht.has(b.kind)&&h(g+1)&&!mn(e,g-1))},p=(g,b)=>{let S=0;for(let w=b-1;w>g;w--){if(J.on)J.n++;let R=e[w].kind;if(ae.has(R)){S++;continue}if(oe.has(R)){if(R==="INDENT"&&S===0)return d(w);if(S--,S<0)return!1;continue}if(S>0)continue;if(R==="TERMINATOR")return!1;if(Kt(e,w))return!0}return!1},m=(g)=>{for(let b=0;g1)i.pop();if(S==="OUTDENT")for(let R=r.length-1;R>=0;R--){let T=r[R];if(T.kind!=="object"&&T.kind!=="CONTROL")break;if(T.kind==="object")T.sameLine=!1}continue}if(S==="TERNARY")i[i.length-1]++;if(S===":"){let R=i.length-1;if(i[R]>0){i[R]--;continue}if(w?.kind==="DAMMIT")w.kind="VOID_MARKER";let T=w?.kind==="VOID_MARKER"?1:0,j=ae.has(w?.kind)?o()?.at??g-1:g-1-T;if(e[g-2-T]?.kind==="@")j=g-2-T;let M=e[j-1],A=!Kt(e,j-1)&&(j<=0||gi.has(M?.kind)||Boolean(M?.newLine)),C=o(),O=r[r.length-2],W=(U)=>U&&(U.kind==="{"||U.kind==="PICK_START"||U.kind==="OPTPICK_START"||U.kind==="object"),G=(U)=>U==="{"||U==="PICK_START"||U==="OPTPICK_START",Y=C?.kind==="INDENT"&&C.listContinuation?f():null,k=Boolean(Y),v=Y?Y.at:C?.kind==="INDENT"&&O?O.at:C?.at;if(C&&(W(C)||C.kind==="INDENT"&&(G(O?.kind)||k))&&!(v!=null&&p(v,j))&&(A||M?.kind===","||G(M?.kind)||e[j]?.kind==="{"))continue;r.push({kind:"object",at:j,sameLine:!0,startsLine:A}),s.push({at:j,token:l("{",e[j].start,e[j].id,{spaced:e[j].spaced,newLine:e[j].newLine})});continue}if(cn.has(S)||(S==="."||S==="?.")&&b.newLine){if(S==="||"||S==="&&"||S==="??"||S==="ELSE")continue;if(S==="TERMINATOR"){i[i.length-1]=0;for(let R=r.length-1;R>=0;R--){let T=r[R];if(T.kind!=="object"&&T.kind!=="CONTROL")break;if(T.kind==="object")T.sameLine=!1}}while(o()?.kind==="object"||S==="TERMINATOR"&&o()?.kind==="CONTROL"&&o()?.trigger==="CLASS"){let R=o();if(R.kind==="CONTROL"){r.pop();continue}if(S==="TERMINATOR")if(w?.kind!==","&&!(R.startsLine&&(h(g+1)||u(R,g+1))))c(g);else break;else if(R.sameLine&&w?.kind!==":"&&!((S==="POST_IF"||S==="POST_UNLESS")&&R.startsLine&&m(g+1)))c(g);else break}continue}if(S===","){let R=f(),T=(j)=>h(j)||u(R,j);if(R&&!p(R.at,g)&&!T(g+1)&&(e[g+1]?.kind!=="TERMINATOR"||!T(g+2))){if(e[g+1]?.kind==="INDENT"&&T(g+2))a=g;else if(o()?.kind==="object"){let j=e[g+1]?.kind==="OUTDENT"?1:0;while(o()?.kind==="object")c(g+j)}}}}if(e.length&&!e[e.length-1].generated)n=e[e.length-1];while(o()?.kind==="object"||o()?.kind==="CONTROL")if(o().kind==="object")c(e.length);else r.pop();return s}function $l(e,t){let r=[],s=[],i=-1,n=(l,c,h)=>({id:t(),kind:l,value:l==="CALL_START"?"(":")",start:c,end:c,spaced:!1,newLine:!1,generated:!0,origin:h}),a=null,o=(l)=>{r.pop(),s.push({at:l,token:n("CALL_END",a?a.end:0,a?a.id:null)})};for(let l=0;l0&&!e[l-1].generated)a=e[l-1];if(r[r.length-1]==="call"&&hn.has(f)&&!(f==="FOR"&&!c.newLine&&e[l-1]&&fn.has(e[l-1].kind))){r.push(f==="CLASS"?"CONTROL_CLASS":"CONTROL");continue}if(f==="INDENT"){if(l===i){r.push("INDENT");continue}let u=e[l-1];if(!u||!dn.has(u.kind))while(r[r.length-1]==="call")o(l);if(r[r.length-1]==="CONTROL"||r[r.length-1]==="CONTROL_CLASS")r.pop();r.push("INDENT");continue}if(oe.has(f))r.push(f);else if(ae.has(f)){while(r[r.length-1]==="call"||r[r.length-1]==="CONTROL"||r[r.length-1]==="CONTROL_CLASS")if(r[r.length-1]==="call")o(l);else r.pop();r.pop()}if(cn.has(f)||(f==="."||f==="?.")&&c.newLine){if(f==="||"||f==="&&"||f==="??")continue;if(f==="ELSE"&&e[l-1]?.kind==="OUTDENT")continue;if(e[l-1]?.kind!==",")while(r[r.length-1]==="call"||f==="TERMINATOR"&&r[r.length-1]==="CONTROL_CLASS")if(r[r.length-1]==="call")o(l);else r.pop();continue}if(Kt(e,l)||Ht.has(f)&&h&&h.spaced&&(h.kind==="+"||h.kind==="-")&&e[l+2]&&!e[l+2].spaced&&!e[l+2].newLine)s.push({at:l+1,token:n("CALL_START",h.start,h.generated?h.origin:h.id)}),r.push("call");else if(Ht.has(f)&&h?.kind==="INDENT"&&e[l+2]?.kind==="{"&&e[l+2].generated&&!mn(e,l))s.push({at:l+1,token:n("CALL_START",e[l+2].start,e[l+2].origin)}),r.push("call"),i=l+1}if(e.length&&!e[e.length-1].generated)a=e[e.length-1];while(r[r.length-1]==="call"||r[r.length-1]==="CONTROL"||r[r.length-1]==="CONTROL_CLASS")if(r[r.length-1]==="call")o(e.length);else r.pop();return s}var Gt=(e,t)=>bi(e,vl,t),Yt=(e,t)=>bi(e,Il,t),zt=(e,t)=>bi(e,$l,t);var Sn=new Map([["as","CAST"],["satisfies","SATISFIES"]]),Zt=(e)=>e?.kind==="IDENTIFIER"&&Sn.has(e.value),Rn=new Set(["IDENTIFIER","PROPERTY","NUMBER","STRING","STRING_END","REGEX","HEREGEX_END","BOOL","NULL","UNDEFINED",")","CALL_END","PARAM_END","]","INDEX_END","}","PICK_END","THIS","@","SUPER","?","MAYBE_DAMMIT","DAMMIT","CAST","SATISFIES","IMPORT_META"]),Dl=new Set(["IDENTIFIER","PROPERTY","(","CALL_START","PARAM_START","{","[","INDEX_START","STRING","NUMBER","BOOL","NULL","UNDEFINED","-","UNARY","NEW","RESERVED"]),le=new Set(["(","CALL_START","PARAM_START","[","INDEX_START","{","PICK_START","OPTPICK_START"]),ce=new Set([")","CALL_END","PARAM_END","]","INDEX_END","}","PICK_END"]),xl=new Set(["TERMINATOR","INDENT","OUTDENT",",","=","COMPOUND_ASSIGN","REACTIVE_ASSIGN","COMPUTED_ASSIGN","READONLY_ASSIGN","GATE","EFFECT","->"]),Cl=new Set(["+","-","MATH","**","SHIFT","COMPARE","MATCH","&&","||","??","^","RELATION","TERNARY","?","MAYBE_DAMMIT",":","?.","DAMMIT","EXTENDS","..","...","IF","UNLESS","ELSE","THEN","WHILE","UNTIL","LOOP","FOR","WHEN","BY","SWITCH","RETURN","THROW","CATCH","FINALLY"]),Pl=new Set(["IF","UNLESS","ELSE","THEN","WHILE","UNTIL","LOOP","FOR","WHEN","BY","SWITCH","RETURN","THROW"]),Ll=new Set(["IDENTIFIER","PROPERTY","RESERVED","NUMBER","STRING","TYPE_TEMPLATE","BOOL","NULL","UNDEFINED","THIS",".",",",":","?","TERNARY","...","|","&","=>","EXTENDS","(",")","PARAM_START","PARAM_END","[","]","INDEX_START","INDEX_END","{","}","INDENT","OUTDENT","TERMINATOR"]),Ml=new Set(["IDENTIFIER","PROPERTY","RESERVED","NUMBER","STRING","TYPE_TEMPLATE","BOOL","NULL","UNDEFINED","THIS",")","PARAM_END","]","INDEX_END","}"]),jl=new Set(["TERMINATOR","INDENT","OUTDENT","{",","]),Jt=(e,t,r)=>{if(t-1{let n=0,a=[],o=(u=0)=>a[a.length-1-u],l=null,c=!1,h=[],f=(u,d)=>{n-=d;for(let p=0;p"){f(d,1),c=!0;continue}if(p==="SHIFT"&&d.value===">>"){f(d,2),c=!0;continue}if(p==="SHIFT"&&d.value===">>>"){f(d,3),c=!0;continue}if(p==="UNARY"&&d.value==="typeof"){c=!1;continue}if(d.word==="is"&&c&&u-2>=t&&(e[u-1].kind==="IDENTIFIER"||e[u-1].kind==="PROPERTY"||e[u-1].kind==="THIS")&&(e[u-2].kind==="=>"||e[u-2].value==="asserts"||e[u-2].kind===":"&&e[u-3]?.kind==="CALL_END")){c=!1;continue}if(p==="RELATION"&&d.value==="in"&&o()==="["&&o(1)==="{"&&u-2>=t&&(e[u-2].kind==="["||e[u-2].kind==="INDEX_START")&&(e[u-1].kind==="IDENTIFIER"||e[u-1].kind==="PROPERTY")&&Jt(e,u-2,t)){c=!1;continue}if(d.value==="?"&&c&&e[u+1]?.kind===":"){c=!1;continue}if(p==="-"&&e[u+1]?.kind==="NUMBER"&&!c){u++,c=!0;continue}if((p==="-"||p==="+")&&e[u+1]?.value==="readonly"&&(e[u+2]?.kind==="["||e[u+2]?.kind==="INDEX_START")&&o()==="{"&&Jt(e,u,t)){c=!1;continue}if((p==="-"||p==="+")&&e[u+1]?.value==="?"&&e[u+2]?.kind===":"&&o()==="{"&&(e[u-1]?.kind==="]"||e[u-1]?.kind==="INDEX_END")){c=!0;continue}if(p==="="&&n>0){c=!1;continue}if((o()==="{"||i.methods&&o()===void 0)&&p==="CALL_START"){let m=e[u-1],g=Jt(e,u-1,t);if(m&&(m.kind==="IDENTIFIER"||m.kind==="PROPERTY")&&g){let b=1,S=u+1;while(S0){if(e[S].kind==="CALL_START")b++;else if(e[S].kind==="CALL_END")b--;S++}if(b===0&&e[S]?.kind===":"){h.push(S-1),a.push("("),c=!1;continue}if(b===0)s(`an interface method shorthand needs a return type — \`${m.value}(…): T\``,m.start)}}if(p==="CALL_END"&&u===h[h.length-1]){h.pop(),a.pop(),c=!0;continue}if(Ll.has(p)){if(pn.has(p))a.push(pn.get(p));else if(Fl.has(p))a.pop();c=Ml.has(p);continue}s(`code expression ('${d.word??d.value}') in a type body — types erase and cannot execute`,d.start)}if(n>0)s("unclosed '<' in a type body — the generic never closes",l.start)},Bl=new Set(["=",":","COMPOUND_ASSIGN","REACTIVE_ASSIGN","COMPUTED_ASSIGN","READONLY_ASSIGN",",","[","(","{","CALL_START","INDEX_START","PARAM_START","PICK_START","OPTPICK_START","RETURN","THROW","AWAIT","YIELD"]),ee=(e,t)=>{let r=e[t];if(!r)return!0;if(r.kind==="TERMINATOR"||r.kind==="EXPORT"||r.kind==="OFFER")return!0;if(r.kind!=="INDENT"&&r.kind!=="OUTDENT")return!1;let s=0;for(let i=t;i>=0;i--){if(J.on)J.n++;let n=e[i].kind;if(n==="OUTDENT")s++;else if(n==="INDENT"){if(s===0){let a=e[i-1];return!(a&&Bl.has(a.kind))}s--}}return!0},Si=(e,t,r)=>{if(r<=t)return!1;let s=new Set(["|","&",",",":","?","TERNARY",".","..."]),i=0,n=0,a=0,o=0,l=!1,c=[],h=null;for(let f=t;f"){let p=f>t?e[f-1].kind:null;if((p===")"||p==="PARAM_END")&&h&&(h.colon||h.empty)){l=!1;continue}return!1}if(u==="("||u==="PARAM_START"){c.push({colon:!1,open:f}),i++,l=!1;continue}if(u===")"||u==="PARAM_END"){if(--i<0)return!1;let p=c.pop();h=p?{colon:p.colon,empty:f===p.open+1}:null,l=!0;continue}if(u==="["||u==="INDEX_START"){n++,l=!1;continue}if(u==="]"||u==="INDEX_END"){if(--n<0)return!1;l=!0;continue}if(u==="{"){a++,l=!1;continue}if(u==="}"){if(--a<0)return!1;l=!0;continue}if(u==="COMPARE"){if(d==="<"){o++,l=!1;continue}if(d===">"){if(o<=0)return!1;o--,l=!0;continue}return!1}if(u==="SHIFT"){if(d===">>"){if(o<2)return!1;o-=2,l=!0;continue}if(d===">>>"){if(o<3)return!1;o-=3,l=!0;continue}return!1}if(u==="="){if(o>0){l=!1;continue}return!1}if(s.has(u)){if(u===":"&&c.length)c[c.length-1].colon=!0;l=!1;continue}if(u==="IDENTIFIER"||u==="PROPERTY"||u==="NUMBER"||u==="RESERVED"||u==="STRING"||u==="NULL"||u==="UNDEFINED"||u==="BOOL"){if(l)return!1;l=!0;continue}return!1}return i===0&&n===0&&a===0&&o===0&&l},gn=(e,t,r,s)=>{let i=[],n=[],a=[],o=0,l=t,c=e[t-1]?.end??0,h=(u)=>s("unclosed '<' in a type — the generic argument list never closes"+(r.cast?"; if the '<' was meant as a comparison, parenthesize the cast: '(x as T) < y'":""),u.start),f=(u,d)=>{for(let p=0;pl&&u.newLine)break;if(d==="SHIFT"&&(u.value===">>"||u.value===">>>")&&a.length>0){f(u,u.value===">>"?2:3),i.push(u.value),c=u.end,t++;continue}if(d==="COMPARE"&&u.value===">"){if(o===0)break;f(u,1),i.push(u.value),c=u.end,t++;continue}if(le.has(d)||d==="COMPARE"&&u.value==="<"){o++;let m=d==="{"?"{":d==="["||d==="INDEX_START"?"[":d==="COMPARE"?"<":"(";if(n.push(m),m==="<")a.push(u);i.push(u.value),c=u.end,t++;continue}if(ce.has(d)){if(o===0)break;if(n[n.length-1]==="<")h(a[a.length-1]);o--,n.pop(),i.push(u.value),c=u.end,t++;continue}if(d==="INTERPOLATION_END"||d==="STRING_END"||d==="HEREGEX_END")break;if(o===0){if(xl.has(d))break;if(r.stopAtFatArrow&&d==="=>")break;if(r.stopAtThen&&d==="THEN")break;if(r.cast&&Cl.has(d))if(t===l&&(d==="-"||d==="+")&&e[t+1]?.kind==="NUMBER"){if(d==="+")s("a numeric literal type spells its sign with '-' (TypeScript has no '+1' type)",u.start,e[t+1].end)}else break;if(r.alias&&Pl.has(d))break}else{if(d==="INDENT"||d==="OUTDENT"){t++;continue}if(d==="TERMINATOR"){i.push(";"),c=u.end,t++;continue}if(d==="PROPERTY"&&n[n.length-1]==="{"){let m=i[i.length-1];if(m&&m!=="{"&&m!==","&&m!==";")i.push(";")}}if(d==="?"&&!u.spaced&&e[t+1]?.kind===":"&&i.length){i[i.length-1]+="?",c=u.end,t++;continue}i.push(u.word==="is"?u.word:u.value),c=u.end,t++}if(a.length)h(a[0]);return{parts:i,consumed:t-l,end:c}},Ul=(e)=>e.join(" ").replace(/\s+/g," ").trim().replace(/\s*<\s*/g,"<").replace(/\s*>\s*/g,">").replace(/\s*\[\s*/g,"[").replace(/\s*\]\s*/g,"]").replace(/\s*\(\s*/g,"(").replace(/\s*\)\s*/g,")").replace(/\s*,\s*/g,", ").replace(/\s*=>\s*/g," => ").replace(/ : /g,": "),Vl=(e,t,r)=>{let s=(l)=>l==="("||l==="PARAM_START"||l==="CALL_START",i=(l)=>l===")"||l==="PARAM_END"||l==="CALL_END";if(r-t<2||!s(e[t].kind))return!1;let n=0;for(let l=t;l{if(!(e[t]?.kind==="COMPARE"&&e[t].value==="<"&&!e[t].spaced))return t;let r=0;while(t")r--;else if(s.kind==="SHIFT"&&s.value===">>")r-=2;else if(s.kind==="SHIFT"&&s.value===">>>")r-=3;else if(s.kind==="TERMINATOR"||s.kind==="INDENT"||s.kind==="OUTDENT")return-1;if(t++,r===0)break}return r===0?t:-1},Qt=(e,t)=>{if(t<0||!e[t]||Ri(e[t])>=0)return t;let r=0;while(t>=0){if(J.on)J.n++;let s=e[t];if(s.kind==="TERMINATOR"||s.kind==="INDENT"||s.kind==="OUTDENT")return-1;if(r+=Ri(s),t--,r===0)break}return r===0?t:-1},er=(e,t)=>{let r=Qt(e,t-1);if(r<0||e[r]?.kind!=="IDENTIFIER")return!1;let s=e[r-1];if(!(s?.kind==="IDENTIFIER"&&s.value==="type"))return!1;return ee(e,r-2)},Ri=(e)=>e.kind==="COMPARE"&&e.value==="<"?1:e.kind==="COMPARE"&&e.value===">"?-1:e.kind==="SHIFT"&&e.value===">>"?-2:e.kind==="SHIFT"&&e.value===">>>"?-3:0,Q1=(e,t)=>{let r=e[t];if(!r||r.kind!=="IDENTIFIER"&&r.kind!=="PROPERTY")return!1;if(e[t-1]?.kind==="DEF")return!0;return r.kind==="PROPERTY"&&e[t-1]?.kind==="@"&&e[t-2]?.kind==="DEF"},Wl=(e,t)=>{let r=e[t-1];if(!r)return!1;if(r.kind===")"||r.kind==="CALL_END"||r.kind==="PARAM_END")return!0;if(r.kind==="IDENTIFIER"||r.kind==="PROPERTY"){if(Q1(e,t-1))return!0;let s=e[t-2]?.kind==="@"?t-3:t-2;if(ee(e,s))return!0}if(r.kind==="VOID_MARKER"&&Q1(e,t-2))return!0;return null},bn=(e)=>e.kind==="TERMINATOR"||e.kind==="INDENT"||e.kind==="OUTDENT",Hl=(e,t)=>{if(t.upTo>e.length||t.upTo>0&&e[t.upTo-1]!==t.ref){t.answers.clear(),t.level=0;let r=e.length-1;while(r>=0&&!bn(e[r])){if(J.on)J.n++;r--}t.upTo=r+1}for(let r=t.upTo;r{let s=e[e.length-1];if(!s)return!1;if(!(s.kind==="COMPARE"&&s.value===">"||s.kind==="SHIFT"&&(s.value===">>"||s.value===">>>")))return!1;if(t)return!0;return Hl(e,r),r.answers.get(r.level)??!1},Xt=(e,t)=>{let r=0,s=!1;for(let i=t+1;i")return-1;if(n==="=>")s=!0;else if(n==="="||n==="REACTIVE_ASSIGN"||n==="COMPUTED_ASSIGN"||n==="READONLY_ASSIGN"||n==="GATE"||n==="EFFECT"){if(!s||Si(e,t+1,i))return i}}}return-1},Kl=(e)=>{let t=[new Map],r=Array(e.length),s=[{id:0,up:null}],i=0;for(let n=0;n"||l==="=>";s.push({id:o,up:c?null:s[s.length-1]})}else if(a==="OUTDENT"){if(s.length>1)s.pop()}else if(le.has(a))i++;else if(ce.has(a))i--;else if(i===0&&(a==="IDENTIFIER"||a==="PROPERTY")&&e[n+1]?.kind==="=")for(let o=s[s.length-1];o;o=o.up){if(J.on)J.n++;t[o.id].set(e[n].value,n)}}return{blockMaps:t,blockIdAt:r}},Gl=(e,t)=>{let r=0;for(;t"||s==="=>")return!0;if(s==="TERMINATOR"||s==="INDENT"||s==="OUTDENT")return!1}}return!1},Yl=(e,t)=>{let r=0;for(let s=t+1;s{let s=0;for(let i=t;i{let r=0;for(let s=t;s","=>","DO","DO_IIFE","TRY","LOOP"]),Jl=new Set(["IF","UNLESS","SWITCH","WHILE","UNTIL","FOR","CLASS"]),Zl=new Set(["->","=>","THEN","ELSE"]),Ql=new Set(["TERMINATOR","INDENT","OUTDENT","THEN","ELSE","IF","UNLESS","POST_IF","POST_UNLESS","WHILE","UNTIL","LOOP","FOR","WHEN","BY","SWITCH","RETURN","THROW",",","=","COMPOUND_ASSIGN","&&","||","??","TERNARY","?",":","RELATION","+","-","MATH","**","SHIFT","&","|","^","STRING_START","STRING_END","INTERPOLATION_START","INTERPOLATION_END"]),e3=new Map([["yes","true"],["no","false"],["on","true"],["off","false"],["true","true"],["false","false"],["null","null"],["undefined","undefined"],["this","this"]]);function tr(e,t,r,s){let i=[],n=[],a=new WeakSet,o=()=>n[n.length-1]??null,l=!1,c=[],h=()=>c.length>0&&!!c[c.length-1],f=()=>c[c.length-1]??!1,u=(A)=>{let C=e3.get(A.value);if(C===void 0)return;s(`'${A.value}' cannot name a binding — every read of '${A.value}' lowers to \`${C}\`, so the binding would be unreachable`,A.start,A.end)},d=-1,p=0,m=!1,g=!1,b=null,S=(A,C)=>(b??=Kl(e),(b.blockMaps[b.blockIdAt[A]].get(C)??-1)>=A),w=null,R=(A)=>{let C=[],O=A,W=!0,G=-1;for(;;){if(J.on)J.n++;let U=Yl(e,O);if(U<0){if(Xt(e,O)>=0)break;C.push({colon:O,shaped:!1,assigned:!1}),W=!1,G=-1;break}if(ql(e,O+1,U)){C.push({colon:O,shaped:!1,assigned:!1}),W=!1,G=-1;break}C.push({colon:O,shaped:U>O+1&&Si(e,O+1,U),assigned:S(U+1,e[O-1].value)}),G=U;let Z=e[U+1];if(Z&&(Z.kind==="IDENTIFIER"||Z.kind==="PROPERTY")&&e[U+2]?.kind===":"){O=U+2;continue}break}let Y=G>=0?e[G+1]:null,k=W&&Y!=null&&Y.kind!=="OUTDENT",v=k&&C.every((U)=>U.shaped&&U.assigned);if(!v&&k&&C.some((U)=>U.shaped)&&C.some((U)=>U.assigned)){let U=C.find((X)=>!(X.shaped&&X.assigned)),Z=e[U.colon-1],P=U.shaped?`'${Z.value}' is never assigned in this block`:`the value after '${Z.value}:' is not a type`;s("these adjacent 'name:' lines are ambiguous — with every line a type and every "+`name assigned later they would all claim as typed forward declarations, but ${P}; for typed forwards, assign every name in this block or add an initializer ('${Z.value}: T = value'); for an implicit object, parenthesize the literal or assign it to a target`,Z.start)}w??=new Map;for(let U of C)w.set(U.colon,v);return v},T=(A,C,O,W,G)=>({id:t(),kind:A,value:C,start:O,end:W,spaced:G.spaced,newLine:G.newLine,generated:!1,origin:null}),j=(A,C,O,W)=>{if(e[O]?.kind===":")s("type annotations use a single ':' (e.g. `x: number`), not '::'",C.start,e[O].end);let G=gn(e,O,W,s);if(G.parts.length===0)return-1;for(let Y=O;Y R) => body`, not `(x): (a: T) => R => body`",e[O].start);return i.push(T(A,Ul(G.parts),C.start,G.end,C)),O+G.consumed-1},M=(A)=>{let C=A+1;if(e[C]?.kind!=="IDENTIFIER")return-1;if(C++,C=qt(e,C),C<0)return-1;if(e[C]?.kind!=="=")return-1;if(C++,e[C]?.kind==="INDENT"){let G=yn(e,C);return yi(e,C+1,G,s,{methods:!0}),G}let O=gn(e,C,{alias:!0},s);if(O.parts.length===0)s("a type alias needs a type after '='",e[C-1].end);yi(e,C,C+O.consumed,s);let W=e[C+O.consumed];if(W&&W.kind!=="TERMINATOR"&&W.kind!=="OUTDENT")s(`a type alias must fill its line — unexpected '${W.value}' after the type`,W.start);return C+O.consumed-1},x=(A)=>{let C=A+1;if(e[C]?.kind!=="IDENTIFIER")return-1;if(C++,C=qt(e,C),C===-1)return-1;if(e[C]?.kind==="EXTENDS"){if(e[C+1]?.kind!=="IDENTIFIER")return-1;if(C+=2,C=qt(e,C),C===-1)return-1}if(e[C]?.kind!=="INDENT")return-1;let O=yn(e,C);return yi(e,C+1,O,s,{methods:!0}),O};for(let A=0;A=0){let Y=W?.kind==="EXPORT"?i.pop():C,k=e[G].end;i.push(T("TYPE_DECL",r.slice(Y.start,k).replace(/\r\n/g,` +`),Y.start,k,C)),A=G;continue}}if(Zt(C)&&W&&W.kind!=="."&&W.kind!=="?."&&Rn.has(W.kind)&&e[A+1]&&(Dl.has(e[A+1].kind)||e[A+1].kind==="+"&&e[A+2]?.kind==="NUMBER")){let G=j(Sn.get(C.value),C,A+1,{cast:!0});if(G<0)s(`'${C.value}' takes a type — \`x ${C.value} T\``,C.start,C.end);if(G>=0){A=G;let Y=e[A+1],k=i[i.length-1];if(Y&&Y.newLine&&Y.kind!=="TERMINATOR"&&Y.kind!=="INDENT"&&Y.kind!=="OUTDENT"&&!Zt(Y)){let v=r.slice(k.end,Y.start),U=v.indexOf(` +`);if(U>=0){let Z=v[U-1]==="\r",P=k.end+U-(Z?1:0),X=Z?2:1;i.push({id:t(),kind:"TERMINATOR",value:r.slice(P,P+X),start:P,end:P+X,spaced:!1,newLine:!1,generated:!0,origin:null})}}continue}}if(O==="COMPARE"&&C.value==="<"&&!C.spaced&&W&&(W.kind==="IDENTIFIER"||Q1(i,i.length-1))){let G=i[i.length-2]??null,Y=qt(e,A);if(Y>A){let k=Y-1,v=e[k+1]?.kind,U=G?.kind==="DEF"||Q1(i,i.length-1),Z=v==="="&&e[k+2]?.kind==="COMPONENT";if(U||Z){if(U&&v==="("){let P=0;for(let X=k+1;X=0){A=F;continue}}if(W.kind==="CALL_END"&&a.has(W)){let F=j("TYPE",C,A+1,{});if(F>=0){A=F;continue}}if(Q1(i,i.length-1)){let F=j("TYPE",C,A+1,{});if(F>=0){if(W.kind==="PROPERTY"&&Y?.kind==="DEF")u(W),W.kind="IDENTIFIER";A=F;continue}}if(W.kind==="TYPE_PARAMS"&&Q1(i,i.length-2)){let F=j("TYPE",C,A+1,{});if(F>=0){A=F;continue}}if(W.kind==="VOID_MARKER"&&Q1(i,i.length-2)){let F=j("TYPE",C,A+1,{});if(F>=0){A=F;continue}}if(n.length===0&&(W.kind==="PROPERTY"||W.kind==="IDENTIFIER")&&Y?.kind==="CATCH"){let F=j("TYPE",C,A+1,{stopAtThen:!0});if(F>=0){if(W.kind==="PROPERTY")u(W),W.kind="IDENTIFIER";A=F;continue}}if(G&&(G.kind==="param"||G.kind==="defparam")&&!G.sawEq&&!G.sawType&&G.bodyDepth===0&&!G.inlineBody){let F=W.kind==="PROPERTY"||W.kind==="IDENTIFIER",e1=W.kind==="}"||W.kind==="]",Q=W.kind==="?"&&(Y?.kind==="PROPERTY"||Y?.kind==="IDENTIFIER");if(F||e1||Q){let a1=j("TYPE",C,A+1,{});if(a1>=0){if(Q){if(W.kind="OPT_MARKER",Y.kind==="PROPERTY")Y.kind="IDENTIFIER"}else if(W.kind==="PROPERTY"&&e[A-2]?.kind!=="@")u(W),W.kind="IDENTIFIER";G.sawType=!0,A=a1;continue}}}let k=W.kind==="OPT_MARKER"?1:0,v=k?i[i.length-2]??null:W,U=(i[i.length-2-k]??null)?.kind==="@",Z=i.length-(U?3:2)-k,P=v!==null&&(v.kind==="PROPERTY"||v.kind==="IDENTIFIER")&&ee(i,Z),X=v!==null&&v.kind==="STRING"&&ee(i,Z);if(n.length===0&&P&&!U)g=!0;if(n.length===0&&W.kind==="PROPERTY"&&i[i.length-2]?.kind==="."&&i[i.length-3]?.kind==="PROPERTY"&&i[i.length-3].value==="prototype"&&i[i.length-4]?.kind==="?."&&i[i.length-5]?.kind==="IDENTIFIER"&&ee(i,i.length-6)&&Xt(e,A)>=0)s("an annotated prototype member requires the unconditional chain (`X::m: T = v`) — "+"the soak form cannot carry the annotation",C.start,C.end);if(n.length===0&&W.kind==="PROPERTY"&&i[i.length-2]?.kind==="."&&i[i.length-3]?.kind==="PROPERTY"&&i[i.length-3].value==="prototype"&&i[i.length-4]?.kind==="."&&i[i.length-5]?.kind==="IDENTIFIER"&&ee(i,i.length-6)&&Xt(e,A)>=0){let F=j("TYPE",C,A+1,{});if(F>=0){A=F;continue}}if(n.length===0&&(P||X)&&Xt(e,A)>=0){let F=j("TYPE",C,A+1,{});if(F>=0){if(v.kind==="PROPERTY"&&!U){if(f()!=="class")u(v);v.kind="IDENTIFIER"}g=!1,A=F;continue}}if(n.length===0&&h()&&P&&!Gl(e,A+1)){let F=-1,e1=0;for(let Q=A+1;QA+1&&Si(e,A+1,F)){let Q=j("TYPE",C,A+1,{});if(Q>=0){if(v.kind==="PROPERTY"&&!U){if(f()==="component")u(v);v.kind="IDENTIFIER"}A=Q;continue}}}if(n.length===0&&!h()&&P&&!U&&!k){let F=w?.get(A);if(F!==void 0?F:!m&&R(A)){let Q=j("TYPE",C,A+1,{});if(Q>=0){if(W.kind==="PROPERTY")u(W),W.kind="IDENTIFIER";g=!1,A=Q;continue}}}}if(le.has(O))p++;else if(ce.has(O)){if(p--,d>=0&&p=0&&p===d){if(O==="COMPARE"&&C.value==="<")s("class generics are not supported — the class head's '<' parses as a comparison "+"and the statement miscompiles silently (`class Box` compiles to "+"`(class Box {} < T) && …`); remove the generic list",C.start);if(Ql.has(O))d=-1}if(O==="CLASS"||O==="COMPONENT")l=O==="CLASS"?"class":"component";else if(O==="THEN")l=!1;else if(O==="INDENT")c.push(l),l=!1;else if(O==="OUTDENT")c.pop();else if(O==="TERMINATOR")l=!1;if(n.length===0){if(O==="TERMINATOR")m=g,g=!1;else if(O==="INDENT"||O==="OUTDENT")m=!1,g=!1}if(le.has(O)){let G="other";if(O==="PARAM_START")G="param";else if(O==="CALL_START"&&Q1(i,i.length-1))G="defparam";else if(O==="CALL_START"&&W?.kind==="TYPE_PARAMS"&&Q1(i,i.length-2))G="defparam";else if(O==="CALL_START"&&W?.kind==="VOID_MARKER"&&Q1(i,i.length-2))G="defparam";n.push({kind:G,sawEq:!1,sawType:!1,bodyDepth:0,pendingImmediate:!1,pendingCond:!1,inlineBody:!1})}else if(ce.has(O)){if(n.pop()?.kind==="defparam"&&O==="CALL_END")a.add(C)}else{let G=o();if(G&&(G.kind==="param"||G.kind==="defparam")){let Y=()=>{G.sawEq=!1,G.sawType=!1,G.pendingImmediate=!1,G.pendingCond=!1,G.inlineBody=!1};if(G.bodyDepth>0){if(O==="INDENT")G.bodyDepth++;else if(O==="OUTDENT")G.bodyDepth--}else if(O==="INDENT")if(G.pendingImmediate||G.pendingCond)G.bodyDepth=1,G.pendingImmediate=!1,G.pendingCond=!1,G.inlineBody=!1;else Y();else if(O===","||O==="OUTDENT")Y();else if(O==="TERMINATOR")if(G.inlineBody&&C.value===";")G.pendingImmediate=!1,G.pendingCond=!1;else Y();else{if(G.pendingImmediate=Xl.has(O),Jl.has(O)&&W?.kind==="=")G.pendingCond=!0;else if(O==="THEN")G.pendingCond=!1;if(Zl.has(O))G.inlineBody=!0;if(O==="=")G.sawEq=!0}}}i.push(C)}e.length=i.length;for(let A=0;A"&&r!=="=>")continue;let s=t-1,i=e[s];if(!i)continue;if(i.kind==="DO"){i.kind="DO_IIFE";continue}if(i.kind!==")"){let a=0,o=-1;for(let l=t-1;l>=0;l--){if(J.on)J.n++;let c=e[l],h=c.kind;if(h===")"||h==="]"||h==="}"||h==="PICK_END"||h==="CALL_END"||h==="PARAM_END"||h==="INDEX_END"||h==="COMPARE"&&c.value===">")a++;else if(h==="("||h==="["||h==="{"||h==="PICK_START"||h==="OPTPICK_START"||h==="CALL_START"||h==="PARAM_START"||h==="INDEX_START"||h==="COMPARE"&&c.value==="<")a--;else if(h==="SHIFT"&&c.value===">>")a+=2;else if(h==="SHIFT"&&c.value===">>>")a+=3;else if(a===0){if(h===":"){if(e[l-1]?.kind===")")o=l-1;break}if(h==="TERMINATOR"||h==="INDENT"||h==="OUTDENT"||h==="="||h==="->"||h==="=>")break}}if(o<0)continue;s=o,i=e[s]}else{let a=0,o=-1;for(let l=t-1;l>=0;l--){if(J.on)J.n++;let c=e[l].kind;if(c===")"||c==="CALL_END"||c==="PARAM_END")a++;else if(c==="("||c==="CALL_START"||c==="PARAM_START"){if(--a===0){o=l;break}}}if(o>1&&e[o-1].kind===":"&&e[o-2]?.kind===")")s=o-2,i=e[s]}let n=0;for(let a=s-1;a>=0;a--){if(J.on)J.n++;let o=e[a];if(o.kind===")"||o.kind==="CALL_END"||o.kind==="INDEX_END"||o.kind==="]")n++;else if(o.kind==="("||o.kind==="CALL_START"||o.kind==="INDEX_START"||o.kind==="["){if(n>0){n--;continue}if(o.kind==="("){if(o.kind="PARAM_START",i.kind="PARAM_END",e[a-1]?.kind==="DO")e[a-1].kind="DO_IIFE"}break}}}return e}function r3(e){let t=new Set(["(","[","{","PICK_START","OPTPICK_START","CALL_START","INDEX_START","PARAM_START","STRING_START","INTERPOLATION_START","HEREGEX_START","INDENT"]),r=new Set([")","]","}","PICK_END","CALL_END","INDEX_END","PARAM_END","STRING_END","INTERPOLATION_END","HEREGEX_END","OUTDENT"]),s=[0];for(let i=0;i0)s[a]--}else if(n==="INDEX_START"&&s[s.length-1]===0){let a=1,o=i;while(++o0){if(J.on)J.n++;if(t.has(e[o].kind))a++;else if(r.has(e[o].kind))a--}if(a===0&&e[o]?.kind===":")e[i].kind="[",e[o-1].kind="]"}if(t.has(e[i].kind))s.push(0);else if(r.has(e[i].kind))s.pop()}return e}var i3=new Set(["STRING","STRING_END","REGEX","HEREGEX_END","NUMBER","BOOL","NULL","UNDEFINED","]","}","SYMBOL"]);function s3(e){let t=0;for(let r=0;r0&&(s==="->"||s==="=>")&&r>0&&(i3.has(e[r-1].kind)||e[r-1].kind==="IDENTIFIER"&&(e[r-1].value==="Infinity"||e[r-1].value==="NaN")))e.splice(r,0,{kind:",",value:",",start:e[r].start,end:e[r].start}),r++}return e}function n3(e){let t=new Set(["(","[","{","PICK_START","OPTPICK_START","CALL_START","INDEX_START","PARAM_START","STRING_START","INTERPOLATION_START","HEREGEX_START","INDENT"]),r=new Set([")","]","}","PICK_END","CALL_END","INDEX_END","PARAM_END","STRING_END","INTERPOLATION_END","HEREGEX_END","OUTDENT"]),s=(n)=>n!==void 0&&(n.kind==="IDENTIFIER"||n.kind==="PROPERTY"),i=[0];for(let n=0;n0)i[o]--}else if(s(e[n])&&i[i.length-1]===0&&e[n-1]?.kind!=="."&&e[n-1]?.kind!=="?."&&e[n-1]?.kind!=="@"){let o=n;for(;;){if(J.on)J.n++;let l=e[o+1],c=e[o+2];if(l===void 0||!s(c))break;if(l.kind==="."){o+=2;continue}if(l.kind==="-"&&l.start===e[o].end&&c.start===l.end){o+=2;continue}break}if(o>n&&e[o+1]?.kind===":"){let l="";for(let h=n;h<=o;h++)l+=e[h].value;let c={...e[n],kind:"STRING",value:JSON.stringify(l),end:e[o].end};e.splice(n,o-n+1,c)}}if(t.has(e[n].kind))i.push(0);else if(r.has(e[n].kind))i.pop()}return e}function a3(e){for(let t=0;t>>=":"COMPOUND_ASSIGN"},Nn={"**=":"COMPOUND_ASSIGN","&&=":"COMPOUND_ASSIGN","||=":"COMPOUND_ASSIGN","??=":"COMPOUND_ASSIGN","<<=":"COMPOUND_ASSIGN",">>=":"COMPOUND_ASSIGN","//=":"COMPOUND_ASSIGN","%%=":"COMPOUND_ASSIGN",">>>":"SHIFT","...":"...","<=>":"BIND"},An={"==":"COMPARE","!=":"COMPARE","<=":"COMPARE",">=":"COMPARE","**":"**","&&":"&&","||":"||","??":"??","..":"..","+=":"COMPOUND_ASSIGN","-=":"COMPOUND_ASSIGN","*=":"COMPOUND_ASSIGN","/=":"COMPOUND_ASSIGN","%=":"COMPOUND_ASSIGN","&=":"COMPOUND_ASSIGN","^=":"COMPOUND_ASSIGN","|=":"COMPOUND_ASSIGN",":=":"REACTIVE_ASSIGN","~=":"COMPUTED_ASSIGN","<~":"GATE","=!":"READONLY_ASSIGN","<<":"SHIFT",">>":"SHIFT","//":"MATH","%%":"MATH","~>":"EFFECT","!>":"!>","=~":"MATCH","->":"->","=>":"=>","++":"++","--":"--","?.":"?.",".=":"METHOD_ASSIGN","*{":"MAP_START"},o3=new Set([".","?.","UNARY","NEW","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","??","TERNARY","EXTENDS"]),ir=new Set(["IDENTIFIER","PROPERTY",")","CALL_END","NUMBER","STRING","]","INDEX_END","SUPER","DAMMIT","MAYBE_DAMMIT","DYNAMIC_IMPORT"]),at=new Set([...ir,"BOOL","NULL","UNDEFINED","}","PICK_END","STRING_END","REGEX","HEREGEX_END","THIS","@"]);function l3(e,t){let r=t;while(r=e.length||c3.test(e[r+1])))r++;return r}var c3=/[\s,)\]};:]/,ki=/[0-9]/,h3=/^0b[01](?:_?[01])*n?|^0o[0-7](?:_?[0-7])*n?|^0x[\da-f](?:_?[\da-f])*n?|^\d+(?:_\d+)*n|^(?:\d+(?:_\d+)*)?\.?\d+(?:_\d+)*(?:e[+-]?\d+(?:_\d+)*)?/i,f3=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,u3=/^\w*/,vn=/^(?!.*(.).*\1)[gimsuy]*$/,d3=new Set([...at,"++","--"]);function m3(e,t="",{tolerant:r=!1}={}){As();let s=new ye(e,t),i=[],n=[],a=[],o=[""],l=[],c=0,h=0,f=!0,u=-1,d=!1,p=!1,m=null,g=(_)=>_?.kind==="{"||_?.kind===","||(_?.kind==="INDENT"||_?.kind==="TERMINATOR")&&l.length>0,b=(_)=>Boolean(rr[_]&&_!=="own")||Tn.has(_)||kn.has(_)||Boolean(Ei[_])||_==="in"||_==="of"||_==="when"||_==="import"||_==="export",S=(_,H)=>w&&g(_)&&/^[^\S\n]+as[^\S\n]/.test(H)||R&&_?.kind==="AS",w=!1,R=!1,T=!1,j=0,M=0,x=[],A=(_,H,q=H)=>{let{line:i1,col:D}=s.lineColAt(H),z=Error(`${t}:${i1+1}:${D+1}: ${_}`);throw z.reason=_,z.start=H,z.end=q,z},C=(_,H,q=H)=>{try{A(_,H,q)}catch(i1){throw i1.openAtEnd=!0,i1}},O=(_,H,q,i1,D={})=>{if((_==="STRING"||_==="STRING_START")&&(w||R)){let s1=i[i.length-1];if(s1?.kind==="IDENTIFIER"&&s1.value==="from")s1.kind="FROM"}if(_==="IDENTIFIER"&&H==="from"&&i[i.length-1]?.kind==="YIELD")_="FROM";if(_==="IDENTIFIER"&&H==="from"&&i[i.length-1]?.kind==="IDENTIFIER"&&i[i.length-2]?.kind==="ACCEPT")_="FROM";if(_==="RELATION"){let s1=i[i.length-1];if(s1?.kind==="UNARY"&&s1.value==="!")i.pop(),H="!"+H,q=s1.start}let z={id:M++,kind:_,value:H,start:q,end:i1,spaced:d,newLine:p,generated:!1,origin:null,...D};if(i.push(z),!z.generated&&x.length>0){for(let s1 of x)s1.origin=z.id;x.length=0}d=!1,p=!1},W=(_,H)=>{let q={id:M++,kind:_,value:_,start:H,end:H,spaced:!1,newLine:!1,generated:!0,origin:null};x.push(q),i.push(q)},G=()=>i[i.length-1]??null,Y=()=>{let _=i.length-1;while(_>=2&&i[_].kind==="."&&i[_-1].kind==="PROPERTY"&&i[_-2].kind===".")_-=2;let H=i[_-1];if(!H||H.kind==="INDENT"||H.kind==="TERMINATOR"||H.kind==="OUTDENT"||H.kind==="RENDER")return!0;return H.kind==="IDENTIFIER"&&$e.has(String(H.value).split("#")[0])},k=()=>{let _=0,H=0;for(let q=i.length-1;q>=0;q--){let i1=i[q].kind;if(i1==="OUTDENT")_++;else if(i1==="INDENT"){if(_--,_=0;D--){let z=i[D].kind;if(z==="TERMINATOR"||z==="INDENT"||z==="OUTDENT")break;if(z==="COMPONENT")return!0}}}}return!1},v=()=>{if(!l[l.length-1]?.pickKeys)return!1;let H=G()?.kind;return H==="PICK_START"||H==="OPTPICK_START"||H===","||H===":"||H==="TERMINATOR"||H==="INDENT"||H==="OUTDENT"},U=(_,H)=>{let q=c;while(c=e.length)C("unterminated string",H);let i1=e.slice(q,c);return c+=_.length,i1},Z=(_)=>_.replace(/\\[\s\S]|`|\$\{/g,(H)=>H[0]==="\\"?H:`\\${H}`),P=(_)=>{let H=null,q=/\n+([^\S\n]*)(?=\S)/g,i1;while(i1=q.exec(_))if(H===null||i1[1].length>0&&i1[1].length{if(H===null)return _??"";if(_===null)return H;return H.length<=_.length?H:_},F=(_,H)=>{if(H.length===1)return _;if(_=_.replace(/\r\n?/g,` `),!_.includes(` `))return _;let q=_.slice(_.lastIndexOf(` -`)+1),t1=/^[^\S\n]*$/.test(q)?q:null,P=Z(x(_),t1),Y=P?_.split(` -${P}`).join(` -`):_;return Y=Y.replace(/^\n/,""),Y.replace(/\n[^\S\n]*$/,"")},r1=(_)=>{let z=c,q=-1;while(c=e.length)D("unterminated string",_.opener);let t1=e.slice(z,q===-1?c:q);if(q===-1&&!_.started){let P=c+_.delim.length,Y=U(t1,_.delim),o1=_.delim.length===3?`\`${X(Y)}\``:`"${Y}"`;O("STRING",o1,_.opener,P),c=P;return}if(!_.started)_.started=!0,O("STRING_START","(",_.opener,_.opener+_.delim.length);if(q===-1){_.chunkIdx.push(i.length),O("STRING",`"${t1}"`,z,c);let P=c+_.delim.length;if(O("STRING_END",")",c,P),c=P,_.delim.length===3)Q(_);return}_.chunkIdx.push(i.length),O("STRING",`"${t1}"`,z,q),O("INTERPOLATION_START","(",q,q+2),e1("interp",q,{ctx:_}),c=q+2},Q=(_)=>{let z=i[i.length-1],q=z.start-1,t1=q<0?-1:Math.max(e.lastIndexOf(` -`,q),e.lastIndexOf("\r",q)),P=e.slice(t1+1,z.start),Y=/^[^\S\n]*$/.test(P)?P:null,o1=_.chunkIdx.map((y1)=>i[y1].value.slice(1,-1).replace(/\r\n?/g,` -`)),E1=Z(x(o1.join("")),Y);_.chunkIdx.forEach((y1,S1)=>{let _1=o1[S1];if(E1)_1=_1.split(` -${E1}`).join(` -`);if(S1===0)_1=_1.replace(/^\n/,"");if(S1===_.chunkIdx.length-1)_1=_1.replace(/\n[^\S\n]*$/,"");i[y1].value=`"${_1}"`})},l1=(_)=>{let z=c,q="",t1=-1;while(c=e.length)break;q+=e.slice(c,c+2),c+=2;continue}if(P==="#"&&e[c+1]==="{"){t1=c;break}if(_.inClass){if(P===` -`||P==="\r")N("newline inside a heregex character class (a regex literal cannot contain one)",c);if(P==="]")_.inClass=!1;q+=P,c++;continue}if(P==="["){_.inClass=!0,q+=P,c++;continue}if(/\s/.test(P)){while(c{let{out:z,chunkStart:q,interpAt:t1}=l1(_);if(t1>=0){if(!_.started)_.started=!0,O("HEREGEX_START","///",_.opener,_.opener+3);O("STRING",`"${z}"`,q,t1),O("INTERPOLATION_START","(",t1,t1+2),e1("interp",t1,{ctx:_,heregex:!0}),c=t1+2;return}if(!e.startsWith("///",c))D("missing /// (unclosed heregex)",_.opener);let P=c;c+=3;let Y=/^\w*/.exec(e.slice(c))[0];if(!Ns.test(Y))N(`invalid regular expression flags ${Y}`,c);let o1=c+Y.length;if(!_.started)O("REGEX",`/${z===""?"(?:)":z}/${Y}`,_.opener,o1);else O("STRING",`"${z}"`,q,P),O("HEREGEX_END",Y,P,o1);c=o1},s1=()=>{for(let _=i.length-1;_>=0;_--)if(!i[_].generated)return i[_].end;return 0},e1=(_,z,q={})=>{l.push({kind:_,at:z,depth:o.length,...q})},K=null,a1={upTo:0,ref:null,level:0,answers:new Map},A=()=>K!==null&&o.length>=K,V=()=>{for(let _=i.length-1;_>=0;_--){let z=i[_].kind;if(z==="TERMINATOR"||z==="INDENT"||z==="OUTDENT")return!1;if(z==="=")return er(i,_)}return!1},B=()=>{if(K!==null&&o.length{let _=i.length;if(i[_-1]?.kind==="=")return er(i,_-1);let z=(t1)=>i[t1]?.kind==="RESERVED"&&i[t1].value==="interface",q=Qt(i,_-1);if(q<0||i[q]?.kind!=="IDENTIFIER")return!1;if(z(q-1))return ee(i,q-2);if(i[q-1]?.kind==="EXTENDS"){let t1=Qt(i,q-2);if(t1>=0&&i[t1]?.kind==="IDENTIFIER"&&z(t1-1))return ee(i,t1-2)}return!1},h1=(_)=>e[_]===` -`||e[_]==="\r",f1=(_)=>{let z=_+1;while(z{let z=_,q=1;while(z{let z=e[_],q=_+1;while(q{let _=l.pop();if(!_)return null;while(i.length&&i[i.length-1].kind==="TERMINATOR")i.pop();let z=s1();while(o.length>_.depth)o.pop(),W("OUTDENT",z);return B(),_},d1=(_,z,q="")=>{let t1=s1(),P=l.length>0?l[l.length-1].depth:1;while(o.length>1&&o[o.length-1].length>_.length){if(o.length<=P)N(`dedent to ${JSON.stringify(_)} crosses the enclosing bracket's indentation floor ${JSON.stringify(o[o.length-1])}`,z);o.pop(),W("OUTDENT",t1)}if(B(),o[o.length-1]!==_)N(`inconsistent indentation: ${JSON.stringify(_)} neither extends the enclosing block's ${JSON.stringify(o[o.length-1])} nor matches any open block${q}`,z)};while(c=e.length)break;let o1=e[c]===` +`)+1),i1=/^[^\S\n]*$/.test(q)?q:null,D=X(P(_),i1),z=D?_.split(` +${D}`).join(` +`):_;return z=z.replace(/^\n/,""),z.replace(/\n[^\S\n]*$/,"")},e1=(_)=>{let H=c,q=-1;while(c=e.length)C("unterminated string",_.opener);let i1=e.slice(H,q===-1?c:q);if(q===-1&&!_.started){let D=c+_.delim.length,z=F(i1,_.delim),s1=_.delim.length===3?`\`${Z(z)}\``:`"${z}"`;O("STRING",s1,_.opener,D),c=D;return}if(!_.started)_.started=!0,O("STRING_START","(",_.opener,_.opener+_.delim.length);if(q===-1){_.chunkIdx.push(i.length),O("STRING",`"${i1}"`,H,c);let D=c+_.delim.length;if(O("STRING_END",")",c,D),c=D,_.delim.length===3)Q(_);return}_.chunkIdx.push(i.length),O("STRING",`"${i1}"`,H,q),O("INTERPOLATION_START","(",q,q+2),l1("interp",q,{ctx:_}),c=q+2},Q=(_)=>{let H=i[i.length-1],q=H.start-1,i1=q<0?-1:Math.max(e.lastIndexOf(` +`,q),e.lastIndexOf("\r",q)),D=e.slice(i1+1,H.start),z=/^[^\S\n]*$/.test(D)?D:null,s1=_.chunkIdx.map((y1)=>i[y1].value.slice(1,-1).replace(/\r\n?/g,` +`)),R1=X(P(s1.join("")),z);_.chunkIdx.forEach((y1,S1)=>{let _1=s1[S1];if(R1)_1=_1.split(` +${R1}`).join(` +`);if(S1===0)_1=_1.replace(/^\n/,"");if(S1===_.chunkIdx.length-1)_1=_1.replace(/\n[^\S\n]*$/,"");i[y1].value=`"${_1}"`})},a1=(_)=>{let H=c,q="",i1=-1;while(c=e.length)break;q+=e.slice(c,c+2),c+=2;continue}if(D==="#"&&e[c+1]==="{"){i1=c;break}if(_.inClass){if(D===` +`||D==="\r")A("newline inside a heregex character class (a regex literal cannot contain one)",c);if(D==="]")_.inClass=!1;q+=D,c++;continue}if(D==="["){_.inClass=!0,q+=D,c++;continue}if(/\s/.test(D)){while(c{let{out:H,chunkStart:q,interpAt:i1}=a1(_);if(i1>=0){if(!_.started)_.started=!0,O("HEREGEX_START","///",_.opener,_.opener+3);O("STRING",`"${H}"`,q,i1),O("INTERPOLATION_START","(",i1,i1+2),l1("interp",i1,{ctx:_,heregex:!0}),c=i1+2;return}if(!e.startsWith("///",c))C("missing /// (unclosed heregex)",_.opener);let D=c;c+=3;let z=/^\w*/.exec(e.slice(c))[0];if(!vn.test(z))A(`invalid regular expression flags ${z}`,c);let s1=c+z.length;if(!_.started)O("REGEX",`/${H===""?"(?:)":H}/${z}`,_.opener,s1);else O("STRING",`"${H}"`,q,D),O("HEREGEX_END",z,D,s1);c=s1},I=()=>{for(let _=i.length-1;_>=0;_--)if(!i[_].generated)return i[_].end;return 0},l1=(_,H,q={})=>{l.push({kind:_,at:H,depth:o.length,...q})},L=null,t1={upTo:0,ref:null,level:0,answers:new Map},N=()=>L!==null&&o.length>=L,V=()=>{for(let _=i.length-1;_>=0;_--){let H=i[_].kind;if(H==="TERMINATOR"||H==="INDENT"||H==="OUTDENT")return!1;if(H==="=")return er(i,_)}return!1},B=()=>{if(L!==null&&o.length{let _=i.length;if(i[_-1]?.kind==="=")return er(i,_-1);let H=(i1)=>i[i1]?.kind==="RESERVED"&&i[i1].value==="interface",q=Qt(i,_-1);if(q<0||i[q]?.kind!=="IDENTIFIER")return!1;if(H(q-1))return ee(i,q-2);if(i[q-1]?.kind==="EXTENDS"){let i1=Qt(i,q-2);if(i1>=0&&i[i1]?.kind==="IDENTIFIER"&&H(i1-1))return ee(i,i1-2)}return!1},o1=(_)=>e[_]===` +`||e[_]==="\r",f1=(_)=>{let H=_+1;while(H{let H=_,q=1;while(H{let H=e[_],q=_+1;while(q{let _=l.pop();if(!_)return null;while(i.length&&i[i.length-1].kind==="TERMINATOR")i.pop();let H=I();while(o.length>_.depth)o.pop(),W("OUTDENT",H);return B(),_},u1=(_,H,q="")=>{let i1=I(),D=l.length>0?l[l.length-1].depth:1;while(o.length>1&&o[o.length-1].length>_.length){if(o.length<=D)A(`dedent to ${JSON.stringify(_)} crosses the enclosing bracket's indentation floor ${JSON.stringify(o[o.length-1])}`,H);o.pop(),W("OUTDENT",i1)}if(B(),o[o.length-1]!==_)A(`inconsistent indentation: ${JSON.stringify(_)} neither extends the enclosing block's ${JSON.stringify(o[o.length-1])} nor matches any open block${q}`,H)};while(c=e.length)break;let s1=e[c]===` `?1:e[c]==="\r"&&e[c+1]===` -`?2:0;if(o1){s.push({kind:"blank",start:P,end:c+o1,text:e.slice(P,c+o1)}),c+=o1;continue}let E1=T&&/^#[A-Za-z_]/.test(e.slice(c,c+2))&&Y.length>(o[F-1]??"").length;if(e[c]==="#"&&!E1){let m1=c;if(e.startsWith("###",c)&&e[c+3]!=="#"){let be=e.indexOf("###",c+3);if(be<0)D("unclosed `###` block comment — close it with `###`",c,c+3);m1=be+3;let Oe=m1;while(e[Oe]===" "||e[Oe]==="\t")Oe++;if(Oe(o[j-1]??"").length;if(e[c]==="#"&&!R1){let m1=c;if(e.startsWith("###",c)&&e[c+3]!=="#"){let be=e.indexOf("###",c+3);if(be<0)C("unclosed `###` block comment — close it with `###`",c,c+3);m1=be+3;let Oe=m1;while(e[Oe]===" "||e[Oe]==="\t")Oe++;if(Oe{if(S1==null||S1.kind!=="."&&S1.kind!=="?.")return!1;if(l.length>0)return!1;if(T)return!1;if(Y.length>y1.length)return!1;if(!j1.test(e[c]??""))return!1;let m1=c;while(m1=0&&e[w1+1]!=="."&&!ki.test(e[w1+1]??"")&&!T;if(R1&&!v1&&Y.lengthe.startsWith(D1,c)&&!G1.test(e[c+D1.length]??""));if(i.length>0&&u>=0&&!m1&&H()?.kind!=="TERMINATOR"){let D1=e[u]==="\r"?2:1;O("TERMINATOR",e.slice(u,u+D1),u,u+D1,{generated:!0})}}if(T&&o.length<=F)T=!1;if(f=!1,p=!0,m!==null&&l.length<=m)m=null;if(l.length===0)w=!1,R=!1;continue}let _=e[c];if(_===" "||_==="\t"){d=!0,c++;continue}if(_==="\r"&&e[c+1]!==` -`)N("bare carriage return (not followed by a newline) is not supported",c);if(_===` -`||_==="\r"){u=c,f=!0,c+=_==="\r"?2:1;continue}if(_==="#"){if(T&&/[A-Za-z_]/.test(e[c+1]??"")){let Y=/^#([A-Za-z_][\w-]*)/.exec(e.slice(c)),o1=H();if(o1&&(o1.kind==="IDENTIFIER"||o1.kind==="PROPERTY")&&!d&&!o1.generated){o1.value+=Y[0],o1.end=c+Y[0].length,c+=Y[0].length;continue}if(o1&&(o1.kind==="TERMINATOR"||o1.kind==="INDENT"||o1.kind==="OUTDENT"||o1.kind==="RENDER")){O("IDENTIFIER",`div${Y[0]}`,c,c+Y[0].length),c+=Y[0].length;continue}}let P=c;while(P{let R1=c;while(e[R1]===" "||e[R1]==="\t")R1++;let w1=e[R1]??"";if(w1==="{"||w1==="*")return!0;if(!j1.test(w1))return!1;let g1=R1+1;while(g1{let R1=c;while(e[R1]===" "||e[R1]==="\t")R1++;return e[R1]==="{"})())O("EXPORT_TYPE",Y,P,c);else if(Y==="type"&&l[l.length-1]?.specifiers===!0&&(()=>{let R1=c;while(e[R1]===" "||e[R1]==="\t")R1++;if(!j1.test(e[R1]??""))return!1;let w1=R1+1;while(w1"}[P]??P,E1=o1!==P,y1=1,S1=c+3;while(S10){let g1=e[S1];if(g1==="\\"){S1+=2;continue}if(E1&&g1===P)y1++;if(g1===o1)y1--;if(y1>0)S1++}if(y1!==0)D(`unclosed %w${P} — never closed by '${o1}'`,c,c+3);O("[","[",c,c+3);let _1=/(?:\\\s|\S)+/g;_1.lastIndex=c+3;let v1,R1=!0,w1=c+3;while((v1=_1.exec(e))!==null&&v1.index=S1)break;_1.lastIndex=g1}O("]","]",S1,S1+1),c=S1+1;continue}}let z=e.slice(c,c+4);if(Ts[z]){O(Ts[z],z,c,c+4),c+=4;continue}let q=e.slice(c,c+3);if(q==="==="||q==="!=="){O("COMPARE",q.slice(0,2),c,c+3),c+=3;continue}if(ws[q]){O(ws[q],q,c,c+3),c+=3;continue}let t1=e.slice(c,c+2);if(t1==="?="&&e[c+2]!=="="){O("COMPOUND_ASSIGN","??=",c,c+2),c+=2;continue}if(t1==="*{"){O("MAP_START","*",c,c+1),c+=1;continue}if(_s[t1]){if(t1==="!="&&!d&&(H()?.kind==="IDENTIFIER"||H()?.kind==="PROPERTY"))N(`cannot use the '!' sigil in an assignment to '${H().value}' (write 'a != b' with a space for comparison)`,c);O(_s[t1],t1,c,c+2),c+=2;continue}if(_==="<"||_===">"){O("COMPARE",_,c,c+1),c++;continue}if(_==="*"||_==="/"||_==="%"){if(_==="*"&&w&&(H()?.kind==="IMPORT"||H()?.kind==="IMPORT_TYPE"||H()?.kind===","))O("IMPORT_ALL",_,c,c+1);else if(_==="*"&&H()?.kind==="EXPORT")O("EXPORT_ALL",_,c,c+1);else if(_==="*"&&H()?.kind==="YIELD"&&!p)O("FROM",_,c,c+1);else O("MATH",_,c,c+1);c++;continue}if(_==="!"||_==="~"){if(_==="!"&&!d&&(H()?.kind==="IDENTIFIER"||H()?.kind==="PROPERTY"||H()?.kind==="DYNAMIC_IMPORT")){O("DAMMIT","!",c,c+1),c++;continue}O("UNARY_MATH",_,c,c+1),c++;continue}if(_==="&"||_==="|"||_==="^"){O(_,_,c,c+1),c++;continue}if(_==="?"){if(!d){if(e[c+1]==="("||e[c+1]==="["){O("?.","?",c,c+1),c++;continue}let P=H();if(e[c+1]==="!"&&P&&!P.generated&&at.has(P.kind)){if(P.kind!=="IDENTIFIER"&&P.kind!=="PROPERTY")N("maybe dammit '?!' follows a name, as dammit does (`f?!`, `obj.method?!`) — bind the value to a name first",c,c+2);O("MAYBE_DAMMIT","?!",c,c+2),c+=2;continue}if(P&&!P.generated&&at.has(P.kind)){let o1=i[i.length-2]??null,E1=o1===null||o1.kind==="@"||o1.kind==="TERMINATOR"||o1.kind==="INDENT"||o1.kind==="OUTDENT";if((P.kind==="PROPERTY"||P.kind==="IDENTIFIER")&&E1&&/^[^\S\n]*(:=|~=|=!|=(?![=>!])|:(?![:=]))/.test(e.slice(c+1))){O("OPT_MARKER","?",c,c+1),c++;continue}O("?","?",c,c+1),c++;continue}let Y=i[i.length-2]??null;if(P&&(P.kind==="-"||P.kind==="+")&&!P.spaced&&(Y?.kind==="]"||Y?.kind==="INDEX_END")&&e[c+1]===":"){O("?","?",c,c+1),c++;continue}N("unspaced '?' needs a value before it (postfix existence) — write ' ? ' for a ternary",c)}h++,O("TERNARY","?",c,c+1),c++;continue}if(_==="@"){O("@","@",c,c+1),c++;continue}if(_==="("){let P=H();if(P&&!d&&P.kind==="?."){P.kind="ES6_OPTIONAL_CALL",e1("call",c),O("CALL_START","(",c,c+1),c++;continue}let Y=P&&!d&&!P.generated&&ir.has(P.kind);e1(Y?"call":"group",c),O(Y?"CALL_START":"(","(",c,c+1),c++;continue}if(_===")"){let P=c1();if(P?.kind!=="call"&&P?.kind!=="group")N("unmatched ')'",c);O(P.kind==="call"?"CALL_END":")",")",c,c+1),c++;continue}if(_==="["){let P=H();if(P&&!d&&P.kind==="?."){P.kind="ES6_OPTIONAL_INDEX",e1("index",c),O("INDEX_START","[",c,c+1),c++;continue}let Y=P&&!d&&!P.generated&&at.has(P.kind);e1(Y?"index":"array",c),O(Y?"INDEX_START":"[","[",c,c+1),c++;continue}if(_==="]"){let P=c1();if(P?.kind!=="index"&&P?.kind!=="array")N("unmatched ']'",c);O(P.kind==="index"?"INDEX_END":"]","]",c,c+1),c++;continue}if(_==="{"){let P=H();if(P!=null&&(P.kind==="."||P.kind==="?.")&&!d&&!P.newLine&&i.length>=2&&at.has(i[i.length-2].kind)&&i[i.length-2].kind!=="PICK_END")i.pop(),e1("object",c,{pick:!0,pickKeys:e[c+1]!==" "&&e[c+1]!=="\t"}),O(P.kind==="?."?"OPTPICK_START":"PICK_START","{",c,c+1);else{let o1=P!=null&&(P.kind==="IMPORT"||P.kind==="IMPORT_TYPE"||P.kind==="EXPORT"||P.kind==="EXPORT_TYPE"||w&&P.kind===",");e1("object",c,o1?{specifiers:!0}:{}),O("{","{",c,c+1)}c++;continue}if(_==="}"){let P=c1();if(P?.kind==="interp"){if(O("INTERPOLATION_END",")",c,c+1),c++,P.heregex)I(P.ctx);else r1(P.ctx);continue}if(P?.kind!=="object")N("unmatched '}'",c);O(P.pick?"PICK_END":"}","}",c,c+1),c++;continue}if(_===":"&&e[c+1]===":"){if(!A()&&!V()&&j1.test(e[c+2]??"")){let P=i[i.length-1];if(P?.kind==="?"&&P.end===c)P.kind="?.",P.value="?.",P.end=c+2,O("PROPERTY","prototype",c,c+2),O(".",".",c,c+2);else O(".",".",c,c+2),O("PROPERTY","prototype",c,c+2),O(".",".",c,c+2);c+=2;continue}N("type annotations use a single ':' (e.g. `x: number`), not '::'",c,c+2)}if(_===":"&&j1.test(e[c+1]??"")&&!A()&&!V()){let P=i[i.length-1];if(!(P!==void 0&&(P.kind==="PROPERTY"||P.kind===")"||P.kind==="]"||P.kind==="}"||P.kind==="CALL_END"||P.kind==="INDEX_END"||P.kind==="PARAM_END"||P.kind==="PICK_END"||P.kind==="STRING"||P.kind==="STRING_END"||P.kind==="NUMBER"||P.kind==="REGEX"||P.kind==="HEREGEX_END"||P.kind==="BOOL"||P.kind==="NULL"||P.kind==="UNDEFINED"||P.kind==="DAMMIT"||P.kind==="?"||P.kind==="MAYBE_DAMMIT"||P.kind==="OPT_MARKER"||P.kind==="THIS"||P.kind==="@"||P.kind==="SYMBOL"||h>0&&P.kind==="IDENTIFIER"))){let o1=s3(e,c+1);O("SYMBOL",e.slice(c+1,o1),c,o1),c=o1;continue}}if(_==="="||_==="+"||_==="-"||_==="."||_===","||_===";"||_===":"){if(_===":"&&h>0)h--;O(_===";"?"TERMINATOR":_,_,c,c+1),c++;continue}if(_==="`"&&(A()||V())){let P=f1(c);O("TYPE_TEMPLATE",e.slice(c,P),c,P),c=P;continue}N(`cannot tokenize '${_}'`,c)}if(l.length>0){if(!(r&&l.every((q)=>q.kind!=="interp"))){let q=l[0],t1={call:"(",group:"(",index:"[",array:"[",object:"{",interp:"#{"}[q.kind]??q.kind;D(`unclosed '${t1}' — never closed by end of input`,q.at,q.at+t1.length)}let z=e.length;while(z>0&&(e[z-1]===` -`||e[z-1]==="\r"))z--;while(l.length>0){let q=l[l.length-1],t1={call:"(",group:"(",index:"[",array:"[",object:"{"}[q.kind]??q.kind;a.push({message:`unclosed '${t1}' — never closed by end of input`,start:q.at,end:q.at+t1.length,expected:[],got:"end of input"});let P=q.kind==="call"?"CALL_END":q.kind==="group"?")":q.kind==="index"?"INDEX_END":q.kind==="array"?"]":q.pick?"PICK_END":"}";c1();let Y=i.length;while(Y>0&&(i[Y-1].kind==="OUTDENT"||i[Y-1].kind==="INDENT"||i[Y-1].kind==="TERMINATOR"))Y--;let o1=i[Y-1]?.kind,E1=q.kind==="call"&&o1==="CALL_START"||q.kind==="index"&&o1==="INDEX_START";if(o1===","||E1){let y1={id:L++,kind:"IDENTIFIER",value:"",start:z,end:z,spaced:!1,newLine:!1,generated:!0,origin:null};C.push(y1),i.splice(Y,0,y1)}W(P,z)}}let M=s1();while(o.length>1)o.pop(),W("OUTDENT",M);let n1=()=>L++;Zl(i),Ql(i),i3(i),Un(i,n1,e,N,r?(_)=>a.push({message:_.reason??String(_.message),start:_.start??0,end:_.end??_.start??0,expected:[],got:""}):null),tr(i,n1,e,N);for(let _ of i)if(_.kind==="RESERVED")N(`'${_.value}' is reserved and not supported yet`,_.start);return ss(i,n1,N),r3(i),Kt(i,n1),Ti(i),Yt(i,n1),zt(i,n1),t3(i),{tokens:i,trivia:s,source:n,lexDiagnostics:a}}function Ti(e){for(let t=0;t"&&o!=="=>"&&o!=="ELSE"&&o!=="TRY"&&o!=="FINALLY"){n=!1;break}}}if(oe.has(a))i++;else if(ae.has(a)){if(i--,i<0)break}}if(n)e[t].kind=r==="IF"?"POST_IF":"POST_UNLESS"}return e}function As(e="",{tolerant:t=!1}={}){return{setInput(r){let n=f3(r,e,{tolerant:t});this.tokens=n.tokens,this.trivia=n.trivia,this.source=n.source,this.lexDiagnostics=n.lexDiagnostics??[],this.index=0,this.text="",this.loc=null,this.token=null},lex(){let r=this.tokens[this.index];if(!r)return null;return this.index++,this.text=r.value,this.loc={start:r.start,end:r.end},this.token=r,r.kind}}}var u3={symbolIds:{$accept:0,$end:1,error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,Statement:8,Return:9,STATEMENT:10,Import:11,Export:12,TypeDecl:13,Enum:14,TYPE_DECL:15,Assignable:16,TYPE:17,OPT_MARKER:18,DEF:19,Identifier:20,OptParams:21,IMPORT:22,String:23,ImportDefaultSpecifier:24,FROM:25,ImportNamespaceSpecifier:26,"{":27,"}":28,ImportSpecifierList:29,OptComma:30,",":31,WITH:32,Object:33,IMPORT_TYPE:34,ImportSpecifier:35,INDENT:36,OUTDENT:37,AS:38,DEFAULT:39,IMPORT_ALL:40,EXPORT:41,ExportSpecifierList:42,Class:43,Def:44,ExportAssign:45,ReactiveAssign:46,ComputedAssign:47,Readonly:48,Effect:49,EXPORT_ALL:50,EXPORT_TYPE:51,"=":52,TYPE_PARAMS:53,VOID_MARKER:54,READONLY_ASSIGN:55,REACTIVE_ASSIGN:56,COMPUTED_ASSIGN:57,Block:58,EFFECT:59,ExportSpecifier:60,Value:61,Code:62,Operation:63,Assign:64,Gate:65,If:66,Try:67,For:68,Switch:69,While:70,Throw:71,Schema:72,Component:73,Render:74,Literal:75,Parenthetical:76,Range:77,Invocation:78,DoIife:79,This:80,Super:81,DAMMIT:82,NewValue:83,TEMPLATE_TAG:84,Atom:85,Regex:86,UNDEFINED:87,NULL:88,BOOL:89,NUMBER:90,SYMBOL:91,STRING:92,STRING_START:93,Interpolations:94,STRING_END:95,InterpolationChunk:96,INTERPOLATION_START:97,INTERPOLATION_END:98,REGEX:99,HEREGEX_START:100,HEREGEX_END:101,IDENTIFIER:102,Property:103,PROPERTY:104,SimpleAssignable:105,COMPOUND_ASSIGN:106,METHOD_ASSIGN:107,Array:108,Rhs:109,BlockRhs:110,GATE:111,CALL_START:112,CALL_END:113,ArgList:114,ThisProperty:115,Subjectable:116,".":117,"?.":118,INDEX_START:119,INDEX_END:120,Slice:121,ES6_OPTIONAL_INDEX:122,PICK_START:123,PickList:124,PICK_END:125,OPTPICK_START:126,IMPORT_META:127,NEW_TARGET:128,NEW:129,NewSpine:130,NewCall:131,Arguments:132,PARAM_START:133,ParamList:134,PARAM_END:135,ArrowKind:136,"->":137,"=>":138,DO_IIFE:139,THIS:140,"@":141,"[":142,"]":143,Elisions:144,ArgElisionList:145,OptElisions:146,ArgElision:147,Arg:148,Elision:149,AssignList:150,MAP_START:151,AssignObj:152,ObjAssignable:153,ObjRestValue:154,":":155,SimpleObjAssignable:156,"...":157,ObjSpreadExpr:158,SUPER:159,DYNAMIC_IMPORT:160,MAYBE_DAMMIT:161,PickItem:162,PickKey:163,RangeDots:164,"..":165,Param:166,TypedParamVar:167,ParamVar:168,Splat:169,ClassName:170,CLASS:171,EXTENDS:172,ENUM:173,SCHEMA:174,SCHEMA_BODY:175,COMPONENT:176,ComponentBlock:177,ComponentBody:178,ComponentLine:179,OFFER:180,ACCEPT:181,ProviderPath:182,RENDER:183,ES6_OPTIONAL_CALL:184,"?":185,"(":186,")":187,RETURN:188,WHILE:189,UNTIL:190,WHEN:191,Loop:192,IfBlock:193,IF:194,IfElseTail:195,ELSE:196,UnlessBlock:197,UNLESS:198,POST_IF:199,POST_UNLESS:200,TRY:201,Catch:202,Finalizer:203,FINALLY:204,CATCH:205,CatchVar:206,THROW:207,SWITCH:208,Cases:209,When:210,LEADING_WHEN:211,SimpleArgs:212,FOR:213,ForVariables:214,FORIN:215,BY:216,FOROF:217,OWN:218,FORAS:219,AWAIT:220,FORASAWAIT:221,ForValue:222,LOOP:223,"--":224,"++":225,CAST:226,SATISFIES:227,TERNARY:228,UNARY:229,DO:230,UNARY_MATH:231,YIELD:232,"-":233,"+":234,"**":235,MATH:236,SHIFT:237,"&":238,"^":239,"|":240,COMPARE:241,MATCH:242,RELATION:243,"&&":244,"||":245,"??":246,THEN:247},tokenNames:{2:"error",6:"newline",10:"break/continue/debugger",15:"type/interface",17:"a type annotation",18:"?",19:"def",22:"import",25:"from",27:"{",28:"}",31:",",32:"with",34:"type",36:"indent",37:"dedent",38:"as",39:"default",40:"*",41:"export",50:"*",51:"type",52:"=",53:"<…>",54:"!",55:"=!",56:":=",57:"~=",59:"~>",82:"!",84:"$",87:"undefined",88:"null",89:"true/false",90:"a number",91:"a :symbol",92:"a string",93:"a string",95:"the closing quote",97:"#{",98:"}",99:"a regex",100:"///",101:"///",102:"a name",104:"a property name",106:"a compound assignment",107:".=",111:"<~",112:"(",113:")",117:".",118:"?.",119:"[",120:"]",122:"?.[",123:".{",125:"}",126:"?.{",127:"import.meta",128:"new.target",129:"new",133:"(",135:")",137:"->",138:"=>",139:"do",140:"this",141:"@",142:"[",143:"]",151:"*{",155:":",157:"...",159:"super",160:"import(",161:"?!",165:"..",171:"class",172:"extends",173:"enum",174:"schema",175:"a schema body",176:"component",180:"offer",181:"accept",183:"render",184:"?.(",185:"?",186:"(",187:")",188:"return",189:"while",190:"until",191:"when",194:"if",196:"else",198:"unless",199:"if",200:"unless",201:"try",204:"finally",205:"catch",207:"throw",208:"switch",211:"when",213:"for",215:"in",216:"by",217:"of",218:"own",219:"as",220:"await",221:"as!",223:"loop",224:"--",225:"++",226:"as",227:"satisfies",228:"?",229:"not/typeof/delete",230:"do",231:"!/~",232:"yield",233:"-",234:"+",235:"**",236:"a math operator",237:"a shift operator",238:"&",239:"^",240:"|",241:"a comparison",242:"=~",243:"in/of/instanceof",244:"&&",245:"||",246:"??",247:"then"},semantics:{"1":{kind:"program",roles:[]},"2":{kind:"program",roles:[{name:"body",grammarRef:1,childSlot:1,spread:!0}]},"14":{kind:"typedecl",roles:[{name:"declaration",grammarRef:1,childSlot:1,spread:!1}]},"15":{kind:"typedvar",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:2,childSlot:2,spread:!1}]},"16":{kind:"typedvar",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:3,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"17":{kind:"defsig",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:3,childSlot:2,spread:!1},{name:"returnType",grammarRef:4,childSlot:3,spread:!1}]},"18":{kind:"import",roles:[{name:"source",grammarRef:2,childSlot:1,spread:!1}]},"19":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"source",grammarRef:4,childSlot:2,spread:!1}]},"20":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"source",grammarRef:4,childSlot:2,spread:!1}]},"21":{kind:"import",roles:[{name:"spec",grammarRef:null,childSlot:1,literal:"{}"},{name:"source",grammarRef:5,childSlot:2,spread:!1}]},"22":{kind:"import",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1},{name:"source",grammarRef:7,childSlot:2,spread:!1}]},"23":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"extra",grammarRef:4,childSlot:2,spread:!1},{name:"source",grammarRef:6,childSlot:3,spread:!1}]},"24":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"extra",grammarRef:5,childSlot:2,spread:!1},{name:"source",grammarRef:9,childSlot:3,spread:!1}]},"25":{kind:"import",roles:[{name:"source",grammarRef:2,childSlot:2,spread:!1}],nested:[{role:"attributes",path:[1],kind:"withattrs",roles:[{name:"keyword",grammarRef:3,childSlot:0,spread:!1},{name:"value",grammarRef:4,childSlot:1,spread:!1}],nested:[]}]},"26":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"source",grammarRef:4,childSlot:3,spread:!1}],nested:[{role:"attributes",path:[2],kind:"withattrs",roles:[{name:"keyword",grammarRef:5,childSlot:0,spread:!1},{name:"value",grammarRef:6,childSlot:1,spread:!1}],nested:[]}]},"27":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"source",grammarRef:4,childSlot:3,spread:!1}],nested:[{role:"attributes",path:[2],kind:"withattrs",roles:[{name:"keyword",grammarRef:5,childSlot:0,spread:!1},{name:"value",grammarRef:6,childSlot:1,spread:!1}],nested:[]}]},"28":{kind:"import",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1},{name:"source",grammarRef:7,childSlot:3,spread:!1}],nested:[{role:"attributes",path:[2],kind:"withattrs",roles:[{name:"keyword",grammarRef:8,childSlot:0,spread:!1},{name:"value",grammarRef:9,childSlot:1,spread:!1}],nested:[]}]},"29":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"extra",grammarRef:4,childSlot:2,spread:!1},{name:"source",grammarRef:6,childSlot:4,spread:!1}],nested:[{role:"attributes",path:[3],kind:"withattrs",roles:[{name:"keyword",grammarRef:7,childSlot:0,spread:!1},{name:"value",grammarRef:8,childSlot:1,spread:!1}],nested:[]}]},"30":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"extra",grammarRef:5,childSlot:2,spread:!1},{name:"source",grammarRef:9,childSlot:4,spread:!1}],nested:[{role:"attributes",path:[3],kind:"withattrs",roles:[{name:"keyword",grammarRef:10,childSlot:0,spread:!1},{name:"value",grammarRef:11,childSlot:1,spread:!1}],nested:[]}]},"31":{kind:"import",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1},{name:"source",grammarRef:5,childSlot:2,spread:!1},{name:"typeOnly",grammarRef:2,childSlot:null,spread:!1}]},"32":{kind:"import",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1},{name:"source",grammarRef:5,childSlot:2,spread:!1},{name:"typeOnly",grammarRef:2,childSlot:null,spread:!1}]},"33":{kind:"import",roles:[{name:"spec",grammarRef:null,childSlot:1,literal:"{}"},{name:"source",grammarRef:6,childSlot:2,spread:!1},{name:"typeOnly",grammarRef:2,childSlot:null,spread:!1}]},"34":{kind:"import",roles:[{name:"spec",grammarRef:4,childSlot:1,spread:!1},{name:"source",grammarRef:8,childSlot:2,spread:!1},{name:"typeOnly",grammarRef:2,childSlot:null,spread:!1}]},"41":{kind:"as",roles:[{name:"name",grammarRef:1,childSlot:0,spread:!1},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"43":{kind:"as",roles:[{name:"name",grammarRef:1,childSlot:0,spread:!1},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"45":{kind:"as",roles:[{name:"name",grammarRef:null,childSlot:0,literal:"*"},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"46":{kind:"export",roles:[{name:"spec",grammarRef:null,childSlot:1,literal:"{}"}]},"47":{kind:"export",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1}]},"48":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"49":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"50":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"51":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"52":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"53":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"54":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"55":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"56":{kind:"export",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1}]},"57":{kind:"export",roles:[{name:"spec",grammarRef:4,childSlot:1,spread:!1}]},"58":{kind:"export",roles:[{name:"source",grammarRef:4,childSlot:1,spread:!1}]},"59":{kind:"export",roles:[{name:"source",grammarRef:6,childSlot:1,spread:!1},{name:"alias",grammarRef:4,childSlot:2,spread:!1}]},"60":{kind:"export",roles:[{name:"source",grammarRef:6,childSlot:1,spread:!1},{name:"alias",grammarRef:4,childSlot:2,spread:!1}]},"61":{kind:"export",roles:[{name:"spec",grammarRef:null,childSlot:1,literal:"{}"},{name:"source",grammarRef:5,childSlot:2,spread:!1}]},"62":{kind:"export",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1},{name:"source",grammarRef:7,childSlot:2,spread:!1}]},"63":{kind:"export",roles:[{name:"spec",grammarRef:4,childSlot:1,spread:!1},{name:"source",grammarRef:8,childSlot:2,spread:!1},{name:"typeOnly",grammarRef:2,childSlot:null,spread:!1}]},"64":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"65":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"66":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"67":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"68":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"69":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"70":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"typeParams",grammarRef:2,childSlot:null,spread:!1}]},"71":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"72":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"73":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"74":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"75":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"76":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"77":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"78":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"79":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"80":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"81":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"82":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"83":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"84":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"85":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"86":{kind:"effect",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"87":{kind:"effect",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"88":{kind:"effect",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"95":{kind:"as",roles:[{name:"name",grammarRef:1,childSlot:0,spread:!1},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"96":{kind:"as",roles:[{name:"name",grammarRef:1,childSlot:0,spread:!1},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"98":{kind:"as",roles:[{name:"name",grammarRef:1,childSlot:0,spread:!1},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"127":{kind:"dammit",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"129":{kind:"tagged",roles:[{name:"tag",grammarRef:1,childSlot:1,spread:!1},{name:"str",grammarRef:3,childSlot:2,spread:!1}]},"137":{kind:"symbol",roles:[{name:"name",grammarRef:1,childSlot:1,spread:!1}]},"139":{kind:"str",roles:[{name:"parts",grammarRef:2,childSlot:1,spread:!0}]},"147":{kind:"heregex",roles:[{name:"flags",grammarRef:3,childSlot:1,spread:!1},{name:"parts",grammarRef:2,childSlot:2,spread:!0}]},"150":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"151":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"152":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"153":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"154":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"155":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"156":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"157":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"158":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"159":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1}]},"160":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:6,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1}]},"161":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:6,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1}]},"162":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"163":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"164":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"typeParams",grammarRef:2,childSlot:null,spread:!1}]},"165":{kind:"assign",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"166":{kind:"assign",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"167":{kind:"assign",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"168":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:".="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"169":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"170":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"171":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"172":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"173":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"174":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"184":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"185":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"186":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"187":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1},{name:"operator",grammarRef:4,childSlot:null,spread:!1}]},"188":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"189":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"190":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"191":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1},{name:"operator",grammarRef:4,childSlot:null,spread:!1}]},"192":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"193":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"194":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"195":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"196":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:3,childSlot:2,spread:!1},{name:"key",grammarRef:5,childSlot:3,spread:!0},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"197":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:4,childSlot:2,spread:!1},{name:"key",grammarRef:6,childSlot:3,spread:!0},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"198":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"199":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"200":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"201":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1},{name:"operator",grammarRef:4,childSlot:null,spread:!1}]},"202":{kind:"effect",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"203":{kind:"effect",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"204":{kind:"effect",roles:[{name:"target",grammarRef:null,childSlot:1,literal:null},{name:"value",grammarRef:2,childSlot:2,spread:!1},{name:"operator",grammarRef:1,childSlot:null,spread:!1}]},"207":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"208":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"209":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"210":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:4,childSlot:2,spread:!1}]},"211":{kind:"regexindex",roles:[{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:3,childSlot:2,spread:!1},{name:"capture",grammarRef:5,childSlot:3,spread:!1}]},"212":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"213":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:4,childSlot:2,spread:!1}]},"214":{kind:"optindex",roles:[{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:4,childSlot:2,spread:!1}]},"215":{kind:"optindex",roles:[{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:5,childSlot:2,spread:!1}]},"216":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:3,childSlot:2,spread:!0}]},"217":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:3,childSlot:2,spread:!0}]},"218":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:4,childSlot:2,spread:!0}]},"219":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:4,childSlot:2,spread:!0}]},"220":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"221":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"222":{kind:"unary",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"223":{kind:"unary",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"224":{kind:"unary",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"225":{kind:"await",roles:[{name:"operator",grammarRef:3,childSlot:null,spread:!1}],nested:[{role:"value",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"new"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}],nested:[]}]},"226":{kind:"await",roles:[{name:"operator",grammarRef:3,childSlot:null,spread:!1}],nested:[{role:"value",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"new"}],nested:[{role:"operand",path:[1],kind:"call",roles:[{name:"callee",grammarRef:2,childSlot:0,spread:!1},{name:"args",grammarRef:4,childSlot:1,spread:!0}],nested:[]}]}]},"227":{kind:"call",roles:[{name:"callee",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"233":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"234":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"235":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"236":{kind:"tagged",roles:[{name:"tag",grammarRef:1,childSlot:1,spread:!1},{name:"str",grammarRef:3,childSlot:2,spread:!1}]},"239":{kind:"func",roles:[{name:"kind",grammarRef:4,childSlot:0,spread:!1},{name:"params",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:5,childSlot:2,spread:!1}]},"240":{kind:"func",roles:[{name:"kind",grammarRef:5,childSlot:0,spread:!1},{name:"params",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:6,childSlot:2,spread:!1},{name:"returnType",grammarRef:4,childSlot:null,spread:!1}]},"241":{kind:"func",roles:[{name:"kind",grammarRef:1,childSlot:0,spread:!1},{name:"body",grammarRef:2,childSlot:2,spread:!1}]},"244":{kind:"doiife",roles:[{name:"func",grammarRef:2,childSlot:1,spread:!1}]},"247":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"property",grammarRef:2,childSlot:2,spread:!1}]},"248":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"property",grammarRef:2,childSlot:2,spread:!1}]},"249":{kind:"array",roles:[]},"250":{kind:"array",roles:[{name:"elisions",grammarRef:2,childSlot:1,spread:!0}]},"251":{kind:"array",roles:[{name:"items",grammarRef:2,childSlot:1,spread:!0},{name:"elisions",grammarRef:3,childSlot:null,spread:!0}]},"265":{kind:"object",roles:[{name:"pairs",grammarRef:2,childSlot:1,spread:!0}]},"266":{kind:"map",roles:[{name:"pairs",grammarRef:3,childSlot:1,spread:!0}]},"272":{kind:"pair",roles:[{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:1,childSlot:2,spread:!1}]},"274":{kind:"pair",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:":"},{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"275":{kind:"pair",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:":"},{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"276":{kind:"pair",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:":"},{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"277":{kind:"pair",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"278":{kind:"pair",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"279":{kind:"pair",roles:[{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"280":{kind:"pair",roles:[{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"281":{kind:"splat",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"282":{kind:"splat",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"288":{kind:"super",roles:[{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"289":{kind:"dynimport",roles:[{name:"keyword",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"290":{kind:"call",roles:[{name:"callee",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"291":{kind:"call",roles:[{name:"callee",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"292":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"293":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"294":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"295":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:4,childSlot:2,spread:!1}]},"296":{kind:"dammit",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"297":{kind:"maybe-dammit",roles:[{name:"callee",grammarRef:1,childSlot:1,spread:!1},{name:"args",grammarRef:3,childSlot:2,spread:!0},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"298":{kind:"maybe-dammit",roles:[{name:"callee",grammarRef:1,childSlot:1,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"299":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:3,childSlot:2,spread:!0}]},"300":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:3,childSlot:2,spread:!0}]},"301":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:4,childSlot:2,spread:!0}]},"302":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:4,childSlot:2,spread:!0}]},"307":{kind:"pickitem",roles:[{name:"key",grammarRef:1,childSlot:0,spread:!1},{name:"target",grammarRef:1,childSlot:1,spread:!1}]},"308":{kind:"pickitem",roles:[{name:"key",grammarRef:1,childSlot:0,spread:!1},{name:"target",grammarRef:3,childSlot:1,spread:!1}]},"309":{kind:"pickitem",roles:[{name:"key",grammarRef:1,childSlot:0,spread:!1},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"default",grammarRef:3,childSlot:2,spread:!1}]},"310":{kind:"pickitem",roles:[{name:"key",grammarRef:1,childSlot:0,spread:!1},{name:"target",grammarRef:3,childSlot:1,spread:!1},{name:"default",grammarRef:5,childSlot:2,spread:!1}]},"318":{kind:"dynamicKey",roles:[{name:"key",grammarRef:2,childSlot:1,spread:!1}]},"319":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:null,childSlot:1,literal:"this"},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"322":{kind:"range",roles:[{name:"operator",grammarRef:3,childSlot:0,spread:!1},{name:"from",grammarRef:2,childSlot:1,spread:!1},{name:"to",grammarRef:4,childSlot:2,spread:!1}]},"323":{kind:"range",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"from",grammarRef:1,childSlot:1,spread:!1},{name:"to",grammarRef:3,childSlot:2,spread:!1}]},"324":{kind:"range",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"from",grammarRef:1,childSlot:1,spread:!1},{name:"to",grammarRef:null,childSlot:2,literal:null}]},"325":{kind:"range",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"from",grammarRef:null,childSlot:1,literal:null},{name:"to",grammarRef:2,childSlot:2,spread:!1}]},"326":{kind:"range",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"from",grammarRef:null,childSlot:1,literal:null},{name:"to",grammarRef:null,childSlot:2,literal:null}]},"327":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:3,childSlot:2,spread:!1},{name:"body",grammarRef:4,childSlot:3,spread:!1}]},"328":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:3,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"returnType",grammarRef:4,childSlot:null,spread:!1}]},"329":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"typeParams",grammarRef:3,childSlot:null,spread:!1}]},"330":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:6,childSlot:3,spread:!1},{name:"typeParams",grammarRef:3,childSlot:null,spread:!1},{name:"returnType",grammarRef:5,childSlot:null,spread:!1}]},"331":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"voidMarker",grammarRef:3,childSlot:null,spread:!1}]},"332":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:6,childSlot:3,spread:!1},{name:"voidMarker",grammarRef:3,childSlot:null,spread:!1},{name:"returnType",grammarRef:5,childSlot:null,spread:!1}]},"333":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:3,childSlot:2,spread:!1},{name:"body",grammarRef:4,childSlot:3,spread:!1}]},"334":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:3,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"returnType",grammarRef:4,childSlot:null,spread:!1}]},"335":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"typeParams",grammarRef:3,childSlot:null,spread:!1}]},"336":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:6,childSlot:3,spread:!1},{name:"typeParams",grammarRef:3,childSlot:null,spread:!1},{name:"returnType",grammarRef:5,childSlot:null,spread:!1}]},"337":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"voidMarker",grammarRef:3,childSlot:null,spread:!1}]},"338":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:6,childSlot:3,spread:!1},{name:"voidMarker",grammarRef:3,childSlot:null,spread:!1},{name:"returnType",grammarRef:5,childSlot:null,spread:!1}]},"347":{kind:"default",roles:[{name:"name",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"348":{kind:"rest",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1}]},"349":{kind:"expansion",roles:[]},"351":{kind:"typedvar",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:2,childSlot:2,spread:!1}]},"352":{kind:"typedvar",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:3,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"353":{kind:"typedvar",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:null,childSlot:2,literal:""},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"358":{kind:"splat",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"360":{kind:"class",roles:[{name:"name",grammarRef:null,childSlot:1,literal:null},{name:"parent",grammarRef:null,childSlot:2,literal:null}]},"361":{kind:"class",roles:[{name:"name",grammarRef:null,childSlot:1,literal:null},{name:"parent",grammarRef:null,childSlot:2,literal:null},{name:"body",grammarRef:2,childSlot:3,spread:!1}]},"362":{kind:"class",roles:[{name:"name",grammarRef:null,childSlot:1,literal:null},{name:"parent",grammarRef:3,childSlot:2,spread:!1}]},"363":{kind:"class",roles:[{name:"name",grammarRef:null,childSlot:1,literal:null},{name:"parent",grammarRef:3,childSlot:2,spread:!1},{name:"body",grammarRef:4,childSlot:3,spread:!1}]},"364":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:null,childSlot:2,literal:null}]},"365":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:null,childSlot:2,literal:null},{name:"body",grammarRef:3,childSlot:3,spread:!1}]},"366":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:4,childSlot:2,spread:!1}]},"367":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1}]},"368":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:null,childSlot:2,literal:null},{name:"body",grammarRef:3,childSlot:3,spread:!1}]},"369":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1}]},"370":{kind:"enum",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:3,childSlot:2,spread:!1}]},"371":{kind:"schema",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"372":{kind:"component",roles:[{name:"parent",grammarRef:null,childSlot:1,literal:null},{name:"body",grammarRef:2,childSlot:2,spread:!1}]},"373":{kind:"component",roles:[{name:"parent",grammarRef:3,childSlot:1,spread:!1},{name:"body",grammarRef:4,childSlot:2,spread:!1}]},"374":{kind:"block",roles:[{name:"statements",grammarRef:2,childSlot:1,spread:!0}]},"380":{kind:"offer",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"381":{kind:"accept",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1}]},"382":{kind:"accept",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"provider",grammarRef:4,childSlot:2,spread:!1}]},"384":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"385":{kind:"render",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"386":{kind:"render",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"387":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:null,childSlot:1,literal:"super"},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"388":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:null,childSlot:1,literal:"super"},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"389":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:null,childSlot:1,literal:"super"},{name:"key",grammarRef:4,childSlot:2,spread:!1}]},"390":{kind:"call",roles:[{name:"callee",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"391":{kind:"super",roles:[{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"392":{kind:"optcall",roles:[{name:"callee",grammarRef:1,childSlot:1,spread:!1},{name:"args",grammarRef:3,childSlot:2,spread:!0}]},"393":{kind:"optcall",roles:[{name:"callee",grammarRef:1,childSlot:1,spread:!1},{name:"args",grammarRef:3,childSlot:2,spread:!0}]},"394":{kind:"maybe-dammit",roles:[{name:"callee",grammarRef:1,childSlot:1,spread:!1},{name:"args",grammarRef:3,childSlot:2,spread:!0},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"395":{kind:"maybe-dammit",roles:[{name:"callee",grammarRef:1,childSlot:1,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"396":{kind:"dynimport",roles:[{name:"keyword",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"397":{kind:"await",roles:[{name:"operator",grammarRef:2,childSlot:null,spread:!1}],nested:[{role:"value",path:[1],kind:"dynimport",roles:[{name:"keyword",grammarRef:null,childSlot:0,literal:"import"},{name:"args",grammarRef:3,childSlot:1,spread:!0}],nested:[]}]},"409":{kind:"block",roles:[]},"410":{kind:"block",roles:[{name:"statements",grammarRef:2,childSlot:1,spread:!0}]},"413":{kind:"return",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"414":{kind:"return",roles:[{name:"value",grammarRef:3,childSlot:1,spread:!1}]},"415":{kind:"return",roles:[]},"416":{kind:"while",roles:[{name:"condition",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:3,childSlot:2,spread:!1}]},"417":{kind:"while",roles:[{name:"body",grammarRef:3,childSlot:2,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}],nested:[]}]},"418":{kind:"while",roles:[{name:"condition",grammarRef:2,childSlot:1,spread:!1},{name:"guard",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1}]},"419":{kind:"while",roles:[{name:"guard",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}],nested:[]}]},"420":{kind:"while",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}]},"421":{kind:"while",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}]},"422":{kind:"while",roles:[{name:"body",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"423":{kind:"while",roles:[{name:"body",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"424":{kind:"while",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"guard",grammarRef:5,childSlot:2,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}]},"425":{kind:"while",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"guard",grammarRef:5,childSlot:2,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}]},"426":{kind:"while",roles:[{name:"guard",grammarRef:5,childSlot:2,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"427":{kind:"while",roles:[{name:"guard",grammarRef:5,childSlot:2,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"429":{kind:"if",roles:[{name:"condition",grammarRef:2,childSlot:1,spread:!1},{name:"then",grammarRef:3,childSlot:2,spread:!1}]},"430":{kind:"if",roles:[{name:"condition",grammarRef:2,childSlot:1,spread:!1},{name:"then",grammarRef:3,childSlot:2,spread:!1},{name:"else",grammarRef:4,childSlot:3,spread:!1}]},"431":{kind:"if",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:4,childSlot:2,spread:!1}]},"432":{kind:"if",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:4,childSlot:2,spread:!1},{name:"else",grammarRef:5,childSlot:3,spread:!1}]},"434":{kind:"if",roles:[{name:"then",grammarRef:3,childSlot:2,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}],nested:[]}]},"435":{kind:"if",roles:[{name:"then",grammarRef:3,childSlot:2,spread:!1},{name:"else",grammarRef:5,childSlot:3,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}],nested:[]}]},"438":{kind:"if",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:1,childSlot:null,spread:!1}]},"439":{kind:"if",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:1,childSlot:null,spread:!1}]},"440":{kind:"if",roles:[{name:"then",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"441":{kind:"if",roles:[{name:"then",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"442":{kind:"ternary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?:"},{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:1,childSlot:2,spread:!1},{name:"else",grammarRef:6,childSlot:3,spread:!1}]},"443":{kind:"ternary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?:"},{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:1,childSlot:2,spread:!1},{name:"else",grammarRef:5,childSlot:3,spread:!1}]},"444":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"445":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"446":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1}]},"447":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"448":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1}]},"449":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1}]},"450":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"finalizer",grammarRef:3,childSlot:2,spread:!1}]},"451":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1},{name:"finalizer",grammarRef:4,childSlot:3,spread:!1}]},"452":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"finalizer",grammarRef:3,childSlot:2,spread:!1}]},"453":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1},{name:"finalizer",grammarRef:4,childSlot:3,spread:!1}]},"454":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"finalizer",grammarRef:3,childSlot:2,spread:!1}]},"455":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1},{name:"finalizer",grammarRef:4,childSlot:3,spread:!1}]},"457":{kind:"block",roles:[{name:"statements",grammarRef:2,childSlot:1,spread:!1}]},"458":{kind:"catch",roles:[{name:"binding",grammarRef:2,childSlot:0,spread:!1},{name:"body",grammarRef:3,childSlot:1,spread:!1}]},"459":{kind:"catch",roles:[{name:"binding",grammarRef:2,childSlot:0,spread:!1},{name:"body",grammarRef:3,childSlot:1,spread:!1}]},"460":{kind:"catch",roles:[{name:"binding",grammarRef:2,childSlot:0,spread:!1},{name:"body",grammarRef:3,childSlot:1,spread:!1}]},"461":{kind:"catch",roles:[{name:"binding",grammarRef:null,childSlot:0,literal:null},{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"463":{kind:"typedvar",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:2,childSlot:2,spread:!1}]},"464":{kind:"throw",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"465":{kind:"throw",roles:[{name:"value",grammarRef:3,childSlot:1,spread:!1}]},"466":{kind:"switch",roles:[{name:"subject",grammarRef:2,childSlot:1,spread:!1},{name:"cases",grammarRef:4,childSlot:2,spread:!1},{name:"default",grammarRef:null,childSlot:3,literal:null}]},"467":{kind:"switch",roles:[{name:"subject",grammarRef:2,childSlot:1,spread:!1},{name:"cases",grammarRef:4,childSlot:2,spread:!1},{name:"default",grammarRef:6,childSlot:3,spread:!1}]},"468":{kind:"switch",roles:[{name:"subject",grammarRef:null,childSlot:1,literal:null},{name:"cases",grammarRef:3,childSlot:2,spread:!1},{name:"default",grammarRef:null,childSlot:3,literal:null}]},"469":{kind:"switch",roles:[{name:"subject",grammarRef:null,childSlot:1,literal:null},{name:"cases",grammarRef:3,childSlot:2,spread:!1},{name:"default",grammarRef:5,childSlot:3,spread:!1}]},"472":{kind:"when",roles:[{name:"conditions",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:3,childSlot:2,spread:!1}]},"473":{kind:"when",roles:[{name:"conditions",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:3,childSlot:2,spread:!1}]},"476":{kind:"forin",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"step",grammarRef:null,childSlot:3,literal:null},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:5,childSlot:5,spread:!1}]},"477":{kind:"forin",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"step",grammarRef:6,childSlot:3,spread:!1},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:7,childSlot:5,spread:!1}]},"478":{kind:"forin",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"step",grammarRef:null,childSlot:3,literal:null},{name:"guard",grammarRef:6,childSlot:4,spread:!1},{name:"body",grammarRef:7,childSlot:5,spread:!1}]},"479":{kind:"forin",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"step",grammarRef:8,childSlot:3,spread:!1},{name:"guard",grammarRef:6,childSlot:4,spread:!1},{name:"body",grammarRef:9,childSlot:5,spread:!1}]},"480":{kind:"forin",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"step",grammarRef:6,childSlot:3,spread:!1},{name:"guard",grammarRef:8,childSlot:4,spread:!1},{name:"body",grammarRef:9,childSlot:5,spread:!1}]},"481":{kind:"forof",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"object",grammarRef:4,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!1},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:5,childSlot:5,spread:!1}]},"482":{kind:"forof",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"object",grammarRef:4,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!1},{name:"guard",grammarRef:6,childSlot:4,spread:!1},{name:"body",grammarRef:7,childSlot:5,spread:!1}]},"483":{kind:"forof",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"object",grammarRef:5,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:6,childSlot:5,spread:!1}]},"484":{kind:"forof",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"object",grammarRef:5,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:7,childSlot:4,spread:!1},{name:"body",grammarRef:8,childSlot:5,spread:!1}]},"485":{kind:"foras",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!1},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:5,childSlot:5,spread:!1}]},"486":{kind:"foras",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!1},{name:"guard",grammarRef:6,childSlot:4,spread:!1},{name:"body",grammarRef:7,childSlot:5,spread:!1}]},"487":{kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:6,childSlot:5,spread:!1}]},"488":{kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:7,childSlot:4,spread:!1},{name:"body",grammarRef:8,childSlot:5,spread:!1}]},"489":{kind:"foras",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:5,childSlot:5,spread:!1}]},"490":{kind:"foras",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:6,childSlot:4,spread:!1},{name:"body",grammarRef:7,childSlot:5,spread:!1}]},"491":{kind:"forin",roles:[{name:"iterable",grammarRef:2,childSlot:2,spread:!1},{name:"step",grammarRef:null,childSlot:3,literal:null},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:3,childSlot:5,spread:!1}]},"492":{kind:"forin",roles:[{name:"iterable",grammarRef:2,childSlot:2,spread:!1},{name:"step",grammarRef:4,childSlot:3,spread:!1},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:5,childSlot:5,spread:!1}]},"493":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forin",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"step",grammarRef:null,childSlot:3,literal:null}],nested:[]}]},"494":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:7,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forin",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"step",grammarRef:null,childSlot:3,literal:null}],nested:[]}]},"495":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forin",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"step",grammarRef:7,childSlot:3,spread:!1}],nested:[]}]},"496":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:7,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forin",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"step",grammarRef:9,childSlot:3,spread:!1}],nested:[]}]},"497":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:9,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forin",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"step",grammarRef:7,childSlot:3,spread:!1}],nested:[]}]},"498":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forof",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"object",grammarRef:5,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!1}],nested:[]}]},"499":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:7,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forof",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"object",grammarRef:5,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!1}],nested:[]}]},"500":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forof",roles:[{name:"vars",grammarRef:4,childSlot:1,spread:!1},{name:"object",grammarRef:6,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"501":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:8,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forof",roles:[{name:"vars",grammarRef:4,childSlot:1,spread:!1},{name:"object",grammarRef:6,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"502":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!1}],nested:[]}]},"503":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:7,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!1}],nested:[]}]},"504":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:4,childSlot:1,spread:!1},{name:"iterable",grammarRef:6,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"505":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:8,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:4,childSlot:1,spread:!1},{name:"iterable",grammarRef:6,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"506":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"507":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:7,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"511":{kind:"loop",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"512":{kind:"loop",roles:[{name:"count",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:3,childSlot:2,spread:!1}]},"513":{kind:"update",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"--"},{name:"target",grammarRef:2,childSlot:1,spread:!1},{name:"prefix",grammarRef:null,childSlot:2,literal:!1}]},"514":{kind:"update",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"++"},{name:"target",grammarRef:2,childSlot:1,spread:!1},{name:"prefix",grammarRef:null,childSlot:2,literal:!1}]},"515":{kind:"update",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"--"},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"prefix",grammarRef:null,childSlot:2,literal:!0}]},"516":{kind:"update",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"++"},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"prefix",grammarRef:null,childSlot:2,literal:!0}]},"517":{kind:"existence",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?"},{name:"value",grammarRef:1,childSlot:1,spread:!1}]},"518":{kind:"cast",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:2,childSlot:2,spread:!1}]},"519":{kind:"satisfies",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:2,childSlot:2,spread:!1}]},"520":{kind:"ternary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?:"},{name:"condition",grammarRef:1,childSlot:1,spread:!1},{name:"then",grammarRef:3,childSlot:2,spread:!1},{name:"else",grammarRef:5,childSlot:3,spread:!1}]},"521":{kind:"unary",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"522":{kind:"doiife",roles:[{name:"func",grammarRef:2,childSlot:1,spread:!1}]},"523":{kind:"unary",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"524":{kind:"await",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1},{name:"operator",grammarRef:1,childSlot:null,spread:!1}]},"525":{kind:"await",roles:[{name:"value",grammarRef:3,childSlot:1,spread:!1},{name:"operator",grammarRef:1,childSlot:null,spread:!1}]},"526":{kind:"yield",roles:[]},"527":{kind:"yield",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"528":{kind:"yield",roles:[{name:"value",grammarRef:3,childSlot:1,spread:!1}]},"529":{kind:"yieldfrom",roles:[{name:"value",grammarRef:3,childSlot:1,spread:!1}]},"530":{kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"-"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"531":{kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"+"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"532":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"**"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"533":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"+"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"534":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"-"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"535":{kind:"binary",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"536":{kind:"binary",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"537":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"538":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"^"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"539":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"|"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"540":{kind:"binary",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"541":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"=~"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"542":{kind:"relation",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"543":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"544":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"545":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"??"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"546":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"547":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"548":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"??"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"549":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"550":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"551":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"??"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"552":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"553":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"554":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"555":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"556":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"557":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]}},primitiveRefs:{"1":[],"2":[1],"3":[1],"4":[1,3],"5":[1],"6":[1],"7":[1],"8":[1],"9":[1],"10":[1],"11":[1],"12":[1],"13":[1],"14":[1],"15":[1,2],"16":[1,3],"17":[2,3,4],"18":[2],"19":[2,4],"20":[2,4],"21":[5],"22":[3,7],"23":[2,4,6],"24":[2,5,9],"25":[3,4,2],"26":[2,5,6,4],"27":[2,5,6,4],"28":[3,8,9,7],"29":[2,4,7,8,6],"30":[2,5,10,11,9],"31":[3,5],"32":[3,5],"33":[6],"34":[4,8],"35":[1],"36":[1,3],"37":[1,4],"38":[2],"39":[1,4],"40":[1],"41":[1,3],"42":[1],"43":[1,3],"44":[1],"45":[3],"46":[],"47":[3],"48":[2],"49":[2],"50":[2],"51":[2],"52":[2],"53":[2],"54":[2],"55":[2],"56":[3],"57":[4],"58":[4],"59":[6,4],"60":[6,4],"61":[5],"62":[3,7],"63":[4,8],"64":[1,3],"65":[1,4],"66":[1,4],"67":[1,4],"68":[1,5],"69":[1,5],"70":[1,4],"71":[1,4],"72":[1,5],"73":[1,5],"74":[1,4],"75":[1,5],"76":[1,5],"77":[1,4],"78":[1,5],"79":[1,5],"80":[1,4],"81":[1,5],"82":[1,4],"83":[1,4],"84":[1,5],"85":[1,5],"86":[1,4],"87":[1,5],"88":[1,4],"89":[1],"90":[1,3],"91":[1,4],"92":[2],"93":[1,4],"94":[1],"95":[1,3],"96":[1,3],"97":[1],"98":[1,3],"99":[1],"100":[1],"101":[1],"102":[1],"103":[1],"104":[1],"105":[1],"106":[1],"107":[1],"108":[1],"109":[1],"110":[1],"111":[1],"112":[1],"113":[1],"114":[1],"115":[1],"116":[1],"117":[1],"118":[1],"119":[1],"120":[1],"121":[1],"122":[1],"123":[1],"124":[1],"125":[1],"126":[1],"127":[1],"128":[1],"129":[1,3],"130":[1],"131":[1],"132":[],"133":[],"134":[1],"135":[1],"136":[1],"137":[1],"138":[1],"139":[2],"140":[1],"141":[1,2],"142":[2],"143":[3],"144":[],"145":[1],"146":[1],"147":[3,2],"148":[1],"149":[1],"150":[1,3],"151":[1,4],"152":[1,4],"153":[1,4],"154":[1,5],"155":[1,5],"156":[1,4],"157":[1,5],"158":[1,5],"159":[1,5],"160":[1,6],"161":[1,6],"162":[1,3],"163":[1,4],"164":[1,4],"165":[2,1,3],"166":[2,1,4],"167":[2,1,4],"168":[1,3],"169":[1,4],"170":[1,5],"171":[1,5],"172":[1,4],"173":[1,5],"174":[1,5],"175":[1],"176":[1],"177":[1],"178":[1],"179":[2],"180":[2],"181":[1],"182":[2],"183":[1],"184":[1,3],"185":[1,4],"186":[1,4],"187":[1,5],"188":[1,3],"189":[1,4],"190":[1,4],"191":[1,5],"192":[1,3],"193":[1,4],"194":[1,3],"195":[1,4],"196":[1,3,5],"197":[1,4,6],"198":[1,3],"199":[1,4],"200":[1,4],"201":[1,5],"202":[1,3],"203":[1,4],"204":[2],"205":[1],"206":[1],"207":[1,3],"208":[1,3],"209":[1,3],"210":[1,4],"211":[1,3,5],"212":[1,3],"213":[1,4],"214":[1,4],"215":[1,5],"216":[1,3],"217":[1,3],"218":[1,4],"219":[1,4],"220":[1,3],"221":[1,3],"222":[1,2],"223":[1,2],"224":[1,2],"225":[2],"226":[2,4],"227":[1,2],"228":[1],"229":[1],"230":[1],"231":[1],"232":[1],"233":[1,3],"234":[1,3],"235":[1,3],"236":[1,3],"237":[1],"238":[1],"239":[4,2,5],"240":[5,2,6],"241":[1,2],"242":[1],"243":[1],"244":[2],"245":[],"246":[],"247":[2],"248":[2],"249":[],"250":[2],"251":[2,3],"252":[1],"253":[1,3],"254":[1,4],"255":[2,3],"256":[1,2,4,5],"257":[1],"258":[1,2],"259":[],"260":[2],"261":[1],"262":[1,2],"263":[],"264":[1],"265":[2],"266":[3],"267":[],"268":[1],"269":[1,3],"270":[1,4],"271":[1,4],"272":[1,1],"273":[1],"274":[1,3],"275":[1,4],"276":[1,3],"277":[1,3],"278":[1,4],"279":[1,4],"280":[1,5],"281":[2],"282":[2],"283":[1],"284":[1],"285":[1],"286":[1],"287":[1],"288":[2],"289":[1,2],"290":[1,2],"291":[1,2],"292":[1,3],"293":[1,3],"294":[1,3],"295":[1,4],"296":[1],"297":[1,3],"298":[1],"299":[1,3],"300":[1,3],"301":[1,4],"302":[1,4],"303":[1],"304":[1,3],"305":[1,4],"306":[1,4],"307":[1,1],"308":[1,3],"309":[1,1,3],"310":[1,3,5],"311":[1],"312":[1],"313":[1],"314":[1],"315":[1],"316":[1],"317":[1],"318":[2],"319":[3],"320":[],"321":[],"322":[3,2,4],"323":[2,1,3],"324":[2,1],"325":[1,2],"326":[1],"327":[2,3,4],"328":[2,3,5],"329":[2,4,5],"330":[2,4,6],"331":[2,4,5],"332":[2,4,6],"333":[2,3,4],"334":[2,3,5],"335":[2,4,5],"336":[2,4,6],"337":[2,4,5],"338":[2,4,6],"339":[],"340":[2],"341":[],"342":[1],"343":[1,3],"344":[1,4],"345":[1,4],"346":[1],"347":[1,3],"348":[2],"349":[],"350":[1],"351":[1,2],"352":[1,3],"353":[1],"354":[1],"355":[1],"356":[1],"357":[1],"358":[2],"359":[1],"360":[],"361":[2],"362":[3],"363":[3,4],"364":[2],"365":[2,3],"366":[2,4],"367":[2,4,5],"368":[2,3],"369":[2,4,5],"370":[2,3],"371":[2],"372":[2],"373":[3,4],"374":[2],"375":[1],"376":[1,3],"377":[1],"378":[1],"379":[1],"380":[2],"381":[2],"382":[2,4],"383":[1],"384":[1,3],"385":[2],"386":[2],"387":[3],"388":[3],"389":[4],"390":[1,2],"391":[2],"392":[1,3],"393":[1,3],"394":[1,3],"395":[1],"396":[1,2],"397":[3],"398":[],"399":[2],"400":[1],"401":[1,3],"402":[1,4],"403":[2],"404":[1,4],"405":[1],"406":[1],"407":[1],"408":[1],"409":[],"410":[2],"411":[2],"412":[3],"413":[2],"414":[3],"415":[],"416":[2,3],"417":[2,3],"418":[2,4,5],"419":[2,4,5],"420":[3,1],"421":[3,1],"422":[3,1],"423":[3,1],"424":[3,5,1],"425":[3,5,1],"426":[3,5,1],"427":[3,5,1],"428":[1],"429":[2,3],"430":[2,3,4],"431":[3,4],"432":[3,4,5],"433":[2],"434":[2,3],"435":[2,3,5],"436":[1],"437":[1],"438":[3,1],"439":[3,1],"440":[3,1],"441":[3,1],"442":[3,1,6],"443":[3,1,5],"444":[2],"445":[2],"446":[2,3],"447":[2],"448":[2,3],"449":[2,3],"450":[2,3],"451":[2,3,4],"452":[2,3],"453":[2,3,4],"454":[2,3],"455":[2,3,4],"456":[2],"457":[2],"458":[2,3],"459":[2,3],"460":[2,3],"461":[2],"462":[1],"463":[1,2],"464":[2],"465":[3],"466":[2,4],"467":[2,4,6],"468":[3],"469":[3,5],"470":[1],"471":[1,2],"472":[2,3],"473":[2,3],"474":[1],"475":[1,3],"476":[2,4,5],"477":[2,4,6,7],"478":[2,4,6,7],"479":[2,4,8,6,9],"480":[2,4,6,8,9],"481":[2,4,5],"482":[2,4,6,7],"483":[3,5,6],"484":[3,5,7,8],"485":[2,4,5],"486":[2,4,6,7],"487":[3,5,6],"488":[3,5,7,8],"489":[2,4,5],"490":[2,4,6,7],"491":[2,3],"492":[2,4,5],"493":[1,3,5],"494":[1,3,5,7],"495":[1,3,5,7],"496":[1,3,5,9,7],"497":[1,3,5,7,9],"498":[1,3,5],"499":[1,3,5,7],"500":[1,4,6],"501":[1,4,6,8],"502":[1,3,5],"503":[1,3,5,7],"504":[1,4,6],"505":[1,4,6,8],"506":[1,3,5],"507":[1,3,5,7],"508":[1],"509":[1],"510":[1,3],"511":[2],"512":[2,3],"513":[2],"514":[2],"515":[1],"516":[1],"517":[1],"518":[1,2],"519":[1,2],"520":[1,3,5],"521":[1,2],"522":[2],"523":[1,2],"524":[2],"525":[3],"526":[],"527":[2],"528":[3],"529":[3],"530":[2],"531":[2],"532":[1,3],"533":[1,3],"534":[1,3],"535":[2,1,3],"536":[2,1,3],"537":[1,3],"538":[1,3],"539":[1,3],"540":[2,1,3],"541":[1,3],"542":[2,1,3],"543":[1,3],"544":[1,3],"545":[1,3],"546":[1,3],"547":[1,3],"548":[1,3],"549":[1,3],"550":[1,3],"551":[1,3],"552":[1,3],"553":[1,3],"554":[1,3],"555":[1,3],"556":[1,3],"557":[1,3]},accumulators:{"4":!0,"36":!0,"37":!0,"39":!0,"90":!0,"91":!0,"93":!0,"141":!0,"253":!0,"254":!0,"256":!0,"262":!0,"269":!0,"270":!0,"271":!0,"304":!0,"305":!0,"306":!0,"343":!0,"344":!0,"345":!0,"376":!0,"401":!0,"402":!0,"404":!0,"471":!0},parseTable:(()=>{let e=[108,1,2,1,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-1,1,2,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,1,0,2,1,5,-2,108,5,1,5,31,61,89,-3,-3,-3,-3,-3,29,1,5,31,61,89,2,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,9,1,5,31,61,89,2,1,9,1,-7,-7,-7,-7,-7,135,136,133,134,57,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,6,3,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-99,-99,-99,-99,-99,-99,137,138,-99,143,-99,-237,-237,-237,-99,-237,-237,-99,-237,140,-99,-99,-99,-99,142,-99,141,139,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,50,1,5,22,3,5,1,61,15,4,1,1,1,2,1,2,1,9,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-100,-100,-100,-100,-100,-100,-100,-100,-238,-238,-238,-100,-238,-238,-100,-238,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,65,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-119,-119,145,146,-119,-119,-119,-119,144,147,151,148,149,152,-119,-119,-119,150,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,18,6,14,7,4,2,3,66,6,7,19,1,6,1,9,6,9,1,1,-341,158,100,-341,160,-341,96,159,161,153,-341,163,162,101,156,154,155,157,2,36,22,165,164,46,16,4,3,4,6,28,1,13,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,26,170,167,103,100,76,168,169,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,171,107,105,106,96,166,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,82,46,16,4,3,4,6,28,1,13,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,26,170,167,103,100,76,168,169,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,171,107,105,106,96,172,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,82,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,175,176,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,173,174,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,177,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,179,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,180,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,181,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,182,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,144,1,5,1,1,1,1,1,1,1,1,1,1,3,1,2,1,2,2,1,3,2,3,1,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,5,1,1,2,3,3,5,2,1,4,5,2,1,1,4,2,1,1,1,1,1,1,1,1,8,4,2,2,1,5,6,2,1,2,7,3,1,1,1,1,1,1,1,1,2,1,1,1,1,1,3,1,2,1,5,3,4,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-526,-526,183,178,26,27,28,29,30,31,73,32,65,54,71,103,185,100,-526,-526,76,184,-526,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,-526,105,106,96,45,75,-526,92,93,-526,-526,94,95,89,41,-526,42,90,91,86,87,88,83,-526,101,-526,-526,84,85,-526,66,74,67,68,69,82,-526,70,-526,-526,-526,63,56,97,-526,57,98,-526,-526,58,-526,-526,64,60,-526,-526,49,99,43,44,-526,-526,-526,46,47,48,50,51,52,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,186,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,187,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,58,1,5,11,11,3,5,1,15,30,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-138,-138,189,-138,-138,-138,-138,188,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,70,1,5,11,1,10,3,5,1,15,1,1,1,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,190,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,193,192,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,194,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,191,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,196,197,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,195,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,15,20,7,6,44,25,6,7,26,1,9,17,46,4,2,2,158,100,160,201,96,159,161,163,83,101,203,198,199,200,202,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,204,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,205,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,206,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,207,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,208,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,209,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,4,20,82,13,26,210,96,211,163,51,1,5,14,8,3,5,1,21,40,4,11,2,5,5,10,6,2,12,2,8,5,2,15,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-360,-360,216,-360,-360,165,-360,212,-360,96,-360,215,-360,-360,-360,163,-360,-360,-360,-360,214,213,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,1,175,217,3,36,136,5,220,219,218,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,222,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,221,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,143,1,5,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,1,3,2,3,1,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,5,1,1,2,3,3,5,2,1,4,5,2,1,1,4,2,1,1,1,1,1,1,1,1,8,4,2,2,1,5,6,2,1,2,7,3,1,1,1,1,1,1,1,1,2,1,1,1,1,1,3,1,2,1,5,3,4,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-415,-415,223,178,26,27,28,29,30,31,73,32,65,54,71,103,100,-415,-415,76,224,-415,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,-415,105,106,96,45,75,-415,92,93,-415,-415,94,95,89,41,-415,42,90,91,86,87,88,83,-415,101,-415,-415,84,85,-415,66,74,67,68,69,82,-415,70,-415,-415,-415,63,56,97,-415,57,98,-415,-415,58,-415,-415,64,60,-415,-415,49,99,43,44,-415,-415,-415,46,47,48,50,51,52,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,10,20,3,1,2,1,7,6,52,1,9,230,225,226,227,228,229,231,171,107,96,61,14,2,3,1,3,4,6,6,4,1,1,1,1,1,1,1,1,8,2,1,13,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,13,235,246,244,245,103,232,76,241,233,234,236,237,238,239,240,242,243,55,168,169,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,171,107,105,106,96,247,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,82,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,2,20,82,248,96,65,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,65,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,107,4,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,249,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,250,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,114,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,1,1,1,2,1,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,251,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,257,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,252,253,254,256,259,255,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,4,112,5,2,13,143,263,264,262,3,82,30,20,266,143,265,5,62,71,3,1,1,267,41,42,90,91,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,59,1,5,22,3,5,1,45,2,8,6,5,1,8,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-246,-246,-246,-246,-246,-246,-246,-246,269,-246,268,270,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,14,20,56,4,1,2,19,13,14,1,1,9,1,18,27,274,277,276,278,272,96,275,89,271,273,87,88,279,82,1,36,-242,1,36,-243,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,6,117,1,1,3,1,3,280,281,282,283,284,285,1,117,286,1,117,287,77,1,5,11,1,7,3,3,5,1,1,14,1,1,1,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,7,12,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,3,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,288,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,289,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,291,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,290,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,26,6,14,3,5,3,5,49,1,4,1,1,1,6,1,2,1,1,11,26,1,8,2,1,1,2,1,-267,302,103,-267,-267,-267,298,296,102,104,171,107,105,106,96,303,270,304,300,299,292,293,294,295,297,301,1,27,305,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,6,23,69,1,1,2,1,309,171,107,306,307,308,6,23,69,1,1,2,1,309,171,107,310,307,308,110,1,4,1,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,4,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,5,1,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,1,1,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-5,311,-5,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,-5,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,-5,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,-5,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,312,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,313,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,314,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,315,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,316,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,317,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,318,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,319,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,320,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,321,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,322,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,323,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,324,178,325,326,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,327,178,328,329,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,330,178,331,332,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,333,178,334,335,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,336,178,337,338,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,339,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,340,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,14,20,7,6,69,6,7,26,1,9,17,46,4,2,2,158,100,160,96,159,161,163,162,101,203,341,342,343,202,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,344,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,345,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,346,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,347,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,348,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,349,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,3,23,69,1,350,171,107,46,1,5,22,3,5,1,61,14,1,7,5,7,3,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-517,-517,-517,-517,-517,-517,-517,143,-517,-517,-517,351,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,2,112,20,143,352,57,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,6,3,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-395,-395,-395,-395,-395,-395,-395,-395,-395,143,-395,-395,-395,-395,-395,-395,-395,-395,-395,353,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,110,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,5,1,1,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,357,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,354,355,92,93,94,95,89,41,42,90,91,86,87,88,83,356,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,360,359,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,361,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,50,1,5,22,3,5,1,15,3,1,1,2,39,13,2,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-15,-15,-15,-15,-15,-15,362,366,363,364,367,-15,365,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,5,17,35,3,1,1,369,368,372,370,371,1,52,373,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,376,375,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,374,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,193,192,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,194,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,378,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,46,16,4,3,4,6,28,1,13,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,26,170,167,103,100,76,379,169,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,171,107,105,106,96,247,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,82,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,376,375,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,380,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,193,192,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,194,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,381,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,6,24,1,5,99,-407,384,383,-407,382,6,6,25,5,1,76,22,-342,-342,-342,-342,-342,-342,7,6,25,5,1,15,61,22,-346,-346,-346,-346,385,-346,-346,17,6,14,7,4,2,3,1,65,6,5,2,20,6,1,9,16,1,-349,158,100,-349,160,-349,-349,96,159,-349,161,-349,163,162,101,386,157,9,6,11,1,13,5,1,15,61,22,-350,387,388,-350,-350,-350,-350,-350,-350,13,6,11,1,13,5,1,15,61,22,80,2,2,2,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,13,6,11,1,13,5,1,15,61,22,80,2,2,2,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,13,6,11,1,13,5,1,15,61,22,80,2,2,2,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,13,6,11,1,13,5,1,15,61,22,80,2,2,2,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,114,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,1,1,1,2,1,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,257,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,252,253,254,256,259,255,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,92,11,1,269,268,270,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,107,4,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,4,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,390,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,389,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-513,-513,-513,-513,-513,-513,-175,-175,-513,-175,-513,-175,-175,-175,-513,-175,-175,-513,-175,-513,-513,-513,-513,-175,-513,-175,-175,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,13,82,2,28,5,1,1,3,1,3,6,29,23,1,137,138,143,-237,-237,-237,-237,-237,-237,140,142,141,391,6,117,1,1,3,1,3,-238,-238,-238,-238,-238,-238,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,62,1,5,22,3,1,4,1,45,2,8,1,2,2,1,3,11,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-514,-514,-514,-514,-514,-514,-175,-175,-514,-175,-514,-175,-175,-175,-514,-175,-175,-514,-175,-514,-514,-514,-514,-175,-514,-175,-175,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,394,392,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,393,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,395,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,4,189,1,9,1,135,136,133,134,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,112,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,3,27,6,118,100,396,101,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-527,3,27,6,118,100,397,101,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,398,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,112,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,112,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,399,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,52,400,2,52,3,401,402,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,131,132,-181,127,128,129,-181,-181,130,-181,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,403,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,46,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,2,1,1,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,404,405,407,406,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,46,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,2,1,1,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,131,132,-445,127,128,129,408,409,407,406,130,-445,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,46,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,2,1,1,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,135,136,-447,-447,133,134,410,411,407,406,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,4,215,2,2,2,412,413,414,415,12,20,7,6,69,6,7,26,1,9,17,46,8,158,100,160,96,159,161,163,162,101,203,416,202,12,20,7,6,69,6,7,26,1,9,17,46,8,158,100,160,96,159,161,163,162,101,203,417,202,3,36,22,158,165,418,419,5,31,184,2,2,2,420,-509,-509,-509,-509,5,31,184,2,2,2,-508,-508,-508,-508,-508,25,36,153,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,421,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,3,209,1,1,422,423,424,27,36,22,131,1,1,5,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,425,131,132,426,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,27,36,22,131,1,1,5,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,427,131,132,428,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-464,3,27,6,118,100,429,101,6,17,4,15,17,1,58,-339,430,-339,431,432,433,6,17,4,15,17,1,58,-339,434,-339,435,436,433,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,437,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,46,1,5,22,3,5,1,21,40,15,7,5,10,8,12,2,8,7,15,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-364,-364,-364,-364,165,-364,438,-364,-364,-364,-364,-364,-364,-364,-364,-364,439,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,3,36,22,114,165,440,441,45,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,7,15,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,442,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,2,1,1,1,2,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,445,446,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,443,444,447,448,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,131,132,-386,127,-386,-386,-386,-386,130,-386,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-386,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-413,3,27,6,118,100,449,101,45,1,5,22,3,1,4,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-18,-18,-18,-18,450,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,2,25,6,451,452,1,25,453,7,20,8,1,6,1,3,63,458,454,455,456,457,459,96,6,20,4,2,1,13,62,230,460,461,462,231,96,2,25,6,-44,-44,1,38,463,29,6,14,3,5,3,5,3,3,18,25,1,4,1,1,1,6,1,2,1,1,11,26,1,8,2,1,1,2,1,-267,468,103,464,-267,467,469,465,466,298,296,102,104,171,107,105,106,96,303,270,304,300,299,292,293,294,295,297,301,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,470,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,471,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,2,25,13,472,473,1,27,474,4,20,82,13,26,475,96,211,163,21,17,1,34,1,1,1,1,1,2,23,2,28,5,1,1,3,1,3,35,23,1,477,-205,476,478,479,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,18,17,1,37,1,1,2,23,2,28,5,1,1,3,1,3,35,23,1,480,481,151,148,149,152,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,62,1,5,11,1,10,3,5,1,18,1,1,2,23,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,2,36,22,165,482,2,6,181,108,483,106,4,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,484,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,31,6,25,5,107,14,7,1,24,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-405,-405,-405,-405,487,485,486,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,5,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,110,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,1,5,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,488,490,489,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,6,6,24,1,5,107,3,-407,493,492,-407,-407,491,61,6,4,5,4,3,5,4,5,1,4,18,28,1,1,1,1,1,1,6,1,2,25,1,1,4,4,1,1,1,1,1,1,8,6,2,1,11,2,1,2,7,3,2,1,1,4,4,3,6,1,5,7,3,1,1,4,1,1,1,1,1,494,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,5,6,25,5,1,106,-252,-252,-252,-252,-252,113,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,2,1,2,1,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,257,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,496,495,256,259,255,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,61,6,4,5,4,3,5,4,5,1,4,18,28,1,1,1,1,1,1,6,1,2,25,1,1,4,4,1,1,1,1,1,1,8,6,2,1,11,2,1,2,7,3,2,1,1,4,4,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,5,6,25,5,1,106,-257,-257,-257,-257,-257,6,6,25,5,1,76,30,-406,-406,-406,-406,-406,-406,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,497,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,2,103,1,498,270,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,499,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,500,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,2,112,20,143,501,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,75,1,5,11,1,10,3,5,1,15,1,1,1,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,7,12,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,3,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,75,1,5,11,1,10,3,5,1,15,1,1,1,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,7,12,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,3,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,75,1,5,11,1,10,3,5,1,15,1,1,1,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,7,12,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,3,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,57,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,6,3,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-222,-222,-222,-222,-222,-222,502,506,-222,143,-222,503,504,505,-222,-222,-222,-222,-222,507,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,2,117,2,263,264,2,103,1,508,270,2,103,1,509,270,109,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,5,6,1,1,4,3,1,1,1,1,1,1,9,6,2,1,4,1,6,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,510,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,511,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,512,94,95,89,41,42,90,91,86,87,88,83,101,487,84,85,513,486,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,119,514,8,20,16,66,1,1,20,38,1,519,516,96,520,270,515,517,518,8,20,16,66,1,1,20,38,1,519,522,96,520,270,521,517,518,2,103,1,523,270,2,103,1,524,270,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,525,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,526,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,527,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,5,6,22,2,1,5,-407,-407,528,529,-407,5,6,22,3,5,1,-268,-268,-268,-268,-268,6,6,22,3,5,1,118,-272,-272,-272,-272,-272,530,5,6,22,3,5,1,-273,-273,-273,-273,-273,1,155,531,8,6,22,3,5,1,15,2,101,-316,-316,-316,-316,-316,532,533,-316,6,6,22,3,5,1,118,-317,-317,-317,-317,-317,-317,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,534,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,4,92,11,1,38,269,268,270,535,18,20,7,6,43,4,1,21,1,1,11,25,1,10,5,2,1,1,26,302,100,538,539,541,540,96,303,270,304,87,88,101,536,537,542,543,82,16,6,22,3,5,1,15,2,28,30,5,1,1,4,3,29,6,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,16,6,22,3,5,1,15,2,28,30,5,1,1,4,3,29,6,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,16,6,22,3,5,1,15,2,28,30,5,1,1,4,3,29,6,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,26,6,14,3,5,3,5,49,1,4,1,1,1,6,1,2,1,1,11,26,1,8,2,1,1,2,1,-267,302,103,-267,-267,-267,298,296,102,104,171,107,105,106,96,303,270,304,300,299,544,293,294,295,297,301,6,23,69,1,3,1,4,309,171,107,546,308,545,5,92,1,2,2,4,-140,-140,-140,-140,-140,108,4,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,5,1,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,547,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,548,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,549,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,92,1,2,2,4,-145,-145,-145,-145,-145,6,23,69,1,2,1,1,309,171,107,550,546,308,5,1,5,31,61,89,-4,-4,-4,-4,-4,25,155,34,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,551,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,112,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,112,115,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,112,115,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,112,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,114,113,112,115,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,109,110,-537,114,113,112,115,116,-537,-537,-537,120,121,122,-537,-537,-537,-537,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,109,110,-538,114,113,112,115,116,117,-538,-538,120,121,122,-538,-538,-538,-538,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,109,110,-539,114,113,112,115,116,117,118,-539,120,121,122,-539,-539,-539,-539,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,109,110,-540,114,113,112,115,116,-540,-540,-540,-540,-540,122,-540,-540,-540,-540,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,109,110,-541,114,113,112,115,116,-541,-541,-541,-541,-541,122,-541,-541,-541,-541,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,109,110,-542,114,113,112,115,116,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,109,110,-543,114,113,112,115,116,117,118,119,120,121,122,-543,-543,-543,-543,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,109,110,-544,114,113,112,115,116,117,118,119,120,121,122,123,-544,-544,-544,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,109,110,-545,114,113,112,115,116,117,118,119,120,121,122,123,-545,-545,-545,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-552,-552,-552,-552,-552,-552,-552,-552,-552,-552,-552,-552,-552,-552,-552,-552,131,132,-552,127,-552,-552,-552,-552,130,-552,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-552,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-553,-553,-553,-553,-553,-553,-553,-553,-553,-553,-553,-553,-553,-553,-553,-553,131,132,-553,127,-553,-553,-553,-553,130,-553,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-553,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,131,132,-439,552,-439,-439,-439,-439,130,-439,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,131,132,-441,127,-441,-441,-441,-441,130,-441,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,4,215,2,2,2,553,554,555,556,12,20,7,6,69,6,7,26,1,9,17,46,8,158,100,160,96,159,161,163,162,101,203,557,202,12,20,7,6,69,6,7,26,1,9,17,46,8,158,100,160,96,159,161,163,162,101,203,558,202,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,131,132,559,127,-420,-420,-420,-420,130,-420,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-420,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,131,132,560,127,-422,-422,-422,-422,130,-422,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-422,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,131,132,-438,127,-438,-438,-438,-438,130,-438,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,131,132,-440,127,-440,-440,-440,-440,130,-440,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,131,132,561,127,-421,-421,-421,-421,130,-421,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-421,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,131,132,562,127,-423,-423,-423,-423,130,-423,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-423,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,5,6,24,1,5,77,-407,563,564,-407,-407,5,6,25,5,1,76,-400,-400,-400,-400,-400,109,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,6,1,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,357,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,565,92,93,94,95,89,41,42,90,91,86,87,88,83,356,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,30,6,25,5,1,76,30,46,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-405,-405,-405,-405,-405,-405,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-150,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,566,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,567,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,569,568,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,570,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,376,375,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,571,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,193,192,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,194,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,572,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,46,16,4,3,4,6,28,1,13,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,26,170,167,103,100,76,573,169,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,171,107,105,106,96,247,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,82,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,376,375,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,574,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,193,192,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,194,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,575,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,577,576,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,578,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,48,1,5,22,3,5,1,15,3,1,1,41,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-16,-16,-16,-16,-16,-16,579,582,580,581,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,376,375,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,583,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,193,192,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,194,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,584,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,376,375,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,585,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,586,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,131,132,-178,127,128,129,-178,-178,130,-178,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,587,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,588,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,57,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,6,3,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-192,-192,-192,-192,-192,-192,137,138,-192,589,-192,-237,-237,-237,-192,-237,-237,-192,-237,140,-192,-192,-192,-192,142,-192,141,391,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,4,17,119,1,1,591,590,90,91,16,6,14,7,6,3,1,65,6,7,26,1,9,6,9,1,1,-408,158,100,160,-408,-408,96,159,161,163,162,101,156,592,155,157,2,6,30,593,594,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,595,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,6,6,25,5,1,76,22,-348,-348,-348,-348,-348,-348,7,6,25,5,1,15,61,22,-351,-351,-351,-351,-351,-351,-351,8,6,11,14,5,1,15,61,22,-353,596,-353,-353,-353,-353,-353,-353,57,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,6,2,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,2,6,31,108,597,2,112,20,143,351,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-165,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,598,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,599,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-168,1,37,600,1,37,601,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-529,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-162,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,602,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,604,603,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,605,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,607,606,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,608,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,131,132,-182,127,128,129,-182,-182,130,-182,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,45,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,3,1,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,609,407,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,10,20,7,6,3,22,44,6,34,9,55,614,100,611,165,613,96,612,162,101,610,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,616,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,615,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,45,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,3,1,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,617,407,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,45,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,3,1,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,618,407,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,619,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,620,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,621,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,622,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,217,623,1,219,624,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,625,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,11,20,7,6,69,6,7,26,1,9,17,54,158,100,160,96,159,161,163,162,101,203,626,3,209,1,1,627,423,424,4,37,159,14,1,628,629,630,424,3,37,159,15,-470,-470,-470,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,4,1,7,3,1,1,4,1,1,1,1,1,632,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,631,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,633,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,634,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,37,635,3,17,19,22,637,165,636,4,17,4,15,76,-339,638,-339,433,4,17,4,15,76,-339,639,-339,433,18,6,14,7,4,2,3,66,6,5,2,19,7,1,9,6,9,1,1,-341,158,100,-341,160,-341,96,159,-341,161,640,163,162,101,156,154,155,157,3,17,19,22,642,165,641,4,17,4,15,76,-339,643,-339,433,4,17,4,15,76,-339,644,-339,433,45,1,5,22,3,5,1,21,40,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-362,-362,-362,-362,165,-362,645,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-362,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,646,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,647,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,26,36,141,12,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,220,648,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,2,6,31,650,649,2,6,31,-375,-375,26,6,31,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-378,-378,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,6,6,31,152,1,9,1,-379,-379,135,136,133,134,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,651,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,102,652,1,37,653,3,27,6,118,100,654,101,3,23,69,1,655,171,107,3,26,1,13,656,657,231,3,23,69,1,658,171,107,1,25,659,5,6,22,2,1,5,-407,-407,660,661,-407,5,6,22,3,5,1,-35,-35,-35,-35,-35,6,20,9,6,1,3,63,458,662,456,457,459,96,6,6,22,3,5,1,1,-40,-40,-40,-40,-40,663,6,6,22,3,5,1,1,-42,-42,-42,-42,-42,664,1,25,665,1,25,666,7,20,8,1,6,1,3,63,458,667,668,456,457,459,96,2,20,82,669,96,45,1,5,19,3,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,670,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,5,6,22,2,1,5,-407,-407,671,672,-407,5,6,22,3,5,1,-89,-89,-89,-89,-89,6,20,16,3,3,18,42,674,467,469,673,466,96,8,6,22,3,5,2,14,2,101,-94,-94,-94,-94,675,-313,-313,-313,6,6,22,3,5,1,1,-97,-97,-97,-97,-97,676,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,131,132,-56,127,128,129,-56,-56,130,-56,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,3,27,6,118,100,677,101,3,23,69,1,678,171,107,3,20,19,63,679,680,96,6,20,16,3,3,18,42,674,467,469,681,466,96,6,17,4,15,17,1,58,-339,682,-339,431,432,433,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,684,683,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,685,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,52,3,1,1,2,686,689,687,688,690,1,52,691,2,52,3,692,693,4,55,1,1,2,366,363,364,367,4,17,38,1,1,694,372,370,371,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,2,6,31,108,695,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,696,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,57,10,5,4,3,5,10,4,18,28,1,1,1,1,1,1,6,1,2,18,7,1,1,4,4,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,4,4,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,57,10,5,4,3,5,10,4,18,28,1,1,1,1,1,1,6,1,2,18,7,1,1,4,4,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,4,4,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,5,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,61,6,4,5,4,3,5,4,5,1,4,18,28,1,1,1,1,1,1,6,1,2,25,1,1,4,4,1,1,1,1,1,1,8,6,2,1,11,2,1,2,7,3,2,1,1,4,4,3,6,1,5,7,3,1,1,4,1,1,1,1,1,494,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,5,6,25,5,1,106,-258,-258,-258,-258,-258,2,36,107,698,697,115,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,1,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,1,1,3,1,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-408,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,-408,-408,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,-408,700,699,259,255,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,4,6,30,1,106,701,-259,-259,-259,61,6,4,5,4,3,5,4,5,1,4,18,28,1,1,1,1,1,1,6,1,2,25,1,1,4,4,1,1,1,1,1,1,8,6,2,1,11,2,1,2,7,3,2,1,1,4,4,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,6,6,24,1,5,1,109,-407,493,492,-407,-407,702,109,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,6,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,490,489,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,30,6,25,5,1,76,30,46,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-358,-358,-358,-358,-358,-358,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,25,120,69,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,703,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,704,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,57,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,6,3,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-225,-225,-225,-225,-225,-225,-225,-225,-225,143,-225,-225,-225,-225,-225,-225,-225,-225,-225,705,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,2,103,1,706,270,2,103,1,707,270,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,708,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,23,69,1,709,171,107,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,29,31,89,37,7,1,24,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,711,710,487,712,486,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,108,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,5,6,1,1,4,3,1,1,1,1,1,1,9,6,2,1,4,1,6,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,713,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,714,94,95,89,41,42,90,91,86,87,88,83,101,487,84,85,513,486,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,120,715,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,4,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,4,7,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,716,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,-326,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,-326,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,717,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,718,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,6,24,1,5,89,-407,719,720,-407,-407,7,20,82,1,1,20,38,1,519,96,520,270,721,517,518,5,6,25,5,1,88,-303,-303,-303,-303,-303,7,6,25,5,1,15,73,30,-307,-307,-307,-307,723,-307,722,7,6,25,5,1,15,73,30,-311,-311,-311,-311,-311,-311,-311,7,6,25,5,1,15,73,30,-312,-312,-312,-312,-312,-312,-312,5,6,24,1,5,89,-407,724,720,-407,-407,7,20,82,1,1,20,38,1,519,96,520,270,725,517,518,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,45,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,4,1,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,726,727,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,728,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,3,6,22,8,730,729,731,25,6,14,3,5,8,1,48,1,4,1,1,1,6,1,2,1,1,11,26,1,10,1,1,2,1,-408,302,103,-408,-408,-408,298,296,102,104,171,107,105,106,96,303,270,304,300,299,732,294,295,297,301,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,733,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,734,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,735,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,736,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,737,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,155,738,25,143,46,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,739,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,740,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,14,6,22,3,5,1,45,30,5,1,1,4,3,6,29,-281,-281,-281,-281,-281,-283,143,-283,-283,-283,-283,-283,741,-283,14,6,22,3,5,1,45,30,5,1,1,4,3,6,29,-282,-282,-282,-282,-282,746,143,743,744,745,748,749,742,747,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,4,112,5,2,13,143,263,264,750,2,112,20,143,751,5,6,22,2,1,5,-407,-407,752,529,-407,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,5,92,1,2,2,4,-141,-141,-141,-141,-141,2,6,92,108,753,106,4,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,754,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,92,1,2,2,4,-144,-144,-144,-144,-144,62,1,5,22,3,1,4,1,45,2,8,1,2,2,1,3,11,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,755,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,757,178,337,338,28,29,30,31,73,32,65,54,71,103,100,76,756,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,758,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,759,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,760,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,761,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,217,762,1,219,763,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,764,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,765,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,766,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,767,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,6,30,77,769,770,768,111,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,1,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,5,2,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-408,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,-408,-408,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,-408,92,93,94,95,89,41,42,90,91,86,87,88,83,771,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,6,24,1,5,1,-407,772,564,-407,-407,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-151,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,773,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-153,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,774,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,775,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,57,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,6,3,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-193,-193,-193,-193,-193,-193,137,138,-193,776,-193,-237,-237,-237,-193,-237,-237,-193,-237,140,-193,-193,-193,-193,142,-193,141,391,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-156,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,777,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,778,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,780,779,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,781,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,376,375,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,782,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,193,192,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,194,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,783,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,376,375,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,784,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-164,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,131,132,-179,127,128,129,-179,-179,130,-179,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,785,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,110,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,5,1,1,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,357,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,786,787,92,93,94,95,89,41,42,90,91,86,87,88,83,356,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,2,36,22,165,788,3,136,1,1,789,90,91,6,6,25,5,1,76,22,-343,-343,-343,-343,-343,-343,13,20,7,6,69,6,7,26,1,9,6,9,1,1,158,100,160,96,159,161,163,162,101,156,790,155,157,18,6,14,7,4,2,3,1,65,6,7,19,7,1,9,6,9,1,1,-341,158,100,-341,160,-341,-341,96,159,161,791,163,162,101,156,154,155,157,30,6,25,5,1,76,22,54,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-347,-347,-347,-347,-347,-347,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,7,6,25,5,1,15,61,22,-352,-352,-352,-352,-352,-352,-352,57,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,6,2,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,792,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-167,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-163,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-169,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,793,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,794,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,131,132,-172,127,128,129,-172,-172,130,-172,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,795,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,796,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,2,36,22,165,797,2,36,22,165,798,2,36,22,165,799,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,2,17,19,800,-462,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,131,132,-457,127,128,129,-457,-457,130,-457,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,28,36,22,131,1,1,5,3,1,13,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,801,131,132,803,127,128,129,130,802,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,27,36,22,131,1,1,5,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,804,131,132,805,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,27,36,22,131,1,1,5,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,806,131,132,807,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,27,36,22,131,1,1,5,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,808,131,132,809,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,810,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,811,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,812,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,4,215,2,2,2,-510,-510,-510,-510,4,37,159,14,1,813,814,630,424,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,2,36,22,165,815,3,37,159,15,-471,-471,-471,3,31,5,22,817,165,816,26,31,5,153,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-474,-474,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,818,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,819,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,45,1,5,22,3,5,1,21,40,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-17,-17,-17,-17,165,-17,820,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,3,17,19,22,822,165,821,3,17,19,22,824,165,823,5,6,24,1,5,77,-407,384,383,-407,825,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,2,36,22,165,826,3,17,19,22,828,165,827,3,17,19,22,830,165,829,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,45,1,5,22,3,5,1,21,40,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-366,-366,-366,-366,165,-366,831,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-366,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,832,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,109,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,4,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,3,1,1,2,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-377,445,446,26,27,28,29,30,31,73,32,65,54,71,103,100,76,-377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,833,447,448,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,26,6,31,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-380,-380,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,3,6,19,12,-381,834,-381,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,45,1,5,22,3,1,4,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-19,-19,-19,-19,835,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,1,25,836,6,20,9,6,1,3,63,458,837,456,457,459,96,45,1,5,22,3,1,4,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-20,-20,-20,-20,838,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,3,23,69,1,839,171,107,3,6,22,8,841,840,842,8,6,14,8,7,1,1,2,63,-408,458,-408,843,-408,-408,459,96,5,6,24,1,5,1,-407,844,661,-407,-407,2,20,82,845,96,2,20,82,846,96,3,23,69,1,847,171,107,3,23,69,1,848,171,107,1,25,849,5,6,22,2,1,5,-407,-407,850,661,-407,1,25,-45,3,23,69,1,851,171,107,3,6,22,8,853,852,854,8,6,14,8,8,1,2,21,42,-408,674,-408,-408,-408,469,855,96,5,6,24,1,5,1,-407,856,672,-407,-407,6,6,22,3,5,1,1,-94,-94,-94,-94,-94,675,3,20,19,63,857,858,96,2,20,82,859,96,1,37,860,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,1,25,861,1,25,862,5,6,22,2,1,5,-407,-407,863,672,-407,3,17,19,22,864,165,636,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,131,132,-64,127,128,129,-64,-64,130,-64,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,865,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,866,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,868,867,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,869,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,871,870,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,872,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,874,873,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,875,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,877,876,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,878,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,880,879,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,881,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,882,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,884,883,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,885,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,887,886,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,888,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,55,1,1,582,580,581,1,187,889,25,143,46,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,890,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,5,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,113,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,2,1,2,1,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,257,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,496,891,256,259,255,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,6,25,5,1,106,-253,-253,-253,-253,-253,112,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,1,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,1,5,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,-260,-260,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,-260,490,489,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,111,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,2,3,1,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,496,892,259,255,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,2,36,1,698,893,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,894,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,25,120,69,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,895,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,896,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,4,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,4,7,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,897,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,-324,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,-324,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,28,37,120,7,1,24,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,898,487,712,486,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,1,37,899,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,26,37,83,69,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-325,-325,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,120,69,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,900,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,901,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,6,30,89,903,904,902,10,6,14,16,1,65,1,1,21,37,1,-408,519,-408,-408,96,520,270,-408,905,518,5,6,24,1,5,1,-407,906,720,-407,-407,5,20,82,1,1,59,519,96,520,270,907,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,908,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,6,30,89,903,904,909,5,6,24,1,5,1,-407,910,720,-407,-407,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,3,36,22,136,165,912,911,2,36,22,165,913,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,5,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,21,20,3,62,1,4,1,1,1,6,1,2,1,1,11,26,1,10,1,1,2,1,302,103,298,296,102,104,171,107,105,106,96,303,270,304,300,299,914,294,295,297,301,26,6,14,3,8,5,1,48,1,4,1,1,1,6,1,2,1,1,11,26,1,8,2,1,1,2,1,-267,302,103,-267,-267,-267,298,296,102,104,171,107,105,106,96,303,270,304,300,299,915,293,294,295,297,301,5,6,22,3,5,1,-269,-269,-269,-269,-269,29,6,22,3,5,1,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-274,-274,-274,-274,-274,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,916,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,29,6,22,3,5,1,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-276,-276,-276,-276,-276,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,29,6,22,3,5,1,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-277,-277,-277,-277,-277,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,917,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,918,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,919,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,6,6,22,3,5,1,118,-318,-318,-318,-318,-318,-318,25,143,46,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,920,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,2,103,1,921,270,2,103,1,922,270,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,923,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,924,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,14,6,22,3,5,1,45,30,5,1,1,4,3,6,29,-298,-298,-298,-298,-298,-298,143,-298,-298,-298,-298,-298,925,-298,8,20,16,66,1,1,20,38,1,519,927,96,520,270,926,517,518,8,20,16,66,1,1,20,38,1,519,929,96,520,270,928,517,518,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,3,6,22,8,730,930,731,5,92,1,2,2,4,-142,-142,-142,-142,-142,2,6,31,108,931,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-520,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,932,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,131,132,-443,127,-443,-443,-443,-443,130,-443,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-443,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,933,-493,-493,-493,-493,-493,-493,934,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-493,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,935,-498,-498,-498,-498,-498,-498,-498,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-498,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,936,-502,-502,-502,-502,-502,-502,-502,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-502,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,937,-506,-506,-506,-506,-506,-506,-506,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-506,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,938,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,939,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-424,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-426,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-425,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-427,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,107,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,940,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,109,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,6,1,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,357,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,941,92,93,94,95,89,41,42,90,91,86,87,88,83,356,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,6,25,5,1,76,-401,-401,-401,-401,-401,3,6,30,1,769,770,942,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-154,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,943,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,110,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,5,1,1,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,357,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,944,945,92,93,94,95,89,41,42,90,91,86,87,88,83,356,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-157,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,946,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-159,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,947,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,948,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-194,-194,-194,-194,-194,-194,-398,-398,-194,-398,-194,-398,-398,-398,-194,-398,-398,-194,-398,-194,-194,-194,-194,-398,-194,-398,-398,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,5,6,24,1,5,77,-407,949,564,-407,-407,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,2,36,22,165,950,6,6,25,5,1,76,22,-344,-344,-344,-344,-344,-344,5,6,24,1,5,1,-407,951,383,-407,-407,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-170,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,952,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,131,132,-173,127,128,129,-173,-173,130,-173,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,953,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,1,36,-463,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,954,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,955,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,956,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,957,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,958,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,27,36,22,131,1,1,5,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,959,131,132,960,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,27,36,22,131,1,1,5,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,961,131,132,962,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,2,36,22,165,963,1,37,964,4,6,31,159,15,965,-472,-472,-472,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,966,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,2,36,22,165,967,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,2,36,22,165,968,2,17,19,-340,-340,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,2,36,22,165,969,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,2,36,22,165,970,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,2,6,31,-376,-376,2,102,80,972,971,3,27,6,118,100,973,101,3,23,69,1,974,171,107,5,6,22,2,1,5,-407,-407,975,661,-407,3,27,6,118,100,976,101,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,1,25,977,4,20,15,4,63,458,978,459,96,6,20,9,6,1,3,63,458,979,456,457,459,96,5,6,22,3,5,1,-36,-36,-36,-36,-36,3,6,30,1,841,842,980,5,6,22,3,5,1,-41,-41,-41,-41,-41,5,6,22,3,5,1,-43,-43,-43,-43,-43,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,3,23,69,1,981,171,107,3,6,22,8,841,982,842,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,45,1,5,19,3,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-47,-47,983,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,4,20,19,21,42,674,469,984,96,6,20,16,3,3,18,42,674,467,469,985,466,96,5,6,22,3,5,1,-90,-90,-90,-90,-90,3,6,30,1,853,854,986,5,6,22,3,5,1,-95,-95,-95,-95,-95,5,6,22,3,5,1,-96,-96,-96,-96,-96,5,6,22,3,5,1,-98,-98,-98,-98,-98,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,3,23,69,1,987,171,107,3,23,69,1,988,171,107,3,6,22,8,853,989,854,2,36,22,165,820,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,131,132,-65,127,128,129,-65,-65,130,-65,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,990,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,131,132,-67,127,128,129,-67,-67,130,-67,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,991,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,992,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,131,132,-77,127,128,129,-77,-77,130,-77,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,993,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,994,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,131,132,-80,127,128,129,-80,-80,130,-80,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,995,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,131,132,-83,127,128,129,-83,-83,130,-83,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,996,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,997,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,131,132,-86,127,128,129,-86,-86,130,-86,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,998,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,131,132,-70,127,128,129,-70,-70,130,-70,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,131,132,-71,127,128,129,-71,-71,130,-71,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,999,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1000,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,131,132,-74,127,128,129,-74,-74,130,-74,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1001,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1002,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,6,6,24,1,5,1,109,-407,493,492,-407,-407,1003,5,6,25,5,1,106,-254,-254,-254,-254,-254,5,6,25,5,1,106,-255,-255,-255,-255,-255,1,120,1004,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,25,120,69,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1005,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,37,83,69,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-323,-323,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,1,120,1006,1,120,1007,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1008,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,6,20,82,1,1,58,1,519,96,520,270,1009,518,7,20,82,1,1,20,38,1,519,96,520,270,1010,517,518,5,6,25,5,1,88,-304,-304,-304,-304,-304,3,6,30,1,903,904,1011,6,6,25,5,1,15,73,-308,-308,-308,-308,1012,-308,29,6,25,5,1,88,64,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-309,-309,-309,-309,-309,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,3,6,30,1,903,904,1013,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1014,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,5,6,22,3,5,1,-270,-270,-270,-270,-270,5,6,24,1,5,1,-407,1015,529,-407,-407,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1016,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1017,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,29,6,22,3,5,1,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-279,-279,-279,-279,-279,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1018,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,6,6,22,3,5,1,118,-319,-319,-319,-319,-319,-319,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,25,120,69,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1019,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1020,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,5,6,24,1,5,89,-407,1021,720,-407,-407,7,20,82,1,1,20,38,1,519,96,520,270,1022,517,518,5,6,24,1,5,89,-407,1023,720,-407,-407,7,20,82,1,1,20,38,1,519,96,520,270,1024,517,518,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,5,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,1,98,1025,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1026,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1027,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1028,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1029,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1030,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1031,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,1032,-500,-500,-500,-500,-500,-500,-500,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-500,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,1033,-504,-504,-504,-504,-504,-504,-504,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-504,5,6,25,5,1,76,-402,-402,-402,-402,-402,5,6,24,1,5,1,-407,1034,564,-407,-407,5,6,25,5,1,76,-403,-403,-403,-403,-403,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-195,-195,-195,-195,-195,-195,-398,-398,-195,-398,-195,-398,-398,-398,-195,-398,-398,-195,-398,-195,-195,-195,-195,-398,-195,-398,-398,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,5,6,24,1,5,77,-407,1035,564,-407,-407,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-160,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1036,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,3,6,30,77,769,770,1037,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,3,6,30,1,593,594,1038,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,27,36,22,131,1,1,5,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1039,131,132,1040,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,27,36,22,131,1,6,3,1,13,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1041,131,132,127,128,129,130,1042,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1043,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1044,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1045,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1046,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1047,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,37,1048,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,3,37,159,15,-473,-473,-473,26,31,5,153,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-475,-475,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,3,6,31,80,-382,-382,1049,3,6,31,80,-383,-383,-383,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,45,1,5,22,3,1,4,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-23,-23,-23,-23,1050,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,3,6,22,8,841,1051,842,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,3,23,69,1,1052,171,107,5,6,22,3,5,1,-37,-37,-37,-37,-37,5,6,24,1,5,1,-407,1053,661,-407,-407,5,6,22,3,5,1,-38,-38,-38,-38,-38,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,1,25,1054,3,23,69,1,1055,171,107,5,6,22,3,5,1,-91,-91,-91,-91,-91,5,6,24,1,5,1,-407,1056,672,-407,-407,5,6,22,3,5,1,-92,-92,-92,-92,-92,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,1,25,1057,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,131,132,-68,127,128,129,-68,-68,130,-68,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1058,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,131,132,-78,127,128,129,-78,-78,130,-78,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1059,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,131,132,-81,127,128,129,-81,-81,130,-81,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,131,132,-84,127,128,129,-84,-84,130,-84,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1060,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,131,132,-87,127,128,129,-87,-87,130,-87,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,131,132,-72,127,128,129,-72,-72,130,-72,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1061,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,131,132,-75,127,128,129,-75,-75,130,-75,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1062,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,2,36,1,698,1063,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,1,120,1064,5,6,25,5,1,88,-305,-305,-305,-305,-305,5,6,24,1,5,1,-407,1065,720,-407,-407,1,125,1066,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1067,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,125,1068,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1069,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,3,6,30,1,730,731,1070,5,6,22,3,5,1,-275,-275,-275,-275,-275,5,6,22,3,5,1,-278,-278,-278,-278,-278,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1071,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1072,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,3,6,30,89,903,904,1073,5,6,24,1,5,1,-407,1074,720,-407,-407,3,6,30,89,903,904,1075,5,6,24,1,5,1,-407,1076,720,-407,-407,5,92,1,2,2,4,-143,-143,-143,-143,-143,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,1077,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-494,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,1078,-495,-495,-495,-495,-495,-495,-495,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-495,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-499,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-503,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-507,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1079,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1080,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,6,30,1,769,770,1081,3,6,30,77,769,770,1082,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-196,-196,-196,-196,-196,-196,-399,-399,-196,-399,-196,-399,-399,-399,-196,-399,-399,-196,-399,-196,-196,-196,-196,-399,-196,-399,-399,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,6,6,25,5,1,76,22,-345,-345,-345,-345,-345,-345,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1083,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1084,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1085,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1086,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,2,103,1,1087,270,3,27,6,118,100,1088,101,1,25,1089,45,1,5,22,3,1,4,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-22,-22,-22,-22,1090,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,3,6,30,1,841,842,1091,3,23,69,1,1092,171,107,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,3,6,30,1,853,854,1093,3,23,69,1,1094,171,107,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,5,6,25,5,1,106,-256,-256,-256,-256,-256,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,3,6,30,1,903,904,1095,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,29,6,25,5,1,88,64,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,-310,-310,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,45,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,4,1,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,1096,727,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,5,6,22,3,5,1,-271,-271,-271,-271,-271,5,6,22,3,5,1,-280,-280,-280,-280,-280,1,120,1097,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,3,6,30,1,903,904,1098,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,3,6,30,1,903,904,1099,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1100,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1101,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-501,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-505,5,6,25,5,1,76,-404,-404,-404,-404,-404,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-197,-197,-197,-197,-197,-197,-399,-399,-197,-399,-197,-399,-399,-399,-197,-399,-399,-197,-399,-197,-197,-197,-197,-399,-197,-399,-399,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1102,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1103,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,3,6,31,80,-384,-384,-384,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,3,23,69,1,1104,171,107,3,27,6,118,100,1105,101,5,6,22,3,5,1,-39,-39,-39,-39,-39,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,5,6,22,3,5,1,-93,-93,-93,-93,-93,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,5,6,25,5,1,88,-306,-306,-306,-306,-306,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,1,125,1106,1,125,1107,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-496,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-497,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,45,1,5,22,3,1,4,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-24,-24,-24,-24,1108,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,3,27,6,118,100,1109,101,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30],t=[],r=0,n,i,s,a;while(r","ArrowKind → =>","DoIife → DO_IIFE Code","This → THIS","This → @","ThisProperty → @ Property","ThisProperty → @ STRING","Array → [ ]","Array → [ Elisions ]","Array → [ ArgElisionList OptElisions ]","ArgElisionList → ArgElision","ArgElisionList → ArgElisionList , ArgElision","ArgElisionList → ArgElisionList OptComma TERMINATOR ArgElision","ArgElisionList → INDENT ArgElisionList OptElisions OUTDENT","ArgElisionList → ArgElisionList OptElisions INDENT ArgElisionList OptElisions OUTDENT","ArgElision → Arg","ArgElision → Elisions Arg","OptElisions → OptComma","OptElisions → , Elisions","Elisions → Elision","Elisions → Elisions Elision","Elision → ,","Elision → Elision TERMINATOR","Object → { AssignList OptComma }","Object → MAP_START { AssignList OptComma }","AssignList → ε","AssignList → AssignObj","AssignList → AssignList , AssignObj","AssignList → AssignList OptComma TERMINATOR AssignObj","AssignList → AssignList OptComma INDENT AssignList OptComma OUTDENT","AssignObj → ObjAssignable","AssignObj → ObjRestValue","AssignObj → ObjAssignable : Expression","AssignObj → ObjAssignable : INDENT Expression OUTDENT","AssignObj → Regex : Expression","AssignObj → SimpleObjAssignable = Expression","AssignObj → SimpleObjAssignable = INDENT Expression OUTDENT","AssignObj → SimpleObjAssignable VOID_MARKER : Expression","AssignObj → SimpleObjAssignable VOID_MARKER : INDENT Expression OUTDENT","ObjRestValue → ... SimpleObjAssignable","ObjRestValue → ... ObjSpreadExpr","ObjSpreadExpr → SimpleObjAssignable","ObjSpreadExpr → Object","ObjSpreadExpr → Parenthetical","ObjSpreadExpr → Super","ObjSpreadExpr → This","ObjSpreadExpr → SUPER Arguments","ObjSpreadExpr → DYNAMIC_IMPORT Arguments","ObjSpreadExpr → SimpleObjAssignable Arguments","ObjSpreadExpr → ObjSpreadExpr Arguments","ObjSpreadExpr → ObjSpreadExpr . Property","ObjSpreadExpr → ObjSpreadExpr ?. Property","ObjSpreadExpr → ObjSpreadExpr INDEX_START Expression INDEX_END","ObjSpreadExpr → ObjSpreadExpr INDEX_START INDENT Expression OUTDENT INDEX_END","ObjSpreadExpr → ObjSpreadExpr DAMMIT","ObjSpreadExpr → ObjSpreadExpr MAYBE_DAMMIT Arguments","ObjSpreadExpr → ObjSpreadExpr MAYBE_DAMMIT","ObjSpreadExpr → ObjSpreadExpr PICK_START PickList OptComma PICK_END","ObjSpreadExpr → ObjSpreadExpr OPTPICK_START PickList OptComma PICK_END","ObjSpreadExpr → ObjSpreadExpr PICK_START INDENT PickList OptComma OUTDENT PICK_END","ObjSpreadExpr → ObjSpreadExpr OPTPICK_START INDENT PickList OptComma OUTDENT PICK_END","PickList → PickItem","PickList → PickList , PickItem","PickList → PickList OptComma TERMINATOR PickItem","PickList → PickList OptComma INDENT PickList OptComma OUTDENT","PickItem → PickKey","PickItem → PickKey : PickKey","PickItem → PickKey = Expression","PickItem → PickKey : PickKey = Expression","PickKey → Identifier","PickKey → Property","SimpleObjAssignable → Identifier","SimpleObjAssignable → Property","SimpleObjAssignable → ThisProperty","ObjAssignable → SimpleObjAssignable","ObjAssignable → Atom","ObjAssignable → [ Expression ]","ObjAssignable → @ [ Expression ]","RangeDots → ..","RangeDots → ...","Range → [ Expression RangeDots Expression ]","Slice → Expression RangeDots Expression","Slice → Expression RangeDots","Slice → RangeDots Expression","Slice → RangeDots","Def → DEF Identifier OptParams Block","Def → DEF Identifier OptParams TYPE Block","Def → DEF Identifier TYPE_PARAMS OptParams Block","Def → DEF Identifier TYPE_PARAMS OptParams TYPE Block","Def → DEF Identifier VOID_MARKER OptParams Block","Def → DEF Identifier VOID_MARKER OptParams TYPE Block","Def → DEF ThisProperty OptParams Block","Def → DEF ThisProperty OptParams TYPE Block","Def → DEF ThisProperty TYPE_PARAMS OptParams Block","Def → DEF ThisProperty TYPE_PARAMS OptParams TYPE Block","Def → DEF ThisProperty VOID_MARKER OptParams Block","Def → DEF ThisProperty VOID_MARKER OptParams TYPE Block","OptParams → ε","OptParams → CALL_START ParamList CALL_END","ParamList → ε","ParamList → Param","ParamList → ParamList , Param","ParamList → ParamList OptComma TERMINATOR Param","ParamList → ParamList OptComma INDENT ParamList OptComma OUTDENT","Param → TypedParamVar","Param → TypedParamVar = Expression","Param → ... TypedParamVar","Param → ...","TypedParamVar → ParamVar","TypedParamVar → ParamVar TYPE","TypedParamVar → ParamVar OPT_MARKER TYPE","TypedParamVar → ParamVar OPT_MARKER","ParamVar → Identifier","ParamVar → Array","ParamVar → Object","ParamVar → ThisProperty","Splat → ... Expression","ClassName → Identifier","Class → CLASS","Class → CLASS Block","Class → CLASS EXTENDS Expression","Class → CLASS EXTENDS Expression Block","Class → CLASS ClassName","Class → CLASS ClassName Block","Class → CLASS ClassName EXTENDS Expression","Class → CLASS ClassName EXTENDS Expression Block","Class → CLASS ThisProperty Block","Class → CLASS ThisProperty EXTENDS Expression Block","Enum → ENUM Identifier Block","Schema → SCHEMA SCHEMA_BODY","Component → COMPONENT ComponentBlock","Component → COMPONENT EXTENDS Expression ComponentBlock","ComponentBlock → INDENT ComponentBody OUTDENT","ComponentBody → ComponentLine","ComponentBody → ComponentBody TERMINATOR ComponentLine","ComponentBody → ComponentBody TERMINATOR","ComponentLine → Expression","ComponentLine → Statement","ComponentLine → OFFER Expression","ComponentLine → ACCEPT IDENTIFIER","ComponentLine → ACCEPT IDENTIFIER FROM ProviderPath","ProviderPath → IDENTIFIER","ProviderPath → ProviderPath . Property","Render → RENDER Block","Render → RENDER Expression","Super → SUPER . Property","Super → SUPER INDEX_START Expression INDEX_END","Super → SUPER INDEX_START INDENT Expression OUTDENT INDEX_END","Invocation → Value Arguments","Invocation → SUPER Arguments","Invocation → Value ES6_OPTIONAL_CALL Arguments","Invocation → Value ? Arguments","Invocation → Value MAYBE_DAMMIT Arguments","Invocation → Value MAYBE_DAMMIT","Invocation → DYNAMIC_IMPORT Arguments","Invocation → DYNAMIC_IMPORT DAMMIT Arguments","Arguments → CALL_START CALL_END","Arguments → CALL_START ArgList OptComma CALL_END","ArgList → Arg","ArgList → ArgList , Arg","ArgList → ArgList OptComma TERMINATOR Arg","ArgList → INDENT ArgList OptComma OUTDENT","ArgList → ArgList OptComma INDENT ArgList OptComma OUTDENT","Arg → Expression","Arg → Splat","OptComma → ε","OptComma → ,","Block → INDENT OUTDENT","Block → INDENT Body OUTDENT","Parenthetical → ( Body )","Parenthetical → ( INDENT Body OUTDENT )","Return → RETURN Expression","Return → RETURN INDENT Object OUTDENT","Return → RETURN","While → WHILE Expression Block","While → UNTIL Expression Block","While → WHILE Expression WHEN Expression Block","While → UNTIL Expression WHEN Expression Block","While → Expression WHILE Expression","While → Statement WHILE Expression","While → Expression UNTIL Expression","While → Statement UNTIL Expression","While → Expression WHILE Expression WHEN Expression","While → Statement WHILE Expression WHEN Expression","While → Expression UNTIL Expression WHEN Expression","While → Statement UNTIL Expression WHEN Expression","While → Loop","IfBlock → IF Expression Block","IfBlock → IF Expression Block IfElseTail","IfElseTail → ELSE IF Expression Block","IfElseTail → ELSE IF Expression Block IfElseTail","IfElseTail → ELSE Block","UnlessBlock → UNLESS Expression Block","UnlessBlock → UNLESS Expression Block ELSE Block","If → IfBlock","If → UnlessBlock","If → Statement POST_IF Expression","If → Expression POST_IF Expression","If → Statement POST_UNLESS Expression","If → Expression POST_UNLESS Expression","If → Expression POST_IF Expression ELSE INDENT Expression OUTDENT","If → Expression POST_IF Expression ELSE Expression","Try → TRY Block","Try → TRY Expression","Try → TRY Expression Catch","Try → TRY Statement","Try → TRY Statement Catch","Try → TRY Block Catch","Try → TRY Block Finalizer","Try → TRY Block Catch Finalizer","Try → TRY Expression Finalizer","Try → TRY Expression Catch Finalizer","Try → TRY Statement Finalizer","Try → TRY Statement Catch Finalizer","Finalizer → FINALLY Block","Finalizer → FINALLY Expression","Catch → CATCH CatchVar Block","Catch → CATCH Object Block","Catch → CATCH Array Block","Catch → CATCH Block","CatchVar → Identifier","CatchVar → Identifier TYPE","Throw → THROW Expression","Throw → THROW INDENT Object OUTDENT","Switch → SWITCH Expression INDENT Cases OUTDENT","Switch → SWITCH Expression INDENT Cases ELSE Block OUTDENT","Switch → SWITCH INDENT Cases OUTDENT","Switch → SWITCH INDENT Cases ELSE Block OUTDENT","Cases → When","Cases → Cases When","When → LEADING_WHEN SimpleArgs Block","When → LEADING_WHEN SimpleArgs Block TERMINATOR","SimpleArgs → Expression","SimpleArgs → SimpleArgs , Expression","For → FOR ForVariables FORIN Expression Block","For → FOR ForVariables FORIN Expression BY Expression Block","For → FOR ForVariables FORIN Expression WHEN Expression Block","For → FOR ForVariables FORIN Expression WHEN Expression BY Expression Block","For → FOR ForVariables FORIN Expression BY Expression WHEN Expression Block","For → FOR ForVariables FOROF Expression Block","For → FOR ForVariables FOROF Expression WHEN Expression Block","For → FOR OWN ForVariables FOROF Expression Block","For → FOR OWN ForVariables FOROF Expression WHEN Expression Block","For → FOR ForVariables FORAS Expression Block","For → FOR ForVariables FORAS Expression WHEN Expression Block","For → FOR AWAIT ForVariables FORAS Expression Block","For → FOR AWAIT ForVariables FORAS Expression WHEN Expression Block","For → FOR ForVariables FORASAWAIT Expression Block","For → FOR ForVariables FORASAWAIT Expression WHEN Expression Block","For → FOR Range Block","For → FOR Range BY Expression Block","For → Expression FOR ForVariables FORIN Expression","For → Expression FOR ForVariables FORIN Expression WHEN Expression","For → Expression FOR ForVariables FORIN Expression BY Expression","For → Expression FOR ForVariables FORIN Expression WHEN Expression BY Expression","For → Expression FOR ForVariables FORIN Expression BY Expression WHEN Expression","For → Expression FOR ForVariables FOROF Expression","For → Expression FOR ForVariables FOROF Expression WHEN Expression","For → Expression FOR OWN ForVariables FOROF Expression","For → Expression FOR OWN ForVariables FOROF Expression WHEN Expression","For → Expression FOR ForVariables FORAS Expression","For → Expression FOR ForVariables FORAS Expression WHEN Expression","For → Expression FOR AWAIT ForVariables FORAS Expression","For → Expression FOR AWAIT ForVariables FORAS Expression WHEN Expression","For → Expression FOR ForVariables FORASAWAIT Expression","For → Expression FOR ForVariables FORASAWAIT Expression WHEN Expression","ForValue → ParamVar","ForVariables → ForValue","ForVariables → ForValue , ForValue","Loop → LOOP Block","Loop → LOOP Expression Block","Operation → -- SimpleAssignable","Operation → ++ SimpleAssignable","Operation → SimpleAssignable --","Operation → SimpleAssignable ++","Operation → Value ?","Operation → Expression CAST","Operation → Expression SATISFIES","Operation → Expression TERNARY Expression : Expression","Operation → UNARY Expression","Operation → DO Expression","Operation → UNARY_MATH Expression","Operation → AWAIT Expression","Operation → AWAIT INDENT Object OUTDENT","Operation → YIELD","Operation → YIELD Expression","Operation → YIELD INDENT Object OUTDENT","Operation → YIELD FROM Expression","Operation → - Expression","Operation → + Expression","Operation → Expression ** Expression","Operation → Expression + Expression","Operation → Expression - Expression","Operation → Expression MATH Expression","Operation → Expression SHIFT Expression","Operation → Expression & Expression","Operation → Expression ^ Expression","Operation → Expression | Expression","Operation → Expression COMPARE Expression","Operation → Expression MATCH Expression","Operation → Expression RELATION Expression","Operation → Expression && Expression","Operation → Expression || Expression","Operation → Expression ?? Expression","Operation → Expression && Return","Operation → Expression || Return","Operation → Expression ?? Return","Operation → Expression && STATEMENT","Operation → Expression || STATEMENT","Operation → Expression ?? STATEMENT","Operation → Expression THEN Expression","Operation → Expression ELSE Expression","Operation → Expression THEN Return","Operation → Expression ELSE Return","Operation → Expression THEN STATEMENT","Operation → Expression ELSE STATEMENT"],ruleActions:(e,t,r,n)=>{let i=t,s=t.length-1;switch(e){case 1:return["program"];case 2:return["program",...i[s]];case 3:case 35:case 89:case 140:case 257:case 261:case 268:case 303:case 342:case 375:case 400:case 470:case 474:case 509:return[i[s]];case 4:case 36:case 90:case 269:case 304:case 343:case 376:case 401:{let a=i[s-2];return a.push(i[s]),a}break;case 5:case 142:case 180:case 264:case 340:case 377:return i[s-1];case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 40:case 42:case 44:case 94:case 97:case 99:case 100:case 101:case 102:case 103:case 104:case 105:case 106:case 107:case 108:case 109:case 110:case 111:case 112:case 113:case 114:case 115:case 116:case 117:case 118:case 119:case 120:case 121:case 122:case 123:case 124:case 125:case 126:case 128:case 130:case 131:case 134:case 135:case 136:case 138:case 145:case 146:case 148:case 149:case 175:case 176:case 177:case 178:case 179:case 181:case 182:case 183:case 205:case 206:case 228:case 229:case 230:case 231:case 232:case 237:case 238:case 242:case 243:case 252:case 273:case 283:case 284:case 285:case 286:case 287:case 311:case 312:case 313:case 314:case 315:case 316:case 317:case 346:case 350:case 354:case 355:case 356:case 357:case 359:case 378:case 379:case 383:case 405:case 406:case 407:case 408:case 428:case 433:case 436:case 437:case 456:case 462:case 508:return i[s];case 14:return["type-decl",i[s]];case 15:case 351:case 463:return["typed-var",i[s-1],i[s]];case 16:case 352:return["typed-var",i[s-2],i[s]];case 17:return["def-sig",i[s-2],i[s-1],i[s]];case 18:return["import",i[s]];case 19:case 20:case 31:case 32:return["import",i[s-2],i[s]];case 21:case 33:return["import","{}",i[s]];case 22:case 34:return["import",i[s-4],i[s]];case 23:return["import",i[s-4],i[s-2],i[s]];case 24:return["import",i[s-7],i[s-4],i[s]];case 25:return["import",[i[s-1],i[s]],i[s-2]];case 26:case 27:return["import",i[s-4],[i[s-1],i[s]],i[s-2]];case 28:return["import",i[s-6],[i[s-1],i[s]],i[s-2]];case 29:return["import",i[s-6],i[s-4],[i[s-1],i[s]],i[s-2]];case 30:return["import",i[s-9],i[s-6],[i[s-1],i[s]],i[s-2]];case 37:case 91:case 270:case 305:case 344:case 402:{let a=i[s-3];return a.push(i[s]),a}break;case 38:case 92:case 143:case 399:case 403:return i[s-2];case 39:case 93:case 271:case 306:case 345:case 404:{let a=i[s-5];return a.push(...i[s-2]),a}break;case 41:case 43:case 95:case 96:case 98:case 510:return[i[s-2],i[s]];case 45:return["*",i[s]];case 46:return["export","{}"];case 47:return["export",i[s-2]];case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:return["export",i[s]];case 56:return["export-default",i[s]];case 57:return["export-default",i[s-1]];case 58:return["export-all",i[s]];case 59:case 60:return["export-all",i[s],i[s-2]];case 61:return["export-from","{}",i[s]];case 62:case 63:return["export-from",i[s-4],i[s]];case 64:case 150:case 162:case 277:return["=",i[s-2],i[s]];case 65:case 67:case 70:case 151:case 153:case 156:case 163:case 164:return["=",i[s-3],i[s]];case 66:case 152:case 278:return["=",i[s-4],i[s-1]];case 68:case 154:case 157:case 159:return["=",i[s-4],i[s]];case 69:case 155:case 158:return["=",i[s-5],i[s-1]];case 71:case 169:return["void-assign",i[s-3],i[s]];case 72:case 170:return["void-assign",i[s-4],i[s]];case 73:case 171:return["void-assign",i[s-5],i[s-1]];case 74:case 172:return["void-readonly",i[s-3],i[s]];case 75:case 173:return["void-readonly",i[s-4],i[s]];case 76:case 174:return["void-readonly",i[s-5],i[s-1]];case 77:case 185:case 186:return["state",i[s-3],i[s]];case 78:case 187:return["state",i[s-4],i[s]];case 79:return["state",i[s-5],i[s-1]];case 80:case 82:case 189:case 190:return["computed",i[s-3],i[s]];case 81:case 191:return["computed",i[s-4],i[s]];case 83:case 199:case 200:return["readonly",i[s-3],i[s]];case 84:case 201:return["readonly",i[s-4],i[s]];case 85:return["readonly",i[s-5],i[s-1]];case 86:case 88:case 203:return["effect",i[s-3],i[s]];case 87:return["effect",i[s-4],i[s]];case 127:case 296:return["dammit!",i[s-1]];case 129:case 236:return["tagged-template",i[s-2],i[s]];case 132:return"undefined";case 133:return"null";case 137:return["symbol",i[s]];case 139:return["str",...i[s-1]];case 141:case 262:case 471:{let a=i[s-1];return a.push(i[s]),a}break;case 144:return"";case 147:return["here-regex",i[s],...i[s-1]];case 160:return["=",i[s-5],i[s]];case 161:return["=",i[s-6],i[s-1]];case 165:case 323:case 535:case 536:case 540:case 542:return[i[s-1],i[s-2],i[s]];case 166:return[i[s-3],i[s-4],i[s-1]];case 167:return[i[s-2],i[s-3],i[s]];case 168:return[".=",i[s-2],i[s]];case 184:return["state",i[s-2],i[s]];case 188:return["computed",i[s-2],i[s]];case 192:return["gate",i[s-2],i[s]];case 193:return["gate",i[s-3],i[s]];case 194:return["gate",i[s-4],i[s-2]];case 195:return["gate",i[s-5],i[s-2]];case 196:return["gate",i[s-6],i[s-4],...i[s-2]];case 197:return["gate",i[s-7],i[s-4],...i[s-2]];case 198:return["readonly",i[s-2],i[s]];case 202:return["effect",i[s-2],i[s]];case 204:return["effect",null,i[s]];case 207:case 220:case 221:case 233:case 292:case 384:return[".",i[s-2],i[s]];case 208:case 234:case 293:return["?.",i[s-2],i[s]];case 209:case 212:case 235:case 294:return["[]",i[s-3],i[s-1]];case 210:case 213:case 295:return["[]",i[s-5],i[s-2]];case 211:return["regex-index",i[s-5],i[s-3],i[s-1]];case 214:return["optindex",i[s-4],i[s-1]];case 215:return["optindex",i[s-6],i[s-2]];case 216:case 299:return[".{}",i[s-4],...i[s-2]];case 217:case 300:return["?.{}",i[s-4],...i[s-2]];case 218:case 301:return[".{}",i[s-6],...i[s-3]];case 219:case 302:return["?.{}",i[s-6],...i[s-3]];case 222:case 223:case 224:case 458:case 459:case 460:case 521:case 523:return[i[s-1],i[s]];case 225:return["await",["new",i[s-1]]];case 226:return["await",["new",[i[s-2],...i[s]]]];case 227:case 289:case 290:case 291:case 390:case 396:return[i[s-1],...i[s]];case 239:return[i[s-1],i[s-3],i[s]];case 240:return[i[s-1],i[s-4],i[s]];case 241:return[i[s-1],[],i[s]];case 244:case 522:return["do-iife",i[s]];case 245:case 246:return"this";case 247:case 248:return[".","this",i[s]];case 249:return["array"];case 250:return["array",...i[s-1]];case 251:return["array",...i[s-2],...i[s-1]];case 253:{let a=i[s-2];return a.push(...i[s]),a}break;case 254:{let a=i[s-3];return a.push(...i[s]),a}break;case 255:return[...i[s-2],...i[s-1]];case 256:{let a=i[s-5];return a.push(...i[s-4],...i[s-2],...i[s-1]),a}break;case 258:return[...i[s-1],i[s]];case 259:case 267:case 339:case 341:case 398:return[];case 260:return[...i[s]];case 263:return null;case 265:return["object",...i[s-2]];case 266:return["map",...i[s-2]];case 272:return[null,i[s],i[s]];case 274:case 276:return[":",i[s-2],i[s]];case 275:return[":",i[s-4],i[s-1]];case 279:return["void-pair",i[s-3],i[s]];case 280:return["void-pair",i[s-5],i[s-1]];case 281:case 282:case 358:return["...",i[s]];case 288:case 391:return["super",...i[s]];case 297:case 394:return["dammit?",i[s-2],...i[s]];case 298:case 395:return["dammit?",i[s-1]];case 307:return[i[s],i[s],null];case 308:return[i[s-2],i[s],null];case 309:return[i[s-2],i[s-2],i[s]];case 310:return[i[s-4],i[s-2],i[s]];case 318:return["dynamicKey",i[s-1]];case 319:return["[]","this",i[s-1]];case 320:return"..";case 321:return"...";case 322:return[i[s-2],i[s-3],i[s-1]];case 324:return[i[s],i[s-1],null];case 325:return[i[s-1],null,i[s]];case 326:return[i[s],null,null];case 327:case 333:return["def",i[s-2],i[s-1],i[s]];case 328:case 334:return["def",i[s-3],i[s-2],i[s]];case 329:case 335:return["def",i[s-3],i[s-1],i[s]];case 330:case 336:return["def",i[s-4],i[s-2],i[s]];case 331:case 337:return["void-def",i[s-3],i[s-1],i[s]];case 332:case 338:return["void-def",i[s-4],i[s-2],i[s]];case 347:return["default",i[s-2],i[s]];case 348:return["rest",i[s]];case 349:return["expansion"];case 353:return["typed-var",i[s-1],""];case 360:return["class",null,null];case 361:return["class",null,null,i[s]];case 362:return["class",null,i[s]];case 363:return["class",null,i[s-1],i[s]];case 364:return["class",i[s],null];case 365:case 368:return["class",i[s-1],null,i[s]];case 366:return["class",i[s-2],i[s]];case 367:case 369:return["class",i[s-3],i[s-1],i[s]];case 370:return["enum",i[s-1],i[s]];case 371:return["schema",i[s]];case 372:return["component",null,i[s]];case 373:return["component",i[s-1],i[s]];case 374:case 410:return["block",...i[s-1]];case 380:return["offer",i[s]];case 381:return["accept",i[s]];case 382:return["accept",i[s-2],i[s]];case 385:case 386:return["render",i[s]];case 387:return[".","super",i[s]];case 388:return["[]","super",i[s-1]];case 389:return["[]","super",i[s-2]];case 392:case 393:return["optcall",i[s-2],...i[s]];case 397:return["await",["import",...i[s]]];case 409:return["block"];case 411:return i[s-1].length===1?(Array.isArray(i[s-1][0])&&(i[s-1][0].parenthesized=!0),i[s-1][0]):["block",...i[s-1]];case 412:return i[s-2].length===1?(Array.isArray(i[s-2][0])&&(i[s-2][0].parenthesized=!0),i[s-2][0]):["block",...i[s-2]];case 413:return["return",i[s]];case 414:return["return",i[s-1]];case 415:return["return"];case 416:return["while",i[s-1],i[s]];case 417:return["while",["!",i[s-1]],i[s]];case 418:return["while",i[s-3],i[s-1],i[s]];case 419:return["while",["!",i[s-3]],i[s-1],i[s]];case 420:case 421:return["while",i[s],[i[s-2]]];case 422:case 423:return["while",["!",i[s]],[i[s-2]]];case 424:case 425:return["while",i[s-2],i[s],[i[s-4]]];case 426:case 427:return["while",["!",i[s-2]],i[s],[i[s-4]]];case 429:case 431:return["if",i[s-1],i[s]];case 430:case 432:return["if",i[s-2],i[s-1],i[s]];case 434:return["if",["!",i[s-1]],i[s]];case 435:return["if",["!",i[s-3]],i[s-2],i[s]];case 438:case 439:return["if",i[s],[i[s-2]]];case 440:case 441:return["if",["!",i[s]],[i[s-2]]];case 442:return["?:",i[s-4],i[s-6],i[s-1]];case 443:return["?:",i[s-2],i[s-4],i[s]];case 444:case 445:case 447:return["try",i[s]];case 446:case 448:case 449:case 450:case 452:case 454:return["try",i[s-1],i[s]];case 451:case 453:case 455:return["try",i[s-2],i[s-1],i[s]];case 457:return["block",i[s]];case 461:return[null,i[s]];case 464:return["throw",i[s]];case 465:return["throw",i[s-1]];case 466:return["switch",i[s-3],i[s-1],null];case 467:return["switch",i[s-5],i[s-3],i[s-1]];case 468:return["switch",null,i[s-1],null];case 469:return["switch",null,i[s-3],i[s-1]];case 472:return["when",i[s-1],i[s]];case 473:return["when",i[s-2],i[s-1]];case 475:return[...i[s-2],i[s]];case 476:return["for-in",i[s-3],i[s-1],null,null,i[s]];case 477:return["for-in",i[s-5],i[s-3],i[s-1],null,i[s]];case 478:return["for-in",i[s-5],i[s-3],null,i[s-1],i[s]];case 479:return["for-in",i[s-7],i[s-5],i[s-1],i[s-3],i[s]];case 480:return["for-in",i[s-7],i[s-5],i[s-3],i[s-1],i[s]];case 481:return["for-of",i[s-3],i[s-1],!1,null,i[s]];case 482:return["for-of",i[s-5],i[s-3],!1,i[s-1],i[s]];case 483:return["for-of",i[s-3],i[s-1],!0,null,i[s]];case 484:return["for-of",i[s-5],i[s-3],!0,i[s-1],i[s]];case 485:return["for-as",i[s-3],i[s-1],!1,null,i[s]];case 486:return["for-as",i[s-5],i[s-3],!1,i[s-1],i[s]];case 487:case 489:return["for-as",i[s-3],i[s-1],!0,null,i[s]];case 488:case 490:return["for-as",i[s-5],i[s-3],!0,i[s-1],i[s]];case 491:return["for-in",[],i[s-1],null,null,i[s]];case 492:return["for-in",[],i[s-3],i[s-1],null,i[s]];case 493:return["comprehension",i[s-4],[["for-in",i[s-2],i[s],null]],[]];case 494:return["comprehension",i[s-6],[["for-in",i[s-4],i[s-2],null]],[i[s]]];case 495:return["comprehension",i[s-6],[["for-in",i[s-4],i[s-2],i[s]]],[]];case 496:return["comprehension",i[s-8],[["for-in",i[s-6],i[s-4],i[s]]],[i[s-2]]];case 497:return["comprehension",i[s-8],[["for-in",i[s-6],i[s-4],i[s-2]]],[i[s]]];case 498:return["comprehension",i[s-4],[["for-of",i[s-2],i[s],!1]],[]];case 499:return["comprehension",i[s-6],[["for-of",i[s-4],i[s-2],!1]],[i[s]]];case 500:return["comprehension",i[s-5],[["for-of",i[s-2],i[s],!0]],[]];case 501:return["comprehension",i[s-7],[["for-of",i[s-4],i[s-2],!0]],[i[s]]];case 502:return["comprehension",i[s-4],[["for-as",i[s-2],i[s],!1,null]],[]];case 503:return["comprehension",i[s-6],[["for-as",i[s-4],i[s-2],!1,null]],[i[s]]];case 504:return["comprehension",i[s-5],[["for-as",i[s-2],i[s],!0,null]],[]];case 505:return["comprehension",i[s-7],[["for-as",i[s-4],i[s-2],!0,null]],[i[s]]];case 506:return["comprehension",i[s-4],[["for-as",i[s-2],i[s],!0,null]],[]];case 507:return["comprehension",i[s-6],[["for-as",i[s-4],i[s-2],!0,null]],[i[s]]];case 511:return["loop",i[s]];case 512:return["loop-n",i[s-1],i[s]];case 513:return["--",i[s],!1];case 514:return["++",i[s],!1];case 515:return["--",i[s-1],!0];case 516:return["++",i[s-1],!0];case 517:return["?",i[s-1]];case 518:return["cast",i[s-1],i[s]];case 519:return["satisfies",i[s-1],i[s]];case 520:return["?:",i[s-4],i[s-2],i[s]];case 524:return["await",i[s]];case 525:return["await",i[s-1]];case 526:return["yield"];case 527:return["yield",i[s]];case 528:return["yield",i[s-1]];case 529:return["yield-from",i[s]];case 530:return["-",i[s]];case 531:return["+",i[s]];case 532:return["**",i[s-2],i[s]];case 533:return["+",i[s-2],i[s]];case 534:return["-",i[s-2],i[s]];case 537:return["&",i[s-2],i[s]];case 538:return["^",i[s-2],i[s]];case 539:return["|",i[s-2],i[s]];case 541:return["=~",i[s-2],i[s]];case 543:case 546:case 549:case 552:case 554:case 556:return["&&",i[s-2],i[s]];case 544:case 547:case 550:case 553:case 555:case 557:return["||",i[s-2],i[s]];case 545:case 548:case 551:return["??",i[s-2],i[s]]}},parse(e,{primitives:t=!1,tolerant:r=!1}={}){let n,i,s,a,o,l,c,h,f,u,d,p,m,g,b,S,w,R,T,F,L,C,N,D,O,W,[H,G,k,v]=[[0],[null],[null],[[]]],j=this.parseTable,X=1,x=[],Z=[],U=24,r1=e.length;if(r)while(r1>0&&(e[r1-1]===` -`||e[r1-1]==="\r"))r1--;let Q=new Set,l1=!1,I=[],s1=[],e1=[],K=new WeakMap,a1=1,A=Object.create(this.lexer),V={ctx:{}},B=this.ctx;for(let M in B){if(!Object.hasOwn(B,M))continue;let n1=B[M];V.ctx[M]=n1}if(A.setInput(e,V.ctx),r&&Array.isArray(A.lexDiagnostics))x.push(...A.lexDiagnostics);[V.ctx.lexer,V.ctx.parser]=[A,this];let i1=()=>{let M=A.lex()||X;if(typeof M!=="number")M=this.symbolIds[M]||M;return M},h1=null,f1=null,u1={},p1=()=>{h=[];let M=j[W];for(let n1 in M){if(!Object.hasOwn(M,n1))continue;if(this.tokenNames[n1]&&+n1>2){if(!h.includes(this.tokenNames[n1]))h.push(this.tokenNames[n1])}}return h},c1=[this.symbolIds.INDENT,this.symbolIds.OUTDENT,this.symbolIds.TERMINATOR],d1=()=>{if(h1===X)return"end of input";let M=this.tokenNames[h1]||h1,n1=A.text,_=typeof n1==="string"&&n1.trim().length>0&&n1.length<=24&&!c1.includes(h1)&&!/^["'`]/.test(n1);if(_&&A.token?.generated)return`implicit '${n1}'`;return _?`'${n1}'`:`'${M}'`};while(!0){if(W=H[H.length-1],h1==null)if(Z.length>0)R=Z.shift(),h1=R.symbol,f1=R.loc,A.text=R.text,A.loc=R.loc,A.token=R.token;else h1=i1(),f1=h1===X?{start:e.length,end:e.length}:A.loc??null;if(n=j[W]?.[h1],n==null&&r&&U>0){a=h1===X?r1:f1?.start??r1,F=(M=null)=>{if(l1)return;if(l1=!0,u=d1(),h=M!=null?[this.tokenNames[M]||M]:p1(),b=`Unexpected ${u}`,h.length)b+=` — expected ${h.join(", ")}`;return x.push({message:b,start:a,end:f1?.end??a,expected:h,got:u})},i=h1===X||A.token?.generated,d=function(M){return`${H.length}:${W}:${M}`},p=null;for(let M of this.repairTable[W]??[]){if(Q.has(d(M)))continue;if(i||M===this.symbolIds.TERMINATOR){p=M;break}}if(p!=null)F(p),U--,Q.add(d(p)),Z.unshift({symbol:h1,loc:f1,text:A.text,token:A.token}),h1=p,f1={start:a,end:a},A.text="",A.loc=f1,A.token={generated:!0,hole:!0},n=j[W]?.[h1];else if(h1!==X){if(F(),U--,!A.token?.hole)Q.clear();h1=null;continue}}if(n==null){if(h=p1(),u=d1(),O=f1?.start??0,c=f1?.end??O,b=`Unexpected ${u}`,h.length)b+=` — expected ${h.join(", ")}`;return x.push({message:b,start:O,end:c,expected:h,got:u}),{sexpr:null,stores:null,diagnostics:x,trivia:A.trivia??null,tokens:A.tokens??null}}if(n>0){if(r&&!A.token?.hole)Q.clear();if(H.push(h1,n),G.push(A.text),k.push(A.loc??null),t)v.push(Array.isArray(A.text?.primitiveSpans)?A.text.primitiveSpans:A.loc!=null?[{value:A.text,sourceStart:A.loc.start,sourceEnd:A.loc.end}]:[]);h1=null}else if(n<0){if(this.ctx?.onReduce)this.ctx.onReduce(-n);if(g=this.ruleTable[-n*2+1],D=(()=>{if(g)return f=k[k.length-g],m=k[k.length-1],{start:f?.start??0,end:m?.end??(f?.end??0)};else return s=f1?.start??(k[k.length-1]?.end??0),{start:s,end:s}})(),u1.$=G[G.length-(g||1)],u1._$=D,T=this.ruleActions.call(u1,-n,G,k,V.ctx),T!=null)u1.$=T;if(o=G.length-g,l=[],t)for(let M of this.primitiveRefs[-n])l.push(...v[o+M-1]??[]);if(S=u1.$,Array.isArray(S)&&K.has(S)&&this.accumulators[-n])C=I[K.get(S)-1],C.sourceStart=D.start,C.sourceEnd=D.end;if(Array.isArray(S)&&!K.has(S))N=this.semantics[-n],o=G.length-g,L=(M,n1,_,z,q)=>{let t1,P,Y,o1,E1,y1,S1=[],_1=1/0,v1=-1/0;for(let g1 of z){t1=M;for(let m1 of g1.path)t1=t1[m1];if(!(Array.isArray(t1)&&!K.has(t1)))throw Error(`parse: nested annotation '${g1.role}' of rule ${-n} does not address a fresh array`);P=L(t1,g1.kind,g1.roles,g1.nested,null),S1.push(P),_1=Math.min(_1,I[P-1].sourceStart),v1=Math.max(v1,I[P-1].sourceEnd)}for(let g1 of _)if(g1.grammarRef!=null){if(E1=k[o+g1.grammarRef-1],E1==null)throw Error(`parse: missing loc for grammarRef ${g1.grammarRef} of rule ${-n} — lexer protocol violation`);_1=Math.min(_1,E1.start),v1=Math.max(v1,E1.end)}let R1=q??(_1===1/0?D:{start:_1,end:v1}),w1=a1++;K.set(M,w1),I.push({nodeId:w1,fileId:0,semanticKind:n1,ruleId:-n,sourceStart:R1.start,sourceEnd:R1.end});for(let g1 of _)if(g1.grammarRef!=null){if(o1=o+g1.grammarRef-1,E1=k[o1],y1={nodeId:w1,role:g1.name,grammarRef:g1.grammarRef,childSlot:g1.childSlot,sourceStart:E1.start,sourceEnd:E1.end,childNodeId:null,fileId:0},g1.spread)y1.spread=!0;else y1.childNodeId=K.get(G[o1])??null;s1.push(y1)}else s1.push({nodeId:w1,role:g1.name,grammarRef:null,childSlot:g1.childSlot,literal:g1.literal,fileId:0});for(let g1=0;g1{let t=Object.create(u3);return Object.defineProperty(t,"ctx",{value:{...e},enumerable:!1,writable:!0,configurable:!0}),t},vs=Os();var nr=Os,F4=vs.parse.bind(vs);var Is=()=>{throw Error("rip: filesystem access is unavailable in the browser")};class ar{constructor({nodes:e,roles:t,primitives:r=[],nodeIds:n=null}){this.nodes=e,this.roles=t,this.primitives=r,this.nodeIds=n,this.byId=new Map(e.map((i)=>[i.nodeId,i])),this.rolesByNode=new Map,this.primitivesByValue=new Map;for(let i of t){let s=this.rolesByNode.get(i.nodeId);if(!s)s={list:[],byName:new Map},this.rolesByNode.set(i.nodeId,s);s.list.push(i),s.byName.set(i.role,i)}for(let i of r){let s=this.primitivesByValue.get(i.value);if(!s)this.primitivesByValue.set(i.value,s=[]);s.push(i)}for(let i of this.primitivesByValue.values())i.sort((s,a)=>s.sourceStart-a.sourceStart)}idOf(e){return this.nodeIds?.get(e)??null}alias(e,t){let r=this.nodeIds?.get(t);if(r!=null)this.nodeIds.set(e,r);return e}node(e){return this.byId.get(e)??null}nodesByKind(e){return this.nodes.filter((t)=>t.semanticKind===e)}rolesOf(e){return this.rolesByNode.get(e)?.list??[]}role(e,t){return this.rolesByNode.get(e)?.byName.get(t)??null}primitiveSpans(e,t,r){return(this.primitivesByValue.get(e)??[]).filter((n)=>t<=n.sourceStart&&n.sourceEnd<=r)}selfSpan(e){let t=this.byId.get(e);return t?[t.sourceStart,t.sourceEnd]:null}}var sr=(e)=>{if(e.length===0)return null;let t=e[e.length>>1].start,r=[],n=[],i=[];for(let s of e){if(J.on)J.n++;if(s.end<=t)n.push(s);else if(s.start>t)i.push(s);else r.push(s)}return{center:t,byStart:r,byEnd:[...r].sort((s,a)=>a.end-s.end),left:sr(n),right:sr(i)}},d3=(e,t,r)=>{let n=e;while(n!==null){if(J.on)J.n++;if(tt)break;r.push(i)}n=n.left}else if(t>n.center){for(let i of n.byEnd){if(J.on)J.n++;if(i.end<=t)break;r.push(i)}n=n.right}else{for(let i of n.byStart){if(J.on)J.n++;r.push(i)}break}}return r},wi=new Set(["tsDirective","shorthandProp","identifier","literal"]);class Se{constructor(e){this.rows=e,this._genTree=null,this._srcTree=null,this._genCount=-1,this._srcCount=-1}_tree(e){let t=e==="generated";if((t?this._genCount:this._srcCount)!==this.rows.length){let r=[];if(this.rows.forEach((n,i)=>{if(J.on)J.n++;let s=t?n.generatedStart:n.sourceStart,a=t?n.generatedEnd:n.sourceEnd;if(s!=null&&sn.start-i.start||n.i-i.i),t)this._genTree=sr(r),this._genCount=this.rows.length;else this._srcTree=sr(r),this._srcCount=this.rows.length}return t?this._genTree:this._srcTree}_stab(e,t){let r=d3(this._tree(e),t,[]);return r.sort((n,i)=>n.width-i.width||n.i-i.i),r.map((n)=>this.rows[n.i])}of(e,t){return this.rows.filter((r)=>r.nodeId===e&&r.role===t).sort((r,n)=>r.generatedStart-n.generatedStart)}atGenerated(e){return this._stab("generated",e)}atSource(e){return this._stab("source",e)}static isDirect(e){return e.mappingKind==="exact"||e.mappingKind==="synthetic"}directAtGenerated(e){return this.atGenerated(e).find(Se.isDirect)??null}directAtSource(e){let t=this.atSource(e).filter(Se.isDirect);if(t.length===0)return null;let r=(i)=>i.sourceEnd-i.sourceStart;return t.filter((i)=>r(i)===r(t[0])).find((i)=>!wi.has(i.role))??t[0]}zeroWidthExactAtSource(e){if(this._zeroSrcCount!==this.rows.length){this._zeroSrc=new Map;for(let t of this.rows){if(t.mappingKind!=="exact"||t.sourceStart!==t.sourceEnd)continue;let r=this._zeroSrc.get(t.sourceStart);if(r===void 0||t.generatedStarts.mappingKind==="exact"||s.mappingKind==="cover"&&s.role==="$self"&&s.generatedStart!==s.generatedEnd,t=(s)=>s.mappingKind==="exact"?0:1,r=(s)=>s.generatedEnd-s.generatedStart,n=(s)=>s.sourceEnd-s.sourceStart,i=new Map;for(let s of this.rows){if(!e(s))continue;let a=i.get(s.generatedStart);if(!a||t(s)s.generatedStart-a.generatedStart)}}class Re{constructor(e,{source:t=null,primitives:r=!1}={}){this.stores=e,this.source=t,this.trackPrimitives=r,this.suppressClaims=!1,this.claimWithin=null,this.chunks=[],this.length=0,this.openMarks=0,this.rows=[],this.exactSourceSpans=new Set,this.markStack=[],this.exactRanges=new Map,this.tsRegions=[],this.tsDepth=0,this.echoSpans=[]}tsOnly(e){let t=this.length;if(this.tsDepth++,e(),this.tsDepth--,this.tsDepth===0&&this.length>t)this.tsRegions.push([t,this.length])}echo(e){let t=this.length;if(e(),this.length>t)this.echoSpans.push([t,this.length])}get currentMark(){return this.markStack[this.markStack.length-1]??null}get offset(){return this.length}get code(){if(this.openMarks>0)return this.chunks.join("");if(this.chunks.length!==1)this.chunks=[this.chunks.join("")],this.exactRanges.clear();return this.chunks[0]}emit(e){return this.chunks.push(e),this.length+=e.length,this}beginMark(e,t){let r,n,i=null;if(t==="$self"){let s=this.stores.node(e);r=s.sourceStart,n=s.sourceEnd}else{let s=this.stores.role(e,t);if("literal"in s)i="synthetic",r=n=this.stores.node(e).sourceStart;else r=s.sourceStart,n=s.sourceEnd}this.openMarks++,this.markStack.push({nodeId:e,role:t,sourceStart:r,sourceEnd:n,mappingKind:i,generatedStart:this.length,chunkStart:this.chunks.length})}endMark(){let e=this.markStack.pop();this.openMarks--;let{mappingKind:t}=e;if(t===null){if(t=this.matchesSource(e)?"exact":"cover",t==="cover"&&Re.NORMALIZED_ROLES.has(e.role))this.layoutTwinSegments(e)}if(this.rows.push({nodeId:e.nodeId,role:e.role,mappingKind:t,sourceStart:e.sourceStart,sourceEnd:e.sourceEnd,generatedStart:e.generatedStart,generatedEnd:this.length,fileId:0}),this.trackPrimitives&&t==="exact")this.exactSourceSpans.add(`${e.sourceStart}:${e.sourceEnd}`)}static NORMALIZED_ROLES=new Set(["annotation","returnType"]);layoutTwinSegments(e){if(this.source===null)return;let t=e.sourceEnd-e.sourceStart,r=this.length-e.generatedStart;if(t===0||r===0||t>256||r>256)return;let n=this.source.slice(e.sourceStart,e.sourceEnd),i=this.chunks.slice(e.chunkStart).join("");if(n.replace(/\s+/g," ")!==i.replace(/\s+/g," "))return;let s=0,a=0;while(s0)a=a.filter((p)=>!t.some(([m,g])=>p.sourceStart>=m&&p.sourceEnd<=g));if(a.length===0)return null;let o=r.primitiveClaims??(r.primitiveClaims=new Map),l=o.get(e);if(l===void 0)o.set(e,l=new Set);let c=a.filter((p)=>!l.has(p.sourceStart)),h=c.filter((p)=>!this.exactSourceSpans.has(`${p.sourceStart}:${p.sourceEnd}`)),f=h.length>0?h:c,u=f.filter((p)=>p.nodeId===r.nodeId),d=(u.length>0?u:f)[0];if(d===void 0){let p=[...l].pop();if(d=p===void 0?void 0:a.find((m)=>m.sourceStart===p),d===void 0){let m=a.filter((g)=>this.exactSourceSpans.has(`${g.sourceStart}:${g.sourceEnd}`));d=m[m.length-1]}if(d===void 0)return null}if(l.add(d.sourceStart),this.source!==null){let p=this.source.slice(d.sourceStart,d.sourceEnd);if(p!==e&&p.endsWith(e)&&!/[\w$]/.test(p[p.length-e.length-1]??""))return[d.sourceEnd-e.length,d.sourceEnd]}return[d.sourceStart,d.sourceEnd]}matchesSource(e){if(this.source===null)return!1;if(e.sourceStart<0||e.sourceEnd>this.source.length)throw Error(`builder: mark (nodeId ${e.nodeId}, role '${e.role}') has source span [${e.sourceStart}, ${e.sourceEnd}) outside the source text [0, ${this.source.length}) — store-protocol violation`);let t=this.length;if(t-e.generatedStart!==e.sourceEnd-e.sourceStart)return!1;let r=e.sourceStart-e.generatedStart,n=this.exactRanges.get(r),i=n!==void 0&&n.genEnd<=t,s=this.chunks.length,{generatedStart:a,chunkStart:o}=e;while(o=n.genStart&&a{throw Error("rip: schema type story is unavailable in the browser")},Ds=()=>!1;var m3={__proto__:null,maxlength:"maxLength",minlength:"minLength",readonly:"readOnly",tabindex:"tabIndex",colspan:"colSpan",rowspan:"rowSpan",contenteditable:"contentEditable",formaction:"formAction",formenctype:"formEnctype",formmethod:"formMethod",formnovalidate:"formNoValidate",formtarget:"formTarget",novalidate:"noValidate",crossorigin:"crossOrigin",usemap:"useMap",srclang:"srcLang",inputmode:"inputMode",cellpadding:"cellPadding",cellspacing:"cellSpacing",bgcolor:"bgColor",valign:"vAlign",nowrap:"noWrap",for:"htmlFor",datetime:"dateTime",ismap:"isMap",nomodule:"noModule",playsinline:"playsInline",dirname:"dirName",accesskey:"accessKey",enterkeyhint:"enterKeyHint",referrerpolicy:"referrerPolicy",fetchpriority:"fetchPriority",imagesrcset:"imageSrcset",imagesizes:"imageSizes",popovertargetaction:"popoverTargetAction",allowfullscreen:"allowFullscreen"},p3="type __RipClassValue = string | boolean | null | undefined | Record | __RipClassValue[];",g3="/** What a component projects through `slot`: the DOM its parent built for it — an element, a fragment, or a text node — or a value rendered as text. */\n"+"type __RipChildren = Node | string | number | boolean | null;",xs="(...args: (__RipClassValue | __RipClassValue[])[]) => string",b3=`type __RipAV = E extends Record ? V | string : F; -type __RipProp = E extends Record ? V : any;`,y3=["animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","columnCount","columns","flex","flexGrow","flexShrink","fontWeight","gridArea","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","lineHeight","opacity","order","orphans","scale","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","webkitLineClamp"],Cs=y3.map((e)=>`'${e}'`).join(" | "),Ps=(e)=>`{ [K in Exclude]?: K extends ${e} ? string | number : string | 0 } & { [k: \`--\${string}\`]: string | number }`,S3=`type __RipUnitless = ${Cs}; -`+"/** An inline style as an object: CSS property names, camelCased, plus `--custom` properties. Values are written as given — no unit is appended — so a number is admitted only where CSS reads one bare: the unitless properties, and 0 anywhere. */\n"+`type __RipCSSProperties = ${Ps("__RipUnitless")};`,q4=`(${Ps(Cs)})`,Ni="__RipCSSProperties | string",Ls="(el: object, value: __RipCSSProperties | string | null | undefined) => void",or="__RipClassValue | __RipClassValue[]",Ms=" [k: `data-${string}`]: string | number | boolean;\n [k: `aria-${string}`]: string | number | boolean;",Ai=(e)=>/^[A-Za-z_$][\w$]*$/.test(e)?e:`'${e}'`,lr=(e,t)=>`__RipAttrVals_${t?"svg_":""}${e}`,vi=(e,t)=>`__RipEl_${t?"svg_":""}${e}`,xe=(e,t)=>`${t?"SVGElementTagNameMap":"HTMLElementTagNameMap"}['${e}']`,ot=(e,t)=>typeof e==="string"&&(t?Ve.has(e):Bt.has(e));function js(e,t){let r=m3[e]??e,n=e==="class"?or:e==="style"?Ni:`__RipAV<${t}, '${r}'>`;return[` ${Ai(e)}: ${n};`]}function R3(){let e=[];for(let t of De)e.push(...js(t,"HTMLElement"));return`interface __RipGlobalAttrVals { +`))m1++;let D1=m1{if(S1==null||S1.kind!=="."&&S1.kind!=="?.")return!1;if(l.length>0)return!1;if(T)return!1;if(z.length>y1.length)return!1;if(!j1.test(e[c]??""))return!1;let m1=c;while(m1=0&&e[w1+1]!=="."&&!ki.test(e[w1+1]??"")&&!T;if(E1&&!v1&&z.lengthe.startsWith(D1,c)&&!K1.test(e[c+D1.length]??""));if(i.length>0&&u>=0&&!m1&&G()?.kind!=="TERMINATOR"){let D1=e[u]==="\r"?2:1;O("TERMINATOR",e.slice(u,u+D1),u,u+D1,{generated:!0})}}if(T&&o.length<=j)T=!1;if(f=!1,p=!0,m!==null&&l.length<=m)m=null;if(l.length===0)w=!1,R=!1;continue}let _=e[c];if(_===" "||_==="\t"){d=!0,c++;continue}if(_==="\r"&&e[c+1]!==` +`)A("bare carriage return (not followed by a newline) is not supported",c);if(_===` +`||_==="\r"){u=c,f=!0,c+=_==="\r"?2:1;continue}if(_==="#"){if(T&&/[A-Za-z_]/.test(e[c+1]??"")){let z=/^#([A-Za-z_][\w-]*)/.exec(e.slice(c)),s1=G();if(s1&&(s1.kind==="IDENTIFIER"||s1.kind==="PROPERTY")&&!d&&!s1.generated){s1.value+=z[0],s1.end=c+z[0].length,c+=z[0].length;continue}if(s1&&(s1.kind==="TERMINATOR"||s1.kind==="INDENT"||s1.kind==="OUTDENT"||s1.kind==="RENDER")){O("IDENTIFIER",`div${z[0]}`,c,c+z[0].length),c+=z[0].length;continue}}let D=c;while(D{let E1=c;while(e[E1]===" "||e[E1]==="\t")E1++;let w1=e[E1]??"";if(w1==="{"||w1==="*")return!0;if(!j1.test(w1))return!1;let g1=E1+1;while(g1{let E1=c;while(e[E1]===" "||e[E1]==="\t")E1++;return e[E1]==="{"})())O("EXPORT_TYPE",z,D,c);else if(z==="type"&&l[l.length-1]?.specifiers===!0&&(()=>{let E1=c;while(e[E1]===" "||e[E1]==="\t")E1++;if(!j1.test(e[E1]??""))return!1;let w1=E1+1;while(w1"}[D]??D,R1=s1!==D,y1=1,S1=c+3;while(S10){let g1=e[S1];if(g1==="\\"){S1+=2;continue}if(R1&&g1===D)y1++;if(g1===s1)y1--;if(y1>0)S1++}if(y1!==0)C(`unclosed %w${D} — never closed by '${s1}'`,c,c+3);O("[","[",c,c+3);let _1=/(?:\\\s|\S)+/g;_1.lastIndex=c+3;let v1,E1=!0,w1=c+3;while((v1=_1.exec(e))!==null&&v1.index=S1)break;_1.lastIndex=g1}O("]","]",S1,S1+1),c=S1+1;continue}}let H=e.slice(c,c+4);if(_n[H]){O(_n[H],H,c,c+4),c+=4;continue}let q=e.slice(c,c+3);if(q==="==="||q==="!=="){O("COMPARE",q.slice(0,2),c,c+3),c+=3;continue}if(Nn[q]){O(Nn[q],q,c,c+3),c+=3;continue}let i1=e.slice(c,c+2);if(i1==="?="&&e[c+2]!=="="){O("COMPOUND_ASSIGN","??=",c,c+2),c+=2;continue}if(i1==="*{"){O("MAP_START","*",c,c+1),c+=1;continue}if(An[i1]){if(i1==="!="&&!d&&(G()?.kind==="IDENTIFIER"||G()?.kind==="PROPERTY"))A(`cannot use the '!' sigil in an assignment to '${G().value}' (write 'a != b' with a space for comparison)`,c);O(An[i1],i1,c,c+2),c+=2;continue}if(_==="<"||_===">"){O("COMPARE",_,c,c+1),c++;continue}if(_==="*"||_==="/"||_==="%"){if(_==="*"&&w&&(G()?.kind==="IMPORT"||G()?.kind==="IMPORT_TYPE"||G()?.kind===","))O("IMPORT_ALL",_,c,c+1);else if(_==="*"&&G()?.kind==="EXPORT")O("EXPORT_ALL",_,c,c+1);else if(_==="*"&&G()?.kind==="YIELD"&&!p)O("FROM",_,c,c+1);else O("MATH",_,c,c+1);c++;continue}if(_==="!"||_==="~"){if(_==="!"&&!d&&(G()?.kind==="IDENTIFIER"||G()?.kind==="PROPERTY"||G()?.kind==="DYNAMIC_IMPORT")){O("DAMMIT","!",c,c+1),c++;continue}O("UNARY_MATH",_,c,c+1),c++;continue}if(_==="&"||_==="|"||_==="^"){O(_,_,c,c+1),c++;continue}if(_==="?"){if(!d){if(e[c+1]==="("||e[c+1]==="["){O("?.","?",c,c+1),c++;continue}let D=G();if(e[c+1]==="!"&&D&&!D.generated&&at.has(D.kind)){if(D.kind!=="IDENTIFIER"&&D.kind!=="PROPERTY")A("maybe dammit '?!' follows a name, as dammit does (`f?!`, `obj.method?!`) — bind the value to a name first",c,c+2);O("MAYBE_DAMMIT","?!",c,c+2),c+=2;continue}if(D&&!D.generated&&at.has(D.kind)){let s1=i[i.length-2]??null,R1=s1===null||s1.kind==="@"||s1.kind==="TERMINATOR"||s1.kind==="INDENT"||s1.kind==="OUTDENT";if((D.kind==="PROPERTY"||D.kind==="IDENTIFIER")&&R1&&/^[^\S\n]*(:=|~=|=!|=(?![=>!])|:(?![:=]))/.test(e.slice(c+1))){O("OPT_MARKER","?",c,c+1),c++;continue}O("?","?",c,c+1),c++;continue}let z=i[i.length-2]??null;if(D&&(D.kind==="-"||D.kind==="+")&&!D.spaced&&(z?.kind==="]"||z?.kind==="INDEX_END")&&e[c+1]===":"){O("?","?",c,c+1),c++;continue}A("unspaced '?' needs a value before it (postfix existence) — write ' ? ' for a ternary",c)}h++,O("TERNARY","?",c,c+1),c++;continue}if(_==="@"){O("@","@",c,c+1),c++;continue}if(_==="("){let D=G();if(D&&!d&&D.kind==="?."){D.kind="ES6_OPTIONAL_CALL",l1("call",c),O("CALL_START","(",c,c+1),c++;continue}let z=D&&!d&&!D.generated&&ir.has(D.kind);l1(z?"call":"group",c),O(z?"CALL_START":"(","(",c,c+1),c++;continue}if(_===")"){let D=n1();if(D?.kind!=="call"&&D?.kind!=="group")A("unmatched ')'",c);O(D.kind==="call"?"CALL_END":")",")",c,c+1),c++;continue}if(_==="["){let D=G();if(D&&!d&&D.kind==="?."){D.kind="ES6_OPTIONAL_INDEX",l1("index",c),O("INDEX_START","[",c,c+1),c++;continue}let z=D&&!d&&!D.generated&&at.has(D.kind);l1(z?"index":"array",c),O(z?"INDEX_START":"[","[",c,c+1),c++;continue}if(_==="]"){let D=n1();if(D?.kind!=="index"&&D?.kind!=="array")A("unmatched ']'",c);O(D.kind==="index"?"INDEX_END":"]","]",c,c+1),c++;continue}if(_==="{"){let D=G();if(D!=null&&(D.kind==="."||D.kind==="?.")&&!d&&!D.newLine&&i.length>=2&&at.has(i[i.length-2].kind)&&i[i.length-2].kind!=="PICK_END")i.pop(),l1("object",c,{pick:!0,pickKeys:e[c+1]!==" "&&e[c+1]!=="\t"}),O(D.kind==="?."?"OPTPICK_START":"PICK_START","{",c,c+1);else{let s1=D!=null&&(D.kind==="IMPORT"||D.kind==="IMPORT_TYPE"||D.kind==="EXPORT"||D.kind==="EXPORT_TYPE"||w&&D.kind===",");l1("object",c,s1?{specifiers:!0}:{}),O("{","{",c,c+1)}c++;continue}if(_==="}"){let D=n1();if(D?.kind==="interp"){if(O("INTERPOLATION_END",")",c,c+1),c++,D.heregex)d1(D.ctx);else e1(D.ctx);continue}if(D?.kind!=="object")A("unmatched '}'",c);O(D.pick?"PICK_END":"}","}",c,c+1),c++;continue}if(_===":"&&e[c+1]===":"){if(!N()&&!V()&&j1.test(e[c+2]??"")){let D=i[i.length-1];if(D?.kind==="?"&&D.end===c)D.kind="?.",D.value="?.",D.end=c+2,O("PROPERTY","prototype",c,c+2),O(".",".",c,c+2);else O(".",".",c,c+2),O("PROPERTY","prototype",c,c+2),O(".",".",c,c+2);c+=2;continue}A("type annotations use a single ':' (e.g. `x: number`), not '::'",c,c+2)}if(_===":"&&j1.test(e[c+1]??"")&&!N()&&!V()){let D=i[i.length-1];if(!(D!==void 0&&(D.kind==="PROPERTY"||D.kind===")"||D.kind==="]"||D.kind==="}"||D.kind==="CALL_END"||D.kind==="INDEX_END"||D.kind==="PARAM_END"||D.kind==="PICK_END"||D.kind==="STRING"||D.kind==="STRING_END"||D.kind==="NUMBER"||D.kind==="REGEX"||D.kind==="HEREGEX_END"||D.kind==="BOOL"||D.kind==="NULL"||D.kind==="UNDEFINED"||D.kind==="DAMMIT"||D.kind==="?"||D.kind==="MAYBE_DAMMIT"||D.kind==="OPT_MARKER"||D.kind==="THIS"||D.kind==="@"||D.kind==="SYMBOL"||h>0&&D.kind==="IDENTIFIER"))){let s1=l3(e,c+1);O("SYMBOL",e.slice(c+1,s1),c,s1),c=s1;continue}}if(_==="="||_==="+"||_==="-"||_==="."||_===","||_===";"||_===":"){if(_===":"&&h>0)h--;O(_===";"?"TERMINATOR":_,_,c,c+1),c++;continue}if(_==="`"&&(N()||V())){let D=f1(c);O("TYPE_TEMPLATE",e.slice(c,D),c,D),c=D;continue}A(`cannot tokenize '${_}'`,c)}if(l.length>0){if(!(r&&l.every((q)=>q.kind!=="interp"))){let q=l[0],i1={call:"(",group:"(",index:"[",array:"[",object:"{",interp:"#{"}[q.kind]??q.kind;C(`unclosed '${i1}' — never closed by end of input`,q.at,q.at+i1.length)}let H=e.length;while(H>0&&(e[H-1]===` +`||e[H-1]==="\r"))H--;while(l.length>0){let q=l[l.length-1],i1={call:"(",group:"(",index:"[",array:"[",object:"{"}[q.kind]??q.kind;a.push({message:`unclosed '${i1}' — never closed by end of input`,start:q.at,end:q.at+i1.length,expected:[],got:"end of input"});let D=q.kind==="call"?"CALL_END":q.kind==="group"?")":q.kind==="index"?"INDEX_END":q.kind==="array"?"]":q.pick?"PICK_END":"}";n1();let z=i.length;while(z>0&&(i[z-1].kind==="OUTDENT"||i[z-1].kind==="INDENT"||i[z-1].kind==="TERMINATOR"))z--;let s1=i[z-1]?.kind,R1=q.kind==="call"&&s1==="CALL_START"||q.kind==="index"&&s1==="INDEX_START";if(s1===","||R1){let y1={id:M++,kind:"IDENTIFIER",value:"",start:H,end:H,spaced:!1,newLine:!1,generated:!0,origin:null};x.push(y1),i.splice(z,0,y1)}W(D,H)}}let c1=I();while(o.length>1)o.pop(),W("OUTDENT",c1);let K=()=>M++;t3(i),r3(i),a3(i),Us(i,K,e,A,r?(_)=>a.push({message:_.reason??String(_.message),start:_.start??0,end:_.end??_.start??0,expected:[],got:""}):null),tr(i,K,e,A);for(let _ of i)if(_.kind==="RESERVED")A(`'${_.value}' is reserved and not supported yet`,_.start);return an(i,K,A),n3(i),Gt(i,K),Ti(i),Yt(i,K),zt(i,K),s3(i),{tokens:i,trivia:n,source:s,lexDiagnostics:a}}function Ti(e){for(let t=0;t"&&o!=="=>"&&o!=="ELSE"&&o!=="TRY"&&o!=="FINALLY"){s=!1;break}}}if(oe.has(a))i++;else if(ae.has(a)){if(i--,i<0)break}}if(s)e[t].kind=r==="IF"?"POST_IF":"POST_UNLESS"}return e}function On(e="",{tolerant:t=!1}={}){return{setInput(r){let s=m3(r,e,{tolerant:t});this.tokens=s.tokens,this.trivia=s.trivia,this.source=s.source,this.lexDiagnostics=s.lexDiagnostics??[],this.index=0,this.text="",this.loc=null,this.token=null},lex(){let r=this.tokens[this.index];if(!r)return null;return this.index++,this.text=r.value,this.loc={start:r.start,end:r.end},this.token=r,r.kind}}}var p3={symbolIds:{$accept:0,$end:1,error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,Statement:8,Return:9,STATEMENT:10,Import:11,Export:12,TypeDecl:13,Enum:14,TYPE_DECL:15,Assignable:16,TYPE:17,OPT_MARKER:18,DEF:19,Identifier:20,OptParams:21,IMPORT:22,String:23,ImportDefaultSpecifier:24,FROM:25,ImportNamespaceSpecifier:26,"{":27,"}":28,ImportSpecifierList:29,OptComma:30,",":31,WITH:32,Object:33,IMPORT_TYPE:34,ImportSpecifier:35,INDENT:36,OUTDENT:37,AS:38,DEFAULT:39,IMPORT_ALL:40,EXPORT:41,ExportSpecifierList:42,Class:43,Def:44,ExportAssign:45,ReactiveAssign:46,ComputedAssign:47,Readonly:48,Effect:49,EXPORT_ALL:50,EXPORT_TYPE:51,"=":52,TYPE_PARAMS:53,VOID_MARKER:54,READONLY_ASSIGN:55,REACTIVE_ASSIGN:56,COMPUTED_ASSIGN:57,Block:58,EFFECT:59,ExportSpecifier:60,Value:61,Code:62,Operation:63,Assign:64,Gate:65,If:66,Try:67,For:68,Switch:69,While:70,Throw:71,Schema:72,Component:73,Render:74,Literal:75,Parenthetical:76,Range:77,Invocation:78,DoIife:79,This:80,Super:81,DAMMIT:82,NewValue:83,TEMPLATE_TAG:84,Atom:85,Regex:86,UNDEFINED:87,NULL:88,BOOL:89,NUMBER:90,SYMBOL:91,STRING:92,STRING_START:93,Interpolations:94,STRING_END:95,InterpolationChunk:96,INTERPOLATION_START:97,INTERPOLATION_END:98,REGEX:99,HEREGEX_START:100,HEREGEX_END:101,IDENTIFIER:102,Property:103,PROPERTY:104,SimpleAssignable:105,COMPOUND_ASSIGN:106,METHOD_ASSIGN:107,Array:108,Rhs:109,BlockRhs:110,GATE:111,CALL_START:112,CALL_END:113,ArgList:114,ThisProperty:115,Subjectable:116,".":117,"?.":118,INDEX_START:119,INDEX_END:120,Slice:121,ES6_OPTIONAL_INDEX:122,PICK_START:123,PickList:124,PICK_END:125,OPTPICK_START:126,IMPORT_META:127,NEW_TARGET:128,NEW:129,NewSpine:130,NewCall:131,Arguments:132,PARAM_START:133,ParamList:134,PARAM_END:135,ArrowKind:136,"->":137,"=>":138,DO_IIFE:139,THIS:140,"@":141,"[":142,"]":143,Elisions:144,ArgElisionList:145,OptElisions:146,ArgElision:147,Arg:148,Elision:149,AssignList:150,MAP_START:151,AssignObj:152,ObjAssignable:153,ObjRestValue:154,":":155,SimpleObjAssignable:156,"...":157,ObjSpreadExpr:158,SUPER:159,DYNAMIC_IMPORT:160,MAYBE_DAMMIT:161,PickItem:162,PickKey:163,RangeDots:164,"..":165,Param:166,TypedParamVar:167,ParamVar:168,Splat:169,ClassName:170,CLASS:171,EXTENDS:172,ENUM:173,SCHEMA:174,SCHEMA_BODY:175,COMPONENT:176,ComponentBlock:177,ComponentBody:178,ComponentLine:179,OFFER:180,ACCEPT:181,ProviderPath:182,RENDER:183,ES6_OPTIONAL_CALL:184,"?":185,"(":186,")":187,RETURN:188,WHILE:189,UNTIL:190,WHEN:191,Loop:192,IfBlock:193,IF:194,IfElseTail:195,ELSE:196,UnlessBlock:197,UNLESS:198,POST_IF:199,POST_UNLESS:200,TRY:201,Catch:202,Finalizer:203,FINALLY:204,CATCH:205,CatchVar:206,THROW:207,SWITCH:208,Cases:209,When:210,LEADING_WHEN:211,SimpleArgs:212,FOR:213,ForVariables:214,FORIN:215,BY:216,FOROF:217,OWN:218,FORAS:219,AWAIT:220,FORASAWAIT:221,ForValue:222,LOOP:223,"--":224,"++":225,CAST:226,SATISFIES:227,TERNARY:228,UNARY:229,DO:230,UNARY_MATH:231,YIELD:232,"-":233,"+":234,"**":235,MATH:236,SHIFT:237,"&":238,"^":239,"|":240,COMPARE:241,MATCH:242,RELATION:243,"&&":244,"||":245,"??":246,THEN:247},tokenNames:{2:"error",6:"newline",10:"break/continue/debugger",15:"type/interface",17:"a type annotation",18:"?",19:"def",22:"import",25:"from",27:"{",28:"}",31:",",32:"with",34:"type",36:"indent",37:"dedent",38:"as",39:"default",40:"*",41:"export",50:"*",51:"type",52:"=",53:"<…>",54:"!",55:"=!",56:":=",57:"~=",59:"~>",82:"!",84:"$",87:"undefined",88:"null",89:"true/false",90:"a number",91:"a :symbol",92:"a string",93:"a string",95:"the closing quote",97:"#{",98:"}",99:"a regex",100:"///",101:"///",102:"a name",104:"a property name",106:"a compound assignment",107:".=",111:"<~",112:"(",113:")",117:".",118:"?.",119:"[",120:"]",122:"?.[",123:".{",125:"}",126:"?.{",127:"import.meta",128:"new.target",129:"new",133:"(",135:")",137:"->",138:"=>",139:"do",140:"this",141:"@",142:"[",143:"]",151:"*{",155:":",157:"...",159:"super",160:"import(",161:"?!",165:"..",171:"class",172:"extends",173:"enum",174:"schema",175:"a schema body",176:"component",180:"offer",181:"accept",183:"render",184:"?.(",185:"?",186:"(",187:")",188:"return",189:"while",190:"until",191:"when",194:"if",196:"else",198:"unless",199:"if",200:"unless",201:"try",204:"finally",205:"catch",207:"throw",208:"switch",211:"when",213:"for",215:"in",216:"by",217:"of",218:"own",219:"as",220:"await",221:"as!",223:"loop",224:"--",225:"++",226:"as",227:"satisfies",228:"?",229:"not/typeof/delete",230:"do",231:"!/~",232:"yield",233:"-",234:"+",235:"**",236:"a math operator",237:"a shift operator",238:"&",239:"^",240:"|",241:"a comparison",242:"=~",243:"in/of/instanceof",244:"&&",245:"||",246:"??",247:"then"},semantics:{"1":{kind:"program",roles:[]},"2":{kind:"program",roles:[{name:"body",grammarRef:1,childSlot:1,spread:!0}]},"14":{kind:"typedecl",roles:[{name:"declaration",grammarRef:1,childSlot:1,spread:!1}]},"15":{kind:"typedvar",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:2,childSlot:2,spread:!1}]},"16":{kind:"typedvar",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:3,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"17":{kind:"defsig",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:3,childSlot:2,spread:!1},{name:"returnType",grammarRef:4,childSlot:3,spread:!1}]},"18":{kind:"import",roles:[{name:"source",grammarRef:2,childSlot:1,spread:!1}]},"19":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"source",grammarRef:4,childSlot:2,spread:!1}]},"20":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"source",grammarRef:4,childSlot:2,spread:!1}]},"21":{kind:"import",roles:[{name:"spec",grammarRef:null,childSlot:1,literal:"{}"},{name:"source",grammarRef:5,childSlot:2,spread:!1}]},"22":{kind:"import",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1},{name:"source",grammarRef:7,childSlot:2,spread:!1}]},"23":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"extra",grammarRef:4,childSlot:2,spread:!1},{name:"source",grammarRef:6,childSlot:3,spread:!1}]},"24":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"extra",grammarRef:5,childSlot:2,spread:!1},{name:"source",grammarRef:9,childSlot:3,spread:!1}]},"25":{kind:"import",roles:[{name:"source",grammarRef:2,childSlot:2,spread:!1}],nested:[{role:"attributes",path:[1],kind:"withattrs",roles:[{name:"keyword",grammarRef:3,childSlot:0,spread:!1},{name:"value",grammarRef:4,childSlot:1,spread:!1}],nested:[]}]},"26":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"source",grammarRef:4,childSlot:3,spread:!1}],nested:[{role:"attributes",path:[2],kind:"withattrs",roles:[{name:"keyword",grammarRef:5,childSlot:0,spread:!1},{name:"value",grammarRef:6,childSlot:1,spread:!1}],nested:[]}]},"27":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"source",grammarRef:4,childSlot:3,spread:!1}],nested:[{role:"attributes",path:[2],kind:"withattrs",roles:[{name:"keyword",grammarRef:5,childSlot:0,spread:!1},{name:"value",grammarRef:6,childSlot:1,spread:!1}],nested:[]}]},"28":{kind:"import",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1},{name:"source",grammarRef:7,childSlot:3,spread:!1}],nested:[{role:"attributes",path:[2],kind:"withattrs",roles:[{name:"keyword",grammarRef:8,childSlot:0,spread:!1},{name:"value",grammarRef:9,childSlot:1,spread:!1}],nested:[]}]},"29":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"extra",grammarRef:4,childSlot:2,spread:!1},{name:"source",grammarRef:6,childSlot:4,spread:!1}],nested:[{role:"attributes",path:[3],kind:"withattrs",roles:[{name:"keyword",grammarRef:7,childSlot:0,spread:!1},{name:"value",grammarRef:8,childSlot:1,spread:!1}],nested:[]}]},"30":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"extra",grammarRef:5,childSlot:2,spread:!1},{name:"source",grammarRef:9,childSlot:4,spread:!1}],nested:[{role:"attributes",path:[3],kind:"withattrs",roles:[{name:"keyword",grammarRef:10,childSlot:0,spread:!1},{name:"value",grammarRef:11,childSlot:1,spread:!1}],nested:[]}]},"31":{kind:"import",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1},{name:"source",grammarRef:5,childSlot:2,spread:!1},{name:"typeOnly",grammarRef:2,childSlot:null,spread:!1}]},"32":{kind:"import",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1},{name:"source",grammarRef:5,childSlot:2,spread:!1},{name:"typeOnly",grammarRef:2,childSlot:null,spread:!1}]},"33":{kind:"import",roles:[{name:"spec",grammarRef:null,childSlot:1,literal:"{}"},{name:"source",grammarRef:6,childSlot:2,spread:!1},{name:"typeOnly",grammarRef:2,childSlot:null,spread:!1}]},"34":{kind:"import",roles:[{name:"spec",grammarRef:4,childSlot:1,spread:!1},{name:"source",grammarRef:8,childSlot:2,spread:!1},{name:"typeOnly",grammarRef:2,childSlot:null,spread:!1}]},"41":{kind:"as",roles:[{name:"name",grammarRef:1,childSlot:0,spread:!1},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"43":{kind:"as",roles:[{name:"name",grammarRef:1,childSlot:0,spread:!1},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"45":{kind:"as",roles:[{name:"name",grammarRef:null,childSlot:0,literal:"*"},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"46":{kind:"export",roles:[{name:"spec",grammarRef:null,childSlot:1,literal:"{}"}]},"47":{kind:"export",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1}]},"48":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"49":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"50":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"51":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"52":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"53":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"54":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"55":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"56":{kind:"export",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1}]},"57":{kind:"export",roles:[{name:"spec",grammarRef:4,childSlot:1,spread:!1}]},"58":{kind:"export",roles:[{name:"source",grammarRef:4,childSlot:1,spread:!1}]},"59":{kind:"export",roles:[{name:"source",grammarRef:6,childSlot:1,spread:!1},{name:"alias",grammarRef:4,childSlot:2,spread:!1}]},"60":{kind:"export",roles:[{name:"source",grammarRef:6,childSlot:1,spread:!1},{name:"alias",grammarRef:4,childSlot:2,spread:!1}]},"61":{kind:"export",roles:[{name:"spec",grammarRef:null,childSlot:1,literal:"{}"},{name:"source",grammarRef:5,childSlot:2,spread:!1}]},"62":{kind:"export",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1},{name:"source",grammarRef:7,childSlot:2,spread:!1}]},"63":{kind:"export",roles:[{name:"spec",grammarRef:4,childSlot:1,spread:!1},{name:"source",grammarRef:8,childSlot:2,spread:!1},{name:"typeOnly",grammarRef:2,childSlot:null,spread:!1}]},"64":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"65":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"66":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"67":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"68":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"69":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"70":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"typeParams",grammarRef:2,childSlot:null,spread:!1}]},"71":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"72":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"73":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"74":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"75":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"76":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"77":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"78":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"79":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"80":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"81":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"82":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"83":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"84":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"85":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"86":{kind:"effect",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"87":{kind:"effect",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"88":{kind:"effect",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"95":{kind:"as",roles:[{name:"name",grammarRef:1,childSlot:0,spread:!1},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"96":{kind:"as",roles:[{name:"name",grammarRef:1,childSlot:0,spread:!1},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"98":{kind:"as",roles:[{name:"name",grammarRef:1,childSlot:0,spread:!1},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"127":{kind:"dammit",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"129":{kind:"tagged",roles:[{name:"tag",grammarRef:1,childSlot:1,spread:!1},{name:"str",grammarRef:3,childSlot:2,spread:!1}]},"137":{kind:"symbol",roles:[{name:"name",grammarRef:1,childSlot:1,spread:!1}]},"139":{kind:"str",roles:[{name:"parts",grammarRef:2,childSlot:1,spread:!0}]},"147":{kind:"heregex",roles:[{name:"flags",grammarRef:3,childSlot:1,spread:!1},{name:"parts",grammarRef:2,childSlot:2,spread:!0}]},"150":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"151":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"152":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"153":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"154":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"155":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"156":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"157":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"158":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"159":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1}]},"160":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:6,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1}]},"161":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:6,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1}]},"162":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"163":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"164":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"typeParams",grammarRef:2,childSlot:null,spread:!1}]},"165":{kind:"assign",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"166":{kind:"assign",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"167":{kind:"assign",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"168":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:".="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"169":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"170":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"171":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"172":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"173":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"174":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"184":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"185":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"186":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"187":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1},{name:"operator",grammarRef:4,childSlot:null,spread:!1}]},"188":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"189":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"190":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"191":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1},{name:"operator",grammarRef:4,childSlot:null,spread:!1}]},"192":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"193":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"194":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"195":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"196":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:3,childSlot:2,spread:!1},{name:"key",grammarRef:5,childSlot:3,spread:!0},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"197":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:4,childSlot:2,spread:!1},{name:"key",grammarRef:6,childSlot:3,spread:!0},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"198":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"199":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"200":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"201":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1},{name:"operator",grammarRef:4,childSlot:null,spread:!1}]},"202":{kind:"effect",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"203":{kind:"effect",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"204":{kind:"effect",roles:[{name:"target",grammarRef:null,childSlot:1,literal:null},{name:"value",grammarRef:2,childSlot:2,spread:!1},{name:"operator",grammarRef:1,childSlot:null,spread:!1}]},"207":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"208":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"209":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"210":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:4,childSlot:2,spread:!1}]},"211":{kind:"regexindex",roles:[{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:3,childSlot:2,spread:!1},{name:"capture",grammarRef:5,childSlot:3,spread:!1}]},"212":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"213":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:4,childSlot:2,spread:!1}]},"214":{kind:"optindex",roles:[{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:4,childSlot:2,spread:!1}]},"215":{kind:"optindex",roles:[{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:5,childSlot:2,spread:!1}]},"216":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:3,childSlot:2,spread:!0}]},"217":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:3,childSlot:2,spread:!0}]},"218":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:4,childSlot:2,spread:!0}]},"219":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:4,childSlot:2,spread:!0}]},"220":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"221":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"222":{kind:"unary",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"223":{kind:"unary",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"224":{kind:"unary",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"225":{kind:"await",roles:[{name:"operator",grammarRef:3,childSlot:null,spread:!1}],nested:[{role:"value",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"new"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}],nested:[]}]},"226":{kind:"await",roles:[{name:"operator",grammarRef:3,childSlot:null,spread:!1}],nested:[{role:"value",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"new"}],nested:[{role:"operand",path:[1],kind:"call",roles:[{name:"callee",grammarRef:2,childSlot:0,spread:!1},{name:"args",grammarRef:4,childSlot:1,spread:!0}],nested:[]}]}]},"227":{kind:"call",roles:[{name:"callee",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"233":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"234":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"235":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"236":{kind:"tagged",roles:[{name:"tag",grammarRef:1,childSlot:1,spread:!1},{name:"str",grammarRef:3,childSlot:2,spread:!1}]},"239":{kind:"func",roles:[{name:"kind",grammarRef:4,childSlot:0,spread:!1},{name:"params",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:5,childSlot:2,spread:!1}]},"240":{kind:"func",roles:[{name:"kind",grammarRef:5,childSlot:0,spread:!1},{name:"params",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:6,childSlot:2,spread:!1},{name:"returnType",grammarRef:4,childSlot:null,spread:!1}]},"241":{kind:"func",roles:[{name:"kind",grammarRef:1,childSlot:0,spread:!1},{name:"body",grammarRef:2,childSlot:2,spread:!1}]},"244":{kind:"doiife",roles:[{name:"func",grammarRef:2,childSlot:1,spread:!1}]},"247":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"property",grammarRef:2,childSlot:2,spread:!1}]},"248":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"property",grammarRef:2,childSlot:2,spread:!1}]},"249":{kind:"array",roles:[]},"250":{kind:"array",roles:[{name:"elisions",grammarRef:2,childSlot:1,spread:!0}]},"251":{kind:"array",roles:[{name:"items",grammarRef:2,childSlot:1,spread:!0},{name:"elisions",grammarRef:3,childSlot:null,spread:!0}]},"265":{kind:"object",roles:[{name:"pairs",grammarRef:2,childSlot:1,spread:!0}]},"266":{kind:"map",roles:[{name:"pairs",grammarRef:3,childSlot:1,spread:!0}]},"272":{kind:"pair",roles:[{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:1,childSlot:2,spread:!1}]},"274":{kind:"pair",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:":"},{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"275":{kind:"pair",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:":"},{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"276":{kind:"pair",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:":"},{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"277":{kind:"pair",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"278":{kind:"pair",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"279":{kind:"pair",roles:[{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"280":{kind:"pair",roles:[{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"281":{kind:"splat",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"282":{kind:"splat",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"288":{kind:"super",roles:[{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"289":{kind:"dynimport",roles:[{name:"keyword",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"290":{kind:"call",roles:[{name:"callee",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"291":{kind:"call",roles:[{name:"callee",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"292":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"293":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"294":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"295":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:4,childSlot:2,spread:!1}]},"296":{kind:"dammit",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"297":{kind:"maybe-dammit",roles:[{name:"callee",grammarRef:1,childSlot:1,spread:!1},{name:"args",grammarRef:3,childSlot:2,spread:!0},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"298":{kind:"maybe-dammit",roles:[{name:"callee",grammarRef:1,childSlot:1,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"299":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:3,childSlot:2,spread:!0}]},"300":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:3,childSlot:2,spread:!0}]},"301":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:4,childSlot:2,spread:!0}]},"302":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:4,childSlot:2,spread:!0}]},"307":{kind:"pickitem",roles:[{name:"key",grammarRef:1,childSlot:0,spread:!1},{name:"target",grammarRef:1,childSlot:1,spread:!1}]},"308":{kind:"pickitem",roles:[{name:"key",grammarRef:1,childSlot:0,spread:!1},{name:"target",grammarRef:3,childSlot:1,spread:!1}]},"309":{kind:"pickitem",roles:[{name:"key",grammarRef:1,childSlot:0,spread:!1},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"default",grammarRef:3,childSlot:2,spread:!1}]},"310":{kind:"pickitem",roles:[{name:"key",grammarRef:1,childSlot:0,spread:!1},{name:"target",grammarRef:3,childSlot:1,spread:!1},{name:"default",grammarRef:5,childSlot:2,spread:!1}]},"318":{kind:"dynamicKey",roles:[{name:"key",grammarRef:2,childSlot:1,spread:!1}]},"319":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:null,childSlot:1,literal:"this"},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"322":{kind:"range",roles:[{name:"operator",grammarRef:3,childSlot:0,spread:!1},{name:"from",grammarRef:2,childSlot:1,spread:!1},{name:"to",grammarRef:4,childSlot:2,spread:!1}]},"323":{kind:"range",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"from",grammarRef:1,childSlot:1,spread:!1},{name:"to",grammarRef:3,childSlot:2,spread:!1}]},"324":{kind:"range",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"from",grammarRef:1,childSlot:1,spread:!1},{name:"to",grammarRef:null,childSlot:2,literal:null}]},"325":{kind:"range",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"from",grammarRef:null,childSlot:1,literal:null},{name:"to",grammarRef:2,childSlot:2,spread:!1}]},"326":{kind:"range",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"from",grammarRef:null,childSlot:1,literal:null},{name:"to",grammarRef:null,childSlot:2,literal:null}]},"327":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:3,childSlot:2,spread:!1},{name:"body",grammarRef:4,childSlot:3,spread:!1}]},"328":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:3,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"returnType",grammarRef:4,childSlot:null,spread:!1}]},"329":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"typeParams",grammarRef:3,childSlot:null,spread:!1}]},"330":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:6,childSlot:3,spread:!1},{name:"typeParams",grammarRef:3,childSlot:null,spread:!1},{name:"returnType",grammarRef:5,childSlot:null,spread:!1}]},"331":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"voidMarker",grammarRef:3,childSlot:null,spread:!1}]},"332":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:6,childSlot:3,spread:!1},{name:"voidMarker",grammarRef:3,childSlot:null,spread:!1},{name:"returnType",grammarRef:5,childSlot:null,spread:!1}]},"333":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:3,childSlot:2,spread:!1},{name:"body",grammarRef:4,childSlot:3,spread:!1}]},"334":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:3,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"returnType",grammarRef:4,childSlot:null,spread:!1}]},"335":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"typeParams",grammarRef:3,childSlot:null,spread:!1}]},"336":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:6,childSlot:3,spread:!1},{name:"typeParams",grammarRef:3,childSlot:null,spread:!1},{name:"returnType",grammarRef:5,childSlot:null,spread:!1}]},"337":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"voidMarker",grammarRef:3,childSlot:null,spread:!1}]},"338":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:6,childSlot:3,spread:!1},{name:"voidMarker",grammarRef:3,childSlot:null,spread:!1},{name:"returnType",grammarRef:5,childSlot:null,spread:!1}]},"347":{kind:"default",roles:[{name:"name",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"348":{kind:"rest",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1}]},"349":{kind:"expansion",roles:[]},"351":{kind:"typedvar",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:2,childSlot:2,spread:!1}]},"352":{kind:"typedvar",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:3,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"353":{kind:"typedvar",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:null,childSlot:2,literal:""},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"358":{kind:"splat",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"360":{kind:"class",roles:[{name:"name",grammarRef:null,childSlot:1,literal:null},{name:"parent",grammarRef:null,childSlot:2,literal:null}]},"361":{kind:"class",roles:[{name:"name",grammarRef:null,childSlot:1,literal:null},{name:"parent",grammarRef:null,childSlot:2,literal:null},{name:"body",grammarRef:2,childSlot:3,spread:!1}]},"362":{kind:"class",roles:[{name:"name",grammarRef:null,childSlot:1,literal:null},{name:"parent",grammarRef:3,childSlot:2,spread:!1}]},"363":{kind:"class",roles:[{name:"name",grammarRef:null,childSlot:1,literal:null},{name:"parent",grammarRef:3,childSlot:2,spread:!1},{name:"body",grammarRef:4,childSlot:3,spread:!1}]},"364":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:null,childSlot:2,literal:null}]},"365":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:null,childSlot:2,literal:null},{name:"body",grammarRef:3,childSlot:3,spread:!1}]},"366":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:4,childSlot:2,spread:!1}]},"367":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1}]},"368":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:null,childSlot:2,literal:null},{name:"body",grammarRef:3,childSlot:3,spread:!1}]},"369":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1}]},"370":{kind:"enum",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:3,childSlot:2,spread:!1}]},"371":{kind:"schema",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"372":{kind:"component",roles:[{name:"parent",grammarRef:null,childSlot:1,literal:null},{name:"body",grammarRef:2,childSlot:2,spread:!1}]},"373":{kind:"component",roles:[{name:"parent",grammarRef:3,childSlot:1,spread:!1},{name:"body",grammarRef:4,childSlot:2,spread:!1}]},"374":{kind:"block",roles:[{name:"statements",grammarRef:2,childSlot:1,spread:!0}]},"380":{kind:"offer",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"381":{kind:"accept",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1}]},"382":{kind:"accept",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"provider",grammarRef:4,childSlot:2,spread:!1}]},"384":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"385":{kind:"render",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"386":{kind:"render",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"387":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:null,childSlot:1,literal:"super"},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"388":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:null,childSlot:1,literal:"super"},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"389":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:null,childSlot:1,literal:"super"},{name:"key",grammarRef:4,childSlot:2,spread:!1}]},"390":{kind:"call",roles:[{name:"callee",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"391":{kind:"super",roles:[{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"392":{kind:"optcall",roles:[{name:"callee",grammarRef:1,childSlot:1,spread:!1},{name:"args",grammarRef:3,childSlot:2,spread:!0}]},"393":{kind:"optcall",roles:[{name:"callee",grammarRef:1,childSlot:1,spread:!1},{name:"args",grammarRef:3,childSlot:2,spread:!0}]},"394":{kind:"maybe-dammit",roles:[{name:"callee",grammarRef:1,childSlot:1,spread:!1},{name:"args",grammarRef:3,childSlot:2,spread:!0},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"395":{kind:"maybe-dammit",roles:[{name:"callee",grammarRef:1,childSlot:1,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"396":{kind:"dynimport",roles:[{name:"keyword",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"397":{kind:"await",roles:[{name:"operator",grammarRef:2,childSlot:null,spread:!1}],nested:[{role:"value",path:[1],kind:"dynimport",roles:[{name:"keyword",grammarRef:null,childSlot:0,literal:"import"},{name:"args",grammarRef:3,childSlot:1,spread:!0}],nested:[]}]},"409":{kind:"block",roles:[]},"410":{kind:"block",roles:[{name:"statements",grammarRef:2,childSlot:1,spread:!0}]},"413":{kind:"return",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"414":{kind:"return",roles:[{name:"value",grammarRef:3,childSlot:1,spread:!1}]},"415":{kind:"return",roles:[]},"416":{kind:"while",roles:[{name:"condition",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:3,childSlot:2,spread:!1}]},"417":{kind:"while",roles:[{name:"body",grammarRef:3,childSlot:2,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}],nested:[]}]},"418":{kind:"while",roles:[{name:"condition",grammarRef:2,childSlot:1,spread:!1},{name:"guard",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1}]},"419":{kind:"while",roles:[{name:"guard",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}],nested:[]}]},"420":{kind:"while",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}]},"421":{kind:"while",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}]},"422":{kind:"while",roles:[{name:"body",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"423":{kind:"while",roles:[{name:"body",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"424":{kind:"while",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"guard",grammarRef:5,childSlot:2,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}]},"425":{kind:"while",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"guard",grammarRef:5,childSlot:2,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}]},"426":{kind:"while",roles:[{name:"guard",grammarRef:5,childSlot:2,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"427":{kind:"while",roles:[{name:"guard",grammarRef:5,childSlot:2,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"429":{kind:"if",roles:[{name:"condition",grammarRef:2,childSlot:1,spread:!1},{name:"then",grammarRef:3,childSlot:2,spread:!1}]},"430":{kind:"if",roles:[{name:"condition",grammarRef:2,childSlot:1,spread:!1},{name:"then",grammarRef:3,childSlot:2,spread:!1},{name:"else",grammarRef:4,childSlot:3,spread:!1}]},"431":{kind:"if",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:4,childSlot:2,spread:!1}]},"432":{kind:"if",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:4,childSlot:2,spread:!1},{name:"else",grammarRef:5,childSlot:3,spread:!1}]},"434":{kind:"if",roles:[{name:"then",grammarRef:3,childSlot:2,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}],nested:[]}]},"435":{kind:"if",roles:[{name:"then",grammarRef:3,childSlot:2,spread:!1},{name:"else",grammarRef:5,childSlot:3,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}],nested:[]}]},"438":{kind:"if",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:1,childSlot:null,spread:!1}]},"439":{kind:"if",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:1,childSlot:null,spread:!1}]},"440":{kind:"if",roles:[{name:"then",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"441":{kind:"if",roles:[{name:"then",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"442":{kind:"ternary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?:"},{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:1,childSlot:2,spread:!1},{name:"else",grammarRef:6,childSlot:3,spread:!1}]},"443":{kind:"ternary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?:"},{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:1,childSlot:2,spread:!1},{name:"else",grammarRef:5,childSlot:3,spread:!1}]},"444":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"445":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"446":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1}]},"447":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"448":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1}]},"449":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1}]},"450":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"finalizer",grammarRef:3,childSlot:2,spread:!1}]},"451":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1},{name:"finalizer",grammarRef:4,childSlot:3,spread:!1}]},"452":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"finalizer",grammarRef:3,childSlot:2,spread:!1}]},"453":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1},{name:"finalizer",grammarRef:4,childSlot:3,spread:!1}]},"454":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"finalizer",grammarRef:3,childSlot:2,spread:!1}]},"455":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1},{name:"finalizer",grammarRef:4,childSlot:3,spread:!1}]},"457":{kind:"block",roles:[{name:"statements",grammarRef:2,childSlot:1,spread:!1}]},"458":{kind:"catch",roles:[{name:"binding",grammarRef:2,childSlot:0,spread:!1},{name:"body",grammarRef:3,childSlot:1,spread:!1}]},"459":{kind:"catch",roles:[{name:"binding",grammarRef:2,childSlot:0,spread:!1},{name:"body",grammarRef:3,childSlot:1,spread:!1}]},"460":{kind:"catch",roles:[{name:"binding",grammarRef:2,childSlot:0,spread:!1},{name:"body",grammarRef:3,childSlot:1,spread:!1}]},"461":{kind:"catch",roles:[{name:"binding",grammarRef:null,childSlot:0,literal:null},{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"463":{kind:"typedvar",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:2,childSlot:2,spread:!1}]},"464":{kind:"throw",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"465":{kind:"throw",roles:[{name:"value",grammarRef:3,childSlot:1,spread:!1}]},"466":{kind:"switch",roles:[{name:"subject",grammarRef:2,childSlot:1,spread:!1},{name:"cases",grammarRef:4,childSlot:2,spread:!1},{name:"default",grammarRef:null,childSlot:3,literal:null}]},"467":{kind:"switch",roles:[{name:"subject",grammarRef:2,childSlot:1,spread:!1},{name:"cases",grammarRef:4,childSlot:2,spread:!1},{name:"default",grammarRef:6,childSlot:3,spread:!1}]},"468":{kind:"switch",roles:[{name:"subject",grammarRef:null,childSlot:1,literal:null},{name:"cases",grammarRef:3,childSlot:2,spread:!1},{name:"default",grammarRef:null,childSlot:3,literal:null}]},"469":{kind:"switch",roles:[{name:"subject",grammarRef:null,childSlot:1,literal:null},{name:"cases",grammarRef:3,childSlot:2,spread:!1},{name:"default",grammarRef:5,childSlot:3,spread:!1}]},"472":{kind:"when",roles:[{name:"conditions",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:3,childSlot:2,spread:!1}]},"473":{kind:"when",roles:[{name:"conditions",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:3,childSlot:2,spread:!1}]},"476":{kind:"forin",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"step",grammarRef:null,childSlot:3,literal:null},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:5,childSlot:5,spread:!1}]},"477":{kind:"forin",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"step",grammarRef:6,childSlot:3,spread:!1},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:7,childSlot:5,spread:!1}]},"478":{kind:"forin",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"step",grammarRef:null,childSlot:3,literal:null},{name:"guard",grammarRef:6,childSlot:4,spread:!1},{name:"body",grammarRef:7,childSlot:5,spread:!1}]},"479":{kind:"forin",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"step",grammarRef:8,childSlot:3,spread:!1},{name:"guard",grammarRef:6,childSlot:4,spread:!1},{name:"body",grammarRef:9,childSlot:5,spread:!1}]},"480":{kind:"forin",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"step",grammarRef:6,childSlot:3,spread:!1},{name:"guard",grammarRef:8,childSlot:4,spread:!1},{name:"body",grammarRef:9,childSlot:5,spread:!1}]},"481":{kind:"forof",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"object",grammarRef:4,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!1},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:5,childSlot:5,spread:!1}]},"482":{kind:"forof",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"object",grammarRef:4,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!1},{name:"guard",grammarRef:6,childSlot:4,spread:!1},{name:"body",grammarRef:7,childSlot:5,spread:!1}]},"483":{kind:"forof",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"object",grammarRef:5,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:6,childSlot:5,spread:!1}]},"484":{kind:"forof",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"object",grammarRef:5,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:7,childSlot:4,spread:!1},{name:"body",grammarRef:8,childSlot:5,spread:!1}]},"485":{kind:"foras",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!1},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:5,childSlot:5,spread:!1}]},"486":{kind:"foras",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!1},{name:"guard",grammarRef:6,childSlot:4,spread:!1},{name:"body",grammarRef:7,childSlot:5,spread:!1}]},"487":{kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:6,childSlot:5,spread:!1}]},"488":{kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:7,childSlot:4,spread:!1},{name:"body",grammarRef:8,childSlot:5,spread:!1}]},"489":{kind:"foras",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:5,childSlot:5,spread:!1}]},"490":{kind:"foras",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:6,childSlot:4,spread:!1},{name:"body",grammarRef:7,childSlot:5,spread:!1}]},"491":{kind:"forin",roles:[{name:"iterable",grammarRef:2,childSlot:2,spread:!1},{name:"step",grammarRef:null,childSlot:3,literal:null},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:3,childSlot:5,spread:!1}]},"492":{kind:"forin",roles:[{name:"iterable",grammarRef:2,childSlot:2,spread:!1},{name:"step",grammarRef:4,childSlot:3,spread:!1},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:5,childSlot:5,spread:!1}]},"493":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forin",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"step",grammarRef:null,childSlot:3,literal:null}],nested:[]}]},"494":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:7,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forin",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"step",grammarRef:null,childSlot:3,literal:null}],nested:[]}]},"495":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forin",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"step",grammarRef:7,childSlot:3,spread:!1}],nested:[]}]},"496":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:7,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forin",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"step",grammarRef:9,childSlot:3,spread:!1}],nested:[]}]},"497":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:9,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forin",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"step",grammarRef:7,childSlot:3,spread:!1}],nested:[]}]},"498":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forof",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"object",grammarRef:5,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!1}],nested:[]}]},"499":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:7,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forof",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"object",grammarRef:5,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!1}],nested:[]}]},"500":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forof",roles:[{name:"vars",grammarRef:4,childSlot:1,spread:!1},{name:"object",grammarRef:6,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"501":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:8,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forof",roles:[{name:"vars",grammarRef:4,childSlot:1,spread:!1},{name:"object",grammarRef:6,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"502":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!1}],nested:[]}]},"503":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:7,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!1}],nested:[]}]},"504":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:4,childSlot:1,spread:!1},{name:"iterable",grammarRef:6,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"505":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:8,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:4,childSlot:1,spread:!1},{name:"iterable",grammarRef:6,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"506":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"507":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:7,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"511":{kind:"loop",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"512":{kind:"loop",roles:[{name:"count",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:3,childSlot:2,spread:!1}]},"513":{kind:"update",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"--"},{name:"target",grammarRef:2,childSlot:1,spread:!1},{name:"prefix",grammarRef:null,childSlot:2,literal:!1}]},"514":{kind:"update",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"++"},{name:"target",grammarRef:2,childSlot:1,spread:!1},{name:"prefix",grammarRef:null,childSlot:2,literal:!1}]},"515":{kind:"update",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"--"},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"prefix",grammarRef:null,childSlot:2,literal:!0}]},"516":{kind:"update",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"++"},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"prefix",grammarRef:null,childSlot:2,literal:!0}]},"517":{kind:"existence",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?"},{name:"value",grammarRef:1,childSlot:1,spread:!1}]},"518":{kind:"cast",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:2,childSlot:2,spread:!1}]},"519":{kind:"satisfies",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:2,childSlot:2,spread:!1}]},"520":{kind:"ternary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?:"},{name:"condition",grammarRef:1,childSlot:1,spread:!1},{name:"then",grammarRef:3,childSlot:2,spread:!1},{name:"else",grammarRef:5,childSlot:3,spread:!1}]},"521":{kind:"unary",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"522":{kind:"doiife",roles:[{name:"func",grammarRef:2,childSlot:1,spread:!1}]},"523":{kind:"unary",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"524":{kind:"await",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1},{name:"operator",grammarRef:1,childSlot:null,spread:!1}]},"525":{kind:"await",roles:[{name:"value",grammarRef:3,childSlot:1,spread:!1},{name:"operator",grammarRef:1,childSlot:null,spread:!1}]},"526":{kind:"yield",roles:[]},"527":{kind:"yield",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"528":{kind:"yield",roles:[{name:"value",grammarRef:3,childSlot:1,spread:!1}]},"529":{kind:"yieldfrom",roles:[{name:"value",grammarRef:3,childSlot:1,spread:!1}]},"530":{kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"-"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"531":{kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"+"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"532":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"**"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"533":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"+"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"534":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"-"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"535":{kind:"binary",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"536":{kind:"binary",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"537":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"538":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"^"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"539":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"|"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"540":{kind:"binary",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"541":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"=~"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"542":{kind:"relation",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"543":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"544":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"545":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"??"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"546":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"547":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"548":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"??"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"549":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"550":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"551":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"??"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"552":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"553":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"554":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"555":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"556":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"557":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]}},primitiveRefs:{"1":[],"2":[1],"3":[1],"4":[1,3],"5":[1],"6":[1],"7":[1],"8":[1],"9":[1],"10":[1],"11":[1],"12":[1],"13":[1],"14":[1],"15":[1,2],"16":[1,3],"17":[2,3,4],"18":[2],"19":[2,4],"20":[2,4],"21":[5],"22":[3,7],"23":[2,4,6],"24":[2,5,9],"25":[3,4,2],"26":[2,5,6,4],"27":[2,5,6,4],"28":[3,8,9,7],"29":[2,4,7,8,6],"30":[2,5,10,11,9],"31":[3,5],"32":[3,5],"33":[6],"34":[4,8],"35":[1],"36":[1,3],"37":[1,4],"38":[2],"39":[1,4],"40":[1],"41":[1,3],"42":[1],"43":[1,3],"44":[1],"45":[3],"46":[],"47":[3],"48":[2],"49":[2],"50":[2],"51":[2],"52":[2],"53":[2],"54":[2],"55":[2],"56":[3],"57":[4],"58":[4],"59":[6,4],"60":[6,4],"61":[5],"62":[3,7],"63":[4,8],"64":[1,3],"65":[1,4],"66":[1,4],"67":[1,4],"68":[1,5],"69":[1,5],"70":[1,4],"71":[1,4],"72":[1,5],"73":[1,5],"74":[1,4],"75":[1,5],"76":[1,5],"77":[1,4],"78":[1,5],"79":[1,5],"80":[1,4],"81":[1,5],"82":[1,4],"83":[1,4],"84":[1,5],"85":[1,5],"86":[1,4],"87":[1,5],"88":[1,4],"89":[1],"90":[1,3],"91":[1,4],"92":[2],"93":[1,4],"94":[1],"95":[1,3],"96":[1,3],"97":[1],"98":[1,3],"99":[1],"100":[1],"101":[1],"102":[1],"103":[1],"104":[1],"105":[1],"106":[1],"107":[1],"108":[1],"109":[1],"110":[1],"111":[1],"112":[1],"113":[1],"114":[1],"115":[1],"116":[1],"117":[1],"118":[1],"119":[1],"120":[1],"121":[1],"122":[1],"123":[1],"124":[1],"125":[1],"126":[1],"127":[1],"128":[1],"129":[1,3],"130":[1],"131":[1],"132":[],"133":[],"134":[1],"135":[1],"136":[1],"137":[1],"138":[1],"139":[2],"140":[1],"141":[1,2],"142":[2],"143":[3],"144":[],"145":[1],"146":[1],"147":[3,2],"148":[1],"149":[1],"150":[1,3],"151":[1,4],"152":[1,4],"153":[1,4],"154":[1,5],"155":[1,5],"156":[1,4],"157":[1,5],"158":[1,5],"159":[1,5],"160":[1,6],"161":[1,6],"162":[1,3],"163":[1,4],"164":[1,4],"165":[2,1,3],"166":[2,1,4],"167":[2,1,4],"168":[1,3],"169":[1,4],"170":[1,5],"171":[1,5],"172":[1,4],"173":[1,5],"174":[1,5],"175":[1],"176":[1],"177":[1],"178":[1],"179":[2],"180":[2],"181":[1],"182":[2],"183":[1],"184":[1,3],"185":[1,4],"186":[1,4],"187":[1,5],"188":[1,3],"189":[1,4],"190":[1,4],"191":[1,5],"192":[1,3],"193":[1,4],"194":[1,3],"195":[1,4],"196":[1,3,5],"197":[1,4,6],"198":[1,3],"199":[1,4],"200":[1,4],"201":[1,5],"202":[1,3],"203":[1,4],"204":[2],"205":[1],"206":[1],"207":[1,3],"208":[1,3],"209":[1,3],"210":[1,4],"211":[1,3,5],"212":[1,3],"213":[1,4],"214":[1,4],"215":[1,5],"216":[1,3],"217":[1,3],"218":[1,4],"219":[1,4],"220":[1,3],"221":[1,3],"222":[1,2],"223":[1,2],"224":[1,2],"225":[2],"226":[2,4],"227":[1,2],"228":[1],"229":[1],"230":[1],"231":[1],"232":[1],"233":[1,3],"234":[1,3],"235":[1,3],"236":[1,3],"237":[1],"238":[1],"239":[4,2,5],"240":[5,2,6],"241":[1,2],"242":[1],"243":[1],"244":[2],"245":[],"246":[],"247":[2],"248":[2],"249":[],"250":[2],"251":[2,3],"252":[1],"253":[1,3],"254":[1,4],"255":[2,3],"256":[1,2,4,5],"257":[1],"258":[1,2],"259":[],"260":[2],"261":[1],"262":[1,2],"263":[],"264":[1],"265":[2],"266":[3],"267":[],"268":[1],"269":[1,3],"270":[1,4],"271":[1,4],"272":[1,1],"273":[1],"274":[1,3],"275":[1,4],"276":[1,3],"277":[1,3],"278":[1,4],"279":[1,4],"280":[1,5],"281":[2],"282":[2],"283":[1],"284":[1],"285":[1],"286":[1],"287":[1],"288":[2],"289":[1,2],"290":[1,2],"291":[1,2],"292":[1,3],"293":[1,3],"294":[1,3],"295":[1,4],"296":[1],"297":[1,3],"298":[1],"299":[1,3],"300":[1,3],"301":[1,4],"302":[1,4],"303":[1],"304":[1,3],"305":[1,4],"306":[1,4],"307":[1,1],"308":[1,3],"309":[1,1,3],"310":[1,3,5],"311":[1],"312":[1],"313":[1],"314":[1],"315":[1],"316":[1],"317":[1],"318":[2],"319":[3],"320":[],"321":[],"322":[3,2,4],"323":[2,1,3],"324":[2,1],"325":[1,2],"326":[1],"327":[2,3,4],"328":[2,3,5],"329":[2,4,5],"330":[2,4,6],"331":[2,4,5],"332":[2,4,6],"333":[2,3,4],"334":[2,3,5],"335":[2,4,5],"336":[2,4,6],"337":[2,4,5],"338":[2,4,6],"339":[],"340":[2],"341":[],"342":[1],"343":[1,3],"344":[1,4],"345":[1,4],"346":[1],"347":[1,3],"348":[2],"349":[],"350":[1],"351":[1,2],"352":[1,3],"353":[1],"354":[1],"355":[1],"356":[1],"357":[1],"358":[2],"359":[1],"360":[],"361":[2],"362":[3],"363":[3,4],"364":[2],"365":[2,3],"366":[2,4],"367":[2,4,5],"368":[2,3],"369":[2,4,5],"370":[2,3],"371":[2],"372":[2],"373":[3,4],"374":[2],"375":[1],"376":[1,3],"377":[1],"378":[1],"379":[1],"380":[2],"381":[2],"382":[2,4],"383":[1],"384":[1,3],"385":[2],"386":[2],"387":[3],"388":[3],"389":[4],"390":[1,2],"391":[2],"392":[1,3],"393":[1,3],"394":[1,3],"395":[1],"396":[1,2],"397":[3],"398":[],"399":[2],"400":[1],"401":[1,3],"402":[1,4],"403":[2],"404":[1,4],"405":[1],"406":[1],"407":[1],"408":[1],"409":[],"410":[2],"411":[2],"412":[3],"413":[2],"414":[3],"415":[],"416":[2,3],"417":[2,3],"418":[2,4,5],"419":[2,4,5],"420":[3,1],"421":[3,1],"422":[3,1],"423":[3,1],"424":[3,5,1],"425":[3,5,1],"426":[3,5,1],"427":[3,5,1],"428":[1],"429":[2,3],"430":[2,3,4],"431":[3,4],"432":[3,4,5],"433":[2],"434":[2,3],"435":[2,3,5],"436":[1],"437":[1],"438":[3,1],"439":[3,1],"440":[3,1],"441":[3,1],"442":[3,1,6],"443":[3,1,5],"444":[2],"445":[2],"446":[2,3],"447":[2],"448":[2,3],"449":[2,3],"450":[2,3],"451":[2,3,4],"452":[2,3],"453":[2,3,4],"454":[2,3],"455":[2,3,4],"456":[2],"457":[2],"458":[2,3],"459":[2,3],"460":[2,3],"461":[2],"462":[1],"463":[1,2],"464":[2],"465":[3],"466":[2,4],"467":[2,4,6],"468":[3],"469":[3,5],"470":[1],"471":[1,2],"472":[2,3],"473":[2,3],"474":[1],"475":[1,3],"476":[2,4,5],"477":[2,4,6,7],"478":[2,4,6,7],"479":[2,4,8,6,9],"480":[2,4,6,8,9],"481":[2,4,5],"482":[2,4,6,7],"483":[3,5,6],"484":[3,5,7,8],"485":[2,4,5],"486":[2,4,6,7],"487":[3,5,6],"488":[3,5,7,8],"489":[2,4,5],"490":[2,4,6,7],"491":[2,3],"492":[2,4,5],"493":[1,3,5],"494":[1,3,5,7],"495":[1,3,5,7],"496":[1,3,5,9,7],"497":[1,3,5,7,9],"498":[1,3,5],"499":[1,3,5,7],"500":[1,4,6],"501":[1,4,6,8],"502":[1,3,5],"503":[1,3,5,7],"504":[1,4,6],"505":[1,4,6,8],"506":[1,3,5],"507":[1,3,5,7],"508":[1],"509":[1],"510":[1,3],"511":[2],"512":[2,3],"513":[2],"514":[2],"515":[1],"516":[1],"517":[1],"518":[1,2],"519":[1,2],"520":[1,3,5],"521":[1,2],"522":[2],"523":[1,2],"524":[2],"525":[3],"526":[],"527":[2],"528":[3],"529":[3],"530":[2],"531":[2],"532":[1,3],"533":[1,3],"534":[1,3],"535":[2,1,3],"536":[2,1,3],"537":[1,3],"538":[1,3],"539":[1,3],"540":[2,1,3],"541":[1,3],"542":[2,1,3],"543":[1,3],"544":[1,3],"545":[1,3],"546":[1,3],"547":[1,3],"548":[1,3],"549":[1,3],"550":[1,3],"551":[1,3],"552":[1,3],"553":[1,3],"554":[1,3],"555":[1,3],"556":[1,3],"557":[1,3]},accumulators:{"4":!0,"36":!0,"37":!0,"39":!0,"90":!0,"91":!0,"93":!0,"141":!0,"253":!0,"254":!0,"256":!0,"262":!0,"269":!0,"270":!0,"271":!0,"304":!0,"305":!0,"306":!0,"343":!0,"344":!0,"345":!0,"376":!0,"401":!0,"402":!0,"404":!0,"471":!0},parseTable:(()=>{let e=[108,1,2,1,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-1,1,2,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,1,0,2,1,5,-2,108,5,1,5,31,61,89,-3,-3,-3,-3,-3,29,1,5,31,61,89,2,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,9,1,5,31,61,89,2,1,9,1,-7,-7,-7,-7,-7,135,136,133,134,57,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,6,3,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-99,-99,-99,-99,-99,-99,137,138,-99,143,-99,-237,-237,-237,-99,-237,-237,-99,-237,140,-99,-99,-99,-99,142,-99,141,139,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,50,1,5,22,3,5,1,61,15,4,1,1,1,2,1,2,1,9,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-100,-100,-100,-100,-100,-100,-100,-100,-238,-238,-238,-100,-238,-238,-100,-238,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,65,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-119,-119,145,146,-119,-119,-119,-119,144,147,151,148,149,152,-119,-119,-119,150,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,18,6,14,7,4,2,3,66,6,7,19,1,6,1,9,6,9,1,1,-341,158,100,-341,160,-341,96,159,161,153,-341,163,162,101,156,154,155,157,2,36,22,165,164,46,16,4,3,4,6,28,1,13,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,26,170,167,103,100,76,168,169,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,171,107,105,106,96,166,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,82,46,16,4,3,4,6,28,1,13,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,26,170,167,103,100,76,168,169,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,171,107,105,106,96,172,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,82,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,175,176,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,173,174,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,177,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,179,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,180,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,181,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,182,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,144,1,5,1,1,1,1,1,1,1,1,1,1,3,1,2,1,2,2,1,3,2,3,1,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,5,1,1,2,3,3,5,2,1,4,5,2,1,1,4,2,1,1,1,1,1,1,1,1,8,4,2,2,1,5,6,2,1,2,7,3,1,1,1,1,1,1,1,1,2,1,1,1,1,1,3,1,2,1,5,3,4,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-526,-526,183,178,26,27,28,29,30,31,73,32,65,54,71,103,185,100,-526,-526,76,184,-526,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,-526,105,106,96,45,75,-526,92,93,-526,-526,94,95,89,41,-526,42,90,91,86,87,88,83,-526,101,-526,-526,84,85,-526,66,74,67,68,69,82,-526,70,-526,-526,-526,63,56,97,-526,57,98,-526,-526,58,-526,-526,64,60,-526,-526,49,99,43,44,-526,-526,-526,46,47,48,50,51,52,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,186,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,187,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,58,1,5,11,11,3,5,1,15,30,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-138,-138,189,-138,-138,-138,-138,188,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,70,1,5,11,1,10,3,5,1,15,1,1,1,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,190,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,193,192,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,194,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,191,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,196,197,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,195,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,15,20,7,6,44,25,6,7,26,1,9,17,46,4,2,2,158,100,160,201,96,159,161,163,83,101,203,198,199,200,202,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,204,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,205,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,206,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,207,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,208,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,209,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,4,20,82,13,26,210,96,211,163,51,1,5,14,8,3,5,1,21,40,4,11,2,5,5,10,6,2,12,2,8,5,2,15,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-360,-360,216,-360,-360,165,-360,212,-360,96,-360,215,-360,-360,-360,163,-360,-360,-360,-360,214,213,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,1,175,217,3,36,136,5,220,219,218,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,222,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,221,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,143,1,5,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,1,3,2,3,1,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,5,1,1,2,3,3,5,2,1,4,5,2,1,1,4,2,1,1,1,1,1,1,1,1,8,4,2,2,1,5,6,2,1,2,7,3,1,1,1,1,1,1,1,1,2,1,1,1,1,1,3,1,2,1,5,3,4,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-415,-415,223,178,26,27,28,29,30,31,73,32,65,54,71,103,100,-415,-415,76,224,-415,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,-415,105,106,96,45,75,-415,92,93,-415,-415,94,95,89,41,-415,42,90,91,86,87,88,83,-415,101,-415,-415,84,85,-415,66,74,67,68,69,82,-415,70,-415,-415,-415,63,56,97,-415,57,98,-415,-415,58,-415,-415,64,60,-415,-415,49,99,43,44,-415,-415,-415,46,47,48,50,51,52,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,10,20,3,1,2,1,7,6,52,1,9,230,225,226,227,228,229,231,171,107,96,61,14,2,3,1,3,4,6,6,4,1,1,1,1,1,1,1,1,8,2,1,13,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,13,235,246,244,245,103,232,76,241,233,234,236,237,238,239,240,242,243,55,168,169,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,171,107,105,106,96,247,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,82,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,2,20,82,248,96,65,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,65,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,107,4,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,249,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,250,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,114,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,1,1,1,2,1,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,251,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,257,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,252,253,254,256,259,255,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,4,112,5,2,13,143,263,264,262,3,82,30,20,266,143,265,5,62,71,3,1,1,267,41,42,90,91,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,59,1,5,22,3,5,1,45,2,8,6,5,1,8,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-246,-246,-246,-246,-246,-246,-246,-246,269,-246,268,270,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,14,20,56,4,1,2,19,13,14,1,1,9,1,18,27,274,277,276,278,272,96,275,89,271,273,87,88,279,82,1,36,-242,1,36,-243,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,6,117,1,1,3,1,3,280,281,282,283,284,285,1,117,286,1,117,287,77,1,5,11,1,7,3,3,5,1,1,14,1,1,1,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,7,12,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,3,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,288,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,289,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,291,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,290,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,26,6,14,3,5,3,5,49,1,4,1,1,1,6,1,2,1,1,11,26,1,8,2,1,1,2,1,-267,302,103,-267,-267,-267,298,296,102,104,171,107,105,106,96,303,270,304,300,299,292,293,294,295,297,301,1,27,305,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,6,23,69,1,1,2,1,309,171,107,306,307,308,6,23,69,1,1,2,1,309,171,107,310,307,308,110,1,4,1,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,4,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,5,1,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,1,1,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-5,311,-5,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,-5,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,-5,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,-5,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,312,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,313,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,314,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,315,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,316,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,317,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,318,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,319,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,320,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,321,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,322,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,323,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,324,178,325,326,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,327,178,328,329,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,330,178,331,332,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,333,178,334,335,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,336,178,337,338,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,339,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,340,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,14,20,7,6,69,6,7,26,1,9,17,46,4,2,2,158,100,160,96,159,161,163,162,101,203,341,342,343,202,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,344,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,345,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,346,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,347,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,348,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,349,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,3,23,69,1,350,171,107,46,1,5,22,3,5,1,61,14,1,7,5,7,3,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-517,-517,-517,-517,-517,-517,-517,143,-517,-517,-517,351,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,2,112,20,143,352,57,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,6,3,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-395,-395,-395,-395,-395,-395,-395,-395,-395,143,-395,-395,-395,-395,-395,-395,-395,-395,-395,353,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,110,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,5,1,1,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,357,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,354,355,92,93,94,95,89,41,42,90,91,86,87,88,83,356,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,360,359,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,361,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,50,1,5,22,3,5,1,15,3,1,1,2,39,13,2,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-15,-15,-15,-15,-15,-15,362,366,363,364,367,-15,365,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,5,17,35,3,1,1,369,368,372,370,371,1,52,373,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,376,375,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,374,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,193,192,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,194,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,378,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,46,16,4,3,4,6,28,1,13,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,26,170,167,103,100,76,379,169,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,171,107,105,106,96,247,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,82,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,376,375,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,380,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,193,192,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,194,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,381,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,6,24,1,5,99,-407,384,383,-407,382,6,6,25,5,1,76,22,-342,-342,-342,-342,-342,-342,7,6,25,5,1,15,61,22,-346,-346,-346,-346,385,-346,-346,17,6,14,7,4,2,3,1,65,6,5,2,20,6,1,9,16,1,-349,158,100,-349,160,-349,-349,96,159,-349,161,-349,163,162,101,386,157,9,6,11,1,13,5,1,15,61,22,-350,387,388,-350,-350,-350,-350,-350,-350,13,6,11,1,13,5,1,15,61,22,80,2,2,2,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,13,6,11,1,13,5,1,15,61,22,80,2,2,2,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,13,6,11,1,13,5,1,15,61,22,80,2,2,2,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,13,6,11,1,13,5,1,15,61,22,80,2,2,2,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,114,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,1,1,1,2,1,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,257,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,252,253,254,256,259,255,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,92,11,1,269,268,270,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,107,4,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,4,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,390,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,389,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-513,-513,-513,-513,-513,-513,-175,-175,-513,-175,-513,-175,-175,-175,-513,-175,-175,-513,-175,-513,-513,-513,-513,-175,-513,-175,-175,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,13,82,2,28,5,1,1,3,1,3,6,29,23,1,137,138,143,-237,-237,-237,-237,-237,-237,140,142,141,391,6,117,1,1,3,1,3,-238,-238,-238,-238,-238,-238,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,62,1,5,22,3,1,4,1,45,2,8,1,2,2,1,3,11,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-514,-514,-514,-514,-514,-514,-175,-175,-514,-175,-514,-175,-175,-175,-514,-175,-175,-514,-175,-514,-514,-514,-514,-175,-514,-175,-175,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,394,392,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,393,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,395,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,4,189,1,9,1,135,136,133,134,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,112,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,3,27,6,118,100,396,101,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-527,3,27,6,118,100,397,101,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,398,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,112,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,112,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,399,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,52,400,2,52,3,401,402,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,131,132,-181,127,128,129,-181,-181,130,-181,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,403,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,46,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,2,1,1,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,404,405,407,406,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,46,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,2,1,1,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,131,132,-445,127,128,129,408,409,407,406,130,-445,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,46,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,2,1,1,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,135,136,-447,-447,133,134,410,411,407,406,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,4,215,2,2,2,412,413,414,415,12,20,7,6,69,6,7,26,1,9,17,46,8,158,100,160,96,159,161,163,162,101,203,416,202,12,20,7,6,69,6,7,26,1,9,17,46,8,158,100,160,96,159,161,163,162,101,203,417,202,3,36,22,158,165,418,419,5,31,184,2,2,2,420,-509,-509,-509,-509,5,31,184,2,2,2,-508,-508,-508,-508,-508,25,36,153,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,421,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,3,209,1,1,422,423,424,27,36,22,131,1,1,5,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,425,131,132,426,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,27,36,22,131,1,1,5,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,427,131,132,428,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-464,3,27,6,118,100,429,101,6,17,4,15,17,1,58,-339,430,-339,431,432,433,6,17,4,15,17,1,58,-339,434,-339,435,436,433,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,437,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,46,1,5,22,3,5,1,21,40,15,7,5,10,8,12,2,8,7,15,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-364,-364,-364,-364,165,-364,438,-364,-364,-364,-364,-364,-364,-364,-364,-364,439,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,3,36,22,114,165,440,441,45,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,7,15,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,442,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,2,1,1,1,2,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,445,446,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,443,444,447,448,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,131,132,-386,127,-386,-386,-386,-386,130,-386,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-386,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-413,3,27,6,118,100,449,101,45,1,5,22,3,1,4,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-18,-18,-18,-18,450,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,2,25,6,451,452,1,25,453,7,20,8,1,6,1,3,63,458,454,455,456,457,459,96,6,20,4,2,1,13,62,230,460,461,462,231,96,2,25,6,-44,-44,1,38,463,29,6,14,3,5,3,5,3,3,18,25,1,4,1,1,1,6,1,2,1,1,11,26,1,8,2,1,1,2,1,-267,468,103,464,-267,467,469,465,466,298,296,102,104,171,107,105,106,96,303,270,304,300,299,292,293,294,295,297,301,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,470,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,471,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,2,25,13,472,473,1,27,474,4,20,82,13,26,475,96,211,163,21,17,1,34,1,1,1,1,1,2,23,2,28,5,1,1,3,1,3,35,23,1,477,-205,476,478,479,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,18,17,1,37,1,1,2,23,2,28,5,1,1,3,1,3,35,23,1,480,481,151,148,149,152,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,62,1,5,11,1,10,3,5,1,18,1,1,2,23,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,2,36,22,165,482,2,6,181,108,483,106,4,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,484,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,31,6,25,5,107,14,7,1,24,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-405,-405,-405,-405,487,485,486,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,5,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,110,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,1,5,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,488,490,489,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,6,6,24,1,5,107,3,-407,493,492,-407,-407,491,61,6,4,5,4,3,5,4,5,1,4,18,28,1,1,1,1,1,1,6,1,2,25,1,1,4,4,1,1,1,1,1,1,8,6,2,1,11,2,1,2,7,3,2,1,1,4,4,3,6,1,5,7,3,1,1,4,1,1,1,1,1,494,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,5,6,25,5,1,106,-252,-252,-252,-252,-252,113,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,2,1,2,1,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,257,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,496,495,256,259,255,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,61,6,4,5,4,3,5,4,5,1,4,18,28,1,1,1,1,1,1,6,1,2,25,1,1,4,4,1,1,1,1,1,1,8,6,2,1,11,2,1,2,7,3,2,1,1,4,4,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,5,6,25,5,1,106,-257,-257,-257,-257,-257,6,6,25,5,1,76,30,-406,-406,-406,-406,-406,-406,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,497,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,2,103,1,498,270,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,499,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,500,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,2,112,20,143,501,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,75,1,5,11,1,10,3,5,1,15,1,1,1,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,7,12,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,3,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,75,1,5,11,1,10,3,5,1,15,1,1,1,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,7,12,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,3,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,75,1,5,11,1,10,3,5,1,15,1,1,1,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,7,12,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,3,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,57,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,6,3,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-222,-222,-222,-222,-222,-222,502,506,-222,143,-222,503,504,505,-222,-222,-222,-222,-222,507,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,2,117,2,263,264,2,103,1,508,270,2,103,1,509,270,109,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,5,6,1,1,4,3,1,1,1,1,1,1,9,6,2,1,4,1,6,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,510,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,511,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,512,94,95,89,41,42,90,91,86,87,88,83,101,487,84,85,513,486,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,119,514,8,20,16,66,1,1,20,38,1,519,516,96,520,270,515,517,518,8,20,16,66,1,1,20,38,1,519,522,96,520,270,521,517,518,2,103,1,523,270,2,103,1,524,270,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,525,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,526,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,527,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,5,6,22,2,1,5,-407,-407,528,529,-407,5,6,22,3,5,1,-268,-268,-268,-268,-268,6,6,22,3,5,1,118,-272,-272,-272,-272,-272,530,5,6,22,3,5,1,-273,-273,-273,-273,-273,1,155,531,8,6,22,3,5,1,15,2,101,-316,-316,-316,-316,-316,532,533,-316,6,6,22,3,5,1,118,-317,-317,-317,-317,-317,-317,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,534,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,4,92,11,1,38,269,268,270,535,18,20,7,6,43,4,1,21,1,1,11,25,1,10,5,2,1,1,26,302,100,538,539,541,540,96,303,270,304,87,88,101,536,537,542,543,82,16,6,22,3,5,1,15,2,28,30,5,1,1,4,3,29,6,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,16,6,22,3,5,1,15,2,28,30,5,1,1,4,3,29,6,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,16,6,22,3,5,1,15,2,28,30,5,1,1,4,3,29,6,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,26,6,14,3,5,3,5,49,1,4,1,1,1,6,1,2,1,1,11,26,1,8,2,1,1,2,1,-267,302,103,-267,-267,-267,298,296,102,104,171,107,105,106,96,303,270,304,300,299,544,293,294,295,297,301,6,23,69,1,3,1,4,309,171,107,546,308,545,5,92,1,2,2,4,-140,-140,-140,-140,-140,108,4,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,5,1,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,547,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,548,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,549,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,92,1,2,2,4,-145,-145,-145,-145,-145,6,23,69,1,2,1,1,309,171,107,550,546,308,5,1,5,31,61,89,-4,-4,-4,-4,-4,25,155,34,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,551,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,112,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,112,115,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,112,115,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,112,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,114,113,112,115,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,109,110,-537,114,113,112,115,116,-537,-537,-537,120,121,122,-537,-537,-537,-537,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,109,110,-538,114,113,112,115,116,117,-538,-538,120,121,122,-538,-538,-538,-538,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,109,110,-539,114,113,112,115,116,117,118,-539,120,121,122,-539,-539,-539,-539,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,109,110,-540,114,113,112,115,116,-540,-540,-540,-540,-540,122,-540,-540,-540,-540,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,109,110,-541,114,113,112,115,116,-541,-541,-541,-541,-541,122,-541,-541,-541,-541,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,109,110,-542,114,113,112,115,116,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,-543,109,110,-543,114,113,112,115,116,117,118,119,120,121,122,-543,-543,-543,-543,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,-546,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,-549,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,-544,109,110,-544,114,113,112,115,116,117,118,119,120,121,122,123,-544,-544,-544,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,-547,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,-550,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,-545,109,110,-545,114,113,112,115,116,117,118,119,120,121,122,123,-545,-545,-545,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,-548,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,-551,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-552,-552,-552,-552,-552,-552,-552,-552,-552,-552,-552,-552,-552,-552,-552,-552,131,132,-552,127,-552,-552,-552,-552,130,-552,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-552,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,-554,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,-556,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-553,-553,-553,-553,-553,-553,-553,-553,-553,-553,-553,-553,-553,-553,-553,-553,131,132,-553,127,-553,-553,-553,-553,130,-553,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-553,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,-555,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,-557,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,131,132,-439,552,-439,-439,-439,-439,130,-439,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,131,132,-441,127,-441,-441,-441,-441,130,-441,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,4,215,2,2,2,553,554,555,556,12,20,7,6,69,6,7,26,1,9,17,46,8,158,100,160,96,159,161,163,162,101,203,557,202,12,20,7,6,69,6,7,26,1,9,17,46,8,158,100,160,96,159,161,163,162,101,203,558,202,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,131,132,559,127,-420,-420,-420,-420,130,-420,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-420,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,131,132,560,127,-422,-422,-422,-422,130,-422,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-422,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,131,132,-438,127,-438,-438,-438,-438,130,-438,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,131,132,-440,127,-440,-440,-440,-440,130,-440,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,131,132,561,127,-421,-421,-421,-421,130,-421,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-421,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,131,132,562,127,-423,-423,-423,-423,130,-423,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-423,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,5,6,24,1,5,77,-407,563,564,-407,-407,5,6,25,5,1,76,-400,-400,-400,-400,-400,109,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,6,1,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,357,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,565,92,93,94,95,89,41,42,90,91,86,87,88,83,356,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,30,6,25,5,1,76,30,46,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-405,-405,-405,-405,-405,-405,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-150,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,566,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,567,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,569,568,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,570,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,376,375,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,571,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,193,192,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,194,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,572,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,46,16,4,3,4,6,28,1,13,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,26,170,167,103,100,76,573,169,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,171,107,105,106,96,247,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,82,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,376,375,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,574,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,193,192,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,194,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,575,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,577,576,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,578,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,48,1,5,22,3,5,1,15,3,1,1,41,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-16,-16,-16,-16,-16,-16,579,582,580,581,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,376,375,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,583,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,193,192,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,194,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,584,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,376,375,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,585,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,586,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,131,132,-178,127,128,129,-178,-178,130,-178,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,587,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,588,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,57,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,6,3,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-192,-192,-192,-192,-192,-192,137,138,-192,589,-192,-237,-237,-237,-192,-237,-237,-192,-237,140,-192,-192,-192,-192,142,-192,141,391,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,4,17,119,1,1,591,590,90,91,16,6,14,7,6,3,1,65,6,7,26,1,9,6,9,1,1,-408,158,100,160,-408,-408,96,159,161,163,162,101,156,592,155,157,2,6,30,593,594,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,595,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,6,6,25,5,1,76,22,-348,-348,-348,-348,-348,-348,7,6,25,5,1,15,61,22,-351,-351,-351,-351,-351,-351,-351,8,6,11,14,5,1,15,61,22,-353,596,-353,-353,-353,-353,-353,-353,57,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,6,2,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,2,6,31,108,597,2,112,20,143,351,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-165,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,598,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,599,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-168,1,37,600,1,37,601,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-529,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-162,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,602,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,604,603,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,605,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,607,606,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,608,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,131,132,-182,127,128,129,-182,-182,130,-182,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,45,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,3,1,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,609,407,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,10,20,7,6,3,22,44,6,34,9,55,614,100,611,165,613,96,612,162,101,610,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,616,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,615,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,45,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,3,1,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,617,407,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,45,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,3,1,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,618,407,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,619,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,620,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,621,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,622,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,217,623,1,219,624,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,625,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,11,20,7,6,69,6,7,26,1,9,17,54,158,100,160,96,159,161,163,162,101,203,626,3,209,1,1,627,423,424,4,37,159,14,1,628,629,630,424,3,37,159,15,-470,-470,-470,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,4,1,7,3,1,1,4,1,1,1,1,1,632,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,631,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,633,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,634,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,37,635,3,17,19,22,637,165,636,4,17,4,15,76,-339,638,-339,433,4,17,4,15,76,-339,639,-339,433,18,6,14,7,4,2,3,66,6,5,2,19,7,1,9,6,9,1,1,-341,158,100,-341,160,-341,96,159,-341,161,640,163,162,101,156,154,155,157,3,17,19,22,642,165,641,4,17,4,15,76,-339,643,-339,433,4,17,4,15,76,-339,644,-339,433,45,1,5,22,3,5,1,21,40,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-362,-362,-362,-362,165,-362,645,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-362,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,646,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,647,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,26,36,141,12,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,220,648,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,2,6,31,650,649,2,6,31,-375,-375,26,6,31,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-378,-378,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,6,6,31,152,1,9,1,-379,-379,135,136,133,134,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,651,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,102,652,1,37,653,3,27,6,118,100,654,101,3,23,69,1,655,171,107,3,26,1,13,656,657,231,3,23,69,1,658,171,107,1,25,659,5,6,22,2,1,5,-407,-407,660,661,-407,5,6,22,3,5,1,-35,-35,-35,-35,-35,6,20,9,6,1,3,63,458,662,456,457,459,96,6,6,22,3,5,1,1,-40,-40,-40,-40,-40,663,6,6,22,3,5,1,1,-42,-42,-42,-42,-42,664,1,25,665,1,25,666,7,20,8,1,6,1,3,63,458,667,668,456,457,459,96,2,20,82,669,96,45,1,5,19,3,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,670,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,5,6,22,2,1,5,-407,-407,671,672,-407,5,6,22,3,5,1,-89,-89,-89,-89,-89,6,20,16,3,3,18,42,674,467,469,673,466,96,8,6,22,3,5,2,14,2,101,-94,-94,-94,-94,675,-313,-313,-313,6,6,22,3,5,1,1,-97,-97,-97,-97,-97,676,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,131,132,-56,127,128,129,-56,-56,130,-56,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,3,27,6,118,100,677,101,3,23,69,1,678,171,107,3,20,19,63,679,680,96,6,20,16,3,3,18,42,674,467,469,681,466,96,6,17,4,15,17,1,58,-339,682,-339,431,432,433,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,684,683,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,685,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,52,3,1,1,2,686,689,687,688,690,1,52,691,2,52,3,692,693,4,55,1,1,2,366,363,364,367,4,17,38,1,1,694,372,370,371,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,2,6,31,108,695,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,696,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,57,10,5,4,3,5,10,4,18,28,1,1,1,1,1,1,6,1,2,18,7,1,1,4,4,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,4,4,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,57,10,5,4,3,5,10,4,18,28,1,1,1,1,1,1,6,1,2,18,7,1,1,4,4,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,4,4,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,5,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,61,6,4,5,4,3,5,4,5,1,4,18,28,1,1,1,1,1,1,6,1,2,25,1,1,4,4,1,1,1,1,1,1,8,6,2,1,11,2,1,2,7,3,2,1,1,4,4,3,6,1,5,7,3,1,1,4,1,1,1,1,1,494,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,5,6,25,5,1,106,-258,-258,-258,-258,-258,2,36,107,698,697,115,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,1,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,1,1,3,1,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-408,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,-408,-408,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,-408,700,699,259,255,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,4,6,30,1,106,701,-259,-259,-259,61,6,4,5,4,3,5,4,5,1,4,18,28,1,1,1,1,1,1,6,1,2,25,1,1,4,4,1,1,1,1,1,1,8,6,2,1,11,2,1,2,7,3,2,1,1,4,4,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,6,6,24,1,5,1,109,-407,493,492,-407,-407,702,109,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,6,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,490,489,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,30,6,25,5,1,76,30,46,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-358,-358,-358,-358,-358,-358,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,25,120,69,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,703,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,704,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,57,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,6,3,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-225,-225,-225,-225,-225,-225,-225,-225,-225,143,-225,-225,-225,-225,-225,-225,-225,-225,-225,705,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,2,103,1,706,270,2,103,1,707,270,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,708,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,23,69,1,709,171,107,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,29,31,89,37,7,1,24,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,711,710,487,712,486,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,108,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,5,6,1,1,4,3,1,1,1,1,1,1,9,6,2,1,4,1,6,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,713,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,714,94,95,89,41,42,90,91,86,87,88,83,101,487,84,85,513,486,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,120,715,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,4,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,4,7,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,716,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,-326,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,-326,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,717,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,718,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,6,24,1,5,89,-407,719,720,-407,-407,7,20,82,1,1,20,38,1,519,96,520,270,721,517,518,5,6,25,5,1,88,-303,-303,-303,-303,-303,7,6,25,5,1,15,73,30,-307,-307,-307,-307,723,-307,722,7,6,25,5,1,15,73,30,-311,-311,-311,-311,-311,-311,-311,7,6,25,5,1,15,73,30,-312,-312,-312,-312,-312,-312,-312,5,6,24,1,5,89,-407,724,720,-407,-407,7,20,82,1,1,20,38,1,519,96,520,270,725,517,518,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,45,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,4,1,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,726,727,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,728,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,3,6,22,8,730,729,731,25,6,14,3,5,8,1,48,1,4,1,1,1,6,1,2,1,1,11,26,1,10,1,1,2,1,-408,302,103,-408,-408,-408,298,296,102,104,171,107,105,106,96,303,270,304,300,299,732,294,295,297,301,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,733,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,734,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,735,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,736,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,737,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,155,738,25,143,46,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,739,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,740,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,14,6,22,3,5,1,45,30,5,1,1,4,3,6,29,-281,-281,-281,-281,-281,-283,143,-283,-283,-283,-283,-283,741,-283,14,6,22,3,5,1,45,30,5,1,1,4,3,6,29,-282,-282,-282,-282,-282,746,143,743,744,745,748,749,742,747,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,4,112,5,2,13,143,263,264,750,2,112,20,143,751,5,6,22,2,1,5,-407,-407,752,529,-407,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,5,92,1,2,2,4,-141,-141,-141,-141,-141,2,6,92,108,753,106,4,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,754,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,92,1,2,2,4,-144,-144,-144,-144,-144,62,1,5,22,3,1,4,1,45,2,8,1,2,2,1,3,11,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,755,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,757,178,337,338,28,29,30,31,73,32,65,54,71,103,100,76,756,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,758,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,759,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,760,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,761,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,217,762,1,219,763,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,764,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,765,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,766,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,767,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,6,30,77,769,770,768,111,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,1,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,5,2,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-408,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,-408,-408,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,-408,92,93,94,95,89,41,42,90,91,86,87,88,83,771,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,6,24,1,5,1,-407,772,564,-407,-407,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-151,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,773,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-153,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,774,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,775,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,57,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,6,3,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-193,-193,-193,-193,-193,-193,137,138,-193,776,-193,-237,-237,-237,-193,-237,-237,-193,-237,140,-193,-193,-193,-193,142,-193,141,391,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-156,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,777,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,778,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,780,779,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,781,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,376,375,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,782,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,193,192,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,194,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,783,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,376,375,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,784,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-164,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,131,132,-179,127,128,129,-179,-179,130,-179,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,785,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,110,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,5,1,1,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,357,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,786,787,92,93,94,95,89,41,42,90,91,86,87,88,83,356,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,2,36,22,165,788,3,136,1,1,789,90,91,6,6,25,5,1,76,22,-343,-343,-343,-343,-343,-343,13,20,7,6,69,6,7,26,1,9,6,9,1,1,158,100,160,96,159,161,163,162,101,156,790,155,157,18,6,14,7,4,2,3,1,65,6,7,19,7,1,9,6,9,1,1,-341,158,100,-341,160,-341,-341,96,159,161,791,163,162,101,156,154,155,157,30,6,25,5,1,76,22,54,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-347,-347,-347,-347,-347,-347,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,7,6,25,5,1,15,61,22,-352,-352,-352,-352,-352,-352,-352,57,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,6,2,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,792,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-167,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-163,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-169,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,793,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,794,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,131,132,-172,127,128,129,-172,-172,130,-172,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,795,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,796,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,2,36,22,165,797,2,36,22,165,798,2,36,22,165,799,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,2,17,19,800,-462,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,131,132,-457,127,128,129,-457,-457,130,-457,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,28,36,22,131,1,1,5,3,1,13,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,801,131,132,803,127,128,129,130,802,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,27,36,22,131,1,1,5,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,804,131,132,805,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,27,36,22,131,1,1,5,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,806,131,132,807,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,27,36,22,131,1,1,5,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,808,131,132,809,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,810,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,811,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,812,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,4,215,2,2,2,-510,-510,-510,-510,4,37,159,14,1,813,814,630,424,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,2,36,22,165,815,3,37,159,15,-471,-471,-471,3,31,5,22,817,165,816,26,31,5,153,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-474,-474,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,818,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,819,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,45,1,5,22,3,5,1,21,40,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-17,-17,-17,-17,165,-17,820,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,3,17,19,22,822,165,821,3,17,19,22,824,165,823,5,6,24,1,5,77,-407,384,383,-407,825,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,2,36,22,165,826,3,17,19,22,828,165,827,3,17,19,22,830,165,829,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,45,1,5,22,3,5,1,21,40,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-366,-366,-366,-366,165,-366,831,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,-366,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-366,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,832,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,109,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,4,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,3,1,1,2,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,-377,445,446,26,27,28,29,30,31,73,32,65,54,71,103,100,76,-377,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,833,447,448,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,26,6,31,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-380,-380,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,3,6,19,12,-381,834,-381,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,45,1,5,22,3,1,4,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-19,-19,-19,-19,835,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,1,25,836,6,20,9,6,1,3,63,458,837,456,457,459,96,45,1,5,22,3,1,4,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-20,-20,-20,-20,838,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,3,23,69,1,839,171,107,3,6,22,8,841,840,842,8,6,14,8,7,1,1,2,63,-408,458,-408,843,-408,-408,459,96,5,6,24,1,5,1,-407,844,661,-407,-407,2,20,82,845,96,2,20,82,846,96,3,23,69,1,847,171,107,3,23,69,1,848,171,107,1,25,849,5,6,22,2,1,5,-407,-407,850,661,-407,1,25,-45,3,23,69,1,851,171,107,3,6,22,8,853,852,854,8,6,14,8,8,1,2,21,42,-408,674,-408,-408,-408,469,855,96,5,6,24,1,5,1,-407,856,672,-407,-407,6,6,22,3,5,1,1,-94,-94,-94,-94,-94,675,3,20,19,63,857,858,96,2,20,82,859,96,1,37,860,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,1,25,861,1,25,862,5,6,22,2,1,5,-407,-407,863,672,-407,3,17,19,22,864,165,636,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,131,132,-64,127,128,129,-64,-64,130,-64,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,865,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,866,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,868,867,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,869,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,871,870,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,872,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,874,873,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,875,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,877,876,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,878,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,880,879,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,165,72,22,21,10,11,13,14,881,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,882,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,884,883,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,885,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,887,886,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,888,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,55,1,1,582,580,581,1,187,889,25,143,46,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,890,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,5,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,113,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,2,1,2,1,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,257,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,496,891,256,259,255,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,6,25,5,1,106,-253,-253,-253,-253,-253,112,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,1,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,1,5,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,-260,-260,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,-260,490,489,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,111,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,2,3,1,1,2,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,258,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,496,892,259,255,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,2,36,1,698,893,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,894,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,25,120,69,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,895,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,896,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,4,4,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,4,7,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,897,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,-324,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,-324,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,28,37,120,7,1,24,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,898,487,712,486,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,1,37,899,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,26,37,83,69,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-325,-325,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,120,69,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,900,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,901,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,6,30,89,903,904,902,10,6,14,16,1,65,1,1,21,37,1,-408,519,-408,-408,96,520,270,-408,905,518,5,6,24,1,5,1,-407,906,720,-407,-407,5,20,82,1,1,59,519,96,520,270,907,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,908,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,6,30,89,903,904,909,5,6,24,1,5,1,-407,910,720,-407,-407,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,3,36,22,136,165,912,911,2,36,22,165,913,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,5,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,21,20,3,62,1,4,1,1,1,6,1,2,1,1,11,26,1,10,1,1,2,1,302,103,298,296,102,104,171,107,105,106,96,303,270,304,300,299,914,294,295,297,301,26,6,14,3,8,5,1,48,1,4,1,1,1,6,1,2,1,1,11,26,1,8,2,1,1,2,1,-267,302,103,-267,-267,-267,298,296,102,104,171,107,105,106,96,303,270,304,300,299,915,293,294,295,297,301,5,6,22,3,5,1,-269,-269,-269,-269,-269,29,6,22,3,5,1,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-274,-274,-274,-274,-274,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,916,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,29,6,22,3,5,1,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-276,-276,-276,-276,-276,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,29,6,22,3,5,1,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-277,-277,-277,-277,-277,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,917,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,918,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,919,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,6,6,22,3,5,1,118,-318,-318,-318,-318,-318,-318,25,143,46,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,920,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,2,103,1,921,270,2,103,1,922,270,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,923,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,924,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,14,6,22,3,5,1,45,30,5,1,1,4,3,6,29,-298,-298,-298,-298,-298,-298,143,-298,-298,-298,-298,-298,925,-298,8,20,16,66,1,1,20,38,1,519,927,96,520,270,926,517,518,8,20,16,66,1,1,20,38,1,519,929,96,520,270,928,517,518,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,3,6,22,8,730,930,731,5,92,1,2,2,4,-142,-142,-142,-142,-142,2,6,31,108,931,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-520,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,932,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,131,132,-443,127,-443,-443,-443,-443,130,-443,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-443,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,-493,933,-493,-493,-493,-493,-493,-493,934,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-493,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,935,-498,-498,-498,-498,-498,-498,-498,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-498,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,936,-502,-502,-502,-502,-502,-502,-502,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-502,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,937,-506,-506,-506,-506,-506,-506,-506,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-506,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,938,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,939,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-424,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-426,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-425,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-427,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,107,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,940,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,109,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,6,1,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,357,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,941,92,93,94,95,89,41,42,90,91,86,87,88,83,356,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,6,25,5,1,76,-401,-401,-401,-401,-401,3,6,30,1,769,770,942,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-154,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,943,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,110,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,5,1,1,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,9,2,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,358,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,357,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,944,945,92,93,94,95,89,41,42,90,91,86,87,88,83,356,101,261,84,85,260,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-157,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,946,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-159,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,947,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,948,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-194,-194,-194,-194,-194,-194,-398,-398,-194,-398,-194,-398,-398,-398,-194,-398,-398,-194,-398,-194,-194,-194,-194,-398,-194,-398,-398,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,5,6,24,1,5,77,-407,949,564,-407,-407,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,2,36,22,165,950,6,6,25,5,1,76,22,-344,-344,-344,-344,-344,-344,5,6,24,1,5,1,-407,951,383,-407,-407,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-170,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,952,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,131,132,-173,127,128,129,-173,-173,130,-173,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,953,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,1,36,-463,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,954,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,955,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,956,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,957,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,958,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,27,36,22,131,1,1,5,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,959,131,132,960,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,27,36,22,131,1,1,5,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,961,131,132,962,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,2,36,22,165,963,1,37,964,4,6,31,159,15,965,-472,-472,-472,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,966,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,2,36,22,165,967,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,2,36,22,165,968,2,17,19,-340,-340,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,2,36,22,165,969,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,2,36,22,165,970,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,2,6,31,-376,-376,2,102,80,972,971,3,27,6,118,100,973,101,3,23,69,1,974,171,107,5,6,22,2,1,5,-407,-407,975,661,-407,3,27,6,118,100,976,101,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,1,25,977,4,20,15,4,63,458,978,459,96,6,20,9,6,1,3,63,458,979,456,457,459,96,5,6,22,3,5,1,-36,-36,-36,-36,-36,3,6,30,1,841,842,980,5,6,22,3,5,1,-41,-41,-41,-41,-41,5,6,22,3,5,1,-43,-43,-43,-43,-43,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,3,23,69,1,981,171,107,3,6,22,8,841,982,842,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,45,1,5,19,3,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-47,-47,983,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,4,20,19,21,42,674,469,984,96,6,20,16,3,3,18,42,674,467,469,985,466,96,5,6,22,3,5,1,-90,-90,-90,-90,-90,3,6,30,1,853,854,986,5,6,22,3,5,1,-95,-95,-95,-95,-95,5,6,22,3,5,1,-96,-96,-96,-96,-96,5,6,22,3,5,1,-98,-98,-98,-98,-98,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,3,23,69,1,987,171,107,3,23,69,1,988,171,107,3,6,22,8,853,989,854,2,36,22,165,820,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,131,132,-65,127,128,129,-65,-65,130,-65,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,990,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,131,132,-67,127,128,129,-67,-67,130,-67,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,991,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,992,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,131,132,-77,127,128,129,-77,-77,130,-77,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,993,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,994,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,131,132,-80,127,128,129,-80,-80,130,-80,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,995,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,131,132,-83,127,128,129,-83,-83,130,-83,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,996,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,997,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,131,132,-86,127,128,129,-86,-86,130,-86,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,998,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,131,132,-70,127,128,129,-70,-70,130,-70,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,131,132,-71,127,128,129,-71,-71,130,-71,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,999,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1000,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,131,132,-74,127,128,129,-74,-74,130,-74,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1001,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1002,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,6,6,24,1,5,1,109,-407,493,492,-407,-407,1003,5,6,25,5,1,106,-254,-254,-254,-254,-254,5,6,25,5,1,106,-255,-255,-255,-255,-255,1,120,1004,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,25,120,69,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1005,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,37,83,69,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-323,-323,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,1,120,1006,1,120,1007,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1008,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,6,20,82,1,1,58,1,519,96,520,270,1009,518,7,20,82,1,1,20,38,1,519,96,520,270,1010,517,518,5,6,25,5,1,88,-304,-304,-304,-304,-304,3,6,30,1,903,904,1011,6,6,25,5,1,15,73,-308,-308,-308,-308,1012,-308,29,6,25,5,1,88,64,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-309,-309,-309,-309,-309,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,3,6,30,1,903,904,1013,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1014,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,5,6,22,3,5,1,-270,-270,-270,-270,-270,5,6,24,1,5,1,-407,1015,529,-407,-407,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1016,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1017,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,29,6,22,3,5,1,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-279,-279,-279,-279,-279,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1018,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,6,6,22,3,5,1,118,-319,-319,-319,-319,-319,-319,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,25,120,69,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1019,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1020,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,5,6,24,1,5,89,-407,1021,720,-407,-407,7,20,82,1,1,20,38,1,519,96,520,270,1022,517,518,5,6,24,1,5,89,-407,1023,720,-407,-407,7,20,82,1,1,20,38,1,519,96,520,270,1024,517,518,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,2,1,1,2,2,5,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,1,98,1025,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1026,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1027,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1028,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1029,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1030,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1031,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,1032,-500,-500,-500,-500,-500,-500,-500,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-500,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,1033,-504,-504,-504,-504,-504,-504,-504,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-504,5,6,25,5,1,76,-402,-402,-402,-402,-402,5,6,24,1,5,1,-407,1034,564,-407,-407,5,6,25,5,1,76,-403,-403,-403,-403,-403,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-195,-195,-195,-195,-195,-195,-398,-398,-195,-398,-195,-398,-398,-398,-195,-398,-398,-195,-398,-195,-195,-195,-195,-398,-195,-398,-398,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,5,6,24,1,5,77,-407,1035,564,-407,-407,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-160,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1036,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,3,6,30,77,769,770,1037,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,3,6,30,1,593,594,1038,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,27,36,22,131,1,1,5,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1039,131,132,1040,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,27,36,22,131,1,6,3,1,13,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1041,131,132,127,128,129,130,1042,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1043,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1044,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1045,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1046,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1047,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,37,1048,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,3,37,159,15,-473,-473,-473,26,31,5,153,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-475,-475,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,3,6,31,80,-382,-382,1049,3,6,31,80,-383,-383,-383,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,45,1,5,22,3,1,4,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-23,-23,-23,-23,1050,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,3,6,22,8,841,1051,842,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,3,23,69,1,1052,171,107,5,6,22,3,5,1,-37,-37,-37,-37,-37,5,6,24,1,5,1,-407,1053,661,-407,-407,5,6,22,3,5,1,-38,-38,-38,-38,-38,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,1,25,1054,3,23,69,1,1055,171,107,5,6,22,3,5,1,-91,-91,-91,-91,-91,5,6,24,1,5,1,-407,1056,672,-407,-407,5,6,22,3,5,1,-92,-92,-92,-92,-92,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,1,25,1057,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,131,132,-68,127,128,129,-68,-68,130,-68,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1058,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,131,132,-78,127,128,129,-78,-78,130,-78,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1059,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,131,132,-81,127,128,129,-81,-81,130,-81,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,131,132,-84,127,128,129,-84,-84,130,-84,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1060,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,131,132,-87,127,128,129,-87,-87,130,-87,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,131,132,-72,127,128,129,-72,-72,130,-72,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1061,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,131,132,-75,127,128,129,-75,-75,130,-75,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1062,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,2,36,1,698,1063,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,1,120,1064,5,6,25,5,1,88,-305,-305,-305,-305,-305,5,6,24,1,5,1,-407,1065,720,-407,-407,1,125,1066,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1067,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,125,1068,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1069,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,3,6,30,1,730,731,1070,5,6,22,3,5,1,-275,-275,-275,-275,-275,5,6,22,3,5,1,-278,-278,-278,-278,-278,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1071,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,25,37,152,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1072,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,3,6,30,89,903,904,1073,5,6,24,1,5,1,-407,1074,720,-407,-407,3,6,30,89,903,904,1075,5,6,24,1,5,1,-407,1076,720,-407,-407,5,92,1,2,2,4,-143,-143,-143,-143,-143,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,-494,1077,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-494,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,-495,1078,-495,-495,-495,-495,-495,-495,-495,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-495,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-499,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-503,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-507,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1079,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1080,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,6,30,1,769,770,1081,3,6,30,77,769,770,1082,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-196,-196,-196,-196,-196,-196,-399,-399,-196,-399,-196,-399,-399,-399,-196,-399,-399,-196,-399,-196,-196,-196,-196,-399,-196,-399,-399,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,6,6,25,5,1,76,22,-345,-345,-345,-345,-345,-345,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1083,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1084,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1085,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1086,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,2,103,1,1087,270,3,27,6,118,100,1088,101,1,25,1089,45,1,5,22,3,1,4,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-22,-22,-22,-22,1090,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,3,6,30,1,841,842,1091,3,23,69,1,1092,171,107,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,3,6,30,1,853,854,1093,3,23,69,1,1094,171,107,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,5,6,25,5,1,106,-256,-256,-256,-256,-256,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,3,6,30,1,903,904,1095,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,29,6,25,5,1,88,64,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,-310,-310,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,69,1,5,11,1,10,3,5,1,15,1,2,1,1,2,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,8,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,45,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,4,1,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,1096,727,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,5,6,22,3,5,1,-271,-271,-271,-271,-271,5,6,22,3,5,1,-280,-280,-280,-280,-280,1,120,1097,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,3,6,30,1,903,904,1098,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,3,6,30,1,903,904,1099,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1100,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,10,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,11,2,1,2,7,3,2,1,1,2,1,1,3,1,3,6,1,5,7,3,1,1,4,1,1,1,1,1,1101,178,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-501,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-505,5,6,25,5,1,76,-404,-404,-404,-404,-404,56,1,5,22,3,5,1,45,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,4,4,19,1,2,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-197,-197,-197,-197,-197,-197,-399,-399,-197,-399,-197,-399,-399,-399,-197,-399,-399,-197,-399,-197,-197,-197,-197,-399,-197,-399,-399,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1102,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,26,36,22,131,1,6,3,1,13,13,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,165,1103,131,132,127,128,129,130,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,126,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,3,6,31,80,-384,-384,-384,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,3,23,69,1,1104,171,107,3,27,6,118,100,1105,101,5,6,22,3,5,1,-39,-39,-39,-39,-39,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,5,6,22,3,5,1,-93,-93,-93,-93,-93,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,5,6,25,5,1,88,-306,-306,-306,-306,-306,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,1,125,1106,1,125,1107,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-496,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,109,110,111,114,113,112,115,116,117,118,119,120,121,122,123,124,125,-497,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,45,1,5,22,3,1,4,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-24,-24,-24,-24,1108,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,13,6,22,3,5,1,45,30,5,1,1,4,3,35,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,3,27,6,118,100,1109,101,44,1,5,22,3,5,1,61,15,7,5,10,8,12,2,8,22,2,1,1,5,3,1,4,1,8,3,10,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30],t=[],r=0,s,i,n,a;while(r","ArrowKind → =>","DoIife → DO_IIFE Code","This → THIS","This → @","ThisProperty → @ Property","ThisProperty → @ STRING","Array → [ ]","Array → [ Elisions ]","Array → [ ArgElisionList OptElisions ]","ArgElisionList → ArgElision","ArgElisionList → ArgElisionList , ArgElision","ArgElisionList → ArgElisionList OptComma TERMINATOR ArgElision","ArgElisionList → INDENT ArgElisionList OptElisions OUTDENT","ArgElisionList → ArgElisionList OptElisions INDENT ArgElisionList OptElisions OUTDENT","ArgElision → Arg","ArgElision → Elisions Arg","OptElisions → OptComma","OptElisions → , Elisions","Elisions → Elision","Elisions → Elisions Elision","Elision → ,","Elision → Elision TERMINATOR","Object → { AssignList OptComma }","Object → MAP_START { AssignList OptComma }","AssignList → ε","AssignList → AssignObj","AssignList → AssignList , AssignObj","AssignList → AssignList OptComma TERMINATOR AssignObj","AssignList → AssignList OptComma INDENT AssignList OptComma OUTDENT","AssignObj → ObjAssignable","AssignObj → ObjRestValue","AssignObj → ObjAssignable : Expression","AssignObj → ObjAssignable : INDENT Expression OUTDENT","AssignObj → Regex : Expression","AssignObj → SimpleObjAssignable = Expression","AssignObj → SimpleObjAssignable = INDENT Expression OUTDENT","AssignObj → SimpleObjAssignable VOID_MARKER : Expression","AssignObj → SimpleObjAssignable VOID_MARKER : INDENT Expression OUTDENT","ObjRestValue → ... SimpleObjAssignable","ObjRestValue → ... ObjSpreadExpr","ObjSpreadExpr → SimpleObjAssignable","ObjSpreadExpr → Object","ObjSpreadExpr → Parenthetical","ObjSpreadExpr → Super","ObjSpreadExpr → This","ObjSpreadExpr → SUPER Arguments","ObjSpreadExpr → DYNAMIC_IMPORT Arguments","ObjSpreadExpr → SimpleObjAssignable Arguments","ObjSpreadExpr → ObjSpreadExpr Arguments","ObjSpreadExpr → ObjSpreadExpr . Property","ObjSpreadExpr → ObjSpreadExpr ?. Property","ObjSpreadExpr → ObjSpreadExpr INDEX_START Expression INDEX_END","ObjSpreadExpr → ObjSpreadExpr INDEX_START INDENT Expression OUTDENT INDEX_END","ObjSpreadExpr → ObjSpreadExpr DAMMIT","ObjSpreadExpr → ObjSpreadExpr MAYBE_DAMMIT Arguments","ObjSpreadExpr → ObjSpreadExpr MAYBE_DAMMIT","ObjSpreadExpr → ObjSpreadExpr PICK_START PickList OptComma PICK_END","ObjSpreadExpr → ObjSpreadExpr OPTPICK_START PickList OptComma PICK_END","ObjSpreadExpr → ObjSpreadExpr PICK_START INDENT PickList OptComma OUTDENT PICK_END","ObjSpreadExpr → ObjSpreadExpr OPTPICK_START INDENT PickList OptComma OUTDENT PICK_END","PickList → PickItem","PickList → PickList , PickItem","PickList → PickList OptComma TERMINATOR PickItem","PickList → PickList OptComma INDENT PickList OptComma OUTDENT","PickItem → PickKey","PickItem → PickKey : PickKey","PickItem → PickKey = Expression","PickItem → PickKey : PickKey = Expression","PickKey → Identifier","PickKey → Property","SimpleObjAssignable → Identifier","SimpleObjAssignable → Property","SimpleObjAssignable → ThisProperty","ObjAssignable → SimpleObjAssignable","ObjAssignable → Atom","ObjAssignable → [ Expression ]","ObjAssignable → @ [ Expression ]","RangeDots → ..","RangeDots → ...","Range → [ Expression RangeDots Expression ]","Slice → Expression RangeDots Expression","Slice → Expression RangeDots","Slice → RangeDots Expression","Slice → RangeDots","Def → DEF Identifier OptParams Block","Def → DEF Identifier OptParams TYPE Block","Def → DEF Identifier TYPE_PARAMS OptParams Block","Def → DEF Identifier TYPE_PARAMS OptParams TYPE Block","Def → DEF Identifier VOID_MARKER OptParams Block","Def → DEF Identifier VOID_MARKER OptParams TYPE Block","Def → DEF ThisProperty OptParams Block","Def → DEF ThisProperty OptParams TYPE Block","Def → DEF ThisProperty TYPE_PARAMS OptParams Block","Def → DEF ThisProperty TYPE_PARAMS OptParams TYPE Block","Def → DEF ThisProperty VOID_MARKER OptParams Block","Def → DEF ThisProperty VOID_MARKER OptParams TYPE Block","OptParams → ε","OptParams → CALL_START ParamList CALL_END","ParamList → ε","ParamList → Param","ParamList → ParamList , Param","ParamList → ParamList OptComma TERMINATOR Param","ParamList → ParamList OptComma INDENT ParamList OptComma OUTDENT","Param → TypedParamVar","Param → TypedParamVar = Expression","Param → ... TypedParamVar","Param → ...","TypedParamVar → ParamVar","TypedParamVar → ParamVar TYPE","TypedParamVar → ParamVar OPT_MARKER TYPE","TypedParamVar → ParamVar OPT_MARKER","ParamVar → Identifier","ParamVar → Array","ParamVar → Object","ParamVar → ThisProperty","Splat → ... Expression","ClassName → Identifier","Class → CLASS","Class → CLASS Block","Class → CLASS EXTENDS Expression","Class → CLASS EXTENDS Expression Block","Class → CLASS ClassName","Class → CLASS ClassName Block","Class → CLASS ClassName EXTENDS Expression","Class → CLASS ClassName EXTENDS Expression Block","Class → CLASS ThisProperty Block","Class → CLASS ThisProperty EXTENDS Expression Block","Enum → ENUM Identifier Block","Schema → SCHEMA SCHEMA_BODY","Component → COMPONENT ComponentBlock","Component → COMPONENT EXTENDS Expression ComponentBlock","ComponentBlock → INDENT ComponentBody OUTDENT","ComponentBody → ComponentLine","ComponentBody → ComponentBody TERMINATOR ComponentLine","ComponentBody → ComponentBody TERMINATOR","ComponentLine → Expression","ComponentLine → Statement","ComponentLine → OFFER Expression","ComponentLine → ACCEPT IDENTIFIER","ComponentLine → ACCEPT IDENTIFIER FROM ProviderPath","ProviderPath → IDENTIFIER","ProviderPath → ProviderPath . Property","Render → RENDER Block","Render → RENDER Expression","Super → SUPER . Property","Super → SUPER INDEX_START Expression INDEX_END","Super → SUPER INDEX_START INDENT Expression OUTDENT INDEX_END","Invocation → Value Arguments","Invocation → SUPER Arguments","Invocation → Value ES6_OPTIONAL_CALL Arguments","Invocation → Value ? Arguments","Invocation → Value MAYBE_DAMMIT Arguments","Invocation → Value MAYBE_DAMMIT","Invocation → DYNAMIC_IMPORT Arguments","Invocation → DYNAMIC_IMPORT DAMMIT Arguments","Arguments → CALL_START CALL_END","Arguments → CALL_START ArgList OptComma CALL_END","ArgList → Arg","ArgList → ArgList , Arg","ArgList → ArgList OptComma TERMINATOR Arg","ArgList → INDENT ArgList OptComma OUTDENT","ArgList → ArgList OptComma INDENT ArgList OptComma OUTDENT","Arg → Expression","Arg → Splat","OptComma → ε","OptComma → ,","Block → INDENT OUTDENT","Block → INDENT Body OUTDENT","Parenthetical → ( Body )","Parenthetical → ( INDENT Body OUTDENT )","Return → RETURN Expression","Return → RETURN INDENT Object OUTDENT","Return → RETURN","While → WHILE Expression Block","While → UNTIL Expression Block","While → WHILE Expression WHEN Expression Block","While → UNTIL Expression WHEN Expression Block","While → Expression WHILE Expression","While → Statement WHILE Expression","While → Expression UNTIL Expression","While → Statement UNTIL Expression","While → Expression WHILE Expression WHEN Expression","While → Statement WHILE Expression WHEN Expression","While → Expression UNTIL Expression WHEN Expression","While → Statement UNTIL Expression WHEN Expression","While → Loop","IfBlock → IF Expression Block","IfBlock → IF Expression Block IfElseTail","IfElseTail → ELSE IF Expression Block","IfElseTail → ELSE IF Expression Block IfElseTail","IfElseTail → ELSE Block","UnlessBlock → UNLESS Expression Block","UnlessBlock → UNLESS Expression Block ELSE Block","If → IfBlock","If → UnlessBlock","If → Statement POST_IF Expression","If → Expression POST_IF Expression","If → Statement POST_UNLESS Expression","If → Expression POST_UNLESS Expression","If → Expression POST_IF Expression ELSE INDENT Expression OUTDENT","If → Expression POST_IF Expression ELSE Expression","Try → TRY Block","Try → TRY Expression","Try → TRY Expression Catch","Try → TRY Statement","Try → TRY Statement Catch","Try → TRY Block Catch","Try → TRY Block Finalizer","Try → TRY Block Catch Finalizer","Try → TRY Expression Finalizer","Try → TRY Expression Catch Finalizer","Try → TRY Statement Finalizer","Try → TRY Statement Catch Finalizer","Finalizer → FINALLY Block","Finalizer → FINALLY Expression","Catch → CATCH CatchVar Block","Catch → CATCH Object Block","Catch → CATCH Array Block","Catch → CATCH Block","CatchVar → Identifier","CatchVar → Identifier TYPE","Throw → THROW Expression","Throw → THROW INDENT Object OUTDENT","Switch → SWITCH Expression INDENT Cases OUTDENT","Switch → SWITCH Expression INDENT Cases ELSE Block OUTDENT","Switch → SWITCH INDENT Cases OUTDENT","Switch → SWITCH INDENT Cases ELSE Block OUTDENT","Cases → When","Cases → Cases When","When → LEADING_WHEN SimpleArgs Block","When → LEADING_WHEN SimpleArgs Block TERMINATOR","SimpleArgs → Expression","SimpleArgs → SimpleArgs , Expression","For → FOR ForVariables FORIN Expression Block","For → FOR ForVariables FORIN Expression BY Expression Block","For → FOR ForVariables FORIN Expression WHEN Expression Block","For → FOR ForVariables FORIN Expression WHEN Expression BY Expression Block","For → FOR ForVariables FORIN Expression BY Expression WHEN Expression Block","For → FOR ForVariables FOROF Expression Block","For → FOR ForVariables FOROF Expression WHEN Expression Block","For → FOR OWN ForVariables FOROF Expression Block","For → FOR OWN ForVariables FOROF Expression WHEN Expression Block","For → FOR ForVariables FORAS Expression Block","For → FOR ForVariables FORAS Expression WHEN Expression Block","For → FOR AWAIT ForVariables FORAS Expression Block","For → FOR AWAIT ForVariables FORAS Expression WHEN Expression Block","For → FOR ForVariables FORASAWAIT Expression Block","For → FOR ForVariables FORASAWAIT Expression WHEN Expression Block","For → FOR Range Block","For → FOR Range BY Expression Block","For → Expression FOR ForVariables FORIN Expression","For → Expression FOR ForVariables FORIN Expression WHEN Expression","For → Expression FOR ForVariables FORIN Expression BY Expression","For → Expression FOR ForVariables FORIN Expression WHEN Expression BY Expression","For → Expression FOR ForVariables FORIN Expression BY Expression WHEN Expression","For → Expression FOR ForVariables FOROF Expression","For → Expression FOR ForVariables FOROF Expression WHEN Expression","For → Expression FOR OWN ForVariables FOROF Expression","For → Expression FOR OWN ForVariables FOROF Expression WHEN Expression","For → Expression FOR ForVariables FORAS Expression","For → Expression FOR ForVariables FORAS Expression WHEN Expression","For → Expression FOR AWAIT ForVariables FORAS Expression","For → Expression FOR AWAIT ForVariables FORAS Expression WHEN Expression","For → Expression FOR ForVariables FORASAWAIT Expression","For → Expression FOR ForVariables FORASAWAIT Expression WHEN Expression","ForValue → ParamVar","ForVariables → ForValue","ForVariables → ForValue , ForValue","Loop → LOOP Block","Loop → LOOP Expression Block","Operation → -- SimpleAssignable","Operation → ++ SimpleAssignable","Operation → SimpleAssignable --","Operation → SimpleAssignable ++","Operation → Value ?","Operation → Expression CAST","Operation → Expression SATISFIES","Operation → Expression TERNARY Expression : Expression","Operation → UNARY Expression","Operation → DO Expression","Operation → UNARY_MATH Expression","Operation → AWAIT Expression","Operation → AWAIT INDENT Object OUTDENT","Operation → YIELD","Operation → YIELD Expression","Operation → YIELD INDENT Object OUTDENT","Operation → YIELD FROM Expression","Operation → - Expression","Operation → + Expression","Operation → Expression ** Expression","Operation → Expression + Expression","Operation → Expression - Expression","Operation → Expression MATH Expression","Operation → Expression SHIFT Expression","Operation → Expression & Expression","Operation → Expression ^ Expression","Operation → Expression | Expression","Operation → Expression COMPARE Expression","Operation → Expression MATCH Expression","Operation → Expression RELATION Expression","Operation → Expression && Expression","Operation → Expression || Expression","Operation → Expression ?? Expression","Operation → Expression && Return","Operation → Expression || Return","Operation → Expression ?? Return","Operation → Expression && STATEMENT","Operation → Expression || STATEMENT","Operation → Expression ?? STATEMENT","Operation → Expression THEN Expression","Operation → Expression ELSE Expression","Operation → Expression THEN Return","Operation → Expression ELSE Return","Operation → Expression THEN STATEMENT","Operation → Expression ELSE STATEMENT"],ruleActions:(e,t,r,s)=>{let i=t,n=t.length-1;switch(e){case 1:return["program"];case 2:return["program",...i[n]];case 3:case 35:case 89:case 140:case 257:case 261:case 268:case 303:case 342:case 375:case 400:case 470:case 474:case 509:return[i[n]];case 4:case 36:case 90:case 269:case 304:case 343:case 376:case 401:{let a=i[n-2];return a.push(i[n]),a}break;case 5:case 142:case 180:case 264:case 340:case 377:return i[n-1];case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 40:case 42:case 44:case 94:case 97:case 99:case 100:case 101:case 102:case 103:case 104:case 105:case 106:case 107:case 108:case 109:case 110:case 111:case 112:case 113:case 114:case 115:case 116:case 117:case 118:case 119:case 120:case 121:case 122:case 123:case 124:case 125:case 126:case 128:case 130:case 131:case 134:case 135:case 136:case 138:case 145:case 146:case 148:case 149:case 175:case 176:case 177:case 178:case 179:case 181:case 182:case 183:case 205:case 206:case 228:case 229:case 230:case 231:case 232:case 237:case 238:case 242:case 243:case 252:case 273:case 283:case 284:case 285:case 286:case 287:case 311:case 312:case 313:case 314:case 315:case 316:case 317:case 346:case 350:case 354:case 355:case 356:case 357:case 359:case 378:case 379:case 383:case 405:case 406:case 407:case 408:case 428:case 433:case 436:case 437:case 456:case 462:case 508:return i[n];case 14:return["type-decl",i[n]];case 15:case 351:case 463:return["typed-var",i[n-1],i[n]];case 16:case 352:return["typed-var",i[n-2],i[n]];case 17:return["def-sig",i[n-2],i[n-1],i[n]];case 18:return["import",i[n]];case 19:case 20:case 31:case 32:return["import",i[n-2],i[n]];case 21:case 33:return["import","{}",i[n]];case 22:case 34:return["import",i[n-4],i[n]];case 23:return["import",i[n-4],i[n-2],i[n]];case 24:return["import",i[n-7],i[n-4],i[n]];case 25:return["import",[i[n-1],i[n]],i[n-2]];case 26:case 27:return["import",i[n-4],[i[n-1],i[n]],i[n-2]];case 28:return["import",i[n-6],[i[n-1],i[n]],i[n-2]];case 29:return["import",i[n-6],i[n-4],[i[n-1],i[n]],i[n-2]];case 30:return["import",i[n-9],i[n-6],[i[n-1],i[n]],i[n-2]];case 37:case 91:case 270:case 305:case 344:case 402:{let a=i[n-3];return a.push(i[n]),a}break;case 38:case 92:case 143:case 399:case 403:return i[n-2];case 39:case 93:case 271:case 306:case 345:case 404:{let a=i[n-5];return a.push(...i[n-2]),a}break;case 41:case 43:case 95:case 96:case 98:case 510:return[i[n-2],i[n]];case 45:return["*",i[n]];case 46:return["export","{}"];case 47:return["export",i[n-2]];case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:return["export",i[n]];case 56:return["export-default",i[n]];case 57:return["export-default",i[n-1]];case 58:return["export-all",i[n]];case 59:case 60:return["export-all",i[n],i[n-2]];case 61:return["export-from","{}",i[n]];case 62:case 63:return["export-from",i[n-4],i[n]];case 64:case 150:case 162:case 277:return["=",i[n-2],i[n]];case 65:case 67:case 70:case 151:case 153:case 156:case 163:case 164:return["=",i[n-3],i[n]];case 66:case 152:case 278:return["=",i[n-4],i[n-1]];case 68:case 154:case 157:case 159:return["=",i[n-4],i[n]];case 69:case 155:case 158:return["=",i[n-5],i[n-1]];case 71:case 169:return["void-assign",i[n-3],i[n]];case 72:case 170:return["void-assign",i[n-4],i[n]];case 73:case 171:return["void-assign",i[n-5],i[n-1]];case 74:case 172:return["void-readonly",i[n-3],i[n]];case 75:case 173:return["void-readonly",i[n-4],i[n]];case 76:case 174:return["void-readonly",i[n-5],i[n-1]];case 77:case 185:case 186:return["state",i[n-3],i[n]];case 78:case 187:return["state",i[n-4],i[n]];case 79:return["state",i[n-5],i[n-1]];case 80:case 82:case 189:case 190:return["computed",i[n-3],i[n]];case 81:case 191:return["computed",i[n-4],i[n]];case 83:case 199:case 200:return["readonly",i[n-3],i[n]];case 84:case 201:return["readonly",i[n-4],i[n]];case 85:return["readonly",i[n-5],i[n-1]];case 86:case 88:case 203:return["effect",i[n-3],i[n]];case 87:return["effect",i[n-4],i[n]];case 127:case 296:return["dammit!",i[n-1]];case 129:case 236:return["tagged-template",i[n-2],i[n]];case 132:return"undefined";case 133:return"null";case 137:return["symbol",i[n]];case 139:return["str",...i[n-1]];case 141:case 262:case 471:{let a=i[n-1];return a.push(i[n]),a}break;case 144:return"";case 147:return["here-regex",i[n],...i[n-1]];case 160:return["=",i[n-5],i[n]];case 161:return["=",i[n-6],i[n-1]];case 165:case 323:case 535:case 536:case 540:case 542:return[i[n-1],i[n-2],i[n]];case 166:return[i[n-3],i[n-4],i[n-1]];case 167:return[i[n-2],i[n-3],i[n]];case 168:return[".=",i[n-2],i[n]];case 184:return["state",i[n-2],i[n]];case 188:return["computed",i[n-2],i[n]];case 192:return["gate",i[n-2],i[n]];case 193:return["gate",i[n-3],i[n]];case 194:return["gate",i[n-4],i[n-2]];case 195:return["gate",i[n-5],i[n-2]];case 196:return["gate",i[n-6],i[n-4],...i[n-2]];case 197:return["gate",i[n-7],i[n-4],...i[n-2]];case 198:return["readonly",i[n-2],i[n]];case 202:return["effect",i[n-2],i[n]];case 204:return["effect",null,i[n]];case 207:case 220:case 221:case 233:case 292:case 384:return[".",i[n-2],i[n]];case 208:case 234:case 293:return["?.",i[n-2],i[n]];case 209:case 212:case 235:case 294:return["[]",i[n-3],i[n-1]];case 210:case 213:case 295:return["[]",i[n-5],i[n-2]];case 211:return["regex-index",i[n-5],i[n-3],i[n-1]];case 214:return["optindex",i[n-4],i[n-1]];case 215:return["optindex",i[n-6],i[n-2]];case 216:case 299:return[".{}",i[n-4],...i[n-2]];case 217:case 300:return["?.{}",i[n-4],...i[n-2]];case 218:case 301:return[".{}",i[n-6],...i[n-3]];case 219:case 302:return["?.{}",i[n-6],...i[n-3]];case 222:case 223:case 224:case 458:case 459:case 460:case 521:case 523:return[i[n-1],i[n]];case 225:return["await",["new",i[n-1]]];case 226:return["await",["new",[i[n-2],...i[n]]]];case 227:case 289:case 290:case 291:case 390:case 396:return[i[n-1],...i[n]];case 239:return[i[n-1],i[n-3],i[n]];case 240:return[i[n-1],i[n-4],i[n]];case 241:return[i[n-1],[],i[n]];case 244:case 522:return["do-iife",i[n]];case 245:case 246:return"this";case 247:case 248:return[".","this",i[n]];case 249:return["array"];case 250:return["array",...i[n-1]];case 251:return["array",...i[n-2],...i[n-1]];case 253:{let a=i[n-2];return a.push(...i[n]),a}break;case 254:{let a=i[n-3];return a.push(...i[n]),a}break;case 255:return[...i[n-2],...i[n-1]];case 256:{let a=i[n-5];return a.push(...i[n-4],...i[n-2],...i[n-1]),a}break;case 258:return[...i[n-1],i[n]];case 259:case 267:case 339:case 341:case 398:return[];case 260:return[...i[n]];case 263:return null;case 265:return["object",...i[n-2]];case 266:return["map",...i[n-2]];case 272:return[null,i[n],i[n]];case 274:case 276:return[":",i[n-2],i[n]];case 275:return[":",i[n-4],i[n-1]];case 279:return["void-pair",i[n-3],i[n]];case 280:return["void-pair",i[n-5],i[n-1]];case 281:case 282:case 358:return["...",i[n]];case 288:case 391:return["super",...i[n]];case 297:case 394:return["dammit?",i[n-2],...i[n]];case 298:case 395:return["dammit?",i[n-1]];case 307:return[i[n],i[n],null];case 308:return[i[n-2],i[n],null];case 309:return[i[n-2],i[n-2],i[n]];case 310:return[i[n-4],i[n-2],i[n]];case 318:return["dynamicKey",i[n-1]];case 319:return["[]","this",i[n-1]];case 320:return"..";case 321:return"...";case 322:return[i[n-2],i[n-3],i[n-1]];case 324:return[i[n],i[n-1],null];case 325:return[i[n-1],null,i[n]];case 326:return[i[n],null,null];case 327:case 333:return["def",i[n-2],i[n-1],i[n]];case 328:case 334:return["def",i[n-3],i[n-2],i[n]];case 329:case 335:return["def",i[n-3],i[n-1],i[n]];case 330:case 336:return["def",i[n-4],i[n-2],i[n]];case 331:case 337:return["void-def",i[n-3],i[n-1],i[n]];case 332:case 338:return["void-def",i[n-4],i[n-2],i[n]];case 347:return["default",i[n-2],i[n]];case 348:return["rest",i[n]];case 349:return["expansion"];case 353:return["typed-var",i[n-1],""];case 360:return["class",null,null];case 361:return["class",null,null,i[n]];case 362:return["class",null,i[n]];case 363:return["class",null,i[n-1],i[n]];case 364:return["class",i[n],null];case 365:case 368:return["class",i[n-1],null,i[n]];case 366:return["class",i[n-2],i[n]];case 367:case 369:return["class",i[n-3],i[n-1],i[n]];case 370:return["enum",i[n-1],i[n]];case 371:return["schema",i[n]];case 372:return["component",null,i[n]];case 373:return["component",i[n-1],i[n]];case 374:case 410:return["block",...i[n-1]];case 380:return["offer",i[n]];case 381:return["accept",i[n]];case 382:return["accept",i[n-2],i[n]];case 385:case 386:return["render",i[n]];case 387:return[".","super",i[n]];case 388:return["[]","super",i[n-1]];case 389:return["[]","super",i[n-2]];case 392:case 393:return["optcall",i[n-2],...i[n]];case 397:return["await",["import",...i[n]]];case 409:return["block"];case 411:return i[n-1].length===1?(Array.isArray(i[n-1][0])&&(i[n-1][0].parenthesized=!0),i[n-1][0]):["block",...i[n-1]];case 412:return i[n-2].length===1?(Array.isArray(i[n-2][0])&&(i[n-2][0].parenthesized=!0),i[n-2][0]):["block",...i[n-2]];case 413:return["return",i[n]];case 414:return["return",i[n-1]];case 415:return["return"];case 416:return["while",i[n-1],i[n]];case 417:return["while",["!",i[n-1]],i[n]];case 418:return["while",i[n-3],i[n-1],i[n]];case 419:return["while",["!",i[n-3]],i[n-1],i[n]];case 420:case 421:return["while",i[n],[i[n-2]]];case 422:case 423:return["while",["!",i[n]],[i[n-2]]];case 424:case 425:return["while",i[n-2],i[n],[i[n-4]]];case 426:case 427:return["while",["!",i[n-2]],i[n],[i[n-4]]];case 429:case 431:return["if",i[n-1],i[n]];case 430:case 432:return["if",i[n-2],i[n-1],i[n]];case 434:return["if",["!",i[n-1]],i[n]];case 435:return["if",["!",i[n-3]],i[n-2],i[n]];case 438:case 439:return["if",i[n],[i[n-2]]];case 440:case 441:return["if",["!",i[n]],[i[n-2]]];case 442:return["?:",i[n-4],i[n-6],i[n-1]];case 443:return["?:",i[n-2],i[n-4],i[n]];case 444:case 445:case 447:return["try",i[n]];case 446:case 448:case 449:case 450:case 452:case 454:return["try",i[n-1],i[n]];case 451:case 453:case 455:return["try",i[n-2],i[n-1],i[n]];case 457:return["block",i[n]];case 461:return[null,i[n]];case 464:return["throw",i[n]];case 465:return["throw",i[n-1]];case 466:return["switch",i[n-3],i[n-1],null];case 467:return["switch",i[n-5],i[n-3],i[n-1]];case 468:return["switch",null,i[n-1],null];case 469:return["switch",null,i[n-3],i[n-1]];case 472:return["when",i[n-1],i[n]];case 473:return["when",i[n-2],i[n-1]];case 475:return[...i[n-2],i[n]];case 476:return["for-in",i[n-3],i[n-1],null,null,i[n]];case 477:return["for-in",i[n-5],i[n-3],i[n-1],null,i[n]];case 478:return["for-in",i[n-5],i[n-3],null,i[n-1],i[n]];case 479:return["for-in",i[n-7],i[n-5],i[n-1],i[n-3],i[n]];case 480:return["for-in",i[n-7],i[n-5],i[n-3],i[n-1],i[n]];case 481:return["for-of",i[n-3],i[n-1],!1,null,i[n]];case 482:return["for-of",i[n-5],i[n-3],!1,i[n-1],i[n]];case 483:return["for-of",i[n-3],i[n-1],!0,null,i[n]];case 484:return["for-of",i[n-5],i[n-3],!0,i[n-1],i[n]];case 485:return["for-as",i[n-3],i[n-1],!1,null,i[n]];case 486:return["for-as",i[n-5],i[n-3],!1,i[n-1],i[n]];case 487:case 489:return["for-as",i[n-3],i[n-1],!0,null,i[n]];case 488:case 490:return["for-as",i[n-5],i[n-3],!0,i[n-1],i[n]];case 491:return["for-in",[],i[n-1],null,null,i[n]];case 492:return["for-in",[],i[n-3],i[n-1],null,i[n]];case 493:return["comprehension",i[n-4],[["for-in",i[n-2],i[n],null]],[]];case 494:return["comprehension",i[n-6],[["for-in",i[n-4],i[n-2],null]],[i[n]]];case 495:return["comprehension",i[n-6],[["for-in",i[n-4],i[n-2],i[n]]],[]];case 496:return["comprehension",i[n-8],[["for-in",i[n-6],i[n-4],i[n]]],[i[n-2]]];case 497:return["comprehension",i[n-8],[["for-in",i[n-6],i[n-4],i[n-2]]],[i[n]]];case 498:return["comprehension",i[n-4],[["for-of",i[n-2],i[n],!1]],[]];case 499:return["comprehension",i[n-6],[["for-of",i[n-4],i[n-2],!1]],[i[n]]];case 500:return["comprehension",i[n-5],[["for-of",i[n-2],i[n],!0]],[]];case 501:return["comprehension",i[n-7],[["for-of",i[n-4],i[n-2],!0]],[i[n]]];case 502:return["comprehension",i[n-4],[["for-as",i[n-2],i[n],!1,null]],[]];case 503:return["comprehension",i[n-6],[["for-as",i[n-4],i[n-2],!1,null]],[i[n]]];case 504:return["comprehension",i[n-5],[["for-as",i[n-2],i[n],!0,null]],[]];case 505:return["comprehension",i[n-7],[["for-as",i[n-4],i[n-2],!0,null]],[i[n]]];case 506:return["comprehension",i[n-4],[["for-as",i[n-2],i[n],!0,null]],[]];case 507:return["comprehension",i[n-6],[["for-as",i[n-4],i[n-2],!0,null]],[i[n]]];case 511:return["loop",i[n]];case 512:return["loop-n",i[n-1],i[n]];case 513:return["--",i[n],!1];case 514:return["++",i[n],!1];case 515:return["--",i[n-1],!0];case 516:return["++",i[n-1],!0];case 517:return["?",i[n-1]];case 518:return["cast",i[n-1],i[n]];case 519:return["satisfies",i[n-1],i[n]];case 520:return["?:",i[n-4],i[n-2],i[n]];case 524:return["await",i[n]];case 525:return["await",i[n-1]];case 526:return["yield"];case 527:return["yield",i[n]];case 528:return["yield",i[n-1]];case 529:return["yield-from",i[n]];case 530:return["-",i[n]];case 531:return["+",i[n]];case 532:return["**",i[n-2],i[n]];case 533:return["+",i[n-2],i[n]];case 534:return["-",i[n-2],i[n]];case 537:return["&",i[n-2],i[n]];case 538:return["^",i[n-2],i[n]];case 539:return["|",i[n-2],i[n]];case 541:return["=~",i[n-2],i[n]];case 543:case 546:case 549:case 552:case 554:case 556:return["&&",i[n-2],i[n]];case 544:case 547:case 550:case 553:case 555:case 557:return["||",i[n-2],i[n]];case 545:case 548:case 551:return["??",i[n-2],i[n]]}},parse(e,{primitives:t=!1,tolerant:r=!1}={}){let s,i,n,a,o,l,c,h,f,u,d,p,m,g,b,S,w,R,T,j,M,x,A,C,O,W,[G,Y,k,v]=[[0],[null],[null],[[]]],U=this.parseTable,Z=1,P=[],X=[],F=24,e1=e.length;if(r)while(e1>0&&(e[e1-1]===` +`||e[e1-1]==="\r"))e1--;let Q=new Set,a1=!1,d1=[],I=[],l1=[],L=new WeakMap,t1=1,N=Object.create(this.lexer),V={ctx:{}},B=this.ctx;for(let c1 in B){if(!Object.hasOwn(B,c1))continue;let K=B[c1];V.ctx[c1]=K}if(N.setInput(e,V.ctx),r&&Array.isArray(N.lexDiagnostics))P.push(...N.lexDiagnostics);[V.ctx.lexer,V.ctx.parser]=[N,this];let r1=()=>{let c1=N.lex()||Z;if(typeof c1!=="number")c1=this.symbolIds[c1]||c1;return c1},o1=null,f1=null,h1={},p1=()=>{h=[];let c1=U[W];for(let K in c1){if(!Object.hasOwn(c1,K))continue;if(this.tokenNames[K]&&+K>2){if(!h.includes(this.tokenNames[K]))h.push(this.tokenNames[K])}}return h},n1=[this.symbolIds.INDENT,this.symbolIds.OUTDENT,this.symbolIds.TERMINATOR],u1=()=>{if(o1===Z)return"end of input";let c1=this.tokenNames[o1]||o1,K=N.text,_=typeof K==="string"&&K.trim().length>0&&K.length<=24&&!n1.includes(o1)&&!/^["'`]/.test(K);if(_&&N.token?.generated)return`implicit '${K}'`;return _?`'${K}'`:`'${c1}'`};while(!0){if(W=G[G.length-1],o1==null)if(X.length>0)R=X.shift(),o1=R.symbol,f1=R.loc,N.text=R.text,N.loc=R.loc,N.token=R.token;else o1=r1(),f1=o1===Z?{start:e.length,end:e.length}:N.loc??null;if(s=U[W]?.[o1],s==null&&r&&F>0){a=o1===Z?e1:f1?.start??e1,j=(c1=null)=>{if(a1)return;if(a1=!0,u=u1(),h=c1!=null?[this.tokenNames[c1]||c1]:p1(),b=`Unexpected ${u}`,h.length)b+=` — expected ${h.join(", ")}`;return P.push({message:b,start:a,end:f1?.end??a,expected:h,got:u})},i=o1===Z||N.token?.generated,d=function(c1){return`${G.length}:${W}:${c1}`},p=null;for(let c1 of this.repairTable[W]??[]){if(Q.has(d(c1)))continue;if(i||c1===this.symbolIds.TERMINATOR){p=c1;break}}if(p!=null)j(p),F--,Q.add(d(p)),X.unshift({symbol:o1,loc:f1,text:N.text,token:N.token}),o1=p,f1={start:a,end:a},N.text="",N.loc=f1,N.token={generated:!0,hole:!0},s=U[W]?.[o1];else if(o1!==Z){if(j(),F--,!N.token?.hole)Q.clear();o1=null;continue}}if(s==null){if(h=p1(),u=u1(),O=f1?.start??0,c=f1?.end??O,b=`Unexpected ${u}`,h.length)b+=` — expected ${h.join(", ")}`;return P.push({message:b,start:O,end:c,expected:h,got:u}),{sexpr:null,stores:null,diagnostics:P,trivia:N.trivia??null,tokens:N.tokens??null}}if(s>0){if(r&&!N.token?.hole)Q.clear();if(G.push(o1,s),Y.push(N.text),k.push(N.loc??null),t)v.push(Array.isArray(N.text?.primitiveSpans)?N.text.primitiveSpans:N.loc!=null?[{value:N.text,sourceStart:N.loc.start,sourceEnd:N.loc.end}]:[]);o1=null}else if(s<0){if(this.ctx?.onReduce)this.ctx.onReduce(-s);if(g=this.ruleTable[-s*2+1],C=(()=>{if(g)return f=k[k.length-g],m=k[k.length-1],{start:f?.start??0,end:m?.end??(f?.end??0)};else return n=f1?.start??(k[k.length-1]?.end??0),{start:n,end:n}})(),h1.$=Y[Y.length-(g||1)],h1._$=C,T=this.ruleActions.call(h1,-s,Y,k,V.ctx),T!=null)h1.$=T;if(o=Y.length-g,l=[],t)for(let c1 of this.primitiveRefs[-s])l.push(...v[o+c1-1]??[]);if(S=h1.$,Array.isArray(S)&&L.has(S)&&this.accumulators[-s])x=d1[L.get(S)-1],x.sourceStart=C.start,x.sourceEnd=C.end;if(Array.isArray(S)&&!L.has(S))A=this.semantics[-s],o=Y.length-g,M=(c1,K,_,H,q)=>{let i1,D,z,s1,R1,y1,S1=[],_1=1/0,v1=-1/0;for(let g1 of H){i1=c1;for(let m1 of g1.path)i1=i1[m1];if(!(Array.isArray(i1)&&!L.has(i1)))throw Error(`parse: nested annotation '${g1.role}' of rule ${-s} does not address a fresh array`);D=M(i1,g1.kind,g1.roles,g1.nested,null),S1.push(D),_1=Math.min(_1,d1[D-1].sourceStart),v1=Math.max(v1,d1[D-1].sourceEnd)}for(let g1 of _)if(g1.grammarRef!=null){if(R1=k[o+g1.grammarRef-1],R1==null)throw Error(`parse: missing loc for grammarRef ${g1.grammarRef} of rule ${-s} — lexer protocol violation`);_1=Math.min(_1,R1.start),v1=Math.max(v1,R1.end)}let E1=q??(_1===1/0?C:{start:_1,end:v1}),w1=t1++;L.set(c1,w1),d1.push({nodeId:w1,fileId:0,semanticKind:K,ruleId:-s,sourceStart:E1.start,sourceEnd:E1.end});for(let g1 of _)if(g1.grammarRef!=null){if(s1=o+g1.grammarRef-1,R1=k[s1],y1={nodeId:w1,role:g1.name,grammarRef:g1.grammarRef,childSlot:g1.childSlot,sourceStart:R1.start,sourceEnd:R1.end,childNodeId:null,fileId:0},g1.spread)y1.spread=!0;else y1.childNodeId=L.get(Y[s1])??null;I.push(y1)}else I.push({nodeId:w1,role:g1.name,grammarRef:null,childSlot:g1.childSlot,literal:g1.literal,fileId:0});for(let g1=0;g1{let t=Object.create(p3);return Object.defineProperty(t,"ctx",{value:{...e},enumerable:!1,writable:!0,configurable:!0}),t},In=$n();var sr=$n,V4=In.parse.bind(In);var Dn=()=>{throw Error("rip: filesystem access is unavailable in the browser")};class ar{constructor({nodes:e,roles:t,primitives:r=[],nodeIds:s=null}){this.nodes=e,this.roles=t,this.primitives=r,this.nodeIds=s,this.byId=new Map(e.map((i)=>[i.nodeId,i])),this.rolesByNode=new Map,this.primitivesByValue=new Map;for(let i of t){let n=this.rolesByNode.get(i.nodeId);if(!n)n={list:[],byName:new Map},this.rolesByNode.set(i.nodeId,n);n.list.push(i),n.byName.set(i.role,i)}for(let i of r){let n=this.primitivesByValue.get(i.value);if(!n)this.primitivesByValue.set(i.value,n=[]);n.push(i)}for(let i of this.primitivesByValue.values())i.sort((n,a)=>n.sourceStart-a.sourceStart)}idOf(e){return this.nodeIds?.get(e)??null}alias(e,t){let r=this.nodeIds?.get(t);if(r!=null)this.nodeIds.set(e,r);return e}node(e){return this.byId.get(e)??null}nodesByKind(e){return this.nodes.filter((t)=>t.semanticKind===e)}rolesOf(e){return this.rolesByNode.get(e)?.list??[]}role(e,t){return this.rolesByNode.get(e)?.byName.get(t)??null}primitiveSpans(e,t,r){return(this.primitivesByValue.get(e)??[]).filter((s)=>t<=s.sourceStart&&s.sourceEnd<=r)}selfSpan(e){let t=this.byId.get(e);return t?[t.sourceStart,t.sourceEnd]:null}}var nr=(e)=>{if(e.length===0)return null;let t=e[e.length>>1].start,r=[],s=[],i=[];for(let n of e){if(J.on)J.n++;if(n.end<=t)s.push(n);else if(n.start>t)i.push(n);else r.push(n)}return{center:t,byStart:r,byEnd:[...r].sort((n,a)=>a.end-n.end),left:nr(s),right:nr(i)}},g3=(e,t,r)=>{let s=e;while(s!==null){if(J.on)J.n++;if(tt)break;r.push(i)}s=s.left}else if(t>s.center){for(let i of s.byEnd){if(J.on)J.n++;if(i.end<=t)break;r.push(i)}s=s.right}else{for(let i of s.byStart){if(J.on)J.n++;r.push(i)}break}}return r},wi=new Set(["tsDirective","shorthandProp","identifier","literal"]);class Se{constructor(e){this.rows=e,this._genTree=null,this._srcTree=null,this._genCount=-1,this._srcCount=-1}_tree(e){let t=e==="generated";if((t?this._genCount:this._srcCount)!==this.rows.length){let r=[];if(this.rows.forEach((s,i)=>{if(J.on)J.n++;let n=t?s.generatedStart:s.sourceStart,a=t?s.generatedEnd:s.sourceEnd;if(n!=null&&ns.start-i.start||s.i-i.i),t)this._genTree=nr(r),this._genCount=this.rows.length;else this._srcTree=nr(r),this._srcCount=this.rows.length}return t?this._genTree:this._srcTree}_stab(e,t){let r=g3(this._tree(e),t,[]);return r.sort((s,i)=>s.width-i.width||s.i-i.i),r.map((s)=>this.rows[s.i])}of(e,t){return this.rows.filter((r)=>r.nodeId===e&&r.role===t).sort((r,s)=>r.generatedStart-s.generatedStart)}atGenerated(e){return this._stab("generated",e)}atSource(e){return this._stab("source",e)}static isDirect(e){return e.mappingKind==="exact"||e.mappingKind==="synthetic"}directAtGenerated(e){return this.atGenerated(e).find(Se.isDirect)??null}directAtSource(e){let t=this.atSource(e).filter(Se.isDirect);if(t.length===0)return null;let r=(i)=>i.sourceEnd-i.sourceStart;return t.filter((i)=>r(i)===r(t[0])).find((i)=>!wi.has(i.role))??t[0]}zeroWidthExactAtSource(e){if(this._zeroSrcCount!==this.rows.length){this._zeroSrc=new Map;for(let t of this.rows){if(t.mappingKind!=="exact"||t.sourceStart!==t.sourceEnd)continue;let r=this._zeroSrc.get(t.sourceStart);if(r===void 0||t.generatedStartn.mappingKind==="exact"||n.mappingKind==="cover"&&n.role==="$self"&&n.generatedStart!==n.generatedEnd,t=(n)=>n.mappingKind==="exact"?0:1,r=(n)=>n.generatedEnd-n.generatedStart,s=(n)=>n.sourceEnd-n.sourceStart,i=new Map;for(let n of this.rows){if(!e(n))continue;let a=i.get(n.generatedStart);if(!a||t(n)n.generatedStart-a.generatedStart)}}class Re{constructor(e,{source:t=null,primitives:r=!1}={}){this.stores=e,this.source=t,this.trackPrimitives=r,this.suppressClaims=!1,this.claimWithin=null,this.chunks=[],this.length=0,this.openMarks=0,this.rows=[],this.exactSourceSpans=new Set,this.markStack=[],this.exactRanges=new Map,this.tsRegions=[],this.tsDepth=0,this.echoSpans=[]}tsOnly(e){let t=this.length;if(this.tsDepth++,e(),this.tsDepth--,this.tsDepth===0&&this.length>t)this.tsRegions.push([t,this.length])}echo(e){let t=this.length;if(e(),this.length>t)this.echoSpans.push([t,this.length])}get currentMark(){return this.markStack[this.markStack.length-1]??null}get offset(){return this.length}get code(){if(this.openMarks>0)return this.chunks.join("");if(this.chunks.length!==1)this.chunks=[this.chunks.join("")],this.exactRanges.clear();return this.chunks[0]}emit(e){return this.chunks.push(e),this.length+=e.length,this}beginMark(e,t){let r,s,i=null;if(t==="$self"){let n=this.stores.node(e);r=n.sourceStart,s=n.sourceEnd}else{let n=this.stores.role(e,t);if("literal"in n)i="synthetic",r=s=this.stores.node(e).sourceStart;else r=n.sourceStart,s=n.sourceEnd}this.openMarks++,this.markStack.push({nodeId:e,role:t,sourceStart:r,sourceEnd:s,mappingKind:i,generatedStart:this.length,chunkStart:this.chunks.length})}endMark(){let e=this.markStack.pop();this.openMarks--;let{mappingKind:t}=e;if(t===null){if(t=this.matchesSource(e)?"exact":"cover",t==="cover"&&Re.NORMALIZED_ROLES.has(e.role))this.layoutTwinSegments(e)}if(this.rows.push({nodeId:e.nodeId,role:e.role,mappingKind:t,sourceStart:e.sourceStart,sourceEnd:e.sourceEnd,generatedStart:e.generatedStart,generatedEnd:this.length,fileId:0}),this.trackPrimitives&&t==="exact")this.exactSourceSpans.add(`${e.sourceStart}:${e.sourceEnd}`)}static NORMALIZED_ROLES=new Set(["annotation","returnType"]);layoutTwinSegments(e){if(this.source===null)return;let t=e.sourceEnd-e.sourceStart,r=this.length-e.generatedStart;if(t===0||r===0||t>256||r>256)return;let s=this.source.slice(e.sourceStart,e.sourceEnd),i=this.chunks.slice(e.chunkStart).join("");if(s.replace(/\s+/g," ")!==i.replace(/\s+/g," "))return;let n=0,a=0;while(n0)a=a.filter((p)=>!t.some(([m,g])=>p.sourceStart>=m&&p.sourceEnd<=g));if(a.length===0)return null;let o=r.primitiveClaims??(r.primitiveClaims=new Map),l=o.get(e);if(l===void 0)o.set(e,l=new Set);let c=a.filter((p)=>!l.has(p.sourceStart)),h=c.filter((p)=>!this.exactSourceSpans.has(`${p.sourceStart}:${p.sourceEnd}`)),f=h.length>0?h:c,u=f.filter((p)=>p.nodeId===r.nodeId),d=(u.length>0?u:f)[0];if(d===void 0){let p=[...l].pop();if(d=p===void 0?void 0:a.find((m)=>m.sourceStart===p),d===void 0){let m=a.filter((g)=>this.exactSourceSpans.has(`${g.sourceStart}:${g.sourceEnd}`));d=m[m.length-1]}if(d===void 0)return null}if(l.add(d.sourceStart),this.source!==null){let p=this.source.slice(d.sourceStart,d.sourceEnd);if(p!==e&&p.endsWith(e)&&!/[\w$]/.test(p[p.length-e.length-1]??""))return[d.sourceEnd-e.length,d.sourceEnd]}return[d.sourceStart,d.sourceEnd]}matchesSource(e){if(this.source===null)return!1;if(e.sourceStart<0||e.sourceEnd>this.source.length)throw Error(`builder: mark (nodeId ${e.nodeId}, role '${e.role}') has source span [${e.sourceStart}, ${e.sourceEnd}) outside the source text [0, ${this.source.length}) — store-protocol violation`);let t=this.length;if(t-e.generatedStart!==e.sourceEnd-e.sourceStart)return!1;let r=e.sourceStart-e.generatedStart,s=this.exactRanges.get(r),i=s!==void 0&&s.genEnd<=t,n=this.chunks.length,{generatedStart:a,chunkStart:o}=e;while(o=s.genStart&&a{throw Error("rip: schema type story is unavailable in the browser")},Cn=()=>!1;var b3={__proto__:null,maxlength:"maxLength",minlength:"minLength",readonly:"readOnly",tabindex:"tabIndex",colspan:"colSpan",rowspan:"rowSpan",contenteditable:"contentEditable",formaction:"formAction",formenctype:"formEnctype",formmethod:"formMethod",formnovalidate:"formNoValidate",formtarget:"formTarget",novalidate:"noValidate",crossorigin:"crossOrigin",usemap:"useMap",srclang:"srcLang",inputmode:"inputMode",cellpadding:"cellPadding",cellspacing:"cellSpacing",bgcolor:"bgColor",valign:"vAlign",nowrap:"noWrap",for:"htmlFor",datetime:"dateTime",ismap:"isMap",nomodule:"noModule",playsinline:"playsInline",dirname:"dirName",accesskey:"accessKey",enterkeyhint:"enterKeyHint",referrerpolicy:"referrerPolicy",fetchpriority:"fetchPriority",imagesrcset:"imageSrcset",imagesizes:"imageSizes",popovertargetaction:"popoverTargetAction",allowfullscreen:"allowFullscreen"},y3="type __RipClassValue = string | boolean | null | undefined | Record | __RipClassValue[];",S3="/** What a component projects through `slot`: the DOM its parent built for it — an element, a fragment, or a text node — or a value rendered as text. */\n"+"type __RipChildren = Node | string | number | boolean | null;",Pn="(...args: (__RipClassValue | __RipClassValue[])[]) => string",R3=`type __RipAV = E extends Record ? V | string : F; +type __RipProp = E extends Record ? V : any;`,E3=["animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","columnCount","columns","flex","flexGrow","flexShrink","fontWeight","gridArea","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","lineHeight","opacity","order","orphans","scale","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","webkitLineClamp"],Ln=E3.map((e)=>`'${e}'`).join(" | "),Mn=(e)=>`{ [K in Exclude]?: K extends ${e} ? string | number : string | 0 } & { [k: \`--\${string}\`]: string | number }`,k3=`type __RipUnitless = ${Ln}; +`+"/** An inline style as an object: CSS property names, camelCased, plus `--custom` properties. Values are written as given — no unit is appended — so a number is admitted only where CSS reads one bare: the unitless properties, and 0 anywhere. */\n"+`type __RipCSSProperties = ${Mn("__RipUnitless")};`,Z4=`(${Mn(Ln)})`,Ni="__RipCSSProperties | string",jn="(el: object, value: __RipCSSProperties | string | null | undefined) => void",or="__RipClassValue | __RipClassValue[]",Fn=" [k: `data-${string}`]: string | number | boolean;\n [k: `aria-${string}`]: string | number | boolean;",Ai=(e)=>/^[A-Za-z_$][\w$]*$/.test(e)?e:`'${e}'`,lr=(e,t)=>`__RipAttrVals_${t?"svg_":""}${e}`,vi=(e,t)=>`__RipEl_${t?"svg_":""}${e}`,xe=(e,t)=>`${t?"SVGElementTagNameMap":"HTMLElementTagNameMap"}['${e}']`,ot=(e,t)=>typeof e==="string"&&(t?Ve.has(e):Bt.has(e));function Bn(e,t){let r=b3[e]??e,s=e==="class"?or:e==="style"?Ni:`__RipAV<${t}, '${r}'>`;return[` ${Ai(e)}: ${s};`]}function T3(){let e=[];for(let t of De)e.push(...Bn(t,"HTMLElement"));return`interface __RipGlobalAttrVals { ${e.join(` `)} -${Ms} -}`}function E3(){let e=[];for(let t of new Set([...De,...nt]))e.push(` ${Ai(t)}: ${t==="class"?or:t==="style"?Ni:"string | number"};`);return`interface __RipSvgAttrVals { +${Fn} +}`}function w3(){let e=[];for(let t of new Set([...De,...st]))e.push(` ${Ai(t)}: ${t==="class"?or:t==="style"?Ni:"string | number"};`);return`interface __RipSvgAttrVals { ${e.join(` `)} -${Ms} -}`}function k3(e,t){let r=t?"__RipSvgAttrVals":"__RipGlobalAttrVals",n=t?new Set([...De,...nt]):De,i=[];for(let a of ui(e)){if(n.has(a))continue;if(t)i.push(` ${Ai(a)}: ${a==="class"?or:a==="style"?Ni:"string | number"};`);else i.push(...js(a,xe(e,t)))}let s=i.length?` +${Fn} +}`}function _3(e,t){let r=t?"__RipSvgAttrVals":"__RipGlobalAttrVals",s=t?new Set([...De,...st]):De,i=[];for(let a of ui(e)){if(s.has(a))continue;if(t)i.push(` ${Ai(a)}: ${a==="class"?or:a==="style"?Ni:"string | number"};`);else i.push(...Bn(a,xe(e,t)))}let n=i.length?` ${i.join(` `)} -`:"";return`interface ${lr(e,t)} extends ${r} {${s}}`}function T3(e,t){let r=lr(e,t),n=xe(e,t),i=`keyof ${r} & string`,s=[` setAttribute
(name: A, value: ${r}[A]): void;`,` toggleAttribute(name: ${i}, force?: boolean): boolean;`,` removeAttribute(name: ${i}): void;`,` addEventListener(type: K, listener: (e: HTMLElementEventMap[K] & { target: ${n}; currentTarget: ${n} }) => unknown, options?: boolean | AddEventListenerOptions): void;`," addEventListener(type: string, listener: (e: any) => unknown, options?: boolean | AddEventListenerOptions): void;"];if(!t)s.push(` className: ${or};`);for(let a of["value","checked","innerHTML","textContent","innerText"])s.push(` ${a}: __RipProp<${n}, '${a}'>;`);return`interface ${vi(e,t)} { -${s.join(` +`:"";return`interface ${lr(e,t)} extends ${r} {${n}}`}function N3(e,t){let r=lr(e,t),s=xe(e,t),i=`keyof ${r} & string`,n=[` setAttribute(name: A, value: ${r}[A]): void;`,` toggleAttribute(name: ${i}, force?: boolean): boolean;`,` removeAttribute(name: ${i}): void;`,` addEventListener(type: K, listener: (e: HTMLElementEventMap[K] & { target: ${s}; currentTarget: ${s} }) => unknown, options?: boolean | AddEventListenerOptions): void;`," addEventListener(type: string, listener: (e: any) => unknown, options?: boolean | AddEventListenerOptions): void;"];if(!t)n.push(` className: ${or};`);for(let a of["value","checked","innerHTML","textContent","innerText"])n.push(` ${a}: __RipProp<${s}, '${a}'>;`);return`interface ${vi(e,t)} { +${n.join(` `)} -}`}function Fs(e,{needsClassValue:t=!1,needsCssProperties:r=!1,needsRefCell:n=!1,needsChildren:i=!1,extra:s=[]}={}){let a=new Map;for(let{tag:l,svg:c}of e)if(ot(l,c))a.set(`${c?"svg:":""}${l}`,{tag:l,svg:Boolean(c)});let o=[];if(a.size>0||t)o.push(p3);if(i)o.push(g3);if(r||[...a.values()].some((l)=>!l.svg)||s.length>0)o.push(S3);for(let l of s)o.push(l);if(a.size>0){o.push(b3);let l=[...a.values()].some((h)=>!h.svg),c=[...a.values()].some((h)=>h.svg);if(l)o.push(R3());if(c)o.push(E3());for(let{tag:h,svg:f}of a.values())o.push(k3(h,f),T3(h,f))}if(n)o.push(w3);return o.length?` +}`}function Un(e,{needsClassValue:t=!1,needsCssProperties:r=!1,needsRefCell:s=!1,needsChildren:i=!1,extra:n=[]}={}){let a=new Map;for(let{tag:l,svg:c}of e)if(ot(l,c))a.set(`${c?"svg:":""}${l}`,{tag:l,svg:Boolean(c)});let o=[];if(a.size>0||t)o.push(y3);if(i)o.push(S3);if(r||[...a.values()].some((l)=>!l.svg)||n.length>0)o.push(k3);for(let l of n)o.push(l);if(a.size>0){o.push(R3);let l=[...a.values()].some((h)=>!h.svg),c=[...a.values()].some((h)=>h.svg);if(l)o.push(T3());if(c)o.push(w3());for(let{tag:h,svg:f}of a.values())o.push(_3(h,f),N3(h,f))}if(s)o.push(A3);return o.length?` ${o.join(` `)} -`:""}var w3=["type __RipEqEl = (() => T extends A ? 1 : 2) extends (() => T extends B ? 1 : 2) ? true : false;","type __RipBaseEl = __RipEqEl extends true ? true : __RipEqEl extends true ? true : __RipEqEl extends true ? true : __RipEqEl extends true ? true : __RipEqEl extends true ? true : __RipEqEl extends true ? true : __RipEqEl extends true ? true : false;","type __RipRefOk = 0 extends (1 & V) ? unknown : [V] extends [null] ? unknown : null extends V ? ([E] extends [Extract, E>] ? unknown : __RipBaseEl> extends true ? ([E] extends [NonNullable] ? unknown : never) : never) : never;","declare function __ripRefCell(tag: K, cell: { value: V } & __RipRefOk): { value: HTMLElementTagNameMap[K] | null };","declare function __ripRefCellSvg(tag: K, cell: { value: V } & __RipRefOk): { value: SVGElementTagNameMap[K] | null };"].join(` -`);var Oi=()=>{throw Error("rip: component type story is unavailable in the browser")},Bs=()=>{throw Error("rip: component type story is unavailable in the browser")},Us=()=>!1,Vs=()=>!1,Ws=()=>{throw Error("rip: component type story is unavailable in the browser")},Hs=()=>{throw Error("rip: component type story is unavailable in the browser")},Ii=()=>!0,Gs=()=>{throw Error("rip: component type story is unavailable in the browser")},$i=()=>{throw Error("rip: component type story is unavailable in the browser")},Di=()=>{throw Error("rip: component type story is unavailable in the browser")},xi="",Ks=()=>null,Ys=()=>"",zs=()=>"",qs=()=>{throw Error("rip: component type story is unavailable in the browser")},Xs=()=>"string",Js="",Zs=()=>[],Qs=()=>!1,ea=()=>!1,ta="",ra=()=>{throw Error("rip: component type story is unavailable in the browser")},ia=()=>[],na=()=>[],Ci=()=>{throw Error("rip: component type story is unavailable in the browser")},sa=()=>{throw Error("rip: component type story is unavailable in the browser")},aa=()=>{throw Error("rip: component type story is unavailable in the browser")},oa=()=>[];var _3=new Set(["beforeMount","mounted","beforeUnmount","unmounted","onError"]),N3=new Set(["_state","_frame","_parent","_children","_root","_nodes","_target","_context","_rest","_restWriters","_restHandlers","_inheritedEl","_inheritedInst","_inheritedOwn","_refCleanups","_initFailed","_hmrOrphans","_hmrReleasing","_hmrPropKeys","_asChild"]),A3=new Set(["+","-","*","/","%","**","<",">","<=",">=","==","!=","&&","||","??","<<",">>",">>>","&","^","|"]),F1=new Set(["=","void-assign","+=","-=","*=","/=","%=","**=","&&=","||=","??=","<<=",">>=",">>>=","&=","^=","|="]),lt=(e)=>F1.has(e)||e==="//="||e==="%%=",ct=new Set(["=","void-assign"]),la=new Set(["=","+=","-=","*=","/=","%=","**=","&&=","||=","??="]),ht=/^[A-Za-z_$][\w$]*$/,Pi={"==":"===","!=":"!=="},v3=new Set(["true","false","null","undefined","this"]),cr=(e,t=0)=>{let r=[],n=null;for(let i=0;iArray.isArray(e),ft=(e)=>y(e)&&A3.has(e[0])&&e.length===3,hr=new Set([".","?.","[]","optindex"]),Ce=(e)=>y(e)&&e[0]==="."&&e.length===3&&e[2]==="new",O3={__proto__:null,Array:"",ReadonlyArray:"",Map:"",Set:"",WeakMap:"",WeakSet:"",Promise:"",WeakRef:""};function I3(e){if(e[0]!=="="||e.length!==3)return null;let t=e[1];if(!y(t)||t[0]!=="."||typeof t[2]!=="string")return null;let r=t[1];if(!y(r)||r[0]!=="."||r[2]!=="prototype"||typeof r[1]!=="string")return null;return{head:r[1],member:t[2]}}function gt(e){let t=e;if(y(t)&&t[0]==="typed-var"&&t.length===3)t=t[1];if(y(t)&&t[0]==="."&&t[1]==="this"&&typeof t[2]==="string")return t[2];return null}function $3(e){let t=e;if(y(t)&&t[0]==="default"&&t.length===3)t=t[1];let r=gt(t);if(r===null)return null;return{name:r,typed:y(t)&&t[0]==="typed-var"&&t.length===3?t:null}}function D3(e){let t=[],r=new Map,n=(i,s)=>{if(!y(i))return;let a=i[0];if(a==="->"||a==="def"||a==="void-def"||a==="class"||a==="component"||a==="schema")return;if((a==="="||a==="void-assign")&&i.length===3&&y(i[1])&&i[1][0]==="."&&i[1][1]==="this"&&typeof i[1][2]==="string"){let o=i[1][2],l=r.get(o);if(l===void 0){let c={name:o,node:i,nodes:[i],viaArrow:s};r.set(o,c),t.push(c)}else if(l.nodes.push(i),l.viaArrow&&!s)l.viaArrow=!1}for(let o of i.slice(1))n(o,s||a==="=>")};for(let i of e)if(i!==null&&i!==void 0)n(i,!1);return t}var ca=new Set(["<",">","<=",">=","==","!="]),ut=(e)=>y(e)&&ca.has(e[0])&&e.length===3&&y(e[1])&&ca.has(e[1][0])&&e[1].length===3&&!e[1].parenthesized,ha=(e)=>y(e)&&(e[0]==="-"||e[0]==="+"||e[0]==="!"||e[0]==="~"||e[0]==="typeof"||e[0]==="delete")&&e.length===2,x3=(e)=>y(e)&&F1.has(e[0])&&e.length===3,fa=(e)=>y(e)&&(e[0]==="in"||e[0]==="of"||e[0]==="instanceof"||e[0]==="!in"||e[0]==="!of"||e[0]==="!instanceof")&&e.length===3,ua=(e)=>y(e)&&e[0]==="if",We=(e)=>y(e)&&(e[0]===".."||e[0]==="...")&&e.length===3,dt=(e)=>y(e)&&e[0]==="..."&&e.length===2,O1=(e)=>y(e)&&e[0]==="object",T1=(e)=>y(e)&&(e[0]==="->"||e[0]==="=>")&&e.length===3,C3=new Set(["break","continue","return"]),P3=new Set(["break"]),k1=(e)=>e==="def"||e==="void-def";function Bi(e,t){if(!y(e))return!1;let r=e[0];if(r==="await"||r==="dammit!"||r==="dammit?")return!0;if(r==="for-as"&&e[3]===!0)return!0;if(r==="class")return Bi(e[2],t);if(r==="->"||r==="=>"||k1(r)||E.isEffectDeclIn(t,e))return!1;return e.some((n)=>Bi(n,t))}function dr(e){if(!y(e))return!1;let t=e[0];if(t==="yield"||t==="yield-from")return!0;if(t==="class")return dr(e[2]);if(t==="->"||t==="=>"||k1(t))return!1;return e.some((r)=>dr(r))}var U1=(e)=>y(e)&&(e[0]==="++"||e[0]==="--")&&e.length===3,ur=/^[A-Za-z_$][A-Za-z0-9_$]*$/,mr=(e,t="",r=[])=>{if(!y(e))return r;if(e[0]==="object"){for(let n of e.slice(1)){if(!y(n)||n.length!==3)continue;let i=n[0];if(i!==":"&&i!==null)continue;let s=n[1];if(typeof s!=="string")continue;let a=ur.test(s)?`.${s}`:`[${s}]`,o=n[2];if(typeof o==="string"){if(ur.test(o))r.push([o,t+a])}else mr(o,t+a,r)}return r}if(e[0]==="array")return e.slice(1).forEach((n,i)=>{if(y(n)&&n[0]==="...")return;if(typeof n==="string"){if(ur.test(n))r.push([n,`${t}[${i}]`])}else mr(n,`${t}[${i}]`,r)}),r;return r},Li=(e)=>y(e)&&e[0]==="?:"&&e.length===4,b1=(e)=>y(e)&&e[0]==="block",te=(e)=>$e.has(String(e).split("#")[0]),re=(e)=>y(e)&&e[0]==="comprehension"&&e.length===4&&Array.isArray(e[2])&&e[2].length>0&&Array.isArray(e[2][0])&&String(e[2][0][0]).startsWith("for-");var mt=(e)=>y(e)&&((e[0]==="for-in"||e[0]==="for-of"||e[0]==="for-as")&&e.length===6||e[0]==="while"&&(e.length===3||e.length===4)||e[0]==="loop"&&e.length===2||e[0]==="loop-n"&&e.length===3);function L3(e){let t=0,r=!0,n=(i)=>Array.isArray(i);return e.map((i)=>{if(typeof i==="string"){if(!r)return{item:i,name:i,value:null};return{item:i,name:i,value:String(t++)}}if(n(i)&&i[0]==="="&&i.length===3){let s=i[2],a=typeof s==="string"&&/^[0-9]/.test(s)?Number(s.replace(/_/g,"")):n(s)&&s[0]==="-"&&typeof s[1]==="string"?-Number(s[1].replace(/_/g,"")):null;if(a!==null&&Number.isFinite(a))t=a+1,r=!0;else if(typeof s==="string"&&s.startsWith('"'))r=!1;return{item:i,name:i[1],value:s}}return{item:i,name:null,value:void 0}})}var fr=(e)=>String(e).replace(/^['"`]|['"`]$/g,"");function Pe(e){return`'${String(e).slice(1,-1).replace(/\\/g,"\\\\").replace(/'/g,"\\'")}'`}function Mi(e,t){if(!y(t)||t[0]!=="import"||t.length<2)return!1;let r=e.idOf(t);return(r!==null?e.node(r)?.semanticKind:null)==="import"}class E{constructor(e,t,{face:r="js",pins:n=null,strict:i=!1,script:s=!1,browserModule:a=!1,repl:o=!1,hmr:l=!1,tolerant:c=!1,modulePath:h=null,appStashSpec:f=null,routesUnion:u=null,routeParams:d=null}={}){this.stores=e,this.b=t,this.repl=o,this.tolerant=c,this.replResultName=null,this.replImportResolver=null,this.script=s,this.appStashSpec=f,this.routesUnion=typeof u==="string"&&u.length>0?u:null,this.routeParams=typeof d==="string"&&d.length>0?d:null,this.appAccessors={stash:null,router:null},this.routeWrapSpans=[],this.memberInitSites=[],this.sourceKeySpans=[],this.stashMemberSpans=[],this.domSurfaces=new Map,this._needsClassValue=!1,this._needsCssProperties=!1,this._needsChildren=!1,this._restTags=new Set,this._needsRefCellHelper=!1,this.intrinsics=[],this.componentUses=[],this.namespaceExports=[],this.componentNames=[],this.renderPairs=[],this.browserModule=a,this.hmr=l===!0,this.modulePath=typeof h==="string"&&h.length>0?h:null,this.importSpans=[],this.typeOnlyImports=new Set,this.pins=n,this.pinnables=[],this.pinnedWrites=new Set,this.mutables=[],this.enums=[],this.classDecls=[],this.pinSpans=[],this.loopVars=[],this.loopVarDecls=[],this.attrNames=[],this.importedRefs=[],this.strict=i,this.ts=r==="ts",this.pendingHoistTypes=new Map,this.tsDirectiveMap=new Map,this.tsNocheck=null,this.pendingHoistDirectives=[],this.tsDirectivesArmed=!1,this.pendingSigs=new WeakMap,this.pendingTypeDecls=[],this.primitiveAvoid=null,this.primitiveReuse=null,this.declaringName=!1,this.vocabulary=[],this.silences=[],this.memberDecls=[],this.narrowedDecls=[],this._narrowedReads=null,this._textOwner=null,this.kinds=[],this.componentInfo=new Map,this.schemaFns=new Map,this.moduleComponentNames=new Map,this.ind=0,this.methodName=null,this.scopes=[],this.lastProgramStmt=null,this.inPattern=!1,this.bindingPattern=!1,this.deopt=!1,this.inTarget=!1,this.voidFuncs=new WeakSet,this.sideEffectOnly=!1,this.voidReason=null,this.usesSchema=!1,this.exprDepth=0,this.renderRecord=null,this.postfixGuardDepth=0,this._schemaName=null,this.subParses=new Map,this.runtimeAliases=new Map,this.temps={used:new Set,n:0,byNode:new WeakMap},this.refPlans=new WeakMap,this.ctrlDepth=0,this.tailReturnOk=!1,this.rframes=[],this.cframes=[],this._componentName=null,this.moduleBound=new Set,this.renderSelf=null,this.projectionHost=null}isReactiveDecl(e){return E.isReactiveDeclIn(this.stores,e)}static isReactiveDeclIn(e,t){if(!y(t)||t[0]!=="state"&&t[0]!=="computed"||t.length!==3)return!1;let r=e.idOf(t),n=r!==null?e.node(r)?.semanticKind:null;return n==="state"||n==="computed"}isGateDecl(e){return E.isGateDeclIn(this.stores,e)}static isGateDeclIn(e,t){if(!y(t)||t[0]!=="gate"||t.length<3)return!1;let r=e.idOf(t);return(r!==null?e.node(r)?.semanticKind:null)==="gate"}isEffectDecl(e){return E.isEffectDeclIn(this.stores,e)}static isEffectDeclIn(e,t){if(!y(t)||t[0]!=="effect"||t.length!==3)return!1;let r=e.idOf(t);return(r!==null?e.node(r)?.semanticKind:null)==="effect"}isReadonlyDecl(e){return E.isReadonlyDeclIn(this.stores,e)}static isReadonlyDeclIn(e,t){if(!y(t)||t[0]!=="readonly"&&t[0]!=="void-readonly"||t.length!==3)return!1;let r=e.idOf(t);return(r!==null?e.node(r)?.semanticKind:null)==="readonly"}lockedHead(e,t){let r=this.stores.idOf(e);if(r===null)return!0;return this.stores.node(r)?.semanticKind===t}static pureSpine(e){return typeof e==="string"||y(e)&&typeof e[0]==="string"&&hr.has(e[0])&&!Ce(e)&&E.pureSpine(e[1])}semanticKindOf(e){let t=this.stores.idOf(e);return t!==null?this.stores.node(t)?.semanticKind??null:null}isModuleImport(e){return E.isModuleImportIn(this.stores,e)}static isModuleImportIn(e,t){return Mi(e,t)}static BLOCK_HEADS=new Set(["if","while","loop","for-in","for-of","for-as","switch","when","try","block","comprehension"]);collectReactiveNames(e){let t=new Set,r=(n,i)=>{if(!y(n)||k1(n[0])||T1(n)||n[0]==="class"||n[0]==="enum")return;if(n[0]==="component"&&n.length===3)return;if(this.isReactiveDecl(n)){if(i){let a=n[0]==="state"?":=":"~=";throw this.positionedError(n,`emitter: a reactive declaration ('${typeof n[1]==="string"?n[1]:"…"} ${a} …') must sit at module or function scope — `+"inside a statement block it lowers to a block-scoped const, and any later read would unwrap '.value' off a binding that no longer exists")}if(typeof n[1]==="string")t.add(n[1]);return}if(this.isEffectDecl(n))return;let s=i||E.BLOCK_HEADS.has(n[0]);for(let a of n)r(a,s)};for(let n of e)r(n,!1);return t}collectEffectHandles(e){let t=new Set,r=(n,i)=>{if(!y(n)||k1(n[0])||T1(n)||n[0]==="class"||n[0]==="enum")return;if(n[0]==="component"&&n.length===3)return;if(this.isReactiveDecl(n))return;if(this.isEffectDecl(n)){if(n[1]!==null){if(i)throw this.positionedError(n,`emitter: a bound effect ('${typeof n[1]==="string"?n[1]:"…"} ~> …') must sit at module or function scope — `+"inside a statement block its dispose handle would be a block-scoped const, dead to every later read "+"; a BARE '~> …' stays legal here");if(typeof n[1]==="string")t.add(n[1])}return}let s=i||E.BLOCK_HEADS.has(n[0]);for(let a of n)r(a,s)};for(let n of e)r(n,!1);return t}collectReadonlyNames(e){let t=new Set,r=(n,i)=>{if(!y(n)||k1(n[0])||T1(n)||n[0]==="class"||n[0]==="enum")return;if(n[0]==="component"&&n.length===3)return;if(this.isReactiveDecl(n)||this.isEffectDecl(n))return;if(this.isReadonlyDecl(n)){if(i)throw this.positionedError(n,`emitter: a readonly declaration ('${typeof n[1]==="string"?n[1]:"…"} =! …') must sit at module or function scope — `+"inside a statement block it lowers to a block-scoped const, dead to every later read ");if(typeof n[1]==="string")t.add(n[1]);r(n[2],i);return}let s=i||E.BLOCK_HEADS.has(n[0]);for(let a of n)r(a,s)};for(let n of e)r(n,!1);return t}static exportedConstNames(e){let t=new Set;for(let r of e){if(!y(r)||r[0]!=="export")continue;for(let n of r.slice(1))if(y(n)&&(n[0]==="="||n[0]==="void-assign")&&n.length===3&&typeof n[1]==="string")t.add(n[1])}return t}isExportedConst(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e))return!1;if(r.exportedConst!==void 0&&r.exportedConst.has(e))return!0;if(r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}checkExportedConstWrite(e,t){let r=typeof t==="string"?[t]:E.isPattern(t)?this.patternNames(t):[];for(let n of r){if(!this.isExportedConst(n))continue;throw this.positionedError(e,`emitter: cannot assign to exported '${n}' — an exported binding lowers to `+`'export const', which never changes after its declaration; declare it as state ('export ${n} := …') to write it, or drop the export`)}}positionedError(e,t,...r){let n=Error(t);for(let i of[e,...r]){let s=this.stores.idOf(i),a=s!==null?this.stores.selfSpan(s):null;if(a){n.start=a[0],n.end=a[1];break}}return n}positionedErrorAt(e,t,r){let n=Error(r);return n.start=e,n.end=t,n}static declaredNames(e){let t=[],r=(n)=>{if(!y(n))return;if((n[0]==="enum"||n[0]==="class")&&typeof n[1]==="string")t.push(n[1]);if(k1(n[0])&&n.length===4&&typeof n[1]==="string")t.push(n[1])};for(let n of e)if(r(n),y(n)&&n[0]==="export"&&y(n[1]))r(n[1]);return t}static declaredClassNames(e){let t=new Set,r=(n)=>{if(!y(n)||!ct.has(n[0])||n.length!==3)return;if(typeof n[1]!=="string")return;let i=n[2];if(y(i)&&(i[0]==="class"||i[0]==="component"))t.add(n[1])};for(let n of e)if(r(n),y(n)&&n[0]==="export"&&y(n[1]))r(n[1]);return t}static declaredEnumNames(e){let t=new Set,r=(n)=>{if(y(n)&&n[0]==="enum"&&typeof n[1]==="string")t.add(n[1])};for(let n of e)if(r(n),y(n)&&n[0]==="export"&&y(n[1]))r(n[1]);return t}nodeLine(e){let t=this.stores.idOf(e),r=t!==null?this.stores.selfSpan(t):null;if(!r||typeof this.b.source!=="string")return null;let n=1;for(let i=0;i{if(typeof h==="string")n.push({name:h,kind:f,node:u,auth:!0})},s=(h,f)=>{if(typeof h==="string")n.push({name:h,kind:"plain",node:f,auth:!1})},a=(h,f,u)=>{let d=new Set;for(let p of h){if(d.has(p))throw this.positionedError(f,`emitter: '${p}' is bound twice in one ${u} — one binding per name; rename or drop the duplicate`,...r!==null?[r]:[]);d.add(p)}return h};{let h=[],f=[];for(let u of t??[]){this.patternNames(u,h,!0);let d=y(u)?u:t;while(f.lengthi(u,"parameter",f[d]))}let o=(h,f)=>{if(!y(h))return;if(this.isModuleImport(h)){for(let d of E.importedNames([h]))i(d,"import",h);return}if(T1(h))return;if(k1(h[0])){if(!f&&h.length===4&&typeof h[1]==="string")i(h[1],"def",h);return}if(h[0]==="enum"){if(!f)i(h[1],"enum",h);return}if(h[0]==="component"&&h.length===3)return;if(h[0]==="class"){if(!f)i(h[1],"class",h);if(h[2]!=null)o(h[2],!0);let d=h[3];if(b1(d)){for(let p of d.slice(1))if(y(p)&&F1.has(p[0])&&p.length===3)o(p[2],!0);else if(!E.isTypedWrapper(p))o(p,!0)}return}if(this.isReactiveDecl(h)){if(i(h[1],h[0]==="computed"?"computed":"state",h),!(h[0]==="computed"&&b1(h[2])&&h[2].length>2))o(h[2],f);return}if(this.isEffectDecl(h)){if(h[1]!==null)i(h[1],"effect",h);return}if(this.isReadonlyDecl(h)){i(h[1],"readonly",h),o(h[2],f);return}if(h[0]==="export"){for(let d of h.slice(1)){if(!y(d))continue;if((d[0]==="="||d[0]==="void-assign")&&d.length===3&&typeof d[1]==="string")i(d[1],"plain",d),o(d[2],f);else o(d,f)}return}if(h[0]==="for-in"||h[0]==="for-of"||h[0]==="for-as"){if(y(h[1])){let d=[];for(let p of h[1])this.patternNames(p,d,!0);a(d,h,"loop head")}for(let d of h.slice(2))o(d,!0);return}if(re(h)){o(h[1],!0);for(let d of h[2]??[]){let p=[];if(y(d[1]))for(let m of d[1])this.patternNames(m,p,!0);a(p,h,"comprehension clause"),o(d[2],!0)}for(let d of h[3]??[])o(d,!0);return}if(h[0]==="try"){for(let d of h.slice(2))if(y(d)&&d.length===2&&E.isPattern(d[0])){for(let p of a(this.patternNames(d[0]),d[0],"catch pattern"))s(p,h);o(d[1],!0)}else o(d,!0);o(h[1],!0);return}if(F1.has(h[0])&&h.length===3){if(typeof h[1]==="string")s(h[1],h);else if(h[0]==="="&&E.isPattern(h[1]))for(let d of a(this.patternNames(h[1]),h,"destructuring pattern"))s(d,h)}let u=f||E.BLOCK_HEADS.has(h[0]);for(let d of h)o(d,u)};for(let h of e)o(h,!1);n.forEach((h,f)=>{h.order=f});let l=(h,f)=>{let u=f.node!==null?this.nodeLine(f.node):null,d=f.kind==="state"||f.kind==="parameter"||f.kind==="plain"?` — assign with '${h.name} = …' to update it, or choose a different name`:" — choose a different name";throw this.positionedError(h.node,`emitter: '${h.name}' was already declared as ${f.kind}${u!==null?` on line ${u}`:""}${d}`,...r!==null?[r]:[])},c=new Map;for(let h of n){if(!h.auth)continue;let f=c.get(h.name);if(f!==void 0)l(h,f);c.set(h.name,h)}for(let h of n){if(h.auth)continue;let f=c.get(h.name);if(f!==void 0){if(f.auth&&h.orderu.members.has(h.name)))continue;c.set(h.name,h)}}pushReactiveFrame(e,t,r=[],n=null){let i=this.collectReactiveNames(e),s=this.collectEffectHandles(e),a=this.collectReadonlyNames(e);return this.checkScopeRedeclarations(e,r,n),this.rframes.push({reactive:i,computed:this.collectComputedNames(e),readonly:a,handles:s,bound:new Set([...t,...E.declaredNames(e),...s,...a]),enums:E.declaredEnumNames(e),classes:E.declaredClassNames(e),importSpecs:E.importedSpecs(e),exportedConst:E.exportedConstNames(e)}),new Set([...i,...s,...a])}withBindings(e,t){this.rframes.push({reactive:new Set,bound:new Set(e),block:!0}),t(),this.rframes.pop()}resolveBareRead(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e))return"reactive";if(r.bound.has(e))return null;if(r.members!==void 0&&r.members.has(e))return r.memberReactive.has(e)?"member-reactive":"member"}return null}kindOfName(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive?.has(e))return r.computed?.has(e)?"computed":"state";if(r.readonly?.has(e))return"readonly";if(r.handles?.has(e))return"effect";if(r.bound?.has(e))return null;if(r.members!==void 0&&r.members.has(e))return r.memberKinds?.get(e)??null}return null}isReactiveName(e){return this.resolveBareRead(e)==="reactive"}isEnumName(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.enums!==void 0&&r.enums.has(e))return!0;if(r.reactive.has(e)||r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}isClassName(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.classes!==void 0&&r.classes.has(e))return!0;if(r.reactive.has(e)||r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}noteLoopVarRead(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.loopVars!==void 0&&r.loopVars.has(e)){let n=r.loopBindings?.get(e);if(n!==void 0)n.owner.readVars.add(n.which);return}if(r.reactive.has(e)||r.bound.has(e))return;if(r.members!==void 0&&r.members.has(e))return}}static loopBindingsOf(e){let t=new Map;for(let r of e.loopStack){if(r.owner===void 0)continue;t.set(r.itemVar,{owner:r.owner,which:"item"}),t.set(r.indexVar,{owner:r.owner,which:"index"})}return t}isRenderLoopName(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.loopVars!==void 0&&r.loopVars.has(e))return!0;if(r.reactive.has(e)||r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}importSpecOf(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t],n=r.importSpecs?.get(e);if(n!==void 0)return n;if(r.reactive.has(e)||r.bound.has(e))return null;if(r.members!==void 0&&r.members.has(e))return null}return null}isComputedName(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e))return r.computed!==void 0&&r.computed.has(e);if(r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}isAmbientReadonly(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e))return!1;if(r.ambientReadonly!==void 0&&r.ambientReadonly.has(e))return!0;if(r.readonly!==void 0&&r.readonly.has(e))return!0;if(r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}memberKindOf(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e))return null;if(r.bound.has(e))return null;if(r.members!==void 0&&r.members.has(e))return r.members.get(e)}return null}thisMemberKindOf(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.members!==void 0)return r.members.has(e)?r.members.get(e):null}return null}static targetsRestView(e){if(!y(e))return!1;if(e[0]==="array")return e.slice(1).some((r)=>E.targetsRestView(r));if(e[0]==="object")return e.slice(1).some((r)=>y(r)&&E.targetsRestView(r[2]??r[1]));if(e[0]==="default"||e[0]==="rest")return E.targetsRestView(e[1]);let t=e;while(y(t)&&(t[0]==="."||t[0]==="[]"||t[0]==="?."||t[0]==="optindex")&&t.length===3){if(t[0]==="."&&t[1]==="this"&&t[2]==="rest")return!0;t=t[1]}return!1}checkBareRest(e,t){if(t!=="rest"||this.memberKindOf(t)!=="rest")return;let r=this.positionedError(e,"emitter: `rest` is provided by `extends`, not declared here — spell it `@rest`, as with `@stash` and `@router`");if(typeof r.start!=="number"&&this.b.currentMark)r.start=this.b.currentMark.sourceStart,r.end=this.b.currentMark.sourceEnd;throw r}checkMemberWrite(e,t){if(this.cframes.length===0)return;if(this.thisMemberKindOf("rest")==="rest"&&E.targetsRestView(t))throw this.positionedError(e,"emitter: `@rest` is the runtime-owned view of the caller's undeclared props and is never assigned — "+"set the attribute on the element in render, or declare the name as a prop the caller supplies");let r=null,n=null;if(typeof t==="string")this.checkBareRest(e,t),r=t,n=this.memberKindOf(t);else if(y(t)&&t[0]==="."&&t[1]==="this"&&typeof t[2]==="string")r=t[2],n=this.thisMemberKindOf(r);if(n===null)return;if(n==="readonly")throw this.positionedError(e,`emitter: cannot assign to readonly member '${r}' — a '=!' member never changes after _init; `+"a member that changes is state (':=')");if(n==="plain"){let i=this.cframes[this.cframes.length-1];if(!i.plainWrites.has(r))i.plainWrites.set(r,e)}}notePlainRenderRead(e,t=!1){if(this.rstate==null||this.cframes.length===0)return;if((t?this.thisMemberKindOf(e):this.memberKindOf(e))!=="plain")return;this.cframes[this.cframes.length-1].renderPlainReads.add(e)}collectComputedNames(e){let t=new Set,r=(n,i)=>{if(!y(n)||k1(n[0])||T1(n)||n[0]==="class"||n[0]==="enum")return;if(n[0]==="component"&&n.length===3)return;if(this.isReactiveDecl(n)){if(!i&&n[0]==="computed"&&typeof n[1]==="string")t.add(n[1]);return}if(this.isEffectDecl(n))return;let s=i||E.BLOCK_HEADS.has(n[0]);for(let a of n)r(a,s)};for(let n of e)r(n,!1);return t}bareRewrite(e){if(this.inPattern&&this.bindingPattern)return null;return this.resolveBareRead(e)}isReactiveRead(e){return this.bareRewrite(e)==="reactive"}memberIsReactive(e){let t=this.cframes[this.cframes.length-1];return t!==void 0&&t.memberReactive.has(e)}inComponent(){return this.cframes.length>0}reactiveRead(e){let t=this.b.currentMark,r=this.b.source;if(this.ts){let n=this.emitPrimitive(e);if(n!==null&&this._narrowedReads?.has(e))this.narrowedDecls.push({start:n[0],end:n[1]})}else if(t!==null&&r!==null&&r.slice(t.sourceStart,t.sourceEnd)===e)this.b.mark(t.nodeId,t.role,()=>this.b.emit(e));else this.b.emit(e);this.b.emit(".value")}memberRead(e,t){let r=this.b.currentMark,n=this.b.source;if(this.b.emit((this.renderSelf??"this")+"."),this.ts){let i=this.emitPrimitive(e);if(t&&i!==null)this.memberDecls.push({start:i[0],end:i[1]});if(i!==null&&this._narrowedReads?.has(e))this.narrowedDecls.push({start:i[0],end:i[1]})}else if(r!==null&&n!==null&&n.slice(r.sourceStart,r.sourceEnd)===e)this.b.mark(r.nodeId,r.role,()=>this.b.emit(e));else this.b.emit(e);if(t)this.b.emit(".value")}emitPrimitive(e){let t=this.b.currentMark,r=this.ts&&typeof e==="string"?this.b.claimPrimitiveSpan(e,this.primitiveAvoid):null;if(r===null&&this.primitiveReuse!==null&&this.primitiveReuse.name===e)r=this.primitiveReuse.span,this.primitiveReuse=null;if(r!==null&&Z1(e)){let n=this.kindOfName(e),i=typeof n==="string"?{label:n,optional:!1}:n;if(i!==null)this.kinds.push({start:r[0],end:r[1],label:i.label,name:e,optional:i.optional})}if(t!==null&&r!==null){let n=Z1(e)?"identifier":"literal";this.b.markSpan(t.nodeId,n,r[0],r[1],()=>this.noteNameSpan(e))}else this.noteNameSpan(e);return r}noteNameSpan(e){if(!this.ts||this.declaringName||typeof e!=="string"||!Z1(e)){this.b.emit(e);return}let t=this.b.offset;if(this.b.emit(e),this.isEnumName(e)){this.enums.push([t,this.b.offset]);return}if(this.isReactiveName(e)&&!this.isComputedName(e)){this.mutables.push([t,this.b.offset]);return}if(this.isClassName(e)){this.classDecls.push([t,this.b.offset]);return}if(this.isRenderLoopName(e)){this.loopVars.push([t,this.b.offset]),this.noteLoopVarRead(e);return}let r=this.importSpecOf(e);if(r!==null)this.importedRefs.push([t,this.b.offset,r.importedName,r.specifier])}withDeclaredName(e){let t=this.declaringName;this.declaringName=!0;try{return e()}finally{this.declaringName=t}}noteVocabulary(e,t,r){let n=this.wordSpanIn(t,r);if(n!==null)this.vocabulary.push({kind:e,start:n[0],end:n[1]})}noteShorthandClasses(e,t){for(let r of e)this.noteVocabulary("render-channel",r,t)}noteHeadKeyword(e,t,r){if(!this.ts)return;let n=y(r)?this.stores.idOf(r):null,i=n!==null?this.stores.selfSpan(n):null;if(i===null||this.b.source===null)return;let s=i[0]+t.length;if(s>i[1]||this.b.source.slice(i[0],s)!==t)return;this.vocabulary.push({kind:e,start:i[0],end:s})}noteKind(e,t,r){let n=this.stores.idOf(e),i=n!==null?this.stores.role(n,t):null;if(i?.sourceStart!=null&&i.sourceEnd>i.sourceStart){let s=this.b.source?.slice(i.sourceStart,i.sourceEnd)??null;this.kinds.push({start:i.sourceStart,end:i.sourceEnd,label:r,name:s})}}noteSilence(e,t){let r=this.wordSpanIn(e,t);if(r!==null)this.silences.push([r[0],r[1]])}static MEMBER_KINDS={state:"state",computed:"computed",readonly:"readonly",gate:"gate",accept:"accept"};static memberLabel(e){if(e.isPublic&&(e.kind==="prop"||e.kind==="state"))return"prop";return E.MEMBER_KINDS[e.kind]??null}noteMemberDecl(e){if(!this.ts)return;let t=y(e.nameNode)?this.stores.idOf(e.nameNode):null,r=t!==null?this.stores.role(t,e.nameRole):null;if(!r||typeof r.sourceStart!=="number")return;let n=E.memberLabel(e);if(n!==null)this.kinds.push({start:r.sourceStart,end:r.sourceEnd,label:n,name:e.name,optional:e.optional===!0,...e.kind==="accept"&&e.provider!=null?{provider:e.provider}:{}});if(!Vs(e))return;this.memberDecls.push({start:r.sourceStart,end:r.sourceEnd})}wordSpanIn(e,t){if(!this.ts)return null;let r=y(t)?this.stores.idOf(t):null,n=r!==null?this.stores.selfSpan(r):null;if(n===null)return null;let i=this.stores.primitiveSpans(e,n[0],n[1]);if(i.length!==1)return null;return[i[0].sourceStart,i[0].sourceEnd]}bareChildSpan(e,t,r){let n=(l)=>{let c=y(l)?this.stores.idOf(l):null;return c!==null?this.stores.selfSpan(c):null},i=n(r)??n(this.rstate?.node??null);if(i===null)return null;let[s,a]=i;for(let l=t-1;l>=0;l--){let c=n(e[l]);if(c){s=c[1];break}}for(let l=t+1;l — did you mean '${i}'?`;if(r)return`'${t}' is not a known attribute of <${e}> — a bare word sets the boolean attribute it `+`names; render a value with \`= ${t}\`, or spell \`name: value\``;return`'${t}' is not a known attribute of <${e}> — `+(n?"SVG attribute names are the spec's own, case-sensitive (`viewBox`)":"HTML attribute names are the spec's own, lowercase")+"; `data-`/`aria-` names take any suffix"}emitRewrittenPrimitive(e,t){let r=this.b.currentMark,n=this.ts?this.b.claimPrimitiveSpan(e):null;if(r!==null&&n!==null)this.b.markSpan(r.nodeId,"identifier",n[0],n[1],()=>this.b.emit(t));else this.b.emit(t);return n}emitQuotedPrimitive(e,t="'"){this.b.emit(t);let r=this.emitPrimitive(e);return this.b.emit(t),r}emitKeyAs(e,t){return e===t?this.emitPrimitive(e):this.emitRewrittenPrimitive(e,t)}emitPropertyRoadKey(e){let t=this.b.offset;if(e(),this.ts)this.attrNames.push([t,this.b.offset])}emitSchemaText(e,t=!1){let r=0,n=null;while(r0){let c=e[o];if(l!==null){if(c==="\\")o++;else if(c===l)l=null}else if(c==='"'||c==="'"||c==="`")l=c;else if(c==="{")a++;else if(c==="}")a--;o++}if(this.b.emit("${"),this.emitSchemaText(e.slice(s+2,a===0?o-1:o),t),a===0)this.b.emit("}");s=o;continue}this.b.emit(e[s]),s++}if(sthis.b.emit(a));else if(Z1(a))this.emitPrimitive(a);else this.b.emit(a);if(sp.value===o[m].value),f=null;if(!h){f=Array.from({length:l+1},()=>Array(c+1).fill(0));for(let p=l-1;p>=0;p--)for(let m=c-1;m>=0;m--)f[p][m]=a[p].value===o[m].value?f[p+1][m+1]+1:Math.max(f[p][m+1],f[p+1][m])}let u=0,d=0;for(let p=0;pthis.noteNameSpan(m.value)),u++}else this.noteNameSpan(m.value);d=m.end}this.b.emit(r.slice(d))}registerVoidValue(e,t){if(T1(e)){this.voidFuncs.add(e);return}if(!(y(e)&&k1(e[0])))throw this.positionedError(e,"emitter: the void marker (a trailing '!' on the defined name) requires a function value — `save! = ->`, `save! =! ->`, `save! = =>`, `fn!: ->`",t)}withTarget(e){let t=this.inTarget;this.inTarget=!0,e(),this.inTarget=t}withPattern(e,t=!1){let r=this.inPattern,n=this.bindingPattern;this.inPattern=!0,this.bindingPattern=t,e(),this.inPattern=r,this.bindingPattern=n}withExpression(e){let t=this.inPattern,r=this.bindingPattern;this.inPattern=!1,this.bindingPattern=!1,e(),this.inPattern=t,this.bindingPattern=r}withDeopt(e){let t=this.deopt;this.deopt=!0,e(),this.deopt=t}mark(e,t,r){let n=this.stores.idOf(e);if(n!==null&&(t==="$self"||this.stores.role(n,t)!==null))this.b.mark(n,t,r);else r()}beginMark(e,t){let r=this.stores.idOf(e);if(r!==null&&(t==="$self"||this.stores.role(r,t)!==null))return this.b.beginMark(r,t),!0;return!1}endMark(e){if(e)this.b.endMark()}annotationText(e,t="annotation"){let r=this.stores.idOf(e);if(r===null)return null;let n=this.stores.role(r,t);if(!n||n.sourceStart==null||this.b.source===null)return null;return jt(this.b.source.slice(n.sourceStart,n.sourceEnd).replace(/^\s*:\s*/,""))}tsAnnotate(e,t,r){this.b.tsOnly(()=>this.mark(e,t,()=>this.emitTypeText(e,t,`: ${r}`)))}tsReturnAnnotation(e,t,r,n,i=e){if(!this.ts)return;let s=this.annotationText(e,"returnType");if(s!==null){let a=t&&!n&&!/^Promise\s*`:s;this.b.tsOnly(()=>this.mark(e,"returnType",()=>this.emitTypeText(e,"returnType",`: ${a}`)));return}if(r&&!n){let a=t?"Promise":"void";this.b.tsOnly(()=>this.mark(i,"voidMarker",()=>this.b.emit(`: ${a}`)))}}tsRendered(e,t){try{return t()}catch(r){if(r instanceof ii)throw this.positionedError(e,`emitter: ${r.message}`);throw r}}emitTsTypeDecls(e,t){if(!this.ts)return;for(let r of e){if(!y(r)||r[0]!=="type-decl")continue;this.tsTypeDeclLine(r,t)}}tsTypeDeclLine(e,t){let r=this.tsRendered(e,()=>vn(e[1])),n=this.tsDirectiveMap.get(e);if(n!==void 0){if(this.tsDirectiveMap.delete(e),r.length===1)for(let i of n)this.tsDirectiveLine(i,t,!0)}this.b.tsOnly(()=>{this.b.emit(t),this.mark(e,"$self",()=>this.mark(e,"declaration",()=>{this.emitTypeText(e,"declaration",r.join(` +`:""}var A3=["type __RipEqEl = (() => T extends A ? 1 : 2) extends (() => T extends B ? 1 : 2) ? true : false;","type __RipBaseEl = __RipEqEl extends true ? true : __RipEqEl extends true ? true : __RipEqEl extends true ? true : __RipEqEl extends true ? true : __RipEqEl extends true ? true : __RipEqEl extends true ? true : __RipEqEl extends true ? true : false;","type __RipRefOk = 0 extends (1 & V) ? unknown : [V] extends [null] ? unknown : null extends V ? ([E] extends [Extract, E>] ? unknown : __RipBaseEl> extends true ? ([E] extends [NonNullable] ? unknown : never) : never) : never;","declare function __ripRefCell(tag: K, cell: { value: V } & __RipRefOk): { value: HTMLElementTagNameMap[K] | null };","declare function __ripRefCellSvg(tag: K, cell: { value: V } & __RipRefOk): { value: SVGElementTagNameMap[K] | null };"].join(` +`);var Oi=()=>{throw Error("rip: component type story is unavailable in the browser")},Vn=()=>{throw Error("rip: component type story is unavailable in the browser")},Wn=()=>!1,Hn=()=>!1,Kn=()=>{throw Error("rip: component type story is unavailable in the browser")},Gn=()=>{throw Error("rip: component type story is unavailable in the browser")},Ii=()=>!0,Yn=()=>{throw Error("rip: component type story is unavailable in the browser")},$i=()=>{throw Error("rip: component type story is unavailable in the browser")},Di=()=>{throw Error("rip: component type story is unavailable in the browser")},xi="",zn=()=>null,qn=()=>"",Xn=()=>"",Jn=()=>{throw Error("rip: component type story is unavailable in the browser")},Zn=()=>"string",Qn="",ea=()=>[],ta=()=>!1,ra=()=>!1,ia="",sa=()=>{throw Error("rip: component type story is unavailable in the browser")},na=()=>[],aa=()=>[],Ci=()=>{throw Error("rip: component type story is unavailable in the browser")},oa=()=>{throw Error("rip: component type story is unavailable in the browser")},la=()=>{throw Error("rip: component type story is unavailable in the browser")},ca=()=>[];var v3=new Set(["beforeMount","mounted","beforeUnmount","unmounted","onError"]),O3=new Set(["_state","_frame","_parent","_children","_root","_nodes","_target","_context","_rest","_restWriters","_restHandlers","_inheritedEl","_inheritedInst","_inheritedOwn","_refCleanups","_initFailed","_hmrOrphans","_hmrReleasing","_hmrPropKeys","_asChild"]),I3=new Set(["+","-","*","/","%","**","<",">","<=",">=","==","!=","&&","||","??","<<",">>",">>>","&","^","|"]),F1=new Set(["=","void-assign","+=","-=","*=","/=","%=","**=","&&=","||=","??=","<<=",">>=",">>>=","&=","^=","|="]),lt=(e)=>F1.has(e)||e==="//="||e==="%%=",ct=new Set(["=","void-assign"]),ha=new Set(["=","+=","-=","*=","/=","%=","**=","&&=","||=","??="]),ht=/^[A-Za-z_$][\w$]*$/,Pi={"==":"===","!=":"!=="},$3=new Set(["true","false","null","undefined","this"]),cr=(e,t=0)=>{let r=[],s=null;for(let i=0;iArray.isArray(e),ft=(e)=>y(e)&&I3.has(e[0])&&e.length===3,hr=new Set([".","?.","[]","optindex"]),Ce=(e)=>y(e)&&e[0]==="."&&e.length===3&&e[2]==="new",D3={__proto__:null,Array:"",ReadonlyArray:"",Map:"",Set:"",WeakMap:"",WeakSet:"",Promise:"",WeakRef:""};function x3(e){if(e[0]!=="="||e.length!==3)return null;let t=e[1];if(!y(t)||t[0]!=="."||typeof t[2]!=="string")return null;let r=t[1];if(!y(r)||r[0]!=="."||r[2]!=="prototype"||typeof r[1]!=="string")return null;return{head:r[1],member:t[2]}}function gt(e){let t=e;if(y(t)&&t[0]==="typed-var"&&t.length===3)t=t[1];if(y(t)&&t[0]==="."&&t[1]==="this"&&typeof t[2]==="string")return t[2];return null}function C3(e){let t=e;if(y(t)&&t[0]==="default"&&t.length===3)t=t[1];let r=gt(t);if(r===null)return null;return{name:r,typed:y(t)&&t[0]==="typed-var"&&t.length===3?t:null}}function P3(e){let t=[],r=new Map,s=(i,n)=>{if(!y(i))return;let a=i[0];if(a==="->"||a==="def"||a==="void-def"||a==="class"||a==="component"||a==="schema")return;if((a==="="||a==="void-assign")&&i.length===3&&y(i[1])&&i[1][0]==="."&&i[1][1]==="this"&&typeof i[1][2]==="string"){let o=i[1][2],l=r.get(o);if(l===void 0){let c={name:o,node:i,nodes:[i],viaArrow:n};r.set(o,c),t.push(c)}else if(l.nodes.push(i),l.viaArrow&&!n)l.viaArrow=!1}for(let o of i.slice(1))s(o,n||a==="=>")};for(let i of e)if(i!==null&&i!==void 0)s(i,!1);return t}var fa=new Set(["<",">","<=",">=","==","!="]),ut=(e)=>y(e)&&fa.has(e[0])&&e.length===3&&y(e[1])&&fa.has(e[1][0])&&e[1].length===3&&!e[1].parenthesized,ua=(e)=>y(e)&&(e[0]==="-"||e[0]==="+"||e[0]==="!"||e[0]==="~"||e[0]==="typeof"||e[0]==="delete")&&e.length===2,L3=(e)=>y(e)&&F1.has(e[0])&&e.length===3,da=(e)=>y(e)&&(e[0]==="in"||e[0]==="of"||e[0]==="instanceof"||e[0]==="!in"||e[0]==="!of"||e[0]==="!instanceof")&&e.length===3,ma=(e)=>y(e)&&e[0]==="if",We=(e)=>y(e)&&(e[0]===".."||e[0]==="...")&&e.length===3,dt=(e)=>y(e)&&e[0]==="..."&&e.length===2,O1=(e)=>y(e)&&e[0]==="object",T1=(e)=>y(e)&&(e[0]==="->"||e[0]==="=>")&&e.length===3,M3=new Set(["break","continue","return"]),j3=new Set(["break"]),k1=(e)=>e==="def"||e==="void-def";function Bi(e,t){if(!y(e))return!1;let r=e[0];if(r==="await"||r==="dammit!"||r==="dammit?")return!0;if(r==="for-as"&&e[3]===!0)return!0;if(r==="class")return Bi(e[2],t);if(r==="->"||r==="=>"||k1(r)||E.isEffectDeclIn(t,e))return!1;return e.some((s)=>Bi(s,t))}function dr(e){if(!y(e))return!1;let t=e[0];if(t==="yield"||t==="yield-from")return!0;if(t==="class")return dr(e[2]);if(t==="->"||t==="=>"||k1(t))return!1;return e.some((r)=>dr(r))}var U1=(e)=>y(e)&&(e[0]==="++"||e[0]==="--")&&e.length===3,ur=/^[A-Za-z_$][A-Za-z0-9_$]*$/,mr=(e,t="",r=[])=>{if(!y(e))return r;if(e[0]==="object"){for(let s of e.slice(1)){if(!y(s)||s.length!==3)continue;let i=s[0];if(i!==":"&&i!==null)continue;let n=s[1];if(typeof n!=="string")continue;let a=ur.test(n)?`.${n}`:`[${n}]`,o=s[2];if(typeof o==="string"){if(ur.test(o))r.push([o,t+a])}else mr(o,t+a,r)}return r}if(e[0]==="array")return e.slice(1).forEach((s,i)=>{if(y(s)&&s[0]==="...")return;if(typeof s==="string"){if(ur.test(s))r.push([s,`${t}[${i}]`])}else mr(s,`${t}[${i}]`,r)}),r;return r},Li=(e)=>y(e)&&e[0]==="?:"&&e.length===4,b1=(e)=>y(e)&&e[0]==="block",te=(e)=>$e.has(String(e).split("#")[0]),re=(e)=>y(e)&&e[0]==="comprehension"&&e.length===4&&Array.isArray(e[2])&&e[2].length>0&&Array.isArray(e[2][0])&&String(e[2][0][0]).startsWith("for-");var mt=(e)=>y(e)&&((e[0]==="for-in"||e[0]==="for-of"||e[0]==="for-as")&&e.length===6||e[0]==="while"&&(e.length===3||e.length===4)||e[0]==="loop"&&e.length===2||e[0]==="loop-n"&&e.length===3);function F3(e){let t=0,r=!0,s=(i)=>Array.isArray(i);return e.map((i)=>{if(typeof i==="string"){if(!r)return{item:i,name:i,value:null};return{item:i,name:i,value:String(t++)}}if(s(i)&&i[0]==="="&&i.length===3){let n=i[2],a=typeof n==="string"&&/^[0-9]/.test(n)?Number(n.replace(/_/g,"")):s(n)&&n[0]==="-"&&typeof n[1]==="string"?-Number(n[1].replace(/_/g,"")):null;if(a!==null&&Number.isFinite(a))t=a+1,r=!0;else if(typeof n==="string"&&n.startsWith('"'))r=!1;return{item:i,name:i[1],value:n}}return{item:i,name:null,value:void 0}})}var fr=(e)=>String(e).replace(/^['"`]|['"`]$/g,"");function Pe(e){return`'${String(e).slice(1,-1).replace(/\\/g,"\\\\").replace(/'/g,"\\'")}'`}function Mi(e,t){if(!y(t)||t[0]!=="import"||t.length<2)return!1;let r=e.idOf(t);return(r!==null?e.node(r)?.semanticKind:null)==="import"}class E{constructor(e,t,{face:r="js",pins:s=null,strict:i=!1,script:n=!1,browserModule:a=!1,repl:o=!1,hmr:l=!1,tolerant:c=!1,modulePath:h=null,appStashSpec:f=null,routesUnion:u=null,routeParams:d=null}={}){this.stores=e,this.b=t,this.repl=o,this.tolerant=c,this.replResultName=null,this.replImportResolver=null,this.script=n,this.appStashSpec=f,this.routesUnion=typeof u==="string"&&u.length>0?u:null,this.routeParams=typeof d==="string"&&d.length>0?d:null,this.appAccessors={stash:null,router:null},this.routeWrapSpans=[],this.memberInitSites=[],this.sourceKeySpans=[],this.stashMemberSpans=[],this.domSurfaces=new Map,this._needsClassValue=!1,this._needsCssProperties=!1,this._needsChildren=!1,this._restTags=new Set,this._needsRefCellHelper=!1,this.intrinsics=[],this.componentUses=[],this.namespaceExports=[],this.componentNames=[],this.renderPairs=[],this.browserModule=a,this.hmr=l===!0,this.modulePath=typeof h==="string"&&h.length>0?h:null,this.importSpans=[],this.typeOnlyImports=new Set,this.pins=s,this.pinnables=[],this.pinnedWrites=new Set,this.mutables=[],this.enums=[],this.classDecls=[],this.pinSpans=[],this.loopVars=[],this.loopVarDecls=[],this.attrNames=[],this.importedRefs=[],this.strict=i,this.ts=r==="ts",this.pendingHoistTypes=new Map,this.tsDirectiveMap=new Map,this.tsNocheck=null,this.pendingHoistDirectives=[],this.tsDirectivesArmed=!1,this.pendingSigs=new WeakMap,this.pendingTypeDecls=[],this.primitiveAvoid=null,this.primitiveReuse=null,this.declaringName=!1,this.vocabulary=[],this.silences=[],this.memberDecls=[],this.narrowedDecls=[],this._narrowedReads=null,this._textOwner=null,this.kinds=[],this.componentInfo=new Map,this.schemaFns=new Map,this.moduleComponentNames=new Map,this.ind=0,this.methodName=null,this.scopes=[],this.lastProgramStmt=null,this.inPattern=!1,this.bindingPattern=!1,this.deopt=!1,this.inTarget=!1,this.voidFuncs=new WeakSet,this.sideEffectOnly=!1,this.voidReason=null,this.usesSchema=!1,this.exprDepth=0,this.renderRecord=null,this.postfixGuardDepth=0,this._schemaName=null,this.subParses=new Map,this.runtimeAliases=new Map,this.temps={used:new Set,n:0,byNode:new WeakMap},this.refPlans=new WeakMap,this.ctrlDepth=0,this.tailReturnOk=!1,this.rframes=[],this.cframes=[],this._componentName=null,this.moduleBound=new Set,this.renderSelf=null,this.projectionHost=null}isReactiveDecl(e){return E.isReactiveDeclIn(this.stores,e)}static isReactiveDeclIn(e,t){if(!y(t)||t[0]!=="state"&&t[0]!=="computed"||t.length!==3)return!1;let r=e.idOf(t),s=r!==null?e.node(r)?.semanticKind:null;return s==="state"||s==="computed"}isGateDecl(e){return E.isGateDeclIn(this.stores,e)}static isGateDeclIn(e,t){if(!y(t)||t[0]!=="gate"||t.length<3)return!1;let r=e.idOf(t);return(r!==null?e.node(r)?.semanticKind:null)==="gate"}isEffectDecl(e){return E.isEffectDeclIn(this.stores,e)}static isEffectDeclIn(e,t){if(!y(t)||t[0]!=="effect"||t.length!==3)return!1;let r=e.idOf(t);return(r!==null?e.node(r)?.semanticKind:null)==="effect"}isReadonlyDecl(e){return E.isReadonlyDeclIn(this.stores,e)}static isReadonlyDeclIn(e,t){if(!y(t)||t[0]!=="readonly"&&t[0]!=="void-readonly"||t.length!==3)return!1;let r=e.idOf(t);return(r!==null?e.node(r)?.semanticKind:null)==="readonly"}lockedHead(e,t){let r=this.stores.idOf(e);if(r===null)return!0;return this.stores.node(r)?.semanticKind===t}static pureSpine(e){return typeof e==="string"||y(e)&&typeof e[0]==="string"&&hr.has(e[0])&&!Ce(e)&&E.pureSpine(e[1])}semanticKindOf(e){let t=this.stores.idOf(e);return t!==null?this.stores.node(t)?.semanticKind??null:null}isModuleImport(e){return E.isModuleImportIn(this.stores,e)}static isModuleImportIn(e,t){return Mi(e,t)}static BLOCK_HEADS=new Set(["if","while","loop","for-in","for-of","for-as","switch","when","try","block","comprehension"]);collectReactiveNames(e){let t=new Set,r=(s,i)=>{if(!y(s)||k1(s[0])||T1(s)||s[0]==="class"||s[0]==="enum")return;if(s[0]==="component"&&s.length===3)return;if(this.isReactiveDecl(s)){if(i){let a=s[0]==="state"?":=":"~=";throw this.positionedError(s,`emitter: a reactive declaration ('${typeof s[1]==="string"?s[1]:"…"} ${a} …') must sit at module or function scope — `+"inside a statement block it lowers to a block-scoped const, and any later read would unwrap '.value' off a binding that no longer exists")}if(typeof s[1]==="string")t.add(s[1]);return}if(this.isEffectDecl(s))return;let n=i||E.BLOCK_HEADS.has(s[0]);for(let a of s)r(a,n)};for(let s of e)r(s,!1);return t}collectEffectHandles(e){let t=new Set,r=(s,i)=>{if(!y(s)||k1(s[0])||T1(s)||s[0]==="class"||s[0]==="enum")return;if(s[0]==="component"&&s.length===3)return;if(this.isReactiveDecl(s))return;if(this.isEffectDecl(s)){if(s[1]!==null){if(i)throw this.positionedError(s,`emitter: a bound effect ('${typeof s[1]==="string"?s[1]:"…"} ~> …') must sit at module or function scope — `+"inside a statement block its dispose handle would be a block-scoped const, dead to every later read "+"; a BARE '~> …' stays legal here");if(typeof s[1]==="string")t.add(s[1])}return}let n=i||E.BLOCK_HEADS.has(s[0]);for(let a of s)r(a,n)};for(let s of e)r(s,!1);return t}collectReadonlyNames(e){let t=new Set,r=(s,i)=>{if(!y(s)||k1(s[0])||T1(s)||s[0]==="class"||s[0]==="enum")return;if(s[0]==="component"&&s.length===3)return;if(this.isReactiveDecl(s)||this.isEffectDecl(s))return;if(this.isReadonlyDecl(s)){if(i)throw this.positionedError(s,`emitter: a readonly declaration ('${typeof s[1]==="string"?s[1]:"…"} =! …') must sit at module or function scope — `+"inside a statement block it lowers to a block-scoped const, dead to every later read ");if(typeof s[1]==="string")t.add(s[1]);r(s[2],i);return}let n=i||E.BLOCK_HEADS.has(s[0]);for(let a of s)r(a,n)};for(let s of e)r(s,!1);return t}static exportedConstNames(e){let t=new Set;for(let r of e){if(!y(r)||r[0]!=="export")continue;for(let s of r.slice(1))if(y(s)&&(s[0]==="="||s[0]==="void-assign")&&s.length===3&&typeof s[1]==="string")t.add(s[1])}return t}isExportedConst(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e))return!1;if(r.exportedConst!==void 0&&r.exportedConst.has(e))return!0;if(r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}checkExportedConstWrite(e,t){let r=typeof t==="string"?[t]:E.isPattern(t)?this.patternNames(t):[];for(let s of r){if(!this.isExportedConst(s))continue;throw this.positionedError(e,`emitter: cannot assign to exported '${s}' — an exported binding lowers to `+`'export const', which never changes after its declaration; declare it as state ('export ${s} := …') to write it, or drop the export`)}}positionedError(e,t,...r){let s=Error(t);for(let i of[e,...r]){let n=this.stores.idOf(i),a=n!==null?this.stores.selfSpan(n):null;if(a){s.start=a[0],s.end=a[1];break}}return s}positionedErrorAt(e,t,r){let s=Error(r);return s.start=e,s.end=t,s}static declaredNames(e){let t=[],r=(s)=>{if(!y(s))return;if((s[0]==="enum"||s[0]==="class")&&typeof s[1]==="string")t.push(s[1]);if(k1(s[0])&&s.length===4&&typeof s[1]==="string")t.push(s[1])};for(let s of e)if(r(s),y(s)&&s[0]==="export"&&y(s[1]))r(s[1]);return t}static declaredClassNames(e){let t=new Set,r=(s)=>{if(!y(s)||!ct.has(s[0])||s.length!==3)return;if(typeof s[1]!=="string")return;let i=s[2];if(y(i)&&(i[0]==="class"||i[0]==="component"))t.add(s[1])};for(let s of e)if(r(s),y(s)&&s[0]==="export"&&y(s[1]))r(s[1]);return t}static declaredEnumNames(e){let t=new Set,r=(s)=>{if(y(s)&&s[0]==="enum"&&typeof s[1]==="string")t.add(s[1])};for(let s of e)if(r(s),y(s)&&s[0]==="export"&&y(s[1]))r(s[1]);return t}nodeLine(e){let t=this.stores.idOf(e),r=t!==null?this.stores.selfSpan(t):null;if(!r||typeof this.b.source!=="string")return null;let s=1;for(let i=0;i{if(typeof h==="string")s.push({name:h,kind:f,node:u,auth:!0})},n=(h,f)=>{if(typeof h==="string")s.push({name:h,kind:"plain",node:f,auth:!1})},a=(h,f,u)=>{let d=new Set;for(let p of h){if(d.has(p))throw this.positionedError(f,`emitter: '${p}' is bound twice in one ${u} — one binding per name; rename or drop the duplicate`,...r!==null?[r]:[]);d.add(p)}return h};{let h=[],f=[];for(let u of t??[]){this.patternNames(u,h,!0);let d=y(u)?u:t;while(f.lengthi(u,"parameter",f[d]))}let o=(h,f)=>{if(!y(h))return;if(this.isModuleImport(h)){for(let d of E.importedNames([h]))i(d,"import",h);return}if(T1(h))return;if(k1(h[0])){if(!f&&h.length===4&&typeof h[1]==="string")i(h[1],"def",h);return}if(h[0]==="enum"){if(!f)i(h[1],"enum",h);return}if(h[0]==="component"&&h.length===3)return;if(h[0]==="class"){if(!f)i(h[1],"class",h);if(h[2]!=null)o(h[2],!0);let d=h[3];if(b1(d)){for(let p of d.slice(1))if(y(p)&&F1.has(p[0])&&p.length===3)o(p[2],!0);else if(!E.isTypedWrapper(p))o(p,!0)}return}if(this.isReactiveDecl(h)){if(i(h[1],h[0]==="computed"?"computed":"state",h),!(h[0]==="computed"&&b1(h[2])&&h[2].length>2))o(h[2],f);return}if(this.isEffectDecl(h)){if(h[1]!==null)i(h[1],"effect",h);return}if(this.isReadonlyDecl(h)){i(h[1],"readonly",h),o(h[2],f);return}if(h[0]==="export"){for(let d of h.slice(1)){if(!y(d))continue;if((d[0]==="="||d[0]==="void-assign")&&d.length===3&&typeof d[1]==="string")i(d[1],"plain",d),o(d[2],f);else o(d,f)}return}if(h[0]==="for-in"||h[0]==="for-of"||h[0]==="for-as"){if(y(h[1])){let d=[];for(let p of h[1])this.patternNames(p,d,!0);a(d,h,"loop head")}for(let d of h.slice(2))o(d,!0);return}if(re(h)){o(h[1],!0);for(let d of h[2]??[]){let p=[];if(y(d[1]))for(let m of d[1])this.patternNames(m,p,!0);a(p,h,"comprehension clause"),o(d[2],!0)}for(let d of h[3]??[])o(d,!0);return}if(h[0]==="try"){for(let d of h.slice(2))if(y(d)&&d.length===2&&E.isPattern(d[0])){for(let p of a(this.patternNames(d[0]),d[0],"catch pattern"))n(p,h);o(d[1],!0)}else o(d,!0);o(h[1],!0);return}if(F1.has(h[0])&&h.length===3){if(typeof h[1]==="string")n(h[1],h);else if(h[0]==="="&&E.isPattern(h[1]))for(let d of a(this.patternNames(h[1]),h,"destructuring pattern"))n(d,h)}let u=f||E.BLOCK_HEADS.has(h[0]);for(let d of h)o(d,u)};for(let h of e)o(h,!1);s.forEach((h,f)=>{h.order=f});let l=(h,f)=>{let u=f.node!==null?this.nodeLine(f.node):null,d=f.kind==="state"||f.kind==="parameter"||f.kind==="plain"?` — assign with '${h.name} = …' to update it, or choose a different name`:" — choose a different name";throw this.positionedError(h.node,`emitter: '${h.name}' was already declared as ${f.kind}${u!==null?` on line ${u}`:""}${d}`,...r!==null?[r]:[])},c=new Map;for(let h of s){if(!h.auth)continue;let f=c.get(h.name);if(f!==void 0)l(h,f);c.set(h.name,h)}for(let h of s){if(h.auth)continue;let f=c.get(h.name);if(f!==void 0){if(f.auth&&h.orderu.members.has(h.name)))continue;c.set(h.name,h)}}pushReactiveFrame(e,t,r=[],s=null){let i=this.collectReactiveNames(e),n=this.collectEffectHandles(e),a=this.collectReadonlyNames(e);return this.checkScopeRedeclarations(e,r,s),this.rframes.push({reactive:i,computed:this.collectComputedNames(e),readonly:a,handles:n,bound:new Set([...t,...E.declaredNames(e),...n,...a]),enums:E.declaredEnumNames(e),classes:E.declaredClassNames(e),importSpecs:E.importedSpecs(e),exportedConst:E.exportedConstNames(e)}),new Set([...i,...n,...a])}withBindings(e,t){this.rframes.push({reactive:new Set,bound:new Set(e),block:!0}),t(),this.rframes.pop()}resolveBareRead(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e))return"reactive";if(r.bound.has(e))return null;if(r.members!==void 0&&r.members.has(e))return r.memberReactive.has(e)?"member-reactive":"member"}return null}kindOfName(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive?.has(e))return r.computed?.has(e)?"computed":"state";if(r.readonly?.has(e))return"readonly";if(r.handles?.has(e))return"effect";if(r.bound?.has(e))return null;if(r.members!==void 0&&r.members.has(e))return r.memberKinds?.get(e)??null}return null}isReactiveName(e){return this.resolveBareRead(e)==="reactive"}isEnumName(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.enums!==void 0&&r.enums.has(e))return!0;if(r.reactive.has(e)||r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}isClassName(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.classes!==void 0&&r.classes.has(e))return!0;if(r.reactive.has(e)||r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}noteLoopVarRead(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.loopVars!==void 0&&r.loopVars.has(e)){let s=r.loopBindings?.get(e);if(s!==void 0)s.owner.readVars.add(s.which);return}if(r.reactive.has(e)||r.bound.has(e))return;if(r.members!==void 0&&r.members.has(e))return}}static loopBindingsOf(e){let t=new Map;for(let r of e.loopStack){if(r.owner===void 0)continue;t.set(r.itemVar,{owner:r.owner,which:"item"}),t.set(r.indexVar,{owner:r.owner,which:"index"})}return t}isRenderLoopName(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.loopVars!==void 0&&r.loopVars.has(e))return!0;if(r.reactive.has(e)||r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}importSpecOf(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t],s=r.importSpecs?.get(e);if(s!==void 0)return s;if(r.reactive.has(e)||r.bound.has(e))return null;if(r.members!==void 0&&r.members.has(e))return null}return null}isComputedName(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e))return r.computed!==void 0&&r.computed.has(e);if(r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}isAmbientReadonly(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e))return!1;if(r.ambientReadonly!==void 0&&r.ambientReadonly.has(e))return!0;if(r.readonly!==void 0&&r.readonly.has(e))return!0;if(r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}memberKindOf(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e))return null;if(r.bound.has(e))return null;if(r.members!==void 0&&r.members.has(e))return r.members.get(e)}return null}thisMemberKindOf(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.members!==void 0)return r.members.has(e)?r.members.get(e):null}return null}static targetsRestView(e){if(!y(e))return!1;if(e[0]==="array")return e.slice(1).some((r)=>E.targetsRestView(r));if(e[0]==="object")return e.slice(1).some((r)=>y(r)&&E.targetsRestView(r[2]??r[1]));if(e[0]==="default"||e[0]==="rest")return E.targetsRestView(e[1]);let t=e;while(y(t)&&(t[0]==="."||t[0]==="[]"||t[0]==="?."||t[0]==="optindex")&&t.length===3){if(t[0]==="."&&t[1]==="this"&&t[2]==="rest")return!0;t=t[1]}return!1}checkBareRest(e,t){if(t!=="rest"||this.memberKindOf(t)!=="rest")return;let r=this.positionedError(e,"emitter: `rest` is provided by `extends`, not declared here — spell it `@rest`, as with `@stash` and `@router`");if(typeof r.start!=="number"&&this.b.currentMark)r.start=this.b.currentMark.sourceStart,r.end=this.b.currentMark.sourceEnd;throw r}checkMemberWrite(e,t){if(this.cframes.length===0)return;if(this.thisMemberKindOf("rest")==="rest"&&E.targetsRestView(t))throw this.positionedError(e,"emitter: `@rest` is the runtime-owned view of the caller's undeclared props and is never assigned — "+"set the attribute on the element in render, or declare the name as a prop the caller supplies");let r=null,s=null;if(typeof t==="string")this.checkBareRest(e,t),r=t,s=this.memberKindOf(t);else if(y(t)&&t[0]==="."&&t[1]==="this"&&typeof t[2]==="string")r=t[2],s=this.thisMemberKindOf(r);if(s===null)return;if(s==="readonly")throw this.positionedError(e,`emitter: cannot assign to readonly member '${r}' — a '=!' member never changes after _init; `+"a member that changes is state (':=')");if(s==="plain"){let i=this.cframes[this.cframes.length-1];if(!i.plainWrites.has(r))i.plainWrites.set(r,e)}}notePlainRenderRead(e,t=!1){if(this.rstate==null||this.cframes.length===0)return;if((t?this.thisMemberKindOf(e):this.memberKindOf(e))!=="plain")return;this.cframes[this.cframes.length-1].renderPlainReads.add(e)}collectComputedNames(e){let t=new Set,r=(s,i)=>{if(!y(s)||k1(s[0])||T1(s)||s[0]==="class"||s[0]==="enum")return;if(s[0]==="component"&&s.length===3)return;if(this.isReactiveDecl(s)){if(!i&&s[0]==="computed"&&typeof s[1]==="string")t.add(s[1]);return}if(this.isEffectDecl(s))return;let n=i||E.BLOCK_HEADS.has(s[0]);for(let a of s)r(a,n)};for(let s of e)r(s,!1);return t}bareRewrite(e){if(this.inPattern&&this.bindingPattern)return null;return this.resolveBareRead(e)}isReactiveRead(e){return this.bareRewrite(e)==="reactive"}memberIsReactive(e){let t=this.cframes[this.cframes.length-1];return t!==void 0&&t.memberReactive.has(e)}inComponent(){return this.cframes.length>0}reactiveRead(e){let t=this.b.currentMark,r=this.b.source;if(this.ts){let s=this.emitPrimitive(e);if(s!==null&&this._narrowedReads?.has(e))this.narrowedDecls.push({start:s[0],end:s[1]})}else if(t!==null&&r!==null&&r.slice(t.sourceStart,t.sourceEnd)===e)this.b.mark(t.nodeId,t.role,()=>this.b.emit(e));else this.b.emit(e);this.b.emit(".value")}memberRead(e,t){let r=this.b.currentMark,s=this.b.source;if(this.b.emit((this.renderSelf??"this")+"."),this.ts){let i=this.emitPrimitive(e);if(t&&i!==null)this.memberDecls.push({start:i[0],end:i[1]});if(i!==null&&this._narrowedReads?.has(e))this.narrowedDecls.push({start:i[0],end:i[1]})}else if(r!==null&&s!==null&&s.slice(r.sourceStart,r.sourceEnd)===e)this.b.mark(r.nodeId,r.role,()=>this.b.emit(e));else this.b.emit(e);if(t)this.b.emit(".value")}emitPrimitive(e){let t=this.b.currentMark,r=this.ts&&typeof e==="string"?this.b.claimPrimitiveSpan(e,this.primitiveAvoid):null;if(r===null&&this.primitiveReuse!==null&&this.primitiveReuse.name===e)r=this.primitiveReuse.span,this.primitiveReuse=null;if(r!==null&&Z1(e)){let s=this.kindOfName(e),i=typeof s==="string"?{label:s,optional:!1}:s;if(i!==null)this.kinds.push({start:r[0],end:r[1],label:i.label,name:e,optional:i.optional})}if(t!==null&&r!==null){let s=Z1(e)?"identifier":"literal";this.b.markSpan(t.nodeId,s,r[0],r[1],()=>this.noteNameSpan(e))}else this.noteNameSpan(e);return r}noteNameSpan(e){if(!this.ts||this.declaringName||typeof e!=="string"||!Z1(e)){this.b.emit(e);return}let t=this.b.offset;if(this.b.emit(e),this.isEnumName(e)){this.enums.push([t,this.b.offset]);return}if(this.isReactiveName(e)&&!this.isComputedName(e)){this.mutables.push([t,this.b.offset]);return}if(this.isClassName(e)){this.classDecls.push([t,this.b.offset]);return}if(this.isRenderLoopName(e)){this.loopVars.push([t,this.b.offset]),this.noteLoopVarRead(e);return}let r=this.importSpecOf(e);if(r!==null)this.importedRefs.push([t,this.b.offset,r.importedName,r.specifier])}withDeclaredName(e){let t=this.declaringName;this.declaringName=!0;try{return e()}finally{this.declaringName=t}}noteVocabulary(e,t,r){let s=this.wordSpanIn(t,r);if(s!==null)this.vocabulary.push({kind:e,start:s[0],end:s[1]})}noteShorthandClasses(e,t){for(let r of e)this.noteVocabulary("render-channel",r,t)}noteHeadKeyword(e,t,r){if(!this.ts)return;let s=y(r)?this.stores.idOf(r):null,i=s!==null?this.stores.selfSpan(s):null;if(i===null||this.b.source===null)return;let n=i[0]+t.length;if(n>i[1]||this.b.source.slice(i[0],n)!==t)return;this.vocabulary.push({kind:e,start:i[0],end:n})}noteKind(e,t,r){let s=this.stores.idOf(e),i=s!==null?this.stores.role(s,t):null;if(i?.sourceStart!=null&&i.sourceEnd>i.sourceStart){let n=this.b.source?.slice(i.sourceStart,i.sourceEnd)??null;this.kinds.push({start:i.sourceStart,end:i.sourceEnd,label:r,name:n})}}noteSilence(e,t){let r=this.wordSpanIn(e,t);if(r!==null)this.silences.push([r[0],r[1]])}static MEMBER_KINDS={state:"state",computed:"computed",readonly:"readonly",gate:"gate",accept:"accept"};static memberLabel(e){if(e.isPublic&&(e.kind==="prop"||e.kind==="state"))return"prop";return E.MEMBER_KINDS[e.kind]??null}noteMemberDecl(e){if(!this.ts)return;let t=y(e.nameNode)?this.stores.idOf(e.nameNode):null,r=t!==null?this.stores.role(t,e.nameRole):null;if(!r||typeof r.sourceStart!=="number")return;let s=E.memberLabel(e);if(s!==null)this.kinds.push({start:r.sourceStart,end:r.sourceEnd,label:s,name:e.name,optional:e.optional===!0,...e.kind==="accept"&&e.provider!=null?{provider:e.provider}:{}});if(!Hn(e))return;this.memberDecls.push({start:r.sourceStart,end:r.sourceEnd})}wordSpanIn(e,t){if(!this.ts)return null;let r=y(t)?this.stores.idOf(t):null,s=r!==null?this.stores.selfSpan(r):null;if(s===null)return null;let i=this.stores.primitiveSpans(e,s[0],s[1]);if(i.length!==1)return null;return[i[0].sourceStart,i[0].sourceEnd]}bareChildSpan(e,t,r){let s=(l)=>{let c=y(l)?this.stores.idOf(l):null;return c!==null?this.stores.selfSpan(c):null},i=s(r)??s(this.rstate?.node??null);if(i===null)return null;let[n,a]=i;for(let l=t-1;l>=0;l--){let c=s(e[l]);if(c){n=c[1];break}}for(let l=t+1;l — did you mean '${i}'?`;if(r)return`'${t}' is not a known attribute of <${e}> — a bare word sets the boolean attribute it `+`names; render a value with \`= ${t}\`, or spell \`name: value\``;return`'${t}' is not a known attribute of <${e}> — `+(s?"SVG attribute names are the spec's own, case-sensitive (`viewBox`)":"HTML attribute names are the spec's own, lowercase")+"; `data-`/`aria-` names take any suffix"}emitRewrittenPrimitive(e,t){let r=this.b.currentMark,s=this.ts?this.b.claimPrimitiveSpan(e):null;if(r!==null&&s!==null)this.b.markSpan(r.nodeId,"identifier",s[0],s[1],()=>this.b.emit(t));else this.b.emit(t);return s}emitQuotedPrimitive(e,t="'"){this.b.emit(t);let r=this.emitPrimitive(e);return this.b.emit(t),r}emitKeyAs(e,t){return e===t?this.emitPrimitive(e):this.emitRewrittenPrimitive(e,t)}emitPropertyRoadKey(e){let t=this.b.offset;if(e(),this.ts)this.attrNames.push([t,this.b.offset])}emitSchemaText(e,t=!1){let r=0,s=null;while(r0){let c=e[o];if(l!==null){if(c==="\\")o++;else if(c===l)l=null}else if(c==='"'||c==="'"||c==="`")l=c;else if(c==="{")a++;else if(c==="}")a--;o++}if(this.b.emit("${"),this.emitSchemaText(e.slice(n+2,a===0?o-1:o),t),a===0)this.b.emit("}");n=o;continue}this.b.emit(e[n]),n++}if(nthis.b.emit(a));else if(Z1(a))this.emitPrimitive(a);else this.b.emit(a);if(np.value===o[m].value),f=null;if(!h){f=Array.from({length:l+1},()=>Array(c+1).fill(0));for(let p=l-1;p>=0;p--)for(let m=c-1;m>=0;m--)f[p][m]=a[p].value===o[m].value?f[p+1][m+1]+1:Math.max(f[p][m+1],f[p+1][m])}let u=0,d=0;for(let p=0;pthis.noteNameSpan(m.value)),u++}else this.noteNameSpan(m.value);d=m.end}this.b.emit(r.slice(d))}registerVoidValue(e,t){if(T1(e)){this.voidFuncs.add(e);return}if(!(y(e)&&k1(e[0])))throw this.positionedError(e,"emitter: the void marker (a trailing '!' on the defined name) requires a function value — `save! = ->`, `save! =! ->`, `save! = =>`, `fn!: ->`",t)}withTarget(e){let t=this.inTarget;this.inTarget=!0,e(),this.inTarget=t}withPattern(e,t=!1){let r=this.inPattern,s=this.bindingPattern;this.inPattern=!0,this.bindingPattern=t,e(),this.inPattern=r,this.bindingPattern=s}withExpression(e){let t=this.inPattern,r=this.bindingPattern;this.inPattern=!1,this.bindingPattern=!1,e(),this.inPattern=t,this.bindingPattern=r}withDeopt(e){let t=this.deopt;this.deopt=!0,e(),this.deopt=t}mark(e,t,r){let s=this.stores.idOf(e);if(s!==null&&(t==="$self"||this.stores.role(s,t)!==null))this.b.mark(s,t,r);else r()}beginMark(e,t){let r=this.stores.idOf(e);if(r!==null&&(t==="$self"||this.stores.role(r,t)!==null))return this.b.beginMark(r,t),!0;return!1}endMark(e){if(e)this.b.endMark()}annotationText(e,t="annotation"){let r=this.stores.idOf(e);if(r===null)return null;let s=this.stores.role(r,t);if(!s||s.sourceStart==null||this.b.source===null)return null;return jt(this.b.source.slice(s.sourceStart,s.sourceEnd).replace(/^\s*:\s*/,""))}tsAnnotate(e,t,r){this.b.tsOnly(()=>this.mark(e,t,()=>this.emitTypeText(e,t,`: ${r}`)))}tsReturnAnnotation(e,t,r,s,i=e){if(!this.ts)return;let n=this.annotationText(e,"returnType");if(n!==null){let a=t&&!s&&!/^Promise\s*`:n;this.b.tsOnly(()=>this.mark(e,"returnType",()=>this.emitTypeText(e,"returnType",`: ${a}`)));return}if(r&&!s){let a=t?"Promise":"void";this.b.tsOnly(()=>this.mark(i,"voidMarker",()=>this.b.emit(`: ${a}`)))}}tsRendered(e,t){try{return t()}catch(r){if(r instanceof ii)throw this.positionedError(e,`emitter: ${r.message}`);throw r}}emitTsTypeDecls(e,t){if(!this.ts)return;for(let r of e){if(!y(r)||r[0]!=="type-decl")continue;this.tsTypeDeclLine(r,t)}}tsTypeDeclLine(e,t){let r=this.tsRendered(e,()=>vs(e[1])),s=this.tsDirectiveMap.get(e);if(s!==void 0){if(this.tsDirectiveMap.delete(e),r.length===1)for(let i of s)this.tsDirectiveLine(i,t,!0)}this.b.tsOnly(()=>{this.b.emit(t),this.mark(e,"$self",()=>this.mark(e,"declaration",()=>{this.emitTypeText(e,"declaration",r.join(` `+t))})),this.b.emit(` `)})}flushPendingTypeDecls(e,t=!1){if(!this.ts||this.pendingTypeDecls.length===0)return;let r=this.pendingTypeDecls;if(this.pendingTypeDecls=[],t)this.b.tsOnly(()=>this.b.emit(` -`));for(let n of r)this.tsTypeDeclLine(n,e)}emitSegments(e){for(let t of e)if(t.node!==void 0)this.mark(t.node,t.role,()=>this.emitAnnotationWords(t));else this.emitDeclaredTypeCopies(t.text)}emitDeclaredTypeCopies(e,t=null){let r=t??this.b.currentMark?.nodeId??null;if(r===null||!this.ts){this.b.emit(e);return}this.emitNamedCopies(e,null,r,null)}emitNamedCopies(e,t,r,n){if(r===null||!this.ts){this.b.emit(e);return}let i=this.moduleTypeDeclarationSpans();if(t!==null&&n!==null)i.set(t,n);if(i.size===0){this.b.emit(e);return}let s=0;for(let a of e.matchAll(/[A-Za-z_$][\w$]*/g)){let o=i.get(a[0]);if(o===void 0||a.indexthis.b.emit(a[0])),s=a.index+a[0].length}this.b.emit(e.slice(s))}moduleTypeDeclarationSpans(){if(this._typeDeclSpans===void 0){let e=new Map;if(this.b.source!==null){let t=/^(?:export\s+)?(?:(?:type|interface|enum)\s+([A-Za-z_$][\w$]*)|([A-Za-z_$][\w$]*)\s*=\s*schema\b|([A-Za-z_$][\w$]*)\s*=\s*[A-Za-z_$][\w$]*\s*\.\s*(?:pick|omit|partial|required|extend)\b)/gmd;for(let n of this.b.source.matchAll(t)){let i=n.indices[1]??n.indices[2]??n.indices[3],s=this.b.source.slice(i[0],i[1]);if(e.has(s))continue;e.set(s,[i[0],i[1]])}let r=/(?:^|,)\s*(?:type\s+)?(?:[A-Za-z_$][\w$]*\s+as\s+)?([A-Za-z_$][\w$]*)/gd;for(let n of this.b.source.matchAll(/^import\s+(?:type\s+)?\{([^}]*)\}/gmd)){let[i]=n.indices[1],s=n.index+n[0].length;for(let a of n[1].matchAll(r)){let[o,l]=a.indices[1],c=n[1].slice(o,l);if(e.has(c))continue;let h=new RegExp(`(?0){let o=this.b.source.lastIndexOf(r,a-1);if(o<0)break;if(!/[\w$]/.test(this.b.source[o-1]??" ")&&!/[\w$]/.test(this.b.source[o+r.length]??" "))return{id:n,span:[o,o+r.length]};a=o}return null}emitAnnotationWords(e){if(e.role!=="annotation"||!this.ts){this.b.emit(e.text);return}let t=this.stores.idOf(e.node),r=t!==null?this.stores.role(t,"annotation"):null,n=r?.sourceStart!=null&&this.b.source!==null?this.b.source.slice(r.sourceStart,r.sourceEnd):null;if(n===null||e.text.includes(n)){this.noteImportedTypeWords(e.text);return}let i=new Map;for(let a of n.matchAll(/[A-Za-z_$][\w$]*/g))if(!i.has(a[0]))i.set(a[0],[r.sourceStart+a.index,r.sourceStart+a.index+a[0].length]);let s=0;for(let a of e.text.matchAll(/[A-Za-z_$][\w$]*/g)){let o=i.get(a[0]);if(!o)continue;this.b.emit(e.text.slice(s,a.index)),this.b.markSpan(t,"identifier",o[0],o[1],()=>this.noteImportedTypeWords(a[0])),s=a.index+a[0].length}this.b.emit(e.text.slice(s))}noteImportedTypeWords(e){let t=this.declaringName;this.declaringName=!1;try{let r=0;for(let n of cr(e)){if(n.start>0&&e[n.start-1]==="."||this.importSpecOf(n.value)===null)continue;this.b.emit(e.slice(r,n.start)),this.noteNameSpan(n.value),r=n.end}this.b.emit(e.slice(r))}finally{this.declaringName=t}}tsComponentMemberDeclares(e,t){let r=(s)=>this.b.tsOnly(()=>{this.b.emit(t),s(),this.b.emit(` -`)}),n=!1;for(let s of e.members){if(s.name==="children")n=!0;if(!Us(s))continue;this.noteMemberDecl(s);let a=this.gateTwinSource(s,e);if(a!==null&&s.annotation==null){r(()=>this.emitGateTwin(s,a));continue}if(r(()=>this.emitSegments(Bs(s,e))),a!==null)r(()=>this.emitGateTwin(s,a,`__${s.name}__gate`))}if(!n)r(()=>this.b.emit("declare children?: __RipChildren;"));this._needsChildren=!0,r(()=>this.b.emit(`declare ${ta}: ${ra(e)};`));let i=Zs(e);if(i.some((s)=>s.includes("__ripAmbientStash(")))this._needsAmbienceHelper=!0;for(let s of i)r(()=>this.b.emit(s));if(e.extendsTag!==null)this._restTags.add(e.extendsTag),this._needsClassValue=!0,r(()=>this.b.emit(`declare rest: ${Di(Ci(e.extendsTag))};`));else if(e.extendsComponent!==null)r(()=>this.b.emit(`declare rest: ${Di(aa(e))};`)),r(()=>{if(this.b.emit("private static __ripHost() { return new "),e.hostSpan!==null&&e.hostNodeId!==null){let s=e.hostSpan[0];e.extendsComponent.split(".").forEach((a,o)=>{if(o>0)this.b.emit("."),s+=1;let l=s;s+=a.length,this.b.markSpan(e.hostNodeId,"identifier",l,s,()=>o===0?this.noteNameSpan(a):this.b.emit(a))})}else this.b.emit(e.extendsComponent);this.b.emit("(null!); }")});for(let s of na("this"))r(()=>this.b.emit(s));r(()=>this.b.emit("[key: `_${string}`]: any;"))}gateTwinSource(e,t){if(e.kind!=="gate"||!t.appStashSpec)return null;let r=E.gateSource(e.node);return r.error?null:r}emitGateTwin(e,t,r=null){if(r===null)this.mark(e.nameNode,e.nameRole,()=>this.b.emit(e.name));else this.b.emit(r);if(this.b.emit(" = __computed(() => this."),this.mark(t.pathNode,"$self",()=>{let n=E.gateChain(t.pathNode).slice(1);if(n.forEach((i,s)=>{if(s>0)this.b.emit(".");this.emitPrimitive(i)}),this.ts&&(n[0]==="stash"||n[0]==="router")){let i=this.stores.idOf(t.pathNode),s=i!==null?this.stores.selfSpan(i):null,a=s!==null?this.stores.primitiveSpans(n[0],s[0],s[1])[0]??null:null;if(a&&!this.kinds.some((o)=>o.start===a.sourceStart&&o.label===n[0]))this.kinds.push({start:a.sourceStart,end:a.sourceEnd,label:n[0],name:n[0],optional:!1})}}),t.key!==null){if(this.b.emit("("),t.keyParts===null)this.b.emit(t.keyCode);else this.mark(t.key,"$self",()=>{this.b.emit("this."),t.keyParts.forEach((n,i)=>{if(i>0)this.b.emit(".");this.emitPrimitive(n)})});this.b.emit(")")}this.b.emit("!);")}tsScaffoldAny(e=""){if(this.ts)this.b.tsOnly(()=>this.b.emit(`: any${e}`))}tsServedValue(e,t){if(!this.ts)return t(),null;let r=null;return this.b.tsOnly(()=>{this.b.emit("({ "),r=this.b.offset,this.b.emit(`${e}: `)}),t(),this.b.tsOnly(()=>this.b.emit(` }).${e}`)),r}capturedExprText(e,{source:t=null}={}){let r=this.b;this.b=new Re(this.stores,{source:t});let{n,used:i}=this.temps;this.temps.used=new Set(i);let s=["pinnables","mutables","enums","classDecls","loopVars","attrNames","importedRefs","vocabulary","silences","memberDecls","narrowedDecls","importSpans","pendingTypeDecls","loopVarDecls"],a={};for(let o of s)a[o]=this[o],this[o]=[];try{return this.withExpression(e),this.b.code}finally{this.b=r,Object.assign(this.temps,{n,used:i});for(let o of s)this[o]=a[o]}}tsLoopItemTypeText(e,t){let r=this.tsIterThunkName(e);return r===null?null:`NonNullable> extends readonly (infer __E)[] ? __E : any`}tsIterThunkName(e){let t=e.owner,{iter:r}=e;if(!this.ts||t===void 0||r===void 0)return null;if(this.containsAwait(r)||dr(r))return null;if(Ee(r,t.parent.locals))return null;let n=new Set;E.collectLeafNames(r,n);for(let i of[t.self,e.itemVar,e.indexVar,...t.renameHazardNames])if(n.has(i))return null;return`${t.name}_iter`}tsEventTypeText(e,t=null){let r=e.filter((s)=>Ut.has(s));if(r.length===0)return null;let n=r.map((s)=>`HTMLElementEventMap['${s}']`).join(" | "),i=t??"any";return`${r.length>1?`(${n})`:n} & { target: ${i}; currentTarget: ${i} }`}tsElReceiver(e){if(this.ts){let t=this.rstate?.tags?.get(e),r=this.rstate?.svgEls?.has(e)===!0;if(typeof t==="string"&&ot(t,r)){let n=vi(t,r);return this.domSurfaces.set(n,{tag:t,svg:r}),{surfaced:!0,emit:()=>{this.b.tsOnly(()=>this.b.emit("(")),this.b.emit(e),this.b.tsOnly(()=>this.b.emit(` as ${n})`))},valsName:lr(t,r),hostText:xe(t,r)}}}return{surfaced:!1,emit:()=>this.b.emit(e),valsName:null,hostText:null}}tsHandlerCast(e,t=null){if(!this.ts)return e(),null;let r=this.b.offset;return this.b.tsOnly(()=>this.b.emit("(")),e(),this.b.tsOnly(()=>this.b.emit(t===null?") as any":`) as (e: ${t}) => unknown`)),t===null?null:[r,this.b.offset]}tsComponentCtor(e,t){if(e.members.some((r)=>r.kind==="gate")){this.b.tsOnly(()=>{this.b.emit(`${t}declare static mount: never; +`));for(let s of r)this.tsTypeDeclLine(s,e)}emitSegments(e){for(let t of e)if(t.node!==void 0)this.mark(t.node,t.role,()=>this.emitAnnotationWords(t));else this.emitDeclaredTypeCopies(t.text)}emitDeclaredTypeCopies(e,t=null){let r=t??this.b.currentMark?.nodeId??null;if(r===null||!this.ts){this.b.emit(e);return}this.emitNamedCopies(e,null,r,null)}emitNamedCopies(e,t,r,s){if(r===null||!this.ts){this.b.emit(e);return}let i=this.moduleTypeDeclarationSpans();if(t!==null&&s!==null)i.set(t,s);if(i.size===0){this.b.emit(e);return}let n=0;for(let a of e.matchAll(/[A-Za-z_$][\w$]*/g)){let o=i.get(a[0]);if(o===void 0||a.indexthis.b.emit(a[0])),n=a.index+a[0].length}this.b.emit(e.slice(n))}moduleTypeDeclarationSpans(){if(this._typeDeclSpans===void 0){let e=new Map;if(this.b.source!==null){let t=/^(?:export\s+)?(?:(?:type|interface|enum)\s+([A-Za-z_$][\w$]*)|([A-Za-z_$][\w$]*)\s*=\s*schema\b|([A-Za-z_$][\w$]*)\s*=\s*[A-Za-z_$][\w$]*\s*\.\s*(?:pick|omit|partial|required|extend)\b)/gmd;for(let s of this.b.source.matchAll(t)){let i=s.indices[1]??s.indices[2]??s.indices[3],n=this.b.source.slice(i[0],i[1]);if(e.has(n))continue;e.set(n,[i[0],i[1]])}let r=/(?:^|,)\s*(?:type\s+)?(?:[A-Za-z_$][\w$]*\s+as\s+)?([A-Za-z_$][\w$]*)/gd;for(let s of this.b.source.matchAll(/^import\s+(?:type\s+)?\{([^}]*)\}/gmd)){let[i]=s.indices[1],n=s.index+s[0].length;for(let a of s[1].matchAll(r)){let[o,l]=a.indices[1],c=s[1].slice(o,l);if(e.has(c))continue;let h=new RegExp(`(?0){let o=this.b.source.lastIndexOf(r,a-1);if(o<0)break;if(!/[\w$]/.test(this.b.source[o-1]??" ")&&!/[\w$]/.test(this.b.source[o+r.length]??" "))return{id:s,span:[o,o+r.length]};a=o}return null}emitAnnotationWords(e){if(e.role!=="annotation"||!this.ts){this.b.emit(e.text);return}let t=this.stores.idOf(e.node),r=t!==null?this.stores.role(t,"annotation"):null,s=r?.sourceStart!=null&&this.b.source!==null?this.b.source.slice(r.sourceStart,r.sourceEnd):null;if(s===null||e.text.includes(s)){this.noteImportedTypeWords(e.text);return}let i=new Map;for(let a of s.matchAll(/[A-Za-z_$][\w$]*/g))if(!i.has(a[0]))i.set(a[0],[r.sourceStart+a.index,r.sourceStart+a.index+a[0].length]);let n=0;for(let a of e.text.matchAll(/[A-Za-z_$][\w$]*/g)){let o=i.get(a[0]);if(!o)continue;this.b.emit(e.text.slice(n,a.index)),this.b.markSpan(t,"identifier",o[0],o[1],()=>this.noteImportedTypeWords(a[0])),n=a.index+a[0].length}this.b.emit(e.text.slice(n))}noteImportedTypeWords(e){let t=this.declaringName;this.declaringName=!1;try{let r=0;for(let s of cr(e)){if(s.start>0&&e[s.start-1]==="."||this.importSpecOf(s.value)===null)continue;this.b.emit(e.slice(r,s.start)),this.noteNameSpan(s.value),r=s.end}this.b.emit(e.slice(r))}finally{this.declaringName=t}}tsComponentMemberDeclares(e,t){let r=(n)=>this.b.tsOnly(()=>{this.b.emit(t),n(),this.b.emit(` +`)}),s=!1;for(let n of e.members){if(n.name==="children")s=!0;if(!Wn(n))continue;this.noteMemberDecl(n);let a=this.gateTwinSource(n,e);if(a!==null&&n.annotation==null){r(()=>this.emitGateTwin(n,a));continue}if(r(()=>this.emitSegments(Vn(n,e))),a!==null)r(()=>this.emitGateTwin(n,a,`__${n.name}__gate`))}if(!s)r(()=>this.b.emit("declare children?: __RipChildren;"));this._needsChildren=!0,r(()=>this.b.emit(`declare ${ia}: ${sa(e)};`));let i=ea(e);if(i.some((n)=>n.includes("__ripAmbientStash(")))this._needsAmbienceHelper=!0;for(let n of i)r(()=>this.b.emit(n));if(e.extendsTag!==null)this._restTags.add(e.extendsTag),this._needsClassValue=!0,r(()=>this.b.emit(`declare rest: ${Di(Ci(e.extendsTag))};`));else if(e.extendsComponent!==null)r(()=>this.b.emit(`declare rest: ${Di(la(e))};`)),r(()=>{if(this.b.emit("private static __ripHost() { return new "),e.hostSpan!==null&&e.hostNodeId!==null){let n=e.hostSpan[0];e.extendsComponent.split(".").forEach((a,o)=>{if(o>0)this.b.emit("."),n+=1;let l=n;n+=a.length,this.b.markSpan(e.hostNodeId,"identifier",l,n,()=>o===0?this.noteNameSpan(a):this.b.emit(a))})}else this.b.emit(e.extendsComponent);this.b.emit("(null!); }")});for(let n of aa("this"))r(()=>this.b.emit(n));r(()=>this.b.emit("[key: `_${string}`]: any;"))}gateTwinSource(e,t){if(e.kind!=="gate"||!t.appStashSpec)return null;let r=E.gateSource(e.node);return r.error?null:r}emitGateTwin(e,t,r=null){if(r===null)this.mark(e.nameNode,e.nameRole,()=>this.b.emit(e.name));else this.b.emit(r);if(this.b.emit(" = __computed(() => this."),this.mark(t.pathNode,"$self",()=>{let s=E.gateChain(t.pathNode).slice(1);if(s.forEach((i,n)=>{if(n>0)this.b.emit(".");this.emitPrimitive(i)}),this.ts&&(s[0]==="stash"||s[0]==="router")){let i=this.stores.idOf(t.pathNode),n=i!==null?this.stores.selfSpan(i):null,a=n!==null?this.stores.primitiveSpans(s[0],n[0],n[1])[0]??null:null;if(a&&!this.kinds.some((o)=>o.start===a.sourceStart&&o.label===s[0]))this.kinds.push({start:a.sourceStart,end:a.sourceEnd,label:s[0],name:s[0],optional:!1})}}),t.key!==null){if(this.b.emit("("),t.keyParts===null)this.b.emit(t.keyCode);else this.mark(t.key,"$self",()=>{this.b.emit("this."),t.keyParts.forEach((s,i)=>{if(i>0)this.b.emit(".");this.emitPrimitive(s)})});this.b.emit(")")}this.b.emit("!);")}tsScaffoldAny(e=""){if(this.ts)this.b.tsOnly(()=>this.b.emit(`: any${e}`))}tsServedValue(e,t){if(!this.ts)return t(),null;let r=null;return this.b.tsOnly(()=>{this.b.emit("({ "),r=this.b.offset,this.b.emit(`${e}: `)}),t(),this.b.tsOnly(()=>this.b.emit(` }).${e}`)),r}capturedExprText(e,{source:t=null}={}){let r=this.b;this.b=new Re(this.stores,{source:t});let{n:s,used:i}=this.temps;this.temps.used=new Set(i);let n=["pinnables","mutables","enums","classDecls","loopVars","attrNames","importedRefs","vocabulary","silences","memberDecls","narrowedDecls","importSpans","pendingTypeDecls","loopVarDecls"],a={};for(let o of n)a[o]=this[o],this[o]=[];try{return this.withExpression(e),this.b.code}finally{this.b=r,Object.assign(this.temps,{n:s,used:i});for(let o of n)this[o]=a[o]}}tsLoopItemTypeText(e,t){let r=this.tsIterThunkName(e);return r===null?null:`NonNullable> extends readonly (infer __E)[] ? __E : any`}tsIterThunkName(e){let t=e.owner,{iter:r}=e;if(!this.ts||t===void 0||r===void 0)return null;if(this.containsAwait(r)||dr(r))return null;if(Ee(r,t.parent.locals))return null;let s=new Set;E.collectLeafNames(r,s);for(let i of[t.self,e.itemVar,e.indexVar,...t.renameHazardNames])if(s.has(i))return null;return`${t.name}_iter`}tsEventTypeText(e,t=null){let r=e.filter((n)=>Ut.has(n));if(r.length===0)return null;let s=r.map((n)=>`HTMLElementEventMap['${n}']`).join(" | "),i=t??"any";return`${r.length>1?`(${s})`:s} & { target: ${i}; currentTarget: ${i} }`}tsElReceiver(e){if(this.ts){let t=this.rstate?.tags?.get(e),r=this.rstate?.svgEls?.has(e)===!0;if(typeof t==="string"&&ot(t,r)){let s=vi(t,r);return this.domSurfaces.set(s,{tag:t,svg:r}),{surfaced:!0,emit:()=>{this.b.tsOnly(()=>this.b.emit("(")),this.b.emit(e),this.b.tsOnly(()=>this.b.emit(` as ${s})`))},valsName:lr(t,r),hostText:xe(t,r)}}}return{surfaced:!1,emit:()=>this.b.emit(e),valsName:null,hostText:null}}tsHandlerCast(e,t=null){if(!this.ts)return e(),null;let r=this.b.offset;return this.b.tsOnly(()=>this.b.emit("(")),e(),this.b.tsOnly(()=>this.b.emit(t===null?") as any":`) as (e: ${t}) => unknown`)),t===null?null:[r,this.b.offset]}tsComponentCtor(e,t){if(e.members.some((r)=>r.kind==="gate")){this.b.tsOnly(()=>{this.b.emit(`${t}declare static mount: never; `),this.b.emit(`${t}private constructor() { super(); } `)});return}if(!Ii(e))this.b.tsOnly(()=>this.b.emit(`${t}declare static mount: never; `));else this.b.tsOnly(()=>this.b.emit(`${t}declare static mount: (target?: Node | string) => InstanceType; -`));this.b.tsOnly(()=>{this.b.emit(`${t}constructor(props${Ii(e)?"?":""}: `),this.emitSegments(Ws(e,{road:"face"})),this.b.emit(`) { super(props); } -`)})}tsComponentCompanion(e,t,r,n=null){if(!this.ts)return;let i=this.componentInfo.get(e);if(i===void 0)return;let s=" ".repeat(this.ind),a=Ys(n);this.b.tsOnly(()=>{this.b.emit(` -`+s),this.mark(e,"$self",()=>{let c=this.stores.idOf(e),h=c!==null?this.stores.selfSpan(c):null,f=-1;if(h!==null&&this.b.source!==null){let p=h[0];while(p>0){let m=this.b.source.lastIndexOf(t,p-1);if(m<0)break;let g=this.b.source[m-1]??" ",b=this.b.source[m+t.length]??" ";if(!/[\w$]/.test(g)&&!/[\w$]/.test(b)){f=m;break}p=m}}let u=this.moduleTypeDeclarationSpans();if(f>=0)u.set(t,[f,f+t.length]);let d=(p)=>{if(u.size===0){this.b.emit(p);return}let m=0;for(let g of p.matchAll(/[A-Za-z_$][\w$]*/g)){let b=u.get(g[0]);if(!b)continue;this.b.emit(p.slice(m,g.index)),this.b.markSpan(c,"identifier",b[0],b[1],()=>this.b.emit(g[0])),m=g.index+g[0].length}this.b.emit(p.slice(m))};this.b.emit(`${r?"export ":""}interface `),d(t),this.b.emit(`${n??""} {`);for(let p of Gs(i,`${t}${a}`,{road:"face"})){this.b.emit(` -`+s+" ");let m=()=>{for(let g of p.segs)if(g.node!==void 0)this.mark(g.node,g.role,()=>this.emitAnnotationWords(g));else d(g.text)};if(p.node!==void 0)this.mark(p.node,p.role,m);else m()}this.b.emit(` -`+s+"}")})});let o=i.computedBodies??[];if(i.behavior===null||o.length===0)return;if(this.scopes[0]?.has(i.behavior)||this.moduleBound?.has(i.behavior))throw this.positionedError(e,`emitter: the module binds '${i.behavior}', the face-only name this component's `+"computed types read through — rename the binding");let l=`${t}${zs(n)}`;this.b.tsOnly(()=>this.b.echo(()=>{this.b.emit(` -`+s),this.mark(e,"$self",()=>{this.b.emit(`const ${i.behavior} = {`);let c=this.stores.idOf(e),h=c!==null?this.stores.selfSpan(c):null,f=-1;if(h!==null&&this.b.source!==null){let u=h[0];while(u>0){let d=this.b.source.lastIndexOf(t,u-1);if(d<0)break;if(!/[\w$]/.test(this.b.source[d-1]??" ")&&!/[\w$]/.test(this.b.source[d+t.length]??" ")){f=d;break}u=d}}o.forEach(({name:u,code:d,block:p},m)=>{this.b.emit(`${m>0?",":""} ${u}: function (this: `),this.emitNamedCopies(l,t,f>=0?c:null,f>=0?[f,f+t.length]:null),this.b.emit(`) ${p?d:`{ return ${d}; }`}`)}),this.b.emit(" };")})}))}static TS_DIRECTIVE=/^#[ \t]*@ts-(expect-error|ignore|nocheck)(?=\s|$)/;collectTypeOnlyImports(e,t){let r=new Set,n=[],i=(a)=>{if(typeof a==="string"){r.add(a);return}if(!y(a))return;if(Mi(this.stores,a)){let o=this.stores.idOf(a);if(o===null||this.stores.role(o,"typeOnly")===null)n.push(...E.importedNames([a]));return}if(a[0]==="typed-var"&&a.length===3){i(a[1]);return}if(a[0]==="def-sig"){i(a[2]);return}if(a[0]==="type-decl")return;for(let o of a)i(o)};if(i(e),n.length===0||!t)return;let s=new Set;for(let a of this.stores.nodes??[])for(let o of this.stores.rolesOf(a.nodeId)){if(!E.TYPE_ROLES.has(o.role)||typeof o.sourceStart!=="number")continue;for(let l of t.slice(o.sourceStart,o.sourceEnd).matchAll(/[A-Za-z_$][\w$]*/g))s.add(l[0])}for(let a of n)if(s.has(a)&&!r.has(a))this.typeOnlyImports.add(a)}collectAppAccessors(e){this.appAccessors={stash:null,router:null};for(let t of e.slice(1)){if(!Mi(this.stores,t))continue;let r=t[t.length-1];if(typeof r!=="string"||r.slice(1,-1)!=="rip/app")continue;let n=this.stores.idOf(t);if(n!==null&&this.stores.role(n,"typeOnly")!==null)continue;for(let i of E.importSpecs(t)){if(!y(i)||i[0]==="*")continue;for(let s of i){let a=y(s)?s[0]:s,o=y(s)?s[1]:s;if(a==="currentStash")this.appAccessors.stash=o;else if(a==="currentRouter")this.appAccessors.router=o}}}}isAccessorCall(e,t){if(t===null||!y(e)||e.length!==1||e[0]!==t)return!1;return!this.scopes.slice(1).some((r)=>r.has(t))}collectTsDirectives(e,t,r){if(this.tsDirectiveMap=new Map,this.tsNocheck=null,this.pendingHoistDirectives=[],t.length===0)return;let n=[0];for(let f=0;f{let u=0,d=n.length-1;while(u>1;if(n[p]<=f)u=p;else d=p-1}return u},s=[],a=[];for(let f of t){if(f.kind!=="comment")continue;let u=E.TS_DIRECTIVE.exec(f.text);if(u===null)continue;if(!/^[ \t]*$/.test(r.slice(n[i(f.start)],f.start)))continue;(u[1]==="nocheck"?a:s).push(f)}if(s.length===0&&a.length===0)return;let o=[],l=(f)=>{for(let u of f){if(!y(u))continue;let d=this.stores.idOf(u);if(d===null)continue;let p=this.stores.node(d);o.push({el:u,id:d,start:p.sourceStart,end:p.sourceEnd})}};l(e.slice(1));let c=(f)=>{if(!y(f))return;if(b1(f)){l(f.slice(1));for(let u of f.slice(1))if(y(u)&&O1(u))l(u.slice(1))}for(let u of f)c(u)};c(e),o.sort((f,u)=>f.start-u.start||u.end-f.end);for(let f of s){let u=o.find((p)=>p.start>=f.end);if(u===void 0||i(u.start)!==i(f.start)+1)continue;let d=this.tsDirectiveMap.get(u.el)??[];d.push({t:f,nodeId:u.id}),this.tsDirectiveMap.set(u.el,d)}let h=o.length>0?o[0].start:1/0;this.tsNocheck=this.ts?a.find((f)=>f.end<=h)??null:null}tsDirectiveLine(e,t,r=!1){this.b.tsOnly(()=>{if(r)this.b.emit(t);this.b.markSpan(e.nodeId,"tsDirective",e.t.start,e.t.end,()=>{this.b.emit("//"+e.t.text.slice(1))}),this.b.emit(r?` +`));this.b.tsOnly(()=>{this.b.emit(`${t}constructor(props${Ii(e)?"?":""}: `),this.emitSegments(Kn(e,{road:"face"})),this.b.emit(`) { super(props); } +`)})}tsComponentCompanion(e,t,r,s=null){if(!this.ts)return;let i=this.componentInfo.get(e);if(i===void 0)return;let n=" ".repeat(this.ind),a=qn(s);this.b.tsOnly(()=>{this.b.emit(` +`+n),this.mark(e,"$self",()=>{let c=this.stores.idOf(e),h=c!==null?this.stores.selfSpan(c):null,f=-1;if(h!==null&&this.b.source!==null){let p=h[0];while(p>0){let m=this.b.source.lastIndexOf(t,p-1);if(m<0)break;let g=this.b.source[m-1]??" ",b=this.b.source[m+t.length]??" ";if(!/[\w$]/.test(g)&&!/[\w$]/.test(b)){f=m;break}p=m}}let u=this.moduleTypeDeclarationSpans();if(f>=0)u.set(t,[f,f+t.length]);let d=(p)=>{if(u.size===0){this.b.emit(p);return}let m=0;for(let g of p.matchAll(/[A-Za-z_$][\w$]*/g)){let b=u.get(g[0]);if(!b)continue;this.b.emit(p.slice(m,g.index)),this.b.markSpan(c,"identifier",b[0],b[1],()=>this.b.emit(g[0])),m=g.index+g[0].length}this.b.emit(p.slice(m))};this.b.emit(`${r?"export ":""}interface `),d(t),this.b.emit(`${s??""} {`);for(let p of Yn(i,`${t}${a}`,{road:"face"})){this.b.emit(` +`+n+" ");let m=()=>{for(let g of p.segs)if(g.node!==void 0)this.mark(g.node,g.role,()=>this.emitAnnotationWords(g));else d(g.text)};if(p.node!==void 0)this.mark(p.node,p.role,m);else m()}this.b.emit(` +`+n+"}")})});let o=i.computedBodies??[];if(i.behavior===null||o.length===0)return;if(this.scopes[0]?.has(i.behavior)||this.moduleBound?.has(i.behavior))throw this.positionedError(e,`emitter: the module binds '${i.behavior}', the face-only name this component's `+"computed types read through — rename the binding");let l=`${t}${Xn(s)}`;this.b.tsOnly(()=>this.b.echo(()=>{this.b.emit(` +`+n),this.mark(e,"$self",()=>{this.b.emit(`const ${i.behavior} = {`);let c=this.stores.idOf(e),h=c!==null?this.stores.selfSpan(c):null,f=-1;if(h!==null&&this.b.source!==null){let u=h[0];while(u>0){let d=this.b.source.lastIndexOf(t,u-1);if(d<0)break;if(!/[\w$]/.test(this.b.source[d-1]??" ")&&!/[\w$]/.test(this.b.source[d+t.length]??" ")){f=d;break}u=d}}o.forEach(({name:u,code:d,block:p},m)=>{this.b.emit(`${m>0?",":""} ${u}: function (this: `),this.emitNamedCopies(l,t,f>=0?c:null,f>=0?[f,f+t.length]:null),this.b.emit(`) ${p?d:`{ return ${d}; }`}`)}),this.b.emit(" };")})}))}static TS_DIRECTIVE=/^#[ \t]*@ts-(expect-error|ignore|nocheck)(?=\s|$)/;collectTypeOnlyImports(e,t){let r=new Set,s=[],i=(a)=>{if(typeof a==="string"){r.add(a);return}if(!y(a))return;if(Mi(this.stores,a)){let o=this.stores.idOf(a);if(o===null||this.stores.role(o,"typeOnly")===null)s.push(...E.importedNames([a]));return}if(a[0]==="typed-var"&&a.length===3){i(a[1]);return}if(a[0]==="def-sig"){i(a[2]);return}if(a[0]==="type-decl")return;for(let o of a)i(o)};if(i(e),s.length===0||!t)return;let n=new Set;for(let a of this.stores.nodes??[])for(let o of this.stores.rolesOf(a.nodeId)){if(!E.TYPE_ROLES.has(o.role)||typeof o.sourceStart!=="number")continue;for(let l of t.slice(o.sourceStart,o.sourceEnd).matchAll(/[A-Za-z_$][\w$]*/g))n.add(l[0])}for(let a of s)if(n.has(a)&&!r.has(a))this.typeOnlyImports.add(a)}collectAppAccessors(e){this.appAccessors={stash:null,router:null};for(let t of e.slice(1)){if(!Mi(this.stores,t))continue;let r=t[t.length-1];if(typeof r!=="string"||r.slice(1,-1)!=="rip/app")continue;let s=this.stores.idOf(t);if(s!==null&&this.stores.role(s,"typeOnly")!==null)continue;for(let i of E.importSpecs(t)){if(!y(i)||i[0]==="*")continue;for(let n of i){let a=y(n)?n[0]:n,o=y(n)?n[1]:n;if(a==="currentStash")this.appAccessors.stash=o;else if(a==="currentRouter")this.appAccessors.router=o}}}}isAccessorCall(e,t){if(t===null||!y(e)||e.length!==1||e[0]!==t)return!1;return!this.scopes.slice(1).some((r)=>r.has(t))}collectTsDirectives(e,t,r){if(this.tsDirectiveMap=new Map,this.tsNocheck=null,this.pendingHoistDirectives=[],t.length===0)return;let s=[0];for(let f=0;f{let u=0,d=s.length-1;while(u>1;if(s[p]<=f)u=p;else d=p-1}return u},n=[],a=[];for(let f of t){if(f.kind!=="comment")continue;let u=E.TS_DIRECTIVE.exec(f.text);if(u===null)continue;if(!/^[ \t]*$/.test(r.slice(s[i(f.start)],f.start)))continue;(u[1]==="nocheck"?a:n).push(f)}if(n.length===0&&a.length===0)return;let o=[],l=(f)=>{for(let u of f){if(!y(u))continue;let d=this.stores.idOf(u);if(d===null)continue;let p=this.stores.node(d);o.push({el:u,id:d,start:p.sourceStart,end:p.sourceEnd})}};l(e.slice(1));let c=(f)=>{if(!y(f))return;if(b1(f)){l(f.slice(1));for(let u of f.slice(1))if(y(u)&&O1(u))l(u.slice(1))}for(let u of f)c(u)};c(e),o.sort((f,u)=>f.start-u.start||u.end-f.end);for(let f of n){let u=o.find((p)=>p.start>=f.end);if(u===void 0||i(u.start)!==i(f.start)+1)continue;let d=this.tsDirectiveMap.get(u.el)??[];d.push({t:f,nodeId:u.id}),this.tsDirectiveMap.set(u.el,d)}let h=o.length>0?o[0].start:1/0;this.tsNocheck=this.ts?a.find((f)=>f.end<=h)??null:null}tsDirectiveLine(e,t,r=!1){this.b.tsOnly(()=>{if(r)this.b.emit(t);this.b.markSpan(e.nodeId,"tsDirective",e.t.start,e.t.end,()=>{this.b.emit("//"+e.t.text.slice(1))}),this.b.emit(r?` `:` -`+t)})}withTsDirectives(e,t,r,n=!1){let i=this.ts&&this.tsDirectivesArmed&&y(e)?this.tsDirectiveMap.get(e):void 0;if(i===void 0)return r();this.tsDirectiveMap.delete(e);for(let s of i)this.tsDirectiveLine(s,t,n);r()}tsForwardDirectives(e){if(!this.ts||!this.tsDirectivesArmed)return;let t=this.tsDirectiveMap?.get(e);if(t===void 0)return;this.tsDirectiveMap.delete(e);for(let r of t)r.forwardOwner=e;this.pendingHoistDirectives.push(...t)}tsOverloadSigs(e,t){if(!this.ts)return;let r=this.pendingSigs.get(e);if(!r)return;for(let n of r){let i=this.tsRendered(n,()=>On(n[2],In(this.stores))),s=this.tsDirectiveMap.get(n);if(s!==void 0){this.tsDirectiveMap.delete(n);for(let a of s)this.tsDirectiveLine(a," ".repeat(t))}this.b.tsOnly(()=>{this.mark(n,"$self",()=>{this.b.emit("function "),this.mark(n,"name",()=>this.b.emit(n[1])),this.mark(n,"params",()=>this.b.emit(i)),this.mark(n,"returnType",()=>this.emitTypeText(n,"returnType",`: ${Be(n[3])}`)),this.b.emit(";")}),this.b.emit(` -`+" ".repeat(t))})}}patternNames(e,t=[],r=!1,n=null){if(!y(e)){if(typeof e==="string"&&e!==","){if(v3.has(e))throw this.positionedError(n,`emitter: \`${e}\` cannot be a destructuring target — a value word lowers to its literal before scope exists, so the binding would be unreachable`);t.push(e)}return t}if(e[0]==="array")for(let i of e.slice(1))this.patternNames(i,t,r,e);else if(e[0]==="object"){for(let i of e.slice(1))if(i[0]===null)this.patternNames(i[1],t,r,e);else if(i[0]===":")this.patternNames(i[2],t,r,e);else if(i[0]==="=")this.patternNames(i[1],t,r,e);else if(i[0]==="...")this.patternNames(i[1],t,r,e)}else if(e[0]==="rest"){if(!r)throw this.positionedError(e,"emitter: Cannot use 'rest' expression as a destructuring target (destructuring rest is spelled '...name')");this.patternNames(e[1],t,r,e)}else if(e[0]==="...")this.patternNames(e[1],t,r,e);else if(e[0]==="default")this.patternNames(e[1],t,r,e);else if(e[0]==="=")this.patternNames(e[1],t,r,e);else if(e[0]==="cast"||e[0]==="satisfies")this.patternNames(e[1],t,r,e);else if(e[0]==="typed-var")this.patternNames(e[1],t,r,e);return t}static isPattern(e){return O1(e)||y(e)&&e[0]==="array"}static declarablePattern(e){let t=(r)=>typeof r==="string"||(y(r)&&r[0]==="="?t(r[1]):E.declarablePattern(r));if(y(e)&&e[0]==="array"){let r=e.slice(1);return r.every((n,i)=>y(n)&&n[0]==="..."?i===r.length-1&&typeof n[1]==="string":t(n))}if(O1(e)){let r=e.slice(1);return r.every((n,i)=>{if(!y(n))return!1;if(n[0]===null)return typeof n[2]==="string";if(n[0]==="=")return typeof n[1]==="string";if(n[0]==="...")return i===r.length-1&&typeof n[1]==="string";return n[0]===":"&&t(n[2])})}return!1}rejectDuplicateDefault(e){let t=null;for(let r of e){if(!y(r)||r[0]!=="export-default")continue;if(t!==null)throw this.positionedError(r,"emitter: duplicate 'export default' — a module has exactly one default export",t);t=r}}static classDeclNames(e){let t=new Set;for(let r of e){if(!y(r))continue;let n=r[0]==="export"&&y(r[1])?r[1]:r;if(y(n)&&n[0]==="class"&&typeof n[1]==="string")t.add(n[1])}return t}static isTypedWrapper(e){return y(e)&&e[0]==="typed-var"&&e.length===3}static isErasedStmt(e){return y(e)&&(e[0]==="type-decl"||E.isTypedWrapper(e)||e[0]==="def-sig"&&e.length===4)}static stripErased(e){return e.filter((t)=>!E.isErasedStmt(t))}liveStmts(e,{forwards:t=!1}={}){let r=[];for(let n=0;ny(o)&&k1(o[0])&&o.length===4&&o[1]===s);if(!a)throw this.positionedError(i,`emitter: overload signature 'def ${s}' has no implementation — `+`a bodiless typed def must be followed by 'def ${s}' with a body in the same block`);if(this.ts){let o=this.pendingSigs.get(a)??[];if(!o.includes(i))o.push(i),this.pendingSigs.set(a,o)}}if(this.ts&&t&&E.isTypedWrapper(i)&&typeof i[1]==="string"&&!this.pendingHoistTypes.has(i[1]))this.pendingHoistTypes.set(i[1],i);if(t&&E.isTypedWrapper(i))this.tsForwardDirectives(i);this.erasedRows(i)}else r.push(i)}return r}erasedRows(e){this.mark(e,"$self",()=>{});let t=e[0]==="type-decl"?["declaration"]:e[0]==="def-sig"?["name","params","returnType"]:["target","annotation"];for(let r of t)this.mark(e,r,()=>{})}inScope(e){return this.scopes.some((t)=>t.has(e))||this.rframes.some((t)=>t.block===!0&&t.bound.has(e))}scopedHoist(e,t=[],{declareInPlace:r=!0}={}){for(let a of t){let o=E.paramMatchWrite(a);if(o!==null)throw this.positionedError(o,"emitter: a parameter default cannot write the last-match binding — "+"`_` lives in the enclosing body, which a default cannot reach (move the match into the body)")}let n=this.hoistTargets(e,t),i=n.filter(([a,o])=>{if(y(o)&&F1.has(o[0])&&!ct.has(o[0])&&typeof o[1]==="string"&&this.isExportedConst(o[1]))return!1;return!this.inScope(a)||a==="_"&&n.matchWrite});i.annotations=n.annotations,i.directives=n.directives;let s=new Set(i.map(([a])=>a));for(let a of t)for(let o of this.patternNames(a,[],!0))s.add(o);if(r)i=this.applyDeclareInPlace(i,e,{tailIsExpression:!0});return{entries:i,names:s}}hoistTargets(e,t=[],r=[]){let n=new Map,i=!1,s=new Set,a=[],o=new Map,l=(m,g)=>{if(this.ts&&!o.has(m)&&this.annotationText(g)!==null)o.set(m,g)},c=(m,g)=>{if(!n.has(m))n.set(m,g)},h=(m)=>{if(this.scopeBoundary(m)==="skip")return;if(E.isMatchWrite(m))c("_",m),i=!0;for(let g of m)h(g)},f=(m)=>{let g=this.scopeBoundary(m);if(g==="skip")return;if(this.ts&&E.isTypedWrapper(m)){if(typeof m[1]==="string")l(m[1],m);this.tsForwardDirectives(m)}if(ut(m)&&y(m[1][2]))a.push([this.chainTemp(m),m[1][2],"$self"]);if(g==="reactive"){if(typeof m[1]==="string")s.add(m[1]);if(!(m[0]==="computed"&&b1(m[2])&&m[2].length>2))f(m[2]);return}if(g==="effect"){if(typeof m[1]==="string")s.add(m[1]);return}if(g==="readonly"){if(typeof m[1]==="string")s.add(m[1]);f(m[2]);return}if(m[0]==="export"&&y(m[1])){let b=m[1];if((this.isReactiveDecl(b)||this.isEffectDecl(b)||this.isReadonlyDecl(b))&&typeof b[1]==="string"){if(s.add(b[1]),!this.isEffectDecl(b)&&!(b[0]==="computed"&&b1(b[2])&&b[2].length>2))f(b[2]);return}if(F1.has(b[0])&&b.length===3)f(b[2]);return}if(g==="loop"){h(m[1]);for(let b of m.slice(2))f(b);return}if(g==="comprehension"){f(m[1]);for(let b of m[2]??[])h(b[1]),f(b[2]);for(let b of m[3]??[])f(b);return}if(m[0]==="export")return;if(g==="class"){if(m[2]!=null)f(m[2]);let b=m[3];if(b1(b)){for(let S of b.slice(1))if(y(S)&&F1.has(S[0])&&S.length===3)f(S[2]);else if(!E.isTypedWrapper(S))f(S)}return}if(E.isMatchWrite(m))c("_",m),i=!0;if(F1.has(m[0])&&m.length===3){if(typeof m[1]==="string")c(m[1],m),l(m[1],m);else if(m[0]==="="&&E.isPattern(m[1]))for(let b of this.patternNames(m[1]))c(b,m)}if(m[0]==="try"){for(let b of m.slice(2))if(y(b)&&b.length===2&&E.isPattern(b[0]))for(let S of this.patternNames(b[0]))c(S,m)}for(let b of m)f(b)};for(let m of e)f(m);let u=[];for(let m of t)this.patternNames(m,u,!0);for(let m of u)n.delete(m);for(let m of s)n.delete(m);for(let m of E.declaredNames(e))n.delete(m);for(let m of r)n.delete(m);for(let m of e)if(this.isModuleImport(m))for(let g of E.importedNames([m]))n.delete(g);for(let m of this.cframes)for(let g of m.members.keys())n.delete(g);let d=[...n.entries()].map(([m,g])=>[m,g,"target"]);d.matchWrite=i,d.push(...a);let p=new Set([...n.keys(),...u,...s]);if(d.push(...this.planReferenceTemps(e,p)),d.sort(([m],[g])=>mg?1:0),this.ts){for(let[m,g]of this.pendingHoistTypes)if(!o.has(m))o.set(m,g);this.pendingHoistTypes.clear(),d.annotations=o,d.directives=this.pendingHoistDirectives,this.pendingHoistDirectives=[]}return d}static declaresInPlace=new WeakSet;static inlineOwners=new WeakMap;captureScan(e){let t=new Set(e.filter(y)),r=new Map,n=(a,o,l=!1,c=null,h=null,f="")=>{if(typeof a!=="string"||!ur.test(a))return;let u=r.get(a);if(u===void 0)r.set(a,u={decl:null,seen:!1,nested:!1,nestedWrite:!1,inDef:!1,annotated:null,firstWrite:null,firstWritePath:""});if(!u.seen)u.seen=!0,u.decl=c;if(l&&u.firstWrite===null&&h!==null)u.firstWrite=h,u.firstWritePath=f;if(o>0){if(u.nested=!0,l)u.nestedWrite=!0;if(o===2)u.inDef=!0}},i=(a,o,l)=>{let c=(h)=>{if(typeof h==="string"){if(h!==",")l(h);return}if(h[0]==="="){s(h[2],o),c(h[1]);return}if(h[0]==="..."){l(h[1]);return}i(h,o,l)};if(a[0]==="array"){for(let h of a.slice(1))c(h);return}for(let h of a.slice(1))if(h[0]===null)l(h[2]);else if(h[0]==="=")s(h[2],o),l(h[1]);else if(h[0]==="...")l(h[1]);else if(h[0]===":"){if(y(h[1]))s(h[1],o);c(h[2])}},s=(a,o)=>{if(typeof a==="string")return n(a,o);if(!y(a))return;if(E.isTypedWrapper(a)){if(typeof a[1]==="string"){let c=r.get(a[1]);if(c!==void 0&&c.annotated===null)c.annotated=a}return}let l=a[0];if(T1(a)){for(let c of a.slice(1))s(c,Math.max(o,1));return}if(k1(l)||l==="class"||l==="component"||l==="enum"){let c=k1(l)?2:Math.max(o,1);if(l==="class"){for(let h of a.slice(2)){let f=y(h)&&h[0]==="block"?h.slice(1):[h];for(let u of f)if(y(u)&&k1(u[0])&&u.length===4)for(let d of u.slice(2))s(d,c);else s(u,c)}return}for(let h of a.slice(typeof a[1]==="string"?2:1))s(h,c);return}if(E.isMatchWrite(a)){for(let c of a.slice(1))s(c,o);n("_",o,!0);return}if(F1.has(l)&&a.length===3){if(s(a[2],o),typeof a[1]==="string"){let c=ct.has(l);if(!c)n(a[1],o);if(n(a[1],o,!0,c&&!o&&t.has(a)?a:null,c?a:null),c&&this.annotationText(a)!==null){let h=r.get(a[1]);if(h!==void 0&&h.annotated===null)h.annotated=a}}else if(l==="="&&E.declarablePattern(a[1])){let c=!o&&t.has(a)?a:null,h=new Map(mr(a[1]));i(a[1],o,(f)=>n(f,o,!0,c,h.has(f)?a:null,h.get(f)??""))}else if(s(a[1],o),ct.has(l))for(let[c,h]of mr(a[1]))n(c,o,!0,null,a,h);return}if(U1(a)){if(typeof a[1]==="string")n(a[1],o,!0);else s(a[1],o);return}if((l==="."||l==="?.")&&a.length===3){if(s(a[1],o),typeof a[2]!=="string")s(a[2],o);return}if(l==="object"){for(let c of a.slice(1))if(y(c)&&c[0]===":"&&c.length===3){if(typeof c[1]!=="string")s(c[1],o);s(c[2],o)}else s(c,o);return}for(let c of a)s(c,o)};for(let a of e)s(a,0);return r}applyDeclareInPlace(e,t,{tailIsExpression:r=!1}={}){if(!e.some(([,,h])=>h==="target"))return e;let n=this.captureScan(t),i=null;if(r){for(let h=t.length-1;h>=0;h--)if(!E.isErasedStmt(t[h])){i=t[h];break}}let s=new Map,a=new Set(e.filter(([,,h])=>h==="target").map(([h])=>h)),o=new Map,l=(h)=>{let f=o.get(h);if(f===void 0){let u=this.patternNames(h[1]);if(f=u.every((d)=>{let p=n.get(d);return a.has(d)&&p!==void 0&&p.decl===h&&!p.inDef}),f){let d=u.find((p)=>n.get(p).annotated!==null);if(d!==void 0)throw this.positionedError(n.get(d).annotated,`emitter: '${d}' is declared by a destructuring pattern, which cannot carry this annotation — `+`rename the element in the pattern (\`${d}: raw\`) and declare \`${d}: T\` from it, or annotate the pattern's source`)}o.set(h,f)}return f},c=e.filter(([h,,f])=>{if(f!=="target")return!0;let u=n.get(h);if(!u||u.decl===null||u.inDef||u.decl===i)return!0;if(y(u.decl)&&ct.has(u.decl[0])&&E.controlGuard(u.decl[2]))return!0;if(E.isPattern(u.decl[1])){if(!l(u.decl))return!0;return E.declaresInPlace.add(u.decl),!1}let d=e.annotations?.get(h);if(d!==void 0&&d!==u.decl)E.inlineOwners.set(u.decl,d),s.set(d,u.decl);return E.declaresInPlace.add(u.decl),!1});if(c.annotations=e.annotations,c.schemaConsts=e.schemaConsts,e.directives?.length&&s.size){c.directives=[];for(let h of e.directives){let f=h.forwardOwner!==void 0?s.get(h.forwardOwner):void 0;if(f!==void 0){let u=this.tsDirectiveMap.get(f)??[];u.push(h),this.tsDirectiveMap.set(f,u)}else c.directives.push(h)}}else c.directives=e.directives;c.classBindings=new Set,c.componentTypes=new Map;for(let[h,,f]of c){if(f!=="target")continue;let u=n.get(h)?.firstWrite??null,d=u?.[2];if(!y(d))continue;if(d[0]==="class"||d[0]==="component")c.classBindings.add(h);if(!this.ts||!this.isComponentDecl(d))continue;if(this.annotationText(u,"typeParams")!==null)continue;let p=Oi(this.stores,this.b.source,d,`__${h}__computed`);p.appStashSpec=this.appStashSpec,p.routesUnion=this.routesUnion,p.routeParams=this.routeParams,c.componentTypes.set(h,`{ ${ia(p,h,"",h,{road:"face"}).join(" ")} }`),(c.componentInfos??=new Map).set(h,p)}c.pinnable=new Map;for(let[h,,f]of c){if(f!=="target")continue;let u=n.get(h);if(!u?.nested||u.firstWrite===null)continue;if(c.annotations?.has(h)||c.schemaConsts?.has(h))continue;if(c.componentTypes.has(h))continue;let d=this.pinKey(h,u.firstWrite,u.firstWritePath);c.pinnable.set(h,{node:u.firstWrite,key:d}),this.pinnables?.push({name:h,node:u.firstWrite,path:u.firstWritePath,key:d})}return c}pinKey(e,t,r=""){let n=this.stores.idOf(t),i=n!==null?this.stores.role(n,"value"):null;if(!i||i.sourceStart==null||this.b.source===null)return null;let s=r+"\x00"+this.b.source.slice(i.sourceStart,i.sourceEnd),a=5381;for(let o=0;o>>0;return`${e}@${a.toString(36)}`}chainTemp(e){let t=this.temps.byNode.get(e);if(t===void 0)t=this.freshTempName(),this.temps.byNode.set(e,t);return t}freshTempName(){let e;do e=this.temps.n===0?"_ref":`_ref${this.temps.n}`,this.temps.n++;while(this.temps.used.has(e));return e}inCtrl(e){this.ctrlDepth++;try{e()}finally{this.ctrlDepth--}}loopTempName(e){let t=e;for(let r=1;this.temps.used.has(t);r++)t=`${e}${r}`;return t}runtimeName(e){let t=this.runtimeAliases.get(e);if(t===void 0)throw Error(`emitter invariant: generated runtime name '${e}' is not registered`);return t}hoistLine(e,t=""){if(e.length===1)for(let r of e.directives??[])this.tsDirectiveLine(r,t);this.b.emit("let "),e.forEach(([r,n,i],s)=>{if(s>0)this.b.emit(", ");let a=this.ts&&i==="target"?e.annotations?.get(r)??null:null,o=a!==null?this.stores.idOf(a):null,l=o!==null&&E.isTypedWrapper(a)&&this.stores.role(o,"target")!==null,c=this.b.offset;if(l)this.mark(a,"target",()=>this.b.emit(r));else{let h=this.stores.idOf(n),f=h!==null?this.stores.role(h,i):null,u=f?.sourceStart!=null&&this.b.source!==null?this.b.source.slice(f.sourceStart,f.sourceEnd):null,d=u!==null&&u!==r?this.stores.primitiveSpans(r,f.sourceStart,f.sourceEnd)[0]??null:null;if(d)this.b.markSpan(h,"identifier",d.sourceStart,d.sourceEnd,()=>this.b.emit(r));else this.mark(n,i,()=>this.b.emit(r))}if(this.ts&&i==="target"&&e.classBindings?.has(r))this.classDecls.push([c,this.b.offset]);if(this.ts&&i==="target")if(a!==null)this.b.tsOnly(()=>{if(E.isTypedWrapper(a)&&!this.strict)this.b.emit("!");this.mark(a,"annotation",()=>this.b.emit(`: ${this.annotationText(a)}`))});else{let h=e.schemaConsts?.get(r)??null,f=e.componentTypes?.get(r)??null;if(h!==null){let u=this.bindingNameSpan(n,i,r);this.b.tsOnly(()=>{this.b.emit(": "),this.emitNamedCopies(h,r,u?.id??null,u?.span??null)})}else if(f!==null){let u=e.componentInfos?.get(r)??null,d=this.stores.idOf(n),p=d!==null?this.stores.role(d,i):null,m=p?.sourceStart!=null&&this.b.source?.slice(p.sourceStart,p.sourceEnd)===r?[p.sourceStart,p.sourceEnd]:null;this.b.tsOnly(()=>{if(this.b.emit(`${this.strict?"":"!"}: `),u!==null)for(let g of oa(u,r,"",r,{road:"face"})){if(g.node!==void 0){this.mark(g.node,g.role,()=>this.b.emit(g.text));continue}this.emitNamedCopies(g.text,r,d,m)}else this.b.emit(f)})}else{let u=e.pinnable?.get(r)?.key??null,d=u!==null?this.pins?.get(u):void 0;if(d!==void 0)this.b.tsOnly(()=>{this.pinnedWrites.add(e.pinnable.get(r).node);let p=this.b.offset;this.b.emit(`${this.strict?"":"!"}: `),this.emitDeclaredTypeCopies(d,this.stores.idOf(n)),this.pinSpans.push([p,this.b.offset])})}}}),this.b.emit(";")}program(e){return this.programWith(e)}ambientHoistFilter(e){if(this.scopes.length===0)return e;let t=e.filter(([r])=>!this.inScope(r)||r==="_"&&e.matchWrite);return t.matchWrite=e.matchWrite,t.annotations=e.annotations,t.directives=e.directives,t}attachSchemaConsts(e){if(!this.schemaStories)return;let t=new Map;for(let r of this.schemaStories.values())if(!r.decl.exported&&r.constType!==null)t.set(r.decl.name,r.constType);if(t.size)e.schemaConsts=t}programWith(e){let t=this.liveStmts(e.slice(1),{forwards:!0}),r=0;while(r0){this.mark(e,"$self",()=>{for(let a of t.slice(0,r))this.statement(a,0);this.emitDataConst();let n=t.slice(r),i=this.ambientHoistFilter(this.hoistTargets(n,[],E.importedNames(t.slice(0,r))));this.attachSchemaConsts(i);let s=new Set([...i.map(([a])=>a),...E.importedNames(t.slice(0,r))]);for(let a of this.pushReactiveFrame(t,s))s.add(a);if(this.moduleBound=E.moduleBoundNames(n),this.moduleClassNames=E.classDeclNames(n),this.rejectDuplicateDefault(n),this.scopes.push(s),i=this.applyDeclareInPlace(i,e.slice(1),{tailIsExpression:this.repl}),i.length)this.hoistLine(i),this.b.emit(` +`+t)})}withTsDirectives(e,t,r,s=!1){let i=this.ts&&this.tsDirectivesArmed&&y(e)?this.tsDirectiveMap.get(e):void 0;if(i===void 0)return r();this.tsDirectiveMap.delete(e);for(let n of i)this.tsDirectiveLine(n,t,s);r()}tsForwardDirectives(e){if(!this.ts||!this.tsDirectivesArmed)return;let t=this.tsDirectiveMap?.get(e);if(t===void 0)return;this.tsDirectiveMap.delete(e);for(let r of t)r.forwardOwner=e;this.pendingHoistDirectives.push(...t)}tsOverloadSigs(e,t){if(!this.ts)return;let r=this.pendingSigs.get(e);if(!r)return;for(let s of r){let i=this.tsRendered(s,()=>Os(s[2],Is(this.stores))),n=this.tsDirectiveMap.get(s);if(n!==void 0){this.tsDirectiveMap.delete(s);for(let a of n)this.tsDirectiveLine(a," ".repeat(t))}this.b.tsOnly(()=>{this.mark(s,"$self",()=>{this.b.emit("function "),this.mark(s,"name",()=>this.b.emit(s[1])),this.mark(s,"params",()=>this.b.emit(i)),this.mark(s,"returnType",()=>this.emitTypeText(s,"returnType",`: ${Be(s[3])}`)),this.b.emit(";")}),this.b.emit(` +`+" ".repeat(t))})}}patternNames(e,t=[],r=!1,s=null){if(!y(e)){if(typeof e==="string"&&e!==","){if($3.has(e))throw this.positionedError(s,`emitter: \`${e}\` cannot be a destructuring target — a value word lowers to its literal before scope exists, so the binding would be unreachable`);t.push(e)}return t}if(e[0]==="array")for(let i of e.slice(1))this.patternNames(i,t,r,e);else if(e[0]==="object"){for(let i of e.slice(1))if(i[0]===null)this.patternNames(i[1],t,r,e);else if(i[0]===":")this.patternNames(i[2],t,r,e);else if(i[0]==="=")this.patternNames(i[1],t,r,e);else if(i[0]==="...")this.patternNames(i[1],t,r,e)}else if(e[0]==="rest"){if(!r)throw this.positionedError(e,"emitter: Cannot use 'rest' expression as a destructuring target (destructuring rest is spelled '...name')");this.patternNames(e[1],t,r,e)}else if(e[0]==="...")this.patternNames(e[1],t,r,e);else if(e[0]==="default")this.patternNames(e[1],t,r,e);else if(e[0]==="=")this.patternNames(e[1],t,r,e);else if(e[0]==="cast"||e[0]==="satisfies")this.patternNames(e[1],t,r,e);else if(e[0]==="typed-var")this.patternNames(e[1],t,r,e);return t}static isPattern(e){return O1(e)||y(e)&&e[0]==="array"}static declarablePattern(e){let t=(r)=>typeof r==="string"||(y(r)&&r[0]==="="?t(r[1]):E.declarablePattern(r));if(y(e)&&e[0]==="array"){let r=e.slice(1);return r.every((s,i)=>y(s)&&s[0]==="..."?i===r.length-1&&typeof s[1]==="string":t(s))}if(O1(e)){let r=e.slice(1);return r.every((s,i)=>{if(!y(s))return!1;if(s[0]===null)return typeof s[2]==="string";if(s[0]==="=")return typeof s[1]==="string";if(s[0]==="...")return i===r.length-1&&typeof s[1]==="string";return s[0]===":"&&t(s[2])})}return!1}rejectDuplicateDefault(e){let t=null;for(let r of e){if(!y(r)||r[0]!=="export-default")continue;if(t!==null)throw this.positionedError(r,"emitter: duplicate 'export default' — a module has exactly one default export",t);t=r}}static classDeclNames(e){let t=new Set;for(let r of e){if(!y(r))continue;let s=r[0]==="export"&&y(r[1])?r[1]:r;if(y(s)&&s[0]==="class"&&typeof s[1]==="string")t.add(s[1])}return t}static isTypedWrapper(e){return y(e)&&e[0]==="typed-var"&&e.length===3}static isErasedStmt(e){return y(e)&&(e[0]==="type-decl"||E.isTypedWrapper(e)||e[0]==="def-sig"&&e.length===4)}static stripErased(e){return e.filter((t)=>!E.isErasedStmt(t))}liveStmts(e,{forwards:t=!1}={}){let r=[];for(let s=0;sy(o)&&k1(o[0])&&o.length===4&&o[1]===n);if(!a)throw this.positionedError(i,`emitter: overload signature 'def ${n}' has no implementation — `+`a bodiless typed def must be followed by 'def ${n}' with a body in the same block`);if(this.ts){let o=this.pendingSigs.get(a)??[];if(!o.includes(i))o.push(i),this.pendingSigs.set(a,o)}}if(this.ts&&t&&E.isTypedWrapper(i)&&typeof i[1]==="string"&&!this.pendingHoistTypes.has(i[1]))this.pendingHoistTypes.set(i[1],i);if(t&&E.isTypedWrapper(i))this.tsForwardDirectives(i);this.erasedRows(i)}else r.push(i)}return r}erasedRows(e){this.mark(e,"$self",()=>{});let t=e[0]==="type-decl"?["declaration"]:e[0]==="def-sig"?["name","params","returnType"]:["target","annotation"];for(let r of t)this.mark(e,r,()=>{})}inScope(e){return this.scopes.some((t)=>t.has(e))||this.rframes.some((t)=>t.block===!0&&t.bound.has(e))}scopedHoist(e,t=[],{declareInPlace:r=!0}={}){for(let a of t){let o=E.paramMatchWrite(a);if(o!==null)throw this.positionedError(o,"emitter: a parameter default cannot write the last-match binding — "+"`_` lives in the enclosing body, which a default cannot reach (move the match into the body)")}let s=this.hoistTargets(e,t),i=s.filter(([a,o])=>{if(y(o)&&F1.has(o[0])&&!ct.has(o[0])&&typeof o[1]==="string"&&this.isExportedConst(o[1]))return!1;return!this.inScope(a)||a==="_"&&s.matchWrite});i.annotations=s.annotations,i.directives=s.directives;let n=new Set(i.map(([a])=>a));for(let a of t)for(let o of this.patternNames(a,[],!0))n.add(o);if(r)i=this.applyDeclareInPlace(i,e,{tailIsExpression:!0});return{entries:i,names:n}}hoistTargets(e,t=[],r=[]){let s=new Map,i=!1,n=new Set,a=[],o=new Map,l=(m,g)=>{if(this.ts&&!o.has(m)&&this.annotationText(g)!==null)o.set(m,g)},c=(m,g)=>{if(!s.has(m))s.set(m,g)},h=(m)=>{if(this.scopeBoundary(m)==="skip")return;if(E.isMatchWrite(m))c("_",m),i=!0;for(let g of m)h(g)},f=(m)=>{let g=this.scopeBoundary(m);if(g==="skip")return;if(this.ts&&E.isTypedWrapper(m)){if(typeof m[1]==="string")l(m[1],m);this.tsForwardDirectives(m)}if(ut(m)&&y(m[1][2]))a.push([this.chainTemp(m),m[1][2],"$self"]);if(g==="reactive"){if(typeof m[1]==="string")n.add(m[1]);if(!(m[0]==="computed"&&b1(m[2])&&m[2].length>2))f(m[2]);return}if(g==="effect"){if(typeof m[1]==="string")n.add(m[1]);return}if(g==="readonly"){if(typeof m[1]==="string")n.add(m[1]);f(m[2]);return}if(m[0]==="export"&&y(m[1])){let b=m[1];if((this.isReactiveDecl(b)||this.isEffectDecl(b)||this.isReadonlyDecl(b))&&typeof b[1]==="string"){if(n.add(b[1]),!this.isEffectDecl(b)&&!(b[0]==="computed"&&b1(b[2])&&b[2].length>2))f(b[2]);return}if(F1.has(b[0])&&b.length===3)f(b[2]);return}if(g==="loop"){h(m[1]);for(let b of m.slice(2))f(b);return}if(g==="comprehension"){f(m[1]);for(let b of m[2]??[])h(b[1]),f(b[2]);for(let b of m[3]??[])f(b);return}if(m[0]==="export")return;if(g==="class"){if(m[2]!=null)f(m[2]);let b=m[3];if(b1(b)){for(let S of b.slice(1))if(y(S)&&F1.has(S[0])&&S.length===3)f(S[2]);else if(!E.isTypedWrapper(S))f(S)}return}if(E.isMatchWrite(m))c("_",m),i=!0;if(F1.has(m[0])&&m.length===3){if(typeof m[1]==="string")c(m[1],m),l(m[1],m);else if(m[0]==="="&&E.isPattern(m[1]))for(let b of this.patternNames(m[1]))c(b,m)}if(m[0]==="try"){for(let b of m.slice(2))if(y(b)&&b.length===2&&E.isPattern(b[0]))for(let S of this.patternNames(b[0]))c(S,m)}for(let b of m)f(b)};for(let m of e)f(m);let u=[];for(let m of t)this.patternNames(m,u,!0);for(let m of u)s.delete(m);for(let m of n)s.delete(m);for(let m of E.declaredNames(e))s.delete(m);for(let m of r)s.delete(m);for(let m of e)if(this.isModuleImport(m))for(let g of E.importedNames([m]))s.delete(g);for(let m of this.cframes)for(let g of m.members.keys())s.delete(g);let d=[...s.entries()].map(([m,g])=>[m,g,"target"]);d.matchWrite=i,d.push(...a);let p=new Set([...s.keys(),...u,...n]);if(d.push(...this.planReferenceTemps(e,p)),d.sort(([m],[g])=>mg?1:0),this.ts){for(let[m,g]of this.pendingHoistTypes)if(!o.has(m))o.set(m,g);this.pendingHoistTypes.clear(),d.annotations=o,d.directives=this.pendingHoistDirectives,this.pendingHoistDirectives=[]}return d}static declaresInPlace=new WeakSet;static inlineOwners=new WeakMap;captureScan(e){let t=new Set(e.filter(y)),r=new Map,s=(a,o,l=!1,c=null,h=null,f="")=>{if(typeof a!=="string"||!ur.test(a))return;let u=r.get(a);if(u===void 0)r.set(a,u={decl:null,seen:!1,nested:!1,nestedWrite:!1,inDef:!1,annotated:null,firstWrite:null,firstWritePath:""});if(!u.seen)u.seen=!0,u.decl=c;if(l&&u.firstWrite===null&&h!==null)u.firstWrite=h,u.firstWritePath=f;if(o>0){if(u.nested=!0,l)u.nestedWrite=!0;if(o===2)u.inDef=!0}},i=(a,o,l)=>{let c=(h)=>{if(typeof h==="string"){if(h!==",")l(h);return}if(h[0]==="="){n(h[2],o),c(h[1]);return}if(h[0]==="..."){l(h[1]);return}i(h,o,l)};if(a[0]==="array"){for(let h of a.slice(1))c(h);return}for(let h of a.slice(1))if(h[0]===null)l(h[2]);else if(h[0]==="=")n(h[2],o),l(h[1]);else if(h[0]==="...")l(h[1]);else if(h[0]===":"){if(y(h[1]))n(h[1],o);c(h[2])}},n=(a,o)=>{if(typeof a==="string")return s(a,o);if(!y(a))return;if(E.isTypedWrapper(a)){if(typeof a[1]==="string"){let c=r.get(a[1]);if(c!==void 0&&c.annotated===null)c.annotated=a}return}let l=a[0];if(T1(a)){for(let c of a.slice(1))n(c,Math.max(o,1));return}if(k1(l)||l==="class"||l==="component"||l==="enum"){let c=k1(l)?2:Math.max(o,1);if(l==="class"){for(let h of a.slice(2)){let f=y(h)&&h[0]==="block"?h.slice(1):[h];for(let u of f)if(y(u)&&k1(u[0])&&u.length===4)for(let d of u.slice(2))n(d,c);else n(u,c)}return}for(let h of a.slice(typeof a[1]==="string"?2:1))n(h,c);return}if(E.isMatchWrite(a)){for(let c of a.slice(1))n(c,o);s("_",o,!0);return}if(F1.has(l)&&a.length===3){if(n(a[2],o),typeof a[1]==="string"){let c=ct.has(l);if(!c)s(a[1],o);if(s(a[1],o,!0,c&&!o&&t.has(a)?a:null,c?a:null),c&&this.annotationText(a)!==null){let h=r.get(a[1]);if(h!==void 0&&h.annotated===null)h.annotated=a}}else if(l==="="&&E.declarablePattern(a[1])){let c=!o&&t.has(a)?a:null,h=new Map(mr(a[1]));i(a[1],o,(f)=>s(f,o,!0,c,h.has(f)?a:null,h.get(f)??""))}else if(n(a[1],o),ct.has(l))for(let[c,h]of mr(a[1]))s(c,o,!0,null,a,h);return}if(U1(a)){if(typeof a[1]==="string")s(a[1],o,!0);else n(a[1],o);return}if((l==="."||l==="?.")&&a.length===3){if(n(a[1],o),typeof a[2]!=="string")n(a[2],o);return}if(l==="object"){for(let c of a.slice(1))if(y(c)&&c[0]===":"&&c.length===3){if(typeof c[1]!=="string")n(c[1],o);n(c[2],o)}else n(c,o);return}for(let c of a)n(c,o)};for(let a of e)n(a,0);return r}applyDeclareInPlace(e,t,{tailIsExpression:r=!1}={}){if(!e.some(([,,h])=>h==="target"))return e;let s=this.captureScan(t),i=null;if(r){for(let h=t.length-1;h>=0;h--)if(!E.isErasedStmt(t[h])){i=t[h];break}}let n=new Map,a=new Set(e.filter(([,,h])=>h==="target").map(([h])=>h)),o=new Map,l=(h)=>{let f=o.get(h);if(f===void 0){let u=this.patternNames(h[1]);if(f=u.every((d)=>{let p=s.get(d);return a.has(d)&&p!==void 0&&p.decl===h&&!p.inDef}),f){let d=u.find((p)=>s.get(p).annotated!==null);if(d!==void 0)throw this.positionedError(s.get(d).annotated,`emitter: '${d}' is declared by a destructuring pattern, which cannot carry this annotation — `+`rename the element in the pattern (\`${d}: raw\`) and declare \`${d}: T\` from it, or annotate the pattern's source`)}o.set(h,f)}return f},c=e.filter(([h,,f])=>{if(f!=="target")return!0;let u=s.get(h);if(!u||u.decl===null||u.inDef||u.decl===i)return!0;if(y(u.decl)&&ct.has(u.decl[0])&&E.controlGuard(u.decl[2]))return!0;if(E.isPattern(u.decl[1])){if(!l(u.decl))return!0;return E.declaresInPlace.add(u.decl),!1}let d=e.annotations?.get(h);if(d!==void 0&&d!==u.decl)E.inlineOwners.set(u.decl,d),n.set(d,u.decl);return E.declaresInPlace.add(u.decl),!1});if(c.annotations=e.annotations,c.schemaConsts=e.schemaConsts,e.directives?.length&&n.size){c.directives=[];for(let h of e.directives){let f=h.forwardOwner!==void 0?n.get(h.forwardOwner):void 0;if(f!==void 0){let u=this.tsDirectiveMap.get(f)??[];u.push(h),this.tsDirectiveMap.set(f,u)}else c.directives.push(h)}}else c.directives=e.directives;c.classBindings=new Set,c.componentTypes=new Map;for(let[h,,f]of c){if(f!=="target")continue;let u=s.get(h)?.firstWrite??null,d=u?.[2];if(!y(d))continue;if(d[0]==="class"||d[0]==="component")c.classBindings.add(h);if(!this.ts||!this.isComponentDecl(d))continue;if(this.annotationText(u,"typeParams")!==null)continue;let p=Oi(this.stores,this.b.source,d,`__${h}__computed`);p.appStashSpec=this.appStashSpec,p.routesUnion=this.routesUnion,p.routeParams=this.routeParams,c.componentTypes.set(h,`{ ${na(p,h,"",h,{road:"face"}).join(" ")} }`),(c.componentInfos??=new Map).set(h,p)}c.pinnable=new Map;for(let[h,,f]of c){if(f!=="target")continue;let u=s.get(h);if(!u?.nested||u.firstWrite===null)continue;if(c.annotations?.has(h)||c.schemaConsts?.has(h))continue;if(c.componentTypes.has(h))continue;let d=this.pinKey(h,u.firstWrite,u.firstWritePath);c.pinnable.set(h,{node:u.firstWrite,key:d}),this.pinnables?.push({name:h,node:u.firstWrite,path:u.firstWritePath,key:d})}return c}pinKey(e,t,r=""){let s=this.stores.idOf(t),i=s!==null?this.stores.role(s,"value"):null;if(!i||i.sourceStart==null||this.b.source===null)return null;let n=r+"\x00"+this.b.source.slice(i.sourceStart,i.sourceEnd),a=5381;for(let o=0;o>>0;return`${e}@${a.toString(36)}`}chainTemp(e){let t=this.temps.byNode.get(e);if(t===void 0)t=this.freshTempName(),this.temps.byNode.set(e,t);return t}freshTempName(){let e;do e=this.temps.n===0?"_ref":`_ref${this.temps.n}`,this.temps.n++;while(this.temps.used.has(e));return e}inCtrl(e){this.ctrlDepth++;try{e()}finally{this.ctrlDepth--}}loopTempName(e){let t=e;for(let r=1;this.temps.used.has(t);r++)t=`${e}${r}`;return t}runtimeName(e){let t=this.runtimeAliases.get(e);if(t===void 0)throw Error(`emitter invariant: generated runtime name '${e}' is not registered`);return t}hoistLine(e,t=""){if(e.length===1)for(let r of e.directives??[])this.tsDirectiveLine(r,t);this.b.emit("let "),e.forEach(([r,s,i],n)=>{if(n>0)this.b.emit(", ");let a=this.ts&&i==="target"?e.annotations?.get(r)??null:null,o=a!==null?this.stores.idOf(a):null,l=o!==null&&E.isTypedWrapper(a)&&this.stores.role(o,"target")!==null,c=this.b.offset;if(l)this.mark(a,"target",()=>this.b.emit(r));else{let h=this.stores.idOf(s),f=h!==null?this.stores.role(h,i):null,u=f?.sourceStart!=null&&this.b.source!==null?this.b.source.slice(f.sourceStart,f.sourceEnd):null,d=u!==null&&u!==r?this.stores.primitiveSpans(r,f.sourceStart,f.sourceEnd)[0]??null:null;if(d)this.b.markSpan(h,"identifier",d.sourceStart,d.sourceEnd,()=>this.b.emit(r));else this.mark(s,i,()=>this.b.emit(r))}if(this.ts&&i==="target"&&e.classBindings?.has(r))this.classDecls.push([c,this.b.offset]);if(this.ts&&i==="target")if(a!==null)this.b.tsOnly(()=>{if(E.isTypedWrapper(a)&&!this.strict)this.b.emit("!");this.mark(a,"annotation",()=>this.b.emit(`: ${this.annotationText(a)}`))});else{let h=e.schemaConsts?.get(r)??null,f=e.componentTypes?.get(r)??null;if(h!==null){let u=this.bindingNameSpan(s,i,r);this.b.tsOnly(()=>{this.b.emit(": "),this.emitNamedCopies(h,r,u?.id??null,u?.span??null)})}else if(f!==null){let u=e.componentInfos?.get(r)??null,d=this.stores.idOf(s),p=d!==null?this.stores.role(d,i):null,m=p?.sourceStart!=null&&this.b.source?.slice(p.sourceStart,p.sourceEnd)===r?[p.sourceStart,p.sourceEnd]:null;this.b.tsOnly(()=>{if(this.b.emit(`${this.strict?"":"!"}: `),u!==null)for(let g of ca(u,r,"",r,{road:"face"})){if(g.node!==void 0){this.mark(g.node,g.role,()=>this.b.emit(g.text));continue}this.emitNamedCopies(g.text,r,d,m)}else this.b.emit(f)})}else{let u=e.pinnable?.get(r)?.key??null,d=u!==null?this.pins?.get(u):void 0;if(d!==void 0)this.b.tsOnly(()=>{this.pinnedWrites.add(e.pinnable.get(r).node);let p=this.b.offset;this.b.emit(`${this.strict?"":"!"}: `),this.emitDeclaredTypeCopies(d,this.stores.idOf(s)),this.pinSpans.push([p,this.b.offset])})}}}),this.b.emit(";")}program(e){return this.programWith(e)}ambientHoistFilter(e){if(this.scopes.length===0)return e;let t=e.filter(([r])=>!this.inScope(r)||r==="_"&&e.matchWrite);return t.matchWrite=e.matchWrite,t.annotations=e.annotations,t.directives=e.directives,t}attachSchemaConsts(e){if(!this.schemaStories)return;let t=new Map;for(let r of this.schemaStories.values())if(!r.decl.exported&&r.constType!==null)t.set(r.decl.name,r.constType);if(t.size)e.schemaConsts=t}programWith(e){let t=this.liveStmts(e.slice(1),{forwards:!0}),r=0;while(r0){this.mark(e,"$self",()=>{for(let a of t.slice(0,r))this.statement(a,0);this.emitDataConst();let s=t.slice(r),i=this.ambientHoistFilter(this.hoistTargets(s,[],E.importedNames(t.slice(0,r))));this.attachSchemaConsts(i);let n=new Set([...i.map(([a])=>a),...E.importedNames(t.slice(0,r))]);for(let a of this.pushReactiveFrame(t,n))n.add(a);if(this.moduleBound=E.moduleBoundNames(s),this.moduleClassNames=E.classDeclNames(s),this.rejectDuplicateDefault(s),this.scopes.push(n),i=this.applyDeclareInPlace(i,e.slice(1),{tailIsExpression:this.repl}),i.length)this.hoistLine(i),this.b.emit(` -`);if(this.emitTsTypeDecls(e.slice(1),""),n.length)this.mark(e,"body",()=>this.statements(n,0,"program"));this.emitHmrComponentTable(),this.scopes.pop(),this.rframes.pop()});return}this.programPlain(e,t)}static moduleBoundNames(e){let t=new Set,r=(n)=>{if(!y(n))return;if(F1.has(n[0])&&n.length===3&&typeof n[1]==="string")t.add(n[1]);else if((n[0]==="class"||n[0]==="enum")&&typeof n[1]==="string")t.add(n[1]);else if(k1(n[0])&&typeof n[1]==="string")t.add(n[1])};for(let n of e){if(!y(n))continue;if(n[0]==="export")for(let i of n.slice(1))r(i);else r(n)}return t}static importAttributes(e){let t=e.length>2?e[e.length-2]:null;return y(t)&&t[0]==="with"&&t.length===2?t:null}static importSpecs(e){return e.slice(1,-1).filter((t)=>!(y(t)&&t[0]==="with"))}static importedSpecs(e){let t=new Map;for(let r of e){if(!y(r)||r[0]!=="import"||r.length<3)continue;let n=r[r.length-1];if(typeof n!=="string")continue;let i=n.replace(/^['"`]|['"`]$/g,"");for(let s of E.importSpecs(r)){if(s==="{}")continue;if(typeof s==="string")t.set(s,{specifier:i,importedName:"default"});else if(s[0]==="*")t.set(s[1],{specifier:i,importedName:"*"});else for(let a of s){let o=y(a)?a[0]:a,l=y(a)?a[1]:a;t.set(l,{specifier:i,importedName:o})}}}return t}static TYPE_ROLES=new Set(["annotation","returnType","typeParams","declaration"]);static importedNames(e){let t=[];for(let r of e)for(let n of E.importSpecs(r)){if(n==="{}")continue;if(typeof n==="string")t.push(n);else if(n[0]==="*")t.push(n[1]);else for(let i of n)t.push(y(i)?i[1]:i)}return t}emitDataConst(){if(this.dataPayload==null)return;this.b.emit(`const DATA = ${JSON.stringify(this.dataPayload)}; +`);if(this.emitTsTypeDecls(e.slice(1),""),s.length)this.mark(e,"body",()=>this.statements(s,0,"program"));this.emitHmrComponentTable(),this.scopes.pop(),this.rframes.pop()});return}this.programPlain(e,t)}static moduleBoundNames(e){let t=new Set,r=(s)=>{if(!y(s))return;if(F1.has(s[0])&&s.length===3&&typeof s[1]==="string")t.add(s[1]);else if((s[0]==="class"||s[0]==="enum")&&typeof s[1]==="string")t.add(s[1]);else if(k1(s[0])&&typeof s[1]==="string")t.add(s[1])};for(let s of e){if(!y(s))continue;if(s[0]==="export")for(let i of s.slice(1))r(i);else r(s)}return t}static importAttributes(e){let t=e.length>2?e[e.length-2]:null;return y(t)&&t[0]==="with"&&t.length===2?t:null}static importSpecs(e){return e.slice(1,-1).filter((t)=>!(y(t)&&t[0]==="with"))}static importedSpecs(e){let t=new Map;for(let r of e){if(!y(r)||r[0]!=="import"||r.length<3)continue;let s=r[r.length-1];if(typeof s!=="string")continue;let i=s.replace(/^['"`]|['"`]$/g,"");for(let n of E.importSpecs(r)){if(n==="{}")continue;if(typeof n==="string")t.set(n,{specifier:i,importedName:"default"});else if(n[0]==="*")t.set(n[1],{specifier:i,importedName:"*"});else for(let a of n){let o=y(a)?a[0]:a,l=y(a)?a[1]:a;t.set(l,{specifier:i,importedName:o})}}}return t}static TYPE_ROLES=new Set(["annotation","returnType","typeParams","declaration"]);static importedNames(e){let t=[];for(let r of e)for(let s of E.importSpecs(r)){if(s==="{}")continue;if(typeof s==="string")t.push(s);else if(s[0]==="*")t.push(s[1]);else for(let i of s)t.push(y(i)?i[1]:i)}return t}emitDataConst(){if(this.dataPayload==null)return;this.b.emit(`const DATA = ${JSON.stringify(this.dataPayload)}; `)}emitHmrComponentTable(){if(!this.hmr||!this.modulePath||this.moduleComponentNames.size===0)return;this.b.emit(` -export const __hmrComponents = { ${[...this.moduleComponentNames.keys()].join(", ")} };`)}programPlain(e,t){this.mark(e,"$self",()=>{this.emitDataConst();let r=this.ambientHoistFilter(this.hoistTargets(t));this.attachSchemaConsts(r);let n=new Set(r.map(([i])=>i));for(let i of this.pushReactiveFrame(t,n))n.add(i);if(this.moduleBound=E.moduleBoundNames(t),this.moduleClassNames=E.classDeclNames(t),this.rejectDuplicateDefault(t),this.scopes.push(n),r=this.applyDeclareInPlace(r,e.slice(1),{tailIsExpression:this.repl}),r.length)this.hoistLine(r),this.b.emit(` +export const __hmrComponents = { ${[...this.moduleComponentNames.keys()].join(", ")} };`)}programPlain(e,t){this.mark(e,"$self",()=>{this.emitDataConst();let r=this.ambientHoistFilter(this.hoistTargets(t));this.attachSchemaConsts(r);let s=new Set(r.map(([i])=>i));for(let i of this.pushReactiveFrame(t,s))s.add(i);if(this.moduleBound=E.moduleBoundNames(t),this.moduleClassNames=E.classDeclNames(t),this.rejectDuplicateDefault(t),this.scopes.push(s),r=this.applyDeclareInPlace(r,e.slice(1),{tailIsExpression:this.repl}),r.length)this.hoistLine(r),this.b.emit(` -`);this.emitTsTypeDecls(e.slice(1),""),this.mark(e,"body",()=>this.statements(t,0,"program")),this.emitHmrComponentTable(),this.scopes.pop(),this.rframes.pop()})}statements(e,t,r){let n=" ".repeat(t),i=this.liveStmts(e);this.emitTsTypeDecls(e,n),i.forEach((s,a)=>{if(this.b.emit(n),r==="program")this.moduleTopStmt=s;this.statement(s,t);let o=a===i.length-1;if(r==="block"||!o)this.b.emit(` -`);this.flushPendingTypeDecls(n,r!=="block"&&o)})}static STATEMENT_FORMS={__proto__:null,if:(e,t,r)=>(e.ifStatement(t,r),!0),def:(e,t,r)=>t.length===4&&(e.defStatement(t,r),!0),"void-def":(e,t,r)=>t.length===4&&(e.defStatement(t,r),!0),return:(e,t)=>(e.returnStatement(t),!0),while:(e,t,r)=>(t.length===3||t.length===4)&&(e.whileStatement(t,r),!0),loop:(e,t,r)=>(e.loopStatement(t,r),!0),"loop-n":(e,t,r)=>(e.loopStatement(t,r),!0),"for-in":(e,t,r)=>(e.forIn(t,r),!0),"for-of":(e,t,r)=>(e.forOf(t,r),!0),"for-as":(e,t,r)=>(e.forAs(t,r),!0),switch:(e,t,r)=>(e.switchStatement(t,r),!0),try:(e,t,r)=>(e.tryStatement(t,r),!0),throw:(e,t)=>(e.throwStatement(t),!0),comprehension:(e,t,r)=>{if(!re(t))return!1;if(e.ind=r,t===e.lastProgramStmt){if(e.repl)e.b.emit(`const ${e.replSlot()} = `);e.comprehension(t,r),e.b.emit(";")}else{let n=e.funcBodyStmt;if(e.plainLoopComprehension(t,r),!n)e.b.emit(";")}return!0},block:(e,t,r)=>(e.bareBlockStatement(t,r),!0),class:(e,t,r)=>t[1]!=null&&(e.classStatement(t,r),!0),enum:(e,t)=>(e.enumStatement(t),!0),state:(e,t,r)=>e.isReactiveDecl(t)&&(e.reactiveDecl(t,r),!0),computed:(e,t,r)=>e.isReactiveDecl(t)&&(e.reactiveDecl(t,r),!0),effect:(e,t,r)=>e.isEffectDecl(t)&&(e.effectStatement(t,r),!0),readonly:(e,t,r)=>e.isReadonlyDecl(t)&&(e.readonlyDecl(t,r),!0),"void-readonly":(e,t,r)=>e.isReadonlyDecl(t)&&(e.readonlyDecl(t,r),!0),import:(e,t)=>e.isModuleImport(t)&&(e.importStatement(t),!0),export:(e,t,r)=>(e.exportStatement(t,r),!0),"export-default":(e,t,r)=>(e.exportStatement(t,r),!0),"export-all":(e,t,r)=>(e.exportStatement(t,r),!0),"export-from":(e,t,r)=>(e.exportStatement(t,r),!0)};moduleSource(e){return Pe(e)}static specifierLocal(e){return y(e)?e[1]:e}emitSpecifiers(e,t=null){let r=e.filter((s)=>!this.typeOnlyImports.has(E.specifierLocal(s))),n=0,i=0;e.forEach((s)=>{let a=this.typeOnlyImports.has(E.specifierLocal(s)),o=(c,h)=>{if(this.ts&&t!==null)this.importedRefs.push([c,this.b.offset,h,t,"declaration"])},l=()=>{let c=this.declaringName;this.declaringName=!0;try{if(y(s)){this.emitPrimitive(s[0]),this.b.emit(" as ");let h=this.b.offset;this.emitPrimitive(s[1]),o(h,s[0])}else{let h=this.b.offset;this.emitPrimitive(s),o(h,s)}}finally{this.declaringName=c}};if(a){if(!this.ts)return;this.b.tsOnly(()=>{if(n>0||r.length===0&&i>0)this.b.emit(", ");if(l(),n===0&&r.length>0)this.b.emit(", ")}),i++;return}if(n>0)this.b.emit(", ");l(),n++})}emitImportClause(e,t=null){e.forEach((r,n)=>{if(n>0)this.b.emit(", ");let i=t===null?null:n===0?"spec":"extra",s=(a)=>i===null?a():this.mark(t,i,a);if(r==="{}")this.b.emit("{}");else if(typeof r==="string")s(()=>this.b.emit(r));else if(r[0]==="*")s(()=>{this.b.emit("* as ");let a=this.b.offset;if(this.b.emit(r[1]),this.ts&&t!==null)this.importedRefs.push([a,this.b.offset,"*",fr(t[t.length-1]),"declaration"])});else this.b.emit("{ "),s(()=>this.emitSpecifiers(r,t!==null?fr(t[t.length-1]):null)),this.b.emit(" }")}),this.b.emit(" from ")}importStatement(e){if(this.script)throw this.positionedError(e,"emitter: module imports are not available in a script tag — script sources share one scope, and modules arrive with the package graph");let t=e[e.length-1],r=E.importSpecs(e),n=E.importAttributes(e);for(let s of r){if(!Array.isArray(s)||s[0]==="*")continue;if(s.includes("default"))throw this.positionedError(e,"emitter: `import { default }` binds nothing — spell the default import `import name from '…'`, or alias it: `import { default as name } from '…'`")}let i=this.stores.idOf(e);if(i!==null&&this.stores.role(i,"typeOnly")!==null){if(!this.ts){this.mark(e,"$self",()=>{}),this.mark(e,"source",()=>{});return}this.b.tsOnly(()=>{this.mark(e,"$self",()=>{this.b.emit("import "),this.mark(e,"typeOnly",()=>this.b.emit("type")),this.b.emit(" "),this.emitImportClause(r,e);let s=this.b.offset;this.mark(e,"source",()=>this.b.emit(this.moduleSource(t))),this.importSpans.push({start:s,end:this.b.offset,specifier:Pe(t)}),this.emitImportAttributes(n)}),this.b.emit(`; -`)});return}if(this.repl)return this.replImportStatement(e);this.mark(e,"$self",()=>{this.b.emit("import ");let s=r.length>0&&r.every((a)=>a!=="{}"&&(typeof a==="string"||a[0]==="*"?this.typeOnlyImports.has(typeof a==="string"?a:a[1]):a.every((o)=>this.typeOnlyImports.has(E.specifierLocal(o)))));if(r.length>0){if(!s)this.emitImportClause(r,e);else if(this.ts)this.b.tsOnly(()=>this.emitImportClause(r,e))}{let a=this.b.offset;this.mark(e,"source",()=>this.b.emit(this.moduleSource(t))),this.importSpans.push({start:a,end:this.b.offset,specifier:Pe(t)})}this.emitImportAttributes(n)}),this.b.emit(`; -`)}emitImportAttributes(e){if(e===null)return;for(let t of e[1].slice(1))if(!(t[0]===":"&&typeof t[2]==="string"&&(t[2][0]==='"'||t[2][0]==="'")))throw this.positionedError(t,'emitter: an import attribute is a string-literal pair (`with { type: "json" }`) — the module loader reads it before any code runs');this.b.emit(" "),this.mark(e,"$self",()=>{this.mark(e,"keyword",()=>this.b.emit("with")),this.b.emit(" "),this.mark(e,"value",()=>this.expr(e[1]))})}replImportStatement(e){let t=e[e.length-1],r=E.importSpecs(e),n=E.importAttributes(e),i=[],s=null;for(let a of r){if(a==="{}")continue;if(typeof a==="string")i.push(`default: ${a}`);else if(a[0]==="*")s=a[1];else for(let o of a)i.push(y(o)?`${o[0]}: ${o[1]}`:o)}this.mark(e,"$self",()=>{if(s!==null)this.b.emit(`const ${s} = `);else if(i.length>0)this.b.emit(`const { ${i.join(", ")} } = `);this.b.emit(`await import(${this.replResolver()}(`);{let a=this.b.offset;this.mark(e,"source",()=>this.b.emit(this.moduleSource(t))),this.importSpans.push({start:a,end:this.b.offset,specifier:Pe(t)})}if(this.b.emit(")"),n!==null)this.b.emit(", { with: "),this.mark(n,"value",()=>this.expr(n[1])),this.b.emit(" }");if(this.b.emit(")"),s!==null&&i.length>0)this.b.emit(`, { ${i.join(", ")} } = ${s}`)}),this.b.emit(`; -`)}exportStatement(e,t){if(this.script)throw this.positionedError(e,"emitter: exports are not available in a script tag — drop the export keyword; script sources share one scope");if(this.repl)throw this.positionedError(e,"emitter: 'export' has no meaning in a REPL entry — every top-level binding already persists to later lines; drop the export keyword");if(t>0||this.postfixGuardDepth>0)throw this.positionedError(e,"emitter: 'export' must be a top-level statement — a module's exports are static, so a guarded or block-nested export has no form; "+"move it to the top level, or guard the exported value instead (`export x = v if c`)");let r=e[0],n=this.stores.idOf(e);if(r==="export-from"&&n!==null&&this.stores.role(n,"typeOnly")!==null){if(!this.ts){this.mark(e,"$self",()=>{}),this.mark(e,"source",()=>{});return}this.b.tsOnly(()=>{this.mark(e,"$self",()=>{this.b.emit("export "),this.mark(e,"typeOnly",()=>this.b.emit("type")),this.b.emit(" { "),this.emitSpecifiers(e[1],fr(e[2])),this.b.emit(" } from ");let i=this.b.offset;this.mark(e,"source",()=>this.b.emit(this.moduleSource(e[2]))),this.importSpans.push({start:i,end:this.b.offset,specifier:Pe(e[2])})}),this.b.emit(";")});return}this.mark(e,"$self",()=>{if(r==="export-all"){if(e.length===3)this.b.emit("export * as "),this.mark(e,"alias",()=>this.b.emit(e[2])),this.namespaceExports.push(e[2]),this.b.emit(" from ");else this.b.emit("export * from ");{let i=this.b.offset;this.mark(e,"source",()=>this.b.emit(this.moduleSource(e[1]))),this.importSpans.push({start:i,end:this.b.offset,specifier:Pe(e[1])})}this.b.emit(";")}else if(r==="export-from"){if(this.b.emit("export "),e[1]==="{}")this.b.emit("{}");else this.b.emit("{ "),this.emitSpecifiers(e[1],fr(e[2])),this.b.emit(" }");this.b.emit(" from ");{let i=this.b.offset;this.mark(e,"source",()=>this.b.emit(this.moduleSource(e[2]))),this.importSpans.push({start:i,end:this.b.offset,specifier:Pe(e[2])})}this.b.emit(";")}else if(r==="export-default"){if(this.b.emit("export default "),y(e[1])&&k1(e[1][0])&&e[1].length===4)this.mark(e,"spec",()=>this.defStatement(e[1],t));else this.mark(e,"spec",()=>this.expr(e[1]));this.b.emit(";")}else{let i=e[1];if(i==="{}")this.b.emit("export {};");else if(y(i)&&i[0]==="class")this.b.emit("export "),this.classStatement(i,t),this.b.emit(";");else if(y(i)&&k1(i[0]))this.b.emit("export "),this.defStatement(i,t),this.b.emit(";");else if(y(i)&&i[0]==="enum")this.b.emit("export "),this.enumCode(i),this.b.emit(";"),this.tsEnumCompanion(i,!0);else if(this.isReactiveDecl(i))this.b.emit("export "),this.reactiveDecl(i,t);else if(this.isReadonlyDecl(i))this.b.emit("export "),this.readonlyDecl(i,t);else if(this.isEffectDecl(i)){if(i[1]===null)throw this.positionedError(e,"emitter: a bare effect ('export ~> …') binds nothing to export — bind a dispose handle (`export h ~> …`) or drop the export (`export __effect(…)` would be invalid JS)");this.b.emit("export "),this.effectStatement(i,t)}else if(y(i)&&(i[0]==="="||i[0]==="void-assign")){if(i[0]==="void-assign")this.registerVoidValue(i[2],i);if(this.b.emit("export "),this.mark(i,"voidMarker",()=>this.mark(i,"annotation",()=>this.mark(i,"$self",()=>{if(this.b.emit("const "),this.mark(i,"target",()=>this.b.emit(i[1])),this.ts&&this.annotationText(i)!==null)this.tsAnnotate(i,"annotation",this.annotationText(i));this.b.emit(" "),this.mark(i,"operator",()=>this.b.emit("=")),this.b.emit(" ");let s=this._schemaName,a=this._componentName,o=this._componentTypeParams;if(this._componentTypeParams=null,y(i[2])&&i[2][0]==="schema")this._schemaName=i[1];if(this.isComponentDecl(i[2])&&typeof i[1]==="string"){this._componentName=i[1];let l=this.annotationText(i,"typeParams");this._componentTypeParams=l===null?null:{text:l,owner:i}}this.mark(i,"value",()=>this.withExpression(()=>this.expr(i[2]))),this._schemaName=s,this._componentName=a,this._componentTypeParams=o}))),this.b.emit(";"),this.ts&&typeof i[1]==="string"&&this.componentInfo.has(i[2]))this.tsComponentCompanion(i[2],i[1],!0,this.annotationText(i,"typeParams"));if(this.ts)this.tsSchemaBehavior(i[2])}else this.b.emit("export { "),this.emitSpecifiers(i),this.b.emit(" };")}})}enumValue(e,t,r,n){if(typeof e==="string"){if(e.startsWith('"'))try{return[e,JSON.parse(e)]}catch{let i=/\\u(?![0-9a-fA-F]{4})|\\[^"\\/bfnrtu]/.exec(e)?.[0]??"\\";throw this.positionedError(n,`emitter: enum '${t}' member '${r}' — its string value uses the `+`'${i}' escape, which enum values do not support (JSON escapes only; '\\uXXXX' spells the same character)`)}if(/^[\d.]/.test(e)){let i=e.replace(/_/g,"").replace(/n$/,"");return[e,String(Number(i))]}return null}if(y(e)&&e[0]==="-"&&e.length===2){let i=this.enumValue(e[1],t,r,n);if(i===null||e[1].startsWith('"'))return null;return[`-${e[1]}`,`-${i[1]}`]}return null}enumStatement(e){this.enumCode(e),this.b.emit(";"),this.tsEnumCompanion(e,!1)}tsEnumCompanion(e,t){if(!this.ts||typeof e[1]!=="string")return;let r=e[1];this.b.tsOnly(()=>{this.b.emit(` -`),this.mark(e,"$self",()=>{let n=this.stores.idOf(e),i=n!==null?this.stores.selfSpan(n):null,s=i!==null?this.stores.primitiveSpans(r,i[0],i[1])[0]??null:null,a=()=>s?this.b.markSpan(n,"identifier",s.sourceStart,s.sourceEnd,()=>this.b.emit(r)):this.b.emit(r);this.b.emit(`${t?"export ":""}type `),a(),this.b.emit(" = (typeof "),a(),this.b.emit(")[keyof typeof "),a(),this.b.emit("];")})})}enumCode(e){let[,t,r]=e,n=b1(r)?r.slice(1):[r],i=[],s=new Set,a=(h,f,u)=>{if(s.has(h))throw this.positionedError(u,`emitter: enum '${t}' key '${h}' is used more than once (${f}) — `+"forward and reverse entries share one object, so every member name and value must be distinct ",e);s.add(h)},o=L3(n),l=(h)=>{let f=this.b.source,u=this.stores.idOf(r),d=u!==null?this.stores.selfSpan(u)?.[0]??null:null;if(f===null||d===null||typeof n[h]!=="string")return null;for(let m=0;m=0)d=w+g.length}}let p=f.indexOf(n[h],d);return p>=0?[p,p+n[h].length]:null};for(let h=0;h' lines — `+"a bare or computed member has no enum form here",g=l(h);if(g)throw this.positionedErrorAt(g[0],g[1],m);throw this.positionedError(f,m,e)}let u=this.enumValue(f[2],t,f[1],f);if(u===null)throw this.positionedError(f,`emitter: enum '${t}' member '${f[1]}' needs a number or string literal value — `+"the reverse mapping uses the value as an object key, so expressions have no enum form ",e);let[d,p]=u;a(f[1],`member '${f[1]}'`,f),a(p,`value of '${f[1]}'`,f),i.push([f,f[1],d,p])}let c=E.ownKeyText;this.mark(e,"$self",()=>{this.b.emit("const "),this.mark(e,"name",()=>this.noteNameSpan(t)),this.b.emit(" = "),this.mark(e,"body",()=>{this.b.emit("{"),i.forEach(([h,f,u],d)=>{if(d>0)this.b.emit(", ");this.mark(h,"$self",()=>{this.mark(h,"target",()=>{let p=c(f,f);if(p===f)this.emitPrimitive(f);else this.b.emit(p)}),this.b.emit(": "),this.mark(h,"value",()=>this.b.emit(u))})}),i.forEach(([h,f,u,d])=>{this.b.emit(", "),this.mark(h,"$self",()=>{this.b.emit(u.startsWith("-")?JSON.stringify(d):c(u,d)),this.b.emit(`: "${f}"`)})}),this.b.emit("}")})})}schemaExpr(e){let t=e[1];if(!t||typeof t!=="object"||!Array.isArray(t.entries))throw this.positionedError(e,"emitter: schema node without a descriptor — the lexer pass owns SCHEMA_BODY values");if(this.scopes.slice(1).some((o)=>o.has("__schema")))throw this.positionedError(e,"emitter: a function-scope binding of '__schema' shadows the schema runtime where this "+"schema declaration needs it — rename the local, or bind '__schema' at MODULE scope to "+"supply your own factory (the suppression hatch)");this.usesSchema=!0;let r=this._schemaName??null,n=new Map;for(let{entry:o,index:l,tokens:c,value:h}of E.schemaBodies(t)){if(h){n.set(l,this.schemaValueCode(c));continue}let f=this.schemaBodyParams(o);n.set(l,this.schemaFnCode(f,c))}let i=this.schemaStories?.get(e)??null,s=this.stores.idOf(e);if(this.ts&&i!==null)this.schemaFns.set(e,n);this.schemaPins=this.ts?new Map:null,this.schemaPinNode=s;let a=(o,l,c)=>{if(l===null||l===void 0)return;let h=`${o}:${c}`;if(!this.schemaPins.has(h))this.schemaPins.set(h,[]);this.schemaPins.get(h).push([l[0],l[1]])};if(this.ts&&r!==null)a("name",this.moduleTypeDeclarationSpans().get(r)??null,r);for(let o of this.ts?t.entries:[]){let l=(c,h,f)=>{if(typeof f!=="number"||typeof h!=="string")return;a(c,[f,f+h.length],h)};if(o.tag==="union-member")l("name",o.name,o.start);else if(o.tag==="directive"&&o.name==="mixin"&&o.argTokens?.[0]?.kind==="IDENTIFIER")l("target",o.argTokens[0].value,o.argTokens[0].start);else if(o.tag==="ensure")l("field",o.field,o.fieldStart);else if((Ui[o.tag]??null)!==null){if(l("name",o.name,o.start),o.tag==="field"&&Array.isArray(o.typeSpan)&&this.b.source!==null){let c=/[A-Za-z_$][\w$]*/.exec(this.b.source.slice(o.typeSpan[0],o.typeSpan[1]));if(c!==null&&c[0]===o.typeName)l("typeName",c[0],o.typeSpan[0]+c.index)}}}for(let o of this.schemaPins?.values()??[])for(let[l,c]of o)this.b.exactSourceSpans.add(`${l}:${c}`);this.mark(e,"$self",()=>{if(this.b.emit("__schema("),this.mark(e,"body",()=>{let o=zn(t,r,n,n.get("adapter")??null,i?.thisTypes??null,this.ts,i?.defaultTypes??null,i?.ensureTypes??null);for(let l of o)if(typeof l==="string")this.emitSchemaText(l);else if(l.body!==void 0)this.emitSchemaText(l.body,!0);else if(l.span!==null&&l.span!==void 0&&s!==null)this.b.tsOnly(()=>this.b.markSpan(s,"literal",l.span[0],l.span[1],()=>this.b.emit(l.ts)));else if(i!==null){let c=this.bindingNameSpan(i.decl.node,"target",i.decl.name);this.b.tsOnly(()=>this.emitNamedCopies(l.ts,i.decl.name,c?.id??null,c?.span??null))}else this.b.tsOnly(()=>this.b.emit(l.ts))}),this.b.emit(")"),i!==null&&i.constType!==null){let o=this.bindingNameSpan(i.decl.node,"target",i.decl.name);this.b.tsOnly(()=>{this.b.emit(" as unknown as "),this.emitNamedCopies(i.constType,i.decl.name,o?.id??null,o?.span??null)})}}),this.schemaPins=null,this.schemaPinNode=null}static schemaFail(e,t){let r=Error(`schema: ${e}`);throw r.start=t,r}static schemaBodies(e){let t=[];if(e.entries.forEach((r,n)=>{if(r.tag==="method"||r.tag==="computed"||r.tag==="derived"||r.tag==="ensure"||r.tag==="hook"||r.tag==="scope"||r.tag==="defaultScope")t.push({entry:r,index:n,tokens:r.bodyTokens});else if(r.tag==="field"&&r.transformTokens)t.push({entry:r,index:n,tokens:r.transformTokens})}),e.adapterTokens)t.push({entry:{tag:"adapter"},index:"adapter",tokens:e.adapterTokens,value:!0});return t}schemaBodyParams(e){if(e.tag==="adapter")return[];if(e.tag==="field")return[{name:"it",type:null}];return Kn(e.paramTokens??[],e.tag==="ensure"?"@ensure":`'${e.name}'`,E.schemaFail,this.b.source)}schemaFnCode(e,t){let r=e.map((d)=>d.name),{stmts:n,stores:i}=this.subParse(t);if(n.length===0)return{code:"(function() {})",thisAt:10,annots:[]};let s=n.length===1?n[0]:["block",...n],a=this.containsAwait(s),o=E.containsYield(s),l=this.subEmitter(i),c;if(n.length===1){let d=n[0],{entries:p,names:m}=l.scopedHoist([d],r);for(let g of l.pushReactiveFrame(n,m,r))m.add(g);if(l.scopes.push(m),p.length)l.hoistLine(p),l.b.emit(" ");if(mt(d)||re(d))l.statement(d,0);else l.implicitReturn(d,0);c=`{ ${l.b.code} }`}else{let{entries:d,names:p}=l.scopedHoist(n,r);for(let m of l.pushReactiveFrame(n,p,r))p.add(m);if(l.scopes.push(p),l.b.emit(`{ +`);this.emitTsTypeDecls(e.slice(1),""),this.mark(e,"body",()=>this.statements(t,0,"program")),this.emitHmrComponentTable(),this.scopes.pop(),this.rframes.pop()})}statements(e,t,r){let s=" ".repeat(t),i=this.liveStmts(e);this.emitTsTypeDecls(e,s),i.forEach((n,a)=>{if(this.b.emit(s),r==="program")this.moduleTopStmt=n;this.statement(n,t);let o=a===i.length-1;if(r==="block"||!o)this.b.emit(` +`);this.flushPendingTypeDecls(s,r!=="block"&&o)})}static STATEMENT_FORMS={__proto__:null,if:(e,t,r)=>(e.ifStatement(t,r),!0),def:(e,t,r)=>t.length===4&&(e.defStatement(t,r),!0),"void-def":(e,t,r)=>t.length===4&&(e.defStatement(t,r),!0),return:(e,t)=>(e.returnStatement(t),!0),while:(e,t,r)=>(t.length===3||t.length===4)&&(e.whileStatement(t,r),!0),loop:(e,t,r)=>(e.loopStatement(t,r),!0),"loop-n":(e,t,r)=>(e.loopStatement(t,r),!0),"for-in":(e,t,r)=>(e.forIn(t,r),!0),"for-of":(e,t,r)=>(e.forOf(t,r),!0),"for-as":(e,t,r)=>(e.forAs(t,r),!0),switch:(e,t,r)=>(e.switchStatement(t,r),!0),try:(e,t,r)=>(e.tryStatement(t,r),!0),throw:(e,t)=>(e.throwStatement(t),!0),comprehension:(e,t,r)=>{if(!re(t))return!1;if(e.ind=r,t===e.lastProgramStmt){if(e.repl)e.b.emit(`const ${e.replSlot()} = `);e.comprehension(t,r),e.b.emit(";")}else{let s=e.funcBodyStmt;if(e.plainLoopComprehension(t,r),!s)e.b.emit(";")}return!0},block:(e,t,r)=>(e.bareBlockStatement(t,r),!0),class:(e,t,r)=>t[1]!=null&&(e.classStatement(t,r),!0),enum:(e,t)=>(e.enumStatement(t),!0),state:(e,t,r)=>e.isReactiveDecl(t)&&(e.reactiveDecl(t,r),!0),computed:(e,t,r)=>e.isReactiveDecl(t)&&(e.reactiveDecl(t,r),!0),effect:(e,t,r)=>e.isEffectDecl(t)&&(e.effectStatement(t,r),!0),readonly:(e,t,r)=>e.isReadonlyDecl(t)&&(e.readonlyDecl(t,r),!0),"void-readonly":(e,t,r)=>e.isReadonlyDecl(t)&&(e.readonlyDecl(t,r),!0),import:(e,t)=>e.isModuleImport(t)&&(e.importStatement(t),!0),export:(e,t,r)=>(e.exportStatement(t,r),!0),"export-default":(e,t,r)=>(e.exportStatement(t,r),!0),"export-all":(e,t,r)=>(e.exportStatement(t,r),!0),"export-from":(e,t,r)=>(e.exportStatement(t,r),!0)};moduleSource(e){return Pe(e)}static specifierLocal(e){return y(e)?e[1]:e}emitSpecifiers(e,t=null){let r=e.filter((n)=>!this.typeOnlyImports.has(E.specifierLocal(n))),s=0,i=0;e.forEach((n)=>{let a=this.typeOnlyImports.has(E.specifierLocal(n)),o=(c,h)=>{if(this.ts&&t!==null)this.importedRefs.push([c,this.b.offset,h,t,"declaration"])},l=()=>{let c=this.declaringName;this.declaringName=!0;try{if(y(n)){this.emitPrimitive(n[0]),this.b.emit(" as ");let h=this.b.offset;this.emitPrimitive(n[1]),o(h,n[0])}else{let h=this.b.offset;this.emitPrimitive(n),o(h,n)}}finally{this.declaringName=c}};if(a){if(!this.ts)return;this.b.tsOnly(()=>{if(s>0||r.length===0&&i>0)this.b.emit(", ");if(l(),s===0&&r.length>0)this.b.emit(", ")}),i++;return}if(s>0)this.b.emit(", ");l(),s++})}emitImportClause(e,t=null){e.forEach((r,s)=>{if(s>0)this.b.emit(", ");let i=t===null?null:s===0?"spec":"extra",n=(a)=>i===null?a():this.mark(t,i,a);if(r==="{}")this.b.emit("{}");else if(typeof r==="string")n(()=>this.b.emit(r));else if(r[0]==="*")n(()=>{this.b.emit("* as ");let a=this.b.offset;if(this.b.emit(r[1]),this.ts&&t!==null)this.importedRefs.push([a,this.b.offset,"*",fr(t[t.length-1]),"declaration"])});else this.b.emit("{ "),n(()=>this.emitSpecifiers(r,t!==null?fr(t[t.length-1]):null)),this.b.emit(" }")}),this.b.emit(" from ")}importStatement(e){if(this.script)throw this.positionedError(e,"emitter: module imports are not available in a script tag — script sources share one scope, and modules arrive with the package graph");let t=e[e.length-1],r=E.importSpecs(e),s=E.importAttributes(e);for(let n of r){if(!Array.isArray(n)||n[0]==="*")continue;if(n.includes("default"))throw this.positionedError(e,"emitter: `import { default }` binds nothing — spell the default import `import name from '…'`, or alias it: `import { default as name } from '…'`")}let i=this.stores.idOf(e);if(i!==null&&this.stores.role(i,"typeOnly")!==null){if(!this.ts){this.mark(e,"$self",()=>{}),this.mark(e,"source",()=>{});return}this.b.tsOnly(()=>{this.mark(e,"$self",()=>{this.b.emit("import "),this.mark(e,"typeOnly",()=>this.b.emit("type")),this.b.emit(" "),this.emitImportClause(r,e);let n=this.b.offset;this.mark(e,"source",()=>this.b.emit(this.moduleSource(t))),this.importSpans.push({start:n,end:this.b.offset,specifier:Pe(t)}),this.emitImportAttributes(s)}),this.b.emit(`; +`)});return}if(this.repl)return this.replImportStatement(e);this.mark(e,"$self",()=>{this.b.emit("import ");let n=r.length>0&&r.every((a)=>a!=="{}"&&(typeof a==="string"||a[0]==="*"?this.typeOnlyImports.has(typeof a==="string"?a:a[1]):a.every((o)=>this.typeOnlyImports.has(E.specifierLocal(o)))));if(r.length>0){if(!n)this.emitImportClause(r,e);else if(this.ts)this.b.tsOnly(()=>this.emitImportClause(r,e))}{let a=this.b.offset;this.mark(e,"source",()=>this.b.emit(this.moduleSource(t))),this.importSpans.push({start:a,end:this.b.offset,specifier:Pe(t)})}this.emitImportAttributes(s)}),this.b.emit(`; +`)}emitImportAttributes(e){if(e===null)return;for(let t of e[1].slice(1))if(!(t[0]===":"&&typeof t[2]==="string"&&(t[2][0]==='"'||t[2][0]==="'")))throw this.positionedError(t,'emitter: an import attribute is a string-literal pair (`with { type: "json" }`) — the module loader reads it before any code runs');this.b.emit(" "),this.mark(e,"$self",()=>{this.mark(e,"keyword",()=>this.b.emit("with")),this.b.emit(" "),this.mark(e,"value",()=>this.expr(e[1]))})}replImportStatement(e){let t=e[e.length-1],r=E.importSpecs(e),s=E.importAttributes(e),i=[],n=null;for(let a of r){if(a==="{}")continue;if(typeof a==="string")i.push(`default: ${a}`);else if(a[0]==="*")n=a[1];else for(let o of a)i.push(y(o)?`${o[0]}: ${o[1]}`:o)}this.mark(e,"$self",()=>{if(n!==null)this.b.emit(`const ${n} = `);else if(i.length>0)this.b.emit(`const { ${i.join(", ")} } = `);this.b.emit(`await import(${this.replResolver()}(`);{let a=this.b.offset;this.mark(e,"source",()=>this.b.emit(this.moduleSource(t))),this.importSpans.push({start:a,end:this.b.offset,specifier:Pe(t)})}if(this.b.emit(")"),s!==null)this.b.emit(", { with: "),this.mark(s,"value",()=>this.expr(s[1])),this.b.emit(" }");if(this.b.emit(")"),n!==null&&i.length>0)this.b.emit(`, { ${i.join(", ")} } = ${n}`)}),this.b.emit(`; +`)}exportStatement(e,t){if(this.script)throw this.positionedError(e,"emitter: exports are not available in a script tag — drop the export keyword; script sources share one scope");if(this.repl)throw this.positionedError(e,"emitter: 'export' has no meaning in a REPL entry — every top-level binding already persists to later lines; drop the export keyword");if(t>0||this.postfixGuardDepth>0)throw this.positionedError(e,"emitter: 'export' must be a top-level statement — a module's exports are static, so a guarded or block-nested export has no form; "+"move it to the top level, or guard the exported value instead (`export x = v if c`)");let r=e[0],s=this.stores.idOf(e);if(r==="export-from"&&s!==null&&this.stores.role(s,"typeOnly")!==null){if(!this.ts){this.mark(e,"$self",()=>{}),this.mark(e,"source",()=>{});return}this.b.tsOnly(()=>{this.mark(e,"$self",()=>{this.b.emit("export "),this.mark(e,"typeOnly",()=>this.b.emit("type")),this.b.emit(" { "),this.emitSpecifiers(e[1],fr(e[2])),this.b.emit(" } from ");let i=this.b.offset;this.mark(e,"source",()=>this.b.emit(this.moduleSource(e[2]))),this.importSpans.push({start:i,end:this.b.offset,specifier:Pe(e[2])})}),this.b.emit(";")});return}this.mark(e,"$self",()=>{if(r==="export-all"){if(e.length===3)this.b.emit("export * as "),this.mark(e,"alias",()=>this.b.emit(e[2])),this.namespaceExports.push(e[2]),this.b.emit(" from ");else this.b.emit("export * from ");{let i=this.b.offset;this.mark(e,"source",()=>this.b.emit(this.moduleSource(e[1]))),this.importSpans.push({start:i,end:this.b.offset,specifier:Pe(e[1])})}this.b.emit(";")}else if(r==="export-from"){if(this.b.emit("export "),e[1]==="{}")this.b.emit("{}");else this.b.emit("{ "),this.emitSpecifiers(e[1],fr(e[2])),this.b.emit(" }");this.b.emit(" from ");{let i=this.b.offset;this.mark(e,"source",()=>this.b.emit(this.moduleSource(e[2]))),this.importSpans.push({start:i,end:this.b.offset,specifier:Pe(e[2])})}this.b.emit(";")}else if(r==="export-default"){if(this.b.emit("export default "),y(e[1])&&k1(e[1][0])&&e[1].length===4)this.mark(e,"spec",()=>this.defStatement(e[1],t));else this.mark(e,"spec",()=>this.expr(e[1]));this.b.emit(";")}else{let i=e[1];if(i==="{}")this.b.emit("export {};");else if(y(i)&&i[0]==="class")this.b.emit("export "),this.classStatement(i,t),this.b.emit(";");else if(y(i)&&k1(i[0]))this.b.emit("export "),this.defStatement(i,t),this.b.emit(";");else if(y(i)&&i[0]==="enum")this.b.emit("export "),this.enumCode(i),this.b.emit(";"),this.tsEnumCompanion(i,!0);else if(this.isReactiveDecl(i))this.b.emit("export "),this.reactiveDecl(i,t);else if(this.isReadonlyDecl(i))this.b.emit("export "),this.readonlyDecl(i,t);else if(this.isEffectDecl(i)){if(i[1]===null)throw this.positionedError(e,"emitter: a bare effect ('export ~> …') binds nothing to export — bind a dispose handle (`export h ~> …`) or drop the export (`export __effect(…)` would be invalid JS)");this.b.emit("export "),this.effectStatement(i,t)}else if(y(i)&&(i[0]==="="||i[0]==="void-assign")){if(i[0]==="void-assign")this.registerVoidValue(i[2],i);if(this.b.emit("export "),this.mark(i,"voidMarker",()=>this.mark(i,"annotation",()=>this.mark(i,"$self",()=>{if(this.b.emit("const "),this.mark(i,"target",()=>this.b.emit(i[1])),this.ts&&this.annotationText(i)!==null)this.tsAnnotate(i,"annotation",this.annotationText(i));this.b.emit(" "),this.mark(i,"operator",()=>this.b.emit("=")),this.b.emit(" ");let n=this._schemaName,a=this._componentName,o=this._componentTypeParams;if(this._componentTypeParams=null,y(i[2])&&i[2][0]==="schema")this._schemaName=i[1];if(this.isComponentDecl(i[2])&&typeof i[1]==="string"){this._componentName=i[1];let l=this.annotationText(i,"typeParams");this._componentTypeParams=l===null?null:{text:l,owner:i}}this.mark(i,"value",()=>this.withExpression(()=>this.expr(i[2]))),this._schemaName=n,this._componentName=a,this._componentTypeParams=o}))),this.b.emit(";"),this.ts&&typeof i[1]==="string"&&this.componentInfo.has(i[2]))this.tsComponentCompanion(i[2],i[1],!0,this.annotationText(i,"typeParams"));if(this.ts)this.tsSchemaBehavior(i[2])}else this.b.emit("export { "),this.emitSpecifiers(i),this.b.emit(" };")}})}enumValue(e,t,r,s){if(typeof e==="string"){if(e.startsWith('"'))try{return[e,JSON.parse(e)]}catch{let i=/\\u(?![0-9a-fA-F]{4})|\\[^"\\/bfnrtu]/.exec(e)?.[0]??"\\";throw this.positionedError(s,`emitter: enum '${t}' member '${r}' — its string value uses the `+`'${i}' escape, which enum values do not support (JSON escapes only; '\\uXXXX' spells the same character)`)}if(/^[\d.]/.test(e)){let i=e.replace(/_/g,"").replace(/n$/,"");return[e,String(Number(i))]}return null}if(y(e)&&e[0]==="-"&&e.length===2){let i=this.enumValue(e[1],t,r,s);if(i===null||e[1].startsWith('"'))return null;return[`-${e[1]}`,`-${i[1]}`]}return null}enumStatement(e){this.enumCode(e),this.b.emit(";"),this.tsEnumCompanion(e,!1)}tsEnumCompanion(e,t){if(!this.ts||typeof e[1]!=="string")return;let r=e[1];this.b.tsOnly(()=>{this.b.emit(` +`),this.mark(e,"$self",()=>{let s=this.stores.idOf(e),i=s!==null?this.stores.selfSpan(s):null,n=i!==null?this.stores.primitiveSpans(r,i[0],i[1])[0]??null:null,a=()=>n?this.b.markSpan(s,"identifier",n.sourceStart,n.sourceEnd,()=>this.b.emit(r)):this.b.emit(r);this.b.emit(`${t?"export ":""}type `),a(),this.b.emit(" = (typeof "),a(),this.b.emit(")[keyof typeof "),a(),this.b.emit("];")})})}enumCode(e){let[,t,r]=e,s=b1(r)?r.slice(1):[r],i=[],n=new Set,a=(h,f,u)=>{if(n.has(h))throw this.positionedError(u,`emitter: enum '${t}' key '${h}' is used more than once (${f}) — `+"forward and reverse entries share one object, so every member name and value must be distinct ",e);n.add(h)},o=F3(s),l=(h)=>{let f=this.b.source,u=this.stores.idOf(r),d=u!==null?this.stores.selfSpan(u)?.[0]??null:null;if(f===null||d===null||typeof s[h]!=="string")return null;for(let m=0;m=0)d=w+g.length}}let p=f.indexOf(s[h],d);return p>=0?[p,p+s[h].length]:null};for(let h=0;h' lines — `+"a bare or computed member has no enum form here",g=l(h);if(g)throw this.positionedErrorAt(g[0],g[1],m);throw this.positionedError(f,m,e)}let u=this.enumValue(f[2],t,f[1],f);if(u===null)throw this.positionedError(f,`emitter: enum '${t}' member '${f[1]}' needs a number or string literal value — `+"the reverse mapping uses the value as an object key, so expressions have no enum form ",e);let[d,p]=u;a(f[1],`member '${f[1]}'`,f),a(p,`value of '${f[1]}'`,f),i.push([f,f[1],d,p])}let c=E.ownKeyText;this.mark(e,"$self",()=>{this.b.emit("const "),this.mark(e,"name",()=>this.noteNameSpan(t)),this.b.emit(" = "),this.mark(e,"body",()=>{this.b.emit("{"),i.forEach(([h,f,u],d)=>{if(d>0)this.b.emit(", ");this.mark(h,"$self",()=>{this.mark(h,"target",()=>{let p=c(f,f);if(p===f)this.emitPrimitive(f);else this.b.emit(p)}),this.b.emit(": "),this.mark(h,"value",()=>this.b.emit(u))})}),i.forEach(([h,f,u,d])=>{this.b.emit(", "),this.mark(h,"$self",()=>{this.b.emit(u.startsWith("-")?JSON.stringify(d):c(u,d)),this.b.emit(`: "${f}"`)})}),this.b.emit("}")})})}schemaExpr(e){let t=e[1];if(!t||typeof t!=="object"||!Array.isArray(t.entries))throw this.positionedError(e,"emitter: schema node without a descriptor — the lexer pass owns SCHEMA_BODY values");if(this.scopes.slice(1).some((o)=>o.has("__schema")))throw this.positionedError(e,"emitter: a function-scope binding of '__schema' shadows the schema runtime where this "+"schema declaration needs it — rename the local, or bind '__schema' at MODULE scope to "+"supply your own factory (the suppression hatch)");this.usesSchema=!0;let r=this._schemaName??null,s=new Map;for(let{entry:o,index:l,tokens:c,value:h}of E.schemaBodies(t)){if(h){s.set(l,this.schemaValueCode(c));continue}let f=this.schemaBodyParams(o);s.set(l,this.schemaFnCode(f,c))}let i=this.schemaStories?.get(e)??null,n=this.stores.idOf(e);if(this.ts&&i!==null)this.schemaFns.set(e,s);this.schemaPins=this.ts?new Map:null,this.schemaPinNode=n;let a=(o,l,c)=>{if(l===null||l===void 0)return;let h=`${o}:${c}`;if(!this.schemaPins.has(h))this.schemaPins.set(h,[]);this.schemaPins.get(h).push([l[0],l[1]])};if(this.ts&&r!==null)a("name",this.moduleTypeDeclarationSpans().get(r)??null,r);for(let o of this.ts?t.entries:[]){let l=(c,h,f)=>{if(typeof f!=="number"||typeof h!=="string")return;a(c,[f,f+h.length],h)};if(o.tag==="union-member")l("name",o.name,o.start);else if(o.tag==="directive"&&o.name==="mixin"&&o.argTokens?.[0]?.kind==="IDENTIFIER")l("target",o.argTokens[0].value,o.argTokens[0].start);else if(o.tag==="ensure")l("field",o.field,o.fieldStart);else if((Ui[o.tag]??null)!==null){if(l("name",o.name,o.start),o.tag==="field"&&Array.isArray(o.typeSpan)&&this.b.source!==null){let c=/[A-Za-z_$][\w$]*/.exec(this.b.source.slice(o.typeSpan[0],o.typeSpan[1]));if(c!==null&&c[0]===o.typeName)l("typeName",c[0],o.typeSpan[0]+c.index)}}}for(let o of this.schemaPins?.values()??[])for(let[l,c]of o)this.b.exactSourceSpans.add(`${l}:${c}`);this.mark(e,"$self",()=>{if(this.b.emit("__schema("),this.mark(e,"body",()=>{let o=zs(t,r,s,s.get("adapter")??null,i?.thisTypes??null,this.ts,i?.defaultTypes??null,i?.ensureTypes??null);for(let l of o)if(typeof l==="string")this.emitSchemaText(l);else if(l.body!==void 0)this.emitSchemaText(l.body,!0);else if(l.span!==null&&l.span!==void 0&&n!==null)this.b.tsOnly(()=>this.b.markSpan(n,"literal",l.span[0],l.span[1],()=>this.b.emit(l.ts)));else if(i!==null){let c=this.bindingNameSpan(i.decl.node,"target",i.decl.name);this.b.tsOnly(()=>this.emitNamedCopies(l.ts,i.decl.name,c?.id??null,c?.span??null))}else this.b.tsOnly(()=>this.b.emit(l.ts))}),this.b.emit(")"),i!==null&&i.constType!==null){let o=this.bindingNameSpan(i.decl.node,"target",i.decl.name);this.b.tsOnly(()=>{this.b.emit(" as unknown as "),this.emitNamedCopies(i.constType,i.decl.name,o?.id??null,o?.span??null)})}}),this.schemaPins=null,this.schemaPinNode=null}static schemaFail(e,t){let r=Error(`schema: ${e}`);throw r.start=t,r}static schemaBodies(e){let t=[];if(e.entries.forEach((r,s)=>{if(r.tag==="method"||r.tag==="computed"||r.tag==="derived"||r.tag==="ensure"||r.tag==="hook"||r.tag==="scope"||r.tag==="defaultScope")t.push({entry:r,index:s,tokens:r.bodyTokens});else if(r.tag==="field"&&r.transformTokens)t.push({entry:r,index:s,tokens:r.transformTokens})}),e.adapterTokens)t.push({entry:{tag:"adapter"},index:"adapter",tokens:e.adapterTokens,value:!0});return t}schemaBodyParams(e){if(e.tag==="adapter")return[];if(e.tag==="field")return[{name:"it",type:null}];return Gs(e.paramTokens??[],e.tag==="ensure"?"@ensure":`'${e.name}'`,E.schemaFail,this.b.source)}schemaFnCode(e,t){let r=e.map((d)=>d.name),{stmts:s,stores:i}=this.subParse(t);if(s.length===0)return{code:"(function() {})",thisAt:10,annots:[]};let n=s.length===1?s[0]:["block",...s],a=this.containsAwait(n),o=E.containsYield(n),l=this.subEmitter(i),c;if(s.length===1){let d=s[0],{entries:p,names:m}=l.scopedHoist([d],r);for(let g of l.pushReactiveFrame(s,m,r))m.add(g);if(l.scopes.push(m),p.length)l.hoistLine(p),l.b.emit(" ");if(mt(d)||re(d))l.statement(d,0);else l.implicitReturn(d,0);c=`{ ${l.b.code} }`}else{let{entries:d,names:p}=l.scopedHoist(s,r);for(let m of l.pushReactiveFrame(s,p,r))p.add(m);if(l.scopes.push(p),l.b.emit(`{ `),d.length)l.b.emit(" "),l.hoistLine(d," "),l.b.emit(` -`);n.forEach((m,g)=>{if(l.b.emit(" "),g===n.length-1)l.implicitReturn(m,1);else l.statement(m,1,!0);l.b.emit(` -`)}),l.b.emit("}"),c=l.b.code}let h=`(${a?"async ":""}function${o?"*":""}(`,f=[],u=h.length;return e.forEach((d,p)=>{if(u+=d.name.length,d.type!==null)f.push([u,`: ${d.type}`]);else if(d.optional)f.push([u,"?"]);if(pn++;tr(r,i,t??"",(l,c)=>{let h=Error(`schema: ${l}`);throw h.start=c,h.end=c,h}),Kt(r,i),Ti(r),Yt(r,i),zt(r,i);let a=nr();a.lexer={tokens:r,index:0,text:"",loc:null,setInput(){this.index=0},lex(){let l=this.tokens[this.index];if(!l)return null;return this.index++,this.text=l.value,this.loc={start:l.start,end:l.end},l.kind}};let o=a.parse("");if(o.diagnostics.length>0){let l=o.diagnostics[0],c=Error(`schema: failed to compile a schema function body: ${l.message}`);throw c.start=l.start,c.end=l.end,c}return{stmts:o.sexpr.slice(1),stores:new ar(o.stores)}}bareBlockStatement(e,t){this.mark(e,"$self",()=>{this.b.emit(`{ -`),this.statements(e.slice(1),t+1,"block"),this.b.emit(" ".repeat(t)+"}")}),this.b.emit(";")}statement(e,t,r=!1){this.withTsDirectives(e," ".repeat(t),()=>this.statementCore(e,t,r))}statementCore(e,t,r){if(this.ind=t,this.funcBodyStmt=r,y(e)){let i=E.STATEMENT_FORMS[e[0]];if(i&&i(this,e,t)){this.replDeclEcho(e);return}if(E.controlGuard(e))return this.returnGuardStatement(e,null);if(e[0]==="="&&e.length===3&&typeof e[1]==="string"&&E.controlGuard(e[2]))return this.returnGuardStatement(e[2],e);if(e[0]==="="&&e.length===3&&E.middleRestPattern(e[1])){this.middleRestAssign(e,t),this.b.emit(";");return}if(e[0]===".="&&e.length===3){this.methodAssignStatement(e,t),this.b.emit(";");return}if(e[0]==="="&&e.length===3&&E.sliceTarget(e[1])!==null){this.sliceAssignStatement(e),this.b.emit(";");return}if(lt(e[0])&&e.length===3&&E.sliceTarget(e[1])!==null)throw this.sliceAssignError(e);if(lt(e[0])&&e.length===3){let s=E.optionalGuard(e[1]);if(s!==null){this.optionalAssign(e,s,"statement"),this.b.emit(";");return}}}if(this.replCapture(e))return;if(E.needsGrouping(e,"statement"))this.mark(e,"$self",()=>{this.b.emit("("),this.expr(e),this.b.emit(")")}),this.b.emit(";");else this.expr(e),this.b.emit(";");if(this.ts&&y(e)&&e[0]==="="&&e.length===3&&typeof e[1]==="string"&&this.componentInfo.has(e[2]))this.tsComponentCompanion(e[2],e[1],!1,this.annotationText(e,"typeParams"));if(this.ts&&y(e)&&e[0]==="="&&e.length===3)this.tsSchemaBehavior(e[2])}tsSchemaBehavior(e){let t=this.schemaStories?.get(e)??null,r=this.schemaFns.get(e);if(t===null||r===void 0)return;let n=qn(e[1],t.decl.name,r,t.thisTypes);if(n===null)return;if(this.scopes[0]?.has(t.behaviorName)||this.moduleBound?.has(t.behaviorName))throw this.positionedError(e,`emitter: the module binds '${t.behaviorName}', the face-only name this schema's `+"callable types read through — rename the binding");let i=this.stores.idOf(e);this.b.tsOnly(()=>this.b.echo(()=>{if(this.b.emit(` -`+" ".repeat(this.ind)),i!==null)this.b.mark(i,"$self",()=>{let s=this.bindingNameSpan(t.decl.node,"target",t.decl.name);this.emitNamedCopies(n,t.decl.name,s?.id??null,s?.span??null)});else this.b.emit(n)}))}replSlot(){if(this.replResultName===null)this.replResultName=E.mintName("__result",this.temps.used);return this.replResultName}replResolver(){if(this.replImportResolver===null)this.replImportResolver=E.mintName("__resolveImport",this.temps.used);return this.replImportResolver}replCapture(e){if(!this.repl||e!==this.lastProgramStmt)return!1;return this.b.emit(`const ${this.replSlot()} = `),this.expr(e),this.b.emit(";"),!0}replDeclEcho(e){if(!this.repl||e!==this.lastProgramStmt||!y(e))return;let t=null,r=!1;if(this.isReactiveDecl(e)&&typeof e[1]==="string")t=e[1],r=!0;else if(this.isReadonlyDecl(e)&&typeof e[1]==="string")t=e[1];else if(this.isEffectDecl(e)&&typeof e[1]==="string")t=e[1];if(t===null)return;this.b.emit(` -const ${this.replSlot()} = ${t}${r?".value":""};`)}whileStatement(e,t){this.inCtrl(()=>this.whileStatementCtrl(e,t))}whileStatementCtrl(e,t){let r=e.length===4?e[2]:null,n=e[e.length-1];this.mark(e,"$self",()=>{if(this.b.emit("while ("),this.mark(e,"condition",()=>this.expr(e[1])),this.b.emit(") "),r!==null){let i=b1(n)?n.slice(1):n;this.b.emit(`{ +`);s.forEach((m,g)=>{if(l.b.emit(" "),g===s.length-1)l.implicitReturn(m,1);else l.statement(m,1,!0);l.b.emit(` +`)}),l.b.emit("}"),c=l.b.code}let h=`(${a?"async ":""}function${o?"*":""}(`,f=[],u=h.length;return e.forEach((d,p)=>{if(u+=d.name.length,d.type!==null)f.push([u,`: ${d.type}`]);else if(d.optional)f.push([u,"?"]);if(ps++;tr(r,i,t??"",(l,c)=>{let h=Error(`schema: ${l}`);throw h.start=c,h.end=c,h}),Gt(r,i),Ti(r),Yt(r,i),zt(r,i);let a=sr();a.lexer={tokens:r,index:0,text:"",loc:null,setInput(){this.index=0},lex(){let l=this.tokens[this.index];if(!l)return null;return this.index++,this.text=l.value,this.loc={start:l.start,end:l.end},l.kind}};let o=a.parse("");if(o.diagnostics.length>0){let l=o.diagnostics[0],c=Error(`schema: failed to compile a schema function body: ${l.message}`);throw c.start=l.start,c.end=l.end,c}return{stmts:o.sexpr.slice(1),stores:new ar(o.stores)}}bareBlockStatement(e,t){this.mark(e,"$self",()=>{this.b.emit(`{ +`),this.statements(e.slice(1),t+1,"block"),this.b.emit(" ".repeat(t)+"}")}),this.b.emit(";")}statement(e,t,r=!1){this.withTsDirectives(e," ".repeat(t),()=>this.statementCore(e,t,r))}statementCore(e,t,r){if(this.ind=t,this.funcBodyStmt=r,y(e)){let i=E.STATEMENT_FORMS[e[0]];if(i&&i(this,e,t)){this.replDeclEcho(e);return}if(E.controlGuard(e))return this.returnGuardStatement(e,null);if(e[0]==="="&&e.length===3&&typeof e[1]==="string"&&E.controlGuard(e[2]))return this.returnGuardStatement(e[2],e);if(e[0]==="="&&e.length===3&&E.middleRestPattern(e[1])){this.middleRestAssign(e,t),this.b.emit(";");return}if(e[0]===".="&&e.length===3){this.methodAssignStatement(e,t),this.b.emit(";");return}if(e[0]==="="&&e.length===3&&E.sliceTarget(e[1])!==null){this.sliceAssignStatement(e),this.b.emit(";");return}if(lt(e[0])&&e.length===3&&E.sliceTarget(e[1])!==null)throw this.sliceAssignError(e);if(lt(e[0])&&e.length===3){let n=E.optionalGuard(e[1]);if(n!==null){this.optionalAssign(e,n,"statement"),this.b.emit(";");return}}}if(this.replCapture(e))return;if(E.needsGrouping(e,"statement"))this.mark(e,"$self",()=>{this.b.emit("("),this.expr(e),this.b.emit(")")}),this.b.emit(";");else this.expr(e),this.b.emit(";");if(this.ts&&y(e)&&e[0]==="="&&e.length===3&&typeof e[1]==="string"&&this.componentInfo.has(e[2]))this.tsComponentCompanion(e[2],e[1],!1,this.annotationText(e,"typeParams"));if(this.ts&&y(e)&&e[0]==="="&&e.length===3)this.tsSchemaBehavior(e[2])}tsSchemaBehavior(e){let t=this.schemaStories?.get(e)??null,r=this.schemaFns.get(e);if(t===null||r===void 0)return;let s=qs(e[1],t.decl.name,r,t.thisTypes);if(s===null)return;if(this.scopes[0]?.has(t.behaviorName)||this.moduleBound?.has(t.behaviorName))throw this.positionedError(e,`emitter: the module binds '${t.behaviorName}', the face-only name this schema's `+"callable types read through — rename the binding");let i=this.stores.idOf(e);this.b.tsOnly(()=>this.b.echo(()=>{if(this.b.emit(` +`+" ".repeat(this.ind)),i!==null)this.b.mark(i,"$self",()=>{let n=this.bindingNameSpan(t.decl.node,"target",t.decl.name);this.emitNamedCopies(s,t.decl.name,n?.id??null,n?.span??null)});else this.b.emit(s)}))}replSlot(){if(this.replResultName===null)this.replResultName=E.mintName("__result",this.temps.used);return this.replResultName}replResolver(){if(this.replImportResolver===null)this.replImportResolver=E.mintName("__resolveImport",this.temps.used);return this.replImportResolver}replCapture(e){if(!this.repl||e!==this.lastProgramStmt)return!1;return this.b.emit(`const ${this.replSlot()} = `),this.expr(e),this.b.emit(";"),!0}replDeclEcho(e){if(!this.repl||e!==this.lastProgramStmt||!y(e))return;let t=null,r=!1;if(this.isReactiveDecl(e)&&typeof e[1]==="string")t=e[1],r=!0;else if(this.isReadonlyDecl(e)&&typeof e[1]==="string")t=e[1];else if(this.isEffectDecl(e)&&typeof e[1]==="string")t=e[1];if(t===null)return;this.b.emit(` +const ${this.replSlot()} = ${t}${r?".value":""};`)}whileStatement(e,t){this.inCtrl(()=>this.whileStatementCtrl(e,t))}whileStatementCtrl(e,t){let r=e.length===4?e[2]:null,s=e[e.length-1];this.mark(e,"$self",()=>{if(this.b.emit("while ("),this.mark(e,"condition",()=>this.expr(e[1])),this.b.emit(") "),r!==null){let i=b1(s)?s.slice(1):s;this.b.emit(`{ `+" ".repeat(t+1)+"if ("),this.expr(r),this.b.emit(`) { `),this.mark(e,"body",()=>this.statements(i,t+2,"block")),this.b.emit(" ".repeat(t+1)+`} -`+" ".repeat(t)+"}");return}if(!b1(n)&&y(n))this.mark(e,"body",()=>{this.b.emit(`{ -`),this.b.emit(" ".repeat(t+1)),this.statement(n[0],t+1),this.b.emit(` -`+" ".repeat(t)+"}")});else this.mark(e,"body",()=>this.braceBlock(n,t))})}ifStatement(e,t){if(!b1(e[2])&&y(e[2])){let r=e[2][0],n=y(r)&&E.LOOP_HEADS.has(r[0]);this.mark(e,"$self",()=>{if(this.b.emit("if ("),this.mark(e,"condition",()=>this.expr(e[1])),this.b.emit(") "),this.postfixGuardDepth++,n)this.b.emit(`{ +`+" ".repeat(t)+"}");return}if(!b1(s)&&y(s))this.mark(e,"body",()=>{this.b.emit(`{ +`),this.b.emit(" ".repeat(t+1)),this.statement(s[0],t+1),this.b.emit(` +`+" ".repeat(t)+"}")});else this.mark(e,"body",()=>this.braceBlock(s,t))})}ifStatement(e,t){if(!b1(e[2])&&y(e[2])){let r=e[2][0],s=y(r)&&E.LOOP_HEADS.has(r[0]);this.mark(e,"$self",()=>{if(this.b.emit("if ("),this.mark(e,"condition",()=>this.expr(e[1])),this.b.emit(") "),this.postfixGuardDepth++,s)this.b.emit(`{ `+" ".repeat(t+1)),this.statement(r,t+1),this.b.emit(` -`+" ".repeat(t)+"}");else this.statement(r,t);this.postfixGuardDepth--});return}this.mark(e,"$self",()=>this.ifChain(e,t))}static LOOP_HEADS=new Set(["for-in","for-of","for-as","while","loop","comprehension"]);loopStatement(e,t){this.withBindings(this.loopBindingNames(e),()=>this.inCtrl(()=>this.loopStatementCtrl(e,t)))}loopStatementCtrl(e,t){this.mark(e,"$self",()=>{let{body:r}=this.loopHeader(e);this.b.emit(" "),this.mark(e,"body",()=>this.braceBlock(r,t))})}throwStatement(e){this.mark(e,"$self",()=>{this.b.emit("throw "),this.mark(e,"value",()=>this.expr(e[1]))}),this.b.emit(";")}tryStatement(e,t){this.mark(e,"$self",()=>{this.b.emit("try ");let r=b1(e[1])?e[1]:["block",e[1]];if(this.mark(e,"body",()=>this.braceBlock(r,t)),e.length===2)this.b.emit(" catch {}");for(let n of e.slice(2)){if(!y(n))continue;if(b1(n))this.b.emit(" finally "),this.braceBlock(n,t);else{let[i,s]=n;if(i===null)this.b.emit(" catch "),this.braceBlock(s,t);else if(E.isPattern(i)){this.checkExportedConstWrite(n,i);let a=this.loopTempName("_err");this.b.emit(` catch (${a}`),this.tsScaffoldAny(),this.b.emit(`) { -`);let o=" ".repeat(t+1);this.b.emit(o+"("),this.mark(n,"binding",()=>this.withPattern(()=>this.expr(i))),this.b.emit(` = ${a}); -`),this.statements(b1(s)?s.slice(1):[s],t+1,"block"),this.b.emit(" ".repeat(t)+"}")}else if(E.isTypedWrapper(i))this.b.emit(" catch ("),this.mark(n,"binding",()=>this.emitParam(i)),this.b.emit(") "),this.withBindings([i[1]],()=>this.braceBlock(s,t));else this.b.emit(" catch ("),this.mark(n,"binding",()=>this.b.emit(i)),this.b.emit(") "),this.withBindings([i],()=>this.braceBlock(s,t))}}})}static isMatchArm(e){if(typeof e==="string")return e.startsWith("/");if(!y(e))return!1;return e[0]==="here-regex"||(e[0]===".."||e[0]==="...")&&e.length===3}static hasMatchArms(e){return e.some((t)=>t[1].some((r)=>E.isMatchArm(r)))}checkMatchSwitch(e){let[,t,r,n]=e;if(t===null)throw this.positionedError(e,"emitter: a regex or range `when` tests the switch subject, and this switch has none — give it one (`switch x`) or spell the test out (`when /re/.test(x)`)");for(let i of[...r.map((s)=>s[2]),n])if(i!==null&&E.findCapturedCtrl(i,P3)!==null)throw this.positionedError(e,"emitter: `break` in an arm of a switch with a regex or range `when` has nothing to leave — the switch is an if-chain and each arm ends on its own; drop the `break`")}static matchArmSexpr(e,t){if(!E.isMatchArm(t))return["==",e,t];if(y(t)&&(t[0]===".."||t[0]==="..."))return["&&",[">=",e,t[1]],[t[0]===".."?"<=":"<",e,t[2]]];return[[".",t,"test"],e]}matchArmTest(e,t){if(typeof e==="string"&&e.startsWith("/"))this.expr(e),this.b.emit(".test("),t(),this.b.emit(")");else if(y(e)&&e[0]==="here-regex")this.b.emit("("),this.expr(e),this.b.emit(").test("),t(),this.b.emit(")");else if(y(e)&&(e[0]===".."||e[0]==="...")&&e.length===3)this.b.emit("("),t(),this.b.emit(" >= "),this.expr(e[1]),this.b.emit(" && "),t(),this.b.emit(e[0]===".."?" <= ":" < "),this.expr(e[2]),this.b.emit(")");else t(),this.b.emit(" === "),this.expr(e)}matchChain(e,t,r){let[,n,i,s]=e,a=" ".repeat(t),l=typeof n==="string"&&/^[A-Za-z_$][\w$]*$/.test(n)&&!this.isReactiveName(n)?null:this.loopTempName("_switch"),c=()=>l!==null?this.b.emit(l):this.mark(e,"subject",()=>this.expr(n));if(l!==null)this.temps.used.add(l),this.b.emit(`const ${l} = `),this.mark(e,"subject",()=>this.expr(n)),this.b.emit(`; -${a}`);if(this.mark(e,"cases",()=>{i.forEach((h,f)=>{this.mark(h,"$self",()=>{let[,u,d]=h;if(f>0)this.b.emit(" else ");this.b.emit("if ("),u.forEach((p,m)=>{if(m>0)this.b.emit(" || ");this.matchArmTest(p,c)}),this.b.emit(") "),r(d)})})}),s!==null)this.b.emit(" else "),r(s)}switchStatement(e,t){let[,r,n,i]=e,s=" ".repeat(t);if(E.hasMatchArms(n)){this.checkMatchSwitch(e),this.mark(e,"$self",()=>this.matchChain(e,t,(a)=>this.braceBlock(a,t)));return}this.mark(e,"$self",()=>{if(r!==null){if(this.b.emit("switch ("),this.mark(e,"subject",()=>this.expr(r)),this.b.emit(`) { -`),this.mark(e,"cases",()=>{for(let a of n)this.mark(a,"$self",()=>{let[,o,l]=a;for(let c of o)this.b.emit(`${s} case `),this.expr(c),this.b.emit(`: -`);this.caseBody(l,t)})}),i!==null)this.b.emit(`${s} default: -`),this.caseBody(i,t);this.b.emit(`${s}}`)}else if(n.forEach((a,o)=>{let[,l,c]=a;if(o>0)this.b.emit(" else ");this.b.emit("if (("),l.forEach((h,f)=>{if(f>0)this.b.emit(") || (");this.expr(h)}),this.b.emit(")) "),this.braceBlock(c,t)}),i!==null)this.b.emit(" else "),this.braceBlock(i,t)})}caseBody(e,t){this.inCtrl(()=>this.caseBodyCtrl(e,t))}caseBodyCtrl(e,t){let r=this.liveStmts(b1(e)?e.slice(1):[e]);this.emitTsTypeDecls(b1(e)?e.slice(1):[e]," ".repeat(t+2));for(let n of r)this.b.emit(" ".repeat(t+2)),this.statement(n,t+2),this.b.emit(` +`+" ".repeat(t)+"}");else this.statement(r,t);this.postfixGuardDepth--});return}this.mark(e,"$self",()=>this.ifChain(e,t))}static LOOP_HEADS=new Set(["for-in","for-of","for-as","while","loop","comprehension"]);loopStatement(e,t){this.withBindings(this.loopBindingNames(e),()=>this.inCtrl(()=>this.loopStatementCtrl(e,t)))}loopStatementCtrl(e,t){this.mark(e,"$self",()=>{let{body:r}=this.loopHeader(e);this.b.emit(" "),this.mark(e,"body",()=>this.braceBlock(r,t))})}throwStatement(e){this.mark(e,"$self",()=>{this.b.emit("throw "),this.mark(e,"value",()=>this.expr(e[1]))}),this.b.emit(";")}tryStatement(e,t){this.mark(e,"$self",()=>{this.b.emit("try ");let r=b1(e[1])?e[1]:["block",e[1]];if(this.mark(e,"body",()=>this.braceBlock(r,t)),e.length===2)this.b.emit(" catch {}");for(let s of e.slice(2)){if(!y(s))continue;if(b1(s))this.b.emit(" finally "),this.braceBlock(s,t);else{let[i,n]=s;if(i===null)this.b.emit(" catch "),this.braceBlock(n,t);else if(E.isPattern(i)){this.checkExportedConstWrite(s,i);let a=this.loopTempName("_err");this.b.emit(` catch (${a}`),this.tsScaffoldAny(),this.b.emit(`) { +`);let o=" ".repeat(t+1);this.b.emit(o+"("),this.mark(s,"binding",()=>this.withPattern(()=>this.expr(i))),this.b.emit(` = ${a}); +`),this.statements(b1(n)?n.slice(1):[n],t+1,"block"),this.b.emit(" ".repeat(t)+"}")}else if(E.isTypedWrapper(i))this.b.emit(" catch ("),this.mark(s,"binding",()=>this.emitParam(i)),this.b.emit(") "),this.withBindings([i[1]],()=>this.braceBlock(n,t));else this.b.emit(" catch ("),this.mark(s,"binding",()=>this.b.emit(i)),this.b.emit(") "),this.withBindings([i],()=>this.braceBlock(n,t))}}})}static isMatchArm(e){if(typeof e==="string")return e.startsWith("/");if(!y(e))return!1;return e[0]==="here-regex"||(e[0]===".."||e[0]==="...")&&e.length===3}static hasMatchArms(e){return e.some((t)=>t[1].some((r)=>E.isMatchArm(r)))}checkMatchSwitch(e){let[,t,r,s]=e;if(t===null)throw this.positionedError(e,"emitter: a regex or range `when` tests the switch subject, and this switch has none — give it one (`switch x`) or spell the test out (`when /re/.test(x)`)");for(let i of[...r.map((n)=>n[2]),s])if(i!==null&&E.findCapturedCtrl(i,j3)!==null)throw this.positionedError(e,"emitter: `break` in an arm of a switch with a regex or range `when` has nothing to leave — the switch is an if-chain and each arm ends on its own; drop the `break`")}static matchArmSexpr(e,t){if(!E.isMatchArm(t))return["==",e,t];if(y(t)&&(t[0]===".."||t[0]==="..."))return["&&",[">=",e,t[1]],[t[0]===".."?"<=":"<",e,t[2]]];return[[".",t,"test"],e]}matchArmTest(e,t){if(typeof e==="string"&&e.startsWith("/"))this.expr(e),this.b.emit(".test("),t(),this.b.emit(")");else if(y(e)&&e[0]==="here-regex")this.b.emit("("),this.expr(e),this.b.emit(").test("),t(),this.b.emit(")");else if(y(e)&&(e[0]===".."||e[0]==="...")&&e.length===3)this.b.emit("("),t(),this.b.emit(" >= "),this.expr(e[1]),this.b.emit(" && "),t(),this.b.emit(e[0]===".."?" <= ":" < "),this.expr(e[2]),this.b.emit(")");else t(),this.b.emit(" === "),this.expr(e)}matchChain(e,t,r){let[,s,i,n]=e,a=" ".repeat(t),l=typeof s==="string"&&/^[A-Za-z_$][\w$]*$/.test(s)&&!this.isReactiveName(s)?null:this.loopTempName("_switch"),c=()=>l!==null?this.b.emit(l):this.mark(e,"subject",()=>this.expr(s));if(l!==null)this.temps.used.add(l),this.b.emit(`const ${l} = `),this.mark(e,"subject",()=>this.expr(s)),this.b.emit(`; +${a}`);if(this.mark(e,"cases",()=>{i.forEach((h,f)=>{this.mark(h,"$self",()=>{let[,u,d]=h;if(f>0)this.b.emit(" else ");this.b.emit("if ("),u.forEach((p,m)=>{if(m>0)this.b.emit(" || ");this.matchArmTest(p,c)}),this.b.emit(") "),r(d)})})}),n!==null)this.b.emit(" else "),r(n)}switchStatement(e,t){let[,r,s,i]=e,n=" ".repeat(t);if(E.hasMatchArms(s)){this.checkMatchSwitch(e),this.mark(e,"$self",()=>this.matchChain(e,t,(a)=>this.braceBlock(a,t)));return}this.mark(e,"$self",()=>{if(r!==null){if(this.b.emit("switch ("),this.mark(e,"subject",()=>this.expr(r)),this.b.emit(`) { +`),this.mark(e,"cases",()=>{for(let a of s)this.mark(a,"$self",()=>{let[,o,l]=a;for(let c of o)this.b.emit(`${n} case `),this.expr(c),this.b.emit(`: +`);this.caseBody(l,t)})}),i!==null)this.b.emit(`${n} default: +`),this.caseBody(i,t);this.b.emit(`${n}}`)}else if(s.forEach((a,o)=>{let[,l,c]=a;if(o>0)this.b.emit(" else ");this.b.emit("if (("),l.forEach((h,f)=>{if(f>0)this.b.emit(") || (");this.expr(h)}),this.b.emit(")) "),this.braceBlock(c,t)}),i!==null)this.b.emit(" else "),this.braceBlock(i,t)})}caseBody(e,t){this.inCtrl(()=>this.caseBodyCtrl(e,t))}caseBodyCtrl(e,t){let r=this.liveStmts(b1(e)?e.slice(1):[e]);this.emitTsTypeDecls(b1(e)?e.slice(1):[e]," ".repeat(t+2));for(let s of r)this.b.emit(" ".repeat(t+2)),this.statement(s,t+2),this.b.emit(` `);this.b.emit(" ".repeat(t+2)+`break; -`)}loopBindingNames(e){let t=y(e)?e[0]:null,r=null;if(t==="loop-n")return["it"];if(t==="for-in"||t==="for-of"||t==="for-as")r=e[1];else if(re(e))r=e[2][0][1];if(r===null)return[];if(r.length===0)throw this.positionedError(e,"emitter: a for loop binds no variable — spell a bare repeat with a binding (`for i in [1...3]`)");let n=[];for(let i of r)this.patternNames(i,n,!0);return n}rangedHeader(e,t,r,n,i){let[s,a,o]=n,l=s===".."?"<=":"<",c=s===".."?">=":">",h=(L)=>typeof L==="string"&&/^[0-9.]/.test(L)?L:null,f=(L)=>h(L)??(y(L)&&(L[0]==="+"||L[0]==="-")&&L.length===2&&h(L[1])!==null?`${L[0]==="-"?"-":""}${h(L[1])}`:null),u=(L)=>{let C=f(L);return C===null?null:Number(C.replace(/_/g,""))},d=i===null?null:u(i);if(d===0)throw this.positionedError(e,"emitter: a BY step of 0 never advances the loop");let p=u(a),m=u(o),g=i===null?p!==null&&m!==null&&p>m:d!==null&&d<0,b=r[0],S=r.length===2?r[1]:null,w=m!==null||this.singleReadIterable(o)?null:this.loopTempName("_ref"),R=i===null||d!==null?null:this.loopTempName("_step");if(this.b.emit("for (let "),t(b),this.b.emit(" = "),this.expr(a),w!==null)this.b.emit(`, ${w} = `),this.expr(o);if(R!==null)this.b.emit(`, ${R} = `),this.mark(e,"step",()=>this.expr(i));if(S!==null)this.b.emit(", "),t(S),this.b.emit(" = 0");let T=()=>{if(w!==null)this.b.emit(w);else this.expr(o)},F=()=>{if(R!==null)this.b.emit(`${b} += ${R}`);else if(i===null)this.b.emit(g?`${b}--`:`${b}++`);else this.b.emit(`${b} ${g?"-=":"+="} `),this.mark(e,"step",()=>this.b.emit(String(Math.abs(d))));if(S!==null)this.b.emit(`, ${S}++`)};if(this.b.emit("; "),R!==null)this.b.emit(`${R} > 0 ? ${b} ${l} `),T(),this.b.emit(` : ${b} ${c} `),T();else this.b.emit(`${b} ${g?c:l} `),T();this.b.emit("; "),F(),this.b.emit(")")}forIn(e,t){this.inCtrl(()=>this.forInCtrl(e,t))}forInCtrl(e,t){let[,r,n,i,s,a]=e;this.withBindings(this.loopBindingNames(e),()=>this.forInCore(e,r,n,i,s,a,t))}forInCore(e,t,r,n,i,s,a){this.mark(e,"$self",()=>{let o=(l)=>this.mark(e,"vars",()=>typeof l==="string"?this.emitPrimitive(l):this.withPattern(()=>this.expr(l),!0));if(y(t[0])&&(We(r)||n!==null))throw this.positionedError(e,"emitter: pattern loop variables with ranges or BY steps are not supported yet");if(We(r))this.rangedHeader(e,o,t,r,n),this.b.emit(" "),this.guardedBlock(s,i,a);else if(n!==null){let l=t.length===2?t[1]:this.loopTempName("_i"),c=()=>{if(t.length===2)o(l);else this.b.emit(l)},h=(g)=>typeof g==="string"&&/^[0-9.]/.test(g)?g:null,f=h(n)??(y(n)&&n[0]==="+"&&n.length===2?h(n[1]):null),u=y(n)&&n[0]==="-"&&n.length===2?h(n[1]):null;if((f??u)!==null&&Number((f??u).replace(/_/g,""))===0)throw this.positionedError(e,"emitter: a BY step of 0 never advances the loop");let d=this.singleReadIterable(r)?null:this.loopTempName("_ref"),p=()=>{if(d)this.b.emit(`${d} = `),this.expr(r),this.b.emit(", ")},m=()=>{if(d)this.b.emit(d);else this.expr(r)};if(u!==null)if(this.b.emit("for (let "),p(),c(),this.b.emit(" = "),m(),this.b.emit(`.length - 1; ${l} >= 0; `),u==="1")this.mark(e,"step",()=>this.b.emit(`${l}--`));else this.b.emit(`${l} += `),this.mark(e,"step",()=>{this.b.emit("(-"),this.expr(n[1]),this.b.emit(")")});else if(f!==null)if(this.b.emit("for (let "),p(),c(),this.b.emit(` = 0; ${l} < `),m(),this.b.emit(".length; "),n==="1")this.mark(e,"step",()=>this.b.emit(`${l}++`));else this.b.emit(`${l} += `),this.grouped(e,"step",n,E.needsGrouping(n,"operand"));else{let g=this.loopTempName("_step");this.b.emit(`for (let ${g} = `),this.mark(e,"step",()=>this.expr(n)),this.b.emit(", "),p(),c(),this.b.emit(` = ${g} > 0 ? 0 : `),m(),this.b.emit(`.length - 1; ${g} > 0 ? ${l} < `),m(),this.b.emit(`.length : ${g} < 0 && ${l} >= 0; ${l} += ${g}`)}this.b.emit(`) { +`)}loopBindingNames(e){let t=y(e)?e[0]:null,r=null;if(t==="loop-n")return["it"];if(t==="for-in"||t==="for-of"||t==="for-as")r=e[1];else if(re(e))r=e[2][0][1];if(r===null)return[];if(r.length===0)throw this.positionedError(e,"emitter: a for loop binds no variable — spell a bare repeat with a binding (`for i in [1...3]`)");let s=[];for(let i of r)this.patternNames(i,s,!0);return s}rangedHeader(e,t,r,s,i){let[n,a,o]=s,l=n===".."?"<=":"<",c=n===".."?">=":">",h=(M)=>typeof M==="string"&&/^[0-9.]/.test(M)?M:null,f=(M)=>h(M)??(y(M)&&(M[0]==="+"||M[0]==="-")&&M.length===2&&h(M[1])!==null?`${M[0]==="-"?"-":""}${h(M[1])}`:null),u=(M)=>{let x=f(M);return x===null?null:Number(x.replace(/_/g,""))},d=i===null?null:u(i);if(d===0)throw this.positionedError(e,"emitter: a BY step of 0 never advances the loop");let p=u(a),m=u(o),g=i===null?p!==null&&m!==null&&p>m:d!==null&&d<0,b=r[0],S=r.length===2?r[1]:null,w=m!==null||this.singleReadIterable(o)?null:this.loopTempName("_ref"),R=i===null||d!==null?null:this.loopTempName("_step");if(this.b.emit("for (let "),t(b),this.b.emit(" = "),this.expr(a),w!==null)this.b.emit(`, ${w} = `),this.expr(o);if(R!==null)this.b.emit(`, ${R} = `),this.mark(e,"step",()=>this.expr(i));if(S!==null)this.b.emit(", "),t(S),this.b.emit(" = 0");let T=()=>{if(w!==null)this.b.emit(w);else this.expr(o)},j=()=>{if(R!==null)this.b.emit(`${b} += ${R}`);else if(i===null)this.b.emit(g?`${b}--`:`${b}++`);else this.b.emit(`${b} ${g?"-=":"+="} `),this.mark(e,"step",()=>this.b.emit(String(Math.abs(d))));if(S!==null)this.b.emit(`, ${S}++`)};if(this.b.emit("; "),R!==null)this.b.emit(`${R} > 0 ? ${b} ${l} `),T(),this.b.emit(` : ${b} ${c} `),T();else this.b.emit(`${b} ${g?c:l} `),T();this.b.emit("; "),j(),this.b.emit(")")}forIn(e,t){this.inCtrl(()=>this.forInCtrl(e,t))}forInCtrl(e,t){let[,r,s,i,n,a]=e;this.withBindings(this.loopBindingNames(e),()=>this.forInCore(e,r,s,i,n,a,t))}forInCore(e,t,r,s,i,n,a){this.mark(e,"$self",()=>{let o=(l)=>this.mark(e,"vars",()=>typeof l==="string"?this.emitPrimitive(l):this.withPattern(()=>this.expr(l),!0));if(y(t[0])&&(We(r)||s!==null))throw this.positionedError(e,"emitter: pattern loop variables with ranges or BY steps are not supported yet");if(We(r))this.rangedHeader(e,o,t,r,s),this.b.emit(" "),this.guardedBlock(n,i,a);else if(s!==null){let l=t.length===2?t[1]:this.loopTempName("_i"),c=()=>{if(t.length===2)o(l);else this.b.emit(l)},h=(g)=>typeof g==="string"&&/^[0-9.]/.test(g)?g:null,f=h(s)??(y(s)&&s[0]==="+"&&s.length===2?h(s[1]):null),u=y(s)&&s[0]==="-"&&s.length===2?h(s[1]):null;if((f??u)!==null&&Number((f??u).replace(/_/g,""))===0)throw this.positionedError(e,"emitter: a BY step of 0 never advances the loop");let d=this.singleReadIterable(r)?null:this.loopTempName("_ref"),p=()=>{if(d)this.b.emit(`${d} = `),this.expr(r),this.b.emit(", ")},m=()=>{if(d)this.b.emit(d);else this.expr(r)};if(u!==null)if(this.b.emit("for (let "),p(),c(),this.b.emit(" = "),m(),this.b.emit(`.length - 1; ${l} >= 0; `),u==="1")this.mark(e,"step",()=>this.b.emit(`${l}--`));else this.b.emit(`${l} += `),this.mark(e,"step",()=>{this.b.emit("(-"),this.expr(s[1]),this.b.emit(")")});else if(f!==null)if(this.b.emit("for (let "),p(),c(),this.b.emit(` = 0; ${l} < `),m(),this.b.emit(".length; "),s==="1")this.mark(e,"step",()=>this.b.emit(`${l}++`));else this.b.emit(`${l} += `),this.grouped(e,"step",s,E.needsGrouping(s,"operand"));else{let g=this.loopTempName("_step");this.b.emit(`for (let ${g} = `),this.mark(e,"step",()=>this.expr(s)),this.b.emit(", "),p(),c(),this.b.emit(` = ${g} > 0 ? 0 : `),m(),this.b.emit(`.length - 1; ${g} > 0 ? ${l} < `),m(),this.b.emit(`.length : ${g} < 0 && ${l} >= 0; ${l} += ${g}`)}this.b.emit(`) { let `),o(t[0]),this.b.emit(" = "),m(),this.b.emit(`[${l}]; -`),this.flatBody(s,i," "),this.b.emit("}")}else if(t.length===2){let l=this.singleReadIterable(r)?null:this.loopTempName("_ref");if(this.b.emit("for (let "),l)this.b.emit(`${l} = `),this.expr(r),this.b.emit(", ");if(o(t[1]),this.b.emit(` = 0; ${t[1]} < `),l)this.b.emit(l);else this.expr(r);if(this.b.emit(`.length; ${t[1]}++) { +`),this.flatBody(n,i," "),this.b.emit("}")}else if(t.length===2){let l=this.singleReadIterable(r)?null:this.loopTempName("_ref");if(this.b.emit("for (let "),l)this.b.emit(`${l} = `),this.expr(r),this.b.emit(", ");if(o(t[1]),this.b.emit(` = 0; ${t[1]} < `),l)this.b.emit(l);else this.expr(r);if(this.b.emit(`.length; ${t[1]}++) { `),this.b.emit(" ".repeat(a+1)+"let "),o(t[0]),this.b.emit(" = "),l)this.b.emit(l);else this.expr(r);if(this.b.emit(`[${t[1]}]; -`),i!==null)this.b.emit(" ".repeat(a+1)+"if ("),this.expr(i),this.b.emit(") "),this.braceBlock(s,a+1),this.b.emit(` -`);else this.bodyLines(s,a);this.b.emit(" ".repeat(a)+"}")}else this.b.emit("for (let "),o(t[0]),this.b.emit(" of "),this.mark(e,"iterable",()=>this.expr(r)),this.b.emit(") "),this.guardedBlock(s,i,a)})}forOf(e,t){this.inCtrl(()=>this.forOfCtrl(e,t))}forOfCtrl(e,t){let[,r,n,i,s,a]=e;this.checkForOfPatternKey(r,i),this.withBindings(this.loopBindingNames(e),()=>this.forOfCore(e,r,n,i,s,a,t))}forOfCore(e,t,r,n,i,s,a){this.mark(e,"$self",()=>{let o=(f)=>this.mark(e,"vars",()=>typeof f==="string"?this.emitPrimitive(f):this.withPattern(()=>this.expr(f),!0)),c=(n||t.length===2)&&!this.singleReadIterable(r)?this.loopTempName("_ref"):null;if(c!==null)this.temps.used.add(c),this.b.emit(`const ${c} = `),this.mark(e,"object",()=>this.expr(r)),this.b.emit(`; -${" ".repeat(a)}`);let h=()=>{if(c)this.b.emit(c);else this.expr(r)};if(this.b.emit("for (let "),o(t[0]),this.b.emit(" in "),c)this.b.emit(c);else this.mark(e,"object",()=>this.expr(r));if(this.b.emit(") "),n||t.length===2){if(this.b.emit(`{ -`),n)this.b.emit("if (!Object.hasOwn("),h(),this.b.emit(`, ${t[0]})) continue; +`),i!==null)this.b.emit(" ".repeat(a+1)+"if ("),this.expr(i),this.b.emit(") "),this.braceBlock(n,a+1),this.b.emit(` +`);else this.bodyLines(n,a);this.b.emit(" ".repeat(a)+"}")}else this.b.emit("for (let "),o(t[0]),this.b.emit(" of "),this.mark(e,"iterable",()=>this.expr(r)),this.b.emit(") "),this.guardedBlock(n,i,a)})}forOf(e,t){this.inCtrl(()=>this.forOfCtrl(e,t))}forOfCtrl(e,t){let[,r,s,i,n,a]=e;this.checkForOfPatternKey(r,i),this.withBindings(this.loopBindingNames(e),()=>this.forOfCore(e,r,s,i,n,a,t))}forOfCore(e,t,r,s,i,n,a){this.mark(e,"$self",()=>{let o=(f)=>this.mark(e,"vars",()=>typeof f==="string"?this.emitPrimitive(f):this.withPattern(()=>this.expr(f),!0)),c=(s||t.length===2)&&!this.singleReadIterable(r)?this.loopTempName("_ref"):null;if(c!==null)this.temps.used.add(c),this.b.emit(`const ${c} = `),this.mark(e,"object",()=>this.expr(r)),this.b.emit(`; +${" ".repeat(a)}`);let h=()=>{if(c)this.b.emit(c);else this.expr(r)};if(this.b.emit("for (let "),o(t[0]),this.b.emit(" in "),c)this.b.emit(c);else this.mark(e,"object",()=>this.expr(r));if(this.b.emit(") "),s||t.length===2){if(this.b.emit(`{ +`),s)this.b.emit("if (!Object.hasOwn("),h(),this.b.emit(`, ${t[0]})) continue; `);if(t.length===2)this.b.emit("let "),o(t[1]),this.b.emit(" = "),h(),this.b.emit(`[${t[0]}]; -`);this.flatBody(s,i,""),this.b.emit("}")}else this.guardedBlock(s,i,a)})}checkForOfPatternKey(e,t){if(!y(e[0]))return;if(t)throw this.positionedError(e[0],"emitter: a for…of pattern key cannot combine with 'own' — the hasOwn filter reads the key by name (name the key and destructure the value slot)");if(e.length===2)throw this.positionedError(e[0],"emitter: a for…of pattern key cannot combine with a value variable — the value binding indexes the object by the key name (name the key and destructure the value slot)")}forAs(e,t){this.inCtrl(()=>this.forAsCtrl(e,t))}forAsCtrl(e,t){let[,r,n,i,s,a]=e;this.withBindings(this.loopBindingNames(e),()=>{this.mark(e,"$self",()=>{this.clauseHeader(e,"for-as",r,n,i),this.b.emit(" "),this.guardedBlock(a,s,t)})})}guardedBlock(e,t,r){if(t===null){this.braceBlock(e,r);return}this.b.emit(`{ +`);this.flatBody(n,i,""),this.b.emit("}")}else this.guardedBlock(n,i,a)})}checkForOfPatternKey(e,t){if(!y(e[0]))return;if(t)throw this.positionedError(e[0],"emitter: a for…of pattern key cannot combine with 'own' — the hasOwn filter reads the key by name (name the key and destructure the value slot)");if(e.length===2)throw this.positionedError(e[0],"emitter: a for…of pattern key cannot combine with a value variable — the value binding indexes the object by the key name (name the key and destructure the value slot)")}forAs(e,t){this.inCtrl(()=>this.forAsCtrl(e,t))}forAsCtrl(e,t){let[,r,s,i,n,a]=e;this.withBindings(this.loopBindingNames(e),()=>{this.mark(e,"$self",()=>{this.clauseHeader(e,"for-as",r,s,i),this.b.emit(" "),this.guardedBlock(a,n,t)})})}guardedBlock(e,t,r){if(t===null){this.braceBlock(e,r);return}this.b.emit(`{ `+" ".repeat(r+1)+"if ("),this.expr(t),this.b.emit(") "),this.braceBlock(e,r+1),this.b.emit(` -`+" ".repeat(r)+"}")}flatBody(e,t,r){let n=this.liveStmts(b1(e)?e.slice(1):[e]);if(this.emitTsTypeDecls(b1(e)?e.slice(1):[e],""),t!==null){let i=E.needsGrouping(t,"operand")||U1(t);if(this.b.emit("if ("),i)this.b.emit("(");if(this.expr(t),i)this.b.emit(")");this.b.emit(`) { -`);for(let s of n)this.b.emit(r),this.statement(s,0),this.b.emit(` +`+" ".repeat(r)+"}")}flatBody(e,t,r){let s=this.liveStmts(b1(e)?e.slice(1):[e]);if(this.emitTsTypeDecls(b1(e)?e.slice(1):[e],""),t!==null){let i=E.needsGrouping(t,"operand")||U1(t);if(this.b.emit("if ("),i)this.b.emit("(");if(this.expr(t),i)this.b.emit(")");this.b.emit(`) { +`);for(let n of s)this.b.emit(r),this.statement(n,0),this.b.emit(` `);this.b.emit(` } -`);return}for(let i of n)this.statement(i,0),this.b.emit(` -`)}bodyLines(e,t){let r=this.liveStmts(b1(e)?e.slice(1):[e]);this.emitTsTypeDecls(b1(e)?e.slice(1):[e]," ".repeat(t+1));for(let n of r)this.b.emit(" ".repeat(t+1)),this.statement(n,t+1),this.b.emit(` -`)}clauseHeader(e,t,r,n,i,s=null){let a=(c)=>this.mark(e,"vars",()=>typeof c==="string"?this.emitPrimitive(c):this.withPattern(()=>this.expr(c),!0)),o=[];if(t==="for-of"){this.checkForOfPatternKey(r,i===!0);let h=(i===!0||r.length===2)&&!this.singleReadIterable(n)?this.loopTempName("_ref"):null;if(h!==null)this.temps.used.add(h),this.b.emit(`const ${h} = `),this.mark(e,"object",()=>this.expr(n)),this.b.emit(`; -${s??""}`);let f=()=>{if(h)this.b.emit(h);else this.expr(n)};if(this.b.emit("for (let "),a(r[0]),this.b.emit(" in "),h)this.b.emit(h);else this.mark(e,"object",()=>this.expr(n));if(this.b.emit(")"),i===!0)o.push(()=>{this.b.emit("if (!Object.hasOwn("),f(),this.b.emit(`, ${r[0]})) continue;`)});if(r.length===2)o.push(()=>{this.b.emit("let "),a(r[1]),this.b.emit(" = "),f(),this.b.emit(`[${r[0]}];`)});return o}if(t==="for-as"){if(r.length!==1)throw this.positionedError(e,"emitter: for-as takes ONE loop variable — the iterator protocol yields single values (destructure with a pattern instead)");if(i===!0)this.renderSyncGuard(e);return this.b.emit(i===!0?"for await (let ":"for (let "),a(r[0]),this.b.emit(" of "),this.mark(e,"iterable",()=>this.expr(n)),this.b.emit(")"),o}let l=i;if(y(r[0])&&(We(n)||l!==null))throw this.positionedError(e,"emitter: pattern loop variables with ranges or BY steps are not supported yet");if(We(n))return this.rangedHeader(e,a,r,n,l),o;if(l!==null){let c=r.length===2?r[1]:this.loopTempName("_i"),h=()=>{if(r.length===2)a(c);else this.b.emit(c)},f=(b)=>typeof b==="string"&&/^[0-9.]/.test(b)?b:null,u=f(l)??(y(l)&&l[0]==="+"&&l.length===2?f(l[1]):null),d=y(l)&&l[0]==="-"&&l.length===2?f(l[1]):null;if((u??d)!==null&&Number((u??d).replace(/_/g,""))===0)throw this.positionedError(e,"emitter: a BY step of 0 never advances the loop");let p=this.singleReadIterable(n)?null:this.loopTempName("_ref"),m=()=>{if(p)this.b.emit(`${p} = `),this.expr(n),this.b.emit(", ")},g=()=>{if(p)this.b.emit(p);else this.expr(n)};if(d!==null)if(this.b.emit("for (let "),m(),h(),this.b.emit(" = "),g(),this.b.emit(`.length - 1; ${c} >= 0; `),d==="1")this.mark(e,"step",()=>this.b.emit(`${c}--`));else this.b.emit(`${c} += `),this.mark(e,"step",()=>{this.b.emit("(-"),this.expr(l[1]),this.b.emit(")")});else if(u!==null)if(this.b.emit("for (let "),m(),h(),this.b.emit(` = 0; ${c} < `),g(),this.b.emit(".length; "),l==="1")this.mark(e,"step",()=>this.b.emit(`${c}++`));else this.b.emit(`${c} += `),this.grouped(e,"step",l,E.needsGrouping(l,"operand"));else{let b=this.loopTempName("_step");this.b.emit(`for (let ${b} = `),this.mark(e,"step",()=>this.expr(l)),this.b.emit(", "),m(),h(),this.b.emit(` = ${b} > 0 ? 0 : `),g(),this.b.emit(`.length - 1; ${b} > 0 ? ${c} < `),g(),this.b.emit(`.length : ${b} < 0 && ${c} >= 0; ${c} += ${b}`)}return this.b.emit(")"),o.push(()=>{this.b.emit("let "),a(r[0]),this.b.emit(" = "),g(),this.b.emit(`[${c}];`)}),o}if(r.length===2){let c=this.singleReadIterable(n)?null:this.loopTempName("_ref");if(this.b.emit("for (let "),c)this.b.emit(`${c} = `),this.expr(n),this.b.emit(", ");if(a(r[1]),this.b.emit(` = 0; ${r[1]} < `),c)this.b.emit(c);else this.expr(n);return this.b.emit(`.length; ${r[1]}++)`),o.push(()=>{if(this.b.emit("let "),a(r[0]),this.b.emit(" = "),c)this.b.emit(c);else this.expr(n);this.b.emit(`[${r[1]}];`)}),o}return this.b.emit("for (let "),a(r[0]),this.b.emit(" of "),this.mark(e,"iterable",()=>this.expr(n)),this.b.emit(")"),o}guardOpen(e){this.b.emit("if (");let t=E.needsGrouping(e,"operand")||U1(e);if(t)this.b.emit("(");if(this.expr(e),t)this.b.emit(")");this.b.emit(`) { -`)}comprehension(e,t,r=null){this.withBindings(this.loopBindingNames(e),()=>this.comprehensionCore(e,t,r))}comprehensionCore(e,t,r){this.inCtrl(()=>this.comprehensionCoreCtrl(e,t,r))}bareReads(e,t=new Set){if(typeof e==="string")return t.add(e),t;if(!y(e)||T1(e)||k1(e[0])||e[0]==="class")return t;let r=e[0];if((r==="."||r==="?.")&&e.length===3)return this.bareReads(e[1],t);if((r===":"||r==="void-pair")&&e.length===3)return this.bareReads(e[2],t);if(typeof r==="string"){if(this.semanticKindOf(e)==="call")t.add(r)}else this.bareReads(r,t);for(let n=1;nh.has(d)&&!f.has(d)&&!this.inScope(d));if(u!==void 0)throw this.positionedError(e,`emitter: this clause reads '${u}', which only the clause written before it binds — chained clauses nest with the `+`LAST one outermost, so '${u}' is unbound here. For one flat list, write one \`for\` per comprehension, outer loop last, and \`.flat()\` the result`)}let a=()=>this.mark(e,"value",()=>this.expr(n)),o=r?.expr??r,l=" ".repeat(t);this.rejectYieldInIIFE(e),this.mark(e,"$self",()=>{this.b.emit(this.containsAwait(e)?`await (async () => { +`);return}for(let i of s)this.statement(i,0),this.b.emit(` +`)}bodyLines(e,t){let r=this.liveStmts(b1(e)?e.slice(1):[e]);this.emitTsTypeDecls(b1(e)?e.slice(1):[e]," ".repeat(t+1));for(let s of r)this.b.emit(" ".repeat(t+1)),this.statement(s,t+1),this.b.emit(` +`)}clauseHeader(e,t,r,s,i,n=null){let a=(c)=>this.mark(e,"vars",()=>typeof c==="string"?this.emitPrimitive(c):this.withPattern(()=>this.expr(c),!0)),o=[];if(t==="for-of"){this.checkForOfPatternKey(r,i===!0);let h=(i===!0||r.length===2)&&!this.singleReadIterable(s)?this.loopTempName("_ref"):null;if(h!==null)this.temps.used.add(h),this.b.emit(`const ${h} = `),this.mark(e,"object",()=>this.expr(s)),this.b.emit(`; +${n??""}`);let f=()=>{if(h)this.b.emit(h);else this.expr(s)};if(this.b.emit("for (let "),a(r[0]),this.b.emit(" in "),h)this.b.emit(h);else this.mark(e,"object",()=>this.expr(s));if(this.b.emit(")"),i===!0)o.push(()=>{this.b.emit("if (!Object.hasOwn("),f(),this.b.emit(`, ${r[0]})) continue;`)});if(r.length===2)o.push(()=>{this.b.emit("let "),a(r[1]),this.b.emit(" = "),f(),this.b.emit(`[${r[0]}];`)});return o}if(t==="for-as"){if(r.length!==1)throw this.positionedError(e,"emitter: for-as takes ONE loop variable — the iterator protocol yields single values (destructure with a pattern instead)");if(i===!0)this.renderSyncGuard(e);return this.b.emit(i===!0?"for await (let ":"for (let "),a(r[0]),this.b.emit(" of "),this.mark(e,"iterable",()=>this.expr(s)),this.b.emit(")"),o}let l=i;if(y(r[0])&&(We(s)||l!==null))throw this.positionedError(e,"emitter: pattern loop variables with ranges or BY steps are not supported yet");if(We(s))return this.rangedHeader(e,a,r,s,l),o;if(l!==null){let c=r.length===2?r[1]:this.loopTempName("_i"),h=()=>{if(r.length===2)a(c);else this.b.emit(c)},f=(b)=>typeof b==="string"&&/^[0-9.]/.test(b)?b:null,u=f(l)??(y(l)&&l[0]==="+"&&l.length===2?f(l[1]):null),d=y(l)&&l[0]==="-"&&l.length===2?f(l[1]):null;if((u??d)!==null&&Number((u??d).replace(/_/g,""))===0)throw this.positionedError(e,"emitter: a BY step of 0 never advances the loop");let p=this.singleReadIterable(s)?null:this.loopTempName("_ref"),m=()=>{if(p)this.b.emit(`${p} = `),this.expr(s),this.b.emit(", ")},g=()=>{if(p)this.b.emit(p);else this.expr(s)};if(d!==null)if(this.b.emit("for (let "),m(),h(),this.b.emit(" = "),g(),this.b.emit(`.length - 1; ${c} >= 0; `),d==="1")this.mark(e,"step",()=>this.b.emit(`${c}--`));else this.b.emit(`${c} += `),this.mark(e,"step",()=>{this.b.emit("(-"),this.expr(l[1]),this.b.emit(")")});else if(u!==null)if(this.b.emit("for (let "),m(),h(),this.b.emit(` = 0; ${c} < `),g(),this.b.emit(".length; "),l==="1")this.mark(e,"step",()=>this.b.emit(`${c}++`));else this.b.emit(`${c} += `),this.grouped(e,"step",l,E.needsGrouping(l,"operand"));else{let b=this.loopTempName("_step");this.b.emit(`for (let ${b} = `),this.mark(e,"step",()=>this.expr(l)),this.b.emit(", "),m(),h(),this.b.emit(` = ${b} > 0 ? 0 : `),g(),this.b.emit(`.length - 1; ${b} > 0 ? ${c} < `),g(),this.b.emit(`.length : ${b} < 0 && ${c} >= 0; ${c} += ${b}`)}return this.b.emit(")"),o.push(()=>{this.b.emit("let "),a(r[0]),this.b.emit(" = "),g(),this.b.emit(`[${c}];`)}),o}if(r.length===2){let c=this.singleReadIterable(s)?null:this.loopTempName("_ref");if(this.b.emit("for (let "),c)this.b.emit(`${c} = `),this.expr(s),this.b.emit(", ");if(a(r[1]),this.b.emit(` = 0; ${r[1]} < `),c)this.b.emit(c);else this.expr(s);return this.b.emit(`.length; ${r[1]}++)`),o.push(()=>{if(this.b.emit("let "),a(r[0]),this.b.emit(" = "),c)this.b.emit(c);else this.expr(s);this.b.emit(`[${r[1]}];`)}),o}return this.b.emit("for (let "),a(r[0]),this.b.emit(" of "),this.mark(e,"iterable",()=>this.expr(s)),this.b.emit(")"),o}guardOpen(e){this.b.emit("if (");let t=E.needsGrouping(e,"operand")||U1(e);if(t)this.b.emit("(");if(this.expr(e),t)this.b.emit(")");this.b.emit(`) { +`)}comprehension(e,t,r=null){this.withBindings(this.loopBindingNames(e),()=>this.comprehensionCore(e,t,r))}comprehensionCore(e,t,r){this.inCtrl(()=>this.comprehensionCoreCtrl(e,t,r))}bareReads(e,t=new Set){if(typeof e==="string")return t.add(e),t;if(!y(e)||T1(e)||k1(e[0])||e[0]==="class")return t;let r=e[0];if((r==="."||r==="?.")&&e.length===3)return this.bareReads(e[1],t);if((r===":"||r==="void-pair")&&e.length===3)return this.bareReads(e[2],t);if(typeof r==="string"){if(this.semanticKindOf(e)==="call")t.add(r)}else this.bareReads(r,t);for(let s=1;sh.has(d)&&!f.has(d)&&!this.inScope(d));if(u!==void 0)throw this.positionedError(e,`emitter: this clause reads '${u}', which only the clause written before it binds — chained clauses nest with the `+`LAST one outermost, so '${u}' is unbound here. For one flat list, write one \`for\` per comprehension, outer loop last, and \`.flat()\` the result`)}let a=()=>this.mark(e,"value",()=>this.expr(s)),o=r?.expr??r,l=" ".repeat(t);this.rejectYieldInIIFE(e),this.mark(e,"$self",()=>{this.b.emit(this.containsAwait(e)?`await (async () => { `:`(() => { `);let c=this.loopTempName("result");this.b.emit(`${l} const ${c} = ${o===null?"[]":"{}"}; -`),this.b.emit(`${l} `);let[h,f,u,d]=i,p=[],m=this.stores.idOf(e),g=m!==null?this.stores.role(m,"value"):null;if(g!==null&&g.sourceStart!=null)p.push([g.sourceStart,g.sourceEnd]);for(let T of s){let F=y(T)?this.stores.idOf(T):null,L=F!==null?this.stores.selfSpan(F):null;if(L!==null)p.push(L)}let b=p.length>0?()=>{this.primitiveAvoid=null}:()=>{},S=p.length>0?()=>{this.primitiveAvoid=p}:()=>{};S();let w=this.clauseHeader(e,h,f,u,d??null,`${l} `);b(),this.b.emit(` { +`),this.b.emit(`${l} `);let[h,f,u,d]=i,p=[],m=this.stores.idOf(e),g=m!==null?this.stores.role(m,"value"):null;if(g!==null&&g.sourceStart!=null)p.push([g.sourceStart,g.sourceEnd]);for(let T of n){let j=y(T)?this.stores.idOf(T):null,M=j!==null?this.stores.selfSpan(j):null;if(M!==null)p.push(M)}let b=p.length>0?()=>{this.primitiveAvoid=null}:()=>{},S=p.length>0?()=>{this.primitiveAvoid=p}:()=>{};S();let w=this.clauseHeader(e,h,f,u,d??null,`${l} `);b(),this.b.emit(` { `);let R=`${l} `;for(let T of w)this.b.emit(R),S(),T(),b(),this.b.emit(` -`);if(s.length>0)this.b.emit(R),this.guardOpen(s[0]),R+=" ";if(o===null){this.b.emit(`${R}${c}.push(`);let T=E.needsGrouping(n,"operand")||U1(n);if(T)this.b.emit("(");if(a(),T)this.b.emit(")");this.b.emit(`); -`)}else{let T=this.loopTempName("_k"),F=this.loopTempName("_v");this.b.emit(`${R}const ${T} = ${this.runtimeName("__toPropertyKey")}(`);let L=y(o)&&(E.needsGrouping(o,"operand")||U1(o)),C=()=>{if(L)this.b.emit("(");if(this.expr(o),L)this.b.emit(")")};if(r?.pair!==void 0)if(r.keyNode!==null)this.mark(r.pair,"key",()=>this.mark(r.keyNode,"$self",()=>this.mark(r.keyNode,"key",C)));else this.mark(r.pair,"key",C);else C();this.b.emit(`), ${F} = `);let N=E.needsGrouping(n,"operand")||U1(n);if(N)this.b.emit("(");if(a(),N)this.b.emit(")");this.b.emit(`; -`),this.b.emit(`${R}${this.runtimeName("__defineOwnDataProperty")}(${c}, ${T}, ${F}); -`)}if(s.length>0)this.b.emit(`${l} } +`);if(n.length>0)this.b.emit(R),this.guardOpen(n[0]),R+=" ";if(o===null){this.b.emit(`${R}${c}.push(`);let T=E.needsGrouping(s,"operand")||U1(s);if(T)this.b.emit("(");if(a(),T)this.b.emit(")");this.b.emit(`); +`)}else{let T=this.loopTempName("_k"),j=this.loopTempName("_v");this.b.emit(`${R}const ${T} = ${this.runtimeName("__toPropertyKey")}(`);let M=y(o)&&(E.needsGrouping(o,"operand")||U1(o)),x=()=>{if(M)this.b.emit("(");if(this.expr(o),M)this.b.emit(")")};if(r?.pair!==void 0)if(r.keyNode!==null)this.mark(r.pair,"key",()=>this.mark(r.keyNode,"$self",()=>this.mark(r.keyNode,"key",x)));else this.mark(r.pair,"key",x);else x();this.b.emit(`), ${j} = `);let A=E.needsGrouping(s,"operand")||U1(s);if(A)this.b.emit("(");if(a(),A)this.b.emit(")");this.b.emit(`; +`),this.b.emit(`${R}${this.runtimeName("__defineOwnDataProperty")}(${c}, ${T}, ${j}); +`)}if(n.length>0)this.b.emit(`${l} } `);this.b.emit(`${l} } `),this.b.emit(`${l} return ${c}; -`),this.b.emit(`${l}})()`)})}static objectComprehension(e){if(e.length!==2)return null;let t=e[1];if(!y(t)||t[0]!==":")return null;if(!(typeof t[1]==="string"||y(t[1])&&t[1][0]==="dynamicKey"))return null;if(!re(t[2]))return null;if(t[2][2][0][0]!=="for-of")return null;return t}static ifArms(e){let t=[],r=e,n=null;while(!0){if(t.push(r),r.length<4)break;if(y(r[3])&&r[3][0]==="if"){r=r[3];continue}n=r[3];break}return{arms:t,elseBlock:n}}static branchStmts(e){return E.stripErased(b1(e)?e.slice(1):[e[0]])}branchLive(e,t=!1){let r=b1(e)?e.slice(1):[e[0]];if(this.ts&&t){for(let n of r)if(y(n)&&n[0]==="type-decl")this.pendingTypeDecls.push(n)}return this.liveStmts(r)}static statementOnly(e){if(typeof e==="string"&&(e==="break"||e==="continue"||e==="debugger"))return!0;return y(e)&&(e[0]==="return"||e[0]==="throw"||k1(e[0]))}static containsReturn(e){if(!y(e))return!1;let t=e[0];if(t==="return")return!0;if(t==="->"||t==="=>"||k1(t)||t==="class")return!1;return e.some((r)=>E.containsReturn(r))}static containsCtrl(e){if(typeof e==="string")return e==="break"||e==="continue";if(!y(e))return!1;let t=e[0];if(t==="break"||t==="continue"||t==="return"||t==="throw")return!0;if(t==="->"||t==="=>"||k1(t)||t==="class")return!1;return e.some((r)=>E.containsCtrl(r))}static ifIsSimple(e){let{arms:t,elseBlock:r}=E.ifArms(e),n=(i)=>{let s=E.branchStmts(i);return s.length===1&&!E.statementOnly(s[0])};return t.every((i)=>n(i[2]))&&(r===null||n(r))}valueIf(e){if(!E.ifIsSimple(e)){let t=this.ind;this.rejectYieldInIIFE(e);let r=this.containsAwait(e);this.b.emit(r?"await (async () => { ":"(() => { "),this.mark(e,"$self",()=>this.returnifyIf(e,t)),this.b.emit(" })()");return}this.mark(e,"$self",()=>this.ifTernary(e))}ifTernary(e){if(this.grouped(e,"condition",e[1],E.needsGrouping(e[1],"operand")||y(e[1])&&(e[1][0]==="await"||e[1][0]==="yield")),this.b.emit(" ? "),this.ternaryArm(e,"then",this.branchLive(e[2],!0)[0]),this.b.emit(" : "),e.length<4)this.b.emit("undefined");else if(y(e[3])&&e[3][0]==="if")this.mark(e,"else",()=>{this.b.emit("("),this.ifTernary(e[3]),this.b.emit(")")});else this.ternaryArm(e,"else",this.branchLive(e[3],!0)[0])}ternaryArm(e,t,r){this.mark(e,t,()=>{let n=E.needsGrouping(r,"operand")||U1(r);if(n)this.b.emit("(");if(this.expr(r),n)this.b.emit(")")})}returnBlock(e,t){let r=this.branchLive(e);this.b.emit(`{ -`),this.emitTsTypeDecls(b1(e)?e.slice(1):[e[0]]," ".repeat(t+1)),r.forEach((n,i)=>{if(this.b.emit(" ".repeat(t+1)),i===r.length-1)this.implicitReturn(n,t+1);else this.statement(n,t+1);this.b.emit(` -`)}),this.b.emit(" ".repeat(t)+"}")}returnifyIf(e,t){if(this.b.emit("if ("),this.grouped(e,"condition",e[1],E.needsGrouping(e[1],"operand")),this.b.emit(") "),this.mark(e,"then",()=>this.returnBlock(e[2],t)),e.length>=4)if(this.b.emit(" else "),y(e[3])&&e[3][0]==="if")this.returnifyIf(e[3],t);else this.mark(e,"else",()=>this.returnBlock(e[3],t))}rejectYieldInIIFE(e){if(E.containsYield(e))throw this.positionedError(e,"emitter: yield inside an expression-lowered construct cannot cross the IIFE boundary; restructure as statements");this.rejectCapturedCtrl(e)}static findCapturedCtrl(e,t=C3){let r=null,n=(i,s,a)=>{if(r!==null||!y(i))return;let o=i[0];if(T1(i)||k1(o)||o==="class")return;if(o==="return"){if(t.has("return"))r={kind:"return",node:i};return}let l=mt(i)||re(i)?s+1:s,c=o==="switch"?a+1:a,h=o==="block"||o==="program"||o==="try";for(let f=1;f { ":"(() => { "),this.tryBranches(e,t),this.b.emit(" })()")}tryBranches(e,t){this.mark(e,"$self",()=>{this.b.emit("try ");let r=b1(e[1])?e[1]:["block",e[1]];if(this.mark(e,"body",()=>this.returnBlock(r,t)),e.length===2)this.b.emit(" catch {}");for(let n of e.slice(2)){if(!y(n))continue;if(b1(n))this.b.emit(" finally "),this.braceBlock(n,t);else{let[i,s]=n;if(i===null)this.b.emit(" catch "),this.returnBlock(s,t);else if(E.isPattern(i)){this.checkExportedConstWrite(n,i);let a=this.loopTempName("_err");this.b.emit(` catch (${a}`),this.tsScaffoldAny(),this.b.emit(`) { -`),this.b.emit(" ".repeat(t+1)+"("),this.mark(n,"binding",()=>this.withPattern(()=>this.expr(i))),this.b.emit(` = ${a}); -`);let o=this.branchLive(s);this.emitTsTypeDecls(b1(s)?s.slice(1):[s[0]]," ".repeat(t+1)),o.forEach((l,c)=>{if(this.b.emit(" ".repeat(t+1)),c===o.length-1)this.implicitReturn(l,t+1);else this.statement(l,t+1);this.b.emit(` -`)}),this.b.emit(" ".repeat(t)+"}")}else if(E.isTypedWrapper(i))this.b.emit(" catch ("),this.mark(n,"binding",()=>this.emitParam(i)),this.b.emit(") "),this.withBindings([i[1]],()=>this.returnBlock(s,t));else this.b.emit(" catch ("),this.mark(n,"binding",()=>this.b.emit(i)),this.b.emit(") "),this.withBindings([i],()=>this.returnBlock(s,t))}}})}valueSwitch(e){let[,t,r,n]=e,i=this.ind,s=" ".repeat(i);this.rejectYieldInIIFE(e),this.b.emit(this.containsAwait(e)?"await (async () => { ":"(() => { "),this.mark(e,"$self",()=>{if(E.hasMatchArms(r))this.checkMatchSwitch(e),this.matchChain(e,i,(a)=>this.returnBlock(a,i));else if(t!==null){this.b.emit("switch ("),this.mark(e,"subject",()=>this.expr(t)),this.b.emit(`) { -`);for(let a of r){let[,o,l]=a;for(let c of o)this.b.emit(`${s} case `),this.expr(c),this.b.emit(`: -`);this.returnCaseBody(l,i)}if(n!==null)this.b.emit(`${s} default: -`),this.returnCaseBody(n,i);this.b.emit(`${s}}`)}else if(r.forEach((a,o)=>{let[,l,c]=a;if(o>0)this.b.emit(" else ");this.b.emit("if (("),(Array.isArray(l)?l:[l]).forEach((f,u)=>{if(u>0)this.b.emit(") || (");this.expr(f)}),this.b.emit(")) "),this.returnBlock(c,i)}),n!==null)this.b.emit(" else "),this.returnBlock(n,i)}),this.b.emit(" })()")}returnCaseBody(e,t){this.inCtrl(()=>this.returnCaseBodyCtrl(e,t))}returnCaseBodyCtrl(e,t){let r=this.branchLive(e);this.emitTsTypeDecls(b1(e)?e.slice(1):[e[0]]," ".repeat(t+2)),r.forEach((n,i)=>{if(this.b.emit(" ".repeat(t+2)),i===r.length-1)this.implicitReturn(n,t+2);else this.statement(n,t+2);this.b.emit(` -`)})}loopHeader(e){let t=e[0];if(t==="while")return this.b.emit("while ("),this.mark(e,"condition",()=>this.expr(e[1])),this.b.emit(")"),{body:e[e.length-1],guard:e.length===4?e[2]:null,setups:[]};if(t==="loop")return this.b.emit("while (true)"),{body:e[1],guard:null,setups:[]};if(t==="loop-n"){let l=e[1],h=this.repeatSafeValue(l)?null:this.loopTempName("_n");if(this.b.emit("for (let it = 0"),h!==null)this.b.emit(`, ${h} = `),this.mark(e,"count",()=>this.expr(l));if(this.b.emit("; it < "),h!==null)this.b.emit(h);else this.mark(e,"count",()=>this.expr(l));return this.b.emit("; it++)"),{body:e[2],guard:null,setups:[]}}let[,r,n,i,s,a]=e,o=this.clauseHeader(e,t,r,n,i);return{body:a,guard:s,setups:o}}accumulatorIIFE(e){this.withBindings(this.loopBindingNames(e),()=>this.accumulatorIIFECore(e))}accumulatorIIFECore(e){this.inCtrl(()=>this.accumulatorIIFECoreCtrl(e))}accumulatorIIFECoreCtrl(e){let t=this.ind,r=" ".repeat(t+1);this.rejectYieldInIIFE(e),this.b.emit(this.containsAwait(e)?`await (async () => { +`),this.b.emit(`${l}})()`)})}static objectComprehension(e){if(e.length!==2)return null;let t=e[1];if(!y(t)||t[0]!==":")return null;if(!(typeof t[1]==="string"||y(t[1])&&t[1][0]==="dynamicKey"))return null;if(!re(t[2]))return null;if(t[2][2][0][0]!=="for-of")return null;return t}static ifArms(e){let t=[],r=e,s=null;while(!0){if(t.push(r),r.length<4)break;if(y(r[3])&&r[3][0]==="if"){r=r[3];continue}s=r[3];break}return{arms:t,elseBlock:s}}static branchStmts(e){return E.stripErased(b1(e)?e.slice(1):[e[0]])}branchLive(e,t=!1){let r=b1(e)?e.slice(1):[e[0]];if(this.ts&&t){for(let s of r)if(y(s)&&s[0]==="type-decl")this.pendingTypeDecls.push(s)}return this.liveStmts(r)}static statementOnly(e){if(typeof e==="string"&&(e==="break"||e==="continue"||e==="debugger"))return!0;return y(e)&&(e[0]==="return"||e[0]==="throw"||k1(e[0]))}static containsReturn(e){if(!y(e))return!1;let t=e[0];if(t==="return")return!0;if(t==="->"||t==="=>"||k1(t)||t==="class")return!1;return e.some((r)=>E.containsReturn(r))}static containsCtrl(e){if(typeof e==="string")return e==="break"||e==="continue";if(!y(e))return!1;let t=e[0];if(t==="break"||t==="continue"||t==="return"||t==="throw")return!0;if(t==="->"||t==="=>"||k1(t)||t==="class")return!1;return e.some((r)=>E.containsCtrl(r))}static ifIsSimple(e){let{arms:t,elseBlock:r}=E.ifArms(e),s=(i)=>{let n=E.branchStmts(i);return n.length===1&&!E.statementOnly(n[0])};return t.every((i)=>s(i[2]))&&(r===null||s(r))}valueIf(e){if(!E.ifIsSimple(e)){let t=this.ind;this.rejectYieldInIIFE(e);let r=this.containsAwait(e);this.b.emit(r?"await (async () => { ":"(() => { "),this.mark(e,"$self",()=>this.returnifyIf(e,t)),this.b.emit(" })()");return}this.mark(e,"$self",()=>this.ifTernary(e))}ifTernary(e){if(this.grouped(e,"condition",e[1],E.needsGrouping(e[1],"operand")||y(e[1])&&(e[1][0]==="await"||e[1][0]==="yield")),this.b.emit(" ? "),this.ternaryArm(e,"then",this.branchLive(e[2],!0)[0]),this.b.emit(" : "),e.length<4)this.b.emit("undefined");else if(y(e[3])&&e[3][0]==="if")this.mark(e,"else",()=>{this.b.emit("("),this.ifTernary(e[3]),this.b.emit(")")});else this.ternaryArm(e,"else",this.branchLive(e[3],!0)[0])}ternaryArm(e,t,r){this.mark(e,t,()=>{let s=E.needsGrouping(r,"operand")||U1(r);if(s)this.b.emit("(");if(this.expr(r),s)this.b.emit(")")})}returnBlock(e,t){let r=this.branchLive(e);this.b.emit(`{ +`),this.emitTsTypeDecls(b1(e)?e.slice(1):[e[0]]," ".repeat(t+1)),r.forEach((s,i)=>{if(this.b.emit(" ".repeat(t+1)),i===r.length-1)this.implicitReturn(s,t+1);else this.statement(s,t+1);this.b.emit(` +`)}),this.b.emit(" ".repeat(t)+"}")}returnifyIf(e,t){if(this.b.emit("if ("),this.grouped(e,"condition",e[1],E.needsGrouping(e[1],"operand")),this.b.emit(") "),this.mark(e,"then",()=>this.returnBlock(e[2],t)),e.length>=4)if(this.b.emit(" else "),y(e[3])&&e[3][0]==="if")this.returnifyIf(e[3],t);else this.mark(e,"else",()=>this.returnBlock(e[3],t))}rejectYieldInIIFE(e){if(E.containsYield(e))throw this.positionedError(e,"emitter: yield inside an expression-lowered construct cannot cross the IIFE boundary; restructure as statements");this.rejectCapturedCtrl(e)}static findCapturedCtrl(e,t=M3){let r=null,s=(i,n,a)=>{if(r!==null||!y(i))return;let o=i[0];if(T1(i)||k1(o)||o==="class")return;if(o==="return"){if(t.has("return"))r={kind:"return",node:i};return}let l=mt(i)||re(i)?n+1:n,c=o==="switch"?a+1:a,h=o==="block"||o==="program"||o==="try";for(let f=1;f { ":"(() => { "),this.tryBranches(e,t),this.b.emit(" })()")}tryBranches(e,t){this.mark(e,"$self",()=>{this.b.emit("try ");let r=b1(e[1])?e[1]:["block",e[1]];if(this.mark(e,"body",()=>this.returnBlock(r,t)),e.length===2)this.b.emit(" catch {}");for(let s of e.slice(2)){if(!y(s))continue;if(b1(s))this.b.emit(" finally "),this.braceBlock(s,t);else{let[i,n]=s;if(i===null)this.b.emit(" catch "),this.returnBlock(n,t);else if(E.isPattern(i)){this.checkExportedConstWrite(s,i);let a=this.loopTempName("_err");this.b.emit(` catch (${a}`),this.tsScaffoldAny(),this.b.emit(`) { +`),this.b.emit(" ".repeat(t+1)+"("),this.mark(s,"binding",()=>this.withPattern(()=>this.expr(i))),this.b.emit(` = ${a}); +`);let o=this.branchLive(n);this.emitTsTypeDecls(b1(n)?n.slice(1):[n[0]]," ".repeat(t+1)),o.forEach((l,c)=>{if(this.b.emit(" ".repeat(t+1)),c===o.length-1)this.implicitReturn(l,t+1);else this.statement(l,t+1);this.b.emit(` +`)}),this.b.emit(" ".repeat(t)+"}")}else if(E.isTypedWrapper(i))this.b.emit(" catch ("),this.mark(s,"binding",()=>this.emitParam(i)),this.b.emit(") "),this.withBindings([i[1]],()=>this.returnBlock(n,t));else this.b.emit(" catch ("),this.mark(s,"binding",()=>this.b.emit(i)),this.b.emit(") "),this.withBindings([i],()=>this.returnBlock(n,t))}}})}valueSwitch(e){let[,t,r,s]=e,i=this.ind,n=" ".repeat(i);this.rejectYieldInIIFE(e),this.b.emit(this.containsAwait(e)?"await (async () => { ":"(() => { "),this.mark(e,"$self",()=>{if(E.hasMatchArms(r))this.checkMatchSwitch(e),this.matchChain(e,i,(a)=>this.returnBlock(a,i));else if(t!==null){this.b.emit("switch ("),this.mark(e,"subject",()=>this.expr(t)),this.b.emit(`) { +`);for(let a of r){let[,o,l]=a;for(let c of o)this.b.emit(`${n} case `),this.expr(c),this.b.emit(`: +`);this.returnCaseBody(l,i)}if(s!==null)this.b.emit(`${n} default: +`),this.returnCaseBody(s,i);this.b.emit(`${n}}`)}else if(r.forEach((a,o)=>{let[,l,c]=a;if(o>0)this.b.emit(" else ");this.b.emit("if (("),(Array.isArray(l)?l:[l]).forEach((f,u)=>{if(u>0)this.b.emit(") || (");this.expr(f)}),this.b.emit(")) "),this.returnBlock(c,i)}),s!==null)this.b.emit(" else "),this.returnBlock(s,i)}),this.b.emit(" })()")}returnCaseBody(e,t){this.inCtrl(()=>this.returnCaseBodyCtrl(e,t))}returnCaseBodyCtrl(e,t){let r=this.branchLive(e);this.emitTsTypeDecls(b1(e)?e.slice(1):[e[0]]," ".repeat(t+2)),r.forEach((s,i)=>{if(this.b.emit(" ".repeat(t+2)),i===r.length-1)this.implicitReturn(s,t+2);else this.statement(s,t+2);this.b.emit(` +`)})}loopHeader(e){let t=e[0];if(t==="while")return this.b.emit("while ("),this.mark(e,"condition",()=>this.expr(e[1])),this.b.emit(")"),{body:e[e.length-1],guard:e.length===4?e[2]:null,setups:[]};if(t==="loop")return this.b.emit("while (true)"),{body:e[1],guard:null,setups:[]};if(t==="loop-n"){let l=e[1],h=this.repeatSafeValue(l)?null:this.loopTempName("_n");if(this.b.emit("for (let it = 0"),h!==null)this.b.emit(`, ${h} = `),this.mark(e,"count",()=>this.expr(l));if(this.b.emit("; it < "),h!==null)this.b.emit(h);else this.mark(e,"count",()=>this.expr(l));return this.b.emit("; it++)"),{body:e[2],guard:null,setups:[]}}let[,r,s,i,n,a]=e,o=this.clauseHeader(e,t,r,s,i);return{body:a,guard:n,setups:o}}accumulatorIIFE(e){this.withBindings(this.loopBindingNames(e),()=>this.accumulatorIIFECore(e))}accumulatorIIFECore(e){this.inCtrl(()=>this.accumulatorIIFECoreCtrl(e))}accumulatorIIFECoreCtrl(e){let t=this.ind,r=" ".repeat(t+1);this.rejectYieldInIIFE(e),this.b.emit(this.containsAwait(e)?`await (async () => { `:`(() => { -`);let n=this.loopTempName("result");this.b.emit(`${r}const ${n} = []; -`),this.b.emit(r),this.mark(e,"$self",()=>{let{body:i,guard:s,setups:a}=this.loopHeader(e);this.b.emit(` { +`);let s=this.loopTempName("result");this.b.emit(`${r}const ${s} = []; +`),this.b.emit(r),this.mark(e,"$self",()=>{let{body:i,guard:n,setups:a}=this.loopHeader(e);this.b.emit(` { `);let o=" ".repeat(t+2);for(let l of a)this.b.emit(o),l(),this.b.emit(` -`);if(s!==null&&e[0]==="while")this.b.emit(o),this.b.emit("if (!("),this.expr(s),this.b.emit(`)) continue; -`),this.accumulateBody(i,t+1,n);else if(s!==null)this.b.emit(o),this.guardOpen(s),this.accumulateBody(i,t+2,n),this.b.emit(`${o}} -`);else this.accumulateBody(i,t+1,n);this.b.emit(`${r}}`)}),this.b.emit(` -`),this.b.emit(`${r}return ${n}; -`),this.b.emit(" ".repeat(t)+"})()")}accumulateBody(e,t,r){let n=this.branchLive(e),i=" ".repeat(t+1);this.emitTsTypeDecls(b1(e)?e.slice(1):[e[0]],i),n.forEach((s,a)=>{if(this.b.emit(i),a===n.length-1&&mt(s)&&!E.containsReturn(s)){this.b.emit(`${r}.push(`),this.expr(s),this.b.emit(");"),this.b.emit(` -`);return}if(a===n.length-1&&!E.statementOnly(s)&&!mt(s)&&!E.containsCtrl(s)){this.b.emit(`${r}.push(`);let l=E.needsGrouping(s,"operand")||U1(s);if(l)this.b.emit("(");if(this.expr(s),l)this.b.emit(")");this.b.emit(");")}else if(this.statement(s,t+1),mt(s))this.b.emit(";");this.b.emit(` -`)})}plainLoopComprehension(e,t){this.withBindings(this.loopBindingNames(e),()=>this.plainLoopComprehensionCore(e,t))}plainLoopComprehensionCore(e,t){this.inCtrl(()=>this.plainLoopComprehensionCoreCtrl(e,t))}plainLoopComprehensionCoreCtrl(e,t){let[,r,[n],i]=e,s=" ".repeat(t);this.mark(e,"$self",()=>{let[a,o,l,c]=n,h=this.clauseHeader(e,a,o,l,c??null,s);this.b.emit(` { -`);let f=`${s} `;for(let u of h)this.b.emit(f),u(),this.b.emit(` +`);if(n!==null&&e[0]==="while")this.b.emit(o),this.b.emit("if (!("),this.expr(n),this.b.emit(`)) continue; +`),this.accumulateBody(i,t+1,s);else if(n!==null)this.b.emit(o),this.guardOpen(n),this.accumulateBody(i,t+2,s),this.b.emit(`${o}} +`);else this.accumulateBody(i,t+1,s);this.b.emit(`${r}}`)}),this.b.emit(` +`),this.b.emit(`${r}return ${s}; +`),this.b.emit(" ".repeat(t)+"})()")}accumulateBody(e,t,r){let s=this.branchLive(e),i=" ".repeat(t+1);this.emitTsTypeDecls(b1(e)?e.slice(1):[e[0]],i),s.forEach((n,a)=>{if(this.b.emit(i),a===s.length-1&&mt(n)&&!E.containsReturn(n)){this.b.emit(`${r}.push(`),this.expr(n),this.b.emit(");"),this.b.emit(` +`);return}if(a===s.length-1&&!E.statementOnly(n)&&!mt(n)&&!E.containsCtrl(n)){this.b.emit(`${r}.push(`);let l=E.needsGrouping(n,"operand")||U1(n);if(l)this.b.emit("(");if(this.expr(n),l)this.b.emit(")");this.b.emit(");")}else if(this.statement(n,t+1),mt(n))this.b.emit(";");this.b.emit(` +`)})}plainLoopComprehension(e,t){this.withBindings(this.loopBindingNames(e),()=>this.plainLoopComprehensionCore(e,t))}plainLoopComprehensionCore(e,t){this.inCtrl(()=>this.plainLoopComprehensionCoreCtrl(e,t))}plainLoopComprehensionCoreCtrl(e,t){let[,r,[s],i]=e,n=" ".repeat(t);this.mark(e,"$self",()=>{let[a,o,l,c]=s,h=this.clauseHeader(e,a,o,l,c??null,n);this.b.emit(` { +`);let f=`${n} `;for(let u of h)this.b.emit(f),u(),this.b.emit(` `);if(i.length>0)this.b.emit(f),this.guardOpen(i[0]),f+=" ";if(this.b.emit(f),this.statement(r,t+(i.length>0?2:1)),this.b.emit(` -`),i.length>0)this.b.emit(`${s} } -`);this.b.emit(`${s}}`)})}returnifyLoop(e,t){this.withBindings(this.loopBindingNames(e),()=>this.returnifyLoopCore(e,t))}returnifyLoopCore(e,t){this.inCtrl(()=>this.returnifyLoopCoreCtrl(e,t))}returnifyLoopCoreCtrl(e,t){let r=" ".repeat(t),n=this.loopTempName("_result");this.b.emit(`const ${n} = []; -`),this.b.emit(r),this.mark(e,"$self",()=>{let{body:i,guard:s,setups:a}=this.loopHeader(e);this.b.emit(` { +`),i.length>0)this.b.emit(`${n} } +`);this.b.emit(`${n}}`)})}returnifyLoop(e,t){this.withBindings(this.loopBindingNames(e),()=>this.returnifyLoopCore(e,t))}returnifyLoopCore(e,t){this.inCtrl(()=>this.returnifyLoopCoreCtrl(e,t))}returnifyLoopCoreCtrl(e,t){let r=" ".repeat(t),s=this.loopTempName("_result");this.b.emit(`const ${s} = []; +`),this.b.emit(r),this.mark(e,"$self",()=>{let{body:i,guard:n,setups:a}=this.loopHeader(e);this.b.emit(` { `);let o=" ".repeat(t+1);for(let l of a)this.b.emit(o),l(),this.b.emit(` -`);if(s!==null)this.b.emit(o),this.guardOpen(s),this.accumulateBody(i,t+1,n),this.b.emit(`${o}} -`);else this.accumulateBody(i,t,n);this.b.emit(`${r}}`)}),this.b.emit(` -`),this.b.emit(`${r}return ${n};`)}ifChain(e,t){if(this.b.emit("if ("),this.mark(e,"condition",()=>this.expr(e[1])),this.b.emit(") "),this.mark(e,"then",()=>this.braceBlock(e[2],t)),e.length===4)this.b.emit(" "),this.mark(e,"else",()=>{this.b.emit("else ");let r=e[3];if(ua(r))this.mark(r,"$self",()=>this.ifChain(r,t));else this.braceBlock(r,t)})}defStatement(e,t){let r=e[0]==="void-def";if(typeof e[1]!=="string")throw this.positionedError(e,"emitter: `def @name` declares a static class method — spell it inside a class body");let n=this.containsAwait(e[3]),i=E.containsYield(e[3]);this.tsOverloadSigs(e,t),this.mark(e,"voidMarker",()=>this.mark(e,"returnType",()=>this.mark(e,"$self",()=>{if(n)this.b.emit("async ");if(this.b.emit(i?"function* ":"function "),this.mark(e,"name",()=>this.b.emit(e[1])),this.ts){let l=this.annotationText(e,"typeParams");if(l!==null)this.b.tsOnly(()=>this.mark(e,"typeParams",()=>this.emitTypeText(e,"typeParams",l)))}this.mark(e,"params",()=>{this.b.emit("("),this.mark(e[2],"$self",()=>this.emitParams(e[2])),this.b.emit(")")}),this.tsReturnAnnotation(e,n,r,i),this.b.emit(" ");let s=this.liveStmts(b1(e[3])?e[3].slice(1):[e[3]],{forwards:!0}),{entries:a,names:o}=this.scopedHoist(b1(e[3])?e[3].slice(1):[e[3]],e[2]);for(let l of this.pushReactiveFrame(s,o,e[2],e))o.add(l);this.scopes.push(o),this.funcBlock(e,e[3],s,t,a,r),this.scopes.pop(),this.rframes.pop()})))}returnStatement(e){if(this.scopes.length<=1)throw this.positionedError(e,"emitter: 'return' outside a function");if(e.length===2&&this.sideEffectOnly)throw this.positionedError(e,`emitter: cannot return a value from a void function (${this.voidReason??"the trailing '!' on its definition suppresses returns"})`);this.mark(e,"$self",()=>{if(this.b.emit("return"),e.length===2)this.b.emit(" "),this.grouped(e,"value",e[1],E.needsGrouping(e[1],"return"))}),this.b.emit(";")}braceBlock(e,t,r=[]){let n=y(e)&&e[0]==="block"?e.slice(1):[e];this.mark(e,"$self",()=>{if(this.b.emit(`{ +`);if(n!==null)this.b.emit(o),this.guardOpen(n),this.accumulateBody(i,t+1,s),this.b.emit(`${o}} +`);else this.accumulateBody(i,t,s);this.b.emit(`${r}}`)}),this.b.emit(` +`),this.b.emit(`${r}return ${s};`)}ifChain(e,t){if(this.b.emit("if ("),this.mark(e,"condition",()=>this.expr(e[1])),this.b.emit(") "),this.mark(e,"then",()=>this.braceBlock(e[2],t)),e.length===4)this.b.emit(" "),this.mark(e,"else",()=>{this.b.emit("else ");let r=e[3];if(ma(r))this.mark(r,"$self",()=>this.ifChain(r,t));else this.braceBlock(r,t)})}defStatement(e,t){let r=e[0]==="void-def";if(typeof e[1]!=="string")throw this.positionedError(e,"emitter: `def @name` declares a static class method — spell it inside a class body");let s=this.containsAwait(e[3]),i=E.containsYield(e[3]);this.tsOverloadSigs(e,t),this.mark(e,"voidMarker",()=>this.mark(e,"returnType",()=>this.mark(e,"$self",()=>{if(s)this.b.emit("async ");if(this.b.emit(i?"function* ":"function "),this.mark(e,"name",()=>this.b.emit(e[1])),this.ts){let l=this.annotationText(e,"typeParams");if(l!==null)this.b.tsOnly(()=>this.mark(e,"typeParams",()=>this.emitTypeText(e,"typeParams",l)))}this.mark(e,"params",()=>{this.b.emit("("),this.mark(e[2],"$self",()=>this.emitParams(e[2])),this.b.emit(")")}),this.tsReturnAnnotation(e,s,r,i),this.b.emit(" ");let n=this.liveStmts(b1(e[3])?e[3].slice(1):[e[3]],{forwards:!0}),{entries:a,names:o}=this.scopedHoist(b1(e[3])?e[3].slice(1):[e[3]],e[2]);for(let l of this.pushReactiveFrame(n,o,e[2],e))o.add(l);this.scopes.push(o),this.funcBlock(e,e[3],n,t,a,r),this.scopes.pop(),this.rframes.pop()})))}returnStatement(e){if(this.scopes.length<=1)throw this.positionedError(e,"emitter: 'return' outside a function");if(e.length===2&&this.sideEffectOnly)throw this.positionedError(e,`emitter: cannot return a value from a void function (${this.voidReason??"the trailing '!' on its definition suppresses returns"})`);this.mark(e,"$self",()=>{if(this.b.emit("return"),e.length===2)this.b.emit(" "),this.grouped(e,"value",e[1],E.needsGrouping(e[1],"return"))}),this.b.emit(";")}braceBlock(e,t,r=[]){let s=y(e)&&e[0]==="block"?e.slice(1):[e];this.mark(e,"$self",()=>{if(this.b.emit(`{ `),r.length)this.b.emit(" ".repeat(t+1)),this.hoistLine(r," ".repeat(t+1)),this.b.emit(` -`);this.mark(e,"statements",()=>this.statements(n,t+1,"block")),this.b.emit(" ".repeat(t)+"}")})}containsAwait(e){return Bi(e,this.stores)}static isStringLiteral(e){if(Array.isArray(e))return String(e[0])==="str";let t=String(e)[0];return t==='"'||t==="'"||t==="`"}static containsBareIt(e){if(e==="it")return!0;if(!y(e))return!1;let t=e[0];if(t==="->"||t==="=>"||k1(t))return!1;if((t==="."||t==="?.")&&e.length===3)return E.containsBareIt(e[1])||typeof e[2]!=="string"&&E.containsBareIt(e[2]);if(t==="object")return e.slice(1).some((r)=>y(r)&&r[0]===":"&&r.length===3?E.containsBareIt(r[2])||typeof r[1]!=="string"&&E.containsBareIt(r[1]):E.containsBareIt(r));return e.some((r)=>E.containsBareIt(r))}static containsYield(e){return dr(e)}static jsTier(e){if(!y(e))return"primary";if((e[0]==="cast"||e[0]==="satisfies")&&e.length===3)return E.jsTier(e[1]);if(x3(e))return"assign";if(Li(e)||ua(e)&&e.length<=4&&E.ifIsSimple(e))return"ternary";if(e[0]==="?"&&e.length===2)return"binary";if(E.isStrRepeat(e))return"primary";if(ft(e)||fa(e))return"binary";if(ha(e))return"unary";if((e[0]==="await"||e[0]==="dammit!")&&e.length===2)return"unary";if(e[0]==="dammit?")return"unary";if(y(e[0])&&e[0][0]==="dammit!")return"unary";if((e[0]==="yield"||e[0]==="yield-from")&&e.length<=2)return"yield";if(T1(e))return"function";if(O1(e))return"object";return"primary"}static needsGrouping(e,t){let r=E.jsTier(e);if(t==="operand"||t==="return"){if(r==="unary")return!(e[0]==="!"||e[0]==="typeof"||e[0]==="await"||e[0]==="dammit!"||e[0]==="dammit?"||y(e[0])&&e[0][0]==="dammit!");if(r==="yield")return t==="operand";return r==="binary"||r==="ternary"||r==="assign"||r==="function"}if(t==="head")return r!=="primary"||U1(e);if(E.leadsWithObject(e))return!0;return r==="object"||U1(e)||r==="function"&&e[0]==="->"||y(e)&&(e[0]==="class"||e[0]==="component")||Li(e)&&!E.ternaryHoists(e)||r==="unary"&&e[0]==="delete"}operand(e,t,r){this.grouped(e,t,r,E.needsGrouping(r,"operand"))}head(e,t,r){this.grouped(e,t,r,E.needsGrouping(r,"head"))}static isIntegerLiteral(e){return typeof e==="string"&&e.charCodeAt(0)>=48&&e.charCodeAt(0)<=57&&/^[0-9][0-9_]*$/.test(e)}grouped(e,t,r,n){if(n)this.b.emit("(");if(this.mark(e,t,()=>this.expr(r)),n)this.b.emit(")")}static escapeTemplate(e){return e.replace(/\\[^]|`|\$\{/g,(t)=>t==="`"||t==="${"?`\\${t}`:t)}static MAX_EXPR_DEPTH=1024;expr(e){if(++this.exprDepth>E.MAX_EXPR_DEPTH){let t=this.positionedError(e,`emitter: expression nesting exceeds ${E.MAX_EXPR_DEPTH} levels — restructure the expression (the compile-time nesting bound)`);if(typeof t.start!=="number"&&this.b.currentMark)t.start=this.b.currentMark.sourceStart,t.end=this.b.currentMark.sourceEnd;throw t}try{this.exprCore(e)}finally{this.exprDepth--}}exprCore(e){if(!y(e)){if(typeof e==="string"){let r=this.bareRewrite(e);if(r==="reactive")return this.reactiveRead(e);if(r==="member")this.notePlainRenderRead(e);if(r!==null)this.checkBareRest(e,e);if(r!==null)return this.memberRead(e,r==="member-reactive");if(e==="this"&&this.renderSelf!==null)return this.b.emit(this.renderSelf)}if((e==="break"||e==="continue")&&this.ctrlDepth===0){let r=this.positionedError(e,`emitter: '${e}' outside a loop${e==="break"?" or switch":""}`);if(typeof r.start!=="number"&&this.b.currentMark)r.start=this.b.currentMark.sourceStart,r.end=this.b.currentMark.sourceEnd;throw r}if(typeof e==="string")this.emitPrimitive(e);else this.b.emit(e);return}let t=e[0];if(t==="str"&&this.lockedHead(e,"str"))return this.strTemplate(e);if(t==="tagged-template"&&e.length===3)return this.taggedTemplate(e);if(t==="here-regex")return this.heregex(e);if(y(t))return this.call(e);if(lt(t)&&e.length===3&&!this.inPattern&&E.sliceTarget(e[1])!==null)throw this.sliceAssignError(e);if(lt(t)&&e.length===3&&!this.inPattern){let r=E.optionalGuard(e[1]);if(r!==null)return this.optionalAssign(e,r,"value")}if(F1.has(t)&&e.length===3)return this.assign(e);if((t==="."||t==="?.")&&e.length===3)return this.member(e);if((t===".{}"||t==="?.{}")&&e.length>=3)return this.pick(e);if(t==="[]"&&e.length===3)return this.index(e);if(t==="optindex"&&e.length===3&&this.lockedHead(e,"optindex"))return this.optIndex(e);if(t==="optcall"&&this.lockedHead(e,"optcall"))return this.optCall(e);if(T1(e))return this.func(e);if(U1(e))return this.update(e);if(Li(e))return this.ternary(e);if(t==="array"&&this.lockedHead(e,"array"))return this.array(e);if(t==="object"&&this.lockedHead(e,"object"))return this.object(e);if(We(e))return this.range(e);if((t==="in"||t==="of"||t==="!in"||t==="!of"||t==="!instanceof")&&e.length===3)return this.relation(e);if(t==="instanceof"&&e.length===3){this.mark(e,"$self",()=>{this.operand(e,"left",e[1]),this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("instanceof")),this.b.emit(" "),this.operand(e,"right",e[2])});return}if(t==="//"&&e.length===3)return this.floorDiv(e);if(t==="%%"&&e.length===3)return this.modulo(e);if(t==="//="&&e.length===3)return this.floorDivAssign(e);if(t==="=~"&&e.length===3)return this.matchOp(e);if(t==="map"&&this.lockedHead(e,"map"))return this.mapLiteral(e);if(t==="regex-index"&&e.length===4){if(!(typeof e[2]==="string"&&e[2][0]==="/"))throw this.positionedError(e,"emitter: a two-part index is the regex-capture form (`text[/re/, n]`) — its key must be a regex literal");return this.regexIndex(e,e[1],e[2],e[3])}if(t==="symbol"&&e.length===2&&this.lockedHead(e,"symbol"))return this.mark(e,"$self",()=>{let r=JSON.stringify(e[1]);if(r===`"${e[1]}"`)this.b.emit('Symbol.for("'),this.emitPrimitive(e[1]),this.b.emit('")');else this.b.emit(`Symbol.for(${r})`)});if(t===".="&&e.length===3)throw this.positionedError(e,`emitter: ${t} is a statement — its target is spelled twice (write + read), which has no single-expression form`);if(t==="%%="&&e.length===3)return this.moduloAssign(e);if(re(e))return this.comprehension(e,this.ind);if(t==="do-iife"&&e.length===2)return this.doIife(e);if((t==="cast"||t==="satisfies")&&e.length===3)return this.postfixType(e);if(t==="?"&&e.length===2)return this.existence(e);if(t==="await"&&e.length===2)return this.awaitExpr(e);if(t==="dammit!"&&e.length===2)return this.dammit(e);if(t==="dammit?")return this.maybeDammit(e);if((t==="yield"||t==="yield-from")&&e.length<=2)return this.yieldExpr(e);if(t==="class")return this.classExpr(e);if(this.isReactiveDecl(e)){let r=t==="state"?":=":"~=";throw this.positionedError(e,`emitter: a reactive declaration ('${typeof e[1]==="string"?e[1]:"…"} ${r} …') is a statement — it lowers to a const declaration, which has no expression form`)}if(this.isGateDecl(e))throw this.positionedError(e,"emitter: a render gate ('<~') can only be used as a direct component body line");if(this.isReadonlyDecl(e))throw this.positionedError(e,`emitter: a readonly declaration ('${typeof e[1]==="string"?e[1]:"…"} =! …') is a statement — it lowers to a const declaration, which has no expression form`);if(this.isEffectDecl(e)){if(e[1]!==null)throw this.positionedError(e,`emitter: a bound effect ('${typeof e[1]==="string"?e[1]:"…"} ~> …') is a statement — it lowers to a const declaration, which has no expression form ; a BARE '~> …' is the expression form`);this.mark(e,"$self",()=>this.effectValue(e,e[2],this.ind,!0));return}if(t==="schema"&&e.length===2)return this.schemaExpr(e);if(this.isComponentDecl(e))return this.componentExpr(e);if(this.isRenderNode(e))throw this.positionedError(e,"emitter: render blocks can only be used inside a component (as a direct body line)");if(this.isOfferNode(e))throw this.positionedError(e,"emitter: offer can only be used as a direct component body line");if(this.isAcceptNode(e))throw this.positionedError(e,"emitter: accept can only be used as a direct component body line");if(t==="super")return this.superCall(e);if(t==="new"&&e.length===2)return this.newExpr(e);if(t==="..."&&e.length===2)return this.spread(e);if(ft(e))return this.binary(e);if(ha(e))return this.unary(e);if(t==="block"){this.mark(e,"$self",()=>{this.b.emit("("),e.slice(1).forEach((r,n)=>{if(n>0)this.b.emit(", ");this.expr(r)}),this.b.emit(")")});return}if(t==="if"&&e.length>=3&&e.length<=4)return this.valueIf(e);if(t==="try")return this.valueTry(e);if(t==="switch"&&e.length===4)return this.valueSwitch(e);if(t==="while"&&(e.length===3||e.length===4))return this.accumulatorIIFE(e);if(t==="loop"&&e.length===2)return this.accumulatorIIFE(e);if(t==="loop-n"&&e.length===3)return this.accumulatorIIFE(e);if((t==="for-in"||t==="for-of"||t==="for-as")&&e.length===6)return this.accumulatorIIFE(e);if(t==="throw"&&e.length===2){this.rejectYieldInIIFE(e),this.mark(e,"$self",()=>{this.b.emit(this.containsAwait(e)?"await (async () => { throw ":"(() => { throw "),this.mark(e,"value",()=>this.expr(e[1])),this.b.emit("; })()")});return}if(k1(t)||t==="return"||t==="program"&&this.lockedHead(e,"program"))throw this.positionedError(e,`emitter: '${t}' is not supported in expression position`);if(t==="type-decl"||E.isTypedWrapper(e))throw this.positionedError(e,"emitter: an erased type statement reached expression position — a statement list missed its filter");return this.call(e)}static optionalGuard(e){if(!y(e)||e.length!==3)return null;if(e[0]==="?."||e[0]==="optindex")return e;if(e[0]==="."||e[0]==="[]")return E.optionalGuard(e[1]);return null}repeatSafeValue(e,t=null){if(typeof e!=="string")return!1;if(e==="this")return!0;if(e[0]==="/")return!1;if(!Z1(e))return!0;if(E.LITERAL_WORDS.has(e))return!0;if(t!==null&&t.has(e))return!0;return this.lexicallyBound(e)}lexicallyBound(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e)||r.bound.has(e))return!0;if(r.members!==void 0&&r.members.has(e))return!0}return this.inScope(e)||this.moduleBound.has(e)}singleReadIterable(e,t=null){if(this.repeatSafeValue(e,t))return!0;if(!y(e))return!1;if(e[0]==="array")return e.slice(1).every((r)=>this.singleReadIterable(r,t));return!1}scopeBoundary(e){if(!y(e)||k1(e[0])||T1(e))return"skip";if(e[0]==="component"&&e.length===3)return"skip";if(e[0]==="enum")return"skip";if(this.isEffectDecl(e))return"effect";if(this.isReactiveDecl(e))return"reactive";if(this.isReadonlyDecl(e))return"readonly";if(e[0]==="class")return"class";if(e[0]==="for-in"||e[0]==="for-of"||e[0]==="for-as")return"loop";if(re(e))return"comprehension";if(e[0]==="try")return"try";return null}static planNeedsFor(e){if(!y(e)||e.length!==3)return null;let t=e[0],r=t==="//="||t==="%%=";if(!r&&!F1.has(t))return null;let n=E.optionalGuard(e[1]);if(n===null&&!r)return null;if(n===null&&!(y(e[1])&&(e[1][0]==="."||e[1][0]==="[]")&&e[1].length===3))return null;return{synth:r,optLink:n}}planReferenceTemps(e,t){let r=[],n=(o)=>{let l=this.loopTempName(o);return this.temps.used.add(l),l},i=(o,l,c)=>{let h=this.refPlans.get(o);if(h!==void 0){for(let d of[h.recv,h.obj,h.key])if(d!==null)r.push([d,o,"$self"]);return}let f=(d)=>this.repeatSafeValue(d,c)||t.has(d),u={recv:null,obj:null,key:null};if(l.optLink!==null&&!f(l.optLink[1]))u.recv=n("_ref");if(l.synth){let d=s(o,l,u),p=d[1];if(!(typeof p==="string"&&(p===u.recv||f(p))))u.obj=n("_o");if((d[0]==="[]"||d[0]==="optindex")&&!f(d[2]))u.key=n("_k")}if(u.recv===null&&u.obj===null&&u.key===null)return;this.refPlans.set(o,u);for(let d of[u.recv,u.obj,u.key])if(d!==null)r.push([d,o,"$self"])},s=(o,l,c)=>{let h=o[1];if(l.optLink!==null&&h===l.optLink)return[h[0],c.recv??h[1],h[2]];return h},a=(o,l)=>{let c=this.scopeBoundary(o);if(c==="skip"||c==="effect")return;if(c==="reactive"){if(!(o[0]==="computed"&&b1(o[2])&&o[2].length>2))a(o[2],l);return}if(c==="readonly"){a(o[2],l);return}if(c==="class"){if(o[2]!=null)a(o[2],l);return}if(c==="loop"){let f=new Set(l);for(let u of this.patternNames(o[1],[],!0))f.add(u);for(let u of o.slice(2))a(u,f);return}if(c==="comprehension"){let f=new Set(l);for(let u of o[2]??[])for(let d of this.patternNames(u[1],[],!0))f.add(d);a(o[1],f);for(let u of o[2]??[])a(u[2],f);for(let u of o[3]??[])a(u,f);return}if(c==="try"){for(let f of o.slice(2)){if(y(f)&&f.length===2&&E.isPattern(f[0])){let u=new Set(l);for(let d of this.patternNames(f[0]))u.add(d);a(f[1],u);continue}a(f,l)}a(o[1],l);return}let h=E.planNeedsFor(o);if(h!==null)i(o,h,l);for(let f of o)a(f,l)};for(let o of e)a(o,new Set);return r}optionalAssign(e,t,r){this.checkMemberWrite(e,e[1]);let n=e[0],i=n==="//="||n==="%%=",s=this.refPlans.get(e)??{recv:null,obj:null,key:null};if(s.recv===null&&!this.repeatSafeValue(t[1]))throw this.positionedError(e,"emitter: reference plan missing for an optional assignment with an impure receiver — a capture site the planner walk did not reach");let a=(f)=>{if(f===t)return this.stores.alias([f[0],s.recv??f[1],f[2]],f);return y(f)?this.stores.alias(f.map(a),f):f},o=a(e[1]),l=()=>{if(s.recv!==null)this.b.emit(`(${s.recv} = `),this.mark(t,"object",()=>this.withExpression(()=>this.expr(t[1]))),this.b.emit(")");else this.mark(t,"object",()=>this.expr(t[1]))},c=()=>this.mark(e,"value",()=>this.withExpression(()=>this.expr(e[2]))),h=()=>{if(!i){(()=>this.mark(e,"target",()=>this.withTarget(()=>this.withDeopt(()=>this.expr(o)))))(),this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit(n)),this.b.emit(" "),c();return}let f=null;if(s.obj!==null)this.b.emit(`${s.obj} = `),this.mark(o,"object",()=>this.withDeopt(()=>this.expr(o[1]))),this.b.emit(", "),f=s.obj;if(s.key!==null)this.b.emit(`${s.key} = `),this.mark(o,"key",()=>this.withExpression(()=>this.expr(o[2]))),this.b.emit(", ");let u=["[]","."].includes(o[0])||o[0]==="?."||o[0]==="optindex"?this.stores.alias([o[0],f??o[1],s.key??o[2]],e[1]):o,d=()=>this.mark(e,"target",()=>this.withTarget(()=>this.withDeopt(()=>this.expr(u))));d(),this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.mark(e,"operator",()=>{this.b.emit(n==="//="?"Math.floor(":E.MODULO+"("),d(),this.b.emit(n==="//="?" / ":", "),this.operand(e,"value",e[2]),this.b.emit(")")})};this.mark(e,"$self",()=>{if(r==="statement")this.b.emit("if ("),l(),this.b.emit(" != null) "),h();else l(),this.b.emit(" != null ? ("),h(),this.b.emit(") : undefined")})}sliceAssignError(e){if(e[0]==="=")return this.positionedError(e,"emitter: a slice assignment (`a[i..j] = v`) is a statement — it splices the range in place and has no value form; move it to its own line");return this.positionedError(e,`emitter: a slice takes plain assignment only (\`a[i..j] = v\`) — '${e[0]}' has no in-place reading`)}assign(e){if(typeof e[1]==="string"&&e[1][0]==='"')throw this.positionedError(e,'emitter: a string is not an assignment target — a string-NAMED member (`"data-src" = v`) lives in a class body');let t=E.isPattern(e[1]),r=E.declaresInPlace.has(e),n=O1(e[1])&&!this.inPattern&&!r;if(typeof e[1]==="string"&&this.isComputedName(e[1]))throw this.positionedError(e,`emitter: cannot assign to computed '${e[1]}' — a '~=' binding derives from its dependencies; write to those instead`);if(typeof e[1]==="string"&&this.isAmbientReadonly(e[1]))throw this.positionedError(e,`emitter: cannot assign to readonly '${e[1]}' — a '=!' binding never changes after its declaration`);if(E.middleRestPattern(e[1]))throw this.positionedError(e,"emitter: a middle-rest pattern (`[a, ...mid, b]`) assigns only as a STATEMENT — "+"it binds its source once and reads by index, which has no expression form; move the assignment to its own line");if(!this.inPattern)this.checkExportedConstWrite(e,e[1]);if(this.checkMemberWrite(e,e[1]),e[0]==="void-assign")this.registerVoidValue(e[2],e);{let i=I3(e),s=i!==null?this.annotationText(e):null;if(s!==null){let a=(c)=>{let h=this.stores.idOf(e),f=h!==null?this.stores.role(h,"annotation"):null;return f!==null&&f.sourceStart!=null?this.positionedErrorAt(f.sourceStart,f.sourceEnd,c):this.positionedError(e,c)};if(e!==this.moduleTopStmt)throw a("emitter: an annotated prototype member must be a module top-level statement — "+"the annotation manifests as an interface augmentation, which TypeScript admits only at a module's top level; move the write there or drop the annotation");let o=(()=>{let c=this.stores.idOf(e),h=c!==null?this.stores.selfSpan(c):null,f=h!==null?this.stores.primitiveSpans(i.member,h[0],h[1])[0]??null:null;return f===null?null:{id:c,start:f.sourceStart,end:f.sourceEnd}})(),l=(c,h)=>{if(this.b.emit(c),o!==null)this.b.markSpan(o.id,"identifier",o.start,o.end,()=>this.b.emit(i.member));else this.b.emit(i.member);this.emitTypeText(e,"annotation",h)};if(this.moduleClassNames?.has(i.head)){if(this.ts)this.b.tsOnly(()=>this.mark(e,"annotation",()=>l(`interface ${i.head} { `,`: ${s} } -`)))}else if(!this.scopes[0].has(i.head)){let c=O3[i.head]??"";if(this.ts)this.b.tsOnly(()=>this.mark(e,"annotation",()=>l(`declare global { interface ${i.head}${c} { `,`: ${s} } } -`)))}else throw a(`emitter: the annotation on \`${i.head}::${i.member}\` cannot augment — `+`\`${i.head}\` is a module binding, not a class declaration, so the interface has nothing to merge with; declare \`class ${i.head}\`, drop the annotation, or describe the member in a workspace .d.ts`)}}if(r)this.b.emit("let ");this.mark(e,"voidMarker",()=>this.mark(e,"annotation",()=>this.mark(e,"$self",()=>{if(n)this.b.emit("(");if(this.mark(e,"target",()=>{if(t)this.withPattern(()=>this.expr(e[1]));else this.withTarget(()=>this.expr(e[1]))}),this.ts&&r){let l=E.inlineOwners.get(e),c=this.annotationText(e)??(l!==void 0?this.annotationText(l):null);if(c!==null)this.tsAnnotate(l??e,"annotation",c);else{let h=this.schemaStories?.get(e);if(h&&!h.decl.exported&&h.constType!==null){let f=this.bindingNameSpan(e,"target",h.decl.name);this.b.tsOnly(()=>{this.b.emit(": "),this.emitNamedCopies(h.constType,h.decl.name,f?.id??null,f?.span??null)})}}}this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit(e[0]==="void-assign"?"=":e[0])),this.b.emit(" ");let i=this._schemaName,s=this._componentName,a=this._componentTypeParams;if(this._componentTypeParams=null,y(e[2])&&e[2][0]==="schema"&&typeof e[1]==="string")this._schemaName=e[1];if(this.isComponentDecl(e[2])&&typeof e[1]==="string"){this._componentName=e[1];let l=this.annotationText(e,"typeParams");this._componentTypeParams=l===null?null:{text:l,owner:e}}let o=this.ts&&this.strict&&this.pinnedWrites.has(e);if(o)this.b.tsOnly(()=>this.b.emit("("));if(this.mark(e,"value",()=>this.withExpression(()=>this.expr(e[2]))),o)this.b.tsOnly(()=>this.b.emit(") satisfies unknown"));if(this._schemaName=i,this._componentName=s,this._componentTypeParams=a,n)this.b.emit(")")})))}reactiveDecl(e,t){let[r,n,i]=e,s=r==="state"?":=":"~=";if(typeof n!=="string")throw this.positionedError(e,`emitter: a reactive declaration takes a plain name — ' ${s} …' cannot declare a ${y(n)&&n[0]==="object"?"destructuring pattern":y(n)&&n[0]==="array"?"destructuring pattern":"member or index target"}`);if(r==="state"&&n==="__state"||r==="computed"&&n==="__computed")throw this.positionedError(e,`emitter: '${n} ${s} …' would bind the very runtime name its own lowering calls (const ${n} = ${n}(…) — a TDZ self-reference); rename the variable`);if(r==="computed"&&this.containsAwait(i))throw this.positionedError(e,"emitter: a computed ('~=') body cannot await — computeds evaluate synchronously (make it a state written by an effect)");if(r==="computed"&&E.containsYield(i))throw this.positionedError(e,"emitter: a computed ('~=') body cannot yield — computeds evaluate synchronously");this.mark(e,"annotation",()=>this.mark(e,"$self",()=>{this.b.emit("const ");let a=this.b.offset;if(this.mark(e,"target",()=>this.b.emit(n)),r==="state"&&this.ts)this.mutables.push([a,this.b.offset]);if(this.ts)this.noteKind(e,"target",r==="state"?"state":"computed");if(this.ts&&this.annotationText(e)!==null){let c=r==="computed"?"readonly ":"";this.tsAnnotate(e,"annotation",$i(this.annotationText(e),c,xi))}else if(this.ts){let c=Ks(i);if(c!==null){let h=r==="computed"?"readonly ":"";this.b.tsOnly(()=>this.b.emit(`: ${$i(c,h,xi)}`))}}this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" ");let o=this.ts?this.annotationText(e):null,l=()=>{if(o===null)return;this.b.tsOnly(()=>this.mark(e,"annotation",()=>this.emitTypeText(e,"annotation",`<${o}>`)))};if(r==="state")this.b.emit(this.runtimeName("__state")),l(),this.b.emit("("),this.mark(e,"value",()=>this.withExpression(()=>{let c=E.needsGrouping(i,"operand");if(c)this.b.emit("(");if(this.expr(i),c)this.b.emit(")")})),this.b.emit(")");else this.b.emit(this.runtimeName("__computed")),l(),this.b.emit("(() => "),this.mark(e,"value",()=>this.withExpression(()=>this.computedBody(e,i,t))),this.b.emit(")")})),this.b.emit(";")}computedBody(e,t,r){if(b1(t)&&t.length>2){let i=this.liveStmts(t.slice(1),{forwards:!0}),{entries:s,names:a}=this.scopedHoist(i,[]);for(let o of this.pushReactiveFrame(i,a))a.add(o);this.scopes.push(a),this.funcBlock(e,t,i,r,s),this.scopes.pop(),this.rframes.pop();return}let n=E.needsGrouping(t,"operand")||O1(t);if(n)this.b.emit("(");if(this.expr(t),n)this.b.emit(")")}readonlyDecl(e,t){let[r,n,i]=e;if(r==="void-readonly")this.registerVoidValue(i,e);if(typeof n!=="string")throw this.positionedError(e,`emitter: a readonly declaration takes a plain name — ' =! …' cannot declare a ${y(n)&&(n[0]==="object"||n[0]==="array")?"destructuring pattern":"member or index target"}`);this.mark(e,"voidMarker",()=>this.mark(e,"annotation",()=>this.mark(e,"$self",()=>{if(this.b.emit("const "),this.mark(e,"target",()=>this.b.emit(n)),this.ts)this.noteKind(e,"target","readonly");if(this.ts&&this.annotationText(e)!==null)this.tsAnnotate(e,"annotation",this.annotationText(e));this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.mark(e,"value",()=>this.withExpression(()=>{let s=E.needsGrouping(i,"operand");if(s)this.b.emit("(");if(this.expr(i),s)this.b.emit(")")}))}))),this.b.emit(";")}effectStatement(e,t){let[,r,n]=e;if(r!==null&&typeof r!=="string")throw this.positionedError(e,`emitter: an effect handle takes a plain name — ' ~> …' cannot bind a ${y(r)&&(r[0]==="object"||r[0]==="array")?"destructuring pattern":"member or index target"}`);if(r==="__effect")throw this.positionedError(e,"emitter: '__effect ~> …' would bind the very runtime name its own lowering calls (const __effect = __effect(…) — a TDZ self-reference); rename the handle");this.mark(e,"annotation",()=>this.mark(e,"$self",()=>{if(r!==null){if(this.b.emit("const "),this.mark(e,"target",()=>this.b.emit(r)),this.ts)this.noteKind(e,"target","effect");if(this.ts&&this.annotationText(e)!==null)this.tsAnnotate(e,"annotation",this.annotationText(e));this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.effectValue(e,n,t,!1)}else this.effectValue(e,n,t,!0)})),this.b.emit(";")}renderSyncGuard(e){let t=this.rstate;if(t&&this.scopes.length===t.scopeDepth)throw this.renderSyncError(e)}renderSyncError(e){return this.positionedError(e,"emitter: a render body evaluates synchronously — 'await'/'yield' cannot appear in a render expression "+"(text, attributes, props, and event listeners emit into non-async generated scopes); compute the value into a member (a state written by an effect), or make the handler a function ('-> await ...')",this.rstate.node)}firstAwaitIn(e){if(!y(e))return null;let t=e[0];if(t==="await"||t==="dammit!"||t==="dammit?"||t==="yield"||t==="yield-from")return e;if(t==="for-as"&&e[3]===!0)return e;if(t==="class")return this.firstAwaitIn(e[2]);if(T1(e)||k1(t)||this.isEffectDecl(e))return null;for(let r of e){let n=this.firstAwaitIn(r);if(n!==null)return n}return null}effectValue(e,t,r,n){if(E.effectBodyYields(t))throw this.positionedError(e,"emitter: an effect ('~>') body cannot yield — the runtime calls the effect function (make the generator a named function the effect calls)");let i=()=>{let l=this.runtimeName("__effect");if(n)this.mark(e,"operator",()=>this.b.emit(l));else this.b.emit(l)};if(T1(t)){i(),this.b.emit("("),this.mark(e,"value",()=>this.withExpression(()=>{let l=t[0]==="->";if(l)this.b.emit("(");if(this.expr(t),l)this.b.emit(")")})),this.b.emit(")");return}let s=this.containsAwait(t);if(i(),this.b.emit(s?"(async () => ":"(() => "),b1(t)){this.mark(e,"value",()=>this.withExpression(()=>{let l=this.liveStmts(t.slice(1),{forwards:!0}),{entries:c,names:h}=this.scopedHoist(l,[]);for(let f of this.pushReactiveFrame(l,h))h.add(f);this.scopes.push(h),this.funcBlock(e,t,l,r,c),this.scopes.pop(),this.rframes.pop()})),this.b.emit(")");return}let{entries:a,names:o}=this.scopedHoist([t],[]);if(this.checkScopeRedeclarations([t],[],e),this.scopes.push(o),this.rframes.push({reactive:new Set,bound:o}),this.b.emit("{ "),a.length)this.hoistLine(a),this.b.emit(" ");this.mark(e,"value",()=>this.withExpression(()=>{let l=E.needsGrouping(t,"operand")||O1(t);if(l)this.b.emit("(");if(this.expr(t),l)this.b.emit(")")})),this.b.emit("; })"),this.scopes.pop(),this.rframes.pop()}static effectBodyYields(e){return T1(e)?E.containsYield(e[2]):E.containsYield(e)}static COMPONENT_HOOKS=_3;static BOOLEAN_ATTRS=Qn;static SVG_NS="http://www.w3.org/2000/svg";isComponentDecl(e){return E.isComponentDeclIn(this.stores,e)}static isComponentDeclIn(e,t){if(!y(t)||t[0]!=="component"||t.length!==3)return!1;let r=e.idOf(t);return(r!==null?e.node(r)?.semanticKind:null)==="component"}componentKindOf(e,t,r){if(!y(e)||e[0]!==t||e.length!==r)return!1;let n=this.stores.idOf(e);return(n!==null?this.stores.node(n)?.semanticKind:null)===t}isRenderNode(e){return this.componentKindOf(e,"render",2)}isOfferNode(e){return this.componentKindOf(e,"offer",2)}isAcceptNode(e){return this.componentKindOf(e,"accept",2)||this.componentKindOf(e,"accept",3)}static memberTarget(e){if(typeof e==="string")return{name:e,isPublic:!1};if(y(e)&&e[0]==="."&&e[1]==="this"&&e.length===3&&typeof e[2]==="string")return{name:e[2],isPublic:!0};return null}static gateChain(e){let t=[],r=e;while(y(r)&&r[0]==="."&&r.length===3&&typeof r[2]==="string")t.unshift(r[2]),r=r[1];if(typeof r!=="string")return null;return t.unshift(r),t}static gateSource(e){let t=e[2],r=e.slice(3);if(r.length>1)return{error:"arity",node:e};let n=r[0]??null,i=E.gateChain(t);if(i===null||i.length<3||i[0]!=="this"||i[1]!=="stash")return{error:"path",node:t};let s=i.slice(2).join(".");if(n===null)return{path:s,pathNode:t,key:null,keyCode:null,keyParts:null};if(typeof n==="string"&&(/^-?(?:\d+(?:\.\d+)?|\.\d+)$/.test(n.replace(/_/g,""))||/^["'][^]*["']$/.test(n)||n==="true"||n==="false"))return{path:s,pathNode:t,key:n,keyCode:n,keyParts:null};let a=E.gateChain(n);if(a===null)return{error:"key",node:n};if(a[0]==="this")a.shift();if(a[0]!=="params"&&a[0]!=="query"||a.length<2)return{error:"key",node:n};return{path:s,pathNode:t,key:n,keyCode:a.join("."),keyParts:a}}static hmrFingerprint(e){let t=JSON.stringify(e),r=2166136261;for(let n=0;n>>0).toString(16).padStart(8,"0")}emitComponentHmrMeta(e,{bindingName:t,declaredProps:r,stateVars:n,derivedVars:i,gateVars:s,extendsTag:a,methods:o,hooks:l,hasRender:c}){let h=(T)=>[...T].sort(),f=h(r),u=h(n.map((T)=>T.name)),d=h(i.map((T)=>T.name)),p=h(o.map((T)=>T.name)),m=h(l.map((T)=>T.name)),g=s.length,b=E.hmrFingerprint({props:f,state:u,computed:d,gates:g,extends:a}),S=E.hmrFingerprint({methods:p,hooks:m,render:c}),w=`${this.modulePath}#${t}`,R={shape:b,impl:S,state:u,computed:d,props:f,gates:g,extends:a};this.b.emit(`${e}static __hmrId = ${JSON.stringify(w)}; +`);this.mark(e,"statements",()=>this.statements(s,t+1,"block")),this.b.emit(" ".repeat(t)+"}")})}containsAwait(e){return Bi(e,this.stores)}static isStringLiteral(e){if(Array.isArray(e))return String(e[0])==="str";let t=String(e)[0];return t==='"'||t==="'"||t==="`"}static containsBareIt(e){if(e==="it")return!0;if(!y(e))return!1;let t=e[0];if(t==="->"||t==="=>"||k1(t))return!1;if((t==="."||t==="?.")&&e.length===3)return E.containsBareIt(e[1])||typeof e[2]!=="string"&&E.containsBareIt(e[2]);if(t==="object")return e.slice(1).some((r)=>y(r)&&r[0]===":"&&r.length===3?E.containsBareIt(r[2])||typeof r[1]!=="string"&&E.containsBareIt(r[1]):E.containsBareIt(r));return e.some((r)=>E.containsBareIt(r))}static containsYield(e){return dr(e)}static jsTier(e){if(!y(e))return"primary";if((e[0]==="cast"||e[0]==="satisfies")&&e.length===3)return E.jsTier(e[1]);if(L3(e))return"assign";if(Li(e)||ma(e)&&e.length<=4&&E.ifIsSimple(e))return"ternary";if(e[0]==="?"&&e.length===2)return"binary";if(E.isStrRepeat(e))return"primary";if(ft(e)||da(e))return"binary";if(ua(e))return"unary";if((e[0]==="await"||e[0]==="dammit!")&&e.length===2)return"unary";if(e[0]==="dammit?")return"unary";if(y(e[0])&&e[0][0]==="dammit!")return"unary";if((e[0]==="yield"||e[0]==="yield-from")&&e.length<=2)return"yield";if(T1(e))return"function";if(O1(e))return"object";return"primary"}static needsGrouping(e,t){let r=E.jsTier(e);if(t==="operand"||t==="return"){if(r==="unary")return!(e[0]==="!"||e[0]==="typeof"||e[0]==="await"||e[0]==="dammit!"||e[0]==="dammit?"||y(e[0])&&e[0][0]==="dammit!");if(r==="yield")return t==="operand";return r==="binary"||r==="ternary"||r==="assign"||r==="function"}if(t==="head")return r!=="primary"||U1(e);if(E.leadsWithObject(e))return!0;return r==="object"||U1(e)||r==="function"&&e[0]==="->"||y(e)&&(e[0]==="class"||e[0]==="component")||Li(e)&&!E.ternaryHoists(e)||r==="unary"&&e[0]==="delete"}operand(e,t,r){this.grouped(e,t,r,E.needsGrouping(r,"operand"))}head(e,t,r){this.grouped(e,t,r,E.needsGrouping(r,"head"))}static isIntegerLiteral(e){return typeof e==="string"&&e.charCodeAt(0)>=48&&e.charCodeAt(0)<=57&&/^[0-9][0-9_]*$/.test(e)}grouped(e,t,r,s){if(s)this.b.emit("(");if(this.mark(e,t,()=>this.expr(r)),s)this.b.emit(")")}static escapeTemplate(e){return e.replace(/\\[^]|`|\$\{/g,(t)=>t==="`"||t==="${"?`\\${t}`:t)}static MAX_EXPR_DEPTH=1024;expr(e){if(++this.exprDepth>E.MAX_EXPR_DEPTH){let t=this.positionedError(e,`emitter: expression nesting exceeds ${E.MAX_EXPR_DEPTH} levels — restructure the expression (the compile-time nesting bound)`);if(typeof t.start!=="number"&&this.b.currentMark)t.start=this.b.currentMark.sourceStart,t.end=this.b.currentMark.sourceEnd;throw t}try{this.exprCore(e)}finally{this.exprDepth--}}exprCore(e){if(!y(e)){if(typeof e==="string"){let r=this.bareRewrite(e);if(r==="reactive")return this.reactiveRead(e);if(r==="member")this.notePlainRenderRead(e);if(r!==null)this.checkBareRest(e,e);if(r!==null)return this.memberRead(e,r==="member-reactive");if(e==="this"&&this.renderSelf!==null)return this.b.emit(this.renderSelf)}if((e==="break"||e==="continue")&&this.ctrlDepth===0){let r=this.positionedError(e,`emitter: '${e}' outside a loop${e==="break"?" or switch":""}`);if(typeof r.start!=="number"&&this.b.currentMark)r.start=this.b.currentMark.sourceStart,r.end=this.b.currentMark.sourceEnd;throw r}if(typeof e==="string")this.emitPrimitive(e);else this.b.emit(e);return}let t=e[0];if(t==="str"&&this.lockedHead(e,"str"))return this.strTemplate(e);if(t==="tagged-template"&&e.length===3)return this.taggedTemplate(e);if(t==="here-regex")return this.heregex(e);if(y(t))return this.call(e);if(lt(t)&&e.length===3&&!this.inPattern&&E.sliceTarget(e[1])!==null)throw this.sliceAssignError(e);if(lt(t)&&e.length===3&&!this.inPattern){let r=E.optionalGuard(e[1]);if(r!==null)return this.optionalAssign(e,r,"value")}if(F1.has(t)&&e.length===3)return this.assign(e);if((t==="."||t==="?.")&&e.length===3)return this.member(e);if((t===".{}"||t==="?.{}")&&e.length>=3)return this.pick(e);if(t==="[]"&&e.length===3)return this.index(e);if(t==="optindex"&&e.length===3&&this.lockedHead(e,"optindex"))return this.optIndex(e);if(t==="optcall"&&this.lockedHead(e,"optcall"))return this.optCall(e);if(T1(e))return this.func(e);if(U1(e))return this.update(e);if(Li(e))return this.ternary(e);if(t==="array"&&this.lockedHead(e,"array"))return this.array(e);if(t==="object"&&this.lockedHead(e,"object"))return this.object(e);if(We(e))return this.range(e);if((t==="in"||t==="of"||t==="!in"||t==="!of"||t==="!instanceof")&&e.length===3)return this.relation(e);if(t==="instanceof"&&e.length===3){this.mark(e,"$self",()=>{this.operand(e,"left",e[1]),this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("instanceof")),this.b.emit(" "),this.operand(e,"right",e[2])});return}if(t==="//"&&e.length===3)return this.floorDiv(e);if(t==="%%"&&e.length===3)return this.modulo(e);if(t==="//="&&e.length===3)return this.floorDivAssign(e);if(t==="=~"&&e.length===3)return this.matchOp(e);if(t==="map"&&this.lockedHead(e,"map"))return this.mapLiteral(e);if(t==="regex-index"&&e.length===4){if(!(typeof e[2]==="string"&&e[2][0]==="/"))throw this.positionedError(e,"emitter: a two-part index is the regex-capture form (`text[/re/, n]`) — its key must be a regex literal");return this.regexIndex(e,e[1],e[2],e[3])}if(t==="symbol"&&e.length===2&&this.lockedHead(e,"symbol"))return this.mark(e,"$self",()=>{let r=JSON.stringify(e[1]);if(r===`"${e[1]}"`)this.b.emit('Symbol.for("'),this.emitPrimitive(e[1]),this.b.emit('")');else this.b.emit(`Symbol.for(${r})`)});if(t===".="&&e.length===3)throw this.positionedError(e,`emitter: ${t} is a statement — its target is spelled twice (write + read), which has no single-expression form`);if(t==="%%="&&e.length===3)return this.moduloAssign(e);if(re(e))return this.comprehension(e,this.ind);if(t==="do-iife"&&e.length===2)return this.doIife(e);if((t==="cast"||t==="satisfies")&&e.length===3)return this.postfixType(e);if(t==="?"&&e.length===2)return this.existence(e);if(t==="await"&&e.length===2)return this.awaitExpr(e);if(t==="dammit!"&&e.length===2)return this.dammit(e);if(t==="dammit?")return this.maybeDammit(e);if((t==="yield"||t==="yield-from")&&e.length<=2)return this.yieldExpr(e);if(t==="class")return this.classExpr(e);if(this.isReactiveDecl(e)){let r=t==="state"?":=":"~=";throw this.positionedError(e,`emitter: a reactive declaration ('${typeof e[1]==="string"?e[1]:"…"} ${r} …') is a statement — it lowers to a const declaration, which has no expression form`)}if(this.isGateDecl(e))throw this.positionedError(e,"emitter: a render gate ('<~') can only be used as a direct component body line");if(this.isReadonlyDecl(e))throw this.positionedError(e,`emitter: a readonly declaration ('${typeof e[1]==="string"?e[1]:"…"} =! …') is a statement — it lowers to a const declaration, which has no expression form`);if(this.isEffectDecl(e)){if(e[1]!==null)throw this.positionedError(e,`emitter: a bound effect ('${typeof e[1]==="string"?e[1]:"…"} ~> …') is a statement — it lowers to a const declaration, which has no expression form ; a BARE '~> …' is the expression form`);this.mark(e,"$self",()=>this.effectValue(e,e[2],this.ind,!0));return}if(t==="schema"&&e.length===2)return this.schemaExpr(e);if(this.isComponentDecl(e))return this.componentExpr(e);if(this.isRenderNode(e))throw this.positionedError(e,"emitter: render blocks can only be used inside a component (as a direct body line)");if(this.isOfferNode(e))throw this.positionedError(e,"emitter: offer can only be used as a direct component body line");if(this.isAcceptNode(e))throw this.positionedError(e,"emitter: accept can only be used as a direct component body line");if(t==="super")return this.superCall(e);if(t==="new"&&e.length===2)return this.newExpr(e);if(t==="..."&&e.length===2)return this.spread(e);if(ft(e))return this.binary(e);if(ua(e))return this.unary(e);if(t==="block"){this.mark(e,"$self",()=>{this.b.emit("("),e.slice(1).forEach((r,s)=>{if(s>0)this.b.emit(", ");this.expr(r)}),this.b.emit(")")});return}if(t==="if"&&e.length>=3&&e.length<=4)return this.valueIf(e);if(t==="try")return this.valueTry(e);if(t==="switch"&&e.length===4)return this.valueSwitch(e);if(t==="while"&&(e.length===3||e.length===4))return this.accumulatorIIFE(e);if(t==="loop"&&e.length===2)return this.accumulatorIIFE(e);if(t==="loop-n"&&e.length===3)return this.accumulatorIIFE(e);if((t==="for-in"||t==="for-of"||t==="for-as")&&e.length===6)return this.accumulatorIIFE(e);if(t==="throw"&&e.length===2){this.rejectYieldInIIFE(e),this.mark(e,"$self",()=>{this.b.emit(this.containsAwait(e)?"await (async () => { throw ":"(() => { throw "),this.mark(e,"value",()=>this.expr(e[1])),this.b.emit("; })()")});return}if(k1(t)||t==="return"||t==="program"&&this.lockedHead(e,"program"))throw this.positionedError(e,`emitter: '${t}' is not supported in expression position`);if(t==="type-decl"||E.isTypedWrapper(e))throw this.positionedError(e,"emitter: an erased type statement reached expression position — a statement list missed its filter");return this.call(e)}static optionalGuard(e){if(!y(e)||e.length!==3)return null;if(e[0]==="?."||e[0]==="optindex")return e;if(e[0]==="."||e[0]==="[]")return E.optionalGuard(e[1]);return null}repeatSafeValue(e,t=null){if(typeof e!=="string")return!1;if(e==="this")return!0;if(e[0]==="/")return!1;if(!Z1(e))return!0;if(E.LITERAL_WORDS.has(e))return!0;if(t!==null&&t.has(e))return!0;return this.lexicallyBound(e)}lexicallyBound(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e)||r.bound.has(e))return!0;if(r.members!==void 0&&r.members.has(e))return!0}return this.inScope(e)||this.moduleBound.has(e)}singleReadIterable(e,t=null){if(this.repeatSafeValue(e,t))return!0;if(!y(e))return!1;if(e[0]==="array")return e.slice(1).every((r)=>this.singleReadIterable(r,t));return!1}scopeBoundary(e){if(!y(e)||k1(e[0])||T1(e))return"skip";if(e[0]==="component"&&e.length===3)return"skip";if(e[0]==="enum")return"skip";if(this.isEffectDecl(e))return"effect";if(this.isReactiveDecl(e))return"reactive";if(this.isReadonlyDecl(e))return"readonly";if(e[0]==="class")return"class";if(e[0]==="for-in"||e[0]==="for-of"||e[0]==="for-as")return"loop";if(re(e))return"comprehension";if(e[0]==="try")return"try";return null}static planNeedsFor(e){if(!y(e)||e.length!==3)return null;let t=e[0],r=t==="//="||t==="%%=";if(!r&&!F1.has(t))return null;let s=E.optionalGuard(e[1]);if(s===null&&!r)return null;if(s===null&&!(y(e[1])&&(e[1][0]==="."||e[1][0]==="[]")&&e[1].length===3))return null;return{synth:r,optLink:s}}planReferenceTemps(e,t){let r=[],s=(o)=>{let l=this.loopTempName(o);return this.temps.used.add(l),l},i=(o,l,c)=>{let h=this.refPlans.get(o);if(h!==void 0){for(let d of[h.recv,h.obj,h.key])if(d!==null)r.push([d,o,"$self"]);return}let f=(d)=>this.repeatSafeValue(d,c)||t.has(d),u={recv:null,obj:null,key:null};if(l.optLink!==null&&!f(l.optLink[1]))u.recv=s("_ref");if(l.synth){let d=n(o,l,u),p=d[1];if(!(typeof p==="string"&&(p===u.recv||f(p))))u.obj=s("_o");if((d[0]==="[]"||d[0]==="optindex")&&!f(d[2]))u.key=s("_k")}if(u.recv===null&&u.obj===null&&u.key===null)return;this.refPlans.set(o,u);for(let d of[u.recv,u.obj,u.key])if(d!==null)r.push([d,o,"$self"])},n=(o,l,c)=>{let h=o[1];if(l.optLink!==null&&h===l.optLink)return[h[0],c.recv??h[1],h[2]];return h},a=(o,l)=>{let c=this.scopeBoundary(o);if(c==="skip"||c==="effect")return;if(c==="reactive"){if(!(o[0]==="computed"&&b1(o[2])&&o[2].length>2))a(o[2],l);return}if(c==="readonly"){a(o[2],l);return}if(c==="class"){if(o[2]!=null)a(o[2],l);return}if(c==="loop"){let f=new Set(l);for(let u of this.patternNames(o[1],[],!0))f.add(u);for(let u of o.slice(2))a(u,f);return}if(c==="comprehension"){let f=new Set(l);for(let u of o[2]??[])for(let d of this.patternNames(u[1],[],!0))f.add(d);a(o[1],f);for(let u of o[2]??[])a(u[2],f);for(let u of o[3]??[])a(u,f);return}if(c==="try"){for(let f of o.slice(2)){if(y(f)&&f.length===2&&E.isPattern(f[0])){let u=new Set(l);for(let d of this.patternNames(f[0]))u.add(d);a(f[1],u);continue}a(f,l)}a(o[1],l);return}let h=E.planNeedsFor(o);if(h!==null)i(o,h,l);for(let f of o)a(f,l)};for(let o of e)a(o,new Set);return r}optionalAssign(e,t,r){this.checkMemberWrite(e,e[1]);let s=e[0],i=s==="//="||s==="%%=",n=this.refPlans.get(e)??{recv:null,obj:null,key:null};if(n.recv===null&&!this.repeatSafeValue(t[1]))throw this.positionedError(e,"emitter: reference plan missing for an optional assignment with an impure receiver — a capture site the planner walk did not reach");let a=(f)=>{if(f===t)return this.stores.alias([f[0],n.recv??f[1],f[2]],f);return y(f)?this.stores.alias(f.map(a),f):f},o=a(e[1]),l=()=>{if(n.recv!==null)this.b.emit(`(${n.recv} = `),this.mark(t,"object",()=>this.withExpression(()=>this.expr(t[1]))),this.b.emit(")");else this.mark(t,"object",()=>this.expr(t[1]))},c=()=>this.mark(e,"value",()=>this.withExpression(()=>this.expr(e[2]))),h=()=>{if(!i){(()=>this.mark(e,"target",()=>this.withTarget(()=>this.withDeopt(()=>this.expr(o)))))(),this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit(s)),this.b.emit(" "),c();return}let f=null;if(n.obj!==null)this.b.emit(`${n.obj} = `),this.mark(o,"object",()=>this.withDeopt(()=>this.expr(o[1]))),this.b.emit(", "),f=n.obj;if(n.key!==null)this.b.emit(`${n.key} = `),this.mark(o,"key",()=>this.withExpression(()=>this.expr(o[2]))),this.b.emit(", ");let u=["[]","."].includes(o[0])||o[0]==="?."||o[0]==="optindex"?this.stores.alias([o[0],f??o[1],n.key??o[2]],e[1]):o,d=()=>this.mark(e,"target",()=>this.withTarget(()=>this.withDeopt(()=>this.expr(u))));d(),this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.mark(e,"operator",()=>{this.b.emit(s==="//="?"Math.floor(":E.MODULO+"("),d(),this.b.emit(s==="//="?" / ":", "),this.operand(e,"value",e[2]),this.b.emit(")")})};this.mark(e,"$self",()=>{if(r==="statement")this.b.emit("if ("),l(),this.b.emit(" != null) "),h();else l(),this.b.emit(" != null ? ("),h(),this.b.emit(") : undefined")})}sliceAssignError(e){if(e[0]==="=")return this.positionedError(e,"emitter: a slice assignment (`a[i..j] = v`) is a statement — it splices the range in place and has no value form; move it to its own line");return this.positionedError(e,`emitter: a slice takes plain assignment only (\`a[i..j] = v\`) — '${e[0]}' has no in-place reading`)}assign(e){if(typeof e[1]==="string"&&e[1][0]==='"')throw this.positionedError(e,'emitter: a string is not an assignment target — a string-NAMED member (`"data-src" = v`) lives in a class body');let t=E.isPattern(e[1]),r=E.declaresInPlace.has(e),s=O1(e[1])&&!this.inPattern&&!r;if(typeof e[1]==="string"&&this.isComputedName(e[1]))throw this.positionedError(e,`emitter: cannot assign to computed '${e[1]}' — a '~=' binding derives from its dependencies; write to those instead`);if(typeof e[1]==="string"&&this.isAmbientReadonly(e[1]))throw this.positionedError(e,`emitter: cannot assign to readonly '${e[1]}' — a '=!' binding never changes after its declaration`);if(E.middleRestPattern(e[1]))throw this.positionedError(e,"emitter: a middle-rest pattern (`[a, ...mid, b]`) assigns only as a STATEMENT — "+"it binds its source once and reads by index, which has no expression form; move the assignment to its own line");if(!this.inPattern)this.checkExportedConstWrite(e,e[1]);if(this.checkMemberWrite(e,e[1]),e[0]==="void-assign")this.registerVoidValue(e[2],e);{let i=x3(e),n=i!==null?this.annotationText(e):null;if(n!==null){let a=(c)=>{let h=this.stores.idOf(e),f=h!==null?this.stores.role(h,"annotation"):null;return f!==null&&f.sourceStart!=null?this.positionedErrorAt(f.sourceStart,f.sourceEnd,c):this.positionedError(e,c)};if(e!==this.moduleTopStmt)throw a("emitter: an annotated prototype member must be a module top-level statement — "+"the annotation manifests as an interface augmentation, which TypeScript admits only at a module's top level; move the write there or drop the annotation");let o=(()=>{let c=this.stores.idOf(e),h=c!==null?this.stores.selfSpan(c):null,f=h!==null?this.stores.primitiveSpans(i.member,h[0],h[1])[0]??null:null;return f===null?null:{id:c,start:f.sourceStart,end:f.sourceEnd}})(),l=(c,h)=>{if(this.b.emit(c),o!==null)this.b.markSpan(o.id,"identifier",o.start,o.end,()=>this.b.emit(i.member));else this.b.emit(i.member);this.emitTypeText(e,"annotation",h)};if(this.moduleClassNames?.has(i.head)){if(this.ts)this.b.tsOnly(()=>this.mark(e,"annotation",()=>l(`interface ${i.head} { `,`: ${n} } +`)))}else if(!this.scopes[0].has(i.head)){let c=D3[i.head]??"";if(this.ts)this.b.tsOnly(()=>this.mark(e,"annotation",()=>l(`declare global { interface ${i.head}${c} { `,`: ${n} } } +`)))}else throw a(`emitter: the annotation on \`${i.head}::${i.member}\` cannot augment — `+`\`${i.head}\` is a module binding, not a class declaration, so the interface has nothing to merge with; declare \`class ${i.head}\`, drop the annotation, or describe the member in a workspace .d.ts`)}}if(r)this.b.emit("let ");this.mark(e,"voidMarker",()=>this.mark(e,"annotation",()=>this.mark(e,"$self",()=>{if(s)this.b.emit("(");if(this.mark(e,"target",()=>{if(t)this.withPattern(()=>this.expr(e[1]));else this.withTarget(()=>this.expr(e[1]))}),this.ts&&r){let l=E.inlineOwners.get(e),c=this.annotationText(e)??(l!==void 0?this.annotationText(l):null);if(c!==null)this.tsAnnotate(l??e,"annotation",c);else{let h=this.schemaStories?.get(e);if(h&&!h.decl.exported&&h.constType!==null){let f=this.bindingNameSpan(e,"target",h.decl.name);this.b.tsOnly(()=>{this.b.emit(": "),this.emitNamedCopies(h.constType,h.decl.name,f?.id??null,f?.span??null)})}}}this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit(e[0]==="void-assign"?"=":e[0])),this.b.emit(" ");let i=this._schemaName,n=this._componentName,a=this._componentTypeParams;if(this._componentTypeParams=null,y(e[2])&&e[2][0]==="schema"&&typeof e[1]==="string")this._schemaName=e[1];if(this.isComponentDecl(e[2])&&typeof e[1]==="string"){this._componentName=e[1];let l=this.annotationText(e,"typeParams");this._componentTypeParams=l===null?null:{text:l,owner:e}}let o=this.ts&&this.strict&&this.pinnedWrites.has(e);if(o)this.b.tsOnly(()=>this.b.emit("("));if(this.mark(e,"value",()=>this.withExpression(()=>this.expr(e[2]))),o)this.b.tsOnly(()=>this.b.emit(") satisfies unknown"));if(this._schemaName=i,this._componentName=n,this._componentTypeParams=a,s)this.b.emit(")")})))}reactiveDecl(e,t){let[r,s,i]=e,n=r==="state"?":=":"~=";if(typeof s!=="string")throw this.positionedError(e,`emitter: a reactive declaration takes a plain name — ' ${n} …' cannot declare a ${y(s)&&s[0]==="object"?"destructuring pattern":y(s)&&s[0]==="array"?"destructuring pattern":"member or index target"}`);if(r==="state"&&s==="__state"||r==="computed"&&s==="__computed")throw this.positionedError(e,`emitter: '${s} ${n} …' would bind the very runtime name its own lowering calls (const ${s} = ${s}(…) — a TDZ self-reference); rename the variable`);if(r==="computed"&&this.containsAwait(i))throw this.positionedError(e,"emitter: a computed ('~=') body cannot await — computeds evaluate synchronously (make it a state written by an effect)");if(r==="computed"&&E.containsYield(i))throw this.positionedError(e,"emitter: a computed ('~=') body cannot yield — computeds evaluate synchronously");this.mark(e,"annotation",()=>this.mark(e,"$self",()=>{this.b.emit("const ");let a=this.b.offset;if(this.mark(e,"target",()=>this.b.emit(s)),r==="state"&&this.ts)this.mutables.push([a,this.b.offset]);if(this.ts)this.noteKind(e,"target",r==="state"?"state":"computed");if(this.ts&&this.annotationText(e)!==null){let c=r==="computed"?"readonly ":"";this.tsAnnotate(e,"annotation",$i(this.annotationText(e),c,xi))}else if(this.ts){let c=zn(i);if(c!==null){let h=r==="computed"?"readonly ":"";this.b.tsOnly(()=>this.b.emit(`: ${$i(c,h,xi)}`))}}this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" ");let o=this.ts?this.annotationText(e):null,l=()=>{if(o===null)return;this.b.tsOnly(()=>this.mark(e,"annotation",()=>this.emitTypeText(e,"annotation",`<${o}>`)))};if(r==="state")this.b.emit(this.runtimeName("__state")),l(),this.b.emit("("),this.mark(e,"value",()=>this.withExpression(()=>{let c=E.needsGrouping(i,"operand");if(c)this.b.emit("(");if(this.expr(i),c)this.b.emit(")")})),this.b.emit(")");else this.b.emit(this.runtimeName("__computed")),l(),this.b.emit("(() => "),this.mark(e,"value",()=>this.withExpression(()=>this.computedBody(e,i,t))),this.b.emit(")")})),this.b.emit(";")}computedBody(e,t,r){if(b1(t)&&t.length>2){let i=this.liveStmts(t.slice(1),{forwards:!0}),{entries:n,names:a}=this.scopedHoist(i,[]);for(let o of this.pushReactiveFrame(i,a))a.add(o);this.scopes.push(a),this.funcBlock(e,t,i,r,n),this.scopes.pop(),this.rframes.pop();return}let s=E.needsGrouping(t,"operand")||O1(t);if(s)this.b.emit("(");if(this.expr(t),s)this.b.emit(")")}readonlyDecl(e,t){let[r,s,i]=e;if(r==="void-readonly")this.registerVoidValue(i,e);if(typeof s!=="string")throw this.positionedError(e,`emitter: a readonly declaration takes a plain name — ' =! …' cannot declare a ${y(s)&&(s[0]==="object"||s[0]==="array")?"destructuring pattern":"member or index target"}`);this.mark(e,"voidMarker",()=>this.mark(e,"annotation",()=>this.mark(e,"$self",()=>{if(this.b.emit("const "),this.mark(e,"target",()=>this.b.emit(s)),this.ts)this.noteKind(e,"target","readonly");if(this.ts&&this.annotationText(e)!==null)this.tsAnnotate(e,"annotation",this.annotationText(e));this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.mark(e,"value",()=>this.withExpression(()=>{let n=E.needsGrouping(i,"operand");if(n)this.b.emit("(");if(this.expr(i),n)this.b.emit(")")}))}))),this.b.emit(";")}effectStatement(e,t){let[,r,s]=e;if(r!==null&&typeof r!=="string")throw this.positionedError(e,`emitter: an effect handle takes a plain name — ' ~> …' cannot bind a ${y(r)&&(r[0]==="object"||r[0]==="array")?"destructuring pattern":"member or index target"}`);if(r==="__effect")throw this.positionedError(e,"emitter: '__effect ~> …' would bind the very runtime name its own lowering calls (const __effect = __effect(…) — a TDZ self-reference); rename the handle");this.mark(e,"annotation",()=>this.mark(e,"$self",()=>{if(r!==null){if(this.b.emit("const "),this.mark(e,"target",()=>this.b.emit(r)),this.ts)this.noteKind(e,"target","effect");if(this.ts&&this.annotationText(e)!==null)this.tsAnnotate(e,"annotation",this.annotationText(e));this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.effectValue(e,s,t,!1)}else this.effectValue(e,s,t,!0)})),this.b.emit(";")}renderSyncGuard(e){let t=this.rstate;if(t&&this.scopes.length===t.scopeDepth)throw this.renderSyncError(e)}renderSyncError(e){return this.positionedError(e,"emitter: a render body evaluates synchronously — 'await'/'yield' cannot appear in a render expression "+"(text, attributes, props, and event listeners emit into non-async generated scopes); compute the value into a member (a state written by an effect), or make the handler a function ('-> await ...')",this.rstate.node)}firstAwaitIn(e){if(!y(e))return null;let t=e[0];if(t==="await"||t==="dammit!"||t==="dammit?"||t==="yield"||t==="yield-from")return e;if(t==="for-as"&&e[3]===!0)return e;if(t==="class")return this.firstAwaitIn(e[2]);if(T1(e)||k1(t)||this.isEffectDecl(e))return null;for(let r of e){let s=this.firstAwaitIn(r);if(s!==null)return s}return null}effectValue(e,t,r,s){if(E.effectBodyYields(t))throw this.positionedError(e,"emitter: an effect ('~>') body cannot yield — the runtime calls the effect function (make the generator a named function the effect calls)");let i=()=>{let l=this.runtimeName("__effect");if(s)this.mark(e,"operator",()=>this.b.emit(l));else this.b.emit(l)};if(T1(t)){i(),this.b.emit("("),this.mark(e,"value",()=>this.withExpression(()=>{let l=t[0]==="->";if(l)this.b.emit("(");if(this.expr(t),l)this.b.emit(")")})),this.b.emit(")");return}let n=this.containsAwait(t);if(i(),this.b.emit(n?"(async () => ":"(() => "),b1(t)){this.mark(e,"value",()=>this.withExpression(()=>{let l=this.liveStmts(t.slice(1),{forwards:!0}),{entries:c,names:h}=this.scopedHoist(l,[]);for(let f of this.pushReactiveFrame(l,h))h.add(f);this.scopes.push(h),this.funcBlock(e,t,l,r,c),this.scopes.pop(),this.rframes.pop()})),this.b.emit(")");return}let{entries:a,names:o}=this.scopedHoist([t],[]);if(this.checkScopeRedeclarations([t],[],e),this.scopes.push(o),this.rframes.push({reactive:new Set,bound:o}),this.b.emit("{ "),a.length)this.hoistLine(a),this.b.emit(" ");this.mark(e,"value",()=>this.withExpression(()=>{let l=E.needsGrouping(t,"operand")||O1(t);if(l)this.b.emit("(");if(this.expr(t),l)this.b.emit(")")})),this.b.emit("; })"),this.scopes.pop(),this.rframes.pop()}static effectBodyYields(e){return T1(e)?E.containsYield(e[2]):E.containsYield(e)}static COMPONENT_HOOKS=v3;static BOOLEAN_ATTRS=Qs;static SVG_NS="http://www.w3.org/2000/svg";isComponentDecl(e){return E.isComponentDeclIn(this.stores,e)}static isComponentDeclIn(e,t){if(!y(t)||t[0]!=="component"||t.length!==3)return!1;let r=e.idOf(t);return(r!==null?e.node(r)?.semanticKind:null)==="component"}componentKindOf(e,t,r){if(!y(e)||e[0]!==t||e.length!==r)return!1;let s=this.stores.idOf(e);return(s!==null?this.stores.node(s)?.semanticKind:null)===t}isRenderNode(e){return this.componentKindOf(e,"render",2)}isOfferNode(e){return this.componentKindOf(e,"offer",2)}isAcceptNode(e){return this.componentKindOf(e,"accept",2)||this.componentKindOf(e,"accept",3)}static memberTarget(e){if(typeof e==="string")return{name:e,isPublic:!1};if(y(e)&&e[0]==="."&&e[1]==="this"&&e.length===3&&typeof e[2]==="string")return{name:e[2],isPublic:!0};return null}static gateChain(e){let t=[],r=e;while(y(r)&&r[0]==="."&&r.length===3&&typeof r[2]==="string")t.unshift(r[2]),r=r[1];if(typeof r!=="string")return null;return t.unshift(r),t}static gateSource(e){let t=e[2],r=e.slice(3);if(r.length>1)return{error:"arity",node:e};let s=r[0]??null,i=E.gateChain(t);if(i===null||i.length<3||i[0]!=="this"||i[1]!=="stash")return{error:"path",node:t};let n=i.slice(2).join(".");if(s===null)return{path:n,pathNode:t,key:null,keyCode:null,keyParts:null};if(typeof s==="string"&&(/^-?(?:\d+(?:\.\d+)?|\.\d+)$/.test(s.replace(/_/g,""))||/^["'][^]*["']$/.test(s)||s==="true"||s==="false"))return{path:n,pathNode:t,key:s,keyCode:s,keyParts:null};let a=E.gateChain(s);if(a===null)return{error:"key",node:s};if(a[0]==="this")a.shift();if(a[0]!=="params"&&a[0]!=="query"||a.length<2)return{error:"key",node:s};return{path:n,pathNode:t,key:s,keyCode:a.join("."),keyParts:a}}static hmrFingerprint(e){let t=JSON.stringify(e),r=2166136261;for(let s=0;s>>0).toString(16).padStart(8,"0")}emitComponentHmrMeta(e,{bindingName:t,declaredProps:r,stateVars:s,derivedVars:i,gateVars:n,extendsTag:a,methods:o,hooks:l,hasRender:c}){let h=(T)=>[...T].sort(),f=h(r),u=h(s.map((T)=>T.name)),d=h(i.map((T)=>T.name)),p=h(o.map((T)=>T.name)),m=h(l.map((T)=>T.name)),g=n.length,b=E.hmrFingerprint({props:f,state:u,computed:d,gates:g,extends:a}),S=E.hmrFingerprint({methods:p,hooks:m,render:c}),w=`${this.modulePath}#${t}`,R={shape:b,impl:S,state:u,computed:d,props:f,gates:g,extends:a};this.b.emit(`${e}static __hmrId = ${JSON.stringify(w)}; `),this.b.emit(`${e}static __hmrSig = ${JSON.stringify(R)}; -`)}componentExpr(e){let[,t,r]=e,n=null,i=null;if(t!==null){let I=typeof t==="string"?t:Vt(t),s1=I!==null?Wt(I):null;if(I!==null&&te(I)&&!I.includes("#"))n=I;else if(I!==null&&K1(I.slice(I.lastIndexOf(".")+1))&&(this.inScope(s1)||this.moduleBound.has(s1))){if(I===this._componentName)throw this.positionedError(e,`emitter: component '${I}' cannot extend itself — the render would construct it without end`);if(s1!==I&&this.importSpecOf(s1)===null)throw this.positionedError(e,`emitter: 'component extends ${I}' roots at '${s1}', a binding of this module — a host named through a `+"path must root at an import (`import * as Ns …`), since a declaration file spells the host through it");i=I}else throw this.positionedError(e,"emitter: 'component extends' takes an HTML tag or a component bound in this module — rest props forward "+`onto the first one the render creates; '${I??"…"}' is neither`)}let s=n??i,a=null,o=null;if(this.ts){let I=this.stores.idOf(e)??null,s1=I!==null?this.stores.selfSpan(I):null,e1=this.b.source;if(s1!==null&&e1!==null&&e1.startsWith("component",s1[0])){if(this.silences.push([s1[0],s1[0]+9]),s!==null){let K=/^component(\s+)extends(\s+)/.exec(e1.slice(s1[0],s1[1]));if(K!==null&&e1.startsWith(s,s1[0]+K[0].length)){let a1=s1[0]+9+K[1].length;this.silences.push([a1,a1+7]);let A=s1[0]+K[0].length;if(n!==null)this.intrinsics.push({start:A,end:A+n.length,kind:"tag",tag:n,svg:!1});else a=[A,A+i.length],o=I}}}}let l=b1(r)?r.slice(1):[],c=[],h=[],f=[],u=[],d=[],p=[],m=[],g=[],b=[],S=[],w=new Map,R=null,T=new Map,F=new Set,L=new Map,C=(I,s1,e1,K)=>{if(L.has(I))throw this.positionedError(e1,`emitter: duplicate component member '${I}' — it is already declared in this component body; `+"duplicates clobber silently across kinds",e);if(N3.has(I))throw this.positionedError(e1,`emitter: component member '${I}' collides with component runtime state — `+"the runtime owns this exact instance field; rename the member",e);if(I==="_init"||I==="_create"||I==="_setup"||/^create_block_\d+$/.test(I))throw this.positionedError(e1,`emitter: component member '${I}' collides with the generated lifecycle machinery — '_init', `+"'_create', '_setup', and 'create_block_N' are the class methods the component lowering emits (a same-named member would silently replace the generated one at runtime); rename the member",e);if(I==="mount"||I==="unmount"||I==="emit")throw this.positionedError(e1,`emitter: component member '${I}' collides with the component runtime API — 'mount', 'unmount', `+"and 'emit' are __Component's own methods, and the machinery calls them on every instance (a same-named member would silently shadow them); rename the member",e);if(L.set(I,e1),s1!=="hook"){if(T.set(I,s1),K)F.add(I)}},N=(I)=>{let s1="emitter: a component body line must be a member declaration — state (`x := v`, `@x := v`), a prop (`@x`, `@x?`), "+"computed (`x ~= e`), readonly (`x =! v`), a plain field (`x = v`), a method (`save = (e) ->`), a lifecycle hook "+"(beforeMount/mounted/beforeUnmount/unmounted/onError), an effect (`~> …`), `offer`/`accept`, or `render` — "+"this statement matches no category",e1=this.b.source;if((!y(I)||this.stores.idOf(I)===null)&&e1!==null){let K=(B)=>{let i1=y(B)?this.stores.idOf(B):null;return i1!==null?this.stores.selfSpan(i1):null},a1=l.indexOf(I),A=K(r),V=null;for(let B=a1-1;B>=0&&V===null;B--)V=K(l[B])?.[1]??null;if(V===null)V=A?.[0]??null;if(V!==null){while(VV&&/\s/.test(e1[B-1]))B--;throw this.positionedErrorAt(V,B,s1)}}throw this.positionedError(I,s1,e)},D=(I,s1,e1,K)=>{let a1=this.stores.idOf(I),A=a1!==null?this.stores.role(a1,s1):null;if(A?.sourceStart!=null)throw this.positionedErrorAt(A.sourceStart,A.sourceEnd,K);throw this.positionedError(e1,K,I,e)},O=(I,s1)=>{if(this.isRenderNode(I)){if(s1)W(I);if(R!==null)throw this.positionedError(I,"emitter: duplicate render block — a component takes exactly one",e);R=I;return}if(this.isAcceptNode(I)){if(s1)W(I);if(this.noteHeadKeyword("context-channel","accept",I),I.length===2)throw this.positionedError(I,`emitter: accept names its provider — \`accept ${I[1]} from \` reads the nearest ancestor instance of that component`,e);let e1=typeof I[2]==="string"?I[2]:Vt(I[2]),K=e1!==null?Wt(e1):null;if(!(e1!==null&&K1(e1.slice(e1.lastIndexOf(".")+1))&&(this.inScope(K)||this.moduleBound.has(K))))throw this.positionedError(I,`emitter: accept reads from a component bound in this module — '${e1??"…"}' is not one`,e);if(K!==e1&&this.importSpecOf(K)===null)throw this.positionedError(I,`emitter: accept reads from '${e1}', which roots at '${K}', a binding of this module — a provider `+"named through a path must root at an import (`import * as Ns …`), since a declaration file spells the "+"member through it",e);C(I[1],"accept",I,!0),S.push(I[1]),w.set(I[1],I[2]);return}if(this.isGateDecl(I)){if(s1)W(I);let e1=E.memberTarget(I[1]);if(e1===null)D(I,"target",I[1],"emitter: a render gate ('<~') target must be one private component name — patterns and member chains cannot name a gate");if(e1.isPublic)D(I,"target",I[1],`emitter: render gate '${e1.name}' must be private — '@${e1.name} <~ …' would expose route-prefetched state as a caller prop; remove '@' and pass an explicit prop where public input is intended`);let K=E.gateSource(I);if(K.error==="arity")D(I,"key",K.node,"emitter: a keyed render gate takes exactly one key argument — use @stash.name(params.id)");if(K.error==="path")D(I,"rhs",K.node,"emitter: '<~' requires a literal @stash. on the right-hand side, optionally called with one key");if(K.error==="key")D(I,"key",K.node,"emitter: a keyed render gate key may only be a literal or a params/query path (for example params.id or @query.tab)");C(e1.name,"gate",I,!0),d.push({name:e1.name,...K,node:I});return}if(this.isReactiveDecl(I)){let e1=E.memberTarget(I[1]);if(e1===null)throw this.positionedError(I,`emitter: a component ${I[0]==="state"?"state":"computed"} member takes a plain name or '@name' — `+"patterns and member chains have no member reading ",e);if(I[0]==="state"){if(this.firstAwaitIn(I[2])!==null)throw this.positionedError(I,"emitter: a component state initializer cannot await or yield — _init runs synchronously during construction",e);C(e1.name,"state",I,!0),f.push({name:e1.name,value:I[2],isPublic:e1.isPublic,required:!1,node:I})}else{if(this.containsAwait(I[2]))throw this.positionedError(I,"emitter: a computed ('~=') body cannot await — computeds evaluate synchronously (make it a state written by an effect)",e);if(E.containsYield(I[2]))throw this.positionedError(I,"emitter: a computed ('~=') body cannot yield — computeds evaluate synchronously",e);C(e1.name,"computed",I,!0),u.push({name:e1.name,value:I[2],node:I})}return}if(this.isReadonlyDecl(I)){let e1=E.memberTarget(I[1]);if(e1===null)throw this.positionedError(I,"emitter: a component readonly member takes a plain name or '@name' — patterns and member chains have no member reading ",e);if(this.firstAwaitIn(I[2])!==null)throw this.positionedError(I,"emitter: a component readonly initializer cannot await or yield — _init runs synchronously during construction",e);C(e1.name,"readonly",I,!1),c.push({name:e1.name,value:I[2],isPublic:e1.isPublic,node:I});return}if(this.isEffectDecl(I)){if(s1)W(I);if(I[1]!==null)throw this.positionedError(I,`emitter: a bound effect ('${typeof I[1]==="string"?I[1]:"…"} ~> …') has no component-body reading — `+"the handle would bind nothing; use a bare `~> …` effect, or bind the handle inside a method",e);if(E.effectBodyYields(I[2]))throw this.positionedError(I,"emitter: an effect ('~>') body cannot yield — the runtime calls the effect function (make the generator a named function the effect calls)",I);g.push(I);return}if(y(I)&&I[0]==="?"&&I.length===2){let e1=E.memberTarget(I[1]);if(e1!==null&&e1.isPublic){C(e1.name,"prop",I,!0),f.push({name:e1.name,value:void 0,isPublic:!0,required:!1,optional:!0,node:I});return}N(I)}if(E.isTypedWrapper(I)){let e1=E.memberTarget(I[1]);if(e1!==null&&e1.isPublic){C(e1.name,"prop",I,!0),f.push({name:e1.name,value:void 0,isPublic:!0,required:!0,node:I});return}N(I)}if(y(I)&&I[0]==="."&&I[1]==="this"&&I.length===3&&typeof I[2]==="string"){C(I[2],"prop",I,!0),f.push({name:I[2],value:void 0,isPublic:!0,required:!0,node:I});return}if(y(I)&&(I[0]==="="||I[0]==="void-assign")&&I.length===3){let e1=E.memberTarget(I[1]);if(e1===null)N(I);let K=I[0]==="void-assign";if(E.COMPONENT_HOOKS.has(e1.name)){if(s1)W(I);if(!T1(I[2]))throw this.positionedError(I,`emitter: the lifecycle hook '${e1.name}' takes a function value — \`${e1.name} = -> …\``,e);C(e1.name,"hook",I,!1),m.push({name:e1.name,func:I[2],isVoid:K,node:I});return}if(T1(I[2])){C(e1.name,"method",I,!1),p.push({name:e1.name,func:I[2],isVoid:K,node:I});return}if(K)throw this.positionedError(I,"emitter: the void marker (a trailing '!' on the defined name) requires a function value — `save! = ->`",e);if(this.firstAwaitIn(I[2])!==null)throw this.positionedError(I,"emitter: a component member initializer cannot await or yield — _init runs synchronously during construction",e);C(e1.name,"plain",I,!1),h.push({name:e1.name,value:I[2],isPublic:e1.isPublic,node:I});return}if(O1(I)){if(s1)W(I);for(let e1 of I.slice(1)){if(!y(e1)||e1[0]!==":"&&e1[0]!=="void-pair"||typeof e1[1]!=="string"||!T1(e1[2]))N(I);let K=e1[0]==="void-pair";if(E.COMPONENT_HOOKS.has(e1[1]))C(e1[1],"hook",I,!1),m.push({name:e1[1],func:e1[2],isVoid:K,node:e1});else C(e1[1],"method",I,!1),p.push({name:e1[1],func:e1[2],isVoid:K,node:e1})}return}N(I)},W=(I)=>{throw this.positionedError(I,"emitter: offer takes a state declaration — `offer theme := v` — so every offered value is a "+"container an accept reads and writes",e)};for(let I of l){if(this.isOfferNode(I)){let s1=I[1];if(!(this.isReactiveDecl(s1)&&s1[0]==="state"))W(I);this.noteHeadKeyword("context-channel","offer",I),O(s1,!0);let e1=E.memberTarget(s1[1]);b.push(e1.name);continue}O(I,!1)}let H=[];for(let{name:I,isPublic:s1}of[...f,...c,...h])if(s1)H.push(I);if(s!==null){if(L.has("rest"))throw this.positionedError(L.get("rest"),"emitter: a component that extends a host cannot declare a member named 'rest' — `@rest` is the reactive "+"view of the undeclared caller props (the rest-forwarding seam)",e);if(T.set("rest","rest"),F.add("rest"),H.includes("asChild"))throw this.positionedError(L.get("asChild"),"emitter: a component that extends a host cannot declare a prop named 'asChild' — `asChild: true` at a "+"call site renders the projected element as the host, and the key is reserved beside key, ref, and children",e)}if(this.scopes.length===1&&typeof this._componentName==="string"){let I=this.moduleComponentNames.get(this._componentName);if(I!==void 0&&I!==e)throw this.positionedError(e,`emitter: component '${this._componentName}' is bound more than once at module scope — rebinding `+"clobbers the first class silently (existing instances keep the old identity) and the typed artifacts would merge two same-named companion interfaces; give each component its own name");this.moduleComponentNames.set(this._componentName,e)}let G=this.ts&&this.scopes.length===1&&typeof this._componentName==="string"?`__${this._componentName}__computed`:null,k=this.ts?Oi(this.stores,this.b.source,e,G):null;if(k)k.hostSpan=a,k.hostNodeId=o,k.appStashSpec=this.appStashSpec,k.routesUnion=this.routesUnion,k.routeParams=this.routeParams;if(k!==null)this.componentInfo.set(e,k);let v=new Map;for(let I of k?.members??[]){let s1=E.memberLabel(I);if(s1!==null)v.set(I.name,{label:s1,optional:I.optional===!0})}if(s!==null)v.set("rest",{label:"rest",optional:!1});let j={members:T,memberReactive:F,memberKinds:v,name:this._componentName,extendsTag:n,extendsComponent:i,plainWrites:new Map,renderPlainReads:new Set},X=this.ind,x=" ".repeat(X+1),Z=x+" ";this.cframes.push(j),this.rframes.push({reactive:new Set,bound:new Set,members:T,memberReactive:F,memberKinds:v});let U=this.methodName;this.methodName=null;let r1=[...[...c,...h,...f].map((I)=>I.value),...u.map((I)=>I.value).filter((I)=>!(b1(I)&&I.length>2))].filter((I)=>I!==void 0),{entries:Q,names:l1}=this.scopedHoist(r1,[],{declareInPlace:!1});this.mark(e,"$self",()=>{if(this.b.emit("class"),this.ts&&this._componentTypeParams){let{text:M,owner:n1}=this._componentTypeParams;this.b.tsOnly(()=>this.mark(n1,"typeParams",()=>this.emitTypeText(n1,"typeParams",M)))}if(this.b.emit(` extends ${this.runtimeName("__Component")} { -`),k!==null)this.tsComponentMemberDeclares(k,x);if(d.length>0)this.b.emit(`${x}static __gates = [`),d.forEach((M,n1)=>{if(n1>0)this.b.emit(", ");if(!(this.ts&&k!==null&&k.members.some((z)=>z.node===M.node&&this.gateTwinSource(z,k)!==null))){this.noteVocabulary("gate-prefix","stash",M.pathNode);for(let z of M.keyParts??[])this.noteSilence(z,M.key)}this.mark(M.node,"$self",()=>{this.mark(M.node,"operator",()=>{}),this.mark(M.node,"rhs",()=>{if(M.key===null)this.emitQuotedPrimitive(M.path);else{if(this.b.emit("{ path: "),this.emitQuotedPrimitive(M.path),this.b.emit(", key: (params"),this.ts)this.b.tsOnly(()=>this.b.emit(": Record"));if(this.b.emit(", query"),this.ts)this.b.tsOnly(()=>this.b.emit(": Record"));this.b.emit(") => "),this.mark(M.node,"key",()=>{this.mark(M.key,"$self",()=>{if(M.keyParts===null){this.b.emit(M.keyCode);return}M.keyParts.forEach((z,q)=>{if(q>0)this.b.emit(".");this.emitPrimitive(z)})})}),this.b.emit(" }")}})})}),this.b.emit(`]; -`);if(H.length>0)this.b.emit(`${x}static __props = [${H.map((M)=>`'${M}'`).join(", ")}]; -`);if(s!==null){if(this.b.emit(`${x}static __extends = `),n!==null)this.emitQuotedPrimitive(n);else this.b.emit(`'${i}'`);this.b.emit(`; -`)}if(this.scopes.length===1&&typeof this._componentName==="string")this.componentNames.push(this._componentName);if(this.hmr&&this.modulePath&&this.scopes.length===1&&typeof this._componentName==="string")this.emitComponentHmrMeta(x,{bindingName:this._componentName,declaredProps:H,stateVars:f,derivedVars:u,gateVars:d,extendsTag:s,methods:p,hooks:m,hasRender:R!==null});if(k!==null)this.tsComponentCtor(k,x);if(this.b.emit(x),k!==null)this.b.tsOnly(()=>this.b.emit("private "));if(this.b.emit("_init(__given"),k!==null)this.b.tsOnly(()=>{this.b.emit(": "),this.emitDeclaredTypeCopies(Hs(k,{road:"face"}))});if(this.b.emit(`) { -`),this.scopes.push(l1),this.rframes.push({reactive:new Set,bound:l1}),Q.length)this.b.emit(Z),this.hoistLine(Q,Z),this.b.emit(` -`);let I=(M,n1)=>{this.renderDirectives(M,Z),this.b.emit(Z),this.mark(M,"$self",n1),this.b.emit(`; -`)},s1=(M,n1)=>{this.mark(M,"value",()=>this.withExpression(()=>{let _=E.needsGrouping(n1,"operand");if(_)this.b.emit("(");if(this.expr(n1),_)this.b.emit(")")}))},e1=(M,n1,_="target")=>{let z=this.b.offset;if(this.b.emit("this."),this.mark(M,_,()=>this.b.emit(n1)),this.ts){let q=this.stores.idOf(M),t1=q!==null?this.stores.role(q,_):null;if(t1&&typeof t1.sourceStart==="number")this.memberInitSites.push({key:[t1.sourceStart,t1.sourceEnd],site:[z,this.b.offset]})}},K=new Set(c),a1=[];if(k!==null)k.computedBodies=a1;let A=(M)=>{if(I(M.node,()=>{if(K.has(M)&&this.ts){let _=k?.members.find((z)=>z.node===M.node&&z.kind==="readonly");this.b.tsOnly(()=>this.b.emit("(")),this.b.emit("this"),this.b.tsOnly(()=>{this.b.emit(" as "),this.emitDeclaredTypeCopies(_?qs(_):"any"),this.b.emit(")")}),this.b.emit("."),this.mark(M.node,"target",()=>this.b.emit(M.name))}else e1(M.node,M.name);if(this.b.emit(" = "),M.isPublic)this.b.emit(`__given.${M.name} ?? `);let n1=this._componentName;if(this.isComponentDecl(M.value))this._componentName=M.name;s1(M.node,M.value),this._componentName=n1}),G!==null&&k!==null){let n1=k.members.find((_)=>_.node===M.node);if(n1!==void 0&&Qs(n1)){let _=this.capturedExprText(()=>s1(M.node,M.value));a1.push({name:M.name,code:_,block:!1})}}},V=(M)=>{let n1=L.get(M);I(n1,()=>{e1(n1,M,"name"),this.b.emit(` = ${this.runtimeName("getContext")}(`),this.mark(n1,"provider",()=>{let _=w.get(M);if(typeof _==="string")this.noteNameSpan(_);else this.expr(_)}),this.b.emit(`, '${M}')`)})},B=(M)=>{if(I(M.node,()=>{if(e1(M.node,M.name,M.value===void 0?"property":"target"),this.b.emit(` = ${this.runtimeName("__state")}(`),M.isPublic&&(M.required||M.value===void 0)){if(this.b.emit(`__given.__bind_${M.name}__ ?? __given.${M.name}`),M.required&&this.ts)this.b.tsOnly(()=>this.b.emit("!"))}else if(M.isPublic)this.b.emit(`__given.__bind_${M.name}__ ?? __given.${M.name} ?? `),s1(M.node,M.value);else s1(M.node,M.value);this.b.emit(")")}),G!==null&&k!==null){let n1=k.members.find((_)=>_.node===M.node);if(n1!==void 0&&ea(n1)){let _=this.capturedExprText(()=>s1(M.node,M.value));a1.push({name:M.name,code:_,block:!1})}}},i1=(M)=>{if(I(M.node,()=>{e1(M.node,M.name),this.b.emit(` = ${this.runtimeName("__computed")}(() => `),this.mark(M.node,"value",()=>this.withExpression(()=>this.computedBody(M.node,M.value,X+2))),this.b.emit(")")}),G===null||k===null)return;let n1=k.members.find((z)=>z.node===M.node&&z.kind==="computed");if(n1===void 0||n1.annotation!=null)return;let _=this.capturedExprText(()=>this.computedBody(M.node,M.value,0));a1.push({name:M.name,code:_,block:b1(M.value)&&M.value.length>2})},h1=(M,n1)=>{I(M.node,()=>{e1(M.node,M.name),this.b.emit(` = ${this.runtimeName("__gateBind")}(`),this.mark(M.node,"operator",()=>{}),this.mark(M.node,"rhs",()=>{this.b.emit(`this, ${n1}`)}),this.b.emit(")")})},f1=new Map;l.forEach((M,n1)=>{if(f1.set(M,n1),this.isOfferNode(M))f1.set(M[1],n1)});let u1=[...[...c,...h].map((M)=>({at:f1.get(M.node)??0,run:()=>A(M)})),...S.map((M)=>({at:f1.get(L.get(M))??0,run:()=>V(M)})),...f.map((M)=>({at:f1.get(M.node)??0,run:()=>B(M)})),...u.map((M)=>({at:f1.get(M.node)??0,run:()=>i1(M)}))].sort((M,n1)=>M.at-n1.at);for(let[M,n1]of d.entries())h1(n1,M);for(let M of u1)M.run();for(let M of b)I(L.get(M),()=>this.b.emit(`${this.runtimeName("setContext")}('${M}', this.${M})`));let p1=(M)=>{for(let n1 of g){let _=n1[2],z=this.containsAwait(_);this.b.emit(M),this.mark(n1,"$self",()=>{if(this.mark(n1,"operator",()=>this.b.emit(this.runtimeName("__effect"))),this.b.emit(z?"(async () => ":"(() => "),b1(_)&&_.length>2)this.mark(n1,"value",()=>this.withExpression(()=>{let q=this.liveStmts(_.slice(1),{forwards:!0}),{entries:t1,names:P}=this.scopedHoist(q,[]);for(let Y of this.pushReactiveFrame(q,P))P.add(Y);this.scopes.push(P),this.funcBlock(n1,_,q,X+2,t1),this.scopes.pop(),this.rframes.pop()}));else{let q=b1(_)?_[1]:_,{entries:t1,names:P}=this.scopedHoist([q],[]);if(this.scopes.push(P),this.rframes.push({reactive:new Set,bound:P}),this.b.emit("{ "),t1.length)this.hoistLine(t1),this.b.emit(" ");this.b.emit("return "),this.mark(n1,"value",()=>this.withExpression(()=>{let Y=E.needsGrouping(q,"operand")||O1(q);if(Y)this.b.emit("(");if(this.expr(q),Y)this.b.emit(")")})),this.b.emit("; }"),this.scopes.pop(),this.rframes.pop()}this.b.emit(")")}),this.b.emit(`; -`)}};if(this.hmr&&g.length>0)this.b.emit(`${Z}this._hmrBindEffects(); -`);else p1(Z);if(this.rframes.pop(),this.scopes.pop(),this.b.emit(`${x}} -`),this.hmr&&g.length>0)this.b.emit(`${x}_hmrBindEffects() { -`),this.scopes.push(l1),this.rframes.push({reactive:new Set,bound:l1}),p1(Z),this.rframes.pop(),this.scopes.pop(),this.b.emit(`${x}} -`);if(this.hmr&&u.length>0){this.b.emit(`${x}_hmrRefreshComputeds() { -`),this.scopes.push(l1),this.rframes.push({reactive:new Set,bound:l1});for(let M of u)this.b.emit(`${Z}this.${M.name}?.kill?.(); -`),this.b.emit(Z),e1(M.node,M.name),this.b.emit(` = ${this.runtimeName("__computed")}(() => `),this.mark(M.node,"value",()=>this.withExpression(()=>this.computedBody(M.node,M.value,X+2))),this.b.emit(`); -`);this.rframes.pop(),this.scopes.pop(),this.b.emit(`${x}} -`)}let c1=new Map;if(this.ts&&R!==null){let M=(n1,_)=>{if(!y(n1))return;let z=_,q=n1[0]==="switch"&&n1.length===4?null:E.templateHeadTag(n1);if(q==="object")z=O1(n1)&&n1.slice(1).some((t1)=>y(t1)&&t1[0]===":")?_:null;else if(q!==null&&$e.has(q))z={tag:q,svg:_?.svg===!0||fi.has(q)};else if(typeof n1[0]==="string"&&/^[A-Z]/.test(n1[0]))z=null;if(n1[0]===":"&&n1.length===3&&y(n1[1])&&n1[1][0]==="."&&n1[1][1]==="this"&&typeof n1[1][2]==="string"&&Ut.has(n1[1][2])){let t1=n1[2],P=typeof t1==="string"&&T.has(t1)?t1:y(t1)&&t1[0]==="."&&t1[1]==="this"&&t1.length===3&&typeof t1[2]==="string"&&T.has(t1[2])?t1[2]:null;if(P!==null){if(!c1.has(P))c1.set(P,{events:new Set,hosts:new Set,unknownHost:!1});let Y=c1.get(P);if(Y.events.add(n1[1][2]),_!==null&&ot(_.tag,_.svg))Y.hosts.add(xe(_.tag,_.svg));else Y.unknownHost=!0}}for(let t1 of n1)M(t1,z)};M(R,null)}let d1=({name:M,func:n1,isVoid:_,node:z})=>{let[,q,t1]=n1,P=c1.get(M),Y=P!==void 0&&!P.unknownHost&&P.hosts.size>0?[...P.hosts].join(" | "):null,o1=P!==void 0?this.tsEventTypeText([...P.events],Y):M==="onError"?Js:null;this.b.emit(x),this.mark(z,"$self",()=>{if(this.containsAwait(t1))this.b.emit("async ");if(E.containsYield(t1))this.b.emit("*");this.mark(z,"target",()=>this.mark(z,"key",()=>this.b.emit(M))),this.b.emit("("),this.emitParams(q,o1),this.b.emit(")"),this.tsReturnAnnotation(n1,this.containsAwait(t1),_,E.containsYield(t1),z),this.b.emit(" "),this.mark(z,"value",()=>{this.methodBlock(n1,t1,X+1,{isConstructor:!1,binds:[],methodName:M,voidBody:_})})}),this.b.emit(` -`)};for(let M of p)d1(M);for(let M of m)d1(M);if(R!==null)this.renderBody(R,X,j);if(n!==null&&j.inheritedBound!==!0)throw this.positionedError(e,`emitter: this component extends '${n}' but its render never creates a '<${n}>' element `+"at class scope — rest props forward onto the FIRST class-scope element of the extended tag (at any "+"nesting depth; conditional branches and loop rows never bind it), and without one every caller prop lands nowhere");if(i!==null&&j.inheritedBound!==!0)throw this.positionedError(e,`emitter: this component extends '${i}' but its render never constructs a '${i}' `+"at class scope — rest props forward onto the FIRST class-scope construction of the extended component (at "+"any nesting depth; conditional branches and loop rows never bind it), and without one every caller prop lands nowhere");this.b.emit(" ".repeat(X)+"}")}),this.methodName=U;for(let[I,s1]of j.plainWrites)if(j.renderPlainReads.has(I))throw this.positionedError(s1,`emitter: writing to '${I}' silently freezes the render — it is a plain ('=') member and render `+"reads it, but render never re-runs for a non-reactive field; declare it with ':=' (state) if it changes");this.rframes.pop(),this.cframes.pop(),this.ind=X}renderBody(e,t,r){let n=" ".repeat(t+1),i=n+" ",s=this.rstate,a={kind:"class",name:null,parent:null,self:null,creates:[],setups:[],vars:null,locals:new Set,localDecls:new Map,bindings:new Set,refs:[],loopStack:[],stmts:[],forceNonStatic:!1,root:null,originNode:e,renameHazardNames:new Set};this.rstate={elCount:0,textCount:0,blockCount:0,svgDepth:0,fragChildren:new Map,tags:new Map,svgEls:new Set,pendingClassArgs:null,pendingClassEl:null,pad:i,frame:r,node:e,records:[],sink:a,classRecord:a,transitionSlot:null,suppressedPairs:new Set,slotSeen:!1,scopeDepth:this.scopes.length};let o=e[1],l=b1(o)?o.slice(1):[o];a.stmts=l,this.rframes.push({reactive:new Set,bound:a.bindings});let c;try{c=this.walkRenderRoot(l,a)}finally{this.rframes.pop()}if(this.closeRenderScope(a),this.b.emit(n),this.ts)this.b.tsOnly(()=>this.b.emit("private "));if(this.b.emit(`_create() { +`)}componentExpr(e){let[,t,r]=e,s=null,i=null;if(t!==null){let I=typeof t==="string"?t:Vt(t),l1=I!==null?Wt(I):null;if(I!==null&&te(I)&&!I.includes("#"))s=I;else if(I!==null&&G1(I.slice(I.lastIndexOf(".")+1))&&(this.inScope(l1)||this.moduleBound.has(l1))){if(I===this._componentName)throw this.positionedError(e,`emitter: component '${I}' cannot extend itself — the render would construct it without end`);if(l1!==I&&this.importSpecOf(l1)===null)throw this.positionedError(e,`emitter: 'component extends ${I}' roots at '${l1}', a binding of this module — a host named through a `+"path must root at an import (`import * as Ns …`), since a declaration file spells the host through it");i=I}else throw this.positionedError(e,"emitter: 'component extends' takes an HTML tag or a component bound in this module — rest props forward "+`onto the first one the render creates; '${I??"…"}' is neither`)}let n=s??i,a=null,o=null;if(this.ts){let I=this.stores.idOf(e)??null,l1=I!==null?this.stores.selfSpan(I):null,L=this.b.source;if(l1!==null&&L!==null&&L.startsWith("component",l1[0])){if(this.silences.push([l1[0],l1[0]+9]),n!==null){let t1=/^component(\s+)extends(\s+)/.exec(L.slice(l1[0],l1[1]));if(t1!==null&&L.startsWith(n,l1[0]+t1[0].length)){let N=l1[0]+9+t1[1].length;this.silences.push([N,N+7]);let V=l1[0]+t1[0].length;if(s!==null)this.intrinsics.push({start:V,end:V+s.length,kind:"tag",tag:s,svg:!1});else a=[V,V+i.length],o=I}}}}let l=b1(r)?r.slice(1):[],c=[],h=[],f=[],u=[],d=[],p=[],m=[],g=[],b=[],S=[],w=new Map,R=null,T=new Map,j=new Set,M=new Map,x=(I,l1,L,t1)=>{if(M.has(I))throw this.positionedError(L,`emitter: duplicate component member '${I}' — it is already declared in this component body; `+"duplicates clobber silently across kinds",e);if(O3.has(I))throw this.positionedError(L,`emitter: component member '${I}' collides with component runtime state — `+"the runtime owns this exact instance field; rename the member",e);if(I==="_init"||I==="_create"||I==="_setup"||/^create_block_\d+$/.test(I))throw this.positionedError(L,`emitter: component member '${I}' collides with the generated lifecycle machinery — '_init', `+"'_create', '_setup', and 'create_block_N' are the class methods the component lowering emits (a same-named member would silently replace the generated one at runtime); rename the member",e);if(I==="mount"||I==="unmount"||I==="emit")throw this.positionedError(L,`emitter: component member '${I}' collides with the component runtime API — 'mount', 'unmount', `+"and 'emit' are __Component's own methods, and the machinery calls them on every instance (a same-named member would silently shadow them); rename the member",e);if(M.set(I,L),l1!=="hook"){if(T.set(I,l1),t1)j.add(I)}},A=(I)=>{let l1="emitter: a component body line must be a member declaration — state (`x := v`, `@x := v`), a prop (`@x`, `@x?`), "+"computed (`x ~= e`), readonly (`x =! v`), a plain field (`x = v`), a method (`save = (e) ->`), a lifecycle hook "+"(beforeMount/mounted/beforeUnmount/unmounted/onError), an effect (`~> …`), `offer`/`accept`, or `render` — "+"this statement matches no category",L=this.b.source;if((!y(I)||this.stores.idOf(I)===null)&&L!==null){let t1=(r1)=>{let o1=y(r1)?this.stores.idOf(r1):null;return o1!==null?this.stores.selfSpan(o1):null},N=l.indexOf(I),V=t1(r),B=null;for(let r1=N-1;r1>=0&&B===null;r1--)B=t1(l[r1])?.[1]??null;if(B===null)B=V?.[0]??null;if(B!==null){while(BB&&/\s/.test(L[r1-1]))r1--;throw this.positionedErrorAt(B,r1,l1)}}throw this.positionedError(I,l1,e)},C=(I,l1,L,t1)=>{let N=this.stores.idOf(I),V=N!==null?this.stores.role(N,l1):null;if(V?.sourceStart!=null)throw this.positionedErrorAt(V.sourceStart,V.sourceEnd,t1);throw this.positionedError(L,t1,I,e)},O=(I,l1)=>{if(this.isRenderNode(I)){if(l1)W(I);if(R!==null)throw this.positionedError(I,"emitter: duplicate render block — a component takes exactly one",e);R=I;return}if(this.isAcceptNode(I)){if(l1)W(I);if(this.noteHeadKeyword("context-channel","accept",I),I.length===2)throw this.positionedError(I,`emitter: accept names its provider — \`accept ${I[1]} from \` reads the nearest ancestor instance of that component`,e);let L=typeof I[2]==="string"?I[2]:Vt(I[2]),t1=L!==null?Wt(L):null;if(!(L!==null&&G1(L.slice(L.lastIndexOf(".")+1))&&(this.inScope(t1)||this.moduleBound.has(t1))))throw this.positionedError(I,`emitter: accept reads from a component bound in this module — '${L??"…"}' is not one`,e);if(t1!==L&&this.importSpecOf(t1)===null)throw this.positionedError(I,`emitter: accept reads from '${L}', which roots at '${t1}', a binding of this module — a provider `+"named through a path must root at an import (`import * as Ns …`), since a declaration file spells the "+"member through it",e);x(I[1],"accept",I,!0),S.push(I[1]),w.set(I[1],I[2]);return}if(this.isGateDecl(I)){if(l1)W(I);let L=E.memberTarget(I[1]);if(L===null)C(I,"target",I[1],"emitter: a render gate ('<~') target must be one private component name — patterns and member chains cannot name a gate");if(L.isPublic)C(I,"target",I[1],`emitter: render gate '${L.name}' must be private — '@${L.name} <~ …' would expose route-prefetched state as a caller prop; remove '@' and pass an explicit prop where public input is intended`);let t1=E.gateSource(I);if(t1.error==="arity")C(I,"key",t1.node,"emitter: a keyed render gate takes exactly one key argument — use @stash.name(params.id)");if(t1.error==="path")C(I,"rhs",t1.node,"emitter: '<~' requires a literal @stash. on the right-hand side, optionally called with one key");if(t1.error==="key")C(I,"key",t1.node,"emitter: a keyed render gate key may only be a literal or a params/query path (for example params.id or @query.tab)");x(L.name,"gate",I,!0),d.push({name:L.name,...t1,node:I});return}if(this.isReactiveDecl(I)){let L=E.memberTarget(I[1]);if(L===null)throw this.positionedError(I,`emitter: a component ${I[0]==="state"?"state":"computed"} member takes a plain name or '@name' — `+"patterns and member chains have no member reading ",e);if(I[0]==="state"){if(this.firstAwaitIn(I[2])!==null)throw this.positionedError(I,"emitter: a component state initializer cannot await or yield — _init runs synchronously during construction",e);x(L.name,"state",I,!0),f.push({name:L.name,value:I[2],isPublic:L.isPublic,required:!1,node:I})}else{if(this.containsAwait(I[2]))throw this.positionedError(I,"emitter: a computed ('~=') body cannot await — computeds evaluate synchronously (make it a state written by an effect)",e);if(E.containsYield(I[2]))throw this.positionedError(I,"emitter: a computed ('~=') body cannot yield — computeds evaluate synchronously",e);x(L.name,"computed",I,!0),u.push({name:L.name,value:I[2],node:I})}return}if(this.isReadonlyDecl(I)){let L=E.memberTarget(I[1]);if(L===null)throw this.positionedError(I,"emitter: a component readonly member takes a plain name or '@name' — patterns and member chains have no member reading ",e);if(this.firstAwaitIn(I[2])!==null)throw this.positionedError(I,"emitter: a component readonly initializer cannot await or yield — _init runs synchronously during construction",e);x(L.name,"readonly",I,!1),c.push({name:L.name,value:I[2],isPublic:L.isPublic,node:I});return}if(this.isEffectDecl(I)){if(l1)W(I);if(I[1]!==null)throw this.positionedError(I,`emitter: a bound effect ('${typeof I[1]==="string"?I[1]:"…"} ~> …') has no component-body reading — `+"the handle would bind nothing; use a bare `~> …` effect, or bind the handle inside a method",e);if(E.effectBodyYields(I[2]))throw this.positionedError(I,"emitter: an effect ('~>') body cannot yield — the runtime calls the effect function (make the generator a named function the effect calls)",I);g.push(I);return}if(y(I)&&I[0]==="?"&&I.length===2){let L=E.memberTarget(I[1]);if(L!==null&&L.isPublic){x(L.name,"prop",I,!0),f.push({name:L.name,value:void 0,isPublic:!0,required:!1,optional:!0,node:I});return}A(I)}if(E.isTypedWrapper(I)){let L=E.memberTarget(I[1]);if(L!==null&&L.isPublic){x(L.name,"prop",I,!0),f.push({name:L.name,value:void 0,isPublic:!0,required:!0,node:I});return}A(I)}if(y(I)&&I[0]==="."&&I[1]==="this"&&I.length===3&&typeof I[2]==="string"){x(I[2],"prop",I,!0),f.push({name:I[2],value:void 0,isPublic:!0,required:!0,node:I});return}if(y(I)&&(I[0]==="="||I[0]==="void-assign")&&I.length===3){let L=E.memberTarget(I[1]);if(L===null)A(I);let t1=I[0]==="void-assign";if(E.COMPONENT_HOOKS.has(L.name)){if(l1)W(I);if(!T1(I[2]))throw this.positionedError(I,`emitter: the lifecycle hook '${L.name}' takes a function value — \`${L.name} = -> …\``,e);x(L.name,"hook",I,!1),m.push({name:L.name,func:I[2],isVoid:t1,node:I});return}if(T1(I[2])){x(L.name,"method",I,!1),p.push({name:L.name,func:I[2],isVoid:t1,node:I});return}if(t1)throw this.positionedError(I,"emitter: the void marker (a trailing '!' on the defined name) requires a function value — `save! = ->`",e);if(this.firstAwaitIn(I[2])!==null)throw this.positionedError(I,"emitter: a component member initializer cannot await or yield — _init runs synchronously during construction",e);x(L.name,"plain",I,!1),h.push({name:L.name,value:I[2],isPublic:L.isPublic,node:I});return}if(O1(I)){if(l1)W(I);for(let L of I.slice(1)){if(!y(L)||L[0]!==":"&&L[0]!=="void-pair"||typeof L[1]!=="string"||!T1(L[2]))A(I);let t1=L[0]==="void-pair";if(E.COMPONENT_HOOKS.has(L[1]))x(L[1],"hook",I,!1),m.push({name:L[1],func:L[2],isVoid:t1,node:L});else x(L[1],"method",I,!1),p.push({name:L[1],func:L[2],isVoid:t1,node:L})}return}A(I)},W=(I)=>{throw this.positionedError(I,"emitter: offer takes a state declaration — `offer theme := v` — so every offered value is a "+"container an accept reads and writes",e)};for(let I of l){if(this.isOfferNode(I)){let l1=I[1];if(!(this.isReactiveDecl(l1)&&l1[0]==="state"))W(I);this.noteHeadKeyword("context-channel","offer",I),O(l1,!0);let L=E.memberTarget(l1[1]);b.push(L.name);continue}O(I,!1)}let G=[];for(let{name:I,isPublic:l1}of[...f,...c,...h])if(l1)G.push(I);if(n!==null){if(M.has("rest"))throw this.positionedError(M.get("rest"),"emitter: a component that extends a host cannot declare a member named 'rest' — `@rest` is the reactive "+"view of the undeclared caller props (the rest-forwarding seam)",e);if(T.set("rest","rest"),j.add("rest"),G.includes("asChild"))throw this.positionedError(M.get("asChild"),"emitter: a component that extends a host cannot declare a prop named 'asChild' — `asChild` at a "+"call site renders the projected element as the host, and the key is reserved beside key, ref, and children",e)}if(this.scopes.length===1&&typeof this._componentName==="string"){let I=this.moduleComponentNames.get(this._componentName);if(I!==void 0&&I!==e)throw this.positionedError(e,`emitter: component '${this._componentName}' is bound more than once at module scope — rebinding `+"clobbers the first class silently (existing instances keep the old identity) and the typed artifacts would merge two same-named companion interfaces; give each component its own name");this.moduleComponentNames.set(this._componentName,e)}let Y=this.ts&&this.scopes.length===1&&typeof this._componentName==="string"?`__${this._componentName}__computed`:null,k=this.ts?Oi(this.stores,this.b.source,e,Y):null;if(k)k.hostSpan=a,k.hostNodeId=o,k.appStashSpec=this.appStashSpec,k.routesUnion=this.routesUnion,k.routeParams=this.routeParams;if(k!==null)this.componentInfo.set(e,k);let v=new Map;for(let I of k?.members??[]){let l1=E.memberLabel(I);if(l1!==null)v.set(I.name,{label:l1,optional:I.optional===!0})}if(n!==null)v.set("rest",{label:"rest",optional:!1});let U=n!==null?on(l):new Set,Z={members:T,memberReactive:j,memberKinds:v,name:this._componentName,extendsTag:s,extendsComponent:i,restReads:U,plainWrites:new Map,renderPlainReads:new Set},P=this.ind,X=" ".repeat(P+1),F=X+" ";this.cframes.push(Z),this.rframes.push({reactive:new Set,bound:new Set,members:T,memberReactive:j,memberKinds:v});let e1=this.methodName;this.methodName=null;let Q=[...[...c,...h,...f].map((I)=>I.value),...u.map((I)=>I.value).filter((I)=>!(b1(I)&&I.length>2))].filter((I)=>I!==void 0),{entries:a1,names:d1}=this.scopedHoist(Q,[],{declareInPlace:!1});this.mark(e,"$self",()=>{if(this.b.emit("class"),this.ts&&this._componentTypeParams){let{text:K,owner:_}=this._componentTypeParams;this.b.tsOnly(()=>this.mark(_,"typeParams",()=>this.emitTypeText(_,"typeParams",K)))}if(this.b.emit(` extends ${this.runtimeName("__Component")} { +`),k!==null)this.tsComponentMemberDeclares(k,X);if(d.length>0)this.b.emit(`${X}static __gates = [`),d.forEach((K,_)=>{if(_>0)this.b.emit(", ");if(!(this.ts&&k!==null&&k.members.some((q)=>q.node===K.node&&this.gateTwinSource(q,k)!==null))){this.noteVocabulary("gate-prefix","stash",K.pathNode);for(let q of K.keyParts??[])this.noteSilence(q,K.key)}this.mark(K.node,"$self",()=>{this.mark(K.node,"operator",()=>{}),this.mark(K.node,"rhs",()=>{if(K.key===null)this.emitQuotedPrimitive(K.path);else{if(this.b.emit("{ path: "),this.emitQuotedPrimitive(K.path),this.b.emit(", key: (params"),this.ts)this.b.tsOnly(()=>this.b.emit(": Record"));if(this.b.emit(", query"),this.ts)this.b.tsOnly(()=>this.b.emit(": Record"));this.b.emit(") => "),this.mark(K.node,"key",()=>{this.mark(K.key,"$self",()=>{if(K.keyParts===null){this.b.emit(K.keyCode);return}K.keyParts.forEach((q,i1)=>{if(i1>0)this.b.emit(".");this.emitPrimitive(q)})})}),this.b.emit(" }")}})})}),this.b.emit(`]; +`);if(G.length>0)this.b.emit(`${X}static __props = [${G.map((K)=>`'${K}'`).join(", ")}]; +`);if(n!==null){if(this.b.emit(`${X}static __extends = `),s!==null)this.emitQuotedPrimitive(s);else this.b.emit(`'${i}'`);this.b.emit(`; +`)}if(this.scopes.length===1&&typeof this._componentName==="string")this.componentNames.push(this._componentName);if(this.hmr&&this.modulePath&&this.scopes.length===1&&typeof this._componentName==="string")this.emitComponentHmrMeta(X,{bindingName:this._componentName,declaredProps:G,stateVars:f,derivedVars:u,gateVars:d,extendsTag:n,methods:p,hooks:m,hasRender:R!==null});if(k!==null)this.tsComponentCtor(k,X);if(this.b.emit(X),k!==null)this.b.tsOnly(()=>this.b.emit("private "));if(this.b.emit("_init(__given"),k!==null)this.b.tsOnly(()=>{this.b.emit(": "),this.emitDeclaredTypeCopies(Gn(k,{road:"face"}))});if(this.b.emit(`) { +`),this.scopes.push(d1),this.rframes.push({reactive:new Set,bound:d1}),a1.length)this.b.emit(F),this.hoistLine(a1,F),this.b.emit(` +`);let I=(K,_)=>{this.renderDirectives(K,F),this.b.emit(F),this.mark(K,"$self",_),this.b.emit(`; +`)},l1=(K,_)=>{this.mark(K,"value",()=>this.withExpression(()=>{let H=E.needsGrouping(_,"operand");if(H)this.b.emit("(");if(this.expr(_),H)this.b.emit(")")}))},L=(K,_,H="target")=>{let q=this.b.offset;if(this.b.emit("this."),this.mark(K,H,()=>this.b.emit(_)),this.ts){let i1=this.stores.idOf(K),D=i1!==null?this.stores.role(i1,H):null;if(D&&typeof D.sourceStart==="number")this.memberInitSites.push({key:[D.sourceStart,D.sourceEnd],site:[q,this.b.offset]})}},t1=new Set(c),N=[];if(k!==null)k.computedBodies=N;let V=(K)=>{if(I(K.node,()=>{if(t1.has(K)&&this.ts){let H=k?.members.find((q)=>q.node===K.node&&q.kind==="readonly");this.b.tsOnly(()=>this.b.emit("(")),this.b.emit("this"),this.b.tsOnly(()=>{this.b.emit(" as "),this.emitDeclaredTypeCopies(H?Jn(H):"any"),this.b.emit(")")}),this.b.emit("."),this.mark(K.node,"target",()=>this.b.emit(K.name))}else L(K.node,K.name);if(this.b.emit(" = "),K.isPublic)this.b.emit(`__given.${K.name} ?? `);let _=this._componentName;if(this.isComponentDecl(K.value))this._componentName=K.name;l1(K.node,K.value),this._componentName=_}),Y!==null&&k!==null){let _=k.members.find((H)=>H.node===K.node);if(_!==void 0&&ta(_)){let H=this.capturedExprText(()=>l1(K.node,K.value));N.push({name:K.name,code:H,block:!1})}}},B=(K)=>{let _=M.get(K);I(_,()=>{L(_,K,"name"),this.b.emit(` = ${this.runtimeName("getContext")}(`),this.mark(_,"provider",()=>{let H=w.get(K);if(typeof H==="string")this.noteNameSpan(H);else this.expr(H)}),this.b.emit(`, '${K}')`)})},r1=(K)=>{if(I(K.node,()=>{if(L(K.node,K.name,K.value===void 0?"property":"target"),this.b.emit(` = ${this.runtimeName("__state")}(`),K.isPublic&&(K.required||K.value===void 0)){if(this.b.emit(`__given.__bind_${K.name}__ ?? __given.${K.name}`),K.required&&this.ts)this.b.tsOnly(()=>this.b.emit("!"))}else if(K.isPublic)this.b.emit(`__given.__bind_${K.name}__ ?? __given.${K.name} ?? `),l1(K.node,K.value);else l1(K.node,K.value);this.b.emit(")")}),Y!==null&&k!==null){let _=k.members.find((H)=>H.node===K.node);if(_!==void 0&&ra(_)){let H=this.capturedExprText(()=>l1(K.node,K.value));N.push({name:K.name,code:H,block:!1})}}},o1=(K)=>{if(I(K.node,()=>{L(K.node,K.name),this.b.emit(` = ${this.runtimeName("__computed")}(() => `),this.mark(K.node,"value",()=>this.withExpression(()=>this.computedBody(K.node,K.value,P+2))),this.b.emit(")")}),Y===null||k===null)return;let _=k.members.find((q)=>q.node===K.node&&q.kind==="computed");if(_===void 0||_.annotation!=null)return;let H=this.capturedExprText(()=>this.computedBody(K.node,K.value,0));N.push({name:K.name,code:H,block:b1(K.value)&&K.value.length>2})},f1=(K,_)=>{I(K.node,()=>{L(K.node,K.name),this.b.emit(` = ${this.runtimeName("__gateBind")}(`),this.mark(K.node,"operator",()=>{}),this.mark(K.node,"rhs",()=>{this.b.emit(`this, ${_}`)}),this.b.emit(")")})},h1=new Map;l.forEach((K,_)=>{if(h1.set(K,_),this.isOfferNode(K))h1.set(K[1],_)});let p1=[...[...c,...h].map((K)=>({at:h1.get(K.node)??0,run:()=>V(K)})),...S.map((K)=>({at:h1.get(M.get(K))??0,run:()=>B(K)})),...f.map((K)=>({at:h1.get(K.node)??0,run:()=>r1(K)})),...u.map((K)=>({at:h1.get(K.node)??0,run:()=>o1(K)}))].sort((K,_)=>K.at-_.at);for(let[K,_]of d.entries())f1(_,K);for(let K of p1)K.run();for(let K of b)I(M.get(K),()=>this.b.emit(`${this.runtimeName("setContext")}('${K}', this.${K})`));let n1=(K)=>{for(let _ of g){let H=_[2],q=this.containsAwait(H);this.b.emit(K),this.mark(_,"$self",()=>{if(this.mark(_,"operator",()=>this.b.emit(this.runtimeName("__effect"))),this.b.emit(q?"(async () => ":"(() => "),b1(H)&&H.length>2)this.mark(_,"value",()=>this.withExpression(()=>{let i1=this.liveStmts(H.slice(1),{forwards:!0}),{entries:D,names:z}=this.scopedHoist(i1,[]);for(let s1 of this.pushReactiveFrame(i1,z))z.add(s1);this.scopes.push(z),this.funcBlock(_,H,i1,P+2,D),this.scopes.pop(),this.rframes.pop()}));else{let i1=b1(H)?H[1]:H,{entries:D,names:z}=this.scopedHoist([i1],[]);if(this.scopes.push(z),this.rframes.push({reactive:new Set,bound:z}),this.b.emit("{ "),D.length)this.hoistLine(D),this.b.emit(" ");this.b.emit("return "),this.mark(_,"value",()=>this.withExpression(()=>{let s1=E.needsGrouping(i1,"operand")||O1(i1);if(s1)this.b.emit("(");if(this.expr(i1),s1)this.b.emit(")")})),this.b.emit("; }"),this.scopes.pop(),this.rframes.pop()}this.b.emit(")")}),this.b.emit(`; +`)}};if(this.hmr&&g.length>0)this.b.emit(`${F}this._hmrBindEffects(); +`);else n1(F);if(this.rframes.pop(),this.scopes.pop(),this.b.emit(`${X}} +`),this.hmr&&g.length>0)this.b.emit(`${X}_hmrBindEffects() { +`),this.scopes.push(d1),this.rframes.push({reactive:new Set,bound:d1}),n1(F),this.rframes.pop(),this.scopes.pop(),this.b.emit(`${X}} +`);if(this.hmr&&u.length>0){this.b.emit(`${X}_hmrRefreshComputeds() { +`),this.scopes.push(d1),this.rframes.push({reactive:new Set,bound:d1});for(let K of u)this.b.emit(`${F}this.${K.name}?.kill?.(); +`),this.b.emit(F),L(K.node,K.name),this.b.emit(` = ${this.runtimeName("__computed")}(() => `),this.mark(K.node,"value",()=>this.withExpression(()=>this.computedBody(K.node,K.value,P+2))),this.b.emit(`); +`);this.rframes.pop(),this.scopes.pop(),this.b.emit(`${X}} +`)}let u1=new Map;if(this.ts&&R!==null){let K=(_,H)=>{if(!y(_))return;let q=H,i1=_[0]==="switch"&&_.length===4?null:E.templateHeadTag(_);if(i1==="object")q=O1(_)&&_.slice(1).some((D)=>y(D)&&D[0]===":")?H:null;else if(i1!==null&&$e.has(i1))q={tag:i1,svg:H?.svg===!0||fi.has(i1)};else if(typeof _[0]==="string"&&/^[A-Z]/.test(_[0]))q=null;if(_[0]===":"&&_.length===3&&y(_[1])&&_[1][0]==="."&&_[1][1]==="this"&&typeof _[1][2]==="string"&&Ut.has(_[1][2])){let D=_[2],z=typeof D==="string"&&T.has(D)?D:y(D)&&D[0]==="."&&D[1]==="this"&&D.length===3&&typeof D[2]==="string"&&T.has(D[2])?D[2]:null;if(z!==null){if(!u1.has(z))u1.set(z,{events:new Set,hosts:new Set,unknownHost:!1});let s1=u1.get(z);if(s1.events.add(_[1][2]),H!==null&&ot(H.tag,H.svg))s1.hosts.add(xe(H.tag,H.svg));else s1.unknownHost=!0}}for(let D of _)K(D,q)};K(R,null)}let c1=({name:K,func:_,isVoid:H,node:q})=>{let[,i1,D]=_,z=u1.get(K),s1=z!==void 0&&!z.unknownHost&&z.hosts.size>0?[...z.hosts].join(" | "):null,R1=z!==void 0?this.tsEventTypeText([...z.events],s1):K==="onError"?Qn:null;this.b.emit(X),this.mark(q,"$self",()=>{if(this.containsAwait(D))this.b.emit("async ");if(E.containsYield(D))this.b.emit("*");this.mark(q,"target",()=>this.mark(q,"key",()=>this.b.emit(K))),this.b.emit("("),this.emitParams(i1,R1),this.b.emit(")"),this.tsReturnAnnotation(_,this.containsAwait(D),H,E.containsYield(D),q),this.b.emit(" "),this.mark(q,"value",()=>{this.methodBlock(_,D,P+1,{isConstructor:!1,binds:[],methodName:K,voidBody:H})})}),this.b.emit(` +`)};for(let K of p)c1(K);for(let K of m)c1(K);if(R!==null)this.renderBody(R,P,Z);if(s!==null&&Z.inheritedBound!==!0)throw this.positionedError(e,`emitter: this component extends '${s}' but its render never creates a '<${s}>' element `+"at class scope — rest props forward onto the FIRST class-scope element of the extended tag (at any "+"nesting depth; conditional branches and loop rows never bind it), and without one every caller prop lands nowhere");if(i!==null&&Z.inheritedBound!==!0)throw this.positionedError(e,`emitter: this component extends '${i}' but its render never constructs a '${i}' `+"at class scope — rest props forward onto the FIRST class-scope construction of the extended component (at "+"any nesting depth; conditional branches and loop rows never bind it), and without one every caller prop lands nowhere");this.b.emit(" ".repeat(P)+"}")}),this.methodName=e1;for(let[I,l1]of Z.plainWrites)if(Z.renderPlainReads.has(I))throw this.positionedError(l1,`emitter: writing to '${I}' silently freezes the render — it is a plain ('=') member and render `+"reads it, but render never re-runs for a non-reactive field; declare it with ':=' (state) if it changes");this.rframes.pop(),this.cframes.pop(),this.ind=P}renderBody(e,t,r){let s=" ".repeat(t+1),i=s+" ",n=this.rstate,a={kind:"class",name:null,parent:null,self:null,creates:[],setups:[],vars:null,locals:new Set,localDecls:new Map,bindings:new Set,refs:[],loopStack:[],stmts:[],forceNonStatic:!1,root:null,originNode:e,renameHazardNames:new Set};this.rstate={elCount:0,textCount:0,blockCount:0,svgDepth:0,fragChildren:new Map,tags:new Map,svgEls:new Set,pendingClassArgs:null,pendingClassEl:null,pad:i,frame:r,node:e,records:[],sink:a,classRecord:a,transitionSlot:null,suppressedPairs:new Set,slotSeen:!1,scopeDepth:this.scopes.length};let o=e[1],l=b1(o)?o.slice(1):[o];a.stmts=l,this.rframes.push({reactive:new Set,bound:a.bindings});let c;try{c=this.walkRenderRoot(l,a)}finally{this.rframes.pop()}if(this.closeRenderScope(a),this.b.emit(s),this.ts)this.b.tsOnly(()=>this.b.emit("private "));if(this.b.emit(`_create() { `),this.mark(e,"$self",()=>this.mark(e,"body",()=>{this.withRecordContext(a,()=>{if(a.locals.size>0)this.b.emit(`${i}let ${[...a.locals].join(", ")}; `);this.replayCreates(a,i)}),this.b.emit(`${i}return ${c}; -`)})),this.b.emit(`${n}} -`),a.setups.length>0){if(this.b.emit(n),this.ts)this.b.tsOnly(()=>this.b.emit("private "));this.b.emit(`_setup() { -`),this.withRecordContext(a,()=>this.replaySetups(a,i)),this.b.emit(`${n}} -`)}for(let h of this.rstate.records)this.emitFactory(h,t,e);this.rstate=s}walkRenderRoot(e,t){if(e.length===0||e.length===1&&e[0]==="null")return"null";let r=this.walkChildStmts(e);if(t.kind==="class"&&this.rstate.fragChildren.has(r))this.renderLine(null,()=>this.b.emit(`this._nodes = [...${r}.childNodes]`));return r}walkChildStmts(e){let t=this.rstate,r=()=>{if(t.transitionSlot!==null&&t.transitionSlot.record===t.sink)t.transitionSlot=null},n=e.reduce((a,o)=>a+(this.isRenderBinding(o)?0:1),0);if(n===0){for(let o of e)this.renderNode(o);let a=this.newRenderVar("empty");return this.renderLine(null,()=>this.b.emit(`${a} = document.createComment('')`)),a}if(n===1){let a=null;for(let o of e){let l=this.renderNode(o);if(l!=null)a=l,r()}return a}let i=this.newRenderVar("frag");this.renderLine(null,()=>this.b.emit(`${i} = document.createDocumentFragment()`));let s=[];for(let a of e){let o=this.renderNode(a);if(o==null)continue;r(),this.renderLine(null,()=>this.b.emit(`${i}.appendChild(${o})`)),s.push(o)}return this.rstate.fragChildren.set(i,s),i}withRecordContext(e,t){let r=this.renderSelf,n=this.renderRecord;this.renderSelf=e.self,this.renderRecord=e,this.rframes.push({reactive:new Set,bound:e.bindings,block:!0,loopVars:e.bindings,loopBindings:E.loopBindingsOf(e)});try{t()}finally{this.rframes.pop(),this.renderSelf=r,this.renderRecord=n}}renderDirectives(e,t){if(!this.ts||!this.tsDirectivesArmed||e==null||!y(e))return;let r=this.tsDirectiveMap.get(e);if(r===void 0)return;this.tsDirectiveMap.delete(e);for(let n of r)this.tsDirectiveLine(n,t,!0)}replayCreates(e,t){let r=this.replayPad;this.replayPad=t;try{for(let{node:n,fn:i,semi:s}of e.creates){if(this.renderDirectives(n,t),this.b.emit(t),n!=null)this.mark(n,"$self",i);else i();this.b.emit(s?`; +`)})),this.b.emit(`${s}} +`),a.setups.length>0){if(this.b.emit(s),this.ts)this.b.tsOnly(()=>this.b.emit("private "));this.b.emit(`_setup() { +`),this.withRecordContext(a,()=>this.replaySetups(a,i)),this.b.emit(`${s}} +`)}for(let h of this.rstate.records)this.emitFactory(h,t,e);this.rstate=n}walkRenderRoot(e,t){if(e.length===0||e.length===1&&e[0]==="null")return"null";let r=this.walkChildStmts(e);if(t.kind==="class"&&this.rstate.fragChildren.has(r))this.renderLine(null,()=>this.b.emit(`this._nodes = [...${r}.childNodes]`));return r}walkChildStmts(e){let t=this.rstate,r=()=>{if(t.transitionSlot!==null&&t.transitionSlot.record===t.sink)t.transitionSlot=null},s=e.reduce((a,o)=>a+(this.isRenderBinding(o)?0:1),0);if(s===0){for(let o of e)this.renderNode(o);let a=this.newRenderVar("empty");return this.renderLine(null,()=>this.b.emit(`${a} = document.createComment('')`)),a}if(s===1){let a=null;for(let o of e){let l=this.renderNode(o);if(l!=null)a=l,r()}return a}let i=this.newRenderVar("frag");this.renderLine(null,()=>this.b.emit(`${i} = document.createDocumentFragment()`));let n=[];for(let a of e){let o=this.renderNode(a);if(o==null)continue;r(),this.renderLine(null,()=>this.b.emit(`${i}.appendChild(${o})`)),n.push(o)}return this.rstate.fragChildren.set(i,n),i}withRecordContext(e,t){let r=this.renderSelf,s=this.renderRecord;this.renderSelf=e.self,this.renderRecord=e,this.rframes.push({reactive:new Set,bound:e.bindings,block:!0,loopVars:e.bindings,loopBindings:E.loopBindingsOf(e)});try{t()}finally{this.rframes.pop(),this.renderSelf=r,this.renderRecord=s}}renderDirectives(e,t){if(!this.ts||!this.tsDirectivesArmed||e==null||!y(e))return;let r=this.tsDirectiveMap.get(e);if(r===void 0)return;this.tsDirectiveMap.delete(e);for(let s of r)this.tsDirectiveLine(s,t,!0)}replayCreates(e,t){let r=this.replayPad;this.replayPad=t;try{for(let{node:s,fn:i,semi:n}of e.creates){if(this.renderDirectives(s,t),this.b.emit(t),s!=null)this.mark(s,"$self",i);else i();this.b.emit(n?`; `:` -`)}}finally{this.replayPad=r}}replaySetups(e,t){for(let r of e.setups)if(r.kind==="effect"){this.renderDirectives(r.node,t),this.b.emit(t);let n=()=>{this.b.emit(`${this.runtimeName("__effect")}(() => { `);let i=this._narrowedReads;this._narrowedReads=this.narrowedReadNames();try{this.narrowGuard(),r.fn()}finally{this._narrowedReads=i}this.b.emit(" })")};if(r.node!=null)this.mark(r.node,"$self",n);else if(r.within!=null){let i=this.b.claimWithin;this.b.claimWithin=r.within;try{n()}finally{this.b.claimWithin=i}}else n();this.b.emit(`; -`)}else{if(r.node!=null)this.renderDirectives(r.node,t);r.fn(t)}}renderLine(e,t,r=!0){this.rstate.sink.creates.push({node:e,fn:t,semi:r})}newRenderVar(e="el"){let t=this.rstate.elCount++,r=this.rstate.sink;if(r.kind==="class")return`this._${e}${t}`;let n=`_${e}${t}`;return r.vars.add(n),n}newRenderText(){let e=this.rstate.textCount++,t=this.rstate.sink;if(t.kind==="class")return`this._t${e}`;let r=`_t${e}`;return t.vars.add(r),r}newBlockName(){let e;do e=`create_block_${this.rstate.blockCount++}`;while(this.rstate.frame.members.has(e)||this.rstate.frame.members.has(`${e}_iter`));return e}renderEffect(e,t,r){if(r!==void 0)this.checkSetupLocalRefs(r,e);let n=e==null?this._textOwner:null,i=n!=null?this.stores.idOf(n):null,s=i!=null?[this.stores.node(i).sourceStart,this.stores.node(i).sourceEnd]:null;this.rstate.sink.setups.push({kind:"effect",node:e,fn:t,within:s})}checkSetupLocalRefs(e,t){let r=this.rstate.sink;if(r.kind!=="class"||r.locals.size===0)return;if(Ee(e,r.locals))throw this.positionedError(t??e,"emitter: a render local cannot appear in a LIVE binding or a dynamic block head at the render top level — "+"locals live in _create() and reactive machinery lives in _setup() (a compiled read here would be a mount-time ReferenceError); bind the value to a member instead",y(e)?e:this.rstate.node)}renderExpr(e){let t=null;return this.withExpression(()=>{let r=E.needsGrouping(e,"operand");if(r)this.b.emit("(");let n=this.b.offset;if(this.expr(e),t=[n,this.b.offset],r)this.b.emit(")")}),t}renderVarKind(e,t){let r=this.rstate;if(!r)return null;if(r.sink.locals.has(e))return"local";for(let n=r.sink.loopStack.length-1;n>=0;n--){let i=r.sink.loopStack[n];if(i.itemVar===e||i.indexVar===e)return i.reactiveSource?"loop-reactive":"loop"}if(t!==void 0){for(let n=r.sink.parent;n;n=n.parent)if(n.locals.has(e))throw this.positionedError(t,`emitter: render local '${e}' is not visible here — each dynamic block (a conditional branch, a loop body) `+"is its own factory function, and render locals never cross that boundary; declare the local inside this block, or use a member",this.rstate.node)}return null}renderReactive(e){if(typeof e==="string"){let i=this.renderVarKind(e);if(i!==null)return i==="loop-reactive";let s=this.resolveBareRead(e);return s==="reactive"||s==="member-reactive"}if(!y(e))return!1;if(e[0]==="."&&e[1]==="this"&&e.length===3&&typeof e[2]==="string")return this.memberIsReactive(e[2]);let t=(i)=>{if(typeof i!=="string"||i==="this"||this.renderVarKind(i)!==null)return!1;let s=this.resolveBareRead(i);return s==="member"||s===null&&(this.inScope(i)||this.moduleBound!==void 0&&this.moduleBound.has(i))},r=(i)=>{while(y(i)&&(i[0]==="."||i[0]==="[]")&&i.length===3)i=i[1];return i==="this"||t(i)},n=(i)=>{while(y(i)&&(i[0]==="."||i[0]==="[]"||i[0]==="?."||i[0]==="optindex")&&i.length===3)i=i[1];return typeof i==="string"&&this.renderVarKind(i)==="loop-reactive"};if(e[0]==="."&&e.length===3&&r(e[1]))return!0;if((e[0]==="."||e[0]==="[]")&&e.length===3&&n(e))return!0;if(y(e[0])&&e[0][0]==="."&&e[0][1]==="this"&&typeof e[0][2]==="string"&&this.cframes.length>0&&this.cframes[this.cframes.length-1].members.has(e[0][2]))return!0;return e.some((i)=>this.renderReactive(i))}isRenderBinding(e){return y(e)&&la.has(e[0])&&e.length===3&&typeof e[1]==="string"&&ht.test(e[1])}renderSpreadError(e,t=null){return this.positionedError(e,t!==null?"emitter: a spread has no reading on a child component — pass each prop as a named pair; to forward the "+`caller's undeclared props onto '${t}', declare the wrapper \`component extends ${t}\` and construct it in the render`:"emitter: a spread has no render reading — an element takes named attribute pairs, and `= expr` renders ONE value",this.rstate.node)}renderNode(e){if(this.isRenderBinding(e))return this.renderBinding(e);if(dt(e))throw this.renderSpreadError(e);if(y(e)&<(e[0])&&e.length===3)throw this.positionedError(e,"emitter: an assignment at a render child position must declare a render local (`name = expr` / compound forms "+"on a plain name) — member and chain writes have no render reading here; put the write in a handler or method");if(typeof e==="string"){if(e.startsWith('"')||e.startsWith("'")||e.startsWith("`")){let c=this.newRenderText();return this.renderLine(null,()=>this.b.emit(`${c} = document.createTextNode(${e})`)),c}let s=this.renderVarKind(e,e);if(s!==null){let c=this.newRenderText();if(s==="loop-reactive")this.renderLine(null,()=>this.b.emit(`${c} = document.createTextNode('')`)),this.renderEffect(null,()=>this.b.emit(`${c}.data = ${e};`));else this.renderLine(null,()=>this.b.emit(`${c} = document.createTextNode(String(${e}))`));return c}let a=this.resolveBareRead(e);if(a==="reactive"||a==="member-reactive"){let c=this.newRenderText();return this.renderLine(null,()=>this.b.emit(`${c} = document.createTextNode('')`)),this.renderEffect(null,()=>{this.b.emit(`${c}.data = `),this.expr(e),this.b.emit(";")}),c}if(e==="slot")return this.renderSlot(e,[]);if(K1(e))return this.renderChildComponent(e,e,[]);if(a==="member"){let c=this.newRenderText();return this.renderLine(null,()=>{this.b.emit(`${c} = document.createTextNode(String(`),this.expr(e),this.b.emit("))")}),c}let[o,l]=e.split("#");return this.renderTag(e,o||"div",[],[],l)}if(!y(e))throw this.positionedError(e,"emitter: unsupported render child");let t=e[0],r=typeof t==="string"?t:null;if(r==="if"&&e.length>=3)return this.renderCond(e);if(r==="switch"&&e.length===4)return this.renderSwitch(e);if(r==="for-in"&&e.length===6)return this.renderLoop(e);if(r==="for-of"&&e.length===6)throw this.positionedError(e,"emitter: `for … of` (object iteration) has no reconcile reading inside render — "+"__reconcile expects an array and crashes at mount; iterate entries instead: `for pair in Object.entries(obj)`");if(r==="for-as"&&e.length===6)throw this.positionedError(e,"emitter: an async loop has no render reading — reconciliation is synchronous; collect the items into a state "+"member and loop over it");if(r==="comprehension"||r==="while"||r==="loop")throw this.positionedError(e,"emitter: only `for … in` drives list rendering — while/loop/comprehensions have no reconcile reading inside "+"render");if(this.isEffectDecl(e)||this.isReactiveDecl(e)||this.isReadonlyDecl(e))throw this.positionedError(e,"emitter: declarations and effects have no render-body reading — declare members in the component body, above render");if(r==="slot")return this.renderSlot(e,e.slice(1));if(r!==null&&K1(r))return this.renderChildComponent(e,r,e.slice(1));if(r==="."&&e[1]==="this"&&typeof e[2]==="string")throw this.positionedError(e,`emitter: bare \`@${e[2]}\` is not rendered as text — use \`= @${e[2]}\` to render it`);let n=pi(e);if(n!==null)return this.renderChildComponent(e,{text:n,node:e},[]);let i=y(t)?pi(t):null;if(i!==null)return this.renderChildComponent(e,{text:i,node:t},e.slice(1));if(r==="."){let{tag:s,classes:a,id:o}=E.collectTemplateClasses(e);if(s!==null&&te(s)&&this.renderVarKind(s)===null)return this.renderTag(e,s,a,[],o);return this.renderTextExpr(e)}if(r==="__text__"){if(e.length>2)throw this.positionedError(e,"emitter: the `= expr` text form takes ONE expression — an indented continuation under the `=` line has no "+"render reading (inside render a leading `.` starts a NEW element, so the continuation cannot be a method chain; put the whole expression on the `=` line, or bind it in a method)",this.rstate.node);if(dt(e[1]))throw this.renderSpreadError(e[1]);return this.renderTextExpr(e[1]??"undefined",e,!0)}if(r!==null&&te(r.split("#")[0])&&e.length>=1&&this.renderVarKind(r)===null){let[s,a]=r.split("#");return this.renderTag(e,s||"div",[],e.slice(1),a)}if(y(t)){if(y(t[0])&&t[0][0]==="."&&t[0][2]==="__clsx"){let l=t[0][1],c=t.slice(1);if(y(l)){let{tag:h,classes:f,id:u}=E.collectTemplateClasses(l);if(h!==null&&te(h))return this.renderDynamicTag(e,h,c,e.slice(1),f,u)}else if(typeof l==="string"&&te(l.split("#")[0])){let[h,f]=l.split("#");return this.renderDynamicTag(e,h||"div",c,e.slice(1),[],f)}}let{tag:s,classes:a,id:o}=E.collectTemplateClasses(t);if(s!==null&&te(s)&&this.renderVarKind(s)===null){if(a.length>0&&a[a.length-1]==="__clsx")return this.renderDynamicTag(e,s,e.slice(1),[],a.slice(0,-1),o);return this.renderTag(e,s,a,e.slice(1),o)}}if(r==="->"||r==="=>")return this.renderChildBlock(e[2]);return this.renderTextExpr(e)}renderTextExpr(e,t=null,r=!1){let n=this.newRenderText(),i=t??(y(e)?e:null);this.checkCrossScopeLocals(e,i??this.rstate.node);let s=(a)=>{if(r&&t!==null)this.mark(t,"args",a);else a()};if(this.renderReactive(e))this.renderLine(i,()=>this.b.emit(`${n} = document.createTextNode('')`)),this.renderEffect(i,()=>{if(this.b.emit(`${n}.data = `),r)this.b.emit("String("),s(()=>this.renderExpr(e)),this.b.emit(")");else this.renderExpr(e);this.b.emit(";")},e);else this.renderLine(i,()=>{this.b.emit(`${n} = document.createTextNode(String(`),s(()=>this.withExpression(()=>this.expr(e))),this.b.emit("))")});return n}isInheritedTarget(e){let t=this.rstate;return t.frame.extendsTag===e&&t.sink.kind==="class"&&t.frame.inheritedBound!==!0}bindInheritedTarget(e,t,r,n){let i=this.rstate;if(!this.isInheritedTarget(t))return;if(i.frame.inheritedBound=!0,this.renderLine(e,()=>this.b.emit(`this._inheritedEl = ${r}`)),n.length>0)this.renderLine(e,()=>this.b.emit(`this._inheritedOwn = new Set([${n.map((s)=>JSON.stringify(s)).join(", ")}])`));this.renderLine(e,()=>this.b.emit("this._applyRestToInheritedEl()"))}elementOwnKeys(e,t,r){let n=new Set;if(r)n.add("id");if(e)n.add("class");let i=(s)=>{for(let a of s.slice(1)){if(!y(a)||a.length!==3||typeof a[1]!=="string")continue;let o=a[1];n.add(o.startsWith('"')&&o.endsWith('"')?o.slice(1,-1):o)}};for(let s of t)if(O1(s))i(s);else if(T1(s)&&b1(s[2])){for(let a of s[2].slice(1))if(O1(a))i(a)}for(let s of["ref","key"])n.delete(s);for(let s of[...n])if(s.startsWith("__"))n.delete(s);if(n.has("class")||n.has("className"))n.add("class"),n.add("className");return[...n]}renderElementPrologue(e,t){let r=this.rstate,n=this.newRenderVar();if(r.tags.set(n,t),r.transitionSlot!==null&&r.transitionSlot.record===r.sink&&r.transitionSlot.el===null)r.transitionSlot.el=n;let i=r.svgDepth>0||fi.has(t);if(i)r.svgEls.add(n);let s=this.isInheritedTarget(t);return this.renderLine(e,()=>{let a=this.renderSelf??"this";if(this.b.emit(`${n} = `),s)this.b.emit(`${a}._asChild ? ${a}._adoptChild() : `);if(i)this.b.emit(`document.createElementNS('${E.SVG_NS}', `);else this.b.emit("document.createElement(");let o=this.emitQuotedPrimitive(t);if(o!==null&&ot(t,i))this.intrinsics.push({start:o[0],end:o[1],kind:"tag",tag:t,svg:i});this.b.emit(")")}),{el:n,isSvg:i}}renderElementBasics(e,t,r,n,i){let s=this.rstate;if(n)this.renderLine(e,()=>this.b.emit(`${r}.id = '${n}'`));if(this.bindInheritedTarget(e,t,r,i),s.frame.name!==null&&s.elCount===1&&s.sink.kind==="class")this.renderLine(e,()=>this.b.emit(`${r}.setAttribute('data-part', '${s.frame.name}')`))}renderTag(e,t,r,n,i){this.noteShorthandClasses(r,e);let s=this.rstate,{el:a,isSvg:o}=this.renderElementPrologue(e,t);this.renderElementBasics(e,t,a,i,this.elementOwnKeys(r.length>0,n,i));let{pendingClassArgs:l,pendingClassEl:c,pendingClassKeys:h}=s;if(r.length>0)s.pendingClassArgs=[`'${r.join(" ")}'`],s.pendingClassEl=a,s.pendingClassKeys=null;if(o)s.svgDepth++;if(this.renderChildren(a,n,e),o)s.svgDepth--;if(r.length>0){if(s.pendingClassArgs.length===1)this.renderLine(e,()=>this.b.emit(o?`${a}.setAttribute('class', '${r.join(" ")}')`:`${a}.className = '${r.join(" ")}'`));else{let f=s.pendingClassArgs.slice(1),u=s.pendingClassKeys??[],d=this.tsElReceiver(a);this.renderEffect(e,()=>{let p=this.runtimeName("__clsx");if(o){d.emit();let m=this.b.offset+1;this.b.emit(`.setAttribute('class', ${p}('${r.join(" ")}', `);for(let g of u)this.intrinsics.push({start:g[0],end:g[1],kind:"attr",name:"class",gen:m})}else{d.emit(),this.b.emit(".");let m=this.b.offset;this.b.emit(`className = ${p}('${r.join(" ")}', `);for(let g of u)this.intrinsics.push({start:g[0],end:g[1],kind:"classkey",gen:m})}f.forEach((m,g)=>{if(g>0)this.b.emit(", ");m()}),this.b.emit(o?"));":");")})}s.pendingClassKeys=h,s.pendingClassArgs=l,s.pendingClassEl=c}return a}renderDynamicTag(e,t,r,n,i,s){this.noteShorthandClasses(i,e);let a=this.rstate,{el:o,isSvg:l}=this.renderElementPrologue(e,t);this.renderElementBasics(e,t,o,s,this.elementOwnKeys(!0,n,s));for(let p of r)this.checkCrossScopeLocals(p,e);let{pendingClassArgs:c,pendingClassEl:h,pendingClassKeys:f}=a;if(a.pendingClassArgs=[...i.map((p)=>`'${p}'`),...r.map((p)=>()=>this.renderExpr(p))],a.pendingClassEl=o,a.pendingClassKeys=null,l)a.svgDepth++;if(this.renderChildren(o,n,e),l)a.svgDepth--;let u=a.pendingClassArgs,d=a.pendingClassKeys??[];if(u.length>0)this.renderEffect(e,()=>{let p=this.runtimeName("__clsx");this.b.emit(`${o}`);let m=this.b.offset+1;this.b.emit(l?`.setAttribute('class', ${p}(`:`.className = ${p}(`);for(let g of d)this.intrinsics.push(l?{start:g[0],end:g[1],kind:"attr",name:"class",gen:m}:{start:g[0],end:g[1],kind:"classkey",gen:m});u.forEach((g,b)=>{if(b>0)this.b.emit(", ");if(typeof g==="string")this.b.emit(g);else g()}),this.b.emit(l?"));":");")});return a.pendingClassKeys=f,a.pendingClassArgs=c,a.pendingClassEl=h,o}renderChildBlock(e){if(!b1(e)){let r=this.renderNode(e);if(r!=null)return r;let n=this.newRenderVar("empty");return this.renderLine(null,()=>this.b.emit(`${n} = document.createComment('')`)),n}let t=e.slice(1);if(t.length===0){let r=this.newRenderVar("empty");return this.renderLine(null,()=>this.b.emit(`${r} = document.createComment('')`)),r}return this.walkChildStmts(t)}renderChildren(e,t,r=null){let n=this._textOwner;this._textOwner=r;try{this.renderChildrenOf(e,t,r)}finally{this._textOwner=n}}renderAppend(e,t){this.renderLine(null,()=>{let r=t===this.rstate.frame?.asChildSlot?`if (!${this.renderSelf??"this"}._asChild) `:"";this.b.emit(`${r}${e}.appendChild(${t})`)})}renderChildrenOf(e,t,r){for(let n=0;n0)throw this.positionedError(i,"emitter: a parameterized function is not a render child — element children arrows carry no parameters "+"(an indented `.method (v) -> …` continuation re-reads as a NEW element inside render; put the chain on one "+"line or bind it in a method)",this.rstate.node);let s=i[2];if(b1(s))for(let a=1;athis.b.emit(`${l} = document.createTextNode('')`)),this.renderEffect(null,()=>{this.b.emit(`${l}.data = `),this.emitPrimitive(i),this.b.emit(";")});else this.renderLine(null,()=>{this.b.emit(`${l} = document.createTextNode(`),this.emitPrimitive(i),this.b.emit(")")});this.renderLine(null,()=>this.b.emit(`${e}.appendChild(${l})`));continue}if(te(s||"div")){let l=this.renderNode(i);this.renderAppend(e,l);continue}if(K1(s)&&s===i){let l=this.renderChildComponent(i,i,[]);this.renderAppend(e,l);continue}if(/^[A-Za-z_$][\w$]*$/.test(i)&&this.resolveBareRead(i)===null&&!this.inScope(i)){this.renderBareAttribute(e,i,t,n,r);continue}let o=this.newRenderText();if(i.startsWith('"')||i.startsWith("'")||i.startsWith("`"))this.renderLine(null,()=>this.b.emit(`${o} = document.createTextNode(${i})`));else{let l=this.resolveBareRead(i);if(l==="reactive"||l==="member-reactive")this.renderLine(null,()=>this.b.emit(`${o} = document.createTextNode('')`)),this.renderEffect(null,()=>{this.b.emit(`${o}.data = `),this.expr(i),this.b.emit(";")});else if(l==="member")this.renderLine(null,()=>{this.b.emit(`${o} = document.createTextNode(String(`),this.expr(i),this.b.emit("))")});else this.renderLine(null,()=>{this.b.emit(`${o} = document.createTextNode(`),this.expr(i),this.b.emit(")")})}this.renderLine(null,()=>this.b.emit(`${e}.appendChild(${o})`));continue}if(i!=null){let s=this.renderNode(i);this.renderAppend(e,s)}}}renderTagOf(e){return this.rstate.tags?.get(e)??"div"}renderBareAttribute(e,t,r,n,i){let s=this.renderTagOf(e),a=null;if(this.ts&&!di(s,t)){let c=this.bareChildSpan(r,n,i);if(c!==null)a=c,this.intrinsics.push({start:c[0],end:c[1],kind:"unknown-attr",tag:s,name:t,message:this.unknownAttrMessage(s,t,{bare:!0,svg:this.rstate?.svgEls?.has(e)===!0})})}let o=this.tsElReceiver(e),l=a===null?null:this.stores.idOf(i);this.renderLine(null,()=>{if(o.emit(),this.b.emit(".setAttribute("),l!==null)this.b.markSpan(l,"identifier",a[0],a[1],()=>this.emitQuotedPrimitive(t));else this.emitQuotedPrimitive(t);this.b.emit(", '')")})}renderOwnLineWord(e,t,r,n,i){if(typeof t!=="string"||!/^[A-Za-z_$][\w$]*$/.test(t))return!1;if(te(t)||K1(t))return!1;if(this.renderVarKind(t,t)!==null)return!1;if(this.resolveBareRead(t)!==null||this.inScope(t))return!1;return this.renderBareAttribute(e,t,r,n,i),!0}claimSlot(e){let t=this.rstate,r=e??this.rstate.node;if(t.sink.loopStack.length>0)throw this.positionedError(r,"emitter: `slot` inside a loop row has no working reading — `children` is ONE node, and every row would fight "+"over it; project it once, outside the loop",this.rstate.node);if(t.slotSeen)throw this.positionedError(r,"emitter: a second `slot` in one render — `children` is ONE node, and a second projection point MOVES it "+"",this.rstate.node);t.slotSeen=!0,this.noteVocabulary("render-channel","slot",r)}childrenReadText(){return`${this.renderSelf??"this"}.children${this.memberIsReactive("children")?".value":""}`}emitChildrenRead(e){if(this.b.emit(`${this.renderSelf??"this"}.`),e!==null)this.intrinsics.push({start:e[0],end:e[1],kind:"slot",gen:this.b.offset});if(this.b.emit("children"),this.memberIsReactive("children"))this.b.emit(".value")}renderSlot(e,t){let r=y(e)?e:null;if(t.length>0)throw this.positionedError(r??e,"emitter: `slot` takes no arguments — fallback content has no "+"reading here (render it through a conditional around the slot)",this.rstate.node);this.claimSlot(r);let n=this.newRenderVar("slot");if(this.rstate.frame.extendsTag!==null&&this.rstate.sink.kind==="class")this.rstate.frame.asChildSlot=n;let i=this.ts?this.wordSpanIn("slot",r??this.rstate.node):null;return this.renderLine(r,()=>{let s=this.childrenReadText();this.b.emit(`${n} = `),this.emitChildrenRead(i),this.b.emit(` instanceof Node ? ${s} : (${s} != null ? document.createTextNode(String(${s})) : document.createComment(''))`)}),n}renderChildComponent(e,t,r){let n=this.rstate,i=n.sink,s=y(e)?e:null,a=typeof t==="string"?null:t;if(a!==null)t=a.text;let o=a!==null?Wt(a.text):t,l=(A)=>{if(this.ts&&A!==null)this.componentUses.push({start:A[0],end:A[1],name:t})},c;if(a!==null){if(this.renderVarKind(o)===null&&this.resolveBareRead(o)===null&&!this.inScope(o)&&!(this.moduleBound!==void 0&&this.moduleBound.has(o)))throw this.positionedError(s??e,`emitter: component '${t}' is not defined in this module — a child component's path starts at a module `+`binding, an import, or a component member, and '${o}' is none of these`,this.rstate.node);let A=this.stores.idOf(a.node)??null;c=()=>{l(A!==null?this.stores.selfSpan(A):null),this.renderExpr(a.node)}}else if(this.renderVarKind(t)!==null)c=()=>l(this.emitPrimitive(t));else{let A=this.resolveBareRead(t);if(A==="member"||A==="member-reactive")c=()=>{if(this.b.emit(`${this.renderSelf??"this"}.`),l(this.emitPrimitive(t)),A==="member-reactive")this.b.emit(".value")};else if(A==="reactive")c=()=>{l(this.emitPrimitive(t)),this.b.emit(".value")};else if(this.inScope(t)||this.moduleBound!==void 0&&this.moduleBound.has(t))c=()=>l(this.emitPrimitive(t));else throw this.positionedError(s??e,`emitter: component '${t}' is not defined in this module — a child component must be a module binding, `+"an import, or a component member (an undefined name would degrade to a comment placeholder at mount)",this.rstate.node)}let h=this.newRenderVar("inst"),f=this.newRenderVar("el"),u=n.frame.extendsComponent===t&&i.kind==="class"&&n.frame.inheritedBound!==!0&&this.renderVarKind(o)===null&&this.resolveBareRead(o)===null;if(u)n.frame.inheritedBound=!0;let d=[],p=[],m=[],g=[],b=new Map,S={prop:"an explicit `children:` prop",body:"element body content",slot:"a nested `slot`"},w=null,R=(A,V,B="prop")=>{let i1=A.startsWith("__bind_")&&A.endsWith("__")?A.slice(7,-2):A;if(b.has(i1)){if(i1==="children")throw this.positionedError(V??s??e,`emitter: this child component receives \`children\` TWICE — ${S[w]} beside ${S[B]}; give the children ONE spelling: the element body (indented or inline), the explicit \`children:\` prop, or a nested \`slot\` forwarding the received children`,this.rstate.node);throw this.positionedError(V??s??e,`emitter: duplicate prop '${i1}' on a child component — duplicate keys emit one object literal where the `+"last silently wins, and on an extends child the pair leaves two live writers racing over the inherited element; pass one value per prop",this.rstate.node)}if(b.set(i1,V??null),i1==="children")w=B},T=(A)=>{if(dt(A))throw this.renderSpreadError(A,t);if(!y(A)||A.length!==3)throw this.positionedError(A,"emitter: unsupported attribute form on a child component",s??this.rstate.node);if(n.suppressedPairs.has(A))return;let[,V,B]=A;if(y(V)&&V[0]==="."&&V[1]==="this"&&typeof V[2]==="string"){this.checkBareEventHandler(A,B),this.checkCrossScopeLocals(B,A),m.push({pair:A,event:V[2],value:B});return}if(H(A),typeof V!=="string")throw this.positionedError(A,"emitter: computed prop keys are not supported on a child component",s??this.rstate.node);let i1=V.startsWith('"')&&V.endsWith('"')?V.slice(1,-1):V;if(i1==="__transition__")throw this.positionedError(A,"emitter: a transition directive has no child-component reading — the enter/leave phases animate ELEMENTS "+"; put it on the branch's first element, inside the child's own render",this.rstate.node);if(i1==="ref")throw this.positionedError(A,"emitter: `ref:` captures ELEMENTS — on a child component it has no reading "+"(a dead prop, silently); put the ref on an element inside the child, or emit the instance through an event",this.rstate.node);if(i1==="key")throw this.positionedError(A,"emitter: `key:` identifies loop rows — it is read only on the FIRST element of a `for` body inside render; "+"anywhere else it would leak into the DOM as an attribute",this.rstate.node);if(R(i1,A),i1.startsWith("__bind_")&&i1.endsWith("__")){this.checkUserSpelledBind(A),this.noteVocabulary("render-channel",i1,A);let f1=i1.slice(7,-2),u1=this.childContainerRef(B);if(u1!==null){d.push({pair:A,key:V,fn:u1});return}let p1=(c1,d1)=>this.positionedError(A,`emitter: \`${f1} <=> …\` on a child component shares a reactive CONTAINER, and ${c1} ; ${d1}`,this.rstate.node);if(typeof B==="string"&&this.renderVarKind(B)===null){let c1=this.resolveBareRead(B);if(c1==="member")throw p1(`'${B}' is a plain member`,"declare it with ':=' to share it");if(c1===null&&!this.inScope(B))throw p1(`'${B}' is not declared`,"bind a reactive member or module reactive name")}if(y(B)&&B[0]==="."&&B[1]==="this"&&B.length===3&&typeof B[2]==="string")throw p1(`'@${B[2]}' is not a reactive member`,"declare it with ':=' to share it");if(typeof B!=="string"&&!E.isChainNode(B))throw p1("this expression is never a container","bind a reactive member or module reactive name");this.checkCrossScopeLocals(B,A),d.push({pair:A,key:V,fn:()=>this.renderExpr(B)});return}this.addChildProp(d,p,A,V,i1,B)},F=(A,V)=>{throw this.positionedError(A,`emitter: bare '${V}' under a child component is ambiguous — it names an HTML element AND a `+`value in scope, and the value would win silently; render the value with \`= ${V}\`, or give the element content or attributes`,this.rstate.node)},L=(A,V)=>{R(V,null),d.push({pair:null,key:V,span:O(V),fn:()=>this.b.emit("true")})},C=s!==null&&this.stores.idOf(s)!==null?this.stores.selfSpan(this.stores.idOf(s)):null,N=C!==null&&this.b.source!==null?C[0]:null,D=(A)=>{if(N===null||A==null)return;if(y(A)){let V=this.stores.idOf(A),B=V!==null?this.stores.selfSpan(V):null;N=B!==null?Math.max(N,B[1]):null;return}if(typeof A==="string"){let V=this.b.source.indexOf(A,N);N=V>=0&&V+A.length<=C[1]?V+A.length:null;return}N=null},O=(A)=>{if(N===null)return null;let V=new RegExp(`(?C[1])return null;return N=B.index+A.length,[B.index,B.index+A.length]},W=new Map,H=(A)=>{if(!this.tsDirectivesArmed)return;let V=this.tsDirectiveMap.get(A);if(V===void 0)return;this.tsDirectiveMap.delete(A),W.set(A,[...W.get(A)??[],...V])},G=(A)=>{if(!this.tsDirectivesArmed)return;let V=this.tsDirectiveMap.get(A);if(V===void 0)return;let B=A.slice(1).find((i1)=>y(i1));if(B===void 0||n.suppressedPairs.has(B))return;this.tsDirectiveMap.delete(A),this.tsDirectiveMap.set(B,[...V,...this.tsDirectiveMap.get(B)??[]])},k=[],v=!1,j=(A)=>!y(A)&&!(typeof A==="string"&&((te(A.split(/[#.]/)[0])||K1(A.split(/[#.]/)[0]))&&this.renderVarKind(A)===null&&this.resolveBareRead(A)===null)),X=(A)=>{if(A==null)return;if(dt(A))throw this.renderSpreadError(A,t);let V=typeof A==="string"&&ht.test(A)&&this.renderVarKind(A)===null&&this.resolveBareRead(A)===null;if(V&&(te(A)||A==="slot")&&(this.inScope(A)||this.moduleBound.has(A)))F(s??this.rstate.node,A);if(V&&A==="slot"){v=!0,D(A),k.push(A);return}if(V&&!this.inScope(A)&&!this.moduleBound.has(A)){L(s??this.rstate.node,A);return}D(A),k.push(A)};for(let A of r)if(O1(A)){G(A);for(let V of A.slice(1))T(V);D(A)}else if(T1(A)){if(y(A[1])&&A[1].length>0)throw this.positionedError(A,`emitter: a parameterized function is not a render child — the children of '${t}' arrive as a bare block (a callback the component should run is passed as a named prop)`,this.rstate.node);let V=A[2],B=b1(V)?V.slice(1):V!=null?[V]:[];for(let i1 of B)if(O1(i1)){G(i1);for(let h1 of i1.slice(1))T(h1);D(i1)}else X(i1)}else X(A);let x=(A)=>{if(!j(A))return this.renderNode(A);this.checkCrossScopeLocals(A,s??this.rstate.node);let V=this.newRenderText();if(this.renderReactive(A))this.renderLine(s,()=>this.b.emit(`${V} = document.createTextNode('')`)),this.renderEffect(s,()=>{this.b.emit(`${V}.data = `),this.renderExpr(A),this.b.emit(";")},A);else this.renderLine(s,()=>{this.b.emit(`${V} = document.createTextNode(`),this.renderExpr(A),this.b.emit(")")});return V},Z=null,U=k.filter((A)=>!this.isRenderBinding(A));if(U.length===1&&v){R("children",null,"slot"),this.claimSlot(s);let A=this.ts?this.wordSpanIn("slot",s??this.rstate.node):null;for(let V of k)if(V!=="slot")x(V);d.push({pair:null,key:"children",fn:()=>this.emitChildrenRead(A)})}else if(U.length===1)R("children",null,"body"),Z=()=>{let A=null;for(let V of k){let B=x(V);if(B!=null)A=B}return A};else if(U.length>1)R("children",null,"body"),Z=()=>{let A=this.newRenderVar("frag");this.renderLine(null,()=>this.b.emit(`${A} = document.createDocumentFragment()`));for(let V of k){let B=x(V);if(B!=null)this.renderLine(null,()=>this.b.emit(`${A}.appendChild(${B})`))}return A};else for(let A of k)x(A);let r1=new Set([...i.bindings,...i.locals]);if(i.vars!==null)for(let A of i.vars)r1.add(A);if(y(e))E.collectLeafNames(e,r1);let Q=E.mintName("__prev",r1),l1=E.mintName("__kid",r1),I=E.mintName("__childErr",r1);if(i.kind!=="class")i.hasKids=!0;let s1=(A)=>this.renderLine(s,A,!1),e1=()=>this.renderSelf??"this",K=this.projectionHost;this.threadProjectionHost(K);let a1=()=>K!==null&&K.startsWith("this.")?`${e1()}.${K.slice(5)}`:K;if(s1(()=>this.b.emit(K!==null?`{ const ${Q} = ${a1()}._beginProjection(${e1()}); try {`:`{ const ${Q} = ${this.runtimeName("__pushComponent")}(${e1()}); try {`)),s1(()=>this.b.emit("try {")),s1(()=>{if(this.b.emit(`${h} = new `),c(),this.b.emit("("),d.length===0)this.b.emit(u?`{ ...${e1()}._rest }`:"{}");else{let A=W.size>0,V=this.replayPad+" ";if(this.b.emit(A?"{":"{ "),u)this.b.emit(A?` -${V}...${e1()}._rest,`:`...${e1()}._rest, `);d.forEach((B,i1)=>{if(A){if(i1>0)this.b.emit(",");this.b.emit(` -`);let f1=B.pair!==null?W.get(B.pair):void 0;if(this.ts&&f1!==void 0)for(let u1 of f1)this.tsDirectiveLine(u1,V,!0);this.b.emit(V)}else if(i1>0)this.b.emit(", ");let h1=()=>{let f1=(p1)=>{let c1=this.b.offset,d1=p1();if(this.ts)this.attrNames.push([c1,this.b.offset]);if("routeKey"in B)B.routeKey=[c1,this.b.offset];if(this.ts&&d1!=null){let M=B.pair!==null?this.stores.idOf(B.pair):null,n1=M!==null?this.stores.selfSpan(M):null,_=[d1[0],d1[1]];this.renderPairs.push({key:_,pair:n1??_,sites:[[c1,this.b.offset]]})}},u1=y(s)?this.stores.idOf(s):null;if(this.ts&&B.span!=null&&u1!==null){f1(()=>(this.b.markSpan(u1,"shorthandProp",B.span[0],B.span[1],()=>this.b.emit(B.key)),[B.span[0],B.span[1]])),this.b.emit(": "),B.fn();return}if(B.key.startsWith("__bind_")&&B.key.endsWith("__"))f1(()=>{let p1=this.b.offset;this.b.emit("__bind_");let c1=this.emitRewrittenPrimitive(B.key,B.key.slice(7,-2));if(this.ts&&c1!==null)this.intrinsics.push({start:c1[0],end:c1[1],kind:"bind",name:B.key.slice(7,-2),gen:p1});return this.b.emit("__"),c1});else f1(()=>this.emitPrimitive(B.key));this.b.emit(": "),B.fn()};if(B.pair!==null&&this.stores.idOf(B.pair)!==null)this.mark(B.pair,"$self",h1);else h1()}),this.b.emit(A?` -${this.replayPad}}`:" }")}this.b.emit(");")}),s1(()=>this.b.emit(`if (${h} && ${h}._initFailed) {`)),s1(()=>this.b.emit(` ${h} = null;`)),s1(()=>this.b.emit(` ${f} = document.createComment('rip:child-init-failed: ${t}');`)),Z!==null){s1(()=>this.b.emit("} else {")),s1(()=>this.b.emit(`{ const ${l1} = ${h}._beginProjection(${e1()}); try {`));let A=this.projectionHost;this.projectionHost=h;let V=i.setups.length,B;try{B=Z()}finally{this.projectionHost=A}let i1=(f1)=>({kind:"raw",node:null,fn:(u1)=>{this.b.emit(`${u1}if (${h}) { -`),this.replaySetups({setups:f1},`${u1} `),this.b.emit(`${u1}} -`)}}),h1=[];for(let f1 of i.setups.splice(V)){if(f1.latch!==!0){h1.push(f1);continue}if(h1.length>0)i.setups.push(i1(h1));h1=[],i.setups.push(f1)}if(h1.length>0)i.setups.push(i1(h1));s1(()=>this.b.emit(`} finally { ${h}._endProjection(${l1}); } }`)),s1(()=>this.b.emit(`${h}._setChildren(${B});`))}if(s1(()=>{this.b.emit(Z!==null?"if (":"} else if (");let A=()=>this.b.emit(`${h}._mountCreate()`);if(s!==null)this.mark(s,"$self",A);else A();this.b.emit(") {")}),s1(()=>this.b.emit(` ${f} = ${h}._root;`)),u){let A=[...b.keys()].filter((V)=>V!=="children").map((V)=>JSON.stringify(V)).join(", ");s1(()=>this.b.emit(` ${e1()}._inheritedInst = ${h};`)),s1(()=>this.b.emit(` ${e1()}._inheritedOwn = new Set([${A}]);`))}if(i.kind==="class")s1(()=>this.b.emit(` (this._children || (this._children = [])).push(${h});`));else s1(()=>this.b.emit(` ${i.kidsVar}.push(${h});`));if(s1(()=>this.b.emit("} else {")),s1(()=>this.b.emit(` ${h} = null;`)),s1(()=>this.b.emit(` ${f} = document.createComment('rip:child-error: ${t}');`)),s1(()=>this.b.emit("}")),Z!==null)s1(()=>this.b.emit("}"));s1(()=>this.b.emit(`} catch (${I}) {`)),s1(()=>this.b.emit(` ${this.runtimeName("__reportChildFailure")}('${t}', ${I});`)),s1(()=>this.b.emit(` ${h} = null;`)),s1(()=>this.b.emit(` ${f} = document.createComment('rip:child-error: ${t}');`)),s1(()=>this.b.emit("}")),s1(()=>this.b.emit(K!==null?`} finally { ${a1()}._endProjection(${Q}); } }`:`} finally { ${this.runtimeName("__popComponent")}(${Q}); } }`));for(let{pair:A,event:V,value:B}of m){if(this.ts){let f1=y(A)&&y(A[1])?A[1]:null,u1=f1!==null?this.stores.idOf(f1)??null:null,p1=u1!==null?this.stores.selfSpan(u1):null;if(p1!==null)this.intrinsics.push({start:p1[0],end:p1[1],kind:"event",name:V,type:this.tsEventTypeText([V])!==null?`HTMLElementEventMap['${V}']`:null,child:t})}let i1=new Set;E.collectLeafNames(B,i1);let h1=E.mintName("e",i1);this.renderLine(A,()=>{let f1=`(${h}._nodes?.[0] ?? ${f})`;if(!this.ts)this.b.emit(`if (${h}) ${f1}.addEventListener('${V}', (${h1}`);else this.b.emit(`if (${h}) ${f1}.addEventListener(`),this.emitQuotedPrimitive(V),this.b.emit(`, (${h1}`);this.tsScaffoldAny(),this.b.emit(`) => ${this.runtimeName("__batch")}(() => (`),this.tsHandlerCast(()=>this.withExpression(()=>this.expr(B))),this.b.emit(`)(${h1})))`)})}i.setups.push({kind:"raw",latch:!0,fn:(A)=>{this.b.emit(A);let V=()=>{this.b.emit(`if (${h} && ${h}._state === 'mounting') { -${A} ${f} = ${h}._mountSetup(document.createComment('rip:child-error: ${t}')); -`);let B=this.rstate.fragChildren.get(i.root),i1=B!==void 0?B[0]:i.root;if(i.kind!=="class"&&i1===f){if(this.b.emit(`${A} `),this.ts)this.b.tsOnly(()=>this.b.emit("("));if(this.b.emit("this"),this.ts)this.b.tsOnly(()=>this.b.emit(" as any)"));this.b.emit(`._first = ${f}; -`)}this.b.emit(`${A}}`)};if(s!==null)this.mark(s,"$self",V);else V();this.b.emit(` -`)}});for(let{pair:A,key:V,value:B}of p){let i1=V.startsWith('"')&&V.endsWith('"')?V.slice(1,-1):V;this.renderEffect(A,()=>{this.b.emit(`if (${h}) ${h}._updateProp('${i1}', `),this.renderExpr(B),this.b.emit(");")},B)}return f}addChildProp(e,t,r,n,i,s){let a=this.childContainerRef(s);if(a!==null){e.push({pair:r,key:n,fn:a});return}if(this.checkCrossScopeLocals(s,r),this.ts&&this.routesUnion!==null&&i==="href"&&this.isRouteLiteralValue(s)){this._needsRouteHelper=!0;let l={pair:r,key:n,routeKey:null};l.fn=()=>{this.b.tsOnly(()=>this.b.emit("__ripRoute("));let c=this.b.offset;this.renderExpr(s);let h=this.b.offset;if(this.b.tsOnly(()=>this.b.emit(")")),l.routeKey!==null)this.routeWrapSpans.push({key:l.routeKey,value:[c,h]})},e.push(l)}else e.push({pair:r,key:n,fn:()=>this.renderExpr(s)});if(!T1(s)&&this.renderReactive(s))t.push({pair:r,key:n,value:s})}childContainerRef(e){if(typeof e==="string"){if(this.renderVarKind(e)!==null)return null;let t=this.resolveBareRead(e);if(t==="member-reactive")return this.narrowedContainer(e,()=>{this.b.emit(`${this.renderSelf??"this"}.`);let r=this.emitPrimitive(e);if(this.ts&&r!==null)this.memberDecls.push({start:r[0],end:r[1]});return r});if(t==="reactive")return this.narrowedContainer(e,()=>this.emitPrimitive(e));return null}if(y(e)&&e[0]==="."&&e[1]==="this"&&e.length===3&&typeof e[2]==="string"&&this.memberIsReactive(e[2]))return this.narrowedContainer(e[2],()=>(this.b.emit(`${this.renderSelf??"this"}.`),this.emitPrimitive(e[2])));return null}narrowedContainer(e,t){if(!this.ts)return t;return()=>{if(!this.activeNarrowed().some((i)=>i===e||y(i)&&i[0]==="."&&i[1]==="this"&&i.length===3&&i[2]===e))return t();this._needsNarrowedHelper=!0,this.b.tsOnly(()=>this.b.emit("__ripNarrowed("));let n=t();if(this.b.tsOnly(()=>this.b.emit(")")),n!=null)this.narrowedDecls.push({start:n[0],end:n[1]})}}isRouteLiteralValue(e){let t=(r)=>typeof r==="string"&&/^["'`]\//.test(r);return t(e)||y(e)&&e[0]==="str"&&t(e[1])}renderAttributes(e,t){let r=this.rstate;if(this.ts&&this.tsDirectivesArmed&&this.tsDirectiveMap.has(t)){let n=t.slice(1).find((s)=>y(s));if(n!==void 0&&n.length===3&&!r.suppressedPairs.has(n)&&(()=>{let s=n[1];if(typeof s!=="string")return!0;if(s.startsWith('"')&&s.endsWith('"'))s=s.slice(1,-1);if((s==="class"||s==="className")&&r.pendingClassArgs!==null&&r.pendingClassEl===e)return!1;if(s==="ref"&&this.rstate.sink.kind!=="class")return!1;return!0})()){let s=this.tsDirectiveMap.get(t);this.tsDirectiveMap.delete(t),this.tsDirectiveMap.set(n,[...s,...this.tsDirectiveMap.get(n)??[]])}}for(let n of t.slice(1)){if(dt(n))throw this.renderSpreadError(n);if(!y(n)||n.length!==3)throw this.positionedError(n,"emitter: unsupported attribute form in render",t);if(r.suppressedPairs.has(n))continue;let[,i,s]=n;this.checkCrossScopeLocals(s,n);let a=null;if(this.ts){let L=this.stores.idOf(n),C=L!==null?this.stores.selfSpan(L):null,N=this.b.source;if(C!==null&&N!==null){let D=C[0];while(DC[0])a={key:[C[0],D],pair:[C[0],C[1]],sites:[]},this.renderPairs.push(a)}}let o=(L)=>{if(a!==null&&L!==null&&L[1]>L[0])a.sites.push(L)},l=a!==null?a.key:null,c=(L)=>{if(l===null)return L();let C=this.b.claimWithin;this.b.claimWithin=l;try{return L()}finally{this.b.claimWithin=C}},h=(L)=>{if(l===null)return L();let C=this.primitiveAvoid;this.primitiveAvoid=[...C??[],l];try{return L()}finally{this.primitiveAvoid=C}};if(y(i)&&i[0]==="."&&i[1]==="this"&&typeof i[2]==="string"){let L=i[2];if(this.checkBareEventHandler(n,s),this.rstate.sink.kind==="loop"&&this.loopVarNames().size>0&&Ee(s,this.loopVarNames()))this.rstate.sink.forceNonStatic=!0;let C=new Set;E.collectLeafNames(s,C);let N=E.mintName("e",C),D=this.tsElReceiver(e),O=this.ts?this.tsEventTypeText([L],D.hostText):null;if(this.ts){let W=this.stores.idOf(i)??null,H=W!==null?this.stores.selfSpan(W):null;if(H!==null)this.intrinsics.push({start:H[0],end:H[1],kind:"event",name:L,type:O,tag:this.rstate?.tags?.get(e)??null,svg:this.rstate?.svgEls?.has(e)===!0})}this.renderLine(n,()=>{let W=this.renderSelf??"this";if(!this.ts)this.b.emit(`${e}.addEventListener('${L}', (${N}`);else D.emit(),this.b.emit(".addEventListener("),c(()=>this.emitQuotedPrimitive(L)),this.b.emit(`, (${N}`);if(this.tsScaffoldAny(),this.b.emit(`) => ${this.runtimeName("__batch")}(() => `),typeof s==="string"&&this.renderVarKind(s)===null&&this.cframes[this.cframes.length-1].members.has(s)){if(this.ts)this.b.tsOnly(()=>this.b.emit("("));let H=this.b.offset;if(this.b.emit(`${W}.`),h(()=>this.emitPrimitive(s)),this.ts)this.b.tsOnly(()=>this.b.emit(O!==null?` as (e: ${O}) => unknown)`:" as any)"));if(this.ts&&O!==null)o([H,this.b.offset-1]);this.b.emit(`(${N})`)}else{let H=!this.ts?null:T1(s)&&(s[1].length===0||s[1].length===1&&typeof s[1][0]==="string")?O??"any":T1(s)?null:O;this.b.emit("("),o(this.tsHandlerCast(()=>h(()=>this.withExpression(()=>this.expr(s))),H)),this.b.emit(`)(${N})`)}this.b.emit("))")});continue}if(typeof i!=="string")throw this.positionedError(n,"emitter: computed attribute keys are not supported in render",t);let f=i;if(i.startsWith('"')&&i.endsWith('"'))i=i.slice(1,-1);if(i==="__transition__"){this.noteVocabulary("render-channel",i,n),this.renderTransition(e,n,s,t);continue}if(i==="ref"){this.noteVocabulary("render-channel",i,n),this.renderRef(e,n,s,t,o);continue}if(i.startsWith("__bind_")&&i.endsWith("__")){this.noteVocabulary("render-channel",i,n),this.checkUserSpelledBind(n);let L=i.slice(7,-2);this.renderBind(e,n,L,s,t,o);continue}if(i==="key")throw this.positionedError(n,"emitter: `key:` identifies loop rows — it is read only on the FIRST element of a `for` body inside render; "+"anywhere else it would leak into the DOM as an attribute",t);if(i==="class"||i==="className"){let L=(C,N)=>{if(this.ts&&C!==null)this.intrinsics.push({start:C[0],end:C[1],kind:"attr",name:"class",gen:N})};if(r.pendingClassArgs!==null&&r.pendingClassEl===e){this.checkSetupLocalRefs(s,n);let C=this.stores.idOf(n),N=C!==null?this.stores.selfSpan(C):null;if(this.ts&&N!==null)(r.pendingClassKeys??=[]).push([N[0],N[0]+i.length]);r.pendingClassArgs.push(()=>o(this.renderExpr(s)))}else if(this.renderReactive(s)){let C=r.svgDepth>0,N=this.tsElReceiver(e);this.renderEffect(n,()=>{let D=this.runtimeName("__clsx");if(N.emit(),C){let O=this.b.offset+1;this.b.emit(".setAttribute('"),L(this.emitKeyAs(i,"class"),O),this.b.emit(`', ${D}(`)}else this.b.emit("."),this.emitPropertyRoadKey(()=>this.emitKeyAs(i,"className")),this.b.emit(` = ${D}(`);o(this.renderExpr(s)),this.b.emit(C?"));":");")},s)}else{let C=r.svgDepth>0,N=y(s),D=this.tsElReceiver(e);this.renderLine(n,()=>{let O=this.b.offset;if(D.emit(),C){let H=this.b.offset+1;this.b.emit(".setAttribute('"),L(this.emitKeyAs(i,"class"),H),this.b.emit("', ")}else{if(this.b.emit("."),this.emitPropertyRoadKey(()=>this.emitKeyAs(i,"className")),!N)o([O,this.b.offset]);this.b.emit(" = ")}if(N)this.b.emit(`${this.runtimeName("__clsx")}(`);let W=this.renderExpr(s);if(C||N)o(W);if(N)this.b.emit(")");if(C)this.b.emit(")")})}continue}if((i==="value"||i==="checked")&&this.renderReactive(s)){let L=this.tsElReceiver(e);this.renderEffect(n,()=>{let C=this.b.offset;if(L.emit(),this.b.emit("."),this.emitPropertyRoadKey(()=>this.emitPrimitive(i)),o([C,this.b.offset]),this.b.emit(" = "),this.renderExpr(s),i==="value"&&!E.isStringLiteral(s))this.b.emit(" ?? ''");this.b.emit(";")},s);continue}if(i==="innerHTML"||i==="textContent"||i==="innerText"){let L=this.tsElReceiver(e),C=()=>{let N=this.b.offset;L.emit(),this.b.emit("."),this.emitPropertyRoadKey(()=>this.emitPrimitive(i)),o([N,this.b.offset]),this.b.emit(" = "),this.renderExpr(s)};if(this.renderReactive(s))this.renderEffect(n,()=>{C(),this.b.emit(";")},s);else this.renderLine(n,C);continue}if(E.BOOLEAN_ATTRS.has(i)){let L=this.tsElReceiver(e),C=()=>{let N=c(()=>this.emitKeyAs(f,i));if(this.ts&&L.surfaced&&N!==null)this.intrinsics.push({start:N[0],end:N[1],kind:"attr",name:i,type:"boolean | undefined"})};if(this.renderReactive(s))this.renderEffect(n,()=>{if(L.emit(),this.b.emit(".toggleAttribute('"),C(),this.b.emit("', !!"),this.ts)this.b.tsOnly(()=>this.b.emit("("));h(()=>this.renderExpr(s));let N=this.b.offset+1;if(this.ts)this.b.tsOnly(()=>this.b.emit(" satisfies boolean | undefined)"));if(this.ts)o([N,N+9]);this.b.emit(");")},s);else this.renderLine(n,()=>{this.b.emit("if ("),h(()=>this.withExpression(()=>this.expr(s)));let N=this.b.offset+1;if(this.ts)this.b.tsOnly(()=>this.b.emit(" satisfies boolean | undefined"));if(this.ts)o([N,N+9]);this.b.emit(") "),L.emit(),this.b.emit(".setAttribute('"),C(),this.b.emit("', '')")});continue}if(i==="style"){let L=this.tsElReceiver(e),C=()=>{if(this.b.emit("{ const __v"),o([this.b.offset-3,this.b.offset]),this.ts)this.b.tsOnly(()=>{if(L.surfaced)this.b.emit(`: ${L.valsName}['`),this.emitKeyAs(f,i),this.b.emit("'] | undefined");else this.b.emit(": any")});this.b.emit(" = "),this.renderExpr(s),this.b.emit(`; ${this.runtimeName("__style")}(`),L.emit(),this.b.emit(", __v); }")};if(this.renderReactive(s))this.renderEffect(n,C,s);else this.renderLine(n,C,!1);if(this.ts&&L.surfaced&&a!==null)this.intrinsics.push({start:a.key[0],end:a.key[1],kind:"attr",name:i,type:"string | __RipCSSProperties | undefined"});continue}let u=this.ts&&this.routesUnion!==null&&i==="href"&&this.rstate.tags?.get(e)==="a"&&this.isRouteLiteralValue(s);if(u)this._needsRouteHelper=!0;let d=this.tsElReceiver(e),p=!(typeof s==="string"&&(!Z1(s)||s==="true"||s==="false")||y(s)&&s[0]==="str"),m=null,g=null,b=!1,S=()=>{if(b||!this.ts||!d.surfaced||m===null||g===null)return;b=!0,this.intrinsics.push(u?{start:m[0],end:m[1],kind:"attr",name:i,type:this.routesUnion,route:!0}:{start:m[0],end:m[1],kind:"attr",name:i,gen:g});let L=this.renderTagOf(e);if(!di(L,i))this.intrinsics.push({start:m[0],end:m[1],kind:"unknown-attr",tag:L,name:i,message:this.unknownAttrMessage(L,i,{bare:!1,svg:this.rstate?.svgEls?.has(e)===!0})})},w=()=>{g=this.b.offset+1,this.b.emit(".setAttribute('"),S()},R=()=>{let L=c(()=>this.emitKeyAs(f,i));if(m===null)m=L;S()},T=()=>h(()=>this.renderExpr(s)),F=()=>{if(!this.ts)return;this.b.tsOnly(()=>this.b.emit(d.surfaced?`: ${d.valsName}['${i}'] | undefined`:": any"))};if(this.renderReactive(s))if(p)this.renderEffect(n,()=>{this.b.emit("{ const __v"),o([this.b.offset-3,this.b.offset]),F(),this.b.emit(" = "),T(),this.b.emit("; __v == null ? "),d.emit(),this.b.emit(".removeAttribute('"),R(),this.b.emit("') : "),d.emit(),w(),R(),this.b.emit("', __v); }")},s);else this.renderEffect(n,()=>{d.emit(),w();let L=this.b.offset;R();let C=this.b.offset;if(this.b.emit("', "),u)this.b.tsOnly(()=>this.b.emit("__ripRoute("));let N=this.b.offset;o(T());let D=this.b.offset;if(this.ts){if(u)this.b.tsOnly(()=>this.b.emit(")"));else if(!d.surfaced)this.b.tsOnly(()=>this.b.emit(" as any"))}if(this.b.emit(");"),u)this.routeWrapSpans.push({key:[L,C],value:[N,D]})},s);else if(p)this.renderLine(n,()=>{this.b.emit("{ const __v"),o([this.b.offset-3,this.b.offset]),F(),this.b.emit(" = "),T(),this.b.emit("; if (__v != null) "),d.emit(),w(),R(),this.b.emit("', __v); }")},!1);else this.renderLine(n,()=>{d.emit(),w();let L=this.b.offset;R();let C=this.b.offset;if(this.b.emit("', "),u)this.b.tsOnly(()=>this.b.emit("__ripRoute("));let N=this.b.offset;o(T());let D=this.b.offset;if(this.ts){if(u)this.b.tsOnly(()=>this.b.emit(")"));else if(!d.surfaced)this.b.tsOnly(()=>this.b.emit(" as any"))}if(this.b.emit(")"),u)this.routeWrapSpans.push({key:[L,C],value:[N,D]})})}}loopVarNames(){let e=new Set;for(let t of this.rstate.sink.loopStack)e.add(t.itemVar),e.add(t.indexVar);return e}checkCrossScopeLocals(e,t){let r=this.rstate;if(!r)return;let n=this.loopVarNames(),i=(s)=>r.sink.locals.has(s)||n.has(s);for(let s=r.sink.parent;s!==null;s=s.parent){if(s.locals.size===0)continue;let a=new Set([...s.locals].filter((o)=>!i(o)));if(a.size>0&&Ee(e,a))throw this.positionedError(t,"emitter: this expression reads a render local of an ENCLOSING render scope — each dynamic block (a "+"conditional branch, a loop body) is its own factory function, and render locals never cross that boundary ; declare the local inside this block, or use a member",this.rstate.node)}}renderBinding(e){let[t,r,n]=e,i=this.rstate.sink,s=this.firstAwaitIn(n);if(s!==null)throw this.renderSyncError(s);if(r.startsWith("__"))throw this.positionedError(e,`emitter: render local '${r}' — double-underscore names are the compiler/runtime namespace inside render `+"(factory scaffolding and injected helpers live there)");if(i.loopStack.some((a)=>a.itemVar===r||a.indexVar===r))throw this.positionedError(e,`emitter: '${r}' is a loop variable — a render local cannot re-declare or assign it `);if(t==="="){if(!i.locals.has(r)){if(i.locals.add(r),i.bindings.add(r),i.localDecls.set(r,e),i.kind!=="class")i.vars.add(r)}}else if(!i.locals.has(r))throw this.positionedError(e,`emitter: compound assignment to '${r}' — no render local of that name is declared in this render scope `+"(`name = expr` declares one)");return this.checkCrossScopeLocals(n,e),this.renderLine(e,()=>{this.mark(e,"target",()=>this.b.emit(r)),this.b.emit(` ${t} `),this.mark(e,"value",()=>this.withExpression(()=>this.expr(n)))}),null}closeRenderScope(e){for(let[t,r]of e.localDecls){let n=0,i=(s)=>{if(typeof s==="string"){if(s===t)n++;return}if(!y(s))return;if(la.has(s[0])&&s.length===3&&s[1]===t){i(s[2]);return}if((s[0]===":"||s[0]==="void-pair")&&s.length===3&&typeof s[1]==="string"){i(s[2]);return}if((s[0]==="."||s[0]==="?.")&&s.length===3&&typeof s[2]==="string"){i(s[1]);return}for(let a of s)i(a)};for(let s of e.stmts)i(s);if(n===0)throw this.positionedError(r,`emitter: render local '${t}' is never read — a dead local renders NOTHING (if this line meant an `+`element with expression text, spell it \`${t}\` + indented \`= expr\`: inside render \`${t} = expr\` declares a local named the tag)`,this.rstate.node)}}static collectLeafNames(e,t){if(typeof e==="string"){if(ht.test(e))t.add(e);return}if(!y(e))return;if((e[0]===":"||e[0]==="void-pair")&&e.length===3&&typeof e[1]==="string"){E.collectLeafNames(e[2],t);return}if((e[0]==="."||e[0]==="?.")&&e.length===3&&typeof e[2]==="string"){E.collectLeafNames(e[1],t);return}for(let r of e)E.collectLeafNames(r,t)}static mintName(e,t){let r=e;while(t.has(r))r=`${r}_`;return t.add(r),r}threadProjectionHost(e){if(e===null||e.startsWith("this."))return;for(let t=this.rstate.sink;t&&t.hostParams!==void 0&&!t.vars.has(e);t=t.parent){if(t.hostParams.includes(e))continue;t.hostParams.push(e),t.paramNames.push(e)}}walkFactory(e,t,r,n=null){let i=this.rstate,s=i.sink,a=this.newBlockName(),o=n!==null?[n.itemVar,n.indexVar]:[],l=new Set(o),c=new Set;E.collectLeafNames(e,c);let h=new Set(s.renameHazardNames??[]),f=(S)=>{if(!l.has(S))return l.add(S),S;let w=`${S}_`;while(l.has(w)||c.has(w))w+="_";return l.add(w),h.add(S),h.add(w),w},u=s.loopStack.map((S)=>({...S,itemVar:f(S.itemVar),indexVar:f(S.indexVar)})),d=u.flatMap((S)=>[S.itemVar,S.indexVar]),p=n!==null?[...u,n]:u,m={kind:t,name:a,parent:s,self:"ctx",paramNames:[...o,...d],hostParams:[],frameVar:"__fr",ownerVar:"__o",creates:[],setups:[],vars:new Set,locals:new Set,localDecls:new Map,bindings:new Set([...d,...o]),refs:[],loopStack:p,stmts:[],forceNonStatic:!1,root:null,isStatic:!1,originNode:r,hasKids:!1,kidsVar:null,renameHazardNames:h,readVars:new Set,narrowed:[...s.narrowed??[],...this._narrowNext??[]]};if(this._narrowNext=null,n!==null)n.owner=m;i.records.push(m);let g=i.transitionSlot;i.transitionSlot=t==="branch"?{record:m,el:null}:null,i.sink=m,this.rframes.push({reactive:new Set,bound:m.bindings,loopVars:m.bindings,loopBindings:E.loopBindingsOf(m)});try{let S;if(b1(e))S=e.slice(1);else if(y(e)&&e.length===1&&y(e[0])&&this.stores.idOf(e)===null)S=[e[0]];else S=[e];if(m.stmts=S,m.root=S.length===0?null:this.walkChildStmts(S),m.root===null)m.root=this.newRenderVar("empty"),this.renderLine(null,()=>this.b.emit(`${m.root} = document.createComment('')`))}finally{this.rframes.pop(),i.sink=s,i.transitionSlot=g}this.closeRenderScope(m),m.isStatic=t==="loop"&&m.setups.length===0&&!m.forceNonStatic;let b=new Set([...m.bindings,...m.locals,...m.vars]);if(E.collectLeafNames(m.stmts,b),m.self=E.mintName("ctx",b),m.frameVar=E.mintName("__fr",b),m.ownerVar=E.mintName("__o",b),m.hasKids)m.kidsVar=E.mintName("_factoryChildren",b);return m}narrowConjuncts(e){if(y(e)&&e[0]==="&&"&&e.length===3)return[...this.narrowConjuncts(e[1]),...this.narrowConjuncts(e[2])];if(typeof e==="string")return this.renderVarKind(e)!==null||this.bareRewrite(e)===null?[]:[e];if(!E.isDotChain(e))return[];let t=e;while(y(t))t=t[1];if(t==="this")return[e];if(this.renderVarKind(t)!==null||this.bareRewrite(t)===null)return[];return[e]}static isDotChain(e){if(!y(e)||e[0]!=="."||e.length!==3||typeof e[2]!=="string"||e[2][0]==='"')return!1;let t=e[1];if(t==="this")return!0;if(typeof t==="string")return/^[A-Za-z_$][\w$]*$/.test(t);return E.isDotChain(t)}activeNarrowed(){let e=this.renderRecord;if(!this.ts||!e||!(e.narrowed?.length>0))return[];return e.narrowed.filter((t)=>{let r=t;while(y(r))r=r[1];return r==="this"||!(e.bindings.has(r)||e.locals.has(r))})}hasNarrow(){return this.activeNarrowed().length>0}narrowedReadNames(){let e=new Set;for(let t of this.activeNarrowed())if(typeof t==="string")e.add(t);else if(t[0]==="."&&t[1]==="this"&&t.length===3&&typeof t[2]==="string")e.add(t[2]);return e}narrowGuard(e="statement",{trailing:t=!0}={}){let r=this.activeNarrowed();if(r.length===0)return!1;this._needsNarrowHelper=!0,this.b.suppressClaims=!0;try{this.b.tsOnly(()=>this.b.echo(()=>{if(r.forEach((n,i)=>{if(i>0)this.b.emit(" ");this.b.emit(e==="statement"?"__ripNarrow(":"(__ripNarrow("),this.renderExpr(n),this.b.emit(e==="statement"?");":"),")}),t)this.b.emit(" ")}))}finally{this.b.suppressClaims=!1}return!0}narrowGuardClose(e){if(e)this.b.tsOnly(()=>this.b.emit(")".repeat(this.activeNarrowed().length)))}renderCond(e,t=e){if(e.length>4)throw this.positionedError(e,"emitter: unexpected flat conditional chain shape in render (internal)");if(this.stores.idOf(t)===null&&this._chainMarkNode)t=this._chainMarkNode;let[,r,n]=e,i=e.length===4?e[3]:null;this.checkSetupLocalRefs(r,t),this.checkCrossScopeLocals(r,t);let s=this.newRenderVar("anchor");this.renderLine(null,()=>this.b.emit(`${s} = document.createComment('if')`)),this._narrowNext=this.narrowConjuncts(r);let a=this.walkFactory(n,"branch",t),o=this._chainMarkNode;if(i!==null&&y(i)&&i[0]==="if"&&this.stores.idOf(i)===null)this._chainMarkNode=t;let l=i!==null?this.walkFactory(i,"branch",t):null;this._chainMarkNode=o;let c=a.refs.length>0||l!==null&&l.refs.length>0,h=this.rstate.sink;if(l!==null){for(let[u,d]of[[a,l],[l,a]])for(let p of u.hostParams){if(d.hostParams.includes(p))continue;d.hostParams.push(p),d.paramNames.push(p)}l.hostParams.sort((u,d)=>a.hostParams.indexOf(u)-a.hostParams.indexOf(d)),l.paramNames.splice(l.paramNames.length-l.hostParams.length,l.hostParams.length,...l.hostParams)}let f=[...h.loopStack.flatMap((u)=>[u.itemVar,u.indexVar]),...a.hostParams];return h.setups.push({kind:"raw",node:t,fn:(u)=>this.emitCondSetup(u,t,e,s,a,l,c,f)}),s}renderSwitch(e){let[,t,r,n]=e;if(E.hasMatchArms(r))this.checkMatchSwitch(e);let i=n;for(let s=r.length-1;s>=0;s--){let[,a,o]=r[s],l;if(t===null)l=a.reduce((c,h)=>c===null?h:["||",c,h],null);else l=a.map((c)=>E.matchArmSexpr(t,c)).reduce((c,h)=>c===null?h:["||",c,h],null);i=i!==null?["if",l,o,i]:["if",l,o]}if(i===null||i[0]!=="if")return i===null?this.renderNode("null"):this.renderChildBlock(i);return this.renderCond(i,e)}renderLoop(e){let[,t,r,n,i,s]=e;if(n!==null)throw this.positionedError(e,"emitter: a `by` step has no render reading — the reconciler patches whole collections; step the collection itself: `items.filter((x, i) -> i % 2 == 0)`");if(i!==null)throw this.positionedError(e,"emitter: a `when` guard has no render reading — the reconciler patches whole collections; filter the collection itself: `for x in items.filter((x) -> cond)`");if(t.length>2||t.some((w)=>typeof w!=="string"))throw this.positionedError(e,"emitter: a render loop takes plain item and index variables (`for item, i in items`) — destructuring loop "+"variables have no factory-parameter reading here; destructure inside the body");if(t.length===2&&t[0]===t[1])throw this.positionedError(e,`emitter: a render loop cannot bind '${t[0]}' as BOTH item and index — one name cannot hold two row facts `);for(let w of t)if(w.startsWith("__"))throw this.positionedError(e,`emitter: render loop variable '${w}' — double-underscore names are the compiler/runtime namespace inside `+"render (factory scaffolding and injected helpers live there)");this.checkSetupLocalRefs(r,e),this.checkCrossScopeLocals(r,e);let a=t[0],o=t[1]??null;if(o===null){let w=new Set(this.loopVarNames());w.add(a),E.collectRenderBodyBindings(s,w);let R=(T,F)=>{if(typeof T==="string")return T===F;return y(T)&&T.some((L)=>R(L,F))};for(let T of["i","j","k","l","m","n"])if(!w.has(T)&&!R(s,T)){o=T;break}o=o??`__rip_idx${this.rstate.sink.loopStack.length}`}let l=this.newRenderVar("anchor");this.renderLine(null,()=>this.b.emit(`${l} = document.createComment('for')`));let c=this.renderReactive(r),h=this.extractLoopKey(s,e),f=h!==null?this.rstate.keySpan??null:null;if(h!==null)this.checkSetupLocalRefs(h,e),this.checkCrossScopeLocals(h,e);let u=this.stores.idOf(e),d=u!==null?this.stores.role(u,"vars"):null,p=this.primitiveAvoid;if(d?.sourceStart!=null)this.primitiveAvoid=[...p??[],[d.sourceStart,d.sourceEnd]];let m;try{m=this.walkFactory(s,"loop",e,{itemVar:a,indexVar:o,reactiveSource:c,iter:r,node:e})}finally{this.primitiveAvoid=p}if(h!==null){if(m.locals.size>0&&Ee(h,m.locals))throw this.positionedError(e,"emitter: a `key:` expression must be evaluable in the loop HEADER scope — it reads a render local declared "+"inside the loop body, which lives in the row factory (derive the key from the item inline: `key: item.id`)");if(!Ee(h,new Set([a,o])))throw this.positionedError(e,`emitter: a loop key must derive from the row — this \`key:\` expression never reads '${a}'${t.length===2?` or '${o}'`:""} (a row-independent key cannot identify rows)`)}let g=m.refs.length>0,b=this.rstate.sink,S=[...b.loopStack.flatMap((w)=>[w.itemVar,w.indexVar]),...m.hostParams];return b.setups.push({kind:"raw",node:e,fn:(w)=>this.emitLoopSetup(w,e,l,r,m,h,a,o,g,S,f)}),l}static collectRenderBodyBindings(e,t){if(!y(e))return;if((e[0]==="for-in"||e[0]==="for-of"||e[0]==="for-as")&&y(e[1])){for(let r of e[1])if(typeof r==="string")t.add(r)}else if(e[0]==="="&&e.length===3&&typeof e[1]==="string")t.add(e[1]);for(let r of e)E.collectRenderBodyBindings(r,t)}extractLoopKey(e,t){let n=(b1(e)?e.slice(1):[e]).find((s)=>!this.isRenderBinding(s));if(!y(n))return null;let i=(s)=>{for(let a=1;athis.b.emit(e.join(", ")))}emitCondSetup(e,t,r,n,i,s,a,o){let l=this.renderSelf??"this",c=e+" ",h=c+" ",f=new Set([l,...o]);E.collectLeafNames(r[1],f);let u=E.mintName("anchor",f),d=E.mintName("currentBlock",f),p=E.mintName("showing",f),m=E.mintName("show",f),g=E.mintName("want",f),b=E.mintName("leaving",f),S=this.runtimeName("__transition"),w=(T)=>{this.b.emit(`${h} ${d} = ${l}.${T.name}(${l}`),this.emitOuterLoopArgs(o),this.b.emit(`); +`)}}finally{this.replayPad=r}}replaySetups(e,t){for(let r of e.setups)if(r.kind==="effect"){this.renderDirectives(r.node,t),this.b.emit(t);let s=()=>{this.b.emit(`${this.runtimeName("__effect")}(() => { `);let i=this._narrowedReads;this._narrowedReads=this.narrowedReadNames();try{this.narrowGuard(),r.fn()}finally{this._narrowedReads=i}this.b.emit(" })")};if(r.node!=null)this.mark(r.node,"$self",s);else if(r.within!=null){let i=this.b.claimWithin;this.b.claimWithin=r.within;try{s()}finally{this.b.claimWithin=i}}else s();this.b.emit(`; +`)}else{if(r.node!=null)this.renderDirectives(r.node,t);r.fn(t)}}renderLine(e,t,r=!0){this.rstate.sink.creates.push({node:e,fn:t,semi:r})}newRenderVar(e="el"){let t=this.rstate.elCount++,r=this.rstate.sink;if(r.kind==="class")return`this._${e}${t}`;let s=`_${e}${t}`;return r.vars.add(s),s}newRenderText(){let e=this.rstate.textCount++,t=this.rstate.sink;if(t.kind==="class")return`this._t${e}`;let r=`_t${e}`;return t.vars.add(r),r}newBlockName(){let e;do e=`create_block_${this.rstate.blockCount++}`;while(this.rstate.frame.members.has(e)||this.rstate.frame.members.has(`${e}_iter`));return e}renderEffect(e,t,r){if(r!==void 0)this.checkSetupLocalRefs(r,e);let s=e==null?this._textOwner:null,i=s!=null?this.stores.idOf(s):null,n=i!=null?[this.stores.node(i).sourceStart,this.stores.node(i).sourceEnd]:null;this.rstate.sink.setups.push({kind:"effect",node:e,fn:t,within:n})}checkSetupLocalRefs(e,t){let r=this.rstate.sink;if(r.kind!=="class"||r.locals.size===0)return;if(Ee(e,r.locals))throw this.positionedError(t??e,"emitter: a render local cannot appear in a LIVE binding or a dynamic block head at the render top level — "+"locals live in _create() and reactive machinery lives in _setup() (a compiled read here would be a mount-time ReferenceError); bind the value to a member instead",y(e)?e:this.rstate.node)}renderExpr(e){let t=null;return this.withExpression(()=>{let r=E.needsGrouping(e,"operand");if(r)this.b.emit("(");let s=this.b.offset;if(this.expr(e),t=[s,this.b.offset],r)this.b.emit(")")}),t}renderVarKind(e,t){let r=this.rstate;if(!r)return null;if(r.sink.locals.has(e))return"local";for(let s=r.sink.loopStack.length-1;s>=0;s--){let i=r.sink.loopStack[s];if(i.itemVar===e||i.indexVar===e)return i.reactiveSource?"loop-reactive":"loop"}if(t!==void 0){for(let s=r.sink.parent;s;s=s.parent)if(s.locals.has(e))throw this.positionedError(t,`emitter: render local '${e}' is not visible here — each dynamic block (a conditional branch, a loop body) `+"is its own factory function, and render locals never cross that boundary; declare the local inside this block, or use a member",this.rstate.node)}return null}renderReactive(e){if(typeof e==="string"){let i=this.renderVarKind(e);if(i!==null)return i==="loop-reactive";let n=this.resolveBareRead(e);return n==="reactive"||n==="member-reactive"}if(!y(e))return!1;if(e[0]==="."&&e[1]==="this"&&e.length===3&&typeof e[2]==="string")return this.memberIsReactive(e[2]);let t=(i)=>{if(typeof i!=="string"||i==="this"||this.renderVarKind(i)!==null)return!1;let n=this.resolveBareRead(i);return n==="member"||n===null&&(this.inScope(i)||this.moduleBound!==void 0&&this.moduleBound.has(i))},r=(i)=>{while(y(i)&&(i[0]==="."||i[0]==="[]")&&i.length===3)i=i[1];return i==="this"||t(i)},s=(i)=>{while(y(i)&&(i[0]==="."||i[0]==="[]"||i[0]==="?."||i[0]==="optindex")&&i.length===3)i=i[1];return typeof i==="string"&&this.renderVarKind(i)==="loop-reactive"};if(e[0]==="."&&e.length===3&&r(e[1]))return!0;if((e[0]==="."||e[0]==="[]")&&e.length===3&&s(e))return!0;if(y(e[0])&&e[0][0]==="."&&e[0][1]==="this"&&typeof e[0][2]==="string"&&this.cframes.length>0&&this.cframes[this.cframes.length-1].members.has(e[0][2]))return!0;return e.some((i)=>this.renderReactive(i))}isRenderBinding(e){return y(e)&&ha.has(e[0])&&e.length===3&&typeof e[1]==="string"&&ht.test(e[1])}renderSpreadError(e,t=null){return this.positionedError(e,t!==null?"emitter: a spread has no reading on a child component — pass each prop as a named pair; to forward the "+`caller's undeclared props onto '${t}', declare the wrapper \`component extends ${t}\` and construct it in the render`:"emitter: a spread has no render reading — an element takes named attribute pairs, and `= expr` renders ONE value",this.rstate.node)}renderNode(e){if(this.isRenderBinding(e))return this.renderBinding(e);if(dt(e))throw this.renderSpreadError(e);if(y(e)&<(e[0])&&e.length===3)throw this.positionedError(e,"emitter: an assignment at a render child position must declare a render local (`name = expr` / compound forms "+"on a plain name) — member and chain writes have no render reading here; put the write in a handler or method");if(typeof e==="string"){if(e.startsWith('"')||e.startsWith("'")||e.startsWith("`")){let c=this.newRenderText();return this.renderLine(null,()=>this.b.emit(`${c} = document.createTextNode(${e})`)),c}let n=this.renderVarKind(e,e);if(n!==null){let c=this.newRenderText();if(n==="loop-reactive")this.renderLine(null,()=>this.b.emit(`${c} = document.createTextNode('')`)),this.renderEffect(null,()=>this.b.emit(`${c}.data = ${e};`));else this.renderLine(null,()=>this.b.emit(`${c} = document.createTextNode(String(${e}))`));return c}let a=this.resolveBareRead(e);if(a==="reactive"||a==="member-reactive"){let c=this.newRenderText();return this.renderLine(null,()=>this.b.emit(`${c} = document.createTextNode('')`)),this.renderEffect(null,()=>{this.b.emit(`${c}.data = `),this.expr(e),this.b.emit(";")}),c}if(e==="slot")return this.renderSlot(e,[]);if(G1(e))return this.renderChildComponent(e,e,[]);if(a==="member"){let c=this.newRenderText();return this.renderLine(null,()=>{this.b.emit(`${c} = document.createTextNode(String(`),this.expr(e),this.b.emit("))")}),c}let[o,l]=e.split("#");return this.renderTag(e,o||"div",[],[],l)}if(!y(e))throw this.positionedError(e,"emitter: unsupported render child");let t=e[0],r=typeof t==="string"?t:null;if(r==="if"&&e.length>=3)return this.renderCond(e);if(r==="switch"&&e.length===4)return this.renderSwitch(e);if(r==="for-in"&&e.length===6)return this.renderLoop(e);if(r==="for-of"&&e.length===6)throw this.positionedError(e,"emitter: `for … of` (object iteration) has no reconcile reading inside render — "+"__reconcile expects an array and crashes at mount; iterate entries instead: `for pair in Object.entries(obj)`");if(r==="for-as"&&e.length===6)throw this.positionedError(e,"emitter: an async loop has no render reading — reconciliation is synchronous; collect the items into a state "+"member and loop over it");if(r==="comprehension"||r==="while"||r==="loop")throw this.positionedError(e,"emitter: only `for … in` drives list rendering — while/loop/comprehensions have no reconcile reading inside "+"render");if(this.isEffectDecl(e)||this.isReactiveDecl(e)||this.isReadonlyDecl(e))throw this.positionedError(e,"emitter: declarations and effects have no render-body reading — declare members in the component body, above render");if(r==="slot")return this.renderSlot(e,e.slice(1));if(r!==null&&G1(r))return this.renderChildComponent(e,r,e.slice(1));if(r==="."&&e[1]==="this"&&typeof e[2]==="string")throw this.positionedError(e,`emitter: bare \`@${e[2]}\` is not rendered as text — use \`= @${e[2]}\` to render it`);let s=pi(e);if(s!==null)return this.renderChildComponent(e,{text:s,node:e},[]);let i=y(t)?pi(t):null;if(i!==null)return this.renderChildComponent(e,{text:i,node:t},e.slice(1));if(r==="."){let{tag:n,classes:a,id:o}=E.collectTemplateClasses(e);if(n!==null&&te(n)&&this.renderVarKind(n)===null)return this.renderTag(e,n,a,[],o);return this.renderTextExpr(e)}if(r==="__text__"){if(e.length>2)throw this.positionedError(e,"emitter: the `= expr` text form takes ONE expression — an indented continuation under the `=` line has no "+"render reading (inside render a leading `.` starts a NEW element, so the continuation cannot be a method chain; put the whole expression on the `=` line, or bind it in a method)",this.rstate.node);if(dt(e[1]))throw this.renderSpreadError(e[1]);return this.renderTextExpr(e[1]??"undefined",e,!0)}if(r!==null&&te(r.split("#")[0])&&e.length>=1&&this.renderVarKind(r)===null){let[n,a]=r.split("#");return this.renderTag(e,n||"div",[],e.slice(1),a)}if(y(t)){if(y(t[0])&&t[0][0]==="."&&t[0][2]==="__clsx"){let l=t[0][1],c=t.slice(1);if(y(l)){let{tag:h,classes:f,id:u}=E.collectTemplateClasses(l);if(h!==null&&te(h))return this.renderDynamicTag(e,h,c,e.slice(1),f,u)}else if(typeof l==="string"&&te(l.split("#")[0])){let[h,f]=l.split("#");return this.renderDynamicTag(e,h||"div",c,e.slice(1),[],f)}}let{tag:n,classes:a,id:o}=E.collectTemplateClasses(t);if(n!==null&&te(n)&&this.renderVarKind(n)===null){if(a.length>0&&a[a.length-1]==="__clsx")return this.renderDynamicTag(e,n,e.slice(1),[],a.slice(0,-1),o);return this.renderTag(e,n,a,e.slice(1),o)}}if(r==="->"||r==="=>")return this.renderChildBlock(e[2]);return this.renderTextExpr(e)}renderTextExpr(e,t=null,r=!1){let s=this.newRenderText(),i=t??(y(e)?e:null);this.checkCrossScopeLocals(e,i??this.rstate.node);let n=(a)=>{if(r&&t!==null)this.mark(t,"args",a);else a()};if(this.renderReactive(e))this.renderLine(i,()=>this.b.emit(`${s} = document.createTextNode('')`)),this.renderEffect(i,()=>{if(this.b.emit(`${s}.data = `),r)this.b.emit("String("),n(()=>this.renderExpr(e)),this.b.emit(")");else this.renderExpr(e);this.b.emit(";")},e);else this.renderLine(i,()=>{this.b.emit(`${s} = document.createTextNode(String(`),n(()=>this.withExpression(()=>this.expr(e))),this.b.emit("))")});return s}isInheritedTarget(e){let t=this.rstate;return t.frame.extendsTag===e&&t.sink.kind==="class"&&t.frame.inheritedBound!==!0}mergesRestKey(e,t){let r=this.rstate;return r.frame.extendsTag!==null&&r.frame.inheritedEl===e&&!r.frame.restReads.has(t)}emitRestRead(e){this.b.emit(`${this.renderSelf??"this"}.rest.value.${e}`)}hostMergeKey(e){let t=this.rstate;if(t.frame.extendsComponent===null)return null;if(e==="class"||e==="className")return t.frame.restReads.has("class")?null:"class";if(e==="style")return t.frame.restReads.has("style")?null:"style";return null}emitHostMerge(e,t){if(e==="class")this.b.emit("["),this.renderExpr(t),this.b.emit(", "),this.emitRestRead("class"),this.b.emit("]");else this.b.emit(`${this.renderSelf??"this"}._mergeRestStyle(`),this.renderExpr(t),this.b.emit(")")}bindInheritedTarget(e,t,r,s){let i=this.rstate;if(!this.isInheritedTarget(t))return;if(i.frame.inheritedBound=!0,i.frame.inheritedEl=r,this.renderLine(e,()=>this.b.emit(`this._inheritedEl = ${r}`)),s.length>0)this.renderLine(e,()=>this.b.emit(`this._inheritedOwn = new Set([${s.map((n)=>JSON.stringify(n)).join(", ")}])`));this.renderLine(e,()=>this.b.emit("this._applyRestToInheritedEl()"))}elementOwnKeys(e,t,r){let s=new Set;if(r)s.add("id");if(e)s.add("class");let i=(n)=>{for(let a of n.slice(1)){if(!y(a)||a.length!==3||typeof a[1]!=="string")continue;let o=a[1];s.add(o.startsWith('"')&&o.endsWith('"')?o.slice(1,-1):o)}};for(let n of t)if(O1(n))i(n);else if(T1(n)&&b1(n[2])){for(let a of n[2].slice(1))if(O1(a))i(a)}for(let n of["ref","key"])s.delete(n);for(let n of[...s])if(n.startsWith("__"))s.delete(n);if(s.has("class")||s.has("className"))s.add("class"),s.add("className");return[...s]}renderElementPrologue(e,t){let r=this.rstate,s=this.newRenderVar();if(r.tags.set(s,t),r.transitionSlot!==null&&r.transitionSlot.record===r.sink&&r.transitionSlot.el===null)r.transitionSlot.el=s;let i=r.svgDepth>0||fi.has(t);if(i)r.svgEls.add(s);let n=this.isInheritedTarget(t);return this.renderLine(e,()=>{let a=this.renderSelf??"this";if(this.b.emit(`${s} = `),n)this.b.emit(`${a}._asChild ? ${a}._adoptChild() : `);if(i)this.b.emit(`document.createElementNS('${E.SVG_NS}', `);else this.b.emit("document.createElement(");let o=this.emitQuotedPrimitive(t);if(o!==null&&ot(t,i))this.intrinsics.push({start:o[0],end:o[1],kind:"tag",tag:t,svg:i});this.b.emit(")")}),{el:s,isSvg:i}}renderElementBasics(e,t,r,s,i){let n=this.rstate;if(s)this.renderLine(e,()=>this.b.emit(`${r}.id = '${s}'`));if(this.bindInheritedTarget(e,t,r,i),n.frame.name!==null&&n.elCount===1&&n.sink.kind==="class")this.renderLine(e,()=>this.b.emit(`${r}.setAttribute('data-part', '${n.frame.name}')`))}renderTag(e,t,r,s,i){this.noteShorthandClasses(r,e);let n=this.rstate,{el:a,isSvg:o}=this.renderElementPrologue(e,t);this.renderElementBasics(e,t,a,i,this.elementOwnKeys(r.length>0,s,i));let{pendingClassArgs:l,pendingClassEl:c,pendingClassKeys:h}=n;if(r.length>0)n.pendingClassArgs=[`'${r.join(" ")}'`],n.pendingClassEl=a,n.pendingClassKeys=null;if(o)n.svgDepth++;if(this.renderChildren(a,s,e),o)n.svgDepth--;if(r.length>0){if(this.mergesRestKey(a,"class"))n.pendingClassArgs.push(()=>this.emitRestRead("class"));if(n.pendingClassArgs.length===1)this.renderLine(e,()=>this.b.emit(o?`${a}.setAttribute('class', '${r.join(" ")}')`:`${a}.className = '${r.join(" ")}'`));else{let f=n.pendingClassArgs.slice(1),u=n.pendingClassKeys??[],d=this.tsElReceiver(a);this.renderEffect(e,()=>{let p=this.runtimeName("__clsx");if(o){d.emit();let m=this.b.offset+1;this.b.emit(`.setAttribute('class', ${p}('${r.join(" ")}', `);for(let g of u)this.intrinsics.push({start:g[0],end:g[1],kind:"attr",name:"class",gen:m})}else{d.emit(),this.b.emit(".");let m=this.b.offset;this.b.emit(`className = ${p}('${r.join(" ")}', `);for(let g of u)this.intrinsics.push({start:g[0],end:g[1],kind:"classkey",gen:m})}f.forEach((m,g)=>{if(g>0)this.b.emit(", ");m()}),this.b.emit(o?"));":");")})}n.pendingClassKeys=h,n.pendingClassArgs=l,n.pendingClassEl=c}return a}renderDynamicTag(e,t,r,s,i,n){this.noteShorthandClasses(i,e);let a=this.rstate,{el:o,isSvg:l}=this.renderElementPrologue(e,t);this.renderElementBasics(e,t,o,n,this.elementOwnKeys(!0,s,n));for(let p of r)this.checkCrossScopeLocals(p,e);let{pendingClassArgs:c,pendingClassEl:h,pendingClassKeys:f}=a;if(a.pendingClassArgs=[...i.map((p)=>`'${p}'`),...r.map((p)=>()=>this.renderExpr(p))],a.pendingClassEl=o,a.pendingClassKeys=null,l)a.svgDepth++;if(this.renderChildren(o,s,e),l)a.svgDepth--;if(this.mergesRestKey(o,"class"))a.pendingClassArgs.push(()=>this.emitRestRead("class"));let u=a.pendingClassArgs,d=a.pendingClassKeys??[];if(u.length>0)this.renderEffect(e,()=>{let p=this.runtimeName("__clsx");this.b.emit(`${o}`);let m=this.b.offset+1;this.b.emit(l?`.setAttribute('class', ${p}(`:`.className = ${p}(`);for(let g of d)this.intrinsics.push(l?{start:g[0],end:g[1],kind:"attr",name:"class",gen:m}:{start:g[0],end:g[1],kind:"classkey",gen:m});u.forEach((g,b)=>{if(b>0)this.b.emit(", ");if(typeof g==="string")this.b.emit(g);else g()}),this.b.emit(l?"));":");")});return a.pendingClassKeys=f,a.pendingClassArgs=c,a.pendingClassEl=h,o}renderChildBlock(e){if(!b1(e)){let r=this.renderNode(e);if(r!=null)return r;let s=this.newRenderVar("empty");return this.renderLine(null,()=>this.b.emit(`${s} = document.createComment('')`)),s}let t=e.slice(1);if(t.length===0){let r=this.newRenderVar("empty");return this.renderLine(null,()=>this.b.emit(`${r} = document.createComment('')`)),r}return this.walkChildStmts(t)}renderChildren(e,t,r=null){let s=this._textOwner;this._textOwner=r;try{this.renderChildrenOf(e,t,r)}finally{this._textOwner=s}}renderAppend(e,t){this.renderLine(null,()=>{let r=t===this.rstate.frame?.asChildSlot?`if (!${this.renderSelf??"this"}._asChild) `:"";this.b.emit(`${r}${e}.appendChild(${t})`)})}renderChildrenOf(e,t,r){for(let s=0;s0)throw this.positionedError(i,"emitter: a parameterized function is not a render child — element children arrows carry no parameters "+"(an indented `.method (v) -> …` continuation re-reads as a NEW element inside render; put the chain on one "+"line or bind it in a method)",this.rstate.node);let n=i[2];if(b1(n))for(let a=1;athis.b.emit(`${l} = document.createTextNode('')`)),this.renderEffect(null,()=>{this.b.emit(`${l}.data = `),this.emitPrimitive(i),this.b.emit(";")});else this.renderLine(null,()=>{this.b.emit(`${l} = document.createTextNode(`),this.emitPrimitive(i),this.b.emit(")")});this.renderLine(null,()=>this.b.emit(`${e}.appendChild(${l})`));continue}if(te(n||"div")){let l=this.renderNode(i);this.renderAppend(e,l);continue}if(G1(n)&&n===i){let l=this.renderChildComponent(i,i,[]);this.renderAppend(e,l);continue}if(/^[A-Za-z_$][\w$]*$/.test(i)&&this.resolveBareRead(i)===null&&!this.inScope(i)){this.renderBareAttribute(e,i,t,s,r);continue}let o=this.newRenderText();if(i.startsWith('"')||i.startsWith("'")||i.startsWith("`"))this.renderLine(null,()=>this.b.emit(`${o} = document.createTextNode(${i})`));else{let l=this.resolveBareRead(i);if(l==="reactive"||l==="member-reactive")this.renderLine(null,()=>this.b.emit(`${o} = document.createTextNode('')`)),this.renderEffect(null,()=>{this.b.emit(`${o}.data = `),this.expr(i),this.b.emit(";")});else if(l==="member")this.renderLine(null,()=>{this.b.emit(`${o} = document.createTextNode(String(`),this.expr(i),this.b.emit("))")});else this.renderLine(null,()=>{this.b.emit(`${o} = document.createTextNode(`),this.expr(i),this.b.emit(")")})}this.renderLine(null,()=>this.b.emit(`${e}.appendChild(${o})`));continue}if(i!=null){let n=this.renderNode(i);this.renderAppend(e,n)}}}renderTagOf(e){return this.rstate.tags?.get(e)??"div"}renderBareAttribute(e,t,r,s,i){let n=this.renderTagOf(e),a=null;if(this.ts&&!di(n,t)){let c=this.bareChildSpan(r,s,i);if(c!==null)a=c,this.intrinsics.push({start:c[0],end:c[1],kind:"unknown-attr",tag:n,name:t,message:this.unknownAttrMessage(n,t,{bare:!0,svg:this.rstate?.svgEls?.has(e)===!0})})}let o=this.tsElReceiver(e),l=a===null?null:this.stores.idOf(i);this.renderLine(null,()=>{if(o.emit(),this.b.emit(".setAttribute("),l!==null)this.b.markSpan(l,"identifier",a[0],a[1],()=>this.emitQuotedPrimitive(t));else this.emitQuotedPrimitive(t);this.b.emit(", '')")})}renderOwnLineWord(e,t,r,s,i){if(typeof t!=="string"||!/^[A-Za-z_$][\w$]*$/.test(t))return!1;if(te(t)||G1(t))return!1;if(this.renderVarKind(t,t)!==null)return!1;if(this.resolveBareRead(t)!==null||this.inScope(t))return!1;return this.renderBareAttribute(e,t,r,s,i),!0}claimSlot(e){let t=this.rstate,r=e??this.rstate.node;if(t.sink.loopStack.length>0)throw this.positionedError(r,"emitter: `slot` inside a loop row has no working reading — `children` is ONE node, and every row would fight "+"over it; project it once, outside the loop",this.rstate.node);if(t.slotSeen)throw this.positionedError(r,"emitter: a second `slot` in one render — `children` is ONE node, and a second projection point MOVES it "+"",this.rstate.node);t.slotSeen=!0,this.noteVocabulary("render-channel","slot",r)}childrenReadText(){return`${this.renderSelf??"this"}.children${this.memberIsReactive("children")?".value":""}`}emitChildrenRead(e){if(this.b.emit(`${this.renderSelf??"this"}.`),e!==null)this.intrinsics.push({start:e[0],end:e[1],kind:"slot",gen:this.b.offset});if(this.b.emit("children"),this.memberIsReactive("children"))this.b.emit(".value")}renderSlot(e,t){let r=y(e)?e:null;if(t.length>0)throw this.positionedError(r??e,"emitter: `slot` takes no arguments — fallback content has no "+"reading here (render it through a conditional around the slot)",this.rstate.node);this.claimSlot(r);let s=this.newRenderVar("slot");if(this.rstate.frame.extendsTag!==null&&this.rstate.sink.kind==="class")this.rstate.frame.asChildSlot=s;let i=this.ts?this.wordSpanIn("slot",r??this.rstate.node):null;return this.renderLine(r,()=>{let n=this.childrenReadText();this.b.emit(`${s} = `),this.emitChildrenRead(i),this.b.emit(` instanceof Node ? ${n} : (${n} != null ? document.createTextNode(String(${n})) : document.createComment(''))`)}),s}renderChildComponent(e,t,r){let s=this.rstate,i=s.sink,n=y(e)?e:null,a=typeof t==="string"?null:t;if(a!==null)t=a.text;let o=a!==null?Wt(a.text):t,l=(N)=>{if(this.ts&&N!==null)this.componentUses.push({start:N[0],end:N[1],name:t})},c;if(a!==null){if(this.renderVarKind(o)===null&&this.resolveBareRead(o)===null&&!this.inScope(o)&&!(this.moduleBound!==void 0&&this.moduleBound.has(o)))throw this.positionedError(n??e,`emitter: component '${t}' is not defined in this module — a child component's path starts at a module `+`binding, an import, or a component member, and '${o}' is none of these`,this.rstate.node);let N=this.stores.idOf(a.node)??null;c=()=>{l(N!==null?this.stores.selfSpan(N):null),this.renderExpr(a.node)}}else if(this.renderVarKind(t)!==null)c=()=>l(this.emitPrimitive(t));else{let N=this.resolveBareRead(t);if(N==="member"||N==="member-reactive")c=()=>{if(this.b.emit(`${this.renderSelf??"this"}.`),l(this.emitPrimitive(t)),N==="member-reactive")this.b.emit(".value")};else if(N==="reactive")c=()=>{l(this.emitPrimitive(t)),this.b.emit(".value")};else if(this.inScope(t)||this.moduleBound!==void 0&&this.moduleBound.has(t))c=()=>l(this.emitPrimitive(t));else throw this.positionedError(n??e,`emitter: component '${t}' is not defined in this module — a child component must be a module binding, `+"an import, or a component member (an undefined name would degrade to a comment placeholder at mount)",this.rstate.node)}let h=this.newRenderVar("inst"),f=this.newRenderVar("el"),u=s.frame.extendsComponent===t&&i.kind==="class"&&s.frame.inheritedBound!==!0&&this.renderVarKind(o)===null&&this.resolveBareRead(o)===null;if(u)s.frame.inheritedBound=!0;let d=[],p=[],m=[],g=[],b=new Map,S={prop:"an explicit `children:` prop",body:"element body content",slot:"a nested `slot`"},w=null,R=(N,V,B="prop")=>{let r1=N.startsWith("__bind_")&&N.endsWith("__")?N.slice(7,-2):N;if(b.has(r1)){if(r1==="children")throw this.positionedError(V??n??e,`emitter: this child component receives \`children\` TWICE — ${S[w]} beside ${S[B]}; give the children ONE spelling: the element body (indented or inline), the explicit \`children:\` prop, or a nested \`slot\` forwarding the received children`,this.rstate.node);throw this.positionedError(V??n??e,`emitter: duplicate prop '${r1}' on a child component — duplicate keys emit one object literal where the `+"last silently wins, and on an extends child the pair leaves two live writers racing over the inherited element; pass one value per prop",this.rstate.node)}if(b.set(r1,V??null),r1==="children")w=B},T=(N)=>{if(dt(N))throw this.renderSpreadError(N,t);if(!y(N)||N.length!==3)throw this.positionedError(N,"emitter: unsupported attribute form on a child component",n??this.rstate.node);if(s.suppressedPairs.has(N))return;let[,V,B]=N;if(y(V)&&V[0]==="."&&V[1]==="this"&&typeof V[2]==="string"){this.checkBareEventHandler(N,B),this.checkCrossScopeLocals(B,N),m.push({pair:N,event:V[2],value:B});return}if(G(N),typeof V!=="string")throw this.positionedError(N,"emitter: computed prop keys are not supported on a child component",n??this.rstate.node);let r1=V.startsWith('"')&&V.endsWith('"')?V.slice(1,-1):V;if(r1==="__transition__")throw this.positionedError(N,"emitter: a transition directive has no child-component reading — the enter/leave phases animate ELEMENTS "+"; put it on the branch's first element, inside the child's own render",this.rstate.node);if(r1==="ref")throw this.positionedError(N,"emitter: `ref:` captures ELEMENTS — on a child component it has no reading "+"(a dead prop, silently); put the ref on an element inside the child, or emit the instance through an event",this.rstate.node);if(r1==="key")throw this.positionedError(N,"emitter: `key:` identifies loop rows — it is read only on the FIRST element of a `for` body inside render; "+"anywhere else it would leak into the DOM as an attribute",this.rstate.node);if(R(r1,N),r1.startsWith("__bind_")&&r1.endsWith("__")){this.checkUserSpelledBind(N),this.noteVocabulary("render-channel",r1,N);let h1=r1.slice(7,-2),p1=this.childContainerRef(B);if(p1!==null){d.push({pair:N,key:V,fn:p1});return}let n1=(u1,c1)=>this.positionedError(N,`emitter: \`${h1} <=> …\` on a child component shares a reactive CONTAINER, and ${u1} ; ${c1}`,this.rstate.node);if(typeof B==="string"&&this.renderVarKind(B)===null){let u1=this.resolveBareRead(B);if(u1==="member")throw n1(`'${B}' is a plain member`,"declare it with ':=' to share it");if(u1===null&&!this.inScope(B))throw n1(`'${B}' is not declared`,"bind a reactive member or module reactive name")}if(y(B)&&B[0]==="."&&B[1]==="this"&&B.length===3&&typeof B[2]==="string")throw n1(`'@${B[2]}' is not a reactive member`,"declare it with ':=' to share it");if(typeof B!=="string"&&!E.isChainNode(B))throw n1("this expression is never a container","bind a reactive member or module reactive name");this.checkCrossScopeLocals(B,N),d.push({pair:N,key:V,fn:()=>this.renderExpr(B)});return}let f1=u?this.hostMergeKey(r1):null;if(f1!==null){this.checkCrossScopeLocals(B,N),d.push({pair:N,key:V,fn:()=>this.emitHostMerge(f1,B)}),p.push({pair:N,key:V,value:B,merge:f1});return}this.addChildProp(d,p,N,V,r1,B)},j=(N,V)=>{throw this.positionedError(N,`emitter: bare '${V}' under a child component is ambiguous — it names an HTML element AND a `+`value in scope, and the value would win silently; render the value with \`= ${V}\`, or give the element content or attributes`,this.rstate.node)},M=(N,V)=>{R(V,null),d.push({pair:null,key:V,span:O(V),fn:()=>this.b.emit("true")})},x=n!==null&&this.stores.idOf(n)!==null?this.stores.selfSpan(this.stores.idOf(n)):null,A=x!==null&&this.b.source!==null?x[0]:null,C=(N)=>{if(A===null||N==null)return;if(y(N)){let V=this.stores.idOf(N),B=V!==null?this.stores.selfSpan(V):null;A=B!==null?Math.max(A,B[1]):null;return}if(typeof N==="string"){let V=this.b.source.indexOf(N,A);A=V>=0&&V+N.length<=x[1]?V+N.length:null;return}A=null},O=(N)=>{if(A===null)return null;let V=new RegExp(`(?x[1])return null;return A=B.index+N.length,[B.index,B.index+N.length]},W=new Map,G=(N)=>{if(!this.tsDirectivesArmed)return;let V=this.tsDirectiveMap.get(N);if(V===void 0)return;this.tsDirectiveMap.delete(N),W.set(N,[...W.get(N)??[],...V])},Y=(N)=>{if(!this.tsDirectivesArmed)return;let V=this.tsDirectiveMap.get(N);if(V===void 0)return;let B=N.slice(1).find((r1)=>y(r1));if(B===void 0||s.suppressedPairs.has(B))return;this.tsDirectiveMap.delete(N),this.tsDirectiveMap.set(B,[...V,...this.tsDirectiveMap.get(B)??[]])},k=[],v=!1,U=(N)=>!y(N)&&!(typeof N==="string"&&((te(N.split(/[#.]/)[0])||G1(N.split(/[#.]/)[0]))&&this.renderVarKind(N)===null&&this.resolveBareRead(N)===null)),Z=(N)=>{if(N==null)return;if(dt(N))throw this.renderSpreadError(N,t);let V=typeof N==="string"&&ht.test(N)&&this.renderVarKind(N)===null&&this.resolveBareRead(N)===null;if(V&&(te(N)||N==="slot")&&(this.inScope(N)||this.moduleBound.has(N)))j(n??this.rstate.node,N);if(V&&N==="slot"){v=!0,C(N),k.push(N);return}if(V&&!this.inScope(N)&&!this.moduleBound.has(N)){M(n??this.rstate.node,N);return}C(N),k.push(N)};for(let N of r)if(O1(N)){Y(N);for(let V of N.slice(1))T(V);C(N)}else if(T1(N)){if(y(N[1])&&N[1].length>0)throw this.positionedError(N,`emitter: a parameterized function is not a render child — the children of '${t}' arrive as a bare block (a callback the component should run is passed as a named prop)`,this.rstate.node);let V=N[2],B=b1(V)?V.slice(1):V!=null?[V]:[];for(let r1 of B)if(O1(r1)){Y(r1);for(let o1 of r1.slice(1))T(o1);C(r1)}else Z(r1)}else Z(N);let P=(N)=>{if(!U(N))return this.renderNode(N);this.checkCrossScopeLocals(N,n??this.rstate.node);let V=this.newRenderText();if(this.renderReactive(N))this.renderLine(n,()=>this.b.emit(`${V} = document.createTextNode('')`)),this.renderEffect(n,()=>{this.b.emit(`${V}.data = `),this.renderExpr(N),this.b.emit(";")},N);else this.renderLine(n,()=>{this.b.emit(`${V} = document.createTextNode(`),this.renderExpr(N),this.b.emit(")")});return V},X=null,F=k.filter((N)=>!this.isRenderBinding(N));if(F.length===1&&v){R("children",null,"slot"),this.claimSlot(n);let N=this.ts?this.wordSpanIn("slot",n??this.rstate.node):null;for(let V of k)if(V!=="slot")P(V);d.push({pair:null,key:"children",fn:()=>this.emitChildrenRead(N)})}else if(F.length===1)R("children",null,"body"),X=()=>{let N=null;for(let V of k){let B=P(V);if(B!=null)N=B}return N};else if(F.length>1)R("children",null,"body"),X=()=>{let N=this.newRenderVar("frag");this.renderLine(null,()=>this.b.emit(`${N} = document.createDocumentFragment()`));for(let V of k){let B=P(V);if(B!=null)this.renderLine(null,()=>this.b.emit(`${N}.appendChild(${B})`))}return N};else for(let N of k)P(N);let e1=new Set([...i.bindings,...i.locals]);if(i.vars!==null)for(let N of i.vars)e1.add(N);if(y(e))E.collectLeafNames(e,e1);let Q=E.mintName("__prev",e1),a1=E.mintName("__kid",e1),d1=E.mintName("__childErr",e1);if(i.kind!=="class")i.hasKids=!0;let I=(N)=>this.renderLine(n,N,!1),l1=()=>this.renderSelf??"this",L=this.projectionHost;this.threadProjectionHost(L);let t1=()=>L!==null&&L.startsWith("this.")?`${l1()}.${L.slice(5)}`:L;if(I(()=>this.b.emit(L!==null?`{ const ${Q} = ${t1()}._beginProjection(${l1()}); try {`:`{ const ${Q} = ${this.runtimeName("__pushComponent")}(${l1()}); try {`)),I(()=>this.b.emit("try {")),I(()=>{if(this.b.emit(`${h} = new `),c(),this.b.emit("("),d.length===0)this.b.emit(u?`{ ...${l1()}._rest }`:"{}");else{let N=W.size>0,V=this.replayPad+" ";if(this.b.emit(N?"{":"{ "),u)this.b.emit(N?` +${V}...${l1()}._rest,`:`...${l1()}._rest, `);d.forEach((B,r1)=>{if(N){if(r1>0)this.b.emit(",");this.b.emit(` +`);let f1=B.pair!==null?W.get(B.pair):void 0;if(this.ts&&f1!==void 0)for(let h1 of f1)this.tsDirectiveLine(h1,V,!0);this.b.emit(V)}else if(r1>0)this.b.emit(", ");let o1=()=>{let f1=(p1)=>{let n1=this.b.offset,u1=p1();if(this.ts)this.attrNames.push([n1,this.b.offset]);if("routeKey"in B)B.routeKey=[n1,this.b.offset];if(this.ts&&u1!=null){let c1=B.pair!==null?this.stores.idOf(B.pair):null,K=c1!==null?this.stores.selfSpan(c1):null,_=[u1[0],u1[1]];this.renderPairs.push({key:_,pair:K??_,sites:[[n1,this.b.offset]]})}},h1=y(n)?this.stores.idOf(n):null;if(this.ts&&B.span!=null&&h1!==null){f1(()=>(this.b.markSpan(h1,"shorthandProp",B.span[0],B.span[1],()=>this.b.emit(B.key)),[B.span[0],B.span[1]])),this.b.emit(": "),B.fn();return}if(B.key.startsWith("__bind_")&&B.key.endsWith("__"))f1(()=>{let p1=this.b.offset;this.b.emit("__bind_");let n1=this.emitRewrittenPrimitive(B.key,B.key.slice(7,-2));if(this.ts&&n1!==null)this.intrinsics.push({start:n1[0],end:n1[1],kind:"bind",name:B.key.slice(7,-2),gen:p1});return this.b.emit("__"),n1});else f1(()=>this.emitPrimitive(B.key));this.b.emit(": "),B.fn()};if(B.pair!==null&&this.stores.idOf(B.pair)!==null)this.mark(B.pair,"$self",o1);else o1()}),this.b.emit(N?` +${this.replayPad}}`:" }")}this.b.emit(");")}),I(()=>this.b.emit(`if (${h} && ${h}._initFailed) {`)),I(()=>this.b.emit(` ${h} = null;`)),I(()=>this.b.emit(` ${f} = document.createComment('rip:child-init-failed: ${t}');`)),X!==null){I(()=>this.b.emit("} else {")),I(()=>this.b.emit(`{ const ${a1} = ${h}._beginProjection(${l1()}); try {`));let N=this.projectionHost;this.projectionHost=h;let V=i.setups.length,B;try{B=X()}finally{this.projectionHost=N}let r1=(f1)=>({kind:"raw",node:null,fn:(h1)=>{this.b.emit(`${h1}if (${h}) { +`),this.replaySetups({setups:f1},`${h1} `),this.b.emit(`${h1}} +`)}}),o1=[];for(let f1 of i.setups.splice(V)){if(f1.latch!==!0){o1.push(f1);continue}if(o1.length>0)i.setups.push(r1(o1));o1=[],i.setups.push(f1)}if(o1.length>0)i.setups.push(r1(o1));I(()=>this.b.emit(`} finally { ${h}._endProjection(${a1}); } }`)),I(()=>this.b.emit(`${h}._setChildren(${B});`))}if(I(()=>{this.b.emit(X!==null?"if (":"} else if (");let N=()=>this.b.emit(`${h}._mountCreate()`);if(n!==null)this.mark(n,"$self",N);else N();this.b.emit(") {")}),I(()=>this.b.emit(` ${f} = ${h}._root;`)),u){let N=new Set([...b.keys()].filter((B)=>B!=="children"));if(N.has("class")||N.has("className"))N.add("class"),N.add("className");let V=[...N].map((B)=>JSON.stringify(B)).join(", ");I(()=>this.b.emit(` ${l1()}._inheritedInst = ${h};`)),I(()=>this.b.emit(` ${l1()}._inheritedOwn = new Set([${V}]);`))}if(i.kind==="class")I(()=>this.b.emit(` (this._children || (this._children = [])).push(${h});`));else I(()=>this.b.emit(` ${i.kidsVar}.push(${h});`));if(I(()=>this.b.emit("} else {")),I(()=>this.b.emit(` ${h} = null;`)),I(()=>this.b.emit(` ${f} = document.createComment('rip:child-error: ${t}');`)),I(()=>this.b.emit("}")),X!==null)I(()=>this.b.emit("}"));I(()=>this.b.emit(`} catch (${d1}) {`)),I(()=>this.b.emit(` ${this.runtimeName("__reportChildFailure")}('${t}', ${d1});`)),I(()=>this.b.emit(` ${h} = null;`)),I(()=>this.b.emit(` ${f} = document.createComment('rip:child-error: ${t}');`)),I(()=>this.b.emit("}")),I(()=>this.b.emit(L!==null?`} finally { ${t1()}._endProjection(${Q}); } }`:`} finally { ${this.runtimeName("__popComponent")}(${Q}); } }`));for(let{pair:N,event:V,value:B}of m){if(this.ts){let f1=y(N)&&y(N[1])?N[1]:null,h1=f1!==null?this.stores.idOf(f1)??null:null,p1=h1!==null?this.stores.selfSpan(h1):null;if(p1!==null)this.intrinsics.push({start:p1[0],end:p1[1],kind:"event",name:V,type:this.tsEventTypeText([V])!==null?`HTMLElementEventMap['${V}']`:null,child:t})}let r1=new Set;E.collectLeafNames(B,r1);let o1=E.mintName("e",r1);this.renderLine(N,()=>{let f1=`(${h}._nodes?.[0] ?? ${f})`;if(!this.ts)this.b.emit(`if (${h}) ${f1}.addEventListener('${V}', (${o1}`);else this.b.emit(`if (${h}) ${f1}.addEventListener(`),this.emitQuotedPrimitive(V),this.b.emit(`, (${o1}`);this.tsScaffoldAny(),this.b.emit(`) => ${this.runtimeName("__batch")}(() => (`),this.tsHandlerCast(()=>this.withExpression(()=>this.expr(B))),this.b.emit(`)(${o1})))`)})}i.setups.push({kind:"raw",latch:!0,fn:(N)=>{this.b.emit(N);let V=()=>{this.b.emit(`if (${h} && ${h}._state === 'mounting') { +${N} ${f} = ${h}._mountSetup(document.createComment('rip:child-error: ${t}')); +`);let B=this.rstate.fragChildren.get(i.root),r1=B!==void 0?B[0]:i.root;if(i.kind!=="class"&&r1===f){if(this.b.emit(`${N} `),this.ts)this.b.tsOnly(()=>this.b.emit("("));if(this.b.emit("this"),this.ts)this.b.tsOnly(()=>this.b.emit(" as any)"));this.b.emit(`._first = ${f}; +`)}this.b.emit(`${N}}`)};if(n!==null)this.mark(n,"$self",V);else V();this.b.emit(` +`)}});for(let{pair:N,key:V,value:B,merge:r1=null}of p){let o1=V.startsWith('"')&&V.endsWith('"')?V.slice(1,-1):V;this.renderEffect(N,()=>{if(this.b.emit(`if (${h}) ${h}._updateProp('${o1}', `),r1!==null)this.emitHostMerge(r1,B);else this.renderExpr(B);this.b.emit(");")},B)}return f}addChildProp(e,t,r,s,i,n){let a=this.childContainerRef(n);if(a!==null){e.push({pair:r,key:s,fn:a});return}if(this.checkCrossScopeLocals(n,r),this.ts&&this.routesUnion!==null&&i==="href"&&this.isRouteLiteralValue(n)){this._needsRouteHelper=!0;let l={pair:r,key:s,routeKey:null};l.fn=()=>{this.b.tsOnly(()=>this.b.emit("__ripRoute("));let c=this.b.offset;this.renderExpr(n);let h=this.b.offset;if(this.b.tsOnly(()=>this.b.emit(")")),l.routeKey!==null)this.routeWrapSpans.push({key:l.routeKey,value:[c,h]})},e.push(l)}else e.push({pair:r,key:s,fn:()=>this.renderExpr(n)});if(!T1(n)&&this.renderReactive(n))t.push({pair:r,key:s,value:n})}childContainerRef(e){if(typeof e==="string"){if(this.renderVarKind(e)!==null)return null;let t=this.resolveBareRead(e);if(t==="member-reactive")return this.narrowedContainer(e,()=>{this.b.emit(`${this.renderSelf??"this"}.`);let r=this.emitPrimitive(e);if(this.ts&&r!==null)this.memberDecls.push({start:r[0],end:r[1]});return r});if(t==="reactive")return this.narrowedContainer(e,()=>this.emitPrimitive(e));return null}if(y(e)&&e[0]==="."&&e[1]==="this"&&e.length===3&&typeof e[2]==="string"&&this.memberIsReactive(e[2]))return this.narrowedContainer(e[2],()=>(this.b.emit(`${this.renderSelf??"this"}.`),this.emitPrimitive(e[2])));return null}narrowedContainer(e,t){if(!this.ts)return t;return()=>{if(!this.activeNarrowed().some((i)=>i===e||y(i)&&i[0]==="."&&i[1]==="this"&&i.length===3&&i[2]===e))return t();this._needsNarrowedHelper=!0,this.b.tsOnly(()=>this.b.emit("__ripNarrowed("));let s=t();if(this.b.tsOnly(()=>this.b.emit(")")),s!=null)this.narrowedDecls.push({start:s[0],end:s[1]})}}isRouteLiteralValue(e){let t=(r)=>typeof r==="string"&&/^["'`]\//.test(r);return t(e)||y(e)&&e[0]==="str"&&t(e[1])}renderAttributes(e,t){let r=this.rstate;if(this.ts&&this.tsDirectivesArmed&&this.tsDirectiveMap.has(t)){let s=t.slice(1).find((n)=>y(n));if(s!==void 0&&s.length===3&&!r.suppressedPairs.has(s)&&(()=>{let n=s[1];if(typeof n!=="string")return!0;if(n.startsWith('"')&&n.endsWith('"'))n=n.slice(1,-1);if((n==="class"||n==="className")&&r.pendingClassArgs!==null&&r.pendingClassEl===e)return!1;if(n==="ref"&&this.rstate.sink.kind!=="class")return!1;return!0})()){let n=this.tsDirectiveMap.get(t);this.tsDirectiveMap.delete(t),this.tsDirectiveMap.set(s,[...n,...this.tsDirectiveMap.get(s)??[]])}}for(let s of t.slice(1)){if(dt(s))throw this.renderSpreadError(s);if(!y(s)||s.length!==3)throw this.positionedError(s,"emitter: unsupported attribute form in render",t);if(r.suppressedPairs.has(s))continue;let[,i,n]=s;this.checkCrossScopeLocals(n,s);let a=null;if(this.ts){let M=this.stores.idOf(s),x=M!==null?this.stores.selfSpan(M):null,A=this.b.source;if(x!==null&&A!==null){let C=x[0];while(Cx[0])a={key:[x[0],C],pair:[x[0],x[1]],sites:[]},this.renderPairs.push(a)}}let o=(M)=>{if(a!==null&&M!==null&&M[1]>M[0])a.sites.push(M)},l=a!==null?a.key:null,c=(M)=>{if(l===null)return M();let x=this.b.claimWithin;this.b.claimWithin=l;try{return M()}finally{this.b.claimWithin=x}},h=(M)=>{if(l===null)return M();let x=this.primitiveAvoid;this.primitiveAvoid=[...x??[],l];try{return M()}finally{this.primitiveAvoid=x}};if(y(i)&&i[0]==="."&&i[1]==="this"&&typeof i[2]==="string"){let M=i[2];if(this.checkBareEventHandler(s,n),this.rstate.sink.kind==="loop"&&this.loopVarNames().size>0&&Ee(n,this.loopVarNames()))this.rstate.sink.forceNonStatic=!0;let x=new Set;E.collectLeafNames(n,x);let A=E.mintName("e",x),C=this.tsElReceiver(e),O=this.ts?this.tsEventTypeText([M],C.hostText):null;if(this.ts){let W=this.stores.idOf(i)??null,G=W!==null?this.stores.selfSpan(W):null;if(G!==null)this.intrinsics.push({start:G[0],end:G[1],kind:"event",name:M,type:O,tag:this.rstate?.tags?.get(e)??null,svg:this.rstate?.svgEls?.has(e)===!0})}this.renderLine(s,()=>{let W=this.renderSelf??"this";if(!this.ts)this.b.emit(`${e}.addEventListener('${M}', (${A}`);else C.emit(),this.b.emit(".addEventListener("),c(()=>this.emitQuotedPrimitive(M)),this.b.emit(`, (${A}`);if(this.tsScaffoldAny(),this.b.emit(`) => ${this.runtimeName("__batch")}(() => `),typeof n==="string"&&this.renderVarKind(n)===null&&this.cframes[this.cframes.length-1].members.has(n)){if(this.ts)this.b.tsOnly(()=>this.b.emit("("));let G=this.b.offset;if(this.b.emit(`${W}.`),h(()=>this.emitPrimitive(n)),this.ts)this.b.tsOnly(()=>this.b.emit(O!==null?` as (e: ${O}) => unknown)`:" as any)"));if(this.ts&&O!==null)o([G,this.b.offset-1]);this.b.emit(`(${A})`)}else{let G=!this.ts?null:T1(n)&&(n[1].length===0||n[1].length===1&&typeof n[1][0]==="string")?O??"any":T1(n)?null:O;this.b.emit("("),o(this.tsHandlerCast(()=>h(()=>this.withExpression(()=>this.expr(n))),G)),this.b.emit(`)(${A})`)}this.b.emit("))")});continue}if(typeof i!=="string")throw this.positionedError(s,"emitter: computed attribute keys are not supported in render",t);let f=i;if(i.startsWith('"')&&i.endsWith('"'))i=i.slice(1,-1);if(i==="__transition__"){this.noteVocabulary("render-channel",i,s),this.renderTransition(e,s,n,t);continue}if(i==="ref"){this.noteVocabulary("render-channel",i,s),this.renderRef(e,s,n,t,o);continue}if(i.startsWith("__bind_")&&i.endsWith("__")){this.noteVocabulary("render-channel",i,s),this.checkUserSpelledBind(s);let M=i.slice(7,-2);this.renderBind(e,s,M,n,t,o);continue}if(i==="key")throw this.positionedError(s,"emitter: `key:` identifies loop rows — it is read only on the FIRST element of a `for` body inside render; "+"anywhere else it would leak into the DOM as an attribute",t);if(i==="class"||i==="className"){let M=(x,A)=>{if(this.ts&&x!==null)this.intrinsics.push({start:x[0],end:x[1],kind:"attr",name:"class",gen:A})};if(r.pendingClassArgs!==null&&r.pendingClassEl===e){this.checkSetupLocalRefs(n,s);let x=this.stores.idOf(s),A=x!==null?this.stores.selfSpan(x):null;if(this.ts&&A!==null)(r.pendingClassKeys??=[]).push([A[0],A[0]+i.length]);r.pendingClassArgs.push(()=>o(this.renderExpr(n)))}else if(this.renderReactive(n)||this.mergesRestKey(e,"class")){let x=r.svgDepth>0,A=this.tsElReceiver(e),C=this.mergesRestKey(e,"class");this.renderEffect(s,()=>{let O=this.runtimeName("__clsx");if(A.emit(),x){let W=this.b.offset+1;this.b.emit(".setAttribute('"),M(this.emitKeyAs(i,"class"),W),this.b.emit(`', ${O}(`)}else this.b.emit("."),this.emitPropertyRoadKey(()=>this.emitKeyAs(i,"className")),this.b.emit(` = ${O}(`);if(o(this.renderExpr(n)),C)this.b.emit(", "),this.emitRestRead("class");this.b.emit(x?"));":");")},n)}else{let x=r.svgDepth>0,A=y(n),C=this.tsElReceiver(e);this.renderLine(s,()=>{let O=this.b.offset;if(C.emit(),x){let G=this.b.offset+1;this.b.emit(".setAttribute('"),M(this.emitKeyAs(i,"class"),G),this.b.emit("', ")}else{if(this.b.emit("."),this.emitPropertyRoadKey(()=>this.emitKeyAs(i,"className")),!A)o([O,this.b.offset]);this.b.emit(" = ")}if(A)this.b.emit(`${this.runtimeName("__clsx")}(`);let W=this.renderExpr(n);if(x||A)o(W);if(A)this.b.emit(")");if(x)this.b.emit(")")})}continue}if((i==="value"||i==="checked")&&this.renderReactive(n)){let M=this.tsElReceiver(e);this.renderEffect(s,()=>{let x=this.b.offset;if(M.emit(),this.b.emit("."),this.emitPropertyRoadKey(()=>this.emitPrimitive(i)),o([x,this.b.offset]),this.b.emit(" = "),this.renderExpr(n),i==="value"&&!E.isStringLiteral(n))this.b.emit(" ?? ''");this.b.emit(";")},n);continue}if(i==="innerHTML"||i==="textContent"||i==="innerText"){let M=this.tsElReceiver(e),x=()=>{let A=this.b.offset;M.emit(),this.b.emit("."),this.emitPropertyRoadKey(()=>this.emitPrimitive(i)),o([A,this.b.offset]),this.b.emit(" = "),this.renderExpr(n)};if(this.renderReactive(n))this.renderEffect(s,()=>{x(),this.b.emit(";")},n);else this.renderLine(s,x);continue}if(E.BOOLEAN_ATTRS.has(i)){let M=this.tsElReceiver(e),x=()=>{let A=c(()=>this.emitKeyAs(f,i));if(this.ts&&M.surfaced&&A!==null)this.intrinsics.push({start:A[0],end:A[1],kind:"attr",name:i,type:"boolean | undefined"})};if(this.renderReactive(n))this.renderEffect(s,()=>{if(M.emit(),this.b.emit(".toggleAttribute('"),x(),this.b.emit("', !!"),this.ts)this.b.tsOnly(()=>this.b.emit("("));h(()=>this.renderExpr(n));let A=this.b.offset+1;if(this.ts)this.b.tsOnly(()=>this.b.emit(" satisfies boolean | undefined)"));if(this.ts)o([A,A+9]);this.b.emit(");")},n);else this.renderLine(s,()=>{this.b.emit("if ("),h(()=>this.withExpression(()=>this.expr(n)));let A=this.b.offset+1;if(this.ts)this.b.tsOnly(()=>this.b.emit(" satisfies boolean | undefined"));if(this.ts)o([A,A+9]);this.b.emit(") "),M.emit(),this.b.emit(".setAttribute('"),x(),this.b.emit("', '')")});continue}if(i==="style"){let M=this.tsElReceiver(e),x=this.mergesRestKey(e,"style"),A=()=>{if(this.b.emit("{ const __v"),o([this.b.offset-3,this.b.offset]),this.ts)this.b.tsOnly(()=>{if(M.surfaced)this.b.emit(`: ${M.valsName}['`),this.emitKeyAs(f,i),this.b.emit("'] | undefined");else this.b.emit(": any")});this.b.emit(" = "),this.renderExpr(n),this.b.emit(`; ${this.runtimeName("__style")}(`),M.emit(),this.b.emit(x?`, ${this.renderSelf??"this"}._mergeRestStyle(__v)); }`:", __v); }")};if(x||this.renderReactive(n))this.renderEffect(s,A,n);else this.renderLine(s,A,!1);if(this.ts&&M.surfaced&&a!==null)this.intrinsics.push({start:a.key[0],end:a.key[1],kind:"attr",name:i,type:"string | __RipCSSProperties | undefined"});continue}let u=this.ts&&this.routesUnion!==null&&i==="href"&&this.rstate.tags?.get(e)==="a"&&this.isRouteLiteralValue(n);if(u)this._needsRouteHelper=!0;let d=this.tsElReceiver(e),p=!(typeof n==="string"&&(!Z1(n)||n==="true"||n==="false")||y(n)&&n[0]==="str"),m=null,g=null,b=!1,S=()=>{if(b||!this.ts||!d.surfaced||m===null||g===null)return;b=!0,this.intrinsics.push(u?{start:m[0],end:m[1],kind:"attr",name:i,type:this.routesUnion,route:!0}:{start:m[0],end:m[1],kind:"attr",name:i,gen:g});let M=this.renderTagOf(e);if(!di(M,i))this.intrinsics.push({start:m[0],end:m[1],kind:"unknown-attr",tag:M,name:i,message:this.unknownAttrMessage(M,i,{bare:!1,svg:this.rstate?.svgEls?.has(e)===!0})})},w=()=>{g=this.b.offset+1,this.b.emit(".setAttribute('"),S()},R=()=>{let M=c(()=>this.emitKeyAs(f,i));if(m===null)m=M;S()},T=()=>h(()=>this.renderExpr(n)),j=()=>{if(!this.ts)return;this.b.tsOnly(()=>this.b.emit(d.surfaced?`: ${d.valsName}['${i}'] | undefined`:": any"))};if(this.renderReactive(n))if(p)this.renderEffect(s,()=>{this.b.emit("{ const __v"),o([this.b.offset-3,this.b.offset]),j(),this.b.emit(" = "),T(),this.b.emit("; __v == null ? "),d.emit(),this.b.emit(".removeAttribute('"),R(),this.b.emit("') : "),d.emit(),w(),R(),this.b.emit("', __v); }")},n);else this.renderEffect(s,()=>{d.emit(),w();let M=this.b.offset;R();let x=this.b.offset;if(this.b.emit("', "),u)this.b.tsOnly(()=>this.b.emit("__ripRoute("));let A=this.b.offset;o(T());let C=this.b.offset;if(this.ts){if(u)this.b.tsOnly(()=>this.b.emit(")"));else if(!d.surfaced)this.b.tsOnly(()=>this.b.emit(" as any"))}if(this.b.emit(");"),u)this.routeWrapSpans.push({key:[M,x],value:[A,C]})},n);else if(p)this.renderLine(s,()=>{this.b.emit("{ const __v"),o([this.b.offset-3,this.b.offset]),j(),this.b.emit(" = "),T(),this.b.emit("; if (__v != null) "),d.emit(),w(),R(),this.b.emit("', __v); }")},!1);else this.renderLine(s,()=>{d.emit(),w();let M=this.b.offset;R();let x=this.b.offset;if(this.b.emit("', "),u)this.b.tsOnly(()=>this.b.emit("__ripRoute("));let A=this.b.offset;o(T());let C=this.b.offset;if(this.ts){if(u)this.b.tsOnly(()=>this.b.emit(")"));else if(!d.surfaced)this.b.tsOnly(()=>this.b.emit(" as any"))}if(this.b.emit(")"),u)this.routeWrapSpans.push({key:[M,x],value:[A,C]})})}}loopVarNames(){let e=new Set;for(let t of this.rstate.sink.loopStack)e.add(t.itemVar),e.add(t.indexVar);return e}checkCrossScopeLocals(e,t){let r=this.rstate;if(!r)return;let s=this.loopVarNames(),i=(n)=>r.sink.locals.has(n)||s.has(n);for(let n=r.sink.parent;n!==null;n=n.parent){if(n.locals.size===0)continue;let a=new Set([...n.locals].filter((o)=>!i(o)));if(a.size>0&&Ee(e,a))throw this.positionedError(t,"emitter: this expression reads a render local of an ENCLOSING render scope — each dynamic block (a "+"conditional branch, a loop body) is its own factory function, and render locals never cross that boundary ; declare the local inside this block, or use a member",this.rstate.node)}}renderBinding(e){let[t,r,s]=e,i=this.rstate.sink,n=this.firstAwaitIn(s);if(n!==null)throw this.renderSyncError(n);if(r.startsWith("__"))throw this.positionedError(e,`emitter: render local '${r}' — double-underscore names are the compiler/runtime namespace inside render `+"(factory scaffolding and injected helpers live there)");if(i.loopStack.some((a)=>a.itemVar===r||a.indexVar===r))throw this.positionedError(e,`emitter: '${r}' is a loop variable — a render local cannot re-declare or assign it `);if(t==="="){if(!i.locals.has(r)){if(i.locals.add(r),i.bindings.add(r),i.localDecls.set(r,e),i.kind!=="class")i.vars.add(r)}}else if(!i.locals.has(r))throw this.positionedError(e,`emitter: compound assignment to '${r}' — no render local of that name is declared in this render scope `+"(`name = expr` declares one)");return this.checkCrossScopeLocals(s,e),this.renderLine(e,()=>{this.mark(e,"target",()=>this.b.emit(r)),this.b.emit(` ${t} `),this.mark(e,"value",()=>this.withExpression(()=>this.expr(s)))}),null}closeRenderScope(e){for(let[t,r]of e.localDecls){let s=0,i=(n)=>{if(typeof n==="string"){if(n===t)s++;return}if(!y(n))return;if(ha.has(n[0])&&n.length===3&&n[1]===t){i(n[2]);return}if((n[0]===":"||n[0]==="void-pair")&&n.length===3&&typeof n[1]==="string"){i(n[2]);return}if((n[0]==="."||n[0]==="?.")&&n.length===3&&typeof n[2]==="string"){i(n[1]);return}for(let a of n)i(a)};for(let n of e.stmts)i(n);if(s===0)throw this.positionedError(r,`emitter: render local '${t}' is never read — a dead local renders NOTHING (if this line meant an `+`element with expression text, spell it \`${t}\` + indented \`= expr\`: inside render \`${t} = expr\` declares a local named the tag)`,this.rstate.node)}}static collectLeafNames(e,t){if(typeof e==="string"){if(ht.test(e))t.add(e);return}if(!y(e))return;if((e[0]===":"||e[0]==="void-pair")&&e.length===3&&typeof e[1]==="string"){E.collectLeafNames(e[2],t);return}if((e[0]==="."||e[0]==="?.")&&e.length===3&&typeof e[2]==="string"){E.collectLeafNames(e[1],t);return}for(let r of e)E.collectLeafNames(r,t)}static mintName(e,t){let r=e;while(t.has(r))r=`${r}_`;return t.add(r),r}threadProjectionHost(e){if(e===null||e.startsWith("this."))return;for(let t=this.rstate.sink;t&&t.hostParams!==void 0&&!t.vars.has(e);t=t.parent){if(t.hostParams.includes(e))continue;t.hostParams.push(e),t.paramNames.push(e)}}walkFactory(e,t,r,s=null){let i=this.rstate,n=i.sink,a=this.newBlockName(),o=s!==null?[s.itemVar,s.indexVar]:[],l=new Set(o),c=new Set;E.collectLeafNames(e,c);let h=new Set(n.renameHazardNames??[]),f=(S)=>{if(!l.has(S))return l.add(S),S;let w=`${S}_`;while(l.has(w)||c.has(w))w+="_";return l.add(w),h.add(S),h.add(w),w},u=n.loopStack.map((S)=>({...S,itemVar:f(S.itemVar),indexVar:f(S.indexVar)})),d=u.flatMap((S)=>[S.itemVar,S.indexVar]),p=s!==null?[...u,s]:u,m={kind:t,name:a,parent:n,self:"ctx",paramNames:[...o,...d],hostParams:[],frameVar:"__fr",ownerVar:"__o",creates:[],setups:[],vars:new Set,locals:new Set,localDecls:new Map,bindings:new Set([...d,...o]),refs:[],loopStack:p,stmts:[],forceNonStatic:!1,root:null,isStatic:!1,originNode:r,hasKids:!1,kidsVar:null,renameHazardNames:h,readVars:new Set,narrowed:[...n.narrowed??[],...this._narrowNext??[]]};if(this._narrowNext=null,s!==null)s.owner=m;i.records.push(m);let g=i.transitionSlot;i.transitionSlot=t==="branch"?{record:m,el:null}:null,i.sink=m,this.rframes.push({reactive:new Set,bound:m.bindings,loopVars:m.bindings,loopBindings:E.loopBindingsOf(m)});try{let S;if(b1(e))S=e.slice(1);else if(y(e)&&e.length===1&&y(e[0])&&this.stores.idOf(e)===null)S=[e[0]];else S=[e];if(m.stmts=S,m.root=S.length===0?null:this.walkChildStmts(S),m.root===null)m.root=this.newRenderVar("empty"),this.renderLine(null,()=>this.b.emit(`${m.root} = document.createComment('')`))}finally{this.rframes.pop(),i.sink=n,i.transitionSlot=g}this.closeRenderScope(m),m.isStatic=t==="loop"&&m.setups.length===0&&!m.forceNonStatic;let b=new Set([...m.bindings,...m.locals,...m.vars]);if(E.collectLeafNames(m.stmts,b),m.self=E.mintName("ctx",b),m.frameVar=E.mintName("__fr",b),m.ownerVar=E.mintName("__o",b),m.hasKids)m.kidsVar=E.mintName("_factoryChildren",b);return m}narrowConjuncts(e){if(y(e)&&e[0]==="&&"&&e.length===3)return[...this.narrowConjuncts(e[1]),...this.narrowConjuncts(e[2])];if(typeof e==="string")return this.renderVarKind(e)!==null||this.bareRewrite(e)===null?[]:[e];if(!E.isDotChain(e))return[];let t=e;while(y(t))t=t[1];if(t==="this")return[e];if(this.renderVarKind(t)!==null||this.bareRewrite(t)===null)return[];return[e]}static isDotChain(e){if(!y(e)||e[0]!=="."||e.length!==3||typeof e[2]!=="string"||e[2][0]==='"')return!1;let t=e[1];if(t==="this")return!0;if(typeof t==="string")return/^[A-Za-z_$][\w$]*$/.test(t);return E.isDotChain(t)}activeNarrowed(){let e=this.renderRecord;if(!this.ts||!e||!(e.narrowed?.length>0))return[];return e.narrowed.filter((t)=>{let r=t;while(y(r))r=r[1];return r==="this"||!(e.bindings.has(r)||e.locals.has(r))})}hasNarrow(){return this.activeNarrowed().length>0}narrowedReadNames(){let e=new Set;for(let t of this.activeNarrowed())if(typeof t==="string")e.add(t);else if(t[0]==="."&&t[1]==="this"&&t.length===3&&typeof t[2]==="string")e.add(t[2]);return e}narrowGuard(e="statement",{trailing:t=!0}={}){let r=this.activeNarrowed();if(r.length===0)return!1;this._needsNarrowHelper=!0,this.b.suppressClaims=!0;try{this.b.tsOnly(()=>this.b.echo(()=>{if(r.forEach((s,i)=>{if(i>0)this.b.emit(" ");this.b.emit(e==="statement"?"__ripNarrow(":"(__ripNarrow("),this.renderExpr(s),this.b.emit(e==="statement"?");":"),")}),t)this.b.emit(" ")}))}finally{this.b.suppressClaims=!1}return!0}narrowGuardClose(e){if(e)this.b.tsOnly(()=>this.b.emit(")".repeat(this.activeNarrowed().length)))}renderCond(e,t=e){if(e.length>4)throw this.positionedError(e,"emitter: unexpected flat conditional chain shape in render (internal)");if(this.stores.idOf(t)===null&&this._chainMarkNode)t=this._chainMarkNode;let[,r,s]=e,i=e.length===4?e[3]:null;this.checkSetupLocalRefs(r,t),this.checkCrossScopeLocals(r,t);let n=this.newRenderVar("anchor");this.renderLine(null,()=>this.b.emit(`${n} = document.createComment('if')`)),this._narrowNext=this.narrowConjuncts(r);let a=this.walkFactory(s,"branch",t),o=this._chainMarkNode;if(i!==null&&y(i)&&i[0]==="if"&&this.stores.idOf(i)===null)this._chainMarkNode=t;let l=i!==null?this.walkFactory(i,"branch",t):null;this._chainMarkNode=o;let c=a.refs.length>0||l!==null&&l.refs.length>0,h=this.rstate.sink;if(l!==null){for(let[u,d]of[[a,l],[l,a]])for(let p of u.hostParams){if(d.hostParams.includes(p))continue;d.hostParams.push(p),d.paramNames.push(p)}l.hostParams.sort((u,d)=>a.hostParams.indexOf(u)-a.hostParams.indexOf(d)),l.paramNames.splice(l.paramNames.length-l.hostParams.length,l.hostParams.length,...l.hostParams)}let f=[...h.loopStack.flatMap((u)=>[u.itemVar,u.indexVar]),...a.hostParams];return h.setups.push({kind:"raw",node:t,fn:(u)=>this.emitCondSetup(u,t,e,n,a,l,c,f)}),n}renderSwitch(e){let[,t,r,s]=e;if(E.hasMatchArms(r))this.checkMatchSwitch(e);let i=s;for(let n=r.length-1;n>=0;n--){let[,a,o]=r[n],l;if(t===null)l=a.reduce((c,h)=>c===null?h:["||",c,h],null);else l=a.map((c)=>E.matchArmSexpr(t,c)).reduce((c,h)=>c===null?h:["||",c,h],null);i=i!==null?["if",l,o,i]:["if",l,o]}if(i===null||i[0]!=="if")return i===null?this.renderNode("null"):this.renderChildBlock(i);return this.renderCond(i,e)}renderLoop(e){let[,t,r,s,i,n]=e;if(s!==null)throw this.positionedError(e,"emitter: a `by` step has no render reading — the reconciler patches whole collections; step the collection itself: `items.filter((x, i) -> i % 2 == 0)`");if(i!==null)throw this.positionedError(e,"emitter: a `when` guard has no render reading — the reconciler patches whole collections; filter the collection itself: `for x in items.filter((x) -> cond)`");if(t.length>2||t.some((w)=>typeof w!=="string"))throw this.positionedError(e,"emitter: a render loop takes plain item and index variables (`for item, i in items`) — destructuring loop "+"variables have no factory-parameter reading here; destructure inside the body");if(t.length===2&&t[0]===t[1])throw this.positionedError(e,`emitter: a render loop cannot bind '${t[0]}' as BOTH item and index — one name cannot hold two row facts `);for(let w of t)if(w.startsWith("__"))throw this.positionedError(e,`emitter: render loop variable '${w}' — double-underscore names are the compiler/runtime namespace inside `+"render (factory scaffolding and injected helpers live there)");this.checkSetupLocalRefs(r,e),this.checkCrossScopeLocals(r,e);let a=t[0],o=t[1]??null;if(o===null){let w=new Set(this.loopVarNames());w.add(a),E.collectRenderBodyBindings(n,w);let R=(T,j)=>{if(typeof T==="string")return T===j;return y(T)&&T.some((M)=>R(M,j))};for(let T of["i","j","k","l","m","n"])if(!w.has(T)&&!R(n,T)){o=T;break}o=o??`__rip_idx${this.rstate.sink.loopStack.length}`}let l=this.newRenderVar("anchor");this.renderLine(null,()=>this.b.emit(`${l} = document.createComment('for')`));let c=this.renderReactive(r),h=this.extractLoopKey(n,e),f=h!==null?this.rstate.keySpan??null:null;if(h!==null)this.checkSetupLocalRefs(h,e),this.checkCrossScopeLocals(h,e);let u=this.stores.idOf(e),d=u!==null?this.stores.role(u,"vars"):null,p=this.primitiveAvoid;if(d?.sourceStart!=null)this.primitiveAvoid=[...p??[],[d.sourceStart,d.sourceEnd]];let m;try{m=this.walkFactory(n,"loop",e,{itemVar:a,indexVar:o,reactiveSource:c,iter:r,node:e})}finally{this.primitiveAvoid=p}if(h!==null){if(m.locals.size>0&&Ee(h,m.locals))throw this.positionedError(e,"emitter: a `key:` expression must be evaluable in the loop HEADER scope — it reads a render local declared "+"inside the loop body, which lives in the row factory (derive the key from the item inline: `key: item.id`)");if(!Ee(h,new Set([a,o])))throw this.positionedError(e,`emitter: a loop key must derive from the row — this \`key:\` expression never reads '${a}'${t.length===2?` or '${o}'`:""} (a row-independent key cannot identify rows)`)}let g=m.refs.length>0,b=this.rstate.sink,S=[...b.loopStack.flatMap((w)=>[w.itemVar,w.indexVar]),...m.hostParams];return b.setups.push({kind:"raw",node:e,fn:(w)=>this.emitLoopSetup(w,e,l,r,m,h,a,o,g,S,f)}),l}static collectRenderBodyBindings(e,t){if(!y(e))return;if((e[0]==="for-in"||e[0]==="for-of"||e[0]==="for-as")&&y(e[1])){for(let r of e[1])if(typeof r==="string")t.add(r)}else if(e[0]==="="&&e.length===3&&typeof e[1]==="string")t.add(e[1]);for(let r of e)E.collectRenderBodyBindings(r,t)}extractLoopKey(e,t){let s=(b1(e)?e.slice(1):[e]).find((n)=>!this.isRenderBinding(n));if(!y(s))return null;let i=(n)=>{for(let a=1;athis.b.emit(e.join(", ")))}emitCondSetup(e,t,r,s,i,n,a,o){let l=this.renderSelf??"this",c=e+" ",h=c+" ",f=new Set([l,...o]);E.collectLeafNames(r[1],f);let u=E.mintName("anchor",f),d=E.mintName("currentBlock",f),p=E.mintName("showing",f),m=E.mintName("show",f),g=E.mintName("want",f),b=E.mintName("leaving",f),S=this.runtimeName("__transition"),w=(T)=>{this.b.emit(`${h} ${d} = ${l}.${T.name}(${l}`),this.emitOuterLoopArgs(o),this.b.emit(`); `),this.b.emit(`${h} ${d}.c(); `),this.b.emit(`${h} if (${u}.parentNode) ${d}.m(${u}.parentNode, ${u}.nextSibling); `),this.b.emit(`${h} ${d}.p(${l}`),this.emitOuterLoopArgs(o),this.b.emit(`); `),this.b.emit(`${h} if (${d}._t) ${S}(${d}._first, ${d}._t, 'enter', undefined); `)},R=()=>{if(this.b.emit(`${e}{ -`),this.b.emit(`${c}const ${u} = ${n}; +`),this.b.emit(`${c}const ${u} = ${s}; `),this.b.emit(`${c}let ${d}`),this.tsScaffoldAny(),this.b.emit(` = null; `),this.b.emit(`${c}let ${p}`),this.tsScaffoldAny(),this.b.emit(` = null; `),this.b.emit(`${c}${this.runtimeName("__effect")}(() => { `),a)this.b.emit(`${h}${this.runtimeName("__batch")}(() => { `);if(this.hasNarrow())this.b.tsOnly(()=>{this.b.emit(h),this.narrowGuard("statement",{trailing:!1}),this.b.emit(` `)});if(this.b.emit(`${h}const ${m} = !!(`),this.mark(t,"$self",()=>this.mark(t,"condition",()=>this.renderExpr(r[1]))),this.b.emit(`); -`),this.b.emit(`${h}const ${g} = ${m} ? 'then' : ${s!==null?"'else'":"null"}; +`),this.b.emit(`${h}const ${g} = ${m} ? 'then' : ${n!==null?"'else'":"null"}; `),this.b.emit(`${h}if (${g} === ${p}) return; `),this.b.emit(`${h}if (${d}) { `),this.b.emit(`${h} const ${b} = ${d}; @@ -221,141 +221,141 @@ ${A} ${f} = ${h}._mountSetup(document.createComment('rip:child-error: ${t}')); `),this.b.emit(`${h}${p} = ${g}; `),this.b.emit(`${h}if (${g} === 'then') { `),w(i),this.b.emit(`${h}} -`),s!==null)this.b.emit(`${h}if (${g} === 'else') { -`),w(s),this.b.emit(`${h}} +`),n!==null)this.b.emit(`${h}if (${g} === 'else') { +`),w(n),this.b.emit(`${h}} `);if(a)this.b.emit(`${h}}); `);this.b.emit(`${c}}); `),this.b.emit(`${c}${this.runtimeName("__ownerFrame")}().add(() => { if (${d}) { ${d}.d(true); ${d} = null; } }); `),this.b.emit(`${e}} -`)};this.mark(t,"$self",R)}emitLoopSetup(e,t,r,n,i,s,a,o,l,c,h=null){let f=this.renderSelf??"this",u=e+" ",d=u+" ",p=new Set([f,a,o,...c]);if(E.collectLeafNames(n,p),s!==null)E.collectLeafNames(s,p);let m=E.mintName("__s",p),g=E.mintName("__b",p);this.mark(t,"$self",()=>{if(this.b.emit(`${e}{ +`)};this.mark(t,"$self",R)}emitLoopSetup(e,t,r,s,i,n,a,o,l,c,h=null){let f=this.renderSelf??"this",u=e+" ",d=u+" ",p=new Set([f,a,o,...c]);if(E.collectLeafNames(s,p),n!==null)E.collectLeafNames(n,p);let m=E.mintName("__s",p),g=E.mintName("__b",p);this.mark(t,"$self",()=>{if(this.b.emit(`${e}{ `),this.b.emit(`${u}const ${m}`),this.tsScaffoldAny(),this.b.emit(` = { blocks: [], keys: [] }; `),this.b.emit(`${u}${this.runtimeName("__effect")}(() => { -`),this.b.emit(d),l)this.b.emit(`${this.runtimeName("__batch")}(() => `);let b=this.narrowGuard(l?"expression":"statement");this.b.emit(`${this.runtimeName("__reconcile")}(${r}, ${m}, `);let S=this._narrowedReads;this._narrowedReads=this.narrowedReadNames();try{this.withExpression(()=>this.expr(n))}finally{this._narrowedReads=S}if(this.b.emit(`, ${f}, ${f}.${i.name}, `),s!==null){let w=this.tsLoopItemTypeText(i.loopStack.at(-1),f);{let R=this.stores.idOf(t),T=R!==null?this.stores.role(R,"vars"):null,F=T?.sourceStart!=null?this.stores.primitiveSpans(a,T.sourceStart,T.sourceEnd)[0]??null:null;if(this.b.emit("("),F){let L=this.b.offset;this.b.markSpan(R,"identifier",F.sourceStart,F.sourceEnd,()=>this.b.emit(a)),this.loopVars.push([L,this.b.offset]),this.loopVarDecls.push({span:[L,this.b.offset],owner:i,which:"item"})}else this.b.emit(a)}if(w!==null)this.b.tsOnly(()=>this.b.echo(()=>this.b.emit(`: ${w}`)));if(this.b.emit(`, ${o}`),this.ts)this.b.tsOnly(()=>this.b.emit(": number"));this.b.emit(") => "),this.rframes.push({reactive:new Set,bound:new Set([a,o]),block:!0,loopVars:new Set([a,o]),loopBindings:new Map([[a,{owner:i,which:"item"}],[o,{owner:i,which:"index"}]])});try{this.withExpression(()=>{let R=E.needsGrouping(s,"operand")||O1(s),T=this.tsServedValue("__key",()=>{if(R)this.b.emit("(");{let F=this.stores.idOf(t),L=F!==null?this.stores.role(F,"vars"):null,C=this.primitiveAvoid;if(L?.sourceStart!=null)this.primitiveAvoid=[...C??[],[L.sourceStart,L.sourceEnd]];try{this.expr(s)}finally{this.primitiveAvoid=C}}if(R)this.b.emit(")")});if(T!==null&&h!==null)this.intrinsics.push({start:h[0],end:h[1],kind:"key",gen:T})})}finally{this.rframes.pop()}}else this.b.emit("null");if(this.emitOuterLoopArgs(c),this.b.emit(")"),l)this.narrowGuardClose(b);if(l)this.b.emit(")");this.b.emit(`; +`),this.b.emit(d),l)this.b.emit(`${this.runtimeName("__batch")}(() => `);let b=this.narrowGuard(l?"expression":"statement");this.b.emit(`${this.runtimeName("__reconcile")}(${r}, ${m}, `);let S=this._narrowedReads;this._narrowedReads=this.narrowedReadNames();try{this.withExpression(()=>this.expr(s))}finally{this._narrowedReads=S}if(this.b.emit(`, ${f}, ${f}.${i.name}, `),n!==null){let w=this.tsLoopItemTypeText(i.loopStack.at(-1),f);{let R=this.stores.idOf(t),T=R!==null?this.stores.role(R,"vars"):null,j=T?.sourceStart!=null?this.stores.primitiveSpans(a,T.sourceStart,T.sourceEnd)[0]??null:null;if(this.b.emit("("),j){let M=this.b.offset;this.b.markSpan(R,"identifier",j.sourceStart,j.sourceEnd,()=>this.b.emit(a)),this.loopVars.push([M,this.b.offset]),this.loopVarDecls.push({span:[M,this.b.offset],owner:i,which:"item"})}else this.b.emit(a)}if(w!==null)this.b.tsOnly(()=>this.b.echo(()=>this.b.emit(`: ${w}`)));if(this.b.emit(`, ${o}`),this.ts)this.b.tsOnly(()=>this.b.emit(": number"));this.b.emit(") => "),this.rframes.push({reactive:new Set,bound:new Set([a,o]),block:!0,loopVars:new Set([a,o]),loopBindings:new Map([[a,{owner:i,which:"item"}],[o,{owner:i,which:"index"}]])});try{this.withExpression(()=>{let R=E.needsGrouping(n,"operand")||O1(n),T=this.tsServedValue("__key",()=>{if(R)this.b.emit("(");{let j=this.stores.idOf(t),M=j!==null?this.stores.role(j,"vars"):null,x=this.primitiveAvoid;if(M?.sourceStart!=null)this.primitiveAvoid=[...x??[],[M.sourceStart,M.sourceEnd]];try{this.expr(n)}finally{this.primitiveAvoid=x}}if(R)this.b.emit(")")});if(T!==null&&h!==null)this.intrinsics.push({start:h[0],end:h[1],kind:"key",gen:T})})}finally{this.rframes.pop()}}else this.b.emit("null");if(this.emitOuterLoopArgs(c),this.b.emit(")"),l)this.narrowGuardClose(b);if(l)this.b.emit(")");this.b.emit(`; `),this.b.emit(`${u}}); `),this.b.emit(`${u}${this.runtimeName("__ownerFrame")}().add(() => { for (const ${g} of ${m}.blocks) { try { ${g}.d(true); } catch {} } ${m}.blocks = []; ${m}.keys = []; ${m}.items = []; }); `),this.b.emit(`${e}} -`)})}emitFactory(e,t,r){let n=" ".repeat(t+1),i=n+" ",s=i+" ",a=s+" ",{self:o,frameVar:l,ownerVar:c}=e,h=[o,...e.paramNames],f=e.setups.length>0,u=new Set([...e.bindings,...e.locals,...e.vars,o,l,c]);if(e.kidsVar!==null)u.add(e.kidsVar);E.collectLeafNames(e.stmts,u);let d=[o,...e.paramNames.map((C)=>E.mintName(`__${C}`,u))],p=e.kidsVar!==null?E.mintName("__c",u):null,m=e.kidsVar!==null?E.mintName("__e",u):null,g=!e.isStatic,b=this.ts?E.mintName("__Ctx",u):null,S=new Map,w=new Map;if(e.loopStack.forEach((C)=>{if(C.node!==void 0)w.set(C.itemVar,C.node),w.set(C.indexVar,C.node)}),this.ts){for(let C of e.loopStack){let N=this.tsLoopItemTypeText(C,e.self);if(N!==null)S.set(C.itemVar,N);S.set(C.indexVar,"number")}for(let C of e.hostParams)S.set(C,"any")}let R=new Map;for(let C of e.loopStack){let N=C.node?this.stores.idOf(C.node):null,D=N!==null?this.stores.role(N,"vars"):null;if(D?.sourceStart==null)continue;for(let O of[C.itemVar,C.indexVar]){if(typeof O!=="string"||R.has(O))continue;let W=this.stores.primitiveSpans(O,D.sourceStart,D.sourceEnd)[0]??null;if(W)R.set(O,{id:N,start:W.sourceStart,end:W.sourceEnd,owner:C.owner,which:O===C.itemVar?"item":"index"})}}let T=(C,N,D)=>{C.forEach((O,W)=>{if(W>0)this.b.emit(", ");let H=()=>{let k=R.get(O);if(k){let j=this.b.offset;if(this.b.markSpan(k.id,"identifier",k.start,k.end,()=>this.b.emit(O)),this.isRenderLoopName(O))this.loopVars.push([j,this.b.offset]);if(k.owner!==void 0)this.loopVarDecls.push({span:[j,this.b.offset],owner:k.owner,which:k.which})}else this.emitPrimitive(O);if(!this.ts)return;let v=W===0?N:D(O,W);if(v!=null)this.b.tsOnly(()=>this.b.echo(()=>this.b.emit(`: ${v}`)))},G=w.get(O);if(G!==void 0)this.mark(G,"$self",H);else H()})},F=e.kind==="loop"?e.loopStack.at(-1):null,L=F!==null?this.tsIterThunkName(F):null;if(L!==null){let C=e.paramNames.slice(2,e.paramNames.length-e.hostParams.length),N;this.withRecordContext(e,()=>{N=this.capturedExprText(()=>this.expr(F.iter),{source:this.b.source})});let D=[`${o}: this`,...C.map((O)=>S.has(O)?`${O}: ${S.get(O)}`:O)];this.b.tsOnly(()=>this.b.echo(()=>this.b.emit(`${n}${L}(${D.join(", ")}) { return ${N}; } -`)))}this.mark(r,"$self",()=>{this.withRecordContext(e,()=>{if(this.b.emit(`${n}${e.name}(`),T(h,"this",(D)=>S.get(D)),this.b.emit(`) { +`)})}emitFactory(e,t,r){let s=" ".repeat(t+1),i=s+" ",n=i+" ",a=n+" ",{self:o,frameVar:l,ownerVar:c}=e,h=[o,...e.paramNames],f=e.setups.length>0,u=new Set([...e.bindings,...e.locals,...e.vars,o,l,c]);if(e.kidsVar!==null)u.add(e.kidsVar);E.collectLeafNames(e.stmts,u);let d=[o,...e.paramNames.map((x)=>E.mintName(`__${x}`,u))],p=e.kidsVar!==null?E.mintName("__c",u):null,m=e.kidsVar!==null?E.mintName("__e",u):null,g=!e.isStatic,b=this.ts?E.mintName("__Ctx",u):null,S=new Map,w=new Map;if(e.loopStack.forEach((x)=>{if(x.node!==void 0)w.set(x.itemVar,x.node),w.set(x.indexVar,x.node)}),this.ts){for(let x of e.loopStack){let A=this.tsLoopItemTypeText(x,e.self);if(A!==null)S.set(x.itemVar,A);S.set(x.indexVar,"number")}for(let x of e.hostParams)S.set(x,"any")}let R=new Map;for(let x of e.loopStack){let A=x.node?this.stores.idOf(x.node):null,C=A!==null?this.stores.role(A,"vars"):null;if(C?.sourceStart==null)continue;for(let O of[x.itemVar,x.indexVar]){if(typeof O!=="string"||R.has(O))continue;let W=this.stores.primitiveSpans(O,C.sourceStart,C.sourceEnd)[0]??null;if(W)R.set(O,{id:A,start:W.sourceStart,end:W.sourceEnd,owner:x.owner,which:O===x.itemVar?"item":"index"})}}let T=(x,A,C)=>{x.forEach((O,W)=>{if(W>0)this.b.emit(", ");let G=()=>{let k=R.get(O);if(k){let U=this.b.offset;if(this.b.markSpan(k.id,"identifier",k.start,k.end,()=>this.b.emit(O)),this.isRenderLoopName(O))this.loopVars.push([U,this.b.offset]);if(k.owner!==void 0)this.loopVarDecls.push({span:[U,this.b.offset],owner:k.owner,which:k.which})}else this.emitPrimitive(O);if(!this.ts)return;let v=W===0?A:C(O,W);if(v!=null)this.b.tsOnly(()=>this.b.echo(()=>this.b.emit(`: ${v}`)))},Y=w.get(O);if(Y!==void 0)this.mark(Y,"$self",G);else G()})},j=e.kind==="loop"?e.loopStack.at(-1):null,M=j!==null?this.tsIterThunkName(j):null;if(M!==null){let x=e.paramNames.slice(2,e.paramNames.length-e.hostParams.length),A;this.withRecordContext(e,()=>{A=this.capturedExprText(()=>this.expr(j.iter),{source:this.b.source})});let C=[`${o}: this`,...x.map((O)=>S.has(O)?`${O}: ${S.get(O)}`:O)];this.b.tsOnly(()=>this.b.echo(()=>this.b.emit(`${s}${M}(${C.join(", ")}) { return ${A}; } +`)))}this.mark(r,"$self",()=>{this.withRecordContext(e,()=>{if(this.b.emit(`${s}${e.name}(`),T(h,"this",(C)=>S.get(C)),this.b.emit(`) { `),this.ts&&g)this.b.tsOnly(()=>this.b.emit(`${i}type ${b} = typeof ${o}; -`));if(e.vars.size>0)this.b.emit(`${i}let `),[...e.vars].forEach((D,O)=>{if(O>0)this.b.emit(", ");this.b.emit(D),this.tsScaffoldAny()}),this.b.emit(`; +`));if(e.vars.size>0)this.b.emit(`${i}let `),[...e.vars].forEach((C,O)=>{if(O>0)this.b.emit(", ");this.b.emit(C),this.tsScaffoldAny()}),this.b.emit(`; `);if(e.kidsVar!==null)this.b.emit(`${i}let ${e.kidsVar}`),this.tsScaffoldAny("[]"),this.b.emit(` = []; `);if(f)this.b.emit(`${i}let ${l}`),this.tsScaffoldAny(),this.b.emit(`; `);if(this.b.emit(`${i}return { -`),e.isStatic)this.b.emit(`${s}_s: true, -`);this.b.emit(`${s}c() { -`),this.replayCreates(e,a);let C=this.rstate.fragChildren.get(e.root),N=C!==void 0?C[0]:e.root;if(this.b.emit(a),this.ts)this.b.tsOnly(()=>this.b.emit("("));if(this.b.emit("this"),this.ts)this.b.tsOnly(()=>this.b.emit(" as any)"));if(this.b.emit(`._first = ${N}; -`),this.b.emit(`${s}}, -`),this.b.emit(`${s}m(target`),this.tsScaffoldAny(),this.b.emit(", anchor"),this.tsScaffoldAny(),this.b.emit(`) { -`),C!==void 0)for(let D of C)this.b.emit(`${a}if (target) target.insertBefore(${D}, anchor); +`),e.isStatic)this.b.emit(`${n}_s: true, +`);this.b.emit(`${n}c() { +`),this.replayCreates(e,a);let x=this.rstate.fragChildren.get(e.root),A=x!==void 0?x[0]:e.root;if(this.b.emit(a),this.ts)this.b.tsOnly(()=>this.b.emit("("));if(this.b.emit("this"),this.ts)this.b.tsOnly(()=>this.b.emit(" as any)"));if(this.b.emit(`._first = ${A}; +`),this.b.emit(`${n}}, +`),this.b.emit(`${n}m(target`),this.tsScaffoldAny(),this.b.emit(", anchor"),this.tsScaffoldAny(),this.b.emit(`) { +`),x!==void 0)for(let C of x)this.b.emit(`${a}if (target) target.insertBefore(${C}, anchor); `);else this.b.emit(`${a}if (target) target.insertBefore(${e.root}, anchor); -`);for(let D of e.refs)this.b.emit(a),this.mark(D.node,"$self",()=>{let O=this.ts&&typeof D.tag==="string";if(O)this.b.tsOnly(()=>this.b.emit(`${D.svg?"__ripRefCellSvg":"__ripRefCell"}('${D.tag}', `));let W=this.b.offset;this.b.emit(`${o}.`);let H=this.emitPrimitive(D.name);if(H!==null)this.memberDecls.push({start:H[0],end:H[1]});if(O)D.site([W,this.b.offset]);if(O)this.b.tsOnly(()=>this.b.emit(")"));if(this.b.emit(`.value = ${D.elVar}`),O)this.b.tsOnly(()=>this.b.emit(` as ${xe(D.tag,D.svg)} | null`));this.b.emit(";")}),this.b.emit(` -`);if(this.b.emit(`${s}}, -`),this.b.emit(`${s}p(`),g)T(d,b,(D,O)=>`typeof ${e.paramNames[O-1]}`);if(this.b.emit(`) { -`),g&&e.paramNames.length>0)this.b.emit(a),this.b.echo(()=>this.b.emit(e.paramNames.map((D,O)=>`${D} = ${d[O+1]};`).join(" "))),this.b.emit(` +`);for(let C of e.refs)this.b.emit(a),this.mark(C.node,"$self",()=>{let O=this.ts&&typeof C.tag==="string";if(O)this.b.tsOnly(()=>this.b.emit(`${C.svg?"__ripRefCellSvg":"__ripRefCell"}('${C.tag}', `));let W=this.b.offset;this.b.emit(`${o}.`);let G=this.emitPrimitive(C.name);if(G!==null)this.memberDecls.push({start:G[0],end:G[1]});if(O)C.site([W,this.b.offset]);if(O)this.b.tsOnly(()=>this.b.emit(")"));if(this.b.emit(`.value = ${C.elVar}`),O)this.b.tsOnly(()=>this.b.emit(` as ${xe(C.tag,C.svg)} | null`));this.b.emit(";")}),this.b.emit(` +`);if(this.b.emit(`${n}}, +`),this.b.emit(`${n}p(`),g)T(d,b,(C,O)=>`typeof ${e.paramNames[O-1]}`);if(this.b.emit(`) { +`),g&&e.paramNames.length>0)this.b.emit(a),this.b.echo(()=>this.b.emit(e.paramNames.map((C,O)=>`${C} = ${d[O+1]};`).join(" "))),this.b.emit(` `);if(f)this.b.emit(`${a}if (${l}) ${l}.dispose(); `),this.b.emit(`${a}const ${c} = ${this.runtimeName("__pushOwner")}(${l} = ${this.runtimeName("__ownerFrame")}()); `),this.b.emit(`${a}try { `),this.replaySetups(e,a+" "),this.b.emit(`${a}} finally { ${this.runtimeName("__popOwner")}(${c}); } -`);if(this.b.emit(`${s}}, -`),e.kind==="branch"){if(this.b.emit(`${s}f() {`),f)this.b.emit(` if (${l}) { ${l}.dispose(); ${l} = null; }`);this.b.emit(` }, -`)}if(this.b.emit(`${s}d(detaching`),this.tsScaffoldAny(),this.b.emit(`) { +`);if(this.b.emit(`${n}}, +`),e.kind==="branch"){if(this.b.emit(`${n}f() {`),f)this.b.emit(` if (${l}) { ${l}.dispose(); ${l} = null; }`);this.b.emit(` }, +`)}if(this.b.emit(`${n}d(detaching`),this.tsScaffoldAny(),this.b.emit(`) { `),e.kidsVar!==null)this.b.emit(`${a}for (const ${p} of ${e.kidsVar}) { try { ${p}.unmount?.({removeDOM: detaching}); } catch (${m}) { console.error('[Rip] factory child unmount error:', ${m}); } } `),this.b.emit(`${a}${e.kidsVar} = []; `);if(f)this.b.emit(`${a}if (${l}) { ${l}.dispose(); ${l} = null; } `);if(e.refs.length>0){this.b.emit(`${a}if (detaching) ${this.runtimeName("__batch")}(() => { -`);for(let D of e.refs)this.b.emit(`${a} ${this.runtimeName("__detachRef")}(${o}.${D.name}, ${D.elVar}); +`);for(let C of e.refs)this.b.emit(`${a} ${this.runtimeName("__detachRef")}(${o}.${C.name}, ${C.elVar}); `);this.b.emit(`${a}}); -`)}if(C!==void 0)for(let D of C)this.b.emit(`${a}if (detaching) ${this.runtimeName("__detach")}(${D}); +`)}if(x!==void 0)for(let C of x)this.b.emit(`${a}if (detaching) ${this.runtimeName("__detach")}(${C}); `);else this.b.emit(`${a}if (detaching) ${this.runtimeName("__detach")}(${e.root}); -`);this.b.emit(`${s}} +`);this.b.emit(`${n}} `),this.b.emit(`${i}}; -`),this.b.emit(`${n}} -`)})})}renderTransition(e,t,r,n){let i=this.rstate,s=i.transitionSlot;if(s===null||s.record!==i.sink||s.el!==e){let o=i.sink.kind==="class"?"a static element)":i.sink.kind==="loop"?"a loop body — the reconciler has no enter/leave phase for rows":"a nested position — the swap animates the branch's FIRST node, so a deeper directive would animate an "+"element it does not name";throw this.positionedError(t,`emitter: a transition (\`~name\`) runs where a conditional branch enters or leaves, and this directive sits on ${o}; put it on the FIRST top-level element of an if/else branch`,this.rstate.node)}if(typeof r!=="string"||!(r.startsWith('"')||r.startsWith("'")))throw this.positionedError(t,"emitter: a transition takes a literal name (`~fade`) — computed transition names have no reading",this.rstate.node);let a=r.replace(/^["']|["']$/g,"");this.renderLine(t,()=>{if(this.ts)this.b.tsOnly(()=>this.b.emit("("));if(this.b.emit("this"),this.ts)this.b.tsOnly(()=>this.b.emit(" as any)"));this.b.emit(`._t = "${a}"`)})}renderRef(e,t,r,n,i){let s=typeof r==="string"&&ht.test(r)?r:null;if(s===null)throw this.positionedError(t,"emitter: ref: expects a state cell — declare `el := null` then write `ref: el`",this.rstate.node);let a=this.rstate.frame.members.get(s);if(a!=="state"&&a!=="prop")throw this.positionedError(t,a!==void 0?`emitter: ref: target '${s}' is not a writable state cell — declare it with ':=' (computed '~=' and `+"readonly '=!' members can't hold a ref)":`emitter: ref: target '${s}' must be a state cell declared with ':=' (e.g. \`${s} := null\`)`,this.rstate.node);let o=this.renderTagOf(e),l=this.ts&&o!==null&&/^[a-z][a-z0-9-]*$/.test(o),c=this.rstate.svgEls?.has(e)===!0;if(l){this._needsRefCellHelper=!0;let h=this.wordSpanIn("ref",t);if(h!==null)this.intrinsics.push({start:h[0],end:h[1],kind:"ref",tag:o,svg:c,name:s})}if(this.rstate.sink.kind==="class")this.renderLine(t,()=>{if(l)this.b.tsOnly(()=>this.b.emit(`${c?"__ripRefCellSvg":"__ripRefCell"}('${o}', `));let h=this.b.offset;this.b.emit("this.");let f=this.emitPrimitive(s);if(f!==null)this.memberDecls.push({start:f[0],end:f[1]});if(l)i([h,this.b.offset]);if(l)this.b.tsOnly(()=>this.b.emit(")"));if(this.b.emit(`.value = ${e}`),l)this.b.tsOnly(()=>this.b.emit(` as ${xe(o,c)} | null`))}),this.renderLine(t,()=>{this.b.emit(`(this._refCleanups ??= []).push(() => ${this.runtimeName("__detachRef")}(this.`),this.emitPrimitive(s),this.b.emit(`, ${e}))`)});else this.rstate.sink.refs.push({name:s,elVar:e,node:t,tag:l?o:null,svg:c,site:i})}renderBind(e,t,r,n,i,s){if(this.checkBindTarget(t,n),this.rstate.sink.kind==="loop"&&this.loopVarNames().size>0&&Ee(n,this.loopVarNames()))this.rstate.sink.forceNonStatic=!0;let a=null;for(let u of i.slice(1))if(y(u)&&u.length===3&&(u[1]==="type"||u[1]==='"type"')&&typeof u[2]==="string")a=u[2].replace(/^["']|["']$/g,"");let o,l;if(r==="checked")o="change",l="target.checked";else o="input",l=a==="number"||a==="range"?"target.valueAsNumber":"target.value";this.renderEffect(t,()=>{this.b.emit(`${e}.`);let u=this.emitRewrittenPrimitive(`__bind_${r}__`,r);this.b.emit(" = ");let d=this.tsServedValue("__bind",()=>this.withExpression(()=>this.expr(n)));if(d!==null&&u!==null)this.intrinsics.push({start:u[0],end:u[1],kind:"bind",name:r,gen:d});if(r==="value")this.b.emit(" ?? ''");this.b.emit(";")},n);let c=this.bindRootTouch(n),h=new Set;E.collectLeafNames(n,h);let f=E.mintName("e",h);this.renderLine(t,()=>{this.b.emit(`${e}.addEventListener('${o}', (${f}`);let u=this.tsElReceiver(e),d=this.ts?this.tsEventTypeText([o],u.hostText):null;if(d!==null)this.b.tsOnly(()=>this.b.emit(`: ${d}`));else this.tsScaffoldAny();this.b.emit(") => { ");let p=this.b.offset;if(this.withExpression(()=>this.expr(n)),s([p,this.b.offset]),this.b.emit(` = ${f}.${l};`),c!==null)this.b.emit(" "),c(),this.b.emit(".touch?.();");this.b.emit(" })")})}checkBindTarget(e,t){let r=(s)=>{throw this.positionedError(e,s,this.rstate.node)};if(typeof t==="string"){if(!ht.test(t))r("emitter: a two-way binding (`<=>`) needs an assignable target — a literal cannot receive the input");let s=this.renderVarKind(t,e);if(s!==null)r(`emitter: a two-way binding cannot target a ${s==="local"?"render local":"loop variable"} — `+"the write would land on a factory parameter and reach nothing; bind a state member or a chain into row data");let a=this.resolveBareRead(t);if(a==="member-reactive"&&this.rstate.frame.members.get(t)==="computed")r(`emitter: '<=>' targets '${t}', a computed ('~=') member — a derived value has no writable `+"container (its .value is get-only); bind the state it derives from");if(a==="reactive"||a==="member-reactive")return;if(a==="member")r(`emitter: '<=>' targets '${t}', a plain (\`=\`) member — writes would never notify and the display `+"would never update; declare it with ':='");r(`emitter: '<=>' targets '${t}', which is not declared — declare a state member (\`${t} := ""\`) to bind it`)}if(y(t)&&t[0]==="."&&t[1]==="this"&&t.length===3&&typeof t[2]==="string"){if(this.memberIsReactive(t[2])&&this.rstate.frame.members.get(t[2])==="computed")r(`emitter: '<=>' targets '@${t[2]}', a computed ('~=') member — a derived value has no writable `+"container; bind the state it derives from");if(this.memberIsReactive(t[2]))return;if(this.rstate.frame.members.has(t[2]))r(`emitter: '<=>' targets '@${t[2]}', a non-reactive member — writes would never notify`+"); declare it with ':='");r(`emitter: '<=>' targets '@${t[2]}', which is not a declared member`)}if(y(t)&&E.optionalGuard(t)!==null)r("emitter: a two-way binding target cannot carry optional links — the write form would be invalid JS");let n=t,i=!1;while(y(n)&&(n[0]==="."||n[0]==="[]")&&n.length===3)i=!0,n=n[1];if(i)return;r("emitter: a two-way binding (`<=>`) needs an assignable target — a state member or a member/index chain "+"")}bindRootTouch(e){if(typeof e==="string")return null;if(y(e)&&e[0]==="."&&e[1]==="this"&&e.length===3)return null;let t=e;while(y(t)&&(t[0]==="."||t[0]==="[]")&&t.length===3){if(t[0]==="."&&t[1]==="this"&&typeof t[2]==="string"){let r=t[2];if(this.memberIsReactive(r))return()=>this.b.emit(`${this.renderSelf??"this"}.${r}`);return null}t=t[1]}if(typeof t==="string"){if(this.renderVarKind(t)!==null)return null;let r=this.resolveBareRead(t);if(r==="member-reactive"){let n=t;return()=>this.b.emit(`${this.renderSelf??"this"}.${n}`)}if(r==="reactive"){let n=t;return()=>this.b.emit(n)}}return null}checkUserSpelledBind(e){let t=y(e)?this.stores.idOf(e):null,r=t!==null?this.stores.role(t,"key"):null;if(!r||r.sourceStart==null||this.b.source===null)return;if(this.b.source.slice(r.sourceStart,r.sourceEnd).startsWith("__bind_"))throw this.positionedError(e,"emitter: '__bind_…__:' is the compiler's two-way-binding channel — spell the binding `name <=> container` "+"(`__`-prefixed names are the compiler/runtime namespace)",this.rstate.node)}checkBareEventHandler(e,t){if(!y(t)||t[0]!=="."||t[1]!=="this"||typeof t[2]!=="string")return;let r=this.stores.idOf(t),n=r!==null?this.stores.selfSpan(r):null;if(n===null||n[0]!==n[1])return;let i=e[1],s=typeof i[2]==="string"?i[2]:String(i[2]);if(!Ut.has(s))throw this.positionedError(e,`emitter: \`@${s}\` is not a DOM event — use \`= @${s}\` to render text, or \`@${s}: handler\` for an explicit handler`);if(s==="error")throw this.positionedError(e,"emitter: bare `@error` is ambiguous with the onError lifecycle hook — write `@error: handler` to bind a DOM error listener explicitly");let a=t[2];if(!this.cframes[this.cframes.length-1].members.has(a))throw this.positionedError(e,`emitter: bare \`@${s}\` requires a component method \`${a}\` — define \`${a}\`, or use \`@${s}: handler\` for an explicit handler`)}static collectTemplateClasses(e){let t=[],r,n=e;while(y(n)&&n[0]==="."&&n.length===3){if(typeof n[2]!=="string")return{tag:null,classes:t,id:r};t.unshift(n[2]),n=n[1]}if(typeof n!=="string")return{tag:null,classes:t,id:r};let[i,s]=n.split("#");if(s)r=s;for(let a=0;a=0)r=t[a].slice(o+1),t[a]=t[a].slice(0,o)}return{tag:i||"div",classes:t.filter((a)=>a!==""),id:r}}static templateHeadTag(e){if(!y(e))return null;let t=e[0];if(typeof t==="string"){if(t===".")return E.collectTemplateClasses(e).tag;return t.length>0?t.split("#")[0]||"div":null}if(!y(t))return null;if(y(t[0])&&t[0][0]==="."&&t[0][2]==="__clsx"){let r=t[0][1];if(typeof r==="string")return r.split("#")[0]||"div";return E.collectTemplateClasses(r).tag}return E.collectTemplateClasses(t).tag}static returnGuard(e){return y(e)&&(e[0]==="||"||e[0]==="&&"||e[0]==="??")&&e.length===3&&y(e[2])&&e[2][0]==="return"}static stmtGuard(e){return y(e)&&(e[0]==="||"||e[0]==="&&"||e[0]==="??")&&e.length===3&&(e[2]==="continue"||e[2]==="break"||e[2]==="debugger")}static controlGuard(e){return E.returnGuard(e)||E.throwGuard(e)||E.stmtGuard(e)}static throwGuard(e){return y(e)&&(e[0]==="||"||e[0]==="&&"||e[0]==="??")&&e.length===3&&y(e[2])&&e[2][0]==="throw"&&e[2].length===2}static isStrRepeat(e){return y(e)&&e[0]==="*"&&e.length===3&&typeof e[1]==="string"&&e[1][0]==='"'}static leadsWithObject(e){let t=e;for(;;){if(!y(t))return!1;if(O1(t))return!0;if(ft(t)||fa(t)||ut(t)){t=t[1];continue}let r=E.chainHeadSlot(t);if(r!==null){t=t[r];continue}return!1}}static chainHeadSlot(e){if((e[0]==="."||e[0]==="?."||e[0]==="[]"||e[0]==="optindex")&&e.length===3)return 1;if(e[0]==="optcall")return 1;return E.chainHeadSlotRest(e)}chainHeadSlotOf(e){if((e[0]==="."||e[0]==="?."||e[0]==="[]")&&e.length===3)return 1;if(e[0]==="optindex"&&e.length===3&&this.lockedHead(e,"optindex"))return 1;if(e[0]==="optcall"&&this.lockedHead(e,"optcall"))return 1;return E.chainHeadSlotRest(e)}static chainHeadSlotRest(e){if(y(e[0])&&e[0][0]!=="dammit!"&&!(e[0][0]==="."&&e[0].length===3&&e[0][2]==="new"))return 0;return null}static isChainNode(e){return y(e)&&E.chainHeadSlot(e)!==null}isChainNodeOf(e){return y(e)&&this.chainHeadSlotOf(e)!==null}chain(e){this.noteProvidedRead(e);let t=[e];while(!0){let n=t[t.length-1],i=n[this.chainHeadSlotOf(n)];if(!this.isChainNodeOf(i))break;t.push(i)}let r=[];for(let n=0;n=0;n--){let i=t[n],s=i[0],a=r[n];if(this.endMark(a.role),a.kind==="member"){this.inTarget=a.savedTarget;let o=this.deopt&&s==="?."?".":s;if(typeof i[2]==="string"&&i[2][0]==='"')this.mark(i,"operator",()=>this.b.emit(s==="?."&&!this.deopt?"?.":"")),this.mark(i,"property",()=>this.b.emit(`[${i[2]}]`));else this.mark(i,"operator",()=>this.b.emit(o)),this.mark(i,"property",()=>{let l=this.b.offset;if(this.stores.idOf(i)===null)this.emitPrimitive(i[2]);else this.b.emit(i[2]);if(this.ts&&this.appStashSpec!==null&&typeof i[2]==="string"&&E.isThisMember(i[1],"stash")&&!(this.cframes.length&&this.cframes[this.cframes.length-1].members.has("stash")))this.stashMemberSpans.push([l,this.b.offset]);if(this.ts&&i[1]==="this"&&typeof i[2]==="string"){let h=this.cframes[this.cframes.length-1]?.memberKinds?.get(i[2])??null,f=this.stores.idOf(i)??null,u=f!==null?this.stores.role(f,"property"):null;if(h!==null&&u&&typeof u.sourceStart==="number")this.kinds.push({start:u.sourceStart,end:u.sourceEnd,label:h.label,name:i[2],optional:h.optional})}});if(i[1]==="this"&&typeof i[2]==="string"&&this.memberIsReactive(i[2])){if(this.ts){let l=this.stores.idOf(i)??null,c=l!==null?this.stores.role(l,"property"):null;if(c&&typeof c.sourceStart==="number")this.memberDecls.push({start:c.sourceStart,end:c.sourceEnd})}this.b.emit(".value")}}else if(a.kind==="index")this.indexTail(i,a.opt,a.isWrite),this.inTarget=a.savedTarget;else if(a.kind==="optcall")this.b.emit("?."),this.mark(i,"args",()=>{this.b.emit("("),i.slice(2).forEach((o,l)=>{if(l>0)this.b.emit(", ");this.expr(o)}),this.b.emit(")")});else{let o=this.sourceKeyArgOf(i);if(o!==null)(this._sourceKeyArgs??=new Set).add(o),this._needsSourceKeyHelper=!0;let l=this.routerArgOf(i);if(l!==null){if((this._routerArgs??=new Map).set(l.arg,l.wrap),l.wrap)this._needsRouteHelper=!0}this.mark(i,"args",()=>{this.b.emit("("),i.slice(1).forEach((c,h)=>{if(h>0)this.b.emit(", ");this.callArg(c)}),this.b.emit(")")})}this.endMark(a.self)}}member(e){if(e[0]==="."&&e[1]==="this"&&typeof e[2]==="string"&&!this.inTarget)this.notePlainRenderRead(e[2],!0);this.chain(e)}noteProvidedRead(e){if(!this.ts||!(this.cframes?.length>0))return;let t=e;while(y(t)){let s=this.chainHeadSlotOf(t);if(s===null||!y(t[s]))break;t=t[s]}if(!y(t)||t[0]!=="."||t[1]!=="this"||t[2]!=="stash"&&t[2]!=="router")return;if(this.cframes[this.cframes.length-1].members?.has(t[2]))return;let r=this.stores.idOf(t),n=r!==null?this.stores.selfSpan(r):null,i=n!==null?this.stores.primitiveSpans(t[2],n[0],n[1])[0]??null:null;if(i&&!this.kinds.some((s)=>s.start===i.sourceStart&&s.label===t[2]))this.kinds.push({start:i.sourceStart,end:i.sourceEnd,label:t[2],name:t[2],optional:!1})}pick(e,t=!1){let[r,n,...i]=e;if(this.inPattern||this.inTarget)throw this.positionedError(e,"emitter: a pick expression is not an assignment target — it lowers to a fresh object literal (`({…}) = value` would be invalid JS)");let s=r==="?.{}",a=typeof n==="string"&&(n==="this"||/^[A-Za-z_$][\w$]*$/.test(n));if(!a)for(let l of i){if(l[2]!==null&&this.containsAwait(l[2]))throw this.positionedError(l,"emitter: a pick default cannot await when the source needs single evaluation — the lowering's '(_) =>' arrow is not async; bind the source first",e);if(l[2]!==null&&E.containsYield(l[2]))throw this.positionedError(l,"emitter: a pick default cannot yield when the source needs single evaluation — yield cannot cross the lowering's '(_) =>' arrow; bind the source first",e)}let o=(l)=>this.mark(e,"items",()=>{i.forEach((c,h)=>{if(h>0)this.b.emit(", ");let[f,u,d]=c;this.mark(c,"$self",()=>{if(this.mark(c,"target",()=>this.b.emit(E.ownKeyText(u,u))),this.b.emit(": "),d!==null)this.b.emit("(");if(l(),this.b.emit("."),this.mark(c,"key",()=>this.b.emit(f)),d!==null)this.b.emit(" ?? "),this.withExpression(()=>this.operand(c,"default",d)),this.b.emit(")")})})});this.mark(e,"$self",()=>{if(a&&!s)this.b.emit(t?"{":"({"),o(()=>this.mark(e,"source",()=>this.expr(n))),this.b.emit(t?"}":"})");else if(a){if(!t)this.b.emit("(");this.mark(e,"source",()=>this.expr(n)),this.b.emit(" == null ? undefined : {"),o(()=>this.mark(e,"source",()=>this.expr(n))),this.b.emit(t?"}":"})")}else{let l=this.loopTempName("_");this.b.emit(s?`((${l}) => ${l} == null ? undefined : ({`:`((${l}) => ({`),o(()=>this.b.emit(l)),this.b.emit("}))("),this.withExpression(()=>this.grouped(e,"source",n,E.needsGrouping(n,"operand"))),this.b.emit(")")}})}callArg(e){if(this._sourceKeyArgs?.has(e)){this._sourceKeyArgs.delete(e),this.b.tsOnly(()=>this.b.emit("__ripSourceKey("));let r=this.b.offset;this.expr(e),this.sourceKeySpans.push([r,this.b.offset]),this.b.tsOnly(()=>this.b.emit(")"));return}let t=this._routerArgs?.get(e);if(t!==void 0){if(this._routerArgs.delete(e),t)this.b.tsOnly(()=>this.b.emit("__ripRoute("));let r=this.b.offset;if(this.expr(e),this.routeWrapSpans.push({key:null,value:[r,this.b.offset]}),t)this.b.tsOnly(()=>this.b.emit(")"));return}if(y(e)&&(e[0]===".{}"||e[0]==="?.{}")&&e.length>=3)return this.pick(e,!0);this.expr(e)}sourceKeyArgOf(e){if(!this.ts||this.appStashSpec===null)return null;let t=e[1];if(typeof t!=="string"||!/^["']/.test(t))return null;let r=e[0];if(!y(r)||r.length!==3||r[2]!=="source")return null;let n=r[1];if(r[0]==="."&&E.isThisMember(n,"stash")){if(this.cframes.length&&this.cframes[this.cframes.length-1].members.has("stash"))return null;return t}if((r[0]==="."||r[0]==="?.")&&this.isAccessorCall(n,this.appAccessors.stash))return t;return null}static isThisMember(e,t){return y(e)&&e[0]==="."&&e.length===3&&e[1]==="this"&&e[2]===t}static stashKeysOf(e,t){let r=null;for(let s of e.slice(1)){let a=y(s)&&s[0]==="export"?s[1]:s;if(y(a)&&a[0]==="="&&a[1]===t){r=a[2];break}}if(y(r)&&r.length===2&&typeof r[0]==="string"&&y(r[1])&&r[1][0]==="object")r=r[1];if(!y(r)||r[0]!=="object")return null;let n=[],i=!0;for(let s of r.slice(1)){if(!y(s))continue;if(s[0]==="..."){i=!1;continue}let a=s[0]===":"?s[1]:s[0]===null?s[1]:null;if(typeof a!=="string"){i=!1;continue}n.push(/^["']/.test(a)?a.slice(1,-1):a)}return{keys:n,complete:i}}routerArgOf(e){if(!this.ts||this.routesUnion===null)return null;let t=e[1];if(typeof t!=="string"||!/^["']/.test(t))return null;let r=e[0];if(!y(r)||r.length!==3||r[2]!=="push"&&r[2]!=="replace")return null;let n=r[1];if(r[0]==="."&&E.isThisMember(n,"router")){if(this.cframes.length&&this.cframes[this.cframes.length-1].members.has("router"))return null;return{arg:t,method:r[2],wrap:!1}}if((r[0]==="."||r[0]==="?.")&&this.isAccessorCall(n,this.appAccessors.router))return{arg:t,method:r[2],wrap:!0};return null}binary(e){if(E.returnGuard(e))throw this.positionedError(e[2],"emitter: a return guard is a statement — in value position the 'return' would lose its function target (bind the value first, or use `or throw`)");if(E.stmtGuard(e))throw this.positionedError(e[2],`emitter: a ${e[2]} guard is a statement`);if(e[0]==="&&"||e[0]==="||")return this.logicalChain(e);if(E.isStrRepeat(e)){this.mark(e,"$self",()=>{this.mark(e,"left",()=>this.b.emit(e[1])),this.b.emit(".repeat("),this.mark(e,"right",()=>this.expr(e[2])),this.b.emit(")")});return}if(ut(e))return this.comparisonChain(e);let t=(o)=>ft(o)&&o[0]!=="&&"&&o[0]!=="||"&&!ut(o)&&!E.isStrRepeat(o),r=[e];while(t(r[r.length-1][1]))r.push(r[r.length-1][1]);let n=[];for(let o=0;o=0;o--){let l=r[o];if(this.b.emit(" "),this.mark(l,"operator",()=>this.b.emit(Pi[l[0]]??l[0])),this.b.emit(" "),this.operand(l,"right",l[2]),this.endMark(n[o].self),o>0)this.endMark(n[o-1].left),this.b.emit(")")}}logicalChain(e){let t=e[0],r=(a)=>ft(a)&&a[0]===t,n=[e];while(r(n[n.length-1][1]))n.push(n[n.length-1][1]);let i=[];for(let a=0;a=0;a--){let o=n[a];if(this.b.emit(" "),this.mark(o,"operator",()=>this.b.emit(t)),this.b.emit(" "),r(o[2]))this.grouped(o,"right",o[2],!1);else this.operand(o,"right",o[2]);if(this.endMark(i[a].self),a>0)this.endMark(i[a-1].left)}}comparisonChain(e){let t=[e];while(ut(t[t.length-1]))t.push(t[t.length-1][1]);t.reverse();let r=[];for(let s=t.length-1;s>=1;s--){let a=t[s],o=this.beginMark(a,"$self");this.b.emit("("),r[s]={self:o,left:this.beginMark(a,"left")}}let n=t[0],i=this.beginMark(n,"$self");this.operand(n,"left",n[1]),this.b.emit(" "),this.mark(n,"operator",()=>this.b.emit(Pi[n[0]]??n[0])),this.b.emit(" "),this.chainRight(n,t[1]),this.endMark(i);for(let s=1;sthis.b.emit(Pi[a[0]]??a[0])),this.b.emit(" "),this.chainRight(a,t[s+1]),this.b.emit(")"),this.endMark(r[s].self)}}chainRight(e,t){let r=e[2];if(t!==void 0&&y(r)){let n=this.temps.byNode.get(t);if(n===void 0)throw this.positionedError(r,"emitter: a chained comparison here cannot cache its middle operand for single evaluation "+"(no enclosing scope hoist) — bind the middle operand to a variable first ",e);this.b.emit("("),this.mark(e,"right",()=>{this.b.emit(`${n} = `),this.expr(r)}),this.b.emit(")");return}this.operand(e,"right",r)}chainMid(e,t){let r=this.temps.byNode.get(t);if(r!==void 0){this.mark(e,"right",()=>this.b.emit(r));return}this.operand(e,"right",e[2])}postfixType(e){if(!this.ts){this.mark(e,"$self",()=>this.mark(e,"annotation",()=>this.mark(e,"value",()=>this.expr(e[1]))));return}let t=this.stores.idOf(e),r=t===null?null:this.stores.role(t,"annotation"),n=r&&r.sourceStart!=null&&this.b.source!==null?this.b.source.slice(r.sourceStart,r.sourceEnd):`${e[0]==="cast"?"as":"satisfies"} ${Be(e[2])}`;this.mark(e,"$self",()=>{this.b.tsOnly(()=>this.b.emit("("));let i=E.jsTier(e[1])!=="primary";if(i)this.b.tsOnly(()=>this.b.emit("("));if(this.mark(e,"value",()=>this.expr(e[1])),i)this.b.tsOnly(()=>this.b.emit(")"));this.b.tsOnly(()=>{this.b.emit(" "),this.mark(e,"annotation",()=>this.emitTypeText(e,"annotation",n))}),this.b.tsOnly(()=>this.b.emit(")"))})}existence(e){this.mark(e,"$self",()=>{this.operand(e,"value",e[1]),this.b.emit(" != null")})}unary(e){if(e[0]==="delete"&&typeof e[1]==="string"&&this.isReactiveName(e[1]))throw this.positionedError(e,`emitter: cannot delete the reactive variable '${e[1]}' — \`delete ${e[1]}.value\` would remove the container's accessor and silently kill the reactive`);if(e[0]==="delete"&&!(y(e[1])&&(e[1][0]==="."||e[1][0]==="[]")))throw this.positionedError(e,"emitter: delete requires a property reference (delete obj.a / delete obj[k]) — deleting a plain binding is a strict-mode SyntaxError in modules");this.mark(e,"$self",()=>{if(this.mark(e,"operator",()=>this.b.emit(e[0])),/^[a-z]/.test(e[0]))this.b.emit(" ");this.operand(e,"operand",e[1])})}spread(e){this.mark(e,"$self",()=>{if(this.b.emit("..."),this.inPattern)this.mark(e,"value",()=>this.expr(e[1]));else this.operand(e,"value",e[1])})}array(e){this.mark(e,"$self",()=>{this.b.emit("["),this.mark(e,"items",()=>{let t=e.slice(1);t.forEach((r,n)=>{if(n>0)this.b.emit(", ");if(r===","){if(n===t.length-1)this.b.emit(",");return}if(y(r)&&r[0]==="rest"&&this.inPattern){if(!this.bindingPattern)throw this.positionedError(r,"emitter: Cannot use 'rest' expression as a destructuring target (destructuring rest is spelled '...name')",e);if(r.length!==2||n!==t.length-1)throw this.positionedError(r,"emitter: a `rest` element takes the pattern's tail alone",e);if(typeof r[1]!=="string")throw this.positionedError(r,"emitter: a `rest` element takes a plain name",e);this.b.emit("..."),this.b.emit(r[1]);return}let i=!this.inPattern&&!(y(r)&&r[0]==="...")&&E.needsGrouping(r,"operand");if(i)this.b.emit("(");if(this.expr(r),i)this.b.emit(")")})}),this.b.emit("]")})}symbolKey(e){this.b.emit("["),this.expr(e),this.b.emit("]")}static isMethodPair(e){return y(e)&&(e[0]===":"||e[0]==="void-pair")&&typeof e[1]==="string"&&/^[A-Za-z_$][\w$]*$/.test(e[1])&&y(e[2])&&e[2][0]==="->"}object(e){for(let a of e.slice(1)){if(y(a)&&a[0]===":"&&typeof a[1]==="string"&&a[1][0]==="/")throw this.positionedError(a,"emitter: a regex key needs a MAP literal (`*{ /re/: v }`) — object property names are strings");if(!this.inPattern&&!this.tolerant&&y(a)&&a[0]==="="&&a.length===3)throw this.positionedError(a,"emitter: `a = 1` inside an object literal is a destructuring default, which only a pattern can carry — spell the pair `a: 1`",e)}let t=!this.inPattern&&E.objectComprehension(e);if(t){let a=y(t[1])?t[1]:null,o={expr:a!==null?a[1]:t[1],pair:t,keyNode:a};return this.mark(e,"$self",()=>this.mark(e,"pairs",()=>this.mark(t,"$self",()=>this.mark(t,"value",()=>this.comprehension(t[2],this.ind,o)))))}let r=e.slice(1),n=this.ind,i=r.map((a)=>!this.inPattern&&E.isMethodPair(a)),s=(a)=>i[a]||i.slice(0,a).some(Boolean)?`, -`:", ";this.mark(e,"$self",()=>{this.b.emit("{"),this.mark(e,"pairs",()=>{r.forEach((a,o)=>{if(o>0)this.b.emit(s(o));if(i[o]){this.mark(a,"voidMarker",()=>this.mark(a,"$self",()=>{if(this.containsAwait(a[2][2]))this.b.emit("async ");if(E.containsYield(a[2][2]))this.b.emit("*");this.mark(a,"key",()=>this.b.emit(a[1]));let[,f,u]=a[2],d=this.ts&&this.contextuallyTyped(a[2]);this.b.emit("("),this.mark(a[2],"params",()=>this.emitParams(f,null,!d)),this.b.emit(")"),this.tsReturnAnnotation(a[2],this.containsAwait(u),a[0]==="void-pair",E.containsYield(u),a),this.b.emit(" "),this.mark(a,"value",()=>{this.methodBlock(a[2],u,n,{isConstructor:!1,binds:[],methodName:a[1],voidBody:a[0]==="void-pair"})})}));return}let l=y(a[1])&&a[1][0]==="dynamicKey";if(l&&a[0]===null)throw this.positionedError(a,"emitter: a computed key needs an explicit value ({[k]: v}) — there is no shorthand form",e);let c=y(a[1])&&a[1][0]==="str",h=a[0]===":"&&y(a[1])&&a[1][0]==="symbol";if(a[0]!=="..."&&y(a[1])&&!l&&!c&&!h)throw this.positionedError(a,"emitter: @-keys are only supported in class bodies",e);if(h){this.mark(a,"$self",()=>{this.mark(a,"key",()=>this.symbolKey(a[1])),this.b.emit(": "),this.mark(a,"value",()=>this.expr(a[2]))});return}if(a[0]===":"&&c){this.mark(a,"$self",()=>{this.b.emit("["),this.mark(a,"key",()=>this.strTemplate(a[1])),this.b.emit("]: "),this.mark(a,"value",()=>this.expr(a[2]))});return}this.mark(a,"$self",()=>{if(a[0]===":"&&l)if(this.mark(a,"key",()=>{this.mark(a[1],"$self",()=>{this.b.emit("["),this.withExpression(()=>this.operand(a[1],"key",a[1][1])),this.b.emit("]")})}),this.b.emit(": "),this.inPattern||y(a[2])&&a[2][0]==="=>")this.mark(a,"value",()=>this.expr(a[2]));else this.operand(a,"value",a[2]);else if(a[0]===":"||a[0]==="void-pair"){if(a[0]==="void-pair"){if(this.inPattern)throw this.positionedError(a,"emitter: the void marker has no meaning in a destructuring pattern — a pattern key takes no trailing '!'",e);this.registerVoidValue(a[2],a)}this.mark(a,"voidMarker",()=>{if(this.mark(a,"key",()=>this.b.emit(a[1])),this.b.emit(": "),this.inPattern||y(a[2])&&a[2][0]==="=>")this.mark(a,"value",()=>this.expr(a[2]));else this.operand(a,"value",a[2])})}else if(a[0]==="=")this.mark(a,"key",()=>this.b.emit(a[1])),this.b.emit(" = "),this.withExpression(()=>this.operand(a,"value",a[2]));else if(a[0]==="..."){if(this.inPattern&&(y(a[1])||a[1]==="this"))throw this.positionedError(a,"emitter: object rest in a destructuring pattern takes a plain name — chained-accessor rest targets are not supported",e);if(this.b.emit("..."),this.inPattern)this.mark(a,"value",()=>this.expr(a[1]));else this.operand(a,"value",a[1])}else if(typeof a[1]==="string"&&this.bareRewrite(a[1])!==null)this.mark(a,"key",()=>this.b.emit(a[1])),this.b.emit(": "),this.mark(a,"value",()=>this.expr(a[1]));else this.mark(a,"value",()=>this.mark(a,"key",()=>this.b.emit(a[1])))})})}),this.b.emit("}")})}static negativeLiteralKey(e){return y(e)&&e[0]==="-"&&e.length===2&&typeof e[1]==="string"&&/^\d+$/.test(e[1])}indexTail(e,t,r){let n=e[2],i=()=>{let s=this.deopt;this.deopt=!1,this.mark(e,"key",()=>this.expr(n)),this.deopt=s};if(!t&&We(n))this.mark(e,"key",()=>this.slice(n));else if(E.negativeLiteralKey(n)){if(r)throw this.positionedError(e,"emitter: a negative-literal index cannot be an assignment target (reads lower to .at(-n), and a call is not assignable)");this.b.emit(t?"?.at(":".at("),this.mark(e,"key",()=>{this.b.emit("-"),this.b.emit(n[1])}),this.b.emit(")")}else this.b.emit(t?"?.[":"["),i(),this.b.emit("]")}index(e){if(e.length===3&&typeof e[2]==="string"&&e[2][0]==="/")return this.regexIndex(e,e[1],e[2],null);this.chain(e)}optIndex(e){this.chain(e)}optCall(e){this.chain(e)}slice(e){let[t,r,n]=e;if(this.b.emit(".slice("),this.mark(e,"from",()=>r===null?this.b.emit("0"):this.expr(r)),n!==null)if(this.b.emit(", "),t==="...")this.mark(e,"to",()=>this.expr(n));else if(typeof n==="string"&&/^\d+$/.test(n))this.mark(e,"to",()=>this.b.emit(String(Number(n)+1)));else this.b.emit("+"),this.mark(e,"to",()=>this.expr(n)),this.b.emit(" + 1 || 9e9");this.b.emit(")")}range(e){let[t,r,n]=e,i=t===".."?"((s, e) => Array.from({length: Math.abs(e - s) + 1}, (_, i) => s + (i * (s <= e ? 1 : -1))))":"((s, e) => Array.from({length: Math.max(0, Math.abs(e - s))}, (_, i) => s + (i * (s <= e ? 1 : -1))))";this.mark(e,"$self",()=>{this.b.emit(i),this.b.emit("("),this.mark(e,"from",()=>this.expr(r)),this.b.emit(", "),this.mark(e,"to",()=>this.expr(n)),this.b.emit(")")})}classStatement(e,t){this.mark(e,"$self",()=>this.classCode(e,t))}classExpr(e){this.mark(e,"$self",()=>this.classCode(e,this.ind))}classCode(e,t){let[,r,n,i]=e;if(this.b.emit("class"),r!=null){if(typeof r!=="string")throw this.positionedError(e,"emitter: `class @Name` is a STATIC member class — it lives inside a class body (`static Name = class`); at the top level give the class a plain name");this.b.emit(" "),this.mark(e,"name",()=>this.b.emit(r))}if(n!=null)this.b.emit(" extends "),this.grouped(e,"parent",n,E.needsGrouping(n,"head"));if(this.b.emit(` { -`),i!=null)this.mark(e,"body",()=>this.classMembers(i,t));this.b.emit(" ".repeat(t)+"}")}classMethodForm(e){if(!y(e))return null;if(k1(e[0])&&e.length===4){let t=this.stores.alias(["->",e[2],e[3]],e);return{form:"def",pair:this.stores.alias([e[0]==="void-def"?"void-pair":":",e[1],t],e)}}if((e[0]==="get"||e[0]==="set")&&e.length===2&&O1(e[1])&&e[1].length===2){let t=e[1][1];if(y(t)&&t[0]===":"&&t.length===3&&T1(t[2]))return{form:e[0],pair:t}}return null}classMembers(e,t){let r=y(e)&&e[0]==="block"?e.slice(1):[e],n=new Map(r.map((b)=>[b,this.classMethodForm(b)])),i=(b)=>y(b)&&b[0]==="."&&b[1]==="this"?b[2]:b,s=(b)=>y(b)&&b[0]==="."&&b[1]==="this"&&b.length===3&&typeof b[2]==="string",a=" ".repeat(t+1),o=[],l=null,c=!1,h=new Set,f=null,u=null,d=[],p=(b)=>s(b)?`static ${b[2]}`:b,m=new Set,g=[];for(let b of r){let S=n.get(b)??null,w=S!==null?[S.pair]:O1(b)?b.slice(1):null;if(w===null){let R=typeof b==="string"||s(b)?b:E.isTypedWrapper(b)&&(typeof b[1]==="string"||s(b[1]))?b[1]:y(b)&&b[0]==="="&&b.length===3&&(typeof b[1]==="string"||s(b[1]))?b[1]:null;if(R!==null){if(m.add(p(R)),!s(R))h.add(R)}continue}for(let R of w){if(R[0]!==":"&&R[0]!=="void-pair")throw this.positionedError(R,"emitter: class bodies support methods and fields only",b);if(S!==null&&S.form!=="def"){let F=R[2][1].length;if(R[2][0]==="=>")throw this.positionedError(R,`emitter: a ${S.form} accessor takes '->' — accessors are looked up on the instance, never bound`,b);if(this.containsAwait(R[2][2])||E.containsYield(R[2][2]))throw this.positionedError(R,`emitter: a ${S.form} accessor cannot await or yield — JavaScript has no async or generator accessors`,b);if(S.form==="get"&&F!==0)throw this.positionedError(R,"emitter: a getter takes no parameters (`get x: -> …`)",b);if(S.form==="set"&&F!==1)throw this.positionedError(R,"emitter: a setter takes exactly one parameter (`set x: (v) -> …`)",b)}if(y(R[1])&&(R[1][0]==="dynamicKey"||R[1][0]==="[]"))throw this.positionedError(R,"emitter: computed class members are not supported yet",b);let T=i(R[1]);if(S!==null&&S.form!=="def"){if(T==="constructor")throw this.positionedError(R,`emitter: a class constructor cannot be a ${S.form} accessor`,b);g.push({pair:R,stmt:b,key:p(R[1]),form:S.form})}if(T==="constructor"&&!s(R[1])){if(c=!0,T1(R[2]))f=R[2][1],u=R[2][2]}else if(!s(R[1])&&typeof T==="string")h.add(T);if(T1(R[2])&&!s(R[1])&&T!=="constructor")d.push(R[2][2]);if(T1(R[2])&&R[2][0]==="=>"&&!s(R[1])&&T!=="constructor"){if(typeof T!=="string")throw this.positionedError(R,"emitter: a symbol-keyed method cannot be bound ('=>') — the constructor binds members by name; use '->'",b);o.push(T),l??=R}}}if(o.length>0&&!c)throw this.positionedError(l,"emitter: bound ('=>') class methods require an explicit constructor",e);for(let b of g)if(m.has(b.key))throw this.positionedError(b.pair,`emitter: field and ${b.form} accessor '${i(b.pair[1])}' share a name — the field would shadow the accessor on every instance; drop one`,b.stmt);if(this.ts&&f!==null)for(let b of f){let S=$3(b);if(S===null||h.has(S.name))continue;h.add(S.name);let w=S.typed===null?null:this.annotationText(S.typed)??(S.typed[2]===""?null:Be(S.typed[2])),R=this.stores.idOf(e),T=R!==null?this.stores.selfSpan(R):null,F=T!==null?this.stores.primitiveSpans(S.name,T[0],T[1])[0]??null:null;this.b.tsOnly(()=>{if(this.b.emit(a),F)this.b.markSpan(R,"identifier",F.sourceStart,F.sourceEnd,()=>this.b.emit(S.name));else this.b.emit(S.name);this.b.emit(`${w?`: ${w}`:""}; -`)})}if(this.ts)for(let b of D3([u,...d])){if(h.has(b.name))continue;h.add(b.name);let w=b.nodes.map((R)=>this.annotationText(R)).find((R)=>R!=null)??null??(b.viaArrow?"any":null);this.b.tsOnly(()=>this.b.emit(`${a}${b.name}${w?`: ${w}`:""}; -`))}for(let b of r)this.withTsDirectives(b,a,()=>this.classMember(b,e,t,a,{memberName:i,isStaticKey:s,bound:o,form:n.get(b)??null}),!0)}classFieldValue(e){if(this.containsAwait(e))throw this.positionedError(e,"emitter: a class field initializer cannot await — JavaScript evaluates class fields synchronously");if(E.containsYield(e))throw this.positionedError(e,"emitter: a class field initializer cannot yield — class field evaluation is not a generator context");let t=this.planReferenceTemps([e],new Set);if(t.length===0){this.expr(e);return}this.b.emit("(() => { "),this.hoistLine(t),this.b.emit(" return "),this.expr(e),this.b.emit("; })()")}classMember(e,t,r,n,{memberName:i,isStaticKey:s,bound:a,form:o}){let l=o!==null&&o.form!=="def"?o.form:null,c=o!==null&&o.form==="def"?"name":"key",h=e;if(o!==null)e=this.stores.alias(["object",o.pair],e);{if(y(e)&&e[0]==="class"&&y(e[1])&&e[1][0]==="."&&e[1][1]==="this"&&typeof e[1][2]==="string"){this.b.emit(n+"static "),this.mark(e,"name",()=>this.emitPrimitive(e[1][2])),this.b.emit(" = "),this.classCode(["class",null,e[2]??null,e[3]],r+1),this.b.emit(`; -`);return}if(O1(e)){for(let f of e.slice(1))this.withTsDirectives(f,n,()=>{let u=f[1],d=f[2],p=i(u),m=f[0]==="void-pair";if(!T1(d)){if(m)throw this.positionedError(f,"emitter: the void marker (a trailing '!' on the method key) requires a function value — `fn!: ->` (this class member's value is not a function)",e);throw this.positionedError(f,"emitter: a class field takes '=' for its value (`x = v`, `x: T = v`, `@x = v`) — `name: value` is a typed bodiless field only when the value is a TYPE",e)}if(m&&p==="constructor")throw this.positionedError(f,"emitter: a constructor cannot carry the void marker (`constructor!:`) — constructors have no implicit return to suppress",e);this.b.emit(n),this.mark(f,"voidMarker",()=>this.mark(f,"$self",()=>{if(s(u))this.b.emit("static ");if(this.containsAwait(d[2]))this.b.emit("async ");if(E.containsYield(d[2]))this.b.emit("*");if(l!==null){let R=this.stores.idOf(h),T=R!==null?this.stores.role(R,"callee"):null;if(T!==null)this.silences.push([T.sourceStart,T.sourceEnd]);this.mark(h,"callee",()=>this.b.emit(l)),this.b.emit(" ")}if(y(u)&&u[0]==="symbol")this.mark(f,"key",()=>this.symbolKey(u));else this.mark(f,c,()=>this.emitPrimitive(p));if(this.ts){let R=this.annotationText(f,"typeParams");if(R!==null)this.b.tsOnly(()=>this.mark(f,"typeParams",()=>this.emitTypeText(f,"typeParams",R)))}let[,g,b]=d,S=[],w=p==="constructor"&&!s(f[1]);if(w){let R=(T)=>{let F=gt(T);if(F!==null)return S.push(F),y(T)&&T[0]==="typed-var"?["typed-var",F,T[2]]:F;if(y(T)&&T[0]==="default"&&T.length===3){let L=gt(T[1]);if(L!==null)return S.push(L),["default",y(T[1])&&T[1][0]==="typed-var"&&T[1].length===3?["typed-var",L,T[1][2]]:L,T[2]]}return T};if(g=g.map(R),S.length>0&&y(b)&&b[0]==="block"&&y(b[1])&&b[1][0]==="super"){let T=new Set(S),F=(L)=>{if(!y(L))return L;if(L[0]==="."&&L[1]==="this"&&T.has(L[2]))return L[2];return L.map(F)};b=["block",F(b[1]),...b.slice(2)]}}if(this.b.emit("("),this.emitParams(g,null,l!=="set"),this.b.emit(")"),!w)this.tsReturnAnnotation(d,this.containsAwait(d[2]),m,E.containsYield(d[2]),f);this.b.emit(" "),this.mark(f,"value",()=>{this.methodBlock(d,b,r+1,{isConstructor:w,binds:w?a:[],methodName:typeof p==="string"?p:"symbol",voidBody:m||l==="set",tailReturn:l!=="set",voidReason:l==="set"?"a setter discards its return value":null,atParams:S})})})),this.b.emit(` -`)},!0);return}if(typeof e==="string"){this.b.emit(n+e+`; -`);return}if(s(e)){this.b.emit(n),this.mark(e,"$self",()=>{this.b.emit("static "),this.mark(e,"property",()=>this.emitPrimitive(e[2]))}),this.b.emit(`; -`);return}if(E.isTypedWrapper(e)&&(typeof e[1]==="string"||s(e[1]))){this.b.emit(n),this.mark(e,"$self",()=>this.mark(e,"annotation",()=>{if(s(e[1]))this.b.emit("static ");if(this.mark(e,"target",()=>this.withDeclaredName(()=>this.emitPrimitive(i(e[1])))),this.ts)this.tsAnnotate(e,"annotation",this.annotationText(e)??Be(e[2]))})),this.b.emit(`; -`);return}if(y(e)&&e[0]==="="&&e.length===3&&(typeof e[1]==="string"||s(e[1]))){this.ind=r+1,this.b.emit(n),this.mark(e,"annotation",()=>this.mark(e,"$self",()=>{if(s(e[1]))this.b.emit("static ");if(this.mark(e,"target",()=>this.withDeclaredName(()=>this.emitPrimitive(i(e[1])))),this.ts&&this.annotationText(e)!==null)this.tsAnnotate(e,"annotation",this.annotationText(e));this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.mark(e,"value",()=>this.withExpression(()=>this.classFieldValue(e[2])))})),this.b.emit(`; -`);return}if(y(e)&&e[0]==="type-decl")throw this.positionedError(e,"emitter: type declarations are not allowed as class members — move the `type`/`interface` to module scope");if(this.isReactiveDecl(e))throw this.positionedError(e,`emitter: a reactive declaration ('${typeof e[1]==="string"?e[1]:"…"} ${e[0]==="state"?":=":"~="} …') cannot be a class member — declare it at module or function scope`);if(this.isEffectDecl(e))throw this.positionedError(e,"emitter: an effect ('~>') cannot be a class member — run it at module or function scope, or inside a method");if(this.isReadonlyDecl(e))throw this.positionedError(e,`emitter: a readonly declaration ('${typeof e[1]==="string"?e[1]:"…"} =! …') cannot be a class member — declare it at module or function scope`);throw this.positionedError(e,"emitter: unsupported class member — fields take `name = value`, `name: T = value`, `name: T`, or their `@`-static forms; methods take `name: -> …`",t)}}static middleRestPattern(e){if(!y(e)||e[0]!=="array")return!1;let t=e.slice(1),r=t.findIndex((n)=>y(n)&&n[0]==="..."&&n.length===2);return r!==-1&&ry(o)&&o[0]==="..."&&o.length===2),i=r.slice(0,n),s=r[n][1],a=r.slice(n+1);for(let o of[...i,s,...a])if(typeof o!=="string")throw this.positionedError(e,"emitter: a middle-rest pattern takes plain names (`[a, ...mid, b]`) — nested patterns have no single-read lowering");this.mark(e,"$self",()=>{let o=e[2],l=this.repeatSafeValue(o)?null:this.loopTempName("_ref");if(l!==null)this.temps.used.add(l),this.b.emit(`const ${l} = `),this.mark(e,"value",()=>this.expr(o)),this.b.emit(`; +`),this.b.emit(`${s}} +`)})})}renderTransition(e,t,r,s){let i=this.rstate,n=i.transitionSlot;if(n===null||n.record!==i.sink||n.el!==e){let o=i.sink.kind==="class"?"a static element)":i.sink.kind==="loop"?"a loop body — the reconciler has no enter/leave phase for rows":"a nested position — the swap animates the branch's FIRST node, so a deeper directive would animate an "+"element it does not name";throw this.positionedError(t,`emitter: a transition (\`~name\`) runs where a conditional branch enters or leaves, and this directive sits on ${o}; put it on the FIRST top-level element of an if/else branch`,this.rstate.node)}if(typeof r!=="string"||!(r.startsWith('"')||r.startsWith("'")))throw this.positionedError(t,"emitter: a transition takes a literal name (`~fade`) — computed transition names have no reading",this.rstate.node);let a=r.replace(/^["']|["']$/g,"");this.renderLine(t,()=>{if(this.ts)this.b.tsOnly(()=>this.b.emit("("));if(this.b.emit("this"),this.ts)this.b.tsOnly(()=>this.b.emit(" as any)"));this.b.emit(`._t = "${a}"`)})}renderRef(e,t,r,s,i){let n=typeof r==="string"&&ht.test(r)?r:null;if(n===null)throw this.positionedError(t,"emitter: ref: expects a state cell — declare `el := null` then write `ref: el`",this.rstate.node);let a=this.rstate.frame.members.get(n);if(a!=="state"&&a!=="prop")throw this.positionedError(t,a!==void 0?`emitter: ref: target '${n}' is not a writable state cell — declare it with ':=' (computed '~=' and `+"readonly '=!' members can't hold a ref)":`emitter: ref: target '${n}' must be a state cell declared with ':=' (e.g. \`${n} := null\`)`,this.rstate.node);let o=this.renderTagOf(e),l=this.ts&&o!==null&&/^[a-z][a-z0-9-]*$/.test(o),c=this.rstate.svgEls?.has(e)===!0;if(l){this._needsRefCellHelper=!0;let h=this.wordSpanIn("ref",t);if(h!==null)this.intrinsics.push({start:h[0],end:h[1],kind:"ref",tag:o,svg:c,name:n})}if(this.rstate.sink.kind==="class")this.renderLine(t,()=>{if(l)this.b.tsOnly(()=>this.b.emit(`${c?"__ripRefCellSvg":"__ripRefCell"}('${o}', `));let h=this.b.offset;this.b.emit("this.");let f=this.emitPrimitive(n);if(f!==null)this.memberDecls.push({start:f[0],end:f[1]});if(l)i([h,this.b.offset]);if(l)this.b.tsOnly(()=>this.b.emit(")"));if(this.b.emit(`.value = ${e}`),l)this.b.tsOnly(()=>this.b.emit(` as ${xe(o,c)} | null`))}),this.renderLine(t,()=>{this.b.emit(`(this._refCleanups ??= []).push(() => ${this.runtimeName("__detachRef")}(this.`),this.emitPrimitive(n),this.b.emit(`, ${e}))`)});else this.rstate.sink.refs.push({name:n,elVar:e,node:t,tag:l?o:null,svg:c,site:i})}renderBind(e,t,r,s,i,n){if(this.checkBindTarget(t,s),this.rstate.sink.kind==="loop"&&this.loopVarNames().size>0&&Ee(s,this.loopVarNames()))this.rstate.sink.forceNonStatic=!0;let a=null;for(let u of i.slice(1))if(y(u)&&u.length===3&&(u[1]==="type"||u[1]==='"type"')&&typeof u[2]==="string")a=u[2].replace(/^["']|["']$/g,"");let o,l;if(r==="checked")o="change",l="target.checked";else o="input",l=a==="number"||a==="range"?"target.valueAsNumber":"target.value";this.renderEffect(t,()=>{this.b.emit(`${e}.`);let u=this.emitRewrittenPrimitive(`__bind_${r}__`,r);this.b.emit(" = ");let d=this.tsServedValue("__bind",()=>this.withExpression(()=>this.expr(s)));if(d!==null&&u!==null)this.intrinsics.push({start:u[0],end:u[1],kind:"bind",name:r,gen:d});if(r==="value")this.b.emit(" ?? ''");this.b.emit(";")},s);let c=this.bindRootTouch(s),h=new Set;E.collectLeafNames(s,h);let f=E.mintName("e",h);this.renderLine(t,()=>{this.b.emit(`${e}.addEventListener('${o}', (${f}`);let u=this.tsElReceiver(e),d=this.ts?this.tsEventTypeText([o],u.hostText):null;if(d!==null)this.b.tsOnly(()=>this.b.emit(`: ${d}`));else this.tsScaffoldAny();this.b.emit(") => { ");let p=this.b.offset;if(this.withExpression(()=>this.expr(s)),n([p,this.b.offset]),this.b.emit(` = ${f}.${l};`),c!==null)this.b.emit(" "),c(),this.b.emit(".touch?.();");this.b.emit(" })")})}checkBindTarget(e,t){let r=(n)=>{throw this.positionedError(e,n,this.rstate.node)};if(typeof t==="string"){if(!ht.test(t))r("emitter: a two-way binding (`<=>`) needs an assignable target — a literal cannot receive the input");let n=this.renderVarKind(t,e);if(n!==null)r(`emitter: a two-way binding cannot target a ${n==="local"?"render local":"loop variable"} — `+"the write would land on a factory parameter and reach nothing; bind a state member or a chain into row data");let a=this.resolveBareRead(t);if(a==="member-reactive"&&this.rstate.frame.members.get(t)==="computed")r(`emitter: '<=>' targets '${t}', a computed ('~=') member — a derived value has no writable `+"container (its .value is get-only); bind the state it derives from");if(a==="reactive"||a==="member-reactive")return;if(a==="member")r(`emitter: '<=>' targets '${t}', a plain (\`=\`) member — writes would never notify and the display `+"would never update; declare it with ':='");r(`emitter: '<=>' targets '${t}', which is not declared — declare a state member (\`${t} := ""\`) to bind it`)}if(y(t)&&t[0]==="."&&t[1]==="this"&&t.length===3&&typeof t[2]==="string"){if(this.memberIsReactive(t[2])&&this.rstate.frame.members.get(t[2])==="computed")r(`emitter: '<=>' targets '@${t[2]}', a computed ('~=') member — a derived value has no writable `+"container; bind the state it derives from");if(this.memberIsReactive(t[2]))return;if(this.rstate.frame.members.has(t[2]))r(`emitter: '<=>' targets '@${t[2]}', a non-reactive member — writes would never notify`+"); declare it with ':='");r(`emitter: '<=>' targets '@${t[2]}', which is not a declared member`)}if(y(t)&&E.optionalGuard(t)!==null)r("emitter: a two-way binding target cannot carry optional links — the write form would be invalid JS");let s=t,i=!1;while(y(s)&&(s[0]==="."||s[0]==="[]")&&s.length===3)i=!0,s=s[1];if(i)return;r("emitter: a two-way binding (`<=>`) needs an assignable target — a state member or a member/index chain "+"")}bindRootTouch(e){if(typeof e==="string")return null;if(y(e)&&e[0]==="."&&e[1]==="this"&&e.length===3)return null;let t=e;while(y(t)&&(t[0]==="."||t[0]==="[]")&&t.length===3){if(t[0]==="."&&t[1]==="this"&&typeof t[2]==="string"){let r=t[2];if(this.memberIsReactive(r))return()=>this.b.emit(`${this.renderSelf??"this"}.${r}`);return null}t=t[1]}if(typeof t==="string"){if(this.renderVarKind(t)!==null)return null;let r=this.resolveBareRead(t);if(r==="member-reactive"){let s=t;return()=>this.b.emit(`${this.renderSelf??"this"}.${s}`)}if(r==="reactive"){let s=t;return()=>this.b.emit(s)}}return null}checkUserSpelledBind(e){let t=y(e)?this.stores.idOf(e):null,r=t!==null?this.stores.role(t,"key"):null;if(!r||r.sourceStart==null||this.b.source===null)return;if(this.b.source.slice(r.sourceStart,r.sourceEnd).startsWith("__bind_"))throw this.positionedError(e,"emitter: '__bind_…__:' is the compiler's two-way-binding channel — spell the binding `name <=> container` "+"(`__`-prefixed names are the compiler/runtime namespace)",this.rstate.node)}checkBareEventHandler(e,t){if(!y(t)||t[0]!=="."||t[1]!=="this"||typeof t[2]!=="string")return;let r=this.stores.idOf(t),s=r!==null?this.stores.selfSpan(r):null;if(s===null||s[0]!==s[1])return;let i=e[1],n=typeof i[2]==="string"?i[2]:String(i[2]);if(!Ut.has(n))throw this.positionedError(e,`emitter: \`@${n}\` is not a DOM event — use \`= @${n}\` to render text, or \`@${n}: handler\` for an explicit handler`);if(n==="error")throw this.positionedError(e,"emitter: bare `@error` is ambiguous with the onError lifecycle hook — write `@error: handler` to bind a DOM error listener explicitly");let a=t[2];if(!this.cframes[this.cframes.length-1].members.has(a))throw this.positionedError(e,`emitter: bare \`@${n}\` requires a component method \`${a}\` — define \`${a}\`, or use \`@${n}: handler\` for an explicit handler`)}static collectTemplateClasses(e){let t=[],r,s=e;while(y(s)&&s[0]==="."&&s.length===3){if(typeof s[2]!=="string")return{tag:null,classes:t,id:r};t.unshift(s[2]),s=s[1]}if(typeof s!=="string")return{tag:null,classes:t,id:r};let[i,n]=s.split("#");if(n)r=n;for(let a=0;a=0)r=t[a].slice(o+1),t[a]=t[a].slice(0,o)}return{tag:i||"div",classes:t.filter((a)=>a!==""),id:r}}static templateHeadTag(e){if(!y(e))return null;let t=e[0];if(typeof t==="string"){if(t===".")return E.collectTemplateClasses(e).tag;return t.length>0?t.split("#")[0]||"div":null}if(!y(t))return null;if(y(t[0])&&t[0][0]==="."&&t[0][2]==="__clsx"){let r=t[0][1];if(typeof r==="string")return r.split("#")[0]||"div";return E.collectTemplateClasses(r).tag}return E.collectTemplateClasses(t).tag}static returnGuard(e){return y(e)&&(e[0]==="||"||e[0]==="&&"||e[0]==="??")&&e.length===3&&y(e[2])&&e[2][0]==="return"}static stmtGuard(e){return y(e)&&(e[0]==="||"||e[0]==="&&"||e[0]==="??")&&e.length===3&&(e[2]==="continue"||e[2]==="break"||e[2]==="debugger")}static controlGuard(e){return E.returnGuard(e)||E.throwGuard(e)||E.stmtGuard(e)}static throwGuard(e){return y(e)&&(e[0]==="||"||e[0]==="&&"||e[0]==="??")&&e.length===3&&y(e[2])&&e[2][0]==="throw"&&e[2].length===2}static isStrRepeat(e){return y(e)&&e[0]==="*"&&e.length===3&&typeof e[1]==="string"&&e[1][0]==='"'}static leadsWithObject(e){let t=e;for(;;){if(!y(t))return!1;if(O1(t))return!0;if(ft(t)||da(t)||ut(t)){t=t[1];continue}let r=E.chainHeadSlot(t);if(r!==null){t=t[r];continue}return!1}}static chainHeadSlot(e){if((e[0]==="."||e[0]==="?."||e[0]==="[]"||e[0]==="optindex")&&e.length===3)return 1;if(e[0]==="optcall")return 1;return E.chainHeadSlotRest(e)}chainHeadSlotOf(e){if((e[0]==="."||e[0]==="?."||e[0]==="[]")&&e.length===3)return 1;if(e[0]==="optindex"&&e.length===3&&this.lockedHead(e,"optindex"))return 1;if(e[0]==="optcall"&&this.lockedHead(e,"optcall"))return 1;return E.chainHeadSlotRest(e)}static chainHeadSlotRest(e){if(y(e[0])&&e[0][0]!=="dammit!"&&!(e[0][0]==="."&&e[0].length===3&&e[0][2]==="new"))return 0;return null}static isChainNode(e){return y(e)&&E.chainHeadSlot(e)!==null}isChainNodeOf(e){return y(e)&&this.chainHeadSlotOf(e)!==null}chain(e){this.noteProvidedRead(e);let t=[e];while(!0){let s=t[t.length-1],i=s[this.chainHeadSlotOf(s)];if(!this.isChainNodeOf(i))break;t.push(i)}let r=[];for(let s=0;s=0;s--){let i=t[s],n=i[0],a=r[s];if(this.endMark(a.role),a.kind==="member"){this.inTarget=a.savedTarget;let o=this.deopt&&n==="?."?".":n;if(typeof i[2]==="string"&&i[2][0]==='"')this.mark(i,"operator",()=>this.b.emit(n==="?."&&!this.deopt?"?.":"")),this.mark(i,"property",()=>this.b.emit(`[${i[2]}]`));else this.mark(i,"operator",()=>this.b.emit(o)),this.mark(i,"property",()=>{let l=this.b.offset;if(this.stores.idOf(i)===null)this.emitPrimitive(i[2]);else this.b.emit(i[2]);if(this.ts&&this.appStashSpec!==null&&typeof i[2]==="string"&&E.isThisMember(i[1],"stash")&&!(this.cframes.length&&this.cframes[this.cframes.length-1].members.has("stash")))this.stashMemberSpans.push([l,this.b.offset]);if(this.ts&&i[1]==="this"&&typeof i[2]==="string"){let h=this.cframes[this.cframes.length-1]?.memberKinds?.get(i[2])??null,f=this.stores.idOf(i)??null,u=f!==null?this.stores.role(f,"property"):null;if(h!==null&&u&&typeof u.sourceStart==="number")this.kinds.push({start:u.sourceStart,end:u.sourceEnd,label:h.label,name:i[2],optional:h.optional})}});if(i[1]==="this"&&typeof i[2]==="string"&&this.memberIsReactive(i[2])){if(this.ts){let l=this.stores.idOf(i)??null,c=l!==null?this.stores.role(l,"property"):null;if(c&&typeof c.sourceStart==="number")this.memberDecls.push({start:c.sourceStart,end:c.sourceEnd})}this.b.emit(".value")}}else if(a.kind==="index")this.indexTail(i,a.opt,a.isWrite),this.inTarget=a.savedTarget;else if(a.kind==="optcall")this.b.emit("?."),this.mark(i,"args",()=>{this.b.emit("("),i.slice(2).forEach((o,l)=>{if(l>0)this.b.emit(", ");this.expr(o)}),this.b.emit(")")});else{let o=this.sourceKeyArgOf(i);if(o!==null)(this._sourceKeyArgs??=new Set).add(o),this._needsSourceKeyHelper=!0;let l=this.routerArgOf(i);if(l!==null){if((this._routerArgs??=new Map).set(l.arg,l.wrap),l.wrap)this._needsRouteHelper=!0}this.mark(i,"args",()=>{this.b.emit("("),i.slice(1).forEach((c,h)=>{if(h>0)this.b.emit(", ");this.callArg(c)}),this.b.emit(")")})}this.endMark(a.self)}}member(e){if(e[0]==="."&&e[1]==="this"&&typeof e[2]==="string"&&!this.inTarget)this.notePlainRenderRead(e[2],!0);this.chain(e)}noteProvidedRead(e){if(!this.ts||!(this.cframes?.length>0))return;let t=e;while(y(t)){let n=this.chainHeadSlotOf(t);if(n===null||!y(t[n]))break;t=t[n]}if(!y(t)||t[0]!=="."||t[1]!=="this"||t[2]!=="stash"&&t[2]!=="router")return;if(this.cframes[this.cframes.length-1].members?.has(t[2]))return;let r=this.stores.idOf(t),s=r!==null?this.stores.selfSpan(r):null,i=s!==null?this.stores.primitiveSpans(t[2],s[0],s[1])[0]??null:null;if(i&&!this.kinds.some((n)=>n.start===i.sourceStart&&n.label===t[2]))this.kinds.push({start:i.sourceStart,end:i.sourceEnd,label:t[2],name:t[2],optional:!1})}pick(e,t=!1){let[r,s,...i]=e;if(this.inPattern||this.inTarget)throw this.positionedError(e,"emitter: a pick expression is not an assignment target — it lowers to a fresh object literal (`({…}) = value` would be invalid JS)");let n=r==="?.{}",a=typeof s==="string"&&(s==="this"||/^[A-Za-z_$][\w$]*$/.test(s));if(!a)for(let l of i){if(l[2]!==null&&this.containsAwait(l[2]))throw this.positionedError(l,"emitter: a pick default cannot await when the source needs single evaluation — the lowering's '(_) =>' arrow is not async; bind the source first",e);if(l[2]!==null&&E.containsYield(l[2]))throw this.positionedError(l,"emitter: a pick default cannot yield when the source needs single evaluation — yield cannot cross the lowering's '(_) =>' arrow; bind the source first",e)}let o=(l)=>this.mark(e,"items",()=>{i.forEach((c,h)=>{if(h>0)this.b.emit(", ");let[f,u,d]=c;this.mark(c,"$self",()=>{if(this.mark(c,"target",()=>this.b.emit(E.ownKeyText(u,u))),this.b.emit(": "),d!==null)this.b.emit("(");if(l(),this.b.emit("."),this.mark(c,"key",()=>this.b.emit(f)),d!==null)this.b.emit(" ?? "),this.withExpression(()=>this.operand(c,"default",d)),this.b.emit(")")})})});this.mark(e,"$self",()=>{if(a&&!n)this.b.emit(t?"{":"({"),o(()=>this.mark(e,"source",()=>this.expr(s))),this.b.emit(t?"}":"})");else if(a){if(!t)this.b.emit("(");this.mark(e,"source",()=>this.expr(s)),this.b.emit(" == null ? undefined : {"),o(()=>this.mark(e,"source",()=>this.expr(s))),this.b.emit(t?"}":"})")}else{let l=this.loopTempName("_");this.b.emit(n?`((${l}) => ${l} == null ? undefined : ({`:`((${l}) => ({`),o(()=>this.b.emit(l)),this.b.emit("}))("),this.withExpression(()=>this.grouped(e,"source",s,E.needsGrouping(s,"operand"))),this.b.emit(")")}})}callArg(e){if(this._sourceKeyArgs?.has(e)){this._sourceKeyArgs.delete(e),this.b.tsOnly(()=>this.b.emit("__ripSourceKey("));let r=this.b.offset;this.expr(e),this.sourceKeySpans.push([r,this.b.offset]),this.b.tsOnly(()=>this.b.emit(")"));return}let t=this._routerArgs?.get(e);if(t!==void 0){if(this._routerArgs.delete(e),t)this.b.tsOnly(()=>this.b.emit("__ripRoute("));let r=this.b.offset;if(this.expr(e),this.routeWrapSpans.push({key:null,value:[r,this.b.offset]}),t)this.b.tsOnly(()=>this.b.emit(")"));return}if(y(e)&&(e[0]===".{}"||e[0]==="?.{}")&&e.length>=3)return this.pick(e,!0);this.expr(e)}sourceKeyArgOf(e){if(!this.ts||this.appStashSpec===null)return null;let t=e[1];if(typeof t!=="string"||!/^["']/.test(t))return null;let r=e[0];if(!y(r)||r.length!==3||r[2]!=="source")return null;let s=r[1];if(r[0]==="."&&E.isThisMember(s,"stash")){if(this.cframes.length&&this.cframes[this.cframes.length-1].members.has("stash"))return null;return t}if((r[0]==="."||r[0]==="?.")&&this.isAccessorCall(s,this.appAccessors.stash))return t;return null}static isThisMember(e,t){return y(e)&&e[0]==="."&&e.length===3&&e[1]==="this"&&e[2]===t}static stashKeysOf(e,t){let r=null;for(let n of e.slice(1)){let a=y(n)&&n[0]==="export"?n[1]:n;if(y(a)&&a[0]==="="&&a[1]===t){r=a[2];break}}if(y(r)&&r.length===2&&typeof r[0]==="string"&&y(r[1])&&r[1][0]==="object")r=r[1];if(!y(r)||r[0]!=="object")return null;let s=[],i=!0;for(let n of r.slice(1)){if(!y(n))continue;if(n[0]==="..."){i=!1;continue}let a=n[0]===":"?n[1]:n[0]===null?n[1]:null;if(typeof a!=="string"){i=!1;continue}s.push(/^["']/.test(a)?a.slice(1,-1):a)}return{keys:s,complete:i}}routerArgOf(e){if(!this.ts||this.routesUnion===null)return null;let t=e[1];if(typeof t!=="string"||!/^["']/.test(t))return null;let r=e[0];if(!y(r)||r.length!==3||r[2]!=="push"&&r[2]!=="replace")return null;let s=r[1];if(r[0]==="."&&E.isThisMember(s,"router")){if(this.cframes.length&&this.cframes[this.cframes.length-1].members.has("router"))return null;return{arg:t,method:r[2],wrap:!1}}if((r[0]==="."||r[0]==="?.")&&this.isAccessorCall(s,this.appAccessors.router))return{arg:t,method:r[2],wrap:!0};return null}binary(e){if(E.returnGuard(e))throw this.positionedError(e[2],"emitter: a return guard is a statement — in value position the 'return' would lose its function target (bind the value first, or use `or throw`)");if(E.stmtGuard(e))throw this.positionedError(e[2],`emitter: a ${e[2]} guard is a statement`);if(e[0]==="&&"||e[0]==="||")return this.logicalChain(e);if(E.isStrRepeat(e)){this.mark(e,"$self",()=>{this.mark(e,"left",()=>this.b.emit(e[1])),this.b.emit(".repeat("),this.mark(e,"right",()=>this.expr(e[2])),this.b.emit(")")});return}if(ut(e))return this.comparisonChain(e);let t=(o)=>ft(o)&&o[0]!=="&&"&&o[0]!=="||"&&!ut(o)&&!E.isStrRepeat(o),r=[e];while(t(r[r.length-1][1]))r.push(r[r.length-1][1]);let s=[];for(let o=0;o=0;o--){let l=r[o];if(this.b.emit(" "),this.mark(l,"operator",()=>this.b.emit(Pi[l[0]]??l[0])),this.b.emit(" "),this.operand(l,"right",l[2]),this.endMark(s[o].self),o>0)this.endMark(s[o-1].left),this.b.emit(")")}}logicalChain(e){let t=e[0],r=(a)=>ft(a)&&a[0]===t,s=[e];while(r(s[s.length-1][1]))s.push(s[s.length-1][1]);let i=[];for(let a=0;a=0;a--){let o=s[a];if(this.b.emit(" "),this.mark(o,"operator",()=>this.b.emit(t)),this.b.emit(" "),r(o[2]))this.grouped(o,"right",o[2],!1);else this.operand(o,"right",o[2]);if(this.endMark(i[a].self),a>0)this.endMark(i[a-1].left)}}comparisonChain(e){let t=[e];while(ut(t[t.length-1]))t.push(t[t.length-1][1]);t.reverse();let r=[];for(let n=t.length-1;n>=1;n--){let a=t[n],o=this.beginMark(a,"$self");this.b.emit("("),r[n]={self:o,left:this.beginMark(a,"left")}}let s=t[0],i=this.beginMark(s,"$self");this.operand(s,"left",s[1]),this.b.emit(" "),this.mark(s,"operator",()=>this.b.emit(Pi[s[0]]??s[0])),this.b.emit(" "),this.chainRight(s,t[1]),this.endMark(i);for(let n=1;nthis.b.emit(Pi[a[0]]??a[0])),this.b.emit(" "),this.chainRight(a,t[n+1]),this.b.emit(")"),this.endMark(r[n].self)}}chainRight(e,t){let r=e[2];if(t!==void 0&&y(r)){let s=this.temps.byNode.get(t);if(s===void 0)throw this.positionedError(r,"emitter: a chained comparison here cannot cache its middle operand for single evaluation "+"(no enclosing scope hoist) — bind the middle operand to a variable first ",e);this.b.emit("("),this.mark(e,"right",()=>{this.b.emit(`${s} = `),this.expr(r)}),this.b.emit(")");return}this.operand(e,"right",r)}chainMid(e,t){let r=this.temps.byNode.get(t);if(r!==void 0){this.mark(e,"right",()=>this.b.emit(r));return}this.operand(e,"right",e[2])}postfixType(e){if(!this.ts){this.mark(e,"$self",()=>this.mark(e,"annotation",()=>this.mark(e,"value",()=>this.expr(e[1]))));return}let t=this.stores.idOf(e),r=t===null?null:this.stores.role(t,"annotation"),s=r&&r.sourceStart!=null&&this.b.source!==null?this.b.source.slice(r.sourceStart,r.sourceEnd):`${e[0]==="cast"?"as":"satisfies"} ${Be(e[2])}`;this.mark(e,"$self",()=>{this.b.tsOnly(()=>this.b.emit("("));let i=E.jsTier(e[1])!=="primary";if(i)this.b.tsOnly(()=>this.b.emit("("));if(this.mark(e,"value",()=>this.expr(e[1])),i)this.b.tsOnly(()=>this.b.emit(")"));this.b.tsOnly(()=>{this.b.emit(" "),this.mark(e,"annotation",()=>this.emitTypeText(e,"annotation",s))}),this.b.tsOnly(()=>this.b.emit(")"))})}existence(e){this.mark(e,"$self",()=>{this.operand(e,"value",e[1]),this.b.emit(" != null")})}unary(e){if(e[0]==="delete"&&typeof e[1]==="string"&&this.isReactiveName(e[1]))throw this.positionedError(e,`emitter: cannot delete the reactive variable '${e[1]}' — \`delete ${e[1]}.value\` would remove the container's accessor and silently kill the reactive`);if(e[0]==="delete"&&!(y(e[1])&&(e[1][0]==="."||e[1][0]==="[]")))throw this.positionedError(e,"emitter: delete requires a property reference (delete obj.a / delete obj[k]) — deleting a plain binding is a strict-mode SyntaxError in modules");this.mark(e,"$self",()=>{if(this.mark(e,"operator",()=>this.b.emit(e[0])),/^[a-z]/.test(e[0]))this.b.emit(" ");this.operand(e,"operand",e[1])})}spread(e){this.mark(e,"$self",()=>{if(this.b.emit("..."),this.inPattern)this.mark(e,"value",()=>this.expr(e[1]));else this.operand(e,"value",e[1])})}array(e){this.mark(e,"$self",()=>{this.b.emit("["),this.mark(e,"items",()=>{let t=e.slice(1);t.forEach((r,s)=>{if(s>0)this.b.emit(", ");if(r===","){if(s===t.length-1)this.b.emit(",");return}if(y(r)&&r[0]==="rest"&&this.inPattern){if(!this.bindingPattern)throw this.positionedError(r,"emitter: Cannot use 'rest' expression as a destructuring target (destructuring rest is spelled '...name')",e);if(r.length!==2||s!==t.length-1)throw this.positionedError(r,"emitter: a `rest` element takes the pattern's tail alone",e);if(typeof r[1]!=="string")throw this.positionedError(r,"emitter: a `rest` element takes a plain name",e);this.b.emit("..."),this.b.emit(r[1]);return}let i=!this.inPattern&&!(y(r)&&r[0]==="...")&&E.needsGrouping(r,"operand");if(i)this.b.emit("(");if(this.expr(r),i)this.b.emit(")")})}),this.b.emit("]")})}symbolKey(e){this.b.emit("["),this.expr(e),this.b.emit("]")}static isMethodPair(e){return y(e)&&(e[0]===":"||e[0]==="void-pair")&&typeof e[1]==="string"&&/^[A-Za-z_$][\w$]*$/.test(e[1])&&y(e[2])&&e[2][0]==="->"}object(e){for(let a of e.slice(1)){if(y(a)&&a[0]===":"&&typeof a[1]==="string"&&a[1][0]==="/")throw this.positionedError(a,"emitter: a regex key needs a MAP literal (`*{ /re/: v }`) — object property names are strings");if(!this.inPattern&&!this.tolerant&&y(a)&&a[0]==="="&&a.length===3)throw this.positionedError(a,"emitter: `a = 1` inside an object literal is a destructuring default, which only a pattern can carry — spell the pair `a: 1`",e)}let t=!this.inPattern&&E.objectComprehension(e);if(t){let a=y(t[1])?t[1]:null,o={expr:a!==null?a[1]:t[1],pair:t,keyNode:a};return this.mark(e,"$self",()=>this.mark(e,"pairs",()=>this.mark(t,"$self",()=>this.mark(t,"value",()=>this.comprehension(t[2],this.ind,o)))))}let r=e.slice(1),s=this.ind,i=r.map((a)=>!this.inPattern&&E.isMethodPair(a)),n=(a)=>i[a]||i.slice(0,a).some(Boolean)?`, +`:", ";this.mark(e,"$self",()=>{this.b.emit("{"),this.mark(e,"pairs",()=>{r.forEach((a,o)=>{if(o>0)this.b.emit(n(o));if(i[o]){this.mark(a,"voidMarker",()=>this.mark(a,"$self",()=>{if(this.containsAwait(a[2][2]))this.b.emit("async ");if(E.containsYield(a[2][2]))this.b.emit("*");this.mark(a,"key",()=>this.b.emit(a[1]));let[,f,u]=a[2],d=this.ts&&this.contextuallyTyped(a[2]);this.b.emit("("),this.mark(a[2],"params",()=>this.emitParams(f,null,!d)),this.b.emit(")"),this.tsReturnAnnotation(a[2],this.containsAwait(u),a[0]==="void-pair",E.containsYield(u),a),this.b.emit(" "),this.mark(a,"value",()=>{this.methodBlock(a[2],u,s,{isConstructor:!1,binds:[],methodName:a[1],voidBody:a[0]==="void-pair"})})}));return}let l=y(a[1])&&a[1][0]==="dynamicKey";if(l&&a[0]===null)throw this.positionedError(a,"emitter: a computed key needs an explicit value ({[k]: v}) — there is no shorthand form",e);let c=y(a[1])&&a[1][0]==="str",h=a[0]===":"&&y(a[1])&&a[1][0]==="symbol";if(a[0]!=="..."&&y(a[1])&&!l&&!c&&!h)throw this.positionedError(a,"emitter: @-keys are only supported in class bodies",e);if(h){this.mark(a,"$self",()=>{this.mark(a,"key",()=>this.symbolKey(a[1])),this.b.emit(": "),this.mark(a,"value",()=>this.expr(a[2]))});return}if(a[0]===":"&&c){this.mark(a,"$self",()=>{this.b.emit("["),this.mark(a,"key",()=>this.strTemplate(a[1])),this.b.emit("]: "),this.mark(a,"value",()=>this.expr(a[2]))});return}this.mark(a,"$self",()=>{if(a[0]===":"&&l)if(this.mark(a,"key",()=>{this.mark(a[1],"$self",()=>{this.b.emit("["),this.withExpression(()=>this.operand(a[1],"key",a[1][1])),this.b.emit("]")})}),this.b.emit(": "),this.inPattern||y(a[2])&&a[2][0]==="=>")this.mark(a,"value",()=>this.expr(a[2]));else this.operand(a,"value",a[2]);else if(a[0]===":"||a[0]==="void-pair"){if(a[0]==="void-pair"){if(this.inPattern)throw this.positionedError(a,"emitter: the void marker has no meaning in a destructuring pattern — a pattern key takes no trailing '!'",e);this.registerVoidValue(a[2],a)}this.mark(a,"voidMarker",()=>{if(this.mark(a,"key",()=>this.b.emit(a[1])),this.b.emit(": "),this.inPattern||y(a[2])&&a[2][0]==="=>")this.mark(a,"value",()=>this.expr(a[2]));else this.operand(a,"value",a[2])})}else if(a[0]==="=")this.mark(a,"key",()=>this.b.emit(a[1])),this.b.emit(" = "),this.withExpression(()=>this.operand(a,"value",a[2]));else if(a[0]==="..."){if(this.inPattern&&(y(a[1])||a[1]==="this"))throw this.positionedError(a,"emitter: object rest in a destructuring pattern takes a plain name — chained-accessor rest targets are not supported",e);if(this.b.emit("..."),this.inPattern)this.mark(a,"value",()=>this.expr(a[1]));else this.operand(a,"value",a[1])}else if(typeof a[1]==="string"&&this.bareRewrite(a[1])!==null)this.mark(a,"key",()=>this.b.emit(a[1])),this.b.emit(": "),this.mark(a,"value",()=>this.expr(a[1]));else this.mark(a,"value",()=>this.mark(a,"key",()=>this.b.emit(a[1])))})})}),this.b.emit("}")})}static negativeLiteralKey(e){return y(e)&&e[0]==="-"&&e.length===2&&typeof e[1]==="string"&&/^\d+$/.test(e[1])}indexTail(e,t,r){let s=e[2],i=()=>{let n=this.deopt;this.deopt=!1,this.mark(e,"key",()=>this.expr(s)),this.deopt=n};if(!t&&We(s))this.mark(e,"key",()=>this.slice(s));else if(E.negativeLiteralKey(s)){if(r)throw this.positionedError(e,"emitter: a negative-literal index cannot be an assignment target (reads lower to .at(-n), and a call is not assignable)");this.b.emit(t?"?.at(":".at("),this.mark(e,"key",()=>{this.b.emit("-"),this.b.emit(s[1])}),this.b.emit(")")}else this.b.emit(t?"?.[":"["),i(),this.b.emit("]")}index(e){if(e.length===3&&typeof e[2]==="string"&&e[2][0]==="/")return this.regexIndex(e,e[1],e[2],null);this.chain(e)}optIndex(e){this.chain(e)}optCall(e){this.chain(e)}slice(e){let[t,r,s]=e;if(this.b.emit(".slice("),this.mark(e,"from",()=>r===null?this.b.emit("0"):this.expr(r)),s!==null)if(this.b.emit(", "),t==="...")this.mark(e,"to",()=>this.expr(s));else if(typeof s==="string"&&/^\d+$/.test(s))this.mark(e,"to",()=>this.b.emit(String(Number(s)+1)));else this.b.emit("+"),this.mark(e,"to",()=>this.expr(s)),this.b.emit(" + 1 || 9e9");this.b.emit(")")}range(e){let[t,r,s]=e,i=t===".."?"((s, e) => Array.from({length: Math.abs(e - s) + 1}, (_, i) => s + (i * (s <= e ? 1 : -1))))":"((s, e) => Array.from({length: Math.max(0, Math.abs(e - s))}, (_, i) => s + (i * (s <= e ? 1 : -1))))";this.mark(e,"$self",()=>{this.b.emit(i),this.b.emit("("),this.mark(e,"from",()=>this.expr(r)),this.b.emit(", "),this.mark(e,"to",()=>this.expr(s)),this.b.emit(")")})}classStatement(e,t){this.mark(e,"$self",()=>this.classCode(e,t))}classExpr(e){this.mark(e,"$self",()=>this.classCode(e,this.ind))}classCode(e,t){let[,r,s,i]=e;if(this.b.emit("class"),r!=null){if(typeof r!=="string")throw this.positionedError(e,"emitter: `class @Name` is a STATIC member class — it lives inside a class body (`static Name = class`); at the top level give the class a plain name");this.b.emit(" "),this.mark(e,"name",()=>this.b.emit(r))}if(s!=null)this.b.emit(" extends "),this.grouped(e,"parent",s,E.needsGrouping(s,"head"));if(this.b.emit(` { +`),i!=null)this.mark(e,"body",()=>this.classMembers(i,t));this.b.emit(" ".repeat(t)+"}")}classMethodForm(e){if(!y(e))return null;if(k1(e[0])&&e.length===4){let t=this.stores.alias(["->",e[2],e[3]],e);return{form:"def",pair:this.stores.alias([e[0]==="void-def"?"void-pair":":",e[1],t],e)}}if((e[0]==="get"||e[0]==="set")&&e.length===2&&O1(e[1])&&e[1].length===2){let t=e[1][1];if(y(t)&&t[0]===":"&&t.length===3&&T1(t[2]))return{form:e[0],pair:t}}return null}classMembers(e,t){let r=y(e)&&e[0]==="block"?e.slice(1):[e],s=new Map(r.map((b)=>[b,this.classMethodForm(b)])),i=(b)=>y(b)&&b[0]==="."&&b[1]==="this"?b[2]:b,n=(b)=>y(b)&&b[0]==="."&&b[1]==="this"&&b.length===3&&typeof b[2]==="string",a=" ".repeat(t+1),o=[],l=null,c=!1,h=new Set,f=null,u=null,d=[],p=(b)=>n(b)?`static ${b[2]}`:b,m=new Set,g=[];for(let b of r){let S=s.get(b)??null,w=S!==null?[S.pair]:O1(b)?b.slice(1):null;if(w===null){let R=typeof b==="string"||n(b)?b:E.isTypedWrapper(b)&&(typeof b[1]==="string"||n(b[1]))?b[1]:y(b)&&b[0]==="="&&b.length===3&&(typeof b[1]==="string"||n(b[1]))?b[1]:null;if(R!==null){if(m.add(p(R)),!n(R))h.add(R)}continue}for(let R of w){if(R[0]!==":"&&R[0]!=="void-pair")throw this.positionedError(R,"emitter: class bodies support methods and fields only",b);if(S!==null&&S.form!=="def"){let j=R[2][1].length;if(R[2][0]==="=>")throw this.positionedError(R,`emitter: a ${S.form} accessor takes '->' — accessors are looked up on the instance, never bound`,b);if(this.containsAwait(R[2][2])||E.containsYield(R[2][2]))throw this.positionedError(R,`emitter: a ${S.form} accessor cannot await or yield — JavaScript has no async or generator accessors`,b);if(S.form==="get"&&j!==0)throw this.positionedError(R,"emitter: a getter takes no parameters (`get x: -> …`)",b);if(S.form==="set"&&j!==1)throw this.positionedError(R,"emitter: a setter takes exactly one parameter (`set x: (v) -> …`)",b)}if(y(R[1])&&(R[1][0]==="dynamicKey"||R[1][0]==="[]"))throw this.positionedError(R,"emitter: computed class members are not supported yet",b);let T=i(R[1]);if(S!==null&&S.form!=="def"){if(T==="constructor")throw this.positionedError(R,`emitter: a class constructor cannot be a ${S.form} accessor`,b);g.push({pair:R,stmt:b,key:p(R[1]),form:S.form})}if(T==="constructor"&&!n(R[1])){if(c=!0,T1(R[2]))f=R[2][1],u=R[2][2]}else if(!n(R[1])&&typeof T==="string")h.add(T);if(T1(R[2])&&!n(R[1])&&T!=="constructor")d.push(R[2][2]);if(T1(R[2])&&R[2][0]==="=>"&&!n(R[1])&&T!=="constructor"){if(typeof T!=="string")throw this.positionedError(R,"emitter: a symbol-keyed method cannot be bound ('=>') — the constructor binds members by name; use '->'",b);o.push(T),l??=R}}}if(o.length>0&&!c)throw this.positionedError(l,"emitter: bound ('=>') class methods require an explicit constructor",e);for(let b of g)if(m.has(b.key))throw this.positionedError(b.pair,`emitter: field and ${b.form} accessor '${i(b.pair[1])}' share a name — the field would shadow the accessor on every instance; drop one`,b.stmt);if(this.ts&&f!==null)for(let b of f){let S=C3(b);if(S===null||h.has(S.name))continue;h.add(S.name);let w=S.typed===null?null:this.annotationText(S.typed)??(S.typed[2]===""?null:Be(S.typed[2])),R=this.stores.idOf(e),T=R!==null?this.stores.selfSpan(R):null,j=T!==null?this.stores.primitiveSpans(S.name,T[0],T[1])[0]??null:null;this.b.tsOnly(()=>{if(this.b.emit(a),j)this.b.markSpan(R,"identifier",j.sourceStart,j.sourceEnd,()=>this.b.emit(S.name));else this.b.emit(S.name);this.b.emit(`${w?`: ${w}`:""}; +`)})}if(this.ts)for(let b of P3([u,...d])){if(h.has(b.name))continue;h.add(b.name);let w=b.nodes.map((R)=>this.annotationText(R)).find((R)=>R!=null)??null??(b.viaArrow?"any":null);this.b.tsOnly(()=>this.b.emit(`${a}${b.name}${w?`: ${w}`:""}; +`))}for(let b of r)this.withTsDirectives(b,a,()=>this.classMember(b,e,t,a,{memberName:i,isStaticKey:n,bound:o,form:s.get(b)??null}),!0)}classFieldValue(e){if(this.containsAwait(e))throw this.positionedError(e,"emitter: a class field initializer cannot await — JavaScript evaluates class fields synchronously");if(E.containsYield(e))throw this.positionedError(e,"emitter: a class field initializer cannot yield — class field evaluation is not a generator context");let t=this.planReferenceTemps([e],new Set);if(t.length===0){this.expr(e);return}this.b.emit("(() => { "),this.hoistLine(t),this.b.emit(" return "),this.expr(e),this.b.emit("; })()")}classMember(e,t,r,s,{memberName:i,isStaticKey:n,bound:a,form:o}){let l=o!==null&&o.form!=="def"?o.form:null,c=o!==null&&o.form==="def"?"name":"key",h=e;if(o!==null)e=this.stores.alias(["object",o.pair],e);{if(y(e)&&e[0]==="class"&&y(e[1])&&e[1][0]==="."&&e[1][1]==="this"&&typeof e[1][2]==="string"){this.b.emit(s+"static "),this.mark(e,"name",()=>this.emitPrimitive(e[1][2])),this.b.emit(" = "),this.classCode(["class",null,e[2]??null,e[3]],r+1),this.b.emit(`; +`);return}if(O1(e)){for(let f of e.slice(1))this.withTsDirectives(f,s,()=>{let u=f[1],d=f[2],p=i(u),m=f[0]==="void-pair";if(!T1(d)){if(m)throw this.positionedError(f,"emitter: the void marker (a trailing '!' on the method key) requires a function value — `fn!: ->` (this class member's value is not a function)",e);throw this.positionedError(f,"emitter: a class field takes '=' for its value (`x = v`, `x: T = v`, `@x = v`) — `name: value` is a typed bodiless field only when the value is a TYPE",e)}if(m&&p==="constructor")throw this.positionedError(f,"emitter: a constructor cannot carry the void marker (`constructor!:`) — constructors have no implicit return to suppress",e);this.b.emit(s),this.mark(f,"voidMarker",()=>this.mark(f,"$self",()=>{if(n(u))this.b.emit("static ");if(this.containsAwait(d[2]))this.b.emit("async ");if(E.containsYield(d[2]))this.b.emit("*");if(l!==null){let R=this.stores.idOf(h),T=R!==null?this.stores.role(R,"callee"):null;if(T!==null)this.silences.push([T.sourceStart,T.sourceEnd]);this.mark(h,"callee",()=>this.b.emit(l)),this.b.emit(" ")}if(y(u)&&u[0]==="symbol")this.mark(f,"key",()=>this.symbolKey(u));else this.mark(f,c,()=>this.emitPrimitive(p));if(this.ts){let R=this.annotationText(f,"typeParams");if(R!==null)this.b.tsOnly(()=>this.mark(f,"typeParams",()=>this.emitTypeText(f,"typeParams",R)))}let[,g,b]=d,S=[],w=p==="constructor"&&!n(f[1]);if(w){let R=(T)=>{let j=gt(T);if(j!==null)return S.push(j),y(T)&&T[0]==="typed-var"?["typed-var",j,T[2]]:j;if(y(T)&&T[0]==="default"&&T.length===3){let M=gt(T[1]);if(M!==null)return S.push(M),["default",y(T[1])&&T[1][0]==="typed-var"&&T[1].length===3?["typed-var",M,T[1][2]]:M,T[2]]}return T};if(g=g.map(R),S.length>0&&y(b)&&b[0]==="block"&&y(b[1])&&b[1][0]==="super"){let T=new Set(S),j=(M)=>{if(!y(M))return M;if(M[0]==="."&&M[1]==="this"&&T.has(M[2]))return M[2];return M.map(j)};b=["block",j(b[1]),...b.slice(2)]}}if(this.b.emit("("),this.emitParams(g,null,l!=="set"),this.b.emit(")"),!w)this.tsReturnAnnotation(d,this.containsAwait(d[2]),m,E.containsYield(d[2]),f);this.b.emit(" "),this.mark(f,"value",()=>{this.methodBlock(d,b,r+1,{isConstructor:w,binds:w?a:[],methodName:typeof p==="string"?p:"symbol",voidBody:m||l==="set",tailReturn:l!=="set",voidReason:l==="set"?"a setter discards its return value":null,atParams:S})})})),this.b.emit(` +`)},!0);return}if(typeof e==="string"){this.b.emit(s+e+`; +`);return}if(n(e)){this.b.emit(s),this.mark(e,"$self",()=>{this.b.emit("static "),this.mark(e,"property",()=>this.emitPrimitive(e[2]))}),this.b.emit(`; +`);return}if(E.isTypedWrapper(e)&&(typeof e[1]==="string"||n(e[1]))){this.b.emit(s),this.mark(e,"$self",()=>this.mark(e,"annotation",()=>{if(n(e[1]))this.b.emit("static ");if(this.mark(e,"target",()=>this.withDeclaredName(()=>this.emitPrimitive(i(e[1])))),this.ts)this.tsAnnotate(e,"annotation",this.annotationText(e)??Be(e[2]))})),this.b.emit(`; +`);return}if(y(e)&&e[0]==="="&&e.length===3&&(typeof e[1]==="string"||n(e[1]))){this.ind=r+1,this.b.emit(s),this.mark(e,"annotation",()=>this.mark(e,"$self",()=>{if(n(e[1]))this.b.emit("static ");if(this.mark(e,"target",()=>this.withDeclaredName(()=>this.emitPrimitive(i(e[1])))),this.ts&&this.annotationText(e)!==null)this.tsAnnotate(e,"annotation",this.annotationText(e));this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.mark(e,"value",()=>this.withExpression(()=>this.classFieldValue(e[2])))})),this.b.emit(`; +`);return}if(y(e)&&e[0]==="type-decl")throw this.positionedError(e,"emitter: type declarations are not allowed as class members — move the `type`/`interface` to module scope");if(this.isReactiveDecl(e))throw this.positionedError(e,`emitter: a reactive declaration ('${typeof e[1]==="string"?e[1]:"…"} ${e[0]==="state"?":=":"~="} …') cannot be a class member — declare it at module or function scope`);if(this.isEffectDecl(e))throw this.positionedError(e,"emitter: an effect ('~>') cannot be a class member — run it at module or function scope, or inside a method");if(this.isReadonlyDecl(e))throw this.positionedError(e,`emitter: a readonly declaration ('${typeof e[1]==="string"?e[1]:"…"} =! …') cannot be a class member — declare it at module or function scope`);throw this.positionedError(e,"emitter: unsupported class member — fields take `name = value`, `name: T = value`, `name: T`, or their `@`-static forms; methods take `name: -> …`",t)}}static middleRestPattern(e){if(!y(e)||e[0]!=="array")return!1;let t=e.slice(1),r=t.findIndex((s)=>y(s)&&s[0]==="..."&&s.length===2);return r!==-1&&ry(o)&&o[0]==="..."&&o.length===2),i=r.slice(0,s),n=r[s][1],a=r.slice(s+1);for(let o of[...i,n,...a])if(typeof o!=="string")throw this.positionedError(e,"emitter: a middle-rest pattern takes plain names (`[a, ...mid, b]`) — nested patterns have no single-read lowering");this.mark(e,"$self",()=>{let o=e[2],l=this.repeatSafeValue(o)?null:this.loopTempName("_ref");if(l!==null)this.temps.used.add(l),this.b.emit(`const ${l} = `),this.mark(e,"value",()=>this.expr(o)),this.b.emit(`; ${" ".repeat(t)}`);let c=()=>{if(l!==null)this.b.emit(l);else this.expr(o)},h=()=>this.b.emit(`; -${" ".repeat(t)}`);i.forEach((f,u)=>{this.b.emit(`${f} = `),c(),this.b.emit(`[${u}]`),h()}),this.b.emit(`${s} = `),c(),this.b.emit(a.length>0?`.slice(${i.length}, -${a.length})`:`.slice(${i.length})`),a.forEach((f,u)=>{h(),this.b.emit(`${f} = `),c(),this.b.emit("["),c(),this.b.emit(`.length - ${a.length-u}]`)})})}methodBlock(e,t,r,{isConstructor:n,binds:i,methodName:s,voidBody:a=!1,tailReturn:o=!0,voidReason:l=null,atParams:c=[]}){let h=this.liveStmts(y(t)&&t[0]==="block"?t.slice(1):[t],{forwards:!0}),{entries:f,names:u}=this.scopedHoist(h,e[1]);for(let g of this.pushReactiveFrame(h,u,e[1],e))u.add(g);this.scopes.push(u);let d=this.methodName;this.methodName=s;let p=this.sideEffectOnly,m=this.voidReason;this.sideEffectOnly=a,this.voidReason=l,this.mark(t,"$self",()=>{if(this.b.emit(`{ +${" ".repeat(t)}`);i.forEach((f,u)=>{this.b.emit(`${f} = `),c(),this.b.emit(`[${u}]`),h()}),this.b.emit(`${n} = `),c(),this.b.emit(a.length>0?`.slice(${i.length}, -${a.length})`:`.slice(${i.length})`),a.forEach((f,u)=>{h(),this.b.emit(`${f} = `),c(),this.b.emit("["),c(),this.b.emit(`.length - ${a.length-u}]`)})})}methodBlock(e,t,r,{isConstructor:s,binds:i,methodName:n,voidBody:a=!1,tailReturn:o=!0,voidReason:l=null,atParams:c=[]}){let h=this.liveStmts(y(t)&&t[0]==="block"?t.slice(1):[t],{forwards:!0}),{entries:f,names:u}=this.scopedHoist(h,e[1]);for(let g of this.pushReactiveFrame(h,u,e[1],e))u.add(g);this.scopes.push(u);let d=this.methodName;this.methodName=n;let p=this.sideEffectOnly,m=this.voidReason;this.sideEffectOnly=a,this.voidReason=l,this.mark(t,"$self",()=>{if(this.b.emit(`{ `),f.length)this.b.emit(" ".repeat(r+1)),this.hoistLine(f," ".repeat(r+1)),this.b.emit(` `);let g=" ".repeat(r+1),b=()=>{for(let S of i)this.b.emit(`${g}this.${S} = this.${S}.bind(this); `);for(let S of c)this.b.emit(`${g}this.${S} = ${S}; -`)};if(this.emitTsTypeDecls(y(t)&&t[0]==="block"?t.slice(1):[t],g),this.mark(t,"statements",()=>{let S=n&&h.length>0&&y(h[0])&&h[0][0]==="super";if(!S)b();h.forEach((w,R)=>{this.b.emit(g);let T=R===h.length-1;if(!n&&!a&&T)this.implicitReturn(w,r+1);else this.statement(w,r+1,!T||!n);if(this.b.emit(` -`),S&&R===0)b()})}),o)this.voidTailReturn(h,r);this.b.emit(" ".repeat(r)+"}")}),this.sideEffectOnly=p,this.voidReason=m,this.methodName=d,this.scopes.pop(),this.rframes.pop()}superCall(e){if(!this.methodName)throw this.positionedError(e,"emitter: super outside a class method");this.mark(e,"$self",()=>{this.b.emit(this.methodName==="constructor"?"super(":`super.${this.methodName}(`),this.mark(e,"args",()=>{e.slice(1).forEach((t,r)=>{if(r>0)this.b.emit(", ");this.callArg(t)})}),this.b.emit(")")})}newExpr(e){let[,t]=e;this.mark(e,"$self",()=>{this.mark(e,"operator",()=>this.b.emit("new")),this.b.emit(" "),this.mark(e,"operand",()=>{if(y(t)&&hr.has(t[0])&&E.optionalGuard(t))this.b.emit("("),this.expr(t),this.b.emit(" ?? undefined)()");else if(y(t)&&(t[0]==="."||t[0]==="?."))if(E.pureSpine(t))this.member(t),this.b.emit("()");else this.b.emit("("),this.expr(t),this.b.emit(")()");else if(y(t)&&t[0]==="new"&&t.length===2&&E.optionalGuard(t[1]))this.b.emit("("),this.newExpr(t),this.b.emit(")()");else if(y(t)&&t[0]==="tagged-template")this.b.emit("("),this.taggedTemplate(t),this.b.emit(")()");else if(y(t)&&y(t[0])&&!Ce(t[0])&&hr.has(t[0][0])&&E.optionalGuard(t[0]))this.mark(t,"$self",()=>{this.b.emit("("),this.expr(t[0]),this.b.emit(" ?? undefined)"),this.mark(t,"args",()=>{this.b.emit("("),t.slice(1).forEach((r,n)=>{if(n>0)this.b.emit(", ");this.callArg(r)}),this.b.emit(")")})});else if(y(t)&&t[0]==="new"&&t.length===2)this.b.emit("("),this.newExpr(t),this.b.emit(")()");else if(y(t)&&t[0]==="dammit!"){if(t.parenthesized)this.b.emit("(");if(this.dammit(t),t.parenthesized)this.b.emit(")");this.b.emit("()")}else if(y(t)){let r=this.semanticKindOf(t)==="call",n=t[0],i=!Ce(n)&&(E.pureSpine(n)||y(n)&&!n.parenthesized&&this.semanticKindOf(n)==="call"||y(n)&&n[0]==="dammit!");if(hr.has(t[0])&&E.pureSpine(t))this.call(t),this.b.emit("()");else if(r&&!t.parenthesized&&Ce(n))this.b.emit("("),this.call(t),this.b.emit(")()");else if(r&&!t.parenthesized&&i)this.call(t);else if(r&&!t.parenthesized){let s=this.ts&&y(n)&&(n[0]==="cast"||n[0]==="satisfies");this.mark(t,"$self",()=>{if(!s)this.b.emit("(");if(this.expr(n),!s)this.b.emit(")");this.mark(t,"args",()=>{this.b.emit("("),t.slice(1).forEach((a,o)=>{if(o>0)this.b.emit(", ");this.callArg(a)}),this.b.emit(")")})})}else{let s=this.ts&&(t[0]==="cast"||t[0]==="satisfies");if(!s)this.b.emit("(");this.expr(t),this.b.emit(s?"()":")()")}}else this.emitPrimitive(t),this.b.emit("()")})})}emitParam(e){if(typeof e==="string")return this.withDeclaredName(()=>this.emitPrimitive(e));if(e[0]==="typed-var"){this.mark(e,"$self",()=>this.mark(e,"annotation",()=>{if(this.mark(e,"target",()=>this.emitParam(e[1])),this.ts){let t=this.stores.idOf(e);if(t!==null&&this.stores.role(t,"optionalMarker"))this.b.tsOnly(()=>this.mark(e,"optionalMarker",()=>this.b.emit("?")));let r=this.annotationText(e)??(e[2]===""?"":Be(e[2]));if(r!=="")this.tsAnnotate(e,"annotation",r)}}));return}if(e[0]==="rest")return this.b.emit("..."),this.emitParam(e[1]);if(e[0]==="default")return this.emitParam(e[1]),this.b.emit(" = "),this.withExpression(()=>this.expr(e[2]));this.withPattern(()=>this.expr(e),!0)}static paramCore(e){return y(e)&&e[0]==="typed-var"?e[1]:e}static expansionSplit(e){let t=e.findIndex((n)=>y(n)&&n[0]==="expansion");if(t===-1)return{list:e,extractions:[]};let r=e.slice(t+1);return{list:[...e.slice(0,t),["rest","_rest"]],extractions:r.map((n,i)=>({node:n,name:E.paramCore(n),slot:`_rest[_rest.length - ${r.length-i}]`}))}}contextuallyTyped(e){let t=this.stores.idOf(e),r=t===null?null:this.stores.node(t);if(!r||typeof r.sourceStart!=="number")return!1;if(this._argSpans??=this.stores.roles.filter((n)=>n.role==="args"&&typeof n.sourceStart==="number").map((n)=>[n.sourceStart,n.sourceEnd]),this._argSpans.some(([n,i])=>r.sourceStart>=n&&r.sourceEnd<=i))return!0;return this._annotatedValueSpans??=(()=>{let n=new Set,i=[];for(let a of this.stores.nodes){if(a.semanticKind!=="assign"&&a.semanticKind!=="pair")continue;if(!this.stores.role(a.nodeId,"annotation"))continue;let o=this.stores.role(a.nodeId,"value");if(typeof o?.sourceStart==="number")n.add(`${o.sourceStart}:${o.sourceEnd}`),i.push([o.sourceStart,o.sourceEnd])}let s=[];for(let a of this.stores.nodes)if((a.semanticKind==="func"||a.semanticKind==="def"||a.semanticKind==="class")&&typeof a.sourceStart==="number"&&i.some(([o,l])=>a.sourceStart>=o&&a.sourceEnd<=l))s.push([a.sourceStart,a.sourceEnd]);for(let a of this.stores.nodes){if(a.semanticKind!=="pair"||typeof a.sourceStart!=="number")continue;if(!i.some(([l,c])=>a.sourceStart>=l&&a.sourceEnd<=c))continue;if(s.some(([l,c])=>a.sourceStart>=l&&a.sourceEnd<=c))continue;let o=this.stores.role(a.nodeId,"value");if(typeof o?.sourceStart==="number")n.add(`${o.sourceStart}:${o.sourceEnd}`)}return n})(),this._annotatedValueSpans.has(`${r.sourceStart}:${r.sourceEnd}`)}emitParams(e,t=null,r=!0){let n=E.expansionSplit(e).list,i=r&&this.ts?$n(n):new Set;if(t!==null)i.delete(0);n.forEach((s,a)=>{let o=this.firstAwaitIn(s);if(o!==null)throw this.positionedError(o,"emitter: a parameter cannot await or yield — JavaScript refuses both in formal parameters, a default "+"or a pattern's default included; take the argument and do it in the body (`a ?= load!`)");if(gt(s)!==null||y(s)&&s[0]==="default"&>(s[1])!==null)throw this.positionedError(y(s)?s:e,"emitter: an @-parameter promotes only in a constructor (`constructor: (@name) ->`) — bind a plain parameter and assign it here");if(a>0)this.b.emit(", ");if(this.emitParam(s),i.has(a)&&this.ts)this.b.tsOnly(()=>this.b.emit("?"));if(a===0&&t!==null&&typeof s==="string"&&this.ts)this.b.tsOnly(()=>this.b.emit(`: ${t}`))})}func(e){let t=this._narrowedReads;this._narrowedReads=null;try{return this.emitFunc(e)}finally{this._narrowedReads=t}}emitFunc(e){let[t,r,n]=e,i=r.length===0&&E.containsBareIt(n)?["it"]:r,s=t==="->"&&this.inComponent()?"=>":t,a=this.ind,o=this.voidFuncs.has(e),l=this.liveStmts(y(n)&&n[0]==="block"?n.slice(1):[n],{forwards:!0}),{entries:c,names:h}=this.scopedHoist(l,i);for(let p of this.pushReactiveFrame(l,h,i,e))h.add(p);this.scopes.push(h);let f=this.containsAwait(n),u=E.containsYield(n);if(u&&s==="=>")throw this.positionedError(e,t==="->"?"emitter: a generator arrow cannot sit inside a component body — thin arrows lower to fat arrows there to keep `this` on the instance, and JS has no generator arrows (name the generator a method and call it)":"emitter: fat arrows cannot contain yield (JS has no generator arrows; use ->)");let d=this.ts&&this.contextuallyTyped(e);this.mark(e,"returnType",()=>this.mark(e,"$self",()=>{if(s==="->"){if(f)this.b.emit("async ");this.mark(e,"kind",()=>this.b.emit(u?"function*":"function")),this.b.emit("("),this.mark(e,"params",()=>this.emitParams(i,null,!d)),this.b.emit(")"),this.tsReturnAnnotation(e,f,o,u),this.b.emit(" "),this.funcBlock(e,n,l,a,c,o)}else{if(f)this.b.emit("async ");let p=this.ts&&!d&&i.length===1&&typeof i[0]==="string",m=this.ts&&i.length===1&&typeof E.paramCore(i[0])==="string"&&(E.isTypedWrapper(i[0])||this.annotationText(e,"returnType")!==null||o||p);if(this.mark(e,"params",()=>{if(i.length===1&&typeof E.paramCore(i[0])==="string"){if(m)this.b.tsOnly(()=>this.b.emit("("));if(this.emitParam(i[0]),p)this.b.tsOnly(()=>this.b.emit("?"));if(m)this.b.tsOnly(()=>this.b.emit(")"))}else this.b.emit("("),this.emitParams(i,null,!d),this.b.emit(")")}),this.tsReturnAnnotation(e,f,o,u),this.b.emit(" "),this.mark(e,"kind",()=>this.b.emit("=>")),this.b.emit(" "),!o&&l.length===1&&c.length===0&&!E.statementOnly(l[0])&&!(y(l[0])&&(k1(l[0][0])||["return","if","while","block"].includes(l[0][0]))))this.mark(e,"body",()=>{let b=E.needsGrouping(l[0],"operand")||O1(l[0]);if(b)this.b.emit("(");if(this.expr(l[0]),b)this.b.emit(")")});else this.funcBlock(e,n,l,a,c,o)}})),this.scopes.pop(),this.rframes.pop(),this.ind=a}funcBlock(e,t,r,n,i,s=!1){let a=k1(e[0])?e[2]:e[1],{extractions:o}=E.expansionSplit(Array.isArray(a)?a:[]),l=this.sideEffectOnly,c=this.voidReason;this.sideEffectOnly=s,this.voidReason=null,this.mark(e,"body",()=>{this.mark(t,"$self",()=>{if(this.b.emit(`{ -`),i.length)this.b.emit(" ".repeat(n+1)),this.hoistLine(i," ".repeat(n+1)),this.b.emit(` -`);for(let h of o){let f=y(h.name)&&h.name[0]==="default",u=f?E.paramCore(h.name[1]):h.name,d=f?h.name[1]:h.node;if(y(u)&&u[0]==="rest")throw this.positionedError(h.node,"emitter: a rest parameter cannot follow the '...' gap — the gap already binds every argument between the head and the tail, so a second rest has nothing left to collect; name the tail parameter instead");if(this.b.emit(" ".repeat(n+1)+"const "),typeof u==="string")this.mark(h.node,"$self",()=>this.emitPrimitive(u));else this.withPattern(()=>this.expr(u),!0);let p=this.ts?this.annotationText(d):null;if(p!==null)this.tsAnnotate(d,"annotation",p);if(this.b.emit(" = "),f)this.b.emit(`${h.slot} === undefined ? `),this.withExpression(()=>this.expr(h.name[2])),this.b.emit(` : ${h.slot}`);else this.b.emit(h.slot);this.b.emit(`; -`)}this.emitTsTypeDecls(b1(t)?t.slice(1):[t]," ".repeat(n+1)),this.mark(t,"statements",()=>{r.forEach((h,f)=>{if(this.b.emit(" ".repeat(n+1)),!s&&f===r.length-1)this.implicitReturn(h,n+1);else this.statement(h,n+1,!0);this.b.emit(` -`)})}),this.voidTailReturn(r,n),this.b.emit(" ".repeat(n)+"}")})}),this.sideEffectOnly=l,this.voidReason=c}voidTailReturn(e,t){if(!this.sideEffectOnly||e.length===0)return;let r=e[e.length-1],n=y(r)?r[0]:null;if(["return","throw","break","continue"].includes(n))return;this.b.emit(" ".repeat(t+1)+`return; -`)}implicitReturn(e,t){this.withTsDirectives(e," ".repeat(t),()=>this.implicitReturnCore(e,t))}implicitReturnCore(e,t){if(y(e)&&(e[0]==="return"||e[0]==="throw"))return this.statement(e,t);if(typeof e==="string"&&(e==="break"||e==="continue"||e==="debugger"))return this.statement(e,t);if(this.ind=t,y(e)){let r=e[0];if(r==="if"&&e.length>=3&&e.length<=4){if(E.ifIsSimple(e))this.b.emit("return ("),this.mark(e,"$self",()=>this.ifTernary(e)),this.b.emit(");");else this.mark(e,"$self",()=>this.returnifyIf(e,t));return}if(r==="try"){this.withTailReturn(()=>this.tryBranches(e,t));return}if(r==="switch"&&e.length===4){this.b.emit("return "),this.withTailReturn(()=>this.valueSwitch(e)),this.b.emit(";");return}if(r==="while"&&(e.length===3||e.length===4)||r==="loop"&&e.length===2)return this.statement(e,t);if(E.returnGuard(e)||E.stmtGuard(e)||r==="="&&e.length===3&&(E.returnGuard(e[2])||E.stmtGuard(e[2])))return this.statement(e,t);if(r===".="&&e.length===3)return this.statement(e,t);if(r==="="&&e.length===3&&E.sliceTarget(e[1])!==null)return this.statement(e,t);if(r==="enum")return this.statement(e,t);if(this.isReactiveDecl(e)||this.isReadonlyDecl(e))return this.statement(e,t);if(this.isEffectDecl(e)&&e[1]!==null)return this.statement(e,t);if((r==="for-in"||r==="for-of"||r==="for-as")&&e.length===6)return this.returnifyLoop(e,t);if(k1(r))throw this.positionedError(e,"emitter: implicit return of a 'def' body is not supported yet")}this.b.emit("return "),this.withTailReturn(()=>{let r=E.needsGrouping(e,"return");if(r)this.b.emit("(");if(this.expr(e),r)this.b.emit(")")}),this.b.emit(";")}update(e){if(typeof e[1]==="string"&&this.isComputedName(e[1]))throw this.positionedError(e,`emitter: cannot assign to computed '${e[1]}' — a '~=' binding derives from its dependencies; write to those instead`);if(typeof e[1]==="string"&&this.isAmbientReadonly(e[1]))throw this.positionedError(e,`emitter: cannot assign to readonly '${e[1]}' — a '=!' binding never changes after its declaration`);if(this.checkExportedConstWrite(e,e[1]),this.checkMemberWrite(e,e[1]),y(e[1])&&E.optionalGuard(e[1])!==null)throw this.positionedError(e,"emitter: an optional chain cannot be an update target — no reference exists for `obj?.x++`; "+"guard it explicitly (`obj.x++ if obj?`)");this.mark(e,"$self",()=>{let[t,r,n]=e;if(n)this.mark(e,"target",()=>this.withTarget(()=>this.expr(r))),this.mark(e,"operator",()=>this.b.emit(t));else this.mark(e,"operator",()=>this.b.emit(t)),this.mark(e,"target",()=>this.withTarget(()=>this.expr(r)))})}relation(e){let[t,r,n]=e,i=t[0]==="!",s=i?t.slice(1):t;this.mark(e,"$self",()=>{if(i)this.b.emit("!(");if(s==="instanceof"){if(this.operand(e,"left",r),this.b.emit(" instanceof "),this.operand(e,"right",n),i)this.b.emit(")");return}if(s==="of"||s==="in"&&O1(n))this.operand(e,"left",r),this.b.emit(" in "),this.operand(e,"right",n);else if(y(n))this.b.emit(E.MEMBER_IN+"("),this.mark(e,"left",()=>this.expr(r)),this.b.emit(", "),this.mark(e,"right",()=>this.expr(n)),this.b.emit(")");else this.b.emit("Array.isArray("),this.expr(n),this.b.emit(") || typeof "),this.expr(n),this.b.emit(" === 'string' ? "),this.expr(n),this.b.emit(".includes("),this.mark(e,"left",()=>this.expr(r)),this.b.emit(") : ("),this.expr(r),this.b.emit(" in "),this.mark(e,"right",()=>this.expr(n)),this.b.emit(")");if(i)this.b.emit(")")})}static ternaryHoists(e){let t=e;while(y(t[2])&&t[2][0]==="?:"&&t[2].length===4&&!t[2].parenthesized)t=t[2];let r=t[2];return y(r)&&r[0]==="="&&r.length===3&&typeof r[1]==="string"&&!r.parenthesized}ternary(e){let t=[e];while(!0){let a=t[t.length-1][2];if(y(a)&&a[0]==="?:"&&a.length===4&&!a.parenthesized)t.push(a);else break}let r=t[t.length-1],n=E.ternaryHoists(r),i=(a,o,l)=>{this.grouped(a,o,l,E.needsGrouping(l,"operand")||U1(l))},s=(a)=>this.grouped(a,"condition",a[1],y(a[1])&&a[1][0]==="?:");this.mark(e,"$self",()=>{if(n)this.expr(r[2][1]),this.b.emit(" = (");s(r),this.b.emit(" ? "),i(r,"then",n?r[2][2]:r[2]);for(let a=t.length-2;a>=0;a--)this.b.emit(" : ("),s(t[a]),this.b.emit(" ? "),i(t[a+1],"else",t[a+1][3]);if(this.b.emit(" : "),i(t[0],"else",t[0][3]),this.b.emit(")".repeat(t.length-1)),n)this.b.emit(")")})}strTemplate(e){this.mark(e,"$self",()=>{this.b.emit("`"),this.templateChunks(e.slice(1)),this.b.emit("`")})}templateChunks(e){for(let t of e){if(t==="")continue;if(y(t)){if(t.length!==1)throw this.positionedError(t,"emitter: multi-statement interpolations are not supported yet");this.b.emit("${"),this.mark(t,"$self",()=>{let r=E.needsGrouping(t[0],"operand")||U1(t[0]);if(r)this.b.emit("(");if(this.expr(t[0]),r)this.b.emit(")")}),this.b.emit("}")}else{let r=t.slice(1,-1);if(r!=="")this.b.emit(E.escapeTemplate(r))}}}heregex(e){let[,t,...r]=e;this.mark(e,"$self",()=>{if(this.b.emit("RegExp(`"),this.templateChunks(r),this.b.emit("`"),t!=="")this.b.emit(`, '${t}'`);this.b.emit(")")})}call(e){if(this.browserModule&&e[0]==="import"&&this.lockedHead(e,"dynimport")){let t=this.positionedError(e,"emitter: dynamic import is not supported in a browser App module — use a static import so Rip can publish and resolve the dependency");if(typeof t.start!=="number"&&this.b.currentMark)t.start=this.b.currentMark.sourceStart,t.end=this.b.currentMark.sourceEnd;throw t}if(this.repl&&e[0]==="import"&&(e.length===2||e.length===3)&&this.lockedHead(e,"dynimport")){this.mark(e,"$self",()=>{this.b.emit(`import(${this.replResolver()}(`),this.mark(e,"args",()=>{if(this.callArg(e[1]),this.b.emit(")"),e.length===3)this.b.emit(", "),this.callArg(e[2])}),this.b.emit(")")});return}if(e[0]==="rest"&&this.inPattern)throw this.positionedError(e,this.bindingPattern?"emitter: a `rest` element is only legal at an array pattern's tail":"emitter: Cannot use 'rest' expression as a destructuring target (destructuring rest is spelled '...name')");if(y(e[0])&&e[0][0]==="dammit!"){if(this.renderSyncGuard(e),e[0].parenthesized){this.mark(e,"$self",()=>{this.b.emit("("),this.dammit(e[0]),this.b.emit(")"),this.mark(e,"args",()=>{this.b.emit("("),e.slice(1).forEach((n,i)=>{if(i>0)this.b.emit(", ");this.callArg(n)}),this.b.emit(")")})});return}let t=e[0][1],r=Ce(t);this.mark(e,"$self",()=>{this.b.emit(r?"await new ":"await "),this.mark(e[0],"$self",()=>{if(r)this.mark(e[0],"target",()=>this.rubyNewTarget(t));else this.head(e[0],"target",t)}),this.mark(e,"args",()=>{this.b.emit("("),e.slice(1).forEach((n,i)=>{if(i>0)this.b.emit(", ");this.callArg(n)}),this.b.emit(")")})});return}if(y(e[0])&&e[0][0]==="."&&e[0].length===3&&e[0][2]==="new"){this.mark(e,"$self",()=>{this.b.emit("new "),this.rubyNewTarget(e[0]),this.mark(e,"args",()=>{this.b.emit("("),e.slice(1).forEach((t,r)=>{if(r>0)this.b.emit(", ");this.callArg(t)}),this.b.emit(")")})});return}this.chain(e)}rubyNewTarget(e){let t=e[1];this.mark(e,"object",()=>{if(y(t))this.b.emit("("),this.expr(t),this.b.emit(E.optionalGuard(t)?" ?? undefined)":")");else this.expr(t)})}static MODULO="((n, d) => { n = +n; d = +d; return (n % d + d) % d; })";static LITERAL_WORDS=new Set(["true","false","null","undefined","NaN","Infinity"]);static ownKeyText(e,t){return t==="__proto__"?'["__proto__"]':e}static MEMBER_IN="((k, c) => Array.isArray(c) || typeof c === 'string' ? c.includes(k) : k in c)";floorDiv(e){this.mark(e,"$self",()=>{this.b.emit("Math.floor("),this.operand(e,"left",e[1]),this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("/")),this.b.emit(" "),this.operand(e,"right",e[2]),this.b.emit(")")})}returnGuardStatement(e,t){let r=e[2],n=typeof r==="string"?r:r[0];if(n==="return"&&this.scopes.length<=1)throw this.positionedError(r,"emitter: 'return' outside a function");if((n==="break"||n==="continue")&&this.ctrlDepth===0)throw this.positionedError(e,`emitter: '${n}' outside a loop${n==="break"?" or switch":""}`);let i=e[0],s=()=>{let a=()=>{if(t!==null)this.mark(t,"$self",()=>{this.mark(t,"target",()=>this.b.emit(t[1])),this.b.emit(" "),this.mark(t,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.mark(t,"value",()=>this.expr(e[1]))});else this.mark(e,"left",()=>this.expr(e[1]))},o=t!==null||E.jsTier(e[1])!=="primary";if(i==="||")if(this.b.emit("!"),o)this.b.emit("("),a(),this.b.emit(")");else a();else if(i==="??"){if(o)this.b.emit("("),a(),this.b.emit(")");else a();this.b.emit(" == null")}else if(o&&t!==null)this.b.emit("("),a(),this.b.emit(")");else a()};this.mark(e,"$self",()=>{this.b.emit("if ("),s(),this.b.emit(") ");let a=()=>{if(this.b.emit(n),y(r)&&r.length>1)this.b.emit(" "),this.mark(r,"value",()=>{if(r[0]==="return"&&E.needsGrouping(r[1],"return"))this.b.emit("("),this.expr(r[1]),this.b.emit(")");else this.expr(r[1])})};if(typeof r==="string")a();else this.mark(r,"$self",a);this.b.emit(";")})}compoundTarget(e,t,r){if(this.checkExportedConstWrite(e,t),this.repeatSafeValue(t))return this.mark(e,"target",()=>this.withTarget(()=>this.expr(t))),t;if(y(t)&&(t[0]==="."||t[0]==="[]")&&t.length===3){let n=t[1];if(!this.repeatSafeValue(n))n=this.loopTempName("_ref"),this.temps.used.add(n),this.b.emit(`const ${n} = `),this.expr(t[1]),this.b.emit(`; -${" ".repeat(r)}`);let i;if(t[0]==="[]"){let s=t[2];if(!this.repeatSafeValue(s)){let a=this.loopTempName("_key");this.temps.used.add(a),this.b.emit(`const ${a} = `),this.expr(s),this.b.emit(`; -${" ".repeat(r)}`),s=a}i=["[]",n,s]}else i=[".",n,t[2]];return this.mark(e,"target",()=>this.expr(i)),i}throw this.positionedError(e,`emitter: ${e[0]} needs a stable target — a plain name or member/index chain (an optional chain has no reference to write back to)`)}static sliceTarget(e){return y(e)&&e[0]==="[]"&&e.length===3&&y(e[2])&&(e[2][0]===".."||e[2][0]==="...")&&e[2].length===3?e:null}sliceAssignStatement(e){let[,t,r]=e,[,n,i]=t,[s,a,o]=i,l=(f)=>E.isIntegerLiteral(f)?parseInt(f.replace(/_/g,""),10):null,c=(f)=>typeof f==="string";for(let f of[a,o])if(y(f)&&f[0]==="-"&&f.length===2&&E.isIntegerLiteral(f[1]))throw this.positionedError(e,"emitter: a slice assignment cannot count from the end — `splice` takes a count, not a negative index; open the range instead (`a[i..] = v`) or compute the bound from `a.length`");let h=(f)=>{if(c(f))this.expr(f);else this.b.emit("("),this.expr(f),this.b.emit(")")};this.mark(e,"$self",()=>{this.mark(e,"target",()=>this.mark(t,"$self",()=>{this.head(t,"object",n),this.b.emit(".splice("),this.mark(t,"key",()=>{if(a===null)this.b.emit("0");else h(a);if(this.b.emit(", "),o===null)this.b.emit("Infinity");else if(l(o)!==null&&(a===null||l(a)!==null))this.b.emit(String(l(o)-(a===null?0:l(a))+(s===".."?1:0)));else{if(h(o),a!==null)this.b.emit(" - "),h(a);if(s==="..")this.b.emit(" + 1")}})})),this.mark(e,"operator",()=>{});let f=y(r)&&r[0]==="array"&&r.slice(1).every((u)=>!(y(u)&&u[0]==="...")&&u!==",");this.mark(e,"value",()=>{if(f)r.slice(1).forEach((u)=>{this.b.emit(", "),this.callArg(u)});else this.b.emit(", ...[].concat("),this.expr(r),this.b.emit(")")}),this.b.emit(")")})}methodAssignStatement(e,t){let[,r,n]=e,i=n;while(y(i)){let l=E.chainHeadSlot(i);if(l===null)break;i=i[l]}let s=y(i)?this.stores.idOf(i):null,a=s!==null?this.stores.node(s)?.semanticKind:null;if(!(y(i)&&typeof i[0]==="string"&&/^[A-Za-z_$][\w$]*$/.test(i[0])&&(a==="call"||a==null&&E.jsTier(i)==="primary")))throw this.positionedError(e,"emitter: `.=` re-binds its target to a METHOD CALL on itself — the right side must be a call chain (`x .= trim()`)");this.mark(e,"$self",()=>{let l=this.compoundTarget(e,r,t),c=(f)=>{if(f===i)return[[".",l,i[0]],...i.slice(1)];let u=E.chainHeadSlot(f),d=f.slice();return d[u]=c(f[u]),d};this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" ");let h=typeof l==="string"?this.bindingNameSpan(e,"target",l):null;if(h!==null)this.primitiveReuse={name:l,span:h.span};this.mark(e,"value",()=>this.expr(c(n))),this.primitiveReuse=null})}taggedTemplate(e){this.mark(e,"$self",()=>{let t=e[1];this.mark(e,"tag",()=>{if(E.needsGrouping(t,"head"))this.b.emit("("),this.expr(t),this.b.emit(")");else this.expr(t)});let r=e[2];this.mark(e,"str",()=>{if(typeof r==="string")if(r[0]==="`")this.b.emit(r);else this.b.emit("`"+E.escapeTemplate(r.slice(1,-1).replace(/\\"/g,'"'))+"`");else this.expr(r)})})}mapLiteral(e){this.mark(e,"$self",()=>{let t=e.slice(1);if(t.length===0){this.b.emit("new Map()");return}this.b.emit("new Map(["),t.forEach((r,n)=>{if(n>0)this.b.emit(", ");if(y(r)&&r[0]==="..."&&r.length===2){this.mark(r,"$self",()=>{this.b.emit("..."),this.expr(r[1])});return}if(!y(r)||r[0]!==":"||r.length!==3)throw this.positionedError(y(r)?r:e,"emitter: a map literal takes explicit `key: value` pairs — shorthand has no Map reading");this.mark(r,"$self",()=>{this.b.emit("[");let i=r[1];this.mark(r,"key",()=>{if(typeof i==="string"&&/^[A-Za-z_$][\w$]*$/.test(i)&&i!=="true"&&i!=="false"&&i!=="null"&&i!=="undefined")this.b.emit('"'),this.emitPrimitive(i),this.b.emit('"');else if(y(i)&&i[0]==="dynamicKey")this.expr(i[1]);else this.expr(i)}),this.b.emit(", "),this.mark(r,"value",()=>this.expr(r[2])),this.b.emit("]")})}),this.b.emit("])")})}matchReceiverClose(){this.b.emit(")"),this.b.emit(".match(")}regexIndex(e,t,r,n){this.mark(e,"$self",()=>{if(this.b.emit(`((_ = ${this.runtimeName("toMatchable")}(`),this.mark(e,"object",()=>this.expr(t)),this.matchReceiverClose(),this.mark(e,"key",()=>this.b.emit(r)),this.b.emit(")) && _["),n===null)this.b.emit("0");else this.mark(e,"capture",()=>this.expr(n));this.b.emit("])")})}static isMatchWrite(e){if(!y(e))return!1;if(e[0]==="=~"&&e.length===3)return!0;if(e[0]==="regex-index"&&e.length===4)return!0;return e[0]==="[]"&&e.length===3&&typeof e[2]==="string"&&e[2][0]==="/"}static paramMatchWrite(e){if(!y(e)||T1(e)||k1(e[0]))return null;if(E.isMatchWrite(e))return e;for(let t of e){let r=E.paramMatchWrite(t);if(r!==null)return r}return null}matchOp(e){if(y(e[1])&&e[1][0]==="=~"&&!e[1].parenthesized)throw this.positionedError(e,"emitter: `=~` does not chain — `a =~ b =~ c` would match the first match RESULT against the second pattern (parenthesize: `(a =~ b) =~ c`, or split the matches)");let t=e[2];this.mark(e,"$self",()=>{this.b.emit(`(_ = ${this.runtimeName("toMatchable")}(`),this.mark(e,"left",()=>this.expr(e[1])),this.matchReceiverClose(),this.mark(e,"right",()=>this.expr(t)),this.b.emit("))")})}modulo(e){this.mark(e,"$self",()=>{this.b.emit(E.MODULO+"("),this.mark(e,"left",()=>this.expr(e[1])),this.b.emit(", "),this.mark(e,"right",()=>this.expr(e[2])),this.b.emit(")")})}synthCompound(e,t,r,n){let i=e[1];if(this.checkExportedConstWrite(e,i),y(i)&&(i[0]==="."||i[0]==="[]")&&i.length===3){let s=this.refPlans.get(e)??{recv:null,obj:null,key:null};if(s.obj===null&&!this.repeatSafeValue(i[1]))throw this.positionedError(e,"emitter: reference plan missing for a compound target with an impure object — a capture site the planner walk did not reach");if(s.key===null&&i[0]==="[]"&&!this.repeatSafeValue(i[2]))throw this.positionedError(e,"emitter: reference plan missing for a compound target with an impure key — a capture site the planner walk did not reach");this.mark(e,"$self",()=>{let a=s.obj!==null||s.key!==null;if(a)this.b.emit("(");if(s.obj!==null)this.b.emit(`${s.obj} = `),this.mark(i,"object",()=>this.withExpression(()=>this.expr(i[1]))),this.b.emit(", ");if(s.key!==null)this.b.emit(`${s.key} = `),this.mark(i,"key",()=>this.withExpression(()=>this.expr(i[2]))),this.b.emit(", ");let o=this.stores.alias([i[0],s.obj??i[1],s.key??i[2]],i),l=()=>this.mark(e,"target",()=>this.withTarget(()=>this.expr(o)));if(l(),this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.mark(e,"operator",()=>{this.b.emit(t),l(),this.b.emit(r),this.operand(e,"value",e[2]),this.b.emit(n)}),a)this.b.emit(")")});return}this.mark(e,"$self",()=>{let s=()=>this.mark(e,"target",()=>this.withTarget(()=>this.expr(e[1])));s(),this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.mark(e,"operator",()=>{this.b.emit(t),s(),this.b.emit(r),this.operand(e,"value",e[2]),this.b.emit(n)})})}floorDivAssign(e){this.synthCompound(e,"Math.floor("," / ",")")}moduloAssign(e){this.synthCompound(e,E.MODULO+"(",", ",")")}awaitExpr(e){this.renderSyncGuard(e),this.mark(e,"$self",()=>{this.mark(e,"operator",()=>this.b.emit("await")),this.b.emit(" "),this.operand(e,"value",e[1])})}doIife(e){let[,t]=e;this.mark(e,"$self",()=>{if(this.b.emit("("),this.mark(e,"func",()=>this.expr(t)),this.b.emit(")("),T1(t)){let r=t[1],n=r.map((s)=>{let a=E.paramCore(s);if(typeof a==="string")return()=>this.expr(a);if(y(a)&&a[0]==="default"&&typeof E.paramCore(a[1])==="string")return()=>this.expr(a[2]);throw this.positionedError(s,"emitter: do-IIFE parameters must be plain names or defaulted names — patterns and rests have no capture argument",e)}),i=r.length;while(i>0&&y(r[i-1])&&r[i-1][0]==="default")i--;n.slice(0,i).forEach((s,a)=>{if(a>0)this.b.emit(", ");s()})}this.b.emit(")")})}dammit(e){if(this.renderSyncGuard(e),Ce(e[1])){this.mark(e,"$self",()=>{this.mark(e,"operator",()=>this.b.emit("await")),this.b.emit(" new "),this.mark(e,"target",()=>this.rubyNewTarget(e[1])),this.b.emit("()")});return}this.mark(e,"$self",()=>{this.mark(e,"operator",()=>this.b.emit("await")),this.b.emit(" "),this.head(e,"target",e[1]),this.b.emit("()")})}maybeDammit(e){this.renderSyncGuard(e);let t=e[1];if(y(t)&&t[0]==="new"||Ce(t))throw this.positionedError(e,"emitter: maybe dammit has no reading on a constructor — `?!` on a construction would make the "+"constructor an optional callee; construct and await with `new X!`");this.mark(e,"$self",()=>{this.mark(e,"operator",()=>this.b.emit("await")),this.b.emit(" "),this.head(e,"callee",e[1]),this.mark(e,"operator",()=>this.b.emit("?.")),this.mark(e,"args",()=>{this.b.emit("("),e.slice(2).forEach((r,n)=>{if(n>0)this.b.emit(", ");this.expr(r)}),this.b.emit(")")})})}yieldExpr(e){if(this.renderSyncGuard(e),this.scopes.length<=1)throw this.positionedError(e,"emitter: 'yield' outside a function");this.mark(e,"$self",()=>{this.b.emit(e[0]==="yield-from"?"yield*":"yield");let t=e[0]==="yield-from"?e[1]:e[1];if(e.length>1)this.b.emit(" "),this.operand(e,"value",t)})}}var pa=(e)=>{if(!y(e))return!1;if(e[0]==="schema"&&e.length===2&&typeof e[1]==="object")return!0;return e.some(pa)},ga=(e)=>{if(!y(e))return!1;if(e[0]==="schema"&&e.length===2&&e[1]&&typeof e[1]==="object"&&e[1].kind==="model")return!0;return e.some(ga)},ba=(e,t)=>{if(!y(e))return!1;if(t(e))return!0;return e.some((r)=>ba(r,t))},ya=(e,t)=>{if(!y(e))return!1;if(t(e))return!0;return e.some((r)=>ya(r,t))},Sa=(e)=>{if(!y(e))return!1;if(e[0]==="object"&&E.objectComprehension(e)!==null)return!0;return e.some(Sa)},Ra=(e)=>{if(!y(e))return!1;if(E.isMatchWrite(e))return!0;return e.some(Ra)},pt=[{key:"intrinsics",names:["__toPropertyKey","__defineOwnDataProperty"],generatedNames:["__toPropertyKey","__defineOwnDataProperty"],url:new URL("./runtime/intrinsics.js",import.meta.url),triggers:(e,t)=>Sa(e)},{key:"vocab",names:[],url:new URL("./runtime/vocab.js",import.meta.url),triggers:()=>!1},{key:"schema",names:["__schema","SchemaError","registerCoercer"],url:new URL("./runtime/schema.js",import.meta.url),requires:["vocab"],triggers:(e,t)=>pa(e)},{key:"duckdb",names:[],url:new URL("./runtime/duckdb.js",import.meta.url),triggers:()=>!1},{key:"orm",names:["schema","__schemaSetAdapter"],url:new URL("./runtime/orm.js",import.meta.url),requires:["schema","duckdb","vocab"],triggers:(e,t)=>ga(e)},{key:"reactive",names:["__state","__computed","__effect","__batch","__readonly","__setErrorHandler","__handleError","__catchErrors","getEffectSignal"],generatedNames:["__state","__computed","__effect","__batch"],url:new URL("./runtime/reactive.js",import.meta.url),triggers:(e,t)=>ba(e,t.isTrigger),types:{__state:"(value: T | { value: T; read(): T }) => { value: T; read(): T; touch(): void }",__computed:"(fn: () => T) => { readonly value: T; read(): T }",__effect:"(fn: () => void | (() => void)) => () => void",__batch:"(fn: () => T) => T",__readonly:"(value: T) => T",__setErrorHandler:"(handler: ((error: any, source?: string) => void) | null) => void",__handleError:"(error: any, source?: string) => void",__catchErrors:"(fn: () => T, onError?: (e: any) => void) => T | undefined",getEffectSignal:"() => AbortSignal | null"}},{key:"stdlib",names:["abort","assert","exit","kind","noop","p","pp","pj","pr","raise","rand","sleep","toMatchable","todo","warn","zip"],generatedNames:["toMatchable"],url:new URL("./runtime/stdlib.js",import.meta.url),triggers:(e,t)=>Ra(e),types:{abort:"(msg?: string) => never",assert:"(v: any, msg?: string) => void",exit:"(code?: number) => never",kind:"(v: any) => string",noop:"() => void",p:"(...args: any[]) => void",pp:"(v: T) => T",pj:"(v: T) => T",pr:"(v: T) => T",raise:"(a: any, b?: any) => never",rand:"(a?: number, b?: number) => number",sleep:"(ms: number) => Promise",toMatchable:"(v: any) => string",todo:"(msg?: string) => never",warn:"(...args: any[]) => void",zip:"(...arrays: any[][]) => any[][]"}},{key:"components",names:["setContext","getContext","hasContext","__Component","__pushComponent","__popComponent","__clsx","__style","__lis","__reconcile","__transition","__handleComponentError","__gateBind","__detach","__reportChildFailure","__ownerFrame","__pushOwner","__popOwner","__detachRef"],generatedNames:["setContext","getContext","__Component","__pushComponent","__popComponent","__clsx","__style","__reconcile","__transition","__gateBind","__detach","__reportChildFailure","__ownerFrame","__pushOwner","__popOwner","__detachRef"],types:{__clsx:xs,__style:Ls},url:new URL("./runtime/components.js",import.meta.url),requires:"reactive",triggers:(e,t)=>ya(e,t.isComponent)}],ji=new Map,da=(e)=>{if(!ji.has(e.key)){let r=Is(e.url,"utf8").replace(/^export \{[^}]*\};\s*$/gm,"").replace(/^import \{[^}]*\} from '\.\/[a-z-]+\.js';\s*$/gm,"").trimEnd(),n=/^[ \t]*(import|export)\b.*$/m.exec(r);if(n)throw Error(`emitter: runtime '${e.key}' carries a top-level ${n[1]} that inline delivery cannot strip — `+`${JSON.stringify(n[0].trim())}. Inline bodies share one IIFE scope, so it would emit unparseable output. Use the './name.js' import form, or move the dependency into RUNTIME_TABLE 'requires'.`);ji.set(e.key,r)}return ji.get(e.key)},Fi=(e)=>e.requires==null?[]:Array.isArray(e.requires)?e.requires:[e.requires],Ee=(e,t,r=()=>!1)=>{if(t.size===0)return!1;let n=(o)=>typeof o==="string"&&t.has(o),i=(o)=>y(o)&&o.some(s),s=(o)=>{if(!y(o))return!1;let[l]=o;if(l==="object"||l==="array")return o.slice(1).some(s);if(l===null&&o.length===3)return!1;if(l===":"&&o.length===3)return y(o[1])&&a(o[1])||s(o[2]);if(l==="="&&o.length===3)return s(o[1])||a(o[2]);if((l==="rest"||l==="..."||l==="expansion")&&o.length===2)return s(o[1]);if(l==="typed-var"&&o.length===3)return s(o[1]);return a(o)},a=(o)=>{if(n(o))return!0;if(!y(o))return!1;let[l]=o;if(l==="schema"&&o.length===2&&o[1]&&typeof o[1]==="object"&&Array.isArray(o[1].entries))return!1;if(l==="."||l==="?.")return a(o[1]);if((l===":"||l==="void-pair")&&o.length===3)return y(o[1])&&a(o[1])||a(o[2]);if(T1(o))return i(o[1])||a(o[2]);if(k1(l)&&o.length===4)return i(o[2])||a(o[3]);if(r(o))return a(o[2]);if(F1.has(l)&&o.length===3)return y(o[1])&&s(o[1])||a(o[2]);if(l==="for-in"||l==="for-of"||l==="for-as")return y(o[1])&&o[1].some(s)||o.slice(2).some(a);if(l==="try")return o.slice(1).some((c)=>{if(!y(c))return!1;if(c[0]==="block")return a(c);return s(c[0])||a(c[1])});if(l==="class"&&o.length>=2)return o.slice(2).some(a);if(l==="typed-var"&&o.length===3)return y(o[1])&&a(o[1]);if((l==="cast"||l==="satisfies")&&o.length===3)return a(o[1]);if(l==="import"||l==="type-decl")return!1;return o.some(a)};return a(e)},M3=(e,t)=>{let r=[],n=(i,s,a=[])=>{let o=(f)=>E.isReactiveDeclIn(s,f)||E.isEffectDeclIn(s,f)||E.isReadonlyDeclIn(s,f)||E.isGateDeclIn(s,f),l=(f)=>E.isReactiveDeclIn(s,f)||E.isEffectDeclIn(s,f),c=(f)=>E.isComponentDeclIn(s,f);r.push({tree:i,atoms:a,isDecl:o,isTrigger:l,isComponent:c});let h=(f)=>{if(!y(f))return;if(f[0]==="schema"&&f.length===2&&f[1]&&typeof f[1]==="object"&&Array.isArray(f[1].entries)){for(let{entry:u,tokens:d,value:p}of E.schemaBodies(f[1])){let m=e.subParse(d);if(m.stmts.length)n(["program",...m.stmts],m.stores,p?[]:e.schemaBodyParams(u).map((g)=>g.name))}return}f.forEach(h)};h(i)};return n(t,e.stores),r},j3=(e,t)=>{let r=new Set,n=(s)=>{for(let a of e.patternNames(s,[],!0))r.add(a)},i=(s,a)=>{if(!y(s))return;let[o]=s;if(e.isModuleImport(s)){for(let l of E.importedNames([s]))r.add(l);return}if(T1(s)){if(y(s[1]))for(let l of s[1])n(l);i(s[2],a);return}if(k1(o)&&s.length===4){if(typeof s[1]==="string")r.add(s[1]);if(y(s[2]))for(let l of s[2])n(l);i(s[3],a);return}if(o==="class"){if(typeof s[1]==="string")r.add(s[1]);for(let l of s.slice(2)){let c=y(l)&&l[0]==="block"?l.slice(1):[l];for(let h of c)if(y(h)&&k1(h[0])&&h.length===4){if(y(h[2]))for(let f of h[2])n(f);i(h[3],a)}else i(h,a)}return}if(o==="enum"){if(typeof s[1]==="string")r.add(s[1]);for(let l of s.slice(2))i(l,a);return}if(a(s)){if(typeof s[1]==="string")r.add(s[1]);else if(y(s[1]))n(s[1]);i(s[2],a);return}if((F1.has(o)||o==="void-assign")&&s.length>=2){if(typeof s[1]==="string")r.add(s[1]);else if(E.isPattern(s[1]))n(s[1])}if((o==="for-in"||o==="for-of"||o==="for-as")&&y(s[1]))for(let l of s[1])n(l);if(o==="try"){for(let l of s.slice(2))if(y(l)&&l.length===2&&E.isPattern(l[0]))n(l[0])}for(let l of s)i(l,a)};for(let{tree:s,atoms:a,isDecl:o}of t){i(s,o);for(let l of a)n(l)}return r},F3=(e,t)=>{let r=t.slice(1),n=new Set(e.hoistTargets(r).map(([a])=>a)),i=r.filter((a)=>e.isModuleImport(a));for(let a of E.importedNames(i))n.add(a);for(let a of e.collectReactiveNames(r))n.add(a);for(let a of e.collectEffectHandles(r))n.add(a);for(let a of e.collectReadonlyNames(r))n.add(a);let s=(a)=>{if(!y(a))return;if(a[0]==="enum"&&typeof a[1]==="string")n.add(a[1]);if(a[0]==="class"&&typeof a[1]==="string")n.add(a[1]);if(k1(a[0])&&a.length===4&&typeof a[1]==="string")n.add(a[1]);if((a[0]==="="||a[0]==="void-assign")&&typeof a[1]==="string")n.add(a[1])};for(let a of r)if(s(a),y(a)&&a[0]==="export"&&y(a[1]))s(a[1]);return n},ma=new Set(["plain","state","computed","effect","readonly","import","class","def","enum"]),B3=(e)=>{if(e==null)return[];if(!Array.isArray(e))throw Error(`emitter: ambientBindings must be an array of {name, kind}; got ${typeof e}`);let t=new Set;for(let r of e){if(r===null||typeof r!=="object"||!Z1(r.name))throw Error(`emitter: ambientBindings entries are {name, kind} with an identifier name; got ${JSON.stringify(r)}`);if(!ma.has(r.kind))throw Error(`emitter: ambientBindings kind '${r.kind}' for '${r.name}' is not a binding kind — expected one of ${[...ma].join(", ")}`);if(t.has(r.name))throw Error(`emitter: ambientBindings names '${r.name}' twice — one binding per name`);t.add(r.name)}return e},U3=(e,t,r)=>{let n=t.slice(1),i=new Map,s=(c,h)=>{if(typeof c==="string"&&!i.has(c))i.set(c,h)},a=(c)=>{if(!r.has(c))s(c,"plain")};for(let c of n)if(e.isModuleImport(c))for(let h of E.importedNames([c]))s(h,"import");let o=e.collectComputedNames(n);for(let c of e.collectReactiveNames(n))s(c,o.has(c)?"computed":"state");for(let c of e.collectEffectHandles(n))s(c,"effect");for(let c of e.collectReadonlyNames(n))s(c,"readonly");let l=(c,h)=>{if(!y(c))return;if(c[0]==="enum"&&typeof c[1]==="string")s(c[1],"enum");if(c[0]==="class"&&typeof c[1]==="string")s(c[1],"class");if(k1(c[0])&&c.length===4&&typeof c[1]==="string")s(c[1],"def");if((c[0]==="="||c[0]==="void-assign")&&typeof c[1]==="string")if(h)s(c[1],"plain");else a(c[1])};for(let c of n)if(l(c,!1),y(c)&&c[0]==="export"&&y(c[1]))l(c[1],!0);for(let[c,,h]of e.hoistTargets(n))if(h==="target")a(c);return[...i].map(([c,h])=>({name:c,kind:h}))},Ui={field:"field",computed:"computed",derived:"derived",method:"method"};function V3(e,t,r,n){let i=[],s=(l)=>l.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");for(let l of t.story?.decl?.descriptor?.entries??[]){let c=l.tag==="union-member"?{name:l.name,start:l.start}:l.tag==="directive"&&l.name==="mixin"&&l.argTokens?.[0]?.kind==="IDENTIFIER"?{name:l.argTokens[0].value,start:l.argTokens[0].start}:null;if(c!==null&&typeof c.start==="number"){let f=new RegExp(`(= |\\| |& )(${s(c.name)})(?= \\||;| &)`).exec(r);if(f!==null)i.push({at:f.index+f[1].length,len:c.name.length,start:c.start,end:c.start+c.name.length});continue}if((Ui[l.tag]??null)===null||typeof l.start!=="number")continue;let h=new RegExp(`([{;] )((?:readonly )?)(${s(l.name)})(\\??: )`).exec(r);if(h===null)continue;if(i.push({at:h.index+h[1].length+h[2].length,len:l.name.length,start:l.start,end:l.start+l.name.length}),l.tag==="field"&&Array.isArray(l.typeSpan)&&e.b.source!==null){let f=/[A-Za-z_$][\w$]*/.exec(e.b.source.slice(l.typeSpan[0],l.typeSpan[1]));if(f!==null){let u=h.index+h[0].length,d=r.indexOf(";",u)<0?r.length:r.indexOf(";",u)+1,p=new RegExp(`(?u[1]))];for(let u of h){if(c.has(u))continue;let d=a[0]+1,p=-1;while(d>0){let m=l.lastIndexOf(u,d-1);if(m<0)break;if(!/[\w$]/.test(l[m-1]??" ")&&!/[\w$]/.test(l[m+u.length]??" ")){p=m;break}d=m}if(p>=0)c.set(u,[p,p+u.length])}let f=(u,d)=>i.some((p)=>ul.at-c.at);let o=0;for(let l of i){if(l.ate.b.emit(r.slice(l.at,l.at+l.len)));else e.b.emit(r.slice(l.at,l.at+l.len));o=l.at+l.len}e.b.emit(r.slice(o))}function W3(e,t,r,n){let i=t.story?.decl?.descriptor?.entries??null;if(i===null)return;let s=(a)=>a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");for(let a of i){let o=a.tag==="union-member"?{name:a.name,start:a.start}:a.tag==="directive"&&a.name==="mixin"&&a.argTokens?.[0]?.kind==="IDENTIFIER"?{name:a.argTokens[0].value,start:a.argTokens[0].start}:null;if(o===null||typeof o.start!=="number")continue;let l=new RegExp(`(= |\\| |& )(${s(o.name)})(?= \\||;| &)`).exec(r);if(l===null)continue;e.intrinsics.push({start:o.start,end:o.start+o.name.length,kind:"schema",label:null,name:o.name,gen:n+l.index+l[1].length})}for(let a of i){let o=Ui[a.tag]??null;if(o===null||typeof a.start!=="number")continue;let l=s(a.name),c=new RegExp(`([{;] )((?:readonly )?)(${l})(\\??: )`).exec(r);if(c===null)continue;let h=n+c.index+c[1].length+c[2].length;if(e.intrinsics.push({start:a.start,end:a.start+a.name.length,kind:"schema",label:o,name:a.name,gen:h,optional:c[4].startsWith("?")}),a.tag==="field"&&a.typeSpan!==null&&a.typeSpan!==void 0)e.intrinsics.push({start:a.typeSpan[0],end:a.typeSpan[1],kind:"schema",label:null,name:a.name,gen:h+c[3].length+c[4].length})}}function Ea(e,{source:t="",runtimeDelivery:r="none",face:n="js",pins:i=null,strict:s=!1,script:a=!1,browserModule:o=!1,dataPayload:l=null,ambientBindings:c=null,repl:h=!1,hmr:f=!1,tolerant:u=!1,modulePath:d=null,appStashSpec:p=null,routesUnion:m=null,routeParams:g=null}={}){if(!e.sexpr)throw Error("emitter: cannot emit a failed parse");if(n!=="js"&&n!=="ts")throw Error(`emitter: unknown face '${n}' — expected 'js' (the shipping emission) or 'ts' (the editor face)`);let b=B3(c),S=new ar(e.stores),w=new Re(S,{source:t,primitives:n==="ts"}),R=new E(S,w,{face:n,pins:i,strict:s,script:a,browserModule:o,repl:h,hmr:f,tolerant:u,modulePath:d,appStashSpec:p,routesUnion:m,routeParams:g});if(R.dataPayload=l,r!=="none"&&r!=="import"&&r!=="inline")throw Error(`emitter: unknown runtimeDelivery '${r}' — expected 'none', 'import', or 'inline'`);if(R.collectTsDirectives(e.sexpr,e.trivia??[],t),R.collectTypeOnlyImports(e.sexpr,t),R.collectAppAccessors(e.sexpr),R.tsNocheck!==null){let k=S.idOf(e.sexpr),v=R.tsNocheck;w.tsOnly(()=>{let j=()=>w.emit("//"+v.text.slice(1));if(k!==null)w.markSpan(k,"tsDirective",v.start,v.end,j);else j();w.emit(` -`)})}let T=M3(R,e.sexpr),F=(k)=>{if(typeof k==="string")R.temps.used.add(k);else if(y(k))for(let v of k)F(v)};for(let{tree:k,atoms:v}of T)F(k),F(v);for(let{name:k}of b)R.temps.used.add(k);let L=j3(R,T);for(let{name:k}of b)L.add(k);let C=[...L];for(let k of pt)for(let v of k.generatedNames??[])R.runtimeAliases.set(v,E.mintName(v,L));let N=F3(R,e.sexpr),D=U3(R,e.sexpr,new Set(b.map(({name:k})=>k)));for(let{name:k}of b)N.add(k);let O=new Set;for(let k of pt){let v=new Set(k.names.filter((j)=>!N.has(j)));if(T.some(({tree:j,isDecl:X,isTrigger:x,isComponent:Z})=>k.triggers?.(j,{isTrigger:x,isComponent:Z})||Ee(j,v,X)))O.add(k.key)}for(let k=!0;k;){k=!1;for(let v of pt){if(!O.has(v.key))continue;for(let j of Fi(v))if(!O.has(j))O.add(j),k=!0}}if(r!=="none"){let k=pt.filter((X)=>O.has(X.key)),v=[];if(r==="import")for(let X of k)v.push({runtimes:[X],names:X.names,imp:X.url.pathname});else{let X=new Set(k.flatMap((x)=>Fi(x)));for(let x of k){if(X.has(x.key))continue;let Z=[],U=(Q)=>{if(Z.includes(Q))return;for(let l1 of Fi(Q)){let I=pt.find((s1)=>s1.key===l1);if(I)U(I)}Z.push(Q)};if(U(x),Z.length===1){v.push({runtimes:[x],names:x.names,body:da(x),types:x.types});continue}let r1=Z.some((Q)=>Q.types)?Object.assign({},...Z.map((Q)=>Q.types)):void 0;v.push({runtimes:Z,names:Z.flatMap((Q)=>Q.names),body:Z.map((Q)=>da(Q)).join(` -`),types:r1})}}let j=S.idOf(e.sexpr);for(let X of v){let x=new Set(X.runtimes.flatMap((r1)=>r1.generatedNames??[])),Z=X.names.filter((r1)=>x.has(r1)||!N.has(r1)).map((r1)=>({name:r1,local:x.has(r1)?R.runtimeAliases.get(r1):r1}));if(Z.length===0)continue;let U=w.offset;if(X.imp){w.emit(`import { ${Z.map(({name:Q,local:l1})=>Q===l1?Q:`${Q} as ${l1}`).join(", ")} } from `);let r1=w.offset;w.emit(JSON.stringify(X.imp)),R.importSpans.push({start:r1,end:w.offset,specifier:JSON.stringify(X.imp)}),w.emit(`; -`)}else{w.emit(`const { ${Z.map(({name:Q,local:l1})=>Q===l1?Q:`${Q}: ${l1}`).join(", ")} }`);let r1=n==="ts"&&X.types?`{ ${Z.map(({name:Q})=>`${Q}: ${X.types[Q]??"any"}`).join("; ")} }`:null;if(r1!==null&&r1.includes("__RipClassValue"))R._needsClassValue=!0;if(r1!==null&&r1.includes("__RipCSSProperties"))R._needsCssProperties=!0;if(w.emit(" = "),r1)w.tsOnly(()=>w.emit("("));if(w.emit(`(() => { -${X.body} -return { ${X.names.join(", ")} }; -})()`),r1)w.tsOnly(()=>w.emit(` as ${r1})`));w.emit(`; -`)}if(j!==null)w.rows.push({nodeId:j,role:"runtime",mappingKind:"synthetic",sourceStart:0,sourceEnd:0,generatedStart:U,generatedEnd:w.offset,fileId:0})}}let W=null;if(n==="ts"){let k=null;try{k=$s(e.sexpr,w.source,E.importedNames(e.sexpr.slice(1).filter((v)=>R.isModuleImport(v))))}catch(v){if(v instanceof _i){let j=Error(`emitter: ${v.message}`),X=v.node!==null?S.idOf(v.node):null,x=X!==null?S.selfSpan(X):null;if(x)j.start=x[0],j.end=x[1];else if(v.start!==null)j.start=v.start,j.end=v.start;throw j}throw v}if(W=k,k!==null){let v=S.idOf(e.sexpr),j=w.offset;if(w.tsOnly(()=>w.emit(k.intrinsicLines.join(` +`)};if(this.emitTsTypeDecls(y(t)&&t[0]==="block"?t.slice(1):[t],g),this.mark(t,"statements",()=>{let S=s&&h.length>0&&y(h[0])&&h[0][0]==="super";if(!S)b();h.forEach((w,R)=>{this.b.emit(g);let T=R===h.length-1;if(!s&&!a&&T)this.implicitReturn(w,r+1);else this.statement(w,r+1,!T||!s);if(this.b.emit(` +`),S&&R===0)b()})}),o)this.voidTailReturn(h,r);this.b.emit(" ".repeat(r)+"}")}),this.sideEffectOnly=p,this.voidReason=m,this.methodName=d,this.scopes.pop(),this.rframes.pop()}superCall(e){if(!this.methodName)throw this.positionedError(e,"emitter: super outside a class method");this.mark(e,"$self",()=>{this.b.emit(this.methodName==="constructor"?"super(":`super.${this.methodName}(`),this.mark(e,"args",()=>{e.slice(1).forEach((t,r)=>{if(r>0)this.b.emit(", ");this.callArg(t)})}),this.b.emit(")")})}newExpr(e){let[,t]=e;this.mark(e,"$self",()=>{this.mark(e,"operator",()=>this.b.emit("new")),this.b.emit(" "),this.mark(e,"operand",()=>{if(y(t)&&hr.has(t[0])&&E.optionalGuard(t))this.b.emit("("),this.expr(t),this.b.emit(" ?? undefined)()");else if(y(t)&&(t[0]==="."||t[0]==="?."))if(E.pureSpine(t))this.member(t),this.b.emit("()");else this.b.emit("("),this.expr(t),this.b.emit(")()");else if(y(t)&&t[0]==="new"&&t.length===2&&E.optionalGuard(t[1]))this.b.emit("("),this.newExpr(t),this.b.emit(")()");else if(y(t)&&t[0]==="tagged-template")this.b.emit("("),this.taggedTemplate(t),this.b.emit(")()");else if(y(t)&&y(t[0])&&!Ce(t[0])&&hr.has(t[0][0])&&E.optionalGuard(t[0]))this.mark(t,"$self",()=>{this.b.emit("("),this.expr(t[0]),this.b.emit(" ?? undefined)"),this.mark(t,"args",()=>{this.b.emit("("),t.slice(1).forEach((r,s)=>{if(s>0)this.b.emit(", ");this.callArg(r)}),this.b.emit(")")})});else if(y(t)&&t[0]==="new"&&t.length===2)this.b.emit("("),this.newExpr(t),this.b.emit(")()");else if(y(t)&&t[0]==="dammit!"){if(t.parenthesized)this.b.emit("(");if(this.dammit(t),t.parenthesized)this.b.emit(")");this.b.emit("()")}else if(y(t)){let r=this.semanticKindOf(t)==="call",s=t[0],i=!Ce(s)&&(E.pureSpine(s)||y(s)&&!s.parenthesized&&this.semanticKindOf(s)==="call"||y(s)&&s[0]==="dammit!");if(hr.has(t[0])&&E.pureSpine(t))this.call(t),this.b.emit("()");else if(r&&!t.parenthesized&&Ce(s))this.b.emit("("),this.call(t),this.b.emit(")()");else if(r&&!t.parenthesized&&i)this.call(t);else if(r&&!t.parenthesized){let n=this.ts&&y(s)&&(s[0]==="cast"||s[0]==="satisfies");this.mark(t,"$self",()=>{if(!n)this.b.emit("(");if(this.expr(s),!n)this.b.emit(")");this.mark(t,"args",()=>{this.b.emit("("),t.slice(1).forEach((a,o)=>{if(o>0)this.b.emit(", ");this.callArg(a)}),this.b.emit(")")})})}else{let n=this.ts&&(t[0]==="cast"||t[0]==="satisfies");if(!n)this.b.emit("(");this.expr(t),this.b.emit(n?"()":")()")}}else this.emitPrimitive(t),this.b.emit("()")})})}emitParam(e){if(typeof e==="string")return this.withDeclaredName(()=>this.emitPrimitive(e));if(e[0]==="typed-var"){this.mark(e,"$self",()=>this.mark(e,"annotation",()=>{if(this.mark(e,"target",()=>this.emitParam(e[1])),this.ts){let t=this.stores.idOf(e);if(t!==null&&this.stores.role(t,"optionalMarker"))this.b.tsOnly(()=>this.mark(e,"optionalMarker",()=>this.b.emit("?")));let r=this.annotationText(e)??(e[2]===""?"":Be(e[2]));if(r!=="")this.tsAnnotate(e,"annotation",r)}}));return}if(e[0]==="rest")return this.b.emit("..."),this.emitParam(e[1]);if(e[0]==="default")return this.emitParam(e[1]),this.b.emit(" = "),this.withExpression(()=>this.expr(e[2]));this.withPattern(()=>this.expr(e),!0)}static paramCore(e){return y(e)&&e[0]==="typed-var"?e[1]:e}static expansionSplit(e){let t=e.findIndex((s)=>y(s)&&s[0]==="expansion");if(t===-1)return{list:e,extractions:[]};let r=e.slice(t+1);return{list:[...e.slice(0,t),["rest","_rest"]],extractions:r.map((s,i)=>({node:s,name:E.paramCore(s),slot:`_rest[_rest.length - ${r.length-i}]`}))}}contextuallyTyped(e){let t=this.stores.idOf(e),r=t===null?null:this.stores.node(t);if(!r||typeof r.sourceStart!=="number")return!1;if(this._argSpans??=this.stores.roles.filter((s)=>s.role==="args"&&typeof s.sourceStart==="number").map((s)=>[s.sourceStart,s.sourceEnd]),this._argSpans.some(([s,i])=>r.sourceStart>=s&&r.sourceEnd<=i))return!0;return this._annotatedValueSpans??=(()=>{let s=new Set,i=[];for(let a of this.stores.nodes){if(a.semanticKind!=="assign"&&a.semanticKind!=="pair")continue;if(!this.stores.role(a.nodeId,"annotation"))continue;let o=this.stores.role(a.nodeId,"value");if(typeof o?.sourceStart==="number")s.add(`${o.sourceStart}:${o.sourceEnd}`),i.push([o.sourceStart,o.sourceEnd])}let n=[];for(let a of this.stores.nodes)if((a.semanticKind==="func"||a.semanticKind==="def"||a.semanticKind==="class")&&typeof a.sourceStart==="number"&&i.some(([o,l])=>a.sourceStart>=o&&a.sourceEnd<=l))n.push([a.sourceStart,a.sourceEnd]);for(let a of this.stores.nodes){if(a.semanticKind!=="pair"||typeof a.sourceStart!=="number")continue;if(!i.some(([l,c])=>a.sourceStart>=l&&a.sourceEnd<=c))continue;if(n.some(([l,c])=>a.sourceStart>=l&&a.sourceEnd<=c))continue;let o=this.stores.role(a.nodeId,"value");if(typeof o?.sourceStart==="number")s.add(`${o.sourceStart}:${o.sourceEnd}`)}return s})(),this._annotatedValueSpans.has(`${r.sourceStart}:${r.sourceEnd}`)}emitParams(e,t=null,r=!0){let s=E.expansionSplit(e).list,i=r&&this.ts?$s(s):new Set;if(t!==null)i.delete(0);s.forEach((n,a)=>{let o=this.firstAwaitIn(n);if(o!==null)throw this.positionedError(o,"emitter: a parameter cannot await or yield — JavaScript refuses both in formal parameters, a default "+"or a pattern's default included; take the argument and do it in the body (`a ?= load!`)");if(gt(n)!==null||y(n)&&n[0]==="default"&>(n[1])!==null)throw this.positionedError(y(n)?n:e,"emitter: an @-parameter promotes only in a constructor (`constructor: (@name) ->`) — bind a plain parameter and assign it here");if(a>0)this.b.emit(", ");if(this.emitParam(n),i.has(a)&&this.ts)this.b.tsOnly(()=>this.b.emit("?"));if(a===0&&t!==null&&typeof n==="string"&&this.ts)this.b.tsOnly(()=>this.b.emit(`: ${t}`))})}func(e){let t=this._narrowedReads;this._narrowedReads=null;try{return this.emitFunc(e)}finally{this._narrowedReads=t}}emitFunc(e){let[t,r,s]=e,i=r.length===0&&E.containsBareIt(s)?["it"]:r,n=t==="->"&&this.inComponent()?"=>":t,a=this.ind,o=this.voidFuncs.has(e),l=this.liveStmts(y(s)&&s[0]==="block"?s.slice(1):[s],{forwards:!0}),{entries:c,names:h}=this.scopedHoist(l,i);for(let p of this.pushReactiveFrame(l,h,i,e))h.add(p);this.scopes.push(h);let f=this.containsAwait(s),u=E.containsYield(s);if(u&&n==="=>")throw this.positionedError(e,t==="->"?"emitter: a generator arrow cannot sit inside a component body — thin arrows lower to fat arrows there to keep `this` on the instance, and JS has no generator arrows (name the generator a method and call it)":"emitter: fat arrows cannot contain yield (JS has no generator arrows; use ->)");let d=this.ts&&this.contextuallyTyped(e);this.mark(e,"returnType",()=>this.mark(e,"$self",()=>{if(n==="->"){if(f)this.b.emit("async ");this.mark(e,"kind",()=>this.b.emit(u?"function*":"function")),this.b.emit("("),this.mark(e,"params",()=>this.emitParams(i,null,!d)),this.b.emit(")"),this.tsReturnAnnotation(e,f,o,u),this.b.emit(" "),this.funcBlock(e,s,l,a,c,o)}else{if(f)this.b.emit("async ");let p=this.ts&&!d&&i.length===1&&typeof i[0]==="string",m=this.ts&&i.length===1&&typeof E.paramCore(i[0])==="string"&&(E.isTypedWrapper(i[0])||this.annotationText(e,"returnType")!==null||o||p);if(this.mark(e,"params",()=>{if(i.length===1&&typeof E.paramCore(i[0])==="string"){if(m)this.b.tsOnly(()=>this.b.emit("("));if(this.emitParam(i[0]),p)this.b.tsOnly(()=>this.b.emit("?"));if(m)this.b.tsOnly(()=>this.b.emit(")"))}else this.b.emit("("),this.emitParams(i,null,!d),this.b.emit(")")}),this.tsReturnAnnotation(e,f,o,u),this.b.emit(" "),this.mark(e,"kind",()=>this.b.emit("=>")),this.b.emit(" "),!o&&l.length===1&&c.length===0&&!E.statementOnly(l[0])&&!(y(l[0])&&(k1(l[0][0])||["return","if","while","block"].includes(l[0][0]))))this.mark(e,"body",()=>{let b=E.needsGrouping(l[0],"operand")||O1(l[0]);if(b)this.b.emit("(");if(this.expr(l[0]),b)this.b.emit(")")});else this.funcBlock(e,s,l,a,c,o)}})),this.scopes.pop(),this.rframes.pop(),this.ind=a}funcBlock(e,t,r,s,i,n=!1){let a=k1(e[0])?e[2]:e[1],{extractions:o}=E.expansionSplit(Array.isArray(a)?a:[]),l=this.sideEffectOnly,c=this.voidReason;this.sideEffectOnly=n,this.voidReason=null,this.mark(e,"body",()=>{this.mark(t,"$self",()=>{if(this.b.emit(`{ +`),i.length)this.b.emit(" ".repeat(s+1)),this.hoistLine(i," ".repeat(s+1)),this.b.emit(` +`);for(let h of o){let f=y(h.name)&&h.name[0]==="default",u=f?E.paramCore(h.name[1]):h.name,d=f?h.name[1]:h.node;if(y(u)&&u[0]==="rest")throw this.positionedError(h.node,"emitter: a rest parameter cannot follow the '...' gap — the gap already binds every argument between the head and the tail, so a second rest has nothing left to collect; name the tail parameter instead");if(this.b.emit(" ".repeat(s+1)+"const "),typeof u==="string")this.mark(h.node,"$self",()=>this.emitPrimitive(u));else this.withPattern(()=>this.expr(u),!0);let p=this.ts?this.annotationText(d):null;if(p!==null)this.tsAnnotate(d,"annotation",p);if(this.b.emit(" = "),f)this.b.emit(`${h.slot} === undefined ? `),this.withExpression(()=>this.expr(h.name[2])),this.b.emit(` : ${h.slot}`);else this.b.emit(h.slot);this.b.emit(`; +`)}this.emitTsTypeDecls(b1(t)?t.slice(1):[t]," ".repeat(s+1)),this.mark(t,"statements",()=>{r.forEach((h,f)=>{if(this.b.emit(" ".repeat(s+1)),!n&&f===r.length-1)this.implicitReturn(h,s+1);else this.statement(h,s+1,!0);this.b.emit(` +`)})}),this.voidTailReturn(r,s),this.b.emit(" ".repeat(s)+"}")})}),this.sideEffectOnly=l,this.voidReason=c}voidTailReturn(e,t){if(!this.sideEffectOnly||e.length===0)return;let r=e[e.length-1],s=y(r)?r[0]:null;if(["return","throw","break","continue"].includes(s))return;this.b.emit(" ".repeat(t+1)+`return; +`)}implicitReturn(e,t){this.withTsDirectives(e," ".repeat(t),()=>this.implicitReturnCore(e,t))}implicitReturnCore(e,t){if(y(e)&&(e[0]==="return"||e[0]==="throw"))return this.statement(e,t);if(typeof e==="string"&&(e==="break"||e==="continue"||e==="debugger"))return this.statement(e,t);if(this.ind=t,y(e)){let r=e[0];if(r==="if"&&e.length>=3&&e.length<=4){if(E.ifIsSimple(e))this.b.emit("return ("),this.mark(e,"$self",()=>this.ifTernary(e)),this.b.emit(");");else this.mark(e,"$self",()=>this.returnifyIf(e,t));return}if(r==="try"){this.withTailReturn(()=>this.tryBranches(e,t));return}if(r==="switch"&&e.length===4){this.b.emit("return "),this.withTailReturn(()=>this.valueSwitch(e)),this.b.emit(";");return}if(r==="while"&&(e.length===3||e.length===4)||r==="loop"&&e.length===2)return this.statement(e,t);if(E.returnGuard(e)||E.stmtGuard(e)||r==="="&&e.length===3&&(E.returnGuard(e[2])||E.stmtGuard(e[2])))return this.statement(e,t);if(r===".="&&e.length===3)return this.statement(e,t);if(r==="="&&e.length===3&&E.sliceTarget(e[1])!==null)return this.statement(e,t);if(r==="enum")return this.statement(e,t);if(this.isReactiveDecl(e)||this.isReadonlyDecl(e))return this.statement(e,t);if(this.isEffectDecl(e)&&e[1]!==null)return this.statement(e,t);if((r==="for-in"||r==="for-of"||r==="for-as")&&e.length===6)return this.returnifyLoop(e,t);if(k1(r))throw this.positionedError(e,"emitter: implicit return of a 'def' body is not supported yet")}this.b.emit("return "),this.withTailReturn(()=>{let r=E.needsGrouping(e,"return");if(r)this.b.emit("(");if(this.expr(e),r)this.b.emit(")")}),this.b.emit(";")}update(e){if(typeof e[1]==="string"&&this.isComputedName(e[1]))throw this.positionedError(e,`emitter: cannot assign to computed '${e[1]}' — a '~=' binding derives from its dependencies; write to those instead`);if(typeof e[1]==="string"&&this.isAmbientReadonly(e[1]))throw this.positionedError(e,`emitter: cannot assign to readonly '${e[1]}' — a '=!' binding never changes after its declaration`);if(this.checkExportedConstWrite(e,e[1]),this.checkMemberWrite(e,e[1]),y(e[1])&&E.optionalGuard(e[1])!==null)throw this.positionedError(e,"emitter: an optional chain cannot be an update target — no reference exists for `obj?.x++`; "+"guard it explicitly (`obj.x++ if obj?`)");this.mark(e,"$self",()=>{let[t,r,s]=e;if(s)this.mark(e,"target",()=>this.withTarget(()=>this.expr(r))),this.mark(e,"operator",()=>this.b.emit(t));else this.mark(e,"operator",()=>this.b.emit(t)),this.mark(e,"target",()=>this.withTarget(()=>this.expr(r)))})}relation(e){let[t,r,s]=e,i=t[0]==="!",n=i?t.slice(1):t;this.mark(e,"$self",()=>{if(i)this.b.emit("!(");if(n==="instanceof"){if(this.operand(e,"left",r),this.b.emit(" instanceof "),this.operand(e,"right",s),i)this.b.emit(")");return}if(n==="of"||n==="in"&&O1(s))this.operand(e,"left",r),this.b.emit(" in "),this.operand(e,"right",s);else if(y(s))this.b.emit(E.MEMBER_IN+"("),this.mark(e,"left",()=>this.expr(r)),this.b.emit(", "),this.mark(e,"right",()=>this.expr(s)),this.b.emit(")");else this.b.emit("Array.isArray("),this.expr(s),this.b.emit(") || typeof "),this.expr(s),this.b.emit(" === 'string' ? "),this.expr(s),this.b.emit(".includes("),this.mark(e,"left",()=>this.expr(r)),this.b.emit(") : ("),this.expr(r),this.b.emit(" in "),this.mark(e,"right",()=>this.expr(s)),this.b.emit(")");if(i)this.b.emit(")")})}static ternaryHoists(e){let t=e;while(y(t[2])&&t[2][0]==="?:"&&t[2].length===4&&!t[2].parenthesized)t=t[2];let r=t[2];return y(r)&&r[0]==="="&&r.length===3&&typeof r[1]==="string"&&!r.parenthesized}ternary(e){let t=[e];while(!0){let a=t[t.length-1][2];if(y(a)&&a[0]==="?:"&&a.length===4&&!a.parenthesized)t.push(a);else break}let r=t[t.length-1],s=E.ternaryHoists(r),i=(a,o,l)=>{this.grouped(a,o,l,E.needsGrouping(l,"operand")||U1(l))},n=(a)=>this.grouped(a,"condition",a[1],y(a[1])&&a[1][0]==="?:");this.mark(e,"$self",()=>{if(s)this.expr(r[2][1]),this.b.emit(" = (");n(r),this.b.emit(" ? "),i(r,"then",s?r[2][2]:r[2]);for(let a=t.length-2;a>=0;a--)this.b.emit(" : ("),n(t[a]),this.b.emit(" ? "),i(t[a+1],"else",t[a+1][3]);if(this.b.emit(" : "),i(t[0],"else",t[0][3]),this.b.emit(")".repeat(t.length-1)),s)this.b.emit(")")})}strTemplate(e){this.mark(e,"$self",()=>{this.b.emit("`"),this.templateChunks(e.slice(1)),this.b.emit("`")})}templateChunks(e){for(let t of e){if(t==="")continue;if(y(t)){if(t.length!==1)throw this.positionedError(t,"emitter: multi-statement interpolations are not supported yet");this.b.emit("${"),this.mark(t,"$self",()=>{let r=E.needsGrouping(t[0],"operand")||U1(t[0]);if(r)this.b.emit("(");if(this.expr(t[0]),r)this.b.emit(")")}),this.b.emit("}")}else{let r=t.slice(1,-1);if(r!=="")this.b.emit(E.escapeTemplate(r))}}}heregex(e){let[,t,...r]=e;this.mark(e,"$self",()=>{if(this.b.emit("RegExp(`"),this.templateChunks(r),this.b.emit("`"),t!=="")this.b.emit(`, '${t}'`);this.b.emit(")")})}call(e){if(this.browserModule&&e[0]==="import"&&this.lockedHead(e,"dynimport")){let t=this.positionedError(e,"emitter: dynamic import is not supported in a browser App module — use a static import so Rip can publish and resolve the dependency");if(typeof t.start!=="number"&&this.b.currentMark)t.start=this.b.currentMark.sourceStart,t.end=this.b.currentMark.sourceEnd;throw t}if(this.repl&&e[0]==="import"&&(e.length===2||e.length===3)&&this.lockedHead(e,"dynimport")){this.mark(e,"$self",()=>{this.b.emit(`import(${this.replResolver()}(`),this.mark(e,"args",()=>{if(this.callArg(e[1]),this.b.emit(")"),e.length===3)this.b.emit(", "),this.callArg(e[2])}),this.b.emit(")")});return}if(e[0]==="rest"&&this.inPattern)throw this.positionedError(e,this.bindingPattern?"emitter: a `rest` element is only legal at an array pattern's tail":"emitter: Cannot use 'rest' expression as a destructuring target (destructuring rest is spelled '...name')");if(y(e[0])&&e[0][0]==="dammit!"){if(this.renderSyncGuard(e),e[0].parenthesized){this.mark(e,"$self",()=>{this.b.emit("("),this.dammit(e[0]),this.b.emit(")"),this.mark(e,"args",()=>{this.b.emit("("),e.slice(1).forEach((s,i)=>{if(i>0)this.b.emit(", ");this.callArg(s)}),this.b.emit(")")})});return}let t=e[0][1],r=Ce(t);this.mark(e,"$self",()=>{this.b.emit(r?"await new ":"await "),this.mark(e[0],"$self",()=>{if(r)this.mark(e[0],"target",()=>this.rubyNewTarget(t));else this.head(e[0],"target",t)}),this.mark(e,"args",()=>{this.b.emit("("),e.slice(1).forEach((s,i)=>{if(i>0)this.b.emit(", ");this.callArg(s)}),this.b.emit(")")})});return}if(y(e[0])&&e[0][0]==="."&&e[0].length===3&&e[0][2]==="new"){this.mark(e,"$self",()=>{this.b.emit("new "),this.rubyNewTarget(e[0]),this.mark(e,"args",()=>{this.b.emit("("),e.slice(1).forEach((t,r)=>{if(r>0)this.b.emit(", ");this.callArg(t)}),this.b.emit(")")})});return}this.chain(e)}rubyNewTarget(e){let t=e[1];this.mark(e,"object",()=>{if(y(t))this.b.emit("("),this.expr(t),this.b.emit(E.optionalGuard(t)?" ?? undefined)":")");else this.expr(t)})}static MODULO="((n, d) => { n = +n; d = +d; return (n % d + d) % d; })";static LITERAL_WORDS=new Set(["true","false","null","undefined","NaN","Infinity"]);static ownKeyText(e,t){return t==="__proto__"?'["__proto__"]':e}static MEMBER_IN="((k, c) => Array.isArray(c) || typeof c === 'string' ? c.includes(k) : k in c)";floorDiv(e){this.mark(e,"$self",()=>{this.b.emit("Math.floor("),this.operand(e,"left",e[1]),this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("/")),this.b.emit(" "),this.operand(e,"right",e[2]),this.b.emit(")")})}returnGuardStatement(e,t){let r=e[2],s=typeof r==="string"?r:r[0];if(s==="return"&&this.scopes.length<=1)throw this.positionedError(r,"emitter: 'return' outside a function");if((s==="break"||s==="continue")&&this.ctrlDepth===0)throw this.positionedError(e,`emitter: '${s}' outside a loop${s==="break"?" or switch":""}`);let i=e[0],n=()=>{let a=()=>{if(t!==null)this.mark(t,"$self",()=>{this.mark(t,"target",()=>this.b.emit(t[1])),this.b.emit(" "),this.mark(t,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.mark(t,"value",()=>this.expr(e[1]))});else this.mark(e,"left",()=>this.expr(e[1]))},o=t!==null||E.jsTier(e[1])!=="primary";if(i==="||")if(this.b.emit("!"),o)this.b.emit("("),a(),this.b.emit(")");else a();else if(i==="??"){if(o)this.b.emit("("),a(),this.b.emit(")");else a();this.b.emit(" == null")}else if(o&&t!==null)this.b.emit("("),a(),this.b.emit(")");else a()};this.mark(e,"$self",()=>{this.b.emit("if ("),n(),this.b.emit(") ");let a=()=>{if(this.b.emit(s),y(r)&&r.length>1)this.b.emit(" "),this.mark(r,"value",()=>{if(r[0]==="return"&&E.needsGrouping(r[1],"return"))this.b.emit("("),this.expr(r[1]),this.b.emit(")");else this.expr(r[1])})};if(typeof r==="string")a();else this.mark(r,"$self",a);this.b.emit(";")})}compoundTarget(e,t,r){if(this.checkExportedConstWrite(e,t),this.repeatSafeValue(t))return this.mark(e,"target",()=>this.withTarget(()=>this.expr(t))),t;if(y(t)&&(t[0]==="."||t[0]==="[]")&&t.length===3){let s=t[1];if(!this.repeatSafeValue(s))s=this.loopTempName("_ref"),this.temps.used.add(s),this.b.emit(`const ${s} = `),this.expr(t[1]),this.b.emit(`; +${" ".repeat(r)}`);let i;if(t[0]==="[]"){let n=t[2];if(!this.repeatSafeValue(n)){let a=this.loopTempName("_key");this.temps.used.add(a),this.b.emit(`const ${a} = `),this.expr(n),this.b.emit(`; +${" ".repeat(r)}`),n=a}i=["[]",s,n]}else i=[".",s,t[2]];return this.mark(e,"target",()=>this.expr(i)),i}throw this.positionedError(e,`emitter: ${e[0]} needs a stable target — a plain name or member/index chain (an optional chain has no reference to write back to)`)}static sliceTarget(e){return y(e)&&e[0]==="[]"&&e.length===3&&y(e[2])&&(e[2][0]===".."||e[2][0]==="...")&&e[2].length===3?e:null}sliceAssignStatement(e){let[,t,r]=e,[,s,i]=t,[n,a,o]=i,l=(f)=>E.isIntegerLiteral(f)?parseInt(f.replace(/_/g,""),10):null,c=(f)=>typeof f==="string";for(let f of[a,o])if(y(f)&&f[0]==="-"&&f.length===2&&E.isIntegerLiteral(f[1]))throw this.positionedError(e,"emitter: a slice assignment cannot count from the end — `splice` takes a count, not a negative index; open the range instead (`a[i..] = v`) or compute the bound from `a.length`");let h=(f)=>{if(c(f))this.expr(f);else this.b.emit("("),this.expr(f),this.b.emit(")")};this.mark(e,"$self",()=>{this.mark(e,"target",()=>this.mark(t,"$self",()=>{this.head(t,"object",s),this.b.emit(".splice("),this.mark(t,"key",()=>{if(a===null)this.b.emit("0");else h(a);if(this.b.emit(", "),o===null)this.b.emit("Infinity");else if(l(o)!==null&&(a===null||l(a)!==null))this.b.emit(String(l(o)-(a===null?0:l(a))+(n===".."?1:0)));else{if(h(o),a!==null)this.b.emit(" - "),h(a);if(n==="..")this.b.emit(" + 1")}})})),this.mark(e,"operator",()=>{});let f=y(r)&&r[0]==="array"&&r.slice(1).every((u)=>!(y(u)&&u[0]==="...")&&u!==",");this.mark(e,"value",()=>{if(f)r.slice(1).forEach((u)=>{this.b.emit(", "),this.callArg(u)});else this.b.emit(", ...[].concat("),this.expr(r),this.b.emit(")")}),this.b.emit(")")})}methodAssignStatement(e,t){let[,r,s]=e,i=s;while(y(i)){let l=E.chainHeadSlot(i);if(l===null)break;i=i[l]}let n=y(i)?this.stores.idOf(i):null,a=n!==null?this.stores.node(n)?.semanticKind:null;if(!(y(i)&&typeof i[0]==="string"&&/^[A-Za-z_$][\w$]*$/.test(i[0])&&(a==="call"||a==null&&E.jsTier(i)==="primary")))throw this.positionedError(e,"emitter: `.=` re-binds its target to a METHOD CALL on itself — the right side must be a call chain (`x .= trim()`)");this.mark(e,"$self",()=>{let l=this.compoundTarget(e,r,t),c=(f)=>{if(f===i)return[[".",l,i[0]],...i.slice(1)];let u=E.chainHeadSlot(f),d=f.slice();return d[u]=c(f[u]),d};this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" ");let h=typeof l==="string"?this.bindingNameSpan(e,"target",l):null;if(h!==null)this.primitiveReuse={name:l,span:h.span};this.mark(e,"value",()=>this.expr(c(s))),this.primitiveReuse=null})}taggedTemplate(e){this.mark(e,"$self",()=>{let t=e[1];this.mark(e,"tag",()=>{if(E.needsGrouping(t,"head"))this.b.emit("("),this.expr(t),this.b.emit(")");else this.expr(t)});let r=e[2];this.mark(e,"str",()=>{if(typeof r==="string")if(r[0]==="`")this.b.emit(r);else this.b.emit("`"+E.escapeTemplate(r.slice(1,-1).replace(/\\"/g,'"'))+"`");else this.expr(r)})})}mapLiteral(e){this.mark(e,"$self",()=>{let t=e.slice(1);if(t.length===0){this.b.emit("new Map()");return}this.b.emit("new Map(["),t.forEach((r,s)=>{if(s>0)this.b.emit(", ");if(y(r)&&r[0]==="..."&&r.length===2){this.mark(r,"$self",()=>{this.b.emit("..."),this.expr(r[1])});return}if(!y(r)||r[0]!==":"||r.length!==3)throw this.positionedError(y(r)?r:e,"emitter: a map literal takes explicit `key: value` pairs — shorthand has no Map reading");this.mark(r,"$self",()=>{this.b.emit("[");let i=r[1];this.mark(r,"key",()=>{if(typeof i==="string"&&/^[A-Za-z_$][\w$]*$/.test(i)&&i!=="true"&&i!=="false"&&i!=="null"&&i!=="undefined")this.b.emit('"'),this.emitPrimitive(i),this.b.emit('"');else if(y(i)&&i[0]==="dynamicKey")this.expr(i[1]);else this.expr(i)}),this.b.emit(", "),this.mark(r,"value",()=>this.expr(r[2])),this.b.emit("]")})}),this.b.emit("])")})}matchReceiverClose(){this.b.emit(")"),this.b.emit(".match(")}regexIndex(e,t,r,s){this.mark(e,"$self",()=>{if(this.b.emit(`((_ = ${this.runtimeName("toMatchable")}(`),this.mark(e,"object",()=>this.expr(t)),this.matchReceiverClose(),this.mark(e,"key",()=>this.b.emit(r)),this.b.emit(")) && _["),s===null)this.b.emit("0");else this.mark(e,"capture",()=>this.expr(s));this.b.emit("])")})}static isMatchWrite(e){if(!y(e))return!1;if(e[0]==="=~"&&e.length===3)return!0;if(e[0]==="regex-index"&&e.length===4)return!0;return e[0]==="[]"&&e.length===3&&typeof e[2]==="string"&&e[2][0]==="/"}static paramMatchWrite(e){if(!y(e)||T1(e)||k1(e[0]))return null;if(E.isMatchWrite(e))return e;for(let t of e){let r=E.paramMatchWrite(t);if(r!==null)return r}return null}matchOp(e){if(y(e[1])&&e[1][0]==="=~"&&!e[1].parenthesized)throw this.positionedError(e,"emitter: `=~` does not chain — `a =~ b =~ c` would match the first match RESULT against the second pattern (parenthesize: `(a =~ b) =~ c`, or split the matches)");let t=e[2];this.mark(e,"$self",()=>{this.b.emit(`(_ = ${this.runtimeName("toMatchable")}(`),this.mark(e,"left",()=>this.expr(e[1])),this.matchReceiverClose(),this.mark(e,"right",()=>this.expr(t)),this.b.emit("))")})}modulo(e){this.mark(e,"$self",()=>{this.b.emit(E.MODULO+"("),this.mark(e,"left",()=>this.expr(e[1])),this.b.emit(", "),this.mark(e,"right",()=>this.expr(e[2])),this.b.emit(")")})}synthCompound(e,t,r,s){let i=e[1];if(this.checkExportedConstWrite(e,i),y(i)&&(i[0]==="."||i[0]==="[]")&&i.length===3){let n=this.refPlans.get(e)??{recv:null,obj:null,key:null};if(n.obj===null&&!this.repeatSafeValue(i[1]))throw this.positionedError(e,"emitter: reference plan missing for a compound target with an impure object — a capture site the planner walk did not reach");if(n.key===null&&i[0]==="[]"&&!this.repeatSafeValue(i[2]))throw this.positionedError(e,"emitter: reference plan missing for a compound target with an impure key — a capture site the planner walk did not reach");this.mark(e,"$self",()=>{let a=n.obj!==null||n.key!==null;if(a)this.b.emit("(");if(n.obj!==null)this.b.emit(`${n.obj} = `),this.mark(i,"object",()=>this.withExpression(()=>this.expr(i[1]))),this.b.emit(", ");if(n.key!==null)this.b.emit(`${n.key} = `),this.mark(i,"key",()=>this.withExpression(()=>this.expr(i[2]))),this.b.emit(", ");let o=this.stores.alias([i[0],n.obj??i[1],n.key??i[2]],i),l=()=>this.mark(e,"target",()=>this.withTarget(()=>this.expr(o)));if(l(),this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.mark(e,"operator",()=>{this.b.emit(t),l(),this.b.emit(r),this.operand(e,"value",e[2]),this.b.emit(s)}),a)this.b.emit(")")});return}this.mark(e,"$self",()=>{let n=()=>this.mark(e,"target",()=>this.withTarget(()=>this.expr(e[1])));n(),this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.mark(e,"operator",()=>{this.b.emit(t),n(),this.b.emit(r),this.operand(e,"value",e[2]),this.b.emit(s)})})}floorDivAssign(e){this.synthCompound(e,"Math.floor("," / ",")")}moduloAssign(e){this.synthCompound(e,E.MODULO+"(",", ",")")}awaitExpr(e){this.renderSyncGuard(e),this.mark(e,"$self",()=>{this.mark(e,"operator",()=>this.b.emit("await")),this.b.emit(" "),this.operand(e,"value",e[1])})}doIife(e){let[,t]=e;this.mark(e,"$self",()=>{if(this.b.emit("("),this.mark(e,"func",()=>this.expr(t)),this.b.emit(")("),T1(t)){let r=t[1],s=r.map((n)=>{let a=E.paramCore(n);if(typeof a==="string")return()=>this.expr(a);if(y(a)&&a[0]==="default"&&typeof E.paramCore(a[1])==="string")return()=>this.expr(a[2]);throw this.positionedError(n,"emitter: do-IIFE parameters must be plain names or defaulted names — patterns and rests have no capture argument",e)}),i=r.length;while(i>0&&y(r[i-1])&&r[i-1][0]==="default")i--;s.slice(0,i).forEach((n,a)=>{if(a>0)this.b.emit(", ");n()})}this.b.emit(")")})}dammit(e){if(this.renderSyncGuard(e),Ce(e[1])){this.mark(e,"$self",()=>{this.mark(e,"operator",()=>this.b.emit("await")),this.b.emit(" new "),this.mark(e,"target",()=>this.rubyNewTarget(e[1])),this.b.emit("()")});return}this.mark(e,"$self",()=>{this.mark(e,"operator",()=>this.b.emit("await")),this.b.emit(" "),this.head(e,"target",e[1]),this.b.emit("()")})}maybeDammit(e){this.renderSyncGuard(e);let t=e[1];if(y(t)&&t[0]==="new"||Ce(t))throw this.positionedError(e,"emitter: maybe dammit has no reading on a constructor — `?!` on a construction would make the "+"constructor an optional callee; construct and await with `new X!`");this.mark(e,"$self",()=>{this.mark(e,"operator",()=>this.b.emit("await")),this.b.emit(" "),this.head(e,"callee",e[1]),this.mark(e,"operator",()=>this.b.emit("?.")),this.mark(e,"args",()=>{this.b.emit("("),e.slice(2).forEach((r,s)=>{if(s>0)this.b.emit(", ");this.expr(r)}),this.b.emit(")")})})}yieldExpr(e){if(this.renderSyncGuard(e),this.scopes.length<=1)throw this.positionedError(e,"emitter: 'yield' outside a function");this.mark(e,"$self",()=>{this.b.emit(e[0]==="yield-from"?"yield*":"yield");let t=e[0]==="yield-from"?e[1]:e[1];if(e.length>1)this.b.emit(" "),this.operand(e,"value",t)})}}var ba=(e)=>{if(!y(e))return!1;if(e[0]==="schema"&&e.length===2&&typeof e[1]==="object")return!0;return e.some(ba)},ya=(e)=>{if(!y(e))return!1;if(e[0]==="schema"&&e.length===2&&e[1]&&typeof e[1]==="object"&&e[1].kind==="model")return!0;return e.some(ya)},Sa=(e,t)=>{if(!y(e))return!1;if(t(e))return!0;return e.some((r)=>Sa(r,t))},Ra=(e,t)=>{if(!y(e))return!1;if(t(e))return!0;return e.some((r)=>Ra(r,t))},Ea=(e)=>{if(!y(e))return!1;if(e[0]==="object"&&E.objectComprehension(e)!==null)return!0;return e.some(Ea)},ka=(e)=>{if(!y(e))return!1;if(E.isMatchWrite(e))return!0;return e.some(ka)},pt=[{key:"intrinsics",names:["__toPropertyKey","__defineOwnDataProperty"],generatedNames:["__toPropertyKey","__defineOwnDataProperty"],url:new URL("./runtime/intrinsics.js",import.meta.url),triggers:(e,t)=>Ea(e)},{key:"vocab",names:[],url:new URL("./runtime/vocab.js",import.meta.url),triggers:()=>!1},{key:"schema",names:["__schema","SchemaError","registerCoercer"],url:new URL("./runtime/schema.js",import.meta.url),requires:["vocab"],triggers:(e,t)=>ba(e)},{key:"duckdb",names:[],url:new URL("./runtime/duckdb.js",import.meta.url),triggers:()=>!1},{key:"orm",names:["schema","__schemaSetAdapter"],url:new URL("./runtime/orm.js",import.meta.url),requires:["schema","duckdb","vocab"],triggers:(e,t)=>ya(e)},{key:"reactive",names:["__state","__computed","__effect","__batch","__readonly","__setErrorHandler","__handleError","__catchErrors","getEffectSignal"],generatedNames:["__state","__computed","__effect","__batch"],url:new URL("./runtime/reactive.js",import.meta.url),triggers:(e,t)=>Sa(e,t.isTrigger),types:{__state:"(value: T | { value: T; read(): T }) => { value: T; read(): T; touch(): void }",__computed:"(fn: () => T) => { readonly value: T; read(): T }",__effect:"(fn: () => void | (() => void)) => () => void",__batch:"(fn: () => T) => T",__readonly:"(value: T) => T",__setErrorHandler:"(handler: ((error: any, source?: string) => void) | null) => void",__handleError:"(error: any, source?: string) => void",__catchErrors:"(fn: () => T, onError?: (e: any) => void) => T | undefined",getEffectSignal:"() => AbortSignal | null"}},{key:"stdlib",names:["abort","assert","exit","kind","noop","p","pp","pj","pr","raise","rand","sleep","toMatchable","todo","warn","zip"],generatedNames:["toMatchable"],url:new URL("./runtime/stdlib.js",import.meta.url),triggers:(e,t)=>ka(e),types:{abort:"(msg?: string) => never",assert:"(v: any, msg?: string) => void",exit:"(code?: number) => never",kind:"(v: any) => string",noop:"() => void",p:"(...args: any[]) => void",pp:"(v: T) => T",pj:"(v: T) => T",pr:"(v: T) => T",raise:"(a: any, b?: any) => never",rand:"(a?: number, b?: number) => number",sleep:"(ms: number) => Promise",toMatchable:"(v: any) => string",todo:"(msg?: string) => never",warn:"(...args: any[]) => void",zip:"(...arrays: any[][]) => any[][]"}},{key:"components",names:["setContext","getContext","hasContext","__Component","__pushComponent","__popComponent","__clsx","__style","__lis","__reconcile","__transition","__handleComponentError","__gateBind","__detach","__reportChildFailure","__ownerFrame","__pushOwner","__popOwner","__detachRef"],generatedNames:["setContext","getContext","__Component","__pushComponent","__popComponent","__clsx","__style","__reconcile","__transition","__gateBind","__detach","__reportChildFailure","__ownerFrame","__pushOwner","__popOwner","__detachRef"],types:{__clsx:Pn,__style:jn},url:new URL("./runtime/components.js",import.meta.url),requires:"reactive",triggers:(e,t)=>Ra(e,t.isComponent)}],ji=new Map,pa=(e)=>{if(!ji.has(e.key)){let r=Dn(e.url,"utf8").replace(/^export \{[^}]*\};\s*$/gm,"").replace(/^import \{[^}]*\} from '\.\/[a-z-]+\.js';\s*$/gm,"").trimEnd(),s=/^[ \t]*(import|export)\b.*$/m.exec(r);if(s)throw Error(`emitter: runtime '${e.key}' carries a top-level ${s[1]} that inline delivery cannot strip — `+`${JSON.stringify(s[0].trim())}. Inline bodies share one IIFE scope, so it would emit unparseable output. Use the './name.js' import form, or move the dependency into RUNTIME_TABLE 'requires'.`);ji.set(e.key,r)}return ji.get(e.key)},Fi=(e)=>e.requires==null?[]:Array.isArray(e.requires)?e.requires:[e.requires],Ee=(e,t,r=()=>!1)=>{if(t.size===0)return!1;let s=(o)=>typeof o==="string"&&t.has(o),i=(o)=>y(o)&&o.some(n),n=(o)=>{if(!y(o))return!1;let[l]=o;if(l==="object"||l==="array")return o.slice(1).some(n);if(l===null&&o.length===3)return!1;if(l===":"&&o.length===3)return y(o[1])&&a(o[1])||n(o[2]);if(l==="="&&o.length===3)return n(o[1])||a(o[2]);if((l==="rest"||l==="..."||l==="expansion")&&o.length===2)return n(o[1]);if(l==="typed-var"&&o.length===3)return n(o[1]);return a(o)},a=(o)=>{if(s(o))return!0;if(!y(o))return!1;let[l]=o;if(l==="schema"&&o.length===2&&o[1]&&typeof o[1]==="object"&&Array.isArray(o[1].entries))return!1;if(l==="."||l==="?.")return a(o[1]);if((l===":"||l==="void-pair")&&o.length===3)return y(o[1])&&a(o[1])||a(o[2]);if(T1(o))return i(o[1])||a(o[2]);if(k1(l)&&o.length===4)return i(o[2])||a(o[3]);if(r(o))return a(o[2]);if(F1.has(l)&&o.length===3)return y(o[1])&&n(o[1])||a(o[2]);if(l==="for-in"||l==="for-of"||l==="for-as")return y(o[1])&&o[1].some(n)||o.slice(2).some(a);if(l==="try")return o.slice(1).some((c)=>{if(!y(c))return!1;if(c[0]==="block")return a(c);return n(c[0])||a(c[1])});if(l==="class"&&o.length>=2)return o.slice(2).some(a);if(l==="typed-var"&&o.length===3)return y(o[1])&&a(o[1]);if((l==="cast"||l==="satisfies")&&o.length===3)return a(o[1]);if(l==="import"||l==="type-decl")return!1;return o.some(a)};return a(e)},B3=(e,t)=>{let r=[],s=(i,n,a=[])=>{let o=(f)=>E.isReactiveDeclIn(n,f)||E.isEffectDeclIn(n,f)||E.isReadonlyDeclIn(n,f)||E.isGateDeclIn(n,f),l=(f)=>E.isReactiveDeclIn(n,f)||E.isEffectDeclIn(n,f),c=(f)=>E.isComponentDeclIn(n,f);r.push({tree:i,atoms:a,isDecl:o,isTrigger:l,isComponent:c});let h=(f)=>{if(!y(f))return;if(f[0]==="schema"&&f.length===2&&f[1]&&typeof f[1]==="object"&&Array.isArray(f[1].entries)){for(let{entry:u,tokens:d,value:p}of E.schemaBodies(f[1])){let m=e.subParse(d);if(m.stmts.length)s(["program",...m.stmts],m.stores,p?[]:e.schemaBodyParams(u).map((g)=>g.name))}return}f.forEach(h)};h(i)};return s(t,e.stores),r},U3=(e,t)=>{let r=new Set,s=(n)=>{for(let a of e.patternNames(n,[],!0))r.add(a)},i=(n,a)=>{if(!y(n))return;let[o]=n;if(e.isModuleImport(n)){for(let l of E.importedNames([n]))r.add(l);return}if(T1(n)){if(y(n[1]))for(let l of n[1])s(l);i(n[2],a);return}if(k1(o)&&n.length===4){if(typeof n[1]==="string")r.add(n[1]);if(y(n[2]))for(let l of n[2])s(l);i(n[3],a);return}if(o==="class"){if(typeof n[1]==="string")r.add(n[1]);for(let l of n.slice(2)){let c=y(l)&&l[0]==="block"?l.slice(1):[l];for(let h of c)if(y(h)&&k1(h[0])&&h.length===4){if(y(h[2]))for(let f of h[2])s(f);i(h[3],a)}else i(h,a)}return}if(o==="enum"){if(typeof n[1]==="string")r.add(n[1]);for(let l of n.slice(2))i(l,a);return}if(a(n)){if(typeof n[1]==="string")r.add(n[1]);else if(y(n[1]))s(n[1]);i(n[2],a);return}if((F1.has(o)||o==="void-assign")&&n.length>=2){if(typeof n[1]==="string")r.add(n[1]);else if(E.isPattern(n[1]))s(n[1])}if((o==="for-in"||o==="for-of"||o==="for-as")&&y(n[1]))for(let l of n[1])s(l);if(o==="try"){for(let l of n.slice(2))if(y(l)&&l.length===2&&E.isPattern(l[0]))s(l[0])}for(let l of n)i(l,a)};for(let{tree:n,atoms:a,isDecl:o}of t){i(n,o);for(let l of a)s(l)}return r},V3=(e,t)=>{let r=t.slice(1),s=new Set(e.hoistTargets(r).map(([a])=>a)),i=r.filter((a)=>e.isModuleImport(a));for(let a of E.importedNames(i))s.add(a);for(let a of e.collectReactiveNames(r))s.add(a);for(let a of e.collectEffectHandles(r))s.add(a);for(let a of e.collectReadonlyNames(r))s.add(a);let n=(a)=>{if(!y(a))return;if(a[0]==="enum"&&typeof a[1]==="string")s.add(a[1]);if(a[0]==="class"&&typeof a[1]==="string")s.add(a[1]);if(k1(a[0])&&a.length===4&&typeof a[1]==="string")s.add(a[1]);if((a[0]==="="||a[0]==="void-assign")&&typeof a[1]==="string")s.add(a[1])};for(let a of r)if(n(a),y(a)&&a[0]==="export"&&y(a[1]))n(a[1]);return s},ga=new Set(["plain","state","computed","effect","readonly","import","class","def","enum"]),W3=(e)=>{if(e==null)return[];if(!Array.isArray(e))throw Error(`emitter: ambientBindings must be an array of {name, kind}; got ${typeof e}`);let t=new Set;for(let r of e){if(r===null||typeof r!=="object"||!Z1(r.name))throw Error(`emitter: ambientBindings entries are {name, kind} with an identifier name; got ${JSON.stringify(r)}`);if(!ga.has(r.kind))throw Error(`emitter: ambientBindings kind '${r.kind}' for '${r.name}' is not a binding kind — expected one of ${[...ga].join(", ")}`);if(t.has(r.name))throw Error(`emitter: ambientBindings names '${r.name}' twice — one binding per name`);t.add(r.name)}return e},H3=(e,t,r)=>{let s=t.slice(1),i=new Map,n=(c,h)=>{if(typeof c==="string"&&!i.has(c))i.set(c,h)},a=(c)=>{if(!r.has(c))n(c,"plain")};for(let c of s)if(e.isModuleImport(c))for(let h of E.importedNames([c]))n(h,"import");let o=e.collectComputedNames(s);for(let c of e.collectReactiveNames(s))n(c,o.has(c)?"computed":"state");for(let c of e.collectEffectHandles(s))n(c,"effect");for(let c of e.collectReadonlyNames(s))n(c,"readonly");let l=(c,h)=>{if(!y(c))return;if(c[0]==="enum"&&typeof c[1]==="string")n(c[1],"enum");if(c[0]==="class"&&typeof c[1]==="string")n(c[1],"class");if(k1(c[0])&&c.length===4&&typeof c[1]==="string")n(c[1],"def");if((c[0]==="="||c[0]==="void-assign")&&typeof c[1]==="string")if(h)n(c[1],"plain");else a(c[1])};for(let c of s)if(l(c,!1),y(c)&&c[0]==="export"&&y(c[1]))l(c[1],!0);for(let[c,,h]of e.hoistTargets(s))if(h==="target")a(c);return[...i].map(([c,h])=>({name:c,kind:h}))},Ui={field:"field",computed:"computed",derived:"derived",method:"method"};function K3(e,t,r,s){let i=[],n=(l)=>l.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");for(let l of t.story?.decl?.descriptor?.entries??[]){let c=l.tag==="union-member"?{name:l.name,start:l.start}:l.tag==="directive"&&l.name==="mixin"&&l.argTokens?.[0]?.kind==="IDENTIFIER"?{name:l.argTokens[0].value,start:l.argTokens[0].start}:null;if(c!==null&&typeof c.start==="number"){let f=new RegExp(`(= |\\| |& )(${n(c.name)})(?= \\||;| &)`).exec(r);if(f!==null)i.push({at:f.index+f[1].length,len:c.name.length,start:c.start,end:c.start+c.name.length});continue}if((Ui[l.tag]??null)===null||typeof l.start!=="number")continue;let h=new RegExp(`([{;] )((?:readonly )?)(${n(l.name)})(\\??: )`).exec(r);if(h===null)continue;if(i.push({at:h.index+h[1].length+h[2].length,len:l.name.length,start:l.start,end:l.start+l.name.length}),l.tag==="field"&&Array.isArray(l.typeSpan)&&e.b.source!==null){let f=/[A-Za-z_$][\w$]*/.exec(e.b.source.slice(l.typeSpan[0],l.typeSpan[1]));if(f!==null){let u=h.index+h[0].length,d=r.indexOf(";",u)<0?r.length:r.indexOf(";",u)+1,p=new RegExp(`(?u[1]))];for(let u of h){if(c.has(u))continue;let d=a[0]+1,p=-1;while(d>0){let m=l.lastIndexOf(u,d-1);if(m<0)break;if(!/[\w$]/.test(l[m-1]??" ")&&!/[\w$]/.test(l[m+u.length]??" ")){p=m;break}d=m}if(p>=0)c.set(u,[p,p+u.length])}let f=(u,d)=>i.some((p)=>ul.at-c.at);let o=0;for(let l of i){if(l.ate.b.emit(r.slice(l.at,l.at+l.len)));else e.b.emit(r.slice(l.at,l.at+l.len));o=l.at+l.len}e.b.emit(r.slice(o))}function G3(e,t,r,s){let i=t.story?.decl?.descriptor?.entries??null;if(i===null)return;let n=(a)=>a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");for(let a of i){let o=a.tag==="union-member"?{name:a.name,start:a.start}:a.tag==="directive"&&a.name==="mixin"&&a.argTokens?.[0]?.kind==="IDENTIFIER"?{name:a.argTokens[0].value,start:a.argTokens[0].start}:null;if(o===null||typeof o.start!=="number")continue;let l=new RegExp(`(= |\\| |& )(${n(o.name)})(?= \\||;| &)`).exec(r);if(l===null)continue;e.intrinsics.push({start:o.start,end:o.start+o.name.length,kind:"schema",label:null,name:o.name,gen:s+l.index+l[1].length})}for(let a of i){let o=Ui[a.tag]??null;if(o===null||typeof a.start!=="number")continue;let l=n(a.name),c=new RegExp(`([{;] )((?:readonly )?)(${l})(\\??: )`).exec(r);if(c===null)continue;let h=s+c.index+c[1].length+c[2].length;if(e.intrinsics.push({start:a.start,end:a.start+a.name.length,kind:"schema",label:o,name:a.name,gen:h,optional:c[4].startsWith("?")}),a.tag==="field"&&a.typeSpan!==null&&a.typeSpan!==void 0)e.intrinsics.push({start:a.typeSpan[0],end:a.typeSpan[1],kind:"schema",label:null,name:a.name,gen:h+c[3].length+c[4].length})}}function Ta(e,{source:t="",runtimeDelivery:r="none",face:s="js",pins:i=null,strict:n=!1,script:a=!1,browserModule:o=!1,dataPayload:l=null,ambientBindings:c=null,repl:h=!1,hmr:f=!1,tolerant:u=!1,modulePath:d=null,appStashSpec:p=null,routesUnion:m=null,routeParams:g=null}={}){if(!e.sexpr)throw Error("emitter: cannot emit a failed parse");if(s!=="js"&&s!=="ts")throw Error(`emitter: unknown face '${s}' — expected 'js' (the shipping emission) or 'ts' (the editor face)`);let b=W3(c),S=new ar(e.stores),w=new Re(S,{source:t,primitives:s==="ts"}),R=new E(S,w,{face:s,pins:i,strict:n,script:a,browserModule:o,repl:h,hmr:f,tolerant:u,modulePath:d,appStashSpec:p,routesUnion:m,routeParams:g});if(R.dataPayload=l,r!=="none"&&r!=="import"&&r!=="inline")throw Error(`emitter: unknown runtimeDelivery '${r}' — expected 'none', 'import', or 'inline'`);if(R.collectTsDirectives(e.sexpr,e.trivia??[],t),R.collectTypeOnlyImports(e.sexpr,t),R.collectAppAccessors(e.sexpr),R.tsNocheck!==null){let k=S.idOf(e.sexpr),v=R.tsNocheck;w.tsOnly(()=>{let U=()=>w.emit("//"+v.text.slice(1));if(k!==null)w.markSpan(k,"tsDirective",v.start,v.end,U);else U();w.emit(` +`)})}let T=B3(R,e.sexpr),j=(k)=>{if(typeof k==="string")R.temps.used.add(k);else if(y(k))for(let v of k)j(v)};for(let{tree:k,atoms:v}of T)j(k),j(v);for(let{name:k}of b)R.temps.used.add(k);let M=U3(R,T);for(let{name:k}of b)M.add(k);let x=[...M];for(let k of pt)for(let v of k.generatedNames??[])R.runtimeAliases.set(v,E.mintName(v,M));let A=V3(R,e.sexpr),C=H3(R,e.sexpr,new Set(b.map(({name:k})=>k)));for(let{name:k}of b)A.add(k);let O=new Set;for(let k of pt){let v=new Set(k.names.filter((U)=>!A.has(U)));if(T.some(({tree:U,isDecl:Z,isTrigger:P,isComponent:X})=>k.triggers?.(U,{isTrigger:P,isComponent:X})||Ee(U,v,Z)))O.add(k.key)}for(let k=!0;k;){k=!1;for(let v of pt){if(!O.has(v.key))continue;for(let U of Fi(v))if(!O.has(U))O.add(U),k=!0}}if(r!=="none"){let k=pt.filter((Z)=>O.has(Z.key)),v=[];if(r==="import")for(let Z of k)v.push({runtimes:[Z],names:Z.names,imp:Z.url.pathname});else{let Z=new Set(k.flatMap((P)=>Fi(P)));for(let P of k){if(Z.has(P.key))continue;let X=[],F=(Q)=>{if(X.includes(Q))return;for(let a1 of Fi(Q)){let d1=pt.find((I)=>I.key===a1);if(d1)F(d1)}X.push(Q)};if(F(P),X.length===1){v.push({runtimes:[P],names:P.names,body:pa(P),types:P.types});continue}let e1=X.some((Q)=>Q.types)?Object.assign({},...X.map((Q)=>Q.types)):void 0;v.push({runtimes:X,names:X.flatMap((Q)=>Q.names),body:X.map((Q)=>pa(Q)).join(` +`),types:e1})}}let U=S.idOf(e.sexpr);for(let Z of v){let P=new Set(Z.runtimes.flatMap((e1)=>e1.generatedNames??[])),X=Z.names.filter((e1)=>P.has(e1)||!A.has(e1)).map((e1)=>({name:e1,local:P.has(e1)?R.runtimeAliases.get(e1):e1}));if(X.length===0)continue;let F=w.offset;if(Z.imp){w.emit(`import { ${X.map(({name:Q,local:a1})=>Q===a1?Q:`${Q} as ${a1}`).join(", ")} } from `);let e1=w.offset;w.emit(JSON.stringify(Z.imp)),R.importSpans.push({start:e1,end:w.offset,specifier:JSON.stringify(Z.imp)}),w.emit(`; +`)}else{w.emit(`const { ${X.map(({name:Q,local:a1})=>Q===a1?Q:`${Q}: ${a1}`).join(", ")} }`);let e1=s==="ts"&&Z.types?`{ ${X.map(({name:Q})=>`${Q}: ${Z.types[Q]??"any"}`).join("; ")} }`:null;if(e1!==null&&e1.includes("__RipClassValue"))R._needsClassValue=!0;if(e1!==null&&e1.includes("__RipCSSProperties"))R._needsCssProperties=!0;if(w.emit(" = "),e1)w.tsOnly(()=>w.emit("("));if(w.emit(`(() => { +${Z.body} +return { ${Z.names.join(", ")} }; +})()`),e1)w.tsOnly(()=>w.emit(` as ${e1})`));w.emit(`; +`)}if(U!==null)w.rows.push({nodeId:U,role:"runtime",mappingKind:"synthetic",sourceStart:0,sourceEnd:0,generatedStart:F,generatedEnd:w.offset,fileId:0})}}let W=null;if(s==="ts"){let k=null;try{k=xn(e.sexpr,w.source,E.importedNames(e.sexpr.slice(1).filter((v)=>R.isModuleImport(v))))}catch(v){if(v instanceof _i){let U=Error(`emitter: ${v.message}`),Z=v.node!==null?S.idOf(v.node):null,P=Z!==null?S.selfSpan(Z):null;if(P)U.start=P[0],U.end=P[1];else if(v.start!==null)U.start=v.start,U.end=v.start;throw U}throw v}if(W=k,k!==null){let v=S.idOf(e.sexpr),U=w.offset;if(w.tsOnly(()=>w.emit(k.intrinsicLines.join(` `)+` -`)),v!==null)w.rows.push({nodeId:v,role:"schemaTypes",mappingKind:"synthetic",sourceStart:0,sourceEnd:0,generatedStart:j,generatedEnd:w.offset,fileId:0});R.schemaStories=new Map;let X=[...k.stories.map((x)=>({node:x.decl.node,exported:x.decl.exported,story:x,lines:x.faceAliasLines??x.aliasLines})),...k.derivations.map((x)=>({node:x.decl.node,exported:x.decl.exported,story:null,lines:x.aliasLines}))];X.forEach((x,Z)=>{if(x.story!==null)R.schemaStories.set(x.node,x.story);let U=x.exported?"export ":"",r1=S.idOf(x.node),Q=Z===X.length-1?` +`)),v!==null)w.rows.push({nodeId:v,role:"schemaTypes",mappingKind:"synthetic",sourceStart:0,sourceEnd:0,generatedStart:U,generatedEnd:w.offset,fileId:0});R.schemaStories=new Map;let Z=[...k.stories.map((P)=>({node:P.decl.node,exported:P.decl.exported,story:P,lines:P.faceAliasLines??P.aliasLines})),...k.derivations.map((P)=>({node:P.decl.node,exported:P.decl.exported,story:null,lines:P.aliasLines}))];Z.forEach((P,X)=>{if(P.story!==null)R.schemaStories.set(P.node,P.story);let F=P.exported?"export ":"",e1=S.idOf(P.node),Q=X===Z.length-1?` `:` -`;w.tsOnly(()=>{let l1=()=>{let I=w.offset,s1=x.lines.map((e1)=>`${U}${e1}`).join(` -`);V3(R,x,s1,r1),W3(R,x,s1,I)};if(r1!==null)w.mark(r1,"$self",l1);else l1();w.emit(Q)})})}}if(R.tsDirectivesArmed=!0,b.length>0){let k=new Set,v=new Set,j=new Set,X=new Set;for(let{name:x,kind:Z}of b){if(Z==="state"||Z==="computed")k.add(x);else X.add(x);if(Z==="computed")v.add(x);if(Z==="readonly")j.add(x)}R.rframes.push({reactive:k,computed:v,bound:X,ambientReadonly:j}),R.scopes.push(new Set(b.map(({name:x})=>x)))}if(R.program(e.sexpr),b.length>0)R.rframes.pop(),R.scopes.pop();if(n==="ts"&&Array.isArray(e.sexpr)){let k=(()=>{for(let v of e.sexpr){if(!Array.isArray(v)||v[0]!=="export"||!Array.isArray(v[1]))continue;let j=v[1];if(j[0]==="="){if(j[1]==="stash")return"stash";continue}if(!j.every((x)=>typeof x==="string"&&/^[A-Za-z_$][\w$]*$/.test(x)||Array.isArray(x)&&x.length===2&&typeof x[0]==="string"&&typeof x[1]==="string"))continue;for(let x of j){if(x==="stash")return"stash";if(Array.isArray(x)&&x[1]==="stash")return x[0]}}return null})();if(k!==null)R.stashKeys=E.stashKeysOf(e.sexpr,k),w.tsOnly(()=>{let v=/^(?:export\s+)?(stash)\s*=/m.exec(w.source??""),j=v!==null?S.idOf(e.sexpr):null;if(w.emit(` -export type __RipStash = typeof `),j!==null)w.markSpan(j,"identifier",v.index+v[0].indexOf("stash"),v.index+v[0].indexOf("stash")+5,()=>w.emit(k));else w.emit(k);w.emit(`; -`)})}if(n==="ts"&&R.routesUnion!==null){let k=w.code;if(/\bRoutePath\b/.test(k)&&!/\b(?:type|interface)\s+RoutePath\b/.test(k)&&!/\bimport\b[^;\n]*\bRoutePath\b/.test(k))w.tsOnly(()=>w.emit(` +`;w.tsOnly(()=>{let a1=()=>{let d1=w.offset,I=P.lines.map((l1)=>`${F}${l1}`).join(` +`);K3(R,P,I,e1),G3(R,P,I,d1)};if(e1!==null)w.mark(e1,"$self",a1);else a1();w.emit(Q)})})}}if(R.tsDirectivesArmed=!0,b.length>0){let k=new Set,v=new Set,U=new Set,Z=new Set;for(let{name:P,kind:X}of b){if(X==="state"||X==="computed")k.add(P);else Z.add(P);if(X==="computed")v.add(P);if(X==="readonly")U.add(P)}R.rframes.push({reactive:k,computed:v,bound:Z,ambientReadonly:U}),R.scopes.push(new Set(b.map(({name:P})=>P)))}if(R.program(e.sexpr),b.length>0)R.rframes.pop(),R.scopes.pop();if(s==="ts"&&Array.isArray(e.sexpr)){let k=(()=>{for(let v of e.sexpr){if(!Array.isArray(v)||v[0]!=="export"||!Array.isArray(v[1]))continue;let U=v[1];if(U[0]==="="){if(U[1]==="stash")return"stash";continue}if(!U.every((P)=>typeof P==="string"&&/^[A-Za-z_$][\w$]*$/.test(P)||Array.isArray(P)&&P.length===2&&typeof P[0]==="string"&&typeof P[1]==="string"))continue;for(let P of U){if(P==="stash")return"stash";if(Array.isArray(P)&&P[1]==="stash")return P[0]}}return null})();if(k!==null)R.stashKeys=E.stashKeysOf(e.sexpr,k),w.tsOnly(()=>{let v=/^(?:export\s+)?(stash)\s*=/m.exec(w.source??""),U=v!==null?S.idOf(e.sexpr):null;if(w.emit(` +export type __RipStash = typeof `),U!==null)w.markSpan(U,"identifier",v.index+v[0].indexOf("stash"),v.index+v[0].indexOf("stash")+5,()=>w.emit(k));else w.emit(k);w.emit(`; +`)})}if(s==="ts"&&R.routesUnion!==null){let k=w.code;if(/\bRoutePath\b/.test(k)&&!/\b(?:type|interface)\s+RoutePath\b/.test(k)&&!/\bimport\b[^;\n]*\bRoutePath\b/.test(k))w.tsOnly(()=>w.emit(` type RoutePath = ${R.routesUnion}; `))}if(R._needsAmbienceHelper===!0)w.tsOnly(()=>w.emit(` declare function __ripAmbientStash(v: T): T; `));if(R._needsRouteHelper===!0)w.tsOnly(()=>w.emit(` -declare function __ripRoute(s: ${Xs(R.routesUnion,"T")}): T; -`));if(n==="ts"&&(R.domSurfaces.size>0||R._needsClassValue===!0||R._needsCssProperties===!0||R._needsRefCellHelper===!0||R._needsChildren===!0||R._restTags.size>0)){let k=Fs(R.domSurfaces.values(),{needsClassValue:R._needsClassValue===!0,needsCssProperties:R._needsCssProperties===!0,needsRefCell:R._needsRefCellHelper===!0,needsChildren:R._needsChildren===!0,extra:[...R._restTags].sort().map((v)=>`type ${Ci(v)} = ${sa(v,"face")};`)});if(k!=="")w.tsOnly(()=>w.emit(k))}if(R._needsSourceKeyHelper===!0){let k=`keyof import(${JSON.stringify(R.appStashSpec)}).__RipStash & string`;w.tsOnly(()=>w.emit(` +declare function __ripRoute(s: ${Zn(R.routesUnion,"T")}): T; +`));if(s==="ts"&&(R.domSurfaces.size>0||R._needsClassValue===!0||R._needsCssProperties===!0||R._needsRefCellHelper===!0||R._needsChildren===!0||R._restTags.size>0)){let k=Un(R.domSurfaces.values(),{needsClassValue:R._needsClassValue===!0,needsCssProperties:R._needsCssProperties===!0,needsRefCell:R._needsRefCellHelper===!0,needsChildren:R._needsChildren===!0,extra:[...R._restTags].sort().map((v)=>`type ${Ci(v)} = ${oa(v,"face")};`)});if(k!=="")w.tsOnly(()=>w.emit(k))}if(R._needsSourceKeyHelper===!0){let k=`keyof import(${JSON.stringify(R.appStashSpec)}).__RipStash & string`;w.tsOnly(()=>w.emit(` declare function __ripSourceKey(s: T): T; `))}if(R._needsNarrowHelper===!0)w.tsOnly(()=>w.emit(` declare function __ripNarrow(v: T): asserts v is NonNullable; `));if(R._needsNarrowedHelper===!0)w.tsOnly(()=>w.emit(` declare function __ripNarrowed(c: T): { readonly value: NonNullable; read(): NonNullable }; -`));let H=[];if(n==="ts"&&y(e.sexpr)&&e.sexpr[0]==="program"){let k=/^[A-Za-z_$][A-Za-z0-9_$]*$/;for(let v of e.sexpr.slice(1)){if(!y(v)||v[0]!=="??="||v.length!==3)continue;let j=v[1];if(!y(j)||j[0]!=="."||j[1]!=="globalThis")continue;if(typeof j[2]!=="string"||!k.test(j[2]))continue;let X=new Set(["null","undefined","true","false","this"]),x=v[2];H.push({name:j[2],anchor:typeof x==="string"&&k.test(x)&&!X.has(x)?x:null})}if(H.length)w.tsOnly(()=>{for(let v of H)if(v.anchor!==null)w.emit(` +`));let G=[];if(s==="ts"&&y(e.sexpr)&&e.sexpr[0]==="program"){let k=/^[A-Za-z_$][A-Za-z0-9_$]*$/;for(let v of e.sexpr.slice(1)){if(!y(v)||v[0]!=="??="||v.length!==3)continue;let U=v[1];if(!y(U)||U[0]!=="."||U[1]!=="globalThis")continue;if(typeof U[2]!=="string"||!k.test(U[2]))continue;let Z=new Set(["null","undefined","true","false","this"]),P=v[2];G.push({name:U[2],anchor:typeof P==="string"&&k.test(P)&&!Z.has(P)?P:null})}if(G.length)w.tsOnly(()=>{for(let v of G)if(v.anchor!==null)w.emit(` type __ripGlobal_${v.name} = typeof ${v.anchor};`);w.emit(` -declare global {`);for(let v of H)w.emit(` +declare global {`);for(let v of G)w.emit(` var ${v.name}: ${v.anchor===null?"any":`__ripGlobal_${v.name}`};`);w.emit(` } -`)})}if(n==="ts"&&!Ds(e.sexpr,(k)=>R.isModuleImport(k)))w.tsOnly(()=>w.emit(` +`)})}if(s==="ts"&&!Cn(e.sexpr,(k)=>R.isModuleImport(k)))w.tsOnly(()=>w.emit(` export {}; -`));let G=[];for(let{name:k,node:v,path:j,key:X}of R.pinnables){if(X===null)continue;let x=S.idOf(v);if(x===null)continue;let Z=w.rows.find((r1)=>r1.nodeId===x&&r1.role==="$self"),U=w.rows.find((r1)=>r1.nodeId===x&&r1.role==="value");if(!Z||!U)continue;G.push({name:k,key:X,path:j??"",stmtGen:[Z.generatedStart,Z.generatedEnd],valueGen:[U.generatedStart,U.generatedEnd]})}return{code:w.code,mappings:w.rows,vocabulary:R.vocabulary,silences:R.silences,memberDecls:R.memberDecls,narrowedDecls:R.narrowedDecls,enums:R.enums,importedRefs:R.importedRefs,stores:S,runtimes:O,bindings:D,bindingNames:C,replResultName:R.replResultName,replImportResolver:R.replImportResolver,tsRegions:w.tsRegions,echoSpans:w.echoSpans,globalDecls:H.map((k)=>k.name),pinnables:G,mutables:R.mutables,classDecls:R.classDecls,pinSpans:R.pinSpans,loopVars:R.loopVars,readLoopVarDecls:R.loopVarDecls.filter((k)=>k.owner.readVars.has(k.which)).map((k)=>k.span),attrNames:R.attrNames,routeWraps:R.routeWrapSpans,sourceKeys:R.sourceKeySpans,stashMembers:R.stashMemberSpans,stashKeys:R.stashKeys??null,memberInits:R.memberInitSites,imports:R.importSpans,intrinsics:R.intrinsics,componentUses:R.componentUses,namespaceExports:R.namespaceExports,componentNames:R.componentNames,renderPairs:R.renderPairs,kinds:R.kinds}}var ka="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",g5=new Map([...ka].map((e,t)=>[e,t])),H3=/^[$_\p{ID_Start}][$\u200C\u200D_\p{ID_Continue}]*$/u;function bt(e){let t=e<0?-e<<1|1:e<<1,r="";do{let n=t&31;if(t>>>=5,t>0)n|=32;r+=ka[n]}while(t>0);return r}function Ta({code:e,mappings:t},{source:r,file:n="output.js",sourcePath:i="input.rip"}={}){let s=new ye(r,i),a=new ye(e,n),l=(t instanceof Se?t:new Se(t)).serializableRows(),c=[],h=new Map,f=[],u=0,d=0,p=0;for(let m of l){let g=a.lineColAt(m.generatedStart),b=s.lineColAt(m.sourceStart);while(f.length<=g.line)f.push([]);let S=f[g.line],w=S.length?S[S.length-1].genCol:0,R=bt(g.col-w)+bt(0)+bt(b.line-u)+bt(b.col-d);u=b.line,d=b.col;let T=e.slice(m.generatedStart,m.generatedEnd);if(m.mappingKind==="exact"&&H3.test(T)){let F=h.get(T);if(F===void 0)F=c.length,c.push(T),h.set(T,F);R+=bt(F-p),p=F}S.push({genCol:g.col,seg:R})}return{version:3,file:n,sources:[i],sourcesContent:[r],names:c,mappings:f.map((m)=>m.map((g)=>g.seg).join(",")).join(";")}}var wa=()=>{throw Error("rip: declaration emission is unavailable in the browser")};class He extends Error{constructor(e,{path:t,start:r=null,end:n=null,line:i=null,col:s=null}={}){super(e);this.name="CompileError",this.path=t,this.start=r,this.end=n,this.line=i,this.col=s}}var G3=(e,t)=>{let{line:r,col:n}=e.lineColAt(t),i=e.lineStarts[r],s=r+1c==="\t"?"\t":" ").join("");return` ${o} | ${a} - ${" ".repeat(o.length)} | ${l}^`},Vi=(e,t,r,n,i)=>{let{line:s,col:a}=e.lineColAt(n),o=`${t}:${s+1}:${a+1}: ${r} +`));let Y=[];for(let{name:k,node:v,path:U,key:Z}of R.pinnables){if(Z===null)continue;let P=S.idOf(v);if(P===null)continue;let X=w.rows.find((e1)=>e1.nodeId===P&&e1.role==="$self"),F=w.rows.find((e1)=>e1.nodeId===P&&e1.role==="value");if(!X||!F)continue;Y.push({name:k,key:Z,path:U??"",stmtGen:[X.generatedStart,X.generatedEnd],valueGen:[F.generatedStart,F.generatedEnd]})}return{code:w.code,mappings:w.rows,vocabulary:R.vocabulary,silences:R.silences,memberDecls:R.memberDecls,narrowedDecls:R.narrowedDecls,enums:R.enums,importedRefs:R.importedRefs,stores:S,runtimes:O,bindings:C,bindingNames:x,replResultName:R.replResultName,replImportResolver:R.replImportResolver,tsRegions:w.tsRegions,echoSpans:w.echoSpans,globalDecls:G.map((k)=>k.name),pinnables:Y,mutables:R.mutables,classDecls:R.classDecls,pinSpans:R.pinSpans,loopVars:R.loopVars,readLoopVarDecls:R.loopVarDecls.filter((k)=>k.owner.readVars.has(k.which)).map((k)=>k.span),attrNames:R.attrNames,routeWraps:R.routeWrapSpans,sourceKeys:R.sourceKeySpans,stashMembers:R.stashMemberSpans,stashKeys:R.stashKeys??null,memberInits:R.memberInitSites,imports:R.importSpans,intrinsics:R.intrinsics,componentUses:R.componentUses,namespaceExports:R.namespaceExports,componentNames:R.componentNames,renderPairs:R.renderPairs,kinds:R.kinds}}var wa="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",S5=new Map([...wa].map((e,t)=>[e,t])),Y3=/^[$_\p{ID_Start}][$\u200C\u200D_\p{ID_Continue}]*$/u;function bt(e){let t=e<0?-e<<1|1:e<<1,r="";do{let s=t&31;if(t>>>=5,t>0)s|=32;r+=wa[s]}while(t>0);return r}function _a({code:e,mappings:t},{source:r,file:s="output.js",sourcePath:i="input.rip"}={}){let n=new ye(r,i),a=new ye(e,s),l=(t instanceof Se?t:new Se(t)).serializableRows(),c=[],h=new Map,f=[],u=0,d=0,p=0;for(let m of l){let g=a.lineColAt(m.generatedStart),b=n.lineColAt(m.sourceStart);while(f.length<=g.line)f.push([]);let S=f[g.line],w=S.length?S[S.length-1].genCol:0,R=bt(g.col-w)+bt(0)+bt(b.line-u)+bt(b.col-d);u=b.line,d=b.col;let T=e.slice(m.generatedStart,m.generatedEnd);if(m.mappingKind==="exact"&&Y3.test(T)){let j=h.get(T);if(j===void 0)j=c.length,c.push(T),h.set(T,j);R+=bt(j-p),p=j}S.push({genCol:g.col,seg:R})}return{version:3,file:s,sources:[i],sourcesContent:[r],names:c,mappings:f.map((m)=>m.map((g)=>g.seg).join(",")).join(";")}}var Na=()=>{throw Error("rip: declaration emission is unavailable in the browser")};class He extends Error{constructor(e,{path:t,start:r=null,end:s=null,line:i=null,col:n=null}={}){super(e);this.name="CompileError",this.path=t,this.start=r,this.end=s,this.line=i,this.col=n}}var z3=(e,t)=>{let{line:r,col:s}=e.lineColAt(t),i=e.lineStarts[r],n=r+1c==="\t"?"\t":" ").join("");return` ${o} | ${a} + ${" ".repeat(o.length)} | ${l}^`},Vi=(e,t,r,s,i)=>{let{line:n,col:a}=e.lineColAt(s),o=`${t}:${n+1}:${a+1}: ${r} -${G3(e,n)}`;return new He(o,{path:t,start:n,end:i,line:s+1,col:a+1})},K3=(e,t)=>{let r=e.text,n=r.slice(0,t.start),i=r.slice(t.start),s=n.slice(n.lastIndexOf(` -`)+1);if(t.expected?.[0]===":"||/\?[ \t]*$/.test(n))return"a two-operand '?' is incomplete — a default for null/undefined is spelled x ?? y";if(/^\.\.\.[^\n]*\)\s*[-=]>/.test(i)&&/[(,]\s*[A-Za-z_$][\w$]*\s*$/.test(n))return"a rest parameter is spelled `...name` — the dots lead the name";if(/^for\b/.test(i)&&/^\s*return\b/.test(s))return"`return` takes one expression — parenthesize the comprehension: `return (v for v in list)`";if(/^!/.test(i)&&/\bimport\s*$/.test(n))return"an awaited dynamic import is spelled `import!('mod')` — the call parens are required";if(/^!/.test(i)&&/\)\s*$/.test(n))return"the await bang goes on the callee — `fn!()`, not `fn()!`";if(/^if\b[^\n]*\n[ \t]*then\b/.test(i))return"`then` belongs on the `if` line (`if c then …`) — or indent the body beneath the condition";return null},Y3=(e,t,r)=>{let n=K3(e,r),i=n!==null?`${r.message} - (${n})`:r.message;return Vi(e,t,i,r.start,r.end)};function _a(e,{path:t="",runtimeDelivery:r="inline",face:n="js",pins:i=null,strict:s=!1,script:a=!1,browserModule:o=!1,foldProjections:l=!1,ambientBindings:c=null,repl:h=!1,tolerant:f=!1,hmr:u=!1,appStashSpec:d=null,routesUnion:p=null,routeParams:m=null}={}){if(typeof e!=="string"){let C=e===null?"null":Array.isArray(e)?"an array":`a ${typeof e}`;throw new He(`compile: source must be a string; got ${C}`,{path:t})}let g=new ye(e,t),b=null,S=e;{let C=e.split(` -`),N=C.findIndex((D)=>D==="__DATA__");if(N!==-1){let D=C.slice(N+1);b=D.length>0?D.join(` +${z3(e,s)}`;return new He(o,{path:t,start:s,end:i,line:n+1,col:a+1})},q3=(e,t)=>{let r=e.text,s=r.slice(0,t.start),i=r.slice(t.start),n=s.slice(s.lastIndexOf(` +`)+1);if(t.expected?.[0]===":"||/\?[ \t]*$/.test(s))return"a two-operand '?' is incomplete — a default for null/undefined is spelled x ?? y";if(/^\.\.\.[^\n]*\)\s*[-=]>/.test(i)&&/[(,]\s*[A-Za-z_$][\w$]*\s*$/.test(s))return"a rest parameter is spelled `...name` — the dots lead the name";if(/^for\b/.test(i)&&/^\s*return\b/.test(n))return"`return` takes one expression — parenthesize the comprehension: `return (v for v in list)`";if(/^!/.test(i)&&/\bimport\s*$/.test(s))return"an awaited dynamic import is spelled `import!('mod')` — the call parens are required";if(/^!/.test(i)&&/\)\s*$/.test(s))return"the await bang goes on the callee — `fn!()`, not `fn()!`";if(/^if\b[^\n]*\n[ \t]*then\b/.test(i))return"`then` belongs on the `if` line (`if c then …`) — or indent the body beneath the condition";return null},X3=(e,t,r)=>{let s=q3(e,r),i=s!==null?`${r.message} + (${s})`:r.message;return Vi(e,t,i,r.start,r.end)};function Aa(e,{path:t="",runtimeDelivery:r="inline",face:s="js",pins:i=null,strict:n=!1,script:a=!1,browserModule:o=!1,foldProjections:l=!1,ambientBindings:c=null,repl:h=!1,tolerant:f=!1,hmr:u=!1,appStashSpec:d=null,routesUnion:p=null,routeParams:m=null}={}){if(typeof e!=="string"){let x=e===null?"null":Array.isArray(e)?"an array":`a ${typeof e}`;throw new He(`compile: source must be a string; got ${x}`,{path:t})}let g=new ye(e,t),b=null,S=e;{let x=e.split(` +`),A=x.findIndex((C)=>C==="__DATA__");if(A!==-1){let C=x.slice(A+1);b=C.length>0?C.join(` `)+` -`:"",S=C.slice(0,N).join(` -`)}}let w=nr();w.lexer=As(t,{tolerant:f});let R;try{R=w.parse(S,{primitives:n==="ts",tolerant:f})}catch(C){if(typeof C.start!=="number")throw C;throw Vi(g,t,C.reason??C.message,C.start,C.end)}if(R.diagnostics.length>0&&!(f&&R.sexpr!=null))throw Y3(g,t,R.diagnostics[0]);if(l)Zn(R.sexpr);let T;try{T=Ea(R,{source:e,runtimeDelivery:r,face:n,pins:i,strict:s,script:a,browserModule:o,dataPayload:b,ambientBindings:c,repl:h,hmr:u,tolerant:f,modulePath:t,appStashSpec:d,routesUnion:p,routeParams:m})}catch(C){if(typeof C.start==="number")throw Vi(g,t,C.message,C.start,C.end);if(C instanceof RangeError)throw new He(`${t}: emitter: the program nests too deeply to emit (the engine stack was exhausted) — restructure the deepest expression or block`,{path:t});throw new He(`${t}: ${C.message}`,{path:t})}let F=Ta(T,{source:e,sourcePath:t,file:`${t}.js`}),L=null;return{parseDiagnostics:R.diagnostics,code:T.code,map:F,stores:T.stores,tokens:R.tokens??null,mappings:new Se(T.mappings),vocabulary:T.vocabulary??[],silences:T.silences??[],memberDecls:T.memberDecls??[],narrowedDecls:T.narrowedDecls??[],runtimes:T.runtimes,bindings:T.bindings,bindingNames:T.bindingNames,replResultName:T.replResultName,replImportResolver:T.replImportResolver,tsRegions:T.tsRegions,echoSpans:T.echoSpans??[],globalDecls:T.globalDecls??[],pinnables:T.pinnables,pinSpans:T.pinSpans??[],mutables:T.mutables,enums:T.enums,classDecls:T.classDecls,loopVars:T.loopVars,readLoopVarDecls:T.readLoopVarDecls,attrNames:T.attrNames,routeWraps:T.routeWraps,memberInits:T.memberInits,sourceKeys:T.sourceKeys,stashMembers:T.stashMembers,stashKeys:T.stashKeys,renderPairs:T.renderPairs,kinds:T.kinds,intrinsics:T.intrinsics??[],componentUses:T.componentUses??[],namespaceExports:T.namespaceExports??[],componentNames:T.componentNames??[],importedRefs:T.importedRefs,imports:T.imports,trivia:R.trivia??[],get declarations(){if(L===null)try{L=wa({sexpr:R.sexpr,stores:T.stores,source:e})}catch(C){throw new He(`${t}: ${C.message}`,{path:t})}return L}}}var pr={};Fe(pr,{__defineOwnDataProperty:()=>Z3,__toPropertyKey:()=>J3});var{defineProperty:z3,getOwnPropertyNames:q3,getOwnPropertySymbols:X3}={}.constructor,J3=(e)=>{let t={[e]:0},r=q3(t);return r.length===1?r[0]:X3(t)[0]},Z3=(e,t,r)=>z3(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0});var gr={};Fe(gr,{abort:()=>Na,assert:()=>Aa,exit:()=>va,kind:()=>Oa,noop:()=>Ia,p:()=>$a,pj:()=>xa,pp:()=>Da,pr:()=>Ca,raise:()=>Pa,rand:()=>La,sleep:()=>Ma,toMatchable:()=>Ua,todo:()=>ja,warn:()=>Fa,zip:()=>Ba});var Na=(e)=>{if(e)console.error(e);if(typeof process<"u")process.exit(1);throw Error(e||"abort")},Aa=(e,t)=>{if(!e)throw Error(t||"Assertion failed")},va=(e)=>{if(typeof process<"u")process.exit(e||0);throw Error(`exit(${e||0}) outside a process`)},Oa=(e)=>e!=null?(e.constructor?.name||Object.prototype.toString.call(e).slice(8,-1)).toLowerCase():String(e),Ia=()=>{},$a=(...e)=>console.log(...e),Da=(e)=>(console.dir(e,{depth:null,colors:!0}),e),xa=(e)=>(console.log(JSON.stringify(e,null,2)),e),Ca=(()=>{let e=/^[A-Za-z_$][A-Za-z0-9_$]*$/,t=(s,a)=>s.replace(/\\/g,"\\\\").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(new RegExp(a,"g"),"\\"+a),r=(s)=>!s.includes("'")?"'"+t(s,"'")+"'":!s.includes('"')?'"'+t(s,'"').split("#{").join("\\#{")+'"':"'"+t(s,"'")+"'",n=(s)=>{if(typeof s==="symbol"){let a=Symbol.keyFor(s);return a&&e.test(a)?":"+a:r(String(s))}return e.test(s)?s:r(s)},i=(s,a)=>{if(s===null)return"null";if(s===void 0)return"undefined";let o=typeof s;if(o==="number"||o==="boolean")return String(s);if(o==="string")return r(s);if(o==="symbol"){let l=Symbol.keyFor(s);return l&&e.test(l)?":"+l:null}if(Array.isArray(s)){if(s.length===0)return"[]";let l=" ".repeat(a+1),c=" ".repeat(a),h=s.map((f)=>i(f,a+1));if(h.some((f)=>f===null))return null;return`[ +`:"",S=x.slice(0,A).join(` +`)}}let w=sr();w.lexer=On(t,{tolerant:f});let R;try{R=w.parse(S,{primitives:s==="ts",tolerant:f})}catch(x){if(typeof x.start!=="number")throw x;throw Vi(g,t,x.reason??x.message,x.start,x.end)}if(R.diagnostics.length>0&&!(f&&R.sexpr!=null))throw X3(g,t,R.diagnostics[0]);if(l)Zs(R.sexpr);let T;try{T=Ta(R,{source:e,runtimeDelivery:r,face:s,pins:i,strict:n,script:a,browserModule:o,dataPayload:b,ambientBindings:c,repl:h,hmr:u,tolerant:f,modulePath:t,appStashSpec:d,routesUnion:p,routeParams:m})}catch(x){if(typeof x.start==="number")throw Vi(g,t,x.message,x.start,x.end);if(x instanceof RangeError)throw new He(`${t}: emitter: the program nests too deeply to emit (the engine stack was exhausted) — restructure the deepest expression or block`,{path:t});throw new He(`${t}: ${x.message}`,{path:t})}let j=_a(T,{source:e,sourcePath:t,file:`${t}.js`}),M=null;return{parseDiagnostics:R.diagnostics,code:T.code,map:j,stores:T.stores,tokens:R.tokens??null,mappings:new Se(T.mappings),vocabulary:T.vocabulary??[],silences:T.silences??[],memberDecls:T.memberDecls??[],narrowedDecls:T.narrowedDecls??[],runtimes:T.runtimes,bindings:T.bindings,bindingNames:T.bindingNames,replResultName:T.replResultName,replImportResolver:T.replImportResolver,tsRegions:T.tsRegions,echoSpans:T.echoSpans??[],globalDecls:T.globalDecls??[],pinnables:T.pinnables,pinSpans:T.pinSpans??[],mutables:T.mutables,enums:T.enums,classDecls:T.classDecls,loopVars:T.loopVars,readLoopVarDecls:T.readLoopVarDecls,attrNames:T.attrNames,routeWraps:T.routeWraps,memberInits:T.memberInits,sourceKeys:T.sourceKeys,stashMembers:T.stashMembers,stashKeys:T.stashKeys,renderPairs:T.renderPairs,kinds:T.kinds,intrinsics:T.intrinsics??[],componentUses:T.componentUses??[],namespaceExports:T.namespaceExports??[],componentNames:T.componentNames??[],importedRefs:T.importedRefs,imports:T.imports,trivia:R.trivia??[],get declarations(){if(M===null)try{M=Na({sexpr:R.sexpr,stores:T.stores,source:e})}catch(x){throw new He(`${t}: ${x.message}`,{path:t})}return M}}}var pr={};Fe(pr,{__defineOwnDataProperty:()=>tc,__toPropertyKey:()=>ec});var{defineProperty:J3,getOwnPropertyNames:Z3,getOwnPropertySymbols:Q3}={}.constructor,ec=(e)=>{let t={[e]:0},r=Z3(t);return r.length===1?r[0]:Q3(t)[0]},tc=(e,t,r)=>J3(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0});var gr={};Fe(gr,{abort:()=>va,assert:()=>Oa,exit:()=>Ia,kind:()=>$a,noop:()=>Da,p:()=>xa,pj:()=>Pa,pp:()=>Ca,pr:()=>La,raise:()=>Ma,rand:()=>ja,sleep:()=>Fa,toMatchable:()=>Wa,todo:()=>Ba,warn:()=>Ua,zip:()=>Va});var va=(e)=>{if(e)console.error(e);if(typeof process<"u")process.exit(1);throw Error(e||"abort")},Oa=(e,t)=>{if(!e)throw Error(t||"Assertion failed")},Ia=(e)=>{if(typeof process<"u")process.exit(e||0);throw Error(`exit(${e||0}) outside a process`)},$a=(e)=>e!=null?(e.constructor?.name||Object.prototype.toString.call(e).slice(8,-1)).toLowerCase():String(e),Da=()=>{},xa=(...e)=>console.log(...e),Ca=(e)=>(console.dir(e,{depth:null,colors:!0}),e),Pa=(e)=>(console.log(JSON.stringify(e,null,2)),e),La=(()=>{let e=/^[A-Za-z_$][A-Za-z0-9_$]*$/,t=(n,a)=>n.replace(/\\/g,"\\\\").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(new RegExp(a,"g"),"\\"+a),r=(n)=>!n.includes("'")?"'"+t(n,"'")+"'":!n.includes('"')?'"'+t(n,'"').split("#{").join("\\#{")+'"':"'"+t(n,"'")+"'",s=(n)=>{if(typeof n==="symbol"){let a=Symbol.keyFor(n);return a&&e.test(a)?":"+a:r(String(n))}return e.test(n)?n:r(n)},i=(n,a)=>{if(n===null)return"null";if(n===void 0)return"undefined";let o=typeof n;if(o==="number"||o==="boolean")return String(n);if(o==="string")return r(n);if(o==="symbol"){let l=Symbol.keyFor(n);return l&&e.test(l)?":"+l:null}if(Array.isArray(n)){if(n.length===0)return"[]";let l=" ".repeat(a+1),c=" ".repeat(a),h=n.map((f)=>i(f,a+1));if(h.some((f)=>f===null))return null;return`[ `+l+h.join(` `+l)+` -`+c+"]"}if(o==="object"){let l=Object.getPrototypeOf(s);if(l!==Object.prototype&&l!==null)return null;let c=Object.keys(s);if(c.length===0)return"{}";let h=" ".repeat(a+1),f=" ".repeat(a),u=c.map((d)=>{let p=i(s[d],a+1);return p===null?null:n(d)+": "+p});if(u.some((d)=>d===null))return null;return`{ +`+c+"]"}if(o==="object"){let l=Object.getPrototypeOf(n);if(l!==Object.prototype&&l!==null)return null;let c=Object.keys(n);if(c.length===0)return"{}";let h=" ".repeat(a+1),f=" ".repeat(a),u=c.map((d)=>{let p=i(n[d],a+1);return p===null?null:s(d)+": "+p});if(u.some((d)=>d===null))return null;return`{ `+h+u.join(` `+h)+` -`+f+"}"}return null};return(s)=>{let a=i(s,0);if(a!==null)console.log(a);else console.dir(s,{depth:null,colors:!0});return s}})(),Pa=(e,t)=>{throw t!==void 0?new e(t):Error(e)},La=(e,t)=>t!==void 0?(e>t&&([e,t]=[t,e]),Math.floor(Math.random()*(t-e+1)+e)):e?Math.floor(Math.random()*e):Math.random(),Ma=(e)=>new Promise((t)=>setTimeout(t,e)),ja=(e)=>{throw Error(e||"Not implemented")},Fa=(...e)=>console.warn(...e),Ba=(...e)=>e[0].map((t,r)=>e.map((n)=>n[r])),Ua=(e)=>{if(typeof e==="string")return e;if(e==null)return"";if(typeof e==="number"||typeof e==="bigint"||typeof e==="boolean")return String(e);if(typeof e==="symbol")return e.description||"";if(e instanceof Uint8Array||e instanceof ArrayBuffer)return new TextDecoder().decode(e instanceof Uint8Array?e:new Uint8Array(e));if(Array.isArray(e))return e.join(",");if(typeof e.toString==="function"&&e.toString!==Object.prototype.toString)try{return e.toString()}catch{return""}return""};var Er={};Fe(Er,{SchemaDef:()=>Et,SchemaError:()=>I1,SchemaRegistry:()=>ie,__schema:()=>nc,installPersistence:()=>Q3,registerCoercer:()=>tc});var Ka=Symbol.for("rip.runtime.schema");if(globalThis[Ka])throw Error("two copies of the Rip schema runtime loaded in one process — schemas from different copies "+"cannot see each other (separate registries, distinct SchemaError classes). Run .rip sources through the rip CLI/loader (one shared runtime module per process), or load only one standalone-compiled file per process.");globalThis[Ka]=!0;var Te=null;function Q3(e){if(Te&&Te!==e)throw Error("the Rip schema persistence runtime is already installed — two different copies met in one process");Te=e}class I1 extends Error{constructor(e,t,r){super(ec(e,t));this.name="SchemaError",this.issues=e,this.schemaName=t||null,this.schemaKind=r||null}}function ec(e,t){if(!e||!e.length)return"SchemaError";return(t?t+": ":"")+e.map((n)=>n.message||n.error||"invalid").join("; ")}var Ya={__proto__:null,string:(e)=>typeof e==="string",number:(e)=>typeof e==="number"&&!Number.isNaN(e),integer:(e)=>Number.isInteger(e),boolean:(e)=>typeof e==="boolean",date:(e)=>e instanceof Date&&!Number.isNaN(e.getTime()),datetime:(e)=>e instanceof Date&&!Number.isNaN(e.getTime()),email:(e)=>typeof e==="string"&&/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e),url:(e)=>typeof e==="string"&&/^https?:\/\/.+/.test(e),uuid:(e)=>typeof e==="string"&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e),phone:(e)=>typeof e==="string"&&/^[\d\s\-+()]+$/.test(e),zip:(e)=>typeof e==="string"&&/^\d{5}(-\d{4})?$/.test(e),text:(e)=>typeof e==="string",json:(e)=>e!==void 0,variant:(e)=>e!==void 0,any:()=>!0},Rr={integer(e){if(typeof e==="number")return Number.isInteger(e)?{ok:!0,value:e}:{ok:!1};if(typeof e==="string"&&/^[+-]?\d+$/.test(e.trim()))return{ok:!0,value:parseInt(e.trim(),10)};return{ok:!1}},number(e){if(typeof e==="number")return Number.isNaN(e)?{ok:!1}:{ok:!0,value:e};if(typeof e==="string"&&/^[+-]?(\d+\.?\d*|\.\d+)([eE][+-]?\d+)?$/.test(e.trim()))return{ok:!0,value:Number(e.trim())};return{ok:!1}},boolean(e){if(typeof e==="boolean")return{ok:!0,value:e};if(e==="true"||e==="1"||e===1)return{ok:!0,value:!0};if(e==="false"||e==="0"||e===0)return{ok:!0,value:!1};return{ok:!1}},date(e){if(e instanceof Date)return Number.isNaN(e.getTime())?{ok:!1}:{ok:!0,value:e};if(typeof e==="number"&&Number.isFinite(e))return{ok:!0,value:new Date(e)};let t=typeof e==="string"?/^(\d{4})-(\d{2})-(\d{2})/.exec(e):null;if(t){let r=+t[2],n=+t[3],i=new Date(Date.UTC(+t[1],r,0)).getUTCDate();if(r<1||r>12||n<1||n>i)return{ok:!1};let s=new Date(e);if(!Number.isNaN(s.getTime()))return{ok:!0,value:s}}return{ok:!1}}};Rr.datetime=Rr.date;function br(e){if(e!==null&&typeof e==="object"&&!Array.isArray(e))return null;return{field:"",error:"object",message:"input must be an object; got "+(e===null?"null":Array.isArray(e)?"an array":"a "+typeof e)}}var Hi=new Map;function tc(e,t,r){if(typeof e!=="string"||typeof t!=="function")throw Error("registerCoercer(name, fn, opts?): name string and fn required");let n=Object.prototype.toString.call(t);if(n==="[object AsyncFunction]"||n==="[object GeneratorFunction]"||n==="[object AsyncGeneratorFunction]")throw Error("registerCoercer: coercer '~:"+e+"' must be a plain synchronous function");let i=r?.raw===!0,s=Hi.get(e);if(s){if(s.raw===i&&String(s.fn)===String(t))return t;throw Error("registerCoercer: coercer '~:"+e+"' is already registered")}return Hi.set(e,{fn:t,raw:i}),t}function St(e){if(Ya[e])return null;let t=ie.get(e);return t&&(t.kind==="shape"||t.kind==="input"||t.kind==="model"||t.kind==="union")?t:null}function Gi(e,t,r){let n=Ya[t];if(n)return n(e)?{value:e}:{errors:[{field:"",error:"type",message:"must be "+t}]};let i=ie.get(t);if(!i)return{value:e};if(i.kind==="enum"){let a=i._validateEnum(e,!0);return a.length?{errors:[{field:"",error:"enum",message:a[0].message}]}:{value:i._materializeEnum(e)}}if(i.kind==="mixin")return{errors:[{field:"",error:"type",message:":mixin "+t+" is not usable as a field type"}]};if(i.kind==="union"){let a=i._unionResolve(e);if(a.issue)return{errors:[a.issue]};let o=r?.existing?a.def._runExistingSync(e,{...r,materialize:!1,materializeNested:!1}):a.def._runSync(e,{...r,materialize:!1,materializeNested:!1});if(o.thrown){if(r?.derived==="throw")throw o.thrown;return{errors:[{field:"",error:"derived",message:o.thrown?.message||String(o.thrown)}]}}return o.ok?{value:o.value}:{errors:o.errors}}if(e===null||typeof e!=="object"||Array.isArray(e))return{errors:[{field:"",error:"type",message:"must be a "+t+" object"}]};let s=r?.existing?i._runExistingSync(e,{...r,materialize:!1,materializeNested:!1}):i._runSync(e,{...r,materialize:!1,materializeNested:!1});if(s.thrown){if(r?.derived==="throw")throw s.thrown;return{errors:[{field:"",error:"derived",message:s.thrown?.message||String(s.thrown)}]}}return s.ok?{value:s.value}:{errors:s.errors}}async function Va(e,t,r){let n=St(t);if(n===null)return Gi(e,t,r);if(n.kind==="union"){let s=n._unionResolve(e);if(s.issue)return{errors:[s.issue]};let a=r?.existing?await s.def._runExistingAsync(e,{...r,materialize:!1,materializeNested:!1}):await s.def._runAsync(e,{...r,materialize:!1,materializeNested:!1});if(a.thrown){if(r?.derived==="throw")throw a.thrown;return{errors:[{field:"",error:"derived",message:a.thrown?.message||String(a.thrown)}]}}return a.ok?{value:a.value}:{errors:a.errors}}if(e===null||typeof e!=="object"||Array.isArray(e))return{errors:[{field:"",error:"type",message:"must be a "+t+" object"}]};let i=r?.existing?await n._runExistingAsync(e,{...r,materialize:!1,materializeNested:!1}):await n._runAsync(e,{...r,materialize:!1,materializeNested:!1});if(i.thrown){if(r?.derived==="throw")throw i.thrown;return{errors:[{field:"",error:"derived",message:i.thrown?.message||String(i.thrown)}]}}return i.ok?{value:i.value}:{errors:i.errors}}function Rt(e,t){if(!t)return e;return e+(t.startsWith("[")?t:"."+t)}function yr(e,t,r){if(!t)return e+" "+r;if(r.startsWith(t))return e+r.slice(t.length);return e+": "+r}var Sr=Symbol("schema.materialization-error");function Wa(e,t){if(e&&e[Sr])return{[Sr]:!0,error:e.error,field:Rt(t,e.field)};return{[Sr]:!0,error:e,field:t}}function Ge(e){return e&&e[Sr]?{thrown:e.error,derivedField:e.field}:{thrown:e,derivedField:""}}var rc=tt;function Ha(e){let t=(n)=>JSON.stringify(n??null,(i,s)=>s instanceof RegExp?String(s):typeof s==="function"?"":s),r=[e.kind];for(let n of e._desc.entries||[])switch(n.tag){case"field":r.push("f:"+n.name+":"+(n.typeName||"")+(n.array?"[]":"")+":"+(n.modifiers||[]).join("")+(n.literals?":"+n.literals.join(","):"")+":"+t(n.constraints)+(n.coerce?":~"+(n.coercer||""):"")+(n.transform?":t":""));break;case"enum-member":r.push("e:"+n.name+"="+String(n.value));break;case"directive":r.push("d:"+n.name+":"+t(n.args));break;case"ensure":r.push("n:"+(n.message||""));break;default:r.push(n.tag+":"+(n.name||""))}return r.join("|")}var ke=0,ie={_entries:new Map,replace:!1,register(e){if(!e.name)return;ke++;let t=this._entries.get(e.name);if(t&&t.def!==e&&!this.replace){if(Ha(t.def)!==Ha(e))throw new I1([{field:e.name,error:"collision",message:"schema name '"+e.name+"' is already registered with a different definition. Schema names are app-global (they resolve nested field types and @mixin references), so two "+"different schemas cannot share one name. Rename one — or, for dev/HMR reload semantics, set "+"SchemaRegistry.replace = true before re-evaluating modules."}],e.name,e.kind)}this._entries.set(e.name,{def:e,kind:e.kind})},get(e){let t=this._entries.get(e);return t?t.def:null},getKind(e,t){let r=this._entries.get(e);return r&&r.kind===t?r.def:null},has(e){return this._entries.has(e)},names(){return[...this._entries.keys()]},reset(){this._entries.clear(),ke++},scope(e){let t=this._entries;this._entries=new Map,ke++;let r=()=>{this._entries=t,ke++};try{let n=e();if(n&&typeof n.then==="function")return n.finally(r);return r(),n}catch(n){throw r(),n}}};class Et{constructor(e){if(e.kind==="model"&&!Te)throw Error("schema: kind 'model' needs the persistence runtime (src/runtime/orm.js), which is not "+"loaded in this process — reference a persistence name (schema.transaction, __schemaSetAdapter) "+"or import the module directly");if(this._desc=e,this.kind=e.kind,this.name=e.name||null,this._norm=null,this._klass=null,this._unionPlanCache=null,this._sourceModel=null,e.kind==="model")Te.decorateDef(this,e)}_normalize(){if(this._norm)return this._norm;let e=new Map,t=new Map,r=new Map,n=new Map,i=new Map,s=new Map,a=null,o=[],l=new Map,c=[],h=(S,w)=>{throw new I1([{field:S,error:"collision",message:S+" collides with "+w}],this.name,this.kind)},f=(S)=>{if(e.has(S))h(S,"field");if(t.has(S))h(S,"method");if(r.has(S))h(S,"computed");if(n.has(S))h(S,"derived");if(i.has(S))h(S,"hook")},u=(S)=>{throw new I1([{field:"",error:"kind",message:S+" is :model-only (this schema is :"+this.kind+")"}],this.name,this.kind)},d=this.kind==="union"?new Set(["on"]):new Set(["mixin"]),p=(S,w)=>{if(!rc(S))throw new I1([{field:S,error:"invalid-name",message:w+" name '"+S+"' is not canonical camelCase. Use a lowercase-first, alphanumeric identifier with no consecutive uppercase letters (e.g. 'mdmId' not 'mdmID')."}],this.name,this.kind)};for(let S of this._desc.entries)switch(S.tag){case"field":p(S.name,"field"),f(S.name),e.set(S.name,{name:S.name,required:S.modifiers.includes("!"),optional:S.modifiers.includes("?"),unique:S.unique===!0,primary:S.primary===!0,attrs:S.attrs||null,typeName:S.typeName,literals:S.literals||null,array:S.array===!0,coerce:S.coerce===!0,coercer:S.coercer||null,constraints:S.constraints||null,transform:S.transform||null});break;case"method":f(S.name),t.set(S.name,S.fn);break;case"computed":f(S.name),r.set(S.name,S.fn);break;case"derived":f(S.name),n.set(S.name,S.fn);break;case"hook":if(this.kind!=="model")u("lifecycle hook '"+S.name+"'");if(i.has(S.name))h(S.name,"duplicate hook");i.set(S.name,S.fn);break;case"scope":if(this.kind!=="model")u("query scope '@scope :"+S.name+"'");if(s.has(S.name))h(S.name,"scope");s.set(S.name,S.fn);break;case"defaultScope":if(this.kind!=="model")u("@defaultScope");if(a)throw new I1([{field:"",error:"collision",message:"only one @defaultScope per model"}],this.name,this.kind);a=S.fn;break;case"directive":if(this.kind!=="model"&&!d.has(S.name))throw new I1([{field:"",error:"directive",message:"unknown directive '@"+S.name+"' on :"+this.kind+" — legal here: "+[...d].map((w)=>"@"+w).join(", ")}],this.name,this.kind);o.push({name:S.name,args:S.args||[]});break;case"enum-member":l.set(S.name,S.value!==void 0?S.value:S.name);break;case"union-member":break;case"ensure":c.push({message:S.message,field:S.field||"",async:S.async===!0,fn:S.fn});break;default:throw new I1([{field:"",error:"entry",message:"unknown schema entry tag '"+S.tag+"'"}],this.name,this.kind)}if(this.kind==="shape"||this.kind==="input"||this.kind==="mixin"||this.kind==="model")Xa(this,e,o,{stack:[this.name||""],seen:new Set([this.name||""])});let m=null,g=[];if(this.kind==="union"){for(let S of o)if(S.name==="on"&&S.args?.[0]?.field)m=S.args[0].field;for(let S of this._desc.entries)if(S.tag==="union-member")g.push(S.name)}let b={fields:e,methods:t,computed:r,derived:n,hooks:i,scopes:s,defaultScope:a,directives:o,enumMembers:l,ensures:c,hasAsyncEnsures:c.some((S)=>S.async),unionOn:m,unionMembers:g};if(this.kind==="model")Te.finishModelNorm(this,b);return this._norm=b,this._norm}_unionPlan(){if(this._unionPlanCache&&this._unionPlanCache.gen===ke)return this._unionPlanCache.plan;let e=this._normalize(),t=e.unionOn;if(this.kind!=="union"||!t)throw Error("schema: '"+(this.name||"anon")+"' is not a :union");let r=new Map,n=[];for(let s of e.unionMembers){let a=ie.get(s);if(!a)throw new I1([{field:"",error:"union",message:"unknown union constituent: "+s+" (import the file that declares it)"}],this.name,this.kind);n.push(a);let o=a._normalize().fields.get(t);if(!o||o.typeName!=="literal-union"||!o.literals?.length)throw new I1([{field:t,error:"union",message:s+" must declare '"+t+"' as a string-literal type (e.g. "+t+'! "click") to join union '+(this.name||"")}],this.name,this.kind);for(let l of o.literals){if(r.has(l))throw new I1([{field:t,error:"union",message:"duplicate discriminator value "+JSON.stringify(l)+" in "+(r.get(l).name||"anon")+" and "+s}],this.name,this.kind);r.set(l,a)}}let i={disc:t,map:r,expected:[...r.keys()].join(" | "),hasAsyncEnsures:n.some((s)=>s._normalize().hasAsyncEnsures)};return this._unionPlanCache={gen:ke,plan:i},i}_unionResolve(e){let t=this._unionPlan();if(e===null||typeof e!=="object"||Array.isArray(e))return{issue:{field:t.disc,error:"union",message:"expected an object with "+t.disc}};let r=t.map.get(e[t.disc]);if(!r)return{issue:{field:t.disc,error:"union",message:"expected one of "+t.expected}};return{def:r}}_applyEagerDerived(e){let t=this._normalize();if(!t.derived.size)return;for(let[r,n]of t.derived){let i=n.call(e);Object.defineProperty(e,r,{value:i,enumerable:!0,writable:!0,configurable:!0})}}_materializeValidatedValue(e,t,r){return this._materializeNestedValues(e,t,r),this._materializeOwnValidatedValue(e,t,r)}_materializeNestedValues(e,t,r){let n=this._normalize();for(let[i,s]of n.fields){let a=St(s.typeName);if(!a)continue;let o=e[i];if(o===void 0||o===null)continue;let l=t==null?void 0:t[i];if(s.array){if(!Array.isArray(o))continue;let c=Array(o.length);for(let h=0;h{let a=()=>({field:i.field||"",error:"ensure",message:i.message||"ensure failed"});if(i.async)n.push((async()=>{let o=!1;try{o=!!await i.fn(e)}catch{o=!1}if(!o)r.push({idx:s,issue:a()})})());else{let o=!1;try{o=!!i.fn(e)}catch{o=!1}if(!o)r.push({idx:s,issue:a()})}}),await Promise.all(n),r.sort((i,s)=>i.idx-s.idx),r.map((i)=>i.issue)}_transitiveAsync(){if(this._taGen===ke)return this._taCache;let e=new Set,t=(r)=>{if(e.has(r))return!1;e.add(r);let n=r._normalize();if(n.hasAsyncEnsures)return!0;if(r.kind==="union"){for(let i of n.unionMembers){let s=ie.get(i);if(s&&t(s))return!0}return!1}for(let i of n.fields.values()){let s=St(i.typeName);if(s&&t(s))return!0}return!1};return this._taCache=t(this),this._taGen=ke,this._taCache}_assertSyncValidatable(e){if(!this._transitiveAsync())return;let t=this.kind!=="union"&&this._normalize().hasAsyncEnsures;throw Error("schema '"+(this.name||"anon")+"' has async refinements (@ensure!"+(t?"":" in a nested or constituent schema")+"); ."+e+"() is sync. Use parseAsync/safeAsync/okAsync instead.")}_getClass(){if(this._klass)return this._klass;let e=this._normalize(),t=this.name||"Schema",r=[...e.fields.keys()],n={[t]:class{constructor(i){if(i&&typeof i==="object"){for(let s of r)if(s in i&&i[s]!==void 0)this[s]=i[s]}}}}[t];for(let[i,s]of e.methods)Object.defineProperty(n.prototype,i,{value:s,writable:!0,enumerable:!1,configurable:!0});for(let[i,s]of e.computed)Object.defineProperty(n.prototype,i,{get:s,enumerable:!1,configurable:!0});return this._klass=n,n}_coerceDates(e){let t=this._normalize(),r=(s)=>typeof s==="string"&&/^\d{4}-\d{2}-\d{2}([T ].*)?$/.test(s),n=(s)=>{let a=/^(\d{4})-(\d{2})-(\d{2})/.exec(s),o=+a[2],l=+a[3];return o>=1&&o<=12&&l>=1&&l<=new Date(Date.UTC(+a[1],o,0)).getUTCDate()},i=(s)=>{if(!n(s))return s;let a=new Date(s);return Number.isNaN(a.getTime())?s:a};for(let[s,a]of t.fields){if(a.typeName!=="date"&&a.typeName!=="datetime")continue;let o=e[s];if(a.array&&Array.isArray(o))e[s]=o.map((l)=>r(l)?i(l):l);else if(r(o))e[s]=i(o)}}_validateFields(e,t,r,n){let i=this._normalize(),s=t?[]:null;for(let[a,o]of i.fields){if(r&&r.has(a))continue;let l=e==null?void 0:e[a];if(l===void 0||l===null){if(o.required){if(!t)return!1;s.push({field:a,error:"required",message:a+" is required"})}continue}if(o.array){if(!Array.isArray(l)){if(!t)return!1;s.push({field:a,error:"type",message:a+" must be an array"});continue}let h=o.constraints;if(h){if(h.min!=null&&l.lengthh.max){if(!t)return!1;s.push({field:a,error:"max",message:a+" must have at most "+h.max+" items"})}}if(n?.deferNested&&St(o.typeName))continue;let f=!1,u=!1,d=Array(l.length);for(let p=0;pJSON.stringify(h)).join(", ")});continue}}else{if(n?.deferNested&&St(o.typeName))continue;let h=Gi(l,o.typeName,n);if(h.errors){if(!t)return!1;for(let f of h.errors){let u=Rt(a,f.field);s.push({field:u,error:f.error,message:yr(u,f.field,f.message)})}continue}if(h.value!==l)e[a]=h.value}let c=o.constraints;if(c){if(typeof l==="string"){if(c.min!=null&&l.lengthc.max){if(!t)return!1;s.push({field:a,error:"max",message:a+" must be at most "+c.max+" chars"})}if(c.regex){if(c.regex.global||c.regex.sticky)c.regex.lastIndex=0;if(!c.regex.test(l)){if(!t)return!1;s.push({field:a,error:"pattern",message:a+" is invalid"})}}}else if(typeof l==="number"){if(c.min!=null&&l= "+c.min})}if(c.max!=null&&l>c.max){if(!t)return!1;s.push({field:a,error:"max",message:a+" must be <= "+c.max})}}}}return t?s:!0}_applyDefaults(e){let t=this._normalize();for(let[r,n]of t.fields)if((e[r]===void 0||e[r]===null)&&n.constraints?.default!==void 0){let i=n.constraints.default;e[r]=typeof i==="object"&&i!==null&&!(i instanceof RegExp)?structuredClone(i):i}return e}_applyTransforms(e,t){let r=this._normalize(),n=[];for(let[i,s]of r.fields){if(!s.transform)continue;try{t[i]=s.transform(e)}catch(a){n.push({field:i,error:"transform",message:a?.message||String(a)})}}return n}_applyCoercions(e,t){let r=this._normalize(),n=[];for(let[i,s]of r.fields){if(!s.coerce)continue;let a=e[i];if(a===void 0||a===null)continue;if(s.coercer){let l=Hi.get(s.coercer);if(!l)throw Error("schema: no coercer registered for '~:"+s.coercer+"' (field '"+i+"' on "+(this.name||"anon")+"). Register it with registerCoercer('"+s.coercer+"', fn).");let c=l.raw?a:String(a).trim(),h;try{h=l.fn(c)}catch{h=null}if(h===null||h===void 0)n.push({field:i,error:"coerce",message:i+" is not a valid "+s.coercer}),t.add(i);else e[i]=h;continue}let o=Rr[s.typeName]?Rr[s.typeName](a):{ok:!1};if(o.ok)e[i]=o.value;else n.push({field:i,error:"coerce",message:i+" cannot be coerced to "+s.typeName}),t.add(i)}return n}_orderFieldErrors(...e){let t=new Map,r=0;for(let[n]of this._normalize().fields)t.set(n,r++);return e.flat().map((n,i)=>{let s=String(n.field||"").split(/[.[]/,1)[0];return{issue:n,seq:i,rank:t.has(s)?t.get(s):r}}).sort((n,i)=>n.rank-i.rank||n.seq-i.seq).map((n)=>n.issue)}_validateEnum(e,t){let r=this._normalize();for(let[i,s]of r.enumMembers)if(e===i||e===s)return t?[]:!0;if(!t)return!1;let n=[...r.enumMembers.keys()].join(", ");return[{field:"",error:"enum",message:(this.name||"enum")+" expected one of: "+n}]}_materializeEnum(e){let t=this._normalize();for(let[r,n]of t.enumMembers)if(e===r||e===n)return n;return e}_runSync(e,t){if(this.kind==="union"){let h=this._unionResolve(e);if(h.issue)return{ok:!1,errors:[h.issue]};let f=h.def._runSync(e,t);return f.ok?f:{...f,from:f.from||h.def}}if(this.kind==="enum"){let h=this._validateEnum(e,!0);return h.length?{ok:!1,errors:h}:{ok:!0,value:this._materializeEnum(e)}}let r=br(e);if(r)return{ok:!1,errors:[r]};let n=e,i={...n},s=new Set,a=this._applyTransforms(n,i),o=this._applyCoercions(i,s);this._applyDefaults(i),this._coerceDates(i);let l=this._orderFieldErrors(a,o,this._validateFields(i,!0,s,t));if(l.length)return{ok:!1,errors:l};let c=t?.skipEnsures?[]:this._applyEnsures(i);if(c.length)return{ok:!1,errors:c};if(t?.materializeNested)try{this._materializeNestedValues(i,null,!1)}catch(h){return{ok:!1,errors:null,...Ge(h)}}if(!t?.materialize)return{ok:!0,value:i};try{return{ok:!0,value:this._materializeOwnValidatedValue(i,null,!1)}}catch(h){return{ok:!1,errors:null,...Ge(h)}}}async _runAsync(e,t){if(this.kind==="union"){let f=this._unionResolve(e);if(f.issue)return{ok:!1,errors:[f.issue]};let u=await f.def._runAsync(e,t);return u.ok?u:{...u,from:u.from||f.def}}if(this.kind==="enum")return this._runSync(e,t);let r=br(e);if(r)return{ok:!1,errors:[r]};let n=e,i={...n},s=new Set,a=this._applyTransforms(n,i),o=this._applyCoercions(i,s);this._applyDefaults(i),this._coerceDates(i);let l=await this._validateFieldsAsync(i,s,t),c=this._orderFieldErrors(a,o,l);if(c.length)return{ok:!1,errors:c};let h=t?.skipEnsures?[]:await this._applyEnsuresAsync(i);if(h.length)return{ok:!1,errors:h};if(t?.materializeNested)try{this._materializeNestedValues(i,null,!1)}catch(f){return{ok:!1,errors:null,...Ge(f)}}if(!t?.materialize)return{ok:!0,value:i};try{return{ok:!0,value:this._materializeOwnValidatedValue(i,null,!1)}}catch(f){return{ok:!1,errors:null,...Ge(f)}}}async _validateFieldsAsync(e,t,r){let n=this._normalize(),i=[];for(let[s,a]of n.fields){if(t&&t.has(s))continue;let o=e[s];if(o===void 0||o===null){if(a.required)i.push({field:s,error:"required",message:s+" is required"});continue}if(a.array){if(!Array.isArray(o)){i.push({field:s,error:"type",message:s+" must be an array"});continue}let h=a.constraints;if(h?.min!=null&&o.lengthh.max)i.push({field:s,error:"max",message:s+" must have at most "+h.max+" items"});let f=Array(o.length),u=!1;for(let d=0;dJSON.stringify(h)).join(", ")})}else{let h=await Va(o,a.typeName,r);if(h.errors)for(let f of h.errors){let u=Rt(s,f.field);i.push({field:u,error:f.error,message:yr(u,f.field,f.message)})}else e[s]=h.value}let l=e[s],c=a.constraints;if(c){if(typeof l==="string"){if(c.min!=null&&l.lengthc.max)i.push({field:s,error:"max",message:s+" must be at most "+c.max+" chars"});if(c.regex){if(c.regex.global||c.regex.sticky)c.regex.lastIndex=0;if(!c.regex.test(l))i.push({field:s,error:"pattern",message:s+" is invalid"})}}else if(typeof l==="number"){if(c.min!=null&&l= "+c.min});if(c.max!=null&&l>c.max)i.push({field:s,error:"max",message:s+" must be <= "+c.max})}}}return i}_runExistingSync(e,t){if(this.kind==="union"){let a=this._unionResolve(e);if(a.issue)return{ok:!1,errors:[a.issue]};let o=a.def._runExistingSync(e,t);return o.ok?o:{...o,from:o.from||a.def}}if(this.kind==="enum")return this._runSync(e,t);let r=br(e);if(r)return{ok:!1,errors:[r]};let n={...e},i=this._validateFields(n,!0,null,{...t,existing:!0});if(i.length)return{ok:!1,errors:i};let s=t?.skipEnsures?[]:this._applyEnsures(n);if(s.length)return{ok:!1,errors:s};if(t?.materializeNested)try{this._materializeNestedValues(n,e,!0)}catch(a){return{ok:!1,errors:null,...Ge(a)}}return this._finishExistingValue(e,n,t)}async _runExistingAsync(e,t){if(this.kind==="union"){let a=this._unionResolve(e);if(a.issue)return{ok:!1,errors:[a.issue]};let o=await a.def._runExistingAsync(e,t);return o.ok?o:{...o,from:o.from||a.def}}if(this.kind==="enum")return this._runSync(e,t);let r=br(e);if(r)return{ok:!1,errors:[r]};let n={...e},i=await this._validateFieldsAsync(n,null,{...t,existing:!0});if(i.length)return{ok:!1,errors:i};let s=t?.skipEnsures?[]:await this._applyEnsuresAsync(n);if(s.length)return{ok:!1,errors:s};if(t?.materializeNested)try{this._materializeNestedValues(n,e,!0)}catch(a){return{ok:!1,errors:null,...Ge(a)}}return this._finishExistingValue(e,n,t)}_finishExistingValue(e,t,r){if(!r?.materialize)return{ok:!0,value:t};let n=this._getClass(),i=!0;for(let[a]of this._normalize().fields)if(t[a]!==e[a]){i=!1;break}if(i)return{ok:!0,value:e};let s=new n(t);try{this._applyEagerDerived(s)}catch(a){return{ok:!1,errors:null,thrown:a}}return{ok:!0,value:s}}parse(e){if(this.kind==="mixin")throw Error(":mixin schema '"+(this.name||"anon")+"' is not instantiable");this._assertSyncValidatable("parse");let t=this._runSync(e,{materialize:!0,materializeNested:!0,derived:"throw"});if(t.ok)return t.value;if(t.thrown)throw t.thrown;let r=t.from||this;throw new I1(t.errors,r.name,r.kind)}get array(){let e=this,t=(s)=>({field:"",error:"not_array",message:"expected an array, received "+(s===null?"null":s===void 0?"undefined":typeof s==="object"?"an object with keys ["+Object.keys(s).join(", ")+"]":typeof s)}),r=(s)=>{let a=[],o=[];return s.forEach((l,c)=>{if(l.ok)a.push(l.value);else for(let h of l.errors)o.push({...h,field:"["+c+"]"+(h.field?"."+h.field:"")})}),{value:a,errors:o}},n=(s)=>{let a=[],o=[];return s.forEach((l,c)=>{try{a.push(e.parse(l))}catch(h){if(!(h instanceof I1))throw h;for(let f of h.issues)o.push({...f,field:"["+c+"]"+(f.field?"."+f.field:"")})}}),{value:a,errors:o}},i=async(s)=>{let a=[],o=[];for(let l=0;le.safe(l)));return o.length?{ok:!1,value:null,errors:o}:{ok:!0,value:a,errors:null}},ok(s){return Array.isArray(s)&&s.every((a)=>e.ok(a))},async parseAsync(s){if(!Array.isArray(s))throw new I1([t(s)],e.name,e.kind);let{value:a,errors:o}=await i(s);if(o.length)throw new I1(o,e.name,e.kind);return a},async safeAsync(s){if(!Array.isArray(s))return{ok:!1,value:null,errors:[t(s)]};let{value:a,errors:o}=r(await Promise.all(s.map((l)=>e.safeAsync(l))));return o.length?{ok:!1,value:null,errors:o}:{ok:!0,value:a,errors:null}},async okAsync(s){return Array.isArray(s)&&(await Promise.all(s.map((a)=>e.okAsync(a)))).every(Boolean)},toJSONSchema(){return{type:"array",items:e.toJSONSchema()}}}}safe(e){if(this.kind==="mixin")return{ok:!1,value:null,errors:[{field:"",error:"mixin",message:"not instantiable"}]};this._assertSyncValidatable("safe");let t=this._runSync(e,{materialize:!0,materializeNested:!0,derived:"issue"});if(t.ok)return{ok:!0,value:t.value,errors:null};if(t.thrown)return{ok:!1,value:null,errors:[{field:t.derivedField||"",error:"derived",message:t.thrown?.message||String(t.thrown)}]};return{ok:!1,value:null,errors:t.errors}}ok(e){if(this.kind==="mixin")return!1;return this._assertSyncValidatable("ok"),this._runSync(e,{materialize:!1,materializeNested:!1,derived:"issue"}).ok}async parseAsync(e){if(this.kind==="mixin")throw Error(":mixin schema '"+(this.name||"anon")+"' is not instantiable");let t=await this._runAsync(e,{materialize:!0,materializeNested:!0,derived:"throw"});if(t.ok)return t.value;if(t.thrown)throw t.thrown;let r=t.from||this;throw new I1(t.errors,r.name,r.kind)}async safeAsync(e){if(this.kind==="mixin")return{ok:!1,value:null,errors:[{field:"",error:"mixin",message:"not instantiable"}]};let t=await this._runAsync(e,{materialize:!0,materializeNested:!0,derived:"issue"});if(t.ok)return{ok:!0,value:t.value,errors:null};if(t.thrown)return{ok:!1,value:null,errors:[{field:t.derivedField||"",error:"derived",message:t.thrown?.message||String(t.thrown)}]};return{ok:!1,value:null,errors:t.errors}}async okAsync(e){if(this.kind==="mixin")return!1;return(await this._runAsync(e,{materialize:!1,materializeNested:!1,derived:"issue"})).ok}pick(...e){return yt(this,(t)=>{let r=Wi(e),n=new Map;for(let i of r){if(!t.has(i))throw Error("pick: unknown field '"+i+"' on "+(this.name||"schema"));n.set(i,t.get(i))}return n})}omit(...e){return yt(this,(t)=>{let r=new Set(Wi(e)),n=new Map;for(let[i,s]of t)if(!r.has(i))n.set(i,s);return n})}partial(){return yt(this,(e)=>{let t=new Map;for(let[r,n]of e)t.set(r,{...n,required:!1});return t})}required(...e){return yt(this,(t)=>{let r=new Set(Wi(e)),n=new Map;for(let[i,s]of t)n.set(i,{...s,required:r.has(i)?!0:s.required});return n})}extend(e){if(!(e instanceof Et))throw Error("extend(): argument must be a schema value");if(e.kind==="union")throw Error("extend(): :union schemas have no fields to merge");return yt(this,(t)=>{let r=new Map(t),n=e._normalize().fields;for(let[i,s]of n){if(r.has(i))throw Error("extend(): field '"+i+"' collides between "+(this.name||"schema")+" and "+(e.name||"other"));r.set(i,s)}return r})}toJSONSchema(){let e={defs:new Map,expanding:new Set},t=qa(this,e);if(t.$schema="https://json-schema.org/draft/2020-12/schema",this.name)t.title=this.name;if(e.defs.size){t.$defs={};for(let[r,n]of e.defs)t.$defs[r]=n}return t}}var Ga={__proto__:null,string:()=>({type:"string"}),text:()=>({type:"string"}),email:()=>({type:"string",format:"email"}),url:()=>({type:"string",format:"uri"}),uuid:()=>({type:"string",format:"uuid"}),phone:()=>({type:"string",pattern:"^[\\d\\s\\-+()]+$"}),zip:()=>({type:"string",pattern:"^\\d{5}(-\\d{4})?$"}),number:()=>({type:"number"}),integer:()=>({type:"integer"}),boolean:()=>({type:"boolean"}),date:()=>({type:"string",format:"date"}),datetime:()=>({type:"string",format:"date-time"}),json:()=>({}),variant:()=>({}),any:()=>({})};function ic(e,t){let r;if(e.typeName==="literal-union"&&e.literals?.length)r=e.literals.length===1?{const:e.literals[0]}:{enum:[...e.literals]};else if(Ga[e.typeName])r=Ga[e.typeName]();else{let i=ie.get(e.typeName);r=i?za(i,t):{}}let n=e.constraints;if(n&&!e.array){if(r.type==="string"){if(n.min!=null)r.minLength=n.min;if(n.max!=null)r.maxLength=n.max;if(n.regex)r.pattern=n.regex.source}else if(r.type==="number"||r.type==="integer"){if(n.min!=null)r.minimum=n.min;if(n.max!=null)r.maximum=n.max}}if(e.array){if(r={type:"array",items:r},n){if(n.min!=null)r.minItems=n.min;if(n.max!=null)r.maxItems=n.max}}if(n&&n.default!==void 0)r.default=n.default;if(e.coerce)r.description=((r.description?r.description+" ":"")+"Coerced from wire data ("+(e.coercer?"~:"+e.coercer:"~"+e.typeName)+").").trim();if(e.transform)r.description=((r.description?r.description+" ":"")+"Derived via transform; the raw input may use different keys.").trim();return r}function za(e,t){let r=e.name||"Anon";if(!t.defs.has(r)&&!t.expanding.has(r))t.expanding.add(r),t.defs.set(r,null),t.defs.set(r,qa(e,t)),t.expanding.delete(r);return{$ref:"#/$defs/"+r}}function qa(e,t){let r=e._normalize();if(e.kind==="enum")return{enum:[...new Set(r.enumMembers.values())]};if(e.kind==="union"){let a=e._unionPlan();return{oneOf:r.unionMembers.map((l)=>{let c=ie.get(l);return c?za(c,t):{}}),discriminator:{propertyName:a.disc}}}let n={},i=[];for(let[a,o]of r.fields)if(n[a]=ic(o,t),o.required&&o.constraints?.default===void 0)i.push(a);if(e.kind==="model")Te.jsonSchemaModelColumns(e,n);let s={type:"object",properties:n};if(i.length)s.required=i;if(r.ensures.length)s.description="Refinements (not expressible in JSON Schema): "+r.ensures.map((a)=>a.message).join("; ")+".";return s}function Wi(e){let t=[];for(let r of e)if(Array.isArray(r))for(let n of r)t.push(n);else t.push(r);return t}function yt(e,t){if(e.kind==="union")throw Error("schema algebra (.pick/.omit/.partial/.required/.extend) is not supported on :union — derive from a constituent schema instead");if(e.kind==="enum")throw Error("schema algebra is not supported on :enum — an enum has no field set");let r=e.kind==="model"?Te.projectableFields(e):e._normalize().fields,n=t(r),i=[];for(let[,o]of n){let l=[];if(o.required)l.push("!");if(o.optional&&!o.required)l.push("?");i.push({tag:"field",name:o.name,modifiers:l,unique:o.unique===!0,primary:o.primary===!0,attrs:o.attrs||null,typeName:o.typeName,array:o.array,literals:o.literals||null,coerce:o.coerce===!0,coercer:o.coercer||null,constraints:o.constraints,transform:o.transform||null})}let s=(e.name||"Schema")+"Derived",a=new Et({kind:"shape",name:s,entries:i});return a._sourceModel=e._sourceModel||(e.kind==="model"?e:null),a}function Xa(e,t,r,n){for(let i of r){if(i.name!=="mixin"||!i.args||!i.args[0])continue;let s=i.args[0].target;if(!s)continue;if(n.stack.includes(s))throw new I1([{field:"",error:"mixin-cycle",message:"mixin cycle: "+n.stack.concat(s).join(" -> ")}],e.name,e.kind);if(n.seen.has(s))continue;let a=ie.getKind(s,"mixin");if(!a)throw new I1([{field:"",error:"mixin-missing",message:"unknown mixin: "+s}],e.name,e.kind);n.seen.add(s),n.stack.push(s);let o=a._desc.entries.filter((l)=>l.tag==="directive"&&l.name==="mixin").map((l)=>({name:l.name,args:l.args||[]}));Xa(e,t,o,n);for(let l of a._desc.entries){if(l.tag!=="field")continue;if(t.has(l.name))throw new I1([{field:l.name,error:"mixin-collision",message:l.name+" from mixin "+s+" collides with existing field"}],e.name,e.kind);if(e.kind!=="model"&&(l.unique===!0||l.attrs))throw new I1([{field:l.name,error:"mixin-persistence",message:l.name+" from mixin "+s+" carries persistence metadata (@unique/attrs) — :model-only; a :"+e.kind+" cannot include it"}],e.name,e.kind);t.set(l.name,{name:l.name,required:l.modifiers.includes("!"),optional:l.modifiers.includes("?"),unique:l.unique===!0,attrs:l.attrs||null,typeName:l.typeName,literals:l.literals||null,array:l.array===!0,coerce:l.coerce===!0,coercer:l.coercer||null,constraints:l.constraints||null,transform:l.transform||null})}n.stack.pop()}}function nc(e){let t=new Et(e);if(t.name)ie.register(t);return t}if(typeof globalThis<"u")globalThis.__ripSchema=globalThis.__ripSchema||{},globalThis.__ripSchema.SchemaRegistry=ie;var Ar={};Fe(Ar,{__batch:()=>M1,__catchErrors:()=>me,__computed:()=>Y1,__detachRef:()=>Ki,__effect:()=>x1,__handleError:()=>ne,__ownerFrame:()=>Tt,__popOwner:()=>X1,__pushOwner:()=>he,__readonly:()=>ue,__setEffectErrorReporter:()=>sc,__setErrorHandler:()=>de,__state:()=>A1,getEffectSignal:()=>fe});var Qa=Symbol.for("rip.runtime.reactive");if(globalThis[Qa])throw Error("two copies of the Rip reactive runtime loaded in one process — states from different copies "+"cannot notify each other (separate dependency graphs, separate effect queues). Run .rip sources through the rip CLI/loader (one shared runtime module per process), or load only one standalone-compiled file per process.");globalThis[Qa]=!0;var N1=null,_r=[],Ke={buckets:[],cursors:[],size:0,low:0,add(e){let t=e.depth,r=this.buckets[t];if(r===void 0)r=this.buckets[t]=new Set;if(r.has(e))return;if(r.add(e),this.size++,tconsole.error(e,t);function sc(e){let t=kt;return kt=e,t}function eo(){try{while(Ke.size>0){let e=Ke.shift();if(!e._disposed)e.run()}}catch(e){throw Ke.clear(),e}}var to={valueOf(){return this.value},toString(){return String(this.value)},[Symbol.toPrimitive](e){return e==="string"?this.toString():this.valueOf()}};function A1(e){if(e!=null&&typeof e==="object"&&typeof e.read==="function")return e;let t=e,r=new Set,n=!1,i=!1,s=!1,a=()=>{if(N1&&typeof N1.markDirty==="function"&&N1.dependencies.has(r))throw Error("reactive runtime: computed dependency changed during evaluation — "+"computed functions must derive without writing or touching a dependency")},o=()=>{for(let h of _r)h.writtenSignals.add(r)},l=()=>{n=!0;try{for(let h of r)if(h.markDirty)h.markDirty(!0);else h._hard=!0,Ke.add(h);if(!wr)eo()}finally{n=!1}},c={get value(){if(s)return t;if(N1?.writtenSignals&&_r.some((h)=>h.writtenSignals.has(r)))throw Error("reactive runtime: computed dependency changed during evaluation — "+"computed functions must derive without writing or touching a dependency");if(N1)r.add(N1),N1.dependencies.add(r);return t},set value(h){if(s||i||h===t)return;if(a(),n)return;o(),t=h,l()},read(){return t},touch(){if(s)return;if(a(),n)return;o(),l()},lock(){return i=!0,c},free(){return r.clear(),c},kill(){return s=!0,r.clear(),t},...to};return c}var kr=0,Ja=1,Tr=2;function ro(e){let t=N1;N1=null;try{for(let[r,n]of e.computedDeps)if(r.value,r.version!==n)return!0;return!1}finally{N1=t}}function Y1(e){let t,r=Tr,n=new Set,i=!1,s=!1,a=!1,o={dependencies:new Set,computedDeps:new Map,writtenSignals:new Set,version:0,markDirty(l){if(s||i)return;if(a)throw Error("reactive runtime: computed dependency changed during evaluation — "+"computed functions must derive without writing or touching a dependency");let c=r;if(l)r=Tr;else if(r===kr)r=Ja;if(c!==kr)return;for(let h of n)if(h.markDirty)h.markDirty(!1);else Ke.add(h)},get value(){if(s)return t;if(N1&&N1!==o)n.add(N1),N1.dependencies.add(n),N1.computedDeps.set(o,-1);if(a)throw Error("reactive runtime: computed value read during its own evaluation — "+"recursive computed reads are not supported");if(r===Ja&&!i)r=ro(o)?Tr:kr;if(r===Tr&&!i){for(let c of o.dependencies)c.delete(o);o.dependencies.clear(),o.computedDeps.clear();let l=N1;o.writtenSignals.clear(),N1=o,_r.push(o),a=!0;try{let c=e();if(c!==t)o.version++;t=c,r=kr}finally{a=!1,_r.pop(),o.writtenSignals.clear(),N1=l}}if(N1&&N1!==o)N1.computedDeps.set(o,o.version);return t},read(){return t},lock(){return i=!0,o.value,o},free(){for(let l of o.dependencies)l.delete(o);return o.dependencies.clear(),o.computedDeps.clear(),n.clear(),o},kill(){s=!0;let l=t;return o.free(),l},...to};return o}function Za(e){let t=e._cleanup;if(!t)return;let r=N1;N1=null;try{t()}finally{N1=r}e._cleanup=null}function x1(e){let t=null,r=0,n=B1,i={depth:n?n.depth+1:0,dependencies:new Set,computedDeps:new Map,_hard:!0,_disposed:!1,get signal(){if(!t&&typeof AbortController<"u"){if(t=new AbortController,i._disposed)t.abort()}return t?t.signal:null},run(){if(i._disposed)return;let a=i._hard;if(i._hard=!1,!a&&!ro(i))return;if(t){try{t.abort()}catch{}t=null}let o=++r;Za(i);for(let h of i.dependencies)h.delete(i);i.dependencies.clear(),i.computedDeps.clear();let l=N1;N1=i;let c=B1;B1=n;try{let h=e();if(typeof h==="function")i._cleanup=h;else if(h&&typeof h.then==="function")h.then((f)=>{if(o!==r||i._disposed){if(typeof f==="function")try{f()}catch(u){kt("[Rip] superseded async cleanup error:",u)}return}if(typeof f==="function")i._cleanup=f},(f)=>{if(f&&f.name==="AbortError")return;if(o!==r||i._disposed)return;kt("[Rip] async effect error:",f)})}finally{N1=l,B1=c}},dispose(){if(i._disposed)return;if(i._disposed=!0,Ke.delete(i),t)try{t.abort()}catch{}Za(i);for(let a of i.dependencies)a.delete(i);i.dependencies.clear()}};try{i.run()}catch(a){throw i.dispose(),a}let s=()=>i.dispose();if(B1)B1.add(s);return s}function M1(e){if(wr)return e();wr=!0;try{return e()}finally{wr=!1,eo()}}function Tt({nested:e=!0}={}){let t=[],r=null,i={depth:B1?B1.depth+1:0,get disposed(){return t===null},get size(){return t===null?0:t.length},add(s){if(t===null)s();else t.push(s)},remove(s){if(t===null)return;let a=t.indexOf(s);if(a>=0)t.splice(a,1)},dispose(){if(t===null)return;let s=t;if(t=null,r!==null){let a=r;r=null,a()}for(let a of s)try{a()}catch(o){kt("[Rip] effect disposer error:",o)}}};if(e&&B1){let s=B1;s.add(i.dispose),r=()=>s.remove(i.dispose)}return i}function he(e){let t={frame:e,prev:B1};return B1=e,t}function X1(e){if(!e||typeof e!=="object"||!("frame"in e))throw Error("reactive runtime: __popOwner takes the token the matching __pushOwner returned");if(B1!==e.frame)throw Error("reactive runtime: __popOwner out of order — the frame being popped is not the current owner "+"(an inner push was not popped, or this token was already popped)");B1=e.prev}function fe(){return N1?N1.signal:null}function ue(e){return Object.freeze({value:e})}function Ki(e,t){if(e&&typeof e.read==="function"&&e.read()===t)e.value=null}var Nr=null;function de(e){let t=Nr;return Nr=e,t}function ne(e){if(Nr)try{Nr(e)}catch(t){console.error("Error in error handler:",t),console.error("Original error:",e)}else throw e}function me(e){return function(...t){try{return e.apply(this,t)}catch(r){ne(r)}}}var Nt={};Fe(Nt,{__Component:()=>ko,__claimGateConstructor:()=>en,__clsx:()=>Dr,__detach:()=>$r,__detachRef:()=>Ki,__gateBind:()=>_c,__handleComponentError:()=>Xi,__hmrClassify:()=>_t,__hmrEmit:()=>_e,__hmrEntries:()=>Ji,__hmrEvents:()=>hc,__hmrLookup:()=>ac,__hmrMigrateDiff:()=>mo,__hmrMigrateRemount:()=>mc,__hmrPatch:()=>Qi,__hmrPreserveState:()=>xr,__hmrRegisterDefinition:()=>wt,__hmrRegistry:()=>we,__hmrRestoreUi:()=>Cr,__hmrSnapshotUi:()=>Zi,__lis:()=>Ro,__ownerFrame:()=>Tt,__popComponent:()=>pe,__popOwner:()=>X1,__pushComponent:()=>Le,__pushOwner:()=>he,__reconcile:()=>yc,__reportChildFailure:()=>Tc,__setChildFailureReporter:()=>kc,__style:()=>Eo,__transition:()=>Rc,getContext:()=>gc,hasContext:()=>bc,setContext:()=>pc});var ho=Symbol.for("rip.runtime.components");if(globalThis[ho])throw Error("two copies of the Rip component runtime loaded in one process — components from different "+"copies cannot see each other (separate component stacks: context, parent chains, and error boundaries silently break across copies). Run .rip sources through the rip CLI/loader (one shared runtime module per process), or load only one standalone-compiled file per process.");globalThis[ho]=!0;var z1=null,fo={},Or=null,uo=new WeakMap,io=!1,we=new Map;function Yi(e,t){if(e===t)return!0;if(!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length)return!1;for(let r=0;ri.has(c)),o=n.filter((c)=>!i.has(c)),l=r.filter((c)=>!s.has(c));return{kept:a,added:o,removed:l}}var Ir=[],cc=64;function _e(e,t={}){let r={type:e,at:Date.now(),...t};if(Ir.push(r),Ir.length>cc)Ir.shift();if(typeof window<"u"&&typeof window.dispatchEvent==="function"&&typeof CustomEvent==="function")try{window.dispatchEvent(new CustomEvent("rip:hmr",{detail:r}))}catch{}return r}function hc(){return Ir.slice()}function xr(e,t){let r=e?.constructor?.__hmrSig,n=t?.constructor?.__hmrSig,i=r?.state,s=n?.state,a=mo(r,n);if(!Array.isArray(i)||!Array.isArray(s))return _e("migrate",{id:t?.constructor?.__hmrId??null,...a,copied:[]}),a;let o=new Set(i),l=[];for(let h of s){if(!o.has(h))continue;let f=e[h],u=t[h];if(f!=null&&u!=null&&typeof f==="object"&&typeof u==="object"&&"value"in f&&"value"in u)u.value=f.value,l.push(h)}let c=t?.constructor?.__hmrId??e?.constructor?.__hmrId??null;return _e("migrate",{id:c,...a,copied:l}),{...a,copied:l}}var po=["name","type","placeholder"];function go(e){let t=(n)=>typeof e[n]==="string"&&e[n]?e[n]:null,r={tag:e.tagName??null};for(let n of po)r[n]=t(n);return r.label=typeof e.getAttribute==="function"?e.getAttribute("aria-label"):null,r.value=typeof e.value==="string"?e.value:null,r}function zi(e,t,r){if(!e||!t)return!1;let n=go(e);for(let i of["tag",...po,"label"])if(n[i]!==t[i])return!1;return!r||t.value==null||n.value===t.value}function fc(e){let t=go(e),r=typeof e.id==="string"&&e.id?e.id:null,n=[],i=e;while(i&&i!==document.body){let s=i.parentElement??i.parentNode??null;if(!s||!s.children)return{identity:t,id:r,path:null};n.unshift(Array.prototype.indexOf.call(s.children,i)),i=s}return{identity:t,id:r,path:i===document.body?n:null}}function uc(e){let t=e.active;if(t&&t.isConnected!==!1&&typeof document.contains==="function"&&document.contains(t))return t;let r=e.locator;if(!r)return null;if(r.id&&typeof document.getElementById==="function"){let o=document.getElementById(r.id);if(zi(o,r.identity,!1))return o}if(!Array.isArray(r.path)||r.path.length===0)return null;let n=document.body;for(let o of r.path.slice(0,-1))if(n=n?.children?.[o]??null,!n)return null;let i=Array.from(n.children??[]),s=i[r.path[r.path.length-1]]??null;if(zi(s,r.identity,!0))return s;let a=i.filter((o)=>zi(o,r.identity,!0));return a.length===1?a[0]:null}function Zi(){if(typeof document>"u")return null;let e=document.activeElement,t=e&&e!==document.body&&e!==document.documentElement?e:null,r=null;if(t&&typeof t.selectionStart==="number")r={start:t.selectionStart,end:t.selectionEnd,direction:t.selectionDirection};return{active:t,locator:t?fc(t):null,selection:r,scrollX:typeof window<"u"?window.scrollX:0,scrollY:typeof window<"u"?window.scrollY:0}}function Cr(e){if(!e||typeof document>"u")return;if(typeof window<"u")window.scrollTo(e.scrollX??0,e.scrollY??0);let t=uc(e);if(!t||typeof t.focus!=="function")return;try{if(t.focus({preventScroll:!0}),e.selection&&typeof t.setSelectionRange==="function")t.setSelectionRange(e.selection.start,e.selection.end,e.selection.direction??"none")}catch{}}function bo(e,t){let r=e.constructor?.__hmrId;if(typeof r==="string"&&r)we.get(r)?.instances.delete(e);Object.setPrototypeOf(e,t.prototype),Object.defineProperty(e,"constructor",{value:t,writable:!0,configurable:!0}),wt(t),we.get(t.__hmrId)?.instances.add(e)}function Qi(e,t){if(!e||!t)throw Error("__hmrPatch requires a living instance and a replacement constructor");let r=e.constructor?.__hmrId;return bo(e,t),e._hmrRerender(),_e("patch",{id:t.__hmrId??r??null}),e}function yo(e){return Object.keys(e).sort().join(",")}function dc(e,t){let n=(z1?._projectionOwner??z1)?._hmrOrphans;if(!n||n.length===0)return null;let i=e.__hmrId;if(typeof i!=="string")return null;let s=yo(t),a=null;for(let o of n){if(o._state!=="mounted"||o.constructor.__hmrId!==i||o._hmrPropKeys!==s)continue;if(a)return null;a=o}if(!a||_t(a.constructor,e)!=="patch")return null;if(n.splice(n.indexOf(a),1),a.constructor!==e)bo(a,e);a._hmrRelease();try{a._hmrApplyProps(t)}catch(o){throw a._teardown({state:"failed",hooks:!1,removeDOM:!0}),o}return a._hmrRebindPending=!0,a}function mc(e,t,r={}){let n=new t(r);return xr(e,n),n}function en(){if(io)throw Error("[Rip] the render-gate construction capability is already claimed");return io=!0,(e,t)=>{let r=Or;Or={brand:fo,component:e,gates:t.gates,parent:t.parent??null,stash:t.stash??null,router:t.router??null,used:!1};try{return new e({})}finally{Or=r}}}function $r(e){if(!e||e.nodeType===11)return;if(typeof e.remove==="function")e.remove();else if(e.parentNode)e.parentNode.removeChild(e)}function Le(e){let t=z1;if(e&&e._parent==null&&t&&t!==e)e._parent=t;return z1=e,t}function pe(e){z1=e}function pc(e,t){if(!z1)throw Error("setContext must be called during component initialization");if(!z1._context)z1._context=new Map;z1._context.set(e,t)}function So(e,t,r){if(typeof t!=="function")throw Error(r===void 0?`${e}: a context read names its provider — ${e}(Provider, ${JSON.stringify(t)})`:`${e}: the provider named for ${JSON.stringify(r)} is not a component`);let n=typeof t.__hmrId==="string"?t.__hmrId:null,i=z1,s=new Set;while(i&&!s.has(i)){if(s.add(i),i instanceof t||n!==null&&i.constructor?.__hmrId===n)return i._context!==void 0&&i._context.has(r)?{found:!0,value:i._context.get(r)}:{found:!1,provider:i};i=i._parent}return{found:!1,provider:null}}function gc(e,t){let r=So("getContext",e,t);if(r.found)return r.value;let n=e.name||"the provider";throw Error(r.provider!==null?`getContext: ${n} offers no ${JSON.stringify(t)}`:`getContext: no ${n} above this component — render one around it, or probe with hasContext(${n}, ${JSON.stringify(t)}) where absence is legal`)}function bc(e,t){return So("hasContext",e,t).found}function Dr(...e){let t="";for(let r of e){if(!r)continue;if(typeof r==="string")t&&(t+=" "),t+=r;else if(typeof r==="object"){if(Array.isArray(r)){let n=Dr(...r);n&&(t&&(t+=" "),t+=n)}else for(let n in r)if(r[n])t&&(t+=" "),t+=n}}return t}function Ro(e){let t=e.length;if(t===0)return[];let r=[],n=[],i=Array(t).fill(-1);for(let o=0;o>1;if(r[h]0)i[o]=n[l-1]}let s=[],a=n[r.length-1];for(let o=r.length-1;o>=0;o--)s.push(a),a=i[a];return s.reverse(),s}function yc(e,t,r,n,i,s,...a){if(e==null)throw Error("__reconcile: no anchor — the list's create phase never placed one");let o=e.parentNode;if(!o)return;let l=t.keys,c=t.items||[],h=t.blocks,f=l.length,u=r.length,d=Array(u),p=s!=null,m=p?r.map((R,T)=>s(R,T)):r;if(p){let R=new Set;for(let T of m){if(R.has(T))throw Error(`__reconcile: duplicate key ${JSON.stringify(String(T))} — keyed rows need unique keys `+"(the key function must be injective over the items)");R.add(T)}}if(f===0){if(u>0){let R=document.createDocumentFragment();for(let T=0;T=g&&w>=g&&l[S]===m[w]){let R=h[S];if(!R._s)R.p(n,r[w],w,...a);d[w]=R,S--,w--}if(g>w)for(let R=g;R<=S;R++)h[R].d(!0);else if(g>S){let R=w+1=g;N--){let D=d[N];if(!L.has(N-g))D.m(o,C);C=D._first}}t.keys=p?m:r.slice(),t.items=r.slice(),t.blocks=d}var no=!1;function Sc(){if(no)return;no=!0;let e=document.createElement("style");e.textContent=[".fade-enter-active,.fade-leave-active{transition:opacity .2s ease}",".fade-enter-from,.fade-leave-to{opacity:0}",".slide-enter-active,.slide-leave-active{transition:opacity .2s ease,transform .2s ease}",".slide-enter-from{opacity:0;transform:translateY(-8px)}",".slide-leave-to{opacity:0;transform:translateY(8px)}",".scale-enter-active,.scale-leave-active{transition:opacity .2s ease,transform .2s ease}",".scale-enter-from,.scale-leave-to{opacity:0;transform:scale(.95)}",".blur-enter-active,.blur-leave-active{transition:opacity .2s ease,filter .2s ease}",".blur-enter-from,.blur-leave-to{opacity:0;filter:blur(4px)}",".fly-enter-active,.fly-leave-active{transition:opacity .2s ease,transform .2s ease}",".fly-enter-from{opacity:0;transform:translateY(-20px)}",".fly-leave-to{opacity:0;transform:translateY(20px)}"].join(""),document.head.appendChild(e)}function Rc(e,t,r,n){Sc();let i=e.classList,s=t+"-"+r+"-from",a=t+"-"+r+"-active",o=t+"-"+r+"-to",l=!1,c=null;i.add(s,a),requestAnimationFrame(()=>{requestAnimationFrame(()=>{i.remove(s),i.add(o);let h=(u)=>{if(l||u&&u.target!==e)return;if(l=!0,clearTimeout(c),e.removeEventListener("transitionend",h),e.removeEventListener("transitioncancel",h),i.remove(a,o),n)n()};e.addEventListener("transitionend",h),e.addEventListener("transitioncancel",h);let f=0;try{let u=getComputedStyle(e),d=(p)=>Math.max(0,...String(p).split(",").map((m)=>(parseFloat(m)||0)*(/ms\s*$/.test(m.trim())?1:1000)));f=d(u.transitionDuration)+d(u.transitionDelay)}catch{}c=setTimeout(()=>h(),f+50)})})}function Ec(e){let t=e!=null&&typeof e==="object"?e.name:null;if(t==="GateFailure"||t==="ComponentFailure")return e;let r=Error(e!=null&&e.message!==void 0?e.message:String(e));r.name="ComponentFailure";let n=e!=null?e.status??e.response?.status:void 0;if(n!==void 0)r.status=n;return r.error=e,r}var qi=(e,t)=>console.error(`[Rip] ${e} construction failed:`,t);function kc(e){let t=qi;return qi=e,t}function Tc(e,t){qi(e,t)}function Xi(e,t){let r=Ec(e),n=t,i=new Set;while(n&&!i.has(n)){if(i.add(n),n.onError){let s=Le(n),a=he(n._frame);try{n.onError(r,t);return}catch(o){}finally{X1(a),pe(s)}}n=n._parent}throw e}var so=new WeakSet;function wc(e,t){if(so.has(e))return;let r=e.__props??[];if(!Array.isArray(r))throw Error(`${e.name||"component"}: static __props must be an array of declared prop names`);for(let n of r){if(typeof n!=="string"||n.length===0)throw Error(`${e.name||"component"}: static __props entries must be non-empty strings`);if(n.startsWith("_"))throw Error(`${e.name||"component"}: declared prop '${n}' collides with component internals — `+"underscore-prefixed names are reserved for the runtime");if(n in t)throw Error(`${e.name||"component"}: declared prop '${n}' collides with a component member (a method or lifecycle slot already answers '${n}')`)}so.add(e)}function _c(e,t){let n=uo.get(e)?.gates?.[t];if(!n?.cell)throw Error(`[Rip] render gate ${t} has no renderer-resolved source binding — `+"gated components may only be constructed by rip/app createRenderer()");let i=n.value,s=!0;return Y1(()=>{if(s)return s=!1,n.cell.read(),i;let a=n.cell.read();for(let o of n.tail){if(a==null)break;a=a[o]}if(a!=null)i=a;return i})}var vr=new WeakMap;function ao(e,t,r){if(t.startsWith("--")&&typeof e.setProperty==="function")if(r==null||r==="")e.removeProperty(t);else e.setProperty(t,String(r));else e[t]=r}function Eo(e,t){let r=vr.get(e);if(t==null){e.removeAttribute("style"),vr.delete(e);return}if(typeof t!=="object"){e.setAttribute("style",String(t)),vr.delete(e);return}if(r){for(let n of r)if(!(n in t))ao(e.style,n,"")}vr.set(e,Object.keys(t));for(let n of Object.keys(t))ao(e.style,n,t[n])}var Nc=new Set(["disabled","hidden","readonly","required","checked","selected","autofocus","autoplay","controls","loop","muted","multiple","novalidate","open","reversed","defer","async","formnovalidate","allowfullscreen","inert","ismap","nomodule","playsinline","default","itemscope","alpha","shadowrootdelegatesfocus","shadowrootclonable","shadowrootserializable"]),oo=(e)=>new Proxy(e,{get(t,r){let n=t[r];return n!=null&&typeof n==="object"&&typeof n.read==="function"?n.value:n}});function lo(e,t){let r=e.__props??[],n=e.__extends??null,i=null;for(let s of Object.keys(t)){if(s==="children")continue;if(s.startsWith("__bind_")&&s.endsWith("__")){let a=s.slice(7,-2);if(r.includes(a))continue;throw Error(`${e.name||"component"}: cannot bind unknown prop '${a}' — declared `+`props are [${r.join(", ")}]`)}if(r.includes(s))continue;if(n!==null){(i??={})[s]=t[s];continue}throw Error(`${e.name||"component"}: unknown prop '${s}' — declared props are `+`[${r.join(", ")}]`)}return i}function co(e,t){let r=t?.asChild;if(r==null||r===!1)return!1;if(r===!0)return!0;let n=typeof r==="object"&&typeof r.read==="function"?"a reactive value":`${typeof r} ${String(r)}`;throw Error(`${e.name||"component"}: asChild takes true or nothing, fixed at construction — got ${n}`)}function Ac(e){return e!=null&&typeof e==="object"&&typeof e.read==="function"?e.value:e}function vc(e){if(e==null)return"nothing";if(e.nodeType===3)return"text";if(e.nodeType===8)return"a comment";if(e.nodeType===11)return`a fragment of ${e.childNodes.length} nodes`;return typeof e==="object"?"a value that is no node":`${typeof e} ${String(e)}`}class ko{constructor(e={}){let t=dc(this.constructor,e);if(t)return t;this._state="new",this._owner=z1?._projectionOwner??z1??null,wc(this.constructor,this);let r=this.constructor.__gates,n=Or,i=n?.brand===fo&&n.component===this.constructor&&n.used!==!0;if(i)n.used=!0;if(r?.length&&!i)throw Error("[Rip] component declares render gates (<~) and cannot be constructed directly or as an embedded child; render gates are honored only by rip/app createRenderer()");if(i){if(uo.set(this,n),n.parent)this._parent=n.parent;if(n.stash!=null)this.stash=n.stash;if(n.router!=null)this.router=n.router,Object.defineProperty(this,"params",{get:()=>n.router.params,configurable:!0}),Object.defineProperty(this,"query",{get:()=>n.router.query,configurable:!0})}if(this.stash==null&&globalThis.__ripStash!=null)this.stash=globalThis.__ripStash;if(this.router==null&&globalThis.__ripRouter!=null)this.router=globalThis.__ripRouter;let s=lo(this.constructor,e);if("children"in e)this.children=e.children;if(this.constructor.__hmrId)this._hmrPropKeys=yo(e);if(this.constructor.__extends!=null)this._rest=s??{},this.rest=A1(oo(this._rest)),this._asChild=co(this.constructor,this._rest);this._frame=Tt({nested:!1});let a=Le(this),o=he(this._frame);try{this._init(e)}catch(l){X1(o),pe(a),this._teardown({state:"failed",hooks:!1,removeDOM:!0}),this._initFailed=!0,Xi(l,this);return}if(X1(o),pe(a),this.constructor.__hmrId)oc(this)}_init(e){}_beginProjection(e){let t={prev:Le(this),owner:this._projectionOwner??null};return this._projectionOwner=e,t}_endProjection(e){this._projectionOwner=e.owner,pe(e.prev)}_setChildren(e){let t=this.children;if(t!=null&&typeof t==="object"&&typeof t.read==="function"&&"value"in t)t.value=e;else this.children=e;if(this._asChild&&this._state==="mounted")this._rehost()}_adoptChild(){let e=Ac(this.children);if(e!=null&&e.nodeType===1)return e;throw Error(`${this.constructor.name||"component"}: asChild renders the projected element as the host, so the body must `+`be exactly one element — got ${vc(e)}`)}_rehost(){let e=this._inheritedEl;if(this._hmrRelease(!1),!this._hmrRebind())return;if(!this._mountCreate())return;this._mountSetup(),this._rehostAbove(e)}_rehostAbove(e){let t=this._parent;if(e==null||this._root===e||!t?._asChild||t._state!=="mounted"||t._inheritedEl!==e)return;t._setChildren(this._root)}_updateProp(e,t){if(this._state==="failed"||this._state==="unmounted")return;let r=this.constructor.__props??[];if(!r.includes(e)){if(this.constructor.__extends){this._setRestProp(e,t);return}throw Error(`${this.constructor.name||"component"}: cannot update unknown prop '${e}' — declared `+`props are [${r.join(", ")}]`)}let n=this[e];if(n&&typeof n==="object"&&"value"in n){n.value=t;return}throw Error(`${this.constructor.name||"component"}: prop '${e}' is non-reactive — parent updates `+"cannot reach it (declare it with ':=' to receive updates)")}_setRestProp(e,t){if(e.startsWith("__bind_"))return;if(this._state==="failed"||this._state==="unmounted")return;if(e==="asChild")throw Error(`${this.constructor.name||"component"}: asChild is fixed at construction and takes no update`);if(this._rest||(this._rest={}),t==null)delete this._rest[e];else this._rest[e]=t;this.rest.touch();let r=he(this._frame);try{this._applyInheritedProp(this._inheritedInst??this._inheritedEl,e,t)}finally{X1(r)}}_applyRestToInheritedEl(){if(this._state==="failed"||this._state==="unmounted")return;if(!this._inheritedEl||!this._rest)return;for(let e in this._rest)this._applyInheritedProp(this._inheritedEl,e,this._rest[e])}_applyInheritedProp(e,t,r){if(this._state==="failed"||this._state==="unmounted")return;if(!e||t==="key"||t==="ref"||t==="children"||t==="asChild"||t.startsWith("__bind_"))return;if(this._inheritedOwn?.has(t))return;let n=this._restWriters?.[t];if(n){if(n(),this._frame)this._frame.remove(n);delete this._restWriters[t]}if(r!=null&&typeof r==="object"&&typeof r.read==="function"){(this._restWriters??={})[t]=x1(()=>{this._applyPlainInheritedProp(e,t,r.value)});return}this._applyPlainInheritedProp(e,t,r)}_applyPlainInheritedProp(e,t,r){if(typeof e._updateProp==="function"){if(e._state==="failed"||e._state==="unmounted")return;e._updateProp(t,r);return}let n=e;if(t[0]==="@"){let i=t.slice(1).split(".")[0];this._restHandlers||(this._restHandlers={});let s=this._restHandlers[t];if(s)n.removeEventListener(i,s);if(typeof r==="function"){let a=(o)=>M1(()=>r(o));this._restHandlers[t]=a,n.addEventListener(i,a)}else delete this._restHandlers[t];return}if(t==="class"||t==="className"){if(n instanceof SVGElement)n.setAttribute("class",Dr(r));else n.className=Dr(r);return}if(t==="style"){Eo(n,r);return}if(t==="innerHTML"||t==="textContent"||t==="innerText"||t==="value"){n[t]=r??"";return}if(t==="checked"){n.checked=!!r;return}if(Nc.has(t)){n.toggleAttribute(t,!!r);return}if(r==null)n.removeAttribute(t);else n.setAttribute(t,r)}_beginMount(){if(this._state==="new"){this._state="mounting";return}let e=this.constructor.name||"component";if(this._state==="mounting")throw Error(`${e}: cannot mount an instance whose mount is already in progress`);if(this._state==="mounted")throw Error(`${e}: cannot mount an already-mounted instance — construct a new instance for another target`);if(this._state==="failed")throw Error(`${e}: cannot mount a failed instance — its mount rolled back; construct a new instance`);throw Error(`${e}: cannot mount an unmounted instance — its effects were disposed on unmount; construct a new instance`)}_mountCreate(){if(this._beginMount(),this._hmrRebindPending){if(this._hmrRebindPending=!1,!this._hmrRebind())return!1}let e=Le(this),t=he(this._frame),r=null,n=!1;try{this._root=this._create()}catch(i){r=i,n=!0}finally{X1(t),pe(e)}if(n)return this._failMount(r),!1;return!0}_mountSetup(e=null){if(this._state!=="mounting")return this._nodes?.[0]??this._root;let t=Le(this),r=he(this._frame),n=null,i=!1;try{if(e){let s=this._nodes?.[0]??this._root;if(s?.parentNode)s.parentNode.insertBefore(e,s)}if(this.beforeMount)this.beforeMount();if(this._setup)this._setup();if(this.mounted)this.mounted();this._state="mounted",$r(e),this._hmrDrainOrphans((s,a)=>console.error(`[Rip] ${s} error:`,a))}catch(s){n=s,i=!0}finally{X1(r),pe(t)}if(i)return this._failMount(n),e;return this._nodes?.[0]??this._root}_failMount(e){this._teardown({state:"failed",hooks:!1,removeDOM:!0}),Xi(e,this)}_dispose(e,t){if(this._children){for(let r of this._children)try{t(r)}catch(n){e("child teardown",n)}this._children=null}try{this._frame?.dispose()}catch(r){e("owner disposal",r)}if(this._restWriters){for(let r of Object.values(this._restWriters))try{r()}catch(n){e("rest writer cleanup",n)}this._restWriters=null}if(this._restHandlers){if(this._inheritedEl)for(let[r,n]of Object.entries(this._restHandlers))try{this._inheritedEl.removeEventListener(r.slice(1).split(".")[0],n)}catch(i){e("rest handler cleanup",i)}this._restHandlers=null}if(this._refCleanups){let r=this._refCleanups;this._refCleanups=null;try{M1(()=>{for(let n of r)try{n()}catch(i){e("ref cleanup",i)}})}catch(n){e("ref cleanup batch flush",n)}}this._children=null,this._refCleanups=null,this._restWriters=null,this._restHandlers=null}_detachDOM(e,t){if(t)if(this._nodes)for(let r of this._nodes)try{$r(r)}catch(n){e("DOM detach",n)}else try{$r(this._root)}catch(r){e("DOM detach",r)}this._root=null,this._nodes=null,this._inheritedEl=null,this._inheritedInst=null,this._inheritedOwn=null}_teardown({state:e,hooks:t,removeDOM:r}){if(this._state==="failed"||this._state==="unmounted")return;if(this.constructor.__hmrId)lc(this);this._state=e;let n=(i,s)=>console.error(`[Rip] ${i} error:`,s);if(this._hmrDrainOrphans(n),t)try{if(this.beforeUnmount)this.beforeUnmount()}catch(i){n("beforeUnmount",i)}if(this._dispose(n,(i)=>{if(t)i.unmount({removeDOM:r});else i._teardown({state:i._state==="mounted"?"unmounted":"failed",hooks:!1,removeDOM:!0})}),t)try{if(this.unmounted)this.unmounted()}catch(i){n("unmounted",i)}this._detachDOM(n,r),this._target=null}_hmrRelease(e=!0){let t=(r,n)=>console.error(`[Rip] ${r} error:`,n);try{if(this.beforeUnmount)this.beforeUnmount()}catch(r){t("beforeUnmount",r)}this._hmrOrphans=[],this._hmrReleasing=!0;try{this._dispose(t,(r)=>r.unmount({removeDOM:!0}))}finally{this._hmrReleasing=!1}this._detachDOM(t,e),this._frame=Tt({nested:!1}),this._state="new"}_hmrRebind(){let e=(n,i)=>console.error(`[Rip] ${n} error:`,i),t=Le(this),r=he(this._frame);try{if(typeof this._hmrRefreshComputeds==="function")this._hmrRefreshComputeds();if(typeof this._hmrBindEffects==="function")this._hmrBindEffects()}catch(n){return X1(r),pe(t),e("hmr rebind",n),this._failMount(n),!1}return X1(r),pe(t),!0}_hmrApplyProps(e){let t=lo(this.constructor,e);if("children"in e)this.children=e.children;for(let r of this.constructor.__props??[]){let n=`__bind_${r}__`;if(n in e){this[r]=e[n];continue}if(!(r in e))continue;let i=e[r];if(i!=null&&typeof i==="object"&&typeof i.read==="function")this[r]=i;else this._updateProp(r,i)}if(this.constructor.__extends!=null)this._rest=t??{},this.rest.value=oo(this._rest),this._asChild=co(this.constructor,this._rest)}_hmrDrainOrphans(e){let t=this._hmrOrphans;if(!t)return;this._hmrOrphans=null;for(let r of t)try{r.unmount({removeDOM:!0})}catch(n){e("orphan teardown",n)}}_hmrRerender(){let e=this.constructor.name||"component";if(this._state!=="mounted")throw Error(`${e}: _hmrRerender requires a mounted instance`);let t=this._target,r=this._nodes,n=r?.[0]??this._root,i=n?.parentNode??null,s=r?.length?r[r.length-1].nextSibling:this._root?this._root.nextSibling:null,a=this._asChild===!0;if(this._hmrRelease(!a),!this._hmrRebind())return this;if(typeof this._create!=="function")return this._state="mounted",this._hmrDrainOrphans((o,l)=>console.error(`[Rip] ${o} error:`,l)),this;if(!this._mountCreate())return this;if(!a)try{let o=i&&i.nodeType!==11?i:null;if(o&&o.isConnected===!1)o=null;if(!o&&typeof t==="string"&&typeof document<"u")o=document.querySelector(t);else if(!o&&t&&t.nodeType!==11&&t.isConnected!==!1)o=t;else if(!o&&typeof document<"u")o=document.querySelector("#content")||document.querySelector("#app");if(o){let l=s&&(typeof o.contains!=="function"||o.contains(s))?s:null;if(this._nodes)for(let c of this._nodes)o.insertBefore(c,l);else if(this._root)o.insertBefore(this._root,l);this._target=o.nodeType===11?null:o}}catch(o){return this._failMount(o),this}return this._mountSetup(),this._rehostAbove(n),this}mount(e){if(!this._mountCreate())return this;try{if(typeof e==="string")e=document.querySelector(e);if(this._target=e,this._root)e.appendChild(this._root)}catch(t){return this._failMount(t),this}return this._mountSetup(),this}unmount({removeDOM:e=!0}={}){if(this._state==="failed"||this._state==="unmounted")return;if(this._state==="mounted"&&this._owner?._hmrReleasing){this._owner._hmrOrphans.push(this);return}if(this._state==="mounting")throw Error(`${this.constructor.name||"component"}: cannot unmount while mounting`);this._teardown({state:"unmounted",hooks:this._state==="mounted",removeDOM:e})}emit(e,t){if(this._state!=="mounted"||!this._root)throw Error(`${this.constructor.name||"component"}: emit('${e}') outside the mounted window — `+"emit dispatches on the live root; call after mount and before unmount");(this._nodes?.[0]??this._root).dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!0}))}static mount(e="body"){return new this().mount(e)}}var ti={};Fe(ti,{ariaCurrent:()=>Gr,browserAdapter:()=>Vr,buildRoutes:()=>Ct,check:()=>ei,connectFeed:()=>Zr,createApply:()=>Qr,createComponents:()=>Fr,createMutation:()=>Do,createRenderer:()=>Wr,createRouter:()=>Ur,createStash:()=>Mr,createWorkspace:()=>Xr,currentRouter:()=>Kc,currentStash:()=>Gc,debounce:()=>xo,delay:()=>jr,hold:()=>Po,interceptClicks:()=>Kr,launch:()=>zr,ownsAnchor:()=>Lt,parseQuery:()=>Ze,persistStash:()=>Hr,preloadLinks:()=>Yr,rash:()=>Mt,source:()=>_o,throttle:()=>Co,unwrapStash:()=>Ne,validatePrepared:()=>Rn});var Pr,tn,To,wo=Symbol.for("rip.source"),rn=Symbol.for("rip.source.family"),Oc=64,Ic=30000,$c=/^(\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)\s*(s|sec|second|seconds|m|min|minute|minutes|h|hr|hour|hours|d|day|days|w|week|weeks|y|year|years)$/;function C1(e){return e!=null&&(typeof e==="object"||typeof e==="function")&&(e[wo]===!0||e[rn]===!0)}function ge(e){return e!=null&&typeof e==="function"&&e[rn]===!0}To=function(e){let t,r;if(e==null)return 0;if(typeof e==="number"){if(!(Number.isFinite(e)&&e>=0))throw TypeError('Rip App: source staleTime must be a non-negative finite number, a duration string, or "forever"');return e}if(typeof e==="string"){if(e==="forever")return 1/0;if(r=e.match($c),r)return t=parseFloat(r[1]),(()=>{switch(r[2][0]){case"s":return t*1000;case"m":return t*60000;case"h":return t*3600000;case"d":return t*86400000;case"w":return t*604800000;case"y":return t*31536000000}})()}throw TypeError('Rip App: source staleTime must be a non-negative number, a duration such as "5 min", or "forever"')};Pr=function(e,t,r=null){let n=A1(null),i=A1(!1),s=A1(null),a=0,o=null,l=null,c=!1,h=!1,f=!1,u=0,d=0,p=async function(S=!1,w=!1){let R,T;o?.abort(),o=typeof AbortController<"u"?new AbortController:null;let F=++a;if(!S)i.value=!0;let L=f;try{if(R=e(o?.signal),!(R!=null&&typeof R.then==="function"))throw TypeError("Rip App: source fetch must return a Promise");if(T=await R,F!==a)return T;return s.value=null,n.value=T,f=!0,u=Date.now(),d=w&&!h?u+Ic:0,T}catch(C){if(F!==a)return;if(C?.name==="AbortError")return;if(s.value=C,!L)throw f=!1,u=0,C;return}finally{if(F===a)i.value=!1,l=null,c=!1,h=!1,r?.()}},m=function(S=!1,w=!1){let R=p(S,w);return l=R,c=w,h=!1,R},g=function(){return t===1/0||Date.now()-uOc){o=!1;for(let[l,c]of r){if(l===a)continue;if(c.loading)continue;r.delete(l),c.reset(),o=!0;break}if(!o)break}return},i=function(a){if(a==null)throw TypeError("Rip App: keyed source requires a key");let o=Dc(a),l=r.get(o);if(l)return r.delete(o),r.set(o,l),l;return l=Pr(function(c){return e(a,c)},t,n),r.set(o,l),n(o),l},s=function(a){return i(a).read()};return s[rn]=!0,s.cellFor=i,s.reset=function(){let a=Array.from(r.values());r.clear();for(let o of a)o.reset();return},s};function _o(e){if(!(e!=null&&typeof e==="object"&&!Array.isArray(e)))throw TypeError("Rip App: source expects an options object");if(typeof e.fetch!=="function")throw TypeError("Rip App: source options require a fetch function");let t=To(e.staleTime);if(Object.prototype.hasOwnProperty.call(e,"kind")){if(!(e.kind==="singleton"||e.kind==="keyed"))throw TypeError("Rip App: source kind must be 'singleton' or 'keyed'");if(e.kind==="singleton"){if(e.fetch.length>1)throw TypeError("Rip App: singleton source fetch accepts at most one AbortSignal parameter");return Pr(e.fetch,t)}if(e.fetch.length<1||e.fetch.length>2)throw TypeError("Rip App: keyed source fetch requires a key parameter and accepts one optional AbortSignal parameter");return tn(e.fetch,t)}if(e.fetch.length>1)throw TypeError("Rip App: inferred source fetch accepts no parameters for a singleton or one key parameter for a keyed family");return e.fetch.length===1?tn(e.fetch,t):Pr(e.fetch,t)}var ln,It,nn,vt,$1=Symbol("rip.app.stash.raw"),Ye=Symbol("rip.app.stash.signals"),xc=Symbol("rip.app.stash.keys"),vo=Symbol("rip.app.stash.defaults"),Cc=Symbol.for("rip.app.stash.purge"),Oo=new WeakMap,Pc=0,cn=A1(0),sn=function(){return cn.value++},Io=function(e,t){let r=e[Ye];if(!r)r=new Map,Object.defineProperty(e,Ye,{value:r});let n=r.get(t);if(!n)n=A1(e[t]),r.set(t,n);return n},Ot=function(e){return Io(e,xc)},an=function(e){Ot(e).value=++Pc;return};It=function(e){if(!(e!=null&&typeof e==="object"))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null||Array.isArray(e)};var No=function(e){if(!It(e))return e;let t=Oo.get(e);if(t)return t;return ln(e)},ze=function(e,t){let r=e?.[$1];if(!r)return e[t];let n=r[t];if(C1(n)){if(ge(n))return n;return No(n.read())}return No(Io(r,t).value)},on=function(e,t,r){let n,i,s,a,o=e?.[$1];if(!o)return e[t]=r,r;if(Array.isArray(o)&&t==="length"){if(a=o.length,s=+r,o.length=s,s!==a){if(o[Ye]){for(let f=Math.min(a,s),u=Math.max(a,s);f0))throw TypeError("Rip App: stash path must be a non-empty string");let s=[],a=0;if(e[0]!=="["){i=a;while(a=e.length||a===i)throw TypeError(`Rip App: malformed stash path '${e}'`);if(r=e.slice(i,a),a++,e[a]!=="]")throw TypeError(`Rip App: malformed stash path '${e}'`);a++,s.push(r)}else{i=a;while(a{let n=[];for(let i in r){if(!Object.hasOwn(r,i))continue;let s=r[i];n.push(nn(s,t))}return n})()};vt=function(e){if(!It(e))return e;let t=e[$1]?e[$1]:e;if(Array.isArray(t))return(()=>{let n=[];for(let i of t)if(!C1(i))n.push(vt(i));return n})();let r={};for(let n in t){if(!Object.hasOwn(t,n))continue;let i=t[n];if(C1(i))continue;r[n]=vt(i)}return r};function $o(e){let t=e?.[$1]?e[$1]:e;if(!(t!=null&&typeof t==="object"))return;Object.defineProperty(t,vo,{value:vt(t),configurable:!0});return}function Lr(e){if(C1(e))return e;if(!It(e))return e;let t=e[$1]?e[$1]:e;if(Array.isArray(t))return(()=>{let n=[];for(let i of t)n.push(Lr(i));return n})();let r={};for(let n in t){if(!Object.hasOwn(t,n))continue;let i=t[n];Object.defineProperty(r,n,{value:Lr(i),writable:!0,enumerable:!0,configurable:!0})}return r}function Je(e,t){let r,n,i;if(!(e!=null&&typeof e==="object"))return;if(!(t!=null&&typeof t==="object"))return;let s=e[$1]?e[$1]:e;for(let a in t){if(!Object.hasOwn(t,a))continue;let o=t[a];if(r=Object.prototype.hasOwnProperty.call(s,a)?s[a]:void 0,C1(r))continue;if(Array.isArray(r)&&r.some(function(l){return C1(l)}))continue;if(n=r!=null&&typeof r==="object"&&!Array.isArray(r),i=o!=null&&typeof o==="object"&&!Array.isArray(o),n&&i)Je(e[a],o);else e[a]=vt(o)}return}var jc=function(e,t){let r,n=t[vo];if(!n)return;r=function(i,s,a){let o;for(let l in s){if(!Object.hasOwn(s,l))continue;if(o=s[l],C1(o))continue;if(!(a!=null&&Object.prototype.hasOwnProperty.call(a,l))){delete i[l];continue}if(o!=null&&typeof o==="object"&&!Array.isArray(o))r(i[l],o,a[l])}return},r(e,t,n),Je(e,n);return},Fc={inc:!0,dec:!0,flip:!0,join:!0,keys:!0,has:!0,del:!0,peek:!0,reset:!0,source:!0},Bc=function(e,t,r){if(r==="inc")return function(n,i=1){let s=(Me(e,n)??0)+i;return At(e,n,s),s};if(r==="dec")return function(n,i=1){let s=(Me(e,n)??0)-i;return At(e,n,s),s};if(r==="flip")return function(n){let i=!(Me(e,n)??!1);return At(e,n,i),i};if(r==="join")return function(n,i){if(!(i!=null&&typeof i==="object"&&!Array.isArray(i)))throw TypeError("Rip App: join expects a plain object");M1(function(){let s=Me(e,n);if(!(s!=null&&typeof s==="object"&&!Array.isArray(s)))At(e,n,{}),s=Me(e,n);return(()=>{let a=[];for(let o in i){if(!Object.hasOwn(i,o))continue;let l=i[o];a.push(s[o]=l)}return a})()});return};if(r==="keys")return function(n){let i=n!=null?Me(e,n):e;if(!(i!=null&&typeof i==="object"))return[];let s=i[$1]?i[$1]:i;return Ot(s).value,Object.keys(s)};if(r==="has")return function(n){let i,s,a=qe(n);if(!(a.length>0))return!1;let o=e;for(let l=0;l0))return;let a=e;for(let o=0;o0))throw TypeError("Rip App: component path must be a non-empty string");let t=e.split("/"),r=t.some(function(s){return!s||s==="."||s===".."}),n=t.at(-1),i=t.slice(0,-1).some(function(s){return s.endsWith(".rip")});if(e.includes("\\")||r||i||n===".rip"||!n.endsWith(".rip"))throw TypeError(`Rip App: invalid component path '${e}'`);return e};hn=function(e){if(typeof e!=="string")throw TypeError("Rip App: component source must be a string");return e};fn=function(e){if(e===""||e==null)return"";if(typeof e!=="string")throw TypeError("Rip App: component directory must be a string");let t=e.split("/");if(e.includes("\\")||t.some(function(r){return!r||r==="."||r===".."}))throw TypeError(`Rip App: invalid component directory '${e}'`);return e};function Fr(){let e=new Map,t=new Map,r=new Set,n=function(s,a){let o=[];for(let l of Array.from(r))o.push((()=>{try{return l(s,a)}catch(c){return console.error("[Rip] component watcher error:",c)}})());return o};return{read(s){return e.get(Ae(s))},write(s,a){s=Ae(s),a=hn(a);let o=e.has(s)?"change":"create";e.set(s,a),t.delete(s),n(o,s);return},del(s){s=Ae(s),e.delete(s),t.delete(s),n("delete",s);return},exists(s){return e.has(Ae(s))},size(){return e.size},list(s=""){let a;s=fn(s);let o=s?s+"/":"",l=[];for(let[c]of e)if(c.startsWith(o)){if(a=c.slice(o.length),!a.includes("/"))l.push(c)}return l},listAll(s=""){s=fn(s);let a=s?s+"/":"",o=[];for(let[l]of e)if(l.startsWith(a))o.push(l);return o},load(s){let a,o;if(!(s!=null&&typeof s==="object"&&!Array.isArray(s)))throw TypeError("Rip App: component load expects a source object");for(let l in s){if(!Object.hasOwn(s,l))continue;let c=s[l];l=Ae(l),c=hn(c),e.set(l,c),t.delete(l)}return},watch(s){if(typeof s!=="function")throw TypeError("Rip App: component watch expects a function");r.add(s);let a=!1;return function(){if(a)return;a=!0,r.delete(s);return}},getCompiled(s){return t.get(Ae(s))},setCompiled(s,a){if(s=Ae(s),!(a!=null&&typeof a==="object"&&!Array.isArray(a)))throw TypeError("Rip App: compiled component module must be an object");t.set(s,a);return}}}var Mo,jo,P1,dn,Fo,Bo,Uo,un=/^\w+$/,Vo={static:0,dynamic:1,optional:2,catchall:3},Lo=8;P1=function(e){throw Error(`Rip App: ${e}`)};var xt=function(e){try{return decodeURIComponent(e)}catch(t){return null}};Uo=function(e){if(e==="")return"";if(typeof e!=="string")throw TypeError("Rip App: route root must be a string");let t=e.split("/");if(e.includes("\\")||t.some(function(r){return!r||r==="."||r===".."}))throw TypeError(`Rip App: invalid route root '${e}'`);return e};var Wo=function(e,t){let r;if(r=/^\[\[(.+)\]\]$/.exec(e)){if(!un.test(r[1]))P1(`invalid optional segment '${e}' in '${t}'`);return{kind:"optional",name:r[1]}}else if(r=/^\[\.\.\.(.+)\]$/.exec(e)){if(!un.test(r[1]))P1(`invalid catch-all segment '${e}' in '${t}'`);return{kind:"catchall",name:r[1]}}else if(e.startsWith("[..."))return P1(`invalid catch-all segment '${e}' in '${t}'`);else if(r=/^\[(.+)\]$/.exec(e)){if(!un.test(r[1]))P1(`invalid dynamic segment '${e}' in '${t}'`);return{kind:"dynamic",name:r[1]}}else if(/^\(.+\)$/.test(e))return{kind:"group"};else if(e.includes("[")||e.includes("]"))return P1(`invalid segment '${e}' in '${t}': markers claim a whole segment`);else return{kind:"static",text:e}};Mo=function(e){let t,r=(()=>{let f=[];for(let u of e.slice(0,-4).split("/"))f.push(Wo(u,e));return f})();if(r[r.length-1].kind==="group")P1(`route file name cannot be a group segment: '${e}'`);let n=r.filter(function(f){return f.kind!=="group"});for(let f=0;fLo)P1(`more than ${Lo} optional segments in '${e}'`);let o="",l=[],c=[{shape:"",display:""}];for(let f of n)switch(l.push(Vo[f.kind]),f.kind){case"static":t="/"+f.text,o+=t,c=c.map(function(u){return{shape:u.shape+t,display:u.display+t}});break;case"dynamic":o+=`/:${f.name}`,c=c.map(function(u){return{shape:u.shape+"/:",display:`${u.display}/:${f.name}`}});break;case"optional":o+=`/:${f.name}?`,c=c.flatMap(function(u){return[u,{shape:u.shape+"/:",display:`${u.display}/:${f.name}`}]});break;case"catchall":o+=`/*${f.name}`,c=c.map(function(u){return{shape:u.shape+"/*",display:`${u.display}/*${f.name}`}});break}if(o==="")o="/";if(new Set(c.map(function(f){return f.shape||"/"})).size{let l=[];for(let c of e)l.push(Wo(c,t));return l})().filter(function(l){return l.kind!=="group"});for(let l of n)if(l.kind==="optional"||l.kind==="catchall")P1(`not-found page under an optional or catch-all segment: '${t}'`);let i=[];for(let l of n)if(l.name!=null){if(i.includes(l.name))P1(`duplicate parameter name '${l.name}' in '${t}'`);i.push(l.name)}let s="",a="",o=[];for(let l of n)if(o.push(Vo[l.kind]),l.kind==="static")s+="/"+l.text,a+="/"+l.text;else s+=`/:${l.name}`,a+="/:";return{pattern:s+"/*",shape:a+"/*",parts:n,ranks:o}};Fo=function(e,t){let r;return r=function(n,i){let s,a,o,l;if(n===e.length)return i===t.length?[]:null;let c=e[n];return(()=>{switch(c.kind){case"static":if(!(ih.length))continue;if(a=T.slice(h.length),l=a.split("/"),s=l.some(function(F){return!F||F==="."||F===".."}),a.includes("\\")||s||l.at(-1)===".rip")throw TypeError(`Rip App: invalid route file path '${T}'`);if(l.at(-1)==="_layout.rip"){f.set(l.slice(0,-1).join("/"),T);continue}if(l.at(-1)==="_404.rip"){if(l.slice(0,-1).some(function(F){return F.startsWith("_")}))continue;u.push({...jo(l.slice(0,-1),a),rel:a,file:T});continue}if(l.some(function(F){return F.startsWith("_")}))continue;if(!a.endsWith(".rip"))throw TypeError(`Rip App: route files must be .rip sources: '${T}'`);d.push({...Mo(a),rel:a,file:T})}let p=new Map;for(let T of[...d].sort(function(F,L){return F.relF.pattern)return 1;return 0});let m=new Map;for(let T of[...u].sort(function(F,L){return F.relF.pattern)return 1;return 0});let g=d.map(function(T){return{route:Object.freeze({pattern:T.pattern,file:T.file,layouts:Object.freeze(dn(T.rel,f))}),parts:T.parts}}),b=u.map(function(T){return{route:Object.freeze({pattern:T.pattern,file:T.file,layouts:Object.freeze(dn(T.rel,f))}),parts:T.parts}}),S=function(T){if(typeof T!=="string")throw TypeError("Rip App: route match expects a path string");if(!T.startsWith("/"))return null;while(T.length>1&&T.endsWith("/"))T=T.slice(0,-1);return T==="/"?[]:T.slice(1).split("/")},w=function(T){let F;if(l=S(T),!l)return null;for(let L of g){if(F=Fo(L.parts,l),!F)continue;return{route:L.route,params:Object.fromEntries(F)}}return null},R=function(T){let F;if(l=S(T),!l)return null;for(let L of b){if(F=Bo(L.parts,l),!F)continue;return{route:L.route,params:Object.fromEntries(F)}}return null};return Object.freeze({routes:Object.freeze(g.map(function(T){return T.route})),match:w,notFound:R})}function Ze(e){if(typeof e!=="string")throw TypeError("Rip App: parseQuery expects a query string");return Object.fromEntries(new URLSearchParams(e))}var q1,mn,Ho,Br;q1=function(e){let t=e.indexOf("#"),r=t>=0?e.slice(t+1):"",n=t>=0?e.slice(0,t):e,i=n.indexOf("?"),s=i>=0?n.slice(i+1):"";return{path:i>=0?n.slice(0,i):n,query:s,hash:r}};mn=function(e,t){let r=Object.keys(t);return r.length===Object.keys(e).length&&r.every(function(i){return e[i]===t[i]})?e:t};Br=function(e){if(!(e!=null&&typeof e.match==="function"&&Array.isArray(e.routes)))throw TypeError("Rip App: createRouter requires a route manifest");return e};Ho=function(e){if(e===""||e==null)return"";if(!(typeof e==="string"&&e.startsWith("/")&&!e.endsWith("/")))throw TypeError(`Rip App: invalid router base '${e}'`);return e};function Ur(e){let t,{routes:r,adapter:n,onError:i}=e??{};if(!(r!=null&&(typeof r==="function"||typeof r.match==="function"&&Array.isArray(r.routes))))throw TypeError("Rip App: createRouter requires a route manifest or manifest thunk");for(let v of["read","push","replace","go","listen"])if(typeof n?.[v]!=="function")throw TypeError(`Rip App: router adapter requires a ${v} function`);let s=Ho(e?.base),a=e?.hash===!0;if(s&&a)throw TypeError("Rip App: a base path does not apply in hash mode");let o=typeof r==="function"?Br(r()):Br(r),l=new Set,c=null,h=A1(null),f=A1(null),u=A1({}),d=A1({}),p=A1(""),m=jr(100,A1(!1)),g=Y1(function(){let v=f.value;if(!v)return null;return{route:v,layouts:v.layouts,params:u.value,query:d.value}}),b=function(v){if(!s)return v;if(v===s)return"/";if(v.startsWith(s+"/"))return v.slice(s.length);return null},S=function(v){if(!s)return v;return v==="/"?s:s+v},w=function(v){return a?n.read().split("#")[0]+"#"+v:S(v)},R=function(v){return i?.({status:404,path:v}),!1},T=0,F=function(v){return typeof v==="string"&&!v.startsWith("//")&&!v.includes("\\")},L=function(v){if(!F(v))return null;return o.match(v)},C=function(v){if(!F(v))return null;return o.match(v)??o.notFound?.(v)??null},N=function(v,j,X,x){let Z=mn(u.value,v.params),U=mn(d.value,Ze(X));M1(function(){return h.value=j,f.value=v.route,u.value=Z,d.value=U,p.value=x});let r1={path:j,route:v.route,params:Z,query:U,hash:x};T+=1;try{for(let Q of Array.from(l))try{Q(r1)}catch(l1){console.error("[Rip] router onNavigate error:",l1)}}finally{T-=1}return!0},D=function(){if(T>=10)throw Error("Rip App: navigation loop — ten nested navigations from onNavigate")},O=function(){let v,j,X,x,Z,U=n.read();if(a){if(v=U.indexOf("#"),X=v>=0?U.slice(v+1):"/",X==="")X="/";({path:x,query:Z,hash:j}=q1(X))}else if({path:x,query:Z,hash:j}=q1(U),x=b(x),x==null)return R(q1(U).path);let r1=C(x);if(!r1)return R(x);return N(r1,x,Z,j)},W=null,H=null,G=function(){W=null;let v=n.readState?.()??{};return n.replace(n.read(),{...v,__ripScroll:n.scroll?.save?.()??null})},k=function(){return!W?W=setTimeout(G,100):void 0};return t={init(){if(c)return t;return O(),c=n.listen(function(){if(!O())return;let v=n.readState?.();return n.scroll?.restore?.(v?.__ripScroll??null)}),H=n.scroll?.watch?.(k)??null,t},push(v,j={}){D();let{path:X,query:x,hash:Z}=q1(v),U=C(X);if(!U)return R(X);let r1=n.scroll?.save?.()??null,Q=n.readState?.()??{};if(n.replace(n.read(),{...Q,__ripScroll:r1}),n.push(w(v),null),N(U,X,x,Z),!j.noScroll)n.scroll?.top?.();return!0},replace(v,j={}){D();let{path:X,query:x,hash:Z}=q1(v),U=C(X);if(!U)return R(X);let r1=n.readState?.()??{};if(n.replace(w(v),{...r1,__ripScroll:null}),N(U,X,x,Z),!j.noScroll)n.scroll?.top?.();return!0},back(){return n.go(-1)},forward(){return n.go(1)},match(v){let{path:j,query:X,hash:x}=q1(v),Z=L(j);if(!Z)return null;return{route:Z.route,params:Z.params,query:Ze(X),hash:x}},claims(v){let j,X,x,Z,U;if(!(typeof v==="string"&&v.length>0))return null;if(a){if(j=v.indexOf("#"),j<0)return null;if(x=v.slice(j+1),x==="")x="/";({path:Z,query:U,hash:X}=q1(x))}else{if(!v.startsWith("/"))return null;if({path:Z,query:U,hash:X}=q1(v),Z=b(Z),Z==null)return null}let r1=L(Z);if(!r1)return null;let Q=Z+(U?"?"+U:"")+(X?"#"+X:"");return{path:Z,url:Q,route:r1.route,params:r1.params,query:Ze(U),hash:X}},onNavigate(v){if(typeof v!=="function")throw TypeError("Rip App: onNavigate expects a function");return l.add(v),function(){return l.delete(v)}},rebuild(){let v,j,X,x,Z;if(o=typeof r==="function"?Br(r()):o,!c)return;let U=n.read();if(a){if(v=U.indexOf("#"),X=v>=0?U.slice(v+1):"/",X==="")X="/";({path:x,query:Z,hash:j}=q1(X))}else if({path:x,query:Z,hash:j}=q1(U),x=b(x),x==null)return R(q1(U).path);let r1=C(x);if(!r1)return R(x);let Q=f.value,l1=Q?.layouts??[],I=r1.route.layouts??[],s1=l1.length===I.length&&l1.every(function(e1,K){return e1===I[K]});if(Q?.file===r1.route.file&&s1&&h.value===x)return;N(r1,x,Z,j);return},destroy(){if(c?.(),c=null,H?.(),H=null,W)clearTimeout(W);W=null;return}},Object.defineProperty(t,"current",{get(){return g.value}}),Object.defineProperty(t,"path",{get(){return h.value}}),Object.defineProperty(t,"hash",{get(){return p.value}}),Object.defineProperty(t,"params",{get(){return u.value}}),Object.defineProperty(t,"query",{get(){return d.value}}),Object.defineProperty(t,"navigating",{get(){return m.value},set(v){return m.value=v}}),t}function Vr(){if(typeof window>"u"||window.history==null||window.location==null)throw Error("Rip App: browserAdapter requires a browser environment");window.history.scrollRestoration="manual";let e=function(r){return window.requestAnimationFrame?window.requestAnimationFrame(r):setTimeout(r,16)},t=0;return{read(){return window.location.pathname+window.location.search+window.location.hash},readState(){return window.history.state},push(r,n){return window.history.pushState(n,"",r)},replace(r,n){return window.history.replaceState(n,"",r)},go(r){return window.history.go(r)},listen(r){return window.addEventListener("popstate",r),function(){return window.removeEventListener("popstate",r)}},scroll:{save(){return{x:window.scrollX,y:window.scrollY}},restore(r){let n;if(r==null)return;let i=++t,s=r.x||0,a=r.y||0,o=0;n=function(){if(i!==t)return;let l=Math.max(0,(window.document?.documentElement?.scrollHeight||0)-window.innerHeight);return window.scrollTo(s,Math.min(a,l)),o+=1,a>l&&o<20?e(n):void 0},e(n);return},top(){return t+=1,window.scrollTo(0,0)},watch(r){return window.addEventListener("scroll",r,{passive:!0}),function(){return window.removeEventListener("scroll",r)}}}}}var pn,Go,je;Go=en();je=function(e,t,r,n=null){let i=n??r?.message??String(r),s=Error(i);return s.name="GateFailure",s.status=r?.status??r?.response?.status??500,s.path=e,s.file=t,s.error=r,s};pn=function(e,t){let r=e.getCompiled(t);if(!(r!=null&&typeof r==="object"))throw Error(`Rip App: no precompiled component module for '${t}'`);let n=function(s){return typeof s==="function"&&typeof s.prototype?.mount==="function"};if(n(r.default))return r.default;let i=[];for(let s in r){let a=r[s];if(s==="default")continue;if(n(a))i.push(a)}if(i.length!==1)throw Error(`Rip App: precompiled module '${t}' must export exactly one component class`);return i[0]};function Wr(e){let t;if(!(e!=null&&typeof e==="object"))throw TypeError("Rip App: createRenderer expects an options object");let{router:r,stash:n,components:i,target:s,onError:a}=e;if(!(r!=null&&typeof r==="object"))throw TypeError("Rip App: createRenderer requires a router object");if(!(n!=null&&Ne(n)!==n))throw TypeError("Rip App: createRenderer requires a stash built by createStash");if(!(i!=null&&typeof i.getCompiled==="function"))throw TypeError("Rip App: createRenderer requires a component registry");if(!(s!=null&&typeof s.appendChild==="function"))throw TypeError("Rip App: createRenderer requires a target with appendChild()");if(a!=null&&typeof a!=="function")throw TypeError("Rip App: createRenderer onError must be a function");let o=[],l=null,c=0,h=null,f=[],u=null,d=null,p=null,m=!1,g=function(K,a1){let A=Object.keys(K);return A.length===Object.keys(a1).length&&A.every(function(V){return K[V]===a1[V]})},b=function(K,a1){return K.length===a1.length&&K.every(function(A,V){return a1[V]===A})},S=function(K){let a1=Ne(n),A=K.split(".");for(let V=0;V",M.file,`Rip App: ${M.file} static __gates must be an array`);for(let n1=0;n10))throw w(String(u1),M.file,`Rip App: ${M.file} has a malformed render gate path`);if(f1!=null&&typeof f1!=="function")throw w(u1,M.file,`Rip App: gate '${u1}' has a non-function key`);if(p1=S(u1),!p1)throw w(u1,M.file,`Rip App: gate '${u1}' does not resolve to a source`);if(V=p1.cell,ge(V)){if(!f1)throw w(u1,M.file,`Rip App: gate '${u1}' is keyed and requires a key function`);try{h1=f1(a1,A),V=V.cellFor(h1)}catch(z){throw B=z,je(u1,M.file,B,`Rip App: gate '${u1}' key failed: ${B.message}`)}}else if(f1)throw w(u1,M.file,`Rip App: gate '${u1}' is a singleton and does not accept a key function`);if(M.bindings[n1]={cell:V,tail:p1.tail,path:u1,file:M.file},!c1.has(V))c1.set(V,{cell:V,path:u1,file:M.file,entryIndex:d1})}}return Array.from(c1.values())},F=async function(K,a1,A,V){let B,i1,h1=T(K,a1,A),f1=await Promise.allSettled((()=>{let c1=[];for(let d1 of h1)c1.push(d1.cell.ensure());return c1})());if(V!==c)return!1;let u1=null,p1=function(c1,d1){if(c1.entryIndex=d1,u1==null||d1=u1.entryIndex)break;for(let M of d1.bindings){i1=M.cell.peek();for(let n1 of M.tail){if(i1==null)break;i1=i1[n1]}if(i1==null){p1(w(M.path,M.file,`Rip App: gate '${M.path}' resolved to ${i1}; every gated subpath must exist and be non-null`),c1);break}M.value=i1}}if(u1!=null)throw u1;return!0},L=function(K,a1){return Go(K.cls,{gates:K.bindings,parent:a1,stash:n,router:r})},C=function(K){let a1=[];for(let A=K.length-1;A>=0;A--){let V=K[A];try{V.unmount?.()}catch(B){a1.push(B);try{V._teardown?.({state:"unmounted",hooks:!1,removeDOM:!0})}catch(i1){a1.push(i1)}}}return a1},N=function(){let K=o;o=[],l=null,f=[],u=null,d=null;let a1=C(K);if(a1.length)throw a1[0];return},D=null,O=function(){D?.remove?.(),D=null;return},W=function(K){let a1,A;O();let V=K.error?.stack??K.stack??K.message??String(K);D=(()=>{if(typeof document<"u"&&typeof document.createElement==="function")return a1=document.createElement("pre"),a1.style.cssText="margin:2rem;padding:1rem 1.25rem;color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;font:13px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;overflow-wrap:anywhere",a1.textContent=V,a1;else return A={nodeName:"PRE",textContent:V,parentNode:null,remove(){let B=A.parentNode?.children,i1=B?.indexOf(A)??-1;if(i1>=0)B.splice(i1,1);A.parentNode=null;return}},A})(),s.appendChild(D);return},H=function(){if(typeof document<"u"&&typeof document.createDocumentFragment==="function")return document.createDocumentFragment();let K=[];return{children:K,appendChild(a1){return K.push(a1),a1}}},G=function(K,a1=s){if(O(),K.nodeType===11)a1.appendChild(K);else for(let A of K.children)a1.appendChild(A);return},k=function(K,a1){let A,V=K._nodes??[K._root];for(let B of V){if(!B)continue;if(B.matches?.("#content"))return B;if(A=B.querySelector?.("#content"),A)return A}return V.find(function(B){return B!=null})??a1},v=function(K){return K?.childNodes??K?.children??[]},j=function(K,a1){K.slot=a1,K.slotOwned=v(a1).length;return},X=function(){let K,a1,A=s;for(let V=0;V0&&B.slot!=null&&B.slot!==A){a1=Array.from(v(B.slot)).slice(B.slotOwned??0),j(B,A);for(let i1 of a1)A.appendChild(i1);K._target=A}if(V===f.length-1)break;A=k(K,A)}if(f.length>1)u=A;return},x=function(K,a1,A){let V,B,i1;if(!K.some(function(c1){return typeof c1.cls.prototype?.onError==="function"}))return!1;let h1=H(),f1=h1,u1=[];try{for(let c1=0;c10)j(d1,f1);if(B.mount?.(f1),B._state==="failed")return C(u1),!1;f1=k(B,f1)}if(A!==c)return C(u1),!1;V=null;for(let c1=u1.length-1;c1>=0;c1--){let d1=u1[c1];if(typeof d1.onError==="function"){V=d1;break}}G(h1)}catch(c1){return console.error("[Rip] boundary chain failed to mount:",c1),C(u1),!1}let p1=o;o=u1,l=u1[u1.length-1]??null,f=K,u=f1,d=null;try{V.onError(a1)}catch(c1){console.error("[Rip] boundary onError error:",c1)}for(let c1 of C(p1))console.error("[Rip] boundary teardown error:",c1);return!0},Z=function(K,a1){let A=null;for(let B=K.length-1;B>=0;B--){let i1=K[B];if(typeof i1.instance?.onError==="function"){A=i1.instance;break}}if(!A)return!1;let V=o.slice(K.length);o=K.map(function(B){return B.instance}),l=o[o.length-1]??null,f=K,d=null;try{A.onError(a1)}catch(B){console.error("[Rip] boundary onError error:",B)}for(let B of C(V))console.error("[Rip] boundary teardown error:",B);return!0},U=async function(K,a1,A=i){let V,B,i1,h1,f1,u1,p1=K?.route;if(!p1?.file)throw Error("Rip App: renderer route state requires route.file");let c1=K.params??{},d1=K.query??{},M=K.layouts??[];if(!Array.isArray(M))throw Error("Rip App: renderer route state layouts must be an array");let n1=f.map(function(m1){return m1.file}),_=p;if(p=null,_==null&&l!=null&&d!=null&&p1.file===d.file){if(b([...M,p1.file],n1)&&g(c1,d.params)){if(!(g(d1,d.query)||R(f,c1,d1))){if(typeof l.load==="function")await l.load(c1,d1);if(a1!==c)return null;return d={file:p1.file,params:c1,query:d1},l}}}let z=[...M,p1.file],q=d!=null&&M.length>0&&f.length===M.length+1&&b(M,n1.slice(0,-1))&&!R(f.slice(0,-1),c1,d1),t1=_!=null?Math.max(0,Math.min(_,z.length-1)):q?M.length:0;if(_!=null&&t1>0){if(!(f.length===z.length&&b(z.slice(0,t1),n1.slice(0,t1))))t1=0}let P=[];for(let m1=0;m10){if(i1=q?Z(P.slice(0,V),B):x(P.slice(0,V),B,a1),i1)return null}}throw B}let o1=H(),E1=o1,y1=[],S1=t1>0?P[t1-1].instance:null,_1=t1>0,v1=_1?k(S1,s):s;try{for(let m1=P.slice(t1),D1=0;D10)j(be,E1);if(h1.mount?.(E1),h1._state==="failed")throw Error(`Rip App: component '${be.file}' failed during mount`);if(t1+D11?E1:v1,f=P,d={file:p1.file,params:c1,query:d1};let g1=C(R1);if(m=g1.length>0,g1.length)for(let m1 of g1)if(B=je("","",m1),a!=null)try{a(B)}catch(D1){console.error("[Rip] renderer teardown reporter failed:",D1)}else console.error("[Rip] renderer teardown error:",B);return l},r1=function(K){let a1,A,V=K?.route;if(!V?.file)return;let B=K.params??{},i1=K.query??{},h1=K.layouts??V.layouts??[],f1=f.map(function(c1){return c1.file}),u1=d!=null&&b(h1,f1.slice(0,-1));if(u1&&V.file===d.file&&g(B,d.params))return;let p1=u1?[V.file]:[...h1,V.file];try{a1=(()=>{let c1=[];for(let d1 of p1)c1.push({file:d1,cls:pn(i,d1)});return c1})(),A=T(a1,B,i1)}catch(c1){return}for(let c1 of A)c1.cell.preload().catch(function(){return null});return},Q=function(K,a1){if(!(K!=null&&typeof K==="object"&&typeof a1==="string"))return null;let A=function(B){return typeof B==="function"&&B.__hmrId===a1},V=K.__hmrComponents;if(V!=null&&typeof V==="object")for(let B in V){let i1=V[B];if(A(i1))return i1}if(A(K.default))return K.default;for(let B in K){let i1=K[B];if(A(i1))return i1}return null},l1=function(K){let a1=K+"#",A=[];for(let B of f)if(B.file===K&&B.instance!=null)A.push(B.instance);for(let[B,i1]of Ji())if(typeof B==="string"&&B.startsWith(a1)){for(let h1 of i1.instances)if(!A.includes(h1))A.push(h1)}let V=[];for(let B of A)V.push({instance:B,entry:f.find(function(i1){return i1.instance===B})??null});return V},I=function(K,a1){let A,V,B,i1,h1=(()=>{let c1=[];for(let d1 of K)if(typeof d1==="string"&&d1.endsWith(".rip"))c1.push(d1);return c1})();if(!(h1.length>0))return"unknown";let f1=0,u1=!1,p1=new Set;for(let c1 of h1){if(i1=a1.getCompiled(c1),B=l1(c1),i1==null){if(typeof a1.exists==="function"&&!a1.exists(c1)){if(B.some(function(d1){return d1.instance._state!=="unmounted"}))return"fallback"}else u1=!0;continue}for(let{instance:d1,entry:M}of B){if(p1.has(d1))continue;if(d1._state==="unmounted")continue;if(d1._state!=="mounted")return"fallback";if(V=d1.constructor?.__hmrId,A=typeof V==="string"?Q(i1,V):null,A==null)return"fallback";if(wt(A),_t(d1.constructor,A)!=="patch")return"fallback";if(Qi(d1,A),p1.add(d1),f1+=1,M!=null){if(M.cls=A,M!==f[f.length-1])X()}}}if(f1>0)return"done";return u1?"unknown":"idle"},s1=async function(K,a1=i){let A,V,B,i1,h1;if(!(Array.isArray(K)&&K.length>0))return"noop";for(let q of K)if(q==="stash.rip"||q.startsWith("stash/")||q==="seed.rip")return"escape";let f1=r.current;if(!(f1?.route?.file&&f.length>0))return"noop";let p1=[...f1.layouts??f1.route.layouts??[],f1.route.file],c1=b(p1,f.map(function(q){return q.file})),d1=Zi();try{if(h1=I(K,a1),h1==="done")return Cr(d1),"narrow";if(h1==="idle"&&c1)return _e("noop",{paths:[...K]}),"noop"}catch(q){console.error("[Rip] HMR patch failed; falling back to remount:",q),_e("reject",{reason:"patch-failed",paths:[...K],message:q?.message?String(q.message):String(q)})}let M=new Set(K),n1=-1;for(let q=0;q{if(A?.name==="GateFailure")return A;else return B=K?.route?.file??"",je(A?.path??B,B,A)})(),a?.(V),l==null)W(V);throw V}finally{if(i1===c&&(Array.isArray(r)||typeof r==="string"?r.includes("navigating"):("navigating"in r)))r.navigating=!1}};let e1=null;return e1={current:null,mount:t,preload:r1,remountDirty:s1,start(){if(h)return e1;return r.init?.(),h=x1(function(){let K=r.current;if(K?.route)t(K).catch(function(){return null});return}),e1},stop(){let K,a1;if(c++,h?.(),h=null,Array.isArray(r)||typeof r==="string"?r.includes("navigating"):("navigating"in r))r.navigating=!1;try{N()}catch(A){throw K=A,a1=je("","",K),a?.(a1),a1}return}},Object.defineProperty(e1,"current",{get(){return l}}),e1}var Yo,zo,gn=Symbol.for("rip.app.stash.persisted"),Ko=Symbol.for("rip.app.stash.purge");zo=function(e,t){return C1(t)?void 0:t};Yo=function(e){if(e.storage!=null)return e.storage;if(!(typeof window<"u"&&window.localStorage!=null))throw Error("Rip App: persistStash requires a browser or an injected storage");return e.local?window.localStorage:window.sessionStorage};function Hr(e,t={}){let r,n=Ne(e)||e;if(n[gn])return function(){return null};n[gn]=!0;let i=Yo(t),s=t.key||"__rip_app",a=t.debounce??2000;try{if(r=i.getItem(s),r)Je(e,JSON.parse(r))}catch(u){}let o=null,l=function(){o=null;try{i.setItem(s,JSON.stringify(Ne(e),zo))}catch(u){}return},c=!1,h=x1(function(){if(cn.value,!c){c=!0;return}if(o!=null)clearTimeout(o);return o=setTimeout(l,a),function(){return o!=null?clearTimeout(o):void 0}});if(typeof window<"u")window.addEventListener("beforeunload",l);Object.defineProperty(n,Ko,{value(){if(o!=null)clearTimeout(o),o=null;try{i.removeItem(s)}catch(u){}return},configurable:!0,writable:!0});let f=!1;return function(){if(f)return;if(f=!0,h?.(),typeof window<"u")window.removeEventListener("beforeunload",l);l(),n[Ko]=null,n[gn]=!1;return}}var qo,bn;bn=function(e){if(e.hasAttribute?.("data-router-ignore"))return!0;if(e.hasAttribute?.("download"))return!0;let t=e.getAttribute?.("target");if(t&&t.toLowerCase()!=="_self")return!0;return!1};function Pt(e){let t,r=e.getAttribute?.("href")??e.href;if(!(typeof r==="string"&&r.length>0))return null;if(/^[a-z][a-z0-9+.-]*:/i.test(r)){if(t=typeof location<"u"?location.origin:null,!(t!=null&&r.startsWith(t)))return null;r=r.slice(t.length)}if(r.startsWith("//")||r.includes("\\"))return null;return r}function Lt(e,t){if(t==null)return!1;if(bn(t))return!1;let r=Pt(t);if(r==null)return!1;return e.claims(r)!=null}qo=function(){if(!(typeof document<"u"&&typeof document.querySelectorAll==="function"))throw Error("Rip App: ariaCurrent requires a browser or an injected host");return{anchors(){return Array.from(document.querySelectorAll("a[href]"))},observe(e){if(typeof MutationObserver>"u")return null;let t=!1,r=new MutationObserver(function(){if(t)return;return t=!0,requestAnimationFrame(function(){return t=!1,e()})});return r.observe(document.documentElement??document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["href","target","download","data-router-ignore"]}),function(){return r.disconnect()}}}};function Gr(e,t=null){if(!(e!=null&&typeof e.claims==="function"))throw TypeError("Rip App: ariaCurrent requires a router");t=t??qo();let r=new WeakMap,n=function(){let l,c,h,f,u=e.path;for(let d of t.anchors()){if(l=bn(d)?null:e.claims(Pt(d)??""),h=l==null||u==null?null:l.path===u?"page":l.path!=="/"&&u.startsWith(l.path+"/")?"true":null,c=d.getAttribute?.("aria-current")??null,f=r.get(d),f!==void 0&&c!==f){if(r.delete(d),c!=null)continue;f=void 0}if(h!=null){if(f===void 0&&c!=null)continue;if(c!==h)d.setAttribute("aria-current",h);r.set(d,h)}else if(f!==void 0)d.removeAttribute("aria-current"),r.delete(d)}return},i=function(){try{n()}catch(l){console.error("[Rip] aria-current walk failed:",l)}return},s=x1(function(){return e.path,i()}),a=t.observe?.(i)??null,o=!1;return function(){if(o)return;o=!0,s(),a?.();try{for(let l of t.anchors())if(r.has(l)){if((l.getAttribute?.("aria-current")??null)===r.get(l))l.removeAttribute("aria-current");r.delete(l)}}catch(l){}return}}var Xo,Jo,yn,Sn;Jo=50;Xo=3000;Sn=function(){if(!(typeof document<"u"&&typeof document.addEventListener==="function"))throw Error("Rip App: link listeners require a browser or an injected host");return{listen(e,t,r=null){return document.addEventListener(e,t,r??!1),function(){return document.removeEventListener(e,t,r??!1)}}}};yn=function(e){while(e!=null&&e.tagName!=="A")e=e.parentElement;return e??null};function Kr(e,t=null){if(!(e!=null&&typeof e.claims==="function"&&typeof e.push==="function"))throw TypeError("Rip App: interceptClicks requires a router");t=t??Sn();let r=function(s){if(s.defaultPrevented)return;if(s.button!==0||s.metaKey||s.ctrlKey||s.shiftKey||s.altKey)return;let a=yn(s.target);if(!(a!=null&&Lt(e,a)))return;let o=e.claims(Pt(a));if(o==null)return;s.preventDefault(),e.push(o.url,{noScroll:a.hasAttribute?.("data-router-noscroll")===!0});return},n=t.listen("click",r),i=!1;return function(){if(i)return;i=!0,n();return}}function Yr(e,t,r=null){if(!(e!=null&&typeof e.claims==="function"))throw TypeError("Rip App: preloadLinks requires a router");if(!(t!=null&&typeof t.preload==="function"))throw TypeError("Rip App: preloadLinks requires a renderer with preload()");r=r??Sn();let n=null,i=null,s={href:null,at:0},a=function(){if(n!=null)clearTimeout(n);n=null,i=null;return},o=function(f){let u=yn(f.target);if(!(u!=null&&Lt(e,u)))return;if(u===i)return;a(),i=u;let d=Pt(u);n=setTimeout(function(){n=null,i=null;let p=Date.now();if(d===s.href&&p-s.at1)throw AggregateError(S,"Rip App: launch.destroy failed");return};globalThis.__ripStash=l,globalThis.__ripRouter=h;try{if(typeof s.replaceChildren==="function")s.replaceChildren();else if(Array.isArray(s.children))s.children.length=0;f.start()}catch(S){throw b(),S}return{stash:l,components:c,router:h,renderer:f,destroy:b}}var En,qr,kn,Tn,wn,V1;V1=function(e){if(!(typeof e==="string"&&e.length>0))throw TypeError("Rip Workspace: component path must be a non-empty string");let t=e.split("/"),r=t.some(function(s){return!s||s==="."||s===".."||s.startsWith(".")}),n=t.at(-1),i=t.slice(0,-1).some(function(s){return s.endsWith(".rip")});if(e.includes("\\")||e.startsWith("/")||r||i||n===".rip"||!n.endsWith(".rip"))throw TypeError(`Rip Workspace: invalid component path '${e}'`);return e};qr=function(e){if(typeof e!=="string")throw TypeError("Rip Workspace: component source must be a string");return e};kn=function(e){if(e===""||e==null)return"";if(typeof e!=="string")throw TypeError("Rip Workspace: component directory must be a string");let t=e.split("/");if(e.includes("\\")||e.startsWith("/")||t.some(function(r){return!r||r==="."||r===".."||r.startsWith(".")}))throw TypeError(`Rip Workspace: invalid component directory '${e}'`);return e};Tn=function(e){if(!(typeof e==="string"&&/^[A-Za-z0-9_]{6}$/.test(e)))throw TypeError("Rip Workspace: publication hash must be six Base64URL-folded characters");return e};wn=function(e){if(!(e!=null&&typeof e==="object"&&!Array.isArray(e)))throw TypeError("Rip Workspace: compiled component module must be an object");return e};En=function(e){let t;if(!(e!=null&&typeof e==="object"&&!Array.isArray(e)))throw TypeError("Rip Workspace: prepared state must be an object");let r=Tn(e.hash);if(!(e.sources!=null&&typeof e.sources==="object"&&!Array.isArray(e.sources)))throw TypeError("Rip Workspace: prepared sources must be an object");if(!(e.compiled!=null&&typeof e.compiled==="object"&&!Array.isArray(e.compiled)))throw TypeError("Rip Workspace: prepared compiled modules must be an object");let n=new Map,i=new Map,s=e.sources;for(let o in s){if(!Object.hasOwn(s,o))continue;let l=s[o];n.set(V1(o),qr(l))}let a=e.compiled;for(let o in a){if(!Object.hasOwn(a,o))continue;let l=a[o];if(o=V1(o),!n.has(o))throw Error(`Rip Workspace: compiled module '${o}' has no source`);i.set(o,wn(l))}return{hash:r,sources:n,compiled:i}};function Xr(){let e,t=new Map,r=new Map,n=new Set,i=null,s=!1,a=function(l,c){for(let h of Array.from(n))try{h(l,c)}catch(f){console.error("[Rip] workspace watcher error:",f)}return},o=function(l){t=l.sources,r=l.compiled,i=l.hash;return};return e={read(l){return t.get(V1(l))},write(l,c){if(s)throw Error("Rip Workspace: cannot write during a publication transition");l=V1(l),c=qr(c);let h=t.has(l)?"change":"create";t.set(l,c),r.delete(l),a(h,l);return},del(l){if(s)throw Error("Rip Workspace: cannot delete during a publication transition");l=V1(l),t.delete(l),r.delete(l),a("delete",l);return},exists(l){return t.has(V1(l))},size(){return t.size},list(l=""){let c;l=kn(l);let h=l?l+"/":"",f=[];for(let[u]of t)if(u.startsWith(h)){if(c=u.slice(h.length),!c.includes("/"))f.push(u)}return f},listAll(l=""){l=kn(l);let c=l?l+"/":"",h=[];for(let[f]of t)if(f.startsWith(c))h.push(f);return h},load(l){if(s)throw Error("Rip Workspace: cannot load during a publication transition");if(!(l!=null&&typeof l==="object"&&!Array.isArray(l)))throw TypeError("Rip Workspace: component load expects a source object");let c=[];for(let h in l){if(!Object.hasOwn(l,h))continue;let f=l[h];c.push([V1(h),qr(f)])}for(let[h,f]of c)t.set(h,f),r.delete(h);return},watch(l){if(typeof l!=="function")throw TypeError("Rip Workspace: component watch expects a function");n.add(l);let c=!1;return function(){if(c)return;c=!0,n.delete(l);return}},getCompiled(l){return r.get(V1(l))},setCompiled(l,c){if(s)throw Error("Rip Workspace: cannot compile during a publication transition");if(l=V1(l),!t.has(l))throw Error(`Rip Workspace: setCompiled for unknown component path '${l}'`);r.set(l,wn(c));return},hash(){return i},activate(l){if(i!=null)throw Error("Rip Workspace: a publication is already active");if(s)throw Error("Rip Workspace: a publication transition is already staged");o(En(l));return},stage(l,c,h){if(s)throw Error("Rip Workspace: a publication transition is already staged");if(l=Tn(l),i!==l)throw Error(`Rip Workspace: change starts at ${l}, not ${i}`);if(!Array.isArray(h))throw TypeError("Rip Workspace: changed paths must be an array");let f=h.map(function(g){return V1(g)});if(new Set(f).size!==f.length)throw Error("Rip Workspace: changed paths must be unique");let u=En(c),d={sources:t,compiled:r,hash:i};s=!0;let p=!1,m=function(g){let b;if(p)throw Error("Rip Workspace: publication transition is already finished");if(p=!0,s=!1,!g)return;o(u);for(let S of f)b=!u.sources.has(S)?"delete":d.sources.has(S)?"change":"create",a(b,S);return};return{components:{getCompiled(g){return u.compiled.get(V1(g))},exists(g){return u.sources.has(V1(g))}},commit(){return m(!0)},rollback(){return m(!1)}}},commit(l,c,h){e.stage(l,c,h).commit();return}},e}var e2,t2,r2,i2,n2,s2,a2,Jr;r2=250;t2=8000;e2=5000;a2=0;Jr=function(e){return typeof e==="string"&&/^[A-Za-z0-9_]{6}$/.test(e)};n2=function(){if(typeof location>"u")throw Error("Rip App: connectFeed needs a hub URL (no location to derive one from)");return`${location.protocol==="https:"?"wss":"ws"}://${location.host}/hub`};s2=function(){if(typeof WebSocket>"u")throw Error("Rip App: connectFeed needs a socket factory (no global WebSocket)");return function(e){return new WebSocket(e)}};i2=function(){if(typeof fetch>"u")throw Error("Rip App: connectFeed needs a fetch (no global fetch)");return function(e,t){return fetch(e,t)}};function Zr(e,t={}){let r;if(!(e!=null&&typeof e.hash==="function"&&typeof e.apply==="function"&&typeof e.reload==="function"))throw TypeError("Rip App: connectFeed expects hash, apply, and reload callbacks");if(!Jr(e.hash()))throw TypeError("Rip App: connectFeed client hash must be six Base64URL-folded characters");let n=t.hub??n2(),i=t.latestUrl??"/latest.json",s=t.makeSocket??s2(),a=t.fetch??i2(),o=t.report??function(...x){return console.error(...x)},l=t.backoff?.min??r2,c=t.backoff?.max??t2,h=t.ackTimeout??e2,f=!1,u=!1,d=!1,p=!1,m=null,g=0,b=null,S=null,w=0,R=null,T=[],F=Promise.resolve(),L=new Map,C=null,N=function(x){if(u||f)return;u=!0,e.reload(x);return},D=async function(x){let Z;if(u||f)return!1;try{if(Z=await e.apply(x),Z==="rejected"){if(Jr(x?.hash))C=x?.hash;return!1}if(Z==="reload"||!Z)return N("change could not be applied"),!1;return C=null,!0}catch(U){return o("[Rip] publication change failed:",U),N("change failed"),!1}},O=function(x,Z){F=F.then(async function(){if(Z!==w)return!0;return await D(x)}),F=F.catch(function(U){return o("[Rip] publication queue failed:",U),N("change queue failed"),!1});return},W=async function(x){let Z,U;if(f||u||x!==w)return;let r1=e.hash(),Q=await a(i,{cache:"no-store"});if(!Q?.ok)throw Error(`latest.json fetch failed (${Q?.status})`);let l1=await Q.json();if(!(l1!=null&&typeof l1==="object"&&!Array.isArray(l1)&&Object.keys(l1).length===1&&Object.hasOwn(l1,"hash")&&Jr(l1.hash)))throw Error("latest.json is malformed");if(f||u||x!==w)return;if(C!=null){if(l1.hash!==C){N(`a newer App generation followed rejected ${C}`);return}T=[],p=!0,g=0;return}let I=new Set([r1]),s1=0;while(s10))return"ignore";let s=(()=>{let h=[];for(let f of n)if(typeof f==="string"&&f.endsWith(".css"))h.push(f);return h})(),a=(()=>{let h=[];for(let f of n)if(typeof f==="string"&&f.endsWith(".rip"))h.push(f);return h})(),o=(()=>{let h=[];for(let f of n)if(typeof f==="string"&&!f.endsWith(".rip")&&!f.endsWith(".css"))h.push(f);return h})();if(a.length===0){if(o.length>0)return"reload";if(s.length>0)return"css";return"ignore"}let l=await e.renderer.remountDirty(a,i);if(l==="narrow")return t(`[Rip] applied ${a.join(", ")} — update`),"update";if(l==="reload")return t(`[Rip] applied ${a.join(", ")} — reload`),"reload";if(l==="noop")return"ignore";if(await e.escape(a,i)==="reload")return"reload";return t(`[Rip] applied ${a.join(", ")} — update`),"update"}}}var Wc=function(e){if(e instanceof Uint8Array)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw TypeError("Rip App: rash expects bytes")},Hc=function(e){let t,r,n,i,s,a,o,l,c,h,f,u,d,p,m,g,b=Wc(e);if(typeof Bun<"u"&&Bun.CryptoHasher!=null)return new Uint8Array(new Bun.CryptoHasher("sha256").update(b).digest());let S=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],w=b.length*8,R=new Uint8Array(b.length+9+63&-64);R.set(b),R[b.length]=128;let T=new DataView(R.buffer);T.setUint32(R.length-4,w>>>0,!1),T.setUint32(R.length-8,Math.floor(w/4294967296)>>>0,!1);let F=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],L=function(W,H){return W>>>H|W<<32-H},C=new Uint32Array(64),N=0;while(N>>3,p=L(C[W-2],17)^L(C[W-2],19)^C[W-2]>>>10,C[W]=C[W-16]+d+C[W-7]+p>>>0;[n,i,s,o,l,c,h,f]=F;for(let W=0;W<64;W++)r=L(l,6)^L(l,11)^L(l,25),a=l&c^~l&h,m=f+r+a+S[W]+C[W]>>>0,t=L(n,2)^L(n,13)^L(n,22),u=n&i^n&s^i&s,g=t+u>>>0,f=h,h=c,c=l,l=o+m>>>0,o=s,s=i,i=n,n=m+g>>>0;F[0]=F[0]+n>>>0,F[1]=F[1]+i>>>0,F[2]=F[2]+s>>>0,F[3]=F[3]+o>>>0,F[4]=F[4]+l>>>0,F[5]=F[5]+c>>>0,F[6]=F[6]+h>>>0,F[7]=F[7]+f>>>0,N+=64}let D=new Uint8Array(32),O=new DataView(D.buffer);for(let W=0;W<8;W++)O.setUint32(W*4,F[W],!1);return D},Mt=function(e){let t=Hc(e),r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";return(r[t[0]>>2]+r[(t[0]&3)<<4|t[1]>>4]+r[(t[1]&15)<<2|t[2]>>6]+r[t[2]&63]+r[t[3]>>2]+r[(t[3]&3)<<4|t[4]>>4]).replaceAll("-","_")},ei=function(e){let t=JSON.stringify(e.map(function(r){return[r.id,r.hash]}));return Mt(new TextEncoder().encode(t))};var Gc=function(){return globalThis.__ripStash},Kc=function(){return globalThis.__ripRouter};(()=>{if(typeof document>"u"||typeof WebSocket>"u")return;let e=document.currentScript;if(!(e?/\bwatch\.js\b/.test(e.src||""):!!document.querySelector("script[watch]"))||globalThis.__ripWatch)return;globalThis.__ripWatch=!0;let r=location.pathname,n=(h)=>Array.isArray(h)&&(h.includes(r)||r.endsWith("/")&&h.includes(r+"index.html")),i=(h)=>h.headers.get("etag")||h.headers.get("last-modified")||"",s=null;fetch(location.href,{method:"HEAD",cache:"no-store"}).then((h)=>{s=i(h)}).catch(()=>{});let a=()=>{if(s===null)return;fetch(location.href,{method:"HEAD",cache:"no-store"}).then((h)=>{if(i(h)!==s)location.reload()}).catch(()=>{})},o=!1,l=0,c=()=>{let h=location.protocol==="https:"?"wss://":"ws://",f=new WebSocket(h+location.host+"/hub");f.onopen=()=>f.send('{"+":["/assets"],"?":"observe"}'),f.onmessage=(u)=>{let d;try{d=JSON.parse(u.data)}catch{return}for(let p of Array.isArray(d)?d:[d]){if(!p||typeof p!=="object"||"<"in p)continue;if("!"in p){if(o)a();o=!0,l=0}if(n(p.touched))location.reload()}},f.onclose=()=>{if(l+=1,!o&&l>=6)return;setTimeout(c,Math.min(8000,500*2**(l-1)))},f.onerror=()=>{}};c()})();var{__hmrEmit:Yc}=Nt;function Nn(e,t={}){if(t.face==="ts")throw Error("rip: TypeScript face is unavailable in the browser");return _a(e,{...t,face:"js"})}var u2={intrinsics:pr,stdlib:gr,schema:Er,reactive:Ar,components:Nt},d2=Object.freeze({...pr,...gr,...Er,...Ar,...Nt}),zc=Object.freeze({rash:Mt,check:ei}),m2=Object.freeze({"rip/app":ti,"rip/app/rash":zc});var qc=new Map(Object.keys(u2).map((e)=>[new URL(`./runtime/${e}.js`,import.meta.url).pathname,e])),Xc=/(?:^|\/)src\/runtime\/(intrinsics|stdlib|schema|reactive|components)\.js$/,ri="__ripModuleBridge",Jc=(e)=>e.slice(1,-1),o2=(e,t)=>{let r=e.split("/").slice(0,-1);for(let n of t.split("/")){if(n===""||n===".")continue;if(n===".."){if(!r.length)return null;r.pop()}else r.push(n)}return r.join("/")},l2=(e)=>{if(typeof URL<"u"&&typeof URL.createObjectURL==="function"&&typeof Blob<"u")return URL.createObjectURL(new Blob([e],{type:"text/javascript"}));return`data:text/javascript;base64,${btoa(unescape(encodeURIComponent(e)))}`};function p2({components:e,embeddedPackages:t={},debug:r=!1,hmr:n=!1}={}){if(!e||typeof e.read!=="function")throw TypeError("rip: createModuleLoader requires a component registry");let i=new Map,s=new Map,a=new Map,o=new Map,l=new Map,c=new Set,h=(m)=>{if(typeof m==="string"&&m.startsWith("blob:")&&typeof URL?.revokeObjectURL==="function")URL.revokeObjectURL(m)},f=async()=>{let m=[...c];c.clear(),await Promise.allSettled(m.map(async(g)=>h(await g)))},u=(m,g)=>{if(a.has(m))return a.get(m);globalThis[ri]??={};let b=globalThis[ri][m];if(b&&b!==g)throw Error(`rip: two copies of embedded module '${m}' are active on one page`);globalThis[ri][m]=g;let S=[`const ns = globalThis['${ri}'][${JSON.stringify(m)}];`];for(let R of Object.keys(g))if(R==="default")S.push("export default ns['default'];");else if(/^[A-Za-z_$][\w$]*$/.test(R))S.push(`export const ${R} = ns[${JSON.stringify(R)}];`);else throw Error(`rip: embedded module '${m}' exports '${R}', which cannot cross the module bridge`);let w=l2(S.join(` -`));return a.set(m,w),w},d=(m,g)=>{let b=Jc(m),S=qc.get(b)??b.match(Xc)?.[1];if(S)return{bridge:`runtime:${S}`,namespace:u2[S]};let w=(F)=>{try{return e.exists(F)}catch{return!1}},R=b.endsWith(".rip")?"":` — did you mean '${b}.rip'?`;if(b.startsWith("./")||b.startsWith("../")){let F=o2(g,b);if(F&&w(F))return{path:F};if(!g.startsWith("rip/")){let L=o2(`app/${g}`,b),C=L?.startsWith("app/")?L.slice(4):L;if(C&&w(C))return{path:C}}throw Error(`rip: '${g}' imports '${b}', which is not in the bundle${R}`)}let T=b.match(/^rip\/([\w-]+)(?:\/(.+))?$/);if(T){if(w(b))return{path:b};let F=`rip/${T[1]}`,L=t[b];if(L)return{bridge:`package:${b}`,namespace:L};if(t[F])throw Error(`rip: '${g}' imports '${b}', which '${F}' does not export in the browser`);let C=T[2]?T[2].endsWith(".rip")?T[2]:`${T[2]}.rip`:"index.rip",N=`${F}/${C}`;if(!w(N))throw Error(`rip: '${g}' imports '${b}', but '${N}' is not in the bundle — `+"only packages declaring browser safety travel to the browser");return{path:N}}throw Error(`rip: '${g}' imports '${b}', which is not loadable in a browser — `+"server-only and unknown modules never travel to the browser")},p=(m,g)=>{if(g.includes(m))throw Error(`rip: import cycle through '${m}' (${g.join(" -> ")} -> ${m})`);if(i.has(m))return i.get(m);let b=(async()=>{let S=e.read(m);if(S===void 0)throw Error(`rip: '${m}' is not in the bundle`);let w=Nn(S,{path:m,runtimeDelivery:"import",browserModule:!0,...n?{hmr:!0}:null}),R=w.code;for(let T of[...w.imports].reverse()){let F=d(T.specifier,m);if(F.path){let C=o.get(F.path);if(!C)o.set(F.path,C=new Set);C.add(m);let N=l.get(m);if(!N)l.set(m,N=new Set);N.add(F.path)}let L=F.bridge?u(F.bridge,F.namespace):await p(F.path,[...g,m]);R=`${R.slice(0,T.start)}${JSON.stringify(L)}${R.slice(T.end)}`}if(r){let T=btoa(unescape(encodeURIComponent(JSON.stringify(w.map))));R+=` -//# sourceMappingURL=data:application/json;charset=utf-8;base64,${T}`}return l2(R)})();return i.set(m,b),b.catch(()=>i.delete(m)),b};return{async import(m){if(s.has(m))return s.get(m);let b=await import(await p(m,[]));return s.set(m,b),e.setCompiled(m,{...b}),b},invalidate(m){let g=[m],b=new Set;while(g.length){let S=g.pop();if(b.has(S))continue;if(b.add(S),i.has(S))c.add(i.get(S));i.delete(S),s.delete(S);for(let w of o.get(S)??[])g.push(w);o.delete(S);for(let w of l.get(S)??[]){let R=o.get(w);if(R?.delete(S),R?.size===0)o.delete(w)}l.delete(S)}return b},collect:f,dispose(){for(let m of i.values())c.add(m);i.clear(),s.clear(),o.clear(),l.clear();for(let m of a.values())h(m);a.clear(),f()}}}var g2=Object.keys(d2),Zc=g2.map((e)=>d2[e]),Qc=()=>{if(typeof document>"u"||typeof document.querySelectorAll!=="function")throw Error("rip: processRipScripts requires a browser or an injected host");return{scripts(){return Array.from(document.querySelectorAll('script[type="text/rip"]')).map((e)=>({src:e.getAttribute("src"),text:e.textContent??""}))},async fetchText(e){let t=await fetch(e);if(!t.ok)throw Error(`${t.status} ${t.statusText}`);return t.text()},prepare(e,t){return Function(...t,e)},async ready(){if(document.readyState==="loading")await new Promise((e)=>document.addEventListener("DOMContentLoaded",e,{once:!0}))},report(e){console.error("[Rip]",String(e))}}},e4=(e)=>{let t=e.split(` -`),r=null;for(let n of t){if(!n.trim())continue;let i=n.match(/^[ \t]*/)[0];if(r===null){r=i;continue}let s=0;while(sn.trim()?n.slice(r.length):n).join(` -`)},t4=(e)=>{try{return new URL(e,"https://rip.invalid/").href}catch{return e}};async function Fh(e=null){let t=e??Qc();await t.ready?.();let r=[],n=new Set,i=(u)=>{let d=t4(u);if(n.has(d))throw Error(`rip: script source '${u}' is listed more than once`);n.add(d)};for(let u of t.dataSrc?.()??[])i(u),r.push({label:u,text:null,url:u});let s=0;for(let u of t.scripts?.()??[])if(s+=1,u.src)i(u.src),r.push({label:u.src,text:null,url:u.src});else r.push({label:``,text:e4(u.text??"")});let a=[],o=(u,d)=>{a.push({label:u,error:d}),t.report?.(d)},l=[];for(let u of r){if(u.text!==null){l.push(u);continue}if(typeof t.fetchText!=="function")throw Error("rip: this host loads script sources by URL but provides no fetchText");try{l.push({...u,text:await t.fetchText(u.url)})}catch(d){o(u.label,Error(`rip: failed to load '${u.label}': ${d.message}`))}}let c=l,h=null;while(c.length){let u=[],d=1,p=[];for(let m of c){u.push({source:m,start:d});let g=m.text.endsWith(` +`+f+"}"}return null};return(n)=>{let a=i(n,0);if(a!==null)console.log(a);else console.dir(n,{depth:null,colors:!0});return n}})(),Ma=(e,t)=>{throw t!==void 0?new e(t):Error(e)},ja=(e,t)=>t!==void 0?(e>t&&([e,t]=[t,e]),Math.floor(Math.random()*(t-e+1)+e)):e?Math.floor(Math.random()*e):Math.random(),Fa=(e)=>new Promise((t)=>setTimeout(t,e)),Ba=(e)=>{throw Error(e||"Not implemented")},Ua=(...e)=>console.warn(...e),Va=(...e)=>e[0].map((t,r)=>e.map((s)=>s[r])),Wa=(e)=>{if(typeof e==="string")return e;if(e==null)return"";if(typeof e==="number"||typeof e==="bigint"||typeof e==="boolean")return String(e);if(typeof e==="symbol")return e.description||"";if(e instanceof Uint8Array||e instanceof ArrayBuffer)return new TextDecoder().decode(e instanceof Uint8Array?e:new Uint8Array(e));if(Array.isArray(e))return e.join(",");if(typeof e.toString==="function"&&e.toString!==Object.prototype.toString)try{return e.toString()}catch{return""}return""};var Er={};Fe(Er,{SchemaDef:()=>Et,SchemaError:()=>I1,SchemaRegistry:()=>ie,__schema:()=>oc,installPersistence:()=>rc,registerCoercer:()=>sc});var za=Symbol.for("rip.runtime.schema");if(globalThis[za])throw Error("two copies of the Rip schema runtime loaded in one process — schemas from different copies "+"cannot see each other (separate registries, distinct SchemaError classes). Run .rip sources through the rip CLI/loader (one shared runtime module per process), or load only one standalone-compiled file per process.");globalThis[za]=!0;var Te=null;function rc(e){if(Te&&Te!==e)throw Error("the Rip schema persistence runtime is already installed — two different copies met in one process");Te=e}class I1 extends Error{constructor(e,t,r){super(ic(e,t));this.name="SchemaError",this.issues=e,this.schemaName=t||null,this.schemaKind=r||null}}function ic(e,t){if(!e||!e.length)return"SchemaError";return(t?t+": ":"")+e.map((s)=>s.message||s.error||"invalid").join("; ")}var qa={__proto__:null,string:(e)=>typeof e==="string",number:(e)=>typeof e==="number"&&!Number.isNaN(e),integer:(e)=>Number.isInteger(e),boolean:(e)=>typeof e==="boolean",date:(e)=>e instanceof Date&&!Number.isNaN(e.getTime()),datetime:(e)=>e instanceof Date&&!Number.isNaN(e.getTime()),email:(e)=>typeof e==="string"&&/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e),url:(e)=>typeof e==="string"&&/^https?:\/\/.+/.test(e),uuid:(e)=>typeof e==="string"&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e),phone:(e)=>typeof e==="string"&&/^[\d\s\-+()]+$/.test(e),zip:(e)=>typeof e==="string"&&/^\d{5}(-\d{4})?$/.test(e),text:(e)=>typeof e==="string",json:(e)=>e!==void 0,variant:(e)=>e!==void 0,any:()=>!0},Rr={integer(e){if(typeof e==="number")return Number.isInteger(e)?{ok:!0,value:e}:{ok:!1};if(typeof e==="string"&&/^[+-]?\d+$/.test(e.trim()))return{ok:!0,value:parseInt(e.trim(),10)};return{ok:!1}},number(e){if(typeof e==="number")return Number.isNaN(e)?{ok:!1}:{ok:!0,value:e};if(typeof e==="string"&&/^[+-]?(\d+\.?\d*|\.\d+)([eE][+-]?\d+)?$/.test(e.trim()))return{ok:!0,value:Number(e.trim())};return{ok:!1}},boolean(e){if(typeof e==="boolean")return{ok:!0,value:e};if(e==="true"||e==="1"||e===1)return{ok:!0,value:!0};if(e==="false"||e==="0"||e===0)return{ok:!0,value:!1};return{ok:!1}},date(e){if(e instanceof Date)return Number.isNaN(e.getTime())?{ok:!1}:{ok:!0,value:e};if(typeof e==="number"&&Number.isFinite(e))return{ok:!0,value:new Date(e)};let t=typeof e==="string"?/^(\d{4})-(\d{2})-(\d{2})/.exec(e):null;if(t){let r=+t[2],s=+t[3],i=new Date(Date.UTC(+t[1],r,0)).getUTCDate();if(r<1||r>12||s<1||s>i)return{ok:!1};let n=new Date(e);if(!Number.isNaN(n.getTime()))return{ok:!0,value:n}}return{ok:!1}}};Rr.datetime=Rr.date;function br(e){if(e!==null&&typeof e==="object"&&!Array.isArray(e))return null;return{field:"",error:"object",message:"input must be an object; got "+(e===null?"null":Array.isArray(e)?"an array":"a "+typeof e)}}var Hi=new Map;function sc(e,t,r){if(typeof e!=="string"||typeof t!=="function")throw Error("registerCoercer(name, fn, opts?): name string and fn required");let s=Object.prototype.toString.call(t);if(s==="[object AsyncFunction]"||s==="[object GeneratorFunction]"||s==="[object AsyncGeneratorFunction]")throw Error("registerCoercer: coercer '~:"+e+"' must be a plain synchronous function");let i=r?.raw===!0,n=Hi.get(e);if(n){if(n.raw===i&&String(n.fn)===String(t))return t;throw Error("registerCoercer: coercer '~:"+e+"' is already registered")}return Hi.set(e,{fn:t,raw:i}),t}function St(e){if(qa[e])return null;let t=ie.get(e);return t&&(t.kind==="shape"||t.kind==="input"||t.kind==="model"||t.kind==="union")?t:null}function Ki(e,t,r){let s=qa[t];if(s)return s(e)?{value:e}:{errors:[{field:"",error:"type",message:"must be "+t}]};let i=ie.get(t);if(!i)return{value:e};if(i.kind==="enum"){let a=i._validateEnum(e,!0);return a.length?{errors:[{field:"",error:"enum",message:a[0].message}]}:{value:i._materializeEnum(e)}}if(i.kind==="mixin")return{errors:[{field:"",error:"type",message:":mixin "+t+" is not usable as a field type"}]};if(i.kind==="union"){let a=i._unionResolve(e);if(a.issue)return{errors:[a.issue]};let o=r?.existing?a.def._runExistingSync(e,{...r,materialize:!1,materializeNested:!1}):a.def._runSync(e,{...r,materialize:!1,materializeNested:!1});if(o.thrown){if(r?.derived==="throw")throw o.thrown;return{errors:[{field:"",error:"derived",message:o.thrown?.message||String(o.thrown)}]}}return o.ok?{value:o.value}:{errors:o.errors}}if(e===null||typeof e!=="object"||Array.isArray(e))return{errors:[{field:"",error:"type",message:"must be a "+t+" object"}]};let n=r?.existing?i._runExistingSync(e,{...r,materialize:!1,materializeNested:!1}):i._runSync(e,{...r,materialize:!1,materializeNested:!1});if(n.thrown){if(r?.derived==="throw")throw n.thrown;return{errors:[{field:"",error:"derived",message:n.thrown?.message||String(n.thrown)}]}}return n.ok?{value:n.value}:{errors:n.errors}}async function Ha(e,t,r){let s=St(t);if(s===null)return Ki(e,t,r);if(s.kind==="union"){let n=s._unionResolve(e);if(n.issue)return{errors:[n.issue]};let a=r?.existing?await n.def._runExistingAsync(e,{...r,materialize:!1,materializeNested:!1}):await n.def._runAsync(e,{...r,materialize:!1,materializeNested:!1});if(a.thrown){if(r?.derived==="throw")throw a.thrown;return{errors:[{field:"",error:"derived",message:a.thrown?.message||String(a.thrown)}]}}return a.ok?{value:a.value}:{errors:a.errors}}if(e===null||typeof e!=="object"||Array.isArray(e))return{errors:[{field:"",error:"type",message:"must be a "+t+" object"}]};let i=r?.existing?await s._runExistingAsync(e,{...r,materialize:!1,materializeNested:!1}):await s._runAsync(e,{...r,materialize:!1,materializeNested:!1});if(i.thrown){if(r?.derived==="throw")throw i.thrown;return{errors:[{field:"",error:"derived",message:i.thrown?.message||String(i.thrown)}]}}return i.ok?{value:i.value}:{errors:i.errors}}function Rt(e,t){if(!t)return e;return e+(t.startsWith("[")?t:"."+t)}function yr(e,t,r){if(!t)return e+" "+r;if(r.startsWith(t))return e+r.slice(t.length);return e+": "+r}var Sr=Symbol("schema.materialization-error");function Ka(e,t){if(e&&e[Sr])return{[Sr]:!0,error:e.error,field:Rt(t,e.field)};return{[Sr]:!0,error:e,field:t}}function Ke(e){return e&&e[Sr]?{thrown:e.error,derivedField:e.field}:{thrown:e,derivedField:""}}var nc=tt;function Ga(e){let t=(s)=>JSON.stringify(s??null,(i,n)=>n instanceof RegExp?String(n):typeof n==="function"?"":n),r=[e.kind];for(let s of e._desc.entries||[])switch(s.tag){case"field":r.push("f:"+s.name+":"+(s.typeName||"")+(s.array?"[]":"")+":"+(s.modifiers||[]).join("")+(s.literals?":"+s.literals.join(","):"")+":"+t(s.constraints)+(s.coerce?":~"+(s.coercer||""):"")+(s.transform?":t":""));break;case"enum-member":r.push("e:"+s.name+"="+String(s.value));break;case"directive":r.push("d:"+s.name+":"+t(s.args));break;case"ensure":r.push("n:"+(s.message||""));break;default:r.push(s.tag+":"+(s.name||""))}return r.join("|")}var ke=0,ie={_entries:new Map,replace:!1,register(e){if(!e.name)return;ke++;let t=this._entries.get(e.name);if(t&&t.def!==e&&!this.replace){if(Ga(t.def)!==Ga(e))throw new I1([{field:e.name,error:"collision",message:"schema name '"+e.name+"' is already registered with a different definition. Schema names are app-global (they resolve nested field types and @mixin references), so two "+"different schemas cannot share one name. Rename one — or, for dev/HMR reload semantics, set "+"SchemaRegistry.replace = true before re-evaluating modules."}],e.name,e.kind)}this._entries.set(e.name,{def:e,kind:e.kind})},get(e){let t=this._entries.get(e);return t?t.def:null},getKind(e,t){let r=this._entries.get(e);return r&&r.kind===t?r.def:null},has(e){return this._entries.has(e)},names(){return[...this._entries.keys()]},reset(){this._entries.clear(),ke++},scope(e){let t=this._entries;this._entries=new Map,ke++;let r=()=>{this._entries=t,ke++};try{let s=e();if(s&&typeof s.then==="function")return s.finally(r);return r(),s}catch(s){throw r(),s}}};class Et{constructor(e){if(e.kind==="model"&&!Te)throw Error("schema: kind 'model' needs the persistence runtime (src/runtime/orm.js), which is not "+"loaded in this process — reference a persistence name (schema.transaction, __schemaSetAdapter) "+"or import the module directly");if(this._desc=e,this.kind=e.kind,this.name=e.name||null,this._norm=null,this._klass=null,this._unionPlanCache=null,this._sourceModel=null,e.kind==="model")Te.decorateDef(this,e)}_normalize(){if(this._norm)return this._norm;let e=new Map,t=new Map,r=new Map,s=new Map,i=new Map,n=new Map,a=null,o=[],l=new Map,c=[],h=(S,w)=>{throw new I1([{field:S,error:"collision",message:S+" collides with "+w}],this.name,this.kind)},f=(S)=>{if(e.has(S))h(S,"field");if(t.has(S))h(S,"method");if(r.has(S))h(S,"computed");if(s.has(S))h(S,"derived");if(i.has(S))h(S,"hook")},u=(S)=>{throw new I1([{field:"",error:"kind",message:S+" is :model-only (this schema is :"+this.kind+")"}],this.name,this.kind)},d=this.kind==="union"?new Set(["on"]):new Set(["mixin"]),p=(S,w)=>{if(!nc(S))throw new I1([{field:S,error:"invalid-name",message:w+" name '"+S+"' is not canonical camelCase. Use a lowercase-first, alphanumeric identifier with no consecutive uppercase letters (e.g. 'mdmId' not 'mdmID')."}],this.name,this.kind)};for(let S of this._desc.entries)switch(S.tag){case"field":p(S.name,"field"),f(S.name),e.set(S.name,{name:S.name,required:S.modifiers.includes("!"),optional:S.modifiers.includes("?"),unique:S.unique===!0,primary:S.primary===!0,attrs:S.attrs||null,typeName:S.typeName,literals:S.literals||null,array:S.array===!0,coerce:S.coerce===!0,coercer:S.coercer||null,constraints:S.constraints||null,transform:S.transform||null});break;case"method":f(S.name),t.set(S.name,S.fn);break;case"computed":f(S.name),r.set(S.name,S.fn);break;case"derived":f(S.name),s.set(S.name,S.fn);break;case"hook":if(this.kind!=="model")u("lifecycle hook '"+S.name+"'");if(i.has(S.name))h(S.name,"duplicate hook");i.set(S.name,S.fn);break;case"scope":if(this.kind!=="model")u("query scope '@scope :"+S.name+"'");if(n.has(S.name))h(S.name,"scope");n.set(S.name,S.fn);break;case"defaultScope":if(this.kind!=="model")u("@defaultScope");if(a)throw new I1([{field:"",error:"collision",message:"only one @defaultScope per model"}],this.name,this.kind);a=S.fn;break;case"directive":if(this.kind!=="model"&&!d.has(S.name))throw new I1([{field:"",error:"directive",message:"unknown directive '@"+S.name+"' on :"+this.kind+" — legal here: "+[...d].map((w)=>"@"+w).join(", ")}],this.name,this.kind);o.push({name:S.name,args:S.args||[]});break;case"enum-member":l.set(S.name,S.value!==void 0?S.value:S.name);break;case"union-member":break;case"ensure":c.push({message:S.message,field:S.field||"",async:S.async===!0,fn:S.fn});break;default:throw new I1([{field:"",error:"entry",message:"unknown schema entry tag '"+S.tag+"'"}],this.name,this.kind)}if(this.kind==="shape"||this.kind==="input"||this.kind==="mixin"||this.kind==="model")Za(this,e,o,{stack:[this.name||""],seen:new Set([this.name||""])});let m=null,g=[];if(this.kind==="union"){for(let S of o)if(S.name==="on"&&S.args?.[0]?.field)m=S.args[0].field;for(let S of this._desc.entries)if(S.tag==="union-member")g.push(S.name)}let b={fields:e,methods:t,computed:r,derived:s,hooks:i,scopes:n,defaultScope:a,directives:o,enumMembers:l,ensures:c,hasAsyncEnsures:c.some((S)=>S.async),unionOn:m,unionMembers:g};if(this.kind==="model")Te.finishModelNorm(this,b);return this._norm=b,this._norm}_unionPlan(){if(this._unionPlanCache&&this._unionPlanCache.gen===ke)return this._unionPlanCache.plan;let e=this._normalize(),t=e.unionOn;if(this.kind!=="union"||!t)throw Error("schema: '"+(this.name||"anon")+"' is not a :union");let r=new Map,s=[];for(let n of e.unionMembers){let a=ie.get(n);if(!a)throw new I1([{field:"",error:"union",message:"unknown union constituent: "+n+" (import the file that declares it)"}],this.name,this.kind);s.push(a);let o=a._normalize().fields.get(t);if(!o||o.typeName!=="literal-union"||!o.literals?.length)throw new I1([{field:t,error:"union",message:n+" must declare '"+t+"' as a string-literal type (e.g. "+t+'! "click") to join union '+(this.name||"")}],this.name,this.kind);for(let l of o.literals){if(r.has(l))throw new I1([{field:t,error:"union",message:"duplicate discriminator value "+JSON.stringify(l)+" in "+(r.get(l).name||"anon")+" and "+n}],this.name,this.kind);r.set(l,a)}}let i={disc:t,map:r,expected:[...r.keys()].join(" | "),hasAsyncEnsures:s.some((n)=>n._normalize().hasAsyncEnsures)};return this._unionPlanCache={gen:ke,plan:i},i}_unionResolve(e){let t=this._unionPlan();if(e===null||typeof e!=="object"||Array.isArray(e))return{issue:{field:t.disc,error:"union",message:"expected an object with "+t.disc}};let r=t.map.get(e[t.disc]);if(!r)return{issue:{field:t.disc,error:"union",message:"expected one of "+t.expected}};return{def:r}}_applyEagerDerived(e){let t=this._normalize();if(!t.derived.size)return;for(let[r,s]of t.derived){let i=s.call(e);Object.defineProperty(e,r,{value:i,enumerable:!0,writable:!0,configurable:!0})}}_materializeValidatedValue(e,t,r){return this._materializeNestedValues(e,t,r),this._materializeOwnValidatedValue(e,t,r)}_materializeNestedValues(e,t,r){let s=this._normalize();for(let[i,n]of s.fields){let a=St(n.typeName);if(!a)continue;let o=e[i];if(o===void 0||o===null)continue;let l=t==null?void 0:t[i];if(n.array){if(!Array.isArray(o))continue;let c=Array(o.length);for(let h=0;h{let a=()=>({field:i.field||"",error:"ensure",message:i.message||"ensure failed"});if(i.async)s.push((async()=>{let o=!1;try{o=!!await i.fn(e)}catch{o=!1}if(!o)r.push({idx:n,issue:a()})})());else{let o=!1;try{o=!!i.fn(e)}catch{o=!1}if(!o)r.push({idx:n,issue:a()})}}),await Promise.all(s),r.sort((i,n)=>i.idx-n.idx),r.map((i)=>i.issue)}_transitiveAsync(){if(this._taGen===ke)return this._taCache;let e=new Set,t=(r)=>{if(e.has(r))return!1;e.add(r);let s=r._normalize();if(s.hasAsyncEnsures)return!0;if(r.kind==="union"){for(let i of s.unionMembers){let n=ie.get(i);if(n&&t(n))return!0}return!1}for(let i of s.fields.values()){let n=St(i.typeName);if(n&&t(n))return!0}return!1};return this._taCache=t(this),this._taGen=ke,this._taCache}_assertSyncValidatable(e){if(!this._transitiveAsync())return;let t=this.kind!=="union"&&this._normalize().hasAsyncEnsures;throw Error("schema '"+(this.name||"anon")+"' has async refinements (@ensure!"+(t?"":" in a nested or constituent schema")+"); ."+e+"() is sync. Use parseAsync/safeAsync/okAsync instead.")}_getClass(){if(this._klass)return this._klass;let e=this._normalize(),t=this.name||"Schema",r=[...e.fields.keys()],s={[t]:class{constructor(i){if(i&&typeof i==="object"){for(let n of r)if(n in i&&i[n]!==void 0)this[n]=i[n]}}}}[t];for(let[i,n]of e.methods)Object.defineProperty(s.prototype,i,{value:n,writable:!0,enumerable:!1,configurable:!0});for(let[i,n]of e.computed)Object.defineProperty(s.prototype,i,{get:n,enumerable:!1,configurable:!0});return this._klass=s,s}_coerceDates(e){let t=this._normalize(),r=(n)=>typeof n==="string"&&/^\d{4}-\d{2}-\d{2}([T ].*)?$/.test(n),s=(n)=>{let a=/^(\d{4})-(\d{2})-(\d{2})/.exec(n),o=+a[2],l=+a[3];return o>=1&&o<=12&&l>=1&&l<=new Date(Date.UTC(+a[1],o,0)).getUTCDate()},i=(n)=>{if(!s(n))return n;let a=new Date(n);return Number.isNaN(a.getTime())?n:a};for(let[n,a]of t.fields){if(a.typeName!=="date"&&a.typeName!=="datetime")continue;let o=e[n];if(a.array&&Array.isArray(o))e[n]=o.map((l)=>r(l)?i(l):l);else if(r(o))e[n]=i(o)}}_validateFields(e,t,r,s){let i=this._normalize(),n=t?[]:null;for(let[a,o]of i.fields){if(r&&r.has(a))continue;let l=e==null?void 0:e[a];if(l===void 0||l===null){if(o.required){if(!t)return!1;n.push({field:a,error:"required",message:a+" is required"})}continue}if(o.array){if(!Array.isArray(l)){if(!t)return!1;n.push({field:a,error:"type",message:a+" must be an array"});continue}let h=o.constraints;if(h){if(h.min!=null&&l.lengthh.max){if(!t)return!1;n.push({field:a,error:"max",message:a+" must have at most "+h.max+" items"})}}if(s?.deferNested&&St(o.typeName))continue;let f=!1,u=!1,d=Array(l.length);for(let p=0;pJSON.stringify(h)).join(", ")});continue}}else{if(s?.deferNested&&St(o.typeName))continue;let h=Ki(l,o.typeName,s);if(h.errors){if(!t)return!1;for(let f of h.errors){let u=Rt(a,f.field);n.push({field:u,error:f.error,message:yr(u,f.field,f.message)})}continue}if(h.value!==l)e[a]=h.value}let c=o.constraints;if(c){if(typeof l==="string"){if(c.min!=null&&l.lengthc.max){if(!t)return!1;n.push({field:a,error:"max",message:a+" must be at most "+c.max+" chars"})}if(c.regex){if(c.regex.global||c.regex.sticky)c.regex.lastIndex=0;if(!c.regex.test(l)){if(!t)return!1;n.push({field:a,error:"pattern",message:a+" is invalid"})}}}else if(typeof l==="number"){if(c.min!=null&&l= "+c.min})}if(c.max!=null&&l>c.max){if(!t)return!1;n.push({field:a,error:"max",message:a+" must be <= "+c.max})}}}}return t?n:!0}_applyDefaults(e){let t=this._normalize();for(let[r,s]of t.fields)if((e[r]===void 0||e[r]===null)&&s.constraints?.default!==void 0){let i=s.constraints.default;e[r]=typeof i==="object"&&i!==null&&!(i instanceof RegExp)?structuredClone(i):i}return e}_applyTransforms(e,t){let r=this._normalize(),s=[];for(let[i,n]of r.fields){if(!n.transform)continue;try{t[i]=n.transform(e)}catch(a){s.push({field:i,error:"transform",message:a?.message||String(a)})}}return s}_applyCoercions(e,t){let r=this._normalize(),s=[];for(let[i,n]of r.fields){if(!n.coerce)continue;let a=e[i];if(a===void 0||a===null)continue;if(n.coercer){let l=Hi.get(n.coercer);if(!l)throw Error("schema: no coercer registered for '~:"+n.coercer+"' (field '"+i+"' on "+(this.name||"anon")+"). Register it with registerCoercer('"+n.coercer+"', fn).");let c=l.raw?a:String(a).trim(),h;try{h=l.fn(c)}catch{h=null}if(h===null||h===void 0)s.push({field:i,error:"coerce",message:i+" is not a valid "+n.coercer}),t.add(i);else e[i]=h;continue}let o=Rr[n.typeName]?Rr[n.typeName](a):{ok:!1};if(o.ok)e[i]=o.value;else s.push({field:i,error:"coerce",message:i+" cannot be coerced to "+n.typeName}),t.add(i)}return s}_orderFieldErrors(...e){let t=new Map,r=0;for(let[s]of this._normalize().fields)t.set(s,r++);return e.flat().map((s,i)=>{let n=String(s.field||"").split(/[.[]/,1)[0];return{issue:s,seq:i,rank:t.has(n)?t.get(n):r}}).sort((s,i)=>s.rank-i.rank||s.seq-i.seq).map((s)=>s.issue)}_validateEnum(e,t){let r=this._normalize();for(let[i,n]of r.enumMembers)if(e===i||e===n)return t?[]:!0;if(!t)return!1;let s=[...r.enumMembers.keys()].join(", ");return[{field:"",error:"enum",message:(this.name||"enum")+" expected one of: "+s}]}_materializeEnum(e){let t=this._normalize();for(let[r,s]of t.enumMembers)if(e===r||e===s)return s;return e}_runSync(e,t){if(this.kind==="union"){let h=this._unionResolve(e);if(h.issue)return{ok:!1,errors:[h.issue]};let f=h.def._runSync(e,t);return f.ok?f:{...f,from:f.from||h.def}}if(this.kind==="enum"){let h=this._validateEnum(e,!0);return h.length?{ok:!1,errors:h}:{ok:!0,value:this._materializeEnum(e)}}let r=br(e);if(r)return{ok:!1,errors:[r]};let s=e,i={...s},n=new Set,a=this._applyTransforms(s,i),o=this._applyCoercions(i,n);this._applyDefaults(i),this._coerceDates(i);let l=this._orderFieldErrors(a,o,this._validateFields(i,!0,n,t));if(l.length)return{ok:!1,errors:l};let c=t?.skipEnsures?[]:this._applyEnsures(i);if(c.length)return{ok:!1,errors:c};if(t?.materializeNested)try{this._materializeNestedValues(i,null,!1)}catch(h){return{ok:!1,errors:null,...Ke(h)}}if(!t?.materialize)return{ok:!0,value:i};try{return{ok:!0,value:this._materializeOwnValidatedValue(i,null,!1)}}catch(h){return{ok:!1,errors:null,...Ke(h)}}}async _runAsync(e,t){if(this.kind==="union"){let f=this._unionResolve(e);if(f.issue)return{ok:!1,errors:[f.issue]};let u=await f.def._runAsync(e,t);return u.ok?u:{...u,from:u.from||f.def}}if(this.kind==="enum")return this._runSync(e,t);let r=br(e);if(r)return{ok:!1,errors:[r]};let s=e,i={...s},n=new Set,a=this._applyTransforms(s,i),o=this._applyCoercions(i,n);this._applyDefaults(i),this._coerceDates(i);let l=await this._validateFieldsAsync(i,n,t),c=this._orderFieldErrors(a,o,l);if(c.length)return{ok:!1,errors:c};let h=t?.skipEnsures?[]:await this._applyEnsuresAsync(i);if(h.length)return{ok:!1,errors:h};if(t?.materializeNested)try{this._materializeNestedValues(i,null,!1)}catch(f){return{ok:!1,errors:null,...Ke(f)}}if(!t?.materialize)return{ok:!0,value:i};try{return{ok:!0,value:this._materializeOwnValidatedValue(i,null,!1)}}catch(f){return{ok:!1,errors:null,...Ke(f)}}}async _validateFieldsAsync(e,t,r){let s=this._normalize(),i=[];for(let[n,a]of s.fields){if(t&&t.has(n))continue;let o=e[n];if(o===void 0||o===null){if(a.required)i.push({field:n,error:"required",message:n+" is required"});continue}if(a.array){if(!Array.isArray(o)){i.push({field:n,error:"type",message:n+" must be an array"});continue}let h=a.constraints;if(h?.min!=null&&o.lengthh.max)i.push({field:n,error:"max",message:n+" must have at most "+h.max+" items"});let f=Array(o.length),u=!1;for(let d=0;dJSON.stringify(h)).join(", ")})}else{let h=await Ha(o,a.typeName,r);if(h.errors)for(let f of h.errors){let u=Rt(n,f.field);i.push({field:u,error:f.error,message:yr(u,f.field,f.message)})}else e[n]=h.value}let l=e[n],c=a.constraints;if(c){if(typeof l==="string"){if(c.min!=null&&l.lengthc.max)i.push({field:n,error:"max",message:n+" must be at most "+c.max+" chars"});if(c.regex){if(c.regex.global||c.regex.sticky)c.regex.lastIndex=0;if(!c.regex.test(l))i.push({field:n,error:"pattern",message:n+" is invalid"})}}else if(typeof l==="number"){if(c.min!=null&&l= "+c.min});if(c.max!=null&&l>c.max)i.push({field:n,error:"max",message:n+" must be <= "+c.max})}}}return i}_runExistingSync(e,t){if(this.kind==="union"){let a=this._unionResolve(e);if(a.issue)return{ok:!1,errors:[a.issue]};let o=a.def._runExistingSync(e,t);return o.ok?o:{...o,from:o.from||a.def}}if(this.kind==="enum")return this._runSync(e,t);let r=br(e);if(r)return{ok:!1,errors:[r]};let s={...e},i=this._validateFields(s,!0,null,{...t,existing:!0});if(i.length)return{ok:!1,errors:i};let n=t?.skipEnsures?[]:this._applyEnsures(s);if(n.length)return{ok:!1,errors:n};if(t?.materializeNested)try{this._materializeNestedValues(s,e,!0)}catch(a){return{ok:!1,errors:null,...Ke(a)}}return this._finishExistingValue(e,s,t)}async _runExistingAsync(e,t){if(this.kind==="union"){let a=this._unionResolve(e);if(a.issue)return{ok:!1,errors:[a.issue]};let o=await a.def._runExistingAsync(e,t);return o.ok?o:{...o,from:o.from||a.def}}if(this.kind==="enum")return this._runSync(e,t);let r=br(e);if(r)return{ok:!1,errors:[r]};let s={...e},i=await this._validateFieldsAsync(s,null,{...t,existing:!0});if(i.length)return{ok:!1,errors:i};let n=t?.skipEnsures?[]:await this._applyEnsuresAsync(s);if(n.length)return{ok:!1,errors:n};if(t?.materializeNested)try{this._materializeNestedValues(s,e,!0)}catch(a){return{ok:!1,errors:null,...Ke(a)}}return this._finishExistingValue(e,s,t)}_finishExistingValue(e,t,r){if(!r?.materialize)return{ok:!0,value:t};let s=this._getClass(),i=!0;for(let[a]of this._normalize().fields)if(t[a]!==e[a]){i=!1;break}if(i)return{ok:!0,value:e};let n=new s(t);try{this._applyEagerDerived(n)}catch(a){return{ok:!1,errors:null,thrown:a}}return{ok:!0,value:n}}parse(e){if(this.kind==="mixin")throw Error(":mixin schema '"+(this.name||"anon")+"' is not instantiable");this._assertSyncValidatable("parse");let t=this._runSync(e,{materialize:!0,materializeNested:!0,derived:"throw"});if(t.ok)return t.value;if(t.thrown)throw t.thrown;let r=t.from||this;throw new I1(t.errors,r.name,r.kind)}get array(){let e=this,t=(n)=>({field:"",error:"not_array",message:"expected an array, received "+(n===null?"null":n===void 0?"undefined":typeof n==="object"?"an object with keys ["+Object.keys(n).join(", ")+"]":typeof n)}),r=(n)=>{let a=[],o=[];return n.forEach((l,c)=>{if(l.ok)a.push(l.value);else for(let h of l.errors)o.push({...h,field:"["+c+"]"+(h.field?"."+h.field:"")})}),{value:a,errors:o}},s=(n)=>{let a=[],o=[];return n.forEach((l,c)=>{try{a.push(e.parse(l))}catch(h){if(!(h instanceof I1))throw h;for(let f of h.issues)o.push({...f,field:"["+c+"]"+(f.field?"."+f.field:"")})}}),{value:a,errors:o}},i=async(n)=>{let a=[],o=[];for(let l=0;le.safe(l)));return o.length?{ok:!1,value:null,errors:o}:{ok:!0,value:a,errors:null}},ok(n){return Array.isArray(n)&&n.every((a)=>e.ok(a))},async parseAsync(n){if(!Array.isArray(n))throw new I1([t(n)],e.name,e.kind);let{value:a,errors:o}=await i(n);if(o.length)throw new I1(o,e.name,e.kind);return a},async safeAsync(n){if(!Array.isArray(n))return{ok:!1,value:null,errors:[t(n)]};let{value:a,errors:o}=r(await Promise.all(n.map((l)=>e.safeAsync(l))));return o.length?{ok:!1,value:null,errors:o}:{ok:!0,value:a,errors:null}},async okAsync(n){return Array.isArray(n)&&(await Promise.all(n.map((a)=>e.okAsync(a)))).every(Boolean)},toJSONSchema(){return{type:"array",items:e.toJSONSchema()}}}}safe(e){if(this.kind==="mixin")return{ok:!1,value:null,errors:[{field:"",error:"mixin",message:"not instantiable"}]};this._assertSyncValidatable("safe");let t=this._runSync(e,{materialize:!0,materializeNested:!0,derived:"issue"});if(t.ok)return{ok:!0,value:t.value,errors:null};if(t.thrown)return{ok:!1,value:null,errors:[{field:t.derivedField||"",error:"derived",message:t.thrown?.message||String(t.thrown)}]};return{ok:!1,value:null,errors:t.errors}}ok(e){if(this.kind==="mixin")return!1;return this._assertSyncValidatable("ok"),this._runSync(e,{materialize:!1,materializeNested:!1,derived:"issue"}).ok}async parseAsync(e){if(this.kind==="mixin")throw Error(":mixin schema '"+(this.name||"anon")+"' is not instantiable");let t=await this._runAsync(e,{materialize:!0,materializeNested:!0,derived:"throw"});if(t.ok)return t.value;if(t.thrown)throw t.thrown;let r=t.from||this;throw new I1(t.errors,r.name,r.kind)}async safeAsync(e){if(this.kind==="mixin")return{ok:!1,value:null,errors:[{field:"",error:"mixin",message:"not instantiable"}]};let t=await this._runAsync(e,{materialize:!0,materializeNested:!0,derived:"issue"});if(t.ok)return{ok:!0,value:t.value,errors:null};if(t.thrown)return{ok:!1,value:null,errors:[{field:t.derivedField||"",error:"derived",message:t.thrown?.message||String(t.thrown)}]};return{ok:!1,value:null,errors:t.errors}}async okAsync(e){if(this.kind==="mixin")return!1;return(await this._runAsync(e,{materialize:!1,materializeNested:!1,derived:"issue"})).ok}pick(...e){return yt(this,(t)=>{let r=Wi(e),s=new Map;for(let i of r){if(!t.has(i))throw Error("pick: unknown field '"+i+"' on "+(this.name||"schema"));s.set(i,t.get(i))}return s})}omit(...e){return yt(this,(t)=>{let r=new Set(Wi(e)),s=new Map;for(let[i,n]of t)if(!r.has(i))s.set(i,n);return s})}partial(){return yt(this,(e)=>{let t=new Map;for(let[r,s]of e)t.set(r,{...s,required:!1});return t})}required(...e){return yt(this,(t)=>{let r=new Set(Wi(e)),s=new Map;for(let[i,n]of t)s.set(i,{...n,required:r.has(i)?!0:n.required});return s})}extend(e){if(!(e instanceof Et))throw Error("extend(): argument must be a schema value");if(e.kind==="union")throw Error("extend(): :union schemas have no fields to merge");return yt(this,(t)=>{let r=new Map(t),s=e._normalize().fields;for(let[i,n]of s){if(r.has(i))throw Error("extend(): field '"+i+"' collides between "+(this.name||"schema")+" and "+(e.name||"other"));r.set(i,n)}return r})}toJSONSchema(){let e={defs:new Map,expanding:new Set},t=Ja(this,e);if(t.$schema="https://json-schema.org/draft/2020-12/schema",this.name)t.title=this.name;if(e.defs.size){t.$defs={};for(let[r,s]of e.defs)t.$defs[r]=s}return t}}var Ya={__proto__:null,string:()=>({type:"string"}),text:()=>({type:"string"}),email:()=>({type:"string",format:"email"}),url:()=>({type:"string",format:"uri"}),uuid:()=>({type:"string",format:"uuid"}),phone:()=>({type:"string",pattern:"^[\\d\\s\\-+()]+$"}),zip:()=>({type:"string",pattern:"^\\d{5}(-\\d{4})?$"}),number:()=>({type:"number"}),integer:()=>({type:"integer"}),boolean:()=>({type:"boolean"}),date:()=>({type:"string",format:"date"}),datetime:()=>({type:"string",format:"date-time"}),json:()=>({}),variant:()=>({}),any:()=>({})};function ac(e,t){let r;if(e.typeName==="literal-union"&&e.literals?.length)r=e.literals.length===1?{const:e.literals[0]}:{enum:[...e.literals]};else if(Ya[e.typeName])r=Ya[e.typeName]();else{let i=ie.get(e.typeName);r=i?Xa(i,t):{}}let s=e.constraints;if(s&&!e.array){if(r.type==="string"){if(s.min!=null)r.minLength=s.min;if(s.max!=null)r.maxLength=s.max;if(s.regex)r.pattern=s.regex.source}else if(r.type==="number"||r.type==="integer"){if(s.min!=null)r.minimum=s.min;if(s.max!=null)r.maximum=s.max}}if(e.array){if(r={type:"array",items:r},s){if(s.min!=null)r.minItems=s.min;if(s.max!=null)r.maxItems=s.max}}if(s&&s.default!==void 0)r.default=s.default;if(e.coerce)r.description=((r.description?r.description+" ":"")+"Coerced from wire data ("+(e.coercer?"~:"+e.coercer:"~"+e.typeName)+").").trim();if(e.transform)r.description=((r.description?r.description+" ":"")+"Derived via transform; the raw input may use different keys.").trim();return r}function Xa(e,t){let r=e.name||"Anon";if(!t.defs.has(r)&&!t.expanding.has(r))t.expanding.add(r),t.defs.set(r,null),t.defs.set(r,Ja(e,t)),t.expanding.delete(r);return{$ref:"#/$defs/"+r}}function Ja(e,t){let r=e._normalize();if(e.kind==="enum")return{enum:[...new Set(r.enumMembers.values())]};if(e.kind==="union"){let a=e._unionPlan();return{oneOf:r.unionMembers.map((l)=>{let c=ie.get(l);return c?Xa(c,t):{}}),discriminator:{propertyName:a.disc}}}let s={},i=[];for(let[a,o]of r.fields)if(s[a]=ac(o,t),o.required&&o.constraints?.default===void 0)i.push(a);if(e.kind==="model")Te.jsonSchemaModelColumns(e,s);let n={type:"object",properties:s};if(i.length)n.required=i;if(r.ensures.length)n.description="Refinements (not expressible in JSON Schema): "+r.ensures.map((a)=>a.message).join("; ")+".";return n}function Wi(e){let t=[];for(let r of e)if(Array.isArray(r))for(let s of r)t.push(s);else t.push(r);return t}function yt(e,t){if(e.kind==="union")throw Error("schema algebra (.pick/.omit/.partial/.required/.extend) is not supported on :union — derive from a constituent schema instead");if(e.kind==="enum")throw Error("schema algebra is not supported on :enum — an enum has no field set");let r=e.kind==="model"?Te.projectableFields(e):e._normalize().fields,s=t(r),i=[];for(let[,o]of s){let l=[];if(o.required)l.push("!");if(o.optional&&!o.required)l.push("?");i.push({tag:"field",name:o.name,modifiers:l,unique:o.unique===!0,primary:o.primary===!0,attrs:o.attrs||null,typeName:o.typeName,array:o.array,literals:o.literals||null,coerce:o.coerce===!0,coercer:o.coercer||null,constraints:o.constraints,transform:o.transform||null})}let n=(e.name||"Schema")+"Derived",a=new Et({kind:"shape",name:n,entries:i});return a._sourceModel=e._sourceModel||(e.kind==="model"?e:null),a}function Za(e,t,r,s){for(let i of r){if(i.name!=="mixin"||!i.args||!i.args[0])continue;let n=i.args[0].target;if(!n)continue;if(s.stack.includes(n))throw new I1([{field:"",error:"mixin-cycle",message:"mixin cycle: "+s.stack.concat(n).join(" -> ")}],e.name,e.kind);if(s.seen.has(n))continue;let a=ie.getKind(n,"mixin");if(!a)throw new I1([{field:"",error:"mixin-missing",message:"unknown mixin: "+n}],e.name,e.kind);s.seen.add(n),s.stack.push(n);let o=a._desc.entries.filter((l)=>l.tag==="directive"&&l.name==="mixin").map((l)=>({name:l.name,args:l.args||[]}));Za(e,t,o,s);for(let l of a._desc.entries){if(l.tag!=="field")continue;if(t.has(l.name))throw new I1([{field:l.name,error:"mixin-collision",message:l.name+" from mixin "+n+" collides with existing field"}],e.name,e.kind);if(e.kind!=="model"&&(l.unique===!0||l.attrs))throw new I1([{field:l.name,error:"mixin-persistence",message:l.name+" from mixin "+n+" carries persistence metadata (@unique/attrs) — :model-only; a :"+e.kind+" cannot include it"}],e.name,e.kind);t.set(l.name,{name:l.name,required:l.modifiers.includes("!"),optional:l.modifiers.includes("?"),unique:l.unique===!0,attrs:l.attrs||null,typeName:l.typeName,literals:l.literals||null,array:l.array===!0,coerce:l.coerce===!0,coercer:l.coercer||null,constraints:l.constraints||null,transform:l.transform||null})}s.stack.pop()}}function oc(e){let t=new Et(e);if(t.name)ie.register(t);return t}if(typeof globalThis<"u")globalThis.__ripSchema=globalThis.__ripSchema||{},globalThis.__ripSchema.SchemaRegistry=ie;var Ar={};Fe(Ar,{__batch:()=>M1,__catchErrors:()=>me,__computed:()=>Y1,__detachRef:()=>Gi,__effect:()=>x1,__handleError:()=>se,__ownerFrame:()=>Tt,__popOwner:()=>X1,__pushOwner:()=>he,__readonly:()=>ue,__setEffectErrorReporter:()=>lc,__setErrorHandler:()=>de,__state:()=>A1,getEffectSignal:()=>fe});var to=Symbol.for("rip.runtime.reactive");if(globalThis[to])throw Error("two copies of the Rip reactive runtime loaded in one process — states from different copies "+"cannot notify each other (separate dependency graphs, separate effect queues). Run .rip sources through the rip CLI/loader (one shared runtime module per process), or load only one standalone-compiled file per process.");globalThis[to]=!0;var N1=null,_r=[],Ge={buckets:[],cursors:[],size:0,low:0,add(e){let t=e.depth,r=this.buckets[t];if(r===void 0)r=this.buckets[t]=new Set;if(r.has(e))return;if(r.add(e),this.size++,tconsole.error(e,t);function lc(e){let t=kt;return kt=e,t}function ro(){try{while(Ge.size>0){let e=Ge.shift();if(!e._disposed)e.run()}}catch(e){throw Ge.clear(),e}}var io={valueOf(){return this.value},toString(){return String(this.value)},[Symbol.toPrimitive](e){return e==="string"?this.toString():this.valueOf()}};function A1(e){if(e!=null&&typeof e==="object"&&typeof e.read==="function")return e;let t=e,r=new Set,s=!1,i=!1,n=!1,a=()=>{if(N1&&typeof N1.markDirty==="function"&&N1.dependencies.has(r))throw Error("reactive runtime: computed dependency changed during evaluation — "+"computed functions must derive without writing or touching a dependency")},o=()=>{for(let h of _r)h.writtenSignals.add(r)},l=()=>{s=!0;try{for(let h of r)if(h.markDirty)h.markDirty(!0);else h._hard=!0,Ge.add(h);if(!wr)ro()}finally{s=!1}},c={get value(){if(n)return t;if(N1?.writtenSignals&&_r.some((h)=>h.writtenSignals.has(r)))throw Error("reactive runtime: computed dependency changed during evaluation — "+"computed functions must derive without writing or touching a dependency");if(N1)r.add(N1),N1.dependencies.add(r);return t},set value(h){if(n||i||h===t)return;if(a(),s)return;o(),t=h,l()},read(){return t},touch(){if(n)return;if(a(),s)return;o(),l()},lock(){return i=!0,c},free(){return r.clear(),c},kill(){return n=!0,r.clear(),t},...io};return c}var kr=0,Qa=1,Tr=2;function so(e){let t=N1;N1=null;try{for(let[r,s]of e.computedDeps)if(r.value,r.version!==s)return!0;return!1}finally{N1=t}}function Y1(e){let t,r=Tr,s=new Set,i=!1,n=!1,a=!1,o={dependencies:new Set,computedDeps:new Map,writtenSignals:new Set,version:0,markDirty(l){if(n||i)return;if(a)throw Error("reactive runtime: computed dependency changed during evaluation — "+"computed functions must derive without writing or touching a dependency");let c=r;if(l)r=Tr;else if(r===kr)r=Qa;if(c!==kr)return;for(let h of s)if(h.markDirty)h.markDirty(!1);else Ge.add(h)},get value(){if(n)return t;if(N1&&N1!==o)s.add(N1),N1.dependencies.add(s),N1.computedDeps.set(o,-1);if(a)throw Error("reactive runtime: computed value read during its own evaluation — "+"recursive computed reads are not supported");if(r===Qa&&!i)r=so(o)?Tr:kr;if(r===Tr&&!i){for(let c of o.dependencies)c.delete(o);o.dependencies.clear(),o.computedDeps.clear();let l=N1;o.writtenSignals.clear(),N1=o,_r.push(o),a=!0;try{let c=e();if(c!==t)o.version++;t=c,r=kr}finally{a=!1,_r.pop(),o.writtenSignals.clear(),N1=l}}if(N1&&N1!==o)N1.computedDeps.set(o,o.version);return t},read(){return t},lock(){return i=!0,o.value,o},free(){for(let l of o.dependencies)l.delete(o);return o.dependencies.clear(),o.computedDeps.clear(),s.clear(),o},kill(){n=!0;let l=t;return o.free(),l},...io};return o}function eo(e){let t=e._cleanup;if(!t)return;let r=N1;N1=null;try{t()}finally{N1=r}e._cleanup=null}function x1(e){let t=null,r=0,s=B1,i={depth:s?s.depth+1:0,dependencies:new Set,computedDeps:new Map,_hard:!0,_disposed:!1,get signal(){if(!t&&typeof AbortController<"u"){if(t=new AbortController,i._disposed)t.abort()}return t?t.signal:null},run(){if(i._disposed)return;let a=i._hard;if(i._hard=!1,!a&&!so(i))return;if(t){try{t.abort()}catch{}t=null}let o=++r;eo(i);for(let h of i.dependencies)h.delete(i);i.dependencies.clear(),i.computedDeps.clear();let l=N1;N1=i;let c=B1;B1=s;try{let h=e();if(typeof h==="function")i._cleanup=h;else if(h&&typeof h.then==="function")h.then((f)=>{if(o!==r||i._disposed){if(typeof f==="function")try{f()}catch(u){kt("[Rip] superseded async cleanup error:",u)}return}if(typeof f==="function")i._cleanup=f},(f)=>{if(f&&f.name==="AbortError")return;if(o!==r||i._disposed)return;kt("[Rip] async effect error:",f)})}finally{N1=l,B1=c}},dispose(){if(i._disposed)return;if(i._disposed=!0,Ge.delete(i),t)try{t.abort()}catch{}eo(i);for(let a of i.dependencies)a.delete(i);i.dependencies.clear()}};try{i.run()}catch(a){throw i.dispose(),a}let n=()=>i.dispose();if(B1)B1.add(n);return n}function M1(e){if(wr)return e();wr=!0;try{return e()}finally{wr=!1,ro()}}function Tt({nested:e=!0}={}){let t=[],r=null,i={depth:B1?B1.depth+1:0,get disposed(){return t===null},get size(){return t===null?0:t.length},add(n){if(t===null)n();else t.push(n)},remove(n){if(t===null)return;let a=t.indexOf(n);if(a>=0)t.splice(a,1)},dispose(){if(t===null)return;let n=t;if(t=null,r!==null){let a=r;r=null,a()}for(let a of n)try{a()}catch(o){kt("[Rip] effect disposer error:",o)}}};if(e&&B1){let n=B1;n.add(i.dispose),r=()=>n.remove(i.dispose)}return i}function he(e){let t={frame:e,prev:B1};return B1=e,t}function X1(e){if(!e||typeof e!=="object"||!("frame"in e))throw Error("reactive runtime: __popOwner takes the token the matching __pushOwner returned");if(B1!==e.frame)throw Error("reactive runtime: __popOwner out of order — the frame being popped is not the current owner "+"(an inner push was not popped, or this token was already popped)");B1=e.prev}function fe(){return N1?N1.signal:null}function ue(e){return Object.freeze({value:e})}function Gi(e,t){if(e&&typeof e.read==="function"&&e.read()===t)e.value=null}var Nr=null;function de(e){let t=Nr;return Nr=e,t}function se(e){if(Nr)try{Nr(e)}catch(t){console.error("Error in error handler:",t),console.error("Original error:",e)}else throw e}function me(e){return function(...t){try{return e.apply(this,t)}catch(r){se(r)}}}var Nt={};Fe(Nt,{__Component:()=>wo,__claimGateConstructor:()=>es,__clsx:()=>Dr,__detach:()=>$r,__detachRef:()=>Gi,__gateBind:()=>vc,__handleComponentError:()=>Xi,__hmrClassify:()=>_t,__hmrEmit:()=>_e,__hmrEntries:()=>Ji,__hmrEvents:()=>dc,__hmrLookup:()=>cc,__hmrMigrateDiff:()=>go,__hmrMigrateRemount:()=>bc,__hmrPatch:()=>Qi,__hmrPreserveState:()=>xr,__hmrRegisterDefinition:()=>wt,__hmrRegistry:()=>we,__hmrRestoreUi:()=>Cr,__hmrSnapshotUi:()=>Zi,__lis:()=>ko,__ownerFrame:()=>Tt,__popComponent:()=>pe,__popOwner:()=>X1,__pushComponent:()=>Le,__pushOwner:()=>he,__reconcile:()=>Ec,__reportChildFailure:()=>Nc,__setChildFailureReporter:()=>_c,__style:()=>To,__transition:()=>Tc,getContext:()=>Sc,hasContext:()=>Rc,setContext:()=>yc});var uo=Symbol.for("rip.runtime.components");if(globalThis[uo])throw Error("two copies of the Rip component runtime loaded in one process — components from different "+"copies cannot see each other (separate component stacks: context, parent chains, and error boundaries silently break across copies). Run .rip sources through the rip CLI/loader (one shared runtime module per process), or load only one standalone-compiled file per process.");globalThis[uo]=!0;var z1=null,mo={},Or=null,po=new WeakMap,no=!1,we=new Map;function Yi(e,t){if(e===t)return!0;if(!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length)return!1;for(let r=0;ri.has(c)),o=s.filter((c)=>!i.has(c)),l=r.filter((c)=>!n.has(c));return{kept:a,added:o,removed:l}}var Ir=[],uc=64;function _e(e,t={}){let r={type:e,at:Date.now(),...t};if(Ir.push(r),Ir.length>uc)Ir.shift();if(typeof window<"u"&&typeof window.dispatchEvent==="function"&&typeof CustomEvent==="function")try{window.dispatchEvent(new CustomEvent("rip:hmr",{detail:r}))}catch{}return r}function dc(){return Ir.slice()}function xr(e,t){let r=e?.constructor?.__hmrSig,s=t?.constructor?.__hmrSig,i=r?.state,n=s?.state,a=go(r,s);if(!Array.isArray(i)||!Array.isArray(n))return _e("migrate",{id:t?.constructor?.__hmrId??null,...a,copied:[]}),a;let o=new Set(i),l=[];for(let h of n){if(!o.has(h))continue;let f=e[h],u=t[h];if(f!=null&&u!=null&&typeof f==="object"&&typeof u==="object"&&"value"in f&&"value"in u)u.value=f.value,l.push(h)}let c=t?.constructor?.__hmrId??e?.constructor?.__hmrId??null;return _e("migrate",{id:c,...a,copied:l}),{...a,copied:l}}var bo=["name","type","placeholder"];function yo(e){let t=(s)=>typeof e[s]==="string"&&e[s]?e[s]:null,r={tag:e.tagName??null};for(let s of bo)r[s]=t(s);return r.label=typeof e.getAttribute==="function"?e.getAttribute("aria-label"):null,r.value=typeof e.value==="string"?e.value:null,r}function zi(e,t,r){if(!e||!t)return!1;let s=yo(e);for(let i of["tag",...bo,"label"])if(s[i]!==t[i])return!1;return!r||t.value==null||s.value===t.value}function mc(e){let t=yo(e),r=typeof e.id==="string"&&e.id?e.id:null,s=[],i=e;while(i&&i!==document.body){let n=i.parentElement??i.parentNode??null;if(!n||!n.children)return{identity:t,id:r,path:null};s.unshift(Array.prototype.indexOf.call(n.children,i)),i=n}return{identity:t,id:r,path:i===document.body?s:null}}function pc(e){let t=e.active;if(t&&t.isConnected!==!1&&typeof document.contains==="function"&&document.contains(t))return t;let r=e.locator;if(!r)return null;if(r.id&&typeof document.getElementById==="function"){let o=document.getElementById(r.id);if(zi(o,r.identity,!1))return o}if(!Array.isArray(r.path)||r.path.length===0)return null;let s=document.body;for(let o of r.path.slice(0,-1))if(s=s?.children?.[o]??null,!s)return null;let i=Array.from(s.children??[]),n=i[r.path[r.path.length-1]]??null;if(zi(n,r.identity,!0))return n;let a=i.filter((o)=>zi(o,r.identity,!0));return a.length===1?a[0]:null}function Zi(){if(typeof document>"u")return null;let e=document.activeElement,t=e&&e!==document.body&&e!==document.documentElement?e:null,r=null;if(t&&typeof t.selectionStart==="number")r={start:t.selectionStart,end:t.selectionEnd,direction:t.selectionDirection};return{active:t,locator:t?mc(t):null,selection:r,scrollX:typeof window<"u"?window.scrollX:0,scrollY:typeof window<"u"?window.scrollY:0}}function Cr(e){if(!e||typeof document>"u")return;if(typeof window<"u")window.scrollTo(e.scrollX??0,e.scrollY??0);let t=pc(e);if(!t||typeof t.focus!=="function")return;try{if(t.focus({preventScroll:!0}),e.selection&&typeof t.setSelectionRange==="function")t.setSelectionRange(e.selection.start,e.selection.end,e.selection.direction??"none")}catch{}}function So(e,t){let r=e.constructor?.__hmrId;if(typeof r==="string"&&r)we.get(r)?.instances.delete(e);Object.setPrototypeOf(e,t.prototype),Object.defineProperty(e,"constructor",{value:t,writable:!0,configurable:!0}),wt(t),we.get(t.__hmrId)?.instances.add(e)}function Qi(e,t){if(!e||!t)throw Error("__hmrPatch requires a living instance and a replacement constructor");let r=e.constructor?.__hmrId;return So(e,t),e._hmrRerender(),_e("patch",{id:t.__hmrId??r??null}),e}function Ro(e){return Object.keys(e).sort().join(",")}function gc(e,t){let s=(z1?._projectionOwner??z1)?._hmrOrphans;if(!s||s.length===0)return null;let i=e.__hmrId;if(typeof i!=="string")return null;let n=Ro(t),a=null;for(let o of s){if(o._state!=="mounted"||o.constructor.__hmrId!==i||o._hmrPropKeys!==n)continue;if(a)return null;a=o}if(!a||_t(a.constructor,e)!=="patch")return null;if(s.splice(s.indexOf(a),1),a.constructor!==e)So(a,e);a._hmrRelease();try{a._hmrApplyProps(t)}catch(o){throw a._teardown({state:"failed",hooks:!1,removeDOM:!0}),o}return a._hmrRebindPending=!0,a}function bc(e,t,r={}){let s=new t(r);return xr(e,s),s}function es(){if(no)throw Error("[Rip] the render-gate construction capability is already claimed");return no=!0,(e,t)=>{let r=Or;Or={brand:mo,component:e,gates:t.gates,parent:t.parent??null,stash:t.stash??null,router:t.router??null,used:!1};try{return new e({})}finally{Or=r}}}function $r(e){if(!e||e.nodeType===11)return;if(typeof e.remove==="function")e.remove();else if(e.parentNode)e.parentNode.removeChild(e)}function Le(e){let t=z1;if(e&&e._parent==null&&t&&t!==e)e._parent=t;return z1=e,t}function pe(e){z1=e}function yc(e,t){if(!z1)throw Error("setContext must be called during component initialization");if(!z1._context)z1._context=new Map;z1._context.set(e,t)}function Eo(e,t,r){if(typeof t!=="function")throw Error(r===void 0?`${e}: a context read names its provider — ${e}(Provider, ${JSON.stringify(t)})`:`${e}: the provider named for ${JSON.stringify(r)} is not a component`);let s=typeof t.__hmrId==="string"?t.__hmrId:null,i=z1,n=new Set;while(i&&!n.has(i)){if(n.add(i),i instanceof t||s!==null&&i.constructor?.__hmrId===s)return i._context!==void 0&&i._context.has(r)?{found:!0,value:i._context.get(r)}:{found:!1,provider:i};i=i._parent}return{found:!1,provider:null}}function Sc(e,t){let r=Eo("getContext",e,t);if(r.found)return r.value;let s=e.name||"the provider";throw Error(r.provider!==null?`getContext: ${s} offers no ${JSON.stringify(t)}`:`getContext: no ${s} above this component — render one around it, or probe with hasContext(${s}, ${JSON.stringify(t)}) where absence is legal`)}function Rc(e,t){return Eo("hasContext",e,t).found}function Dr(...e){let t="";for(let r of e){if(!r)continue;if(typeof r==="string")t&&(t+=" "),t+=r;else if(typeof r==="object"){if(Array.isArray(r)){let s=Dr(...r);s&&(t&&(t+=" "),t+=s)}else for(let s in r)if(r[s])t&&(t+=" "),t+=s}}return t}function ko(e){let t=e.length;if(t===0)return[];let r=[],s=[],i=Array(t).fill(-1);for(let o=0;o>1;if(r[h]0)i[o]=s[l-1]}let n=[],a=s[r.length-1];for(let o=r.length-1;o>=0;o--)n.push(a),a=i[a];return n.reverse(),n}function Ec(e,t,r,s,i,n,...a){if(e==null)throw Error("__reconcile: no anchor — the list's create phase never placed one");let o=e.parentNode;if(!o)return;let l=t.keys,c=t.items||[],h=t.blocks,f=l.length,u=r.length,d=Array(u),p=n!=null,m=p?r.map((R,T)=>n(R,T)):r;if(p){let R=new Set;for(let T of m){if(R.has(T))throw Error(`__reconcile: duplicate key ${JSON.stringify(String(T))} — keyed rows need unique keys `+"(the key function must be injective over the items)");R.add(T)}}if(f===0){if(u>0){let R=document.createDocumentFragment();for(let T=0;T=g&&w>=g&&l[S]===m[w]){let R=h[S];if(!R._s)R.p(s,r[w],w,...a);d[w]=R,S--,w--}if(g>w)for(let R=g;R<=S;R++)h[R].d(!0);else if(g>S){let R=w+1=g;A--){let C=d[A];if(!M.has(A-g))C.m(o,x);x=C._first}}t.keys=p?m:r.slice(),t.items=r.slice(),t.blocks=d}var ao=!1;function kc(){if(ao)return;ao=!0;let e=document.createElement("style");e.textContent=[".fade-enter-active,.fade-leave-active{transition:opacity .2s ease}",".fade-enter-from,.fade-leave-to{opacity:0}",".slide-enter-active,.slide-leave-active{transition:opacity .2s ease,transform .2s ease}",".slide-enter-from{opacity:0;transform:translateY(-8px)}",".slide-leave-to{opacity:0;transform:translateY(8px)}",".scale-enter-active,.scale-leave-active{transition:opacity .2s ease,transform .2s ease}",".scale-enter-from,.scale-leave-to{opacity:0;transform:scale(.95)}",".blur-enter-active,.blur-leave-active{transition:opacity .2s ease,filter .2s ease}",".blur-enter-from,.blur-leave-to{opacity:0;filter:blur(4px)}",".fly-enter-active,.fly-leave-active{transition:opacity .2s ease,transform .2s ease}",".fly-enter-from{opacity:0;transform:translateY(-20px)}",".fly-leave-to{opacity:0;transform:translateY(20px)}"].join(""),document.head.appendChild(e)}function Tc(e,t,r,s){kc();let i=e.classList,n=t+"-"+r+"-from",a=t+"-"+r+"-active",o=t+"-"+r+"-to",l=!1,c=null;i.add(n,a),requestAnimationFrame(()=>{requestAnimationFrame(()=>{i.remove(n),i.add(o);let h=(u)=>{if(l||u&&u.target!==e)return;if(l=!0,clearTimeout(c),e.removeEventListener("transitionend",h),e.removeEventListener("transitioncancel",h),i.remove(a,o),s)s()};e.addEventListener("transitionend",h),e.addEventListener("transitioncancel",h);let f=0;try{let u=getComputedStyle(e),d=(p)=>Math.max(0,...String(p).split(",").map((m)=>(parseFloat(m)||0)*(/ms\s*$/.test(m.trim())?1:1000)));f=d(u.transitionDuration)+d(u.transitionDelay)}catch{}c=setTimeout(()=>h(),f+50)})})}function wc(e){let t=e!=null&&typeof e==="object"?e.name:null;if(t==="GateFailure"||t==="ComponentFailure")return e;let r=Error(e!=null&&e.message!==void 0?e.message:String(e));r.name="ComponentFailure";let s=e!=null?e.status??e.response?.status:void 0;if(s!==void 0)r.status=s;return r.error=e,r}var qi=(e,t)=>console.error(`[Rip] ${e} construction failed:`,t);function _c(e){let t=qi;return qi=e,t}function Nc(e,t){qi(e,t)}function Xi(e,t){let r=wc(e),s=t,i=new Set;while(s&&!i.has(s)){if(i.add(s),s.onError){let n=Le(s),a=he(s._frame);try{s.onError(r,t);return}catch(o){}finally{X1(a),pe(n)}}s=s._parent}throw e}var oo=new WeakSet;function Ac(e,t){if(oo.has(e))return;let r=e.__props??[];if(!Array.isArray(r))throw Error(`${e.name||"component"}: static __props must be an array of declared prop names`);for(let s of r){if(typeof s!=="string"||s.length===0)throw Error(`${e.name||"component"}: static __props entries must be non-empty strings`);if(s.startsWith("_"))throw Error(`${e.name||"component"}: declared prop '${s}' collides with component internals — `+"underscore-prefixed names are reserved for the runtime");if(s in t)throw Error(`${e.name||"component"}: declared prop '${s}' collides with a component member (a method or lifecycle slot already answers '${s}')`)}oo.add(e)}function vc(e,t){let s=po.get(e)?.gates?.[t];if(!s?.cell)throw Error(`[Rip] render gate ${t} has no renderer-resolved source binding — `+"gated components may only be constructed by rip/app createRenderer()");let i=s.value,n=!0;return Y1(()=>{if(n)return n=!1,s.cell.read(),i;let a=s.cell.read();for(let o of s.tail){if(a==null)break;a=a[o]}if(a!=null)i=a;return i})}var vr=new WeakMap;function lo(e,t,r){if(t.startsWith("--")&&typeof e.setProperty==="function")if(r==null||r==="")e.removeProperty(t);else e.setProperty(t,String(r));else e[t]=r}function To(e,t){let r=vr.get(e);if(t==null){e.removeAttribute("style"),vr.delete(e);return}if(typeof t!=="object"){e.setAttribute("style",String(t)),vr.delete(e);return}if(r){for(let s of r)if(!(s in t))lo(e.style,s,"")}vr.set(e,Object.keys(t));for(let s of Object.keys(t))lo(e.style,s,t[s])}var Oc=new Set(["disabled","hidden","readonly","required","checked","selected","autofocus","autoplay","controls","loop","muted","multiple","novalidate","open","reversed","defer","async","formnovalidate","allowfullscreen","inert","ismap","nomodule","playsinline","default","itemscope","alpha","shadowrootdelegatesfocus","shadowrootclonable","shadowrootserializable"]),ts=(e)=>e==="className"?"class":e,co=(e)=>new Proxy(e,{get(t,r){let s=t[typeof r==="string"?ts(r):r];return s!=null&&typeof s==="object"&&typeof s.read==="function"?s.value:s}});function ho(e,t){let r=e.__props??[],s=e.__extends??null,i=null;for(let n of Object.keys(t)){if(n==="children")continue;if(n.startsWith("__bind_")&&n.endsWith("__")){let a=n.slice(7,-2);if(r.includes(a))continue;throw Error(`${e.name||"component"}: cannot bind unknown prop '${a}' — declared `+`props are [${r.join(", ")}]`)}if(r.includes(n))continue;if(s!==null){(i??={})[ts(n)]=t[n];continue}throw Error(`${e.name||"component"}: unknown prop '${n}' — declared props are `+`[${r.join(", ")}]`)}return i}function fo(e,t){let r=t?.asChild;if(r==null||r===!1)return!1;if(r===!0)return!0;let s=typeof r==="object"&&typeof r.read==="function"?"a reactive value":`${typeof r} ${String(r)}`;throw Error(`${e.name||"component"}: asChild takes true or nothing, fixed at construction — got ${s}`)}function Ic(e){return e!=null&&typeof e==="object"&&typeof e.read==="function"?e.value:e}function $c(e){if(e==null)return"nothing";if(e.nodeType===3)return"text";if(e.nodeType===8)return"a comment";if(e.nodeType===11)return`a fragment of ${e.childNodes.length} nodes`;return typeof e==="object"?"an object that is not a node":`${typeof e} ${String(e)}`}class wo{constructor(e={}){let t=gc(this.constructor,e);if(t)return t;this._state="new",this._owner=z1?._projectionOwner??z1??null,Ac(this.constructor,this);let r=this.constructor.__gates,s=Or,i=s?.brand===mo&&s.component===this.constructor&&s.used!==!0;if(i)s.used=!0;if(r?.length&&!i)throw Error("[Rip] component declares render gates (<~) and cannot be constructed directly or as an embedded child; render gates are honored only by rip/app createRenderer()");if(i){if(po.set(this,s),s.parent)this._parent=s.parent;if(s.stash!=null)this.stash=s.stash;if(s.router!=null)this.router=s.router,Object.defineProperty(this,"params",{get:()=>s.router.params,configurable:!0}),Object.defineProperty(this,"query",{get:()=>s.router.query,configurable:!0})}if(this.stash==null&&globalThis.__ripStash!=null)this.stash=globalThis.__ripStash;if(this.router==null&&globalThis.__ripRouter!=null)this.router=globalThis.__ripRouter;let n=ho(this.constructor,e);if("children"in e)this.children=e.children;if(this.constructor.__hmrId)this._hmrPropKeys=Ro(e);if(this.constructor.__extends!=null)this._rest=n??{},this.rest=A1(co(this._rest)),this._asChild=fo(this.constructor,this._rest);this._frame=Tt({nested:!1});let a=Le(this),o=he(this._frame);try{this._init(e)}catch(l){X1(o),pe(a),this._teardown({state:"failed",hooks:!1,removeDOM:!0}),this._initFailed=!0,Xi(l,this);return}if(X1(o),pe(a),this.constructor.__hmrId)hc(this)}_init(e){}_beginProjection(e){let t={prev:Le(this),owner:this._projectionOwner??null};return this._projectionOwner=e,t}_endProjection(e){this._projectionOwner=e.owner,pe(e.prev)}_setChildren(e){let t=this.children;if(t!=null&&typeof t==="object"&&typeof t.read==="function"&&"value"in t)t.value=e;else this.children=e;if(this._asChild&&this._state==="mounted")this._rehost()}_adoptChild(){let e=Ic(this.children);if(e!=null&&e.nodeType===1)return e;throw Error(`${this.constructor.name||"component"}: asChild renders the projected element as the host, so the body must `+`be exactly one element — got ${$c(e)}`)}_rehost(){let e=this._inheritedEl;if(this._hmrRelease(!1),!this._hmrRebind())return;if(!this._mountCreate())return;this._mountSetup(),this._rehostAbove(e)}_rehostAbove(e){let t=this._parent;if(e==null||this._root===e||!t?._asChild||t._state!=="mounted"||t._inheritedEl!==e)return;t._setChildren(this._root)}_updateProp(e,t){if(this._state==="failed"||this._state==="unmounted")return;let r=this.constructor.__props??[];if(!r.includes(e)){if(this.constructor.__extends){this._setRestProp(e,t);return}throw Error(`${this.constructor.name||"component"}: cannot update unknown prop '${e}' — declared `+`props are [${r.join(", ")}]`)}let s=this[e];if(s&&typeof s==="object"&&"value"in s){s.value=t;return}throw Error(`${this.constructor.name||"component"}: prop '${e}' is non-reactive — parent updates `+"cannot reach it (declare it with ':=' to receive updates)")}_setRestProp(e,t){if(e.startsWith("__bind_"))return;if(this._state==="failed"||this._state==="unmounted")return;if(e==="asChild")throw Error(`${this.constructor.name||"component"}: asChild is fixed at construction and takes no update`);if(e=ts(e),this._rest||(this._rest={}),t==null)delete this._rest[e];else this._rest[e]=t;this.rest.touch();let r=he(this._frame);try{this._applyInheritedProp(this._inheritedInst??this._inheritedEl,e,t)}finally{X1(r)}}_applyRestToInheritedEl(){if(this._state==="failed"||this._state==="unmounted")return;if(!this._inheritedEl||!this._rest)return;for(let e in this._rest)this._applyInheritedProp(this._inheritedEl,e,this._rest[e])}_mergeRestStyle(e){let t=this.rest.value.style;if(t==null)return e;if(e==null)return t;let r=this.constructor.name||"component";if(typeof e!=="object"||typeof t!=="object")throw Error(`${r}: style merges by key, and a string style has none — the host line's style and the caller's must both be objects`);for(let s of Object.keys(t))if(Object.hasOwn(e,s))throw Error(`${r}: style key '${s}' is set by the host line and by the caller — a shared key is refused, never resolved by precedence`);return{...e,...t}}_applyInheritedProp(e,t,r){if(this._state==="failed"||this._state==="unmounted")return;if(!e||t==="key"||t==="ref"||t==="children"||t==="asChild"||t.startsWith("__bind_"))return;if(this._inheritedOwn?.has(t))return;let s=this._restWriters?.[t];if(s){if(s(),this._frame)this._frame.remove(s);delete this._restWriters[t]}if(r!=null&&typeof r==="object"&&typeof r.read==="function"){(this._restWriters??={})[t]=x1(()=>{this._applyPlainInheritedProp(e,t,r.value)});return}this._applyPlainInheritedProp(e,t,r)}_applyPlainInheritedProp(e,t,r){if(typeof e._updateProp==="function"){if(e._state==="failed"||e._state==="unmounted")return;e._updateProp(t,r);return}let s=e;if(t[0]==="@"){let i=t.slice(1).split(".")[0];this._restHandlers||(this._restHandlers={});let n=this._restHandlers[t];if(n)s.removeEventListener(i,n);if(typeof r==="function"){let a=(o)=>M1(()=>r(o));this._restHandlers[t]=a,s.addEventListener(i,a)}else delete this._restHandlers[t];return}if(t==="class"||t==="className"){if(s instanceof SVGElement)s.setAttribute("class",Dr(r));else s.className=Dr(r);return}if(t==="style"){To(s,r);return}if(t==="innerHTML"||t==="textContent"||t==="innerText"||t==="value"){s[t]=r??"";return}if(t==="checked"){s.checked=!!r;return}if(Oc.has(t)){s.toggleAttribute(t,!!r);return}if(r==null)s.removeAttribute(t);else s.setAttribute(t,r)}_beginMount(){if(this._state==="new"){this._state="mounting";return}let e=this.constructor.name||"component";if(this._state==="mounting")throw Error(`${e}: cannot mount an instance whose mount is already in progress`);if(this._state==="mounted")throw Error(`${e}: cannot mount an already-mounted instance — construct a new instance for another target`);if(this._state==="failed")throw Error(`${e}: cannot mount a failed instance — its mount rolled back; construct a new instance`);throw Error(`${e}: cannot mount an unmounted instance — its effects were disposed on unmount; construct a new instance`)}_mountCreate(){if(this._beginMount(),this._hmrRebindPending){if(this._hmrRebindPending=!1,!this._hmrRebind())return!1}let e=Le(this),t=he(this._frame),r=null,s=!1;try{this._root=this._create()}catch(i){r=i,s=!0}finally{X1(t),pe(e)}if(s)return this._failMount(r),!1;return!0}_mountSetup(e=null){if(this._state!=="mounting")return this._nodes?.[0]??this._root;let t=Le(this),r=he(this._frame),s=null,i=!1;try{if(e){let n=this._nodes?.[0]??this._root;if(n?.parentNode)n.parentNode.insertBefore(e,n)}if(this.beforeMount)this.beforeMount();if(this._setup)this._setup();if(this.mounted)this.mounted();this._state="mounted",$r(e),this._hmrDrainOrphans((n,a)=>console.error(`[Rip] ${n} error:`,a))}catch(n){s=n,i=!0}finally{X1(r),pe(t)}if(i)return this._failMount(s),e;return this._nodes?.[0]??this._root}_failMount(e){this._teardown({state:"failed",hooks:!1,removeDOM:!0}),Xi(e,this)}_dispose(e,t){if(this._children){for(let r of this._children)try{t(r)}catch(s){e("child teardown",s)}this._children=null}try{this._frame?.dispose()}catch(r){e("owner disposal",r)}if(this._restWriters){for(let r of Object.values(this._restWriters))try{r()}catch(s){e("rest writer cleanup",s)}this._restWriters=null}if(this._restHandlers){if(this._inheritedEl)for(let[r,s]of Object.entries(this._restHandlers))try{this._inheritedEl.removeEventListener(r.slice(1).split(".")[0],s)}catch(i){e("rest handler cleanup",i)}this._restHandlers=null}if(this._refCleanups){let r=this._refCleanups;this._refCleanups=null;try{M1(()=>{for(let s of r)try{s()}catch(i){e("ref cleanup",i)}})}catch(s){e("ref cleanup batch flush",s)}}this._children=null,this._refCleanups=null,this._restWriters=null,this._restHandlers=null}_detachDOM(e,t){if(t)if(this._nodes)for(let r of this._nodes)try{$r(r)}catch(s){e("DOM detach",s)}else try{$r(this._root)}catch(r){e("DOM detach",r)}this._root=null,this._nodes=null,this._inheritedEl=null,this._inheritedInst=null,this._inheritedOwn=null}_teardown({state:e,hooks:t,removeDOM:r}){if(this._state==="failed"||this._state==="unmounted")return;if(this.constructor.__hmrId)fc(this);this._state=e;let s=(i,n)=>console.error(`[Rip] ${i} error:`,n);if(this._hmrDrainOrphans(s),t)try{if(this.beforeUnmount)this.beforeUnmount()}catch(i){s("beforeUnmount",i)}if(this._dispose(s,(i)=>{if(t)i.unmount({removeDOM:r});else i._teardown({state:i._state==="mounted"?"unmounted":"failed",hooks:!1,removeDOM:!0})}),t)try{if(this.unmounted)this.unmounted()}catch(i){s("unmounted",i)}this._detachDOM(s,r),this._target=null}_hmrRelease(e=!0){let t=(r,s)=>console.error(`[Rip] ${r} error:`,s);try{if(this.beforeUnmount)this.beforeUnmount()}catch(r){t("beforeUnmount",r)}this._hmrOrphans=[],this._hmrReleasing=!0;try{this._dispose(t,(r)=>r.unmount({removeDOM:!0}))}finally{this._hmrReleasing=!1}this._detachDOM(t,e),this._frame=Tt({nested:!1}),this._state="new"}_hmrRebind(){let e=(s,i)=>console.error(`[Rip] ${s} error:`,i),t=Le(this),r=he(this._frame);try{if(typeof this._hmrRefreshComputeds==="function")this._hmrRefreshComputeds();if(typeof this._hmrBindEffects==="function")this._hmrBindEffects()}catch(s){return X1(r),pe(t),e("hmr rebind",s),this._failMount(s),!1}return X1(r),pe(t),!0}_hmrApplyProps(e){let t=ho(this.constructor,e);if("children"in e)this.children=e.children;for(let r of this.constructor.__props??[]){let s=`__bind_${r}__`;if(s in e){this[r]=e[s];continue}if(!(r in e))continue;let i=e[r];if(i!=null&&typeof i==="object"&&typeof i.read==="function")this[r]=i;else this._updateProp(r,i)}if(this.constructor.__extends!=null)this._rest=t??{},this.rest.value=co(this._rest),this._asChild=fo(this.constructor,this._rest)}_hmrDrainOrphans(e){let t=this._hmrOrphans;if(!t)return;this._hmrOrphans=null;for(let r of t)try{r.unmount({removeDOM:!0})}catch(s){e("orphan teardown",s)}}_hmrRerender(){let e=this.constructor.name||"component";if(this._state!=="mounted")throw Error(`${e}: _hmrRerender requires a mounted instance`);let t=this._target,r=this._nodes,s=r?.[0]??this._root,i=s?.parentNode??null,n=r?.length?r[r.length-1].nextSibling:this._root?this._root.nextSibling:null,a=this._asChild===!0;if(this._hmrRelease(!a),!this._hmrRebind())return this;if(typeof this._create!=="function")return this._state="mounted",this._hmrDrainOrphans((o,l)=>console.error(`[Rip] ${o} error:`,l)),this;if(!this._mountCreate())return this;if(!a)try{let o=i&&i.nodeType!==11?i:null;if(o&&o.isConnected===!1)o=null;if(!o&&typeof t==="string"&&typeof document<"u")o=document.querySelector(t);else if(!o&&t&&t.nodeType!==11&&t.isConnected!==!1)o=t;else if(!o&&typeof document<"u")o=document.querySelector("#content")||document.querySelector("#app");if(o){let l=n&&(typeof o.contains!=="function"||o.contains(n))?n:null;if(this._nodes)for(let c of this._nodes)o.insertBefore(c,l);else if(this._root)o.insertBefore(this._root,l);this._target=o.nodeType===11?null:o}}catch(o){return this._failMount(o),this}return this._mountSetup(),this._rehostAbove(s),this}mount(e){if(!this._mountCreate())return this;try{if(typeof e==="string")e=document.querySelector(e);if(this._target=e,this._root)e.appendChild(this._root)}catch(t){return this._failMount(t),this}return this._mountSetup(),this}unmount({removeDOM:e=!0}={}){if(this._state==="failed"||this._state==="unmounted")return;if(this._state==="mounted"&&this._owner?._hmrReleasing){this._owner._hmrOrphans.push(this);return}if(this._state==="mounting")throw Error(`${this.constructor.name||"component"}: cannot unmount while mounting`);this._teardown({state:"unmounted",hooks:this._state==="mounted",removeDOM:e})}emit(e,t){if(this._state!=="mounted"||!this._root)throw Error(`${this.constructor.name||"component"}: emit('${e}') outside the mounted window — `+"emit dispatches on the live root; call after mount and before unmount");(this._nodes?.[0]??this._root).dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!0}))}static mount(e="body"){return new this().mount(e)}}var ti={};Fe(ti,{ariaCurrent:()=>Kr,browserAdapter:()=>Vr,buildRoutes:()=>Ct,check:()=>ei,connectFeed:()=>Zr,createApply:()=>Qr,createComponents:()=>Fr,createMutation:()=>Co,createRenderer:()=>Wr,createRouter:()=>Ur,createStash:()=>Mr,createWorkspace:()=>Xr,currentRouter:()=>qc,currentStash:()=>zc,debounce:()=>Po,delay:()=>jr,hold:()=>Mo,interceptClicks:()=>Gr,launch:()=>zr,ownsAnchor:()=>Lt,parseQuery:()=>Ze,persistStash:()=>Hr,preloadLinks:()=>Yr,rash:()=>Mt,source:()=>Ao,throttle:()=>Lo,unwrapStash:()=>Ne,validatePrepared:()=>Rs});var Pr,rs,_o,No=Symbol.for("rip.source"),is=Symbol.for("rip.source.family"),Dc=64,xc=30000,Cc=/^(\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)\s*(s|sec|second|seconds|m|min|minute|minutes|h|hr|hour|hours|d|day|days|w|week|weeks|y|year|years)$/;function C1(e){return e!=null&&(typeof e==="object"||typeof e==="function")&&(e[No]===!0||e[is]===!0)}function ge(e){return e!=null&&typeof e==="function"&&e[is]===!0}_o=function(e){let t,r;if(e==null)return 0;if(typeof e==="number"){if(!(Number.isFinite(e)&&e>=0))throw TypeError('Rip App: source staleTime must be a non-negative finite number, a duration string, or "forever"');return e}if(typeof e==="string"){if(e==="forever")return 1/0;if(r=e.match(Cc),r)return t=parseFloat(r[1]),(()=>{switch(r[2][0]){case"s":return t*1000;case"m":return t*60000;case"h":return t*3600000;case"d":return t*86400000;case"w":return t*604800000;case"y":return t*31536000000}})()}throw TypeError('Rip App: source staleTime must be a non-negative number, a duration such as "5 min", or "forever"')};Pr=function(e,t,r=null){let s=A1(null),i=A1(!1),n=A1(null),a=0,o=null,l=null,c=!1,h=!1,f=!1,u=0,d=0,p=async function(S=!1,w=!1){let R,T;o?.abort(),o=typeof AbortController<"u"?new AbortController:null;let j=++a;if(!S)i.value=!0;let M=f;try{if(R=e(o?.signal),!(R!=null&&typeof R.then==="function"))throw TypeError("Rip App: source fetch must return a Promise");if(T=await R,j!==a)return T;return n.value=null,s.value=T,f=!0,u=Date.now(),d=w&&!h?u+xc:0,T}catch(x){if(j!==a)return;if(x?.name==="AbortError")return;if(n.value=x,!M)throw f=!1,u=0,x;return}finally{if(j===a)i.value=!1,l=null,c=!1,h=!1,r?.()}},m=function(S=!1,w=!1){let R=p(S,w);return l=R,c=w,h=!1,R},g=function(){return t===1/0||Date.now()-uDc){o=!1;for(let[l,c]of r){if(l===a)continue;if(c.loading)continue;r.delete(l),c.reset(),o=!0;break}if(!o)break}return},i=function(a){if(a==null)throw TypeError("Rip App: keyed source requires a key");let o=Pc(a),l=r.get(o);if(l)return r.delete(o),r.set(o,l),l;return l=Pr(function(c){return e(a,c)},t,s),r.set(o,l),s(o),l},n=function(a){return i(a).read()};return n[is]=!0,n.cellFor=i,n.reset=function(){let a=Array.from(r.values());r.clear();for(let o of a)o.reset();return},n};function Ao(e){if(!(e!=null&&typeof e==="object"&&!Array.isArray(e)))throw TypeError("Rip App: source expects an options object");if(typeof e.fetch!=="function")throw TypeError("Rip App: source options require a fetch function");let t=_o(e.staleTime);if(Object.prototype.hasOwnProperty.call(e,"kind")){if(!(e.kind==="singleton"||e.kind==="keyed"))throw TypeError("Rip App: source kind must be 'singleton' or 'keyed'");if(e.kind==="singleton"){if(e.fetch.length>1)throw TypeError("Rip App: singleton source fetch accepts at most one AbortSignal parameter");return Pr(e.fetch,t)}if(e.fetch.length<1||e.fetch.length>2)throw TypeError("Rip App: keyed source fetch requires a key parameter and accepts one optional AbortSignal parameter");return rs(e.fetch,t)}if(e.fetch.length>1)throw TypeError("Rip App: inferred source fetch accepts no parameters for a singleton or one key parameter for a keyed family");return e.fetch.length===1?rs(e.fetch,t):Pr(e.fetch,t)}var ls,It,ss,vt,$1=Symbol("rip.app.stash.raw"),Ye=Symbol("rip.app.stash.signals"),Lc=Symbol("rip.app.stash.keys"),Io=Symbol("rip.app.stash.defaults"),Mc=Symbol.for("rip.app.stash.purge"),$o=new WeakMap,jc=0,cs=A1(0),ns=function(){return cs.value++},Do=function(e,t){let r=e[Ye];if(!r)r=new Map,Object.defineProperty(e,Ye,{value:r});let s=r.get(t);if(!s)s=A1(e[t]),r.set(t,s);return s},Ot=function(e){return Do(e,Lc)},as=function(e){Ot(e).value=++jc;return};It=function(e){if(!(e!=null&&typeof e==="object"))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null||Array.isArray(e)};var vo=function(e){if(!It(e))return e;let t=$o.get(e);if(t)return t;return ls(e)},ze=function(e,t){let r=e?.[$1];if(!r)return e[t];let s=r[t];if(C1(s)){if(ge(s))return s;return vo(s.read())}return vo(Do(r,t).value)},os=function(e,t,r){let s,i,n,a,o=e?.[$1];if(!o)return e[t]=r,r;if(Array.isArray(o)&&t==="length"){if(a=o.length,n=+r,o.length=n,n!==a){if(o[Ye]){for(let f=Math.min(a,n),u=Math.max(a,n);f0))throw TypeError("Rip App: stash path must be a non-empty string");let n=[],a=0;if(e[0]!=="["){i=a;while(a=e.length||a===i)throw TypeError(`Rip App: malformed stash path '${e}'`);if(r=e.slice(i,a),a++,e[a]!=="]")throw TypeError(`Rip App: malformed stash path '${e}'`);a++,n.push(r)}else{i=a;while(a{let s=[];for(let i in r){if(!Object.hasOwn(r,i))continue;let n=r[i];s.push(ss(n,t))}return s})()};vt=function(e){if(!It(e))return e;let t=e[$1]?e[$1]:e;if(Array.isArray(t))return(()=>{let s=[];for(let i of t)if(!C1(i))s.push(vt(i));return s})();let r={};for(let s in t){if(!Object.hasOwn(t,s))continue;let i=t[s];if(C1(i))continue;r[s]=vt(i)}return r};function xo(e){let t=e?.[$1]?e[$1]:e;if(!(t!=null&&typeof t==="object"))return;Object.defineProperty(t,Io,{value:vt(t),configurable:!0});return}function Lr(e){if(C1(e))return e;if(!It(e))return e;let t=e[$1]?e[$1]:e;if(Array.isArray(t))return(()=>{let s=[];for(let i of t)s.push(Lr(i));return s})();let r={};for(let s in t){if(!Object.hasOwn(t,s))continue;let i=t[s];Object.defineProperty(r,s,{value:Lr(i),writable:!0,enumerable:!0,configurable:!0})}return r}function Je(e,t){let r,s,i;if(!(e!=null&&typeof e==="object"))return;if(!(t!=null&&typeof t==="object"))return;let n=e[$1]?e[$1]:e;for(let a in t){if(!Object.hasOwn(t,a))continue;let o=t[a];if(r=Object.prototype.hasOwnProperty.call(n,a)?n[a]:void 0,C1(r))continue;if(Array.isArray(r)&&r.some(function(l){return C1(l)}))continue;if(s=r!=null&&typeof r==="object"&&!Array.isArray(r),i=o!=null&&typeof o==="object"&&!Array.isArray(o),s&&i)Je(e[a],o);else e[a]=vt(o)}return}var Uc=function(e,t){let r,s=t[Io];if(!s)return;r=function(i,n,a){let o;for(let l in n){if(!Object.hasOwn(n,l))continue;if(o=n[l],C1(o))continue;if(!(a!=null&&Object.prototype.hasOwnProperty.call(a,l))){delete i[l];continue}if(o!=null&&typeof o==="object"&&!Array.isArray(o))r(i[l],o,a[l])}return},r(e,t,s),Je(e,s);return},Vc={inc:!0,dec:!0,flip:!0,join:!0,keys:!0,has:!0,del:!0,peek:!0,reset:!0,source:!0},Wc=function(e,t,r){if(r==="inc")return function(s,i=1){let n=(Me(e,s)??0)+i;return At(e,s,n),n};if(r==="dec")return function(s,i=1){let n=(Me(e,s)??0)-i;return At(e,s,n),n};if(r==="flip")return function(s){let i=!(Me(e,s)??!1);return At(e,s,i),i};if(r==="join")return function(s,i){if(!(i!=null&&typeof i==="object"&&!Array.isArray(i)))throw TypeError("Rip App: join expects a plain object");M1(function(){let n=Me(e,s);if(!(n!=null&&typeof n==="object"&&!Array.isArray(n)))At(e,s,{}),n=Me(e,s);return(()=>{let a=[];for(let o in i){if(!Object.hasOwn(i,o))continue;let l=i[o];a.push(n[o]=l)}return a})()});return};if(r==="keys")return function(s){let i=s!=null?Me(e,s):e;if(!(i!=null&&typeof i==="object"))return[];let n=i[$1]?i[$1]:i;return Ot(n).value,Object.keys(n)};if(r==="has")return function(s){let i,n,a=qe(s);if(!(a.length>0))return!1;let o=e;for(let l=0;l0))return;let a=e;for(let o=0;o0))throw TypeError("Rip App: component path must be a non-empty string");let t=e.split("/"),r=t.some(function(n){return!n||n==="."||n===".."}),s=t.at(-1),i=t.slice(0,-1).some(function(n){return n.endsWith(".rip")});if(e.includes("\\")||r||i||s===".rip"||!s.endsWith(".rip"))throw TypeError(`Rip App: invalid component path '${e}'`);return e};hs=function(e){if(typeof e!=="string")throw TypeError("Rip App: component source must be a string");return e};fs=function(e){if(e===""||e==null)return"";if(typeof e!=="string")throw TypeError("Rip App: component directory must be a string");let t=e.split("/");if(e.includes("\\")||t.some(function(r){return!r||r==="."||r===".."}))throw TypeError(`Rip App: invalid component directory '${e}'`);return e};function Fr(){let e=new Map,t=new Map,r=new Set,s=function(n,a){let o=[];for(let l of Array.from(r))o.push((()=>{try{return l(n,a)}catch(c){return console.error("[Rip] component watcher error:",c)}})());return o};return{read(n){return e.get(Ae(n))},write(n,a){n=Ae(n),a=hs(a);let o=e.has(n)?"change":"create";e.set(n,a),t.delete(n),s(o,n);return},del(n){n=Ae(n),e.delete(n),t.delete(n),s("delete",n);return},exists(n){return e.has(Ae(n))},size(){return e.size},list(n=""){let a;n=fs(n);let o=n?n+"/":"",l=[];for(let[c]of e)if(c.startsWith(o)){if(a=c.slice(o.length),!a.includes("/"))l.push(c)}return l},listAll(n=""){n=fs(n);let a=n?n+"/":"",o=[];for(let[l]of e)if(l.startsWith(a))o.push(l);return o},load(n){let a,o;if(!(n!=null&&typeof n==="object"&&!Array.isArray(n)))throw TypeError("Rip App: component load expects a source object");for(let l in n){if(!Object.hasOwn(n,l))continue;let c=n[l];l=Ae(l),c=hs(c),e.set(l,c),t.delete(l)}return},watch(n){if(typeof n!=="function")throw TypeError("Rip App: component watch expects a function");r.add(n);let a=!1;return function(){if(a)return;a=!0,r.delete(n);return}},getCompiled(n){return t.get(Ae(n))},setCompiled(n,a){if(n=Ae(n),!(a!=null&&typeof a==="object"&&!Array.isArray(a)))throw TypeError("Rip App: compiled component module must be an object");t.set(n,a);return}}}var Fo,Bo,P1,ds,Uo,Vo,Wo,us=/^\w+$/,Ho={static:0,dynamic:1,optional:2,catchall:3},jo=8;P1=function(e){throw Error(`Rip App: ${e}`)};var xt=function(e){try{return decodeURIComponent(e)}catch(t){return null}};Wo=function(e){if(e==="")return"";if(typeof e!=="string")throw TypeError("Rip App: route root must be a string");let t=e.split("/");if(e.includes("\\")||t.some(function(r){return!r||r==="."||r===".."}))throw TypeError(`Rip App: invalid route root '${e}'`);return e};var Ko=function(e,t){let r;if(r=/^\[\[(.+)\]\]$/.exec(e)){if(!us.test(r[1]))P1(`invalid optional segment '${e}' in '${t}'`);return{kind:"optional",name:r[1]}}else if(r=/^\[\.\.\.(.+)\]$/.exec(e)){if(!us.test(r[1]))P1(`invalid catch-all segment '${e}' in '${t}'`);return{kind:"catchall",name:r[1]}}else if(e.startsWith("[..."))return P1(`invalid catch-all segment '${e}' in '${t}'`);else if(r=/^\[(.+)\]$/.exec(e)){if(!us.test(r[1]))P1(`invalid dynamic segment '${e}' in '${t}'`);return{kind:"dynamic",name:r[1]}}else if(/^\(.+\)$/.test(e))return{kind:"group"};else if(e.includes("[")||e.includes("]"))return P1(`invalid segment '${e}' in '${t}': markers claim a whole segment`);else return{kind:"static",text:e}};Fo=function(e){let t,r=(()=>{let f=[];for(let u of e.slice(0,-4).split("/"))f.push(Ko(u,e));return f})();if(r[r.length-1].kind==="group")P1(`route file name cannot be a group segment: '${e}'`);let s=r.filter(function(f){return f.kind!=="group"});for(let f=0;fjo)P1(`more than ${jo} optional segments in '${e}'`);let o="",l=[],c=[{shape:"",display:""}];for(let f of s)switch(l.push(Ho[f.kind]),f.kind){case"static":t="/"+f.text,o+=t,c=c.map(function(u){return{shape:u.shape+t,display:u.display+t}});break;case"dynamic":o+=`/:${f.name}`,c=c.map(function(u){return{shape:u.shape+"/:",display:`${u.display}/:${f.name}`}});break;case"optional":o+=`/:${f.name}?`,c=c.flatMap(function(u){return[u,{shape:u.shape+"/:",display:`${u.display}/:${f.name}`}]});break;case"catchall":o+=`/*${f.name}`,c=c.map(function(u){return{shape:u.shape+"/*",display:`${u.display}/*${f.name}`}});break}if(o==="")o="/";if(new Set(c.map(function(f){return f.shape||"/"})).size{let l=[];for(let c of e)l.push(Ko(c,t));return l})().filter(function(l){return l.kind!=="group"});for(let l of s)if(l.kind==="optional"||l.kind==="catchall")P1(`not-found page under an optional or catch-all segment: '${t}'`);let i=[];for(let l of s)if(l.name!=null){if(i.includes(l.name))P1(`duplicate parameter name '${l.name}' in '${t}'`);i.push(l.name)}let n="",a="",o=[];for(let l of s)if(o.push(Ho[l.kind]),l.kind==="static")n+="/"+l.text,a+="/"+l.text;else n+=`/:${l.name}`,a+="/:";return{pattern:n+"/*",shape:a+"/*",parts:s,ranks:o}};Uo=function(e,t){let r;return r=function(s,i){let n,a,o,l;if(s===e.length)return i===t.length?[]:null;let c=e[s];return(()=>{switch(c.kind){case"static":if(!(ih.length))continue;if(a=T.slice(h.length),l=a.split("/"),n=l.some(function(j){return!j||j==="."||j===".."}),a.includes("\\")||n||l.at(-1)===".rip")throw TypeError(`Rip App: invalid route file path '${T}'`);if(l.at(-1)==="_layout.rip"){f.set(l.slice(0,-1).join("/"),T);continue}if(l.at(-1)==="_404.rip"){if(l.slice(0,-1).some(function(j){return j.startsWith("_")}))continue;u.push({...Bo(l.slice(0,-1),a),rel:a,file:T});continue}if(l.some(function(j){return j.startsWith("_")}))continue;if(!a.endsWith(".rip"))throw TypeError(`Rip App: route files must be .rip sources: '${T}'`);d.push({...Fo(a),rel:a,file:T})}let p=new Map;for(let T of[...d].sort(function(j,M){return j.relj.pattern)return 1;return 0});let m=new Map;for(let T of[...u].sort(function(j,M){return j.relj.pattern)return 1;return 0});let g=d.map(function(T){return{route:Object.freeze({pattern:T.pattern,file:T.file,layouts:Object.freeze(ds(T.rel,f))}),parts:T.parts}}),b=u.map(function(T){return{route:Object.freeze({pattern:T.pattern,file:T.file,layouts:Object.freeze(ds(T.rel,f))}),parts:T.parts}}),S=function(T){if(typeof T!=="string")throw TypeError("Rip App: route match expects a path string");if(!T.startsWith("/"))return null;while(T.length>1&&T.endsWith("/"))T=T.slice(0,-1);return T==="/"?[]:T.slice(1).split("/")},w=function(T){let j;if(l=S(T),!l)return null;for(let M of g){if(j=Uo(M.parts,l),!j)continue;return{route:M.route,params:Object.fromEntries(j)}}return null},R=function(T){let j;if(l=S(T),!l)return null;for(let M of b){if(j=Vo(M.parts,l),!j)continue;return{route:M.route,params:Object.fromEntries(j)}}return null};return Object.freeze({routes:Object.freeze(g.map(function(T){return T.route})),match:w,notFound:R})}function Ze(e){if(typeof e!=="string")throw TypeError("Rip App: parseQuery expects a query string");return Object.fromEntries(new URLSearchParams(e))}var q1,ms,Go,Br;q1=function(e){let t=e.indexOf("#"),r=t>=0?e.slice(t+1):"",s=t>=0?e.slice(0,t):e,i=s.indexOf("?"),n=i>=0?s.slice(i+1):"";return{path:i>=0?s.slice(0,i):s,query:n,hash:r}};ms=function(e,t){let r=Object.keys(t);return r.length===Object.keys(e).length&&r.every(function(i){return e[i]===t[i]})?e:t};Br=function(e){if(!(e!=null&&typeof e.match==="function"&&Array.isArray(e.routes)))throw TypeError("Rip App: createRouter requires a route manifest");return e};Go=function(e){if(e===""||e==null)return"";if(!(typeof e==="string"&&e.startsWith("/")&&!e.endsWith("/")))throw TypeError(`Rip App: invalid router base '${e}'`);return e};function Ur(e){let t,{routes:r,adapter:s,onError:i}=e??{};if(!(r!=null&&(typeof r==="function"||typeof r.match==="function"&&Array.isArray(r.routes))))throw TypeError("Rip App: createRouter requires a route manifest or manifest thunk");for(let v of["read","push","replace","go","listen"])if(typeof s?.[v]!=="function")throw TypeError(`Rip App: router adapter requires a ${v} function`);let n=Go(e?.base),a=e?.hash===!0;if(n&&a)throw TypeError("Rip App: a base path does not apply in hash mode");let o=typeof r==="function"?Br(r()):Br(r),l=new Set,c=null,h=A1(null),f=A1(null),u=A1({}),d=A1({}),p=A1(""),m=jr(100,A1(!1)),g=Y1(function(){let v=f.value;if(!v)return null;return{route:v,layouts:v.layouts,params:u.value,query:d.value}}),b=function(v){if(!n)return v;if(v===n)return"/";if(v.startsWith(n+"/"))return v.slice(n.length);return null},S=function(v){if(!n)return v;return v==="/"?n:n+v},w=function(v){return a?s.read().split("#")[0]+"#"+v:S(v)},R=function(v){return i?.({status:404,path:v}),!1},T=0,j=function(v){return typeof v==="string"&&!v.startsWith("//")&&!v.includes("\\")},M=function(v){if(!j(v))return null;return o.match(v)},x=function(v){if(!j(v))return null;return o.match(v)??o.notFound?.(v)??null},A=function(v,U,Z,P){let X=ms(u.value,v.params),F=ms(d.value,Ze(Z));M1(function(){return h.value=U,f.value=v.route,u.value=X,d.value=F,p.value=P});let e1={path:U,route:v.route,params:X,query:F,hash:P};T+=1;try{for(let Q of Array.from(l))try{Q(e1)}catch(a1){console.error("[Rip] router onNavigate error:",a1)}}finally{T-=1}return!0},C=function(){if(T>=10)throw Error("Rip App: navigation loop — ten nested navigations from onNavigate")},O=function(){let v,U,Z,P,X,F=s.read();if(a){if(v=F.indexOf("#"),Z=v>=0?F.slice(v+1):"/",Z==="")Z="/";({path:P,query:X,hash:U}=q1(Z))}else if({path:P,query:X,hash:U}=q1(F),P=b(P),P==null)return R(q1(F).path);let e1=x(P);if(!e1)return R(P);return A(e1,P,X,U)},W=null,G=null,Y=function(){W=null;let v=s.readState?.()??{};return s.replace(s.read(),{...v,__ripScroll:s.scroll?.save?.()??null})},k=function(){return!W?W=setTimeout(Y,100):void 0};return t={init(){if(c)return t;return O(),c=s.listen(function(){if(!O())return;let v=s.readState?.();return s.scroll?.restore?.(v?.__ripScroll??null)}),G=s.scroll?.watch?.(k)??null,t},push(v,U={}){C();let{path:Z,query:P,hash:X}=q1(v),F=x(Z);if(!F)return R(Z);let e1=s.scroll?.save?.()??null,Q=s.readState?.()??{};if(s.replace(s.read(),{...Q,__ripScroll:e1}),s.push(w(v),null),A(F,Z,P,X),!U.noScroll)s.scroll?.top?.();return!0},replace(v,U={}){C();let{path:Z,query:P,hash:X}=q1(v),F=x(Z);if(!F)return R(Z);let e1=s.readState?.()??{};if(s.replace(w(v),{...e1,__ripScroll:null}),A(F,Z,P,X),!U.noScroll)s.scroll?.top?.();return!0},back(){return s.go(-1)},forward(){return s.go(1)},match(v){let{path:U,query:Z,hash:P}=q1(v),X=M(U);if(!X)return null;return{route:X.route,params:X.params,query:Ze(Z),hash:P}},claims(v){let U,Z,P,X,F;if(!(typeof v==="string"&&v.length>0))return null;if(a){if(U=v.indexOf("#"),U<0)return null;if(P=v.slice(U+1),P==="")P="/";({path:X,query:F,hash:Z}=q1(P))}else{if(!v.startsWith("/"))return null;if({path:X,query:F,hash:Z}=q1(v),X=b(X),X==null)return null}let e1=M(X);if(!e1)return null;let Q=X+(F?"?"+F:"")+(Z?"#"+Z:"");return{path:X,url:Q,route:e1.route,params:e1.params,query:Ze(F),hash:Z}},onNavigate(v){if(typeof v!=="function")throw TypeError("Rip App: onNavigate expects a function");return l.add(v),function(){return l.delete(v)}},rebuild(){let v,U,Z,P,X;if(o=typeof r==="function"?Br(r()):o,!c)return;let F=s.read();if(a){if(v=F.indexOf("#"),Z=v>=0?F.slice(v+1):"/",Z==="")Z="/";({path:P,query:X,hash:U}=q1(Z))}else if({path:P,query:X,hash:U}=q1(F),P=b(P),P==null)return R(q1(F).path);let e1=x(P);if(!e1)return R(P);let Q=f.value,a1=Q?.layouts??[],d1=e1.route.layouts??[],I=a1.length===d1.length&&a1.every(function(l1,L){return l1===d1[L]});if(Q?.file===e1.route.file&&I&&h.value===P)return;A(e1,P,X,U);return},destroy(){if(c?.(),c=null,G?.(),G=null,W)clearTimeout(W);W=null;return}},Object.defineProperty(t,"current",{get(){return g.value}}),Object.defineProperty(t,"path",{get(){return h.value}}),Object.defineProperty(t,"hash",{get(){return p.value}}),Object.defineProperty(t,"params",{get(){return u.value}}),Object.defineProperty(t,"query",{get(){return d.value}}),Object.defineProperty(t,"navigating",{get(){return m.value},set(v){return m.value=v}}),t}function Vr(){if(typeof window>"u"||window.history==null||window.location==null)throw Error("Rip App: browserAdapter requires a browser environment");window.history.scrollRestoration="manual";let e=function(r){return window.requestAnimationFrame?window.requestAnimationFrame(r):setTimeout(r,16)},t=0;return{read(){return window.location.pathname+window.location.search+window.location.hash},readState(){return window.history.state},push(r,s){return window.history.pushState(s,"",r)},replace(r,s){return window.history.replaceState(s,"",r)},go(r){return window.history.go(r)},listen(r){return window.addEventListener("popstate",r),function(){return window.removeEventListener("popstate",r)}},scroll:{save(){return{x:window.scrollX,y:window.scrollY}},restore(r){let s;if(r==null)return;let i=++t,n=r.x||0,a=r.y||0,o=0;s=function(){if(i!==t)return;let l=Math.max(0,(window.document?.documentElement?.scrollHeight||0)-window.innerHeight);return window.scrollTo(n,Math.min(a,l)),o+=1,a>l&&o<20?e(s):void 0},e(s);return},top(){return t+=1,window.scrollTo(0,0)},watch(r){return window.addEventListener("scroll",r,{passive:!0}),function(){return window.removeEventListener("scroll",r)}}}}}var ps,Yo,je;Yo=es();je=function(e,t,r,s=null){let i=s??r?.message??String(r),n=Error(i);return n.name="GateFailure",n.status=r?.status??r?.response?.status??500,n.path=e,n.file=t,n.error=r,n};ps=function(e,t){let r=e.getCompiled(t);if(!(r!=null&&typeof r==="object"))throw Error(`Rip App: no precompiled component module for '${t}'`);let s=function(n){return typeof n==="function"&&typeof n.prototype?.mount==="function"};if(s(r.default))return r.default;let i=[];for(let n in r){let a=r[n];if(n==="default")continue;if(s(a))i.push(a)}if(i.length!==1)throw Error(`Rip App: precompiled module '${t}' must export exactly one component class`);return i[0]};function Wr(e){let t;if(!(e!=null&&typeof e==="object"))throw TypeError("Rip App: createRenderer expects an options object");let{router:r,stash:s,components:i,target:n,onError:a}=e;if(!(r!=null&&typeof r==="object"))throw TypeError("Rip App: createRenderer requires a router object");if(!(s!=null&&Ne(s)!==s))throw TypeError("Rip App: createRenderer requires a stash built by createStash");if(!(i!=null&&typeof i.getCompiled==="function"))throw TypeError("Rip App: createRenderer requires a component registry");if(!(n!=null&&typeof n.appendChild==="function"))throw TypeError("Rip App: createRenderer requires a target with appendChild()");if(a!=null&&typeof a!=="function")throw TypeError("Rip App: createRenderer onError must be a function");let o=[],l=null,c=0,h=null,f=[],u=null,d=null,p=null,m=!1,g=function(L,t1){let N=Object.keys(L);return N.length===Object.keys(t1).length&&N.every(function(V){return L[V]===t1[V]})},b=function(L,t1){return L.length===t1.length&&L.every(function(N,V){return t1[V]===N})},S=function(L){let t1=Ne(s),N=L.split(".");for(let V=0;V",c1.file,`Rip App: ${c1.file} static __gates must be an array`);for(let K=0;K0))throw w(String(h1),c1.file,`Rip App: ${c1.file} has a malformed render gate path`);if(f1!=null&&typeof f1!=="function")throw w(h1,c1.file,`Rip App: gate '${h1}' has a non-function key`);if(p1=S(h1),!p1)throw w(h1,c1.file,`Rip App: gate '${h1}' does not resolve to a source`);if(V=p1.cell,ge(V)){if(!f1)throw w(h1,c1.file,`Rip App: gate '${h1}' is keyed and requires a key function`);try{o1=f1(t1,N),V=V.cellFor(o1)}catch(H){throw B=H,je(h1,c1.file,B,`Rip App: gate '${h1}' key failed: ${B.message}`)}}else if(f1)throw w(h1,c1.file,`Rip App: gate '${h1}' is a singleton and does not accept a key function`);if(c1.bindings[K]={cell:V,tail:p1.tail,path:h1,file:c1.file},!n1.has(V))n1.set(V,{cell:V,path:h1,file:c1.file,entryIndex:u1})}}return Array.from(n1.values())},j=async function(L,t1,N,V){let B,r1,o1=T(L,t1,N),f1=await Promise.allSettled((()=>{let n1=[];for(let u1 of o1)n1.push(u1.cell.ensure());return n1})());if(V!==c)return!1;let h1=null,p1=function(n1,u1){if(n1.entryIndex=u1,h1==null||u1=h1.entryIndex)break;for(let c1 of u1.bindings){r1=c1.cell.peek();for(let K of c1.tail){if(r1==null)break;r1=r1[K]}if(r1==null){p1(w(c1.path,c1.file,`Rip App: gate '${c1.path}' resolved to ${r1}; every gated subpath must exist and be non-null`),n1);break}c1.value=r1}}if(h1!=null)throw h1;return!0},M=function(L,t1){return Yo(L.cls,{gates:L.bindings,parent:t1,stash:s,router:r})},x=function(L){let t1=[];for(let N=L.length-1;N>=0;N--){let V=L[N];try{V.unmount?.()}catch(B){t1.push(B);try{V._teardown?.({state:"unmounted",hooks:!1,removeDOM:!0})}catch(r1){t1.push(r1)}}}return t1},A=function(){let L=o;o=[],l=null,f=[],u=null,d=null;let t1=x(L);if(t1.length)throw t1[0];return},C=null,O=function(){C?.remove?.(),C=null;return},W=function(L){let t1,N;O();let V=L.error?.stack??L.stack??L.message??String(L);C=(()=>{if(typeof document<"u"&&typeof document.createElement==="function")return t1=document.createElement("pre"),t1.style.cssText="margin:2rem;padding:1rem 1.25rem;color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;font:13px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;overflow-wrap:anywhere",t1.textContent=V,t1;else return N={nodeName:"PRE",textContent:V,parentNode:null,remove(){let B=N.parentNode?.children,r1=B?.indexOf(N)??-1;if(r1>=0)B.splice(r1,1);N.parentNode=null;return}},N})(),n.appendChild(C);return},G=function(){if(typeof document<"u"&&typeof document.createDocumentFragment==="function")return document.createDocumentFragment();let L=[];return{children:L,appendChild(t1){return L.push(t1),t1}}},Y=function(L,t1=n){if(O(),L.nodeType===11)t1.appendChild(L);else for(let N of L.children)t1.appendChild(N);return},k=function(L,t1){let N,V=L._nodes??[L._root];for(let B of V){if(!B)continue;if(B.matches?.("#content"))return B;if(N=B.querySelector?.("#content"),N)return N}return V.find(function(B){return B!=null})??t1},v=function(L){return L?.childNodes??L?.children??[]},U=function(L,t1){L.slot=t1,L.slotOwned=v(t1).length;return},Z=function(){let L,t1,N=n;for(let V=0;V0&&B.slot!=null&&B.slot!==N){t1=Array.from(v(B.slot)).slice(B.slotOwned??0),U(B,N);for(let r1 of t1)N.appendChild(r1);L._target=N}if(V===f.length-1)break;N=k(L,N)}if(f.length>1)u=N;return},P=function(L,t1,N){let V,B,r1;if(!L.some(function(n1){return typeof n1.cls.prototype?.onError==="function"}))return!1;let o1=G(),f1=o1,h1=[];try{for(let n1=0;n10)U(u1,f1);if(B.mount?.(f1),B._state==="failed")return x(h1),!1;f1=k(B,f1)}if(N!==c)return x(h1),!1;V=null;for(let n1=h1.length-1;n1>=0;n1--){let u1=h1[n1];if(typeof u1.onError==="function"){V=u1;break}}Y(o1)}catch(n1){return console.error("[Rip] boundary chain failed to mount:",n1),x(h1),!1}let p1=o;o=h1,l=h1[h1.length-1]??null,f=L,u=f1,d=null;try{V.onError(t1)}catch(n1){console.error("[Rip] boundary onError error:",n1)}for(let n1 of x(p1))console.error("[Rip] boundary teardown error:",n1);return!0},X=function(L,t1){let N=null;for(let B=L.length-1;B>=0;B--){let r1=L[B];if(typeof r1.instance?.onError==="function"){N=r1.instance;break}}if(!N)return!1;let V=o.slice(L.length);o=L.map(function(B){return B.instance}),l=o[o.length-1]??null,f=L,d=null;try{N.onError(t1)}catch(B){console.error("[Rip] boundary onError error:",B)}for(let B of x(V))console.error("[Rip] boundary teardown error:",B);return!0},F=async function(L,t1,N=i){let V,B,r1,o1,f1,h1,p1=L?.route;if(!p1?.file)throw Error("Rip App: renderer route state requires route.file");let n1=L.params??{},u1=L.query??{},c1=L.layouts??[];if(!Array.isArray(c1))throw Error("Rip App: renderer route state layouts must be an array");let K=f.map(function(m1){return m1.file}),_=p;if(p=null,_==null&&l!=null&&d!=null&&p1.file===d.file){if(b([...c1,p1.file],K)&&g(n1,d.params)){if(!(g(u1,d.query)||R(f,n1,u1))){if(typeof l.load==="function")await l.load(n1,u1);if(t1!==c)return null;return d={file:p1.file,params:n1,query:u1},l}}}let H=[...c1,p1.file],q=d!=null&&c1.length>0&&f.length===c1.length+1&&b(c1,K.slice(0,-1))&&!R(f.slice(0,-1),n1,u1),i1=_!=null?Math.max(0,Math.min(_,H.length-1)):q?c1.length:0;if(_!=null&&i1>0){if(!(f.length===H.length&&b(H.slice(0,i1),K.slice(0,i1))))i1=0}let D=[];for(let m1=0;m10){if(r1=q?X(D.slice(0,V),B):P(D.slice(0,V),B,t1),r1)return null}}throw B}let s1=G(),R1=s1,y1=[],S1=i1>0?D[i1-1].instance:null,_1=i1>0,v1=_1?k(S1,n):n;try{for(let m1=D.slice(i1),D1=0;D10)U(be,R1);if(o1.mount?.(R1),o1._state==="failed")throw Error(`Rip App: component '${be.file}' failed during mount`);if(i1+D11?R1:v1,f=D,d={file:p1.file,params:n1,query:u1};let g1=x(E1);if(m=g1.length>0,g1.length)for(let m1 of g1)if(B=je("","",m1),a!=null)try{a(B)}catch(D1){console.error("[Rip] renderer teardown reporter failed:",D1)}else console.error("[Rip] renderer teardown error:",B);return l},e1=function(L){let t1,N,V=L?.route;if(!V?.file)return;let B=L.params??{},r1=L.query??{},o1=L.layouts??V.layouts??[],f1=f.map(function(n1){return n1.file}),h1=d!=null&&b(o1,f1.slice(0,-1));if(h1&&V.file===d.file&&g(B,d.params))return;let p1=h1?[V.file]:[...o1,V.file];try{t1=(()=>{let n1=[];for(let u1 of p1)n1.push({file:u1,cls:ps(i,u1)});return n1})(),N=T(t1,B,r1)}catch(n1){return}for(let n1 of N)n1.cell.preload().catch(function(){return null});return},Q=function(L,t1){if(!(L!=null&&typeof L==="object"&&typeof t1==="string"))return null;let N=function(B){return typeof B==="function"&&B.__hmrId===t1},V=L.__hmrComponents;if(V!=null&&typeof V==="object")for(let B in V){let r1=V[B];if(N(r1))return r1}if(N(L.default))return L.default;for(let B in L){let r1=L[B];if(N(r1))return r1}return null},a1=function(L){let t1=L+"#",N=[];for(let B of f)if(B.file===L&&B.instance!=null)N.push(B.instance);for(let[B,r1]of Ji())if(typeof B==="string"&&B.startsWith(t1)){for(let o1 of r1.instances)if(!N.includes(o1))N.push(o1)}let V=[];for(let B of N)V.push({instance:B,entry:f.find(function(r1){return r1.instance===B})??null});return V},d1=function(L,t1){let N,V,B,r1,o1=(()=>{let n1=[];for(let u1 of L)if(typeof u1==="string"&&u1.endsWith(".rip"))n1.push(u1);return n1})();if(!(o1.length>0))return"unknown";let f1=0,h1=!1,p1=new Set;for(let n1 of o1){if(r1=t1.getCompiled(n1),B=a1(n1),r1==null){if(typeof t1.exists==="function"&&!t1.exists(n1)){if(B.some(function(u1){return u1.instance._state!=="unmounted"}))return"fallback"}else h1=!0;continue}for(let{instance:u1,entry:c1}of B){if(p1.has(u1))continue;if(u1._state==="unmounted")continue;if(u1._state!=="mounted")return"fallback";if(V=u1.constructor?.__hmrId,N=typeof V==="string"?Q(r1,V):null,N==null)return"fallback";if(wt(N),_t(u1.constructor,N)!=="patch")return"fallback";if(Qi(u1,N),p1.add(u1),f1+=1,c1!=null){if(c1.cls=N,c1!==f[f.length-1])Z()}}}if(f1>0)return"done";return h1?"unknown":"idle"},I=async function(L,t1=i){let N,V,B,r1,o1;if(!(Array.isArray(L)&&L.length>0))return"noop";for(let q of L)if(q==="stash.rip"||q.startsWith("stash/")||q==="seed.rip")return"escape";let f1=r.current;if(!(f1?.route?.file&&f.length>0))return"noop";let p1=[...f1.layouts??f1.route.layouts??[],f1.route.file],n1=b(p1,f.map(function(q){return q.file})),u1=Zi();try{if(o1=d1(L,t1),o1==="done")return Cr(u1),"narrow";if(o1==="idle"&&n1)return _e("noop",{paths:[...L]}),"noop"}catch(q){console.error("[Rip] HMR patch failed; falling back to remount:",q),_e("reject",{reason:"patch-failed",paths:[...L],message:q?.message?String(q.message):String(q)})}let c1=new Set(L),K=-1;for(let q=0;q{if(N?.name==="GateFailure")return N;else return B=L?.route?.file??"",je(N?.path??B,B,N)})(),a?.(V),l==null)W(V);throw V}finally{if(r1===c&&(Array.isArray(r)||typeof r==="string"?r.includes("navigating"):("navigating"in r)))r.navigating=!1}};let l1=null;return l1={current:null,mount:t,preload:e1,remountDirty:I,start(){if(h)return l1;return r.init?.(),h=x1(function(){let L=r.current;if(L?.route)t(L).catch(function(){return null});return}),l1},stop(){let L,t1;if(c++,h?.(),h=null,Array.isArray(r)||typeof r==="string"?r.includes("navigating"):("navigating"in r))r.navigating=!1;try{A()}catch(N){throw L=N,t1=je("","",L),a?.(t1),t1}return}},Object.defineProperty(l1,"current",{get(){return l}}),l1}var qo,Xo,gs=Symbol.for("rip.app.stash.persisted"),zo=Symbol.for("rip.app.stash.purge");Xo=function(e,t){return C1(t)?void 0:t};qo=function(e){if(e.storage!=null)return e.storage;if(!(typeof window<"u"&&window.localStorage!=null))throw Error("Rip App: persistStash requires a browser or an injected storage");return e.local?window.localStorage:window.sessionStorage};function Hr(e,t={}){let r,s=Ne(e)||e;if(s[gs])return function(){return null};s[gs]=!0;let i=qo(t),n=t.key||"__rip_app",a=t.debounce??2000;try{if(r=i.getItem(n),r)Je(e,JSON.parse(r))}catch(u){}let o=null,l=function(){o=null;try{i.setItem(n,JSON.stringify(Ne(e),Xo))}catch(u){}return},c=!1,h=x1(function(){if(cs.value,!c){c=!0;return}if(o!=null)clearTimeout(o);return o=setTimeout(l,a),function(){return o!=null?clearTimeout(o):void 0}});if(typeof window<"u")window.addEventListener("beforeunload",l);Object.defineProperty(s,zo,{value(){if(o!=null)clearTimeout(o),o=null;try{i.removeItem(n)}catch(u){}return},configurable:!0,writable:!0});let f=!1;return function(){if(f)return;if(f=!0,h?.(),typeof window<"u")window.removeEventListener("beforeunload",l);l(),s[zo]=null,s[gs]=!1;return}}var Jo,bs;bs=function(e){if(e.hasAttribute?.("data-router-ignore"))return!0;if(e.hasAttribute?.("download"))return!0;let t=e.getAttribute?.("target");if(t&&t.toLowerCase()!=="_self")return!0;return!1};function Pt(e){let t,r=e.getAttribute?.("href")??e.href;if(!(typeof r==="string"&&r.length>0))return null;if(/^[a-z][a-z0-9+.-]*:/i.test(r)){if(t=typeof location<"u"?location.origin:null,!(t!=null&&r.startsWith(t)))return null;r=r.slice(t.length)}if(r.startsWith("//")||r.includes("\\"))return null;return r}function Lt(e,t){if(t==null)return!1;if(bs(t))return!1;let r=Pt(t);if(r==null)return!1;return e.claims(r)!=null}Jo=function(){if(!(typeof document<"u"&&typeof document.querySelectorAll==="function"))throw Error("Rip App: ariaCurrent requires a browser or an injected host");return{anchors(){return Array.from(document.querySelectorAll("a[href]"))},observe(e){if(typeof MutationObserver>"u")return null;let t=!1,r=new MutationObserver(function(){if(t)return;return t=!0,requestAnimationFrame(function(){return t=!1,e()})});return r.observe(document.documentElement??document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["href","target","download","data-router-ignore"]}),function(){return r.disconnect()}}}};function Kr(e,t=null){if(!(e!=null&&typeof e.claims==="function"))throw TypeError("Rip App: ariaCurrent requires a router");t=t??Jo();let r=new WeakMap,s=function(){let l,c,h,f,u=e.path;for(let d of t.anchors()){if(l=bs(d)?null:e.claims(Pt(d)??""),h=l==null||u==null?null:l.path===u?"page":l.path!=="/"&&u.startsWith(l.path+"/")?"true":null,c=d.getAttribute?.("aria-current")??null,f=r.get(d),f!==void 0&&c!==f){if(r.delete(d),c!=null)continue;f=void 0}if(h!=null){if(f===void 0&&c!=null)continue;if(c!==h)d.setAttribute("aria-current",h);r.set(d,h)}else if(f!==void 0)d.removeAttribute("aria-current"),r.delete(d)}return},i=function(){try{s()}catch(l){console.error("[Rip] aria-current walk failed:",l)}return},n=x1(function(){return e.path,i()}),a=t.observe?.(i)??null,o=!1;return function(){if(o)return;o=!0,n(),a?.();try{for(let l of t.anchors())if(r.has(l)){if((l.getAttribute?.("aria-current")??null)===r.get(l))l.removeAttribute("aria-current");r.delete(l)}}catch(l){}return}}var Zo,Qo,ys,Ss;Qo=50;Zo=3000;Ss=function(){if(!(typeof document<"u"&&typeof document.addEventListener==="function"))throw Error("Rip App: link listeners require a browser or an injected host");return{listen(e,t,r=null){return document.addEventListener(e,t,r??!1),function(){return document.removeEventListener(e,t,r??!1)}}}};ys=function(e){while(e!=null&&e.tagName!=="A")e=e.parentElement;return e??null};function Gr(e,t=null){if(!(e!=null&&typeof e.claims==="function"&&typeof e.push==="function"))throw TypeError("Rip App: interceptClicks requires a router");t=t??Ss();let r=function(n){if(n.defaultPrevented)return;if(n.button!==0||n.metaKey||n.ctrlKey||n.shiftKey||n.altKey)return;let a=ys(n.target);if(!(a!=null&&Lt(e,a)))return;let o=e.claims(Pt(a));if(o==null)return;n.preventDefault(),e.push(o.url,{noScroll:a.hasAttribute?.("data-router-noscroll")===!0});return},s=t.listen("click",r),i=!1;return function(){if(i)return;i=!0,s();return}}function Yr(e,t,r=null){if(!(e!=null&&typeof e.claims==="function"))throw TypeError("Rip App: preloadLinks requires a router");if(!(t!=null&&typeof t.preload==="function"))throw TypeError("Rip App: preloadLinks requires a renderer with preload()");r=r??Ss();let s=null,i=null,n={href:null,at:0},a=function(){if(s!=null)clearTimeout(s);s=null,i=null;return},o=function(f){let u=ys(f.target);if(!(u!=null&&Lt(e,u)))return;if(u===i)return;a(),i=u;let d=Pt(u);s=setTimeout(function(){s=null,i=null;let p=Date.now();if(d===n.href&&p-n.at1)throw AggregateError(S,"Rip App: launch.destroy failed");return};globalThis.__ripStash=l,globalThis.__ripRouter=h;try{if(typeof n.replaceChildren==="function")n.replaceChildren();else if(Array.isArray(n.children))n.children.length=0;f.start()}catch(S){throw b(),S}return{stash:l,components:c,router:h,renderer:f,destroy:b}}var Es,qr,ks,Ts,ws,V1;V1=function(e){if(!(typeof e==="string"&&e.length>0))throw TypeError("Rip Workspace: component path must be a non-empty string");let t=e.split("/"),r=t.some(function(n){return!n||n==="."||n===".."||n.startsWith(".")}),s=t.at(-1),i=t.slice(0,-1).some(function(n){return n.endsWith(".rip")});if(e.includes("\\")||e.startsWith("/")||r||i||s===".rip"||!s.endsWith(".rip"))throw TypeError(`Rip Workspace: invalid component path '${e}'`);return e};qr=function(e){if(typeof e!=="string")throw TypeError("Rip Workspace: component source must be a string");return e};ks=function(e){if(e===""||e==null)return"";if(typeof e!=="string")throw TypeError("Rip Workspace: component directory must be a string");let t=e.split("/");if(e.includes("\\")||e.startsWith("/")||t.some(function(r){return!r||r==="."||r===".."||r.startsWith(".")}))throw TypeError(`Rip Workspace: invalid component directory '${e}'`);return e};Ts=function(e){if(!(typeof e==="string"&&/^[A-Za-z0-9_]{6}$/.test(e)))throw TypeError("Rip Workspace: publication hash must be six Base64URL-folded characters");return e};ws=function(e){if(!(e!=null&&typeof e==="object"&&!Array.isArray(e)))throw TypeError("Rip Workspace: compiled component module must be an object");return e};Es=function(e){let t;if(!(e!=null&&typeof e==="object"&&!Array.isArray(e)))throw TypeError("Rip Workspace: prepared state must be an object");let r=Ts(e.hash);if(!(e.sources!=null&&typeof e.sources==="object"&&!Array.isArray(e.sources)))throw TypeError("Rip Workspace: prepared sources must be an object");if(!(e.compiled!=null&&typeof e.compiled==="object"&&!Array.isArray(e.compiled)))throw TypeError("Rip Workspace: prepared compiled modules must be an object");let s=new Map,i=new Map,n=e.sources;for(let o in n){if(!Object.hasOwn(n,o))continue;let l=n[o];s.set(V1(o),qr(l))}let a=e.compiled;for(let o in a){if(!Object.hasOwn(a,o))continue;let l=a[o];if(o=V1(o),!s.has(o))throw Error(`Rip Workspace: compiled module '${o}' has no source`);i.set(o,ws(l))}return{hash:r,sources:s,compiled:i}};function Xr(){let e,t=new Map,r=new Map,s=new Set,i=null,n=!1,a=function(l,c){for(let h of Array.from(s))try{h(l,c)}catch(f){console.error("[Rip] workspace watcher error:",f)}return},o=function(l){t=l.sources,r=l.compiled,i=l.hash;return};return e={read(l){return t.get(V1(l))},write(l,c){if(n)throw Error("Rip Workspace: cannot write during a publication transition");l=V1(l),c=qr(c);let h=t.has(l)?"change":"create";t.set(l,c),r.delete(l),a(h,l);return},del(l){if(n)throw Error("Rip Workspace: cannot delete during a publication transition");l=V1(l),t.delete(l),r.delete(l),a("delete",l);return},exists(l){return t.has(V1(l))},size(){return t.size},list(l=""){let c;l=ks(l);let h=l?l+"/":"",f=[];for(let[u]of t)if(u.startsWith(h)){if(c=u.slice(h.length),!c.includes("/"))f.push(u)}return f},listAll(l=""){l=ks(l);let c=l?l+"/":"",h=[];for(let[f]of t)if(f.startsWith(c))h.push(f);return h},load(l){if(n)throw Error("Rip Workspace: cannot load during a publication transition");if(!(l!=null&&typeof l==="object"&&!Array.isArray(l)))throw TypeError("Rip Workspace: component load expects a source object");let c=[];for(let h in l){if(!Object.hasOwn(l,h))continue;let f=l[h];c.push([V1(h),qr(f)])}for(let[h,f]of c)t.set(h,f),r.delete(h);return},watch(l){if(typeof l!=="function")throw TypeError("Rip Workspace: component watch expects a function");s.add(l);let c=!1;return function(){if(c)return;c=!0,s.delete(l);return}},getCompiled(l){return r.get(V1(l))},setCompiled(l,c){if(n)throw Error("Rip Workspace: cannot compile during a publication transition");if(l=V1(l),!t.has(l))throw Error(`Rip Workspace: setCompiled for unknown component path '${l}'`);r.set(l,ws(c));return},hash(){return i},activate(l){if(i!=null)throw Error("Rip Workspace: a publication is already active");if(n)throw Error("Rip Workspace: a publication transition is already staged");o(Es(l));return},stage(l,c,h){if(n)throw Error("Rip Workspace: a publication transition is already staged");if(l=Ts(l),i!==l)throw Error(`Rip Workspace: change starts at ${l}, not ${i}`);if(!Array.isArray(h))throw TypeError("Rip Workspace: changed paths must be an array");let f=h.map(function(g){return V1(g)});if(new Set(f).size!==f.length)throw Error("Rip Workspace: changed paths must be unique");let u=Es(c),d={sources:t,compiled:r,hash:i};n=!0;let p=!1,m=function(g){let b;if(p)throw Error("Rip Workspace: publication transition is already finished");if(p=!0,n=!1,!g)return;o(u);for(let S of f)b=!u.sources.has(S)?"delete":d.sources.has(S)?"change":"create",a(b,S);return};return{components:{getCompiled(g){return u.compiled.get(V1(g))},exists(g){return u.sources.has(V1(g))}},commit(){return m(!0)},rollback(){return m(!1)}}},commit(l,c,h){e.stage(l,c,h).commit();return}},e}var r2,i2,s2,n2,a2,o2,l2,Jr;s2=250;i2=8000;r2=5000;l2=0;Jr=function(e){return typeof e==="string"&&/^[A-Za-z0-9_]{6}$/.test(e)};a2=function(){if(typeof location>"u")throw Error("Rip App: connectFeed needs a hub URL (no location to derive one from)");return`${location.protocol==="https:"?"wss":"ws"}://${location.host}/hub`};o2=function(){if(typeof WebSocket>"u")throw Error("Rip App: connectFeed needs a socket factory (no global WebSocket)");return function(e){return new WebSocket(e)}};n2=function(){if(typeof fetch>"u")throw Error("Rip App: connectFeed needs a fetch (no global fetch)");return function(e,t){return fetch(e,t)}};function Zr(e,t={}){let r;if(!(e!=null&&typeof e.hash==="function"&&typeof e.apply==="function"&&typeof e.reload==="function"))throw TypeError("Rip App: connectFeed expects hash, apply, and reload callbacks");if(!Jr(e.hash()))throw TypeError("Rip App: connectFeed client hash must be six Base64URL-folded characters");let s=t.hub??a2(),i=t.latestUrl??"/latest.json",n=t.makeSocket??o2(),a=t.fetch??n2(),o=t.report??function(...P){return console.error(...P)},l=t.backoff?.min??s2,c=t.backoff?.max??i2,h=t.ackTimeout??r2,f=!1,u=!1,d=!1,p=!1,m=null,g=0,b=null,S=null,w=0,R=null,T=[],j=Promise.resolve(),M=new Map,x=null,A=function(P){if(u||f)return;u=!0,e.reload(P);return},C=async function(P){let X;if(u||f)return!1;try{if(X=await e.apply(P),X==="rejected"){if(Jr(P?.hash))x=P?.hash;return!1}if(X==="reload"||!X)return A("change could not be applied"),!1;return x=null,!0}catch(F){return o("[Rip] publication change failed:",F),A("change failed"),!1}},O=function(P,X){j=j.then(async function(){if(X!==w)return!0;return await C(P)}),j=j.catch(function(F){return o("[Rip] publication queue failed:",F),A("change queue failed"),!1});return},W=async function(P){let X,F;if(f||u||P!==w)return;let e1=e.hash(),Q=await a(i,{cache:"no-store"});if(!Q?.ok)throw Error(`latest.json fetch failed (${Q?.status})`);let a1=await Q.json();if(!(a1!=null&&typeof a1==="object"&&!Array.isArray(a1)&&Object.keys(a1).length===1&&Object.hasOwn(a1,"hash")&&Jr(a1.hash)))throw Error("latest.json is malformed");if(f||u||P!==w)return;if(x!=null){if(a1.hash!==x){A(`a newer App generation followed rejected ${x}`);return}T=[],p=!0,g=0;return}let d1=new Set([e1]),I=0;while(I0))return"ignore";let n=(()=>{let h=[];for(let f of s)if(typeof f==="string"&&f.endsWith(".css"))h.push(f);return h})(),a=(()=>{let h=[];for(let f of s)if(typeof f==="string"&&f.endsWith(".rip"))h.push(f);return h})(),o=(()=>{let h=[];for(let f of s)if(typeof f==="string"&&!f.endsWith(".rip")&&!f.endsWith(".css"))h.push(f);return h})();if(a.length===0){if(o.length>0)return"reload";if(n.length>0)return"css";return"ignore"}let l=await e.renderer.remountDirty(a,i);if(l==="narrow")return t(`[Rip] applied ${a.join(", ")} — update`),"update";if(l==="reload")return t(`[Rip] applied ${a.join(", ")} — reload`),"reload";if(l==="noop")return"ignore";if(await e.escape(a,i)==="reload")return"reload";return t(`[Rip] applied ${a.join(", ")} — update`),"update"}}}var Gc=function(e){if(e instanceof Uint8Array)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw TypeError("Rip App: rash expects bytes")},Yc=function(e){let t,r,s,i,n,a,o,l,c,h,f,u,d,p,m,g,b=Gc(e);if(typeof Bun<"u"&&Bun.CryptoHasher!=null)return new Uint8Array(new Bun.CryptoHasher("sha256").update(b).digest());let S=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],w=b.length*8,R=new Uint8Array(b.length+9+63&-64);R.set(b),R[b.length]=128;let T=new DataView(R.buffer);T.setUint32(R.length-4,w>>>0,!1),T.setUint32(R.length-8,Math.floor(w/4294967296)>>>0,!1);let j=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],M=function(W,G){return W>>>G|W<<32-G},x=new Uint32Array(64),A=0;while(A>>3,p=M(x[W-2],17)^M(x[W-2],19)^x[W-2]>>>10,x[W]=x[W-16]+d+x[W-7]+p>>>0;[s,i,n,o,l,c,h,f]=j;for(let W=0;W<64;W++)r=M(l,6)^M(l,11)^M(l,25),a=l&c^~l&h,m=f+r+a+S[W]+x[W]>>>0,t=M(s,2)^M(s,13)^M(s,22),u=s&i^s&n^i&n,g=t+u>>>0,f=h,h=c,c=l,l=o+m>>>0,o=n,n=i,i=s,s=m+g>>>0;j[0]=j[0]+s>>>0,j[1]=j[1]+i>>>0,j[2]=j[2]+n>>>0,j[3]=j[3]+o>>>0,j[4]=j[4]+l>>>0,j[5]=j[5]+c>>>0,j[6]=j[6]+h>>>0,j[7]=j[7]+f>>>0,A+=64}let C=new Uint8Array(32),O=new DataView(C.buffer);for(let W=0;W<8;W++)O.setUint32(W*4,j[W],!1);return C},Mt=function(e){let t=Yc(e),r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";return(r[t[0]>>2]+r[(t[0]&3)<<4|t[1]>>4]+r[(t[1]&15)<<2|t[2]>>6]+r[t[2]&63]+r[t[3]>>2]+r[(t[3]&3)<<4|t[4]>>4]).replaceAll("-","_")},ei=function(e){let t=JSON.stringify(e.map(function(r){return[r.id,r.hash]}));return Mt(new TextEncoder().encode(t))};var zc=function(){return globalThis.__ripStash},qc=function(){return globalThis.__ripRouter};(()=>{if(typeof document>"u"||typeof WebSocket>"u")return;let e=document.currentScript;if(!(e?/\bwatch\.js\b/.test(e.src||""):!!document.querySelector("script[watch]"))||globalThis.__ripWatch)return;globalThis.__ripWatch=!0;let r=location.pathname,s=(h)=>Array.isArray(h)&&(h.includes(r)||r.endsWith("/")&&h.includes(r+"index.html")),i=(h)=>h.headers.get("etag")||h.headers.get("last-modified")||"",n=null;fetch(location.href,{method:"HEAD",cache:"no-store"}).then((h)=>{n=i(h)}).catch(()=>{});let a=()=>{if(n===null)return;fetch(location.href,{method:"HEAD",cache:"no-store"}).then((h)=>{if(i(h)!==n)location.reload()}).catch(()=>{})},o=!1,l=0,c=()=>{let h=location.protocol==="https:"?"wss://":"ws://",f=new WebSocket(h+location.host+"/hub");f.onopen=()=>f.send('{"+":["/assets"],"?":"observe"}'),f.onmessage=(u)=>{let d;try{d=JSON.parse(u.data)}catch{return}for(let p of Array.isArray(d)?d:[d]){if(!p||typeof p!=="object"||"<"in p)continue;if("!"in p){if(o)a();o=!0,l=0}if(s(p.touched))location.reload()}},f.onclose=()=>{if(l+=1,!o&&l>=6)return;setTimeout(c,Math.min(8000,500*2**(l-1)))},f.onerror=()=>{}};c()})();var{__hmrEmit:Xc}=Nt;function Ns(e,t={}){if(t.face==="ts")throw Error("rip: TypeScript face is unavailable in the browser");return Aa(e,{...t,face:"js"})}var m2={intrinsics:pr,stdlib:gr,schema:Er,reactive:Ar,components:Nt},p2=Object.freeze({...pr,...gr,...Er,...Ar,...Nt}),Jc=Object.freeze({rash:Mt,check:ei}),g2=Object.freeze({"rip/app":ti,"rip/app/rash":Jc});var Zc=new Map(Object.keys(m2).map((e)=>[new URL(`./runtime/${e}.js`,import.meta.url).pathname,e])),Qc=/(?:^|\/)src\/runtime\/(intrinsics|stdlib|schema|reactive|components)\.js$/,ri="__ripModuleBridge",e4=(e)=>e.slice(1,-1),c2=(e,t)=>{let r=e.split("/").slice(0,-1);for(let s of t.split("/")){if(s===""||s===".")continue;if(s===".."){if(!r.length)return null;r.pop()}else r.push(s)}return r.join("/")},h2=(e)=>{if(typeof URL<"u"&&typeof URL.createObjectURL==="function"&&typeof Blob<"u")return URL.createObjectURL(new Blob([e],{type:"text/javascript"}));return`data:text/javascript;base64,${btoa(unescape(encodeURIComponent(e)))}`};function b2({components:e,embeddedPackages:t={},debug:r=!1,hmr:s=!1}={}){if(!e||typeof e.read!=="function")throw TypeError("rip: createModuleLoader requires a component registry");let i=new Map,n=new Map,a=new Map,o=new Map,l=new Map,c=new Set,h=(m)=>{if(typeof m==="string"&&m.startsWith("blob:")&&typeof URL?.revokeObjectURL==="function")URL.revokeObjectURL(m)},f=async()=>{let m=[...c];c.clear(),await Promise.allSettled(m.map(async(g)=>h(await g)))},u=(m,g)=>{if(a.has(m))return a.get(m);globalThis[ri]??={};let b=globalThis[ri][m];if(b&&b!==g)throw Error(`rip: two copies of embedded module '${m}' are active on one page`);globalThis[ri][m]=g;let S=[`const ns = globalThis['${ri}'][${JSON.stringify(m)}];`];for(let R of Object.keys(g))if(R==="default")S.push("export default ns['default'];");else if(/^[A-Za-z_$][\w$]*$/.test(R))S.push(`export const ${R} = ns[${JSON.stringify(R)}];`);else throw Error(`rip: embedded module '${m}' exports '${R}', which cannot cross the module bridge`);let w=h2(S.join(` +`));return a.set(m,w),w},d=(m,g)=>{let b=e4(m),S=Zc.get(b)??b.match(Qc)?.[1];if(S)return{bridge:`runtime:${S}`,namespace:m2[S]};let w=(j)=>{try{return e.exists(j)}catch{return!1}},R=b.endsWith(".rip")?"":` — did you mean '${b}.rip'?`;if(b.startsWith("./")||b.startsWith("../")){let j=c2(g,b);if(j&&w(j))return{path:j};if(!g.startsWith("rip/")){let M=c2(`app/${g}`,b),x=M?.startsWith("app/")?M.slice(4):M;if(x&&w(x))return{path:x}}throw Error(`rip: '${g}' imports '${b}', which is not in the bundle${R}`)}let T=b.match(/^rip\/([\w-]+)(?:\/(.+))?$/);if(T){if(w(b))return{path:b};let j=`rip/${T[1]}`,M=t[b];if(M)return{bridge:`package:${b}`,namespace:M};if(t[j])throw Error(`rip: '${g}' imports '${b}', which '${j}' does not export in the browser`);let x=T[2]?T[2].endsWith(".rip")?T[2]:`${T[2]}.rip`:"index.rip",A=`${j}/${x}`;if(!w(A))throw Error(`rip: '${g}' imports '${b}', but '${A}' is not in the bundle — `+"only packages declaring browser safety travel to the browser");return{path:A}}throw Error(`rip: '${g}' imports '${b}', which is not loadable in a browser — `+"server-only and unknown modules never travel to the browser")},p=(m,g)=>{if(g.includes(m))throw Error(`rip: import cycle through '${m}' (${g.join(" -> ")} -> ${m})`);if(i.has(m))return i.get(m);let b=(async()=>{let S=e.read(m);if(S===void 0)throw Error(`rip: '${m}' is not in the bundle`);let w=Ns(S,{path:m,runtimeDelivery:"import",browserModule:!0,...s?{hmr:!0}:null}),R=w.code;for(let T of[...w.imports].reverse()){let j=d(T.specifier,m);if(j.path){let x=o.get(j.path);if(!x)o.set(j.path,x=new Set);x.add(m);let A=l.get(m);if(!A)l.set(m,A=new Set);A.add(j.path)}let M=j.bridge?u(j.bridge,j.namespace):await p(j.path,[...g,m]);R=`${R.slice(0,T.start)}${JSON.stringify(M)}${R.slice(T.end)}`}if(r){let T=btoa(unescape(encodeURIComponent(JSON.stringify(w.map))));R+=` +//# sourceMappingURL=data:application/json;charset=utf-8;base64,${T}`}return h2(R)})();return i.set(m,b),b.catch(()=>i.delete(m)),b};return{async import(m){if(n.has(m))return n.get(m);let b=await import(await p(m,[]));return n.set(m,b),e.setCompiled(m,{...b}),b},invalidate(m){let g=[m],b=new Set;while(g.length){let S=g.pop();if(b.has(S))continue;if(b.add(S),i.has(S))c.add(i.get(S));i.delete(S),n.delete(S);for(let w of o.get(S)??[])g.push(w);o.delete(S);for(let w of l.get(S)??[]){let R=o.get(w);if(R?.delete(S),R?.size===0)o.delete(w)}l.delete(S)}return b},collect:f,dispose(){for(let m of i.values())c.add(m);i.clear(),n.clear(),o.clear(),l.clear();for(let m of a.values())h(m);a.clear(),f()}}}var y2=Object.keys(p2),t4=y2.map((e)=>p2[e]),r4=()=>{if(typeof document>"u"||typeof document.querySelectorAll!=="function")throw Error("rip: processRipScripts requires a browser or an injected host");return{scripts(){return Array.from(document.querySelectorAll('script[type="text/rip"]')).map((e)=>({src:e.getAttribute("src"),text:e.textContent??""}))},async fetchText(e){let t=await fetch(e);if(!t.ok)throw Error(`${t.status} ${t.statusText}`);return t.text()},prepare(e,t){return Function(...t,e)},async ready(){if(document.readyState==="loading")await new Promise((e)=>document.addEventListener("DOMContentLoaded",e,{once:!0}))},report(e){console.error("[Rip]",String(e))}}},i4=(e)=>{let t=e.split(` +`),r=null;for(let s of t){if(!s.trim())continue;let i=s.match(/^[ \t]*/)[0];if(r===null){r=i;continue}let n=0;while(ns.trim()?s.slice(r.length):s).join(` +`)},s4=(e)=>{try{return new URL(e,"https://rip.invalid/").href}catch{return e}};async function Vh(e=null){let t=e??r4();await t.ready?.();let r=[],s=new Set,i=(u)=>{let d=s4(u);if(s.has(d))throw Error(`rip: script source '${u}' is listed more than once`);s.add(d)};for(let u of t.dataSrc?.()??[])i(u),r.push({label:u,text:null,url:u});let n=0;for(let u of t.scripts?.()??[])if(n+=1,u.src)i(u.src),r.push({label:u.src,text:null,url:u.src});else r.push({label:``,text:i4(u.text??"")});let a=[],o=(u,d)=>{a.push({label:u,error:d}),t.report?.(d)},l=[];for(let u of r){if(u.text!==null){l.push(u);continue}if(typeof t.fetchText!=="function")throw Error("rip: this host loads script sources by URL but provides no fetchText");try{l.push({...u,text:await t.fetchText(u.url)})}catch(d){o(u.label,Error(`rip: failed to load '${u.label}': ${d.message}`))}}let c=l,h=null;while(c.length){let u=[],d=1,p=[];for(let m of c){u.push({source:m,start:d});let g=m.text.endsWith(` `)?m.text.slice(0,-1):m.text;p.push(g),d+=g.split(` -`).length}try{h=Nn(p.join(` +`).length}try{h=Ns(p.join(` `),{path:"",runtimeDelivery:"none",script:!0});break}catch(m){let g=u[0];for(let w of u)if(typeof m.line==="number"&&w.start<=m.line)g=w;let b=typeof m.line==="number"?m.line-g.start+1:null,S=Error(`rip: ${g.source.label}${b?`:${b}`:""} failed to compile: ${m.message}`);S.cause=m,S.line=b,S.col=m.col,o(g.source.label,S),c=c.filter((w)=>w!==g.source),h=null}}let f=!1;if(h){let u=`'use strict'; return (async () => { ${h.code} -})();`,d=null;try{d=t.prepare(u,g2)}catch(p){let m=Error("rip: script evaluation is blocked by Content Security Policy — running Rip from script tags requires 'unsafe-eval' "+"(script-src). Serve precompiled JavaScript or relax the policy for this page.");m.cause=p,o("",m)}if(d)try{await d(...Zc),f=!0}catch(p){o("",p)}}return{count:c.length,executed:f,failures:a}}var r4="data-rip-hmr-overlay",et=null,c2=(e)=>{if(e==null)return"Unknown update failure";if(typeof e==="string")return e;return e.message||e.stack||String(e)},h2=(e)=>{if(e==null||typeof e!=="object")return null;if(typeof e.path==="string"&&e.path)return e.path;if(typeof e.file==="string"&&e.file)return e.file;return null};function f2(e,t){if(typeof document>"u"||typeof document.createElement!=="function")return null;let r=document.body||document.documentElement;if(!r)return null;ve();let n=document.createElement("div");n.setAttribute(r4,e||"compile"),n.setAttribute("role","alert"),n.style.cssText=["position:fixed","inset:0","z-index:2147483646","display:flex","align-items:flex-start","justify-content:center","padding:2rem 1rem","box-sizing:border-box","background:rgba(15,23,42,0.45)","overflow:auto"].join(";");let i=document.createElement("div");i.style.cssText="position:relative;max-width:52rem;width:100%";let s=document.createElement("pre");s.style.cssText=["margin:0","padding:1rem 1.25rem","color:#b91c1c","background:#fef2f2","border:1px solid #fecaca","border-radius:8px","font:13px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace","white-space:pre-wrap","overflow-wrap:anywhere"].join(";");let a=e==="activate"?"Rip: update failed to activate":"Rip: update failed to compile",o=h2(t),l=o?`${a} +})();`,d=null;try{d=t.prepare(u,y2)}catch(p){let m=Error("rip: script evaluation is blocked by Content Security Policy — running Rip from script tags requires 'unsafe-eval' "+"(script-src). Serve precompiled JavaScript or relax the policy for this page.");m.cause=p,o("",m)}if(d)try{await d(...t4),f=!0}catch(p){o("",p)}}return{count:c.length,executed:f,failures:a}}var n4="data-rip-hmr-overlay",et=null,f2=(e)=>{if(e==null)return"Unknown update failure";if(typeof e==="string")return e;return e.message||e.stack||String(e)},u2=(e)=>{if(e==null||typeof e!=="object")return null;if(typeof e.path==="string"&&e.path)return e.path;if(typeof e.file==="string"&&e.file)return e.file;return null};function d2(e,t){if(typeof document>"u"||typeof document.createElement!=="function")return null;let r=document.body||document.documentElement;if(!r)return null;ve();let s=document.createElement("div");s.setAttribute(n4,e||"compile"),s.setAttribute("role","alert"),s.style.cssText=["position:fixed","inset:0","z-index:2147483646","display:flex","align-items:flex-start","justify-content:center","padding:2rem 1rem","box-sizing:border-box","background:rgba(15,23,42,0.45)","overflow:auto"].join(";");let i=document.createElement("div");i.style.cssText="position:relative;max-width:52rem;width:100%";let n=document.createElement("pre");n.style.cssText=["margin:0","padding:1rem 1.25rem","color:#b91c1c","background:#fef2f2","border:1px solid #fecaca","border-radius:8px","font:13px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace","white-space:pre-wrap","overflow-wrap:anywhere"].join(";");let a=e==="activate"?"Rip: update failed to activate":"Rip: update failed to compile",o=u2(t),l=o?`${a} ${o} `:`${a} -`;s.textContent=l+c2(t);let c=document.createElement("button");c.type="button",c.textContent="Dismiss",c.style.cssText=["position:absolute","top:0.5rem","right:0.5rem","padding:0.4rem 0.75rem","font:12px/1.2 system-ui,sans-serif","color:#0f172a","background:#fff","border:1px solid #cbd5e1","border-radius:6px","cursor:pointer"].join(";"),c.addEventListener("click",()=>ve()),i.appendChild(s),i.appendChild(c),n.appendChild(i),n.addEventListener("click",(f)=>{if(f.target===n)ve()});let h=(f)=>{if(f.key==="Escape")ve()};if(n._ripOnKey=h,typeof document.addEventListener==="function")document.addEventListener("keydown",h);return r.appendChild(n),et=n,Yc("reject",{kind:e||"compile",path:h2(t),message:c2(t).slice(0,500)}),n}function ve(){if(!et)return;let e=et._ripOnKey;if(e&&typeof document<"u"&&typeof document.removeEventListener==="function")document.removeEventListener("keydown",e);et.remove?.(),et=null}function Bh(){return et}var{validatePrepared:i4}=ti,b2=(e)=>e!==null&&typeof e==="object"&&!Array.isArray(e),_n=(e)=>typeof e==="string"&&/^[A-Za-z0-9_]{6}$/.test(e),y2=(e,t=!1)=>{if(typeof e!=="string"||e.length===0||e.startsWith("/")||e.includes("\\"))return!1;let r=e.split("/");if(r.some((n)=>!n||n==="."||n===".."||n.startsWith(".")))return!1;if(t){let n=r.at(-1);if(n===".rip"||!n.endsWith(".rip")||r.slice(0,-1).some((i)=>i.endsWith(".rip")))return!1}return!0},S2=(e,t)=>{let r=Object.keys(e).sort(),n=[...t].sort();return r.length===n.length&&r.every((i,s)=>i===n[s])},n4=(e)=>{if(!b2(e)||!S2(e,["hash","list"])||!_n(e.hash)||!Array.isArray(e.list))throw Error("rip: bundle must contain exactly one hash and one source list");let t={},r=null;for(let n of e.list){if(!Array.isArray(n)||n.length!==2||!y2(n[0],!0)||typeof n[1]!=="string"||r!==null&&r>=n[0])throw Error(`rip: bundle has a malformed or unsorted source entry: ${JSON.stringify(n)}`);if(n[0]==="rip/app"||n[0].startsWith("rip/app/"))throw Error(`rip: bundle source '${n[0]}' collides with embedded package 'rip/app'`);r=n[0],t[n[0]]=n[1]}return t},s4=(e)=>{if(!b2(e)||!S2(e,["from","hash","list"])||!_n(e.from)||!_n(e.hash)||!Array.isArray(e.list))throw Error("rip: publication change must contain exactly from, hash, and list");let t=null,r=[];for(let n of e.list){if(!Array.isArray(n)||n.length<1||n.length>2||!y2(n[0])||t!==null&&t>=n[0])throw Error(`rip: publication change has a malformed or unsorted entry: ${JSON.stringify(n)}`);let[i]=n,s=n.length===2&&n[1]===null;if(i.endsWith(".rip")){if(n.length!==2||!s&&typeof n[1]!=="string")throw Error(`rip: Rip change '${i}' must carry source or null`)}else if(n.length===2&&!s)throw Error(`rip: ordinary asset change '${i}' cannot carry content`);t=i,r.push({path:i,source:n[1],deletion:s})}return{from:e.from,hash:e.hash,entries:r}},a4=async(e)=>{let t=await fetch(e);if(!t.ok)throw Error(`rip: failed to fetch bundle '${e}': ${t.status} ${t.statusText}`);return t.text()};async function o4(e,{fetchText:t=a4}={}){if(!e)throw Error("rip: fetchBundle requires a url");let r=await t(e),n=typeof r==="string"?r:r?.text;if(typeof n!=="string")throw Error(`rip: bundle '${e}' fetch did not return text`);try{return JSON.parse(n)}catch(i){throw Error(`rip: bundle '${e}' is not valid JSON: ${i.message}`)}}var l4=(e,t,{hmr:r=!1}={})=>{let n=new Map(Object.entries(e)),i=new Map,a=p2({components:{read:(o)=>n.get(o),exists:(o)=>n.has(o),getCompiled:(o)=>i.get(o),setCompiled:(o,l)=>void i.set(o,l)},embeddedPackages:m2,debug:t,hmr:r});return{sources(o){n=new Map(Object.entries(o))},async compile(o=[]){let l=new Set;for(let c of o)for(let h of a.invalidate(c))l.add(h);try{let c={};for(let h of n.keys())if(!h.startsWith("rip/"))c[h]={...await a.import(h)};return{compiled:c,invalidated:[...l]}}finally{await a.collect()}},dispose:()=>a.dispose()}},c4=(e,t)=>{let r=e.split("?")[0];return`${r.slice(0,r.lastIndexOf("/")+1)}${t}`};async function Uh(e={}){if(!e.bundle&&!e.url)throw Error("rip: bootApp requires a bundle or a url");let t=e.bundle??await o4(e.url,{fetchText:e.fetchText}),r=n4(t),n=e.debug===!0,i=e.watch===!0||e.feed!=null,s=l4(r,n,{hmr:i}),a=Xr(),o=(L)=>L["seed.rip"]?.seed,l=(L)=>zr({bundle:{compiled:L,seed:o(L)},components:a,target:e.target,adapter:e.adapter,base:e.base,hash:e.hash,persist:e.persist,storage:e.storage,onError:e.onError}),c;try{let{compiled:L}=await s.compile();a.activate({hash:t.hash,sources:r,compiled:L}),c=l(L)}catch(L){throw s.dispose(),L}let h=null,f=!1,u={},d=e.feed?.report??((...L)=>console.error(...L)),p=e.feed?.report??((...L)=>console.info(...L)),m=(L)=>{if(ve(),p(`[Rip] reloading${L?` — ${L}`:""}`),typeof e.reload==="function")e.reload(L);else if(typeof location<"u")location.reload()},g=(L)=>{if(typeof document>"u"||typeof document.querySelectorAll!=="function")return[];let C=new Set,N=new URL(typeof location>"u"?"http://rip.invalid/":location.href),D=new URL("/",N);D.pathname=`/${L.replaceAll("%","%25")}`;let O=D.pathname;for(let W of document.querySelectorAll('link[rel="stylesheet"]')){let H=W.getAttribute("data-rip-css")===L;if(H)C.add(W);let G=W.getAttribute("href")||"";if(!G)continue;let k;try{k=new URL(G,N)}catch{continue}if(!H&&k.origin===N.origin&&(k.pathname===O||k.pathname.endsWith(O)))C.add(W)}return[...C]},b=(L,C)=>{for(let N of g(L)){let D=N.getAttribute("href")||N.href,O=D.indexOf("#"),W=O<0?"":D.slice(O),G=(O<0?D:D.slice(0,O)).split("?")[0];N.setAttribute("href",`${G}?hash=${encodeURIComponent(C)}${W}`),N.disabled=!1}},S=Qr({renderer:{remountDirty:(L,C)=>c.renderer.remountDirty(L,C)},escape:async()=>"reload",report:p}),w=new Set,R=async(L)=>{let C;try{C=s4(L)}catch(U){return d("[Rip] malformed publication change:",U),"reload"}if(a.hash()===C.hash)return w.clear(),ve(),!0;if(w.has(C.hash))return!0;let N=C.from;if(a.hash()!==C.from)if(w.has(C.from))N=a.hash();else return"reload";let D=()=>Object.fromEntries(a.listAll().map((U)=>[U,a.read(U)])),O=D(),W=[];for(let U of C.entries){if(!U.path.endsWith(".rip"))continue;if(W.push(U.path),U.deletion)delete O[U.path];else O[U.path]=U.source}let H,G;try{s.sources(O);let U=await s.compile(W);H=U.compiled,G=U.invalidated.filter((r1)=>!r1.startsWith("rip/")),i4({compiled:H,seed:o(H)})}catch(U){return s.sources(D()),w.add(C.hash),d("[Rip] changed Rip program failed to compile:",U),f2("compile",U),"rejected"}let k=C.entries.some((U)=>!U.path.endsWith(".rip")&&(!U.path.endsWith(".css")||U.deletion)),v=c.router.current,j=new Set([...v?.layouts??v?.route?.layouts??[],v?.route?.file].filter(Boolean)),X=C.entries.some((U)=>U.deletion&&U.path.endsWith(".rip")&&j.has(U.path));if(k||X)return s.sources(D()),"reload";let x=null,Z=!1;try{x=a.stage(N,{hash:C.hash,sources:O,compiled:H},W);let U=G.length?await S.absorb(G,x.components):"ignore";x.commit(),Z=!0,w.clear();for(let r1 of C.entries)if(r1.path.endsWith(".css"))b(r1.path,C.hash);if(ve(),U==="reload")return p("[Rip] committed App update requires a document reload"),"reload";return!0}catch(U){if(x&&!Z)x.rollback();return s.sources(D()),w.add(C.hash),d("[Rip] changed Rip program failed to activate:",U),f2("activate",U),"rejected"}};if(i){let L=e.latestUrl??e.feed?.latestUrl??(e.url?c4(e.url,"latest.json"):"/latest.json");h=Zr({hash:()=>a.hash(),apply:R,reload:m},{...e.feed??{},latestUrl:L,report:d})}return Object.assign(u,c,{workspace:a,feed:h,destroy:()=>{if(f)return;f=!0,ve(),h?.close(),c.destroy(),s.dispose()}})}function Vh(e={}){return p2({...e,embeddedPackages:{...m2,...e.embeddedPackages}})}function Wh(e,t={}){if(t.runtimeDelivery!==void 0&&t.runtimeDelivery!=="none")throw Error(`rip: browser compilation delivers runtimes by scope; runtimeDelivery '${t.runtimeDelivery}' is not available here`);return Nn(e,{...t,runtimeDelivery:"none"})}export{ti as app,Uh as bootApp,ve as clearHmrOverlay,Nn as compile,Wh as compileToJS,Vh as createModuleLoader,m2 as embeddedPackages,o4 as fetchBundle,Bh as hmrOverlayElement,Fh as processRipScripts,d2 as runtimes,f2 as showHmrOverlay}; +`;n.textContent=l+f2(t);let c=document.createElement("button");c.type="button",c.textContent="Dismiss",c.style.cssText=["position:absolute","top:0.5rem","right:0.5rem","padding:0.4rem 0.75rem","font:12px/1.2 system-ui,sans-serif","color:#0f172a","background:#fff","border:1px solid #cbd5e1","border-radius:6px","cursor:pointer"].join(";"),c.addEventListener("click",()=>ve()),i.appendChild(n),i.appendChild(c),s.appendChild(i),s.addEventListener("click",(f)=>{if(f.target===s)ve()});let h=(f)=>{if(f.key==="Escape")ve()};if(s._ripOnKey=h,typeof document.addEventListener==="function")document.addEventListener("keydown",h);return r.appendChild(s),et=s,Xc("reject",{kind:e||"compile",path:u2(t),message:f2(t).slice(0,500)}),s}function ve(){if(!et)return;let e=et._ripOnKey;if(e&&typeof document<"u"&&typeof document.removeEventListener==="function")document.removeEventListener("keydown",e);et.remove?.(),et=null}function Wh(){return et}var{validatePrepared:a4}=ti,S2=(e)=>e!==null&&typeof e==="object"&&!Array.isArray(e),_s=(e)=>typeof e==="string"&&/^[A-Za-z0-9_]{6}$/.test(e),R2=(e,t=!1)=>{if(typeof e!=="string"||e.length===0||e.startsWith("/")||e.includes("\\"))return!1;let r=e.split("/");if(r.some((s)=>!s||s==="."||s===".."||s.startsWith(".")))return!1;if(t){let s=r.at(-1);if(s===".rip"||!s.endsWith(".rip")||r.slice(0,-1).some((i)=>i.endsWith(".rip")))return!1}return!0},E2=(e,t)=>{let r=Object.keys(e).sort(),s=[...t].sort();return r.length===s.length&&r.every((i,n)=>i===s[n])},o4=(e)=>{if(!S2(e)||!E2(e,["hash","list"])||!_s(e.hash)||!Array.isArray(e.list))throw Error("rip: bundle must contain exactly one hash and one source list");let t={},r=null;for(let s of e.list){if(!Array.isArray(s)||s.length!==2||!R2(s[0],!0)||typeof s[1]!=="string"||r!==null&&r>=s[0])throw Error(`rip: bundle has a malformed or unsorted source entry: ${JSON.stringify(s)}`);if(s[0]==="rip/app"||s[0].startsWith("rip/app/"))throw Error(`rip: bundle source '${s[0]}' collides with embedded package 'rip/app'`);r=s[0],t[s[0]]=s[1]}return t},l4=(e)=>{if(!S2(e)||!E2(e,["from","hash","list"])||!_s(e.from)||!_s(e.hash)||!Array.isArray(e.list))throw Error("rip: publication change must contain exactly from, hash, and list");let t=null,r=[];for(let s of e.list){if(!Array.isArray(s)||s.length<1||s.length>2||!R2(s[0])||t!==null&&t>=s[0])throw Error(`rip: publication change has a malformed or unsorted entry: ${JSON.stringify(s)}`);let[i]=s,n=s.length===2&&s[1]===null;if(i.endsWith(".rip")){if(s.length!==2||!n&&typeof s[1]!=="string")throw Error(`rip: Rip change '${i}' must carry source or null`)}else if(s.length===2&&!n)throw Error(`rip: ordinary asset change '${i}' cannot carry content`);t=i,r.push({path:i,source:s[1],deletion:n})}return{from:e.from,hash:e.hash,entries:r}},c4=async(e)=>{let t=await fetch(e);if(!t.ok)throw Error(`rip: failed to fetch bundle '${e}': ${t.status} ${t.statusText}`);return t.text()};async function h4(e,{fetchText:t=c4}={}){if(!e)throw Error("rip: fetchBundle requires a url");let r=await t(e),s=typeof r==="string"?r:r?.text;if(typeof s!=="string")throw Error(`rip: bundle '${e}' fetch did not return text`);try{return JSON.parse(s)}catch(i){throw Error(`rip: bundle '${e}' is not valid JSON: ${i.message}`)}}var f4=(e,t,{hmr:r=!1}={})=>{let s=new Map(Object.entries(e)),i=new Map,a=b2({components:{read:(o)=>s.get(o),exists:(o)=>s.has(o),getCompiled:(o)=>i.get(o),setCompiled:(o,l)=>void i.set(o,l)},embeddedPackages:g2,debug:t,hmr:r});return{sources(o){s=new Map(Object.entries(o))},async compile(o=[]){let l=new Set;for(let c of o)for(let h of a.invalidate(c))l.add(h);try{let c={};for(let h of s.keys())if(!h.startsWith("rip/"))c[h]={...await a.import(h)};return{compiled:c,invalidated:[...l]}}finally{await a.collect()}},dispose:()=>a.dispose()}},u4=(e,t)=>{let r=e.split("?")[0];return`${r.slice(0,r.lastIndexOf("/")+1)}${t}`};async function Hh(e={}){if(!e.bundle&&!e.url)throw Error("rip: bootApp requires a bundle or a url");let t=e.bundle??await h4(e.url,{fetchText:e.fetchText}),r=o4(t),s=e.debug===!0,i=e.watch===!0||e.feed!=null,n=f4(r,s,{hmr:i}),a=Xr(),o=(M)=>M["seed.rip"]?.seed,l=(M)=>zr({bundle:{compiled:M,seed:o(M)},components:a,target:e.target,adapter:e.adapter,base:e.base,hash:e.hash,persist:e.persist,storage:e.storage,onError:e.onError}),c;try{let{compiled:M}=await n.compile();a.activate({hash:t.hash,sources:r,compiled:M}),c=l(M)}catch(M){throw n.dispose(),M}let h=null,f=!1,u={},d=e.feed?.report??((...M)=>console.error(...M)),p=e.feed?.report??((...M)=>console.info(...M)),m=(M)=>{if(ve(),p(`[Rip] reloading${M?` — ${M}`:""}`),typeof e.reload==="function")e.reload(M);else if(typeof location<"u")location.reload()},g=(M)=>{if(typeof document>"u"||typeof document.querySelectorAll!=="function")return[];let x=new Set,A=new URL(typeof location>"u"?"http://rip.invalid/":location.href),C=new URL("/",A);C.pathname=`/${M.replaceAll("%","%25")}`;let O=C.pathname;for(let W of document.querySelectorAll('link[rel="stylesheet"]')){let G=W.getAttribute("data-rip-css")===M;if(G)x.add(W);let Y=W.getAttribute("href")||"";if(!Y)continue;let k;try{k=new URL(Y,A)}catch{continue}if(!G&&k.origin===A.origin&&(k.pathname===O||k.pathname.endsWith(O)))x.add(W)}return[...x]},b=(M,x)=>{for(let A of g(M)){let C=A.getAttribute("href")||A.href,O=C.indexOf("#"),W=O<0?"":C.slice(O),Y=(O<0?C:C.slice(0,O)).split("?")[0];A.setAttribute("href",`${Y}?hash=${encodeURIComponent(x)}${W}`),A.disabled=!1}},S=Qr({renderer:{remountDirty:(M,x)=>c.renderer.remountDirty(M,x)},escape:async()=>"reload",report:p}),w=new Set,R=async(M)=>{let x;try{x=l4(M)}catch(F){return d("[Rip] malformed publication change:",F),"reload"}if(a.hash()===x.hash)return w.clear(),ve(),!0;if(w.has(x.hash))return!0;let A=x.from;if(a.hash()!==x.from)if(w.has(x.from))A=a.hash();else return"reload";let C=()=>Object.fromEntries(a.listAll().map((F)=>[F,a.read(F)])),O=C(),W=[];for(let F of x.entries){if(!F.path.endsWith(".rip"))continue;if(W.push(F.path),F.deletion)delete O[F.path];else O[F.path]=F.source}let G,Y;try{n.sources(O);let F=await n.compile(W);G=F.compiled,Y=F.invalidated.filter((e1)=>!e1.startsWith("rip/")),a4({compiled:G,seed:o(G)})}catch(F){return n.sources(C()),w.add(x.hash),d("[Rip] changed Rip program failed to compile:",F),d2("compile",F),"rejected"}let k=x.entries.some((F)=>!F.path.endsWith(".rip")&&(!F.path.endsWith(".css")||F.deletion)),v=c.router.current,U=new Set([...v?.layouts??v?.route?.layouts??[],v?.route?.file].filter(Boolean)),Z=x.entries.some((F)=>F.deletion&&F.path.endsWith(".rip")&&U.has(F.path));if(k||Z)return n.sources(C()),"reload";let P=null,X=!1;try{P=a.stage(A,{hash:x.hash,sources:O,compiled:G},W);let F=Y.length?await S.absorb(Y,P.components):"ignore";P.commit(),X=!0,w.clear();for(let e1 of x.entries)if(e1.path.endsWith(".css"))b(e1.path,x.hash);if(ve(),F==="reload")return p("[Rip] committed App update requires a document reload"),"reload";return!0}catch(F){if(P&&!X)P.rollback();return n.sources(C()),w.add(x.hash),d("[Rip] changed Rip program failed to activate:",F),d2("activate",F),"rejected"}};if(i){let M=e.latestUrl??e.feed?.latestUrl??(e.url?u4(e.url,"latest.json"):"/latest.json");h=Zr({hash:()=>a.hash(),apply:R,reload:m},{...e.feed??{},latestUrl:M,report:d})}return Object.assign(u,c,{workspace:a,feed:h,destroy:()=>{if(f)return;f=!0,ve(),h?.close(),c.destroy(),n.dispose()}})}function Kh(e={}){return b2({...e,embeddedPackages:{...g2,...e.embeddedPackages}})}function Gh(e,t={}){if(t.runtimeDelivery!==void 0&&t.runtimeDelivery!=="none")throw Error(`rip: browser compilation delivers runtimes by scope; runtimeDelivery '${t.runtimeDelivery}' is not available here`);return Ns(e,{...t,runtimeDelivery:"none"})}export{ti as app,Hh as bootApp,ve as clearHmrOverlay,Ns as compile,Gh as compileToJS,Kh as createModuleLoader,g2 as embeddedPackages,h4 as fetchBundle,Wh as hmrOverlayElement,Vh as processRipScripts,p2 as runtimes,d2 as showHmrOverlay}; diff --git a/dist/@rip/rip.min.js.br b/dist/@rip/rip.min.js.br index 0ddd871546920c6f689a684e753dd4365eb98e2a..5f169e57580e19852468760322e5d649d3233765 100644 GIT binary patch literal 184987 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�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 qdM32% z76o?MbA{a%UxdY9y{;Qq4*TxNB-5TG3;;${o6&9A8qekfV2W)^P32UJpqV5N#b~7Q z2@#%pee1SIST%c=Jcg3;Oc?YZ2nsBy zq+>bhfiZYjCxqd!CDPx zGj#r&>7n9J9!1jBH-ln0K}>L6o&6-1Mq4yrkc>LBs#nQQ?gS{0KOaavsJlsO243zE zL?0bsW~!*-+eRVuu|Dlj6u0~&^Yw}s)ei%RP~(5w^;I3fhrGaSCnWWAr|Pl-NC|`p zTCaE7u~S|e*}=^xCuZr1Ovz%0A4gq5GsY*ehL}r%vX9GZ-c=E=&;<0VfnYpzkkwa& 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 diff --git a/docs/TYPES.md b/docs/TYPES.md index 780d50b0..0b0179f4 100644 --- a/docs/TYPES.md +++ b/docs/TYPES.md @@ -228,7 +228,7 @@ A component's name at a USE site hovers the component's signature — `component A component body has two kinds of name. The names it declares — state, computed, readonly, methods, gates, and props at their reads — resolve bare, and `@name` is the same read spelled through the instance: it never shadows, so it is the spelling to reach for when a local carries the member's name. The names it is provided — `stash`, `router`, `params`, `query`, and under `extends` the `rest` view of the undeclared caller props — appear nowhere in the body, so they take the sigil alone: `@stash`, `@router`, `@params`, `@query`, `@rest`. The runtime fields never resolve bare because they are not members; a bare `rest` inside an `extends` component is rejected by the emitter, while a local the author binds as `rest` is their own name and stays bare. A caller may pass an undeclared key a value or a reactive name (`Btn disabled: busy`): the props surface admits either, and the name's container may hold `undefined` as the value may; a read of the view answers the value and tracks the name, so `@rest.disabled is true` and `@rest.id ?? mint()` mean what they say however the caller spelled it. A declared prop with a default is the one slot whose container holds the value alone: its default fills an omission, a caller's `undefined` reaches the member past it, and a caller-supplied container that may hold `undefined` is refused, since the member reads as `T` inside. The refusal is stricter than the runtime, and stands: the runtime admitting a cell it would then read past the default is the same lie under another name. The view is also never assigned: it reads through the map the runtime forwards from, so the emitter rejects every write that reaches it — `@rest` itself, any chain rooted there, and the same shapes inside a destructuring pattern; a value the caller should see is set on the element in render or declared as a prop. The view is typed as the tag's passthrough object — each attribute under its own spelling, typed through the tag's DOM interface, plus the `data-`/`aria-` templates, never a catch-all — named on the face through a per-tag alias the editor shows as `Rest` and spelled inline in the shipped declarations, so `@rest.disabled` on a `button` is `boolean | undefined` and hovers `(rest) rest: Rest