{"version":3,"file":"compiler.mjs","sources":["src/compiler/Stats.ts","node_modules/.pnpm/acorn@8.8.0/node_modules/acorn/dist/acorn.mjs","src/compiler/utils/flatten.ts","src/compiler/utils/extract_svelte_ignore.ts","src/compiler/utils/fuzzymatch.ts","src/shared/utils/names.ts","src/compiler/utils/list.ts","src/compiler/parse/errors.ts","node_modules/.pnpm/estree-walker@3.0.1/node_modules/estree-walker/src/walker.js","node_modules/.pnpm/estree-walker@3.0.1/node_modules/estree-walker/src/sync.js","node_modules/.pnpm/estree-walker@3.0.1/node_modules/estree-walker/src/index.js","node_modules/.pnpm/code-red@0.2.5/node_modules/code-red/src/utils/id.js","node_modules/.pnpm/code-red@0.2.5/node_modules/code-red/src/utils/comments.js","node_modules/.pnpm/is-reference@3.0.0/node_modules/is-reference/src/index.js","node_modules/.pnpm/periscopic@3.0.4/node_modules/periscopic/src/index.js","node_modules/.pnpm/code-red@0.2.5/node_modules/code-red/src/utils/push_array.js","node_modules/.pnpm/code-red@0.2.5/node_modules/code-red/src/print/handlers.js","node_modules/.pnpm/sourcemap-codec@1.4.8/node_modules/sourcemap-codec/dist/sourcemap-codec.es.js","node_modules/.pnpm/code-red@0.2.5/node_modules/code-red/src/print/index.js","node_modules/.pnpm/code-red@0.2.5/node_modules/code-red/src/index.js","src/compiler/parse/acorn.ts","src/compiler/utils/patterns.ts","src/compiler/parse/read/expression.ts","src/compiler/parse/read/script.ts","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/common/adopt-buffer.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/tokenizer/const.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/tokenizer/char-code-definitions.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/tokenizer/utils.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/common/TokenStream.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/tokenizer/index.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/common/OffsetToLocation.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/utils/createCustomError.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/common/SyntaxError.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/common/List.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/parser/sequence.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/parser/create.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/scope/default.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/scope/atrulePrelude.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/scope/selector.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/function/expression.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/Raw.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/function/var.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/scope/value.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/scope/index.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/atrule/font-face.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/atrule/import.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/atrule/media.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/atrule/page.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/atrule/supports.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/atrule/index.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/pseudo/dir.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/pseudo/has.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/pseudo/lang.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/pseudo/common/selectorList.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/pseudo/matches.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/pseudo/not.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/pseudo/common/nthWithOfClause.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/pseudo/nth-child.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/pseudo/nth-last-child.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/pseudo/common/nth.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/pseudo/nth-last-of-type.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/pseudo/nth-of-type.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/pseudo/slotted.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/pseudo/index.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/AnPlusB.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/Atrule.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/AtrulePrelude.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/AttributeSelector.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/Block.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/Brackets.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/CDC.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/CDO.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/ClassSelector.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/Combinator.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/Comment.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/utils/names.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/Declaration.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/DeclarationList.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/Dimension.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/Function.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/Hash.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/Identifier.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/IdSelector.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/MediaFeature.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/MediaQuery.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/MediaQueryList.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/Nth.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/Number.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/Operator.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/Parentheses.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/Percentage.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/PseudoClassSelector.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/PseudoElementSelector.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/Ratio.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/Rule.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/Selector.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/SelectorList.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/String.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/StyleSheet.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/TypeSelector.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/UnicodeRange.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/Url.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/Value.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/WhiteSpace.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/node/index.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/syntax/config/parser.js","node_modules/.pnpm/css-tree@1.1.3/node_modules/css-tree/lib/parser/index.js","src/compiler/parse/read/style.ts","src/compiler/parse/utils/entities.ts","src/compiler/parse/utils/html.ts","src/compiler/parse/state/tag.ts","src/compiler/utils/full_char_code_at.ts","src/compiler/parse/utils/bracket.ts","src/compiler/parse/read/context.ts","src/compiler/utils/trim.ts","src/compiler/parse/utils/node.ts","src/compiler/parse/state/mustache.ts","src/compiler/parse/state/text.ts","src/compiler/parse/state/fragment.ts","src/compiler/utils/names.ts","node_modules/.pnpm/locate-character@2.0.5/node_modules/locate-character/dist/locate-character.es.js","src/compiler/utils/get_code_frame.ts","src/compiler/utils/error.ts","src/compiler/parse/index.ts","src/compiler/compile/render_dom/wrappers/shared/is_head.ts","src/compiler/compile/render_dom/Block.ts","src/compiler/compile/render_dom/wrappers/shared/Wrapper.ts","src/compiler/compile/render_dom/wrappers/shared/create_debugging_comment.ts","src/compiler/compile/nodes/shared/Node.ts","src/compiler/compile/compiler_warnings.ts","src/compiler/compile/nodes/shared/AbstractBlock.ts","src/compiler/compile/utils/flatten_reference.ts","src/compiler/compile/utils/scope.ts","src/compiler/compile/utils/get_object.ts","src/compiler/compile/utils/reserved_keywords.ts","src/compiler/compile/render_dom/wrappers/shared/is_dynamic.ts","src/compiler/utils/nodes_match.ts","src/compiler/compile/render_dom/invalidate.ts","src/compiler/compile/utils/replace_object.ts","src/compiler/compile/nodes/shared/is_contextual.ts","src/compiler/utils/clone.ts","src/compiler/compile/compiler_errors.ts","src/compiler/compile/nodes/shared/Expression.ts","src/compiler/compile/nodes/shared/Context.ts","src/compiler/compile/nodes/ConstTag.ts","src/compiler/compile/nodes/PendingBlock.ts","src/compiler/compile/nodes/CatchBlock.ts","src/compiler/compile/nodes/AwaitBlock.ts","src/compiler/compile/nodes/EventHandler.ts","src/compiler/compile/nodes/Action.ts","src/compiler/compile/nodes/Body.ts","src/compiler/compile/nodes/Comment.ts","src/compiler/compile/nodes/ElseBlock.ts","src/compiler/compile/nodes/EachBlock.ts","src/compiler/compile/utils/stringify.ts","src/compiler/compile/utils/add_to_set.ts","src/compiler/compile/nodes/Attribute.ts","src/compiler/compile/nodes/Binding.ts","src/compiler/compile/nodes/Transition.ts","src/compiler/compile/nodes/Animation.ts","src/compiler/compile/nodes/Class.ts","src/compiler/compile/utils/nodes_to_template_literal.ts","src/compiler/compile/nodes/StyleDirective.ts","src/compiler/compile/nodes/Text.ts","src/compiler/utils/namespaces.ts","src/compiler/compile/nodes/Let.ts","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/ariaPropsMap.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/domMap.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/abstract/commandRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/abstract/compositeRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/abstract/inputRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/abstract/landmarkRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/abstract/rangeRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/abstract/roletypeRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/abstract/sectionRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/abstract/sectionheadRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/abstract/selectRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/abstract/structureRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/abstract/widgetRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/abstract/windowRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/ariaAbstractRoles.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/alertRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/alertdialogRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/applicationRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/articleRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/bannerRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/blockquoteRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/buttonRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/captionRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/cellRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/checkboxRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/codeRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/columnheaderRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/comboboxRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/complementaryRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/contentinfoRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/definitionRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/deletionRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/dialogRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/directoryRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/documentRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/emphasisRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/feedRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/figureRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/formRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/genericRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/gridRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/gridcellRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/groupRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/headingRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/imgRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/insertionRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/linkRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/listRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/listboxRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/listitemRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/logRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/mainRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/marqueeRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/mathRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/menuRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/menubarRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/menuitemRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/menuitemcheckboxRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/menuitemradioRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/meterRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/navigationRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/noneRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/noteRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/optionRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/paragraphRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/presentationRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/progressbarRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/radioRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/radiogroupRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/regionRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/rowRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/rowgroupRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/rowheaderRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/scrollbarRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/searchRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/searchboxRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/separatorRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/sliderRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/spinbuttonRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/statusRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/strongRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/subscriptRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/superscriptRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/switchRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/tabRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/tableRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/tablistRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/tabpanelRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/termRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/textboxRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/timeRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/timerRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/toolbarRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/tooltipRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/treeRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/treegridRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/literal/treeitemRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/ariaLiteralRoles.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docAbstractRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docAcknowledgmentsRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docAfterwordRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docAppendixRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docBacklinkRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docBiblioentryRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docBibliographyRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docBibliorefRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docChapterRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docColophonRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docConclusionRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docCoverRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docCreditRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docCreditsRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docDedicationRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docEndnoteRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docEndnotesRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docEpigraphRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docEpilogueRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docErrataRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docExampleRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docFootnoteRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docForewordRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docGlossaryRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docGlossrefRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docIndexRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docIntroductionRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docNoterefRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docNoticeRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docPagebreakRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docPagelistRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docPartRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docPrefaceRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docPrologueRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docPullquoteRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docQnaRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docSubtitleRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docTipRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/dpub/docTocRole.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/etc/roles/ariaDpubRoles.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/rolesMap.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/elementRoleMap.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/roleElementMap.js","node_modules/.pnpm/aria-query@5.0.0/node_modules/aria-query/lib/index.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/AbbrRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/AlertDialogRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/AlertRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/AnnotationRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/ApplicationRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/ArticleRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/AudioRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/BannerRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/BlockquoteRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/BusyIndicatorRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/ButtonRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/CanvasRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/CaptionRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/CellRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/CheckBoxRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/ColorWellRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/ColumnHeaderRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/ColumnRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/ComboBoxRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/ComplementaryRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/ContentInfoRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/DateRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/DateTimeRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/DefinitionRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/DescriptionListDetailRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/DescriptionListRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/DescriptionListTermRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/DetailsRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/DialogRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/DirectoryRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/DisclosureTriangleRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/DivRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/DocumentRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/EmbeddedObjectRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/FeedRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/FigcaptionRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/FigureRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/FooterRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/FormRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/GridRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/GroupRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/HeadingRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/IframePresentationalRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/IframeRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/IgnoredRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/ImageMapLinkRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/ImageMapRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/ImageRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/InlineTextBoxRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/InputTimeRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/LabelRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/LegendRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/LineBreakRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/LinkRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/ListBoxOptionRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/ListBoxRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/ListItemRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/ListMarkerRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/ListRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/LogRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/MainRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/MarkRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/MarqueeRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/MathRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/MenuBarRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/MenuButtonRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/MenuItemRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/MenuItemCheckBoxRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/MenuItemRadioRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/MenuListOptionRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/MenuListPopupRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/MenuRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/MeterRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/NavigationRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/NoneRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/NoteRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/OutlineRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/ParagraphRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/PopUpButtonRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/PreRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/PresentationalRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/ProgressIndicatorRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/RadioButtonRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/RadioGroupRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/RegionRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/RootWebAreaRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/RowHeaderRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/RowRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/RubyRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/RulerRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/ScrollAreaRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/ScrollBarRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/SeamlessWebAreaRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/SearchRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/SearchBoxRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/SliderRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/SliderThumbRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/SpinButtonRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/SpinButtonPartRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/SplitterRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/StaticTextRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/StatusRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/SVGRootRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/SwitchRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/TabGroupRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/TabRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/TableHeaderContainerRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/TableRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/TabListRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/TabPanelRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/TermRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/TextFieldRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/TimeRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/TimerRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/ToggleButtonRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/ToolbarRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/TreeRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/TreeGridRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/TreeItemRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/UserInterfaceTooltipRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/VideoRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/WebAreaRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/etc/objects/WindowRole.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/AXObjectsMap.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/AXObjectElementMap.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/AXObjectRoleMap.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/elementAXObjectMap.js","node_modules/.pnpm/axobject-query@3.0.1/node_modules/axobject-query/lib/index.js","src/compiler/compile/utils/a11y.ts","src/compiler/compile/nodes/Element.ts","src/compiler/compile/utils/hash.ts","src/compiler/compile/nodes/Head.ts","src/compiler/compile/nodes/IfBlock.ts","src/compiler/compile/nodes/InlineComponent.ts","src/compiler/compile/nodes/KeyBlock.ts","src/compiler/compile/nodes/shared/Tag.ts","src/compiler/compile/nodes/MustacheTag.ts","src/compiler/compile/nodes/Options.ts","src/compiler/compile/nodes/RawMustacheTag.ts","src/compiler/compile/nodes/DebugTag.ts","src/compiler/compile/nodes/Slot.ts","src/compiler/compile/nodes/SlotTemplate.ts","src/compiler/compile/nodes/Title.ts","src/compiler/compile/nodes/Window.ts","src/compiler/utils/push_array.ts","src/compiler/compile/nodes/shared/map_children.ts","src/compiler/compile/utils/check_graph_for_cycles.ts","src/compiler/compile/nodes/shared/get_const_tags.ts","src/compiler/compile/nodes/ThenBlock.ts","src/compiler/compile/render_dom/wrappers/shared/add_const_tags.ts","src/compiler/compile/render_dom/wrappers/AwaitBlock.ts","src/compiler/compile/render_dom/wrappers/Element/EventHandler.ts","src/compiler/compile/render_dom/wrappers/shared/add_event_handlers.ts","src/compiler/compile/render_dom/wrappers/shared/add_actions.ts","src/compiler/compile/render_dom/wrappers/Body.ts","src/compiler/compile/render_dom/wrappers/DebugTag.ts","src/compiler/compile/render_dom/wrappers/EachBlock.ts","src/compiler/compile/render_dom/wrappers/Text.ts","src/compiler/compile/render_dom/wrappers/Element/fix_attribute_casing.ts","src/compiler/compile/render_dom/wrappers/Element/handle_select_value_binding.ts","src/compiler/compile/render_dom/wrappers/Element/Attribute.ts","src/compiler/compile/render_dom/wrappers/Element/StyleAttribute.ts","src/compiler/compile/render_dom/wrappers/Element/SpreadAttribute.ts","src/compiler/compile/render_dom/wrappers/shared/mark_each_block_bindings.ts","src/compiler/compile/render_dom/wrappers/Element/Binding.ts","src/compiler/compile/utils/compare_node.ts","src/compiler/compile/render_dom/wrappers/shared/bind_this.ts","src/compiler/compile/render_dom/wrappers/shared/Tag.ts","src/compiler/compile/render_dom/wrappers/MustacheTag.ts","src/compiler/compile/render_dom/wrappers/RawMustacheTag.ts","src/compiler/compile/render_dom/wrappers/Element/index.ts","src/compiler/compile/render_dom/wrappers/Head.ts","src/compiler/compile/render_dom/wrappers/IfBlock.ts","src/compiler/compile/render_dom/wrappers/KeyBlock.ts","src/compiler/compile/render_dom/wrappers/shared/get_slot_definition.ts","src/compiler/compile/render_dom/wrappers/SlotTemplate.ts","src/compiler/compile/utils/string_to_member_expression.ts","src/compiler/compile/render_dom/wrappers/InlineComponent/index.ts","src/compiler/compile/utils/get_slot_data.ts","src/compiler/compile/render_dom/wrappers/Slot.ts","src/compiler/compile/render_dom/wrappers/Title.ts","src/compiler/compile/render_dom/wrappers/Window.ts","src/compiler/utils/link.ts","src/compiler/compile/render_dom/wrappers/Fragment.ts","src/compiler/compile/render_dom/Renderer.ts","node_modules/.pnpm/@ampproject+remapping@0.3.0/node_modules/@ampproject/remapping/dist/remapping.mjs","src/compiler/utils/mapped_code.ts","src/compiler/compile/utils/check_enable_sourcemap.ts","src/compiler/compile/render_dom/index.ts","src/compiler/compile/render_ssr/handlers/shared/get_const_tags.ts","src/compiler/compile/render_ssr/handlers/AwaitBlock.ts","src/compiler/compile/render_ssr/handlers/Comment.ts","src/compiler/compile/render_ssr/handlers/DebugTag.ts","src/compiler/compile/render_ssr/handlers/EachBlock.ts","src/compiler/compile/render_ssr/handlers/shared/get_attribute_value.ts","src/shared/boolean_attributes.ts","src/compiler/compile/render_ssr/handlers/utils/remove_whitespace_children.ts","src/compiler/compile/render_ssr/handlers/Element.ts","src/compiler/compile/render_ssr/handlers/Head.ts","src/compiler/compile/render_ssr/handlers/HtmlTag.ts","src/compiler/compile/render_ssr/handlers/IfBlock.ts","src/compiler/compile/render_ssr/handlers/InlineComponent.ts","src/compiler/compile/render_ssr/handlers/KeyBlock.ts","src/compiler/compile/render_ssr/handlers/shared/get_slot_scope.ts","src/compiler/compile/render_ssr/handlers/Slot.ts","src/compiler/compile/render_ssr/handlers/SlotTemplate.ts","src/compiler/compile/render_ssr/handlers/Tag.ts","src/compiler/compile/render_ssr/handlers/Text.ts","src/compiler/compile/render_ssr/handlers/Title.ts","src/compiler/compile/render_ssr/Renderer.ts","src/compiler/compile/render_ssr/index.ts","src/compiler/compile/create_module.ts","node_modules/.pnpm/magic-string@0.25.9/node_modules/magic-string/dist/magic-string.es.js","src/compiler/compile/css/gather_possible_values.ts","src/compiler/compile/css/Selector.ts","src/compiler/compile/css/Stylesheet.ts","src/compiler/config.ts","src/compiler/compile/nodes/shared/TemplateScope.ts","src/compiler/compile/nodes/Fragment.ts","src/compiler/compile/internal_exports.ts","src/compiler/compile/utils/is_used_as_reference.ts","src/compiler/compile/Component.ts","src/compiler/compile/utils/get_name_from_filename.ts","src/compiler/compile/index.ts","src/compiler/preprocess/decode_sourcemap.ts","src/compiler/preprocess/replace_in_code.ts","src/compiler/preprocess/index.ts","src/compiler/index.ts"],"sourcesContent":["const now = (typeof process !== 'undefined' && process.hrtime)\r\n\t? () => {\r\n\t\tconst t = process.hrtime();\r\n\t\treturn t[0] * 1e3 + t[1] / 1e6;\r\n\t}\r\n\t: () => self.performance.now();\r\n\r\ninterface Timing {\r\n\tlabel: string;\r\n\tstart: number;\r\n\tend: number;\r\n\tchildren: Timing[];\r\n}\r\n\r\nfunction collapse_timings(timings) {\r\n\tconst result = {};\r\n\ttimings.forEach(timing => {\r\n\t\tresult[timing.label] = Object.assign({\r\n\t\t\ttotal: timing.end - timing.start\r\n\t\t}, timing.children && collapse_timings(timing.children));\r\n\t});\r\n\treturn result;\r\n}\r\n\r\nexport default class Stats {\r\n\tstart_time: number;\r\n\tcurrent_timing: Timing;\r\n\tcurrent_children: Timing[];\r\n\ttimings: Timing[];\r\n\tstack: Timing[];\r\n\r\n\tconstructor() {\r\n\t\tthis.start_time = now();\r\n\t\tthis.stack = [];\r\n\t\tthis.current_children = this.timings = [];\r\n\t}\r\n\r\n\tstart(label) {\r\n\t\tconst timing = {\r\n\t\t\tlabel,\r\n\t\t\tstart: now(),\r\n\t\t\tend: null,\r\n\t\t\tchildren: []\r\n\t\t};\r\n\r\n\t\tthis.current_children.push(timing);\r\n\t\tthis.stack.push(timing);\r\n\r\n\t\tthis.current_timing = timing;\r\n\t\tthis.current_children = timing.children;\r\n\t}\r\n\r\n\tstop(label) {\r\n\t\tif (label !== this.current_timing.label) {\r\n\t\t\tthrow new Error(`Mismatched timing labels (expected ${this.current_timing.label}, got ${label})`);\r\n\t\t}\r\n\r\n\t\tthis.current_timing.end = now();\r\n\t\tthis.stack.pop();\r\n\t\tthis.current_timing = this.stack[this.stack.length - 1];\r\n\t\tthis.current_children = this.current_timing ? this.current_timing.children : this.timings;\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst timings = Object.assign({\r\n\t\t\ttotal: now() - this.start_time\r\n\t\t}, collapse_timings(this.timings));\r\n\r\n\t\treturn {\r\n\t\t\ttimings\r\n\t\t};\r\n\t}\r\n}\r\n","// This file was generated. Do not modify manually!\nvar astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 154, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 161, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 19306, 9, 87, 9, 39, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4706, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 262, 6, 10, 9, 357, 0, 62, 13, 1495, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];\n\n// This file was generated. Do not modify manually!\nvar astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 68, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 85, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 190, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1070, 4050, 582, 8634, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8936, 3, 2, 6, 2, 1, 2, 290, 46, 2, 18, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 482, 44, 11, 6, 17, 0, 322, 29, 19, 43, 1269, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4152, 8, 221, 3, 5761, 15, 7472, 3104, 541, 1507, 4938];\n\n// This file was generated. Do not modify manually!\nvar nonASCIIidentifierChars = \"\\u200c\\u200d\\xb7\\u0300-\\u036f\\u0387\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u0669\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u06f0-\\u06f9\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07c0-\\u07c9\\u07eb-\\u07f3\\u07fd\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u0898-\\u089f\\u08ca-\\u08e1\\u08e3-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u09e6-\\u09ef\\u09fe\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0ae6-\\u0aef\\u0afa-\\u0aff\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b55-\\u0b57\\u0b62\\u0b63\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c04\\u0c3c\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c66-\\u0c6f\\u0c81-\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0ce6-\\u0cef\\u0d00-\\u0d03\\u0d3b\\u0d3c\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d66-\\u0d6f\\u0d81-\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0e50-\\u0e59\\u0eb1\\u0eb4-\\u0ebc\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1040-\\u1049\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u1369-\\u1371\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b4-\\u17d3\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u180f-\\u1819\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u194f\\u19d0-\\u19da\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1ab0-\\u1abd\\u1abf-\\u1ace\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1bad\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1c40-\\u1c49\\u1c50-\\u1c59\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf4\\u1cf7-\\u1cf9\\u1dc0-\\u1dff\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua620-\\ua629\\ua66f\\ua674-\\ua67d\\ua69e\\ua69f\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua82c\\ua880\\ua881\\ua8b4-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f1\\ua8ff-\\ua909\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\ua9d0-\\ua9d9\\ua9e5\\ua9f0-\\ua9f9\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa50-\\uaa59\\uaa7b-\\uaa7d\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uaaeb-\\uaaef\\uaaf5\\uaaf6\\uabe3-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f\";\n\n// This file was generated. Do not modify manually!\nvar nonASCIIidentifierStartChars = \"\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u0870-\\u0887\\u0889-\\u088e\\u08a0-\\u08c9\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c5d\\u0c60\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cdd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d04-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u1711\\u171f-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4c\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31bf\\u31f0-\\u31ff\\u3400-\\u4dbf\\u4e00-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7ca\\ua7d0\\ua7d1\\ua7d3\\ua7d5-\\ua7d9\\ua7f2-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab69\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc\";\n\n// These are a run-length and offset encoded representation of the\n\n// Reserved word lists for various dialects of the language\n\nvar reservedWords = {\n  3: \"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile\",\n  5: \"class enum extends super const export import\",\n  6: \"enum\",\n  strict: \"implements interface let package private protected public static yield\",\n  strictBind: \"eval arguments\"\n};\n\n// And the keywords\n\nvar ecma5AndLessKeywords = \"break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this\";\n\nvar keywords$1 = {\n  5: ecma5AndLessKeywords,\n  \"5module\": ecma5AndLessKeywords + \" export import\",\n  6: ecma5AndLessKeywords + \" const class extends export import super\"\n};\n\nvar keywordRelationalOperator = /^in(stanceof)?$/;\n\n// ## Character categories\n\nvar nonASCIIidentifierStart = new RegExp(\"[\" + nonASCIIidentifierStartChars + \"]\");\nvar nonASCIIidentifier = new RegExp(\"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\");\n\n// This has a complexity linear to the value of the code. The\n// assumption is that looking up astral identifier characters is\n// rare.\nfunction isInAstralSet(code, set) {\n  var pos = 0x10000;\n  for (var i = 0; i < set.length; i += 2) {\n    pos += set[i];\n    if (pos > code) { return false }\n    pos += set[i + 1];\n    if (pos >= code) { return true }\n  }\n}\n\n// Test whether a given character code starts an identifier.\n\nfunction isIdentifierStart(code, astral) {\n  if (code < 65) { return code === 36 }\n  if (code < 91) { return true }\n  if (code < 97) { return code === 95 }\n  if (code < 123) { return true }\n  if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)) }\n  if (astral === false) { return false }\n  return isInAstralSet(code, astralIdentifierStartCodes)\n}\n\n// Test whether a given character is part of an identifier.\n\nfunction isIdentifierChar(code, astral) {\n  if (code < 48) { return code === 36 }\n  if (code < 58) { return true }\n  if (code < 65) { return false }\n  if (code < 91) { return true }\n  if (code < 97) { return code === 95 }\n  if (code < 123) { return true }\n  if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)) }\n  if (astral === false) { return false }\n  return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes)\n}\n\n// ## Token types\n\n// The assignment of fine-grained, information-carrying type objects\n// allows the tokenizer to store the information it has about a\n// token in a way that is very cheap for the parser to look up.\n\n// All token type variables start with an underscore, to make them\n// easy to recognize.\n\n// The `beforeExpr` property is used to disambiguate between regular\n// expressions and divisions. It is set on all token types that can\n// be followed by an expression (thus, a slash after them would be a\n// regular expression).\n//\n// The `startsExpr` property is used to check if the token ends a\n// `yield` expression. It is set on all token types that either can\n// directly start an expression (like a quotation mark) or can\n// continue an expression (like the body of a string).\n//\n// `isLoop` marks a keyword as starting a loop, which is important\n// to know when parsing a label, in order to allow or disallow\n// continue jumps to that label.\n\nvar TokenType = function TokenType(label, conf) {\n  if ( conf === void 0 ) conf = {};\n\n  this.label = label;\n  this.keyword = conf.keyword;\n  this.beforeExpr = !!conf.beforeExpr;\n  this.startsExpr = !!conf.startsExpr;\n  this.isLoop = !!conf.isLoop;\n  this.isAssign = !!conf.isAssign;\n  this.prefix = !!conf.prefix;\n  this.postfix = !!conf.postfix;\n  this.binop = conf.binop || null;\n  this.updateContext = null;\n};\n\nfunction binop(name, prec) {\n  return new TokenType(name, {beforeExpr: true, binop: prec})\n}\nvar beforeExpr = {beforeExpr: true}, startsExpr = {startsExpr: true};\n\n// Map keyword names to token types.\n\nvar keywords = {};\n\n// Succinct definitions of keyword token types\nfunction kw(name, options) {\n  if ( options === void 0 ) options = {};\n\n  options.keyword = name;\n  return keywords[name] = new TokenType(name, options)\n}\n\nvar types$1 = {\n  num: new TokenType(\"num\", startsExpr),\n  regexp: new TokenType(\"regexp\", startsExpr),\n  string: new TokenType(\"string\", startsExpr),\n  name: new TokenType(\"name\", startsExpr),\n  privateId: new TokenType(\"privateId\", startsExpr),\n  eof: new TokenType(\"eof\"),\n\n  // Punctuation token types.\n  bracketL: new TokenType(\"[\", {beforeExpr: true, startsExpr: true}),\n  bracketR: new TokenType(\"]\"),\n  braceL: new TokenType(\"{\", {beforeExpr: true, startsExpr: true}),\n  braceR: new TokenType(\"}\"),\n  parenL: new TokenType(\"(\", {beforeExpr: true, startsExpr: true}),\n  parenR: new TokenType(\")\"),\n  comma: new TokenType(\",\", beforeExpr),\n  semi: new TokenType(\";\", beforeExpr),\n  colon: new TokenType(\":\", beforeExpr),\n  dot: new TokenType(\".\"),\n  question: new TokenType(\"?\", beforeExpr),\n  questionDot: new TokenType(\"?.\"),\n  arrow: new TokenType(\"=>\", beforeExpr),\n  template: new TokenType(\"template\"),\n  invalidTemplate: new TokenType(\"invalidTemplate\"),\n  ellipsis: new TokenType(\"...\", beforeExpr),\n  backQuote: new TokenType(\"`\", startsExpr),\n  dollarBraceL: new TokenType(\"${\", {beforeExpr: true, startsExpr: true}),\n\n  // Operators. These carry several kinds of properties to help the\n  // parser use them properly (the presence of these properties is\n  // what categorizes them as operators).\n  //\n  // `binop`, when present, specifies that this operator is a binary\n  // operator, and will refer to its precedence.\n  //\n  // `prefix` and `postfix` mark the operator as a prefix or postfix\n  // unary operator.\n  //\n  // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as\n  // binary operators with a very low precedence, that should result\n  // in AssignmentExpression nodes.\n\n  eq: new TokenType(\"=\", {beforeExpr: true, isAssign: true}),\n  assign: new TokenType(\"_=\", {beforeExpr: true, isAssign: true}),\n  incDec: new TokenType(\"++/--\", {prefix: true, postfix: true, startsExpr: true}),\n  prefix: new TokenType(\"!/~\", {beforeExpr: true, prefix: true, startsExpr: true}),\n  logicalOR: binop(\"||\", 1),\n  logicalAND: binop(\"&&\", 2),\n  bitwiseOR: binop(\"|\", 3),\n  bitwiseXOR: binop(\"^\", 4),\n  bitwiseAND: binop(\"&\", 5),\n  equality: binop(\"==/!=/===/!==\", 6),\n  relational: binop(\"</>/<=/>=\", 7),\n  bitShift: binop(\"<</>>/>>>\", 8),\n  plusMin: new TokenType(\"+/-\", {beforeExpr: true, binop: 9, prefix: true, startsExpr: true}),\n  modulo: binop(\"%\", 10),\n  star: binop(\"*\", 10),\n  slash: binop(\"/\", 10),\n  starstar: new TokenType(\"**\", {beforeExpr: true}),\n  coalesce: binop(\"??\", 1),\n\n  // Keyword token types.\n  _break: kw(\"break\"),\n  _case: kw(\"case\", beforeExpr),\n  _catch: kw(\"catch\"),\n  _continue: kw(\"continue\"),\n  _debugger: kw(\"debugger\"),\n  _default: kw(\"default\", beforeExpr),\n  _do: kw(\"do\", {isLoop: true, beforeExpr: true}),\n  _else: kw(\"else\", beforeExpr),\n  _finally: kw(\"finally\"),\n  _for: kw(\"for\", {isLoop: true}),\n  _function: kw(\"function\", startsExpr),\n  _if: kw(\"if\"),\n  _return: kw(\"return\", beforeExpr),\n  _switch: kw(\"switch\"),\n  _throw: kw(\"throw\", beforeExpr),\n  _try: kw(\"try\"),\n  _var: kw(\"var\"),\n  _const: kw(\"const\"),\n  _while: kw(\"while\", {isLoop: true}),\n  _with: kw(\"with\"),\n  _new: kw(\"new\", {beforeExpr: true, startsExpr: true}),\n  _this: kw(\"this\", startsExpr),\n  _super: kw(\"super\", startsExpr),\n  _class: kw(\"class\", startsExpr),\n  _extends: kw(\"extends\", beforeExpr),\n  _export: kw(\"export\"),\n  _import: kw(\"import\", startsExpr),\n  _null: kw(\"null\", startsExpr),\n  _true: kw(\"true\", startsExpr),\n  _false: kw(\"false\", startsExpr),\n  _in: kw(\"in\", {beforeExpr: true, binop: 7}),\n  _instanceof: kw(\"instanceof\", {beforeExpr: true, binop: 7}),\n  _typeof: kw(\"typeof\", {beforeExpr: true, prefix: true, startsExpr: true}),\n  _void: kw(\"void\", {beforeExpr: true, prefix: true, startsExpr: true}),\n  _delete: kw(\"delete\", {beforeExpr: true, prefix: true, startsExpr: true})\n};\n\n// Matches a whole line break (where CRLF is considered a single\n// line break). Used to count lines.\n\nvar lineBreak = /\\r\\n?|\\n|\\u2028|\\u2029/;\nvar lineBreakG = new RegExp(lineBreak.source, \"g\");\n\nfunction isNewLine(code) {\n  return code === 10 || code === 13 || code === 0x2028 || code === 0x2029\n}\n\nfunction nextLineBreak(code, from, end) {\n  if ( end === void 0 ) end = code.length;\n\n  for (var i = from; i < end; i++) {\n    var next = code.charCodeAt(i);\n    if (isNewLine(next))\n      { return i < end - 1 && next === 13 && code.charCodeAt(i + 1) === 10 ? i + 2 : i + 1 }\n  }\n  return -1\n}\n\nvar nonASCIIwhitespace = /[\\u1680\\u2000-\\u200a\\u202f\\u205f\\u3000\\ufeff]/;\n\nvar skipWhiteSpace = /(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g;\n\nvar ref = Object.prototype;\nvar hasOwnProperty = ref.hasOwnProperty;\nvar toString = ref.toString;\n\nvar hasOwn = Object.hasOwn || (function (obj, propName) { return (\n  hasOwnProperty.call(obj, propName)\n); });\n\nvar isArray = Array.isArray || (function (obj) { return (\n  toString.call(obj) === \"[object Array]\"\n); });\n\nfunction wordsRegexp(words) {\n  return new RegExp(\"^(?:\" + words.replace(/ /g, \"|\") + \")$\")\n}\n\nfunction codePointToString(code) {\n  // UTF-16 Decoding\n  if (code <= 0xFFFF) { return String.fromCharCode(code) }\n  code -= 0x10000;\n  return String.fromCharCode((code >> 10) + 0xD800, (code & 1023) + 0xDC00)\n}\n\nvar loneSurrogate = /(?:[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])/;\n\n// These are used when `options.locations` is on, for the\n// `startLoc` and `endLoc` properties.\n\nvar Position = function Position(line, col) {\n  this.line = line;\n  this.column = col;\n};\n\nPosition.prototype.offset = function offset (n) {\n  return new Position(this.line, this.column + n)\n};\n\nvar SourceLocation = function SourceLocation(p, start, end) {\n  this.start = start;\n  this.end = end;\n  if (p.sourceFile !== null) { this.source = p.sourceFile; }\n};\n\n// The `getLineInfo` function is mostly useful when the\n// `locations` option is off (for performance reasons) and you\n// want to find the line/column position for a given character\n// offset. `input` should be the code string that the offset refers\n// into.\n\nfunction getLineInfo(input, offset) {\n  for (var line = 1, cur = 0;;) {\n    var nextBreak = nextLineBreak(input, cur, offset);\n    if (nextBreak < 0) { return new Position(line, offset - cur) }\n    ++line;\n    cur = nextBreak;\n  }\n}\n\n// A second argument must be given to configure the parser process.\n// These options are recognized (only `ecmaVersion` is required):\n\nvar defaultOptions = {\n  // `ecmaVersion` indicates the ECMAScript version to parse. Must be\n  // either 3, 5, 6 (or 2015), 7 (2016), 8 (2017), 9 (2018), 10\n  // (2019), 11 (2020), 12 (2021), 13 (2022), 14 (2023), or `\"latest\"`\n  // (the latest version the library supports). This influences\n  // support for strict mode, the set of reserved words, and support\n  // for new syntax features.\n  ecmaVersion: null,\n  // `sourceType` indicates the mode the code should be parsed in.\n  // Can be either `\"script\"` or `\"module\"`. This influences global\n  // strict mode and parsing of `import` and `export` declarations.\n  sourceType: \"script\",\n  // `onInsertedSemicolon` can be a callback that will be called\n  // when a semicolon is automatically inserted. It will be passed\n  // the position of the comma as an offset, and if `locations` is\n  // enabled, it is given the location as a `{line, column}` object\n  // as second argument.\n  onInsertedSemicolon: null,\n  // `onTrailingComma` is similar to `onInsertedSemicolon`, but for\n  // trailing commas.\n  onTrailingComma: null,\n  // By default, reserved words are only enforced if ecmaVersion >= 5.\n  // Set `allowReserved` to a boolean value to explicitly turn this on\n  // an off. When this option has the value \"never\", reserved words\n  // and keywords can also not be used as property names.\n  allowReserved: null,\n  // When enabled, a return at the top level is not considered an\n  // error.\n  allowReturnOutsideFunction: false,\n  // When enabled, import/export statements are not constrained to\n  // appearing at the top of the program, and an import.meta expression\n  // in a script isn't considered an error.\n  allowImportExportEverywhere: false,\n  // By default, await identifiers are allowed to appear at the top-level scope only if ecmaVersion >= 2022.\n  // When enabled, await identifiers are allowed to appear at the top-level scope,\n  // but they are still not allowed in non-async functions.\n  allowAwaitOutsideFunction: null,\n  // When enabled, super identifiers are not constrained to\n  // appearing in methods and do not raise an error when they appear elsewhere.\n  allowSuperOutsideMethod: null,\n  // When enabled, hashbang directive in the beginning of file is\n  // allowed and treated as a line comment. Enabled by default when\n  // `ecmaVersion` >= 2023.\n  allowHashBang: false,\n  // When `locations` is on, `loc` properties holding objects with\n  // `start` and `end` properties in `{line, column}` form (with\n  // line being 1-based and column 0-based) will be attached to the\n  // nodes.\n  locations: false,\n  // A function can be passed as `onToken` option, which will\n  // cause Acorn to call that function with object in the same\n  // format as tokens returned from `tokenizer().getToken()`. Note\n  // that you are not allowed to call the parser from the\n  // callback—that will corrupt its internal state.\n  onToken: null,\n  // A function can be passed as `onComment` option, which will\n  // cause Acorn to call that function with `(block, text, start,\n  // end)` parameters whenever a comment is skipped. `block` is a\n  // boolean indicating whether this is a block (`/* */`) comment,\n  // `text` is the content of the comment, and `start` and `end` are\n  // character offsets that denote the start and end of the comment.\n  // When the `locations` option is on, two more parameters are\n  // passed, the full `{line, column}` locations of the start and\n  // end of the comments. Note that you are not allowed to call the\n  // parser from the callback—that will corrupt its internal state.\n  onComment: null,\n  // Nodes have their start and end characters offsets recorded in\n  // `start` and `end` properties (directly on the node, rather than\n  // the `loc` object, which holds line/column data. To also add a\n  // [semi-standardized][range] `range` property holding a `[start,\n  // end]` array with the same numbers, set the `ranges` option to\n  // `true`.\n  //\n  // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678\n  ranges: false,\n  // It is possible to parse multiple files into a single AST by\n  // passing the tree produced by parsing the first file as\n  // `program` option in subsequent parses. This will add the\n  // toplevel forms of the parsed file to the `Program` (top) node\n  // of an existing parse tree.\n  program: null,\n  // When `locations` is on, you can pass this to record the source\n  // file in every node's `loc` object.\n  sourceFile: null,\n  // This value, if given, is stored in every node, whether\n  // `locations` is on or off.\n  directSourceFile: null,\n  // When enabled, parenthesized expressions are represented by\n  // (non-standard) ParenthesizedExpression nodes\n  preserveParens: false\n};\n\n// Interpret and default an options object\n\nvar warnedAboutEcmaVersion = false;\n\nfunction getOptions(opts) {\n  var options = {};\n\n  for (var opt in defaultOptions)\n    { options[opt] = opts && hasOwn(opts, opt) ? opts[opt] : defaultOptions[opt]; }\n\n  if (options.ecmaVersion === \"latest\") {\n    options.ecmaVersion = 1e8;\n  } else if (options.ecmaVersion == null) {\n    if (!warnedAboutEcmaVersion && typeof console === \"object\" && console.warn) {\n      warnedAboutEcmaVersion = true;\n      console.warn(\"Since Acorn 8.0.0, options.ecmaVersion is required.\\nDefaulting to 2020, but this will stop working in the future.\");\n    }\n    options.ecmaVersion = 11;\n  } else if (options.ecmaVersion >= 2015) {\n    options.ecmaVersion -= 2009;\n  }\n\n  if (options.allowReserved == null)\n    { options.allowReserved = options.ecmaVersion < 5; }\n\n  if (opts.allowHashBang == null)\n    { options.allowHashBang = options.ecmaVersion >= 14; }\n\n  if (isArray(options.onToken)) {\n    var tokens = options.onToken;\n    options.onToken = function (token) { return tokens.push(token); };\n  }\n  if (isArray(options.onComment))\n    { options.onComment = pushComment(options, options.onComment); }\n\n  return options\n}\n\nfunction pushComment(options, array) {\n  return function(block, text, start, end, startLoc, endLoc) {\n    var comment = {\n      type: block ? \"Block\" : \"Line\",\n      value: text,\n      start: start,\n      end: end\n    };\n    if (options.locations)\n      { comment.loc = new SourceLocation(this, startLoc, endLoc); }\n    if (options.ranges)\n      { comment.range = [start, end]; }\n    array.push(comment);\n  }\n}\n\n// Each scope gets a bitset that may contain these flags\nvar\n    SCOPE_TOP = 1,\n    SCOPE_FUNCTION = 2,\n    SCOPE_ASYNC = 4,\n    SCOPE_GENERATOR = 8,\n    SCOPE_ARROW = 16,\n    SCOPE_SIMPLE_CATCH = 32,\n    SCOPE_SUPER = 64,\n    SCOPE_DIRECT_SUPER = 128,\n    SCOPE_CLASS_STATIC_BLOCK = 256,\n    SCOPE_VAR = SCOPE_TOP | SCOPE_FUNCTION | SCOPE_CLASS_STATIC_BLOCK;\n\nfunction functionFlags(async, generator) {\n  return SCOPE_FUNCTION | (async ? SCOPE_ASYNC : 0) | (generator ? SCOPE_GENERATOR : 0)\n}\n\n// Used in checkLVal* and declareName to determine the type of a binding\nvar\n    BIND_NONE = 0, // Not a binding\n    BIND_VAR = 1, // Var-style binding\n    BIND_LEXICAL = 2, // Let- or const-style binding\n    BIND_FUNCTION = 3, // Function declaration\n    BIND_SIMPLE_CATCH = 4, // Simple (identifier pattern) catch binding\n    BIND_OUTSIDE = 5; // Special case for function names as bound inside the function\n\nvar Parser = function Parser(options, input, startPos) {\n  this.options = options = getOptions(options);\n  this.sourceFile = options.sourceFile;\n  this.keywords = wordsRegexp(keywords$1[options.ecmaVersion >= 6 ? 6 : options.sourceType === \"module\" ? \"5module\" : 5]);\n  var reserved = \"\";\n  if (options.allowReserved !== true) {\n    reserved = reservedWords[options.ecmaVersion >= 6 ? 6 : options.ecmaVersion === 5 ? 5 : 3];\n    if (options.sourceType === \"module\") { reserved += \" await\"; }\n  }\n  this.reservedWords = wordsRegexp(reserved);\n  var reservedStrict = (reserved ? reserved + \" \" : \"\") + reservedWords.strict;\n  this.reservedWordsStrict = wordsRegexp(reservedStrict);\n  this.reservedWordsStrictBind = wordsRegexp(reservedStrict + \" \" + reservedWords.strictBind);\n  this.input = String(input);\n\n  // Used to signal to callers of `readWord1` whether the word\n  // contained any escape sequences. This is needed because words with\n  // escape sequences must not be interpreted as keywords.\n  this.containsEsc = false;\n\n  // Set up token state\n\n  // The current position of the tokenizer in the input.\n  if (startPos) {\n    this.pos = startPos;\n    this.lineStart = this.input.lastIndexOf(\"\\n\", startPos - 1) + 1;\n    this.curLine = this.input.slice(0, this.lineStart).split(lineBreak).length;\n  } else {\n    this.pos = this.lineStart = 0;\n    this.curLine = 1;\n  }\n\n  // Properties of the current token:\n  // Its type\n  this.type = types$1.eof;\n  // For tokens that include more information than their type, the value\n  this.value = null;\n  // Its start and end offset\n  this.start = this.end = this.pos;\n  // And, if locations are used, the {line, column} object\n  // corresponding to those offsets\n  this.startLoc = this.endLoc = this.curPosition();\n\n  // Position information for the previous token\n  this.lastTokEndLoc = this.lastTokStartLoc = null;\n  this.lastTokStart = this.lastTokEnd = this.pos;\n\n  // The context stack is used to superficially track syntactic\n  // context to predict whether a regular expression is allowed in a\n  // given position.\n  this.context = this.initialContext();\n  this.exprAllowed = true;\n\n  // Figure out if it's a module code.\n  this.inModule = options.sourceType === \"module\";\n  this.strict = this.inModule || this.strictDirective(this.pos);\n\n  // Used to signify the start of a potential arrow function\n  this.potentialArrowAt = -1;\n  this.potentialArrowInForAwait = false;\n\n  // Positions to delayed-check that yield/await does not exist in default parameters.\n  this.yieldPos = this.awaitPos = this.awaitIdentPos = 0;\n  // Labels in scope.\n  this.labels = [];\n  // Thus-far undefined exports.\n  this.undefinedExports = Object.create(null);\n\n  // If enabled, skip leading hashbang line.\n  if (this.pos === 0 && options.allowHashBang && this.input.slice(0, 2) === \"#!\")\n    { this.skipLineComment(2); }\n\n  // Scope tracking for duplicate variable names (see scope.js)\n  this.scopeStack = [];\n  this.enterScope(SCOPE_TOP);\n\n  // For RegExp validation\n  this.regexpState = null;\n\n  // The stack of private names.\n  // Each element has two properties: 'declared' and 'used'.\n  // When it exited from the outermost class definition, all used private names must be declared.\n  this.privateNameStack = [];\n};\n\nvar prototypeAccessors = { inFunction: { configurable: true },inGenerator: { configurable: true },inAsync: { configurable: true },canAwait: { configurable: true },allowSuper: { configurable: true },allowDirectSuper: { configurable: true },treatFunctionsAsVar: { configurable: true },allowNewDotTarget: { configurable: true },inClassStaticBlock: { configurable: true } };\n\nParser.prototype.parse = function parse () {\n  var node = this.options.program || this.startNode();\n  this.nextToken();\n  return this.parseTopLevel(node)\n};\n\nprototypeAccessors.inFunction.get = function () { return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0 };\n\nprototypeAccessors.inGenerator.get = function () { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 && !this.currentVarScope().inClassFieldInit };\n\nprototypeAccessors.inAsync.get = function () { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 && !this.currentVarScope().inClassFieldInit };\n\nprototypeAccessors.canAwait.get = function () {\n  for (var i = this.scopeStack.length - 1; i >= 0; i--) {\n    var scope = this.scopeStack[i];\n    if (scope.inClassFieldInit || scope.flags & SCOPE_CLASS_STATIC_BLOCK) { return false }\n    if (scope.flags & SCOPE_FUNCTION) { return (scope.flags & SCOPE_ASYNC) > 0 }\n  }\n  return (this.inModule && this.options.ecmaVersion >= 13) || this.options.allowAwaitOutsideFunction\n};\n\nprototypeAccessors.allowSuper.get = function () {\n  var ref = this.currentThisScope();\n    var flags = ref.flags;\n    var inClassFieldInit = ref.inClassFieldInit;\n  return (flags & SCOPE_SUPER) > 0 || inClassFieldInit || this.options.allowSuperOutsideMethod\n};\n\nprototypeAccessors.allowDirectSuper.get = function () { return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0 };\n\nprototypeAccessors.treatFunctionsAsVar.get = function () { return this.treatFunctionsAsVarInScope(this.currentScope()) };\n\nprototypeAccessors.allowNewDotTarget.get = function () {\n  var ref = this.currentThisScope();\n    var flags = ref.flags;\n    var inClassFieldInit = ref.inClassFieldInit;\n  return (flags & (SCOPE_FUNCTION | SCOPE_CLASS_STATIC_BLOCK)) > 0 || inClassFieldInit\n};\n\nprototypeAccessors.inClassStaticBlock.get = function () {\n  return (this.currentVarScope().flags & SCOPE_CLASS_STATIC_BLOCK) > 0\n};\n\nParser.extend = function extend () {\n    var plugins = [], len = arguments.length;\n    while ( len-- ) plugins[ len ] = arguments[ len ];\n\n  var cls = this;\n  for (var i = 0; i < plugins.length; i++) { cls = plugins[i](cls); }\n  return cls\n};\n\nParser.parse = function parse (input, options) {\n  return new this(options, input).parse()\n};\n\nParser.parseExpressionAt = function parseExpressionAt (input, pos, options) {\n  var parser = new this(options, input, pos);\n  parser.nextToken();\n  return parser.parseExpression()\n};\n\nParser.tokenizer = function tokenizer (input, options) {\n  return new this(options, input)\n};\n\nObject.defineProperties( Parser.prototype, prototypeAccessors );\n\nvar pp$9 = Parser.prototype;\n\n// ## Parser utilities\n\nvar literal = /^(?:'((?:\\\\.|[^'\\\\])*?)'|\"((?:\\\\.|[^\"\\\\])*?)\")/;\npp$9.strictDirective = function(start) {\n  if (this.options.ecmaVersion < 5) { return false }\n  for (;;) {\n    // Try to find string literal.\n    skipWhiteSpace.lastIndex = start;\n    start += skipWhiteSpace.exec(this.input)[0].length;\n    var match = literal.exec(this.input.slice(start));\n    if (!match) { return false }\n    if ((match[1] || match[2]) === \"use strict\") {\n      skipWhiteSpace.lastIndex = start + match[0].length;\n      var spaceAfter = skipWhiteSpace.exec(this.input), end = spaceAfter.index + spaceAfter[0].length;\n      var next = this.input.charAt(end);\n      return next === \";\" || next === \"}\" ||\n        (lineBreak.test(spaceAfter[0]) &&\n         !(/[(`.[+\\-/*%<>=,?^&]/.test(next) || next === \"!\" && this.input.charAt(end + 1) === \"=\"))\n    }\n    start += match[0].length;\n\n    // Skip semicolon, if any.\n    skipWhiteSpace.lastIndex = start;\n    start += skipWhiteSpace.exec(this.input)[0].length;\n    if (this.input[start] === \";\")\n      { start++; }\n  }\n};\n\n// Predicate that tests whether the next token is of the given\n// type, and if yes, consumes it as a side effect.\n\npp$9.eat = function(type) {\n  if (this.type === type) {\n    this.next();\n    return true\n  } else {\n    return false\n  }\n};\n\n// Tests whether parsed token is a contextual keyword.\n\npp$9.isContextual = function(name) {\n  return this.type === types$1.name && this.value === name && !this.containsEsc\n};\n\n// Consumes contextual keyword if possible.\n\npp$9.eatContextual = function(name) {\n  if (!this.isContextual(name)) { return false }\n  this.next();\n  return true\n};\n\n// Asserts that following token is given contextual keyword.\n\npp$9.expectContextual = function(name) {\n  if (!this.eatContextual(name)) { this.unexpected(); }\n};\n\n// Test whether a semicolon can be inserted at the current position.\n\npp$9.canInsertSemicolon = function() {\n  return this.type === types$1.eof ||\n    this.type === types$1.braceR ||\n    lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n};\n\npp$9.insertSemicolon = function() {\n  if (this.canInsertSemicolon()) {\n    if (this.options.onInsertedSemicolon)\n      { this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc); }\n    return true\n  }\n};\n\n// Consume a semicolon, or, failing that, see if we are allowed to\n// pretend that there is a semicolon at this position.\n\npp$9.semicolon = function() {\n  if (!this.eat(types$1.semi) && !this.insertSemicolon()) { this.unexpected(); }\n};\n\npp$9.afterTrailingComma = function(tokType, notNext) {\n  if (this.type === tokType) {\n    if (this.options.onTrailingComma)\n      { this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc); }\n    if (!notNext)\n      { this.next(); }\n    return true\n  }\n};\n\n// Expect a token of a given type. If found, consume it, otherwise,\n// raise an unexpected token error.\n\npp$9.expect = function(type) {\n  this.eat(type) || this.unexpected();\n};\n\n// Raise an unexpected token error.\n\npp$9.unexpected = function(pos) {\n  this.raise(pos != null ? pos : this.start, \"Unexpected token\");\n};\n\nvar DestructuringErrors = function DestructuringErrors() {\n  this.shorthandAssign =\n  this.trailingComma =\n  this.parenthesizedAssign =\n  this.parenthesizedBind =\n  this.doubleProto =\n    -1;\n};\n\npp$9.checkPatternErrors = function(refDestructuringErrors, isAssign) {\n  if (!refDestructuringErrors) { return }\n  if (refDestructuringErrors.trailingComma > -1)\n    { this.raiseRecoverable(refDestructuringErrors.trailingComma, \"Comma is not permitted after the rest element\"); }\n  var parens = isAssign ? refDestructuringErrors.parenthesizedAssign : refDestructuringErrors.parenthesizedBind;\n  if (parens > -1) { this.raiseRecoverable(parens, isAssign ? \"Assigning to rvalue\" : \"Parenthesized pattern\"); }\n};\n\npp$9.checkExpressionErrors = function(refDestructuringErrors, andThrow) {\n  if (!refDestructuringErrors) { return false }\n  var shorthandAssign = refDestructuringErrors.shorthandAssign;\n  var doubleProto = refDestructuringErrors.doubleProto;\n  if (!andThrow) { return shorthandAssign >= 0 || doubleProto >= 0 }\n  if (shorthandAssign >= 0)\n    { this.raise(shorthandAssign, \"Shorthand property assignments are valid only in destructuring patterns\"); }\n  if (doubleProto >= 0)\n    { this.raiseRecoverable(doubleProto, \"Redefinition of __proto__ property\"); }\n};\n\npp$9.checkYieldAwaitInDefaultParams = function() {\n  if (this.yieldPos && (!this.awaitPos || this.yieldPos < this.awaitPos))\n    { this.raise(this.yieldPos, \"Yield expression cannot be a default value\"); }\n  if (this.awaitPos)\n    { this.raise(this.awaitPos, \"Await expression cannot be a default value\"); }\n};\n\npp$9.isSimpleAssignTarget = function(expr) {\n  if (expr.type === \"ParenthesizedExpression\")\n    { return this.isSimpleAssignTarget(expr.expression) }\n  return expr.type === \"Identifier\" || expr.type === \"MemberExpression\"\n};\n\nvar pp$8 = Parser.prototype;\n\n// ### Statement parsing\n\n// Parse a program. Initializes the parser, reads any number of\n// statements, and wraps them in a Program node.  Optionally takes a\n// `program` argument.  If present, the statements will be appended\n// to its body instead of creating a new node.\n\npp$8.parseTopLevel = function(node) {\n  var exports = Object.create(null);\n  if (!node.body) { node.body = []; }\n  while (this.type !== types$1.eof) {\n    var stmt = this.parseStatement(null, true, exports);\n    node.body.push(stmt);\n  }\n  if (this.inModule)\n    { for (var i = 0, list = Object.keys(this.undefinedExports); i < list.length; i += 1)\n      {\n        var name = list[i];\n\n        this.raiseRecoverable(this.undefinedExports[name].start, (\"Export '\" + name + \"' is not defined\"));\n      } }\n  this.adaptDirectivePrologue(node.body);\n  this.next();\n  node.sourceType = this.options.sourceType;\n  return this.finishNode(node, \"Program\")\n};\n\nvar loopLabel = {kind: \"loop\"}, switchLabel = {kind: \"switch\"};\n\npp$8.isLet = function(context) {\n  if (this.options.ecmaVersion < 6 || !this.isContextual(\"let\")) { return false }\n  skipWhiteSpace.lastIndex = this.pos;\n  var skip = skipWhiteSpace.exec(this.input);\n  var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next);\n  // For ambiguous cases, determine if a LexicalDeclaration (or only a\n  // Statement) is allowed here. If context is not empty then only a Statement\n  // is allowed. However, `let [` is an explicit negative lookahead for\n  // ExpressionStatement, so special-case it first.\n  if (nextCh === 91 || nextCh === 92 || nextCh > 0xd7ff && nextCh < 0xdc00) { return true } // '[', '/', astral\n  if (context) { return false }\n\n  if (nextCh === 123) { return true } // '{'\n  if (isIdentifierStart(nextCh, true)) {\n    var pos = next + 1;\n    while (isIdentifierChar(nextCh = this.input.charCodeAt(pos), true)) { ++pos; }\n    if (nextCh === 92 || nextCh > 0xd7ff && nextCh < 0xdc00) { return true }\n    var ident = this.input.slice(next, pos);\n    if (!keywordRelationalOperator.test(ident)) { return true }\n  }\n  return false\n};\n\n// check 'async [no LineTerminator here] function'\n// - 'async /*foo*/ function' is OK.\n// - 'async /*\\n*/ function' is invalid.\npp$8.isAsyncFunction = function() {\n  if (this.options.ecmaVersion < 8 || !this.isContextual(\"async\"))\n    { return false }\n\n  skipWhiteSpace.lastIndex = this.pos;\n  var skip = skipWhiteSpace.exec(this.input);\n  var next = this.pos + skip[0].length, after;\n  return !lineBreak.test(this.input.slice(this.pos, next)) &&\n    this.input.slice(next, next + 8) === \"function\" &&\n    (next + 8 === this.input.length ||\n     !(isIdentifierChar(after = this.input.charCodeAt(next + 8)) || after > 0xd7ff && after < 0xdc00))\n};\n\n// Parse a single statement.\n//\n// If expecting a statement and finding a slash operator, parse a\n// regular expression literal. This is to handle cases like\n// `if (foo) /blah/.exec(foo)`, where looking at the previous token\n// does not help.\n\npp$8.parseStatement = function(context, topLevel, exports) {\n  var starttype = this.type, node = this.startNode(), kind;\n\n  if (this.isLet(context)) {\n    starttype = types$1._var;\n    kind = \"let\";\n  }\n\n  // Most types of statements are recognized by the keyword they\n  // start with. Many are trivial to parse, some require a bit of\n  // complexity.\n\n  switch (starttype) {\n  case types$1._break: case types$1._continue: return this.parseBreakContinueStatement(node, starttype.keyword)\n  case types$1._debugger: return this.parseDebuggerStatement(node)\n  case types$1._do: return this.parseDoStatement(node)\n  case types$1._for: return this.parseForStatement(node)\n  case types$1._function:\n    // Function as sole body of either an if statement or a labeled statement\n    // works, but not when it is part of a labeled statement that is the sole\n    // body of an if statement.\n    if ((context && (this.strict || context !== \"if\" && context !== \"label\")) && this.options.ecmaVersion >= 6) { this.unexpected(); }\n    return this.parseFunctionStatement(node, false, !context)\n  case types$1._class:\n    if (context) { this.unexpected(); }\n    return this.parseClass(node, true)\n  case types$1._if: return this.parseIfStatement(node)\n  case types$1._return: return this.parseReturnStatement(node)\n  case types$1._switch: return this.parseSwitchStatement(node)\n  case types$1._throw: return this.parseThrowStatement(node)\n  case types$1._try: return this.parseTryStatement(node)\n  case types$1._const: case types$1._var:\n    kind = kind || this.value;\n    if (context && kind !== \"var\") { this.unexpected(); }\n    return this.parseVarStatement(node, kind)\n  case types$1._while: return this.parseWhileStatement(node)\n  case types$1._with: return this.parseWithStatement(node)\n  case types$1.braceL: return this.parseBlock(true, node)\n  case types$1.semi: return this.parseEmptyStatement(node)\n  case types$1._export:\n  case types$1._import:\n    if (this.options.ecmaVersion > 10 && starttype === types$1._import) {\n      skipWhiteSpace.lastIndex = this.pos;\n      var skip = skipWhiteSpace.exec(this.input);\n      var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next);\n      if (nextCh === 40 || nextCh === 46) // '(' or '.'\n        { return this.parseExpressionStatement(node, this.parseExpression()) }\n    }\n\n    if (!this.options.allowImportExportEverywhere) {\n      if (!topLevel)\n        { this.raise(this.start, \"'import' and 'export' may only appear at the top level\"); }\n      if (!this.inModule)\n        { this.raise(this.start, \"'import' and 'export' may appear only with 'sourceType: module'\"); }\n    }\n    return starttype === types$1._import ? this.parseImport(node) : this.parseExport(node, exports)\n\n    // If the statement does not start with a statement keyword or a\n    // brace, it's an ExpressionStatement or LabeledStatement. We\n    // simply start parsing an expression, and afterwards, if the\n    // next token is a colon and the expression was a simple\n    // Identifier node, we switch to interpreting it as a label.\n  default:\n    if (this.isAsyncFunction()) {\n      if (context) { this.unexpected(); }\n      this.next();\n      return this.parseFunctionStatement(node, true, !context)\n    }\n\n    var maybeName = this.value, expr = this.parseExpression();\n    if (starttype === types$1.name && expr.type === \"Identifier\" && this.eat(types$1.colon))\n      { return this.parseLabeledStatement(node, maybeName, expr, context) }\n    else { return this.parseExpressionStatement(node, expr) }\n  }\n};\n\npp$8.parseBreakContinueStatement = function(node, keyword) {\n  var isBreak = keyword === \"break\";\n  this.next();\n  if (this.eat(types$1.semi) || this.insertSemicolon()) { node.label = null; }\n  else if (this.type !== types$1.name) { this.unexpected(); }\n  else {\n    node.label = this.parseIdent();\n    this.semicolon();\n  }\n\n  // Verify that there is an actual destination to break or\n  // continue to.\n  var i = 0;\n  for (; i < this.labels.length; ++i) {\n    var lab = this.labels[i];\n    if (node.label == null || lab.name === node.label.name) {\n      if (lab.kind != null && (isBreak || lab.kind === \"loop\")) { break }\n      if (node.label && isBreak) { break }\n    }\n  }\n  if (i === this.labels.length) { this.raise(node.start, \"Unsyntactic \" + keyword); }\n  return this.finishNode(node, isBreak ? \"BreakStatement\" : \"ContinueStatement\")\n};\n\npp$8.parseDebuggerStatement = function(node) {\n  this.next();\n  this.semicolon();\n  return this.finishNode(node, \"DebuggerStatement\")\n};\n\npp$8.parseDoStatement = function(node) {\n  this.next();\n  this.labels.push(loopLabel);\n  node.body = this.parseStatement(\"do\");\n  this.labels.pop();\n  this.expect(types$1._while);\n  node.test = this.parseParenExpression();\n  if (this.options.ecmaVersion >= 6)\n    { this.eat(types$1.semi); }\n  else\n    { this.semicolon(); }\n  return this.finishNode(node, \"DoWhileStatement\")\n};\n\n// Disambiguating between a `for` and a `for`/`in` or `for`/`of`\n// loop is non-trivial. Basically, we have to parse the init `var`\n// statement or expression, disallowing the `in` operator (see\n// the second parameter to `parseExpression`), and then check\n// whether the next token is `in` or `of`. When there is no init\n// part (semicolon immediately after the opening parenthesis), it\n// is a regular `for` loop.\n\npp$8.parseForStatement = function(node) {\n  this.next();\n  var awaitAt = (this.options.ecmaVersion >= 9 && this.canAwait && this.eatContextual(\"await\")) ? this.lastTokStart : -1;\n  this.labels.push(loopLabel);\n  this.enterScope(0);\n  this.expect(types$1.parenL);\n  if (this.type === types$1.semi) {\n    if (awaitAt > -1) { this.unexpected(awaitAt); }\n    return this.parseFor(node, null)\n  }\n  var isLet = this.isLet();\n  if (this.type === types$1._var || this.type === types$1._const || isLet) {\n    var init$1 = this.startNode(), kind = isLet ? \"let\" : this.value;\n    this.next();\n    this.parseVar(init$1, true, kind);\n    this.finishNode(init$1, \"VariableDeclaration\");\n    if ((this.type === types$1._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\"))) && init$1.declarations.length === 1) {\n      if (this.options.ecmaVersion >= 9) {\n        if (this.type === types$1._in) {\n          if (awaitAt > -1) { this.unexpected(awaitAt); }\n        } else { node.await = awaitAt > -1; }\n      }\n      return this.parseForIn(node, init$1)\n    }\n    if (awaitAt > -1) { this.unexpected(awaitAt); }\n    return this.parseFor(node, init$1)\n  }\n  var startsWithLet = this.isContextual(\"let\"), isForOf = false;\n  var refDestructuringErrors = new DestructuringErrors;\n  var init = this.parseExpression(awaitAt > -1 ? \"await\" : true, refDestructuringErrors);\n  if (this.type === types$1._in || (isForOf = this.options.ecmaVersion >= 6 && this.isContextual(\"of\"))) {\n    if (this.options.ecmaVersion >= 9) {\n      if (this.type === types$1._in) {\n        if (awaitAt > -1) { this.unexpected(awaitAt); }\n      } else { node.await = awaitAt > -1; }\n    }\n    if (startsWithLet && isForOf) { this.raise(init.start, \"The left-hand side of a for-of loop may not start with 'let'.\"); }\n    this.toAssignable(init, false, refDestructuringErrors);\n    this.checkLValPattern(init);\n    return this.parseForIn(node, init)\n  } else {\n    this.checkExpressionErrors(refDestructuringErrors, true);\n  }\n  if (awaitAt > -1) { this.unexpected(awaitAt); }\n  return this.parseFor(node, init)\n};\n\npp$8.parseFunctionStatement = function(node, isAsync, declarationPosition) {\n  this.next();\n  return this.parseFunction(node, FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT), false, isAsync)\n};\n\npp$8.parseIfStatement = function(node) {\n  this.next();\n  node.test = this.parseParenExpression();\n  // allow function declarations in branches, but only in non-strict mode\n  node.consequent = this.parseStatement(\"if\");\n  node.alternate = this.eat(types$1._else) ? this.parseStatement(\"if\") : null;\n  return this.finishNode(node, \"IfStatement\")\n};\n\npp$8.parseReturnStatement = function(node) {\n  if (!this.inFunction && !this.options.allowReturnOutsideFunction)\n    { this.raise(this.start, \"'return' outside of function\"); }\n  this.next();\n\n  // In `return` (and `break`/`continue`), the keywords with\n  // optional arguments, we eagerly look for a semicolon or the\n  // possibility to insert one.\n\n  if (this.eat(types$1.semi) || this.insertSemicolon()) { node.argument = null; }\n  else { node.argument = this.parseExpression(); this.semicolon(); }\n  return this.finishNode(node, \"ReturnStatement\")\n};\n\npp$8.parseSwitchStatement = function(node) {\n  this.next();\n  node.discriminant = this.parseParenExpression();\n  node.cases = [];\n  this.expect(types$1.braceL);\n  this.labels.push(switchLabel);\n  this.enterScope(0);\n\n  // Statements under must be grouped (by label) in SwitchCase\n  // nodes. `cur` is used to keep the node that we are currently\n  // adding statements to.\n\n  var cur;\n  for (var sawDefault = false; this.type !== types$1.braceR;) {\n    if (this.type === types$1._case || this.type === types$1._default) {\n      var isCase = this.type === types$1._case;\n      if (cur) { this.finishNode(cur, \"SwitchCase\"); }\n      node.cases.push(cur = this.startNode());\n      cur.consequent = [];\n      this.next();\n      if (isCase) {\n        cur.test = this.parseExpression();\n      } else {\n        if (sawDefault) { this.raiseRecoverable(this.lastTokStart, \"Multiple default clauses\"); }\n        sawDefault = true;\n        cur.test = null;\n      }\n      this.expect(types$1.colon);\n    } else {\n      if (!cur) { this.unexpected(); }\n      cur.consequent.push(this.parseStatement(null));\n    }\n  }\n  this.exitScope();\n  if (cur) { this.finishNode(cur, \"SwitchCase\"); }\n  this.next(); // Closing brace\n  this.labels.pop();\n  return this.finishNode(node, \"SwitchStatement\")\n};\n\npp$8.parseThrowStatement = function(node) {\n  this.next();\n  if (lineBreak.test(this.input.slice(this.lastTokEnd, this.start)))\n    { this.raise(this.lastTokEnd, \"Illegal newline after throw\"); }\n  node.argument = this.parseExpression();\n  this.semicolon();\n  return this.finishNode(node, \"ThrowStatement\")\n};\n\n// Reused empty array added for node fields that are always empty.\n\nvar empty$1 = [];\n\npp$8.parseTryStatement = function(node) {\n  this.next();\n  node.block = this.parseBlock();\n  node.handler = null;\n  if (this.type === types$1._catch) {\n    var clause = this.startNode();\n    this.next();\n    if (this.eat(types$1.parenL)) {\n      clause.param = this.parseBindingAtom();\n      var simple = clause.param.type === \"Identifier\";\n      this.enterScope(simple ? SCOPE_SIMPLE_CATCH : 0);\n      this.checkLValPattern(clause.param, simple ? BIND_SIMPLE_CATCH : BIND_LEXICAL);\n      this.expect(types$1.parenR);\n    } else {\n      if (this.options.ecmaVersion < 10) { this.unexpected(); }\n      clause.param = null;\n      this.enterScope(0);\n    }\n    clause.body = this.parseBlock(false);\n    this.exitScope();\n    node.handler = this.finishNode(clause, \"CatchClause\");\n  }\n  node.finalizer = this.eat(types$1._finally) ? this.parseBlock() : null;\n  if (!node.handler && !node.finalizer)\n    { this.raise(node.start, \"Missing catch or finally clause\"); }\n  return this.finishNode(node, \"TryStatement\")\n};\n\npp$8.parseVarStatement = function(node, kind) {\n  this.next();\n  this.parseVar(node, false, kind);\n  this.semicolon();\n  return this.finishNode(node, \"VariableDeclaration\")\n};\n\npp$8.parseWhileStatement = function(node) {\n  this.next();\n  node.test = this.parseParenExpression();\n  this.labels.push(loopLabel);\n  node.body = this.parseStatement(\"while\");\n  this.labels.pop();\n  return this.finishNode(node, \"WhileStatement\")\n};\n\npp$8.parseWithStatement = function(node) {\n  if (this.strict) { this.raise(this.start, \"'with' in strict mode\"); }\n  this.next();\n  node.object = this.parseParenExpression();\n  node.body = this.parseStatement(\"with\");\n  return this.finishNode(node, \"WithStatement\")\n};\n\npp$8.parseEmptyStatement = function(node) {\n  this.next();\n  return this.finishNode(node, \"EmptyStatement\")\n};\n\npp$8.parseLabeledStatement = function(node, maybeName, expr, context) {\n  for (var i$1 = 0, list = this.labels; i$1 < list.length; i$1 += 1)\n    {\n    var label = list[i$1];\n\n    if (label.name === maybeName)\n      { this.raise(expr.start, \"Label '\" + maybeName + \"' is already declared\");\n  } }\n  var kind = this.type.isLoop ? \"loop\" : this.type === types$1._switch ? \"switch\" : null;\n  for (var i = this.labels.length - 1; i >= 0; i--) {\n    var label$1 = this.labels[i];\n    if (label$1.statementStart === node.start) {\n      // Update information about previous labels on this node\n      label$1.statementStart = this.start;\n      label$1.kind = kind;\n    } else { break }\n  }\n  this.labels.push({name: maybeName, kind: kind, statementStart: this.start});\n  node.body = this.parseStatement(context ? context.indexOf(\"label\") === -1 ? context + \"label\" : context : \"label\");\n  this.labels.pop();\n  node.label = expr;\n  return this.finishNode(node, \"LabeledStatement\")\n};\n\npp$8.parseExpressionStatement = function(node, expr) {\n  node.expression = expr;\n  this.semicolon();\n  return this.finishNode(node, \"ExpressionStatement\")\n};\n\n// Parse a semicolon-enclosed block of statements, handling `\"use\n// strict\"` declarations when `allowStrict` is true (used for\n// function bodies).\n\npp$8.parseBlock = function(createNewLexicalScope, node, exitStrict) {\n  if ( createNewLexicalScope === void 0 ) createNewLexicalScope = true;\n  if ( node === void 0 ) node = this.startNode();\n\n  node.body = [];\n  this.expect(types$1.braceL);\n  if (createNewLexicalScope) { this.enterScope(0); }\n  while (this.type !== types$1.braceR) {\n    var stmt = this.parseStatement(null);\n    node.body.push(stmt);\n  }\n  if (exitStrict) { this.strict = false; }\n  this.next();\n  if (createNewLexicalScope) { this.exitScope(); }\n  return this.finishNode(node, \"BlockStatement\")\n};\n\n// Parse a regular `for` loop. The disambiguation code in\n// `parseStatement` will already have parsed the init statement or\n// expression.\n\npp$8.parseFor = function(node, init) {\n  node.init = init;\n  this.expect(types$1.semi);\n  node.test = this.type === types$1.semi ? null : this.parseExpression();\n  this.expect(types$1.semi);\n  node.update = this.type === types$1.parenR ? null : this.parseExpression();\n  this.expect(types$1.parenR);\n  node.body = this.parseStatement(\"for\");\n  this.exitScope();\n  this.labels.pop();\n  return this.finishNode(node, \"ForStatement\")\n};\n\n// Parse a `for`/`in` and `for`/`of` loop, which are almost\n// same from parser's perspective.\n\npp$8.parseForIn = function(node, init) {\n  var isForIn = this.type === types$1._in;\n  this.next();\n\n  if (\n    init.type === \"VariableDeclaration\" &&\n    init.declarations[0].init != null &&\n    (\n      !isForIn ||\n      this.options.ecmaVersion < 8 ||\n      this.strict ||\n      init.kind !== \"var\" ||\n      init.declarations[0].id.type !== \"Identifier\"\n    )\n  ) {\n    this.raise(\n      init.start,\n      ((isForIn ? \"for-in\" : \"for-of\") + \" loop variable declaration may not have an initializer\")\n    );\n  }\n  node.left = init;\n  node.right = isForIn ? this.parseExpression() : this.parseMaybeAssign();\n  this.expect(types$1.parenR);\n  node.body = this.parseStatement(\"for\");\n  this.exitScope();\n  this.labels.pop();\n  return this.finishNode(node, isForIn ? \"ForInStatement\" : \"ForOfStatement\")\n};\n\n// Parse a list of variable declarations.\n\npp$8.parseVar = function(node, isFor, kind) {\n  node.declarations = [];\n  node.kind = kind;\n  for (;;) {\n    var decl = this.startNode();\n    this.parseVarId(decl, kind);\n    if (this.eat(types$1.eq)) {\n      decl.init = this.parseMaybeAssign(isFor);\n    } else if (kind === \"const\" && !(this.type === types$1._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\")))) {\n      this.unexpected();\n    } else if (decl.id.type !== \"Identifier\" && !(isFor && (this.type === types$1._in || this.isContextual(\"of\")))) {\n      this.raise(this.lastTokEnd, \"Complex binding patterns require an initialization value\");\n    } else {\n      decl.init = null;\n    }\n    node.declarations.push(this.finishNode(decl, \"VariableDeclarator\"));\n    if (!this.eat(types$1.comma)) { break }\n  }\n  return node\n};\n\npp$8.parseVarId = function(decl, kind) {\n  decl.id = this.parseBindingAtom();\n  this.checkLValPattern(decl.id, kind === \"var\" ? BIND_VAR : BIND_LEXICAL, false);\n};\n\nvar FUNC_STATEMENT = 1, FUNC_HANGING_STATEMENT = 2, FUNC_NULLABLE_ID = 4;\n\n// Parse a function declaration or literal (depending on the\n// `statement & FUNC_STATEMENT`).\n\n// Remove `allowExpressionBody` for 7.0.0, as it is only called with false\npp$8.parseFunction = function(node, statement, allowExpressionBody, isAsync, forInit) {\n  this.initFunction(node);\n  if (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !isAsync) {\n    if (this.type === types$1.star && (statement & FUNC_HANGING_STATEMENT))\n      { this.unexpected(); }\n    node.generator = this.eat(types$1.star);\n  }\n  if (this.options.ecmaVersion >= 8)\n    { node.async = !!isAsync; }\n\n  if (statement & FUNC_STATEMENT) {\n    node.id = (statement & FUNC_NULLABLE_ID) && this.type !== types$1.name ? null : this.parseIdent();\n    if (node.id && !(statement & FUNC_HANGING_STATEMENT))\n      // If it is a regular function declaration in sloppy mode, then it is\n      // subject to Annex B semantics (BIND_FUNCTION). Otherwise, the binding\n      // mode depends on properties of the current scope (see\n      // treatFunctionsAsVar).\n      { this.checkLValSimple(node.id, (this.strict || node.generator || node.async) ? this.treatFunctionsAsVar ? BIND_VAR : BIND_LEXICAL : BIND_FUNCTION); }\n  }\n\n  var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n  this.yieldPos = 0;\n  this.awaitPos = 0;\n  this.awaitIdentPos = 0;\n  this.enterScope(functionFlags(node.async, node.generator));\n\n  if (!(statement & FUNC_STATEMENT))\n    { node.id = this.type === types$1.name ? this.parseIdent() : null; }\n\n  this.parseFunctionParams(node);\n  this.parseFunctionBody(node, allowExpressionBody, false, forInit);\n\n  this.yieldPos = oldYieldPos;\n  this.awaitPos = oldAwaitPos;\n  this.awaitIdentPos = oldAwaitIdentPos;\n  return this.finishNode(node, (statement & FUNC_STATEMENT) ? \"FunctionDeclaration\" : \"FunctionExpression\")\n};\n\npp$8.parseFunctionParams = function(node) {\n  this.expect(types$1.parenL);\n  node.params = this.parseBindingList(types$1.parenR, false, this.options.ecmaVersion >= 8);\n  this.checkYieldAwaitInDefaultParams();\n};\n\n// Parse a class declaration or literal (depending on the\n// `isStatement` parameter).\n\npp$8.parseClass = function(node, isStatement) {\n  this.next();\n\n  // ecma-262 14.6 Class Definitions\n  // A class definition is always strict mode code.\n  var oldStrict = this.strict;\n  this.strict = true;\n\n  this.parseClassId(node, isStatement);\n  this.parseClassSuper(node);\n  var privateNameMap = this.enterClassBody();\n  var classBody = this.startNode();\n  var hadConstructor = false;\n  classBody.body = [];\n  this.expect(types$1.braceL);\n  while (this.type !== types$1.braceR) {\n    var element = this.parseClassElement(node.superClass !== null);\n    if (element) {\n      classBody.body.push(element);\n      if (element.type === \"MethodDefinition\" && element.kind === \"constructor\") {\n        if (hadConstructor) { this.raise(element.start, \"Duplicate constructor in the same class\"); }\n        hadConstructor = true;\n      } else if (element.key && element.key.type === \"PrivateIdentifier\" && isPrivateNameConflicted(privateNameMap, element)) {\n        this.raiseRecoverable(element.key.start, (\"Identifier '#\" + (element.key.name) + \"' has already been declared\"));\n      }\n    }\n  }\n  this.strict = oldStrict;\n  this.next();\n  node.body = this.finishNode(classBody, \"ClassBody\");\n  this.exitClassBody();\n  return this.finishNode(node, isStatement ? \"ClassDeclaration\" : \"ClassExpression\")\n};\n\npp$8.parseClassElement = function(constructorAllowsSuper) {\n  if (this.eat(types$1.semi)) { return null }\n\n  var ecmaVersion = this.options.ecmaVersion;\n  var node = this.startNode();\n  var keyName = \"\";\n  var isGenerator = false;\n  var isAsync = false;\n  var kind = \"method\";\n  var isStatic = false;\n\n  if (this.eatContextual(\"static\")) {\n    // Parse static init block\n    if (ecmaVersion >= 13 && this.eat(types$1.braceL)) {\n      this.parseClassStaticBlock(node);\n      return node\n    }\n    if (this.isClassElementNameStart() || this.type === types$1.star) {\n      isStatic = true;\n    } else {\n      keyName = \"static\";\n    }\n  }\n  node.static = isStatic;\n  if (!keyName && ecmaVersion >= 8 && this.eatContextual(\"async\")) {\n    if ((this.isClassElementNameStart() || this.type === types$1.star) && !this.canInsertSemicolon()) {\n      isAsync = true;\n    } else {\n      keyName = \"async\";\n    }\n  }\n  if (!keyName && (ecmaVersion >= 9 || !isAsync) && this.eat(types$1.star)) {\n    isGenerator = true;\n  }\n  if (!keyName && !isAsync && !isGenerator) {\n    var lastValue = this.value;\n    if (this.eatContextual(\"get\") || this.eatContextual(\"set\")) {\n      if (this.isClassElementNameStart()) {\n        kind = lastValue;\n      } else {\n        keyName = lastValue;\n      }\n    }\n  }\n\n  // Parse element name\n  if (keyName) {\n    // 'async', 'get', 'set', or 'static' were not a keyword contextually.\n    // The last token is any of those. Make it the element name.\n    node.computed = false;\n    node.key = this.startNodeAt(this.lastTokStart, this.lastTokStartLoc);\n    node.key.name = keyName;\n    this.finishNode(node.key, \"Identifier\");\n  } else {\n    this.parseClassElementName(node);\n  }\n\n  // Parse element value\n  if (ecmaVersion < 13 || this.type === types$1.parenL || kind !== \"method\" || isGenerator || isAsync) {\n    var isConstructor = !node.static && checkKeyName(node, \"constructor\");\n    var allowsDirectSuper = isConstructor && constructorAllowsSuper;\n    // Couldn't move this check into the 'parseClassMethod' method for backward compatibility.\n    if (isConstructor && kind !== \"method\") { this.raise(node.key.start, \"Constructor can't have get/set modifier\"); }\n    node.kind = isConstructor ? \"constructor\" : kind;\n    this.parseClassMethod(node, isGenerator, isAsync, allowsDirectSuper);\n  } else {\n    this.parseClassField(node);\n  }\n\n  return node\n};\n\npp$8.isClassElementNameStart = function() {\n  return (\n    this.type === types$1.name ||\n    this.type === types$1.privateId ||\n    this.type === types$1.num ||\n    this.type === types$1.string ||\n    this.type === types$1.bracketL ||\n    this.type.keyword\n  )\n};\n\npp$8.parseClassElementName = function(element) {\n  if (this.type === types$1.privateId) {\n    if (this.value === \"constructor\") {\n      this.raise(this.start, \"Classes can't have an element named '#constructor'\");\n    }\n    element.computed = false;\n    element.key = this.parsePrivateIdent();\n  } else {\n    this.parsePropertyName(element);\n  }\n};\n\npp$8.parseClassMethod = function(method, isGenerator, isAsync, allowsDirectSuper) {\n  // Check key and flags\n  var key = method.key;\n  if (method.kind === \"constructor\") {\n    if (isGenerator) { this.raise(key.start, \"Constructor can't be a generator\"); }\n    if (isAsync) { this.raise(key.start, \"Constructor can't be an async method\"); }\n  } else if (method.static && checkKeyName(method, \"prototype\")) {\n    this.raise(key.start, \"Classes may not have a static property named prototype\");\n  }\n\n  // Parse value\n  var value = method.value = this.parseMethod(isGenerator, isAsync, allowsDirectSuper);\n\n  // Check value\n  if (method.kind === \"get\" && value.params.length !== 0)\n    { this.raiseRecoverable(value.start, \"getter should have no params\"); }\n  if (method.kind === \"set\" && value.params.length !== 1)\n    { this.raiseRecoverable(value.start, \"setter should have exactly one param\"); }\n  if (method.kind === \"set\" && value.params[0].type === \"RestElement\")\n    { this.raiseRecoverable(value.params[0].start, \"Setter cannot use rest params\"); }\n\n  return this.finishNode(method, \"MethodDefinition\")\n};\n\npp$8.parseClassField = function(field) {\n  if (checkKeyName(field, \"constructor\")) {\n    this.raise(field.key.start, \"Classes can't have a field named 'constructor'\");\n  } else if (field.static && checkKeyName(field, \"prototype\")) {\n    this.raise(field.key.start, \"Classes can't have a static field named 'prototype'\");\n  }\n\n  if (this.eat(types$1.eq)) {\n    // To raise SyntaxError if 'arguments' exists in the initializer.\n    var scope = this.currentThisScope();\n    var inClassFieldInit = scope.inClassFieldInit;\n    scope.inClassFieldInit = true;\n    field.value = this.parseMaybeAssign();\n    scope.inClassFieldInit = inClassFieldInit;\n  } else {\n    field.value = null;\n  }\n  this.semicolon();\n\n  return this.finishNode(field, \"PropertyDefinition\")\n};\n\npp$8.parseClassStaticBlock = function(node) {\n  node.body = [];\n\n  var oldLabels = this.labels;\n  this.labels = [];\n  this.enterScope(SCOPE_CLASS_STATIC_BLOCK | SCOPE_SUPER);\n  while (this.type !== types$1.braceR) {\n    var stmt = this.parseStatement(null);\n    node.body.push(stmt);\n  }\n  this.next();\n  this.exitScope();\n  this.labels = oldLabels;\n\n  return this.finishNode(node, \"StaticBlock\")\n};\n\npp$8.parseClassId = function(node, isStatement) {\n  if (this.type === types$1.name) {\n    node.id = this.parseIdent();\n    if (isStatement)\n      { this.checkLValSimple(node.id, BIND_LEXICAL, false); }\n  } else {\n    if (isStatement === true)\n      { this.unexpected(); }\n    node.id = null;\n  }\n};\n\npp$8.parseClassSuper = function(node) {\n  node.superClass = this.eat(types$1._extends) ? this.parseExprSubscripts(false) : null;\n};\n\npp$8.enterClassBody = function() {\n  var element = {declared: Object.create(null), used: []};\n  this.privateNameStack.push(element);\n  return element.declared\n};\n\npp$8.exitClassBody = function() {\n  var ref = this.privateNameStack.pop();\n  var declared = ref.declared;\n  var used = ref.used;\n  var len = this.privateNameStack.length;\n  var parent = len === 0 ? null : this.privateNameStack[len - 1];\n  for (var i = 0; i < used.length; ++i) {\n    var id = used[i];\n    if (!hasOwn(declared, id.name)) {\n      if (parent) {\n        parent.used.push(id);\n      } else {\n        this.raiseRecoverable(id.start, (\"Private field '#\" + (id.name) + \"' must be declared in an enclosing class\"));\n      }\n    }\n  }\n};\n\nfunction isPrivateNameConflicted(privateNameMap, element) {\n  var name = element.key.name;\n  var curr = privateNameMap[name];\n\n  var next = \"true\";\n  if (element.type === \"MethodDefinition\" && (element.kind === \"get\" || element.kind === \"set\")) {\n    next = (element.static ? \"s\" : \"i\") + element.kind;\n  }\n\n  // `class { get #a(){}; static set #a(_){} }` is also conflict.\n  if (\n    curr === \"iget\" && next === \"iset\" ||\n    curr === \"iset\" && next === \"iget\" ||\n    curr === \"sget\" && next === \"sset\" ||\n    curr === \"sset\" && next === \"sget\"\n  ) {\n    privateNameMap[name] = \"true\";\n    return false\n  } else if (!curr) {\n    privateNameMap[name] = next;\n    return false\n  } else {\n    return true\n  }\n}\n\nfunction checkKeyName(node, name) {\n  var computed = node.computed;\n  var key = node.key;\n  return !computed && (\n    key.type === \"Identifier\" && key.name === name ||\n    key.type === \"Literal\" && key.value === name\n  )\n}\n\n// Parses module export declaration.\n\npp$8.parseExport = function(node, exports) {\n  this.next();\n  // export * from '...'\n  if (this.eat(types$1.star)) {\n    if (this.options.ecmaVersion >= 11) {\n      if (this.eatContextual(\"as\")) {\n        node.exported = this.parseModuleExportName();\n        this.checkExport(exports, node.exported, this.lastTokStart);\n      } else {\n        node.exported = null;\n      }\n    }\n    this.expectContextual(\"from\");\n    if (this.type !== types$1.string) { this.unexpected(); }\n    node.source = this.parseExprAtom();\n    this.semicolon();\n    return this.finishNode(node, \"ExportAllDeclaration\")\n  }\n  if (this.eat(types$1._default)) { // export default ...\n    this.checkExport(exports, \"default\", this.lastTokStart);\n    var isAsync;\n    if (this.type === types$1._function || (isAsync = this.isAsyncFunction())) {\n      var fNode = this.startNode();\n      this.next();\n      if (isAsync) { this.next(); }\n      node.declaration = this.parseFunction(fNode, FUNC_STATEMENT | FUNC_NULLABLE_ID, false, isAsync);\n    } else if (this.type === types$1._class) {\n      var cNode = this.startNode();\n      node.declaration = this.parseClass(cNode, \"nullableID\");\n    } else {\n      node.declaration = this.parseMaybeAssign();\n      this.semicolon();\n    }\n    return this.finishNode(node, \"ExportDefaultDeclaration\")\n  }\n  // export var|const|let|function|class ...\n  if (this.shouldParseExportStatement()) {\n    node.declaration = this.parseStatement(null);\n    if (node.declaration.type === \"VariableDeclaration\")\n      { this.checkVariableExport(exports, node.declaration.declarations); }\n    else\n      { this.checkExport(exports, node.declaration.id, node.declaration.id.start); }\n    node.specifiers = [];\n    node.source = null;\n  } else { // export { x, y as z } [from '...']\n    node.declaration = null;\n    node.specifiers = this.parseExportSpecifiers(exports);\n    if (this.eatContextual(\"from\")) {\n      if (this.type !== types$1.string) { this.unexpected(); }\n      node.source = this.parseExprAtom();\n    } else {\n      for (var i = 0, list = node.specifiers; i < list.length; i += 1) {\n        // check for keywords used as local names\n        var spec = list[i];\n\n        this.checkUnreserved(spec.local);\n        // check if export is defined\n        this.checkLocalExport(spec.local);\n\n        if (spec.local.type === \"Literal\") {\n          this.raise(spec.local.start, \"A string literal cannot be used as an exported binding without `from`.\");\n        }\n      }\n\n      node.source = null;\n    }\n    this.semicolon();\n  }\n  return this.finishNode(node, \"ExportNamedDeclaration\")\n};\n\npp$8.checkExport = function(exports, name, pos) {\n  if (!exports) { return }\n  if (typeof name !== \"string\")\n    { name = name.type === \"Identifier\" ? name.name : name.value; }\n  if (hasOwn(exports, name))\n    { this.raiseRecoverable(pos, \"Duplicate export '\" + name + \"'\"); }\n  exports[name] = true;\n};\n\npp$8.checkPatternExport = function(exports, pat) {\n  var type = pat.type;\n  if (type === \"Identifier\")\n    { this.checkExport(exports, pat, pat.start); }\n  else if (type === \"ObjectPattern\")\n    { for (var i = 0, list = pat.properties; i < list.length; i += 1)\n      {\n        var prop = list[i];\n\n        this.checkPatternExport(exports, prop);\n      } }\n  else if (type === \"ArrayPattern\")\n    { for (var i$1 = 0, list$1 = pat.elements; i$1 < list$1.length; i$1 += 1) {\n      var elt = list$1[i$1];\n\n        if (elt) { this.checkPatternExport(exports, elt); }\n    } }\n  else if (type === \"Property\")\n    { this.checkPatternExport(exports, pat.value); }\n  else if (type === \"AssignmentPattern\")\n    { this.checkPatternExport(exports, pat.left); }\n  else if (type === \"RestElement\")\n    { this.checkPatternExport(exports, pat.argument); }\n  else if (type === \"ParenthesizedExpression\")\n    { this.checkPatternExport(exports, pat.expression); }\n};\n\npp$8.checkVariableExport = function(exports, decls) {\n  if (!exports) { return }\n  for (var i = 0, list = decls; i < list.length; i += 1)\n    {\n    var decl = list[i];\n\n    this.checkPatternExport(exports, decl.id);\n  }\n};\n\npp$8.shouldParseExportStatement = function() {\n  return this.type.keyword === \"var\" ||\n    this.type.keyword === \"const\" ||\n    this.type.keyword === \"class\" ||\n    this.type.keyword === \"function\" ||\n    this.isLet() ||\n    this.isAsyncFunction()\n};\n\n// Parses a comma-separated list of module exports.\n\npp$8.parseExportSpecifiers = function(exports) {\n  var nodes = [], first = true;\n  // export { x, y as z } [from '...']\n  this.expect(types$1.braceL);\n  while (!this.eat(types$1.braceR)) {\n    if (!first) {\n      this.expect(types$1.comma);\n      if (this.afterTrailingComma(types$1.braceR)) { break }\n    } else { first = false; }\n\n    var node = this.startNode();\n    node.local = this.parseModuleExportName();\n    node.exported = this.eatContextual(\"as\") ? this.parseModuleExportName() : node.local;\n    this.checkExport(\n      exports,\n      node.exported,\n      node.exported.start\n    );\n    nodes.push(this.finishNode(node, \"ExportSpecifier\"));\n  }\n  return nodes\n};\n\n// Parses import declaration.\n\npp$8.parseImport = function(node) {\n  this.next();\n  // import '...'\n  if (this.type === types$1.string) {\n    node.specifiers = empty$1;\n    node.source = this.parseExprAtom();\n  } else {\n    node.specifiers = this.parseImportSpecifiers();\n    this.expectContextual(\"from\");\n    node.source = this.type === types$1.string ? this.parseExprAtom() : this.unexpected();\n  }\n  this.semicolon();\n  return this.finishNode(node, \"ImportDeclaration\")\n};\n\n// Parses a comma-separated list of module imports.\n\npp$8.parseImportSpecifiers = function() {\n  var nodes = [], first = true;\n  if (this.type === types$1.name) {\n    // import defaultObj, { x, y as z } from '...'\n    var node = this.startNode();\n    node.local = this.parseIdent();\n    this.checkLValSimple(node.local, BIND_LEXICAL);\n    nodes.push(this.finishNode(node, \"ImportDefaultSpecifier\"));\n    if (!this.eat(types$1.comma)) { return nodes }\n  }\n  if (this.type === types$1.star) {\n    var node$1 = this.startNode();\n    this.next();\n    this.expectContextual(\"as\");\n    node$1.local = this.parseIdent();\n    this.checkLValSimple(node$1.local, BIND_LEXICAL);\n    nodes.push(this.finishNode(node$1, \"ImportNamespaceSpecifier\"));\n    return nodes\n  }\n  this.expect(types$1.braceL);\n  while (!this.eat(types$1.braceR)) {\n    if (!first) {\n      this.expect(types$1.comma);\n      if (this.afterTrailingComma(types$1.braceR)) { break }\n    } else { first = false; }\n\n    var node$2 = this.startNode();\n    node$2.imported = this.parseModuleExportName();\n    if (this.eatContextual(\"as\")) {\n      node$2.local = this.parseIdent();\n    } else {\n      this.checkUnreserved(node$2.imported);\n      node$2.local = node$2.imported;\n    }\n    this.checkLValSimple(node$2.local, BIND_LEXICAL);\n    nodes.push(this.finishNode(node$2, \"ImportSpecifier\"));\n  }\n  return nodes\n};\n\npp$8.parseModuleExportName = function() {\n  if (this.options.ecmaVersion >= 13 && this.type === types$1.string) {\n    var stringLiteral = this.parseLiteral(this.value);\n    if (loneSurrogate.test(stringLiteral.value)) {\n      this.raise(stringLiteral.start, \"An export name cannot include a lone surrogate.\");\n    }\n    return stringLiteral\n  }\n  return this.parseIdent(true)\n};\n\n// Set `ExpressionStatement#directive` property for directive prologues.\npp$8.adaptDirectivePrologue = function(statements) {\n  for (var i = 0; i < statements.length && this.isDirectiveCandidate(statements[i]); ++i) {\n    statements[i].directive = statements[i].expression.raw.slice(1, -1);\n  }\n};\npp$8.isDirectiveCandidate = function(statement) {\n  return (\n    this.options.ecmaVersion >= 5 &&\n    statement.type === \"ExpressionStatement\" &&\n    statement.expression.type === \"Literal\" &&\n    typeof statement.expression.value === \"string\" &&\n    // Reject parenthesized strings.\n    (this.input[statement.start] === \"\\\"\" || this.input[statement.start] === \"'\")\n  )\n};\n\nvar pp$7 = Parser.prototype;\n\n// Convert existing expression atom to assignable pattern\n// if possible.\n\npp$7.toAssignable = function(node, isBinding, refDestructuringErrors) {\n  if (this.options.ecmaVersion >= 6 && node) {\n    switch (node.type) {\n    case \"Identifier\":\n      if (this.inAsync && node.name === \"await\")\n        { this.raise(node.start, \"Cannot use 'await' as identifier inside an async function\"); }\n      break\n\n    case \"ObjectPattern\":\n    case \"ArrayPattern\":\n    case \"AssignmentPattern\":\n    case \"RestElement\":\n      break\n\n    case \"ObjectExpression\":\n      node.type = \"ObjectPattern\";\n      if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }\n      for (var i = 0, list = node.properties; i < list.length; i += 1) {\n        var prop = list[i];\n\n      this.toAssignable(prop, isBinding);\n        // Early error:\n        //   AssignmentRestProperty[Yield, Await] :\n        //     `...` DestructuringAssignmentTarget[Yield, Await]\n        //\n        //   It is a Syntax Error if |DestructuringAssignmentTarget| is an |ArrayLiteral| or an |ObjectLiteral|.\n        if (\n          prop.type === \"RestElement\" &&\n          (prop.argument.type === \"ArrayPattern\" || prop.argument.type === \"ObjectPattern\")\n        ) {\n          this.raise(prop.argument.start, \"Unexpected token\");\n        }\n      }\n      break\n\n    case \"Property\":\n      // AssignmentProperty has type === \"Property\"\n      if (node.kind !== \"init\") { this.raise(node.key.start, \"Object pattern can't contain getter or setter\"); }\n      this.toAssignable(node.value, isBinding);\n      break\n\n    case \"ArrayExpression\":\n      node.type = \"ArrayPattern\";\n      if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }\n      this.toAssignableList(node.elements, isBinding);\n      break\n\n    case \"SpreadElement\":\n      node.type = \"RestElement\";\n      this.toAssignable(node.argument, isBinding);\n      if (node.argument.type === \"AssignmentPattern\")\n        { this.raise(node.argument.start, \"Rest elements cannot have a default value\"); }\n      break\n\n    case \"AssignmentExpression\":\n      if (node.operator !== \"=\") { this.raise(node.left.end, \"Only '=' operator can be used for specifying default value.\"); }\n      node.type = \"AssignmentPattern\";\n      delete node.operator;\n      this.toAssignable(node.left, isBinding);\n      break\n\n    case \"ParenthesizedExpression\":\n      this.toAssignable(node.expression, isBinding, refDestructuringErrors);\n      break\n\n    case \"ChainExpression\":\n      this.raiseRecoverable(node.start, \"Optional chaining cannot appear in left-hand side\");\n      break\n\n    case \"MemberExpression\":\n      if (!isBinding) { break }\n\n    default:\n      this.raise(node.start, \"Assigning to rvalue\");\n    }\n  } else if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }\n  return node\n};\n\n// Convert list of expression atoms to binding list.\n\npp$7.toAssignableList = function(exprList, isBinding) {\n  var end = exprList.length;\n  for (var i = 0; i < end; i++) {\n    var elt = exprList[i];\n    if (elt) { this.toAssignable(elt, isBinding); }\n  }\n  if (end) {\n    var last = exprList[end - 1];\n    if (this.options.ecmaVersion === 6 && isBinding && last && last.type === \"RestElement\" && last.argument.type !== \"Identifier\")\n      { this.unexpected(last.argument.start); }\n  }\n  return exprList\n};\n\n// Parses spread element.\n\npp$7.parseSpread = function(refDestructuringErrors) {\n  var node = this.startNode();\n  this.next();\n  node.argument = this.parseMaybeAssign(false, refDestructuringErrors);\n  return this.finishNode(node, \"SpreadElement\")\n};\n\npp$7.parseRestBinding = function() {\n  var node = this.startNode();\n  this.next();\n\n  // RestElement inside of a function parameter must be an identifier\n  if (this.options.ecmaVersion === 6 && this.type !== types$1.name)\n    { this.unexpected(); }\n\n  node.argument = this.parseBindingAtom();\n\n  return this.finishNode(node, \"RestElement\")\n};\n\n// Parses lvalue (assignable) atom.\n\npp$7.parseBindingAtom = function() {\n  if (this.options.ecmaVersion >= 6) {\n    switch (this.type) {\n    case types$1.bracketL:\n      var node = this.startNode();\n      this.next();\n      node.elements = this.parseBindingList(types$1.bracketR, true, true);\n      return this.finishNode(node, \"ArrayPattern\")\n\n    case types$1.braceL:\n      return this.parseObj(true)\n    }\n  }\n  return this.parseIdent()\n};\n\npp$7.parseBindingList = function(close, allowEmpty, allowTrailingComma) {\n  var elts = [], first = true;\n  while (!this.eat(close)) {\n    if (first) { first = false; }\n    else { this.expect(types$1.comma); }\n    if (allowEmpty && this.type === types$1.comma) {\n      elts.push(null);\n    } else if (allowTrailingComma && this.afterTrailingComma(close)) {\n      break\n    } else if (this.type === types$1.ellipsis) {\n      var rest = this.parseRestBinding();\n      this.parseBindingListItem(rest);\n      elts.push(rest);\n      if (this.type === types$1.comma) { this.raise(this.start, \"Comma is not permitted after the rest element\"); }\n      this.expect(close);\n      break\n    } else {\n      var elem = this.parseMaybeDefault(this.start, this.startLoc);\n      this.parseBindingListItem(elem);\n      elts.push(elem);\n    }\n  }\n  return elts\n};\n\npp$7.parseBindingListItem = function(param) {\n  return param\n};\n\n// Parses assignment pattern around given atom if possible.\n\npp$7.parseMaybeDefault = function(startPos, startLoc, left) {\n  left = left || this.parseBindingAtom();\n  if (this.options.ecmaVersion < 6 || !this.eat(types$1.eq)) { return left }\n  var node = this.startNodeAt(startPos, startLoc);\n  node.left = left;\n  node.right = this.parseMaybeAssign();\n  return this.finishNode(node, \"AssignmentPattern\")\n};\n\n// The following three functions all verify that a node is an lvalue —\n// something that can be bound, or assigned to. In order to do so, they perform\n// a variety of checks:\n//\n// - Check that none of the bound/assigned-to identifiers are reserved words.\n// - Record name declarations for bindings in the appropriate scope.\n// - Check duplicate argument names, if checkClashes is set.\n//\n// If a complex binding pattern is encountered (e.g., object and array\n// destructuring), the entire pattern is recursively checked.\n//\n// There are three versions of checkLVal*() appropriate for different\n// circumstances:\n//\n// - checkLValSimple() shall be used if the syntactic construct supports\n//   nothing other than identifiers and member expressions. Parenthesized\n//   expressions are also correctly handled. This is generally appropriate for\n//   constructs for which the spec says\n//\n//   > It is a Syntax Error if AssignmentTargetType of [the production] is not\n//   > simple.\n//\n//   It is also appropriate for checking if an identifier is valid and not\n//   defined elsewhere, like import declarations or function/class identifiers.\n//\n//   Examples where this is used include:\n//     a += …;\n//     import a from '…';\n//   where a is the node to be checked.\n//\n// - checkLValPattern() shall be used if the syntactic construct supports\n//   anything checkLValSimple() supports, as well as object and array\n//   destructuring patterns. This is generally appropriate for constructs for\n//   which the spec says\n//\n//   > It is a Syntax Error if [the production] is neither an ObjectLiteral nor\n//   > an ArrayLiteral and AssignmentTargetType of [the production] is not\n//   > simple.\n//\n//   Examples where this is used include:\n//     (a = …);\n//     const a = …;\n//     try { … } catch (a) { … }\n//   where a is the node to be checked.\n//\n// - checkLValInnerPattern() shall be used if the syntactic construct supports\n//   anything checkLValPattern() supports, as well as default assignment\n//   patterns, rest elements, and other constructs that may appear within an\n//   object or array destructuring pattern.\n//\n//   As a special case, function parameters also use checkLValInnerPattern(),\n//   as they also support defaults and rest constructs.\n//\n// These functions deliberately support both assignment and binding constructs,\n// as the logic for both is exceedingly similar. If the node is the target of\n// an assignment, then bindingType should be set to BIND_NONE. Otherwise, it\n// should be set to the appropriate BIND_* constant, like BIND_VAR or\n// BIND_LEXICAL.\n//\n// If the function is called with a non-BIND_NONE bindingType, then\n// additionally a checkClashes object may be specified to allow checking for\n// duplicate argument names. checkClashes is ignored if the provided construct\n// is an assignment (i.e., bindingType is BIND_NONE).\n\npp$7.checkLValSimple = function(expr, bindingType, checkClashes) {\n  if ( bindingType === void 0 ) bindingType = BIND_NONE;\n\n  var isBind = bindingType !== BIND_NONE;\n\n  switch (expr.type) {\n  case \"Identifier\":\n    if (this.strict && this.reservedWordsStrictBind.test(expr.name))\n      { this.raiseRecoverable(expr.start, (isBind ? \"Binding \" : \"Assigning to \") + expr.name + \" in strict mode\"); }\n    if (isBind) {\n      if (bindingType === BIND_LEXICAL && expr.name === \"let\")\n        { this.raiseRecoverable(expr.start, \"let is disallowed as a lexically bound name\"); }\n      if (checkClashes) {\n        if (hasOwn(checkClashes, expr.name))\n          { this.raiseRecoverable(expr.start, \"Argument name clash\"); }\n        checkClashes[expr.name] = true;\n      }\n      if (bindingType !== BIND_OUTSIDE) { this.declareName(expr.name, bindingType, expr.start); }\n    }\n    break\n\n  case \"ChainExpression\":\n    this.raiseRecoverable(expr.start, \"Optional chaining cannot appear in left-hand side\");\n    break\n\n  case \"MemberExpression\":\n    if (isBind) { this.raiseRecoverable(expr.start, \"Binding member expression\"); }\n    break\n\n  case \"ParenthesizedExpression\":\n    if (isBind) { this.raiseRecoverable(expr.start, \"Binding parenthesized expression\"); }\n    return this.checkLValSimple(expr.expression, bindingType, checkClashes)\n\n  default:\n    this.raise(expr.start, (isBind ? \"Binding\" : \"Assigning to\") + \" rvalue\");\n  }\n};\n\npp$7.checkLValPattern = function(expr, bindingType, checkClashes) {\n  if ( bindingType === void 0 ) bindingType = BIND_NONE;\n\n  switch (expr.type) {\n  case \"ObjectPattern\":\n    for (var i = 0, list = expr.properties; i < list.length; i += 1) {\n      var prop = list[i];\n\n    this.checkLValInnerPattern(prop, bindingType, checkClashes);\n    }\n    break\n\n  case \"ArrayPattern\":\n    for (var i$1 = 0, list$1 = expr.elements; i$1 < list$1.length; i$1 += 1) {\n      var elem = list$1[i$1];\n\n    if (elem) { this.checkLValInnerPattern(elem, bindingType, checkClashes); }\n    }\n    break\n\n  default:\n    this.checkLValSimple(expr, bindingType, checkClashes);\n  }\n};\n\npp$7.checkLValInnerPattern = function(expr, bindingType, checkClashes) {\n  if ( bindingType === void 0 ) bindingType = BIND_NONE;\n\n  switch (expr.type) {\n  case \"Property\":\n    // AssignmentProperty has type === \"Property\"\n    this.checkLValInnerPattern(expr.value, bindingType, checkClashes);\n    break\n\n  case \"AssignmentPattern\":\n    this.checkLValPattern(expr.left, bindingType, checkClashes);\n    break\n\n  case \"RestElement\":\n    this.checkLValPattern(expr.argument, bindingType, checkClashes);\n    break\n\n  default:\n    this.checkLValPattern(expr, bindingType, checkClashes);\n  }\n};\n\n// The algorithm used to determine whether a regexp can appear at a\n\nvar TokContext = function TokContext(token, isExpr, preserveSpace, override, generator) {\n  this.token = token;\n  this.isExpr = !!isExpr;\n  this.preserveSpace = !!preserveSpace;\n  this.override = override;\n  this.generator = !!generator;\n};\n\nvar types = {\n  b_stat: new TokContext(\"{\", false),\n  b_expr: new TokContext(\"{\", true),\n  b_tmpl: new TokContext(\"${\", false),\n  p_stat: new TokContext(\"(\", false),\n  p_expr: new TokContext(\"(\", true),\n  q_tmpl: new TokContext(\"`\", true, true, function (p) { return p.tryReadTemplateToken(); }),\n  f_stat: new TokContext(\"function\", false),\n  f_expr: new TokContext(\"function\", true),\n  f_expr_gen: new TokContext(\"function\", true, false, null, true),\n  f_gen: new TokContext(\"function\", false, false, null, true)\n};\n\nvar pp$6 = Parser.prototype;\n\npp$6.initialContext = function() {\n  return [types.b_stat]\n};\n\npp$6.curContext = function() {\n  return this.context[this.context.length - 1]\n};\n\npp$6.braceIsBlock = function(prevType) {\n  var parent = this.curContext();\n  if (parent === types.f_expr || parent === types.f_stat)\n    { return true }\n  if (prevType === types$1.colon && (parent === types.b_stat || parent === types.b_expr))\n    { return !parent.isExpr }\n\n  // The check for `tt.name && exprAllowed` detects whether we are\n  // after a `yield` or `of` construct. See the `updateContext` for\n  // `tt.name`.\n  if (prevType === types$1._return || prevType === types$1.name && this.exprAllowed)\n    { return lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) }\n  if (prevType === types$1._else || prevType === types$1.semi || prevType === types$1.eof || prevType === types$1.parenR || prevType === types$1.arrow)\n    { return true }\n  if (prevType === types$1.braceL)\n    { return parent === types.b_stat }\n  if (prevType === types$1._var || prevType === types$1._const || prevType === types$1.name)\n    { return false }\n  return !this.exprAllowed\n};\n\npp$6.inGeneratorContext = function() {\n  for (var i = this.context.length - 1; i >= 1; i--) {\n    var context = this.context[i];\n    if (context.token === \"function\")\n      { return context.generator }\n  }\n  return false\n};\n\npp$6.updateContext = function(prevType) {\n  var update, type = this.type;\n  if (type.keyword && prevType === types$1.dot)\n    { this.exprAllowed = false; }\n  else if (update = type.updateContext)\n    { update.call(this, prevType); }\n  else\n    { this.exprAllowed = type.beforeExpr; }\n};\n\n// Used to handle egde cases when token context could not be inferred correctly during tokenization phase\n\npp$6.overrideContext = function(tokenCtx) {\n  if (this.curContext() !== tokenCtx) {\n    this.context[this.context.length - 1] = tokenCtx;\n  }\n};\n\n// Token-specific context update code\n\ntypes$1.parenR.updateContext = types$1.braceR.updateContext = function() {\n  if (this.context.length === 1) {\n    this.exprAllowed = true;\n    return\n  }\n  var out = this.context.pop();\n  if (out === types.b_stat && this.curContext().token === \"function\") {\n    out = this.context.pop();\n  }\n  this.exprAllowed = !out.isExpr;\n};\n\ntypes$1.braceL.updateContext = function(prevType) {\n  this.context.push(this.braceIsBlock(prevType) ? types.b_stat : types.b_expr);\n  this.exprAllowed = true;\n};\n\ntypes$1.dollarBraceL.updateContext = function() {\n  this.context.push(types.b_tmpl);\n  this.exprAllowed = true;\n};\n\ntypes$1.parenL.updateContext = function(prevType) {\n  var statementParens = prevType === types$1._if || prevType === types$1._for || prevType === types$1._with || prevType === types$1._while;\n  this.context.push(statementParens ? types.p_stat : types.p_expr);\n  this.exprAllowed = true;\n};\n\ntypes$1.incDec.updateContext = function() {\n  // tokExprAllowed stays unchanged\n};\n\ntypes$1._function.updateContext = types$1._class.updateContext = function(prevType) {\n  if (prevType.beforeExpr && prevType !== types$1._else &&\n      !(prevType === types$1.semi && this.curContext() !== types.p_stat) &&\n      !(prevType === types$1._return && lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) &&\n      !((prevType === types$1.colon || prevType === types$1.braceL) && this.curContext() === types.b_stat))\n    { this.context.push(types.f_expr); }\n  else\n    { this.context.push(types.f_stat); }\n  this.exprAllowed = false;\n};\n\ntypes$1.backQuote.updateContext = function() {\n  if (this.curContext() === types.q_tmpl)\n    { this.context.pop(); }\n  else\n    { this.context.push(types.q_tmpl); }\n  this.exprAllowed = false;\n};\n\ntypes$1.star.updateContext = function(prevType) {\n  if (prevType === types$1._function) {\n    var index = this.context.length - 1;\n    if (this.context[index] === types.f_expr)\n      { this.context[index] = types.f_expr_gen; }\n    else\n      { this.context[index] = types.f_gen; }\n  }\n  this.exprAllowed = true;\n};\n\ntypes$1.name.updateContext = function(prevType) {\n  var allowed = false;\n  if (this.options.ecmaVersion >= 6 && prevType !== types$1.dot) {\n    if (this.value === \"of\" && !this.exprAllowed ||\n        this.value === \"yield\" && this.inGeneratorContext())\n      { allowed = true; }\n  }\n  this.exprAllowed = allowed;\n};\n\n// A recursive descent parser operates by defining functions for all\n\nvar pp$5 = Parser.prototype;\n\n// Check if property name clashes with already added.\n// Object/class getters and setters are not allowed to clash —\n// either with each other or with an init property — and in\n// strict mode, init properties are also not allowed to be repeated.\n\npp$5.checkPropClash = function(prop, propHash, refDestructuringErrors) {\n  if (this.options.ecmaVersion >= 9 && prop.type === \"SpreadElement\")\n    { return }\n  if (this.options.ecmaVersion >= 6 && (prop.computed || prop.method || prop.shorthand))\n    { return }\n  var key = prop.key;\n  var name;\n  switch (key.type) {\n  case \"Identifier\": name = key.name; break\n  case \"Literal\": name = String(key.value); break\n  default: return\n  }\n  var kind = prop.kind;\n  if (this.options.ecmaVersion >= 6) {\n    if (name === \"__proto__\" && kind === \"init\") {\n      if (propHash.proto) {\n        if (refDestructuringErrors) {\n          if (refDestructuringErrors.doubleProto < 0) {\n            refDestructuringErrors.doubleProto = key.start;\n          }\n        } else {\n          this.raiseRecoverable(key.start, \"Redefinition of __proto__ property\");\n        }\n      }\n      propHash.proto = true;\n    }\n    return\n  }\n  name = \"$\" + name;\n  var other = propHash[name];\n  if (other) {\n    var redefinition;\n    if (kind === \"init\") {\n      redefinition = this.strict && other.init || other.get || other.set;\n    } else {\n      redefinition = other.init || other[kind];\n    }\n    if (redefinition)\n      { this.raiseRecoverable(key.start, \"Redefinition of property\"); }\n  } else {\n    other = propHash[name] = {\n      init: false,\n      get: false,\n      set: false\n    };\n  }\n  other[kind] = true;\n};\n\n// ### Expression parsing\n\n// These nest, from the most general expression type at the top to\n// 'atomic', nondivisible expression types at the bottom. Most of\n// the functions will simply let the function(s) below them parse,\n// and, *if* the syntactic construct they handle is present, wrap\n// the AST node that the inner parser gave them in another node.\n\n// Parse a full expression. The optional arguments are used to\n// forbid the `in` operator (in for loops initalization expressions)\n// and provide reference for storing '=' operator inside shorthand\n// property assignment in contexts where both object expression\n// and object pattern might appear (so it's possible to raise\n// delayed syntax error at correct position).\n\npp$5.parseExpression = function(forInit, refDestructuringErrors) {\n  var startPos = this.start, startLoc = this.startLoc;\n  var expr = this.parseMaybeAssign(forInit, refDestructuringErrors);\n  if (this.type === types$1.comma) {\n    var node = this.startNodeAt(startPos, startLoc);\n    node.expressions = [expr];\n    while (this.eat(types$1.comma)) { node.expressions.push(this.parseMaybeAssign(forInit, refDestructuringErrors)); }\n    return this.finishNode(node, \"SequenceExpression\")\n  }\n  return expr\n};\n\n// Parse an assignment expression. This includes applications of\n// operators like `+=`.\n\npp$5.parseMaybeAssign = function(forInit, refDestructuringErrors, afterLeftParse) {\n  if (this.isContextual(\"yield\")) {\n    if (this.inGenerator) { return this.parseYield(forInit) }\n    // The tokenizer will assume an expression is allowed after\n    // `yield`, but this isn't that kind of yield\n    else { this.exprAllowed = false; }\n  }\n\n  var ownDestructuringErrors = false, oldParenAssign = -1, oldTrailingComma = -1, oldDoubleProto = -1;\n  if (refDestructuringErrors) {\n    oldParenAssign = refDestructuringErrors.parenthesizedAssign;\n    oldTrailingComma = refDestructuringErrors.trailingComma;\n    oldDoubleProto = refDestructuringErrors.doubleProto;\n    refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = -1;\n  } else {\n    refDestructuringErrors = new DestructuringErrors;\n    ownDestructuringErrors = true;\n  }\n\n  var startPos = this.start, startLoc = this.startLoc;\n  if (this.type === types$1.parenL || this.type === types$1.name) {\n    this.potentialArrowAt = this.start;\n    this.potentialArrowInForAwait = forInit === \"await\";\n  }\n  var left = this.parseMaybeConditional(forInit, refDestructuringErrors);\n  if (afterLeftParse) { left = afterLeftParse.call(this, left, startPos, startLoc); }\n  if (this.type.isAssign) {\n    var node = this.startNodeAt(startPos, startLoc);\n    node.operator = this.value;\n    if (this.type === types$1.eq)\n      { left = this.toAssignable(left, false, refDestructuringErrors); }\n    if (!ownDestructuringErrors) {\n      refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = refDestructuringErrors.doubleProto = -1;\n    }\n    if (refDestructuringErrors.shorthandAssign >= left.start)\n      { refDestructuringErrors.shorthandAssign = -1; } // reset because shorthand default was used correctly\n    if (this.type === types$1.eq)\n      { this.checkLValPattern(left); }\n    else\n      { this.checkLValSimple(left); }\n    node.left = left;\n    this.next();\n    node.right = this.parseMaybeAssign(forInit);\n    if (oldDoubleProto > -1) { refDestructuringErrors.doubleProto = oldDoubleProto; }\n    return this.finishNode(node, \"AssignmentExpression\")\n  } else {\n    if (ownDestructuringErrors) { this.checkExpressionErrors(refDestructuringErrors, true); }\n  }\n  if (oldParenAssign > -1) { refDestructuringErrors.parenthesizedAssign = oldParenAssign; }\n  if (oldTrailingComma > -1) { refDestructuringErrors.trailingComma = oldTrailingComma; }\n  return left\n};\n\n// Parse a ternary conditional (`?:`) operator.\n\npp$5.parseMaybeConditional = function(forInit, refDestructuringErrors) {\n  var startPos = this.start, startLoc = this.startLoc;\n  var expr = this.parseExprOps(forInit, refDestructuringErrors);\n  if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }\n  if (this.eat(types$1.question)) {\n    var node = this.startNodeAt(startPos, startLoc);\n    node.test = expr;\n    node.consequent = this.parseMaybeAssign();\n    this.expect(types$1.colon);\n    node.alternate = this.parseMaybeAssign(forInit);\n    return this.finishNode(node, \"ConditionalExpression\")\n  }\n  return expr\n};\n\n// Start the precedence parser.\n\npp$5.parseExprOps = function(forInit, refDestructuringErrors) {\n  var startPos = this.start, startLoc = this.startLoc;\n  var expr = this.parseMaybeUnary(refDestructuringErrors, false, false, forInit);\n  if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }\n  return expr.start === startPos && expr.type === \"ArrowFunctionExpression\" ? expr : this.parseExprOp(expr, startPos, startLoc, -1, forInit)\n};\n\n// Parse binary operators with the operator precedence parsing\n// algorithm. `left` is the left-hand side of the operator.\n// `minPrec` provides context that allows the function to stop and\n// defer further parser to one of its callers when it encounters an\n// operator that has a lower precedence than the set it is parsing.\n\npp$5.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, forInit) {\n  var prec = this.type.binop;\n  if (prec != null && (!forInit || this.type !== types$1._in)) {\n    if (prec > minPrec) {\n      var logical = this.type === types$1.logicalOR || this.type === types$1.logicalAND;\n      var coalesce = this.type === types$1.coalesce;\n      if (coalesce) {\n        // Handle the precedence of `tt.coalesce` as equal to the range of logical expressions.\n        // In other words, `node.right` shouldn't contain logical expressions in order to check the mixed error.\n        prec = types$1.logicalAND.binop;\n      }\n      var op = this.value;\n      this.next();\n      var startPos = this.start, startLoc = this.startLoc;\n      var right = this.parseExprOp(this.parseMaybeUnary(null, false, false, forInit), startPos, startLoc, prec, forInit);\n      var node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical || coalesce);\n      if ((logical && this.type === types$1.coalesce) || (coalesce && (this.type === types$1.logicalOR || this.type === types$1.logicalAND))) {\n        this.raiseRecoverable(this.start, \"Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses\");\n      }\n      return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, forInit)\n    }\n  }\n  return left\n};\n\npp$5.buildBinary = function(startPos, startLoc, left, right, op, logical) {\n  if (right.type === \"PrivateIdentifier\") { this.raise(right.start, \"Private identifier can only be left side of binary expression\"); }\n  var node = this.startNodeAt(startPos, startLoc);\n  node.left = left;\n  node.operator = op;\n  node.right = right;\n  return this.finishNode(node, logical ? \"LogicalExpression\" : \"BinaryExpression\")\n};\n\n// Parse unary operators, both prefix and postfix.\n\npp$5.parseMaybeUnary = function(refDestructuringErrors, sawUnary, incDec, forInit) {\n  var startPos = this.start, startLoc = this.startLoc, expr;\n  if (this.isContextual(\"await\") && this.canAwait) {\n    expr = this.parseAwait(forInit);\n    sawUnary = true;\n  } else if (this.type.prefix) {\n    var node = this.startNode(), update = this.type === types$1.incDec;\n    node.operator = this.value;\n    node.prefix = true;\n    this.next();\n    node.argument = this.parseMaybeUnary(null, true, update, forInit);\n    this.checkExpressionErrors(refDestructuringErrors, true);\n    if (update) { this.checkLValSimple(node.argument); }\n    else if (this.strict && node.operator === \"delete\" &&\n             node.argument.type === \"Identifier\")\n      { this.raiseRecoverable(node.start, \"Deleting local variable in strict mode\"); }\n    else if (node.operator === \"delete\" && isPrivateFieldAccess(node.argument))\n      { this.raiseRecoverable(node.start, \"Private fields can not be deleted\"); }\n    else { sawUnary = true; }\n    expr = this.finishNode(node, update ? \"UpdateExpression\" : \"UnaryExpression\");\n  } else if (!sawUnary && this.type === types$1.privateId) {\n    if (forInit || this.privateNameStack.length === 0) { this.unexpected(); }\n    expr = this.parsePrivateIdent();\n    // only could be private fields in 'in', such as #x in obj\n    if (this.type !== types$1._in) { this.unexpected(); }\n  } else {\n    expr = this.parseExprSubscripts(refDestructuringErrors, forInit);\n    if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }\n    while (this.type.postfix && !this.canInsertSemicolon()) {\n      var node$1 = this.startNodeAt(startPos, startLoc);\n      node$1.operator = this.value;\n      node$1.prefix = false;\n      node$1.argument = expr;\n      this.checkLValSimple(expr);\n      this.next();\n      expr = this.finishNode(node$1, \"UpdateExpression\");\n    }\n  }\n\n  if (!incDec && this.eat(types$1.starstar)) {\n    if (sawUnary)\n      { this.unexpected(this.lastTokStart); }\n    else\n      { return this.buildBinary(startPos, startLoc, expr, this.parseMaybeUnary(null, false, false, forInit), \"**\", false) }\n  } else {\n    return expr\n  }\n};\n\nfunction isPrivateFieldAccess(node) {\n  return (\n    node.type === \"MemberExpression\" && node.property.type === \"PrivateIdentifier\" ||\n    node.type === \"ChainExpression\" && isPrivateFieldAccess(node.expression)\n  )\n}\n\n// Parse call, dot, and `[]`-subscript expressions.\n\npp$5.parseExprSubscripts = function(refDestructuringErrors, forInit) {\n  var startPos = this.start, startLoc = this.startLoc;\n  var expr = this.parseExprAtom(refDestructuringErrors, forInit);\n  if (expr.type === \"ArrowFunctionExpression\" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== \")\")\n    { return expr }\n  var result = this.parseSubscripts(expr, startPos, startLoc, false, forInit);\n  if (refDestructuringErrors && result.type === \"MemberExpression\") {\n    if (refDestructuringErrors.parenthesizedAssign >= result.start) { refDestructuringErrors.parenthesizedAssign = -1; }\n    if (refDestructuringErrors.parenthesizedBind >= result.start) { refDestructuringErrors.parenthesizedBind = -1; }\n    if (refDestructuringErrors.trailingComma >= result.start) { refDestructuringErrors.trailingComma = -1; }\n  }\n  return result\n};\n\npp$5.parseSubscripts = function(base, startPos, startLoc, noCalls, forInit) {\n  var maybeAsyncArrow = this.options.ecmaVersion >= 8 && base.type === \"Identifier\" && base.name === \"async\" &&\n      this.lastTokEnd === base.end && !this.canInsertSemicolon() && base.end - base.start === 5 &&\n      this.potentialArrowAt === base.start;\n  var optionalChained = false;\n\n  while (true) {\n    var element = this.parseSubscript(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained, forInit);\n\n    if (element.optional) { optionalChained = true; }\n    if (element === base || element.type === \"ArrowFunctionExpression\") {\n      if (optionalChained) {\n        var chainNode = this.startNodeAt(startPos, startLoc);\n        chainNode.expression = element;\n        element = this.finishNode(chainNode, \"ChainExpression\");\n      }\n      return element\n    }\n\n    base = element;\n  }\n};\n\npp$5.parseSubscript = function(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained, forInit) {\n  var optionalSupported = this.options.ecmaVersion >= 11;\n  var optional = optionalSupported && this.eat(types$1.questionDot);\n  if (noCalls && optional) { this.raise(this.lastTokStart, \"Optional chaining cannot appear in the callee of new expressions\"); }\n\n  var computed = this.eat(types$1.bracketL);\n  if (computed || (optional && this.type !== types$1.parenL && this.type !== types$1.backQuote) || this.eat(types$1.dot)) {\n    var node = this.startNodeAt(startPos, startLoc);\n    node.object = base;\n    if (computed) {\n      node.property = this.parseExpression();\n      this.expect(types$1.bracketR);\n    } else if (this.type === types$1.privateId && base.type !== \"Super\") {\n      node.property = this.parsePrivateIdent();\n    } else {\n      node.property = this.parseIdent(this.options.allowReserved !== \"never\");\n    }\n    node.computed = !!computed;\n    if (optionalSupported) {\n      node.optional = optional;\n    }\n    base = this.finishNode(node, \"MemberExpression\");\n  } else if (!noCalls && this.eat(types$1.parenL)) {\n    var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n    this.yieldPos = 0;\n    this.awaitPos = 0;\n    this.awaitIdentPos = 0;\n    var exprList = this.parseExprList(types$1.parenR, this.options.ecmaVersion >= 8, false, refDestructuringErrors);\n    if (maybeAsyncArrow && !optional && !this.canInsertSemicolon() && this.eat(types$1.arrow)) {\n      this.checkPatternErrors(refDestructuringErrors, false);\n      this.checkYieldAwaitInDefaultParams();\n      if (this.awaitIdentPos > 0)\n        { this.raise(this.awaitIdentPos, \"Cannot use 'await' as identifier inside an async function\"); }\n      this.yieldPos = oldYieldPos;\n      this.awaitPos = oldAwaitPos;\n      this.awaitIdentPos = oldAwaitIdentPos;\n      return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, true, forInit)\n    }\n    this.checkExpressionErrors(refDestructuringErrors, true);\n    this.yieldPos = oldYieldPos || this.yieldPos;\n    this.awaitPos = oldAwaitPos || this.awaitPos;\n    this.awaitIdentPos = oldAwaitIdentPos || this.awaitIdentPos;\n    var node$1 = this.startNodeAt(startPos, startLoc);\n    node$1.callee = base;\n    node$1.arguments = exprList;\n    if (optionalSupported) {\n      node$1.optional = optional;\n    }\n    base = this.finishNode(node$1, \"CallExpression\");\n  } else if (this.type === types$1.backQuote) {\n    if (optional || optionalChained) {\n      this.raise(this.start, \"Optional chaining cannot appear in the tag of tagged template expressions\");\n    }\n    var node$2 = this.startNodeAt(startPos, startLoc);\n    node$2.tag = base;\n    node$2.quasi = this.parseTemplate({isTagged: true});\n    base = this.finishNode(node$2, \"TaggedTemplateExpression\");\n  }\n  return base\n};\n\n// Parse an atomic expression — either a single token that is an\n// expression, an expression started by a keyword like `function` or\n// `new`, or an expression wrapped in punctuation like `()`, `[]`,\n// or `{}`.\n\npp$5.parseExprAtom = function(refDestructuringErrors, forInit) {\n  // If a division operator appears in an expression position, the\n  // tokenizer got confused, and we force it to read a regexp instead.\n  if (this.type === types$1.slash) { this.readRegexp(); }\n\n  var node, canBeArrow = this.potentialArrowAt === this.start;\n  switch (this.type) {\n  case types$1._super:\n    if (!this.allowSuper)\n      { this.raise(this.start, \"'super' keyword outside a method\"); }\n    node = this.startNode();\n    this.next();\n    if (this.type === types$1.parenL && !this.allowDirectSuper)\n      { this.raise(node.start, \"super() call outside constructor of a subclass\"); }\n    // The `super` keyword can appear at below:\n    // SuperProperty:\n    //     super [ Expression ]\n    //     super . IdentifierName\n    // SuperCall:\n    //     super ( Arguments )\n    if (this.type !== types$1.dot && this.type !== types$1.bracketL && this.type !== types$1.parenL)\n      { this.unexpected(); }\n    return this.finishNode(node, \"Super\")\n\n  case types$1._this:\n    node = this.startNode();\n    this.next();\n    return this.finishNode(node, \"ThisExpression\")\n\n  case types$1.name:\n    var startPos = this.start, startLoc = this.startLoc, containsEsc = this.containsEsc;\n    var id = this.parseIdent(false);\n    if (this.options.ecmaVersion >= 8 && !containsEsc && id.name === \"async\" && !this.canInsertSemicolon() && this.eat(types$1._function)) {\n      this.overrideContext(types.f_expr);\n      return this.parseFunction(this.startNodeAt(startPos, startLoc), 0, false, true, forInit)\n    }\n    if (canBeArrow && !this.canInsertSemicolon()) {\n      if (this.eat(types$1.arrow))\n        { return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], false, forInit) }\n      if (this.options.ecmaVersion >= 8 && id.name === \"async\" && this.type === types$1.name && !containsEsc &&\n          (!this.potentialArrowInForAwait || this.value !== \"of\" || this.containsEsc)) {\n        id = this.parseIdent(false);\n        if (this.canInsertSemicolon() || !this.eat(types$1.arrow))\n          { this.unexpected(); }\n        return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], true, forInit)\n      }\n    }\n    return id\n\n  case types$1.regexp:\n    var value = this.value;\n    node = this.parseLiteral(value.value);\n    node.regex = {pattern: value.pattern, flags: value.flags};\n    return node\n\n  case types$1.num: case types$1.string:\n    return this.parseLiteral(this.value)\n\n  case types$1._null: case types$1._true: case types$1._false:\n    node = this.startNode();\n    node.value = this.type === types$1._null ? null : this.type === types$1._true;\n    node.raw = this.type.keyword;\n    this.next();\n    return this.finishNode(node, \"Literal\")\n\n  case types$1.parenL:\n    var start = this.start, expr = this.parseParenAndDistinguishExpression(canBeArrow, forInit);\n    if (refDestructuringErrors) {\n      if (refDestructuringErrors.parenthesizedAssign < 0 && !this.isSimpleAssignTarget(expr))\n        { refDestructuringErrors.parenthesizedAssign = start; }\n      if (refDestructuringErrors.parenthesizedBind < 0)\n        { refDestructuringErrors.parenthesizedBind = start; }\n    }\n    return expr\n\n  case types$1.bracketL:\n    node = this.startNode();\n    this.next();\n    node.elements = this.parseExprList(types$1.bracketR, true, true, refDestructuringErrors);\n    return this.finishNode(node, \"ArrayExpression\")\n\n  case types$1.braceL:\n    this.overrideContext(types.b_expr);\n    return this.parseObj(false, refDestructuringErrors)\n\n  case types$1._function:\n    node = this.startNode();\n    this.next();\n    return this.parseFunction(node, 0)\n\n  case types$1._class:\n    return this.parseClass(this.startNode(), false)\n\n  case types$1._new:\n    return this.parseNew()\n\n  case types$1.backQuote:\n    return this.parseTemplate()\n\n  case types$1._import:\n    if (this.options.ecmaVersion >= 11) {\n      return this.parseExprImport()\n    } else {\n      return this.unexpected()\n    }\n\n  default:\n    this.unexpected();\n  }\n};\n\npp$5.parseExprImport = function() {\n  var node = this.startNode();\n\n  // Consume `import` as an identifier for `import.meta`.\n  // Because `this.parseIdent(true)` doesn't check escape sequences, it needs the check of `this.containsEsc`.\n  if (this.containsEsc) { this.raiseRecoverable(this.start, \"Escape sequence in keyword import\"); }\n  var meta = this.parseIdent(true);\n\n  switch (this.type) {\n  case types$1.parenL:\n    return this.parseDynamicImport(node)\n  case types$1.dot:\n    node.meta = meta;\n    return this.parseImportMeta(node)\n  default:\n    this.unexpected();\n  }\n};\n\npp$5.parseDynamicImport = function(node) {\n  this.next(); // skip `(`\n\n  // Parse node.source.\n  node.source = this.parseMaybeAssign();\n\n  // Verify ending.\n  if (!this.eat(types$1.parenR)) {\n    var errorPos = this.start;\n    if (this.eat(types$1.comma) && this.eat(types$1.parenR)) {\n      this.raiseRecoverable(errorPos, \"Trailing comma is not allowed in import()\");\n    } else {\n      this.unexpected(errorPos);\n    }\n  }\n\n  return this.finishNode(node, \"ImportExpression\")\n};\n\npp$5.parseImportMeta = function(node) {\n  this.next(); // skip `.`\n\n  var containsEsc = this.containsEsc;\n  node.property = this.parseIdent(true);\n\n  if (node.property.name !== \"meta\")\n    { this.raiseRecoverable(node.property.start, \"The only valid meta property for import is 'import.meta'\"); }\n  if (containsEsc)\n    { this.raiseRecoverable(node.start, \"'import.meta' must not contain escaped characters\"); }\n  if (this.options.sourceType !== \"module\" && !this.options.allowImportExportEverywhere)\n    { this.raiseRecoverable(node.start, \"Cannot use 'import.meta' outside a module\"); }\n\n  return this.finishNode(node, \"MetaProperty\")\n};\n\npp$5.parseLiteral = function(value) {\n  var node = this.startNode();\n  node.value = value;\n  node.raw = this.input.slice(this.start, this.end);\n  if (node.raw.charCodeAt(node.raw.length - 1) === 110) { node.bigint = node.raw.slice(0, -1).replace(/_/g, \"\"); }\n  this.next();\n  return this.finishNode(node, \"Literal\")\n};\n\npp$5.parseParenExpression = function() {\n  this.expect(types$1.parenL);\n  var val = this.parseExpression();\n  this.expect(types$1.parenR);\n  return val\n};\n\npp$5.parseParenAndDistinguishExpression = function(canBeArrow, forInit) {\n  var startPos = this.start, startLoc = this.startLoc, val, allowTrailingComma = this.options.ecmaVersion >= 8;\n  if (this.options.ecmaVersion >= 6) {\n    this.next();\n\n    var innerStartPos = this.start, innerStartLoc = this.startLoc;\n    var exprList = [], first = true, lastIsComma = false;\n    var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, spreadStart;\n    this.yieldPos = 0;\n    this.awaitPos = 0;\n    // Do not save awaitIdentPos to allow checking awaits nested in parameters\n    while (this.type !== types$1.parenR) {\n      first ? first = false : this.expect(types$1.comma);\n      if (allowTrailingComma && this.afterTrailingComma(types$1.parenR, true)) {\n        lastIsComma = true;\n        break\n      } else if (this.type === types$1.ellipsis) {\n        spreadStart = this.start;\n        exprList.push(this.parseParenItem(this.parseRestBinding()));\n        if (this.type === types$1.comma) { this.raise(this.start, \"Comma is not permitted after the rest element\"); }\n        break\n      } else {\n        exprList.push(this.parseMaybeAssign(false, refDestructuringErrors, this.parseParenItem));\n      }\n    }\n    var innerEndPos = this.lastTokEnd, innerEndLoc = this.lastTokEndLoc;\n    this.expect(types$1.parenR);\n\n    if (canBeArrow && !this.canInsertSemicolon() && this.eat(types$1.arrow)) {\n      this.checkPatternErrors(refDestructuringErrors, false);\n      this.checkYieldAwaitInDefaultParams();\n      this.yieldPos = oldYieldPos;\n      this.awaitPos = oldAwaitPos;\n      return this.parseParenArrowList(startPos, startLoc, exprList, forInit)\n    }\n\n    if (!exprList.length || lastIsComma) { this.unexpected(this.lastTokStart); }\n    if (spreadStart) { this.unexpected(spreadStart); }\n    this.checkExpressionErrors(refDestructuringErrors, true);\n    this.yieldPos = oldYieldPos || this.yieldPos;\n    this.awaitPos = oldAwaitPos || this.awaitPos;\n\n    if (exprList.length > 1) {\n      val = this.startNodeAt(innerStartPos, innerStartLoc);\n      val.expressions = exprList;\n      this.finishNodeAt(val, \"SequenceExpression\", innerEndPos, innerEndLoc);\n    } else {\n      val = exprList[0];\n    }\n  } else {\n    val = this.parseParenExpression();\n  }\n\n  if (this.options.preserveParens) {\n    var par = this.startNodeAt(startPos, startLoc);\n    par.expression = val;\n    return this.finishNode(par, \"ParenthesizedExpression\")\n  } else {\n    return val\n  }\n};\n\npp$5.parseParenItem = function(item) {\n  return item\n};\n\npp$5.parseParenArrowList = function(startPos, startLoc, exprList, forInit) {\n  return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, false, forInit)\n};\n\n// New's precedence is slightly tricky. It must allow its argument to\n// be a `[]` or dot subscript expression, but not a call — at least,\n// not without wrapping it in parentheses. Thus, it uses the noCalls\n// argument to parseSubscripts to prevent it from consuming the\n// argument list.\n\nvar empty = [];\n\npp$5.parseNew = function() {\n  if (this.containsEsc) { this.raiseRecoverable(this.start, \"Escape sequence in keyword new\"); }\n  var node = this.startNode();\n  var meta = this.parseIdent(true);\n  if (this.options.ecmaVersion >= 6 && this.eat(types$1.dot)) {\n    node.meta = meta;\n    var containsEsc = this.containsEsc;\n    node.property = this.parseIdent(true);\n    if (node.property.name !== \"target\")\n      { this.raiseRecoverable(node.property.start, \"The only valid meta property for new is 'new.target'\"); }\n    if (containsEsc)\n      { this.raiseRecoverable(node.start, \"'new.target' must not contain escaped characters\"); }\n    if (!this.allowNewDotTarget)\n      { this.raiseRecoverable(node.start, \"'new.target' can only be used in functions and class static block\"); }\n    return this.finishNode(node, \"MetaProperty\")\n  }\n  var startPos = this.start, startLoc = this.startLoc, isImport = this.type === types$1._import;\n  node.callee = this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true, false);\n  if (isImport && node.callee.type === \"ImportExpression\") {\n    this.raise(startPos, \"Cannot use new with import()\");\n  }\n  if (this.eat(types$1.parenL)) { node.arguments = this.parseExprList(types$1.parenR, this.options.ecmaVersion >= 8, false); }\n  else { node.arguments = empty; }\n  return this.finishNode(node, \"NewExpression\")\n};\n\n// Parse template expression.\n\npp$5.parseTemplateElement = function(ref) {\n  var isTagged = ref.isTagged;\n\n  var elem = this.startNode();\n  if (this.type === types$1.invalidTemplate) {\n    if (!isTagged) {\n      this.raiseRecoverable(this.start, \"Bad escape sequence in untagged template literal\");\n    }\n    elem.value = {\n      raw: this.value,\n      cooked: null\n    };\n  } else {\n    elem.value = {\n      raw: this.input.slice(this.start, this.end).replace(/\\r\\n?/g, \"\\n\"),\n      cooked: this.value\n    };\n  }\n  this.next();\n  elem.tail = this.type === types$1.backQuote;\n  return this.finishNode(elem, \"TemplateElement\")\n};\n\npp$5.parseTemplate = function(ref) {\n  if ( ref === void 0 ) ref = {};\n  var isTagged = ref.isTagged; if ( isTagged === void 0 ) isTagged = false;\n\n  var node = this.startNode();\n  this.next();\n  node.expressions = [];\n  var curElt = this.parseTemplateElement({isTagged: isTagged});\n  node.quasis = [curElt];\n  while (!curElt.tail) {\n    if (this.type === types$1.eof) { this.raise(this.pos, \"Unterminated template literal\"); }\n    this.expect(types$1.dollarBraceL);\n    node.expressions.push(this.parseExpression());\n    this.expect(types$1.braceR);\n    node.quasis.push(curElt = this.parseTemplateElement({isTagged: isTagged}));\n  }\n  this.next();\n  return this.finishNode(node, \"TemplateLiteral\")\n};\n\npp$5.isAsyncProp = function(prop) {\n  return !prop.computed && prop.key.type === \"Identifier\" && prop.key.name === \"async\" &&\n    (this.type === types$1.name || this.type === types$1.num || this.type === types$1.string || this.type === types$1.bracketL || this.type.keyword || (this.options.ecmaVersion >= 9 && this.type === types$1.star)) &&\n    !lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n};\n\n// Parse an object literal or binding pattern.\n\npp$5.parseObj = function(isPattern, refDestructuringErrors) {\n  var node = this.startNode(), first = true, propHash = {};\n  node.properties = [];\n  this.next();\n  while (!this.eat(types$1.braceR)) {\n    if (!first) {\n      this.expect(types$1.comma);\n      if (this.options.ecmaVersion >= 5 && this.afterTrailingComma(types$1.braceR)) { break }\n    } else { first = false; }\n\n    var prop = this.parseProperty(isPattern, refDestructuringErrors);\n    if (!isPattern) { this.checkPropClash(prop, propHash, refDestructuringErrors); }\n    node.properties.push(prop);\n  }\n  return this.finishNode(node, isPattern ? \"ObjectPattern\" : \"ObjectExpression\")\n};\n\npp$5.parseProperty = function(isPattern, refDestructuringErrors) {\n  var prop = this.startNode(), isGenerator, isAsync, startPos, startLoc;\n  if (this.options.ecmaVersion >= 9 && this.eat(types$1.ellipsis)) {\n    if (isPattern) {\n      prop.argument = this.parseIdent(false);\n      if (this.type === types$1.comma) {\n        this.raise(this.start, \"Comma is not permitted after the rest element\");\n      }\n      return this.finishNode(prop, \"RestElement\")\n    }\n    // Parse argument.\n    prop.argument = this.parseMaybeAssign(false, refDestructuringErrors);\n    // To disallow trailing comma via `this.toAssignable()`.\n    if (this.type === types$1.comma && refDestructuringErrors && refDestructuringErrors.trailingComma < 0) {\n      refDestructuringErrors.trailingComma = this.start;\n    }\n    // Finish\n    return this.finishNode(prop, \"SpreadElement\")\n  }\n  if (this.options.ecmaVersion >= 6) {\n    prop.method = false;\n    prop.shorthand = false;\n    if (isPattern || refDestructuringErrors) {\n      startPos = this.start;\n      startLoc = this.startLoc;\n    }\n    if (!isPattern)\n      { isGenerator = this.eat(types$1.star); }\n  }\n  var containsEsc = this.containsEsc;\n  this.parsePropertyName(prop);\n  if (!isPattern && !containsEsc && this.options.ecmaVersion >= 8 && !isGenerator && this.isAsyncProp(prop)) {\n    isAsync = true;\n    isGenerator = this.options.ecmaVersion >= 9 && this.eat(types$1.star);\n    this.parsePropertyName(prop, refDestructuringErrors);\n  } else {\n    isAsync = false;\n  }\n  this.parsePropertyValue(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc);\n  return this.finishNode(prop, \"Property\")\n};\n\npp$5.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc) {\n  if ((isGenerator || isAsync) && this.type === types$1.colon)\n    { this.unexpected(); }\n\n  if (this.eat(types$1.colon)) {\n    prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors);\n    prop.kind = \"init\";\n  } else if (this.options.ecmaVersion >= 6 && this.type === types$1.parenL) {\n    if (isPattern) { this.unexpected(); }\n    prop.kind = \"init\";\n    prop.method = true;\n    prop.value = this.parseMethod(isGenerator, isAsync);\n  } else if (!isPattern && !containsEsc &&\n             this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === \"Identifier\" &&\n             (prop.key.name === \"get\" || prop.key.name === \"set\") &&\n             (this.type !== types$1.comma && this.type !== types$1.braceR && this.type !== types$1.eq)) {\n    if (isGenerator || isAsync) { this.unexpected(); }\n    prop.kind = prop.key.name;\n    this.parsePropertyName(prop);\n    prop.value = this.parseMethod(false);\n    var paramCount = prop.kind === \"get\" ? 0 : 1;\n    if (prop.value.params.length !== paramCount) {\n      var start = prop.value.start;\n      if (prop.kind === \"get\")\n        { this.raiseRecoverable(start, \"getter should have no params\"); }\n      else\n        { this.raiseRecoverable(start, \"setter should have exactly one param\"); }\n    } else {\n      if (prop.kind === \"set\" && prop.value.params[0].type === \"RestElement\")\n        { this.raiseRecoverable(prop.value.params[0].start, \"Setter cannot use rest params\"); }\n    }\n  } else if (this.options.ecmaVersion >= 6 && !prop.computed && prop.key.type === \"Identifier\") {\n    if (isGenerator || isAsync) { this.unexpected(); }\n    this.checkUnreserved(prop.key);\n    if (prop.key.name === \"await\" && !this.awaitIdentPos)\n      { this.awaitIdentPos = startPos; }\n    prop.kind = \"init\";\n    if (isPattern) {\n      prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key));\n    } else if (this.type === types$1.eq && refDestructuringErrors) {\n      if (refDestructuringErrors.shorthandAssign < 0)\n        { refDestructuringErrors.shorthandAssign = this.start; }\n      prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key));\n    } else {\n      prop.value = this.copyNode(prop.key);\n    }\n    prop.shorthand = true;\n  } else { this.unexpected(); }\n};\n\npp$5.parsePropertyName = function(prop) {\n  if (this.options.ecmaVersion >= 6) {\n    if (this.eat(types$1.bracketL)) {\n      prop.computed = true;\n      prop.key = this.parseMaybeAssign();\n      this.expect(types$1.bracketR);\n      return prop.key\n    } else {\n      prop.computed = false;\n    }\n  }\n  return prop.key = this.type === types$1.num || this.type === types$1.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== \"never\")\n};\n\n// Initialize empty function node.\n\npp$5.initFunction = function(node) {\n  node.id = null;\n  if (this.options.ecmaVersion >= 6) { node.generator = node.expression = false; }\n  if (this.options.ecmaVersion >= 8) { node.async = false; }\n};\n\n// Parse object or class method.\n\npp$5.parseMethod = function(isGenerator, isAsync, allowDirectSuper) {\n  var node = this.startNode(), oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n\n  this.initFunction(node);\n  if (this.options.ecmaVersion >= 6)\n    { node.generator = isGenerator; }\n  if (this.options.ecmaVersion >= 8)\n    { node.async = !!isAsync; }\n\n  this.yieldPos = 0;\n  this.awaitPos = 0;\n  this.awaitIdentPos = 0;\n  this.enterScope(functionFlags(isAsync, node.generator) | SCOPE_SUPER | (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0));\n\n  this.expect(types$1.parenL);\n  node.params = this.parseBindingList(types$1.parenR, false, this.options.ecmaVersion >= 8);\n  this.checkYieldAwaitInDefaultParams();\n  this.parseFunctionBody(node, false, true, false);\n\n  this.yieldPos = oldYieldPos;\n  this.awaitPos = oldAwaitPos;\n  this.awaitIdentPos = oldAwaitIdentPos;\n  return this.finishNode(node, \"FunctionExpression\")\n};\n\n// Parse arrow function expression with given parameters.\n\npp$5.parseArrowExpression = function(node, params, isAsync, forInit) {\n  var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n\n  this.enterScope(functionFlags(isAsync, false) | SCOPE_ARROW);\n  this.initFunction(node);\n  if (this.options.ecmaVersion >= 8) { node.async = !!isAsync; }\n\n  this.yieldPos = 0;\n  this.awaitPos = 0;\n  this.awaitIdentPos = 0;\n\n  node.params = this.toAssignableList(params, true);\n  this.parseFunctionBody(node, true, false, forInit);\n\n  this.yieldPos = oldYieldPos;\n  this.awaitPos = oldAwaitPos;\n  this.awaitIdentPos = oldAwaitIdentPos;\n  return this.finishNode(node, \"ArrowFunctionExpression\")\n};\n\n// Parse function body and check parameters.\n\npp$5.parseFunctionBody = function(node, isArrowFunction, isMethod, forInit) {\n  var isExpression = isArrowFunction && this.type !== types$1.braceL;\n  var oldStrict = this.strict, useStrict = false;\n\n  if (isExpression) {\n    node.body = this.parseMaybeAssign(forInit);\n    node.expression = true;\n    this.checkParams(node, false);\n  } else {\n    var nonSimple = this.options.ecmaVersion >= 7 && !this.isSimpleParamList(node.params);\n    if (!oldStrict || nonSimple) {\n      useStrict = this.strictDirective(this.end);\n      // If this is a strict mode function, verify that argument names\n      // are not repeated, and it does not try to bind the words `eval`\n      // or `arguments`.\n      if (useStrict && nonSimple)\n        { this.raiseRecoverable(node.start, \"Illegal 'use strict' directive in function with non-simple parameter list\"); }\n    }\n    // Start a new scope with regard to labels and the `inFunction`\n    // flag (restore them to their old value afterwards).\n    var oldLabels = this.labels;\n    this.labels = [];\n    if (useStrict) { this.strict = true; }\n\n    // Add the params to varDeclaredNames to ensure that an error is thrown\n    // if a let/const declaration in the function clashes with one of the params.\n    this.checkParams(node, !oldStrict && !useStrict && !isArrowFunction && !isMethod && this.isSimpleParamList(node.params));\n    // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval'\n    if (this.strict && node.id) { this.checkLValSimple(node.id, BIND_OUTSIDE); }\n    node.body = this.parseBlock(false, undefined, useStrict && !oldStrict);\n    node.expression = false;\n    this.adaptDirectivePrologue(node.body.body);\n    this.labels = oldLabels;\n  }\n  this.exitScope();\n};\n\npp$5.isSimpleParamList = function(params) {\n  for (var i = 0, list = params; i < list.length; i += 1)\n    {\n    var param = list[i];\n\n    if (param.type !== \"Identifier\") { return false\n  } }\n  return true\n};\n\n// Checks function params for various disallowed patterns such as using \"eval\"\n// or \"arguments\" and duplicate parameters.\n\npp$5.checkParams = function(node, allowDuplicates) {\n  var nameHash = Object.create(null);\n  for (var i = 0, list = node.params; i < list.length; i += 1)\n    {\n    var param = list[i];\n\n    this.checkLValInnerPattern(param, BIND_VAR, allowDuplicates ? null : nameHash);\n  }\n};\n\n// Parses a comma-separated list of expressions, and returns them as\n// an array. `close` is the token type that ends the list, and\n// `allowEmpty` can be turned on to allow subsequent commas with\n// nothing in between them to be parsed as `null` (which is needed\n// for array literals).\n\npp$5.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) {\n  var elts = [], first = true;\n  while (!this.eat(close)) {\n    if (!first) {\n      this.expect(types$1.comma);\n      if (allowTrailingComma && this.afterTrailingComma(close)) { break }\n    } else { first = false; }\n\n    var elt = (void 0);\n    if (allowEmpty && this.type === types$1.comma)\n      { elt = null; }\n    else if (this.type === types$1.ellipsis) {\n      elt = this.parseSpread(refDestructuringErrors);\n      if (refDestructuringErrors && this.type === types$1.comma && refDestructuringErrors.trailingComma < 0)\n        { refDestructuringErrors.trailingComma = this.start; }\n    } else {\n      elt = this.parseMaybeAssign(false, refDestructuringErrors);\n    }\n    elts.push(elt);\n  }\n  return elts\n};\n\npp$5.checkUnreserved = function(ref) {\n  var start = ref.start;\n  var end = ref.end;\n  var name = ref.name;\n\n  if (this.inGenerator && name === \"yield\")\n    { this.raiseRecoverable(start, \"Cannot use 'yield' as identifier inside a generator\"); }\n  if (this.inAsync && name === \"await\")\n    { this.raiseRecoverable(start, \"Cannot use 'await' as identifier inside an async function\"); }\n  if (this.currentThisScope().inClassFieldInit && name === \"arguments\")\n    { this.raiseRecoverable(start, \"Cannot use 'arguments' in class field initializer\"); }\n  if (this.inClassStaticBlock && (name === \"arguments\" || name === \"await\"))\n    { this.raise(start, (\"Cannot use \" + name + \" in class static initialization block\")); }\n  if (this.keywords.test(name))\n    { this.raise(start, (\"Unexpected keyword '\" + name + \"'\")); }\n  if (this.options.ecmaVersion < 6 &&\n    this.input.slice(start, end).indexOf(\"\\\\\") !== -1) { return }\n  var re = this.strict ? this.reservedWordsStrict : this.reservedWords;\n  if (re.test(name)) {\n    if (!this.inAsync && name === \"await\")\n      { this.raiseRecoverable(start, \"Cannot use keyword 'await' outside an async function\"); }\n    this.raiseRecoverable(start, (\"The keyword '\" + name + \"' is reserved\"));\n  }\n};\n\n// Parse the next token as an identifier. If `liberal` is true (used\n// when parsing properties), it will also convert keywords into\n// identifiers.\n\npp$5.parseIdent = function(liberal, isBinding) {\n  var node = this.startNode();\n  if (this.type === types$1.name) {\n    node.name = this.value;\n  } else if (this.type.keyword) {\n    node.name = this.type.keyword;\n\n    // To fix https://github.com/acornjs/acorn/issues/575\n    // `class` and `function` keywords push new context into this.context.\n    // But there is no chance to pop the context if the keyword is consumed as an identifier such as a property name.\n    // If the previous token is a dot, this does not apply because the context-managing code already ignored the keyword\n    if ((node.name === \"class\" || node.name === \"function\") &&\n        (this.lastTokEnd !== this.lastTokStart + 1 || this.input.charCodeAt(this.lastTokStart) !== 46)) {\n      this.context.pop();\n    }\n  } else {\n    this.unexpected();\n  }\n  this.next(!!liberal);\n  this.finishNode(node, \"Identifier\");\n  if (!liberal) {\n    this.checkUnreserved(node);\n    if (node.name === \"await\" && !this.awaitIdentPos)\n      { this.awaitIdentPos = node.start; }\n  }\n  return node\n};\n\npp$5.parsePrivateIdent = function() {\n  var node = this.startNode();\n  if (this.type === types$1.privateId) {\n    node.name = this.value;\n  } else {\n    this.unexpected();\n  }\n  this.next();\n  this.finishNode(node, \"PrivateIdentifier\");\n\n  // For validating existence\n  if (this.privateNameStack.length === 0) {\n    this.raise(node.start, (\"Private field '#\" + (node.name) + \"' must be declared in an enclosing class\"));\n  } else {\n    this.privateNameStack[this.privateNameStack.length - 1].used.push(node);\n  }\n\n  return node\n};\n\n// Parses yield expression inside generator.\n\npp$5.parseYield = function(forInit) {\n  if (!this.yieldPos) { this.yieldPos = this.start; }\n\n  var node = this.startNode();\n  this.next();\n  if (this.type === types$1.semi || this.canInsertSemicolon() || (this.type !== types$1.star && !this.type.startsExpr)) {\n    node.delegate = false;\n    node.argument = null;\n  } else {\n    node.delegate = this.eat(types$1.star);\n    node.argument = this.parseMaybeAssign(forInit);\n  }\n  return this.finishNode(node, \"YieldExpression\")\n};\n\npp$5.parseAwait = function(forInit) {\n  if (!this.awaitPos) { this.awaitPos = this.start; }\n\n  var node = this.startNode();\n  this.next();\n  node.argument = this.parseMaybeUnary(null, true, false, forInit);\n  return this.finishNode(node, \"AwaitExpression\")\n};\n\nvar pp$4 = Parser.prototype;\n\n// This function is used to raise exceptions on parse errors. It\n// takes an offset integer (into the current `input`) to indicate\n// the location of the error, attaches the position to the end\n// of the error message, and then raises a `SyntaxError` with that\n// message.\n\npp$4.raise = function(pos, message) {\n  var loc = getLineInfo(this.input, pos);\n  message += \" (\" + loc.line + \":\" + loc.column + \")\";\n  var err = new SyntaxError(message);\n  err.pos = pos; err.loc = loc; err.raisedAt = this.pos;\n  throw err\n};\n\npp$4.raiseRecoverable = pp$4.raise;\n\npp$4.curPosition = function() {\n  if (this.options.locations) {\n    return new Position(this.curLine, this.pos - this.lineStart)\n  }\n};\n\nvar pp$3 = Parser.prototype;\n\nvar Scope = function Scope(flags) {\n  this.flags = flags;\n  // A list of var-declared names in the current lexical scope\n  this.var = [];\n  // A list of lexically-declared names in the current lexical scope\n  this.lexical = [];\n  // A list of lexically-declared FunctionDeclaration names in the current lexical scope\n  this.functions = [];\n  // A switch to disallow the identifier reference 'arguments'\n  this.inClassFieldInit = false;\n};\n\n// The functions in this module keep track of declared variables in the current scope in order to detect duplicate variable names.\n\npp$3.enterScope = function(flags) {\n  this.scopeStack.push(new Scope(flags));\n};\n\npp$3.exitScope = function() {\n  this.scopeStack.pop();\n};\n\n// The spec says:\n// > At the top level of a function, or script, function declarations are\n// > treated like var declarations rather than like lexical declarations.\npp$3.treatFunctionsAsVarInScope = function(scope) {\n  return (scope.flags & SCOPE_FUNCTION) || !this.inModule && (scope.flags & SCOPE_TOP)\n};\n\npp$3.declareName = function(name, bindingType, pos) {\n  var redeclared = false;\n  if (bindingType === BIND_LEXICAL) {\n    var scope = this.currentScope();\n    redeclared = scope.lexical.indexOf(name) > -1 || scope.functions.indexOf(name) > -1 || scope.var.indexOf(name) > -1;\n    scope.lexical.push(name);\n    if (this.inModule && (scope.flags & SCOPE_TOP))\n      { delete this.undefinedExports[name]; }\n  } else if (bindingType === BIND_SIMPLE_CATCH) {\n    var scope$1 = this.currentScope();\n    scope$1.lexical.push(name);\n  } else if (bindingType === BIND_FUNCTION) {\n    var scope$2 = this.currentScope();\n    if (this.treatFunctionsAsVar)\n      { redeclared = scope$2.lexical.indexOf(name) > -1; }\n    else\n      { redeclared = scope$2.lexical.indexOf(name) > -1 || scope$2.var.indexOf(name) > -1; }\n    scope$2.functions.push(name);\n  } else {\n    for (var i = this.scopeStack.length - 1; i >= 0; --i) {\n      var scope$3 = this.scopeStack[i];\n      if (scope$3.lexical.indexOf(name) > -1 && !((scope$3.flags & SCOPE_SIMPLE_CATCH) && scope$3.lexical[0] === name) ||\n          !this.treatFunctionsAsVarInScope(scope$3) && scope$3.functions.indexOf(name) > -1) {\n        redeclared = true;\n        break\n      }\n      scope$3.var.push(name);\n      if (this.inModule && (scope$3.flags & SCOPE_TOP))\n        { delete this.undefinedExports[name]; }\n      if (scope$3.flags & SCOPE_VAR) { break }\n    }\n  }\n  if (redeclared) { this.raiseRecoverable(pos, (\"Identifier '\" + name + \"' has already been declared\")); }\n};\n\npp$3.checkLocalExport = function(id) {\n  // scope.functions must be empty as Module code is always strict.\n  if (this.scopeStack[0].lexical.indexOf(id.name) === -1 &&\n      this.scopeStack[0].var.indexOf(id.name) === -1) {\n    this.undefinedExports[id.name] = id;\n  }\n};\n\npp$3.currentScope = function() {\n  return this.scopeStack[this.scopeStack.length - 1]\n};\n\npp$3.currentVarScope = function() {\n  for (var i = this.scopeStack.length - 1;; i--) {\n    var scope = this.scopeStack[i];\n    if (scope.flags & SCOPE_VAR) { return scope }\n  }\n};\n\n// Could be useful for `this`, `new.target`, `super()`, `super.property`, and `super[property]`.\npp$3.currentThisScope = function() {\n  for (var i = this.scopeStack.length - 1;; i--) {\n    var scope = this.scopeStack[i];\n    if (scope.flags & SCOPE_VAR && !(scope.flags & SCOPE_ARROW)) { return scope }\n  }\n};\n\nvar Node = function Node(parser, pos, loc) {\n  this.type = \"\";\n  this.start = pos;\n  this.end = 0;\n  if (parser.options.locations)\n    { this.loc = new SourceLocation(parser, loc); }\n  if (parser.options.directSourceFile)\n    { this.sourceFile = parser.options.directSourceFile; }\n  if (parser.options.ranges)\n    { this.range = [pos, 0]; }\n};\n\n// Start an AST node, attaching a start offset.\n\nvar pp$2 = Parser.prototype;\n\npp$2.startNode = function() {\n  return new Node(this, this.start, this.startLoc)\n};\n\npp$2.startNodeAt = function(pos, loc) {\n  return new Node(this, pos, loc)\n};\n\n// Finish an AST node, adding `type` and `end` properties.\n\nfunction finishNodeAt(node, type, pos, loc) {\n  node.type = type;\n  node.end = pos;\n  if (this.options.locations)\n    { node.loc.end = loc; }\n  if (this.options.ranges)\n    { node.range[1] = pos; }\n  return node\n}\n\npp$2.finishNode = function(node, type) {\n  return finishNodeAt.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc)\n};\n\n// Finish node at given position\n\npp$2.finishNodeAt = function(node, type, pos, loc) {\n  return finishNodeAt.call(this, node, type, pos, loc)\n};\n\npp$2.copyNode = function(node) {\n  var newNode = new Node(this, node.start, this.startLoc);\n  for (var prop in node) { newNode[prop] = node[prop]; }\n  return newNode\n};\n\n// This file contains Unicode properties extracted from the ECMAScript\n// specification. The lists are extracted like so:\n// $$('#table-binary-unicode-properties > figure > table > tbody > tr > td:nth-child(1) code').map(el => el.innerText)\n\n// #table-binary-unicode-properties\nvar ecma9BinaryProperties = \"ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS\";\nvar ecma10BinaryProperties = ecma9BinaryProperties + \" Extended_Pictographic\";\nvar ecma11BinaryProperties = ecma10BinaryProperties;\nvar ecma12BinaryProperties = ecma11BinaryProperties + \" EBase EComp EMod EPres ExtPict\";\nvar ecma13BinaryProperties = ecma12BinaryProperties;\nvar unicodeBinaryProperties = {\n  9: ecma9BinaryProperties,\n  10: ecma10BinaryProperties,\n  11: ecma11BinaryProperties,\n  12: ecma12BinaryProperties,\n  13: ecma13BinaryProperties\n};\n\n// #table-unicode-general-category-values\nvar unicodeGeneralCategoryValues = \"Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu\";\n\n// #table-unicode-script-values\nvar ecma9ScriptValues = \"Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb\";\nvar ecma10ScriptValues = ecma9ScriptValues + \" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd\";\nvar ecma11ScriptValues = ecma10ScriptValues + \" Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho\";\nvar ecma12ScriptValues = ecma11ScriptValues + \" Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi\";\nvar ecma13ScriptValues = ecma12ScriptValues + \" Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith\";\nvar unicodeScriptValues = {\n  9: ecma9ScriptValues,\n  10: ecma10ScriptValues,\n  11: ecma11ScriptValues,\n  12: ecma12ScriptValues,\n  13: ecma13ScriptValues\n};\n\nvar data = {};\nfunction buildUnicodeData(ecmaVersion) {\n  var d = data[ecmaVersion] = {\n    binary: wordsRegexp(unicodeBinaryProperties[ecmaVersion] + \" \" + unicodeGeneralCategoryValues),\n    nonBinary: {\n      General_Category: wordsRegexp(unicodeGeneralCategoryValues),\n      Script: wordsRegexp(unicodeScriptValues[ecmaVersion])\n    }\n  };\n  d.nonBinary.Script_Extensions = d.nonBinary.Script;\n\n  d.nonBinary.gc = d.nonBinary.General_Category;\n  d.nonBinary.sc = d.nonBinary.Script;\n  d.nonBinary.scx = d.nonBinary.Script_Extensions;\n}\n\nfor (var i = 0, list = [9, 10, 11, 12, 13]; i < list.length; i += 1) {\n  var ecmaVersion = list[i];\n\n  buildUnicodeData(ecmaVersion);\n}\n\nvar pp$1 = Parser.prototype;\n\nvar RegExpValidationState = function RegExpValidationState(parser) {\n  this.parser = parser;\n  this.validFlags = \"gim\" + (parser.options.ecmaVersion >= 6 ? \"uy\" : \"\") + (parser.options.ecmaVersion >= 9 ? \"s\" : \"\") + (parser.options.ecmaVersion >= 13 ? \"d\" : \"\");\n  this.unicodeProperties = data[parser.options.ecmaVersion >= 13 ? 13 : parser.options.ecmaVersion];\n  this.source = \"\";\n  this.flags = \"\";\n  this.start = 0;\n  this.switchU = false;\n  this.switchN = false;\n  this.pos = 0;\n  this.lastIntValue = 0;\n  this.lastStringValue = \"\";\n  this.lastAssertionIsQuantifiable = false;\n  this.numCapturingParens = 0;\n  this.maxBackReference = 0;\n  this.groupNames = [];\n  this.backReferenceNames = [];\n};\n\nRegExpValidationState.prototype.reset = function reset (start, pattern, flags) {\n  var unicode = flags.indexOf(\"u\") !== -1;\n  this.start = start | 0;\n  this.source = pattern + \"\";\n  this.flags = flags;\n  this.switchU = unicode && this.parser.options.ecmaVersion >= 6;\n  this.switchN = unicode && this.parser.options.ecmaVersion >= 9;\n};\n\nRegExpValidationState.prototype.raise = function raise (message) {\n  this.parser.raiseRecoverable(this.start, (\"Invalid regular expression: /\" + (this.source) + \"/: \" + message));\n};\n\n// If u flag is given, this returns the code point at the index (it combines a surrogate pair).\n// Otherwise, this returns the code unit of the index (can be a part of a surrogate pair).\nRegExpValidationState.prototype.at = function at (i, forceU) {\n    if ( forceU === void 0 ) forceU = false;\n\n  var s = this.source;\n  var l = s.length;\n  if (i >= l) {\n    return -1\n  }\n  var c = s.charCodeAt(i);\n  if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l) {\n    return c\n  }\n  var next = s.charCodeAt(i + 1);\n  return next >= 0xDC00 && next <= 0xDFFF ? (c << 10) + next - 0x35FDC00 : c\n};\n\nRegExpValidationState.prototype.nextIndex = function nextIndex (i, forceU) {\n    if ( forceU === void 0 ) forceU = false;\n\n  var s = this.source;\n  var l = s.length;\n  if (i >= l) {\n    return l\n  }\n  var c = s.charCodeAt(i), next;\n  if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l ||\n      (next = s.charCodeAt(i + 1)) < 0xDC00 || next > 0xDFFF) {\n    return i + 1\n  }\n  return i + 2\n};\n\nRegExpValidationState.prototype.current = function current (forceU) {\n    if ( forceU === void 0 ) forceU = false;\n\n  return this.at(this.pos, forceU)\n};\n\nRegExpValidationState.prototype.lookahead = function lookahead (forceU) {\n    if ( forceU === void 0 ) forceU = false;\n\n  return this.at(this.nextIndex(this.pos, forceU), forceU)\n};\n\nRegExpValidationState.prototype.advance = function advance (forceU) {\n    if ( forceU === void 0 ) forceU = false;\n\n  this.pos = this.nextIndex(this.pos, forceU);\n};\n\nRegExpValidationState.prototype.eat = function eat (ch, forceU) {\n    if ( forceU === void 0 ) forceU = false;\n\n  if (this.current(forceU) === ch) {\n    this.advance(forceU);\n    return true\n  }\n  return false\n};\n\n/**\n * Validate the flags part of a given RegExpLiteral.\n *\n * @param {RegExpValidationState} state The state to validate RegExp.\n * @returns {void}\n */\npp$1.validateRegExpFlags = function(state) {\n  var validFlags = state.validFlags;\n  var flags = state.flags;\n\n  for (var i = 0; i < flags.length; i++) {\n    var flag = flags.charAt(i);\n    if (validFlags.indexOf(flag) === -1) {\n      this.raise(state.start, \"Invalid regular expression flag\");\n    }\n    if (flags.indexOf(flag, i + 1) > -1) {\n      this.raise(state.start, \"Duplicate regular expression flag\");\n    }\n  }\n};\n\n/**\n * Validate the pattern part of a given RegExpLiteral.\n *\n * @param {RegExpValidationState} state The state to validate RegExp.\n * @returns {void}\n */\npp$1.validateRegExpPattern = function(state) {\n  this.regexp_pattern(state);\n\n  // The goal symbol for the parse is |Pattern[~U, ~N]|. If the result of\n  // parsing contains a |GroupName|, reparse with the goal symbol\n  // |Pattern[~U, +N]| and use this result instead. Throw a *SyntaxError*\n  // exception if _P_ did not conform to the grammar, if any elements of _P_\n  // were not matched by the parse, or if any Early Error conditions exist.\n  if (!state.switchN && this.options.ecmaVersion >= 9 && state.groupNames.length > 0) {\n    state.switchN = true;\n    this.regexp_pattern(state);\n  }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Pattern\npp$1.regexp_pattern = function(state) {\n  state.pos = 0;\n  state.lastIntValue = 0;\n  state.lastStringValue = \"\";\n  state.lastAssertionIsQuantifiable = false;\n  state.numCapturingParens = 0;\n  state.maxBackReference = 0;\n  state.groupNames.length = 0;\n  state.backReferenceNames.length = 0;\n\n  this.regexp_disjunction(state);\n\n  if (state.pos !== state.source.length) {\n    // Make the same messages as V8.\n    if (state.eat(0x29 /* ) */)) {\n      state.raise(\"Unmatched ')'\");\n    }\n    if (state.eat(0x5D /* ] */) || state.eat(0x7D /* } */)) {\n      state.raise(\"Lone quantifier brackets\");\n    }\n  }\n  if (state.maxBackReference > state.numCapturingParens) {\n    state.raise(\"Invalid escape\");\n  }\n  for (var i = 0, list = state.backReferenceNames; i < list.length; i += 1) {\n    var name = list[i];\n\n    if (state.groupNames.indexOf(name) === -1) {\n      state.raise(\"Invalid named capture referenced\");\n    }\n  }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Disjunction\npp$1.regexp_disjunction = function(state) {\n  this.regexp_alternative(state);\n  while (state.eat(0x7C /* | */)) {\n    this.regexp_alternative(state);\n  }\n\n  // Make the same message as V8.\n  if (this.regexp_eatQuantifier(state, true)) {\n    state.raise(\"Nothing to repeat\");\n  }\n  if (state.eat(0x7B /* { */)) {\n    state.raise(\"Lone quantifier brackets\");\n  }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Alternative\npp$1.regexp_alternative = function(state) {\n  while (state.pos < state.source.length && this.regexp_eatTerm(state))\n    { }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Term\npp$1.regexp_eatTerm = function(state) {\n  if (this.regexp_eatAssertion(state)) {\n    // Handle `QuantifiableAssertion Quantifier` alternative.\n    // `state.lastAssertionIsQuantifiable` is true if the last eaten Assertion\n    // is a QuantifiableAssertion.\n    if (state.lastAssertionIsQuantifiable && this.regexp_eatQuantifier(state)) {\n      // Make the same message as V8.\n      if (state.switchU) {\n        state.raise(\"Invalid quantifier\");\n      }\n    }\n    return true\n  }\n\n  if (state.switchU ? this.regexp_eatAtom(state) : this.regexp_eatExtendedAtom(state)) {\n    this.regexp_eatQuantifier(state);\n    return true\n  }\n\n  return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Assertion\npp$1.regexp_eatAssertion = function(state) {\n  var start = state.pos;\n  state.lastAssertionIsQuantifiable = false;\n\n  // ^, $\n  if (state.eat(0x5E /* ^ */) || state.eat(0x24 /* $ */)) {\n    return true\n  }\n\n  // \\b \\B\n  if (state.eat(0x5C /* \\ */)) {\n    if (state.eat(0x42 /* B */) || state.eat(0x62 /* b */)) {\n      return true\n    }\n    state.pos = start;\n  }\n\n  // Lookahead / Lookbehind\n  if (state.eat(0x28 /* ( */) && state.eat(0x3F /* ? */)) {\n    var lookbehind = false;\n    if (this.options.ecmaVersion >= 9) {\n      lookbehind = state.eat(0x3C /* < */);\n    }\n    if (state.eat(0x3D /* = */) || state.eat(0x21 /* ! */)) {\n      this.regexp_disjunction(state);\n      if (!state.eat(0x29 /* ) */)) {\n        state.raise(\"Unterminated group\");\n      }\n      state.lastAssertionIsQuantifiable = !lookbehind;\n      return true\n    }\n  }\n\n  state.pos = start;\n  return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Quantifier\npp$1.regexp_eatQuantifier = function(state, noError) {\n  if ( noError === void 0 ) noError = false;\n\n  if (this.regexp_eatQuantifierPrefix(state, noError)) {\n    state.eat(0x3F /* ? */);\n    return true\n  }\n  return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-QuantifierPrefix\npp$1.regexp_eatQuantifierPrefix = function(state, noError) {\n  return (\n    state.eat(0x2A /* * */) ||\n    state.eat(0x2B /* + */) ||\n    state.eat(0x3F /* ? */) ||\n    this.regexp_eatBracedQuantifier(state, noError)\n  )\n};\npp$1.regexp_eatBracedQuantifier = function(state, noError) {\n  var start = state.pos;\n  if (state.eat(0x7B /* { */)) {\n    var min = 0, max = -1;\n    if (this.regexp_eatDecimalDigits(state)) {\n      min = state.lastIntValue;\n      if (state.eat(0x2C /* , */) && this.regexp_eatDecimalDigits(state)) {\n        max = state.lastIntValue;\n      }\n      if (state.eat(0x7D /* } */)) {\n        // SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-term\n        if (max !== -1 && max < min && !noError) {\n          state.raise(\"numbers out of order in {} quantifier\");\n        }\n        return true\n      }\n    }\n    if (state.switchU && !noError) {\n      state.raise(\"Incomplete quantifier\");\n    }\n    state.pos = start;\n  }\n  return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Atom\npp$1.regexp_eatAtom = function(state) {\n  return (\n    this.regexp_eatPatternCharacters(state) ||\n    state.eat(0x2E /* . */) ||\n    this.regexp_eatReverseSolidusAtomEscape(state) ||\n    this.regexp_eatCharacterClass(state) ||\n    this.regexp_eatUncapturingGroup(state) ||\n    this.regexp_eatCapturingGroup(state)\n  )\n};\npp$1.regexp_eatReverseSolidusAtomEscape = function(state) {\n  var start = state.pos;\n  if (state.eat(0x5C /* \\ */)) {\n    if (this.regexp_eatAtomEscape(state)) {\n      return true\n    }\n    state.pos = start;\n  }\n  return false\n};\npp$1.regexp_eatUncapturingGroup = function(state) {\n  var start = state.pos;\n  if (state.eat(0x28 /* ( */)) {\n    if (state.eat(0x3F /* ? */) && state.eat(0x3A /* : */)) {\n      this.regexp_disjunction(state);\n      if (state.eat(0x29 /* ) */)) {\n        return true\n      }\n      state.raise(\"Unterminated group\");\n    }\n    state.pos = start;\n  }\n  return false\n};\npp$1.regexp_eatCapturingGroup = function(state) {\n  if (state.eat(0x28 /* ( */)) {\n    if (this.options.ecmaVersion >= 9) {\n      this.regexp_groupSpecifier(state);\n    } else if (state.current() === 0x3F /* ? */) {\n      state.raise(\"Invalid group\");\n    }\n    this.regexp_disjunction(state);\n    if (state.eat(0x29 /* ) */)) {\n      state.numCapturingParens += 1;\n      return true\n    }\n    state.raise(\"Unterminated group\");\n  }\n  return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedAtom\npp$1.regexp_eatExtendedAtom = function(state) {\n  return (\n    state.eat(0x2E /* . */) ||\n    this.regexp_eatReverseSolidusAtomEscape(state) ||\n    this.regexp_eatCharacterClass(state) ||\n    this.regexp_eatUncapturingGroup(state) ||\n    this.regexp_eatCapturingGroup(state) ||\n    this.regexp_eatInvalidBracedQuantifier(state) ||\n    this.regexp_eatExtendedPatternCharacter(state)\n  )\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-InvalidBracedQuantifier\npp$1.regexp_eatInvalidBracedQuantifier = function(state) {\n  if (this.regexp_eatBracedQuantifier(state, true)) {\n    state.raise(\"Nothing to repeat\");\n  }\n  return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-SyntaxCharacter\npp$1.regexp_eatSyntaxCharacter = function(state) {\n  var ch = state.current();\n  if (isSyntaxCharacter(ch)) {\n    state.lastIntValue = ch;\n    state.advance();\n    return true\n  }\n  return false\n};\nfunction isSyntaxCharacter(ch) {\n  return (\n    ch === 0x24 /* $ */ ||\n    ch >= 0x28 /* ( */ && ch <= 0x2B /* + */ ||\n    ch === 0x2E /* . */ ||\n    ch === 0x3F /* ? */ ||\n    ch >= 0x5B /* [ */ && ch <= 0x5E /* ^ */ ||\n    ch >= 0x7B /* { */ && ch <= 0x7D /* } */\n  )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-PatternCharacter\n// But eat eager.\npp$1.regexp_eatPatternCharacters = function(state) {\n  var start = state.pos;\n  var ch = 0;\n  while ((ch = state.current()) !== -1 && !isSyntaxCharacter(ch)) {\n    state.advance();\n  }\n  return state.pos !== start\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedPatternCharacter\npp$1.regexp_eatExtendedPatternCharacter = function(state) {\n  var ch = state.current();\n  if (\n    ch !== -1 &&\n    ch !== 0x24 /* $ */ &&\n    !(ch >= 0x28 /* ( */ && ch <= 0x2B /* + */) &&\n    ch !== 0x2E /* . */ &&\n    ch !== 0x3F /* ? */ &&\n    ch !== 0x5B /* [ */ &&\n    ch !== 0x5E /* ^ */ &&\n    ch !== 0x7C /* | */\n  ) {\n    state.advance();\n    return true\n  }\n  return false\n};\n\n// GroupSpecifier ::\n//   [empty]\n//   `?` GroupName\npp$1.regexp_groupSpecifier = function(state) {\n  if (state.eat(0x3F /* ? */)) {\n    if (this.regexp_eatGroupName(state)) {\n      if (state.groupNames.indexOf(state.lastStringValue) !== -1) {\n        state.raise(\"Duplicate capture group name\");\n      }\n      state.groupNames.push(state.lastStringValue);\n      return\n    }\n    state.raise(\"Invalid group\");\n  }\n};\n\n// GroupName ::\n//   `<` RegExpIdentifierName `>`\n// Note: this updates `state.lastStringValue` property with the eaten name.\npp$1.regexp_eatGroupName = function(state) {\n  state.lastStringValue = \"\";\n  if (state.eat(0x3C /* < */)) {\n    if (this.regexp_eatRegExpIdentifierName(state) && state.eat(0x3E /* > */)) {\n      return true\n    }\n    state.raise(\"Invalid capture group name\");\n  }\n  return false\n};\n\n// RegExpIdentifierName ::\n//   RegExpIdentifierStart\n//   RegExpIdentifierName RegExpIdentifierPart\n// Note: this updates `state.lastStringValue` property with the eaten name.\npp$1.regexp_eatRegExpIdentifierName = function(state) {\n  state.lastStringValue = \"\";\n  if (this.regexp_eatRegExpIdentifierStart(state)) {\n    state.lastStringValue += codePointToString(state.lastIntValue);\n    while (this.regexp_eatRegExpIdentifierPart(state)) {\n      state.lastStringValue += codePointToString(state.lastIntValue);\n    }\n    return true\n  }\n  return false\n};\n\n// RegExpIdentifierStart ::\n//   UnicodeIDStart\n//   `$`\n//   `_`\n//   `\\` RegExpUnicodeEscapeSequence[+U]\npp$1.regexp_eatRegExpIdentifierStart = function(state) {\n  var start = state.pos;\n  var forceU = this.options.ecmaVersion >= 11;\n  var ch = state.current(forceU);\n  state.advance(forceU);\n\n  if (ch === 0x5C /* \\ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) {\n    ch = state.lastIntValue;\n  }\n  if (isRegExpIdentifierStart(ch)) {\n    state.lastIntValue = ch;\n    return true\n  }\n\n  state.pos = start;\n  return false\n};\nfunction isRegExpIdentifierStart(ch) {\n  return isIdentifierStart(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */\n}\n\n// RegExpIdentifierPart ::\n//   UnicodeIDContinue\n//   `$`\n//   `_`\n//   `\\` RegExpUnicodeEscapeSequence[+U]\n//   <ZWNJ>\n//   <ZWJ>\npp$1.regexp_eatRegExpIdentifierPart = function(state) {\n  var start = state.pos;\n  var forceU = this.options.ecmaVersion >= 11;\n  var ch = state.current(forceU);\n  state.advance(forceU);\n\n  if (ch === 0x5C /* \\ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) {\n    ch = state.lastIntValue;\n  }\n  if (isRegExpIdentifierPart(ch)) {\n    state.lastIntValue = ch;\n    return true\n  }\n\n  state.pos = start;\n  return false\n};\nfunction isRegExpIdentifierPart(ch) {\n  return isIdentifierChar(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */ || ch === 0x200C /* <ZWNJ> */ || ch === 0x200D /* <ZWJ> */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-AtomEscape\npp$1.regexp_eatAtomEscape = function(state) {\n  if (\n    this.regexp_eatBackReference(state) ||\n    this.regexp_eatCharacterClassEscape(state) ||\n    this.regexp_eatCharacterEscape(state) ||\n    (state.switchN && this.regexp_eatKGroupName(state))\n  ) {\n    return true\n  }\n  if (state.switchU) {\n    // Make the same message as V8.\n    if (state.current() === 0x63 /* c */) {\n      state.raise(\"Invalid unicode escape\");\n    }\n    state.raise(\"Invalid escape\");\n  }\n  return false\n};\npp$1.regexp_eatBackReference = function(state) {\n  var start = state.pos;\n  if (this.regexp_eatDecimalEscape(state)) {\n    var n = state.lastIntValue;\n    if (state.switchU) {\n      // For SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-atomescape\n      if (n > state.maxBackReference) {\n        state.maxBackReference = n;\n      }\n      return true\n    }\n    if (n <= state.numCapturingParens) {\n      return true\n    }\n    state.pos = start;\n  }\n  return false\n};\npp$1.regexp_eatKGroupName = function(state) {\n  if (state.eat(0x6B /* k */)) {\n    if (this.regexp_eatGroupName(state)) {\n      state.backReferenceNames.push(state.lastStringValue);\n      return true\n    }\n    state.raise(\"Invalid named reference\");\n  }\n  return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-CharacterEscape\npp$1.regexp_eatCharacterEscape = function(state) {\n  return (\n    this.regexp_eatControlEscape(state) ||\n    this.regexp_eatCControlLetter(state) ||\n    this.regexp_eatZero(state) ||\n    this.regexp_eatHexEscapeSequence(state) ||\n    this.regexp_eatRegExpUnicodeEscapeSequence(state, false) ||\n    (!state.switchU && this.regexp_eatLegacyOctalEscapeSequence(state)) ||\n    this.regexp_eatIdentityEscape(state)\n  )\n};\npp$1.regexp_eatCControlLetter = function(state) {\n  var start = state.pos;\n  if (state.eat(0x63 /* c */)) {\n    if (this.regexp_eatControlLetter(state)) {\n      return true\n    }\n    state.pos = start;\n  }\n  return false\n};\npp$1.regexp_eatZero = function(state) {\n  if (state.current() === 0x30 /* 0 */ && !isDecimalDigit(state.lookahead())) {\n    state.lastIntValue = 0;\n    state.advance();\n    return true\n  }\n  return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ControlEscape\npp$1.regexp_eatControlEscape = function(state) {\n  var ch = state.current();\n  if (ch === 0x74 /* t */) {\n    state.lastIntValue = 0x09; /* \\t */\n    state.advance();\n    return true\n  }\n  if (ch === 0x6E /* n */) {\n    state.lastIntValue = 0x0A; /* \\n */\n    state.advance();\n    return true\n  }\n  if (ch === 0x76 /* v */) {\n    state.lastIntValue = 0x0B; /* \\v */\n    state.advance();\n    return true\n  }\n  if (ch === 0x66 /* f */) {\n    state.lastIntValue = 0x0C; /* \\f */\n    state.advance();\n    return true\n  }\n  if (ch === 0x72 /* r */) {\n    state.lastIntValue = 0x0D; /* \\r */\n    state.advance();\n    return true\n  }\n  return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ControlLetter\npp$1.regexp_eatControlLetter = function(state) {\n  var ch = state.current();\n  if (isControlLetter(ch)) {\n    state.lastIntValue = ch % 0x20;\n    state.advance();\n    return true\n  }\n  return false\n};\nfunction isControlLetter(ch) {\n  return (\n    (ch >= 0x41 /* A */ && ch <= 0x5A /* Z */) ||\n    (ch >= 0x61 /* a */ && ch <= 0x7A /* z */)\n  )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-RegExpUnicodeEscapeSequence\npp$1.regexp_eatRegExpUnicodeEscapeSequence = function(state, forceU) {\n  if ( forceU === void 0 ) forceU = false;\n\n  var start = state.pos;\n  var switchU = forceU || state.switchU;\n\n  if (state.eat(0x75 /* u */)) {\n    if (this.regexp_eatFixedHexDigits(state, 4)) {\n      var lead = state.lastIntValue;\n      if (switchU && lead >= 0xD800 && lead <= 0xDBFF) {\n        var leadSurrogateEnd = state.pos;\n        if (state.eat(0x5C /* \\ */) && state.eat(0x75 /* u */) && this.regexp_eatFixedHexDigits(state, 4)) {\n          var trail = state.lastIntValue;\n          if (trail >= 0xDC00 && trail <= 0xDFFF) {\n            state.lastIntValue = (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000;\n            return true\n          }\n        }\n        state.pos = leadSurrogateEnd;\n        state.lastIntValue = lead;\n      }\n      return true\n    }\n    if (\n      switchU &&\n      state.eat(0x7B /* { */) &&\n      this.regexp_eatHexDigits(state) &&\n      state.eat(0x7D /* } */) &&\n      isValidUnicode(state.lastIntValue)\n    ) {\n      return true\n    }\n    if (switchU) {\n      state.raise(\"Invalid unicode escape\");\n    }\n    state.pos = start;\n  }\n\n  return false\n};\nfunction isValidUnicode(ch) {\n  return ch >= 0 && ch <= 0x10FFFF\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-IdentityEscape\npp$1.regexp_eatIdentityEscape = function(state) {\n  if (state.switchU) {\n    if (this.regexp_eatSyntaxCharacter(state)) {\n      return true\n    }\n    if (state.eat(0x2F /* / */)) {\n      state.lastIntValue = 0x2F; /* / */\n      return true\n    }\n    return false\n  }\n\n  var ch = state.current();\n  if (ch !== 0x63 /* c */ && (!state.switchN || ch !== 0x6B /* k */)) {\n    state.lastIntValue = ch;\n    state.advance();\n    return true\n  }\n\n  return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalEscape\npp$1.regexp_eatDecimalEscape = function(state) {\n  state.lastIntValue = 0;\n  var ch = state.current();\n  if (ch >= 0x31 /* 1 */ && ch <= 0x39 /* 9 */) {\n    do {\n      state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */);\n      state.advance();\n    } while ((ch = state.current()) >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */)\n    return true\n  }\n  return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClassEscape\npp$1.regexp_eatCharacterClassEscape = function(state) {\n  var ch = state.current();\n\n  if (isCharacterClassEscape(ch)) {\n    state.lastIntValue = -1;\n    state.advance();\n    return true\n  }\n\n  if (\n    state.switchU &&\n    this.options.ecmaVersion >= 9 &&\n    (ch === 0x50 /* P */ || ch === 0x70 /* p */)\n  ) {\n    state.lastIntValue = -1;\n    state.advance();\n    if (\n      state.eat(0x7B /* { */) &&\n      this.regexp_eatUnicodePropertyValueExpression(state) &&\n      state.eat(0x7D /* } */)\n    ) {\n      return true\n    }\n    state.raise(\"Invalid property name\");\n  }\n\n  return false\n};\nfunction isCharacterClassEscape(ch) {\n  return (\n    ch === 0x64 /* d */ ||\n    ch === 0x44 /* D */ ||\n    ch === 0x73 /* s */ ||\n    ch === 0x53 /* S */ ||\n    ch === 0x77 /* w */ ||\n    ch === 0x57 /* W */\n  )\n}\n\n// UnicodePropertyValueExpression ::\n//   UnicodePropertyName `=` UnicodePropertyValue\n//   LoneUnicodePropertyNameOrValue\npp$1.regexp_eatUnicodePropertyValueExpression = function(state) {\n  var start = state.pos;\n\n  // UnicodePropertyName `=` UnicodePropertyValue\n  if (this.regexp_eatUnicodePropertyName(state) && state.eat(0x3D /* = */)) {\n    var name = state.lastStringValue;\n    if (this.regexp_eatUnicodePropertyValue(state)) {\n      var value = state.lastStringValue;\n      this.regexp_validateUnicodePropertyNameAndValue(state, name, value);\n      return true\n    }\n  }\n  state.pos = start;\n\n  // LoneUnicodePropertyNameOrValue\n  if (this.regexp_eatLoneUnicodePropertyNameOrValue(state)) {\n    var nameOrValue = state.lastStringValue;\n    this.regexp_validateUnicodePropertyNameOrValue(state, nameOrValue);\n    return true\n  }\n  return false\n};\npp$1.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) {\n  if (!hasOwn(state.unicodeProperties.nonBinary, name))\n    { state.raise(\"Invalid property name\"); }\n  if (!state.unicodeProperties.nonBinary[name].test(value))\n    { state.raise(\"Invalid property value\"); }\n};\npp$1.regexp_validateUnicodePropertyNameOrValue = function(state, nameOrValue) {\n  if (!state.unicodeProperties.binary.test(nameOrValue))\n    { state.raise(\"Invalid property name\"); }\n};\n\n// UnicodePropertyName ::\n//   UnicodePropertyNameCharacters\npp$1.regexp_eatUnicodePropertyName = function(state) {\n  var ch = 0;\n  state.lastStringValue = \"\";\n  while (isUnicodePropertyNameCharacter(ch = state.current())) {\n    state.lastStringValue += codePointToString(ch);\n    state.advance();\n  }\n  return state.lastStringValue !== \"\"\n};\nfunction isUnicodePropertyNameCharacter(ch) {\n  return isControlLetter(ch) || ch === 0x5F /* _ */\n}\n\n// UnicodePropertyValue ::\n//   UnicodePropertyValueCharacters\npp$1.regexp_eatUnicodePropertyValue = function(state) {\n  var ch = 0;\n  state.lastStringValue = \"\";\n  while (isUnicodePropertyValueCharacter(ch = state.current())) {\n    state.lastStringValue += codePointToString(ch);\n    state.advance();\n  }\n  return state.lastStringValue !== \"\"\n};\nfunction isUnicodePropertyValueCharacter(ch) {\n  return isUnicodePropertyNameCharacter(ch) || isDecimalDigit(ch)\n}\n\n// LoneUnicodePropertyNameOrValue ::\n//   UnicodePropertyValueCharacters\npp$1.regexp_eatLoneUnicodePropertyNameOrValue = function(state) {\n  return this.regexp_eatUnicodePropertyValue(state)\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClass\npp$1.regexp_eatCharacterClass = function(state) {\n  if (state.eat(0x5B /* [ */)) {\n    state.eat(0x5E /* ^ */);\n    this.regexp_classRanges(state);\n    if (state.eat(0x5D /* ] */)) {\n      return true\n    }\n    // Unreachable since it threw \"unterminated regular expression\" error before.\n    state.raise(\"Unterminated character class\");\n  }\n  return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassRanges\n// https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRanges\n// https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRangesNoDash\npp$1.regexp_classRanges = function(state) {\n  while (this.regexp_eatClassAtom(state)) {\n    var left = state.lastIntValue;\n    if (state.eat(0x2D /* - */) && this.regexp_eatClassAtom(state)) {\n      var right = state.lastIntValue;\n      if (state.switchU && (left === -1 || right === -1)) {\n        state.raise(\"Invalid character class\");\n      }\n      if (left !== -1 && right !== -1 && left > right) {\n        state.raise(\"Range out of order in character class\");\n      }\n    }\n  }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtom\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtomNoDash\npp$1.regexp_eatClassAtom = function(state) {\n  var start = state.pos;\n\n  if (state.eat(0x5C /* \\ */)) {\n    if (this.regexp_eatClassEscape(state)) {\n      return true\n    }\n    if (state.switchU) {\n      // Make the same message as V8.\n      var ch$1 = state.current();\n      if (ch$1 === 0x63 /* c */ || isOctalDigit(ch$1)) {\n        state.raise(\"Invalid class escape\");\n      }\n      state.raise(\"Invalid escape\");\n    }\n    state.pos = start;\n  }\n\n  var ch = state.current();\n  if (ch !== 0x5D /* ] */) {\n    state.lastIntValue = ch;\n    state.advance();\n    return true\n  }\n\n  return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassEscape\npp$1.regexp_eatClassEscape = function(state) {\n  var start = state.pos;\n\n  if (state.eat(0x62 /* b */)) {\n    state.lastIntValue = 0x08; /* <BS> */\n    return true\n  }\n\n  if (state.switchU && state.eat(0x2D /* - */)) {\n    state.lastIntValue = 0x2D; /* - */\n    return true\n  }\n\n  if (!state.switchU && state.eat(0x63 /* c */)) {\n    if (this.regexp_eatClassControlLetter(state)) {\n      return true\n    }\n    state.pos = start;\n  }\n\n  return (\n    this.regexp_eatCharacterClassEscape(state) ||\n    this.regexp_eatCharacterEscape(state)\n  )\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassControlLetter\npp$1.regexp_eatClassControlLetter = function(state) {\n  var ch = state.current();\n  if (isDecimalDigit(ch) || ch === 0x5F /* _ */) {\n    state.lastIntValue = ch % 0x20;\n    state.advance();\n    return true\n  }\n  return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\npp$1.regexp_eatHexEscapeSequence = function(state) {\n  var start = state.pos;\n  if (state.eat(0x78 /* x */)) {\n    if (this.regexp_eatFixedHexDigits(state, 2)) {\n      return true\n    }\n    if (state.switchU) {\n      state.raise(\"Invalid escape\");\n    }\n    state.pos = start;\n  }\n  return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalDigits\npp$1.regexp_eatDecimalDigits = function(state) {\n  var start = state.pos;\n  var ch = 0;\n  state.lastIntValue = 0;\n  while (isDecimalDigit(ch = state.current())) {\n    state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */);\n    state.advance();\n  }\n  return state.pos !== start\n};\nfunction isDecimalDigit(ch) {\n  return ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigits\npp$1.regexp_eatHexDigits = function(state) {\n  var start = state.pos;\n  var ch = 0;\n  state.lastIntValue = 0;\n  while (isHexDigit(ch = state.current())) {\n    state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch);\n    state.advance();\n  }\n  return state.pos !== start\n};\nfunction isHexDigit(ch) {\n  return (\n    (ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */) ||\n    (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) ||\n    (ch >= 0x61 /* a */ && ch <= 0x66 /* f */)\n  )\n}\nfunction hexToInt(ch) {\n  if (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) {\n    return 10 + (ch - 0x41 /* A */)\n  }\n  if (ch >= 0x61 /* a */ && ch <= 0x66 /* f */) {\n    return 10 + (ch - 0x61 /* a */)\n  }\n  return ch - 0x30 /* 0 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-LegacyOctalEscapeSequence\n// Allows only 0-377(octal) i.e. 0-255(decimal).\npp$1.regexp_eatLegacyOctalEscapeSequence = function(state) {\n  if (this.regexp_eatOctalDigit(state)) {\n    var n1 = state.lastIntValue;\n    if (this.regexp_eatOctalDigit(state)) {\n      var n2 = state.lastIntValue;\n      if (n1 <= 3 && this.regexp_eatOctalDigit(state)) {\n        state.lastIntValue = n1 * 64 + n2 * 8 + state.lastIntValue;\n      } else {\n        state.lastIntValue = n1 * 8 + n2;\n      }\n    } else {\n      state.lastIntValue = n1;\n    }\n    return true\n  }\n  return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-OctalDigit\npp$1.regexp_eatOctalDigit = function(state) {\n  var ch = state.current();\n  if (isOctalDigit(ch)) {\n    state.lastIntValue = ch - 0x30; /* 0 */\n    state.advance();\n    return true\n  }\n  state.lastIntValue = 0;\n  return false\n};\nfunction isOctalDigit(ch) {\n  return ch >= 0x30 /* 0 */ && ch <= 0x37 /* 7 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Hex4Digits\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigit\n// And HexDigit HexDigit in https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\npp$1.regexp_eatFixedHexDigits = function(state, length) {\n  var start = state.pos;\n  state.lastIntValue = 0;\n  for (var i = 0; i < length; ++i) {\n    var ch = state.current();\n    if (!isHexDigit(ch)) {\n      state.pos = start;\n      return false\n    }\n    state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch);\n    state.advance();\n  }\n  return true\n};\n\n// Object type used to represent tokens. Note that normally, tokens\n// simply exist as properties on the parser object. This is only\n// used for the onToken callback and the external tokenizer.\n\nvar Token = function Token(p) {\n  this.type = p.type;\n  this.value = p.value;\n  this.start = p.start;\n  this.end = p.end;\n  if (p.options.locations)\n    { this.loc = new SourceLocation(p, p.startLoc, p.endLoc); }\n  if (p.options.ranges)\n    { this.range = [p.start, p.end]; }\n};\n\n// ## Tokenizer\n\nvar pp = Parser.prototype;\n\n// Move to the next token\n\npp.next = function(ignoreEscapeSequenceInKeyword) {\n  if (!ignoreEscapeSequenceInKeyword && this.type.keyword && this.containsEsc)\n    { this.raiseRecoverable(this.start, \"Escape sequence in keyword \" + this.type.keyword); }\n  if (this.options.onToken)\n    { this.options.onToken(new Token(this)); }\n\n  this.lastTokEnd = this.end;\n  this.lastTokStart = this.start;\n  this.lastTokEndLoc = this.endLoc;\n  this.lastTokStartLoc = this.startLoc;\n  this.nextToken();\n};\n\npp.getToken = function() {\n  this.next();\n  return new Token(this)\n};\n\n// If we're in an ES6 environment, make parsers iterable\nif (typeof Symbol !== \"undefined\")\n  { pp[Symbol.iterator] = function() {\n    var this$1$1 = this;\n\n    return {\n      next: function () {\n        var token = this$1$1.getToken();\n        return {\n          done: token.type === types$1.eof,\n          value: token\n        }\n      }\n    }\n  }; }\n\n// Toggle strict mode. Re-reads the next number or string to please\n// pedantic tests (`\"use strict\"; 010;` should fail).\n\n// Read a single token, updating the parser object's token-related\n// properties.\n\npp.nextToken = function() {\n  var curContext = this.curContext();\n  if (!curContext || !curContext.preserveSpace) { this.skipSpace(); }\n\n  this.start = this.pos;\n  if (this.options.locations) { this.startLoc = this.curPosition(); }\n  if (this.pos >= this.input.length) { return this.finishToken(types$1.eof) }\n\n  if (curContext.override) { return curContext.override(this) }\n  else { this.readToken(this.fullCharCodeAtPos()); }\n};\n\npp.readToken = function(code) {\n  // Identifier or keyword. '\\uXXXX' sequences are allowed in\n  // identifiers, so '\\' also dispatches to that.\n  if (isIdentifierStart(code, this.options.ecmaVersion >= 6) || code === 92 /* '\\' */)\n    { return this.readWord() }\n\n  return this.getTokenFromCode(code)\n};\n\npp.fullCharCodeAtPos = function() {\n  var code = this.input.charCodeAt(this.pos);\n  if (code <= 0xd7ff || code >= 0xdc00) { return code }\n  var next = this.input.charCodeAt(this.pos + 1);\n  return next <= 0xdbff || next >= 0xe000 ? code : (code << 10) + next - 0x35fdc00\n};\n\npp.skipBlockComment = function() {\n  var startLoc = this.options.onComment && this.curPosition();\n  var start = this.pos, end = this.input.indexOf(\"*/\", this.pos += 2);\n  if (end === -1) { this.raise(this.pos - 2, \"Unterminated comment\"); }\n  this.pos = end + 2;\n  if (this.options.locations) {\n    for (var nextBreak = (void 0), pos = start; (nextBreak = nextLineBreak(this.input, pos, this.pos)) > -1;) {\n      ++this.curLine;\n      pos = this.lineStart = nextBreak;\n    }\n  }\n  if (this.options.onComment)\n    { this.options.onComment(true, this.input.slice(start + 2, end), start, this.pos,\n                           startLoc, this.curPosition()); }\n};\n\npp.skipLineComment = function(startSkip) {\n  var start = this.pos;\n  var startLoc = this.options.onComment && this.curPosition();\n  var ch = this.input.charCodeAt(this.pos += startSkip);\n  while (this.pos < this.input.length && !isNewLine(ch)) {\n    ch = this.input.charCodeAt(++this.pos);\n  }\n  if (this.options.onComment)\n    { this.options.onComment(false, this.input.slice(start + startSkip, this.pos), start, this.pos,\n                           startLoc, this.curPosition()); }\n};\n\n// Called at the start of the parse and after every token. Skips\n// whitespace and comments, and.\n\npp.skipSpace = function() {\n  loop: while (this.pos < this.input.length) {\n    var ch = this.input.charCodeAt(this.pos);\n    switch (ch) {\n    case 32: case 160: // ' '\n      ++this.pos;\n      break\n    case 13:\n      if (this.input.charCodeAt(this.pos + 1) === 10) {\n        ++this.pos;\n      }\n    case 10: case 8232: case 8233:\n      ++this.pos;\n      if (this.options.locations) {\n        ++this.curLine;\n        this.lineStart = this.pos;\n      }\n      break\n    case 47: // '/'\n      switch (this.input.charCodeAt(this.pos + 1)) {\n      case 42: // '*'\n        this.skipBlockComment();\n        break\n      case 47:\n        this.skipLineComment(2);\n        break\n      default:\n        break loop\n      }\n      break\n    default:\n      if (ch > 8 && ch < 14 || ch >= 5760 && nonASCIIwhitespace.test(String.fromCharCode(ch))) {\n        ++this.pos;\n      } else {\n        break loop\n      }\n    }\n  }\n};\n\n// Called at the end of every token. Sets `end`, `val`, and\n// maintains `context` and `exprAllowed`, and skips the space after\n// the token, so that the next one's `start` will point at the\n// right position.\n\npp.finishToken = function(type, val) {\n  this.end = this.pos;\n  if (this.options.locations) { this.endLoc = this.curPosition(); }\n  var prevType = this.type;\n  this.type = type;\n  this.value = val;\n\n  this.updateContext(prevType);\n};\n\n// ### Token reading\n\n// This is the function that is called to fetch the next token. It\n// is somewhat obscure, because it works in character codes rather\n// than characters, and because operator parsing has been inlined\n// into it.\n//\n// All in the name of speed.\n//\npp.readToken_dot = function() {\n  var next = this.input.charCodeAt(this.pos + 1);\n  if (next >= 48 && next <= 57) { return this.readNumber(true) }\n  var next2 = this.input.charCodeAt(this.pos + 2);\n  if (this.options.ecmaVersion >= 6 && next === 46 && next2 === 46) { // 46 = dot '.'\n    this.pos += 3;\n    return this.finishToken(types$1.ellipsis)\n  } else {\n    ++this.pos;\n    return this.finishToken(types$1.dot)\n  }\n};\n\npp.readToken_slash = function() { // '/'\n  var next = this.input.charCodeAt(this.pos + 1);\n  if (this.exprAllowed) { ++this.pos; return this.readRegexp() }\n  if (next === 61) { return this.finishOp(types$1.assign, 2) }\n  return this.finishOp(types$1.slash, 1)\n};\n\npp.readToken_mult_modulo_exp = function(code) { // '%*'\n  var next = this.input.charCodeAt(this.pos + 1);\n  var size = 1;\n  var tokentype = code === 42 ? types$1.star : types$1.modulo;\n\n  // exponentiation operator ** and **=\n  if (this.options.ecmaVersion >= 7 && code === 42 && next === 42) {\n    ++size;\n    tokentype = types$1.starstar;\n    next = this.input.charCodeAt(this.pos + 2);\n  }\n\n  if (next === 61) { return this.finishOp(types$1.assign, size + 1) }\n  return this.finishOp(tokentype, size)\n};\n\npp.readToken_pipe_amp = function(code) { // '|&'\n  var next = this.input.charCodeAt(this.pos + 1);\n  if (next === code) {\n    if (this.options.ecmaVersion >= 12) {\n      var next2 = this.input.charCodeAt(this.pos + 2);\n      if (next2 === 61) { return this.finishOp(types$1.assign, 3) }\n    }\n    return this.finishOp(code === 124 ? types$1.logicalOR : types$1.logicalAND, 2)\n  }\n  if (next === 61) { return this.finishOp(types$1.assign, 2) }\n  return this.finishOp(code === 124 ? types$1.bitwiseOR : types$1.bitwiseAND, 1)\n};\n\npp.readToken_caret = function() { // '^'\n  var next = this.input.charCodeAt(this.pos + 1);\n  if (next === 61) { return this.finishOp(types$1.assign, 2) }\n  return this.finishOp(types$1.bitwiseXOR, 1)\n};\n\npp.readToken_plus_min = function(code) { // '+-'\n  var next = this.input.charCodeAt(this.pos + 1);\n  if (next === code) {\n    if (next === 45 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 62 &&\n        (this.lastTokEnd === 0 || lineBreak.test(this.input.slice(this.lastTokEnd, this.pos)))) {\n      // A `-->` line comment\n      this.skipLineComment(3);\n      this.skipSpace();\n      return this.nextToken()\n    }\n    return this.finishOp(types$1.incDec, 2)\n  }\n  if (next === 61) { return this.finishOp(types$1.assign, 2) }\n  return this.finishOp(types$1.plusMin, 1)\n};\n\npp.readToken_lt_gt = function(code) { // '<>'\n  var next = this.input.charCodeAt(this.pos + 1);\n  var size = 1;\n  if (next === code) {\n    size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2;\n    if (this.input.charCodeAt(this.pos + size) === 61) { return this.finishOp(types$1.assign, size + 1) }\n    return this.finishOp(types$1.bitShift, size)\n  }\n  if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 &&\n      this.input.charCodeAt(this.pos + 3) === 45) {\n    // `<!--`, an XML-style comment that should be interpreted as a line comment\n    this.skipLineComment(4);\n    this.skipSpace();\n    return this.nextToken()\n  }\n  if (next === 61) { size = 2; }\n  return this.finishOp(types$1.relational, size)\n};\n\npp.readToken_eq_excl = function(code) { // '=!'\n  var next = this.input.charCodeAt(this.pos + 1);\n  if (next === 61) { return this.finishOp(types$1.equality, this.input.charCodeAt(this.pos + 2) === 61 ? 3 : 2) }\n  if (code === 61 && next === 62 && this.options.ecmaVersion >= 6) { // '=>'\n    this.pos += 2;\n    return this.finishToken(types$1.arrow)\n  }\n  return this.finishOp(code === 61 ? types$1.eq : types$1.prefix, 1)\n};\n\npp.readToken_question = function() { // '?'\n  var ecmaVersion = this.options.ecmaVersion;\n  if (ecmaVersion >= 11) {\n    var next = this.input.charCodeAt(this.pos + 1);\n    if (next === 46) {\n      var next2 = this.input.charCodeAt(this.pos + 2);\n      if (next2 < 48 || next2 > 57) { return this.finishOp(types$1.questionDot, 2) }\n    }\n    if (next === 63) {\n      if (ecmaVersion >= 12) {\n        var next2$1 = this.input.charCodeAt(this.pos + 2);\n        if (next2$1 === 61) { return this.finishOp(types$1.assign, 3) }\n      }\n      return this.finishOp(types$1.coalesce, 2)\n    }\n  }\n  return this.finishOp(types$1.question, 1)\n};\n\npp.readToken_numberSign = function() { // '#'\n  var ecmaVersion = this.options.ecmaVersion;\n  var code = 35; // '#'\n  if (ecmaVersion >= 13) {\n    ++this.pos;\n    code = this.fullCharCodeAtPos();\n    if (isIdentifierStart(code, true) || code === 92 /* '\\' */) {\n      return this.finishToken(types$1.privateId, this.readWord1())\n    }\n  }\n\n  this.raise(this.pos, \"Unexpected character '\" + codePointToString(code) + \"'\");\n};\n\npp.getTokenFromCode = function(code) {\n  switch (code) {\n  // The interpretation of a dot depends on whether it is followed\n  // by a digit or another two dots.\n  case 46: // '.'\n    return this.readToken_dot()\n\n  // Punctuation tokens.\n  case 40: ++this.pos; return this.finishToken(types$1.parenL)\n  case 41: ++this.pos; return this.finishToken(types$1.parenR)\n  case 59: ++this.pos; return this.finishToken(types$1.semi)\n  case 44: ++this.pos; return this.finishToken(types$1.comma)\n  case 91: ++this.pos; return this.finishToken(types$1.bracketL)\n  case 93: ++this.pos; return this.finishToken(types$1.bracketR)\n  case 123: ++this.pos; return this.finishToken(types$1.braceL)\n  case 125: ++this.pos; return this.finishToken(types$1.braceR)\n  case 58: ++this.pos; return this.finishToken(types$1.colon)\n\n  case 96: // '`'\n    if (this.options.ecmaVersion < 6) { break }\n    ++this.pos;\n    return this.finishToken(types$1.backQuote)\n\n  case 48: // '0'\n    var next = this.input.charCodeAt(this.pos + 1);\n    if (next === 120 || next === 88) { return this.readRadixNumber(16) } // '0x', '0X' - hex number\n    if (this.options.ecmaVersion >= 6) {\n      if (next === 111 || next === 79) { return this.readRadixNumber(8) } // '0o', '0O' - octal number\n      if (next === 98 || next === 66) { return this.readRadixNumber(2) } // '0b', '0B' - binary number\n    }\n\n  // Anything else beginning with a digit is an integer, octal\n  // number, or float.\n  case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57: // 1-9\n    return this.readNumber(false)\n\n  // Quotes produce strings.\n  case 34: case 39: // '\"', \"'\"\n    return this.readString(code)\n\n  // Operators are parsed inline in tiny state machines. '=' (61) is\n  // often referred to. `finishOp` simply skips the amount of\n  // characters it is given as second argument, and returns a token\n  // of the type given by its first argument.\n  case 47: // '/'\n    return this.readToken_slash()\n\n  case 37: case 42: // '%*'\n    return this.readToken_mult_modulo_exp(code)\n\n  case 124: case 38: // '|&'\n    return this.readToken_pipe_amp(code)\n\n  case 94: // '^'\n    return this.readToken_caret()\n\n  case 43: case 45: // '+-'\n    return this.readToken_plus_min(code)\n\n  case 60: case 62: // '<>'\n    return this.readToken_lt_gt(code)\n\n  case 61: case 33: // '=!'\n    return this.readToken_eq_excl(code)\n\n  case 63: // '?'\n    return this.readToken_question()\n\n  case 126: // '~'\n    return this.finishOp(types$1.prefix, 1)\n\n  case 35: // '#'\n    return this.readToken_numberSign()\n  }\n\n  this.raise(this.pos, \"Unexpected character '\" + codePointToString(code) + \"'\");\n};\n\npp.finishOp = function(type, size) {\n  var str = this.input.slice(this.pos, this.pos + size);\n  this.pos += size;\n  return this.finishToken(type, str)\n};\n\npp.readRegexp = function() {\n  var escaped, inClass, start = this.pos;\n  for (;;) {\n    if (this.pos >= this.input.length) { this.raise(start, \"Unterminated regular expression\"); }\n    var ch = this.input.charAt(this.pos);\n    if (lineBreak.test(ch)) { this.raise(start, \"Unterminated regular expression\"); }\n    if (!escaped) {\n      if (ch === \"[\") { inClass = true; }\n      else if (ch === \"]\" && inClass) { inClass = false; }\n      else if (ch === \"/\" && !inClass) { break }\n      escaped = ch === \"\\\\\";\n    } else { escaped = false; }\n    ++this.pos;\n  }\n  var pattern = this.input.slice(start, this.pos);\n  ++this.pos;\n  var flagsStart = this.pos;\n  var flags = this.readWord1();\n  if (this.containsEsc) { this.unexpected(flagsStart); }\n\n  // Validate pattern\n  var state = this.regexpState || (this.regexpState = new RegExpValidationState(this));\n  state.reset(start, pattern, flags);\n  this.validateRegExpFlags(state);\n  this.validateRegExpPattern(state);\n\n  // Create Literal#value property value.\n  var value = null;\n  try {\n    value = new RegExp(pattern, flags);\n  } catch (e) {\n    // ESTree requires null if it failed to instantiate RegExp object.\n    // https://github.com/estree/estree/blob/a27003adf4fd7bfad44de9cef372a2eacd527b1c/es5.md#regexpliteral\n  }\n\n  return this.finishToken(types$1.regexp, {pattern: pattern, flags: flags, value: value})\n};\n\n// Read an integer in the given radix. Return null if zero digits\n// were read, the integer value otherwise. When `len` is given, this\n// will return `null` unless the integer has exactly `len` digits.\n\npp.readInt = function(radix, len, maybeLegacyOctalNumericLiteral) {\n  // `len` is used for character escape sequences. In that case, disallow separators.\n  var allowSeparators = this.options.ecmaVersion >= 12 && len === undefined;\n\n  // `maybeLegacyOctalNumericLiteral` is true if it doesn't have prefix (0x,0o,0b)\n  // and isn't fraction part nor exponent part. In that case, if the first digit\n  // is zero then disallow separators.\n  var isLegacyOctalNumericLiteral = maybeLegacyOctalNumericLiteral && this.input.charCodeAt(this.pos) === 48;\n\n  var start = this.pos, total = 0, lastCode = 0;\n  for (var i = 0, e = len == null ? Infinity : len; i < e; ++i, ++this.pos) {\n    var code = this.input.charCodeAt(this.pos), val = (void 0);\n\n    if (allowSeparators && code === 95) {\n      if (isLegacyOctalNumericLiteral) { this.raiseRecoverable(this.pos, \"Numeric separator is not allowed in legacy octal numeric literals\"); }\n      if (lastCode === 95) { this.raiseRecoverable(this.pos, \"Numeric separator must be exactly one underscore\"); }\n      if (i === 0) { this.raiseRecoverable(this.pos, \"Numeric separator is not allowed at the first of digits\"); }\n      lastCode = code;\n      continue\n    }\n\n    if (code >= 97) { val = code - 97 + 10; } // a\n    else if (code >= 65) { val = code - 65 + 10; } // A\n    else if (code >= 48 && code <= 57) { val = code - 48; } // 0-9\n    else { val = Infinity; }\n    if (val >= radix) { break }\n    lastCode = code;\n    total = total * radix + val;\n  }\n\n  if (allowSeparators && lastCode === 95) { this.raiseRecoverable(this.pos - 1, \"Numeric separator is not allowed at the last of digits\"); }\n  if (this.pos === start || len != null && this.pos - start !== len) { return null }\n\n  return total\n};\n\nfunction stringToNumber(str, isLegacyOctalNumericLiteral) {\n  if (isLegacyOctalNumericLiteral) {\n    return parseInt(str, 8)\n  }\n\n  // `parseFloat(value)` stops parsing at the first numeric separator then returns a wrong value.\n  return parseFloat(str.replace(/_/g, \"\"))\n}\n\nfunction stringToBigInt(str) {\n  if (typeof BigInt !== \"function\") {\n    return null\n  }\n\n  // `BigInt(value)` throws syntax error if the string contains numeric separators.\n  return BigInt(str.replace(/_/g, \"\"))\n}\n\npp.readRadixNumber = function(radix) {\n  var start = this.pos;\n  this.pos += 2; // 0x\n  var val = this.readInt(radix);\n  if (val == null) { this.raise(this.start + 2, \"Expected number in radix \" + radix); }\n  if (this.options.ecmaVersion >= 11 && this.input.charCodeAt(this.pos) === 110) {\n    val = stringToBigInt(this.input.slice(start, this.pos));\n    ++this.pos;\n  } else if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, \"Identifier directly after number\"); }\n  return this.finishToken(types$1.num, val)\n};\n\n// Read an integer, octal integer, or floating-point number.\n\npp.readNumber = function(startsWithDot) {\n  var start = this.pos;\n  if (!startsWithDot && this.readInt(10, undefined, true) === null) { this.raise(start, \"Invalid number\"); }\n  var octal = this.pos - start >= 2 && this.input.charCodeAt(start) === 48;\n  if (octal && this.strict) { this.raise(start, \"Invalid number\"); }\n  var next = this.input.charCodeAt(this.pos);\n  if (!octal && !startsWithDot && this.options.ecmaVersion >= 11 && next === 110) {\n    var val$1 = stringToBigInt(this.input.slice(start, this.pos));\n    ++this.pos;\n    if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, \"Identifier directly after number\"); }\n    return this.finishToken(types$1.num, val$1)\n  }\n  if (octal && /[89]/.test(this.input.slice(start, this.pos))) { octal = false; }\n  if (next === 46 && !octal) { // '.'\n    ++this.pos;\n    this.readInt(10);\n    next = this.input.charCodeAt(this.pos);\n  }\n  if ((next === 69 || next === 101) && !octal) { // 'eE'\n    next = this.input.charCodeAt(++this.pos);\n    if (next === 43 || next === 45) { ++this.pos; } // '+-'\n    if (this.readInt(10) === null) { this.raise(start, \"Invalid number\"); }\n  }\n  if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, \"Identifier directly after number\"); }\n\n  var val = stringToNumber(this.input.slice(start, this.pos), octal);\n  return this.finishToken(types$1.num, val)\n};\n\n// Read a string value, interpreting backslash-escapes.\n\npp.readCodePoint = function() {\n  var ch = this.input.charCodeAt(this.pos), code;\n\n  if (ch === 123) { // '{'\n    if (this.options.ecmaVersion < 6) { this.unexpected(); }\n    var codePos = ++this.pos;\n    code = this.readHexChar(this.input.indexOf(\"}\", this.pos) - this.pos);\n    ++this.pos;\n    if (code > 0x10FFFF) { this.invalidStringToken(codePos, \"Code point out of bounds\"); }\n  } else {\n    code = this.readHexChar(4);\n  }\n  return code\n};\n\npp.readString = function(quote) {\n  var out = \"\", chunkStart = ++this.pos;\n  for (;;) {\n    if (this.pos >= this.input.length) { this.raise(this.start, \"Unterminated string constant\"); }\n    var ch = this.input.charCodeAt(this.pos);\n    if (ch === quote) { break }\n    if (ch === 92) { // '\\'\n      out += this.input.slice(chunkStart, this.pos);\n      out += this.readEscapedChar(false);\n      chunkStart = this.pos;\n    } else if (ch === 0x2028 || ch === 0x2029) {\n      if (this.options.ecmaVersion < 10) { this.raise(this.start, \"Unterminated string constant\"); }\n      ++this.pos;\n      if (this.options.locations) {\n        this.curLine++;\n        this.lineStart = this.pos;\n      }\n    } else {\n      if (isNewLine(ch)) { this.raise(this.start, \"Unterminated string constant\"); }\n      ++this.pos;\n    }\n  }\n  out += this.input.slice(chunkStart, this.pos++);\n  return this.finishToken(types$1.string, out)\n};\n\n// Reads template string tokens.\n\nvar INVALID_TEMPLATE_ESCAPE_ERROR = {};\n\npp.tryReadTemplateToken = function() {\n  this.inTemplateElement = true;\n  try {\n    this.readTmplToken();\n  } catch (err) {\n    if (err === INVALID_TEMPLATE_ESCAPE_ERROR) {\n      this.readInvalidTemplateToken();\n    } else {\n      throw err\n    }\n  }\n\n  this.inTemplateElement = false;\n};\n\npp.invalidStringToken = function(position, message) {\n  if (this.inTemplateElement && this.options.ecmaVersion >= 9) {\n    throw INVALID_TEMPLATE_ESCAPE_ERROR\n  } else {\n    this.raise(position, message);\n  }\n};\n\npp.readTmplToken = function() {\n  var out = \"\", chunkStart = this.pos;\n  for (;;) {\n    if (this.pos >= this.input.length) { this.raise(this.start, \"Unterminated template\"); }\n    var ch = this.input.charCodeAt(this.pos);\n    if (ch === 96 || ch === 36 && this.input.charCodeAt(this.pos + 1) === 123) { // '`', '${'\n      if (this.pos === this.start && (this.type === types$1.template || this.type === types$1.invalidTemplate)) {\n        if (ch === 36) {\n          this.pos += 2;\n          return this.finishToken(types$1.dollarBraceL)\n        } else {\n          ++this.pos;\n          return this.finishToken(types$1.backQuote)\n        }\n      }\n      out += this.input.slice(chunkStart, this.pos);\n      return this.finishToken(types$1.template, out)\n    }\n    if (ch === 92) { // '\\'\n      out += this.input.slice(chunkStart, this.pos);\n      out += this.readEscapedChar(true);\n      chunkStart = this.pos;\n    } else if (isNewLine(ch)) {\n      out += this.input.slice(chunkStart, this.pos);\n      ++this.pos;\n      switch (ch) {\n      case 13:\n        if (this.input.charCodeAt(this.pos) === 10) { ++this.pos; }\n      case 10:\n        out += \"\\n\";\n        break\n      default:\n        out += String.fromCharCode(ch);\n        break\n      }\n      if (this.options.locations) {\n        ++this.curLine;\n        this.lineStart = this.pos;\n      }\n      chunkStart = this.pos;\n    } else {\n      ++this.pos;\n    }\n  }\n};\n\n// Reads a template token to search for the end, without validating any escape sequences\npp.readInvalidTemplateToken = function() {\n  for (; this.pos < this.input.length; this.pos++) {\n    switch (this.input[this.pos]) {\n    case \"\\\\\":\n      ++this.pos;\n      break\n\n    case \"$\":\n      if (this.input[this.pos + 1] !== \"{\") {\n        break\n      }\n\n    // falls through\n    case \"`\":\n      return this.finishToken(types$1.invalidTemplate, this.input.slice(this.start, this.pos))\n\n    // no default\n    }\n  }\n  this.raise(this.start, \"Unterminated template\");\n};\n\n// Used to read escaped characters\n\npp.readEscapedChar = function(inTemplate) {\n  var ch = this.input.charCodeAt(++this.pos);\n  ++this.pos;\n  switch (ch) {\n  case 110: return \"\\n\" // 'n' -> '\\n'\n  case 114: return \"\\r\" // 'r' -> '\\r'\n  case 120: return String.fromCharCode(this.readHexChar(2)) // 'x'\n  case 117: return codePointToString(this.readCodePoint()) // 'u'\n  case 116: return \"\\t\" // 't' -> '\\t'\n  case 98: return \"\\b\" // 'b' -> '\\b'\n  case 118: return \"\\u000b\" // 'v' -> '\\u000b'\n  case 102: return \"\\f\" // 'f' -> '\\f'\n  case 13: if (this.input.charCodeAt(this.pos) === 10) { ++this.pos; } // '\\r\\n'\n  case 10: // ' \\n'\n    if (this.options.locations) { this.lineStart = this.pos; ++this.curLine; }\n    return \"\"\n  case 56:\n  case 57:\n    if (this.strict) {\n      this.invalidStringToken(\n        this.pos - 1,\n        \"Invalid escape sequence\"\n      );\n    }\n    if (inTemplate) {\n      var codePos = this.pos - 1;\n\n      this.invalidStringToken(\n        codePos,\n        \"Invalid escape sequence in template string\"\n      );\n\n      return null\n    }\n  default:\n    if (ch >= 48 && ch <= 55) {\n      var octalStr = this.input.substr(this.pos - 1, 3).match(/^[0-7]+/)[0];\n      var octal = parseInt(octalStr, 8);\n      if (octal > 255) {\n        octalStr = octalStr.slice(0, -1);\n        octal = parseInt(octalStr, 8);\n      }\n      this.pos += octalStr.length - 1;\n      ch = this.input.charCodeAt(this.pos);\n      if ((octalStr !== \"0\" || ch === 56 || ch === 57) && (this.strict || inTemplate)) {\n        this.invalidStringToken(\n          this.pos - 1 - octalStr.length,\n          inTemplate\n            ? \"Octal literal in template string\"\n            : \"Octal literal in strict mode\"\n        );\n      }\n      return String.fromCharCode(octal)\n    }\n    if (isNewLine(ch)) {\n      // Unicode new line characters after \\ get removed from output in both\n      // template literals and strings\n      return \"\"\n    }\n    return String.fromCharCode(ch)\n  }\n};\n\n// Used to read character escape sequences ('\\x', '\\u', '\\U').\n\npp.readHexChar = function(len) {\n  var codePos = this.pos;\n  var n = this.readInt(16, len);\n  if (n === null) { this.invalidStringToken(codePos, \"Bad character escape sequence\"); }\n  return n\n};\n\n// Read an identifier, and return it as a string. Sets `this.containsEsc`\n// to whether the word contained a '\\u' escape.\n//\n// Incrementally adds only escaped chars, adding other chunks as-is\n// as a micro-optimization.\n\npp.readWord1 = function() {\n  this.containsEsc = false;\n  var word = \"\", first = true, chunkStart = this.pos;\n  var astral = this.options.ecmaVersion >= 6;\n  while (this.pos < this.input.length) {\n    var ch = this.fullCharCodeAtPos();\n    if (isIdentifierChar(ch, astral)) {\n      this.pos += ch <= 0xffff ? 1 : 2;\n    } else if (ch === 92) { // \"\\\"\n      this.containsEsc = true;\n      word += this.input.slice(chunkStart, this.pos);\n      var escStart = this.pos;\n      if (this.input.charCodeAt(++this.pos) !== 117) // \"u\"\n        { this.invalidStringToken(this.pos, \"Expecting Unicode escape sequence \\\\uXXXX\"); }\n      ++this.pos;\n      var esc = this.readCodePoint();\n      if (!(first ? isIdentifierStart : isIdentifierChar)(esc, astral))\n        { this.invalidStringToken(escStart, \"Invalid Unicode escape\"); }\n      word += codePointToString(esc);\n      chunkStart = this.pos;\n    } else {\n      break\n    }\n    first = false;\n  }\n  return word + this.input.slice(chunkStart, this.pos)\n};\n\n// Read an identifier or keyword token. Will check for reserved\n// words when necessary.\n\npp.readWord = function() {\n  var word = this.readWord1();\n  var type = types$1.name;\n  if (this.keywords.test(word)) {\n    type = keywords[word];\n  }\n  return this.finishToken(type, word)\n};\n\n// Acorn is a tiny, fast JavaScript parser written in JavaScript.\n\nvar version = \"8.8.0\";\n\nParser.acorn = {\n  Parser: Parser,\n  version: version,\n  defaultOptions: defaultOptions,\n  Position: Position,\n  SourceLocation: SourceLocation,\n  getLineInfo: getLineInfo,\n  Node: Node,\n  TokenType: TokenType,\n  tokTypes: types$1,\n  keywordTypes: keywords,\n  TokContext: TokContext,\n  tokContexts: types,\n  isIdentifierChar: isIdentifierChar,\n  isIdentifierStart: isIdentifierStart,\n  Token: Token,\n  isNewLine: isNewLine,\n  lineBreak: lineBreak,\n  lineBreakG: lineBreakG,\n  nonASCIIwhitespace: nonASCIIwhitespace\n};\n\n// The main exported interface (under `self.acorn` when in the\n// browser) is a `parse` function that takes a code string and\n// returns an abstract syntax tree as specified by [Mozilla parser\n// API][api].\n//\n// [api]: https://developer.mozilla.org/en-US/docs/SpiderMonkey/Parser_API\n\nfunction parse(input, options) {\n  return Parser.parse(input, options)\n}\n\n// This function tries to parse a single expression at a given\n// offset in a string. Useful for parsing mixed-language formats\n// that embed JavaScript expressions.\n\nfunction parseExpressionAt(input, pos, options) {\n  return Parser.parseExpressionAt(input, pos, options)\n}\n\n// Acorn is organized as a tokenizer and a recursive-descent parser.\n// The `tokenizer` export provides an interface to the tokenizer.\n\nfunction tokenizer(input, options) {\n  return Parser.tokenizer(input, options)\n}\n\nexport { Node, Parser, Position, SourceLocation, TokContext, Token, TokenType, defaultOptions, getLineInfo, isIdentifierChar, isIdentifierStart, isNewLine, keywords as keywordTypes, lineBreak, lineBreakG, nonASCIIwhitespace, parse, parseExpressionAt, types as tokContexts, types$1 as tokTypes, tokenizer, version };\n","export function flatten<T>(nodes: T[][], target?: T[]): T[];\r\nexport function flatten<T>(nodes: T[], target?: T[]): T[];\r\nexport function flatten(nodes: any[], target: any[] = []): any[] {\r\n\tfor (let i = 0; i < nodes.length; i += 1) {\r\n\t\tconst node = nodes[i];\r\n\t\tif (Array.isArray(node)) {\r\n\t\t\tflatten(node, target);\r\n\t\t} else {\r\n\t\t\ttarget.push(node);\r\n\t\t}\r\n\t}\r\n\r\n\treturn target;\r\n}\r\n","import { TemplateNode } from '../interfaces';\r\nimport { flatten } from './flatten';\r\n\r\nconst pattern = /^\\s*svelte-ignore\\s+([\\s\\S]+)\\s*$/m;\r\n\r\nexport function extract_svelte_ignore(text: string): string[] {\r\n\tconst match = pattern.exec(text);\r\n\treturn match ? match[1].split(/[^\\S]/).map(x => x.trim()).filter(Boolean) : [];\r\n}\r\n\r\nexport function extract_svelte_ignore_from_comments<Node extends { leadingComments?: Array<{value: string}> }>(node: Node): string[] {\r\n\treturn flatten((node.leadingComments || []).map(comment => extract_svelte_ignore(comment.value)));\r\n}\r\n\r\nexport function extract_ignores_above_position(position: number, template_nodes: TemplateNode[]): string[] {\r\n\tconst previous_node_idx = template_nodes.findIndex(child => child.end === position);\r\n\tif (previous_node_idx === -1) {\r\n\t\treturn [];\r\n\t}\r\n\r\n\tfor (let i = previous_node_idx; i >= 0; i--) {\r\n\t\tconst node = template_nodes[i];\r\n\t\tif (node.type !== 'Comment' && node.type !== 'Text') {\r\n\t\t\treturn [];\r\n\t\t}\r\n\t\tif (node.type === 'Comment') {\r\n\t\t\tif (node.ignores.length) {\r\n\t\t\t\treturn node.ignores;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn [];\r\n}\r\n","export default function fuzzymatch(name: string, names: string[]) {\r\n\tconst set = new FuzzySet(names);\r\n\tconst matches = set.get(name);\r\n\r\n\treturn matches && matches[0] && matches[0][0] > 0.7 ? matches[0][1] : null;\r\n}\r\n\r\n// adapted from https://github.com/Glench/fuzzyset.js/blob/master/lib/fuzzyset.js\r\n// BSD Licensed\r\n\r\nconst GRAM_SIZE_LOWER = 2;\r\nconst GRAM_SIZE_UPPER = 3;\r\n\r\n// return an edit distance from 0 to 1\r\nfunction _distance(str1: string, str2: string) {\r\n\tif (str1 === null && str2 === null) {\r\n\t\tthrow 'Trying to compare two null values';\r\n\t}\r\n\tif (str1 === null || str2 === null) return 0;\r\n\tstr1 = String(str1);\r\n\tstr2 = String(str2);\r\n\r\n\tconst distance = levenshtein(str1, str2);\r\n\tif (str1.length > str2.length) {\r\n\t\treturn 1 - distance / str1.length;\r\n\t} else {\r\n\t\treturn 1 - distance / str2.length;\r\n\t}\r\n}\r\n\r\n// helper functions\r\nfunction levenshtein(str1: string, str2: string) {\r\n\tconst current: number[] = [];\r\n\tlet prev;\r\n\tlet value;\r\n\r\n\tfor (let i = 0; i <= str2.length; i++) {\r\n\t\tfor (let j = 0; j <= str1.length; j++) {\r\n\t\t\tif (i && j) {\r\n\t\t\t\tif (str1.charAt(j - 1) === str2.charAt(i - 1)) {\r\n\t\t\t\t\tvalue = prev;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvalue = Math.min(current[j], current[j - 1], prev) + 1;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tvalue = i + j;\r\n\t\t\t}\r\n\r\n\t\t\tprev = current[j];\r\n\t\t\tcurrent[j] = value;\r\n\t\t}\r\n\t}\r\n\r\n\treturn current.pop();\r\n}\r\n\r\nconst non_word_regex = /[^\\w, ]+/;\r\n\r\nfunction iterate_grams(value: string, gram_size = 2) {\r\n\tconst simplified = '-' + value.toLowerCase().replace(non_word_regex, '') + '-';\r\n\tconst len_diff = gram_size - simplified.length;\r\n\tconst results = [];\r\n\r\n\tif (len_diff > 0) {\r\n\t\tfor (let i = 0; i < len_diff; ++i) {\r\n\t\t\tvalue += '-';\r\n\t\t}\r\n\t}\r\n\tfor (let i = 0; i < simplified.length - gram_size + 1; ++i) {\r\n\t\tresults.push(simplified.slice(i, i + gram_size));\r\n\t}\r\n\treturn results;\r\n}\r\n\r\nfunction gram_counter(value: string, gram_size = 2) {\r\n\t// return an object where key=gram, value=number of occurrences\r\n\tconst result = {};\r\n\tconst grams = iterate_grams(value, gram_size);\r\n\tlet i = 0;\r\n\r\n\tfor (i; i < grams.length; ++i) {\r\n\t\tif (grams[i] in result) {\r\n\t\t\tresult[grams[i]] += 1;\r\n\t\t} else {\r\n\t\t\tresult[grams[i]] = 1;\r\n\t\t}\r\n\t}\r\n\treturn result;\r\n}\r\n\r\nfunction sort_descending(a, b) {\r\n\treturn b[0] - a[0];\r\n}\r\n\r\nclass FuzzySet {\r\n\texact_set = {};\r\n\tmatch_dict = {};\r\n\titems = {};\r\n\r\n\tconstructor(arr: string[]) {\r\n\t\t// initialization\r\n\t\tfor (let i = GRAM_SIZE_LOWER; i < GRAM_SIZE_UPPER + 1; ++i) {\r\n\t\t\tthis.items[i] = [];\r\n\t\t}\r\n\r\n\t\t// add all the items to the set\r\n\t\tfor (let i = 0; i < arr.length; ++i) {\r\n\t\t\tthis.add(arr[i]);\r\n\t\t}\r\n\t}\r\n\r\n\tadd(value: string) {\r\n\t\tconst normalized_value = value.toLowerCase();\r\n\t\tif (normalized_value in this.exact_set) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tlet i = GRAM_SIZE_LOWER;\r\n\t\tfor (i; i < GRAM_SIZE_UPPER + 1; ++i) {\r\n\t\t\tthis._add(value, i);\r\n\t\t}\r\n\t}\r\n\r\n\t_add(value: string, gram_size: number) {\r\n\t\tconst normalized_value = value.toLowerCase();\r\n\t\tconst items = this.items[gram_size] || [];\r\n\t\tconst index = items.length;\r\n\r\n\t\titems.push(0);\r\n\t\tconst gram_counts = gram_counter(normalized_value, gram_size);\r\n\t\tlet sum_of_square_gram_counts = 0;\r\n\t\tlet gram;\r\n\t\tlet gram_count;\r\n\r\n\t\tfor (gram in gram_counts) {\r\n\t\t\tgram_count = gram_counts[gram];\r\n\t\t\tsum_of_square_gram_counts += Math.pow(gram_count, 2);\r\n\t\t\tif (gram in this.match_dict) {\r\n\t\t\t\tthis.match_dict[gram].push([index, gram_count]);\r\n\t\t\t} else {\r\n\t\t\t\tthis.match_dict[gram] = [[index, gram_count]];\r\n\t\t\t}\r\n\t\t}\r\n\t\tconst vector_normal = Math.sqrt(sum_of_square_gram_counts);\r\n\t\titems[index] = [vector_normal, normalized_value];\r\n\t\tthis.items[gram_size] = items;\r\n\t\tthis.exact_set[normalized_value] = value;\r\n\t}\r\n\r\n\tget(value: string) {\r\n\t\tconst normalized_value = value.toLowerCase();\r\n\t\tconst result = this.exact_set[normalized_value];\r\n\r\n\t\tif (result) {\r\n\t\t\treturn [[1, result]];\r\n\t\t}\r\n\r\n\t\tlet results = [];\r\n\t\t// start with high gram size and if there are no results, go to lower gram sizes\r\n\t\tfor (\r\n\t\t\tlet gram_size = GRAM_SIZE_UPPER;\r\n\t\t\tgram_size >= GRAM_SIZE_LOWER;\r\n\t\t\t--gram_size\r\n\t\t) {\r\n\t\t\tresults = this.__get(value, gram_size);\r\n\t\t\tif (results) {\r\n\t\t\t\treturn results;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\t__get(value: string, gram_size: number) {\r\n\t\tconst normalized_value = value.toLowerCase();\r\n\t\tconst matches = {};\r\n\t\tconst gram_counts = gram_counter(normalized_value, gram_size);\r\n\t\tconst items = this.items[gram_size];\r\n\t\tlet sum_of_square_gram_counts = 0;\r\n\t\tlet gram;\r\n\t\tlet gram_count;\r\n\t\tlet i;\r\n\t\tlet index;\r\n\t\tlet other_gram_count;\r\n\r\n\t\tfor (gram in gram_counts) {\r\n\t\t\tgram_count = gram_counts[gram];\r\n\t\t\tsum_of_square_gram_counts += Math.pow(gram_count, 2);\r\n\t\t\tif (gram in this.match_dict) {\r\n\t\t\t\tfor (i = 0; i < this.match_dict[gram].length; ++i) {\r\n\t\t\t\t\tindex = this.match_dict[gram][i][0];\r\n\t\t\t\t\tother_gram_count = this.match_dict[gram][i][1];\r\n\t\t\t\t\tif (index in matches) {\r\n\t\t\t\t\t\tmatches[index] += gram_count * other_gram_count;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tmatches[index] = gram_count * other_gram_count;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst vector_normal = Math.sqrt(sum_of_square_gram_counts);\r\n\t\tlet results = [];\r\n\t\tlet match_score;\r\n\r\n\t\t// build a results list of [score, str]\r\n\t\tfor (const match_index in matches) {\r\n\t\t\tmatch_score = matches[match_index];\r\n\t\t\tresults.push([\r\n\t\t\t\tmatch_score / (vector_normal * items[match_index][0]),\r\n\t\t\t\titems[match_index][1]\r\n\t\t\t]);\r\n\t\t}\r\n\r\n\t\tresults.sort(sort_descending);\r\n\r\n\t\tlet new_results = [];\r\n\t\tconst end_index = Math.min(50, results.length);\r\n\t\t// truncate somewhat arbitrarily to 50\r\n\t\tfor (let i = 0; i < end_index; ++i) {\r\n\t\t\tnew_results.push([\r\n\t\t\t\t_distance(results[i][1], normalized_value),\r\n\t\t\t\tresults[i][1]\r\n\t\t\t]);\r\n\t\t}\r\n\t\tresults = new_results;\r\n\t\tresults.sort(sort_descending);\r\n\r\n\t\tnew_results = [];\r\n\t\tfor (let i = 0; i < results.length; ++i) {\r\n\t\t\tif (results[i][0] == results[0][0]) {\r\n\t\t\t\tnew_results.push([results[i][0], this.exact_set[results[i][1]]]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn new_results;\r\n\t}\r\n}\r\n","const void_element_names = /^(?:area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/;\r\n\r\nexport function is_void(name: string) {\r\n\treturn void_element_names.test(name) || name.toLowerCase() === '!doctype';\r\n}\r\n","export default function list(items: string[], conjunction = 'or') {\r\n\tif (items.length === 1) return items[0];\r\n\treturn `${items.slice(0, -1).join(', ')} ${conjunction} ${items[\r\n\t\titems.length - 1\r\n\t]}`;\r\n}\r\n","// All parser errors should be listed and accessed from here\r\n\r\nimport list from '../utils/list';\r\n\r\n/**\r\n * @internal\r\n */\r\nexport default {\r\n\tcss_syntax_error: (message) => ({\r\n\t\tcode: 'css-syntax-error',\r\n\t\tmessage\r\n\t}),\r\n\tduplicate_attribute: {\r\n\t\tcode: 'duplicate-attribute',\r\n\t\tmessage: 'Attributes need to be unique'\r\n\t},\r\n\tduplicate_element: (slug: string, name: string) => ({\r\n\t\tcode: `duplicate-${slug}`,\r\n\t\tmessage: `A component can only have one <${name}> tag`\r\n\t}),\r\n\tduplicate_style: {\r\n\t\tcode: 'duplicate-style',\r\n\t\tmessage: 'You can only have one top-level <style> tag per component'\r\n\t},\r\n\tempty_attribute_shorthand: {\r\n\t\tcode: 'empty-attribute-shorthand',\r\n\t\tmessage: 'Attribute shorthand cannot be empty'\r\n\t},\r\n\tempty_directive_name: (type: string) => ({\r\n\t\tcode: 'empty-directive-name',\r\n\t\tmessage: `${type} name cannot be empty`\r\n\t}),\r\n\tempty_global_selector: {\r\n\t\tcode: 'css-syntax-error',\r\n\t\tmessage: ':global() must contain a selector'\r\n\t},\r\n\texpected_block_type: {\r\n\t\tcode: 'expected-block-type',\r\n\t\tmessage: 'Expected if, each or await'\r\n\t},\r\n\texpected_name: {\r\n\t\tcode: 'expected-name',\r\n\t\tmessage: 'Expected name'\r\n\t},\r\n\tinvalid_catch_placement_unclosed_block: (block) => ({\r\n\t\tcode: 'invalid-catch-placement',\r\n\t\tmessage: `Expected to close ${block} before seeing {:catch} block`\r\n\t}),\r\n\tinvalid_catch_placement_without_await: {\r\n\t\tcode: 'invalid-catch-placement',\r\n\t\tmessage: 'Cannot have an {:catch} block outside an {#await ...} block'\r\n\t},\r\n\tinvalid_component_definition: {\r\n\t\tcode: 'invalid-component-definition',\r\n\t\tmessage: 'invalid component definition'\r\n\t},\r\n\tinvalid_closing_tag_unopened: (name: string) => ({\r\n\t\tcode: 'invalid-closing-tag',\r\n\t\tmessage: `</${name}> attempted to close an element that was not open`\r\n\t}),\r\n\tinvalid_closing_tag_autoclosed: (name: string, reason: string) => ({\r\n\t\tcode: 'invalid-closing-tag',\r\n\t\tmessage: `</${name}> attempted to close <${name}> that was already automatically closed by <${reason}>`\r\n\t}),\r\n\tinvalid_debug_args: {\r\n\t\tcode: 'invalid-debug-args',\r\n\t\tmessage:\r\n\t\t\t'{@debug ...} arguments must be identifiers, not arbitrary expressions'\r\n\t},\r\n\tinvalid_declaration: {\r\n\t\tcode: 'invalid-declaration',\r\n\t\tmessage: 'Declaration cannot be empty'\r\n\t},\r\n\tinvalid_directive_value: {\r\n\t\tcode: 'invalid-directive-value',\r\n\t\tmessage: 'Directive value must be a JavaScript expression enclosed in curly braces'\r\n\t},\r\n\tinvalid_elseif: {\r\n\t\tcode: 'invalid-elseif',\r\n\t\tmessage: '\\'elseif\\' should be \\'else if\\''\r\n\t},\r\n\tinvalid_elseif_placement_outside_if: {\r\n\t\tcode: 'invalid-elseif-placement',\r\n\t\tmessage: 'Cannot have an {:else if ...} block outside an {#if ...} block'\r\n\t},\r\n\tinvalid_elseif_placement_unclosed_block: (block) => ({\r\n\t\tcode: 'invalid-elseif-placement',\r\n\t\tmessage: `Expected to close ${block} before seeing {:else if ...} block`\r\n\t}),\r\n\tinvalid_else_placement_outside_if: {\r\n\t\tcode: 'invalid-else-placement',\r\n\t\tmessage: 'Cannot have an {:else} block outside an {#if ...} or {#each ...} block'\r\n\t},\r\n\tinvalid_else_placement_unclosed_block: (block) => ({\r\n\t\tcode: 'invalid-else-placement',\r\n\t\tmessage: `Expected to close ${block} before seeing {:else} block`\r\n\t}),\r\n\tinvalid_element_content: (slug: string, name: string) => ({\r\n\t\tcode: `invalid-${slug}-content`,\r\n\t\tmessage: `<${name}> cannot have children`\r\n\t}),\r\n\tinvalid_element_definition: {\r\n\t\tcode: 'invalid-element-definition',\r\n\t\tmessage: 'Invalid element definition'\r\n\t},\r\n\tinvalid_element_placement: (slug: string, name: string) => ({\r\n\t\tcode: `invalid-${slug}-placement`,\r\n\t\tmessage: `<${name}> tags cannot be inside elements or blocks`\r\n\t}),\r\n\tinvalid_ref_directive: (name: string) => ({\r\n\t\tcode: 'invalid-ref-directive',\r\n\t\tmessage: `The ref directive is no longer supported — use \\`bind:this={${name}}\\` instead`\r\n\t}),\r\n\tinvalid_ref_selector: {\r\n\t\tcode: 'invalid-ref-selector',\r\n\t\tmessage: 'ref selectors are no longer supported'\r\n\t},\r\n\tinvalid_self_placement: {\r\n\t\tcode: 'invalid-self-placement',\r\n\t\tmessage: '<svelte:self> components can only exist inside {#if} blocks, {#each} blocks, or slots passed to components'\r\n\t},\r\n\tinvalid_script_instance: {\r\n\t\tcode: 'invalid-script',\r\n\t\tmessage: 'A component can only have one instance-level <script> element'\r\n\t},\r\n\tinvalid_script_module: {\r\n\t\tcode: 'invalid-script',\r\n\t\tmessage: 'A component can only have one <script context=\"module\"> element'\r\n\t},\r\n\tinvalid_script_context_attribute: {\r\n\t\tcode: 'invalid-script',\r\n\t\tmessage: 'context attribute must be static'\r\n\t},\r\n\tinvalid_script_context_value: {\r\n\t\tcode: 'invalid-script',\r\n\t\tmessage: 'If the context attribute is supplied, its value must be \"module\"'\r\n\t},\r\n\tinvalid_tag_name: {\r\n\t\tcode: 'invalid-tag-name',\r\n\t\tmessage: 'Expected valid tag name'\r\n\t},\r\n\tinvalid_tag_name_svelte_element: (tags: string[], match: string) => ({\r\n\t\tcode: 'invalid-tag-name',\r\n\t\tmessage: `Valid <svelte:...> tag names are ${list(tags)}${\r\n\t\t\tmatch ? ' (did you mean ' + match + '?)' : ''\r\n\t\t}`\r\n\t}),\r\n\tinvalid_then_placement_unclosed_block: (block) => ({\r\n\t\tcode: 'invalid-then-placement',\r\n\t\tmessage: `Expected to close ${block} before seeing {:then} block`\r\n\t}),\r\n\tinvalid_then_placement_without_await: {\r\n\t\tcode: 'invalid-then-placement',\r\n\t\tmessage: 'Cannot have an {:then} block outside an {#await ...} block'\r\n\t},\r\n\tinvalid_void_content: (name: string) => ({\r\n\t\tcode: 'invalid-void-content',\r\n\t\tmessage: `<${name}> is a void element and cannot have children, or a closing tag`\r\n\t}),\r\n\tmissing_component_definition: {\r\n\t\tcode: 'missing-component-definition',\r\n\t\tmessage: '<svelte:component> must have a \\'this\\' attribute'\r\n\t},\r\n\tmissing_attribute_value: {\r\n\t\tcode: 'missing-attribute-value',\r\n\t\tmessage: 'Expected value for the attribute'\r\n\t},\r\n\tmissing_element_definition: {\r\n\t\tcode: 'missing-element-definition',\r\n\t\tmessage: '<svelte:element> must have a \\'this\\' attribute'\r\n\t},\r\n\tunclosed_script: {\r\n\t\tcode: 'unclosed-script',\r\n\t\tmessage: '<script> must have a closing tag'\r\n\t},\r\n\tunclosed_style: {\r\n\t\tcode: 'unclosed-style',\r\n\t\tmessage: '<style> must have a closing tag'\r\n\t},\r\n\tunclosed_comment: {\r\n\t\tcode: 'unclosed-comment',\r\n\t\tmessage: 'comment was left open, expected -->'\r\n\t},\r\n\tunclosed_attribute_value: (token: string) => ({\r\n\t\tcode: 'unclosed-attribute-value',\r\n\t\tmessage: `Expected to close the attribute value with ${token}`\r\n\t}),\r\n\tunexpected_block_close: {\r\n\t\tcode: 'unexpected-block-close',\r\n\t\tmessage: 'Unexpected block closing tag'\r\n\t},\r\n\tunexpected_eof: {\r\n\t\tcode: 'unexpected-eof',\r\n\t\tmessage: 'Unexpected end of input'\r\n\t},\r\n\tunexpected_eof_token: (token: string) => ({\r\n\t\tcode: 'unexpected-eof',\r\n\t\tmessage: `Unexpected ${token}`\r\n\t}),\r\n\tunexpected_token: (token: string) => ({\r\n\t\tcode: 'unexpected-token',\r\n\t\tmessage: `Expected ${token}`\r\n\t}),\r\n\tunexpected_token_destructure: {\r\n\t\tcode: 'unexpected-token',\r\n\t\tmessage: 'Expected identifier or destructure pattern'\r\n\t}\r\n};\r\n","// @ts-check\n/** @typedef { import('estree').BaseNode} BaseNode */\n\n/** @typedef {{\n\tskip: () => void;\n\tremove: () => void;\n\treplace: (node: BaseNode) => void;\n}} WalkerContext */\n\nexport class WalkerBase {\n\tconstructor() {\n\t\t/** @type {boolean} */\n\t\tthis.should_skip = false;\n\n\t\t/** @type {boolean} */\n\t\tthis.should_remove = false;\n\n\t\t/** @type {BaseNode | null} */\n\t\tthis.replacement = null;\n\n\t\t/** @type {WalkerContext} */\n\t\tthis.context = {\n\t\t\tskip: () => (this.should_skip = true),\n\t\t\tremove: () => (this.should_remove = true),\n\t\t\treplace: (node) => (this.replacement = node)\n\t\t};\n\t}\n\n\t/**\n\t *\n\t * @param {any} parent\n\t * @param {string} prop\n\t * @param {number} index\n\t * @param {BaseNode} node\n\t */\n\treplace(parent, prop, index, node) {\n\t\tif (parent) {\n\t\t\tif (index !== null) {\n\t\t\t\tparent[prop][index] = node;\n\t\t\t} else {\n\t\t\t\tparent[prop] = node;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t *\n\t * @param {any} parent\n\t * @param {string} prop\n\t * @param {number} index\n\t */\n\tremove(parent, prop, index) {\n\t\tif (parent) {\n\t\t\tif (index !== null) {\n\t\t\t\tparent[prop].splice(index, 1);\n\t\t\t} else {\n\t\t\t\tdelete parent[prop];\n\t\t\t}\n\t\t}\n\t}\n}\n","// @ts-check\nimport { WalkerBase } from './walker.js';\n\n/** @typedef { import('estree').BaseNode} BaseNode */\n/** @typedef { import('./walker.js').WalkerContext} WalkerContext */\n\n/** @typedef {(\n *    this: WalkerContext,\n *    node: BaseNode,\n *    parent: BaseNode,\n *    key: string,\n *    index: number\n * ) => void} SyncHandler */\n\nexport class SyncWalker extends WalkerBase {\n\t/**\n\t *\n\t * @param {SyncHandler} enter\n\t * @param {SyncHandler} leave\n\t */\n\tconstructor(enter, leave) {\n\t\tsuper();\n\n\t\t/** @type {SyncHandler} */\n\t\tthis.enter = enter;\n\n\t\t/** @type {SyncHandler} */\n\t\tthis.leave = leave;\n\t}\n\n\t/**\n\t *\n\t * @param {BaseNode} node\n\t * @param {BaseNode} parent\n\t * @param {string} [prop]\n\t * @param {number} [index]\n\t * @returns {BaseNode}\n\t */\n\tvisit(node, parent, prop, index) {\n\t\tif (node) {\n\t\t\tif (this.enter) {\n\t\t\t\tconst _should_skip = this.should_skip;\n\t\t\t\tconst _should_remove = this.should_remove;\n\t\t\t\tconst _replacement = this.replacement;\n\t\t\t\tthis.should_skip = false;\n\t\t\t\tthis.should_remove = false;\n\t\t\t\tthis.replacement = null;\n\n\t\t\t\tthis.enter.call(this.context, node, parent, prop, index);\n\n\t\t\t\tif (this.replacement) {\n\t\t\t\t\tnode = this.replacement;\n\t\t\t\t\tthis.replace(parent, prop, index, node);\n\t\t\t\t}\n\n\t\t\t\tif (this.should_remove) {\n\t\t\t\t\tthis.remove(parent, prop, index);\n\t\t\t\t}\n\n\t\t\t\tconst skipped = this.should_skip;\n\t\t\t\tconst removed = this.should_remove;\n\n\t\t\t\tthis.should_skip = _should_skip;\n\t\t\t\tthis.should_remove = _should_remove;\n\t\t\t\tthis.replacement = _replacement;\n\n\t\t\t\tif (skipped) return node;\n\t\t\t\tif (removed) return null;\n\t\t\t}\n\n\t\t\tfor (const key in node) {\n\t\t\t\tconst value = node[key];\n\n\t\t\t\tif (typeof value !== \"object\") {\n\t\t\t\t\tcontinue;\n\t\t\t\t} else if (Array.isArray(value)) {\n\t\t\t\t\tfor (let i = 0; i < value.length; i += 1) {\n\t\t\t\t\t\tif (value[i] !== null && typeof value[i].type === 'string') {\n\t\t\t\t\t\t\tif (!this.visit(value[i], node, key, i)) {\n\t\t\t\t\t\t\t\t// removed\n\t\t\t\t\t\t\t\ti--;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (value !== null && typeof value.type === \"string\") {\n\t\t\t\t\tthis.visit(value, node, key, null);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.leave) {\n\t\t\t\tconst _replacement = this.replacement;\n\t\t\t\tconst _should_remove = this.should_remove;\n\t\t\t\tthis.replacement = null;\n\t\t\t\tthis.should_remove = false;\n\n\t\t\t\tthis.leave.call(this.context, node, parent, prop, index);\n\n\t\t\t\tif (this.replacement) {\n\t\t\t\t\tnode = this.replacement;\n\t\t\t\t\tthis.replace(parent, prop, index, node);\n\t\t\t\t}\n\n\t\t\t\tif (this.should_remove) {\n\t\t\t\t\tthis.remove(parent, prop, index);\n\t\t\t\t}\n\n\t\t\t\tconst removed = this.should_remove;\n\n\t\t\t\tthis.replacement = _replacement;\n\t\t\t\tthis.should_remove = _should_remove;\n\n\t\t\t\tif (removed) return null;\n\t\t\t}\n\t\t}\n\n\t\treturn node;\n\t}\n}\n","// @ts-check\nimport { SyncWalker } from './sync.js';\nimport { AsyncWalker } from './async.js';\n\n/** @typedef { import('estree').BaseNode} BaseNode */\n/** @typedef { import('./sync.js').SyncHandler} SyncHandler */\n/** @typedef { import('./async.js').AsyncHandler} AsyncHandler */\n\n/**\n *\n * @param {BaseNode} ast\n * @param {{\n *   enter?: SyncHandler\n *   leave?: SyncHandler\n * }} walker\n * @returns {BaseNode}\n */\nexport function walk(ast, { enter, leave }) {\n\tconst instance = new SyncWalker(enter, leave);\n\treturn instance.visit(ast, null);\n}\n\n/**\n *\n * @param {BaseNode} ast\n * @param {{\n *   enter?: AsyncHandler\n *   leave?: AsyncHandler\n * }} walker\n * @returns {Promise<BaseNode>}\n */\nexport async function asyncWalk(ast, { enter, leave }) {\n\tconst instance = new AsyncWalker(enter, leave);\n\treturn await instance.visit(ast, null);\n}\n","// generate an ID that is, to all intents and purposes, unique\nexport const id = (Math.round(Math.random() * 1e20)).toString(36);\nexport const re = new RegExp(`_${id}_(?:(\\\\d+)|(AT)|(HASH))_(\\\\w+)?`, 'g');\n","import { re } from './id.js';\n\n/** @typedef {import('estree').Comment} Comment */\n/** @typedef {import('estree').Node} Node */\n\n/**\n * @typedef {Node & {\n *   start: number;\n *   end: number;\n *   has_trailing_newline?: boolean\n * }} NodeWithLocation\n */\n\n/**\n * @typedef {Comment & {\n *   start: number;\n *   end: number;\n *   has_trailing_newline?: boolean\n * }} CommentWithLocation\n */\n\n/**\n * @param {CommentWithLocation[]} comments\n * @param {string} raw\n */\nexport const get_comment_handlers = (comments, raw) => ({\n\n\t// pass to acorn options\n\t/**\n\t * @param {boolean} block\n\t * @param {string} value\n\t * @param {number} start\n\t * @param {number} end\n\t */\n\tonComment: (block, value, start, end) => {\n\t\tif (block && /\\n/.test(value)) {\n\t\t\tlet a = start;\n\t\t\twhile (a > 0 && raw[a - 1] !== '\\n') a -= 1;\n\n\t\t\tlet b = a;\n\t\t\twhile (/[ \\t]/.test(raw[b])) b += 1;\n\n\t\t\tconst indentation = raw.slice(a, b);\n\t\t\tvalue = value.replace(new RegExp(`^${indentation}`, 'gm'), '');\n\t\t}\n\n\t\tcomments.push({ type: block ? 'Block' : 'Line', value, start, end });\n\t},\n\n\t// pass to estree-walker options\n\t/** @param {NodeWithLocation} node */\n\tenter(node) {\n\t\tlet comment;\n\n\t\twhile (comments[0] && comments[0].start < node.start) {\n\t\t\tcomment = comments.shift();\n\n\t\t\tcomment.value = comment.value.replace(re, (match, id, at, hash, value) => {\n\t\t\t\tif (hash) return `#${value}`;\n\t\t\t\tif (at) return `@${value}`;\n\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\tconst next = comments[0] || node;\n\t\t\tcomment.has_trailing_newline = (\n\t\t\t\tcomment.type === 'Line' ||\n\t\t\t\t/\\n/.test(raw.slice(comment.end, next.start))\n\t\t\t);\n\n\t\t\t(node.leadingComments || (node.leadingComments = [])).push(comment);\n\t\t}\n\t},\n\n\t/** @param {NodeWithLocation} node */\n\tleave(node) {\n\t\tif (comments[0]) {\n\t\t\tconst slice = raw.slice(node.end, comments[0].start);\n\n\t\t\tif (/^[,) \\t]*$/.test(slice)) {\n\t\t\t\tnode.trailingComments = [comments.shift()];\n\t\t\t}\n\t\t}\n\t}\n});\n","//@ts-check\n/** @typedef { import('estree').Node} Node */\n/** @typedef {Node | {\n *   type: 'PropertyDefinition';\n *   computed: boolean;\n *   value: Node\n * }} NodeWithPropertyDefinition */\n\n/**\n *\n * @param {NodeWithPropertyDefinition} node\n * @param {NodeWithPropertyDefinition} parent\n * @returns boolean\n */\nexport default function is_reference (node, parent) {\n\tif (node.type === 'MemberExpression') {\n\t\treturn !node.computed && is_reference(node.object, node);\n\t}\n\n\tif (node.type === 'Identifier') {\n\t\tif (!parent) return true;\n\n\t\tswitch (parent.type) {\n\t\t\t// disregard `bar` in `foo.bar`\n\t\t\tcase 'MemberExpression': return parent.computed || node === parent.object;\n\n\t\t\t// disregard the `foo` in `class {foo(){}}` but keep it in `class {[foo](){}}`\n\t\t\tcase 'MethodDefinition': return parent.computed;\n\n\t\t\t// disregard the `foo` in `class {foo=bar}` but keep it in `class {[foo]=bar}` and `class {bar=foo}`\n\t\t\tcase 'PropertyDefinition': return parent.computed || node === parent.value;\n\n\t\t\t// disregard the `bar` in `{ bar: foo }`, but keep it in `{ [bar]: foo }`\n\t\t\tcase 'Property': return parent.computed || node === parent.value;\n\n\t\t\t// disregard the `bar` in `export { foo as bar }` or\n\t\t\t// the foo in `import { foo as bar }`\n\t\t\tcase 'ExportSpecifier':\n\t\t\tcase 'ImportSpecifier': return node === parent.local;\n\n\t\t\t// disregard the `foo` in `foo: while (...) { ... break foo; ... continue foo;}`\n\t\t\tcase 'LabeledStatement':\n\t\t\tcase 'BreakStatement':\n\t\t\tcase 'ContinueStatement': return false;\n\t\t\tdefault: return true;\n\t\t}\n\t}\n\n\treturn false;\n}\n","import { walk } from 'estree-walker';\nimport is_reference from 'is-reference';\n\n/** @param {import('estree').Node} expression */\nexport function analyze(expression) {\n\t/** @typedef {import('estree').Node} Node */\n\n\t/** @type {WeakMap<Node, Scope>} */\n\tconst map = new WeakMap();\n\n\t/** @type {Map<string, Node>} */\n\tconst globals = new Map();\n\n\tconst scope = new Scope(null, false);\n\n\t/** @type {[Scope, import('estree').Identifier][]} */\n\tconst references = [];\n\tlet current_scope = scope;\n\n\twalk(expression, {\n\t\t/**\n\t\t * @param {Node} node\n\t\t * @param {any} parent\n\t\t */\n\t\tenter(node, parent) {\n\t\t\tswitch (node.type) {\n\t\t\t\tcase 'Identifier':\n\t\t\t\t\tif (is_reference(node, parent)) {\n\t\t\t\t\t\treferences.push([current_scope, node]);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'ImportDeclaration':\n\t\t\t\t\tnode.specifiers.forEach((specifier) => {\n\t\t\t\t\t\tcurrent_scope.declarations.set(specifier.local.name, specifier);\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'FunctionExpression':\n\t\t\t\tcase 'FunctionDeclaration':\n\t\t\t\tcase 'ArrowFunctionExpression':\n\t\t\t\t\tif (node.type === 'FunctionDeclaration') {\n\t\t\t\t\t\tif (node.id) {\n\t\t\t\t\t\t\tcurrent_scope.declarations.set(node.id.name, node);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tmap.set(node, current_scope = new Scope(current_scope, false));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmap.set(node, current_scope = new Scope(current_scope, false));\n\n\t\t\t\t\t\tif (node.type === 'FunctionExpression' && node.id) {\n\t\t\t\t\t\t\tcurrent_scope.declarations.set(node.id.name, node);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tnode.params.forEach(param => {\n\t\t\t\t\t\textract_names(param).forEach(name => {\n\t\t\t\t\t\t\tcurrent_scope.declarations.set(name, node);\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'ForStatement':\n\t\t\t\tcase 'ForInStatement':\n\t\t\t\tcase 'ForOfStatement':\n\t\t\t\t\tmap.set(node, current_scope = new Scope(current_scope, true));\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'BlockStatement':\n\t\t\t\t\tmap.set(node, current_scope = new Scope(current_scope, true));\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'ClassDeclaration':\n\t\t\t\tcase 'VariableDeclaration':\n\t\t\t\t\tcurrent_scope.add_declaration(node);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'CatchClause':\n\t\t\t\t\tmap.set(node, current_scope = new Scope(current_scope, true));\n\n\t\t\t\t\tif (node.param) {\n\t\t\t\t\t\textract_names(node.param).forEach(name => {\n\t\t\t\t\t\t\tcurrent_scope.declarations.set(name, node.param);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\n\t\t/** @param {Node} node */\n\t\tleave(node) {\n\t\t\tif (map.has(node)) {\n\t\t\t\tcurrent_scope = current_scope.parent;\n\t\t\t}\n\t\t}\n\t});\n\n\tfor (let i = references.length - 1; i >= 0; --i) {\n\t\tconst [scope, reference] = references[i];\n\n\t\tif (!scope.references.has(reference.name)) {\n\t\t\tadd_reference(scope, reference.name);\n\t\t}\n\t\tif (!scope.find_owner(reference.name)) {\n\t\t\tglobals.set(reference.name, reference);\n\t\t}\n\t}\n\n\treturn { map, scope, globals };\n}\n\n/**\n *\n * @param {Scope} scope\n * @param {string} name\n */\nfunction add_reference(scope, name) {\n\tscope.references.add(name);\n\tif (scope.parent) add_reference(scope.parent, name);\n}\n\nexport class Scope {\n\tconstructor(parent, block) {\n\t\t/** @type {Scope | null} */\n\t\tthis.parent = parent;\n\n\t\t/** @type {boolean} */\n\t\tthis.block = block;\n\n\t\t/** @type {Map<string, import('estree').Node>} */\n\t\tthis.declarations = new Map();\n\n\t\t/** @type {Set<string>} */\n\t\tthis.initialised_declarations = new Set();\n\n\t\t/** @type {Set<string>} */\n\t\tthis.references = new Set();\n\t}\n\n\t/** @param {import('estree').VariableDeclaration | import('estree').ClassDeclaration} node */\n\tadd_declaration(node) {\n\t\tif (node.type === 'VariableDeclaration') {\n\t\t\tif (node.kind === 'var' && this.block && this.parent) {\n\t\t\t\tthis.parent.add_declaration(node);\n\t\t\t} else {\n\t\t\t\t/** @param {import('estree').VariableDeclarator} declarator */\n\t\t\t\tconst handle_declarator = (declarator) => {\n\t\t\t\t\textract_names(declarator.id).forEach(name => {\n\t\t\t\t\t\tthis.declarations.set(name, node);\n\t\t\t\t\t\tif (declarator.init) this.initialised_declarations.add(name);\n\t\t\t\t\t});;\n\t\t\t\t}\n\n\t\t\t\tnode.declarations.forEach(handle_declarator);\n\t\t\t}\n\t\t} else if (node.id) {\n\t\t\tthis.declarations.set(node.id.name, node);\n\t\t}\n\t}\n\n\t/**\n\t * @param {string} name\n\t * @returns {Scope | null}\n\t */\n\tfind_owner(name) {\n\t\tif (this.declarations.has(name)) return this;\n\t\treturn this.parent && this.parent.find_owner(name);\n\t}\n\n\t/**\n\t * @param {string} name\n\t * @returns {boolean}\n\t */\n\thas(name) {\n\t\treturn (\n\t\t\tthis.declarations.has(name) || (!!this.parent && this.parent.has(name))\n\t\t);\n\t}\n}\n\n/**\n * @param {import('estree').Node} param\n * @returns {string[]}\n */\nexport function extract_names(param) {\n\treturn extract_identifiers(param).map(node => node.name);\n}\n\n/**\n * @param {import('estree').Node} param\n * @param {import('estree').Identifier[]} nodes\n * @returns {import('estree').Identifier[]}\n */\nexport function extract_identifiers(param, nodes = []) {\n\tswitch (param.type) {\n\t\tcase 'Identifier':\n\t\t\tnodes.push(param);\n\t\t\tbreak;\n\n\t\tcase 'MemberExpression':\n\t\t\tlet object = param;\n\t\t\twhile (object.type === 'MemberExpression') {\n\t\t\t\tobject = /** @type {any} */ (object.object);\n\t\t\t}\n\t\t\tnodes.push(/** @type {any} */ (object));\n\t\t\tbreak;\n\n\t\tcase 'ObjectPattern':\n\t\t\t/** @param {import('estree').Property | import('estree').RestElement} prop */\n\t\t\tconst handle_prop = (prop) => {\n\t\t\t\tif (prop.type === 'RestElement') {\n\t\t\t\t\textract_identifiers(prop.argument, nodes);\n\t\t\t\t} else {\n\t\t\t\t\textract_identifiers(prop.value, nodes);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tparam.properties.forEach(handle_prop);\n\t\t\tbreak;\n\n\t\tcase 'ArrayPattern':\n\t\t\t/** @param {import('estree').Node} element */\n\t\t\tconst handle_element = (element) => {\n\t\t\t\tif (element) extract_identifiers(element, nodes);\n\t\t\t};\n\n\t\t\tparam.elements.forEach(handle_element);\n\t\t\tbreak;\n\n\t\tcase 'RestElement':\n\t\t\textract_identifiers(param.argument, nodes);\n\t\t\tbreak;\n\n\t\tcase 'AssignmentPattern':\n\t\t\textract_identifiers(param.left, nodes);\n\t\t\tbreak;\n\t}\n\n\treturn nodes;\n}\n","/**\n * Does `array.push` for all `items`. Needed because `array.push(...items)` throws\n * \"Maximum call stack size exceeded\" when `items` is too big of an array.\n *\n * @param {any[]} array \n * @param {any[]} items \n */\nexport function push_array(array, items) {\n\tfor (let i = 0; i < items.length; i++) {\n\t\tarray.push(items[i]);\n\t}\n};\n","// heavily based on https://github.com/davidbonnet/astring\n// released under MIT license https://github.com/davidbonnet/astring/blob/master/LICENSE\n\nimport { re } from '../utils/id.js';\nimport { push_array } from '../utils/push_array.js';\n\n/** @typedef {import('estree').ArrowFunctionExpression} ArrowFunctionExpression */\n/** @typedef {import('estree').BinaryExpression} BinaryExpression */\n/** @typedef {import('estree').CallExpression} CallExpression */\n/** @typedef {import('estree').Comment} Comment */\n/** @typedef {import('estree').ExportSpecifier} ExportSpecifier */\n/** @typedef {import('estree').Expression} Expression */\n/** @typedef {import('estree').FunctionDeclaration} FunctionDeclaration */\n/** @typedef {import('estree').ImportDeclaration} ImportDeclaration */\n/** @typedef {import('estree').ImportSpecifier} ImportSpecifier */\n/** @typedef {import('estree').Literal} Literal */\n/** @typedef {import('estree').LogicalExpression} LogicalExpression */\n/** @typedef {import('estree').NewExpression} NewExpression */\n/** @typedef {import('estree').Node} Node */\n/** @typedef {import('estree').ObjectExpression} ObjectExpression */\n/** @typedef {import('estree').Pattern} Pattern */\n/** @typedef {import('estree').SequenceExpression} SequenceExpression */\n/** @typedef {import('estree').SimpleCallExpression} SimpleCallExpression */\n/** @typedef {import('estree').SwitchStatement} SwitchStatement */\n/** @typedef {import('estree').VariableDeclaration} VariableDeclaration */\n\n/**\n * @typedef {{\n *   content: string;\n *   loc?: {\n *     start: { line: number; column: number; };\n *     end: { line: number; column: number; };\n *   };\n *   has_newline: boolean;\n * }} Chunk\n */\n\n/**\n * @typedef {(node: any, state: State) => Chunk[]} Handler\n */\n\n/**\n * @typedef {{\n *   indent: string;\n *   scope: any; // TODO import from periscopic\n *   scope_map: WeakMap<Node, any>;\n *   getName: (name: string) => string;\n *   deconflicted: WeakMap<Node, Map<string, string>>;\n *   comments: Comment[];\n * }} State\n */\n\n/**\n * @param {Node} node\n * @param {State} state\n * @returns {Chunk[]}\n */\nexport function handle(node, state) {\n\tconst handler = handlers[node.type];\n\n\tif (!handler) {\n\t\tthrow new Error(`Not implemented ${node.type}`);\n\t}\n\n\tconst result = handler(node, state);\n\n\tif (node.leadingComments) {\n\t\tresult.unshift(c(node.leadingComments.map(comment => comment.type === 'Block'\n\t\t\t? `/*${comment.value}*/${/** @type {any} */ (comment).has_trailing_newline ? `\\n${state.indent}` : ` `}`\n\t\t\t: `//${comment.value}${/** @type {any} */ (comment).has_trailing_newline ? `\\n${state.indent}` : ` `}`).join(``)));\n\t}\n\n\tif (node.trailingComments) {\n\t\tstate.comments.push(node.trailingComments[0]); // there is only ever one\n\t}\n\n\treturn result;\n}\n\n/**\n * @param {string} content\n * @param {Node} [node]\n * @returns {Chunk}\n */\nfunction c(content, node) {\n\treturn {\n\t\tcontent,\n\t\tloc: node && node.loc,\n\t\thas_newline: /\\n/.test(content)\n\t};\n}\n\nconst OPERATOR_PRECEDENCE = {\n\t'||': 2,\n\t'&&': 3,\n\t'??': 4,\n\t'|': 5,\n\t'^': 6,\n\t'&': 7,\n\t'==': 8,\n\t'!=': 8,\n\t'===': 8,\n\t'!==': 8,\n\t'<': 9,\n\t'>': 9,\n\t'<=': 9,\n\t'>=': 9,\n\tin: 9,\n\tinstanceof: 9,\n\t'<<': 10,\n\t'>>': 10,\n\t'>>>': 10,\n\t'+': 11,\n\t'-': 11,\n\t'*': 12,\n\t'%': 12,\n\t'/': 12,\n\t'**': 13,\n};\n\n/** @type {Record<string, number>} */\nconst EXPRESSIONS_PRECEDENCE = {\n\tArrayExpression: 20,\n\tTaggedTemplateExpression: 20,\n\tThisExpression: 20,\n\tIdentifier: 20,\n\tLiteral: 18,\n\tTemplateLiteral: 20,\n\tSuper: 20,\n\tSequenceExpression: 20,\n\tMemberExpression: 19,\n\tCallExpression: 19,\n\tNewExpression: 19,\n\tAwaitExpression: 17,\n\tClassExpression: 17,\n\tFunctionExpression: 17,\n\tObjectExpression: 17,\n\tUpdateExpression: 16,\n\tUnaryExpression: 15,\n\tBinaryExpression: 14,\n\tLogicalExpression: 13,\n\tConditionalExpression: 4,\n\tArrowFunctionExpression: 3,\n\tAssignmentExpression: 3,\n\tYieldExpression: 2,\n\tRestElement: 1\n};\n\n/**\n *\n * @param {Expression} node\n * @param {BinaryExpression | LogicalExpression} parent\n * @param {boolean} is_right\n * @returns\n */\nfunction needs_parens(node, parent, is_right) {\n\t// special case where logical expressions and coalesce expressions cannot be mixed,\n\t// either of them need to be wrapped with parentheses\n\tif (\n\t\tnode.type === 'LogicalExpression' &&\n\t\tparent.type === 'LogicalExpression' &&\n\t\t((parent.operator === '??' && node.operator !== '??') ||\n\t\t\t(parent.operator !== '??' && node.operator === '??'))\n\t) {\n\t\treturn true;\n\t}\n\n\tconst precedence = EXPRESSIONS_PRECEDENCE[node.type];\n\tconst parent_precedence = EXPRESSIONS_PRECEDENCE[parent.type];\n\n\tif (precedence !== parent_precedence) {\n\t\t// Different node types\n\t\treturn (\n\t\t\t(!is_right &&\n\t\t\t\tprecedence === 15 &&\n\t\t\t\tparent_precedence === 14 &&\n\t\t\t\tparent.operator === '**') ||\n\t\t\tprecedence < parent_precedence\n\t\t);\n\t}\n\n\tif (precedence !== 13 && precedence !== 14) {\n\t\t// Not a `LogicalExpression` or `BinaryExpression`\n\t\treturn false;\n\t}\n\n\tif (/** @type {BinaryExpression} */ (node).operator === '**' && parent.operator === '**') {\n\t\t// Exponentiation operator has right-to-left associativity\n\t\treturn !is_right;\n\t}\n\n\tif (is_right) {\n\t\t// Parenthesis are used if both operators have the same precedence\n\t\treturn (\n\t\t\tOPERATOR_PRECEDENCE[/** @type {BinaryExpression} */ (node).operator] <=\n\t\t\tOPERATOR_PRECEDENCE[parent.operator]\n\t\t);\n\t}\n\n\treturn (\n\t\tOPERATOR_PRECEDENCE[/** @type {BinaryExpression} */ (node).operator] <\n\t\tOPERATOR_PRECEDENCE[parent.operator]\n\t);\n}\n\n/** @param {Node} node */\nfunction has_call_expression(node) {\n\twhile (node) {\n\t\tif (node.type[0] === 'CallExpression') {\n\t\t\treturn true;\n\t\t} else if (node.type === 'MemberExpression') {\n\t\t\tnode = node.object;\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t}\n}\n\n/** @param {Chunk[]} chunks */\nconst has_newline = (chunks) => {\n\tfor (let i = 0; i < chunks.length; i += 1) {\n\t\tif (chunks[i].has_newline) return true;\n\t}\n\treturn false;\n};\n\n/** @param {Chunk[]} chunks */\nconst get_length = (chunks) => {\n\tlet total = 0;\n\tfor (let i = 0; i < chunks.length; i += 1) {\n\t\ttotal += chunks[i].content.length;\n\t}\n\treturn total;\n};\n\n/**\n * @param {number} a\n * @param {number} b\n */\nconst sum = (a, b) => a + b;\n\n/**\n * @param {Chunk[][]} nodes\n * @param {Chunk} separator\n * @returns {Chunk[]}\n */\nconst join = (nodes, separator) => {\n\tif (nodes.length === 0) return [];\n\n\tconst joined = [...nodes[0]];\n\tfor (let i = 1; i < nodes.length; i += 1) {\n\t\tjoined.push(separator);\n\t\tpush_array(joined, nodes[i]);\n\t}\n\treturn joined;\n};\n\n/**\n * @param {(node: any, state: State) => Chunk[]} fn\n */\nconst scoped = (fn) => {\n\t/**\n\t * @param {any} node\n\t * @param {State} state\n\t */\n\tconst scoped_fn = (node, state) => {\n\t\treturn fn(node, {\n\t\t\t...state,\n\t\t\tscope: state.scope_map.get(node)\n\t\t});\n\t};\n\n\treturn scoped_fn;\n};\n\n/**\n * @param {string} name\n * @param {Set<string>} names\n */\nconst deconflict = (name, names) => {\n\tconst original = name;\n\tlet i = 1;\n\n\twhile (names.has(name)) {\n\t\tname = `${original}$${i++}`;\n\t}\n\n\treturn name;\n};\n\n/**\n * @param {Node[]} nodes\n * @param {State} state\n */\nconst handle_body = (nodes, state) => {\n\tconst chunks = [];\n\n\tconst body = nodes.map(statement => {\n\t\tconst chunks = handle(statement, {\n\t\t\t...state,\n\t\t\tindent: state.indent\n\t\t});\n\n\t\tlet add_newline = false;\n\n\t\twhile (state.comments.length) {\n\t\t\tconst comment = state.comments.shift();\n\t\t\tconst prefix = add_newline ? `\\n${state.indent}` : ` `;\n\n\t\t\tchunks.push(c(comment.type === 'Block'\n\t\t\t\t? `${prefix}/*${comment.value}*/`\n\t\t\t\t: `${prefix}//${comment.value}`));\n\n\t\t\tadd_newline = (comment.type === 'Line');\n\t\t}\n\n\t\treturn chunks;\n\t});\n\n\tlet needed_padding = false;\n\n\tfor (let i = 0; i < body.length; i += 1) {\n\t\tconst needs_padding = has_newline(body[i]);\n\n\t\tif (i > 0) {\n\t\t\tchunks.push(\n\t\t\t\tc(needs_padding || needed_padding ? `\\n\\n${state.indent}` : `\\n${state.indent}`)\n\t\t\t);\n\t\t}\n\n\t\tpush_array(chunks, body[i]);\n\n\t\tneeded_padding = needs_padding;\n\t}\n\n\treturn chunks;\n};\n\n/**\n * @param {VariableDeclaration} node\n * @param {State} state\n */\nconst handle_var_declaration = (node, state) => {\n\tconst chunks = [c(`${node.kind} `)];\n\n\tconst declarators = node.declarations.map(d => handle(d, {\n\t\t...state,\n\t\tindent: state.indent + (node.declarations.length === 1 ? '' : '\\t')\n\t}));\n\n\tconst multiple_lines = (\n\t\tdeclarators.some(has_newline) ||\n\t\t(declarators.map(get_length).reduce(sum, 0) + (state.indent.length + declarators.length - 1) * 2) > 80\n\t);\n\n\tconst separator = c(multiple_lines ? `,\\n${state.indent}\\t` : ', ');\n\n\tpush_array(chunks, join(declarators, separator));\n\n\treturn chunks;\n};\n\n/** @type {Record<string, Handler>} */\nconst handlers = {\n\tProgram(node, state) {\n\t\treturn handle_body(node.body, state);\n\t},\n\n\tBlockStatement: scoped((node, state) => {\n\t\treturn [\n\t\t\tc(`{\\n${state.indent}\\t`),\n\t\t\t...handle_body(node.body, { ...state, indent: state.indent + '\\t' }),\n\t\t\tc(`\\n${state.indent}}`)\n\t\t];\n\t}),\n\n\tEmptyStatement(node, state) {\n\t\treturn [c(';')];\n\t},\n\n\tParenthesizedExpression(node, state) {\n\t\treturn handle(node.expression, state);\n\t},\n\n\tExpressionStatement(node, state) {\n\t\tif (\n\t\t\tnode.expression.type === 'AssignmentExpression' &&\n\t\t\tnode.expression.left.type === 'ObjectPattern'\n\t\t) {\n\t\t\t// is an AssignmentExpression to an ObjectPattern\n\t\t\treturn [\n\t\t\t\tc('('),\n\t\t\t\t...handle(node.expression, state),\n\t\t\t\tc(');')\n\t\t\t];\n\t\t}\n\n\t\treturn [\n\t\t\t...handle(node.expression, state),\n\t\t\tc(';')\n\t\t];\n\t},\n\n\tIfStatement(node, state) {\n\t\tconst chunks = [\n\t\t\tc('if ('),\n\t\t\t...handle(node.test, state),\n\t\t\tc(') '),\n\t\t\t...handle(node.consequent, state)\n\t\t];\n\n\t\tif (node.alternate) {\n\t\t\tchunks.push(c(' else '));\n\t\t\tpush_array(chunks, handle(node.alternate, state));\n\t\t}\n\n\t\treturn chunks;\n\t},\n\n\tLabeledStatement(node, state) {\n\t\treturn [\n\t\t\t...handle(node.label, state),\n\t\t\tc(': '),\n\t\t\t...handle(node.body, state)\n\t\t];\n\t},\n\n\tBreakStatement(node, state) {\n\t\treturn node.label\n\t\t\t? [c('break '), ...handle(node.label, state), c(';')]\n\t\t\t: [c('break;')];\n\t},\n\n\tContinueStatement(node, state) {\n\t\treturn node.label\n\t\t\t? [c('continue '), ...handle(node.label, state), c(';')]\n\t\t\t: [c('continue;')];\n\t},\n\n\tWithStatement(node, state) {\n\t\treturn [\n\t\t\tc('with ('),\n\t\t\t...handle(node.object, state),\n\t\t\tc(') '),\n\t\t\t...handle(node.body, state)\n\t\t];\n\t},\n\n\tSwitchStatement(/** @type {SwitchStatement} */ node, state) {\n\t\tconst chunks = [\n\t\t\tc('switch ('),\n\t\t\t...handle(node.discriminant, state),\n\t\t\tc(') {')\n\t\t];\n\n\t\tnode.cases.forEach(block => {\n\t\t\tif (block.test) {\n\t\t\t\tchunks.push(c(`\\n${state.indent}\\tcase `));\n\t\t\t\tpush_array(chunks, handle(block.test, { ...state, indent: `${state.indent}\\t` }));\n\t\t\t\tchunks.push(c(':'));\n\t\t\t} else {\n\t\t\t\tchunks.push(c(`\\n${state.indent}\\tdefault:`))\n\t\t\t}\n\n\t\t\tblock.consequent.forEach(statement => {\n\t\t\t\tchunks.push(c(`\\n${state.indent}\\t\\t`));\n\t\t\t\tpush_array(chunks, handle(statement, { ...state, indent: `${state.indent}\\t\\t` }));\n\t\t\t});\n\t\t});\n\n\t\tchunks.push(c(`\\n${state.indent}}`));\n\n\t\treturn chunks;\n\t},\n\n\tReturnStatement(node, state) {\n\t\tif (node.argument) {\n\t\t\tconst contains_comment = node.argument.leadingComments && node.argument.leadingComments.some((/** @type import('../utils/comments.js').CommentWithLocation */ comment) => comment.has_trailing_newline);\n\t\t\treturn [\n\t\t\t\tc(contains_comment ? 'return (' : 'return '),\n\t\t\t\t...handle(node.argument, state),\n\t\t\t\tc(contains_comment ? ');' : ';')\n\t\t\t];\n\t\t} else {\n\t\t\treturn [c('return;')];\n\t\t}\n\t},\n\n\tThrowStatement(node, state) {\n\t\treturn [\n\t\t\tc('throw '),\n\t\t\t...handle(node.argument, state),\n\t\t\tc(';')\n\t\t];\n\t},\n\n\tTryStatement(node, state) {\n\t\tconst chunks = [\n\t\t\tc('try '),\n\t\t\t...handle(node.block, state)\n\t\t];\n\n\t\tif (node.handler) {\n\t\t\tif (node.handler.param) {\n\t\t\t\tchunks.push(c(' catch('));\n\t\t\t\tpush_array(chunks, handle(node.handler.param, state));\n\t\t\t\tchunks.push(c(') '));\n\t\t\t} else {\n\t\t\t\tchunks.push(c(' catch '));\n\t\t\t}\n\n\t\t\tpush_array(chunks, handle(node.handler.body, state));\n\t\t}\n\n\t\tif (node.finalizer) {\n\t\t\tchunks.push(c(' finally '));\n\t\t\tpush_array(chunks, handle(node.finalizer, state));\n\t\t}\n\n\t\treturn chunks;\n\t},\n\n\tWhileStatement(node, state) {\n\t\treturn [\n\t\t\tc('while ('),\n\t\t\t...handle(node.test, state),\n\t\t\tc(') '),\n\t\t\t...handle(node.body, state)\n\t\t];\n\t},\n\n\tDoWhileStatement(node, state) {\n\t\treturn [\n\t\t\tc('do '),\n\t\t\t...handle(node.body, state),\n\t\t\tc(' while ('),\n\t\t\t...handle(node.test, state),\n\t\t\tc(');')\n\t\t];\n\t},\n\n\tForStatement: scoped((node, state) => {\n\t\tconst chunks = [c('for (')];\n\n\t\tif (node.init) {\n\t\t\tif (node.init.type === 'VariableDeclaration') {\n\t\t\t\tpush_array(chunks, handle_var_declaration(node.init, state));\n\t\t\t} else {\n\t\t\t\tpush_array(chunks, handle(node.init, state));\n\t\t\t}\n\t\t}\n\n\t\tchunks.push(c('; '));\n\t\tif (node.test) push_array(chunks, handle(node.test, state));\n\t\tchunks.push(c('; '));\n\t\tif (node.update) push_array(chunks, handle(node.update, state));\n\n\t\tchunks.push(c(') '));\n\t\tpush_array(chunks, handle(node.body, state));\n\n\t\treturn chunks;\n\t}),\n\n\tForInStatement: scoped((node, state) => {\n\t\tconst chunks = [\n\t\t\tc(`for ${node.await ? 'await ' : ''}(`)\n\t\t];\n\n\t\tif (node.left.type === 'VariableDeclaration') {\n\t\t\tpush_array(chunks, handle_var_declaration(node.left, state));\n\t\t} else {\n\t\t\tpush_array(chunks, handle(node.left, state));\n\t\t}\n\n\t\tchunks.push(c(node.type === 'ForInStatement' ? ` in ` : ` of `));\n\t\tpush_array(chunks, handle(node.right, state));\n\t\tchunks.push(c(') '));\n\t\tpush_array(chunks, handle(node.body, state));\n\n\t\treturn chunks;\n\t}),\n\n\tDebuggerStatement(node, state) {\n\t\treturn [c('debugger', node), c(';')];\n\t},\n\n\tFunctionDeclaration: scoped((/** @type {FunctionDeclaration} */ node, state) => {\n\t\tconst chunks = [];\n\n\t\tif (node.async) chunks.push(c('async '));\n\t\tchunks.push(c(node.generator ? 'function* ' : 'function '));\n\t\tif (node.id) push_array(chunks, handle(node.id, state));\n\t\tchunks.push(c('('));\n\n\t\tconst params = node.params.map(p => handle(p, {\n\t\t\t...state,\n\t\t\tindent: state.indent + '\\t'\n\t\t}));\n\n\t\tconst multiple_lines = (\n\t\t\tparams.some(has_newline) ||\n\t\t\t(params.map(get_length).reduce(sum, 0) + (state.indent.length + params.length - 1) * 2) > 80\n\t\t);\n\n\t\tconst separator = c(multiple_lines ? `,\\n${state.indent}` : ', ');\n\n\t\tif (multiple_lines) {\n\t\t\tchunks.push(c(`\\n${state.indent}\\t`));\n\t\t\tpush_array(chunks, join(params, separator));\n\t\t\tchunks.push(c(`\\n${state.indent}`));\n\t\t} else {\n\t\t\tpush_array(chunks, join(params, separator));\n\t\t}\n\n\t\tchunks.push(c(') '));\n\t\tpush_array(chunks, handle(node.body, state));\n\n\t\treturn chunks;\n\t}),\n\n\tVariableDeclaration(node, state) {\n\t\treturn handle_var_declaration(node, state).concat(c(';'));\n\t},\n\n\tVariableDeclarator(node, state) {\n\t\tif (node.init) {\n\t\t\treturn [\n\t\t\t\t...handle(node.id, state),\n\t\t\t\tc(' = '),\n\t\t\t\t...handle(node.init, state)\n\t\t\t];\n\t\t} else {\n\t\t\treturn handle(node.id, state);\n\t\t}\n\t},\n\n\tClassDeclaration(node, state) {\n\t\tconst chunks = [c('class ')];\n\n\t\tif (node.id) {\n\t\t\tpush_array(chunks, handle(node.id, state));\n\t\t\tchunks.push(c(' '));\n\t\t}\n\n\t\tif (node.superClass) {\n\t\t\tchunks.push(c('extends '));\n\t\t\tpush_array(chunks, handle(node.superClass, state));\n\t\t\tchunks.push(c(' '));\n\t\t}\n\n\t\tpush_array(chunks, handle(node.body, state));\n\n\t\treturn chunks;\n\t},\n\n\tImportDeclaration(/** @type {ImportDeclaration} */ node, state) {\n\t\tconst chunks = [c('import ')];\n\n\t\tconst { length } = node.specifiers;\n\t\tconst source = handle(node.source, state);\n\n\t\tif (length > 0) {\n\t\t\tlet i = 0;\n\n\t\t\twhile (i < length) {\n\t\t\t\tif (i > 0) {\n\t\t\t\t\tchunks.push(c(', '));\n\t\t\t\t}\n\n\t\t\t\tconst specifier = node.specifiers[i];\n\n\t\t\t\tif (specifier.type === 'ImportDefaultSpecifier') {\n\t\t\t\t\tchunks.push(c(specifier.local.name, specifier));\n\t\t\t\t\ti += 1;\n\t\t\t\t} else if (specifier.type === 'ImportNamespaceSpecifier') {\n\t\t\t\t\tchunks.push(c('* as ' + specifier.local.name, specifier));\n\t\t\t\t\ti += 1;\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (i < length) {\n\t\t\t\t// we have named specifiers\n\t\t\t\tconst specifiers = node.specifiers.slice(i).map((/** @type {ImportSpecifier} */ specifier) => {\n\t\t\t\t\tconst name = handle(specifier.imported, state)[0];\n\t\t\t\t\tconst as = handle(specifier.local, state)[0];\n\n\t\t\t\t\tif (name.content === as.content) {\n\t\t\t\t\t\treturn [as];\n\t\t\t\t\t}\n\n\t\t\t\t\treturn [name, c(' as '), as];\n\t\t\t\t});\n\n\t\t\t\tconst width = get_length(chunks) + specifiers.map(get_length).reduce(sum, 0) + (2 * specifiers.length) + 6 + get_length(source);\n\n\t\t\t\tif (width > 80) {\n\t\t\t\t\tchunks.push(c(`{\\n\\t`));\n\t\t\t\t\tpush_array(chunks, join(specifiers, c(',\\n\\t')));\n\t\t\t\t\tchunks.push(c('\\n}'));\n\t\t\t\t} else {\n\t\t\t\t\tchunks.push(c(`{ `));\n\t\t\t\t\tpush_array(chunks, join(specifiers, c(', ')));\n\t\t\t\t\tchunks.push(c(' }'));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tchunks.push(c(' from '));\n\t\t}\n\n\t\tpush_array(chunks, source);\n\t\tchunks.push(c(';'));\n\n\t\treturn chunks;\n\t},\n\n\tImportExpression(node, state) {\n\t\treturn [c('import('), ...handle(node.source, state), c(')')];\n\t},\n\n\tExportDefaultDeclaration(node, state) {\n\t\tconst chunks = [\n\t\t\tc(`export default `),\n\t\t\t...handle(node.declaration, state)\n\t\t];\n\n\t\tif (node.declaration.type !== 'FunctionDeclaration') {\n\t\t\tchunks.push(c(';'));\n\t\t}\n\n\t\treturn chunks;\n\t},\n\n\tExportNamedDeclaration(node, state) {\n\t\tconst chunks = [c('export ')];\n\n\t\tif (node.declaration) {\n\t\t\tpush_array(chunks, handle(node.declaration, state));\n\t\t} else {\n\t\t\tconst specifiers = node.specifiers.map((/** @type {ExportSpecifier} */ specifier) => {\n\t\t\t\tconst name = handle(specifier.local, state)[0];\n\t\t\t\tconst as = handle(specifier.exported, state)[0];\n\n\t\t\t\tif (name.content === as.content) {\n\t\t\t\t\treturn [name];\n\t\t\t\t}\n\n\t\t\t\treturn [name, c(' as '), as];\n\t\t\t});\n\n\t\t\tconst width = 7 + specifiers.map(get_length).reduce(sum, 0) + 2 * specifiers.length;\n\n\t\t\tif (width > 80) {\n\t\t\t\tchunks.push(c('{\\n\\t'));\n\t\t\t\tpush_array(chunks, join(specifiers, c(',\\n\\t')));\n\t\t\t\tchunks.push(c('\\n}'));\n\t\t\t} else {\n\t\t\t\tchunks.push(c('{ '));\n\t\t\t\tpush_array(chunks, join(specifiers, c(', ')));\n\t\t\t\tchunks.push(c(' }'));\n\t\t\t}\n\n\t\t\tif (node.source) {\n\t\t\t\tchunks.push(c(' from '));\n\t\t\t\tpush_array(chunks, handle(node.source, state));\n\t\t\t}\n\t\t}\n\n\t\tchunks.push(c(';'));\n\n\t\treturn chunks;\n\t},\n\n\tExportAllDeclaration(node, state) {\n\t\treturn [\n\t\t\tc(`export * from `),\n\t\t\t...handle(node.source, state),\n\t\t\tc(`;`)\n\t\t];\n\t},\n\n\tMethodDefinition(node, state) {\n\t\tconst chunks = [];\n\n\t\tif (node.static) {\n\t\t\tchunks.push(c('static '));\n\t\t}\n\n\t\tif (node.kind === 'get' || node.kind === 'set') {\n\t\t\t// Getter or setter\n\t\t\tchunks.push(c(node.kind + ' '));\n\t\t}\n\n\t\tif (node.value.async) {\n\t\t\tchunks.push(c('async '));\n\t\t}\n\n\t\tif (node.value.generator) {\n\t\t\tchunks.push(c('*'));\n\t\t}\n\n\t\tif (node.computed) {\n\t\t\tchunks.push(c('['));\n\t\t\tpush_array(chunks, handle(node.key, state));\n\t\t\tchunks.push(c(']'));\n\t\t} else {\n\t\t\tpush_array(chunks, handle(node.key, state));\n\t\t}\n\n\t\tchunks.push(c('('));\n\n\t\tconst { params } = node.value;\n\t\tfor (let i = 0; i < params.length; i += 1) {\n\t\t\tpush_array(chunks, handle(params[i], state));\n\t\t\tif (i < params.length - 1) chunks.push(c(', '));\n\t\t}\n\n\t\tchunks.push(c(') '));\n\t\tpush_array(chunks, handle(node.value.body, state));\n\n\t\treturn chunks;\n\t},\n\n\tArrowFunctionExpression: scoped((/** @type {ArrowFunctionExpression} */ node, state) => {\n\t\tconst chunks = [];\n\n\t\tif (node.async) chunks.push(c('async '));\n\n\t\tif (node.params.length === 1 && node.params[0].type === 'Identifier') {\n\t\t\tpush_array(chunks, handle(node.params[0], state));\n\t\t} else {\n\t\t\tconst params = node.params.map(param => handle(param, {\n\t\t\t\t...state,\n\t\t\t\tindent: state.indent + '\\t'\n\t\t\t}));\n\n\t\t\tchunks.push(c('('));\n\t\t\tpush_array(chunks, join(params, c(', ')));\n\t\t\tchunks.push(c(')'));\n\t\t}\n\n\t\tchunks.push(c(' => '));\n\n\t\tif (\n\t\t\tnode.body.type === 'ObjectExpression' ||\n\t\t\t(node.body.type === 'AssignmentExpression' && node.body.left.type === 'ObjectPattern')\n\t\t) {\n\t\t\tchunks.push(c('('));\n\t\t\tpush_array(chunks, handle(node.body, state));\n\t\t\tchunks.push(c(')'));\n\t\t} else {\n\t\t\tpush_array(chunks, handle(node.body, state));\n\t\t}\n\n\t\treturn chunks;\n\t}),\n\n\tThisExpression(node, state) {\n\t\treturn [c('this', node)];\n\t},\n\n\tSuper(node, state) {\n\t\treturn [c('super', node)];\n\t},\n\n\tRestElement(node, state) {\n\t\treturn [c('...'), ...handle(node.argument, state)];\n\t},\n\n\tYieldExpression(node, state) {\n\t\tif (node.argument) {\n\t\t\treturn [c(node.delegate ? `yield* ` : `yield `), ...handle(node.argument, state)];\n\t\t}\n\n\t\treturn [c(node.delegate ? `yield*` : `yield`)];\n\t},\n\n\tAwaitExpression(node, state) {\n\t\tif (node.argument) {\n\t\t\tconst precedence = EXPRESSIONS_PRECEDENCE[node.argument.type];\n\n\t\t\tif (precedence && (precedence < EXPRESSIONS_PRECEDENCE.AwaitExpression)) {\n\t\t\t\treturn [c('await ('), ...handle(node.argument, state), c(')')];\n\t\t\t} else {\n\t\t\t\treturn [c('await '), ...handle(node.argument, state)];\n\t\t\t}\n\t\t}\n\n\t\treturn [c('await')];\n\t},\n\n\tTemplateLiteral(node, state) {\n\t\tconst chunks = [c('`')];\n\n\t\tconst { quasis, expressions } = node;\n\n\t\tfor (let i = 0; i < expressions.length; i++) {\n\t\t\tchunks.push(\n\t\t\t\tc(quasis[i].value.raw),\n\t\t\t\tc('${')\n\t\t\t);\n\t\t\tpush_array(chunks, handle(expressions[i], state));\n\t\t\tchunks.push(c('}'));\n\t\t}\n\n\t\tchunks.push(\n\t\t\tc(quasis[quasis.length - 1].value.raw),\n\t\t\tc('`')\n\t\t);\n\n\t\treturn chunks;\n\t},\n\n\tTaggedTemplateExpression(node, state) {\n\t\treturn handle(node.tag, state).concat(handle(node.quasi, state));\n\t},\n\n\tArrayExpression(node, state) {\n\t\tconst chunks = [c('[')];\n\n\t\t/** @type {Chunk[][]} */\n\t\tconst elements = [];\n\n\t\t/** @type {Chunk[]} */\n\t\tlet sparse_commas = [];\n\n\t\tfor (let i = 0; i < node.elements.length; i += 1) {\n\t\t\t// can't use map/forEach because of sparse arrays\n\t\t\tconst element = node.elements[i];\n\t\t\tif (element) {\n\t\t\t\telements.push([...sparse_commas, ...handle(element, {\n\t\t\t\t\t...state,\n\t\t\t\t\tindent: state.indent + '\\t'\n\t\t\t\t})]);\n\t\t\t\tsparse_commas = [];\n\t\t\t} else {\n\t\t\t\tsparse_commas.push(c(','));\n\t\t\t}\n\t\t}\n\n\t\tconst multiple_lines = (\n\t\t\telements.some(has_newline) ||\n\t\t\t(elements.map(get_length).reduce(sum, 0) + (state.indent.length + elements.length - 1) * 2) > 80\n\t\t);\n\n\t\tif (multiple_lines) {\n\t\t\tchunks.push(c(`\\n${state.indent}\\t`));\n\t\t\tpush_array(chunks, join(elements, c(`,\\n${state.indent}\\t`)));\n\t\t\tchunks.push(c(`\\n${state.indent}`));\n\t\t\tpush_array(chunks, sparse_commas);\n\t\t} else {\n\t\t\tpush_array(chunks, join(elements, c(', ')));\n\t\t\tpush_array(chunks, sparse_commas);\n\t\t}\n\n\t\tchunks.push(c(']'));\n\n\t\treturn chunks;\n\t},\n\n\tObjectExpression(/** @type {ObjectExpression} */ node, state) {\n\t\tif (node.properties.length === 0) {\n\t\t\treturn [c('{}')];\n\t\t}\n\n\t\tlet has_inline_comment = false;\n\n\t\t/** @type {Chunk[]} */\n\t\tconst chunks = [];\n\t\tconst separator = c(', ');\n\n\t\tnode.properties.forEach((p, i) => {\n\t\t\tpush_array(chunks, handle(p, {\n\t\t\t\t...state,\n\t\t\t\tindent: state.indent + '\\t'\n\t\t\t}));\n\n\t\t\tif (state.comments.length) {\n\t\t\t\t// TODO generalise this, so it works with ArrayExpressions and other things.\n\t\t\t\t// At present, stuff will just get appended to the closest statement/declaration\n\t\t\t\tchunks.push(c(', '));\n\n\t\t\t\twhile (state.comments.length) {\n\t\t\t\t\tconst comment = state.comments.shift();\n\n\t\t\t\t\tchunks.push(c(comment.type === 'Block'\n\t\t\t\t\t\t? `/*${comment.value}*/\\n${state.indent}\\t`\n\t\t\t\t\t\t: `//${comment.value}\\n${state.indent}\\t`));\n\n\t\t\t\t\tif (comment.type === 'Line') {\n\t\t\t\t\t\thas_inline_comment = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (i < node.properties.length - 1) {\n\t\t\t\t\tchunks.push(separator);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tconst multiple_lines = (\n\t\t\thas_inline_comment ||\n\t\t\thas_newline(chunks) ||\n\t\t\tget_length(chunks) > 40\n\t\t);\n\n\t\tif (multiple_lines) {\n\t\t\tseparator.content = `,\\n${state.indent}\\t`;\n\t\t}\n\n\t\treturn [\n\t\t\tc(multiple_lines ? `{\\n${state.indent}\\t` : `{ `),\n\t\t\t...chunks,\n\t\t\tc(multiple_lines ? `\\n${state.indent}}` : ` }`)\n\t\t];\n\t},\n\n\tProperty(node, state) {\n\t\tconst value = handle(node.value, state);\n\n\t\tif (node.key === node.value) {\n\t\t\treturn value;\n\t\t}\n\n\t\t// special case\n\t\tif (\n\t\t\t!node.computed &&\n\t\t\tnode.value.type === 'AssignmentPattern' &&\n\t\t\tnode.value.left.type === 'Identifier' &&\n\t\t\tnode.value.left.name === node.key.name\n\t\t) {\n\t\t\treturn value;\n\t\t}\n\n\t\tif (!node.computed && node.value.type === 'Identifier' && (\n\t\t\t(node.key.type === 'Identifier' && node.key.name === value[0].content) ||\n\t\t\t(node.key.type === 'Literal' && node.key.value === value[0].content)\n\t\t)) {\n\t\t\treturn value;\n\t\t}\n\n\t\tconst key = handle(node.key, state);\n\n\t\tif (node.value.type === 'FunctionExpression' && !node.value.id) {\n\t\t\tstate = {\n\t\t\t\t...state,\n\t\t\t\tscope: state.scope_map.get(node.value)\n\t\t\t};\n\n\t\t\tconst chunks = node.kind !== 'init'\n\t\t\t\t? [c(`${node.kind} `)]\n\t\t\t\t: [];\n\n\t\t\tif (node.value.async) {\n\t\t\t\tchunks.push(c('async '));\n\t\t\t}\n\t\t\tif (node.value.generator) {\n\t\t\t\tchunks.push(c('*'));\n\t\t\t}\n\n\t\t\tpush_array(chunks, node.computed ? [c('['), ...key, c(']')] : key);\n\t\t\tchunks.push(c('('));\n\t\t\tpush_array(chunks, join(node.value.params.map((/** @type {Pattern} */ param) => handle(param, state)), c(', ')));\n\t\t\tchunks.push(c(') '));\n\t\t\tpush_array(chunks, handle(node.value.body, state));\n\n\t\t\treturn chunks;\n\t\t}\n\n\t\tif (node.computed) {\n\t\t\treturn [\n\t\t\t\tc('['),\n\t\t\t\t...key,\n\t\t\t\tc(']: '),\n\t\t\t\t...value\n\t\t\t];\n\t\t}\n\n\t\treturn [\n\t\t\t...key,\n\t\t\tc(': '),\n\t\t\t...value\n\t\t];\n\t},\n\n\tObjectPattern(node, state) {\n\t\tconst chunks = [c('{ ')];\n\n\t\tfor (let i = 0; i < node.properties.length; i += 1) {\n\t\t\tpush_array(chunks, handle(node.properties[i], state));\n\t\t\tif (i < node.properties.length - 1) chunks.push(c(', '));\n\t\t}\n\n\t\tchunks.push(c(' }'));\n\n\t\treturn chunks;\n\t},\n\n\tSequenceExpression(/** @type {SequenceExpression} */ node, state) {\n\t\tconst expressions = node.expressions.map(e => handle(e, state));\n\n\t\treturn [\n\t\t\tc('('),\n\t\t\t...join(expressions, c(', ')),\n\t\t\tc(')')\n\t\t];\n\t},\n\n\tUnaryExpression(node, state) {\n\t\tconst chunks = [c(node.operator)];\n\n\t\tif (node.operator.length > 1) {\n\t\t\tchunks.push(c(' '));\n\t\t}\n\n\t\tif (\n\t\t\tEXPRESSIONS_PRECEDENCE[node.argument.type] <\n\t\t\tEXPRESSIONS_PRECEDENCE.UnaryExpression\n\t\t) {\n\t\t\tchunks.push(c('('));\n\t\t\tpush_array(chunks, handle(node.argument, state));\n\t\t\tchunks.push(c(')'));\n\t\t} else {\n\t\t\tpush_array(chunks, handle(node.argument, state));\n\t\t}\n\n\t\treturn chunks;\n\t},\n\n\tUpdateExpression(node, state) {\n\t\treturn node.prefix\n\t\t\t? [c(node.operator), ...handle(node.argument, state)]\n\t\t\t: [...handle(node.argument, state), c(node.operator)];\n\t},\n\n\tAssignmentExpression(node, state) {\n\t\treturn [\n\t\t\t...handle(node.left, state),\n\t\t\tc(` ${node.operator || '='} `),\n\t\t\t...handle(node.right, state)\n\t\t];\n\t},\n\n\tBinaryExpression(node, state) {\n\t\t/**\n\t\t * @type any[]\n\t\t */\n\t\tconst chunks = [];\n\n\t\t// TODO\n\t\t// const is_in = node.operator === 'in';\n\t\t// if (is_in) {\n\t\t// \t// Avoids confusion in `for` loops initializers\n\t\t// \tchunks.push(c('('));\n\t\t// }\n\n\t\tif (needs_parens(node.left, node, false)) {\n\t\t\tchunks.push(c('('));\n\t\t\tpush_array(chunks, handle(node.left, state));\n\t\t\tchunks.push(c(')'));\n\t\t} else {\n\t\t\tpush_array(chunks, handle(node.left, state));\n\t\t}\n\n\t\tchunks.push(c(` ${node.operator} `));\n\n\t\tif (needs_parens(node.right, node, true)) {\n\t\t\tchunks.push(c('('));\n\t\t\tpush_array(chunks, handle(node.right, state));\n\t\t\tchunks.push(c(')'));\n\t\t} else {\n\t\t\tpush_array(chunks, handle(node.right, state));\n\t\t}\n\n\t\treturn chunks;\n\t},\n\n\tConditionalExpression(node, state) {\n\t\t/**\n\t\t * @type any[]\n\t\t */\n\t\tconst chunks = [];\n\n\t\tif (\n\t\t\tEXPRESSIONS_PRECEDENCE[node.test.type] >\n\t\t\tEXPRESSIONS_PRECEDENCE.ConditionalExpression\n\t\t) {\n\t\t\tpush_array(chunks, handle(node.test, state));\n\t\t} else {\n\t\t\tchunks.push(c('('));\n\t\t\tpush_array(chunks, handle(node.test, state));\n\t\t\tchunks.push(c(')'));\n\t\t}\n\n\t\tconst child_state = { ...state, indent: state.indent + '\\t' };\n\n\t\tconst consequent = handle(node.consequent, child_state);\n\t\tconst alternate = handle(node.alternate, child_state);\n\n\t\tconst multiple_lines = (\n\t\t\thas_newline(consequent) || has_newline(alternate) ||\n\t\t\tget_length(chunks) + get_length(consequent) + get_length(alternate) > 50\n\t\t);\n\n\t\tif (multiple_lines) {\n\t\t\tchunks.push(c(`\\n${state.indent}? `));\n\t\t\tpush_array(chunks, consequent);\n\t\t\tchunks.push(c(`\\n${state.indent}: `));\n\t\t\tpush_array(chunks, alternate);\n\t\t} else {\n\t\t\tchunks.push(c(` ? `));\n\t\t\tpush_array(chunks, consequent);\n\t\t\tchunks.push(c(` : `));\n\t\t\tpush_array(chunks, alternate);\n\t\t}\n\n\t\treturn chunks;\n\t},\n\n\tNewExpression(/** @type {NewExpression} */ node, state) {\n\t\tconst chunks = [c('new ')];\n\n\t\tif (\n\t\t\tEXPRESSIONS_PRECEDENCE[node.callee.type] <\n\t\t\tEXPRESSIONS_PRECEDENCE.CallExpression || has_call_expression(node.callee)\n\t\t) {\n\t\t\tchunks.push(c('('));\n\t\t\tpush_array(chunks, handle(node.callee, state));\n\t\t\tchunks.push(c(')'));\n\t\t} else {\n\t\t\tpush_array(chunks, handle(node.callee, state));\n\t\t}\n\n\t\t// TODO this is copied from CallExpression — DRY it out\n\t\tconst args = node.arguments.map(arg => handle(arg, {\n\t\t\t...state,\n\t\t\tindent: state.indent + '\\t'\n\t\t}));\n\n\t\tconst separator = args.some(has_newline) // TODO or length exceeds 80\n\t\t\t? c(',\\n' + state.indent)\n\t\t\t: c(', ');\n\n\t\tchunks.push(c('('));\n\t\tpush_array(chunks, join(args, separator));\n\t\tchunks.push(c(')'));\n\n\t\treturn chunks;\n\t},\n\n\tChainExpression(node, state) {\n\t\treturn handle(node.expression, state);\n\t},\n\n\tCallExpression(/** @type {CallExpression} */ node, state) {\n\t\t/**\n\t\t * @type any[]\n\t\t */\n\t\tconst chunks = [];\n\n\t\tif (\n\t\t\tEXPRESSIONS_PRECEDENCE[node.callee.type] <\n\t\t\tEXPRESSIONS_PRECEDENCE.CallExpression\n\t\t) {\n\t\t\tchunks.push(c('('));\n\t\t\tpush_array(chunks, handle(node.callee, state));\n\t\t\tchunks.push(c(')'));\n\t\t} else {\n\t\t\tpush_array(chunks, handle(node.callee, state));\n\t\t}\n\n\t\tif (/** @type {SimpleCallExpression} */ (node).optional) {\n\t\t\tchunks.push(c('?.'));\n\t\t}\n\n\t\tconst args = node.arguments.map(arg => handle(arg, state));\n\n\t\tconst multiple_lines = args.slice(0, -1).some(has_newline); // TODO or length exceeds 80\n\n\t\tif (multiple_lines) {\n\t\t\t// need to handle args again. TODO find alternative approach?\n\t\t\tconst args = node.arguments.map(arg => handle(arg, {\n\t\t\t\t...state,\n\t\t\t\tindent: `${state.indent}\\t`\n\t\t\t}));\n\n\t\t\tchunks.push(c(`(\\n${state.indent}\\t`));\n\t\t\tpush_array(chunks, join(args, c(`,\\n${state.indent}\\t`)));\n\t\t\tchunks.push(c(`\\n${state.indent})`));\n\t\t} else {\n\t\t\tchunks.push(c('('));\n\t\t\tpush_array(chunks, join(args, c(', ')));\n\t\t\tchunks.push(c(')'));\n\t\t}\n\n\t\treturn chunks;\n\t},\n\n\tMemberExpression(node, state) {\n\t\t/**\n\t\t * @type any[]\n\t\t */\n\t\tconst chunks = [];\n\n\t\tif (EXPRESSIONS_PRECEDENCE[node.object.type] < EXPRESSIONS_PRECEDENCE.MemberExpression) {\n\t\t\tchunks.push(c('('));\n\t\t\tpush_array(chunks, handle(node.object, state));\n\t\t\tchunks.push(c(')'));\n\t\t} else {\n\t\t\tpush_array(chunks, handle(node.object, state));\n\t\t}\n\n\t\tif (node.computed) {\n\t\t\tif (node.optional) {\n\t\t\t\tchunks.push(c('?.'));\n\t\t\t}\n\t\t\tchunks.push(c('['));\n\t\t\tpush_array(chunks, handle(node.property, state));\n\t\t\tchunks.push(c(']'));\n\t\t} else {\n\t\t\tchunks.push(c(node.optional ? '?.' : '.'));\n\t\t\tpush_array(chunks, handle(node.property, state));\n\t\t}\n\n\t\treturn chunks;\n\t},\n\n\tMetaProperty(node, state) {\n\t\treturn [...handle(node.meta, state), c('.'), ...handle(node.property, state)];\n\t},\n\n\tIdentifier(node, state) {\n\t\tlet name = node.name;\n\n\t\tif (name[0] === '@') {\n\t\t\tname = state.getName(name.slice(1));\n\t\t} else if (node.name[0] === '#') {\n\t\t\tconst owner = state.scope.find_owner(node.name);\n\n\t\t\tif (!owner) {\n\t\t\t\tthrow new Error(`Could not find owner for node`);\n\t\t\t}\n\n\t\t\tif (!state.deconflicted.has(owner)) {\n\t\t\t\tstate.deconflicted.set(owner, new Map());\n\t\t\t}\n\n\t\t\tconst deconflict_map = state.deconflicted.get(owner);\n\n\t\t\tif (!deconflict_map.has(node.name)) {\n\t\t\t\tdeconflict_map.set(node.name, deconflict(node.name.slice(1), owner.references));\n\t\t\t}\n\n\t\t\tname = deconflict_map.get(node.name);\n\t\t}\n\n\t\treturn [c(name, node)];\n\t},\n\n\tLiteral(/** @type {Literal} */ node, state) {\n\t\tif (typeof node.value === 'string') {\n\t\t\treturn [\n\t\t\t\t// TODO do we need to handle weird unicode characters somehow?\n\t\t\t\t// str.replace(/\\\\u(\\d{4})/g, (m, n) => String.fromCharCode(+n))\n\t\t\t\tc((node.raw || JSON.stringify(node.value)).replace(re, (_m, _i, at, hash, name) => {\n\t\t\t\t\tif (at)\treturn '@' + name;\n\t\t\t\t\tif (hash) return '#' + name;\n\t\t\t\t\tthrow new Error(`this shouldn't happen`);\n\t\t\t\t}), node)\n\t\t\t];\n\t\t}\n\n\t\treturn [c(node.raw || String(node.value), node)];\n\t}\n};\n\nhandlers.ForOfStatement = handlers.ForInStatement;\nhandlers.FunctionExpression = handlers.FunctionDeclaration;\nhandlers.ClassExpression = handlers.ClassDeclaration;\nhandlers.ClassBody = handlers.BlockStatement;\nhandlers.SpreadElement = handlers.RestElement;\nhandlers.ArrayPattern = handlers.ArrayExpression;\nhandlers.LogicalExpression = handlers.BinaryExpression;\nhandlers.AssignmentPattern = handlers.AssignmentExpression;\n","var charToInteger = {};\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nfor (var i = 0; i < chars.length; i++) {\n    charToInteger[chars.charCodeAt(i)] = i;\n}\nfunction decode(mappings) {\n    var decoded = [];\n    var line = [];\n    var segment = [\n        0,\n        0,\n        0,\n        0,\n        0,\n    ];\n    var j = 0;\n    for (var i = 0, shift = 0, value = 0; i < mappings.length; i++) {\n        var c = mappings.charCodeAt(i);\n        if (c === 44) { // \",\"\n            segmentify(line, segment, j);\n            j = 0;\n        }\n        else if (c === 59) { // \";\"\n            segmentify(line, segment, j);\n            j = 0;\n            decoded.push(line);\n            line = [];\n            segment[0] = 0;\n        }\n        else {\n            var integer = charToInteger[c];\n            if (integer === undefined) {\n                throw new Error('Invalid character (' + String.fromCharCode(c) + ')');\n            }\n            var hasContinuationBit = integer & 32;\n            integer &= 31;\n            value += integer << shift;\n            if (hasContinuationBit) {\n                shift += 5;\n            }\n            else {\n                var shouldNegate = value & 1;\n                value >>>= 1;\n                if (shouldNegate) {\n                    value = value === 0 ? -0x80000000 : -value;\n                }\n                segment[j] += value;\n                j++;\n                value = shift = 0; // reset\n            }\n        }\n    }\n    segmentify(line, segment, j);\n    decoded.push(line);\n    return decoded;\n}\nfunction segmentify(line, segment, j) {\n    // This looks ugly, but we're creating specialized arrays with a specific\n    // length. This is much faster than creating a new array (which v8 expands to\n    // a capacity of 17 after pushing the first item), or slicing out a subarray\n    // (which is slow). Length 4 is assumed to be the most frequent, followed by\n    // length 5 (since not everything will have an associated name), followed by\n    // length 1 (it's probably rare for a source substring to not have an\n    // associated segment data).\n    if (j === 4)\n        line.push([segment[0], segment[1], segment[2], segment[3]]);\n    else if (j === 5)\n        line.push([segment[0], segment[1], segment[2], segment[3], segment[4]]);\n    else if (j === 1)\n        line.push([segment[0]]);\n}\nfunction encode(decoded) {\n    var sourceFileIndex = 0; // second field\n    var sourceCodeLine = 0; // third field\n    var sourceCodeColumn = 0; // fourth field\n    var nameIndex = 0; // fifth field\n    var mappings = '';\n    for (var i = 0; i < decoded.length; i++) {\n        var line = decoded[i];\n        if (i > 0)\n            mappings += ';';\n        if (line.length === 0)\n            continue;\n        var generatedCodeColumn = 0; // first field\n        var lineMappings = [];\n        for (var _i = 0, line_1 = line; _i < line_1.length; _i++) {\n            var segment = line_1[_i];\n            var segmentMappings = encodeInteger(segment[0] - generatedCodeColumn);\n            generatedCodeColumn = segment[0];\n            if (segment.length > 1) {\n                segmentMappings +=\n                    encodeInteger(segment[1] - sourceFileIndex) +\n                        encodeInteger(segment[2] - sourceCodeLine) +\n                        encodeInteger(segment[3] - sourceCodeColumn);\n                sourceFileIndex = segment[1];\n                sourceCodeLine = segment[2];\n                sourceCodeColumn = segment[3];\n            }\n            if (segment.length === 5) {\n                segmentMappings += encodeInteger(segment[4] - nameIndex);\n                nameIndex = segment[4];\n            }\n            lineMappings.push(segmentMappings);\n        }\n        mappings += lineMappings.join(',');\n    }\n    return mappings;\n}\nfunction encodeInteger(num) {\n    var result = '';\n    num = num < 0 ? (-num << 1) | 1 : num << 1;\n    do {\n        var clamped = num & 31;\n        num >>>= 5;\n        if (num > 0) {\n            clamped |= 32;\n        }\n        result += chars[clamped];\n    } while (num > 0);\n    return result;\n}\n\nexport { decode, encode };\n//# sourceMappingURL=sourcemap-codec.es.js.map\n","import * as perisopic from 'periscopic';\nimport { handle } from './handlers.js';\nimport { encode } from 'sourcemap-codec';\n\n/** @type {(str?: string) => string} str */\nlet btoa = () => {\n\tthrow new Error('Unsupported environment: `window.btoa` or `Buffer` should be supported.');\n};\n\nif (typeof window !== 'undefined' && typeof window.btoa === 'function') {\n\tbtoa = (str) => window.btoa(unescape(encodeURIComponent(str)));\n} else if (typeof Buffer === 'function') {\n\tbtoa = (str) => Buffer.from(str, 'utf-8').toString('base64');\n}\n\n/** @typedef {import('estree').Node} Node */\n\n/**\n * @typedef {{\n *   file?: string;\n *   sourceMapSource?: string;\n *   sourceMapContent?: string;\n *   sourceMapEncodeMappings?: boolean; // default true\n *   getName?: (name: string) => string;\n * }} PrintOptions\n */\n\n/**\n * @param {Node} node\n * @param {PrintOptions} opts\n * @returns {{ code: string, map: any }} // TODO\n */\nexport function print(node, opts = {}) {\n\tif (Array.isArray(node)) {\n\t\treturn print({\n\t\t\ttype: 'Program',\n\t\t\tbody: node,\n\t\t\tsourceType: 'module'\n\t\t}, opts);\n\t}\n\n\tconst {\n\t\tgetName = /** @param {string} x */ (x) => {\n\t\t\tthrow new Error(`Unhandled sigil @${x}`);\n\t\t}\n\t} = opts;\n\n\tlet { map: scope_map, scope } = perisopic.analyze(node);\n\tconst deconflicted = new WeakMap();\n\n\tconst chunks = handle(node, {\n\t\tindent: '',\n\t\tgetName,\n\t\tscope,\n\t\tscope_map,\n\t\tdeconflicted,\n\t\tcomments: []\n\t});\n\n\t/** @typedef {[number, number, number, number]} Segment */\n\n\tlet code = '';\n\tlet current_column = 0;\n\n\t/** @type {Segment[][]} */\n\tlet mappings = [];\n\n\t/** @type {Segment[]} */\n\tlet current_line = [];\n\n\tfor (let i = 0; i < chunks.length; i += 1) {\n\t\tconst chunk = chunks[i];\n\n\t\tcode += chunk.content;\n\n\t\tif (chunk.loc) {\n\t\t\tcurrent_line.push([\n\t\t\t\tcurrent_column,\n\t\t\t\t0, // source index is always zero\n\t\t\t\tchunk.loc.start.line - 1,\n\t\t\t\tchunk.loc.start.column,\n\t\t\t]);\n\t\t}\n\n\t\tfor (let i = 0; i < chunk.content.length; i += 1) {\n\t\t\tif (chunk.content[i] === '\\n') {\n\t\t\t\tmappings.push(current_line);\n\t\t\t\tcurrent_line = [];\n\t\t\t\tcurrent_column = 0;\n\t\t\t} else {\n\t\t\t\tcurrent_column += 1;\n\t\t\t}\n\t\t}\n\n\t\tif (chunk.loc) {\n\t\t\tcurrent_line.push([\n\t\t\t\tcurrent_column,\n\t\t\t\t0, // source index is always zero\n\t\t\t\tchunk.loc.end.line - 1,\n\t\t\t\tchunk.loc.end.column,\n\t\t\t]);\n\t\t}\n\t}\n\n\tmappings.push(current_line);\n\n\tconst map = {\n\t\tversion: 3,\n\t\t/** @type {string[]} */\n\t\tnames: [],\n\t\tsources: [opts.sourceMapSource || null],\n\t\tsourcesContent: [opts.sourceMapContent || null],\n\t\tmappings: opts.sourceMapEncodeMappings == undefined || opts.sourceMapEncodeMappings\n\t\t\t? encode(mappings) : mappings\n\t};\n\n\tObject.defineProperties(map, {\n\t\ttoString: {\n\t\t\tenumerable: false,\n\t\t\tvalue: function toString() {\n\t\t\t\treturn JSON.stringify(this);\n\t\t\t}\n\t\t},\n\t\ttoUrl: {\n\t\t\tenumerable: false,\n\t\t\tvalue: function toUrl() {\n\t\t\t\treturn 'data:application/json;charset=utf-8;base64,' + btoa(this.toString());\n\t\t\t}\n\t\t}\n\t});\n\n\treturn {\n\t\tcode,\n\t\tmap\n\t};\n}","import * as acorn from 'acorn';\nimport { walk } from 'estree-walker';\nimport { id, re } from './utils/id.js';\nimport { get_comment_handlers } from './utils/comments.js';\n\n/** @typedef {import('estree').Expression} Expression */\n/** @typedef {import('estree').Node} Node */\n/** @typedef {import('estree').ObjectExpression} ObjectExpression */\n/** @typedef {import('estree').Property} Property */\n/** @typedef {import('estree').SpreadElement} SpreadElement */\n\n/** @typedef {import('./utils/comments').CommentWithLocation} CommentWithLocation */\n\n/** @type {Record<string, string>} */\nconst sigils = {\n\t'@': 'AT',\n\t'#': 'HASH'\n};\n\n/** @param {TemplateStringsArray} strings */\nconst join = (strings) => {\n\tlet str = strings[0];\n\tfor (let i = 1; i < strings.length; i += 1) {\n\t\tstr += `_${id}_${i - 1}_${strings[i]}`;\n\t}\n\treturn str.replace(\n\t\t/([@#])(\\w+)/g,\n\t\t(_m, sigil, name) => `_${id}_${sigils[sigil]}_${name}`\n\t);\n};\n\n/**\n * @param {any[]} array\n * @param {any[]} target\n */\nconst flatten_body = (array, target) => {\n\tfor (let i = 0; i < array.length; i += 1) {\n\t\tconst statement = array[i];\n\t\tif (Array.isArray(statement)) {\n\t\t\tflatten_body(statement, target);\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (statement.type === 'ExpressionStatement') {\n\t\t\tif (statement.expression === EMPTY) continue;\n\n\t\t\tif (Array.isArray(statement.expression)) {\n\t\t\t\t// TODO this is hacktacular\n\t\t\t\tlet node = statement.expression[0];\n\t\t\t\twhile (Array.isArray(node)) node = node[0];\n\t\t\t\tif (node) node.leadingComments = statement.leadingComments;\n\n\t\t\t\tflatten_body(statement.expression, target);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (/(Expression|Literal)$/.test(statement.expression.type)) {\n\t\t\t\ttarget.push(statement);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (statement.leadingComments)\n\t\t\t\tstatement.expression.leadingComments = statement.leadingComments;\n\t\t\tif (statement.trailingComments)\n\t\t\t\tstatement.expression.trailingComments = statement.trailingComments;\n\n\t\t\ttarget.push(statement.expression);\n\t\t\tcontinue;\n\t\t}\n\n\t\ttarget.push(statement);\n\t}\n\n\treturn target;\n};\n\n/**\n * @param {any[]} array\n * @param {any[]} target\n */\nconst flatten_properties = (array, target) => {\n\tfor (let i = 0; i < array.length; i += 1) {\n\t\tconst property = array[i];\n\n\t\tif (property.value === EMPTY) continue;\n\n\t\tif (property.key === property.value && Array.isArray(property.key)) {\n\t\t\tflatten_properties(property.key, target);\n\t\t\tcontinue;\n\t\t}\n\n\t\ttarget.push(property);\n\t}\n\n\treturn target;\n};\n\n/**\n * @param {any[]} nodes\n * @param {any[]} target\n */\nconst flatten = (nodes, target) => {\n\tfor (let i = 0; i < nodes.length; i += 1) {\n\t\tconst node = nodes[i];\n\n\t\tif (node === EMPTY) continue;\n\n\t\tif (Array.isArray(node)) {\n\t\t\tflatten(node, target);\n\t\t\tcontinue;\n\t\t}\n\n\t\ttarget.push(node);\n\t}\n\n\treturn target;\n};\n\nconst EMPTY = { type: 'Empty' };\n\n/**\n *\n * @param {CommentWithLocation[]} comments\n * @param {string} raw\n * @returns {any}\n */\nconst acorn_opts = (comments, raw) => {\n\tconst { onComment } = get_comment_handlers(comments, raw);\n\treturn {\n\t\tecmaVersion: 2020,\n\t\tsourceType: 'module',\n\t\tallowAwaitOutsideFunction: true,\n\t\tallowImportExportEverywhere: true,\n\t\tallowReturnOutsideFunction: true,\n\t\tonComment\n\t};\n};\n\n/**\n * @param {string} raw\n * @param {Node} node\n * @param {any[]} values\n * @param {CommentWithLocation[]} comments\n */\nconst inject = (raw, node, values, comments) => {\n\tcomments.forEach((comment) => {\n\t\tcomment.value = comment.value.replace(re, (m, i) =>\n\t\t\t+i in values ? values[+i] : m\n\t\t);\n\t});\n\n\tconst { enter, leave } = get_comment_handlers(comments, raw);\n\n\treturn walk(node, {\n\t\tenter,\n\n\t\t/** @param {any} node */\n\t\tleave(node) {\n\t\t\tif (node.type === 'Identifier') {\n\t\t\t\tre.lastIndex = 0;\n\t\t\t\tconst match = re.exec(node.name);\n\n\t\t\t\tif (match) {\n\t\t\t\t\tif (match[1]) {\n\t\t\t\t\t\tif (+match[1] in values) {\n\t\t\t\t\t\t\tlet value = values[+match[1]];\n\n\t\t\t\t\t\t\tif (typeof value === 'string') {\n\t\t\t\t\t\t\t\tvalue = {\n\t\t\t\t\t\t\t\t\ttype: 'Identifier',\n\t\t\t\t\t\t\t\t\tname: value,\n\t\t\t\t\t\t\t\t\tleadingComments: node.leadingComments,\n\t\t\t\t\t\t\t\t\ttrailingComments: node.trailingComments\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t} else if (typeof value === 'number') {\n\t\t\t\t\t\t\t\tvalue = {\n\t\t\t\t\t\t\t\t\ttype: 'Literal',\n\t\t\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\t\t\tleadingComments: node.leadingComments,\n\t\t\t\t\t\t\t\t\ttrailingComments: node.trailingComments\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.replace(value || EMPTY);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnode.name = `${match[2] ? `@` : `#`}${match[4]}`;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (node.type === 'Literal') {\n\t\t\t\tif (typeof node.value === 'string') {\n\t\t\t\t\tre.lastIndex = 0;\n\t\t\t\t\tconst new_value = /** @type {string} */ (node.value).replace(\n\t\t\t\t\t\tre,\n\t\t\t\t\t\t(m, i) => (+i in values ? values[+i] : m)\n\t\t\t\t\t);\n\t\t\t\t\tconst has_changed = new_value !== node.value;\n\t\t\t\t\tnode.value = new_value;\n\t\t\t\t\tif (has_changed && node.raw) {\n\t\t\t\t\t\t// preserve the quotes\n\t\t\t\t\t\tnode.raw = `${node.raw[0]}${JSON.stringify(node.value).slice(\n\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\t-1\n\t\t\t\t\t\t)}${node.raw[node.raw.length - 1]}`;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (node.type === 'TemplateElement') {\n\t\t\t\tre.lastIndex = 0;\n\t\t\t\tnode.value.raw = /** @type {string} */ (node.value.raw).replace(\n\t\t\t\t\tre,\n\t\t\t\t\t(m, i) => (+i in values ? values[+i] : m)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (node.type === 'Program' || node.type === 'BlockStatement') {\n\t\t\t\tnode.body = flatten_body(node.body, []);\n\t\t\t}\n\n\t\t\tif (node.type === 'ObjectExpression' || node.type === 'ObjectPattern') {\n\t\t\t\tnode.properties = flatten_properties(node.properties, []);\n\t\t\t}\n\n\t\t\tif (node.type === 'ArrayExpression' || node.type === 'ArrayPattern') {\n\t\t\t\tnode.elements = flatten(node.elements, []);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tnode.type === 'FunctionExpression' ||\n\t\t\t\tnode.type === 'FunctionDeclaration' ||\n\t\t\t\tnode.type === 'ArrowFunctionExpression'\n\t\t\t) {\n\t\t\t\tnode.params = flatten(node.params, []);\n\t\t\t}\n\n\t\t\tif (node.type === 'CallExpression' || node.type === 'NewExpression') {\n\t\t\t\tnode.arguments = flatten(node.arguments, []);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tnode.type === 'ImportDeclaration' ||\n\t\t\t\tnode.type === 'ExportNamedDeclaration'\n\t\t\t) {\n\t\t\t\tnode.specifiers = flatten(node.specifiers, []);\n\t\t\t}\n\n\t\t\tif (node.type === 'ForStatement') {\n\t\t\t\tnode.init = node.init === EMPTY ? null : node.init;\n\t\t\t\tnode.test = node.test === EMPTY ? null : node.test;\n\t\t\t\tnode.update = node.update === EMPTY ? null : node.update;\n\t\t\t}\n\n\t\t\tleave(node);\n\t\t}\n\t});\n};\n\n/**\n *\n * @param {TemplateStringsArray} strings\n * @param  {any[]} values\n * @returns {Node[]}\n */\nexport function b(strings, ...values) {\n\tconst str = join(strings);\n\n\t/** @type {CommentWithLocation[]} */\n\tconst comments = [];\n\n\ttry {\n\t\tlet ast = /** @type {any} */ (\n\t\t\tacorn.parse(str, acorn_opts(comments, str))\n\t\t);\n\n\t\tast = inject(str, ast, values, comments);\n\n\t\treturn ast.body;\n\t} catch (err) {\n\t\thandle_error(str, err);\n\t}\n}\n\n/**\n *\n * @param {TemplateStringsArray} strings\n * @param  {any[]} values\n * @returns {Expression & { start: Number, end: number }}\n */\nexport function x(strings, ...values) {\n\tconst str = join(strings);\n\n\t/** @type {CommentWithLocation[]} */\n\tconst comments = [];\n\n\ttry {\n\t\tlet expression =\n\t\t\t/** @type {Expression & { start: Number, end: number }} */ (\n\t\t\t\tacorn.parseExpressionAt(str, 0, acorn_opts(comments, str))\n\t\t\t);\n\t\tconst match = /\\S+/.exec(str.slice(expression.end));\n\t\tif (match) {\n\t\t\tthrow new Error(`Unexpected token '${match[0]}'`);\n\t\t}\n\n\t\texpression = /** @type {Expression & { start: Number, end: number }} */ (\n\t\t\tinject(str, expression, values, comments)\n\t\t);\n\n\t\treturn expression;\n\t} catch (err) {\n\t\thandle_error(str, err);\n\t}\n}\n\n/**\n *\n * @param {TemplateStringsArray} strings\n * @param  {any[]} values\n * @returns {(Property | SpreadElement) & { start: Number, end: number }}\n */\nexport function p(strings, ...values) {\n\tconst str = `{${join(strings)}}`;\n\n\t/** @type {CommentWithLocation[]} */\n\tconst comments = [];\n\n\ttry {\n\t\tlet expression = /** @type {any} */ (\n\t\t\tacorn.parseExpressionAt(str, 0, acorn_opts(comments, str))\n\t\t);\n\n\t\texpression = inject(str, expression, values, comments);\n\n\t\treturn expression.properties[0];\n\t} catch (err) {\n\t\thandle_error(str, err);\n\t}\n}\n\n/**\n * @param {string} str\n * @param {Error} err\n */\nfunction handle_error(str, err) {\n\t// TODO location/code frame\n\n\tre.lastIndex = 0;\n\n\tstr = str.replace(re, (m, i, at, hash, name) => {\n\t\tif (at) return `@${name}`;\n\t\tif (hash) return `#${name}`;\n\n\t\treturn '${...}';\n\t});\n\n\tconsole.log(`failed to parse:\\n${str}`);\n\tthrow err;\n}\n\nexport { print } from './print/index.js';\n\n/**\n * @param {string} source\n * @param {any} opts\n */\nexport const parse = (source, opts) => {\n\t/** @type {CommentWithLocation[]} */\n\tconst comments = [];\n\tconst { onComment, enter, leave } = get_comment_handlers(comments, source);\n\tconst ast = /** @type {any} */ (acorn.parse(source, { onComment, ...opts }));\n\twalk(ast, { enter, leave });\n\treturn ast;\n};\n\n/**\n * @param {string} source\n * @param {number} index\n * @param {any} opts\n */\nexport const parseExpressionAt = (source, index, opts) => {\n\t/** @type {CommentWithLocation[]} */\n\tconst comments = [];\n\tconst { onComment, enter, leave } = get_comment_handlers(comments, source);\n\tconst ast = /** @type {any} */ (\n\t\tacorn.parseExpressionAt(source, index, { onComment, ...opts })\n\t);\n\twalk(ast, { enter, leave });\n\treturn ast;\n};\n","import { Node } from 'acorn';\r\nimport * as code_red from 'code-red';\r\n\r\nexport const parse = (source: string): Node => code_red.parse(source, {\r\n\tsourceType: 'module',\r\n\tecmaVersion: 12,\r\n\tlocations: true\r\n});\r\n\r\nexport const parse_expression_at = (source: string, index: number): Node => code_red.parseExpressionAt(source, index, {\r\n\tsourceType: 'module',\r\n\tecmaVersion: 12,\r\n\tlocations: true\r\n});\r\n","export const whitespace = /[ \\t\\r\\n]/;\r\nexport const start_whitespace = /^[ \\t\\r\\n]*/;\r\nexport const end_whitespace = /[ \\t\\r\\n]*$/;\r\nexport const start_newline = /^\\r?\\n/;\r\n\r\nexport const dimensions = /^(?:offset|client)(?:Width|Height)$/;\r\n","import { parse_expression_at } from '../acorn';\r\nimport { Parser } from '../index';\r\nimport { Node } from 'estree';\r\nimport { whitespace } from '../../utils/patterns';\r\nimport parser_errors from '../errors';\r\n\r\nexport default function read_expression(parser: Parser): Node {\r\n\ttry {\r\n\t\tconst node = parse_expression_at(parser.template, parser.index);\r\n\r\n\t\tlet num_parens = 0;\r\n\r\n\t\tfor (let i = parser.index; i < node.start; i += 1) {\r\n\t\t\tif (parser.template[i] === '(') num_parens += 1;\r\n\t\t}\r\n\r\n\t\tlet index = node.end;\r\n\t\twhile (num_parens > 0) {\r\n\t\t\tconst char = parser.template[index];\r\n\r\n\t\t\tif (char === ')') {\r\n\t\t\t\tnum_parens -= 1;\r\n\t\t\t} else if (!whitespace.test(char)) {\r\n\t\t\t\tparser.error(parser_errors.unexpected_token(')'), index);\r\n\t\t\t}\r\n\r\n\t\t\tindex += 1;\r\n\t\t}\r\n\r\n\t\tparser.index = index;\r\n\r\n\t\treturn node as Node;\r\n\t} catch (err) {\r\n\t\tparser.acorn_error(err);\r\n\t}\r\n}\r\n","import * as acorn from '../acorn';\r\nimport { Parser } from '../index';\r\nimport { Script } from '../../interfaces';\r\nimport { Node, Program } from 'estree';\r\nimport parser_errors from '../errors';\r\n\r\nfunction get_context(parser: Parser, attributes: any[], start: number): string {\r\n\tconst context = attributes.find(attribute => attribute.name === 'context');\r\n\tif (!context) return 'default';\r\n\r\n\tif (context.value.length !== 1 || context.value[0].type !== 'Text') {\r\n\t\tparser.error(parser_errors.invalid_script_context_attribute, start);\r\n\t}\r\n\r\n\tconst value = context.value[0].data;\r\n\r\n\tif (value !== 'module') {\r\n\t\tparser.error(parser_errors.invalid_script_context_value, context.start);\r\n\t}\r\n\r\n\treturn value;\r\n}\r\n\r\nexport default function read_script(parser: Parser, start: number, attributes: Node[]): Script {\r\n\tconst script_start = parser.index;\r\n\tconst data = parser.read_until(/<\\/script\\s*>/, parser_errors.unclosed_script);\r\n\tif (parser.index >= parser.template.length) {\r\n\t\tparser.error(parser_errors.unclosed_script);\r\n\t}\r\n\r\n\tconst source = parser.template.slice(0, script_start).replace(/[^\\n]/g, ' ') + data;\r\n\tparser.read(/<\\/script\\s*>/);\r\n\r\n\tlet ast: Program;\r\n\r\n\ttry {\r\n\t\tast = acorn.parse(source) as any as Program;\r\n\t} catch (err) {\r\n\t\tparser.acorn_error(err);\r\n\t}\r\n\r\n\t// TODO is this necessary?\r\n\t(ast as any).start = script_start;\r\n\r\n\treturn {\r\n\t\ttype: 'Script',\r\n\t\tstart,\r\n\t\tend: parser.index,\r\n\t\tcontext: get_context(parser, attributes, start),\r\n\t\tcontent: ast\r\n\t};\r\n}\r\n","var MIN_SIZE = 16 * 1024;\nvar SafeUint32Array = typeof Uint32Array !== 'undefined' ? Uint32Array : Array; // fallback on Array when TypedArray is not supported\n\nmodule.exports = function adoptBuffer(buffer, size) {\n    if (buffer === null || buffer.length < size) {\n        return new SafeUint32Array(Math.max(size + 1024, MIN_SIZE));\n    }\n\n    return buffer;\n};\n","// CSS Syntax Module Level 3\n// https://www.w3.org/TR/css-syntax-3/\nvar TYPE = {\n    EOF: 0,                 // <EOF-token>\n    Ident: 1,               // <ident-token>\n    Function: 2,            // <function-token>\n    AtKeyword: 3,           // <at-keyword-token>\n    Hash: 4,                // <hash-token>\n    String: 5,              // <string-token>\n    BadString: 6,           // <bad-string-token>\n    Url: 7,                 // <url-token>\n    BadUrl: 8,              // <bad-url-token>\n    Delim: 9,               // <delim-token>\n    Number: 10,             // <number-token>\n    Percentage: 11,         // <percentage-token>\n    Dimension: 12,          // <dimension-token>\n    WhiteSpace: 13,         // <whitespace-token>\n    CDO: 14,                // <CDO-token>\n    CDC: 15,                // <CDC-token>\n    Colon: 16,              // <colon-token>     :\n    Semicolon: 17,          // <semicolon-token> ;\n    Comma: 18,              // <comma-token>     ,\n    LeftSquareBracket: 19,  // <[-token>\n    RightSquareBracket: 20, // <]-token>\n    LeftParenthesis: 21,    // <(-token>\n    RightParenthesis: 22,   // <)-token>\n    LeftCurlyBracket: 23,   // <{-token>\n    RightCurlyBracket: 24,  // <}-token>\n    Comment: 25\n};\n\nvar NAME = Object.keys(TYPE).reduce(function(result, key) {\n    result[TYPE[key]] = key;\n    return result;\n}, {});\n\nmodule.exports = {\n    TYPE: TYPE,\n    NAME: NAME\n};\n","var EOF = 0;\n\n// https://drafts.csswg.org/css-syntax-3/\n// § 4.2. Definitions\n\n// digit\n// A code point between U+0030 DIGIT ZERO (0) and U+0039 DIGIT NINE (9).\nfunction isDigit(code) {\n    return code >= 0x0030 && code <= 0x0039;\n}\n\n// hex digit\n// A digit, or a code point between U+0041 LATIN CAPITAL LETTER A (A) and U+0046 LATIN CAPITAL LETTER F (F),\n// or a code point between U+0061 LATIN SMALL LETTER A (a) and U+0066 LATIN SMALL LETTER F (f).\nfunction isHexDigit(code) {\n    return (\n        isDigit(code) || // 0 .. 9\n        (code >= 0x0041 && code <= 0x0046) || // A .. F\n        (code >= 0x0061 && code <= 0x0066)    // a .. f\n    );\n}\n\n// uppercase letter\n// A code point between U+0041 LATIN CAPITAL LETTER A (A) and U+005A LATIN CAPITAL LETTER Z (Z).\nfunction isUppercaseLetter(code) {\n    return code >= 0x0041 && code <= 0x005A;\n}\n\n// lowercase letter\n// A code point between U+0061 LATIN SMALL LETTER A (a) and U+007A LATIN SMALL LETTER Z (z).\nfunction isLowercaseLetter(code) {\n    return code >= 0x0061 && code <= 0x007A;\n}\n\n// letter\n// An uppercase letter or a lowercase letter.\nfunction isLetter(code) {\n    return isUppercaseLetter(code) || isLowercaseLetter(code);\n}\n\n// non-ASCII code point\n// A code point with a value equal to or greater than U+0080 <control>.\nfunction isNonAscii(code) {\n    return code >= 0x0080;\n}\n\n// name-start code point\n// A letter, a non-ASCII code point, or U+005F LOW LINE (_).\nfunction isNameStart(code) {\n    return isLetter(code) || isNonAscii(code) || code === 0x005F;\n}\n\n// name code point\n// A name-start code point, a digit, or U+002D HYPHEN-MINUS (-).\nfunction isName(code) {\n    return isNameStart(code) || isDigit(code) || code === 0x002D;\n}\n\n// non-printable code point\n// A code point between U+0000 NULL and U+0008 BACKSPACE, or U+000B LINE TABULATION,\n// or a code point between U+000E SHIFT OUT and U+001F INFORMATION SEPARATOR ONE, or U+007F DELETE.\nfunction isNonPrintable(code) {\n    return (\n        (code >= 0x0000 && code <= 0x0008) ||\n        (code === 0x000B) ||\n        (code >= 0x000E && code <= 0x001F) ||\n        (code === 0x007F)\n    );\n}\n\n// newline\n// U+000A LINE FEED. Note that U+000D CARRIAGE RETURN and U+000C FORM FEED are not included in this definition,\n// as they are converted to U+000A LINE FEED during preprocessing.\n// TODO: we doesn't do a preprocessing, so check a code point for U+000D CARRIAGE RETURN and U+000C FORM FEED\nfunction isNewline(code) {\n    return code === 0x000A || code === 0x000D || code === 0x000C;\n}\n\n// whitespace\n// A newline, U+0009 CHARACTER TABULATION, or U+0020 SPACE.\nfunction isWhiteSpace(code) {\n    return isNewline(code) || code === 0x0020 || code === 0x0009;\n}\n\n// § 4.3.8. Check if two code points are a valid escape\nfunction isValidEscape(first, second) {\n    // If the first code point is not U+005C REVERSE SOLIDUS (\\), return false.\n    if (first !== 0x005C) {\n        return false;\n    }\n\n    // Otherwise, if the second code point is a newline or EOF, return false.\n    if (isNewline(second) || second === EOF) {\n        return false;\n    }\n\n    // Otherwise, return true.\n    return true;\n}\n\n// § 4.3.9. Check if three code points would start an identifier\nfunction isIdentifierStart(first, second, third) {\n    // Look at the first code point:\n\n    // U+002D HYPHEN-MINUS\n    if (first === 0x002D) {\n        // If the second code point is a name-start code point or a U+002D HYPHEN-MINUS,\n        // or the second and third code points are a valid escape, return true. Otherwise, return false.\n        return (\n            isNameStart(second) ||\n            second === 0x002D ||\n            isValidEscape(second, third)\n        );\n    }\n\n    // name-start code point\n    if (isNameStart(first)) {\n        // Return true.\n        return true;\n    }\n\n    // U+005C REVERSE SOLIDUS (\\)\n    if (first === 0x005C) {\n        // If the first and second code points are a valid escape, return true. Otherwise, return false.\n        return isValidEscape(first, second);\n    }\n\n    // anything else\n    // Return false.\n    return false;\n}\n\n// § 4.3.10. Check if three code points would start a number\nfunction isNumberStart(first, second, third) {\n    // Look at the first code point:\n\n    // U+002B PLUS SIGN (+)\n    // U+002D HYPHEN-MINUS (-)\n    if (first === 0x002B || first === 0x002D) {\n        // If the second code point is a digit, return true.\n        if (isDigit(second)) {\n            return 2;\n        }\n\n        // Otherwise, if the second code point is a U+002E FULL STOP (.)\n        // and the third code point is a digit, return true.\n        // Otherwise, return false.\n        return second === 0x002E && isDigit(third) ? 3 : 0;\n    }\n\n    // U+002E FULL STOP (.)\n    if (first === 0x002E) {\n        // If the second code point is a digit, return true. Otherwise, return false.\n        return isDigit(second) ? 2 : 0;\n    }\n\n    // digit\n    if (isDigit(first)) {\n        // Return true.\n        return 1;\n    }\n\n    // anything else\n    // Return false.\n    return 0;\n}\n\n//\n// Misc\n//\n\n// detect BOM (https://en.wikipedia.org/wiki/Byte_order_mark)\nfunction isBOM(code) {\n    // UTF-16BE\n    if (code === 0xFEFF) {\n        return 1;\n    }\n\n    // UTF-16LE\n    if (code === 0xFFFE) {\n        return 1;\n    }\n\n    return 0;\n}\n\n// Fast code category\n//\n// https://drafts.csswg.org/css-syntax/#tokenizer-definitions\n// > non-ASCII code point\n// >   A code point with a value equal to or greater than U+0080 <control>\n// > name-start code point\n// >   A letter, a non-ASCII code point, or U+005F LOW LINE (_).\n// > name code point\n// >   A name-start code point, a digit, or U+002D HYPHEN-MINUS (-)\n// That means only ASCII code points has a special meaning and we define a maps for 0..127 codes only\nvar CATEGORY = new Array(0x80);\ncharCodeCategory.Eof = 0x80;\ncharCodeCategory.WhiteSpace = 0x82;\ncharCodeCategory.Digit = 0x83;\ncharCodeCategory.NameStart = 0x84;\ncharCodeCategory.NonPrintable = 0x85;\n\nfor (var i = 0; i < CATEGORY.length; i++) {\n    switch (true) {\n        case isWhiteSpace(i):\n            CATEGORY[i] = charCodeCategory.WhiteSpace;\n            break;\n\n        case isDigit(i):\n            CATEGORY[i] = charCodeCategory.Digit;\n            break;\n\n        case isNameStart(i):\n            CATEGORY[i] = charCodeCategory.NameStart;\n            break;\n\n        case isNonPrintable(i):\n            CATEGORY[i] = charCodeCategory.NonPrintable;\n            break;\n\n        default:\n            CATEGORY[i] = i || charCodeCategory.Eof;\n    }\n}\n\nfunction charCodeCategory(code) {\n    return code < 0x80 ? CATEGORY[code] : charCodeCategory.NameStart;\n};\n\nmodule.exports = {\n    isDigit: isDigit,\n    isHexDigit: isHexDigit,\n    isUppercaseLetter: isUppercaseLetter,\n    isLowercaseLetter: isLowercaseLetter,\n    isLetter: isLetter,\n    isNonAscii: isNonAscii,\n    isNameStart: isNameStart,\n    isName: isName,\n    isNonPrintable: isNonPrintable,\n    isNewline: isNewline,\n    isWhiteSpace: isWhiteSpace,\n    isValidEscape: isValidEscape,\n    isIdentifierStart: isIdentifierStart,\n    isNumberStart: isNumberStart,\n\n    isBOM: isBOM,\n    charCodeCategory: charCodeCategory\n};\n","var charCodeDef = require('./char-code-definitions');\nvar isDigit = charCodeDef.isDigit;\nvar isHexDigit = charCodeDef.isHexDigit;\nvar isUppercaseLetter = charCodeDef.isUppercaseLetter;\nvar isName = charCodeDef.isName;\nvar isWhiteSpace = charCodeDef.isWhiteSpace;\nvar isValidEscape = charCodeDef.isValidEscape;\n\nfunction getCharCode(source, offset) {\n    return offset < source.length ? source.charCodeAt(offset) : 0;\n}\n\nfunction getNewlineLength(source, offset, code) {\n    if (code === 13 /* \\r */ && getCharCode(source, offset + 1) === 10 /* \\n */) {\n        return 2;\n    }\n\n    return 1;\n}\n\nfunction cmpChar(testStr, offset, referenceCode) {\n    var code = testStr.charCodeAt(offset);\n\n    // code.toLowerCase() for A..Z\n    if (isUppercaseLetter(code)) {\n        code = code | 32;\n    }\n\n    return code === referenceCode;\n}\n\nfunction cmpStr(testStr, start, end, referenceStr) {\n    if (end - start !== referenceStr.length) {\n        return false;\n    }\n\n    if (start < 0 || end > testStr.length) {\n        return false;\n    }\n\n    for (var i = start; i < end; i++) {\n        var testCode = testStr.charCodeAt(i);\n        var referenceCode = referenceStr.charCodeAt(i - start);\n\n        // testCode.toLowerCase() for A..Z\n        if (isUppercaseLetter(testCode)) {\n            testCode = testCode | 32;\n        }\n\n        if (testCode !== referenceCode) {\n            return false;\n        }\n    }\n\n    return true;\n}\n\nfunction findWhiteSpaceStart(source, offset) {\n    for (; offset >= 0; offset--) {\n        if (!isWhiteSpace(source.charCodeAt(offset))) {\n            break;\n        }\n    }\n\n    return offset + 1;\n}\n\nfunction findWhiteSpaceEnd(source, offset) {\n    for (; offset < source.length; offset++) {\n        if (!isWhiteSpace(source.charCodeAt(offset))) {\n            break;\n        }\n    }\n\n    return offset;\n}\n\nfunction findDecimalNumberEnd(source, offset) {\n    for (; offset < source.length; offset++) {\n        if (!isDigit(source.charCodeAt(offset))) {\n            break;\n        }\n    }\n\n    return offset;\n}\n\n// § 4.3.7. Consume an escaped code point\nfunction consumeEscaped(source, offset) {\n    // It assumes that the U+005C REVERSE SOLIDUS (\\) has already been consumed and\n    // that the next input code point has already been verified to be part of a valid escape.\n    offset += 2;\n\n    // hex digit\n    if (isHexDigit(getCharCode(source, offset - 1))) {\n        // Consume as many hex digits as possible, but no more than 5.\n        // Note that this means 1-6 hex digits have been consumed in total.\n        for (var maxOffset = Math.min(source.length, offset + 5); offset < maxOffset; offset++) {\n            if (!isHexDigit(getCharCode(source, offset))) {\n                break;\n            }\n        }\n\n        // If the next input code point is whitespace, consume it as well.\n        var code = getCharCode(source, offset);\n        if (isWhiteSpace(code)) {\n            offset += getNewlineLength(source, offset, code);\n        }\n    }\n\n    return offset;\n}\n\n// §4.3.11. Consume a name\n// Note: This algorithm does not do the verification of the first few code points that are necessary\n// to ensure the returned code points would constitute an <ident-token>. If that is the intended use,\n// ensure that the stream starts with an identifier before calling this algorithm.\nfunction consumeName(source, offset) {\n    // Let result initially be an empty string.\n    // Repeatedly consume the next input code point from the stream:\n    for (; offset < source.length; offset++) {\n        var code = source.charCodeAt(offset);\n\n        // name code point\n        if (isName(code)) {\n            // Append the code point to result.\n            continue;\n        }\n\n        // the stream starts with a valid escape\n        if (isValidEscape(code, getCharCode(source, offset + 1))) {\n            // Consume an escaped code point. Append the returned code point to result.\n            offset = consumeEscaped(source, offset) - 1;\n            continue;\n        }\n\n        // anything else\n        // Reconsume the current input code point. Return result.\n        break;\n    }\n\n    return offset;\n}\n\n// §4.3.12. Consume a number\nfunction consumeNumber(source, offset) {\n    var code = source.charCodeAt(offset);\n\n    // 2. If the next input code point is U+002B PLUS SIGN (+) or U+002D HYPHEN-MINUS (-),\n    // consume it and append it to repr.\n    if (code === 0x002B || code === 0x002D) {\n        code = source.charCodeAt(offset += 1);\n    }\n\n    // 3. While the next input code point is a digit, consume it and append it to repr.\n    if (isDigit(code)) {\n        offset = findDecimalNumberEnd(source, offset + 1);\n        code = source.charCodeAt(offset);\n    }\n\n    // 4. If the next 2 input code points are U+002E FULL STOP (.) followed by a digit, then:\n    if (code === 0x002E && isDigit(source.charCodeAt(offset + 1))) {\n        // 4.1 Consume them.\n        // 4.2 Append them to repr.\n        code = source.charCodeAt(offset += 2);\n\n        // 4.3 Set type to \"number\".\n        // TODO\n\n        // 4.4 While the next input code point is a digit, consume it and append it to repr.\n\n        offset = findDecimalNumberEnd(source, offset);\n    }\n\n    // 5. If the next 2 or 3 input code points are U+0045 LATIN CAPITAL LETTER E (E)\n    // or U+0065 LATIN SMALL LETTER E (e), ... , followed by a digit, then:\n    if (cmpChar(source, offset, 101 /* e */)) {\n        var sign = 0;\n        code = source.charCodeAt(offset + 1);\n\n        // ... optionally followed by U+002D HYPHEN-MINUS (-) or U+002B PLUS SIGN (+) ...\n        if (code === 0x002D || code === 0x002B) {\n            sign = 1;\n            code = source.charCodeAt(offset + 2);\n        }\n\n        // ... followed by a digit\n        if (isDigit(code)) {\n            // 5.1 Consume them.\n            // 5.2 Append them to repr.\n\n            // 5.3 Set type to \"number\".\n            // TODO\n\n            // 5.4 While the next input code point is a digit, consume it and append it to repr.\n            offset = findDecimalNumberEnd(source, offset + 1 + sign + 1);\n        }\n    }\n\n    return offset;\n}\n\n// § 4.3.14. Consume the remnants of a bad url\n// ... its sole use is to consume enough of the input stream to reach a recovery point\n// where normal tokenizing can resume.\nfunction consumeBadUrlRemnants(source, offset) {\n    // Repeatedly consume the next input code point from the stream:\n    for (; offset < source.length; offset++) {\n        var code = source.charCodeAt(offset);\n\n        // U+0029 RIGHT PARENTHESIS ())\n        // EOF\n        if (code === 0x0029) {\n            // Return.\n            offset++;\n            break;\n        }\n\n        if (isValidEscape(code, getCharCode(source, offset + 1))) {\n            // Consume an escaped code point.\n            // Note: This allows an escaped right parenthesis (\"\\)\") to be encountered\n            // without ending the <bad-url-token>. This is otherwise identical to\n            // the \"anything else\" clause.\n            offset = consumeEscaped(source, offset);\n        }\n    }\n\n    return offset;\n}\n\nmodule.exports = {\n    consumeEscaped: consumeEscaped,\n    consumeName: consumeName,\n    consumeNumber: consumeNumber,\n    consumeBadUrlRemnants: consumeBadUrlRemnants,\n\n    cmpChar: cmpChar,\n    cmpStr: cmpStr,\n\n    getNewlineLength: getNewlineLength,\n    findWhiteSpaceStart: findWhiteSpaceStart,\n    findWhiteSpaceEnd: findWhiteSpaceEnd\n};\n","var constants = require('../tokenizer/const');\nvar TYPE = constants.TYPE;\nvar NAME = constants.NAME;\n\nvar utils = require('../tokenizer/utils');\nvar cmpStr = utils.cmpStr;\n\nvar EOF = TYPE.EOF;\nvar WHITESPACE = TYPE.WhiteSpace;\nvar COMMENT = TYPE.Comment;\n\nvar OFFSET_MASK = 0x00FFFFFF;\nvar TYPE_SHIFT = 24;\n\nvar TokenStream = function() {\n    this.offsetAndType = null;\n    this.balance = null;\n\n    this.reset();\n};\n\nTokenStream.prototype = {\n    reset: function() {\n        this.eof = false;\n        this.tokenIndex = -1;\n        this.tokenType = 0;\n        this.tokenStart = this.firstCharOffset;\n        this.tokenEnd = this.firstCharOffset;\n    },\n\n    lookupType: function(offset) {\n        offset += this.tokenIndex;\n\n        if (offset < this.tokenCount) {\n            return this.offsetAndType[offset] >> TYPE_SHIFT;\n        }\n\n        return EOF;\n    },\n    lookupOffset: function(offset) {\n        offset += this.tokenIndex;\n\n        if (offset < this.tokenCount) {\n            return this.offsetAndType[offset - 1] & OFFSET_MASK;\n        }\n\n        return this.source.length;\n    },\n    lookupValue: function(offset, referenceStr) {\n        offset += this.tokenIndex;\n\n        if (offset < this.tokenCount) {\n            return cmpStr(\n                this.source,\n                this.offsetAndType[offset - 1] & OFFSET_MASK,\n                this.offsetAndType[offset] & OFFSET_MASK,\n                referenceStr\n            );\n        }\n\n        return false;\n    },\n    getTokenStart: function(tokenIndex) {\n        if (tokenIndex === this.tokenIndex) {\n            return this.tokenStart;\n        }\n\n        if (tokenIndex > 0) {\n            return tokenIndex < this.tokenCount\n                ? this.offsetAndType[tokenIndex - 1] & OFFSET_MASK\n                : this.offsetAndType[this.tokenCount] & OFFSET_MASK;\n        }\n\n        return this.firstCharOffset;\n    },\n\n    // TODO: -> skipUntilBalanced\n    getRawLength: function(startToken, mode) {\n        var cursor = startToken;\n        var balanceEnd;\n        var offset = this.offsetAndType[Math.max(cursor - 1, 0)] & OFFSET_MASK;\n        var type;\n\n        loop:\n        for (; cursor < this.tokenCount; cursor++) {\n            balanceEnd = this.balance[cursor];\n\n            // stop scanning on balance edge that points to offset before start token\n            if (balanceEnd < startToken) {\n                break loop;\n            }\n\n            type = this.offsetAndType[cursor] >> TYPE_SHIFT;\n\n            // check token is stop type\n            switch (mode(type, this.source, offset)) {\n                case 1:\n                    break loop;\n\n                case 2:\n                    cursor++;\n                    break loop;\n\n                default:\n                    // fast forward to the end of balanced block\n                    if (this.balance[balanceEnd] === cursor) {\n                        cursor = balanceEnd;\n                    }\n\n                    offset = this.offsetAndType[cursor] & OFFSET_MASK;\n            }\n        }\n\n        return cursor - this.tokenIndex;\n    },\n    isBalanceEdge: function(pos) {\n        return this.balance[this.tokenIndex] < pos;\n    },\n    isDelim: function(code, offset) {\n        if (offset) {\n            return (\n                this.lookupType(offset) === TYPE.Delim &&\n                this.source.charCodeAt(this.lookupOffset(offset)) === code\n            );\n        }\n\n        return (\n            this.tokenType === TYPE.Delim &&\n            this.source.charCodeAt(this.tokenStart) === code\n        );\n    },\n\n    getTokenValue: function() {\n        return this.source.substring(this.tokenStart, this.tokenEnd);\n    },\n    getTokenLength: function() {\n        return this.tokenEnd - this.tokenStart;\n    },\n    substrToCursor: function(start) {\n        return this.source.substring(start, this.tokenStart);\n    },\n\n    skipWS: function() {\n        for (var i = this.tokenIndex, skipTokenCount = 0; i < this.tokenCount; i++, skipTokenCount++) {\n            if ((this.offsetAndType[i] >> TYPE_SHIFT) !== WHITESPACE) {\n                break;\n            }\n        }\n\n        if (skipTokenCount > 0) {\n            this.skip(skipTokenCount);\n        }\n    },\n    skipSC: function() {\n        while (this.tokenType === WHITESPACE || this.tokenType === COMMENT) {\n            this.next();\n        }\n    },\n    skip: function(tokenCount) {\n        var next = this.tokenIndex + tokenCount;\n\n        if (next < this.tokenCount) {\n            this.tokenIndex = next;\n            this.tokenStart = this.offsetAndType[next - 1] & OFFSET_MASK;\n            next = this.offsetAndType[next];\n            this.tokenType = next >> TYPE_SHIFT;\n            this.tokenEnd = next & OFFSET_MASK;\n        } else {\n            this.tokenIndex = this.tokenCount;\n            this.next();\n        }\n    },\n    next: function() {\n        var next = this.tokenIndex + 1;\n\n        if (next < this.tokenCount) {\n            this.tokenIndex = next;\n            this.tokenStart = this.tokenEnd;\n            next = this.offsetAndType[next];\n            this.tokenType = next >> TYPE_SHIFT;\n            this.tokenEnd = next & OFFSET_MASK;\n        } else {\n            this.tokenIndex = this.tokenCount;\n            this.eof = true;\n            this.tokenType = EOF;\n            this.tokenStart = this.tokenEnd = this.source.length;\n        }\n    },\n\n    forEachToken(fn) {\n        for (var i = 0, offset = this.firstCharOffset; i < this.tokenCount; i++) {\n            var start = offset;\n            var item = this.offsetAndType[i];\n            var end = item & OFFSET_MASK;\n            var type = item >> TYPE_SHIFT;\n\n            offset = end;\n\n            fn(type, start, end, i);\n        }\n    },\n\n    dump() {\n        var tokens = new Array(this.tokenCount);\n\n        this.forEachToken((type, start, end, index) => {\n            tokens[index] = {\n                idx: index,\n                type: NAME[type],\n                chunk: this.source.substring(start, end),\n                balance: this.balance[index]\n            };\n        });\n\n        return tokens;\n    }\n};\n\nmodule.exports = TokenStream;\n","var TokenStream = require('../common/TokenStream');\nvar adoptBuffer = require('../common/adopt-buffer');\n\nvar constants = require('./const');\nvar TYPE = constants.TYPE;\n\nvar charCodeDefinitions = require('./char-code-definitions');\nvar isNewline = charCodeDefinitions.isNewline;\nvar isName = charCodeDefinitions.isName;\nvar isValidEscape = charCodeDefinitions.isValidEscape;\nvar isNumberStart = charCodeDefinitions.isNumberStart;\nvar isIdentifierStart = charCodeDefinitions.isIdentifierStart;\nvar charCodeCategory = charCodeDefinitions.charCodeCategory;\nvar isBOM = charCodeDefinitions.isBOM;\n\nvar utils = require('./utils');\nvar cmpStr = utils.cmpStr;\nvar getNewlineLength = utils.getNewlineLength;\nvar findWhiteSpaceEnd = utils.findWhiteSpaceEnd;\nvar consumeEscaped = utils.consumeEscaped;\nvar consumeName = utils.consumeName;\nvar consumeNumber = utils.consumeNumber;\nvar consumeBadUrlRemnants = utils.consumeBadUrlRemnants;\n\nvar OFFSET_MASK = 0x00FFFFFF;\nvar TYPE_SHIFT = 24;\n\nfunction tokenize(source, stream) {\n    function getCharCode(offset) {\n        return offset < sourceLength ? source.charCodeAt(offset) : 0;\n    }\n\n    // § 4.3.3. Consume a numeric token\n    function consumeNumericToken() {\n        // Consume a number and let number be the result.\n        offset = consumeNumber(source, offset);\n\n        // If the next 3 input code points would start an identifier, then:\n        if (isIdentifierStart(getCharCode(offset), getCharCode(offset + 1), getCharCode(offset + 2))) {\n            // Create a <dimension-token> with the same value and type flag as number, and a unit set initially to the empty string.\n            // Consume a name. Set the <dimension-token>’s unit to the returned value.\n            // Return the <dimension-token>.\n            type = TYPE.Dimension;\n            offset = consumeName(source, offset);\n            return;\n        }\n\n        // Otherwise, if the next input code point is U+0025 PERCENTAGE SIGN (%), consume it.\n        if (getCharCode(offset) === 0x0025) {\n            // Create a <percentage-token> with the same value as number, and return it.\n            type = TYPE.Percentage;\n            offset++;\n            return;\n        }\n\n        // Otherwise, create a <number-token> with the same value and type flag as number, and return it.\n        type = TYPE.Number;\n    }\n\n    // § 4.3.4. Consume an ident-like token\n    function consumeIdentLikeToken() {\n        const nameStartOffset = offset;\n\n        // Consume a name, and let string be the result.\n        offset = consumeName(source, offset);\n\n        // If string’s value is an ASCII case-insensitive match for \"url\",\n        // and the next input code point is U+0028 LEFT PARENTHESIS ((), consume it.\n        if (cmpStr(source, nameStartOffset, offset, 'url') && getCharCode(offset) === 0x0028) {\n            // While the next two input code points are whitespace, consume the next input code point.\n            offset = findWhiteSpaceEnd(source, offset + 1);\n\n            // If the next one or two input code points are U+0022 QUOTATION MARK (\"), U+0027 APOSTROPHE ('),\n            // or whitespace followed by U+0022 QUOTATION MARK (\") or U+0027 APOSTROPHE ('),\n            // then create a <function-token> with its value set to string and return it.\n            if (getCharCode(offset) === 0x0022 ||\n                getCharCode(offset) === 0x0027) {\n                type = TYPE.Function;\n                offset = nameStartOffset + 4;\n                return;\n            }\n\n            // Otherwise, consume a url token, and return it.\n            consumeUrlToken();\n            return;\n        }\n\n        // Otherwise, if the next input code point is U+0028 LEFT PARENTHESIS ((), consume it.\n        // Create a <function-token> with its value set to string and return it.\n        if (getCharCode(offset) === 0x0028) {\n            type = TYPE.Function;\n            offset++;\n            return;\n        }\n\n        // Otherwise, create an <ident-token> with its value set to string and return it.\n        type = TYPE.Ident;\n    }\n\n    // § 4.3.5. Consume a string token\n    function consumeStringToken(endingCodePoint) {\n        // This algorithm may be called with an ending code point, which denotes the code point\n        // that ends the string. If an ending code point is not specified,\n        // the current input code point is used.\n        if (!endingCodePoint) {\n            endingCodePoint = getCharCode(offset++);\n        }\n\n        // Initially create a <string-token> with its value set to the empty string.\n        type = TYPE.String;\n\n        // Repeatedly consume the next input code point from the stream:\n        for (; offset < source.length; offset++) {\n            var code = source.charCodeAt(offset);\n\n            switch (charCodeCategory(code)) {\n                // ending code point\n                case endingCodePoint:\n                    // Return the <string-token>.\n                    offset++;\n                    return;\n\n                // EOF\n                case charCodeCategory.Eof:\n                    // This is a parse error. Return the <string-token>.\n                    return;\n\n                // newline\n                case charCodeCategory.WhiteSpace:\n                    if (isNewline(code)) {\n                        // This is a parse error. Reconsume the current input code point,\n                        // create a <bad-string-token>, and return it.\n                        offset += getNewlineLength(source, offset, code);\n                        type = TYPE.BadString;\n                        return;\n                    }\n                    break;\n\n                // U+005C REVERSE SOLIDUS (\\)\n                case 0x005C:\n                    // If the next input code point is EOF, do nothing.\n                    if (offset === source.length - 1) {\n                        break;\n                    }\n\n                    var nextCode = getCharCode(offset + 1);\n\n                    // Otherwise, if the next input code point is a newline, consume it.\n                    if (isNewline(nextCode)) {\n                        offset += getNewlineLength(source, offset + 1, nextCode);\n                    } else if (isValidEscape(code, nextCode)) {\n                        // Otherwise, (the stream starts with a valid escape) consume\n                        // an escaped code point and append the returned code point to\n                        // the <string-token>’s value.\n                        offset = consumeEscaped(source, offset) - 1;\n                    }\n                    break;\n\n                // anything else\n                // Append the current input code point to the <string-token>’s value.\n            }\n        }\n    }\n\n    // § 4.3.6. Consume a url token\n    // Note: This algorithm assumes that the initial \"url(\" has already been consumed.\n    // This algorithm also assumes that it’s being called to consume an \"unquoted\" value, like url(foo).\n    // A quoted value, like url(\"foo\"), is parsed as a <function-token>. Consume an ident-like token\n    // automatically handles this distinction; this algorithm shouldn’t be called directly otherwise.\n    function consumeUrlToken() {\n        // Initially create a <url-token> with its value set to the empty string.\n        type = TYPE.Url;\n\n        // Consume as much whitespace as possible.\n        offset = findWhiteSpaceEnd(source, offset);\n\n        // Repeatedly consume the next input code point from the stream:\n        for (; offset < source.length; offset++) {\n            var code = source.charCodeAt(offset);\n\n            switch (charCodeCategory(code)) {\n                // U+0029 RIGHT PARENTHESIS ())\n                case 0x0029:\n                    // Return the <url-token>.\n                    offset++;\n                    return;\n\n                // EOF\n                case charCodeCategory.Eof:\n                    // This is a parse error. Return the <url-token>.\n                    return;\n\n                // whitespace\n                case charCodeCategory.WhiteSpace:\n                    // Consume as much whitespace as possible.\n                    offset = findWhiteSpaceEnd(source, offset);\n\n                    // If the next input code point is U+0029 RIGHT PARENTHESIS ()) or EOF,\n                    // consume it and return the <url-token>\n                    // (if EOF was encountered, this is a parse error);\n                    if (getCharCode(offset) === 0x0029 || offset >= source.length) {\n                        if (offset < source.length) {\n                            offset++;\n                        }\n                        return;\n                    }\n\n                    // otherwise, consume the remnants of a bad url, create a <bad-url-token>,\n                    // and return it.\n                    offset = consumeBadUrlRemnants(source, offset);\n                    type = TYPE.BadUrl;\n                    return;\n\n                // U+0022 QUOTATION MARK (\")\n                // U+0027 APOSTROPHE (')\n                // U+0028 LEFT PARENTHESIS (()\n                // non-printable code point\n                case 0x0022:\n                case 0x0027:\n                case 0x0028:\n                case charCodeCategory.NonPrintable:\n                    // This is a parse error. Consume the remnants of a bad url,\n                    // create a <bad-url-token>, and return it.\n                    offset = consumeBadUrlRemnants(source, offset);\n                    type = TYPE.BadUrl;\n                    return;\n\n                // U+005C REVERSE SOLIDUS (\\)\n                case 0x005C:\n                    // If the stream starts with a valid escape, consume an escaped code point and\n                    // append the returned code point to the <url-token>’s value.\n                    if (isValidEscape(code, getCharCode(offset + 1))) {\n                        offset = consumeEscaped(source, offset) - 1;\n                        break;\n                    }\n\n                    // Otherwise, this is a parse error. Consume the remnants of a bad url,\n                    // create a <bad-url-token>, and return it.\n                    offset = consumeBadUrlRemnants(source, offset);\n                    type = TYPE.BadUrl;\n                    return;\n\n                // anything else\n                // Append the current input code point to the <url-token>’s value.\n            }\n        }\n    }\n\n    if (!stream) {\n        stream = new TokenStream();\n    }\n\n    // ensure source is a string\n    source = String(source || '');\n\n    var sourceLength = source.length;\n    var offsetAndType = adoptBuffer(stream.offsetAndType, sourceLength + 1); // +1 because of eof-token\n    var balance = adoptBuffer(stream.balance, sourceLength + 1);\n    var tokenCount = 0;\n    var start = isBOM(getCharCode(0));\n    var offset = start;\n    var balanceCloseType = 0;\n    var balanceStart = 0;\n    var balancePrev = 0;\n\n    // https://drafts.csswg.org/css-syntax-3/#consume-token\n    // § 4.3.1. Consume a token\n    while (offset < sourceLength) {\n        var code = source.charCodeAt(offset);\n        var type = 0;\n\n        balance[tokenCount] = sourceLength;\n\n        switch (charCodeCategory(code)) {\n            // whitespace\n            case charCodeCategory.WhiteSpace:\n                // Consume as much whitespace as possible. Return a <whitespace-token>.\n                type = TYPE.WhiteSpace;\n                offset = findWhiteSpaceEnd(source, offset + 1);\n                break;\n\n            // U+0022 QUOTATION MARK (\")\n            case 0x0022:\n                // Consume a string token and return it.\n                consumeStringToken();\n                break;\n\n            // U+0023 NUMBER SIGN (#)\n            case 0x0023:\n                // If the next input code point is a name code point or the next two input code points are a valid escape, then:\n                if (isName(getCharCode(offset + 1)) || isValidEscape(getCharCode(offset + 1), getCharCode(offset + 2))) {\n                    // Create a <hash-token>.\n                    type = TYPE.Hash;\n\n                    // If the next 3 input code points would start an identifier, set the <hash-token>’s type flag to \"id\".\n                    // if (isIdentifierStart(getCharCode(offset + 1), getCharCode(offset + 2), getCharCode(offset + 3))) {\n                    //     // TODO: set id flag\n                    // }\n\n                    // Consume a name, and set the <hash-token>’s value to the returned string.\n                    offset = consumeName(source, offset + 1);\n\n                    // Return the <hash-token>.\n                } else {\n                    // Otherwise, return a <delim-token> with its value set to the current input code point.\n                    type = TYPE.Delim;\n                    offset++;\n                }\n\n                break;\n\n            // U+0027 APOSTROPHE (')\n            case 0x0027:\n                // Consume a string token and return it.\n                consumeStringToken();\n                break;\n\n            // U+0028 LEFT PARENTHESIS (()\n            case 0x0028:\n                // Return a <(-token>.\n                type = TYPE.LeftParenthesis;\n                offset++;\n                break;\n\n            // U+0029 RIGHT PARENTHESIS ())\n            case 0x0029:\n                // Return a <)-token>.\n                type = TYPE.RightParenthesis;\n                offset++;\n                break;\n\n            // U+002B PLUS SIGN (+)\n            case 0x002B:\n                // If the input stream starts with a number, ...\n                if (isNumberStart(code, getCharCode(offset + 1), getCharCode(offset + 2))) {\n                    // ... reconsume the current input code point, consume a numeric token, and return it.\n                    consumeNumericToken();\n                } else {\n                    // Otherwise, return a <delim-token> with its value set to the current input code point.\n                    type = TYPE.Delim;\n                    offset++;\n                }\n                break;\n\n            // U+002C COMMA (,)\n            case 0x002C:\n                // Return a <comma-token>.\n                type = TYPE.Comma;\n                offset++;\n                break;\n\n            // U+002D HYPHEN-MINUS (-)\n            case 0x002D:\n                // If the input stream starts with a number, reconsume the current input code point, consume a numeric token, and return it.\n                if (isNumberStart(code, getCharCode(offset + 1), getCharCode(offset + 2))) {\n                    consumeNumericToken();\n                } else {\n                    // Otherwise, if the next 2 input code points are U+002D HYPHEN-MINUS U+003E GREATER-THAN SIGN (->), consume them and return a <CDC-token>.\n                    if (getCharCode(offset + 1) === 0x002D &&\n                        getCharCode(offset + 2) === 0x003E) {\n                        type = TYPE.CDC;\n                        offset = offset + 3;\n                    } else {\n                        // Otherwise, if the input stream starts with an identifier, ...\n                        if (isIdentifierStart(code, getCharCode(offset + 1), getCharCode(offset + 2))) {\n                            // ... reconsume the current input code point, consume an ident-like token, and return it.\n                            consumeIdentLikeToken();\n                        } else {\n                            // Otherwise, return a <delim-token> with its value set to the current input code point.\n                            type = TYPE.Delim;\n                            offset++;\n                        }\n                    }\n                }\n                break;\n\n            // U+002E FULL STOP (.)\n            case 0x002E:\n                // If the input stream starts with a number, ...\n                if (isNumberStart(code, getCharCode(offset + 1), getCharCode(offset + 2))) {\n                    // ... reconsume the current input code point, consume a numeric token, and return it.\n                    consumeNumericToken();\n                } else {\n                    // Otherwise, return a <delim-token> with its value set to the current input code point.\n                    type = TYPE.Delim;\n                    offset++;\n                }\n\n                break;\n\n            // U+002F SOLIDUS (/)\n            case 0x002F:\n                // If the next two input code point are U+002F SOLIDUS (/) followed by a U+002A ASTERISK (*),\n                if (getCharCode(offset + 1) === 0x002A) {\n                    // ... consume them and all following code points up to and including the first U+002A ASTERISK (*)\n                    // followed by a U+002F SOLIDUS (/), or up to an EOF code point.\n                    type = TYPE.Comment;\n                    offset = source.indexOf('*/', offset + 2) + 2;\n                    if (offset === 1) {\n                        offset = source.length;\n                    }\n                } else {\n                    type = TYPE.Delim;\n                    offset++;\n                }\n                break;\n\n            // U+003A COLON (:)\n            case 0x003A:\n                // Return a <colon-token>.\n                type = TYPE.Colon;\n                offset++;\n                break;\n\n            // U+003B SEMICOLON (;)\n            case 0x003B:\n                // Return a <semicolon-token>.\n                type = TYPE.Semicolon;\n                offset++;\n                break;\n\n            // U+003C LESS-THAN SIGN (<)\n            case 0x003C:\n                // If the next 3 input code points are U+0021 EXCLAMATION MARK U+002D HYPHEN-MINUS U+002D HYPHEN-MINUS (!--), ...\n                if (getCharCode(offset + 1) === 0x0021 &&\n                    getCharCode(offset + 2) === 0x002D &&\n                    getCharCode(offset + 3) === 0x002D) {\n                    // ... consume them and return a <CDO-token>.\n                    type = TYPE.CDO;\n                    offset = offset + 4;\n                } else {\n                    // Otherwise, return a <delim-token> with its value set to the current input code point.\n                    type = TYPE.Delim;\n                    offset++;\n                }\n\n                break;\n\n            // U+0040 COMMERCIAL AT (@)\n            case 0x0040:\n                // If the next 3 input code points would start an identifier, ...\n                if (isIdentifierStart(getCharCode(offset + 1), getCharCode(offset + 2), getCharCode(offset + 3))) {\n                    // ... consume a name, create an <at-keyword-token> with its value set to the returned value, and return it.\n                    type = TYPE.AtKeyword;\n                    offset = consumeName(source, offset + 1);\n                } else {\n                    // Otherwise, return a <delim-token> with its value set to the current input code point.\n                    type = TYPE.Delim;\n                    offset++;\n                }\n\n                break;\n\n            // U+005B LEFT SQUARE BRACKET ([)\n            case 0x005B:\n                // Return a <[-token>.\n                type = TYPE.LeftSquareBracket;\n                offset++;\n                break;\n\n            // U+005C REVERSE SOLIDUS (\\)\n            case 0x005C:\n                // If the input stream starts with a valid escape, ...\n                if (isValidEscape(code, getCharCode(offset + 1))) {\n                    // ... reconsume the current input code point, consume an ident-like token, and return it.\n                    consumeIdentLikeToken();\n                } else {\n                    // Otherwise, this is a parse error. Return a <delim-token> with its value set to the current input code point.\n                    type = TYPE.Delim;\n                    offset++;\n                }\n                break;\n\n            // U+005D RIGHT SQUARE BRACKET (])\n            case 0x005D:\n                // Return a <]-token>.\n                type = TYPE.RightSquareBracket;\n                offset++;\n                break;\n\n            // U+007B LEFT CURLY BRACKET ({)\n            case 0x007B:\n                // Return a <{-token>.\n                type = TYPE.LeftCurlyBracket;\n                offset++;\n                break;\n\n            // U+007D RIGHT CURLY BRACKET (})\n            case 0x007D:\n                // Return a <}-token>.\n                type = TYPE.RightCurlyBracket;\n                offset++;\n                break;\n\n            // digit\n            case charCodeCategory.Digit:\n                // Reconsume the current input code point, consume a numeric token, and return it.\n                consumeNumericToken();\n                break;\n\n            // name-start code point\n            case charCodeCategory.NameStart:\n                // Reconsume the current input code point, consume an ident-like token, and return it.\n                consumeIdentLikeToken();\n                break;\n\n            // EOF\n            case charCodeCategory.Eof:\n                // Return an <EOF-token>.\n                break;\n\n            // anything else\n            default:\n                // Return a <delim-token> with its value set to the current input code point.\n                type = TYPE.Delim;\n                offset++;\n        }\n\n        switch (type) {\n            case balanceCloseType:\n                balancePrev = balanceStart & OFFSET_MASK;\n                balanceStart = balance[balancePrev];\n                balanceCloseType = balanceStart >> TYPE_SHIFT;\n                balance[tokenCount] = balancePrev;\n                balance[balancePrev++] = tokenCount;\n                for (; balancePrev < tokenCount; balancePrev++) {\n                    if (balance[balancePrev] === sourceLength) {\n                        balance[balancePrev] = tokenCount;\n                    }\n                }\n                break;\n\n            case TYPE.LeftParenthesis:\n            case TYPE.Function:\n                balance[tokenCount] = balanceStart;\n                balanceCloseType = TYPE.RightParenthesis;\n                balanceStart = (balanceCloseType << TYPE_SHIFT) | tokenCount;\n                break;\n\n            case TYPE.LeftSquareBracket:\n                balance[tokenCount] = balanceStart;\n                balanceCloseType = TYPE.RightSquareBracket;\n                balanceStart = (balanceCloseType << TYPE_SHIFT) | tokenCount;\n                break;\n\n            case TYPE.LeftCurlyBracket:\n                balance[tokenCount] = balanceStart;\n                balanceCloseType = TYPE.RightCurlyBracket;\n                balanceStart = (balanceCloseType << TYPE_SHIFT) | tokenCount;\n                break;\n        }\n\n        offsetAndType[tokenCount++] = (type << TYPE_SHIFT) | offset;\n    }\n\n    // finalize buffers\n    offsetAndType[tokenCount] = (TYPE.EOF << TYPE_SHIFT) | offset; // <EOF-token>\n    balance[tokenCount] = sourceLength;\n    balance[sourceLength] = sourceLength; // prevents false positive balance match with any token\n    while (balanceStart !== 0) {\n        balancePrev = balanceStart & OFFSET_MASK;\n        balanceStart = balance[balancePrev];\n        balance[balancePrev] = sourceLength;\n    }\n\n    // update stream\n    stream.source = source;\n    stream.firstCharOffset = start;\n    stream.offsetAndType = offsetAndType;\n    stream.tokenCount = tokenCount;\n    stream.balance = balance;\n    stream.reset();\n    stream.next();\n\n    return stream;\n}\n\n// extend tokenizer with constants\nObject.keys(constants).forEach(function(key) {\n    tokenize[key] = constants[key];\n});\n\n// extend tokenizer with static methods from utils\nObject.keys(charCodeDefinitions).forEach(function(key) {\n    tokenize[key] = charCodeDefinitions[key];\n});\nObject.keys(utils).forEach(function(key) {\n    tokenize[key] = utils[key];\n});\n\nmodule.exports = tokenize;\n","var adoptBuffer = require('./adopt-buffer');\nvar isBOM = require('../tokenizer').isBOM;\n\nvar N = 10;\nvar F = 12;\nvar R = 13;\n\nfunction computeLinesAndColumns(host, source) {\n    var sourceLength = source.length;\n    var lines = adoptBuffer(host.lines, sourceLength); // +1\n    var line = host.startLine;\n    var columns = adoptBuffer(host.columns, sourceLength);\n    var column = host.startColumn;\n    var startOffset = source.length > 0 ? isBOM(source.charCodeAt(0)) : 0;\n\n    for (var i = startOffset; i < sourceLength; i++) { // -1\n        var code = source.charCodeAt(i);\n\n        lines[i] = line;\n        columns[i] = column++;\n\n        if (code === N || code === R || code === F) {\n            if (code === R && i + 1 < sourceLength && source.charCodeAt(i + 1) === N) {\n                i++;\n                lines[i] = line;\n                columns[i] = column;\n            }\n\n            line++;\n            column = 1;\n        }\n    }\n\n    lines[i] = line;\n    columns[i] = column;\n\n    host.lines = lines;\n    host.columns = columns;\n}\n\nvar OffsetToLocation = function() {\n    this.lines = null;\n    this.columns = null;\n    this.linesAndColumnsComputed = false;\n};\n\nOffsetToLocation.prototype = {\n    setSource: function(source, startOffset, startLine, startColumn) {\n        this.source = source;\n        this.startOffset = typeof startOffset === 'undefined' ? 0 : startOffset;\n        this.startLine = typeof startLine === 'undefined' ? 1 : startLine;\n        this.startColumn = typeof startColumn === 'undefined' ? 1 : startColumn;\n        this.linesAndColumnsComputed = false;\n    },\n\n    ensureLinesAndColumnsComputed: function() {\n        if (!this.linesAndColumnsComputed) {\n            computeLinesAndColumns(this, this.source);\n            this.linesAndColumnsComputed = true;\n        }\n    },\n    getLocation: function(offset, filename) {\n        this.ensureLinesAndColumnsComputed();\n\n        return {\n            source: filename,\n            offset: this.startOffset + offset,\n            line: this.lines[offset],\n            column: this.columns[offset]\n        };\n    },\n    getLocationRange: function(start, end, filename) {\n        this.ensureLinesAndColumnsComputed();\n\n        return {\n            source: filename,\n            start: {\n                offset: this.startOffset + start,\n                line: this.lines[start],\n                column: this.columns[start]\n            },\n            end: {\n                offset: this.startOffset + end,\n                line: this.lines[end],\n                column: this.columns[end]\n            }\n        };\n    }\n};\n\nmodule.exports = OffsetToLocation;\n","module.exports = function createCustomError(name, message) {\n    // use Object.create(), because some VMs prevent setting line/column otherwise\n    // (iOS Safari 10 even throws an exception)\n    var error = Object.create(SyntaxError.prototype);\n    var errorStack = new Error();\n\n    error.name = name;\n    error.message = message;\n\n    Object.defineProperty(error, 'stack', {\n        get: function() {\n            return (errorStack.stack || '').replace(/^(.+\\n){1,3}/, name + ': ' + message + '\\n');\n        }\n    });\n\n    return error;\n};\n","var createCustomError = require('../utils/createCustomError');\nvar MAX_LINE_LENGTH = 100;\nvar OFFSET_CORRECTION = 60;\nvar TAB_REPLACEMENT = '    ';\n\nfunction sourceFragment(error, extraLines) {\n    function processLines(start, end) {\n        return lines.slice(start, end).map(function(line, idx) {\n            var num = String(start + idx + 1);\n\n            while (num.length < maxNumLength) {\n                num = ' ' + num;\n            }\n\n            return num + ' |' + line;\n        }).join('\\n');\n    }\n\n    var lines = error.source.split(/\\r\\n?|\\n|\\f/);\n    var line = error.line;\n    var column = error.column;\n    var startLine = Math.max(1, line - extraLines) - 1;\n    var endLine = Math.min(line + extraLines, lines.length + 1);\n    var maxNumLength = Math.max(4, String(endLine).length) + 1;\n    var cutLeft = 0;\n\n    // column correction according to replaced tab before column\n    column += (TAB_REPLACEMENT.length - 1) * (lines[line - 1].substr(0, column - 1).match(/\\t/g) || []).length;\n\n    if (column > MAX_LINE_LENGTH) {\n        cutLeft = column - OFFSET_CORRECTION + 3;\n        column = OFFSET_CORRECTION - 2;\n    }\n\n    for (var i = startLine; i <= endLine; i++) {\n        if (i >= 0 && i < lines.length) {\n            lines[i] = lines[i].replace(/\\t/g, TAB_REPLACEMENT);\n            lines[i] =\n                (cutLeft > 0 && lines[i].length > cutLeft ? '\\u2026' : '') +\n                lines[i].substr(cutLeft, MAX_LINE_LENGTH - 2) +\n                (lines[i].length > cutLeft + MAX_LINE_LENGTH - 1 ? '\\u2026' : '');\n        }\n    }\n\n    return [\n        processLines(startLine, line),\n        new Array(column + maxNumLength + 2).join('-') + '^',\n        processLines(line, endLine)\n    ].filter(Boolean).join('\\n');\n}\n\nvar SyntaxError = function(message, source, offset, line, column) {\n    var error = createCustomError('SyntaxError', message);\n\n    error.source = source;\n    error.offset = offset;\n    error.line = line;\n    error.column = column;\n\n    error.sourceFragment = function(extraLines) {\n        return sourceFragment(error, isNaN(extraLines) ? 0 : extraLines);\n    };\n    Object.defineProperty(error, 'formattedMessage', {\n        get: function() {\n            return (\n                'Parse error: ' + error.message + '\\n' +\n                sourceFragment(error, 2)\n            );\n        }\n    });\n\n    // for backward capability\n    error.parseError = {\n        offset: offset,\n        line: line,\n        column: column\n    };\n\n    return error;\n};\n\nmodule.exports = SyntaxError;\n","//\n//                              list\n//                            ┌──────┐\n//             ┌──────────────┼─head │\n//             │              │ tail─┼──────────────┐\n//             │              └──────┘              │\n//             ▼                                    ▼\n//            item        item        item        item\n//          ┌──────┐    ┌──────┐    ┌──────┐    ┌──────┐\n//  null ◀──┼─prev │◀───┼─prev │◀───┼─prev │◀───┼─prev │\n//          │ next─┼───▶│ next─┼───▶│ next─┼───▶│ next─┼──▶ null\n//          ├──────┤    ├──────┤    ├──────┤    ├──────┤\n//          │ data │    │ data │    │ data │    │ data │\n//          └──────┘    └──────┘    └──────┘    └──────┘\n//\n\nfunction createItem(data) {\n    return {\n        prev: null,\n        next: null,\n        data: data\n    };\n}\n\nfunction allocateCursor(node, prev, next) {\n    var cursor;\n\n    if (cursors !== null) {\n        cursor = cursors;\n        cursors = cursors.cursor;\n        cursor.prev = prev;\n        cursor.next = next;\n        cursor.cursor = node.cursor;\n    } else {\n        cursor = {\n            prev: prev,\n            next: next,\n            cursor: node.cursor\n        };\n    }\n\n    node.cursor = cursor;\n\n    return cursor;\n}\n\nfunction releaseCursor(node) {\n    var cursor = node.cursor;\n\n    node.cursor = cursor.cursor;\n    cursor.prev = null;\n    cursor.next = null;\n    cursor.cursor = cursors;\n    cursors = cursor;\n}\n\nvar cursors = null;\nvar List = function() {\n    this.cursor = null;\n    this.head = null;\n    this.tail = null;\n};\n\nList.createItem = createItem;\nList.prototype.createItem = createItem;\n\nList.prototype.updateCursors = function(prevOld, prevNew, nextOld, nextNew) {\n    var cursor = this.cursor;\n\n    while (cursor !== null) {\n        if (cursor.prev === prevOld) {\n            cursor.prev = prevNew;\n        }\n\n        if (cursor.next === nextOld) {\n            cursor.next = nextNew;\n        }\n\n        cursor = cursor.cursor;\n    }\n};\n\nList.prototype.getSize = function() {\n    var size = 0;\n    var cursor = this.head;\n\n    while (cursor) {\n        size++;\n        cursor = cursor.next;\n    }\n\n    return size;\n};\n\nList.prototype.fromArray = function(array) {\n    var cursor = null;\n\n    this.head = null;\n\n    for (var i = 0; i < array.length; i++) {\n        var item = createItem(array[i]);\n\n        if (cursor !== null) {\n            cursor.next = item;\n        } else {\n            this.head = item;\n        }\n\n        item.prev = cursor;\n        cursor = item;\n    }\n\n    this.tail = cursor;\n\n    return this;\n};\n\nList.prototype.toArray = function() {\n    var cursor = this.head;\n    var result = [];\n\n    while (cursor) {\n        result.push(cursor.data);\n        cursor = cursor.next;\n    }\n\n    return result;\n};\n\nList.prototype.toJSON = List.prototype.toArray;\n\nList.prototype.isEmpty = function() {\n    return this.head === null;\n};\n\nList.prototype.first = function() {\n    return this.head && this.head.data;\n};\n\nList.prototype.last = function() {\n    return this.tail && this.tail.data;\n};\n\nList.prototype.each = function(fn, context) {\n    var item;\n\n    if (context === undefined) {\n        context = this;\n    }\n\n    // push cursor\n    var cursor = allocateCursor(this, null, this.head);\n\n    while (cursor.next !== null) {\n        item = cursor.next;\n        cursor.next = item.next;\n\n        fn.call(context, item.data, item, this);\n    }\n\n    // pop cursor\n    releaseCursor(this);\n};\n\nList.prototype.forEach = List.prototype.each;\n\nList.prototype.eachRight = function(fn, context) {\n    var item;\n\n    if (context === undefined) {\n        context = this;\n    }\n\n    // push cursor\n    var cursor = allocateCursor(this, this.tail, null);\n\n    while (cursor.prev !== null) {\n        item = cursor.prev;\n        cursor.prev = item.prev;\n\n        fn.call(context, item.data, item, this);\n    }\n\n    // pop cursor\n    releaseCursor(this);\n};\n\nList.prototype.forEachRight = List.prototype.eachRight;\n\nList.prototype.reduce = function(fn, initialValue, context) {\n    var item;\n\n    if (context === undefined) {\n        context = this;\n    }\n\n    // push cursor\n    var cursor = allocateCursor(this, null, this.head);\n    var acc = initialValue;\n\n    while (cursor.next !== null) {\n        item = cursor.next;\n        cursor.next = item.next;\n\n        acc = fn.call(context, acc, item.data, item, this);\n    }\n\n    // pop cursor\n    releaseCursor(this);\n\n    return acc;\n};\n\nList.prototype.reduceRight = function(fn, initialValue, context) {\n    var item;\n\n    if (context === undefined) {\n        context = this;\n    }\n\n    // push cursor\n    var cursor = allocateCursor(this, this.tail, null);\n    var acc = initialValue;\n\n    while (cursor.prev !== null) {\n        item = cursor.prev;\n        cursor.prev = item.prev;\n\n        acc = fn.call(context, acc, item.data, item, this);\n    }\n\n    // pop cursor\n    releaseCursor(this);\n\n    return acc;\n};\n\nList.prototype.nextUntil = function(start, fn, context) {\n    if (start === null) {\n        return;\n    }\n\n    var item;\n\n    if (context === undefined) {\n        context = this;\n    }\n\n    // push cursor\n    var cursor = allocateCursor(this, null, start);\n\n    while (cursor.next !== null) {\n        item = cursor.next;\n        cursor.next = item.next;\n\n        if (fn.call(context, item.data, item, this)) {\n            break;\n        }\n    }\n\n    // pop cursor\n    releaseCursor(this);\n};\n\nList.prototype.prevUntil = function(start, fn, context) {\n    if (start === null) {\n        return;\n    }\n\n    var item;\n\n    if (context === undefined) {\n        context = this;\n    }\n\n    // push cursor\n    var cursor = allocateCursor(this, start, null);\n\n    while (cursor.prev !== null) {\n        item = cursor.prev;\n        cursor.prev = item.prev;\n\n        if (fn.call(context, item.data, item, this)) {\n            break;\n        }\n    }\n\n    // pop cursor\n    releaseCursor(this);\n};\n\nList.prototype.some = function(fn, context) {\n    var cursor = this.head;\n\n    if (context === undefined) {\n        context = this;\n    }\n\n    while (cursor !== null) {\n        if (fn.call(context, cursor.data, cursor, this)) {\n            return true;\n        }\n\n        cursor = cursor.next;\n    }\n\n    return false;\n};\n\nList.prototype.map = function(fn, context) {\n    var result = new List();\n    var cursor = this.head;\n\n    if (context === undefined) {\n        context = this;\n    }\n\n    while (cursor !== null) {\n        result.appendData(fn.call(context, cursor.data, cursor, this));\n        cursor = cursor.next;\n    }\n\n    return result;\n};\n\nList.prototype.filter = function(fn, context) {\n    var result = new List();\n    var cursor = this.head;\n\n    if (context === undefined) {\n        context = this;\n    }\n\n    while (cursor !== null) {\n        if (fn.call(context, cursor.data, cursor, this)) {\n            result.appendData(cursor.data);\n        }\n        cursor = cursor.next;\n    }\n\n    return result;\n};\n\nList.prototype.clear = function() {\n    this.head = null;\n    this.tail = null;\n};\n\nList.prototype.copy = function() {\n    var result = new List();\n    var cursor = this.head;\n\n    while (cursor !== null) {\n        result.insert(createItem(cursor.data));\n        cursor = cursor.next;\n    }\n\n    return result;\n};\n\nList.prototype.prepend = function(item) {\n    //      head\n    //    ^\n    // item\n    this.updateCursors(null, item, this.head, item);\n\n    // insert to the beginning of the list\n    if (this.head !== null) {\n        // new item <- first item\n        this.head.prev = item;\n\n        // new item -> first item\n        item.next = this.head;\n    } else {\n        // if list has no head, then it also has no tail\n        // in this case tail points to the new item\n        this.tail = item;\n    }\n\n    // head always points to new item\n    this.head = item;\n\n    return this;\n};\n\nList.prototype.prependData = function(data) {\n    return this.prepend(createItem(data));\n};\n\nList.prototype.append = function(item) {\n    return this.insert(item);\n};\n\nList.prototype.appendData = function(data) {\n    return this.insert(createItem(data));\n};\n\nList.prototype.insert = function(item, before) {\n    if (before !== undefined && before !== null) {\n        // prev   before\n        //      ^\n        //     item\n        this.updateCursors(before.prev, item, before, item);\n\n        if (before.prev === null) {\n            // insert to the beginning of list\n            if (this.head !== before) {\n                throw new Error('before doesn\\'t belong to list');\n            }\n\n            // since head points to before therefore list doesn't empty\n            // no need to check tail\n            this.head = item;\n            before.prev = item;\n            item.next = before;\n\n            this.updateCursors(null, item);\n        } else {\n\n            // insert between two items\n            before.prev.next = item;\n            item.prev = before.prev;\n\n            before.prev = item;\n            item.next = before;\n        }\n    } else {\n        // tail\n        //      ^\n        //      item\n        this.updateCursors(this.tail, item, null, item);\n\n        // insert to the ending of the list\n        if (this.tail !== null) {\n            // last item -> new item\n            this.tail.next = item;\n\n            // last item <- new item\n            item.prev = this.tail;\n        } else {\n            // if list has no tail, then it also has no head\n            // in this case head points to new item\n            this.head = item;\n        }\n\n        // tail always points to new item\n        this.tail = item;\n    }\n\n    return this;\n};\n\nList.prototype.insertData = function(data, before) {\n    return this.insert(createItem(data), before);\n};\n\nList.prototype.remove = function(item) {\n    //      item\n    //       ^\n    // prev     next\n    this.updateCursors(item, item.prev, item, item.next);\n\n    if (item.prev !== null) {\n        item.prev.next = item.next;\n    } else {\n        if (this.head !== item) {\n            throw new Error('item doesn\\'t belong to list');\n        }\n\n        this.head = item.next;\n    }\n\n    if (item.next !== null) {\n        item.next.prev = item.prev;\n    } else {\n        if (this.tail !== item) {\n            throw new Error('item doesn\\'t belong to list');\n        }\n\n        this.tail = item.prev;\n    }\n\n    item.prev = null;\n    item.next = null;\n\n    return item;\n};\n\nList.prototype.push = function(data) {\n    this.insert(createItem(data));\n};\n\nList.prototype.pop = function() {\n    if (this.tail !== null) {\n        return this.remove(this.tail);\n    }\n};\n\nList.prototype.unshift = function(data) {\n    this.prepend(createItem(data));\n};\n\nList.prototype.shift = function() {\n    if (this.head !== null) {\n        return this.remove(this.head);\n    }\n};\n\nList.prototype.prependList = function(list) {\n    return this.insertList(list, this.head);\n};\n\nList.prototype.appendList = function(list) {\n    return this.insertList(list);\n};\n\nList.prototype.insertList = function(list, before) {\n    // ignore empty lists\n    if (list.head === null) {\n        return this;\n    }\n\n    if (before !== undefined && before !== null) {\n        this.updateCursors(before.prev, list.tail, before, list.head);\n\n        // insert in the middle of dist list\n        if (before.prev !== null) {\n            // before.prev <-> list.head\n            before.prev.next = list.head;\n            list.head.prev = before.prev;\n        } else {\n            this.head = list.head;\n        }\n\n        before.prev = list.tail;\n        list.tail.next = before;\n    } else {\n        this.updateCursors(this.tail, list.tail, null, list.head);\n\n        // insert to end of the list\n        if (this.tail !== null) {\n            // if destination list has a tail, then it also has a head,\n            // but head doesn't change\n\n            // dest tail -> source head\n            this.tail.next = list.head;\n\n            // dest tail <- source head\n            list.head.prev = this.tail;\n        } else {\n            // if list has no a tail, then it also has no a head\n            // in this case points head to new item\n            this.head = list.head;\n        }\n\n        // tail always start point to new item\n        this.tail = list.tail;\n    }\n\n    list.head = null;\n    list.tail = null;\n\n    return this;\n};\n\nList.prototype.replace = function(oldItem, newItemOrList) {\n    if ('head' in newItemOrList) {\n        this.insertList(newItemOrList, oldItem);\n    } else {\n        this.insert(newItemOrList, oldItem);\n    }\n\n    this.remove(oldItem);\n};\n\nmodule.exports = List;\n","var TYPE = require('../tokenizer').TYPE;\nvar WHITESPACE = TYPE.WhiteSpace;\nvar COMMENT = TYPE.Comment;\n\nmodule.exports = function readSequence(recognizer) {\n    var children = this.createList();\n    var child = null;\n    var context = {\n        recognizer: recognizer,\n        space: null,\n        ignoreWS: false,\n        ignoreWSAfter: false\n    };\n\n    this.scanner.skipSC();\n\n    while (!this.scanner.eof) {\n        switch (this.scanner.tokenType) {\n            case COMMENT:\n                this.scanner.next();\n                continue;\n\n            case WHITESPACE:\n                if (context.ignoreWS) {\n                    this.scanner.next();\n                } else {\n                    context.space = this.WhiteSpace();\n                }\n                continue;\n        }\n\n        child = recognizer.getNode.call(this, context);\n\n        if (child === undefined) {\n            break;\n        }\n\n        if (context.space !== null) {\n            children.push(context.space);\n            context.space = null;\n        }\n\n        children.push(child);\n\n        if (context.ignoreWSAfter) {\n            context.ignoreWSAfter = false;\n            context.ignoreWS = true;\n        } else {\n            context.ignoreWS = false;\n        }\n    }\n\n    return children;\n};\n","var OffsetToLocation = require('../common/OffsetToLocation');\nvar SyntaxError = require('../common/SyntaxError');\nvar TokenStream = require('../common/TokenStream');\nvar List = require('../common/List');\nvar tokenize = require('../tokenizer');\nvar constants = require('../tokenizer/const');\nvar { findWhiteSpaceStart, cmpStr } = require('../tokenizer/utils');\nvar sequence = require('./sequence');\nvar noop = function() {};\n\nvar TYPE = constants.TYPE;\nvar NAME = constants.NAME;\nvar WHITESPACE = TYPE.WhiteSpace;\nvar COMMENT = TYPE.Comment;\nvar IDENT = TYPE.Ident;\nvar FUNCTION = TYPE.Function;\nvar URL = TYPE.Url;\nvar HASH = TYPE.Hash;\nvar PERCENTAGE = TYPE.Percentage;\nvar NUMBER = TYPE.Number;\nvar NUMBERSIGN = 0x0023; // U+0023 NUMBER SIGN (#)\nvar NULL = 0;\n\nfunction createParseContext(name) {\n    return function() {\n        return this[name]();\n    };\n}\n\nfunction processConfig(config) {\n    var parserConfig = {\n        context: {},\n        scope: {},\n        atrule: {},\n        pseudo: {}\n    };\n\n    if (config.parseContext) {\n        for (var name in config.parseContext) {\n            switch (typeof config.parseContext[name]) {\n                case 'function':\n                    parserConfig.context[name] = config.parseContext[name];\n                    break;\n\n                case 'string':\n                    parserConfig.context[name] = createParseContext(config.parseContext[name]);\n                    break;\n            }\n        }\n    }\n\n    if (config.scope) {\n        for (var name in config.scope) {\n            parserConfig.scope[name] = config.scope[name];\n        }\n    }\n\n    if (config.atrule) {\n        for (var name in config.atrule) {\n            var atrule = config.atrule[name];\n\n            if (atrule.parse) {\n                parserConfig.atrule[name] = atrule.parse;\n            }\n        }\n    }\n\n    if (config.pseudo) {\n        for (var name in config.pseudo) {\n            var pseudo = config.pseudo[name];\n\n            if (pseudo.parse) {\n                parserConfig.pseudo[name] = pseudo.parse;\n            }\n        }\n    }\n\n    if (config.node) {\n        for (var name in config.node) {\n            parserConfig[name] = config.node[name].parse;\n        }\n    }\n\n    return parserConfig;\n}\n\nmodule.exports = function createParser(config) {\n    var parser = {\n        scanner: new TokenStream(),\n        locationMap: new OffsetToLocation(),\n\n        filename: '<unknown>',\n        needPositions: false,\n        onParseError: noop,\n        onParseErrorThrow: false,\n        parseAtrulePrelude: true,\n        parseRulePrelude: true,\n        parseValue: true,\n        parseCustomProperty: false,\n\n        readSequence: sequence,\n\n        createList: function() {\n            return new List();\n        },\n        createSingleNodeList: function(node) {\n            return new List().appendData(node);\n        },\n        getFirstListNode: function(list) {\n            return list && list.first();\n        },\n        getLastListNode: function(list) {\n            return list.last();\n        },\n\n        parseWithFallback: function(consumer, fallback) {\n            var startToken = this.scanner.tokenIndex;\n\n            try {\n                return consumer.call(this);\n            } catch (e) {\n                if (this.onParseErrorThrow) {\n                    throw e;\n                }\n\n                var fallbackNode = fallback.call(this, startToken);\n\n                this.onParseErrorThrow = true;\n                this.onParseError(e, fallbackNode);\n                this.onParseErrorThrow = false;\n\n                return fallbackNode;\n            }\n        },\n\n        lookupNonWSType: function(offset) {\n            do {\n                var type = this.scanner.lookupType(offset++);\n                if (type !== WHITESPACE) {\n                    return type;\n                }\n            } while (type !== NULL);\n\n            return NULL;\n        },\n\n        eat: function(tokenType) {\n            if (this.scanner.tokenType !== tokenType) {\n                var offset = this.scanner.tokenStart;\n                var message = NAME[tokenType] + ' is expected';\n\n                // tweak message and offset\n                switch (tokenType) {\n                    case IDENT:\n                        // when identifier is expected but there is a function or url\n                        if (this.scanner.tokenType === FUNCTION || this.scanner.tokenType === URL) {\n                            offset = this.scanner.tokenEnd - 1;\n                            message = 'Identifier is expected but function found';\n                        } else {\n                            message = 'Identifier is expected';\n                        }\n                        break;\n\n                    case HASH:\n                        if (this.scanner.isDelim(NUMBERSIGN)) {\n                            this.scanner.next();\n                            offset++;\n                            message = 'Name is expected';\n                        }\n                        break;\n\n                    case PERCENTAGE:\n                        if (this.scanner.tokenType === NUMBER) {\n                            offset = this.scanner.tokenEnd;\n                            message = 'Percent sign is expected';\n                        }\n                        break;\n\n                    default:\n                        // when test type is part of another token show error for current position + 1\n                        // e.g. eat(HYPHENMINUS) will fail on \"-foo\", but pointing on \"-\" is odd\n                        if (this.scanner.source.charCodeAt(this.scanner.tokenStart) === tokenType) {\n                            offset = offset + 1;\n                        }\n                }\n\n                this.error(message, offset);\n            }\n\n            this.scanner.next();\n        },\n\n        consume: function(tokenType) {\n            var value = this.scanner.getTokenValue();\n\n            this.eat(tokenType);\n\n            return value;\n        },\n        consumeFunctionName: function() {\n            var name = this.scanner.source.substring(this.scanner.tokenStart, this.scanner.tokenEnd - 1);\n\n            this.eat(FUNCTION);\n\n            return name;\n        },\n\n        getLocation: function(start, end) {\n            if (this.needPositions) {\n                return this.locationMap.getLocationRange(\n                    start,\n                    end,\n                    this.filename\n                );\n            }\n\n            return null;\n        },\n        getLocationFromList: function(list) {\n            if (this.needPositions) {\n                var head = this.getFirstListNode(list);\n                var tail = this.getLastListNode(list);\n                return this.locationMap.getLocationRange(\n                    head !== null ? head.loc.start.offset - this.locationMap.startOffset : this.scanner.tokenStart,\n                    tail !== null ? tail.loc.end.offset - this.locationMap.startOffset : this.scanner.tokenStart,\n                    this.filename\n                );\n            }\n\n            return null;\n        },\n\n        error: function(message, offset) {\n            var location = typeof offset !== 'undefined' && offset < this.scanner.source.length\n                ? this.locationMap.getLocation(offset)\n                : this.scanner.eof\n                    ? this.locationMap.getLocation(findWhiteSpaceStart(this.scanner.source, this.scanner.source.length - 1))\n                    : this.locationMap.getLocation(this.scanner.tokenStart);\n\n            throw new SyntaxError(\n                message || 'Unexpected input',\n                this.scanner.source,\n                location.offset,\n                location.line,\n                location.column\n            );\n        }\n    };\n\n    config = processConfig(config || {});\n    for (var key in config) {\n        parser[key] = config[key];\n    }\n\n    return function(source, options) {\n        options = options || {};\n\n        var context = options.context || 'default';\n        var onComment = options.onComment;\n        var ast;\n\n        tokenize(source, parser.scanner);\n        parser.locationMap.setSource(\n            source,\n            options.offset,\n            options.line,\n            options.column\n        );\n\n        parser.filename = options.filename || '<unknown>';\n        parser.needPositions = Boolean(options.positions);\n        parser.onParseError = typeof options.onParseError === 'function' ? options.onParseError : noop;\n        parser.onParseErrorThrow = false;\n        parser.parseAtrulePrelude = 'parseAtrulePrelude' in options ? Boolean(options.parseAtrulePrelude) : true;\n        parser.parseRulePrelude = 'parseRulePrelude' in options ? Boolean(options.parseRulePrelude) : true;\n        parser.parseValue = 'parseValue' in options ? Boolean(options.parseValue) : true;\n        parser.parseCustomProperty = 'parseCustomProperty' in options ? Boolean(options.parseCustomProperty) : false;\n\n        if (!parser.context.hasOwnProperty(context)) {\n            throw new Error('Unknown context `' + context + '`');\n        }\n\n        if (typeof onComment === 'function') {\n            parser.scanner.forEachToken((type, start, end) => {\n                if (type === COMMENT) {\n                    const loc = parser.getLocation(start, end);\n                    const value = cmpStr(source, end - 2, end, '*/')\n                        ? source.slice(start + 2, end - 2)\n                        : source.slice(start + 2, end);\n\n                    onComment(value, loc);\n                }\n            });\n        }\n\n        ast = parser.context[context].call(parser, options);\n\n        if (!parser.scanner.eof) {\n            parser.error();\n        }\n\n        return ast;\n    };\n};\n","var cmpChar = require('../../tokenizer').cmpChar;\nvar cmpStr = require('../../tokenizer').cmpStr;\nvar TYPE = require('../../tokenizer').TYPE;\n\nvar IDENT = TYPE.Ident;\nvar STRING = TYPE.String;\nvar NUMBER = TYPE.Number;\nvar FUNCTION = TYPE.Function;\nvar URL = TYPE.Url;\nvar HASH = TYPE.Hash;\nvar DIMENSION = TYPE.Dimension;\nvar PERCENTAGE = TYPE.Percentage;\nvar LEFTPARENTHESIS = TYPE.LeftParenthesis;\nvar LEFTSQUAREBRACKET = TYPE.LeftSquareBracket;\nvar COMMA = TYPE.Comma;\nvar DELIM = TYPE.Delim;\nvar NUMBERSIGN = 0x0023;  // U+0023 NUMBER SIGN (#)\nvar ASTERISK = 0x002A;    // U+002A ASTERISK (*)\nvar PLUSSIGN = 0x002B;    // U+002B PLUS SIGN (+)\nvar HYPHENMINUS = 0x002D; // U+002D HYPHEN-MINUS (-)\nvar SOLIDUS = 0x002F;     // U+002F SOLIDUS (/)\nvar U = 0x0075;           // U+0075 LATIN SMALL LETTER U (u)\n\nmodule.exports = function defaultRecognizer(context) {\n    switch (this.scanner.tokenType) {\n        case HASH:\n            return this.Hash();\n\n        case COMMA:\n            context.space = null;\n            context.ignoreWSAfter = true;\n            return this.Operator();\n\n        case LEFTPARENTHESIS:\n            return this.Parentheses(this.readSequence, context.recognizer);\n\n        case LEFTSQUAREBRACKET:\n            return this.Brackets(this.readSequence, context.recognizer);\n\n        case STRING:\n            return this.String();\n\n        case DIMENSION:\n            return this.Dimension();\n\n        case PERCENTAGE:\n            return this.Percentage();\n\n        case NUMBER:\n            return this.Number();\n\n        case FUNCTION:\n            return cmpStr(this.scanner.source, this.scanner.tokenStart, this.scanner.tokenEnd, 'url(')\n                ? this.Url()\n                : this.Function(this.readSequence, context.recognizer);\n\n        case URL:\n            return this.Url();\n\n        case IDENT:\n            // check for unicode range, it should start with u+ or U+\n            if (cmpChar(this.scanner.source, this.scanner.tokenStart, U) &&\n                cmpChar(this.scanner.source, this.scanner.tokenStart + 1, PLUSSIGN)) {\n                return this.UnicodeRange();\n            } else {\n                return this.Identifier();\n            }\n\n        case DELIM:\n            var code = this.scanner.source.charCodeAt(this.scanner.tokenStart);\n\n            if (code === SOLIDUS ||\n                code === ASTERISK ||\n                code === PLUSSIGN ||\n                code === HYPHENMINUS) {\n                return this.Operator(); // TODO: replace with Delim\n            }\n\n            // TODO: produce a node with Delim node type\n\n            if (code === NUMBERSIGN) {\n                this.error('Hex or identifier is expected', this.scanner.tokenStart + 1);\n            }\n\n            break;\n    }\n};\n","module.exports = {\n    getNode: require('./default')\n};\n","var TYPE = require('../../tokenizer').TYPE;\n\nvar DELIM = TYPE.Delim;\nvar IDENT = TYPE.Ident;\nvar DIMENSION = TYPE.Dimension;\nvar PERCENTAGE = TYPE.Percentage;\nvar NUMBER = TYPE.Number;\nvar HASH = TYPE.Hash;\nvar COLON = TYPE.Colon;\nvar LEFTSQUAREBRACKET = TYPE.LeftSquareBracket;\nvar NUMBERSIGN = 0x0023;      // U+0023 NUMBER SIGN (#)\nvar ASTERISK = 0x002A;        // U+002A ASTERISK (*)\nvar PLUSSIGN = 0x002B;        // U+002B PLUS SIGN (+)\nvar SOLIDUS = 0x002F;         // U+002F SOLIDUS (/)\nvar FULLSTOP = 0x002E;        // U+002E FULL STOP (.)\nvar GREATERTHANSIGN = 0x003E; // U+003E GREATER-THAN SIGN (>)\nvar VERTICALLINE = 0x007C;    // U+007C VERTICAL LINE (|)\nvar TILDE = 0x007E;           // U+007E TILDE (~)\n\nfunction getNode(context) {\n    switch (this.scanner.tokenType) {\n        case LEFTSQUAREBRACKET:\n            return this.AttributeSelector();\n\n        case HASH:\n            return this.IdSelector();\n\n        case COLON:\n            if (this.scanner.lookupType(1) === COLON) {\n                return this.PseudoElementSelector();\n            } else {\n                return this.PseudoClassSelector();\n            }\n\n        case IDENT:\n            return this.TypeSelector();\n\n        case NUMBER:\n        case PERCENTAGE:\n            return this.Percentage();\n\n        case DIMENSION:\n            // throws when .123ident\n            if (this.scanner.source.charCodeAt(this.scanner.tokenStart) === FULLSTOP) {\n                this.error('Identifier is expected', this.scanner.tokenStart + 1);\n            }\n            break;\n\n        case DELIM:\n            var code = this.scanner.source.charCodeAt(this.scanner.tokenStart);\n\n            switch (code) {\n                case PLUSSIGN:\n                case GREATERTHANSIGN:\n                case TILDE:\n                    context.space = null;\n                    context.ignoreWSAfter = true;\n                    return this.Combinator();\n\n                case SOLIDUS:  // /deep/\n                    return this.Combinator();\n\n                case FULLSTOP:\n                    return this.ClassSelector();\n\n                case ASTERISK:\n                case VERTICALLINE:\n                    return this.TypeSelector();\n\n                case NUMBERSIGN:\n                    return this.IdSelector();\n            }\n\n            break;\n    }\n};\n\nmodule.exports = {\n    getNode: getNode\n};\n","// legacy IE function\n// expression( <any-value> )\nmodule.exports = function() {\n    return this.createSingleNodeList(\n        this.Raw(this.scanner.tokenIndex, null, false)\n    );\n};\n","var tokenizer = require('../../tokenizer');\nvar TYPE = tokenizer.TYPE;\n\nvar WhiteSpace = TYPE.WhiteSpace;\nvar Semicolon = TYPE.Semicolon;\nvar LeftCurlyBracket = TYPE.LeftCurlyBracket;\nvar Delim = TYPE.Delim;\nvar EXCLAMATIONMARK = 0x0021; // U+0021 EXCLAMATION MARK (!)\n\nfunction getOffsetExcludeWS() {\n    if (this.scanner.tokenIndex > 0) {\n        if (this.scanner.lookupType(-1) === WhiteSpace) {\n            return this.scanner.tokenIndex > 1\n                ? this.scanner.getTokenStart(this.scanner.tokenIndex - 1)\n                : this.scanner.firstCharOffset;\n        }\n    }\n\n    return this.scanner.tokenStart;\n}\n\n// 0, 0, false\nfunction balanceEnd() {\n    return 0;\n}\n\n// LEFTCURLYBRACKET, 0, false\nfunction leftCurlyBracket(tokenType) {\n    return tokenType === LeftCurlyBracket ? 1 : 0;\n}\n\n// LEFTCURLYBRACKET, SEMICOLON, false\nfunction leftCurlyBracketOrSemicolon(tokenType) {\n    return tokenType === LeftCurlyBracket || tokenType === Semicolon ? 1 : 0;\n}\n\n// EXCLAMATIONMARK, SEMICOLON, false\nfunction exclamationMarkOrSemicolon(tokenType, source, offset) {\n    if (tokenType === Delim && source.charCodeAt(offset) === EXCLAMATIONMARK) {\n        return 1;\n    }\n\n    return tokenType === Semicolon ? 1 : 0;\n}\n\n// 0, SEMICOLON, true\nfunction semicolonIncluded(tokenType) {\n    return tokenType === Semicolon ? 2 : 0;\n}\n\nmodule.exports = {\n    name: 'Raw',\n    structure: {\n        value: String\n    },\n    parse: function(startToken, mode, excludeWhiteSpace) {\n        var startOffset = this.scanner.getTokenStart(startToken);\n        var endOffset;\n\n        this.scanner.skip(\n            this.scanner.getRawLength(startToken, mode || balanceEnd)\n        );\n\n        if (excludeWhiteSpace && this.scanner.tokenStart > startOffset) {\n            endOffset = getOffsetExcludeWS.call(this);\n        } else {\n            endOffset = this.scanner.tokenStart;\n        }\n\n        return {\n            type: 'Raw',\n            loc: this.getLocation(startOffset, endOffset),\n            value: this.scanner.source.substring(startOffset, endOffset)\n        };\n    },\n    generate: function(node) {\n        this.chunk(node.value);\n    },\n\n    mode: {\n        default: balanceEnd,\n        leftCurlyBracket: leftCurlyBracket,\n        leftCurlyBracketOrSemicolon: leftCurlyBracketOrSemicolon,\n        exclamationMarkOrSemicolon: exclamationMarkOrSemicolon,\n        semicolonIncluded: semicolonIncluded\n    }\n};\n","var TYPE = require('../../tokenizer').TYPE;\nvar rawMode = require('../node/Raw').mode;\n\nvar COMMA = TYPE.Comma;\nvar WHITESPACE = TYPE.WhiteSpace;\n\n// var( <ident> , <value>? )\nmodule.exports = function() {\n    var children = this.createList();\n\n    this.scanner.skipSC();\n\n    // NOTE: Don't check more than a first argument is an ident, rest checks are for lexer\n    children.push(this.Identifier());\n\n    this.scanner.skipSC();\n\n    if (this.scanner.tokenType === COMMA) {\n        children.push(this.Operator());\n\n        const startIndex = this.scanner.tokenIndex;\n        const value = this.parseCustomProperty\n            ? this.Value(null)\n            : this.Raw(this.scanner.tokenIndex, rawMode.exclamationMarkOrSemicolon, false);\n\n        if (value.type === 'Value' && value.children.isEmpty()) {\n            for (let offset = startIndex - this.scanner.tokenIndex; offset <= 0; offset++) {\n                if (this.scanner.lookupType(offset) === WHITESPACE) {\n                    value.children.appendData({\n                        type: 'WhiteSpace',\n                        loc: null,\n                        value: ' '\n                    });\n                    break;\n                }\n            }\n        }\n\n        children.push(value);\n    }\n\n    return children;\n};\n","module.exports = {\n    getNode: require('./default'),\n    'expression': require('../function/expression'),\n    'var': require('../function/var')\n};\n","module.exports = {\n    AtrulePrelude: require('./atrulePrelude'),\n    Selector: require('./selector'),\n    Value: require('./value')\n};\n","module.exports = {\n    parse: {\n        prelude: null,\n        block: function() {\n            return this.Block(true);\n        }\n    }\n};\n","var TYPE = require('../../tokenizer').TYPE;\n\nvar STRING = TYPE.String;\nvar IDENT = TYPE.Ident;\nvar URL = TYPE.Url;\nvar FUNCTION = TYPE.Function;\nvar LEFTPARENTHESIS = TYPE.LeftParenthesis;\n\nmodule.exports = {\n    parse: {\n        prelude: function() {\n            var children = this.createList();\n\n            this.scanner.skipSC();\n\n            switch (this.scanner.tokenType) {\n                case STRING:\n                    children.push(this.String());\n                    break;\n\n                case URL:\n                case FUNCTION:\n                    children.push(this.Url());\n                    break;\n\n                default:\n                    this.error('String or url() is expected');\n            }\n\n            if (this.lookupNonWSType(0) === IDENT ||\n                this.lookupNonWSType(0) === LEFTPARENTHESIS) {\n                children.push(this.WhiteSpace());\n                children.push(this.MediaQueryList());\n            }\n\n            return children;\n        },\n        block: null\n    }\n};\n","module.exports = {\n    parse: {\n        prelude: function() {\n            return this.createSingleNodeList(\n                this.MediaQueryList()\n            );\n        },\n        block: function() {\n            return this.Block(false);\n        }\n    }\n};\n","module.exports = {\n    parse: {\n        prelude: function() {\n            return this.createSingleNodeList(\n                this.SelectorList()\n            );\n        },\n        block: function() {\n            return this.Block(true);\n        }\n    }\n};\n","var TYPE = require('../../tokenizer').TYPE;\n\nvar WHITESPACE = TYPE.WhiteSpace;\nvar COMMENT = TYPE.Comment;\nvar IDENT = TYPE.Ident;\nvar FUNCTION = TYPE.Function;\nvar COLON = TYPE.Colon;\nvar LEFTPARENTHESIS = TYPE.LeftParenthesis;\n\nfunction consumeRaw() {\n    return this.createSingleNodeList(\n        this.Raw(this.scanner.tokenIndex, null, false)\n    );\n}\n\nfunction parentheses() {\n    this.scanner.skipSC();\n\n    if (this.scanner.tokenType === IDENT &&\n        this.lookupNonWSType(1) === COLON) {\n        return this.createSingleNodeList(\n            this.Declaration()\n        );\n    }\n\n    return readSequence.call(this);\n}\n\nfunction readSequence() {\n    var children = this.createList();\n    var space = null;\n    var child;\n\n    this.scanner.skipSC();\n\n    scan:\n    while (!this.scanner.eof) {\n        switch (this.scanner.tokenType) {\n            case WHITESPACE:\n                space = this.WhiteSpace();\n                continue;\n\n            case COMMENT:\n                this.scanner.next();\n                continue;\n\n            case FUNCTION:\n                child = this.Function(consumeRaw, this.scope.AtrulePrelude);\n                break;\n\n            case IDENT:\n                child = this.Identifier();\n                break;\n\n            case LEFTPARENTHESIS:\n                child = this.Parentheses(parentheses, this.scope.AtrulePrelude);\n                break;\n\n            default:\n                break scan;\n        }\n\n        if (space !== null) {\n            children.push(space);\n            space = null;\n        }\n\n        children.push(child);\n    }\n\n    return children;\n}\n\nmodule.exports = {\n    parse: {\n        prelude: function() {\n            var children = readSequence.call(this);\n\n            if (this.getFirstListNode(children) === null) {\n                this.error('Condition is expected');\n            }\n\n            return children;\n        },\n        block: function() {\n            return this.Block(false);\n        }\n    }\n};\n","module.exports = {\n    'font-face': require('./font-face'),\n    'import': require('./import'),\n    'media': require('./media'),\n    'page': require('./page'),\n    'supports': require('./supports')\n};\n","module.exports = {\n    parse: function() {\n        return this.createSingleNodeList(\n            this.Identifier()\n        );\n    }\n};\n","module.exports = {\n    parse: function() {\n        return this.createSingleNodeList(\n            this.SelectorList()\n        );\n    }\n};\n","module.exports = {\n    parse: function() {\n        return this.createSingleNodeList(\n            this.Identifier()\n        );\n    }\n};\n","module.exports = {\n    parse: function selectorList() {\n        return this.createSingleNodeList(\n            this.SelectorList()\n        );\n    }\n};\n","module.exports = require('./common/selectorList');\n","module.exports = require('./common/selectorList');\n","var ALLOW_OF_CLAUSE = true;\n\nmodule.exports = {\n    parse: function nthWithOfClause() {\n        return this.createSingleNodeList(\n            this.Nth(ALLOW_OF_CLAUSE)\n        );\n    }\n};\n","module.exports = require('./common/nthWithOfClause');\n","module.exports = require('./common/nthWithOfClause');\n","var DISALLOW_OF_CLAUSE = false;\n\nmodule.exports = {\n    parse: function nth() {\n        return this.createSingleNodeList(\n            this.Nth(DISALLOW_OF_CLAUSE)\n        );\n    }\n};\n","module.exports = require('./common/nth');\n","module.exports = require('./common/nth');\n","module.exports = {\n    parse: function compoundSelector() {\n        return this.createSingleNodeList(\n            this.Selector()\n        );\n    }\n};\n","module.exports = {\n    'dir': require('./dir'),\n    'has': require('./has'),\n    'lang': require('./lang'),\n    'matches': require('./matches'),\n    'not': require('./not'),\n    'nth-child': require('./nth-child'),\n    'nth-last-child': require('./nth-last-child'),\n    'nth-last-of-type': require('./nth-last-of-type'),\n    'nth-of-type': require('./nth-of-type'),\n    'slotted': require('./slotted')\n};\n","var cmpChar = require('../../tokenizer').cmpChar;\nvar isDigit = require('../../tokenizer').isDigit;\nvar TYPE = require('../../tokenizer').TYPE;\n\nvar WHITESPACE = TYPE.WhiteSpace;\nvar COMMENT = TYPE.Comment;\nvar IDENT = TYPE.Ident;\nvar NUMBER = TYPE.Number;\nvar DIMENSION = TYPE.Dimension;\nvar PLUSSIGN = 0x002B;    // U+002B PLUS SIGN (+)\nvar HYPHENMINUS = 0x002D; // U+002D HYPHEN-MINUS (-)\nvar N = 0x006E;           // U+006E LATIN SMALL LETTER N (n)\nvar DISALLOW_SIGN = true;\nvar ALLOW_SIGN = false;\n\nfunction checkInteger(offset, disallowSign) {\n    var pos = this.scanner.tokenStart + offset;\n    var code = this.scanner.source.charCodeAt(pos);\n\n    if (code === PLUSSIGN || code === HYPHENMINUS) {\n        if (disallowSign) {\n            this.error('Number sign is not allowed');\n        }\n        pos++;\n    }\n\n    for (; pos < this.scanner.tokenEnd; pos++) {\n        if (!isDigit(this.scanner.source.charCodeAt(pos))) {\n            this.error('Integer is expected', pos);\n        }\n    }\n}\n\nfunction checkTokenIsInteger(disallowSign) {\n    return checkInteger.call(this, 0, disallowSign);\n}\n\nfunction expectCharCode(offset, code) {\n    if (!cmpChar(this.scanner.source, this.scanner.tokenStart + offset, code)) {\n        var msg = '';\n\n        switch (code) {\n            case N:\n                msg = 'N is expected';\n                break;\n            case HYPHENMINUS:\n                msg = 'HyphenMinus is expected';\n                break;\n        }\n\n        this.error(msg, this.scanner.tokenStart + offset);\n    }\n}\n\n// ... <signed-integer>\n// ... ['+' | '-'] <signless-integer>\nfunction consumeB() {\n    var offset = 0;\n    var sign = 0;\n    var type = this.scanner.tokenType;\n\n    while (type === WHITESPACE || type === COMMENT) {\n        type = this.scanner.lookupType(++offset);\n    }\n\n    if (type !== NUMBER) {\n        if (this.scanner.isDelim(PLUSSIGN, offset) ||\n            this.scanner.isDelim(HYPHENMINUS, offset)) {\n            sign = this.scanner.isDelim(PLUSSIGN, offset) ? PLUSSIGN : HYPHENMINUS;\n\n            do {\n                type = this.scanner.lookupType(++offset);\n            } while (type === WHITESPACE || type === COMMENT);\n\n            if (type !== NUMBER) {\n                this.scanner.skip(offset);\n                checkTokenIsInteger.call(this, DISALLOW_SIGN);\n            }\n        } else {\n            return null;\n        }\n    }\n\n    if (offset > 0) {\n        this.scanner.skip(offset);\n    }\n\n    if (sign === 0) {\n        type = this.scanner.source.charCodeAt(this.scanner.tokenStart);\n        if (type !== PLUSSIGN && type !== HYPHENMINUS) {\n            this.error('Number sign is expected');\n        }\n    }\n\n    checkTokenIsInteger.call(this, sign !== 0);\n    return sign === HYPHENMINUS ? '-' + this.consume(NUMBER) : this.consume(NUMBER);\n}\n\n// An+B microsyntax https://www.w3.org/TR/css-syntax-3/#anb\nmodule.exports = {\n    name: 'AnPlusB',\n    structure: {\n        a: [String, null],\n        b: [String, null]\n    },\n    parse: function() {\n        /* eslint-disable brace-style*/\n        var start = this.scanner.tokenStart;\n        var a = null;\n        var b = null;\n\n        // <integer>\n        if (this.scanner.tokenType === NUMBER) {\n            checkTokenIsInteger.call(this, ALLOW_SIGN);\n            b = this.consume(NUMBER);\n        }\n\n        // -n\n        // -n <signed-integer>\n        // -n ['+' | '-'] <signless-integer>\n        // -n- <signless-integer>\n        // <dashndashdigit-ident>\n        else if (this.scanner.tokenType === IDENT && cmpChar(this.scanner.source, this.scanner.tokenStart, HYPHENMINUS)) {\n            a = '-1';\n\n            expectCharCode.call(this, 1, N);\n\n            switch (this.scanner.getTokenLength()) {\n                // -n\n                // -n <signed-integer>\n                // -n ['+' | '-'] <signless-integer>\n                case 2:\n                    this.scanner.next();\n                    b = consumeB.call(this);\n                    break;\n\n                // -n- <signless-integer>\n                case 3:\n                    expectCharCode.call(this, 2, HYPHENMINUS);\n\n                    this.scanner.next();\n                    this.scanner.skipSC();\n\n                    checkTokenIsInteger.call(this, DISALLOW_SIGN);\n\n                    b = '-' + this.consume(NUMBER);\n                    break;\n\n                // <dashndashdigit-ident>\n                default:\n                    expectCharCode.call(this, 2, HYPHENMINUS);\n                    checkInteger.call(this, 3, DISALLOW_SIGN);\n                    this.scanner.next();\n\n                    b = this.scanner.substrToCursor(start + 2);\n            }\n        }\n\n        // '+'? n\n        // '+'? n <signed-integer>\n        // '+'? n ['+' | '-'] <signless-integer>\n        // '+'? n- <signless-integer>\n        // '+'? <ndashdigit-ident>\n        else if (this.scanner.tokenType === IDENT || (this.scanner.isDelim(PLUSSIGN) && this.scanner.lookupType(1) === IDENT)) {\n            var sign = 0;\n            a = '1';\n\n            // just ignore a plus\n            if (this.scanner.isDelim(PLUSSIGN)) {\n                sign = 1;\n                this.scanner.next();\n            }\n\n            expectCharCode.call(this, 0, N);\n\n            switch (this.scanner.getTokenLength()) {\n                // '+'? n\n                // '+'? n <signed-integer>\n                // '+'? n ['+' | '-'] <signless-integer>\n                case 1:\n                    this.scanner.next();\n                    b = consumeB.call(this);\n                    break;\n\n                // '+'? n- <signless-integer>\n                case 2:\n                    expectCharCode.call(this, 1, HYPHENMINUS);\n\n                    this.scanner.next();\n                    this.scanner.skipSC();\n\n                    checkTokenIsInteger.call(this, DISALLOW_SIGN);\n\n                    b = '-' + this.consume(NUMBER);\n                    break;\n\n                // '+'? <ndashdigit-ident>\n                default:\n                    expectCharCode.call(this, 1, HYPHENMINUS);\n                    checkInteger.call(this, 2, DISALLOW_SIGN);\n                    this.scanner.next();\n\n                    b = this.scanner.substrToCursor(start + sign + 1);\n            }\n        }\n\n        // <ndashdigit-dimension>\n        // <ndash-dimension> <signless-integer>\n        // <n-dimension>\n        // <n-dimension> <signed-integer>\n        // <n-dimension> ['+' | '-'] <signless-integer>\n        else if (this.scanner.tokenType === DIMENSION) {\n            var code = this.scanner.source.charCodeAt(this.scanner.tokenStart);\n            var sign = code === PLUSSIGN || code === HYPHENMINUS;\n\n            for (var i = this.scanner.tokenStart + sign; i < this.scanner.tokenEnd; i++) {\n                if (!isDigit(this.scanner.source.charCodeAt(i))) {\n                    break;\n                }\n            }\n\n            if (i === this.scanner.tokenStart + sign) {\n                this.error('Integer is expected', this.scanner.tokenStart + sign);\n            }\n\n            expectCharCode.call(this, i - this.scanner.tokenStart, N);\n            a = this.scanner.source.substring(start, i);\n\n            // <n-dimension>\n            // <n-dimension> <signed-integer>\n            // <n-dimension> ['+' | '-'] <signless-integer>\n            if (i + 1 === this.scanner.tokenEnd) {\n                this.scanner.next();\n                b = consumeB.call(this);\n            } else {\n                expectCharCode.call(this, i - this.scanner.tokenStart + 1, HYPHENMINUS);\n\n                // <ndash-dimension> <signless-integer>\n                if (i + 2 === this.scanner.tokenEnd) {\n                    this.scanner.next();\n                    this.scanner.skipSC();\n                    checkTokenIsInteger.call(this, DISALLOW_SIGN);\n                    b = '-' + this.consume(NUMBER);\n                }\n                // <ndashdigit-dimension>\n                else {\n                    checkInteger.call(this, i - this.scanner.tokenStart + 2, DISALLOW_SIGN);\n                    this.scanner.next();\n                    b = this.scanner.substrToCursor(i + 1);\n                }\n            }\n        } else {\n            this.error();\n        }\n\n        if (a !== null && a.charCodeAt(0) === PLUSSIGN) {\n            a = a.substr(1);\n        }\n\n        if (b !== null && b.charCodeAt(0) === PLUSSIGN) {\n            b = b.substr(1);\n        }\n\n        return {\n            type: 'AnPlusB',\n            loc: this.getLocation(start, this.scanner.tokenStart),\n            a: a,\n            b: b\n        };\n    },\n    generate: function(node) {\n        var a = node.a !== null && node.a !== undefined;\n        var b = node.b !== null && node.b !== undefined;\n\n        if (a) {\n            this.chunk(\n                node.a === '+1' ? '+n' : // eslint-disable-line operator-linebreak, indent\n                node.a ===  '1' ?  'n' : // eslint-disable-line operator-linebreak, indent\n                node.a === '-1' ? '-n' : // eslint-disable-line operator-linebreak, indent\n                node.a + 'n'             // eslint-disable-line operator-linebreak, indent\n            );\n\n            if (b) {\n                b = String(node.b);\n                if (b.charAt(0) === '-' || b.charAt(0) === '+') {\n                    this.chunk(b.charAt(0));\n                    this.chunk(b.substr(1));\n                } else {\n                    this.chunk('+');\n                    this.chunk(b);\n                }\n            }\n        } else {\n            this.chunk(String(node.b));\n        }\n    }\n};\n","var TYPE = require('../../tokenizer').TYPE;\nvar rawMode = require('./Raw').mode;\n\nvar ATKEYWORD = TYPE.AtKeyword;\nvar SEMICOLON = TYPE.Semicolon;\nvar LEFTCURLYBRACKET = TYPE.LeftCurlyBracket;\nvar RIGHTCURLYBRACKET = TYPE.RightCurlyBracket;\n\nfunction consumeRaw(startToken) {\n    return this.Raw(startToken, rawMode.leftCurlyBracketOrSemicolon, true);\n}\n\nfunction isDeclarationBlockAtrule() {\n    for (var offset = 1, type; type = this.scanner.lookupType(offset); offset++) {\n        if (type === RIGHTCURLYBRACKET) {\n            return true;\n        }\n\n        if (type === LEFTCURLYBRACKET ||\n            type === ATKEYWORD) {\n            return false;\n        }\n    }\n\n    return false;\n}\n\nmodule.exports = {\n    name: 'Atrule',\n    structure: {\n        name: String,\n        prelude: ['AtrulePrelude', 'Raw', null],\n        block: ['Block', null]\n    },\n    parse: function() {\n        var start = this.scanner.tokenStart;\n        var name;\n        var nameLowerCase;\n        var prelude = null;\n        var block = null;\n\n        this.eat(ATKEYWORD);\n\n        name = this.scanner.substrToCursor(start + 1);\n        nameLowerCase = name.toLowerCase();\n        this.scanner.skipSC();\n\n        // parse prelude\n        if (this.scanner.eof === false &&\n            this.scanner.tokenType !== LEFTCURLYBRACKET &&\n            this.scanner.tokenType !== SEMICOLON) {\n            if (this.parseAtrulePrelude) {\n                prelude = this.parseWithFallback(this.AtrulePrelude.bind(this, name), consumeRaw);\n\n                // turn empty AtrulePrelude into null\n                if (prelude.type === 'AtrulePrelude' && prelude.children.head === null) {\n                    prelude = null;\n                }\n            } else {\n                prelude = consumeRaw.call(this, this.scanner.tokenIndex);\n            }\n\n            this.scanner.skipSC();\n        }\n\n        switch (this.scanner.tokenType) {\n            case SEMICOLON:\n                this.scanner.next();\n                break;\n\n            case LEFTCURLYBRACKET:\n                if (this.atrule.hasOwnProperty(nameLowerCase) &&\n                    typeof this.atrule[nameLowerCase].block === 'function') {\n                    block = this.atrule[nameLowerCase].block.call(this);\n                } else {\n                    // TODO: should consume block content as Raw?\n                    block = this.Block(isDeclarationBlockAtrule.call(this));\n                }\n\n                break;\n        }\n\n        return {\n            type: 'Atrule',\n            loc: this.getLocation(start, this.scanner.tokenStart),\n            name: name,\n            prelude: prelude,\n            block: block\n        };\n    },\n    generate: function(node) {\n        this.chunk('@');\n        this.chunk(node.name);\n\n        if (node.prelude !== null) {\n            this.chunk(' ');\n            this.node(node.prelude);\n        }\n\n        if (node.block) {\n            this.node(node.block);\n        } else {\n            this.chunk(';');\n        }\n    },\n    walkContext: 'atrule'\n};\n","var TYPE = require('../../tokenizer').TYPE;\n\nvar SEMICOLON = TYPE.Semicolon;\nvar LEFTCURLYBRACKET = TYPE.LeftCurlyBracket;\n\nmodule.exports = {\n    name: 'AtrulePrelude',\n    structure: {\n        children: [[]]\n    },\n    parse: function(name) {\n        var children = null;\n\n        if (name !== null) {\n            name = name.toLowerCase();\n        }\n\n        this.scanner.skipSC();\n\n        if (this.atrule.hasOwnProperty(name) &&\n            typeof this.atrule[name].prelude === 'function') {\n            // custom consumer\n            children = this.atrule[name].prelude.call(this);\n        } else {\n            // default consumer\n            children = this.readSequence(this.scope.AtrulePrelude);\n        }\n\n        this.scanner.skipSC();\n\n        if (this.scanner.eof !== true &&\n            this.scanner.tokenType !== LEFTCURLYBRACKET &&\n            this.scanner.tokenType !== SEMICOLON) {\n            this.error('Semicolon or block is expected');\n        }\n\n        if (children === null) {\n            children = this.createList();\n        }\n\n        return {\n            type: 'AtrulePrelude',\n            loc: this.getLocationFromList(children),\n            children: children\n        };\n    },\n    generate: function(node) {\n        this.children(node);\n    },\n    walkContext: 'atrulePrelude'\n};\n","var TYPE = require('../../tokenizer').TYPE;\n\nvar IDENT = TYPE.Ident;\nvar STRING = TYPE.String;\nvar COLON = TYPE.Colon;\nvar LEFTSQUAREBRACKET = TYPE.LeftSquareBracket;\nvar RIGHTSQUAREBRACKET = TYPE.RightSquareBracket;\nvar DOLLARSIGN = 0x0024;       // U+0024 DOLLAR SIGN ($)\nvar ASTERISK = 0x002A;         // U+002A ASTERISK (*)\nvar EQUALSSIGN = 0x003D;       // U+003D EQUALS SIGN (=)\nvar CIRCUMFLEXACCENT = 0x005E; // U+005E (^)\nvar VERTICALLINE = 0x007C;     // U+007C VERTICAL LINE (|)\nvar TILDE = 0x007E;            // U+007E TILDE (~)\n\nfunction getAttributeName() {\n    if (this.scanner.eof) {\n        this.error('Unexpected end of input');\n    }\n\n    var start = this.scanner.tokenStart;\n    var expectIdent = false;\n    var checkColon = true;\n\n    if (this.scanner.isDelim(ASTERISK)) {\n        expectIdent = true;\n        checkColon = false;\n        this.scanner.next();\n    } else if (!this.scanner.isDelim(VERTICALLINE)) {\n        this.eat(IDENT);\n    }\n\n    if (this.scanner.isDelim(VERTICALLINE)) {\n        if (this.scanner.source.charCodeAt(this.scanner.tokenStart + 1) !== EQUALSSIGN) {\n            this.scanner.next();\n            this.eat(IDENT);\n        } else if (expectIdent) {\n            this.error('Identifier is expected', this.scanner.tokenEnd);\n        }\n    } else if (expectIdent) {\n        this.error('Vertical line is expected');\n    }\n\n    if (checkColon && this.scanner.tokenType === COLON) {\n        this.scanner.next();\n        this.eat(IDENT);\n    }\n\n    return {\n        type: 'Identifier',\n        loc: this.getLocation(start, this.scanner.tokenStart),\n        name: this.scanner.substrToCursor(start)\n    };\n}\n\nfunction getOperator() {\n    var start = this.scanner.tokenStart;\n    var code = this.scanner.source.charCodeAt(start);\n\n    if (code !== EQUALSSIGN &&        // =\n        code !== TILDE &&             // ~=\n        code !== CIRCUMFLEXACCENT &&  // ^=\n        code !== DOLLARSIGN &&        // $=\n        code !== ASTERISK &&          // *=\n        code !== VERTICALLINE         // |=\n    ) {\n        this.error('Attribute selector (=, ~=, ^=, $=, *=, |=) is expected');\n    }\n\n    this.scanner.next();\n\n    if (code !== EQUALSSIGN) {\n        if (!this.scanner.isDelim(EQUALSSIGN)) {\n            this.error('Equal sign is expected');\n        }\n\n        this.scanner.next();\n    }\n\n    return this.scanner.substrToCursor(start);\n}\n\n// '[' <wq-name> ']'\n// '[' <wq-name> <attr-matcher> [ <string-token> | <ident-token> ] <attr-modifier>? ']'\nmodule.exports = {\n    name: 'AttributeSelector',\n    structure: {\n        name: 'Identifier',\n        matcher: [String, null],\n        value: ['String', 'Identifier', null],\n        flags: [String, null]\n    },\n    parse: function() {\n        var start = this.scanner.tokenStart;\n        var name;\n        var matcher = null;\n        var value = null;\n        var flags = null;\n\n        this.eat(LEFTSQUAREBRACKET);\n        this.scanner.skipSC();\n\n        name = getAttributeName.call(this);\n        this.scanner.skipSC();\n\n        if (this.scanner.tokenType !== RIGHTSQUAREBRACKET) {\n            // avoid case `[name i]`\n            if (this.scanner.tokenType !== IDENT) {\n                matcher = getOperator.call(this);\n\n                this.scanner.skipSC();\n\n                value = this.scanner.tokenType === STRING\n                    ? this.String()\n                    : this.Identifier();\n\n                this.scanner.skipSC();\n            }\n\n            // attribute flags\n            if (this.scanner.tokenType === IDENT) {\n                flags = this.scanner.getTokenValue();\n                this.scanner.next();\n\n                this.scanner.skipSC();\n            }\n        }\n\n        this.eat(RIGHTSQUAREBRACKET);\n\n        return {\n            type: 'AttributeSelector',\n            loc: this.getLocation(start, this.scanner.tokenStart),\n            name: name,\n            matcher: matcher,\n            value: value,\n            flags: flags\n        };\n    },\n    generate: function(node) {\n        var flagsPrefix = ' ';\n\n        this.chunk('[');\n        this.node(node.name);\n\n        if (node.matcher !== null) {\n            this.chunk(node.matcher);\n\n            if (node.value !== null) {\n                this.node(node.value);\n\n                // space between string and flags is not required\n                if (node.value.type === 'String') {\n                    flagsPrefix = '';\n                }\n            }\n        }\n\n        if (node.flags !== null) {\n            this.chunk(flagsPrefix);\n            this.chunk(node.flags);\n        }\n\n        this.chunk(']');\n    }\n};\n","var TYPE = require('../../tokenizer').TYPE;\nvar rawMode = require('./Raw').mode;\n\nvar WHITESPACE = TYPE.WhiteSpace;\nvar COMMENT = TYPE.Comment;\nvar SEMICOLON = TYPE.Semicolon;\nvar ATKEYWORD = TYPE.AtKeyword;\nvar LEFTCURLYBRACKET = TYPE.LeftCurlyBracket;\nvar RIGHTCURLYBRACKET = TYPE.RightCurlyBracket;\n\nfunction consumeRaw(startToken) {\n    return this.Raw(startToken, null, true);\n}\nfunction consumeRule() {\n    return this.parseWithFallback(this.Rule, consumeRaw);\n}\nfunction consumeRawDeclaration(startToken) {\n    return this.Raw(startToken, rawMode.semicolonIncluded, true);\n}\nfunction consumeDeclaration() {\n    if (this.scanner.tokenType === SEMICOLON) {\n        return consumeRawDeclaration.call(this, this.scanner.tokenIndex);\n    }\n\n    var node = this.parseWithFallback(this.Declaration, consumeRawDeclaration);\n\n    if (this.scanner.tokenType === SEMICOLON) {\n        this.scanner.next();\n    }\n\n    return node;\n}\n\nmodule.exports = {\n    name: 'Block',\n    structure: {\n        children: [[\n            'Atrule',\n            'Rule',\n            'Declaration'\n        ]]\n    },\n    parse: function(isDeclaration) {\n        var consumer = isDeclaration ? consumeDeclaration : consumeRule;\n\n        var start = this.scanner.tokenStart;\n        var children = this.createList();\n\n        this.eat(LEFTCURLYBRACKET);\n\n        scan:\n        while (!this.scanner.eof) {\n            switch (this.scanner.tokenType) {\n                case RIGHTCURLYBRACKET:\n                    break scan;\n\n                case WHITESPACE:\n                case COMMENT:\n                    this.scanner.next();\n                    break;\n\n                case ATKEYWORD:\n                    children.push(this.parseWithFallback(this.Atrule, consumeRaw));\n                    break;\n\n                default:\n                    children.push(consumer.call(this));\n            }\n        }\n\n        if (!this.scanner.eof) {\n            this.eat(RIGHTCURLYBRACKET);\n        }\n\n        return {\n            type: 'Block',\n            loc: this.getLocation(start, this.scanner.tokenStart),\n            children: children\n        };\n    },\n    generate: function(node) {\n        this.chunk('{');\n        this.children(node, function(prev) {\n            if (prev.type === 'Declaration') {\n                this.chunk(';');\n            }\n        });\n        this.chunk('}');\n    },\n    walkContext: 'block'\n};\n","var TYPE = require('../../tokenizer').TYPE;\n\nvar LEFTSQUAREBRACKET = TYPE.LeftSquareBracket;\nvar RIGHTSQUAREBRACKET = TYPE.RightSquareBracket;\n\nmodule.exports = {\n    name: 'Brackets',\n    structure: {\n        children: [[]]\n    },\n    parse: function(readSequence, recognizer) {\n        var start = this.scanner.tokenStart;\n        var children = null;\n\n        this.eat(LEFTSQUAREBRACKET);\n\n        children = readSequence.call(this, recognizer);\n\n        if (!this.scanner.eof) {\n            this.eat(RIGHTSQUAREBRACKET);\n        }\n\n        return {\n            type: 'Brackets',\n            loc: this.getLocation(start, this.scanner.tokenStart),\n            children: children\n        };\n    },\n    generate: function(node) {\n        this.chunk('[');\n        this.children(node);\n        this.chunk(']');\n    }\n};\n","var CDC = require('../../tokenizer').TYPE.CDC;\n\nmodule.exports = {\n    name: 'CDC',\n    structure: [],\n    parse: function() {\n        var start = this.scanner.tokenStart;\n\n        this.eat(CDC); // -->\n\n        return {\n            type: 'CDC',\n            loc: this.getLocation(start, this.scanner.tokenStart)\n        };\n    },\n    generate: function() {\n        this.chunk('-->');\n    }\n};\n","var CDO = require('../../tokenizer').TYPE.CDO;\n\nmodule.exports = {\n    name: 'CDO',\n    structure: [],\n    parse: function() {\n        var start = this.scanner.tokenStart;\n\n        this.eat(CDO); // <!--\n\n        return {\n            type: 'CDO',\n            loc: this.getLocation(start, this.scanner.tokenStart)\n        };\n    },\n    generate: function() {\n        this.chunk('<!--');\n    }\n};\n","var TYPE = require('../../tokenizer').TYPE;\n\nvar IDENT = TYPE.Ident;\nvar FULLSTOP = 0x002E; // U+002E FULL STOP (.)\n\n// '.' ident\nmodule.exports = {\n    name: 'ClassSelector',\n    structure: {\n        name: String\n    },\n    parse: function() {\n        if (!this.scanner.isDelim(FULLSTOP)) {\n            this.error('Full stop is expected');\n        }\n\n        this.scanner.next();\n\n        return {\n            type: 'ClassSelector',\n            loc: this.getLocation(this.scanner.tokenStart - 1, this.scanner.tokenEnd),\n            name: this.consume(IDENT)\n        };\n    },\n    generate: function(node) {\n        this.chunk('.');\n        this.chunk(node.name);\n    }\n};\n","var TYPE = require('../../tokenizer').TYPE;\n\nvar IDENT = TYPE.Ident;\nvar PLUSSIGN = 0x002B;        // U+002B PLUS SIGN (+)\nvar SOLIDUS = 0x002F;         // U+002F SOLIDUS (/)\nvar GREATERTHANSIGN = 0x003E; // U+003E GREATER-THAN SIGN (>)\nvar TILDE = 0x007E;           // U+007E TILDE (~)\n\n// + | > | ~ | /deep/\nmodule.exports = {\n    name: 'Combinator',\n    structure: {\n        name: String\n    },\n    parse: function() {\n        var start = this.scanner.tokenStart;\n        var code = this.scanner.source.charCodeAt(this.scanner.tokenStart);\n\n        switch (code) {\n            case GREATERTHANSIGN:\n            case PLUSSIGN:\n            case TILDE:\n                this.scanner.next();\n                break;\n\n            case SOLIDUS:\n                this.scanner.next();\n\n                if (this.scanner.tokenType !== IDENT || this.scanner.lookupValue(0, 'deep') === false) {\n                    this.error('Identifier `deep` is expected');\n                }\n\n                this.scanner.next();\n\n                if (!this.scanner.isDelim(SOLIDUS)) {\n                    this.error('Solidus is expected');\n                }\n\n                this.scanner.next();\n                break;\n\n            default:\n                this.error('Combinator is expected');\n        }\n\n        return {\n            type: 'Combinator',\n            loc: this.getLocation(start, this.scanner.tokenStart),\n            name: this.scanner.substrToCursor(start)\n        };\n    },\n    generate: function(node) {\n        this.chunk(node.name);\n    }\n};\n","var TYPE = require('../../tokenizer').TYPE;\n\nvar COMMENT = TYPE.Comment;\nvar ASTERISK = 0x002A;        // U+002A ASTERISK (*)\nvar SOLIDUS = 0x002F;         // U+002F SOLIDUS (/)\n\n// '/*' .* '*/'\nmodule.exports = {\n    name: 'Comment',\n    structure: {\n        value: String\n    },\n    parse: function() {\n        var start = this.scanner.tokenStart;\n        var end = this.scanner.tokenEnd;\n\n        this.eat(COMMENT);\n\n        if ((end - start + 2) >= 2 &&\n            this.scanner.source.charCodeAt(end - 2) === ASTERISK &&\n            this.scanner.source.charCodeAt(end - 1) === SOLIDUS) {\n            end -= 2;\n        }\n\n        return {\n            type: 'Comment',\n            loc: this.getLocation(start, this.scanner.tokenStart),\n            value: this.scanner.source.substring(start + 2, end)\n        };\n    },\n    generate: function(node) {\n        this.chunk('/*');\n        this.chunk(node.value);\n        this.chunk('*/');\n    }\n};\n","var hasOwnProperty = Object.prototype.hasOwnProperty;\nvar keywords = Object.create(null);\nvar properties = Object.create(null);\nvar HYPHENMINUS = 45; // '-'.charCodeAt()\n\nfunction isCustomProperty(str, offset) {\n    offset = offset || 0;\n\n    return str.length - offset >= 2 &&\n           str.charCodeAt(offset) === HYPHENMINUS &&\n           str.charCodeAt(offset + 1) === HYPHENMINUS;\n}\n\nfunction getVendorPrefix(str, offset) {\n    offset = offset || 0;\n\n    // verdor prefix should be at least 3 chars length\n    if (str.length - offset >= 3) {\n        // vendor prefix starts with hyper minus following non-hyper minus\n        if (str.charCodeAt(offset) === HYPHENMINUS &&\n            str.charCodeAt(offset + 1) !== HYPHENMINUS) {\n            // vendor prefix should contain a hyper minus at the ending\n            var secondDashIndex = str.indexOf('-', offset + 2);\n\n            if (secondDashIndex !== -1) {\n                return str.substring(offset, secondDashIndex + 1);\n            }\n        }\n    }\n\n    return '';\n}\n\nfunction getKeywordDescriptor(keyword) {\n    if (hasOwnProperty.call(keywords, keyword)) {\n        return keywords[keyword];\n    }\n\n    var name = keyword.toLowerCase();\n\n    if (hasOwnProperty.call(keywords, name)) {\n        return keywords[keyword] = keywords[name];\n    }\n\n    var custom = isCustomProperty(name, 0);\n    var vendor = !custom ? getVendorPrefix(name, 0) : '';\n\n    return keywords[keyword] = Object.freeze({\n        basename: name.substr(vendor.length),\n        name: name,\n        vendor: vendor,\n        prefix: vendor,\n        custom: custom\n    });\n}\n\nfunction getPropertyDescriptor(property) {\n    if (hasOwnProperty.call(properties, property)) {\n        return properties[property];\n    }\n\n    var name = property;\n    var hack = property[0];\n\n    if (hack === '/') {\n        hack = property[1] === '/' ? '//' : '/';\n    } else if (hack !== '_' &&\n               hack !== '*' &&\n               hack !== '$' &&\n               hack !== '#' &&\n               hack !== '+' &&\n               hack !== '&') {\n        hack = '';\n    }\n\n    var custom = isCustomProperty(name, hack.length);\n\n    // re-use result when possible (the same as for lower case)\n    if (!custom) {\n        name = name.toLowerCase();\n        if (hasOwnProperty.call(properties, name)) {\n            return properties[property] = properties[name];\n        }\n    }\n\n    var vendor = !custom ? getVendorPrefix(name, hack.length) : '';\n    var prefix = name.substr(0, hack.length + vendor.length);\n\n    return properties[property] = Object.freeze({\n        basename: name.substr(prefix.length),\n        name: name.substr(hack.length),\n        hack: hack,\n        vendor: vendor,\n        prefix: prefix,\n        custom: custom\n    });\n}\n\nmodule.exports = {\n    keyword: getKeywordDescriptor,\n    property: getPropertyDescriptor,\n    isCustomProperty: isCustomProperty,\n    vendorPrefix: getVendorPrefix\n};\n","var isCustomProperty = require('../../utils/names').isCustomProperty;\nvar TYPE = require('../../tokenizer').TYPE;\nvar rawMode = require('./Raw').mode;\n\nvar IDENT = TYPE.Ident;\nvar HASH = TYPE.Hash;\nvar COLON = TYPE.Colon;\nvar SEMICOLON = TYPE.Semicolon;\nvar DELIM = TYPE.Delim;\nvar WHITESPACE = TYPE.WhiteSpace;\nvar EXCLAMATIONMARK = 0x0021; // U+0021 EXCLAMATION MARK (!)\nvar NUMBERSIGN = 0x0023;      // U+0023 NUMBER SIGN (#)\nvar DOLLARSIGN = 0x0024;      // U+0024 DOLLAR SIGN ($)\nvar AMPERSAND = 0x0026;       // U+0026 ANPERSAND (&)\nvar ASTERISK = 0x002A;        // U+002A ASTERISK (*)\nvar PLUSSIGN = 0x002B;        // U+002B PLUS SIGN (+)\nvar SOLIDUS = 0x002F;         // U+002F SOLIDUS (/)\n\nfunction consumeValueRaw(startToken) {\n    return this.Raw(startToken, rawMode.exclamationMarkOrSemicolon, true);\n}\n\nfunction consumeCustomPropertyRaw(startToken) {\n    return this.Raw(startToken, rawMode.exclamationMarkOrSemicolon, false);\n}\n\nfunction consumeValue() {\n    var startValueToken = this.scanner.tokenIndex;\n    var value = this.Value();\n\n    if (value.type !== 'Raw' &&\n        this.scanner.eof === false &&\n        this.scanner.tokenType !== SEMICOLON &&\n        this.scanner.isDelim(EXCLAMATIONMARK) === false &&\n        this.scanner.isBalanceEdge(startValueToken) === false) {\n        this.error();\n    }\n\n    return value;\n}\n\nmodule.exports = {\n    name: 'Declaration',\n    structure: {\n        important: [Boolean, String],\n        property: String,\n        value: ['Value', 'Raw']\n    },\n    parse: function() {\n        var start = this.scanner.tokenStart;\n        var startToken = this.scanner.tokenIndex;\n        var property = readProperty.call(this);\n        var customProperty = isCustomProperty(property);\n        var parseValue = customProperty ? this.parseCustomProperty : this.parseValue;\n        var consumeRaw = customProperty ? consumeCustomPropertyRaw : consumeValueRaw;\n        var important = false;\n        var value;\n\n        this.scanner.skipSC();\n        this.eat(COLON);\n\n        const valueStart = this.scanner.tokenIndex;\n\n        if (!customProperty) {\n            this.scanner.skipSC();\n        }\n\n        if (parseValue) {\n            value = this.parseWithFallback(consumeValue, consumeRaw);\n        } else {\n            value = consumeRaw.call(this, this.scanner.tokenIndex);\n        }\n\n        if (customProperty && value.type === 'Value' && value.children.isEmpty()) {\n            for (let offset = valueStart - this.scanner.tokenIndex; offset <= 0; offset++) {\n                if (this.scanner.lookupType(offset) === WHITESPACE) {\n                    value.children.appendData({\n                        type: 'WhiteSpace',\n                        loc: null,\n                        value: ' '\n                    });\n                    break;\n                }\n            }\n        }\n\n        if (this.scanner.isDelim(EXCLAMATIONMARK)) {\n            important = getImportant.call(this);\n            this.scanner.skipSC();\n        }\n\n        // Do not include semicolon to range per spec\n        // https://drafts.csswg.org/css-syntax/#declaration-diagram\n\n        if (this.scanner.eof === false &&\n            this.scanner.tokenType !== SEMICOLON &&\n            this.scanner.isBalanceEdge(startToken) === false) {\n            this.error();\n        }\n\n        return {\n            type: 'Declaration',\n            loc: this.getLocation(start, this.scanner.tokenStart),\n            important: important,\n            property: property,\n            value: value\n        };\n    },\n    generate: function(node) {\n        this.chunk(node.property);\n        this.chunk(':');\n        this.node(node.value);\n\n        if (node.important) {\n            this.chunk(node.important === true ? '!important' : '!' + node.important);\n        }\n    },\n    walkContext: 'declaration'\n};\n\nfunction readProperty() {\n    var start = this.scanner.tokenStart;\n    var prefix = 0;\n\n    // hacks\n    if (this.scanner.tokenType === DELIM) {\n        switch (this.scanner.source.charCodeAt(this.scanner.tokenStart)) {\n            case ASTERISK:\n            case DOLLARSIGN:\n            case PLUSSIGN:\n            case NUMBERSIGN:\n            case AMPERSAND:\n                this.scanner.next();\n                break;\n\n            // TODO: not sure we should support this hack\n            case SOLIDUS:\n                this.scanner.next();\n                if (this.scanner.isDelim(SOLIDUS)) {\n                    this.scanner.next();\n                }\n                break;\n        }\n    }\n\n    if (prefix) {\n        this.scanner.skip(prefix);\n    }\n\n    if (this.scanner.tokenType === HASH) {\n        this.eat(HASH);\n    } else {\n        this.eat(IDENT);\n    }\n\n    return this.scanner.substrToCursor(start);\n}\n\n// ! ws* important\nfunction getImportant() {\n    this.eat(DELIM);\n    this.scanner.skipSC();\n\n    var important = this.consume(IDENT);\n\n    // store original value in case it differ from `important`\n    // for better original source restoring and hacks like `!ie` support\n    return important === 'important' ? true : important;\n}\n","var TYPE = require('../../tokenizer').TYPE;\nvar rawMode = require('./Raw').mode;\n\nvar WHITESPACE = TYPE.WhiteSpace;\nvar COMMENT = TYPE.Comment;\nvar SEMICOLON = TYPE.Semicolon;\n\nfunction consumeRaw(startToken) {\n    return this.Raw(startToken, rawMode.semicolonIncluded, true);\n}\n\nmodule.exports = {\n    name: 'DeclarationList',\n    structure: {\n        children: [[\n            'Declaration'\n        ]]\n    },\n    parse: function() {\n        var children = this.createList();\n\n        scan:\n        while (!this.scanner.eof) {\n            switch (this.scanner.tokenType) {\n                case WHITESPACE:\n                case COMMENT:\n                case SEMICOLON:\n                    this.scanner.next();\n                    break;\n\n                default:\n                    children.push(this.parseWithFallback(this.Declaration, consumeRaw));\n            }\n        }\n\n        return {\n            type: 'DeclarationList',\n            loc: this.getLocationFromList(children),\n            children: children\n        };\n    },\n    generate: function(node) {\n        this.children(node, function(prev) {\n            if (prev.type === 'Declaration') {\n                this.chunk(';');\n            }\n        });\n    }\n};\n","var consumeNumber = require('../../tokenizer/utils').consumeNumber;\nvar TYPE = require('../../tokenizer').TYPE;\n\nvar DIMENSION = TYPE.Dimension;\n\nmodule.exports = {\n    name: 'Dimension',\n    structure: {\n        value: String,\n        unit: String\n    },\n    parse: function() {\n        var start = this.scanner.tokenStart;\n        var numberEnd = consumeNumber(this.scanner.source, start);\n\n        this.eat(DIMENSION);\n\n        return {\n            type: 'Dimension',\n            loc: this.getLocation(start, this.scanner.tokenStart),\n            value: this.scanner.source.substring(start, numberEnd),\n            unit: this.scanner.source.substring(numberEnd, this.scanner.tokenStart)\n        };\n    },\n    generate: function(node) {\n        this.chunk(node.value);\n        this.chunk(node.unit);\n    }\n};\n","var TYPE = require('../../tokenizer').TYPE;\n\nvar RIGHTPARENTHESIS = TYPE.RightParenthesis;\n\n// <function-token> <sequence> )\nmodule.exports = {\n    name: 'Function',\n    structure: {\n        name: String,\n        children: [[]]\n    },\n    parse: function(readSequence, recognizer) {\n        var start = this.scanner.tokenStart;\n        var name = this.consumeFunctionName();\n        var nameLowerCase = name.toLowerCase();\n        var children;\n\n        children = recognizer.hasOwnProperty(nameLowerCase)\n            ? recognizer[nameLowerCase].call(this, recognizer)\n            : readSequence.call(this, recognizer);\n\n        if (!this.scanner.eof) {\n            this.eat(RIGHTPARENTHESIS);\n        }\n\n        return {\n            type: 'Function',\n            loc: this.getLocation(start, this.scanner.tokenStart),\n            name: name,\n            children: children\n        };\n    },\n    generate: function(node) {\n        this.chunk(node.name);\n        this.chunk('(');\n        this.children(node);\n        this.chunk(')');\n    },\n    walkContext: 'function'\n};\n","var TYPE = require('../../tokenizer').TYPE;\n\nvar HASH = TYPE.Hash;\n\n// '#' ident\nmodule.exports = {\n    name: 'Hash',\n    structure: {\n        value: String\n    },\n    parse: function() {\n        var start = this.scanner.tokenStart;\n\n        this.eat(HASH);\n\n        return {\n            type: 'Hash',\n            loc: this.getLocation(start, this.scanner.tokenStart),\n            value: this.scanner.substrToCursor(start + 1)\n        };\n    },\n    generate: function(node) {\n        this.chunk('#');\n        this.chunk(node.value);\n    }\n};\n","var TYPE = require('../../tokenizer').TYPE;\n\nvar IDENT = TYPE.Ident;\n\nmodule.exports = {\n    name: 'Identifier',\n    structure: {\n        name: String\n    },\n    parse: function() {\n        return {\n            type: 'Identifier',\n            loc: this.getLocation(this.scanner.tokenStart, this.scanner.tokenEnd),\n            name: this.consume(IDENT)\n        };\n    },\n    generate: function(node) {\n        this.chunk(node.name);\n    }\n};\n","var TYPE = require('../../tokenizer').TYPE;\n\nvar HASH = TYPE.Hash;\n\n// <hash-token>\nmodule.exports = {\n    name: 'IdSelector',\n    structure: {\n        name: String\n    },\n    parse: function() {\n        var start = this.scanner.tokenStart;\n\n        // TODO: check value is an ident\n        this.eat(HASH);\n\n        return {\n            type: 'IdSelector',\n            loc: this.getLocation(start, this.scanner.tokenStart),\n            name: this.scanner.substrToCursor(start + 1)\n        };\n    },\n    generate: function(node) {\n        this.chunk('#');\n        this.chunk(node.name);\n    }\n};\n","var TYPE = require('../../tokenizer').TYPE;\n\nvar IDENT = TYPE.Ident;\nvar NUMBER = TYPE.Number;\nvar DIMENSION = TYPE.Dimension;\nvar LEFTPARENTHESIS = TYPE.LeftParenthesis;\nvar RIGHTPARENTHESIS = TYPE.RightParenthesis;\nvar COLON = TYPE.Colon;\nvar DELIM = TYPE.Delim;\n\nmodule.exports = {\n    name: 'MediaFeature',\n    structure: {\n        name: String,\n        value: ['Identifier', 'Number', 'Dimension', 'Ratio', null]\n    },\n    parse: function() {\n        var start = this.scanner.tokenStart;\n        var name;\n        var value = null;\n\n        this.eat(LEFTPARENTHESIS);\n        this.scanner.skipSC();\n\n        name = this.consume(IDENT);\n        this.scanner.skipSC();\n\n        if (this.scanner.tokenType !== RIGHTPARENTHESIS) {\n            this.eat(COLON);\n            this.scanner.skipSC();\n\n            switch (this.scanner.tokenType) {\n                case NUMBER:\n                    if (this.lookupNonWSType(1) === DELIM) {\n                        value = this.Ratio();\n                    } else {\n                        value = this.Number();\n                    }\n\n                    break;\n\n                case DIMENSION:\n                    value = this.Dimension();\n                    break;\n\n                case IDENT:\n                    value = this.Identifier();\n\n                    break;\n\n                default:\n                    this.error('Number, dimension, ratio or identifier is expected');\n            }\n\n            this.scanner.skipSC();\n        }\n\n        this.eat(RIGHTPARENTHESIS);\n\n        return {\n            type: 'MediaFeature',\n            loc: this.getLocation(start, this.scanner.tokenStart),\n            name: name,\n            value: value\n        };\n    },\n    generate: function(node) {\n        this.chunk('(');\n        this.chunk(node.name);\n        if (node.value !== null) {\n            this.chunk(':');\n            this.node(node.value);\n        }\n        this.chunk(')');\n    }\n};\n","var TYPE = require('../../tokenizer').TYPE;\n\nvar WHITESPACE = TYPE.WhiteSpace;\nvar COMMENT = TYPE.Comment;\nvar IDENT = TYPE.Ident;\nvar LEFTPARENTHESIS = TYPE.LeftParenthesis;\n\nmodule.exports = {\n    name: 'MediaQuery',\n    structure: {\n        children: [[\n            'Identifier',\n            'MediaFeature',\n            'WhiteSpace'\n        ]]\n    },\n    parse: function() {\n        this.scanner.skipSC();\n\n        var children = this.createList();\n        var child = null;\n        var space = null;\n\n        scan:\n        while (!this.scanner.eof) {\n            switch (this.scanner.tokenType) {\n                case COMMENT:\n                    this.scanner.next();\n                    continue;\n\n                case WHITESPACE:\n                    space = this.WhiteSpace();\n                    continue;\n\n                case IDENT:\n                    child = this.Identifier();\n                    break;\n\n                case LEFTPARENTHESIS:\n                    child = this.MediaFeature();\n                    break;\n\n                default:\n                    break scan;\n            }\n\n            if (space !== null) {\n                children.push(space);\n                space = null;\n            }\n\n            children.push(child);\n        }\n\n        if (child === null) {\n            this.error('Identifier or parenthesis is expected');\n        }\n\n        return {\n            type: 'MediaQuery',\n            loc: this.getLocationFromList(children),\n            children: children\n        };\n    },\n    generate: function(node) {\n        this.children(node);\n    }\n};\n","var COMMA = require('../../tokenizer').TYPE.Comma;\n\nmodule.exports = {\n    name: 'MediaQueryList',\n    structure: {\n        children: [[\n            'MediaQuery'\n        ]]\n    },\n    parse: function(relative) {\n        var children = this.createList();\n\n        this.scanner.skipSC();\n\n        while (!this.scanner.eof) {\n            children.push(this.MediaQuery(relative));\n\n            if (this.scanner.tokenType !== COMMA) {\n                break;\n            }\n\n            this.scanner.next();\n        }\n\n        return {\n            type: 'MediaQueryList',\n            loc: this.getLocationFromList(children),\n            children: children\n        };\n    },\n    generate: function(node) {\n        this.children(node, function() {\n            this.chunk(',');\n        });\n    }\n};\n","module.exports = {\n    name: 'Nth',\n    structure: {\n        nth: ['AnPlusB', 'Identifier'],\n        selector: ['SelectorList', null]\n    },\n    parse: function(allowOfClause) {\n        this.scanner.skipSC();\n\n        var start = this.scanner.tokenStart;\n        var end = start;\n        var selector = null;\n        var query;\n\n        if (this.scanner.lookupValue(0, 'odd') || this.scanner.lookupValue(0, 'even')) {\n            query = this.Identifier();\n        } else {\n            query = this.AnPlusB();\n        }\n\n        this.scanner.skipSC();\n\n        if (allowOfClause && this.scanner.lookupValue(0, 'of')) {\n            this.scanner.next();\n\n            selector = this.SelectorList();\n\n            if (this.needPositions) {\n                end = this.getLastListNode(selector.children).loc.end.offset;\n            }\n        } else {\n            if (this.needPositions) {\n                end = query.loc.end.offset;\n            }\n        }\n\n        return {\n            type: 'Nth',\n            loc: this.getLocation(start, end),\n            nth: query,\n            selector: selector\n        };\n    },\n    generate: function(node) {\n        this.node(node.nth);\n        if (node.selector !== null) {\n            this.chunk(' of ');\n            this.node(node.selector);\n        }\n    }\n};\n","var NUMBER = require('../../tokenizer').TYPE.Number;\n\nmodule.exports = {\n    name: 'Number',\n    structure: {\n        value: String\n    },\n    parse: function() {\n        return {\n            type: 'Number',\n            loc: this.getLocation(this.scanner.tokenStart, this.scanner.tokenEnd),\n            value: this.consume(NUMBER)\n        };\n    },\n    generate: function(node) {\n        this.chunk(node.value);\n    }\n};\n","// '/' | '*' | ',' | ':' | '+' | '-'\nmodule.exports = {\n    name: 'Operator',\n    structure: {\n        value: String\n    },\n    parse: function() {\n        var start = this.scanner.tokenStart;\n\n        this.scanner.next();\n\n        return {\n            type: 'Operator',\n            loc: this.getLocation(start, this.scanner.tokenStart),\n            value: this.scanner.substrToCursor(start)\n        };\n    },\n    generate: function(node) {\n        this.chunk(node.value);\n    }\n};\n","var TYPE = require('../../tokenizer').TYPE;\n\nvar LEFTPARENTHESIS = TYPE.LeftParenthesis;\nvar RIGHTPARENTHESIS = TYPE.RightParenthesis;\n\nmodule.exports = {\n    name: 'Parentheses',\n    structure: {\n        children: [[]]\n    },\n    parse: function(readSequence, recognizer) {\n        var start = this.scanner.tokenStart;\n        var children = null;\n\n        this.eat(LEFTPARENTHESIS);\n\n        children = readSequence.call(this, recognizer);\n\n        if (!this.scanner.eof) {\n            this.eat(RIGHTPARENTHESIS);\n        }\n\n        return {\n            type: 'Parentheses',\n            loc: this.getLocation(start, this.scanner.tokenStart),\n            children: children\n        };\n    },\n    generate: function(node) {\n        this.chunk('(');\n        this.children(node);\n        this.chunk(')');\n    }\n};\n","var consumeNumber = require('../../tokenizer/utils').consumeNumber;\nvar TYPE = require('../../tokenizer').TYPE;\n\nvar PERCENTAGE = TYPE.Percentage;\n\nmodule.exports = {\n    name: 'Percentage',\n    structure: {\n        value: String\n    },\n    parse: function() {\n        var start = this.scanner.tokenStart;\n        var numberEnd = consumeNumber(this.scanner.source, start);\n\n        this.eat(PERCENTAGE);\n\n        return {\n            type: 'Percentage',\n            loc: this.getLocation(start, this.scanner.tokenStart),\n            value: this.scanner.source.substring(start, numberEnd)\n        };\n    },\n    generate: function(node) {\n        this.chunk(node.value);\n        this.chunk('%');\n    }\n};\n","var TYPE = require('../../tokenizer').TYPE;\n\nvar IDENT = TYPE.Ident;\nvar FUNCTION = TYPE.Function;\nvar COLON = TYPE.Colon;\nvar RIGHTPARENTHESIS = TYPE.RightParenthesis;\n\n// : [ <ident> | <function-token> <any-value>? ) ]\nmodule.exports = {\n    name: 'PseudoClassSelector',\n    structure: {\n        name: String,\n        children: [['Raw'], null]\n    },\n    parse: function() {\n        var start = this.scanner.tokenStart;\n        var children = null;\n        var name;\n        var nameLowerCase;\n\n        this.eat(COLON);\n\n        if (this.scanner.tokenType === FUNCTION) {\n            name = this.consumeFunctionName();\n            nameLowerCase = name.toLowerCase();\n\n            if (this.pseudo.hasOwnProperty(nameLowerCase)) {\n                this.scanner.skipSC();\n                children = this.pseudo[nameLowerCase].call(this);\n                this.scanner.skipSC();\n            } else {\n                children = this.createList();\n                children.push(\n                    this.Raw(this.scanner.tokenIndex, null, false)\n                );\n            }\n\n            this.eat(RIGHTPARENTHESIS);\n        } else {\n            name = this.consume(IDENT);\n        }\n\n        return {\n            type: 'PseudoClassSelector',\n            loc: this.getLocation(start, this.scanner.tokenStart),\n            name: name,\n            children: children\n        };\n    },\n    generate: function(node) {\n        this.chunk(':');\n        this.chunk(node.name);\n\n        if (node.children !== null) {\n            this.chunk('(');\n            this.children(node);\n            this.chunk(')');\n        }\n    },\n    walkContext: 'function'\n};\n","var TYPE = require('../../tokenizer').TYPE;\n\nvar IDENT = TYPE.Ident;\nvar FUNCTION = TYPE.Function;\nvar COLON = TYPE.Colon;\nvar RIGHTPARENTHESIS = TYPE.RightParenthesis;\n\n// :: [ <ident> | <function-token> <any-value>? ) ]\nmodule.exports = {\n    name: 'PseudoElementSelector',\n    structure: {\n        name: String,\n        children: [['Raw'], null]\n    },\n    parse: function() {\n        var start = this.scanner.tokenStart;\n        var children = null;\n        var name;\n        var nameLowerCase;\n\n        this.eat(COLON);\n        this.eat(COLON);\n\n        if (this.scanner.tokenType === FUNCTION) {\n            name = this.consumeFunctionName();\n            nameLowerCase = name.toLowerCase();\n\n            if (this.pseudo.hasOwnProperty(nameLowerCase)) {\n                this.scanner.skipSC();\n                children = this.pseudo[nameLowerCase].call(this);\n                this.scanner.skipSC();\n            } else {\n                children = this.createList();\n                children.push(\n                    this.Raw(this.scanner.tokenIndex, null, false)\n                );\n            }\n\n            this.eat(RIGHTPARENTHESIS);\n        } else {\n            name = this.consume(IDENT);\n        }\n\n        return {\n            type: 'PseudoElementSelector',\n            loc: this.getLocation(start, this.scanner.tokenStart),\n            name: name,\n            children: children\n        };\n    },\n    generate: function(node) {\n        this.chunk('::');\n        this.chunk(node.name);\n\n        if (node.children !== null) {\n            this.chunk('(');\n            this.children(node);\n            this.chunk(')');\n        }\n    },\n    walkContext: 'function'\n};\n","var isDigit = require('../../tokenizer').isDigit;\nvar TYPE = require('../../tokenizer').TYPE;\n\nvar NUMBER = TYPE.Number;\nvar DELIM = TYPE.Delim;\nvar SOLIDUS = 0x002F;  // U+002F SOLIDUS (/)\nvar FULLSTOP = 0x002E; // U+002E FULL STOP (.)\n\n// Terms of <ratio> should be a positive numbers (not zero or negative)\n// (see https://drafts.csswg.org/mediaqueries-3/#values)\n// However, -o-min-device-pixel-ratio takes fractional values as a ratio's term\n// and this is using by various sites. Therefore we relax checking on parse\n// to test a term is unsigned number without an exponent part.\n// Additional checking may be applied on lexer validation.\nfunction consumeNumber() {\n    this.scanner.skipWS();\n\n    var value = this.consume(NUMBER);\n\n    for (var i = 0; i < value.length; i++) {\n        var code = value.charCodeAt(i);\n        if (!isDigit(code) && code !== FULLSTOP) {\n            this.error('Unsigned number is expected', this.scanner.tokenStart - value.length + i);\n        }\n    }\n\n    if (Number(value) === 0) {\n        this.error('Zero number is not allowed', this.scanner.tokenStart - value.length);\n    }\n\n    return value;\n}\n\n// <positive-integer> S* '/' S* <positive-integer>\nmodule.exports = {\n    name: 'Ratio',\n    structure: {\n        left: String,\n        right: String\n    },\n    parse: function() {\n        var start = this.scanner.tokenStart;\n        var left = consumeNumber.call(this);\n        var right;\n\n        this.scanner.skipWS();\n\n        if (!this.scanner.isDelim(SOLIDUS)) {\n            this.error('Solidus is expected');\n        }\n        this.eat(DELIM);\n        right = consumeNumber.call(this);\n\n        return {\n            type: 'Ratio',\n            loc: this.getLocation(start, this.scanner.tokenStart),\n            left: left,\n            right: right\n        };\n    },\n    generate: function(node) {\n        this.chunk(node.left);\n        this.chunk('/');\n        this.chunk(node.right);\n    }\n};\n","var TYPE = require('../../tokenizer').TYPE;\nvar rawMode = require('./Raw').mode;\n\nvar LEFTCURLYBRACKET = TYPE.LeftCurlyBracket;\n\nfunction consumeRaw(startToken) {\n    return this.Raw(startToken, rawMode.leftCurlyBracket, true);\n}\n\nfunction consumePrelude() {\n    var prelude = this.SelectorList();\n\n    if (prelude.type !== 'Raw' &&\n        this.scanner.eof === false &&\n        this.scanner.tokenType !== LEFTCURLYBRACKET) {\n        this.error();\n    }\n\n    return prelude;\n}\n\nmodule.exports = {\n    name: 'Rule',\n    structure: {\n        prelude: ['SelectorList', 'Raw'],\n        block: ['Block']\n    },\n    parse: function() {\n        var startToken = this.scanner.tokenIndex;\n        var startOffset = this.scanner.tokenStart;\n        var prelude;\n        var block;\n\n        if (this.parseRulePrelude) {\n            prelude = this.parseWithFallback(consumePrelude, consumeRaw);\n        } else {\n            prelude = consumeRaw.call(this, startToken);\n        }\n\n        block = this.Block(true);\n\n        return {\n            type: 'Rule',\n            loc: this.getLocation(startOffset, this.scanner.tokenStart),\n            prelude: prelude,\n            block: block\n        };\n    },\n    generate: function(node) {\n        this.node(node.prelude);\n        this.node(node.block);\n    },\n    walkContext: 'rule'\n};\n","module.exports = {\n    name: 'Selector',\n    structure: {\n        children: [[\n            'TypeSelector',\n            'IdSelector',\n            'ClassSelector',\n            'AttributeSelector',\n            'PseudoClassSelector',\n            'PseudoElementSelector',\n            'Combinator',\n            'WhiteSpace'\n        ]]\n    },\n    parse: function() {\n        var children = this.readSequence(this.scope.Selector);\n\n        // nothing were consumed\n        if (this.getFirstListNode(children) === null) {\n            this.error('Selector is expected');\n        }\n\n        return {\n            type: 'Selector',\n            loc: this.getLocationFromList(children),\n            children: children\n        };\n    },\n    generate: function(node) {\n        this.children(node);\n    }\n};\n","var TYPE = require('../../tokenizer').TYPE;\n\nvar COMMA = TYPE.Comma;\n\nmodule.exports = {\n    name: 'SelectorList',\n    structure: {\n        children: [[\n            'Selector',\n            'Raw'\n        ]]\n    },\n    parse: function() {\n        var children = this.createList();\n\n        while (!this.scanner.eof) {\n            children.push(this.Selector());\n\n            if (this.scanner.tokenType === COMMA) {\n                this.scanner.next();\n                continue;\n            }\n\n            break;\n        }\n\n        return {\n            type: 'SelectorList',\n            loc: this.getLocationFromList(children),\n            children: children\n        };\n    },\n    generate: function(node) {\n        this.children(node, function() {\n            this.chunk(',');\n        });\n    },\n    walkContext: 'selector'\n};\n","var STRING = require('../../tokenizer').TYPE.String;\n\nmodule.exports = {\n    name: 'String',\n    structure: {\n        value: String\n    },\n    parse: function() {\n        return {\n            type: 'String',\n            loc: this.getLocation(this.scanner.tokenStart, this.scanner.tokenEnd),\n            value: this.consume(STRING)\n        };\n    },\n    generate: function(node) {\n        this.chunk(node.value);\n    }\n};\n","var TYPE = require('../../tokenizer').TYPE;\n\nvar WHITESPACE = TYPE.WhiteSpace;\nvar COMMENT = TYPE.Comment;\nvar ATKEYWORD = TYPE.AtKeyword;\nvar CDO = TYPE.CDO;\nvar CDC = TYPE.CDC;\nvar EXCLAMATIONMARK = 0x0021; // U+0021 EXCLAMATION MARK (!)\n\nfunction consumeRaw(startToken) {\n    return this.Raw(startToken, null, false);\n}\n\nmodule.exports = {\n    name: 'StyleSheet',\n    structure: {\n        children: [[\n            'Comment',\n            'CDO',\n            'CDC',\n            'Atrule',\n            'Rule',\n            'Raw'\n        ]]\n    },\n    parse: function() {\n        var start = this.scanner.tokenStart;\n        var children = this.createList();\n        var child;\n\n        scan:\n        while (!this.scanner.eof) {\n            switch (this.scanner.tokenType) {\n                case WHITESPACE:\n                    this.scanner.next();\n                    continue;\n\n                case COMMENT:\n                    // ignore comments except exclamation comments (i.e. /*! .. */) on top level\n                    if (this.scanner.source.charCodeAt(this.scanner.tokenStart + 2) !== EXCLAMATIONMARK) {\n                        this.scanner.next();\n                        continue;\n                    }\n\n                    child = this.Comment();\n                    break;\n\n                case CDO: // <!--\n                    child = this.CDO();\n                    break;\n\n                case CDC: // -->\n                    child = this.CDC();\n                    break;\n\n                // CSS Syntax Module Level 3\n                // §2.2 Error handling\n                // At the \"top level\" of a stylesheet, an <at-keyword-token> starts an at-rule.\n                case ATKEYWORD:\n                    child = this.parseWithFallback(this.Atrule, consumeRaw);\n                    break;\n\n                // Anything else starts a qualified rule ...\n                default:\n                    child = this.parseWithFallback(this.Rule, consumeRaw);\n            }\n\n            children.push(child);\n        }\n\n        return {\n            type: 'StyleSheet',\n            loc: this.getLocation(start, this.scanner.tokenStart),\n            children: children\n        };\n    },\n    generate: function(node) {\n        this.children(node);\n    },\n    walkContext: 'stylesheet'\n};\n","var TYPE = require('../../tokenizer').TYPE;\n\nvar IDENT = TYPE.Ident;\nvar ASTERISK = 0x002A;     // U+002A ASTERISK (*)\nvar VERTICALLINE = 0x007C; // U+007C VERTICAL LINE (|)\n\nfunction eatIdentifierOrAsterisk() {\n    if (this.scanner.tokenType !== IDENT &&\n        this.scanner.isDelim(ASTERISK) === false) {\n        this.error('Identifier or asterisk is expected');\n    }\n\n    this.scanner.next();\n}\n\n// ident\n// ident|ident\n// ident|*\n// *\n// *|ident\n// *|*\n// |ident\n// |*\nmodule.exports = {\n    name: 'TypeSelector',\n    structure: {\n        name: String\n    },\n    parse: function() {\n        var start = this.scanner.tokenStart;\n\n        if (this.scanner.isDelim(VERTICALLINE)) {\n            this.scanner.next();\n            eatIdentifierOrAsterisk.call(this);\n        } else {\n            eatIdentifierOrAsterisk.call(this);\n\n            if (this.scanner.isDelim(VERTICALLINE)) {\n                this.scanner.next();\n                eatIdentifierOrAsterisk.call(this);\n            }\n        }\n\n        return {\n            type: 'TypeSelector',\n            loc: this.getLocation(start, this.scanner.tokenStart),\n            name: this.scanner.substrToCursor(start)\n        };\n    },\n    generate: function(node) {\n        this.chunk(node.name);\n    }\n};\n","var isHexDigit = require('../../tokenizer').isHexDigit;\nvar cmpChar = require('../../tokenizer').cmpChar;\nvar TYPE = require('../../tokenizer').TYPE;\nvar NAME = require('../../tokenizer').NAME;\n\nvar IDENT = TYPE.Ident;\nvar NUMBER = TYPE.Number;\nvar DIMENSION = TYPE.Dimension;\nvar PLUSSIGN = 0x002B;     // U+002B PLUS SIGN (+)\nvar HYPHENMINUS = 0x002D;  // U+002D HYPHEN-MINUS (-)\nvar QUESTIONMARK = 0x003F; // U+003F QUESTION MARK (?)\nvar U = 0x0075;            // U+0075 LATIN SMALL LETTER U (u)\n\nfunction eatHexSequence(offset, allowDash) {\n    for (var pos = this.scanner.tokenStart + offset, len = 0; pos < this.scanner.tokenEnd; pos++) {\n        var code = this.scanner.source.charCodeAt(pos);\n\n        if (code === HYPHENMINUS && allowDash && len !== 0) {\n            if (eatHexSequence.call(this, offset + len + 1, false) === 0) {\n                this.error();\n            }\n\n            return -1;\n        }\n\n        if (!isHexDigit(code)) {\n            this.error(\n                allowDash && len !== 0\n                    ? 'HyphenMinus' + (len < 6 ? ' or hex digit' : '') + ' is expected'\n                    : (len < 6 ? 'Hex digit is expected' : 'Unexpected input'),\n                pos\n            );\n        }\n\n        if (++len > 6) {\n            this.error('Too many hex digits', pos);\n        };\n    }\n\n    this.scanner.next();\n    return len;\n}\n\nfunction eatQuestionMarkSequence(max) {\n    var count = 0;\n\n    while (this.scanner.isDelim(QUESTIONMARK)) {\n        if (++count > max) {\n            this.error('Too many question marks');\n        }\n\n        this.scanner.next();\n    }\n}\n\nfunction startsWith(code) {\n    if (this.scanner.source.charCodeAt(this.scanner.tokenStart) !== code) {\n        this.error(NAME[code] + ' is expected');\n    }\n}\n\n// https://drafts.csswg.org/css-syntax/#urange\n// Informally, the <urange> production has three forms:\n// U+0001\n//      Defines a range consisting of a single code point, in this case the code point \"1\".\n// U+0001-00ff\n//      Defines a range of codepoints between the first and the second value, in this case\n//      the range between \"1\" and \"ff\" (255 in decimal) inclusive.\n// U+00??\n//      Defines a range of codepoints where the \"?\" characters range over all hex digits,\n//      in this case defining the same as the value U+0000-00ff.\n// In each form, a maximum of 6 digits is allowed for each hexadecimal number (if you treat \"?\" as a hexadecimal digit).\n//\n// <urange> =\n//   u '+' <ident-token> '?'* |\n//   u <dimension-token> '?'* |\n//   u <number-token> '?'* |\n//   u <number-token> <dimension-token> |\n//   u <number-token> <number-token> |\n//   u '+' '?'+\nfunction scanUnicodeRange() {\n    var hexLength = 0;\n\n    // u '+' <ident-token> '?'*\n    // u '+' '?'+\n    if (this.scanner.isDelim(PLUSSIGN)) {\n        this.scanner.next();\n\n        if (this.scanner.tokenType === IDENT) {\n            hexLength = eatHexSequence.call(this, 0, true);\n            if (hexLength > 0) {\n                eatQuestionMarkSequence.call(this, 6 - hexLength);\n            }\n            return;\n        }\n\n        if (this.scanner.isDelim(QUESTIONMARK)) {\n            this.scanner.next();\n            eatQuestionMarkSequence.call(this, 5);\n            return;\n        }\n\n        this.error('Hex digit or question mark is expected');\n        return;\n    }\n\n    // u <number-token> '?'*\n    // u <number-token> <dimension-token>\n    // u <number-token> <number-token>\n    if (this.scanner.tokenType === NUMBER) {\n        startsWith.call(this, PLUSSIGN);\n        hexLength = eatHexSequence.call(this, 1, true);\n\n        if (this.scanner.isDelim(QUESTIONMARK)) {\n            eatQuestionMarkSequence.call(this, 6 - hexLength);\n            return;\n        }\n\n        if (this.scanner.tokenType === DIMENSION ||\n            this.scanner.tokenType === NUMBER) {\n            startsWith.call(this, HYPHENMINUS);\n            eatHexSequence.call(this, 1, false);\n            return;\n        }\n\n        return;\n    }\n\n    // u <dimension-token> '?'*\n    if (this.scanner.tokenType === DIMENSION) {\n        startsWith.call(this, PLUSSIGN);\n        hexLength = eatHexSequence.call(this, 1, true);\n\n        if (hexLength > 0) {\n            eatQuestionMarkSequence.call(this, 6 - hexLength);\n        }\n\n        return;\n    }\n\n    this.error();\n}\n\nmodule.exports = {\n    name: 'UnicodeRange',\n    structure: {\n        value: String\n    },\n    parse: function() {\n        var start = this.scanner.tokenStart;\n\n        // U or u\n        if (!cmpChar(this.scanner.source, start, U)) {\n            this.error('U is expected');\n        }\n\n        if (!cmpChar(this.scanner.source, start + 1, PLUSSIGN)) {\n            this.error('Plus sign is expected');\n        }\n\n        this.scanner.next();\n        scanUnicodeRange.call(this);\n\n        return {\n            type: 'UnicodeRange',\n            loc: this.getLocation(start, this.scanner.tokenStart),\n            value: this.scanner.substrToCursor(start)\n        };\n    },\n    generate: function(node) {\n        this.chunk(node.value);\n    }\n};\n","var isWhiteSpace = require('../../tokenizer').isWhiteSpace;\nvar cmpStr = require('../../tokenizer').cmpStr;\nvar TYPE = require('../../tokenizer').TYPE;\n\nvar FUNCTION = TYPE.Function;\nvar URL = TYPE.Url;\nvar RIGHTPARENTHESIS = TYPE.RightParenthesis;\n\n// <url-token> | <function-token> <string> )\nmodule.exports = {\n    name: 'Url',\n    structure: {\n        value: ['String', 'Raw']\n    },\n    parse: function() {\n        var start = this.scanner.tokenStart;\n        var value;\n\n        switch (this.scanner.tokenType) {\n            case URL:\n                var rawStart = start + 4;\n                var rawEnd = this.scanner.tokenEnd - 1;\n\n                while (rawStart < rawEnd && isWhiteSpace(this.scanner.source.charCodeAt(rawStart))) {\n                    rawStart++;\n                }\n\n                while (rawStart < rawEnd && isWhiteSpace(this.scanner.source.charCodeAt(rawEnd - 1))) {\n                    rawEnd--;\n                }\n\n                value = {\n                    type: 'Raw',\n                    loc: this.getLocation(rawStart, rawEnd),\n                    value: this.scanner.source.substring(rawStart, rawEnd)\n                };\n\n                this.eat(URL);\n                break;\n\n            case FUNCTION:\n                if (!cmpStr(this.scanner.source, this.scanner.tokenStart, this.scanner.tokenEnd, 'url(')) {\n                    this.error('Function name must be `url`');\n                }\n\n                this.eat(FUNCTION);\n                this.scanner.skipSC();\n                value = this.String();\n                this.scanner.skipSC();\n                this.eat(RIGHTPARENTHESIS);\n                break;\n\n            default:\n                this.error('Url or Function is expected');\n        }\n\n        return {\n            type: 'Url',\n            loc: this.getLocation(start, this.scanner.tokenStart),\n            value: value\n        };\n    },\n    generate: function(node) {\n        this.chunk('url');\n        this.chunk('(');\n        this.node(node.value);\n        this.chunk(')');\n    }\n};\n","module.exports = {\n    name: 'Value',\n    structure: {\n        children: [[]]\n    },\n    parse: function() {\n        var start = this.scanner.tokenStart;\n        var children = this.readSequence(this.scope.Value);\n\n        return {\n            type: 'Value',\n            loc: this.getLocation(start, this.scanner.tokenStart),\n            children: children\n        };\n    },\n    generate: function(node) {\n        this.children(node);\n    }\n};\n","var WHITESPACE = require('../../tokenizer').TYPE.WhiteSpace;\nvar SPACE = Object.freeze({\n    type: 'WhiteSpace',\n    loc: null,\n    value: ' '\n});\n\nmodule.exports = {\n    name: 'WhiteSpace',\n    structure: {\n        value: String\n    },\n    parse: function() {\n        this.eat(WHITESPACE);\n        return SPACE;\n\n        // return {\n        //     type: 'WhiteSpace',\n        //     loc: this.getLocation(this.scanner.tokenStart, this.scanner.tokenEnd),\n        //     value: this.consume(WHITESPACE)\n        // };\n    },\n    generate: function(node) {\n        this.chunk(node.value);\n    }\n};\n","module.exports = {\n    AnPlusB: require('./AnPlusB'),\n    Atrule: require('./Atrule'),\n    AtrulePrelude: require('./AtrulePrelude'),\n    AttributeSelector: require('./AttributeSelector'),\n    Block: require('./Block'),\n    Brackets: require('./Brackets'),\n    CDC: require('./CDC'),\n    CDO: require('./CDO'),\n    ClassSelector: require('./ClassSelector'),\n    Combinator: require('./Combinator'),\n    Comment: require('./Comment'),\n    Declaration: require('./Declaration'),\n    DeclarationList: require('./DeclarationList'),\n    Dimension: require('./Dimension'),\n    Function: require('./Function'),\n    Hash: require('./Hash'),\n    Identifier: require('./Identifier'),\n    IdSelector: require('./IdSelector'),\n    MediaFeature: require('./MediaFeature'),\n    MediaQuery: require('./MediaQuery'),\n    MediaQueryList: require('./MediaQueryList'),\n    Nth: require('./Nth'),\n    Number: require('./Number'),\n    Operator: require('./Operator'),\n    Parentheses: require('./Parentheses'),\n    Percentage: require('./Percentage'),\n    PseudoClassSelector: require('./PseudoClassSelector'),\n    PseudoElementSelector: require('./PseudoElementSelector'),\n    Ratio: require('./Ratio'),\n    Raw: require('./Raw'),\n    Rule: require('./Rule'),\n    Selector: require('./Selector'),\n    SelectorList: require('./SelectorList'),\n    String: require('./String'),\n    StyleSheet: require('./StyleSheet'),\n    TypeSelector: require('./TypeSelector'),\n    UnicodeRange: require('./UnicodeRange'),\n    Url: require('./Url'),\n    Value: require('./Value'),\n    WhiteSpace: require('./WhiteSpace')\n};\n","module.exports = {\n    parseContext: {\n        default: 'StyleSheet',\n        stylesheet: 'StyleSheet',\n        atrule: 'Atrule',\n        atrulePrelude: function(options) {\n            return this.AtrulePrelude(options.atrule ? String(options.atrule) : null);\n        },\n        mediaQueryList: 'MediaQueryList',\n        mediaQuery: 'MediaQuery',\n        rule: 'Rule',\n        selectorList: 'SelectorList',\n        selector: 'Selector',\n        block: function() {\n            return this.Block(true);\n        },\n        declarationList: 'DeclarationList',\n        declaration: 'Declaration',\n        value: 'Value'\n    },\n    scope: require('../scope'),\n    atrule: require('../atrule'),\n    pseudo: require('../pseudo'),\n    node: require('../node')\n};\n","var createParser = require('./create');\nvar config = require('../syntax/config/parser');\n\nmodule.exports = createParser(config);\n","import parse from 'css-tree/lib/parser/index.js';\r\nimport { walk } from 'estree-walker';\r\nimport { Parser } from '../index';\r\nimport { Node } from 'estree';\r\nimport { Style } from '../../interfaces';\r\nimport parser_errors from '../errors';\r\n\r\nexport default function read_style(parser: Parser, start: number, attributes: Node[]): Style {\r\n\tconst content_start = parser.index;\r\n\r\n\tconst styles = parser.read_until(/<\\/style\\s*>/, parser_errors.unclosed_style);\r\n\r\n\tif (parser.index >= parser.template.length) {\r\n\t\tparser.error(parser_errors.unclosed_style);\r\n\t}\r\n\r\n\tconst content_end = parser.index;\r\n\r\n\tlet ast;\r\n\r\n\ttry {\r\n\t\tast = parse(styles, {\r\n\t\t\tpositions: true,\r\n\t\t\toffset: content_start,\r\n\t\t\tonParseError(error) {\r\n\t\t\t\tthrow error;\r\n\t\t\t}\r\n\t\t});\r\n\t} catch (err) {\r\n\t\tif (err.name === 'SyntaxError') {\r\n\t\t\tparser.error(parser_errors.css_syntax_error(err.message), err.offset);\r\n\t\t} else {\r\n\t\t\tthrow err;\r\n\t\t}\r\n\t}\r\n\r\n\tast = JSON.parse(JSON.stringify(ast));\r\n\r\n\t// tidy up AST\r\n\twalk(ast, {\r\n\t\tenter: (node: any) => { // `any` because this isn't an ESTree node\r\n\t\t\t// replace `ref:a` nodes\r\n\t\t\tif (node.type === 'Selector') {\r\n\t\t\t\tfor (let i = 0; i < node.children.length; i += 1) {\r\n\t\t\t\t\tconst a = node.children[i];\r\n\t\t\t\t\tconst b = node.children[i + 1];\r\n\r\n\t\t\t\t\tif (is_ref_selector(a, b)) {\r\n\t\t\t\t\t\tparser.error(parser_errors.invalid_ref_selector, a.loc.start.offset);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (node.type === 'Declaration' && node.value.type === 'Value' && node.value.children.length === 0) {\r\n\t\t\t\tparser.error(parser_errors.invalid_declaration, node.start);\r\n\t\t\t}\r\n\r\n\t\t\tif (node.type === 'PseudoClassSelector' && node.name === 'global' && node.children === null) {\r\n\t\t\t\tparser.error(parser_errors.empty_global_selector, node.loc.start.offset);\r\n\t\t\t}\r\n\r\n\t\t\tif (node.loc) {\r\n\t\t\t\tnode.start = node.loc.start.offset;\r\n\t\t\t\tnode.end = node.loc.end.offset;\r\n\t\t\t\tdelete node.loc;\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\tparser.read(/<\\/style\\s*>/);\r\n\tconst end = parser.index;\r\n\r\n\treturn {\r\n\t\ttype: 'Style',\r\n\t\tstart,\r\n\t\tend,\r\n\t\tattributes,\r\n\t\tchildren: ast.children,\r\n\t\tcontent: {\r\n\t\t\tstart: content_start,\r\n\t\t\tend: content_end,\r\n\t\t\tstyles\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction is_ref_selector(a: any, b: any) { // TODO add CSS node types\r\n\tif (!b) return false;\r\n\r\n\treturn (\r\n\t\ta.type === 'TypeSelector' &&\r\n\t\ta.name === 'ref' &&\r\n\t\tb.type === 'PseudoClassSelector'\r\n\t);\r\n}\r\n","// https://dev.w3.org/html5/html-author/charref\r\nexport default {\r\n\tCounterClockwiseContourIntegral: 8755,\r\n\tClockwiseContourIntegral: 8754,\r\n\tDoubleLongLeftRightArrow: 10234,\r\n\tDiacriticalDoubleAcute: 733,\r\n\tNotSquareSupersetEqual: 8931,\r\n\tCloseCurlyDoubleQuote: 8221,\r\n\tDoubleContourIntegral: 8751,\r\n\tFilledVerySmallSquare: 9642,\r\n\tNegativeVeryThinSpace: 8203,\r\n\tNotPrecedesSlantEqual: 8928,\r\n\tNotRightTriangleEqual: 8941,\r\n\tNotSucceedsSlantEqual: 8929,\r\n\tCapitalDifferentialD: 8517,\r\n\tDoubleLeftRightArrow: 8660,\r\n\tDoubleLongRightArrow: 10233,\r\n\tEmptyVerySmallSquare: 9643,\r\n\tNestedGreaterGreater: 8811,\r\n\tNotDoubleVerticalBar: 8742,\r\n\tNotLeftTriangleEqual: 8940,\r\n\tNotSquareSubsetEqual: 8930,\r\n\tOpenCurlyDoubleQuote: 8220,\r\n\tReverseUpEquilibrium: 10607,\r\n\tDoubleLongLeftArrow: 10232,\r\n\tDownLeftRightVector: 10576,\r\n\tLeftArrowRightArrow: 8646,\r\n\tNegativeMediumSpace: 8203,\r\n\tRightArrowLeftArrow: 8644,\r\n\tSquareSupersetEqual: 8850,\r\n\tleftrightsquigarrow: 8621,\r\n\tDownRightTeeVector: 10591,\r\n\tDownRightVectorBar: 10583,\r\n\tLongLeftRightArrow: 10231,\r\n\tLongleftrightarrow: 10234,\r\n\tNegativeThickSpace: 8203,\r\n\tPrecedesSlantEqual: 8828,\r\n\tReverseEquilibrium: 8651,\r\n\tRightDoubleBracket: 10215,\r\n\tRightDownTeeVector: 10589,\r\n\tRightDownVectorBar: 10581,\r\n\tRightTriangleEqual: 8885,\r\n\tSquareIntersection: 8851,\r\n\tSucceedsSlantEqual: 8829,\r\n\tblacktriangleright: 9656,\r\n\tlongleftrightarrow: 10231,\r\n\tDoubleUpDownArrow: 8661,\r\n\tDoubleVerticalBar: 8741,\r\n\tDownLeftTeeVector: 10590,\r\n\tDownLeftVectorBar: 10582,\r\n\tFilledSmallSquare: 9724,\r\n\tGreaterSlantEqual: 10878,\r\n\tLeftDoubleBracket: 10214,\r\n\tLeftDownTeeVector: 10593,\r\n\tLeftDownVectorBar: 10585,\r\n\tLeftTriangleEqual: 8884,\r\n\tNegativeThinSpace: 8203,\r\n\tNotReverseElement: 8716,\r\n\tNotTildeFullEqual: 8775,\r\n\tRightAngleBracket: 10217,\r\n\tRightUpDownVector: 10575,\r\n\tSquareSubsetEqual: 8849,\r\n\tVerticalSeparator: 10072,\r\n\tblacktriangledown: 9662,\r\n\tblacktriangleleft: 9666,\r\n\tleftrightharpoons: 8651,\r\n\trightleftharpoons: 8652,\r\n\ttwoheadrightarrow: 8608,\r\n\tDiacriticalAcute: 180,\r\n\tDiacriticalGrave: 96,\r\n\tDiacriticalTilde: 732,\r\n\tDoubleRightArrow: 8658,\r\n\tDownArrowUpArrow: 8693,\r\n\tEmptySmallSquare: 9723,\r\n\tGreaterEqualLess: 8923,\r\n\tGreaterFullEqual: 8807,\r\n\tLeftAngleBracket: 10216,\r\n\tLeftUpDownVector: 10577,\r\n\tLessEqualGreater: 8922,\r\n\tNonBreakingSpace: 160,\r\n\tNotRightTriangle: 8939,\r\n\tNotSupersetEqual: 8841,\r\n\tRightTriangleBar: 10704,\r\n\tRightUpTeeVector: 10588,\r\n\tRightUpVectorBar: 10580,\r\n\tUnderParenthesis: 9181,\r\n\tUpArrowDownArrow: 8645,\r\n\tcirclearrowright: 8635,\r\n\tdownharpoonright: 8642,\r\n\tntrianglerighteq: 8941,\r\n\trightharpoondown: 8641,\r\n\trightrightarrows: 8649,\r\n\ttwoheadleftarrow: 8606,\r\n\tvartriangleright: 8883,\r\n\tCloseCurlyQuote: 8217,\r\n\tContourIntegral: 8750,\r\n\tDoubleDownArrow: 8659,\r\n\tDoubleLeftArrow: 8656,\r\n\tDownRightVector: 8641,\r\n\tLeftRightVector: 10574,\r\n\tLeftTriangleBar: 10703,\r\n\tLeftUpTeeVector: 10592,\r\n\tLeftUpVectorBar: 10584,\r\n\tLowerRightArrow: 8600,\r\n\tNotGreaterEqual: 8817,\r\n\tNotGreaterTilde: 8821,\r\n\tNotLeftTriangle: 8938,\r\n\tOverParenthesis: 9180,\r\n\tRightDownVector: 8642,\r\n\tShortRightArrow: 8594,\r\n\tUpperRightArrow: 8599,\r\n\tbigtriangledown: 9661,\r\n\tcirclearrowleft: 8634,\r\n\tcurvearrowright: 8631,\r\n\tdownharpoonleft: 8643,\r\n\tleftharpoondown: 8637,\r\n\tleftrightarrows: 8646,\r\n\tnLeftrightarrow: 8654,\r\n\tnleftrightarrow: 8622,\r\n\tntrianglelefteq: 8940,\r\n\trightleftarrows: 8644,\r\n\trightsquigarrow: 8605,\r\n\trightthreetimes: 8908,\r\n\tstraightepsilon: 1013,\r\n\ttrianglerighteq: 8885,\r\n\tvartriangleleft: 8882,\r\n\tDiacriticalDot: 729,\r\n\tDoubleRightTee: 8872,\r\n\tDownLeftVector: 8637,\r\n\tGreaterGreater: 10914,\r\n\tHorizontalLine: 9472,\r\n\tInvisibleComma: 8291,\r\n\tInvisibleTimes: 8290,\r\n\tLeftDownVector: 8643,\r\n\tLeftRightArrow: 8596,\r\n\tLeftrightarrow: 8660,\r\n\tLessSlantEqual: 10877,\r\n\tLongRightArrow: 10230,\r\n\tLongrightarrow: 10233,\r\n\tLowerLeftArrow: 8601,\r\n\tNestedLessLess: 8810,\r\n\tNotGreaterLess: 8825,\r\n\tNotLessGreater: 8824,\r\n\tNotSubsetEqual: 8840,\r\n\tNotVerticalBar: 8740,\r\n\tOpenCurlyQuote: 8216,\r\n\tReverseElement: 8715,\r\n\tRightTeeVector: 10587,\r\n\tRightVectorBar: 10579,\r\n\tShortDownArrow: 8595,\r\n\tShortLeftArrow: 8592,\r\n\tSquareSuperset: 8848,\r\n\tTildeFullEqual: 8773,\r\n\tUpperLeftArrow: 8598,\r\n\tZeroWidthSpace: 8203,\r\n\tcurvearrowleft: 8630,\r\n\tdoublebarwedge: 8966,\r\n\tdowndownarrows: 8650,\r\n\thookrightarrow: 8618,\r\n\tleftleftarrows: 8647,\r\n\tleftrightarrow: 8596,\r\n\tleftthreetimes: 8907,\r\n\tlongrightarrow: 10230,\r\n\tlooparrowright: 8620,\r\n\tnshortparallel: 8742,\r\n\tntriangleright: 8939,\r\n\trightarrowtail: 8611,\r\n\trightharpoonup: 8640,\r\n\ttrianglelefteq: 8884,\r\n\tupharpoonright: 8638,\r\n\tApplyFunction: 8289,\r\n\tDifferentialD: 8518,\r\n\tDoubleLeftTee: 10980,\r\n\tDoubleUpArrow: 8657,\r\n\tLeftTeeVector: 10586,\r\n\tLeftVectorBar: 10578,\r\n\tLessFullEqual: 8806,\r\n\tLongLeftArrow: 10229,\r\n\tLongleftarrow: 10232,\r\n\tNotTildeEqual: 8772,\r\n\tNotTildeTilde: 8777,\r\n\tPoincareplane: 8460,\r\n\tPrecedesEqual: 10927,\r\n\tPrecedesTilde: 8830,\r\n\tRightArrowBar: 8677,\r\n\tRightTeeArrow: 8614,\r\n\tRightTriangle: 8883,\r\n\tRightUpVector: 8638,\r\n\tSucceedsEqual: 10928,\r\n\tSucceedsTilde: 8831,\r\n\tSupersetEqual: 8839,\r\n\tUpEquilibrium: 10606,\r\n\tVerticalTilde: 8768,\r\n\tVeryThinSpace: 8202,\r\n\tbigtriangleup: 9651,\r\n\tblacktriangle: 9652,\r\n\tdivideontimes: 8903,\r\n\tfallingdotseq: 8786,\r\n\thookleftarrow: 8617,\r\n\tleftarrowtail: 8610,\r\n\tleftharpoonup: 8636,\r\n\tlongleftarrow: 10229,\r\n\tlooparrowleft: 8619,\r\n\tmeasuredangle: 8737,\r\n\tntriangleleft: 8938,\r\n\tshortparallel: 8741,\r\n\tsmallsetminus: 8726,\r\n\ttriangleright: 9657,\r\n\tupharpoonleft: 8639,\r\n\tDownArrowBar: 10515,\r\n\tDownTeeArrow: 8615,\r\n\tExponentialE: 8519,\r\n\tGreaterEqual: 8805,\r\n\tGreaterTilde: 8819,\r\n\tHilbertSpace: 8459,\r\n\tHumpDownHump: 8782,\r\n\tIntersection: 8898,\r\n\tLeftArrowBar: 8676,\r\n\tLeftTeeArrow: 8612,\r\n\tLeftTriangle: 8882,\r\n\tLeftUpVector: 8639,\r\n\tNotCongruent: 8802,\r\n\tNotLessEqual: 8816,\r\n\tNotLessTilde: 8820,\r\n\tProportional: 8733,\r\n\tRightCeiling: 8969,\r\n\tRoundImplies: 10608,\r\n\tShortUpArrow: 8593,\r\n\tSquareSubset: 8847,\r\n\tUnderBracket: 9141,\r\n\tVerticalLine: 124,\r\n\tblacklozenge: 10731,\r\n\texponentiale: 8519,\r\n\trisingdotseq: 8787,\r\n\ttriangledown: 9663,\r\n\ttriangleleft: 9667,\r\n\tCircleMinus: 8854,\r\n\tCircleTimes: 8855,\r\n\tEquilibrium: 8652,\r\n\tGreaterLess: 8823,\r\n\tLeftCeiling: 8968,\r\n\tLessGreater: 8822,\r\n\tMediumSpace: 8287,\r\n\tNotPrecedes: 8832,\r\n\tNotSucceeds: 8833,\r\n\tOverBracket: 9140,\r\n\tRightVector: 8640,\r\n\tRrightarrow: 8667,\r\n\tRuleDelayed: 10740,\r\n\tSmallCircle: 8728,\r\n\tSquareUnion: 8852,\r\n\tSubsetEqual: 8838,\r\n\tUpDownArrow: 8597,\r\n\tUpdownarrow: 8661,\r\n\tVerticalBar: 8739,\r\n\tbackepsilon: 1014,\r\n\tblacksquare: 9642,\r\n\tcircledcirc: 8858,\r\n\tcircleddash: 8861,\r\n\tcurlyeqprec: 8926,\r\n\tcurlyeqsucc: 8927,\r\n\tdiamondsuit: 9830,\r\n\teqslantless: 10901,\r\n\texpectation: 8496,\r\n\tnRightarrow: 8655,\r\n\tnrightarrow: 8603,\r\n\tpreccurlyeq: 8828,\r\n\tprecnapprox: 10937,\r\n\tquaternions: 8461,\r\n\tstraightphi: 981,\r\n\tsucccurlyeq: 8829,\r\n\tsuccnapprox: 10938,\r\n\tthickapprox: 8776,\r\n\tupdownarrow: 8597,\r\n\tBernoullis: 8492,\r\n\tCirclePlus: 8853,\r\n\tEqualTilde: 8770,\r\n\tFouriertrf: 8497,\r\n\tImaginaryI: 8520,\r\n\tLaplacetrf: 8466,\r\n\tLeftVector: 8636,\r\n\tLleftarrow: 8666,\r\n\tNotElement: 8713,\r\n\tNotGreater: 8815,\r\n\tProportion: 8759,\r\n\tRightArrow: 8594,\r\n\tRightFloor: 8971,\r\n\tRightarrow: 8658,\r\n\tTildeEqual: 8771,\r\n\tTildeTilde: 8776,\r\n\tUnderBrace: 9183,\r\n\tUpArrowBar: 10514,\r\n\tUpTeeArrow: 8613,\r\n\tcircledast: 8859,\r\n\tcomplement: 8705,\r\n\tcurlywedge: 8911,\r\n\teqslantgtr: 10902,\r\n\tgtreqqless: 10892,\r\n\tlessapprox: 10885,\r\n\tlesseqqgtr: 10891,\r\n\tlmoustache: 9136,\r\n\tlongmapsto: 10236,\r\n\tmapstodown: 8615,\r\n\tmapstoleft: 8612,\r\n\tnLeftarrow: 8653,\r\n\tnleftarrow: 8602,\r\n\tprecapprox: 10935,\r\n\trightarrow: 8594,\r\n\trmoustache: 9137,\r\n\tsqsubseteq: 8849,\r\n\tsqsupseteq: 8850,\r\n\tsubsetneqq: 10955,\r\n\tsuccapprox: 10936,\r\n\tsupsetneqq: 10956,\r\n\tupuparrows: 8648,\r\n\tvarepsilon: 949,\r\n\tvarnothing: 8709,\r\n\tBackslash: 8726,\r\n\tCenterDot: 183,\r\n\tCircleDot: 8857,\r\n\tCongruent: 8801,\r\n\tCoproduct: 8720,\r\n\tDoubleDot: 168,\r\n\tDownArrow: 8595,\r\n\tDownBreve: 785,\r\n\tDownarrow: 8659,\r\n\tHumpEqual: 8783,\r\n\tLeftArrow: 8592,\r\n\tLeftFloor: 8970,\r\n\tLeftarrow: 8656,\r\n\tLessTilde: 8818,\r\n\tMellintrf: 8499,\r\n\tMinusPlus: 8723,\r\n\tNotCupCap: 8813,\r\n\tNotExists: 8708,\r\n\tOverBrace: 9182,\r\n\tPlusMinus: 177,\r\n\tTherefore: 8756,\r\n\tThinSpace: 8201,\r\n\tTripleDot: 8411,\r\n\tUnionPlus: 8846,\r\n\tbackprime: 8245,\r\n\tbacksimeq: 8909,\r\n\tbigotimes: 10754,\r\n\tcenterdot: 183,\r\n\tcheckmark: 10003,\r\n\tcomplexes: 8450,\r\n\tdotsquare: 8865,\r\n\tdownarrow: 8595,\r\n\tgtrapprox: 10886,\r\n\tgtreqless: 8923,\r\n\theartsuit: 9829,\r\n\tleftarrow: 8592,\r\n\tlesseqgtr: 8922,\r\n\tnparallel: 8742,\r\n\tnshortmid: 8740,\r\n\tnsubseteq: 8840,\r\n\tnsupseteq: 8841,\r\n\tpitchfork: 8916,\r\n\trationals: 8474,\r\n\tspadesuit: 9824,\r\n\tsubseteqq: 10949,\r\n\tsubsetneq: 8842,\r\n\tsupseteqq: 10950,\r\n\tsupsetneq: 8843,\r\n\ttherefore: 8756,\r\n\ttriangleq: 8796,\r\n\tvarpropto: 8733,\r\n\tDDotrahd: 10513,\r\n\tDotEqual: 8784,\r\n\tIntegral: 8747,\r\n\tLessLess: 10913,\r\n\tNotEqual: 8800,\r\n\tNotTilde: 8769,\r\n\tPartialD: 8706,\r\n\tPrecedes: 8826,\r\n\tRightTee: 8866,\r\n\tSucceeds: 8827,\r\n\tSuchThat: 8715,\r\n\tSuperset: 8835,\r\n\tUarrocir: 10569,\r\n\tUnderBar: 818,\r\n\tandslope: 10840,\r\n\tangmsdaa: 10664,\r\n\tangmsdab: 10665,\r\n\tangmsdac: 10666,\r\n\tangmsdad: 10667,\r\n\tangmsdae: 10668,\r\n\tangmsdaf: 10669,\r\n\tangmsdag: 10670,\r\n\tangmsdah: 10671,\r\n\tangrtvbd: 10653,\r\n\tapproxeq: 8778,\r\n\tawconint: 8755,\r\n\tbackcong: 8780,\r\n\tbarwedge: 8965,\r\n\tbbrktbrk: 9142,\r\n\tbigoplus: 10753,\r\n\tbigsqcup: 10758,\r\n\tbiguplus: 10756,\r\n\tbigwedge: 8896,\r\n\tboxminus: 8863,\r\n\tboxtimes: 8864,\r\n\tcapbrcup: 10825,\r\n\tcircledR: 174,\r\n\tcircledS: 9416,\r\n\tcirfnint: 10768,\r\n\tclubsuit: 9827,\r\n\tcupbrcap: 10824,\r\n\tcurlyvee: 8910,\r\n\tcwconint: 8754,\r\n\tdoteqdot: 8785,\r\n\tdotminus: 8760,\r\n\tdrbkarow: 10512,\r\n\tdzigrarr: 10239,\r\n\telinters: 9191,\r\n\temptyset: 8709,\r\n\teqvparsl: 10725,\r\n\tfpartint: 10765,\r\n\tgeqslant: 10878,\r\n\tgesdotol: 10884,\r\n\tgnapprox: 10890,\r\n\thksearow: 10533,\r\n\thkswarow: 10534,\r\n\timagline: 8464,\r\n\timagpart: 8465,\r\n\tinfintie: 10717,\r\n\tintegers: 8484,\r\n\tintercal: 8890,\r\n\tintlarhk: 10775,\r\n\tlaemptyv: 10676,\r\n\tldrushar: 10571,\r\n\tleqslant: 10877,\r\n\tlesdotor: 10883,\r\n\tllcorner: 8990,\r\n\tlnapprox: 10889,\r\n\tlrcorner: 8991,\r\n\tlurdshar: 10570,\r\n\tmapstoup: 8613,\r\n\tmultimap: 8888,\r\n\tnaturals: 8469,\r\n\totimesas: 10806,\r\n\tparallel: 8741,\r\n\tplusacir: 10787,\r\n\tpointint: 10773,\r\n\tprecneqq: 10933,\r\n\tprecnsim: 8936,\r\n\tprofalar: 9006,\r\n\tprofline: 8978,\r\n\tprofsurf: 8979,\r\n\traemptyv: 10675,\r\n\trealpart: 8476,\r\n\trppolint: 10770,\r\n\trtriltri: 10702,\r\n\tscpolint: 10771,\r\n\tsetminus: 8726,\r\n\tshortmid: 8739,\r\n\tsmeparsl: 10724,\r\n\tsqsubset: 8847,\r\n\tsqsupset: 8848,\r\n\tsubseteq: 8838,\r\n\tsuccneqq: 10934,\r\n\tsuccnsim: 8937,\r\n\tsupseteq: 8839,\r\n\tthetasym: 977,\r\n\tthicksim: 8764,\r\n\ttimesbar: 10801,\r\n\ttriangle: 9653,\r\n\ttriminus: 10810,\r\n\ttrpezium: 9186,\r\n\tulcorner: 8988,\r\n\turcorner: 8989,\r\n\tvarkappa: 1008,\r\n\tvarsigma: 962,\r\n\tvartheta: 977,\r\n\tBecause: 8757,\r\n\tCayleys: 8493,\r\n\tCconint: 8752,\r\n\tCedilla: 184,\r\n\tDiamond: 8900,\r\n\tDownTee: 8868,\r\n\tElement: 8712,\r\n\tEpsilon: 917,\r\n\tImplies: 8658,\r\n\tLeftTee: 8867,\r\n\tNewLine: 10,\r\n\tNoBreak: 8288,\r\n\tNotLess: 8814,\r\n\tOmicron: 927,\r\n\tOverBar: 175,\r\n\tProduct: 8719,\r\n\tUpArrow: 8593,\r\n\tUparrow: 8657,\r\n\tUpsilon: 933,\r\n\talefsym: 8501,\r\n\tangrtvb: 8894,\r\n\tangzarr: 9084,\r\n\tasympeq: 8781,\r\n\tbacksim: 8765,\r\n\tbecause: 8757,\r\n\tbemptyv: 10672,\r\n\tbetween: 8812,\r\n\tbigcirc: 9711,\r\n\tbigodot: 10752,\r\n\tbigstar: 9733,\r\n\tboxplus: 8862,\r\n\tccupssm: 10832,\r\n\tcemptyv: 10674,\r\n\tcirscir: 10690,\r\n\tcoloneq: 8788,\r\n\tcongdot: 10861,\r\n\tcudarrl: 10552,\r\n\tcudarrr: 10549,\r\n\tcularrp: 10557,\r\n\tcurarrm: 10556,\r\n\tdbkarow: 10511,\r\n\tddagger: 8225,\r\n\tddotseq: 10871,\r\n\tdemptyv: 10673,\r\n\tdiamond: 8900,\r\n\tdigamma: 989,\r\n\tdotplus: 8724,\r\n\tdwangle: 10662,\r\n\tepsilon: 949,\r\n\teqcolon: 8789,\r\n\tequivDD: 10872,\r\n\tgesdoto: 10882,\r\n\tgtquest: 10876,\r\n\tgtrless: 8823,\r\n\tharrcir: 10568,\r\n\tintprod: 10812,\r\n\tisindot: 8949,\r\n\tlarrbfs: 10527,\r\n\tlarrsim: 10611,\r\n\tlbrksld: 10639,\r\n\tlbrkslu: 10637,\r\n\tldrdhar: 10599,\r\n\tlesdoto: 10881,\r\n\tlessdot: 8918,\r\n\tlessgtr: 8822,\r\n\tlesssim: 8818,\r\n\tlotimes: 10804,\r\n\tlozenge: 9674,\r\n\tltquest: 10875,\r\n\tluruhar: 10598,\r\n\tmaltese: 10016,\r\n\tminusdu: 10794,\r\n\tnapprox: 8777,\r\n\tnatural: 9838,\r\n\tnearrow: 8599,\r\n\tnexists: 8708,\r\n\tnotinva: 8713,\r\n\tnotinvb: 8951,\r\n\tnotinvc: 8950,\r\n\tnotniva: 8716,\r\n\tnotnivb: 8958,\r\n\tnotnivc: 8957,\r\n\tnpolint: 10772,\r\n\tnsqsube: 8930,\r\n\tnsqsupe: 8931,\r\n\tnvinfin: 10718,\r\n\tnwarrow: 8598,\r\n\tolcross: 10683,\r\n\tomicron: 959,\r\n\torderof: 8500,\r\n\torslope: 10839,\r\n\tpertenk: 8241,\r\n\tplanckh: 8462,\r\n\tpluscir: 10786,\r\n\tplussim: 10790,\r\n\tplustwo: 10791,\r\n\tprecsim: 8830,\r\n\tquatint: 10774,\r\n\tquesteq: 8799,\r\n\trarrbfs: 10528,\r\n\trarrsim: 10612,\r\n\trbrksld: 10638,\r\n\trbrkslu: 10640,\r\n\trdldhar: 10601,\r\n\trealine: 8475,\r\n\trotimes: 10805,\r\n\truluhar: 10600,\r\n\tsearrow: 8600,\r\n\tsimplus: 10788,\r\n\tsimrarr: 10610,\r\n\tsubedot: 10947,\r\n\tsubmult: 10945,\r\n\tsubplus: 10943,\r\n\tsubrarr: 10617,\r\n\tsuccsim: 8831,\r\n\tsupdsub: 10968,\r\n\tsupedot: 10948,\r\n\tsuphsub: 10967,\r\n\tsuplarr: 10619,\r\n\tsupmult: 10946,\r\n\tsupplus: 10944,\r\n\tswarrow: 8601,\r\n\ttopfork: 10970,\r\n\ttriplus: 10809,\r\n\ttritime: 10811,\r\n\tuparrow: 8593,\r\n\tupsilon: 965,\r\n\tuwangle: 10663,\r\n\tvzigzag: 10650,\r\n\tzigrarr: 8669,\r\n\tAacute: 193,\r\n\tAbreve: 258,\r\n\tAgrave: 192,\r\n\tAssign: 8788,\r\n\tAtilde: 195,\r\n\tBarwed: 8966,\r\n\tBumpeq: 8782,\r\n\tCacute: 262,\r\n\tCcaron: 268,\r\n\tCcedil: 199,\r\n\tColone: 10868,\r\n\tConint: 8751,\r\n\tCupCap: 8781,\r\n\tDagger: 8225,\r\n\tDcaron: 270,\r\n\tDotDot: 8412,\r\n\tDstrok: 272,\r\n\tEacute: 201,\r\n\tEcaron: 282,\r\n\tEgrave: 200,\r\n\tExists: 8707,\r\n\tForAll: 8704,\r\n\tGammad: 988,\r\n\tGbreve: 286,\r\n\tGcedil: 290,\r\n\tHARDcy: 1066,\r\n\tHstrok: 294,\r\n\tIacute: 205,\r\n\tIgrave: 204,\r\n\tItilde: 296,\r\n\tJsercy: 1032,\r\n\tKcedil: 310,\r\n\tLacute: 313,\r\n\tLambda: 923,\r\n\tLcaron: 317,\r\n\tLcedil: 315,\r\n\tLmidot: 319,\r\n\tLstrok: 321,\r\n\tNacute: 323,\r\n\tNcaron: 327,\r\n\tNcedil: 325,\r\n\tNtilde: 209,\r\n\tOacute: 211,\r\n\tOdblac: 336,\r\n\tOgrave: 210,\r\n\tOslash: 216,\r\n\tOtilde: 213,\r\n\tOtimes: 10807,\r\n\tRacute: 340,\r\n\tRarrtl: 10518,\r\n\tRcaron: 344,\r\n\tRcedil: 342,\r\n\tSHCHcy: 1065,\r\n\tSOFTcy: 1068,\r\n\tSacute: 346,\r\n\tScaron: 352,\r\n\tScedil: 350,\r\n\tSquare: 9633,\r\n\tSubset: 8912,\r\n\tSupset: 8913,\r\n\tTcaron: 356,\r\n\tTcedil: 354,\r\n\tTstrok: 358,\r\n\tUacute: 218,\r\n\tUbreve: 364,\r\n\tUdblac: 368,\r\n\tUgrave: 217,\r\n\tUtilde: 360,\r\n\tVdashl: 10982,\r\n\tVerbar: 8214,\r\n\tVvdash: 8874,\r\n\tYacute: 221,\r\n\tZacute: 377,\r\n\tZcaron: 381,\r\n\taacute: 225,\r\n\tabreve: 259,\r\n\tagrave: 224,\r\n\tandand: 10837,\r\n\tangmsd: 8737,\r\n\tangsph: 8738,\r\n\tapacir: 10863,\r\n\tapprox: 8776,\r\n\tatilde: 227,\r\n\tbarvee: 8893,\r\n\tbarwed: 8965,\r\n\tbecaus: 8757,\r\n\tbernou: 8492,\r\n\tbigcap: 8898,\r\n\tbigcup: 8899,\r\n\tbigvee: 8897,\r\n\tbkarow: 10509,\r\n\tbottom: 8869,\r\n\tbowtie: 8904,\r\n\tboxbox: 10697,\r\n\tbprime: 8245,\r\n\tbrvbar: 166,\r\n\tbullet: 8226,\r\n\tbumpeq: 8783,\r\n\tcacute: 263,\r\n\tcapand: 10820,\r\n\tcapcap: 10827,\r\n\tcapcup: 10823,\r\n\tcapdot: 10816,\r\n\tccaron: 269,\r\n\tccedil: 231,\r\n\tcirceq: 8791,\r\n\tcirmid: 10991,\r\n\tcolone: 8788,\r\n\tcommat: 64,\r\n\tcompfn: 8728,\r\n\tconint: 8750,\r\n\tcoprod: 8720,\r\n\tcopysr: 8471,\r\n\tcularr: 8630,\r\n\tcupcap: 10822,\r\n\tcupcup: 10826,\r\n\tcupdot: 8845,\r\n\tcurarr: 8631,\r\n\tcurren: 164,\r\n\tcylcty: 9005,\r\n\tdagger: 8224,\r\n\tdaleth: 8504,\r\n\tdcaron: 271,\r\n\tdfisht: 10623,\r\n\tdivide: 247,\r\n\tdivonx: 8903,\r\n\tdlcorn: 8990,\r\n\tdlcrop: 8973,\r\n\tdollar: 36,\r\n\tdrcorn: 8991,\r\n\tdrcrop: 8972,\r\n\tdstrok: 273,\r\n\teacute: 233,\r\n\teaster: 10862,\r\n\tecaron: 283,\r\n\tecolon: 8789,\r\n\tegrave: 232,\r\n\tegsdot: 10904,\r\n\telsdot: 10903,\r\n\temptyv: 8709,\r\n\temsp13: 8196,\r\n\temsp14: 8197,\r\n\teparsl: 10723,\r\n\teqcirc: 8790,\r\n\tequals: 61,\r\n\tequest: 8799,\r\n\tfemale: 9792,\r\n\tffilig: 64259,\r\n\tffllig: 64260,\r\n\tforall: 8704,\r\n\tfrac12: 189,\r\n\tfrac13: 8531,\r\n\tfrac14: 188,\r\n\tfrac15: 8533,\r\n\tfrac16: 8537,\r\n\tfrac18: 8539,\r\n\tfrac23: 8532,\r\n\tfrac25: 8534,\r\n\tfrac34: 190,\r\n\tfrac35: 8535,\r\n\tfrac38: 8540,\r\n\tfrac45: 8536,\r\n\tfrac56: 8538,\r\n\tfrac58: 8541,\r\n\tfrac78: 8542,\r\n\tgacute: 501,\r\n\tgammad: 989,\r\n\tgbreve: 287,\r\n\tgesdot: 10880,\r\n\tgesles: 10900,\r\n\tgtlPar: 10645,\r\n\tgtrarr: 10616,\r\n\tgtrdot: 8919,\r\n\tgtrsim: 8819,\r\n\thairsp: 8202,\r\n\thamilt: 8459,\r\n\thardcy: 1098,\r\n\thearts: 9829,\r\n\thellip: 8230,\r\n\thercon: 8889,\r\n\thomtht: 8763,\r\n\thorbar: 8213,\r\n\thslash: 8463,\r\n\thstrok: 295,\r\n\thybull: 8259,\r\n\thyphen: 8208,\r\n\tiacute: 237,\r\n\tigrave: 236,\r\n\tiiiint: 10764,\r\n\tiinfin: 10716,\r\n\tincare: 8453,\r\n\tinodot: 305,\r\n\tintcal: 8890,\r\n\tiquest: 191,\r\n\tisinsv: 8947,\r\n\titilde: 297,\r\n\tjsercy: 1112,\r\n\tkappav: 1008,\r\n\tkcedil: 311,\r\n\tkgreen: 312,\r\n\tlAtail: 10523,\r\n\tlacute: 314,\r\n\tlagran: 8466,\r\n\tlambda: 955,\r\n\tlangle: 10216,\r\n\tlarrfs: 10525,\r\n\tlarrhk: 8617,\r\n\tlarrlp: 8619,\r\n\tlarrpl: 10553,\r\n\tlarrtl: 8610,\r\n\tlatail: 10521,\r\n\tlbrace: 123,\r\n\tlbrack: 91,\r\n\tlcaron: 318,\r\n\tlcedil: 316,\r\n\tldquor: 8222,\r\n\tlesdot: 10879,\r\n\tlesges: 10899,\r\n\tlfisht: 10620,\r\n\tlfloor: 8970,\r\n\tlharul: 10602,\r\n\tllhard: 10603,\r\n\tlmidot: 320,\r\n\tlmoust: 9136,\r\n\tloplus: 10797,\r\n\tlowast: 8727,\r\n\tlowbar: 95,\r\n\tlparlt: 10643,\r\n\tlrhard: 10605,\r\n\tlsaquo: 8249,\r\n\tlsquor: 8218,\r\n\tlstrok: 322,\r\n\tlthree: 8907,\r\n\tltimes: 8905,\r\n\tltlarr: 10614,\r\n\tltrPar: 10646,\r\n\tmapsto: 8614,\r\n\tmarker: 9646,\r\n\tmcomma: 10793,\r\n\tmidast: 42,\r\n\tmidcir: 10992,\r\n\tmiddot: 183,\r\n\tminusb: 8863,\r\n\tminusd: 8760,\r\n\tmnplus: 8723,\r\n\tmodels: 8871,\r\n\tmstpos: 8766,\r\n\tnVDash: 8879,\r\n\tnVdash: 8878,\r\n\tnacute: 324,\r\n\tncaron: 328,\r\n\tncedil: 326,\r\n\tnearhk: 10532,\r\n\tnequiv: 8802,\r\n\tnesear: 10536,\r\n\tnexist: 8708,\r\n\tnltrie: 8940,\r\n\tnprcue: 8928,\r\n\tnrtrie: 8941,\r\n\tnsccue: 8929,\r\n\tnsimeq: 8772,\r\n\tntilde: 241,\r\n\tnumero: 8470,\r\n\tnvDash: 8877,\r\n\tnvHarr: 10500,\r\n\tnvdash: 8876,\r\n\tnvlArr: 10498,\r\n\tnvrArr: 10499,\r\n\tnwarhk: 10531,\r\n\tnwnear: 10535,\r\n\toacute: 243,\r\n\todblac: 337,\r\n\todsold: 10684,\r\n\tograve: 242,\r\n\tominus: 8854,\r\n\torigof: 8886,\r\n\toslash: 248,\r\n\totilde: 245,\r\n\totimes: 8855,\r\n\tparsim: 10995,\r\n\tpercnt: 37,\r\n\tperiod: 46,\r\n\tpermil: 8240,\r\n\tphmmat: 8499,\r\n\tplanck: 8463,\r\n\tplankv: 8463,\r\n\tplusdo: 8724,\r\n\tplusdu: 10789,\r\n\tplusmn: 177,\r\n\tpreceq: 10927,\r\n\tprimes: 8473,\r\n\tprnsim: 8936,\r\n\tpropto: 8733,\r\n\tprurel: 8880,\r\n\tpuncsp: 8200,\r\n\tqprime: 8279,\r\n\trAtail: 10524,\r\n\tracute: 341,\r\n\trangle: 10217,\r\n\trarrap: 10613,\r\n\trarrfs: 10526,\r\n\trarrhk: 8618,\r\n\trarrlp: 8620,\r\n\trarrpl: 10565,\r\n\trarrtl: 8611,\r\n\tratail: 10522,\r\n\trbrace: 125,\r\n\trbrack: 93,\r\n\trcaron: 345,\r\n\trcedil: 343,\r\n\trdquor: 8221,\r\n\trfisht: 10621,\r\n\trfloor: 8971,\r\n\trharul: 10604,\r\n\trmoust: 9137,\r\n\troplus: 10798,\r\n\trpargt: 10644,\r\n\trsaquo: 8250,\r\n\trsquor: 8217,\r\n\trthree: 8908,\r\n\trtimes: 8906,\r\n\tsacute: 347,\r\n\tscaron: 353,\r\n\tscedil: 351,\r\n\tscnsim: 8937,\r\n\tsearhk: 10533,\r\n\tseswar: 10537,\r\n\tsfrown: 8994,\r\n\tshchcy: 1097,\r\n\tsigmaf: 962,\r\n\tsigmav: 962,\r\n\tsimdot: 10858,\r\n\tsmashp: 10803,\r\n\tsoftcy: 1100,\r\n\tsolbar: 9023,\r\n\tspades: 9824,\r\n\tsqsube: 8849,\r\n\tsqsupe: 8850,\r\n\tsquare: 9633,\r\n\tsquarf: 9642,\r\n\tssetmn: 8726,\r\n\tssmile: 8995,\r\n\tsstarf: 8902,\r\n\tsubdot: 10941,\r\n\tsubset: 8834,\r\n\tsubsim: 10951,\r\n\tsubsub: 10965,\r\n\tsubsup: 10963,\r\n\tsucceq: 10928,\r\n\tsupdot: 10942,\r\n\tsupset: 8835,\r\n\tsupsim: 10952,\r\n\tsupsub: 10964,\r\n\tsupsup: 10966,\r\n\tswarhk: 10534,\r\n\tswnwar: 10538,\r\n\ttarget: 8982,\r\n\ttcaron: 357,\r\n\ttcedil: 355,\r\n\ttelrec: 8981,\r\n\tthere4: 8756,\r\n\tthetav: 977,\r\n\tthinsp: 8201,\r\n\tthksim: 8764,\r\n\ttimesb: 8864,\r\n\ttimesd: 10800,\r\n\ttopbot: 9014,\r\n\ttopcir: 10993,\r\n\ttprime: 8244,\r\n\ttridot: 9708,\r\n\ttstrok: 359,\r\n\tuacute: 250,\r\n\tubreve: 365,\r\n\tudblac: 369,\r\n\tufisht: 10622,\r\n\tugrave: 249,\r\n\tulcorn: 8988,\r\n\tulcrop: 8975,\r\n\turcorn: 8989,\r\n\turcrop: 8974,\r\n\tutilde: 361,\r\n\tvangrt: 10652,\r\n\tvarphi: 966,\r\n\tvarrho: 1009,\r\n\tveebar: 8891,\r\n\tvellip: 8942,\r\n\tverbar: 124,\r\n\twedbar: 10847,\r\n\twedgeq: 8793,\r\n\tweierp: 8472,\r\n\twreath: 8768,\r\n\txoplus: 10753,\r\n\txotime: 10754,\r\n\txsqcup: 10758,\r\n\txuplus: 10756,\r\n\txwedge: 8896,\r\n\tyacute: 253,\r\n\tzacute: 378,\r\n\tzcaron: 382,\r\n\tzeetrf: 8488,\r\n\tAElig: 198,\r\n\tAcirc: 194,\r\n\tAlpha: 913,\r\n\tAmacr: 256,\r\n\tAogon: 260,\r\n\tAring: 197,\r\n\tBreve: 728,\r\n\tCcirc: 264,\r\n\tColon: 8759,\r\n\tCross: 10799,\r\n\tDashv: 10980,\r\n\tDelta: 916,\r\n\tEcirc: 202,\r\n\tEmacr: 274,\r\n\tEogon: 280,\r\n\tEqual: 10869,\r\n\tGamma: 915,\r\n\tGcirc: 284,\r\n\tHacek: 711,\r\n\tHcirc: 292,\r\n\tIJlig: 306,\r\n\tIcirc: 206,\r\n\tImacr: 298,\r\n\tIogon: 302,\r\n\tIukcy: 1030,\r\n\tJcirc: 308,\r\n\tJukcy: 1028,\r\n\tKappa: 922,\r\n\tOElig: 338,\r\n\tOcirc: 212,\r\n\tOmacr: 332,\r\n\tOmega: 937,\r\n\tPrime: 8243,\r\n\tRBarr: 10512,\r\n\tScirc: 348,\r\n\tSigma: 931,\r\n\tTHORN: 222,\r\n\tTRADE: 8482,\r\n\tTSHcy: 1035,\r\n\tTheta: 920,\r\n\tTilde: 8764,\r\n\tUbrcy: 1038,\r\n\tUcirc: 219,\r\n\tUmacr: 362,\r\n\tUnion: 8899,\r\n\tUogon: 370,\r\n\tUpTee: 8869,\r\n\tUring: 366,\r\n\tVDash: 8875,\r\n\tVdash: 8873,\r\n\tWcirc: 372,\r\n\tWedge: 8896,\r\n\tYcirc: 374,\r\n\tacirc: 226,\r\n\tacute: 180,\r\n\taelig: 230,\r\n\taleph: 8501,\r\n\talpha: 945,\r\n\tamacr: 257,\r\n\tamalg: 10815,\r\n\tangle: 8736,\r\n\tangrt: 8735,\r\n\tangst: 8491,\r\n\taogon: 261,\r\n\taring: 229,\r\n\tasymp: 8776,\r\n\tawint: 10769,\r\n\tbcong: 8780,\r\n\tbdquo: 8222,\r\n\tbepsi: 1014,\r\n\tblank: 9251,\r\n\tblk12: 9618,\r\n\tblk14: 9617,\r\n\tblk34: 9619,\r\n\tblock: 9608,\r\n\tboxDL: 9559,\r\n\tboxDR: 9556,\r\n\tboxDl: 9558,\r\n\tboxDr: 9555,\r\n\tboxHD: 9574,\r\n\tboxHU: 9577,\r\n\tboxHd: 9572,\r\n\tboxHu: 9575,\r\n\tboxUL: 9565,\r\n\tboxUR: 9562,\r\n\tboxUl: 9564,\r\n\tboxUr: 9561,\r\n\tboxVH: 9580,\r\n\tboxVL: 9571,\r\n\tboxVR: 9568,\r\n\tboxVh: 9579,\r\n\tboxVl: 9570,\r\n\tboxVr: 9567,\r\n\tboxdL: 9557,\r\n\tboxdR: 9554,\r\n\tboxdl: 9488,\r\n\tboxdr: 9484,\r\n\tboxhD: 9573,\r\n\tboxhU: 9576,\r\n\tboxhd: 9516,\r\n\tboxhu: 9524,\r\n\tboxuL: 9563,\r\n\tboxuR: 9560,\r\n\tboxul: 9496,\r\n\tboxur: 9492,\r\n\tboxvH: 9578,\r\n\tboxvL: 9569,\r\n\tboxvR: 9566,\r\n\tboxvh: 9532,\r\n\tboxvl: 9508,\r\n\tboxvr: 9500,\r\n\tbreve: 728,\r\n\tbsemi: 8271,\r\n\tbsime: 8909,\r\n\tbsolb: 10693,\r\n\tbumpE: 10926,\r\n\tbumpe: 8783,\r\n\tcaret: 8257,\r\n\tcaron: 711,\r\n\tccaps: 10829,\r\n\tccirc: 265,\r\n\tccups: 10828,\r\n\tcedil: 184,\r\n\tcheck: 10003,\r\n\tclubs: 9827,\r\n\tcolon: 58,\r\n\tcomma: 44,\r\n\tcrarr: 8629,\r\n\tcross: 10007,\r\n\tcsube: 10961,\r\n\tcsupe: 10962,\r\n\tctdot: 8943,\r\n\tcuepr: 8926,\r\n\tcuesc: 8927,\r\n\tcupor: 10821,\r\n\tcuvee: 8910,\r\n\tcuwed: 8911,\r\n\tcwint: 8753,\r\n\tdashv: 8867,\r\n\tdblac: 733,\r\n\tddarr: 8650,\r\n\tdelta: 948,\r\n\tdharl: 8643,\r\n\tdharr: 8642,\r\n\tdiams: 9830,\r\n\tdisin: 8946,\r\n\tdoteq: 8784,\r\n\tdtdot: 8945,\r\n\tdtrif: 9662,\r\n\tduarr: 8693,\r\n\tduhar: 10607,\r\n\teDDot: 10871,\r\n\tecirc: 234,\r\n\tefDot: 8786,\r\n\temacr: 275,\r\n\tempty: 8709,\r\n\teogon: 281,\r\n\teplus: 10865,\r\n\tepsiv: 949,\r\n\teqsim: 8770,\r\n\tequiv: 8801,\r\n\terDot: 8787,\r\n\terarr: 10609,\r\n\tesdot: 8784,\r\n\texist: 8707,\r\n\tfflig: 64256,\r\n\tfilig: 64257,\r\n\tfllig: 64258,\r\n\tfltns: 9649,\r\n\tforkv: 10969,\r\n\tfrasl: 8260,\r\n\tfrown: 8994,\r\n\tgamma: 947,\r\n\tgcirc: 285,\r\n\tgescc: 10921,\r\n\tgimel: 8503,\r\n\tgneqq: 8809,\r\n\tgnsim: 8935,\r\n\tgrave: 96,\r\n\tgsime: 10894,\r\n\tgsiml: 10896,\r\n\tgtcir: 10874,\r\n\tgtdot: 8919,\r\n\tharrw: 8621,\r\n\thcirc: 293,\r\n\thoarr: 8703,\r\n\ticirc: 238,\r\n\tiexcl: 161,\r\n\tiiint: 8749,\r\n\tiiota: 8489,\r\n\tijlig: 307,\r\n\timacr: 299,\r\n\timage: 8465,\r\n\timath: 305,\r\n\timped: 437,\r\n\tinfin: 8734,\r\n\tiogon: 303,\r\n\tiprod: 10812,\r\n\tisinE: 8953,\r\n\tisins: 8948,\r\n\tisinv: 8712,\r\n\tiukcy: 1110,\r\n\tjcirc: 309,\r\n\tjmath: 567,\r\n\tjukcy: 1108,\r\n\tkappa: 954,\r\n\tlAarr: 8666,\r\n\tlBarr: 10510,\r\n\tlangd: 10641,\r\n\tlaquo: 171,\r\n\tlarrb: 8676,\r\n\tlbarr: 10508,\r\n\tlbbrk: 10098,\r\n\tlbrke: 10635,\r\n\tlceil: 8968,\r\n\tldquo: 8220,\r\n\tlescc: 10920,\r\n\tlhard: 8637,\r\n\tlharu: 8636,\r\n\tlhblk: 9604,\r\n\tllarr: 8647,\r\n\tlltri: 9722,\r\n\tlneqq: 8808,\r\n\tlnsim: 8934,\r\n\tloang: 10220,\r\n\tloarr: 8701,\r\n\tlobrk: 10214,\r\n\tlopar: 10629,\r\n\tlrarr: 8646,\r\n\tlrhar: 8651,\r\n\tlrtri: 8895,\r\n\tlsime: 10893,\r\n\tlsimg: 10895,\r\n\tlsquo: 8216,\r\n\tltcir: 10873,\r\n\tltdot: 8918,\r\n\tltrie: 8884,\r\n\tltrif: 9666,\r\n\tmDDot: 8762,\r\n\tmdash: 8212,\r\n\tmicro: 181,\r\n\tminus: 8722,\r\n\tmumap: 8888,\r\n\tnabla: 8711,\r\n\tnapos: 329,\r\n\tnatur: 9838,\r\n\tncong: 8775,\r\n\tndash: 8211,\r\n\tneArr: 8663,\r\n\tnearr: 8599,\r\n\tngsim: 8821,\r\n\tnhArr: 8654,\r\n\tnharr: 8622,\r\n\tnhpar: 10994,\r\n\tnlArr: 8653,\r\n\tnlarr: 8602,\r\n\tnless: 8814,\r\n\tnlsim: 8820,\r\n\tnltri: 8938,\r\n\tnotin: 8713,\r\n\tnotni: 8716,\r\n\tnprec: 8832,\r\n\tnrArr: 8655,\r\n\tnrarr: 8603,\r\n\tnrtri: 8939,\r\n\tnsime: 8772,\r\n\tnsmid: 8740,\r\n\tnspar: 8742,\r\n\tnsube: 8840,\r\n\tnsucc: 8833,\r\n\tnsupe: 8841,\r\n\tnumsp: 8199,\r\n\tnwArr: 8662,\r\n\tnwarr: 8598,\r\n\tocirc: 244,\r\n\todash: 8861,\r\n\toelig: 339,\r\n\tofcir: 10687,\r\n\tohbar: 10677,\r\n\tolarr: 8634,\r\n\tolcir: 10686,\r\n\toline: 8254,\r\n\tomacr: 333,\r\n\tomega: 969,\r\n\toperp: 10681,\r\n\toplus: 8853,\r\n\torarr: 8635,\r\n\torder: 8500,\r\n\tovbar: 9021,\r\n\tparsl: 11005,\r\n\tphone: 9742,\r\n\tplusb: 8862,\r\n\tpluse: 10866,\r\n\tpound: 163,\r\n\tprcue: 8828,\r\n\tprime: 8242,\r\n\tprnap: 10937,\r\n\tprsim: 8830,\r\n\tquest: 63,\r\n\trAarr: 8667,\r\n\trBarr: 10511,\r\n\tradic: 8730,\r\n\trangd: 10642,\r\n\trange: 10661,\r\n\traquo: 187,\r\n\trarrb: 8677,\r\n\trarrc: 10547,\r\n\trarrw: 8605,\r\n\tratio: 8758,\r\n\trbarr: 10509,\r\n\trbbrk: 10099,\r\n\trbrke: 10636,\r\n\trceil: 8969,\r\n\trdquo: 8221,\r\n\treals: 8477,\r\n\trhard: 8641,\r\n\trharu: 8640,\r\n\trlarr: 8644,\r\n\trlhar: 8652,\r\n\trnmid: 10990,\r\n\troang: 10221,\r\n\troarr: 8702,\r\n\trobrk: 10215,\r\n\tropar: 10630,\r\n\trrarr: 8649,\r\n\trsquo: 8217,\r\n\trtrie: 8885,\r\n\trtrif: 9656,\r\n\tsbquo: 8218,\r\n\tsccue: 8829,\r\n\tscirc: 349,\r\n\tscnap: 10938,\r\n\tscsim: 8831,\r\n\tsdotb: 8865,\r\n\tsdote: 10854,\r\n\tseArr: 8664,\r\n\tsearr: 8600,\r\n\tsetmn: 8726,\r\n\tsharp: 9839,\r\n\tsigma: 963,\r\n\tsimeq: 8771,\r\n\tsimgE: 10912,\r\n\tsimlE: 10911,\r\n\tsimne: 8774,\r\n\tslarr: 8592,\r\n\tsmile: 8995,\r\n\tsqcap: 8851,\r\n\tsqcup: 8852,\r\n\tsqsub: 8847,\r\n\tsqsup: 8848,\r\n\tsrarr: 8594,\r\n\tstarf: 9733,\r\n\tstrns: 175,\r\n\tsubnE: 10955,\r\n\tsubne: 8842,\r\n\tsupnE: 10956,\r\n\tsupne: 8843,\r\n\tswArr: 8665,\r\n\tswarr: 8601,\r\n\tszlig: 223,\r\n\ttheta: 952,\r\n\tthkap: 8776,\r\n\tthorn: 254,\r\n\ttilde: 732,\r\n\ttimes: 215,\r\n\ttrade: 8482,\r\n\ttrisb: 10701,\r\n\ttshcy: 1115,\r\n\ttwixt: 8812,\r\n\tubrcy: 1118,\r\n\tucirc: 251,\r\n\tudarr: 8645,\r\n\tudhar: 10606,\r\n\tuharl: 8639,\r\n\tuharr: 8638,\r\n\tuhblk: 9600,\r\n\tultri: 9720,\r\n\tumacr: 363,\r\n\tuogon: 371,\r\n\tuplus: 8846,\r\n\tupsih: 978,\r\n\turing: 367,\r\n\turtri: 9721,\r\n\tutdot: 8944,\r\n\tutrif: 9652,\r\n\tuuarr: 8648,\r\n\tvBarv: 10985,\r\n\tvDash: 8872,\r\n\tvarpi: 982,\r\n\tvdash: 8866,\r\n\tveeeq: 8794,\r\n\tvltri: 8882,\r\n\tvprop: 8733,\r\n\tvrtri: 8883,\r\n\twcirc: 373,\r\n\twedge: 8743,\r\n\txcirc: 9711,\r\n\txdtri: 9661,\r\n\txhArr: 10234,\r\n\txharr: 10231,\r\n\txlArr: 10232,\r\n\txlarr: 10229,\r\n\txodot: 10752,\r\n\txrArr: 10233,\r\n\txrarr: 10230,\r\n\txutri: 9651,\r\n\tycirc: 375,\r\n\tAopf: 120120,\r\n\tAscr: 119964,\r\n\tAuml: 196,\r\n\tBarv: 10983,\r\n\tBeta: 914,\r\n\tBopf: 120121,\r\n\tBscr: 8492,\r\n\tCHcy: 1063,\r\n\tCOPY: 169,\r\n\tCdot: 266,\r\n\tCopf: 8450,\r\n\tCscr: 119966,\r\n\tDJcy: 1026,\r\n\tDScy: 1029,\r\n\tDZcy: 1039,\r\n\tDarr: 8609,\r\n\tDopf: 120123,\r\n\tDscr: 119967,\r\n\tEdot: 278,\r\n\tEopf: 120124,\r\n\tEscr: 8496,\r\n\tEsim: 10867,\r\n\tEuml: 203,\r\n\tFopf: 120125,\r\n\tFscr: 8497,\r\n\tGJcy: 1027,\r\n\tGdot: 288,\r\n\tGopf: 120126,\r\n\tGscr: 119970,\r\n\tHopf: 8461,\r\n\tHscr: 8459,\r\n\tIEcy: 1045,\r\n\tIOcy: 1025,\r\n\tIdot: 304,\r\n\tIopf: 120128,\r\n\tIota: 921,\r\n\tIscr: 8464,\r\n\tIuml: 207,\r\n\tJopf: 120129,\r\n\tJscr: 119973,\r\n\tKHcy: 1061,\r\n\tKJcy: 1036,\r\n\tKopf: 120130,\r\n\tKscr: 119974,\r\n\tLJcy: 1033,\r\n\tLang: 10218,\r\n\tLarr: 8606,\r\n\tLopf: 120131,\r\n\tLscr: 8466,\r\n\tMopf: 120132,\r\n\tMscr: 8499,\r\n\tNJcy: 1034,\r\n\tNopf: 8469,\r\n\tNscr: 119977,\r\n\tOopf: 120134,\r\n\tOscr: 119978,\r\n\tOuml: 214,\r\n\tPopf: 8473,\r\n\tPscr: 119979,\r\n\tQUOT: 34,\r\n\tQopf: 8474,\r\n\tQscr: 119980,\r\n\tRang: 10219,\r\n\tRarr: 8608,\r\n\tRopf: 8477,\r\n\tRscr: 8475,\r\n\tSHcy: 1064,\r\n\tSopf: 120138,\r\n\tSqrt: 8730,\r\n\tSscr: 119982,\r\n\tStar: 8902,\r\n\tTScy: 1062,\r\n\tTopf: 120139,\r\n\tTscr: 119983,\r\n\tUarr: 8607,\r\n\tUopf: 120140,\r\n\tUpsi: 978,\r\n\tUscr: 119984,\r\n\tUuml: 220,\r\n\tVbar: 10987,\r\n\tVert: 8214,\r\n\tVopf: 120141,\r\n\tVscr: 119985,\r\n\tWopf: 120142,\r\n\tWscr: 119986,\r\n\tXopf: 120143,\r\n\tXscr: 119987,\r\n\tYAcy: 1071,\r\n\tYIcy: 1031,\r\n\tYUcy: 1070,\r\n\tYopf: 120144,\r\n\tYscr: 119988,\r\n\tYuml: 376,\r\n\tZHcy: 1046,\r\n\tZdot: 379,\r\n\tZeta: 918,\r\n\tZopf: 8484,\r\n\tZscr: 119989,\r\n\tandd: 10844,\r\n\tandv: 10842,\r\n\tange: 10660,\r\n\taopf: 120146,\r\n\tapid: 8779,\r\n\tapos: 39,\r\n\tascr: 119990,\r\n\tauml: 228,\r\n\tbNot: 10989,\r\n\tbbrk: 9141,\r\n\tbeta: 946,\r\n\tbeth: 8502,\r\n\tbnot: 8976,\r\n\tbopf: 120147,\r\n\tboxH: 9552,\r\n\tboxV: 9553,\r\n\tboxh: 9472,\r\n\tboxv: 9474,\r\n\tbscr: 119991,\r\n\tbsim: 8765,\r\n\tbsol: 92,\r\n\tbull: 8226,\r\n\tbump: 8782,\r\n\tcdot: 267,\r\n\tcent: 162,\r\n\tchcy: 1095,\r\n\tcirE: 10691,\r\n\tcirc: 710,\r\n\tcire: 8791,\r\n\tcomp: 8705,\r\n\tcong: 8773,\r\n\tcopf: 120148,\r\n\tcopy: 169,\r\n\tcscr: 119992,\r\n\tcsub: 10959,\r\n\tcsup: 10960,\r\n\tdArr: 8659,\r\n\tdHar: 10597,\r\n\tdarr: 8595,\r\n\tdash: 8208,\r\n\tdiam: 8900,\r\n\tdjcy: 1106,\r\n\tdopf: 120149,\r\n\tdscr: 119993,\r\n\tdscy: 1109,\r\n\tdsol: 10742,\r\n\tdtri: 9663,\r\n\tdzcy: 1119,\r\n\teDot: 8785,\r\n\tecir: 8790,\r\n\tedot: 279,\r\n\temsp: 8195,\r\n\tensp: 8194,\r\n\teopf: 120150,\r\n\tepar: 8917,\r\n\tepsi: 1013,\r\n\tescr: 8495,\r\n\tesim: 8770,\r\n\teuml: 235,\r\n\teuro: 8364,\r\n\texcl: 33,\r\n\tflat: 9837,\r\n\tfnof: 402,\r\n\tfopf: 120151,\r\n\tfork: 8916,\r\n\tfscr: 119995,\r\n\tgdot: 289,\r\n\tgeqq: 8807,\r\n\tgjcy: 1107,\r\n\tgnap: 10890,\r\n\tgneq: 10888,\r\n\tgopf: 120152,\r\n\tgscr: 8458,\r\n\tgsim: 8819,\r\n\tgtcc: 10919,\r\n\thArr: 8660,\r\n\thalf: 189,\r\n\tharr: 8596,\r\n\thbar: 8463,\r\n\thopf: 120153,\r\n\thscr: 119997,\r\n\tiecy: 1077,\r\n\timof: 8887,\r\n\tiocy: 1105,\r\n\tiopf: 120154,\r\n\tiota: 953,\r\n\tiscr: 119998,\r\n\tisin: 8712,\r\n\tiuml: 239,\r\n\tjopf: 120155,\r\n\tjscr: 119999,\r\n\tkhcy: 1093,\r\n\tkjcy: 1116,\r\n\tkopf: 120156,\r\n\tkscr: 120000,\r\n\tlArr: 8656,\r\n\tlHar: 10594,\r\n\tlang: 10216,\r\n\tlarr: 8592,\r\n\tlate: 10925,\r\n\tlcub: 123,\r\n\tldca: 10550,\r\n\tldsh: 8626,\r\n\tleqq: 8806,\r\n\tljcy: 1113,\r\n\tlnap: 10889,\r\n\tlneq: 10887,\r\n\tlopf: 120157,\r\n\tlozf: 10731,\r\n\tlpar: 40,\r\n\tlscr: 120001,\r\n\tlsim: 8818,\r\n\tlsqb: 91,\r\n\tltcc: 10918,\r\n\tltri: 9667,\r\n\tmacr: 175,\r\n\tmale: 9794,\r\n\tmalt: 10016,\r\n\tmlcp: 10971,\r\n\tmldr: 8230,\r\n\tmopf: 120158,\r\n\tmscr: 120002,\r\n\tnbsp: 160,\r\n\tncap: 10819,\r\n\tncup: 10818,\r\n\tngeq: 8817,\r\n\tngtr: 8815,\r\n\tnisd: 8954,\r\n\tnjcy: 1114,\r\n\tnldr: 8229,\r\n\tnleq: 8816,\r\n\tnmid: 8740,\r\n\tnopf: 120159,\r\n\tnpar: 8742,\r\n\tnscr: 120003,\r\n\tnsim: 8769,\r\n\tnsub: 8836,\r\n\tnsup: 8837,\r\n\tntgl: 8825,\r\n\tntlg: 8824,\r\n\toast: 8859,\r\n\tocir: 8858,\r\n\todiv: 10808,\r\n\todot: 8857,\r\n\togon: 731,\r\n\toint: 8750,\r\n\tomid: 10678,\r\n\toopf: 120160,\r\n\topar: 10679,\r\n\tordf: 170,\r\n\tordm: 186,\r\n\toror: 10838,\r\n\toscr: 8500,\r\n\tosol: 8856,\r\n\touml: 246,\r\n\tpara: 182,\r\n\tpart: 8706,\r\n\tperp: 8869,\r\n\tphiv: 966,\r\n\tplus: 43,\r\n\tpopf: 120161,\r\n\tprap: 10935,\r\n\tprec: 8826,\r\n\tprnE: 10933,\r\n\tprod: 8719,\r\n\tprop: 8733,\r\n\tpscr: 120005,\r\n\tqint: 10764,\r\n\tqopf: 120162,\r\n\tqscr: 120006,\r\n\tquot: 34,\r\n\trArr: 8658,\r\n\trHar: 10596,\r\n\trace: 10714,\r\n\trang: 10217,\r\n\trarr: 8594,\r\n\trcub: 125,\r\n\trdca: 10551,\r\n\trdsh: 8627,\r\n\treal: 8476,\r\n\trect: 9645,\r\n\trhov: 1009,\r\n\tring: 730,\r\n\tropf: 120163,\r\n\trpar: 41,\r\n\trscr: 120007,\r\n\trsqb: 93,\r\n\trtri: 9657,\r\n\tscap: 10936,\r\n\tscnE: 10934,\r\n\tsdot: 8901,\r\n\tsect: 167,\r\n\tsemi: 59,\r\n\tsext: 10038,\r\n\tshcy: 1096,\r\n\tsime: 8771,\r\n\tsimg: 10910,\r\n\tsiml: 10909,\r\n\tsmid: 8739,\r\n\tsmte: 10924,\r\n\tsolb: 10692,\r\n\tsopf: 120164,\r\n\tspar: 8741,\r\n\tsquf: 9642,\r\n\tsscr: 120008,\r\n\tstar: 9734,\r\n\tsubE: 10949,\r\n\tsube: 8838,\r\n\tsucc: 8827,\r\n\tsung: 9834,\r\n\tsup1: 185,\r\n\tsup2: 178,\r\n\tsup3: 179,\r\n\tsupE: 10950,\r\n\tsupe: 8839,\r\n\ttbrk: 9140,\r\n\ttdot: 8411,\r\n\ttint: 8749,\r\n\ttoea: 10536,\r\n\ttopf: 120165,\r\n\ttosa: 10537,\r\n\ttrie: 8796,\r\n\ttscr: 120009,\r\n\ttscy: 1094,\r\n\tuArr: 8657,\r\n\tuHar: 10595,\r\n\tuarr: 8593,\r\n\tuopf: 120166,\r\n\tupsi: 965,\r\n\tuscr: 120010,\r\n\tutri: 9653,\r\n\tuuml: 252,\r\n\tvArr: 8661,\r\n\tvBar: 10984,\r\n\tvarr: 8597,\r\n\tvert: 124,\r\n\tvopf: 120167,\r\n\tvscr: 120011,\r\n\twopf: 120168,\r\n\twscr: 120012,\r\n\txcap: 8898,\r\n\txcup: 8899,\r\n\txmap: 10236,\r\n\txnis: 8955,\r\n\txopf: 120169,\r\n\txscr: 120013,\r\n\txvee: 8897,\r\n\tyacy: 1103,\r\n\tyicy: 1111,\r\n\tyopf: 120170,\r\n\tyscr: 120014,\r\n\tyucy: 1102,\r\n\tyuml: 255,\r\n\tzdot: 380,\r\n\tzeta: 950,\r\n\tzhcy: 1078,\r\n\tzopf: 120171,\r\n\tzscr: 120015,\r\n\tzwnj: 8204,\r\n\tAMP: 38,\r\n\tAcy: 1040,\r\n\tAfr: 120068,\r\n\tAnd: 10835,\r\n\tBcy: 1041,\r\n\tBfr: 120069,\r\n\tCap: 8914,\r\n\tCfr: 8493,\r\n\tChi: 935,\r\n\tCup: 8915,\r\n\tDcy: 1044,\r\n\tDel: 8711,\r\n\tDfr: 120071,\r\n\tDot: 168,\r\n\tENG: 330,\r\n\tETH: 208,\r\n\tEcy: 1069,\r\n\tEfr: 120072,\r\n\tEta: 919,\r\n\tFcy: 1060,\r\n\tFfr: 120073,\r\n\tGcy: 1043,\r\n\tGfr: 120074,\r\n\tHat: 94,\r\n\tHfr: 8460,\r\n\tIcy: 1048,\r\n\tIfr: 8465,\r\n\tInt: 8748,\r\n\tJcy: 1049,\r\n\tJfr: 120077,\r\n\tKcy: 1050,\r\n\tKfr: 120078,\r\n\tLcy: 1051,\r\n\tLfr: 120079,\r\n\tLsh: 8624,\r\n\tMap: 10501,\r\n\tMcy: 1052,\r\n\tMfr: 120080,\r\n\tNcy: 1053,\r\n\tNfr: 120081,\r\n\tNot: 10988,\r\n\tOcy: 1054,\r\n\tOfr: 120082,\r\n\tPcy: 1055,\r\n\tPfr: 120083,\r\n\tPhi: 934,\r\n\tPsi: 936,\r\n\tQfr: 120084,\r\n\tREG: 174,\r\n\tRcy: 1056,\r\n\tRfr: 8476,\r\n\tRho: 929,\r\n\tRsh: 8625,\r\n\tScy: 1057,\r\n\tSfr: 120086,\r\n\tSub: 8912,\r\n\tSum: 8721,\r\n\tSup: 8913,\r\n\tTab: 9,\r\n\tTau: 932,\r\n\tTcy: 1058,\r\n\tTfr: 120087,\r\n\tUcy: 1059,\r\n\tUfr: 120088,\r\n\tVcy: 1042,\r\n\tVee: 8897,\r\n\tVfr: 120089,\r\n\tWfr: 120090,\r\n\tXfr: 120091,\r\n\tYcy: 1067,\r\n\tYfr: 120092,\r\n\tZcy: 1047,\r\n\tZfr: 8488,\r\n\tacd: 8767,\r\n\tacy: 1072,\r\n\tafr: 120094,\r\n\tamp: 38,\r\n\tand: 8743,\r\n\tang: 8736,\r\n\tapE: 10864,\r\n\tape: 8778,\r\n\tast: 42,\r\n\tbcy: 1073,\r\n\tbfr: 120095,\r\n\tbot: 8869,\r\n\tcap: 8745,\r\n\tcfr: 120096,\r\n\tchi: 967,\r\n\tcir: 9675,\r\n\tcup: 8746,\r\n\tdcy: 1076,\r\n\tdeg: 176,\r\n\tdfr: 120097,\r\n\tdie: 168,\r\n\tdiv: 247,\r\n\tdot: 729,\r\n\tecy: 1101,\r\n\tefr: 120098,\r\n\tegs: 10902,\r\n\tell: 8467,\r\n\tels: 10901,\r\n\teng: 331,\r\n\teta: 951,\r\n\teth: 240,\r\n\tfcy: 1092,\r\n\tffr: 120099,\r\n\tgEl: 10892,\r\n\tgap: 10886,\r\n\tgcy: 1075,\r\n\tgel: 8923,\r\n\tgeq: 8805,\r\n\tges: 10878,\r\n\tgfr: 120100,\r\n\tggg: 8921,\r\n\tglE: 10898,\r\n\tgla: 10917,\r\n\tglj: 10916,\r\n\tgnE: 8809,\r\n\tgne: 10888,\r\n\thfr: 120101,\r\n\ticy: 1080,\r\n\tiff: 8660,\r\n\tifr: 120102,\r\n\tint: 8747,\r\n\tjcy: 1081,\r\n\tjfr: 120103,\r\n\tkcy: 1082,\r\n\tkfr: 120104,\r\n\tlEg: 10891,\r\n\tlap: 10885,\r\n\tlat: 10923,\r\n\tlcy: 1083,\r\n\tleg: 8922,\r\n\tleq: 8804,\r\n\tles: 10877,\r\n\tlfr: 120105,\r\n\tlgE: 10897,\r\n\tlnE: 8808,\r\n\tlne: 10887,\r\n\tloz: 9674,\r\n\tlrm: 8206,\r\n\tlsh: 8624,\r\n\tmap: 8614,\r\n\tmcy: 1084,\r\n\tmfr: 120106,\r\n\tmho: 8487,\r\n\tmid: 8739,\r\n\tnap: 8777,\r\n\tncy: 1085,\r\n\tnfr: 120107,\r\n\tnge: 8817,\r\n\tngt: 8815,\r\n\tnis: 8956,\r\n\tniv: 8715,\r\n\tnle: 8816,\r\n\tnlt: 8814,\r\n\tnot: 172,\r\n\tnpr: 8832,\r\n\tnsc: 8833,\r\n\tnum: 35,\r\n\tocy: 1086,\r\n\tofr: 120108,\r\n\togt: 10689,\r\n\tohm: 8486,\r\n\tolt: 10688,\r\n\tord: 10845,\r\n\torv: 10843,\r\n\tpar: 8741,\r\n\tpcy: 1087,\r\n\tpfr: 120109,\r\n\tphi: 966,\r\n\tpiv: 982,\r\n\tprE: 10931,\r\n\tpre: 10927,\r\n\tpsi: 968,\r\n\tqfr: 120110,\r\n\trcy: 1088,\r\n\treg: 174,\r\n\trfr: 120111,\r\n\trho: 961,\r\n\trlm: 8207,\r\n\trsh: 8625,\r\n\tscE: 10932,\r\n\tsce: 10928,\r\n\tscy: 1089,\r\n\tsfr: 120112,\r\n\tshy: 173,\r\n\tsim: 8764,\r\n\tsmt: 10922,\r\n\tsol: 47,\r\n\tsqu: 9633,\r\n\tsub: 8834,\r\n\tsum: 8721,\r\n\tsup: 8835,\r\n\ttau: 964,\r\n\ttcy: 1090,\r\n\ttfr: 120113,\r\n\ttop: 8868,\r\n\tucy: 1091,\r\n\tufr: 120114,\r\n\tuml: 168,\r\n\tvcy: 1074,\r\n\tvee: 8744,\r\n\tvfr: 120115,\r\n\twfr: 120116,\r\n\txfr: 120117,\r\n\tycy: 1099,\r\n\tyen: 165,\r\n\tyfr: 120118,\r\n\tzcy: 1079,\r\n\tzfr: 120119,\r\n\tzwj: 8205,\r\n\tDD: 8517,\r\n\tGT: 62,\r\n\tGg: 8921,\r\n\tGt: 8811,\r\n\tIm: 8465,\r\n\tLT: 60,\r\n\tLl: 8920,\r\n\tLt: 8810,\r\n\tMu: 924,\r\n\tNu: 925,\r\n\tOr: 10836,\r\n\tPi: 928,\r\n\tPr: 10939,\r\n\tRe: 8476,\r\n\tSc: 10940,\r\n\tXi: 926,\r\n\tac: 8766,\r\n\taf: 8289,\r\n\tap: 8776,\r\n\tdd: 8518,\r\n\tee: 8519,\r\n\teg: 10906,\r\n\tel: 10905,\r\n\tgE: 8807,\r\n\tge: 8805,\r\n\tgg: 8811,\r\n\tgl: 8823,\r\n\tgt: 62,\r\n\tic: 8291,\r\n\tii: 8520,\r\n\tin: 8712,\r\n\tit: 8290,\r\n\tlE: 8806,\r\n\tle: 8804,\r\n\tlg: 8822,\r\n\tll: 8810,\r\n\tlt: 60,\r\n\tmp: 8723,\r\n\tmu: 956,\r\n\tne: 8800,\r\n\tni: 8715,\r\n\tnu: 957,\r\n\toS: 9416,\r\n\tor: 8744,\r\n\tpi: 960,\r\n\tpm: 177,\r\n\tpr: 8826,\r\n\trx: 8478,\r\n\tsc: 8827,\r\n\twp: 8472,\r\n\twr: 8768,\r\n\txi: 958\r\n};\r\n","import entities from './entities';\r\n\r\nconst windows_1252 = [\r\n\t8364,\r\n\t129,\r\n\t8218,\r\n\t402,\r\n\t8222,\r\n\t8230,\r\n\t8224,\r\n\t8225,\r\n\t710,\r\n\t8240,\r\n\t352,\r\n\t8249,\r\n\t338,\r\n\t141,\r\n\t381,\r\n\t143,\r\n\t144,\r\n\t8216,\r\n\t8217,\r\n\t8220,\r\n\t8221,\r\n\t8226,\r\n\t8211,\r\n\t8212,\r\n\t732,\r\n\t8482,\r\n\t353,\r\n\t8250,\r\n\t339,\r\n\t157,\r\n\t382,\r\n\t376\r\n];\r\n\r\nconst entity_pattern = new RegExp(\r\n\t`&(#?(?:x[\\\\w\\\\d]+|\\\\d+|${Object.keys(entities).join('|')}))(?:;|\\\\b)`,\r\n\t'g'\r\n);\r\n\r\nexport function decode_character_references(html: string) {\r\n\treturn html.replace(entity_pattern, (match, entity) => {\r\n\t\tlet code;\r\n\r\n\t\t// Handle named entities\r\n\t\tif (entity[0] !== '#') {\r\n\t\t\tcode = entities[entity];\r\n\t\t} else if (entity[1] === 'x') {\r\n\t\t\tcode = parseInt(entity.substring(2), 16);\r\n\t\t} else {\r\n\t\t\tcode = parseInt(entity.substring(1), 10);\r\n\t\t}\r\n\r\n\t\tif (!code) {\r\n\t\t\treturn match;\r\n\t\t}\r\n\r\n\t\treturn String.fromCodePoint(validate_code(code));\r\n\t});\r\n}\r\n\r\nconst NUL = 0;\r\n\r\n// some code points are verboten. If we were inserting HTML, the browser would replace the illegal\r\n// code points with alternatives in some cases - since we're bypassing that mechanism, we need\r\n// to replace them ourselves\r\n//\r\n// Source: http://en.wikipedia.org/wiki/Character_encodings_in_HTML#Illegal_characters\r\nfunction validate_code(code: number) {\r\n\t// line feed becomes generic whitespace\r\n\tif (code === 10) {\r\n\t\treturn 32;\r\n\t}\r\n\r\n\t// ASCII range. (Why someone would use HTML entities for ASCII characters I don't know, but...)\r\n\tif (code < 128) {\r\n\t\treturn code;\r\n\t}\r\n\r\n\t// code points 128-159 are dealt with leniently by browsers, but they're incorrect. We need\r\n\t// to correct the mistake or we'll end up with missing € signs and so on\r\n\tif (code <= 159) {\r\n\t\treturn windows_1252[code - 128];\r\n\t}\r\n\r\n\t// basic multilingual plane\r\n\tif (code < 55296) {\r\n\t\treturn code;\r\n\t}\r\n\r\n\t// UTF-16 surrogate halves\r\n\tif (code <= 57343) {\r\n\t\treturn NUL;\r\n\t}\r\n\r\n\t// rest of the basic multilingual plane\r\n\tif (code <= 65535) {\r\n\t\treturn code;\r\n\t}\r\n\r\n\t// supplementary multilingual plane 0x10000 - 0x1ffff\r\n\tif (code >= 65536 && code <= 131071) {\r\n\t\treturn code;\r\n\t}\r\n\r\n\t// supplementary ideographic plane 0x20000 - 0x2ffff\r\n\tif (code >= 131072 && code <= 196607) {\r\n\t\treturn code;\r\n\t}\r\n\r\n\treturn NUL;\r\n}\r\n\r\n// based on http://developers.whatwg.org/syntax.html#syntax-tag-omission\r\nconst disallowed_contents = new Map([\r\n\t['li', new Set(['li'])],\r\n\t['dt', new Set(['dt', 'dd'])],\r\n\t['dd', new Set(['dt', 'dd'])],\r\n\t[\r\n\t\t'p',\r\n\t\tnew Set(\r\n\t\t\t'address article aside blockquote div dl fieldset footer form h1 h2 h3 h4 h5 h6 header hgroup hr main menu nav ol p pre section table ul'.split(\r\n\t\t\t\t' '\r\n\t\t\t)\r\n\t\t)\r\n\t],\r\n\t['rt', new Set(['rt', 'rp'])],\r\n\t['rp', new Set(['rt', 'rp'])],\r\n\t['optgroup', new Set(['optgroup'])],\r\n\t['option', new Set(['option', 'optgroup'])],\r\n\t['thead', new Set(['tbody', 'tfoot'])],\r\n\t['tbody', new Set(['tbody', 'tfoot'])],\r\n\t['tfoot', new Set(['tbody'])],\r\n\t['tr', new Set(['tr', 'tbody'])],\r\n\t['td', new Set(['td', 'th', 'tr'])],\r\n\t['th', new Set(['td', 'th', 'tr'])]\r\n]);\r\n\r\n// can this be a child of the parent element, or does it implicitly\r\n// close it, like `<li>one<li>two`?\r\nexport function closing_tag_omitted(current: string, next?: string) {\r\n\tif (disallowed_contents.has(current)) {\r\n\t\tif (!next || disallowed_contents.get(current).has(next)) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\r\n\treturn false;\r\n}\r\n","import { Directive, DirectiveType, TemplateNode, Text } from '../../interfaces';\r\nimport { extract_svelte_ignore } from '../../utils/extract_svelte_ignore';\r\nimport fuzzymatch from '../../utils/fuzzymatch';\r\nimport { is_void } from '../../../shared/utils/names';\r\nimport parser_errors from '../errors';\r\nimport { Parser } from '../index';\r\nimport read_expression from '../read/expression';\r\nimport read_script from '../read/script';\r\nimport read_style from '../read/style';\r\nimport { closing_tag_omitted, decode_character_references } from '../utils/html';\r\n\r\n// eslint-disable-next-line no-useless-escape\r\nconst valid_tag_name = /^\\!?[a-zA-Z]{1,}:?[a-zA-Z0-9\\-]*/;\r\n\r\nconst meta_tags = new Map([\r\n\t['svelte:head', 'Head'],\r\n\t['svelte:options', 'Options'],\r\n\t['svelte:window', 'Window'],\r\n\t['svelte:body', 'Body']\r\n]);\r\n\r\nconst valid_meta_tags = Array.from(meta_tags.keys()).concat('svelte:self', 'svelte:component', 'svelte:fragment', 'svelte:element');\r\n\r\nconst specials = new Map([\r\n\t[\r\n\t\t'script',\r\n\t\t{\r\n\t\t\tread: read_script,\r\n\t\t\tproperty: 'js'\r\n\t\t}\r\n\t],\r\n\t[\r\n\t\t'style',\r\n\t\t{\r\n\t\t\tread: read_style,\r\n\t\t\tproperty: 'css'\r\n\t\t}\r\n\t]\r\n]);\r\n\r\nconst SELF = /^svelte:self(?=[\\s/>])/;\r\nconst COMPONENT = /^svelte:component(?=[\\s/>])/;\r\nconst SLOT = /^svelte:fragment(?=[\\s/>])/;\r\nconst ELEMENT = /^svelte:element(?=[\\s/>])/;\r\n\r\nfunction parent_is_head(stack) {\r\n\tlet i = stack.length;\r\n\twhile (i--) {\r\n\t\tconst { type } = stack[i];\r\n\t\tif (type === 'Head') return true;\r\n\t\tif (type === 'Element' || type === 'InlineComponent') return false;\r\n\t}\r\n\treturn false;\r\n}\r\n\r\nexport default function tag(parser: Parser) {\r\n\tconst start = parser.index++;\r\n\r\n\tlet parent = parser.current();\r\n\r\n\tif (parser.eat('!--')) {\r\n\t\tconst data = parser.read_until(/-->/);\r\n\t\tparser.eat('-->', true, parser_errors.unclosed_comment);\r\n\r\n\t\tparser.current().children.push({\r\n\t\t\tstart,\r\n\t\t\tend: parser.index,\r\n\t\t\ttype: 'Comment',\r\n\t\t\tdata,\r\n\t\t\tignores: extract_svelte_ignore(data)\r\n\t\t});\r\n\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst is_closing_tag = parser.eat('/');\r\n\r\n\tconst name = read_tag_name(parser);\r\n\r\n\tif (meta_tags.has(name)) {\r\n\t\tconst slug = meta_tags.get(name).toLowerCase();\r\n\t\tif (is_closing_tag) {\r\n\t\t\tif (\r\n\t\t\t\t(name === 'svelte:window' || name === 'svelte:body') &&\r\n\t\t\t\tparser.current().children.length\r\n\t\t\t) {\r\n\t\t\t\tparser.error(\r\n\t\t\t\t\tparser_errors.invalid_element_content(slug, name),\r\n\t\t\t\t\tparser.current().children[0].start\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (name in parser.meta_tags) {\r\n\t\t\t\tparser.error(parser_errors.duplicate_element(slug, name), start);\r\n\t\t\t}\r\n\r\n\t\t\tif (parser.stack.length > 1) {\r\n\t\t\t\tparser.error(parser_errors.invalid_element_placement(slug, name), start);\r\n\t\t\t}\r\n\r\n\t\t\tparser.meta_tags[name] = true;\r\n\t\t}\r\n\t}\r\n\r\n\tconst type = meta_tags.has(name)\r\n\t\t? meta_tags.get(name)\r\n\t\t: (/[A-Z]/.test(name[0]) || name === 'svelte:self' || name === 'svelte:component') ? 'InlineComponent'\r\n\t\t\t: name === 'svelte:fragment' ? 'SlotTemplate'\r\n\t\t\t\t: name === 'title' && parent_is_head(parser.stack) ? 'Title'\r\n\t\t\t\t\t: name === 'slot' && !parser.customElement ? 'Slot' : 'Element';\r\n\r\n\tconst element: TemplateNode = {\r\n\t\tstart,\r\n\t\tend: null, // filled in later\r\n\t\ttype,\r\n\t\tname,\r\n\t\tattributes: [],\r\n\t\tchildren: []\r\n\t};\r\n\r\n\tparser.allow_whitespace();\r\n\r\n\tif (is_closing_tag) {\r\n\t\tif (is_void(name)) {\r\n\t\t\tparser.error(parser_errors.invalid_void_content(name), start);\r\n\t\t}\r\n\r\n\t\tparser.eat('>', true);\r\n\r\n\t\t// close any elements that don't have their own closing tags, e.g. <div><p></div>\r\n\t\twhile (parent.name !== name) {\r\n\t\t\tif (parent.type !== 'Element') {\r\n\t\t\t\tconst error = parser.last_auto_closed_tag && parser.last_auto_closed_tag.tag === name\r\n\t\t\t\t\t? parser_errors.invalid_closing_tag_autoclosed(name, parser.last_auto_closed_tag.reason)\r\n\t\t\t\t\t: parser_errors.invalid_closing_tag_unopened(name);\r\n\t\t\t\tparser.error(error, start);\r\n\t\t\t}\r\n\r\n\t\t\tparent.end = start;\r\n\t\t\tparser.stack.pop();\r\n\r\n\t\t\tparent = parser.current();\r\n\t\t}\r\n\r\n\t\tparent.end = parser.index;\r\n\t\tparser.stack.pop();\r\n\r\n\t\tif (parser.last_auto_closed_tag && parser.stack.length < parser.last_auto_closed_tag.depth) {\r\n\t\t\tparser.last_auto_closed_tag = null;\r\n\t\t}\r\n\r\n\t\treturn;\r\n\t} else if (closing_tag_omitted(parent.name, name)) {\r\n\t\tparent.end = start;\r\n\t\tparser.stack.pop();\r\n\t\tparser.last_auto_closed_tag = {\r\n\t\t\ttag: parent.name,\r\n\t\t\treason: name,\r\n\t\t\tdepth: parser.stack.length\r\n\t\t};\r\n\t}\r\n\r\n\tconst unique_names: Set<string> = new Set();\r\n\r\n\tlet attribute;\r\n\twhile ((attribute = read_attribute(parser, unique_names))) {\r\n\t\telement.attributes.push(attribute);\r\n\t\tparser.allow_whitespace();\r\n\t}\r\n\r\n\tif (name === 'svelte:component') {\r\n\t\tconst index = element.attributes.findIndex(attr => attr.type === 'Attribute' && attr.name === 'this');\r\n\t\tif (index === -1) {\r\n\t\t\tparser.error(parser_errors.missing_component_definition, start);\r\n\t\t}\r\n\r\n\t\tconst definition = element.attributes.splice(index, 1)[0];\r\n\t\tif (definition.value === true || definition.value.length !== 1 || definition.value[0].type === 'Text') {\r\n\t\t\tparser.error(parser_errors.invalid_component_definition, definition.start);\r\n\t\t}\r\n\r\n\t\telement.expression = definition.value[0].expression;\r\n\t}\r\n\r\n\tif (name === 'svelte:element') {\r\n\t\tconst index = element.attributes.findIndex(attr => attr.type === 'Attribute' && attr.name === 'this');\r\n\t\tif (index === -1) {\r\n\t\t\tparser.error(parser_errors.missing_element_definition, start);\r\n\t\t}\r\n\r\n\t\tconst definition = element.attributes.splice(index, 1)[0];\r\n\t\tif (definition.value === true) {\r\n\t\t\tparser.error(parser_errors.invalid_element_definition, definition.start);\r\n\t\t}\r\n\t\telement.tag = definition.value[0].data || definition.value[0].expression;\r\n\t}\r\n\r\n\t// special cases – top-level <script> and <style>\r\n\tif (specials.has(name) && parser.stack.length === 1) {\r\n\t\tconst special = specials.get(name);\r\n\r\n\t\tparser.eat('>', true);\r\n\t\tconst content = special.read(parser, start, element.attributes);\r\n\t\tif (content) parser[special.property].push(content);\r\n\t\treturn;\r\n\t}\r\n\r\n\tparser.current().children.push(element);\r\n\r\n\tconst self_closing = parser.eat('/') || is_void(name);\r\n\r\n\tparser.eat('>', true);\r\n\r\n\tif (self_closing) {\r\n\t\t// don't push self-closing elements onto the stack\r\n\t\telement.end = parser.index;\r\n\t} else if (name === 'textarea') {\r\n\t\t// special case\r\n\t\telement.children = read_sequence(\r\n\t\t\tparser,\r\n\t\t\t() =>\r\n\t\t\t\t/^<\\/textarea(\\s[^>]*)?>/i.test(parser.template.slice(parser.index))\r\n\t\t);\r\n\t\tparser.read(/^<\\/textarea(\\s[^>]*)?>/i);\r\n\t\telement.end = parser.index;\r\n\t} else if (name === 'script' || name === 'style') {\r\n\t\t// special case\r\n\t\tconst start = parser.index;\r\n\t\tconst data = parser.read_until(new RegExp(`</${name}>`));\r\n\t\tconst end = parser.index;\r\n\t\telement.children.push({ start, end, type: 'Text', data });\r\n\t\tparser.eat(`</${name}>`, true);\r\n\t\telement.end = parser.index;\r\n\t} else {\r\n\t\tparser.stack.push(element);\r\n\t}\r\n}\r\n\r\nfunction read_tag_name(parser: Parser) {\r\n\tconst start = parser.index;\r\n\r\n\tif (parser.read(SELF)) {\r\n\t\t// check we're inside a block, otherwise this\r\n\t\t// will cause infinite recursion\r\n\t\tlet i = parser.stack.length;\r\n\t\tlet legal = false;\r\n\r\n\t\twhile (i--) {\r\n\t\t\tconst fragment = parser.stack[i];\r\n\t\t\tif (fragment.type === 'IfBlock' || fragment.type === 'EachBlock' || fragment.type === 'InlineComponent') {\r\n\t\t\t\tlegal = true;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!legal) {\r\n\t\t\tparser.error(parser_errors.invalid_self_placement, start);\r\n\t\t}\r\n\r\n\t\treturn 'svelte:self';\r\n\t}\r\n\r\n\tif (parser.read(COMPONENT)) return 'svelte:component';\r\n\tif (parser.read(ELEMENT)) return 'svelte:element';\r\n\r\n\tif (parser.read(SLOT)) return 'svelte:fragment';\r\n\r\n\tconst name = parser.read_until(/(\\s|\\/|>)/);\r\n\r\n\tif (meta_tags.has(name)) return name;\r\n\r\n\tif (name.startsWith('svelte:')) {\r\n\t\tconst match = fuzzymatch(name.slice(7), valid_meta_tags);\r\n\r\n\t\tparser.error(\r\n\t\t\tparser_errors.invalid_tag_name_svelte_element(valid_meta_tags, match),\r\n\t\t\tstart\r\n\t\t);\r\n\t}\r\n\r\n\tif (!valid_tag_name.test(name)) {\r\n\t\tparser.error(parser_errors.invalid_tag_name, start);\r\n\t}\r\n\r\n\treturn name;\r\n}\r\n\r\nfunction read_attribute(parser: Parser, unique_names: Set<string>) {\r\n\tconst start = parser.index;\r\n\r\n\tfunction check_unique(name: string) {\r\n\t\tif (unique_names.has(name)) {\r\n\t\t\tparser.error(parser_errors.duplicate_attribute, start);\r\n\t\t}\r\n\t\tunique_names.add(name);\r\n\t}\r\n\r\n\tif (parser.eat('{')) {\r\n\t\tparser.allow_whitespace();\r\n\r\n\t\tif (parser.eat('...')) {\r\n\t\t\tconst expression = read_expression(parser);\r\n\r\n\t\t\tparser.allow_whitespace();\r\n\t\t\tparser.eat('}', true);\r\n\r\n\t\t\treturn {\r\n\t\t\t\tstart,\r\n\t\t\t\tend: parser.index,\r\n\t\t\t\ttype: 'Spread',\r\n\t\t\t\texpression\r\n\t\t\t};\r\n\t\t} else {\r\n\t\t\tconst value_start = parser.index;\r\n\r\n\t\t\tconst name = parser.read_identifier();\r\n\t\t\tparser.allow_whitespace();\r\n\t\t\tparser.eat('}', true);\r\n\r\n\t\t\tif (name === null) {\r\n\t\t\t\tparser.error(parser_errors.empty_attribute_shorthand, start);\r\n\t\t\t}\r\n\r\n\t\t\tcheck_unique(name);\r\n\r\n\t\t\treturn {\r\n\t\t\t\tstart,\r\n\t\t\t\tend: parser.index,\r\n\t\t\t\ttype: 'Attribute',\r\n\t\t\t\tname,\r\n\t\t\t\tvalue: [{\r\n\t\t\t\t\tstart: value_start,\r\n\t\t\t\t\tend: value_start + name.length,\r\n\t\t\t\t\ttype: 'AttributeShorthand',\r\n\t\t\t\t\texpression: {\r\n\t\t\t\t\t\tstart: value_start,\r\n\t\t\t\t\t\tend: value_start + name.length,\r\n\t\t\t\t\t\ttype: 'Identifier',\r\n\t\t\t\t\t\tname\r\n\t\t\t\t\t}\r\n\t\t\t\t}]\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\t// eslint-disable-next-line no-useless-escape\r\n\tconst name = parser.read_until(/[\\s=\\/>\"']/);\r\n\tif (!name) return null;\r\n\r\n\tlet end = parser.index;\r\n\r\n\tparser.allow_whitespace();\r\n\r\n\tconst colon_index = name.indexOf(':');\r\n\tconst type = colon_index !== -1 && get_directive_type(name.slice(0, colon_index));\r\n\r\n\tlet value: any[] | true = true;\r\n\tif (parser.eat('=')) {\r\n\t\tparser.allow_whitespace();\r\n\t\tvalue = read_attribute_value(parser);\r\n\t\tend = parser.index;\r\n\t} else if (parser.match_regex(/[\"']/)) {\r\n\t\tparser.error(parser_errors.unexpected_token('='), parser.index);\r\n\t}\r\n\r\n\tif (type) {\r\n\t\tconst [directive_name, ...modifiers] = name.slice(colon_index + 1).split('|');\r\n\r\n\t\tif (directive_name === '') {\r\n\t\t\tparser.error(parser_errors.empty_directive_name(type), start + colon_index + 1);\r\n\t\t}\r\n\r\n\t\tif (type === 'Binding' && directive_name !== 'this') {\r\n\t\t\tcheck_unique(directive_name);\r\n\t\t} else if (type !== 'EventHandler' && type !== 'Action') {\r\n\t\t\tcheck_unique(name);\r\n\t\t}\r\n\r\n\t\tif (type === 'Ref') {\r\n\t\t\tparser.error(parser_errors.invalid_ref_directive(directive_name), start);\r\n\t\t}\r\n\r\n\t\tif (type === 'StyleDirective') {\r\n\t\t\treturn {\r\n\t\t\t\tstart,\r\n\t\t\t\tend,\r\n\t\t\t\ttype,\r\n\t\t\t\tname: directive_name,\r\n\t\t\t\tvalue\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst first_value = value[0];\r\n\t\tlet expression = null;\r\n\r\n\t\tif (first_value) {\r\n\t\t\tconst attribute_contains_text = (value as any[]).length > 1 || first_value.type === 'Text';\r\n\t\t\tif (attribute_contains_text) {\r\n\t\t\t\tparser.error(parser_errors.invalid_directive_value, first_value.start);\r\n\t\t\t} else {\r\n\t\t\t\texpression = first_value.expression;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst directive: Directive = {\r\n\t\t\tstart,\r\n\t\t\tend,\r\n\t\t\ttype,\r\n\t\t\tname: directive_name,\r\n\t\t\tmodifiers,\r\n\t\t\texpression\r\n\t\t};\r\n\r\n\t\tif (type === 'Transition') {\r\n\t\t\tconst direction = name.slice(0, colon_index);\r\n\t\t\tdirective.intro = direction === 'in' || direction === 'transition';\r\n\t\t\tdirective.outro = direction === 'out' || direction === 'transition';\r\n\t\t}\r\n\r\n\t\t// Directive name is expression, e.g. <p class:isRed />\r\n\t\tif (!directive.expression && (type === 'Binding' || type === 'Class')) {\r\n\t\t\tdirective.expression = {\r\n\t\t\t\tstart: directive.start + colon_index + 1,\r\n\t\t\t\tend: directive.end,\r\n\t\t\t\ttype: 'Identifier',\r\n\t\t\t\tname: directive.name\r\n\t\t\t} as any;\r\n\t\t}\r\n\r\n\t\treturn directive;\r\n\t}\r\n\r\n\tcheck_unique(name);\r\n\r\n\treturn {\r\n\t\tstart,\r\n\t\tend,\r\n\t\ttype: 'Attribute',\r\n\t\tname,\r\n\t\tvalue\r\n\t};\r\n}\r\n\r\nfunction get_directive_type(name: string): DirectiveType {\r\n\tif (name === 'use') return 'Action';\r\n\tif (name === 'animate') return 'Animation';\r\n\tif (name === 'bind') return 'Binding';\r\n\tif (name === 'class') return 'Class';\r\n\tif (name === 'style') return 'StyleDirective';\r\n\tif (name === 'on') return 'EventHandler';\r\n\tif (name === 'let') return 'Let';\r\n\tif (name === 'ref') return 'Ref';\r\n\tif (name === 'in' || name === 'out' || name === 'transition') return 'Transition';\r\n}\r\n\r\nfunction read_attribute_value(parser: Parser) {\r\n\tconst quote_mark = parser.eat(\"'\") ? \"'\" : parser.eat('\"') ? '\"' : null;\r\n\tif (quote_mark && parser.eat(quote_mark)) {\r\n\t\treturn [{\r\n\t\t\tstart: parser.index - 1,\r\n\t\t\tend: parser.index - 1,\r\n\t\t\ttype: 'Text',\r\n\t\t\traw: '',\r\n\t\t\tdata: ''\r\n\t\t}];\r\n\t}\r\n\r\n\tconst regex = (\r\n\t\tquote_mark === \"'\" ? /'/ :\r\n\t\t\tquote_mark === '\"' ? /\"/ :\r\n\t\t\t\t/(\\/>|[\\s\"'=<>`])/\r\n\t);\r\n\r\n\tlet value;\r\n\ttry {\r\n\t\tvalue = read_sequence(parser, () => !!parser.match_regex(regex));\r\n\t} catch (error) {\r\n\t\tif (error.code === 'parse-error') {\r\n\t\t\t// if the attribute value didn't close + self-closing tag\r\n\t\t\t// eg: `<Component test={{a:1} />`\r\n\t\t\t// acorn may throw a `Unterminated regular expression` because of `/>`\r\n\t\t\tif (parser.template.slice(error.pos - 1, error.pos + 1) === '/>') {\r\n\t\t\t\tparser.index = error.pos;\r\n\t\t\t\tparser.error(parser_errors.unclosed_attribute_value(quote_mark || '}'));\r\n\t\t\t}\r\n\t\t}\r\n\t\tthrow error;\r\n\t}\r\n\r\n\tif (value.length === 0 && !quote_mark) {\r\n\t\tparser.error(parser_errors.missing_attribute_value);\r\n\t}\r\n\r\n\tif (quote_mark) parser.index += 1;\r\n\treturn value;\r\n}\r\n\r\nfunction read_sequence(parser: Parser, done: () => boolean): TemplateNode[] {\r\n\tlet current_chunk: Text = {\r\n\t\tstart: parser.index,\r\n\t\tend: null,\r\n\t\ttype: 'Text',\r\n\t\traw: '',\r\n\t\tdata: null\r\n\t};\r\n\r\n\tconst chunks: TemplateNode[] = [];\r\n\r\n\tfunction flush(end: number) {\r\n\t\tif (current_chunk.raw) {\r\n\t\t\tcurrent_chunk.data = decode_character_references(current_chunk.raw);\r\n\t\t\tcurrent_chunk.end = end;\r\n\t\t\tchunks.push(current_chunk);\r\n\t\t}\r\n\t}\r\n\r\n\twhile (parser.index < parser.template.length) {\r\n\t\tconst index = parser.index;\r\n\r\n\t\tif (done()) {\r\n\t\t\tflush(parser.index);\r\n\t\t\treturn chunks;\r\n\t\t} else if (parser.eat('{')) {\r\n\t\t\tflush(parser.index - 1);\r\n\r\n\t\t\tparser.allow_whitespace();\r\n\t\t\tconst expression = read_expression(parser);\r\n\t\t\tparser.allow_whitespace();\r\n\t\t\tparser.eat('}', true);\r\n\r\n\t\t\tchunks.push({\r\n\t\t\t\tstart: index,\r\n\t\t\t\tend: parser.index,\r\n\t\t\t\ttype: 'MustacheTag',\r\n\t\t\t\texpression\r\n\t\t\t});\r\n\r\n\t\t\tcurrent_chunk = {\r\n\t\t\t\tstart: parser.index,\r\n\t\t\t\tend: null,\r\n\t\t\t\ttype: 'Text',\r\n\t\t\t\traw: '',\r\n\t\t\t\tdata: null\r\n\t\t\t};\r\n\t\t} else {\r\n\t\t\tcurrent_chunk.raw += parser.template[parser.index++];\r\n\t\t}\r\n\t}\r\n\r\n\tparser.error(parser_errors.unexpected_eof);\r\n}\r\n","// Adapted from https://github.com/acornjs/acorn/blob/6584815dca7440e00de841d1dad152302fdd7ca5/src/tokenize.js\r\n// Reproduced under MIT License https://github.com/acornjs/acorn/blob/master/LICENSE\r\n\r\nexport default function full_char_code_at(str: string, i: number): number {\r\n\tconst code = str.charCodeAt(i);\r\n\tif (code <= 0xd7ff || code >= 0xe000) return code;\r\n\r\n\tconst next = str.charCodeAt(i + 1);\r\n\treturn (code << 10) + next - 0x35fdc00;\r\n}\r\n","const SQUARE_BRACKET_OPEN = '['.charCodeAt(0);\r\nconst SQUARE_BRACKET_CLOSE = ']'.charCodeAt(0);\r\nconst CURLY_BRACKET_OPEN = '{'.charCodeAt(0);\r\nconst CURLY_BRACKET_CLOSE = '}'.charCodeAt(0);\r\n\r\nexport function is_bracket_open(code) {\r\n\treturn code === SQUARE_BRACKET_OPEN || code === CURLY_BRACKET_OPEN;\r\n}\r\n\r\nexport function is_bracket_close(code) {\r\n\treturn code === SQUARE_BRACKET_CLOSE || code === CURLY_BRACKET_CLOSE;\r\n}\r\n\r\nexport function is_bracket_pair(open, close) {\r\n\treturn (\r\n\t\t(open === SQUARE_BRACKET_OPEN && close === SQUARE_BRACKET_CLOSE) ||\r\n\t\t(open === CURLY_BRACKET_OPEN && close === CURLY_BRACKET_CLOSE)\r\n\t);\r\n}\r\n\r\nexport function get_bracket_close(open) {\r\n\tif (open === SQUARE_BRACKET_OPEN) {\r\n\t\treturn SQUARE_BRACKET_CLOSE;\r\n\t}\r\n\tif (open === CURLY_BRACKET_OPEN) {\r\n\t\treturn CURLY_BRACKET_CLOSE;\r\n\t}\r\n}\r\n","import { Parser } from '../index';\r\nimport { isIdentifierStart } from 'acorn';\r\nimport full_char_code_at from '../../utils/full_char_code_at';\r\nimport {\r\n\tis_bracket_open,\r\n\tis_bracket_close,\r\n\tis_bracket_pair,\r\n\tget_bracket_close\r\n} from '../utils/bracket';\r\nimport { parse_expression_at } from '../acorn';\r\nimport { Pattern } from 'estree';\r\nimport parser_errors from '../errors';\r\n\r\nexport default function read_context(\r\n\tparser: Parser\r\n): Pattern & { start: number; end: number } {\r\n\tconst start = parser.index;\r\n\tlet i = parser.index;\r\n\r\n\tconst code = full_char_code_at(parser.template, i);\r\n\tif (isIdentifierStart(code, true)) {\r\n\t\treturn {\r\n\t\t\ttype: 'Identifier',\r\n\t\t\tname: parser.read_identifier(),\r\n\t\t\tstart,\r\n\t\t\tend: parser.index\r\n\t\t};\r\n\t}\r\n\r\n\tif (!is_bracket_open(code)) {\r\n\t\tparser.error(parser_errors.unexpected_token_destructure);\r\n\t}\r\n\r\n\tconst bracket_stack = [code];\r\n\ti += code <= 0xffff ? 1 : 2;\r\n\r\n\twhile (i < parser.template.length) {\r\n\t\tconst code = full_char_code_at(parser.template, i);\r\n\t\tif (is_bracket_open(code)) {\r\n\t\t\tbracket_stack.push(code);\r\n\t\t} else if (is_bracket_close(code)) {\r\n\t\t\tif (!is_bracket_pair(bracket_stack[bracket_stack.length - 1], code)) {\r\n\t\t\t\tparser.error(\r\n\t\t\t\t\tparser_errors.unexpected_token(\r\n\t\t\t\t\t\tString.fromCharCode(get_bracket_close(bracket_stack[bracket_stack.length - 1]))\r\n\t\t\t\t\t)\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t\tbracket_stack.pop();\r\n\t\t\tif (bracket_stack.length === 0) {\r\n\t\t\t\ti += code <= 0xffff ? 1 : 2;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\ti += code <= 0xffff ? 1 : 2;\r\n\t}\r\n\r\n\tparser.index = i;\r\n\r\n\tconst pattern_string = parser.template.slice(start, i);\r\n\ttry {\r\n\t\t// the length of the `space_with_newline` has to be start - 1\r\n\t\t// because we added a `(` in front of the pattern_string,\r\n\t\t// which shifted the entire string to right by 1\r\n\t\t// so we offset it by removing 1 character in the `space_with_newline`\r\n\t\t// to achieve that, we remove the 1st space encountered,\r\n\t\t// so it will not affect the `column` of the node\r\n\t\tlet space_with_newline = parser.template.slice(0, start).replace(/[^\\n]/g, ' ');\r\n\t\tconst first_space = space_with_newline.indexOf(' ');\r\n\t\tspace_with_newline = space_with_newline.slice(0, first_space) + space_with_newline.slice(first_space + 1);\r\n\r\n\t\treturn (parse_expression_at(\r\n\t\t\t`${space_with_newline}(${pattern_string} = 1)`,\r\n\t\t\tstart - 1\r\n\t\t) as any).left;\r\n\t} catch (error) {\r\n\t\tparser.acorn_error(error);\r\n\t}\r\n}\r\n","import { start_whitespace, end_whitespace } from './patterns';\r\n\r\nexport function trim_start(str: string) {\r\n\treturn str.replace(start_whitespace, '');\r\n}\r\n\r\nexport function trim_end(str: string) {\r\n\treturn str.replace(end_whitespace, '');\r\n}\r\n","import { TemplateNode } from '../../interfaces';\r\n\r\nexport function to_string(node: TemplateNode) {\r\n\tswitch (node.type) {\r\n\t\tcase 'IfBlock':\r\n\t\t\treturn '{#if} block';\r\n\t\tcase 'ThenBlock':\r\n\t\t\treturn '{:then} block';\r\n\t\tcase 'ElseBlock':\r\n\t\t\treturn '{:else} block';\r\n\t\tcase 'PendingBlock':\r\n\t\tcase 'AwaitBlock':\r\n\t\t\treturn '{#await} block';\r\n\t\tcase 'CatchBlock':\r\n\t\t\treturn '{:catch} block';\r\n\t\tcase 'EachBlock':\r\n\t\t\treturn '{#each} block';\r\n\t\tcase 'RawMustacheTag':\r\n\t\t\treturn '{@html} block';\r\n\t\tcase 'DebugTag':\r\n\t\t\treturn '{@debug} block';\r\n\t\tcase 'ConstTag':\r\n\t\t\treturn '{@const} tag';\r\n\t\tcase 'Element':\r\n\t\tcase 'InlineComponent':\r\n\t\tcase 'Slot':\r\n\t\tcase 'Title':\r\n\t\t\treturn `<${node.name}> tag`;\r\n\t\tdefault:\r\n\t\t\treturn node.type;\r\n\t}\r\n}\r\n","import read_context from '../read/context';\r\nimport read_expression from '../read/expression';\r\nimport { closing_tag_omitted } from '../utils/html';\r\nimport { whitespace } from '../../utils/patterns';\r\nimport { trim_start, trim_end } from '../../utils/trim';\r\nimport { to_string } from '../utils/node';\r\nimport { Parser } from '../index';\r\nimport { TemplateNode } from '../../interfaces';\r\nimport parser_errors from '../errors';\r\n\r\nfunction trim_whitespace(block: TemplateNode, trim_before: boolean, trim_after: boolean) {\r\n\tif (!block.children || block.children.length === 0) return; // AwaitBlock\r\n\r\n\tconst first_child = block.children[0];\r\n\tconst last_child = block.children[block.children.length - 1];\r\n\r\n\tif (first_child.type === 'Text' && trim_before) {\r\n\t\tfirst_child.data = trim_start(first_child.data);\r\n\t\tif (!first_child.data) block.children.shift();\r\n\t}\r\n\r\n\tif (last_child.type === 'Text' && trim_after) {\r\n\t\tlast_child.data = trim_end(last_child.data);\r\n\t\tif (!last_child.data) block.children.pop();\r\n\t}\r\n\r\n\tif (block.else) {\r\n\t\ttrim_whitespace(block.else, trim_before, trim_after);\r\n\t}\r\n\r\n\tif (first_child.elseif) {\r\n\t\ttrim_whitespace(first_child, trim_before, trim_after);\r\n\t}\r\n}\r\n\r\nexport default function mustache(parser: Parser) {\r\n\tconst start = parser.index;\r\n\tparser.index += 1;\r\n\r\n\tparser.allow_whitespace();\r\n\r\n\t// {/if}, {/each}, {/await} or {/key}\r\n\tif (parser.eat('/')) {\r\n\t\tlet block = parser.current();\r\n\t\tlet expected;\r\n\r\n\t\tif (closing_tag_omitted(block.name)) {\r\n\t\t\tblock.end = start;\r\n\t\t\tparser.stack.pop();\r\n\t\t\tblock = parser.current();\r\n\t\t}\r\n\r\n\t\tif (block.type === 'ElseBlock' || block.type === 'PendingBlock' || block.type === 'ThenBlock' || block.type === 'CatchBlock') {\r\n\t\t\tblock.end = start;\r\n\t\t\tparser.stack.pop();\r\n\t\t\tblock = parser.current();\r\n\r\n\t\t\texpected = 'await';\r\n\t\t}\r\n\r\n\t\tif (block.type === 'IfBlock') {\r\n\t\t\texpected = 'if';\r\n\t\t} else if (block.type === 'EachBlock') {\r\n\t\t\texpected = 'each';\r\n\t\t} else if (block.type === 'AwaitBlock') {\r\n\t\t\texpected = 'await';\r\n\t\t} else if (block.type === 'KeyBlock') {\r\n\t\t\texpected = 'key';\r\n\t\t} else {\r\n\t\t\tparser.error(parser_errors.unexpected_block_close);\r\n\t\t}\r\n\r\n\t\tparser.eat(expected, true);\r\n\t\tparser.allow_whitespace();\r\n\t\tparser.eat('}', true);\r\n\r\n\t\twhile (block.elseif) {\r\n\t\t\tblock.end = parser.index;\r\n\t\t\tparser.stack.pop();\r\n\t\t\tblock = parser.current();\r\n\r\n\t\t\tif (block.else) {\r\n\t\t\t\tblock.else.end = start;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// strip leading/trailing whitespace as necessary\r\n\t\tconst char_before = parser.template[block.start - 1];\r\n\t\tconst char_after = parser.template[parser.index];\r\n\t\tconst trim_before = !char_before || whitespace.test(char_before);\r\n\t\tconst trim_after = !char_after || whitespace.test(char_after);\r\n\r\n\t\ttrim_whitespace(block, trim_before, trim_after);\r\n\r\n\t\tblock.end = parser.index;\r\n\t\tparser.stack.pop();\r\n\t} else if (parser.eat(':else')) {\r\n\t\tif (parser.eat('if')) {\r\n\t\t\tparser.error(parser_errors.invalid_elseif);\r\n\t\t}\r\n\r\n\t\tparser.allow_whitespace();\r\n\r\n\t\t// :else if\r\n\t\tif (parser.eat('if')) {\r\n\t\t\tconst block = parser.current();\r\n\t\t\tif (block.type !== 'IfBlock') {\r\n\t\t\t\tparser.error(\r\n\t\t\t\t\tparser.stack.some(block => block.type === 'IfBlock') \r\n\t\t\t\t\t\t? parser_errors.invalid_elseif_placement_unclosed_block(to_string(block)) \r\n\t\t\t\t\t\t: parser_errors.invalid_elseif_placement_outside_if\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\tparser.require_whitespace();\r\n\r\n\t\t\tconst expression = read_expression(parser);\r\n\r\n\t\t\tparser.allow_whitespace();\r\n\t\t\tparser.eat('}', true);\r\n\r\n\t\t\tblock.else = {\r\n\t\t\t\tstart: parser.index,\r\n\t\t\t\tend: null,\r\n\t\t\t\ttype: 'ElseBlock',\r\n\t\t\t\tchildren: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tstart: parser.index,\r\n\t\t\t\t\t\tend: null,\r\n\t\t\t\t\t\ttype: 'IfBlock',\r\n\t\t\t\t\t\telseif: true,\r\n\t\t\t\t\t\texpression,\r\n\t\t\t\t\t\tchildren: []\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t};\r\n\r\n\t\t\tparser.stack.push(block.else.children[0]);\r\n\t\t} else {\r\n\t\t\t// :else\r\n\t\t\tconst block = parser.current();\r\n\t\t\tif (block.type !== 'IfBlock' && block.type !== 'EachBlock') {\r\n\t\t\t\tparser.error(\r\n\t\t\t\t\tparser.stack.some(block => block.type === 'IfBlock' || block.type === 'EachBlock') \r\n\t\t\t\t\t\t? parser_errors.invalid_else_placement_unclosed_block(to_string(block)) \r\n\t\t\t\t\t\t: parser_errors.invalid_else_placement_outside_if\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\tparser.allow_whitespace();\r\n\t\t\tparser.eat('}', true);\r\n\r\n\t\t\tblock.else = {\r\n\t\t\t\tstart: parser.index,\r\n\t\t\t\tend: null,\r\n\t\t\t\ttype: 'ElseBlock',\r\n\t\t\t\tchildren: []\r\n\t\t\t};\r\n\r\n\t\t\tparser.stack.push(block.else);\r\n\t\t}\r\n\t} else if (parser.match(':then') || parser.match(':catch')) {\r\n\t\tconst block = parser.current();\r\n\t\tconst is_then = parser.eat(':then') || !parser.eat(':catch');\r\n\r\n\t\tif (is_then) {\r\n\t\t\tif (block.type !== 'PendingBlock') {\r\n\t\t\t\tparser.error(\r\n\t\t\t\t\tparser.stack.some(block => block.type === 'PendingBlock')\r\n\t\t\t\t\t\t? parser_errors.invalid_then_placement_unclosed_block(to_string(block)) \r\n\t\t\t\t\t\t: parser_errors.invalid_then_placement_without_await \r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (block.type !== 'ThenBlock' && block.type !== 'PendingBlock') {\r\n\t\t\t\tparser.error(parser.stack.some(block => block.type === 'ThenBlock' || block.type === 'PendingBlock')\r\n\t\t\t\t\t\t? parser_errors.invalid_catch_placement_unclosed_block(to_string(block)) \r\n\t\t\t\t\t\t: parser_errors.invalid_catch_placement_without_await \r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tblock.end = start;\r\n\t\tparser.stack.pop();\r\n\t\tconst await_block = parser.current();\r\n\r\n\t\tif (!parser.eat('}')) {\r\n\t\t\tparser.require_whitespace();\r\n\t\t\tawait_block[is_then ? 'value' : 'error'] = read_context(parser);\r\n\t\t\tparser.allow_whitespace();\r\n\t\t\tparser.eat('}', true);\r\n\t\t}\r\n\r\n\t\tconst new_block: TemplateNode = {\r\n\t\t\tstart,\r\n\t\t\tend: null,\r\n\t\t\ttype: is_then ? 'ThenBlock' : 'CatchBlock',\r\n\t\t\tchildren: [],\r\n\t\t\tskip: false\r\n\t\t};\r\n\r\n\t\tawait_block[is_then ? 'then' : 'catch'] = new_block;\r\n\t\tparser.stack.push(new_block);\r\n\t} else if (parser.eat('#')) {\r\n\t\t// {#if foo}, {#each foo} or {#await foo}\r\n\t\tlet type;\r\n\r\n\t\tif (parser.eat('if')) {\r\n\t\t\ttype = 'IfBlock';\r\n\t\t} else if (parser.eat('each')) {\r\n\t\t\ttype = 'EachBlock';\r\n\t\t} else if (parser.eat('await')) {\r\n\t\t\ttype = 'AwaitBlock';\r\n\t\t} else if (parser.eat('key')) {\r\n\t\t\ttype = 'KeyBlock';\r\n\t\t} else {\r\n\t\t\tparser.error(parser_errors.expected_block_type);\r\n\t\t}\r\n\r\n\t\tparser.require_whitespace();\r\n\r\n\t\tconst expression = read_expression(parser);\r\n\r\n\t\tconst block: TemplateNode = type === 'AwaitBlock' ?\r\n\t\t\t{\r\n\t\t\t\tstart,\r\n\t\t\t\tend: null,\r\n\t\t\t\ttype,\r\n\t\t\t\texpression,\r\n\t\t\t\tvalue: null,\r\n\t\t\t\terror: null,\r\n\t\t\t\tpending: {\r\n\t\t\t\t\tstart: null,\r\n\t\t\t\t\tend: null,\r\n\t\t\t\t\ttype: 'PendingBlock',\r\n\t\t\t\t\tchildren: [],\r\n\t\t\t\t\tskip: true\r\n\t\t\t\t},\r\n\t\t\t\tthen: {\r\n\t\t\t\t\tstart: null,\r\n\t\t\t\t\tend: null,\r\n\t\t\t\t\ttype: 'ThenBlock',\r\n\t\t\t\t\tchildren: [],\r\n\t\t\t\t\tskip: true\r\n\t\t\t\t},\r\n\t\t\t\tcatch: {\r\n\t\t\t\t\tstart: null,\r\n\t\t\t\t\tend: null,\r\n\t\t\t\t\ttype: 'CatchBlock',\r\n\t\t\t\t\tchildren: [],\r\n\t\t\t\t\tskip: true\r\n\t\t\t\t}\r\n\t\t\t} :\r\n\t\t\t{\r\n\t\t\t\tstart,\r\n\t\t\t\tend: null,\r\n\t\t\t\ttype,\r\n\t\t\t\texpression,\r\n\t\t\t\tchildren: []\r\n\t\t\t};\r\n\r\n\t\tparser.allow_whitespace();\r\n\r\n\t\t// {#each} blocks must declare a context – {#each list as item}\r\n\t\tif (type === 'EachBlock') {\r\n\t\t\tparser.eat('as', true);\r\n\t\t\tparser.require_whitespace();\r\n\r\n\t\t\tblock.context = read_context(parser);\r\n\r\n\t\t\tparser.allow_whitespace();\r\n\r\n\t\t\tif (parser.eat(',')) {\r\n\t\t\t\tparser.allow_whitespace();\r\n\t\t\t\tblock.index = parser.read_identifier();\r\n\t\t\t\tif (!block.index) parser.error(parser_errors.expected_name);\r\n\r\n\t\t\t\tparser.allow_whitespace();\r\n\t\t\t}\r\n\r\n\t\t\tif (parser.eat('(')) {\r\n\t\t\t\tparser.allow_whitespace();\r\n\r\n\t\t\t\tblock.key = read_expression(parser);\r\n\t\t\t\tparser.allow_whitespace();\r\n\t\t\t\tparser.eat(')', true);\r\n\t\t\t\tparser.allow_whitespace();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst await_block_shorthand = type === 'AwaitBlock' && parser.eat('then');\r\n\t\tif (await_block_shorthand) {\r\n\t\t\tif (parser.match_regex(/\\s*}/)) {\r\n\t\t\t\tparser.allow_whitespace();\r\n\t\t\t} else {\r\n\t\t\t\tparser.require_whitespace();\r\n\t\t\t\tblock.value = read_context(parser);\r\n\t\t\t\tparser.allow_whitespace();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst await_block_catch_shorthand = !await_block_shorthand && type === 'AwaitBlock' && parser.eat('catch');\r\n\t\tif (await_block_catch_shorthand) {\r\n\t\t\tif (parser.match_regex(/\\s*}/)) {\r\n\t\t\t\tparser.allow_whitespace();\r\n\t\t\t} else {\r\n\t\t\t\tparser.require_whitespace();\r\n\t\t\t\tblock.error = read_context(parser);\r\n\t\t\t\tparser.allow_whitespace();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tparser.eat('}', true);\r\n\r\n\t\tparser.current().children.push(block);\r\n\t\tparser.stack.push(block);\r\n\r\n\t\tif (type === 'AwaitBlock') {\r\n\t\t\tlet child_block;\r\n\t\t\tif (await_block_shorthand) {\r\n\t\t\t\tblock.then.skip = false;\r\n\t\t\t\tchild_block = block.then;\r\n\t\t\t} else if (await_block_catch_shorthand) {\r\n\t\t\t\tblock.catch.skip = false;\r\n\t\t\t\tchild_block = block.catch;\r\n\t\t\t} else {\r\n\t\t\t\tblock.pending.skip = false;\r\n\t\t\t\tchild_block = block.pending;\r\n\t\t\t}\r\n\r\n\t\t\tchild_block.start = parser.index;\r\n\t\t\tparser.stack.push(child_block);\r\n\t\t}\r\n\t} else if (parser.eat('@html')) {\r\n\t\t// {@html content} tag\r\n\t\tparser.require_whitespace();\r\n\r\n\t\tconst expression = read_expression(parser);\r\n\r\n\t\tparser.allow_whitespace();\r\n\t\tparser.eat('}', true);\r\n\r\n\t\tparser.current().children.push({\r\n\t\t\tstart,\r\n\t\t\tend: parser.index,\r\n\t\t\ttype: 'RawMustacheTag',\r\n\t\t\texpression\r\n\t\t});\r\n\t} else if (parser.eat('@debug')) {\r\n\t\tlet identifiers;\r\n\r\n\t\t// Implies {@debug} which indicates \"debug all\"\r\n\t\tif (parser.read(/\\s*}/)) {\r\n\t\t\tidentifiers = [];\r\n\t\t} else {\r\n\t\t\tconst expression = read_expression(parser);\r\n\r\n\t\t\tidentifiers = expression.type === 'SequenceExpression'\r\n\t\t\t\t? expression.expressions\r\n\t\t\t\t: [expression];\r\n\r\n\t\t\tidentifiers.forEach(node => {\r\n\t\t\t\tif (node.type !== 'Identifier') {\r\n\t\t\t\t\tparser.error(parser_errors.invalid_debug_args, node.start);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tparser.allow_whitespace();\r\n\t\t\tparser.eat('}', true);\r\n\t\t}\r\n\r\n\t\tparser.current().children.push({\r\n\t\t\tstart,\r\n\t\t\tend: parser.index,\r\n\t\t\ttype: 'DebugTag',\r\n\t\t\tidentifiers\r\n\t\t});\r\n\t} else if (parser.eat('@const')) {\r\n\t\t// {@const a = b}\r\n\t\tparser.require_whitespace();\r\n\r\n\t\tconst expression = read_expression(parser);\r\n\r\n\t\tif (!(expression.type === 'AssignmentExpression' && expression.operator === '=')) {\r\n\t\t\tparser.error({\r\n\t\t\t\tcode: 'invalid-const-args',\r\n\t\t\t\tmessage: '{@const ...} must be an assignment.'\r\n\t\t\t}, start);\r\n\t\t}\r\n\r\n\t\tparser.allow_whitespace();\r\n\t\tparser.eat('}', true);\r\n\r\n\t\tparser.current().children.push({\r\n\t\t\tstart,\r\n\t\t\tend: parser.index,\r\n\t\t\ttype: 'ConstTag',\r\n\t\t\texpression\r\n\t\t});\r\n\t} else {\r\n\t\tconst expression = read_expression(parser);\r\n\r\n\t\tparser.allow_whitespace();\r\n\t\tparser.eat('}', true);\r\n\r\n\t\tparser.current().children.push({\r\n\t\t\tstart,\r\n\t\t\tend: parser.index,\r\n\t\t\ttype: 'MustacheTag',\r\n\t\t\texpression\r\n\t\t});\r\n\t}\r\n}\r\n","import { decode_character_references } from '../utils/html';\r\nimport { Parser } from '../index';\r\n\r\nexport default function text(parser: Parser) {\r\n\tconst start = parser.index;\r\n\r\n\tlet data = '';\r\n\r\n\twhile (\r\n\t\tparser.index < parser.template.length &&\r\n\t\t!parser.match('<') &&\r\n\t\t!parser.match('{')\r\n\t) {\r\n\t\tdata += parser.template[parser.index++];\r\n\t}\r\n\r\n\tconst node = {\r\n\t\tstart,\r\n\t\tend: parser.index,\r\n\t\ttype: 'Text',\r\n\t\traw: data,\r\n\t\tdata: decode_character_references(data)\r\n\t};\r\n\r\n\tparser.current().children.push(node);\r\n}\r\n","import tag from './tag';\r\nimport mustache from './mustache';\r\nimport text from './text';\r\nimport { Parser } from '../index';\r\n\r\nexport default function fragment(parser: Parser) {\r\n\tif (parser.match('<')) {\r\n\t\treturn tag;\r\n\t}\r\n\r\n\tif (parser.match('{')) {\r\n\t\treturn mustache;\r\n\t}\r\n\r\n\treturn text;\r\n}\r\n","import { isIdentifierStart, isIdentifierChar } from 'acorn';\r\nimport full_char_code_at from './full_char_code_at';\r\n\r\nexport const globals = new Set([\r\n\t'alert',\r\n\t'Array',\r\n\t'BigInt',\r\n\t'Boolean',\r\n\t'clearInterval',\r\n\t'clearTimeout',\r\n\t'confirm',\r\n\t'console',\r\n\t'Date',\r\n\t'decodeURI',\r\n\t'decodeURIComponent',\r\n\t'document',\r\n\t'Element',\r\n\t'encodeURI',\r\n\t'encodeURIComponent',\r\n\t'Error',\r\n\t'EvalError',\r\n\t'Event',\r\n\t'EventSource',\r\n\t'fetch',\r\n\t'FormData',\r\n\t'global',\r\n\t'globalThis',\r\n\t'history',\r\n\t'HTMLElement',\r\n\t'Infinity',\r\n\t'InternalError',\r\n\t'Intl',\r\n\t'isFinite',\r\n\t'isNaN',\r\n\t'JSON',\r\n\t'localStorage',\r\n\t'location',\r\n\t'Map',\r\n\t'Math',\r\n\t'NaN',\r\n\t'navigator',\r\n\t'Node',\r\n\t'Number',\r\n\t'Object',\r\n\t'parseFloat',\r\n\t'parseInt',\r\n\t'process',\r\n\t'Promise',\r\n\t'prompt',\r\n\t'RangeError',\r\n\t'ReferenceError',\r\n\t'RegExp',\r\n\t'sessionStorage',\r\n\t'Set',\r\n\t'setInterval',\r\n\t'setTimeout',\r\n\t'String',\r\n\t'SVGElement',\r\n\t'Symbol',\r\n\t'SyntaxError',\r\n\t'TypeError',\r\n\t'undefined',\r\n\t'URIError',\r\n\t'URL',\r\n\t'URLSearchParams',\r\n\t'window'\r\n]);\r\n\r\nexport const reserved = new Set([\r\n\t'arguments',\r\n\t'await',\r\n\t'break',\r\n\t'case',\r\n\t'catch',\r\n\t'class',\r\n\t'const',\r\n\t'continue',\r\n\t'debugger',\r\n\t'default',\r\n\t'delete',\r\n\t'do',\r\n\t'else',\r\n\t'enum',\r\n\t'eval',\r\n\t'export',\r\n\t'extends',\r\n\t'false',\r\n\t'finally',\r\n\t'for',\r\n\t'function',\r\n\t'if',\r\n\t'implements',\r\n\t'import',\r\n\t'in',\r\n\t'instanceof',\r\n\t'interface',\r\n\t'let',\r\n\t'new',\r\n\t'null',\r\n\t'package',\r\n\t'private',\r\n\t'protected',\r\n\t'public',\r\n\t'return',\r\n\t'static',\r\n\t'super',\r\n\t'switch',\r\n\t'this',\r\n\t'throw',\r\n\t'true',\r\n\t'try',\r\n\t'typeof',\r\n\t'var',\r\n\t'void',\r\n\t'while',\r\n\t'with',\r\n\t'yield'\r\n]);\r\n\r\nexport function is_valid(str: string): boolean {\r\n\tlet i = 0;\r\n\r\n\twhile (i < str.length) {\r\n\t\tconst code = full_char_code_at(str, i);\r\n\t\tif (!(i === 0 ? isIdentifierStart : isIdentifierChar)(code, true)) return false;\r\n\r\n\t\ti += code <= 0xffff ? 1 : 2;\r\n\t}\r\n\r\n\treturn true;\r\n}\r\n\r\nexport function sanitize(name: string) {\r\n\treturn name\r\n\t\t.replace(/[^a-zA-Z0-9_]+/g, '_')\r\n\t\t.replace(/^_/, '')\r\n\t\t.replace(/_$/, '')\r\n\t\t.replace(/^[0-9]/, '_$&');\r\n}\r\n","function getLocator(source, options) {\n    if (options === void 0) { options = {}; }\n    var offsetLine = options.offsetLine || 0;\n    var offsetColumn = options.offsetColumn || 0;\n    var originalLines = source.split('\\n');\n    var start = 0;\n    var lineRanges = originalLines.map(function (line, i) {\n        var end = start + line.length + 1;\n        var range = { start: start, end: end, line: i };\n        start = end;\n        return range;\n    });\n    var i = 0;\n    function rangeContains(range, index) {\n        return range.start <= index && index < range.end;\n    }\n    function getLocation(range, index) {\n        return { line: offsetLine + range.line, column: offsetColumn + index - range.start, character: index };\n    }\n    function locate(search, startIndex) {\n        if (typeof search === 'string') {\n            search = source.indexOf(search, startIndex || 0);\n        }\n        var range = lineRanges[i];\n        var d = search >= range.end ? 1 : -1;\n        while (range) {\n            if (rangeContains(range, search))\n                return getLocation(range, search);\n            i += d;\n            range = lineRanges[i];\n        }\n    }\n    ;\n    return locate;\n}\nfunction locate(source, search, options) {\n    if (typeof options === 'number') {\n        throw new Error('locate takes a { startIndex, offsetLine, offsetColumn } object as the third argument');\n    }\n    return getLocator(source, options)(search, options && options.startIndex);\n}\n\nexport { getLocator, locate };","function tabs_to_spaces(str: string) {\r\n\treturn str.replace(/^\\t+/, match => match.split('\\t').join('  '));\r\n}\r\n\r\nexport default function get_code_frame(\r\n\tsource: string,\r\n\tline: number,\r\n\tcolumn: number\r\n) {\r\n\tconst lines = source.split('\\n');\r\n\r\n\tconst frame_start = Math.max(0, line - 2);\r\n\tconst frame_end = Math.min(line + 3, lines.length);\r\n\r\n\tconst digits = String(frame_end + 1).length;\r\n\r\n\treturn lines\r\n\t\t.slice(frame_start, frame_end)\r\n\t\t.map((str, i) => {\r\n\t\t\tconst isErrorLine = frame_start + i === line;\r\n\t\t\tconst line_num = String(i + frame_start + 1).padStart(digits, ' ');\r\n\r\n\t\t\tif (isErrorLine) {\r\n\t\t\t\tconst indicator = ' '.repeat(digits + 2 + tabs_to_spaces(str.slice(0, column)).length) + '^';\r\n\t\t\t\treturn `${line_num}: ${tabs_to_spaces(str)}\\n${indicator}`;\r\n\t\t\t}\r\n\r\n\t\t\treturn `${line_num}: ${tabs_to_spaces(str)}`;\r\n\t\t})\r\n\t\t.join('\\n');\r\n}\r\n","import { locate } from 'locate-character';\r\nimport get_code_frame from './get_code_frame';\r\n\r\nclass CompileError extends Error {\r\n\tcode: string;\r\n\tstart: { line: number; column: number };\r\n\tend: { line: number; column: number };\r\n\tpos: number;\r\n\tfilename: string;\r\n\tframe: string;\r\n\r\n\ttoString() {\r\n\t\treturn `${this.message} (${this.start.line}:${this.start.column})\\n${this.frame}`;\r\n\t}\r\n}\r\n\r\nexport default function error(message: string, props: {\r\n\tname: string;\r\n\tcode: string;\r\n\tsource: string;\r\n\tfilename: string;\r\n\tstart: number;\r\n\tend?: number;\r\n}): never {\r\n\tconst error = new CompileError(message);\r\n\terror.name = props.name;\r\n\r\n\tconst start = locate(props.source, props.start, { offsetLine: 1 });\r\n\tconst end = locate(props.source, props.end || props.start, { offsetLine: 1 });\r\n\r\n\terror.code = props.code;\r\n\terror.start = start;\r\n\terror.end = end;\r\n\terror.pos = props.start;\r\n\terror.filename = props.filename;\r\n\r\n\terror.frame = get_code_frame(props.source, start.line - 1, start.column);\r\n\r\n\tthrow error;\r\n}\r\n","import { isIdentifierStart, isIdentifierChar } from 'acorn';\r\nimport fragment from './state/fragment';\r\nimport { whitespace } from '../utils/patterns';\r\nimport { reserved } from '../utils/names';\r\nimport full_char_code_at from '../utils/full_char_code_at';\r\nimport { TemplateNode, Ast, ParserOptions, Fragment, Style, Script } from '../interfaces';\r\nimport error from '../utils/error';\r\nimport parser_errors from './errors';\r\n\r\ntype ParserState = (parser: Parser) => (ParserState | void);\r\n\r\ninterface LastAutoClosedTag {\r\n\ttag: string;\r\n\treason: string;\r\n\tdepth: number;\r\n}\r\n\r\nexport class Parser {\r\n\treadonly template: string;\r\n\treadonly filename?: string;\r\n\treadonly customElement: boolean;\r\n\r\n\tindex = 0;\r\n\tstack: TemplateNode[] = [];\r\n\r\n\thtml: Fragment;\r\n\tcss: Style[] = [];\r\n\tjs: Script[] = [];\r\n\tmeta_tags = {};\r\n\tlast_auto_closed_tag?: LastAutoClosedTag;\r\n\r\n\tconstructor(template: string, options: ParserOptions) {\r\n\t\tif (typeof template !== 'string') {\r\n\t\t\tthrow new TypeError('Template must be a string');\r\n\t\t}\r\n\r\n\t\tthis.template = template.trimRight();\r\n\t\tthis.filename = options.filename;\r\n\t\tthis.customElement = options.customElement;\r\n\r\n\t\tthis.html = {\r\n\t\t\tstart: null,\r\n\t\t\tend: null,\r\n\t\t\ttype: 'Fragment',\r\n\t\t\tchildren: []\r\n\t\t};\r\n\r\n\t\tthis.stack.push(this.html);\r\n\r\n\t\tlet state: ParserState = fragment;\r\n\r\n\t\twhile (this.index < this.template.length) {\r\n\t\t\tstate = state(this) || fragment;\r\n\t\t}\r\n\r\n\t\tif (this.stack.length > 1) {\r\n\t\t\tconst current = this.current();\r\n\r\n\t\t\tconst type = current.type === 'Element' ? `<${current.name}>` : 'Block';\r\n\t\t\tconst slug = current.type === 'Element' ? 'element' : 'block';\r\n\r\n\t\t\tthis.error({\r\n\t\t\t\tcode: `unclosed-${slug}`,\r\n\t\t\t\tmessage: `${type} was left open`\r\n\t\t\t}, current.start);\r\n\t\t}\r\n\r\n\t\tif (state !== fragment) {\r\n\t\t\tthis.error({\r\n\t\t\t\tcode: 'unexpected-eof',\r\n\t\t\t\tmessage: 'Unexpected end of input'\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (this.html.children.length) {\r\n\t\t\tlet start = this.html.children[0].start;\r\n\t\t\twhile (whitespace.test(template[start])) start += 1;\r\n\r\n\t\t\tlet end = this.html.children[this.html.children.length - 1].end;\r\n\t\t\twhile (whitespace.test(template[end - 1])) end -= 1;\r\n\r\n\t\t\tthis.html.start = start;\r\n\t\t\tthis.html.end = end;\r\n\t\t} else {\r\n\t\t\tthis.html.start = this.html.end = null;\r\n\t\t}\r\n\t}\r\n\r\n\tcurrent() {\r\n\t\treturn this.stack[this.stack.length - 1];\r\n\t}\r\n\r\n\tacorn_error(err: any) {\r\n\t\tthis.error({\r\n\t\t\tcode: 'parse-error',\r\n\t\t\tmessage: err.message.replace(/ \\(\\d+:\\d+\\)$/, '')\r\n\t\t}, err.pos);\r\n\t}\r\n\r\n\terror({ code, message }: { code: string; message: string }, index = this.index) {\r\n\t\terror(message, {\r\n\t\t\tname: 'ParseError',\r\n\t\t\tcode,\r\n\t\t\tsource: this.template,\r\n\t\t\tstart: index,\r\n\t\t\tfilename: this.filename\r\n\t\t});\r\n\t}\r\n\r\n\teat(str: string, required?: boolean, error?: { code: string, message: string }) {\r\n\t\tif (this.match(str)) {\r\n\t\t\tthis.index += str.length;\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tif (required) {\r\n\t\t\tthis.error(error ||\r\n\t\t\t\t(this.index === this.template.length\r\n\t\t\t\t\t? parser_errors.unexpected_eof_token(str)\r\n\t\t\t\t\t: parser_errors.unexpected_token(str))\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\tmatch(str: string) {\r\n\t\treturn this.template.slice(this.index, this.index + str.length) === str;\r\n\t}\r\n\r\n\tmatch_regex(pattern: RegExp) {\r\n\t\tconst match = pattern.exec(this.template.slice(this.index));\r\n\t\tif (!match || match.index !== 0) return null;\r\n\r\n\t\treturn match[0];\r\n\t}\r\n\r\n\tallow_whitespace() {\r\n\t\twhile (\r\n\t\t\tthis.index < this.template.length &&\r\n\t\t\twhitespace.test(this.template[this.index])\r\n\t\t) {\r\n\t\t\tthis.index++;\r\n\t\t}\r\n\t}\r\n\r\n\tread(pattern: RegExp) {\r\n\t\tconst result = this.match_regex(pattern);\r\n\t\tif (result) this.index += result.length;\r\n\t\treturn result;\r\n\t}\r\n\r\n\tread_identifier(allow_reserved = false) {\r\n\t\tconst start = this.index;\r\n\r\n\t\tlet i = this.index;\r\n\r\n\t\tconst code = full_char_code_at(this.template, i);\r\n\t\tif (!isIdentifierStart(code, true)) return null;\r\n\r\n\t\ti += code <= 0xffff ? 1 : 2;\r\n\r\n\t\twhile (i < this.template.length) {\r\n\t\t\tconst code = full_char_code_at(this.template, i);\r\n\r\n\t\t\tif (!isIdentifierChar(code, true)) break;\r\n\t\t\ti += code <= 0xffff ? 1 : 2;\r\n\t\t}\r\n\r\n\t\tconst identifier = this.template.slice(this.index, this.index = i);\r\n\r\n\t\tif (!allow_reserved && reserved.has(identifier)) {\r\n\t\t\tthis.error({\r\n\t\t\t\tcode: 'unexpected-reserved-word',\r\n\t\t\t\tmessage: `'${identifier}' is a reserved word in JavaScript and cannot be used here`\r\n\t\t\t}, start);\r\n\t\t}\r\n\r\n\t\treturn identifier;\r\n\t}\r\n\r\n\tread_until(pattern: RegExp, error_message?: Parameters<Parser['error']>[0]) {\r\n\t\tif (this.index >= this.template.length) {\r\n\t\t\tthis.error(error_message || {\r\n\t\t\t\tcode: 'unexpected-eof',\r\n\t\t\t\tmessage: 'Unexpected end of input'\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tconst start = this.index;\r\n\t\tconst match = pattern.exec(this.template.slice(start));\r\n\r\n\t\tif (match) {\r\n\t\t\tthis.index = start + match.index;\r\n\t\t\treturn this.template.slice(start, this.index);\r\n\t\t}\r\n\r\n\t\tthis.index = this.template.length;\r\n\t\treturn this.template.slice(start);\r\n\t}\r\n\r\n\trequire_whitespace() {\r\n\t\tif (!whitespace.test(this.template[this.index])) {\r\n\t\t\tthis.error({\r\n\t\t\t\tcode: 'missing-whitespace',\r\n\t\t\t\tmessage: 'Expected whitespace'\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis.allow_whitespace();\r\n\t}\r\n}\r\n\r\nexport default function parse(\r\n\ttemplate: string,\r\n\toptions: ParserOptions = {}\r\n): Ast {\r\n\tconst parser = new Parser(template, options);\r\n\r\n\t// TODO we may want to allow multiple <style> tags —\r\n\t// one scoped, one global. for now, only allow one\r\n\tif (parser.css.length > 1) {\r\n\t\tparser.error(parser_errors.duplicate_style, parser.css[1].start);\r\n\t}\r\n\r\n\tconst instance_scripts = parser.js.filter(script => script.context === 'default');\r\n\tconst module_scripts = parser.js.filter(script => script.context === 'module');\r\n\r\n\tif (instance_scripts.length > 1) {\r\n\t\tparser.error(parser_errors.invalid_script_instance, instance_scripts[1].start);\r\n\t}\r\n\r\n\tif (module_scripts.length > 1) {\r\n\t\tparser.error(parser_errors.invalid_script_module, module_scripts[1].start);\r\n\t}\r\n\r\n\treturn {\r\n\t\thtml: parser.html,\r\n\t\tcss: parser.css[0],\r\n\t\tinstance: instance_scripts[0],\r\n\t\tmodule: module_scripts[0]\r\n\t};\r\n}\r\n","export function is_head(node) {\r\n\treturn node && node.type === 'MemberExpression' && node.object.name === '@_document' && node.property.name === 'head';\r\n}\r\n","import Renderer from './Renderer';\r\nimport Wrapper from './wrappers/shared/Wrapper';\r\nimport { b, x } from 'code-red';\r\nimport { Node, Identifier, ArrayPattern } from 'estree';\r\nimport { is_head } from './wrappers/shared/is_head';\r\n\r\nexport interface Bindings {\r\n\tobject: Identifier;\r\n\tproperty: Identifier;\r\n\tsnippet: Node;\r\n\tstore: string;\r\n\tmodifier: (node: Node) => Node;\r\n}\r\n\r\nexport interface BlockOptions {\r\n\tparent?: Block;\r\n\tname: Identifier;\r\n\ttype: string;\r\n\trenderer?: Renderer;\r\n\tcomment?: string;\r\n\tkey?: Identifier;\r\n\tbindings?: Map<string, Bindings>;\r\n\tdependencies?: Set<string>;\r\n}\r\n\r\nexport default class Block {\r\n\tparent?: Block;\r\n\trenderer: Renderer;\r\n\tname: Identifier;\r\n\ttype: string;\r\n\tcomment?: string;\r\n\r\n\twrappers: Wrapper[];\r\n\r\n\tkey: Identifier;\r\n\tfirst: Identifier;\r\n\r\n\tdependencies: Set<string> = new Set();\r\n\r\n\tbindings: Map<string, Bindings>;\r\n\tbinding_group_initialised: Set<string> = new Set();\r\n\r\n\tchunks: {\r\n\t\tdeclarations: Array<Node | Node[]>;\r\n\t\tinit: Array<Node | Node[]>;\r\n\t\tcreate: Array<Node | Node[]>;\r\n\t\tclaim: Array<Node | Node[]>;\r\n\t\thydrate: Array<Node | Node[]>;\r\n\t\tmount: Array<Node | Node[]>;\r\n\t\tmeasure: Array<Node | Node[]>;\r\n\t\trestore_measurements: Array<Node | Node[]>;\r\n\t\tfix: Array<Node | Node[]>;\r\n\t\tanimate: Array<Node | Node[]>;\r\n\t\tintro: Array<Node | Node[]>;\r\n\t\tupdate: Array<Node | Node[]>;\r\n\t\toutro: Array<Node | Node[]>;\r\n\t\tdestroy: Array<Node | Node[]>;\r\n\t};\r\n\r\n\tevent_listeners: Node[] = [];\r\n\r\n\tmaintain_context: boolean;\r\n\thas_animation: boolean;\r\n\thas_intros: boolean;\r\n\thas_outros: boolean;\r\n\thas_intro_method: boolean; // could have the method without the transition, due to siblings\r\n\thas_outro_method: boolean;\r\n\toutros: number;\r\n\r\n\taliases: Map<string, Identifier>;\r\n\tvariables: Map<string, { id: Identifier; init?: Node }> = new Map();\r\n\tget_unique_name: (name: string) => Identifier;\r\n\r\n\thas_update_method = false;\r\n\tautofocus?: { element_var: string, condition_expression?: any };\r\n\r\n\tconstructor(options: BlockOptions) {\r\n\t\tthis.parent = options.parent;\r\n\t\tthis.renderer = options.renderer;\r\n\t\tthis.name = options.name;\r\n\t\tthis.type = options.type;\r\n\t\tthis.comment = options.comment;\r\n\r\n\t\tthis.wrappers = [];\r\n\r\n\t\t// for keyed each blocks\r\n\t\tthis.key = options.key;\r\n\t\tthis.first = null;\r\n\r\n\t\tthis.bindings = options.bindings;\r\n\r\n\t\tthis.chunks = {\r\n\t\t\tdeclarations: [],\r\n\t\t\tinit: [],\r\n\t\t\tcreate: [],\r\n\t\t\tclaim: [],\r\n\t\t\thydrate: [],\r\n\t\t\tmount: [],\r\n\t\t\tmeasure: [],\r\n\t\t\trestore_measurements: [],\r\n\t\t\tfix: [],\r\n\t\t\tanimate: [],\r\n\t\t\tintro: [],\r\n\t\t\tupdate: [],\r\n\t\t\toutro: [],\r\n\t\t\tdestroy: []\r\n\t\t};\r\n\r\n\t\tthis.has_animation = false;\r\n\t\tthis.has_intro_method = false; // a block could have an intro method but not intro transitions, e.g. if a sibling block has intros\r\n\t\tthis.has_outro_method = false;\r\n\t\tthis.outros = 0;\r\n\r\n\t\tthis.get_unique_name = this.renderer.component.get_unique_name_maker();\r\n\r\n\t\tthis.aliases = new Map();\r\n\t\tif (this.key) this.aliases.set('key', this.get_unique_name('key'));\r\n\t}\r\n\r\n\tassign_variable_names() {\r\n\t\tconst seen: Set<string> = new Set();\r\n\t\tconst dupes: Set<string> = new Set();\r\n\r\n\t\tlet i = this.wrappers.length;\r\n\r\n\t\twhile (i--) {\r\n\t\t\tconst wrapper = this.wrappers[i];\r\n\r\n\t\t\tif (!wrapper.var) continue;\r\n\r\n\t\t\tif (seen.has(wrapper.var.name)) {\r\n\t\t\t\tdupes.add(wrapper.var.name);\r\n\t\t\t}\r\n\r\n\t\t\tseen.add(wrapper.var.name);\r\n\t\t}\r\n\r\n\t\tconst counts = new Map();\r\n\t\ti = this.wrappers.length;\r\n\r\n\t\twhile (i--) {\r\n\t\t\tconst wrapper = this.wrappers[i];\r\n\r\n\t\t\tif (!wrapper.var) continue;\r\n\r\n\t\t\tlet suffix = '';\r\n\t\t\tif (dupes.has(wrapper.var.name)) {\r\n\t\t\t\tconst i = counts.get(wrapper.var.name) || 0;\r\n\t\t\t\tcounts.set(wrapper.var.name, i + 1);\r\n\t\t\t\tsuffix = i;\r\n\t\t\t}\r\n\t\t\twrapper.var.name = this.get_unique_name(wrapper.var.name + suffix).name;\r\n\t\t}\r\n\t}\r\n\r\n\tadd_dependencies(dependencies: Set<string>) {\r\n\t\tdependencies.forEach(dependency => {\r\n\t\t\tthis.dependencies.add(dependency);\r\n\t\t});\r\n\r\n\t\tthis.has_update_method = true;\r\n\t\tif (this.parent) {\r\n\t\t\tthis.parent.add_dependencies(dependencies);\r\n\t\t}\r\n\t}\r\n\r\n\tadd_element(\r\n\t\tid: Identifier,\r\n\t\trender_statement: Node,\r\n\t\tclaim_statement: Node,\r\n\t\tparent_node: Node,\r\n\t\tno_detach?: boolean\r\n\t) {\r\n\t\tthis.add_variable(id);\r\n\t\tthis.chunks.create.push(b`${id} = ${render_statement};`);\r\n\r\n\t\tif (this.renderer.options.hydratable) {\r\n\t\t\tthis.chunks.claim.push(b`${id} = ${claim_statement || render_statement};`);\r\n\t\t}\r\n\r\n\t\tif (parent_node) {\r\n\t\t\tthis.chunks.mount.push(b`@append(${parent_node}, ${id});`);\r\n\t\t\tif (is_head(parent_node) && !no_detach) this.chunks.destroy.push(b`@detach(${id});`);\r\n\t\t} else {\r\n\t\t\tthis.chunks.mount.push(b`@insert(#target, ${id}, #anchor);`);\r\n\t\t\tif (!no_detach) this.chunks.destroy.push(b`if (detaching) @detach(${id});`);\r\n\t\t}\r\n\t}\r\n\r\n\tadd_intro(local?: boolean) {\r\n\t\tthis.has_intros = this.has_intro_method = true;\r\n\t\tif (!local && this.parent) this.parent.add_intro();\r\n\t}\r\n\r\n\tadd_outro(local?: boolean) {\r\n\t\tthis.has_outros = this.has_outro_method = true;\r\n\t\tthis.outros += 1;\r\n\t\tif (!local && this.parent) this.parent.add_outro();\r\n\t}\r\n\r\n\tadd_animation() {\r\n\t\tthis.has_animation = true;\r\n\t}\r\n\r\n\tadd_variable(id: Identifier, init?: Node) {\r\n\t\tif (this.variables.has(id.name)) {\r\n\t\t\tthrow new Error(\r\n\t\t\t\t`Variable '${id.name}' already initialised with a different value`\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tthis.variables.set(id.name, { id, init });\r\n\t}\r\n\r\n\talias(name: string) {\r\n\t\tif (!this.aliases.has(name)) {\r\n\t\t\tthis.aliases.set(name, this.get_unique_name(name));\r\n\t\t}\r\n\r\n\t\treturn this.aliases.get(name);\r\n\t}\r\n\r\n\tchild(options: BlockOptions) {\r\n\t\treturn new Block(Object.assign({}, this, { key: null }, options, { parent: this }));\r\n\t}\r\n\r\n\tget_contents(key?: any) {\r\n\t\tconst { dev } = this.renderer.options;\r\n\r\n\t\tif (this.has_outros) {\r\n\t\t\tthis.add_variable({ type: 'Identifier', name: '#current' });\r\n\r\n\t\t\tif (this.chunks.intro.length > 0) {\r\n\t\t\t\tthis.chunks.intro.push(b`#current = true;`);\r\n\t\t\t\tthis.chunks.mount.push(b`#current = true;`);\r\n\t\t\t}\r\n\r\n\t\t\tif (this.chunks.outro.length > 0) {\r\n\t\t\t\tthis.chunks.outro.push(b`#current = false;`);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.autofocus) {\r\n\t\t\tif (this.autofocus.condition_expression) {\r\n\t\t\t\tthis.chunks.mount.push(b`if (${this.autofocus.condition_expression}) ${this.autofocus.element_var}.focus();`);\r\n\t\t\t} else {\r\n\t\t\t\tthis.chunks.mount.push(b`${this.autofocus.element_var}.focus();`);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.render_listeners();\r\n\r\n\t\tconst properties: Record<string, any> = {};\r\n\r\n\t\tconst noop = x`@noop`;\r\n\r\n\t\tproperties.key = key;\r\n\r\n\t\tif (this.first) {\r\n\t\t\tproperties.first = x`null`;\r\n\t\t\tthis.chunks.hydrate.push(b`this.first = ${this.first};`);\r\n\t\t}\r\n\r\n\t\tif (this.chunks.create.length === 0 && this.chunks.hydrate.length === 0) {\r\n\t\t\tproperties.create = noop;\r\n\t\t} else {\r\n\t\t\tconst hydrate = this.chunks.hydrate.length > 0 && (\r\n\t\t\t\tthis.renderer.options.hydratable\r\n\t\t\t\t\t? b`this.h();`\r\n\t\t\t\t\t: this.chunks.hydrate\r\n\t\t\t);\r\n\r\n\t\t\tproperties.create = x`function #create() {\r\n\t\t\t\t${this.chunks.create}\r\n\t\t\t\t${hydrate}\r\n\t\t\t}`;\r\n\t\t}\r\n\r\n\t\tif (this.renderer.options.hydratable || this.chunks.claim.length > 0) {\r\n\t\t\tif (this.chunks.claim.length === 0 && this.chunks.hydrate.length === 0) {\r\n\t\t\t\tproperties.claim = noop;\r\n\t\t\t} else {\r\n\t\t\t\tproperties.claim = x`function #claim(#nodes) {\r\n\t\t\t\t\t${this.chunks.claim}\r\n\t\t\t\t\t${this.renderer.options.hydratable && this.chunks.hydrate.length > 0 && b`this.h();`}\r\n\t\t\t\t}`;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.renderer.options.hydratable && this.chunks.hydrate.length > 0) {\r\n\t\t\tproperties.hydrate = x`function #hydrate() {\r\n\t\t\t\t${this.chunks.hydrate}\r\n\t\t\t}`;\r\n\t\t}\r\n\r\n\t\tif (this.chunks.mount.length === 0) {\r\n\t\t\tproperties.mount = noop;\r\n\t\t} else if (this.event_listeners.length === 0) {\r\n\t\t\tproperties.mount = x`function #mount(#target, #anchor) {\r\n\t\t\t\t${this.chunks.mount}\r\n\t\t\t}`;\r\n\t\t} else {\r\n\t\t\tproperties.mount = x`function #mount(#target, #anchor) {\r\n\t\t\t\t${this.chunks.mount}\r\n\t\t\t}`;\r\n\t\t}\r\n\r\n\t\tif (this.has_update_method || this.maintain_context) {\r\n\t\t\tif (this.chunks.update.length === 0 && !this.maintain_context) {\r\n\t\t\t\tproperties.update = noop;\r\n\t\t\t} else {\r\n\t\t\t\tconst ctx = this.maintain_context ? x`#new_ctx` : x`#ctx`;\r\n\r\n\t\t\t\tlet dirty: Identifier | ArrayPattern = { type: 'Identifier', name: '#dirty' };\r\n\t\t\t\tif (!this.renderer.context_overflow && !this.parent) {\r\n\t\t\t\t\tdirty = { type: 'ArrayPattern', elements: [dirty] };\r\n\t\t\t\t}\r\n\r\n\t\t\t\tproperties.update = x`function #update(${ctx}, ${dirty}) {\r\n\t\t\t\t\t${this.maintain_context && b`#ctx = ${ctx};`}\r\n\t\t\t\t\t${this.chunks.update}\r\n\t\t\t\t}`;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.has_animation) {\r\n\t\t\tproperties.measure = x`function #measure() {\r\n\t\t\t\t${this.chunks.measure}\r\n\t\t\t}`;\r\n\r\n\t\t\tif (this.chunks.restore_measurements.length) {\r\n\t\t\t\tproperties.restore_measurements = x`function #restore_measurements(#measurement) {\r\n\t\t\t\t\t${this.chunks.restore_measurements}\r\n\t\t\t\t}`;\r\n\t\t\t}\r\n\r\n\t\t\tproperties.fix = x`function #fix() {\r\n\t\t\t\t${this.chunks.fix}\r\n\t\t\t}`;\r\n\r\n\t\t\tproperties.animate = x`function #animate() {\r\n\t\t\t\t${this.chunks.animate}\r\n\t\t\t}`;\r\n\t\t}\r\n\r\n\t\tif (this.has_intro_method || this.has_outro_method) {\r\n\t\t\tif (this.chunks.intro.length === 0) {\r\n\t\t\t\tproperties.intro = noop;\r\n\t\t\t} else {\r\n\t\t\t\tproperties.intro = x`function #intro(#local) {\r\n\t\t\t\t\t${this.has_outros && b`if (#current) return;`}\r\n\t\t\t\t\t${this.chunks.intro}\r\n\t\t\t\t}`;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.chunks.outro.length === 0) {\r\n\t\t\t\tproperties.outro = noop;\r\n\t\t\t} else {\r\n\t\t\t\tproperties.outro = x`function #outro(#local) {\r\n\t\t\t\t\t${this.chunks.outro}\r\n\t\t\t\t}`;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.chunks.destroy.length === 0) {\r\n\t\t\tproperties.destroy = noop;\r\n\t\t} else {\r\n\t\t\tproperties.destroy = x`function #destroy(detaching) {\r\n\t\t\t\t${this.chunks.destroy}\r\n\t\t\t}`;\r\n\t\t}\r\n\r\n\t\tif (!this.renderer.component.compile_options.dev) {\r\n\t\t\t// allow shorthand names\r\n\t\t\tfor (const name in properties) {\r\n\t\t\t\tconst property = properties[name];\r\n\t\t\t\tif (property) property.id = null;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst return_value: any = x`{\r\n\t\t\tkey: ${properties.key},\r\n\t\t\tfirst: ${properties.first},\r\n\t\t\tc: ${properties.create},\r\n\t\t\tl: ${properties.claim},\r\n\t\t\th: ${properties.hydrate},\r\n\t\t\tm: ${properties.mount},\r\n\t\t\tp: ${properties.update},\r\n\t\t\tr: ${properties.measure},\r\n\t\t\ts: ${properties.restore_measurements},\r\n\t\t\tf: ${properties.fix},\r\n\t\t\ta: ${properties.animate},\r\n\t\t\ti: ${properties.intro},\r\n\t\t\to: ${properties.outro},\r\n\t\t\td: ${properties.destroy}\r\n\t\t}`;\r\n\r\n\t\tconst block = dev && this.get_unique_name('block');\r\n\r\n\t\tconst body = b`\r\n\t\t\t${this.chunks.declarations}\r\n\r\n\t\t\t${Array.from(this.variables.values()).map(({ id, init }) => {\r\n\t\t\t\treturn init\r\n\t\t\t\t\t? b`let ${id} = ${init}`\r\n\t\t\t\t\t: b`let ${id}`;\r\n\t\t\t})}\r\n\r\n\t\t\t${this.chunks.init}\r\n\r\n\t\t\t${dev\r\n\t\t\t\t? b`\r\n\t\t\t\t\tconst ${block} = ${return_value};\r\n\t\t\t\t\t@dispatch_dev(\"SvelteRegisterBlock\", {\r\n\t\t\t\t\t\tblock: ${block},\r\n\t\t\t\t\t\tid: ${this.name || 'create_fragment'}.name,\r\n\t\t\t\t\t\ttype: \"${this.type}\",\r\n\t\t\t\t\t\tsource: \"${this.comment ? this.comment.replace(/\"/g, '\\\\\"') : ''}\",\r\n\t\t\t\t\t\tctx: #ctx\r\n\t\t\t\t\t});\r\n\t\t\t\t\treturn ${block};`\r\n\t\t\t\t: b`\r\n\t\t\t\t\treturn ${return_value};`\r\n\t\t\t}\r\n\t\t`;\r\n\r\n\t\treturn body;\r\n\t}\r\n\r\n\thas_content(): boolean {\r\n\t\treturn !!this.first ||\r\n\t\t\tthis.event_listeners.length > 0 ||\r\n\t\t\tthis.chunks.intro.length > 0 ||\r\n\t\t\tthis.chunks.outro.length > 0  ||\r\n\t\t\tthis.chunks.create.length > 0 ||\r\n\t\t\tthis.chunks.hydrate.length > 0 ||\r\n\t\t\tthis.chunks.claim.length > 0 ||\r\n\t\t\tthis.chunks.mount.length > 0 ||\r\n\t\t\tthis.chunks.update.length > 0 ||\r\n\t\t\tthis.chunks.destroy.length > 0 ||\r\n\t\t\tthis.has_animation;\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst key = this.key && this.get_unique_name('key');\r\n\r\n\t\tconst args: any[] = [x`#ctx`];\r\n\t\tif (key) args.unshift(key);\r\n\r\n\t\tconst fn = b`function ${this.name}(${args}) {\r\n\t\t\t${this.get_contents(key)}\r\n\t\t}`;\r\n\r\n\t\treturn this.comment\r\n\t\t\t? b`\r\n\t\t\t\t// ${this.comment}\r\n\t\t\t\t${fn}`\r\n\t\t\t: fn;\r\n\t}\r\n\r\n\trender_listeners(chunk: string = '') {\r\n\t\tif (this.event_listeners.length > 0) {\r\n\t\t\tthis.add_variable({ type: 'Identifier', name: '#mounted' });\r\n\t\t\tthis.chunks.destroy.push(b`#mounted = false`);\r\n\r\n\t\t\tconst dispose: Identifier = {\r\n\t\t\t\ttype: 'Identifier',\r\n\t\t\t\tname: `#dispose${chunk}`\r\n\t\t\t};\r\n\r\n\t\t\tthis.add_variable(dispose);\r\n\r\n\t\t\tif (this.event_listeners.length === 1) {\r\n\t\t\t\tthis.chunks.mount.push(\r\n\t\t\t\t\tb`\r\n\t\t\t\t\t\tif (!#mounted) {\r\n\t\t\t\t\t\t\t${dispose} = ${this.event_listeners[0]};\r\n\t\t\t\t\t\t\t#mounted = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t`\r\n\t\t\t\t);\r\n\r\n\t\t\t\tthis.chunks.destroy.push(\r\n\t\t\t\t\tb`${dispose}();`\r\n\t\t\t\t);\r\n\t\t\t} else {\r\n\t\t\t\tthis.chunks.mount.push(b`\r\n\t\t\t\t\tif (!#mounted) {\r\n\t\t\t\t\t\t${dispose} = [\r\n\t\t\t\t\t\t\t${this.event_listeners}\r\n\t\t\t\t\t\t];\r\n\t\t\t\t\t\t#mounted = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t`);\r\n\r\n\t\t\t\tthis.chunks.destroy.push(\r\n\t\t\t\t\tb`@run_all(${dispose});`\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n","import Renderer from '../../Renderer';\r\nimport Block from '../../Block';\r\nimport { x } from 'code-red';\r\nimport { TemplateNode } from '../../../../interfaces';\r\nimport { Identifier } from 'estree';\r\n\r\nexport default class Wrapper {\r\n\trenderer: Renderer;\r\n\tparent: Wrapper;\r\n\tnode: TemplateNode;\r\n\r\n\tprev: Wrapper | null;\r\n\tnext: Wrapper | null;\r\n\r\n\tvar: Identifier;\r\n\tcan_use_innerhtml: boolean;\r\n\tis_static_content: boolean;\r\n\r\n\tconstructor(\r\n\t\trenderer: Renderer,\r\n\t\tblock: Block,\r\n\t\tparent: Wrapper,\r\n\t\tnode: TemplateNode\r\n\t) {\r\n\t\tthis.node = node;\r\n\r\n\t\t// make these non-enumerable so that they can be logged sensibly\r\n\t\t// (TODO in dev only?)\r\n\t\tObject.defineProperties(this, {\r\n\t\t\trenderer: {\r\n\t\t\t\tvalue: renderer\r\n\t\t\t},\r\n\t\t\tparent: {\r\n\t\t\t\tvalue: parent\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.can_use_innerhtml = !renderer.options.hydratable;\r\n\t\tthis.is_static_content = !renderer.options.hydratable;\r\n\r\n\t\tblock.wrappers.push(this);\r\n\t}\r\n\r\n\tcannot_use_innerhtml() {\r\n\t\tthis.can_use_innerhtml = false;\r\n\t\tif (this.parent) this.parent.cannot_use_innerhtml();\r\n\t}\r\n\r\n\tnot_static_content() {\r\n\t\tthis.is_static_content = false;\r\n\t\tif (this.parent) this.parent.not_static_content();\r\n\t}\r\n\r\n\tget_or_create_anchor(block: Block, parent_node: Identifier, parent_nodes: Identifier) {\r\n\t\t// TODO use this in EachBlock and IfBlock — tricky because\r\n\t\t// children need to be created first\r\n\t\tconst needs_anchor = this.next ? !this.next.is_dom_node() : !parent_node || !this.parent.is_dom_node();\r\n\t\tconst anchor = needs_anchor\r\n\t\t\t? block.get_unique_name(`${this.var.name}_anchor`)\r\n\t\t\t: (this.next && this.next.var) || { type: 'Identifier', name: 'null' };\r\n\r\n\t\tif (needs_anchor) {\r\n\t\t\tblock.add_element(\r\n\t\t\t\tanchor,\r\n\t\t\t\tx`@empty()`,\r\n\t\t\t\tparent_nodes && x`@empty()`,\r\n\t\t\t\tparent_node as Identifier\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn anchor;\r\n\t}\r\n\r\n\tget_update_mount_node(anchor: Identifier): Identifier {\r\n\t\treturn ((this.parent && this.parent.is_dom_node())\r\n\t\t\t? this.parent.var\r\n\t\t\t: x`${anchor}.parentNode`) as Identifier;\r\n\t}\r\n\r\n\tis_dom_node() {\r\n\t\treturn (\r\n\t\t\tthis.node.type === 'Element' ||\r\n\t\t\tthis.node.type === 'Text' ||\r\n\t\t\tthis.node.type === 'MustacheTag'\r\n\t\t);\r\n\t}\r\n\r\n\trender(_block: Block, _parent_node: Identifier, _parent_nodes: Identifier) {\r\n\t\tthrow Error('Wrapper class is not renderable');\r\n\t}\r\n}\r\n","import Component from '../../../Component';\r\nimport { INode } from '../../../nodes/interfaces';\r\n\r\nexport default function create_debugging_comment(\r\n\tnode: INode,\r\n\tcomponent: Component\r\n) {\r\n\tconst { locate, source } = component;\r\n\r\n\tlet c = node.start;\r\n\tif (node.type === 'ElseBlock') {\r\n\t\twhile (source[c - 1] !== '{') c -= 1;\r\n\t\twhile (source[c - 1] === '{') c -= 1;\r\n\t}\r\n\r\n\tlet d;\r\n\r\n\tif (node.type === 'InlineComponent' || node.type === 'Element' || node.type === 'SlotTemplate') {\r\n\t\tif (node.children.length) {\r\n\t\t\td = node.children[0].start;\r\n\t\t\twhile (source[d - 1] !== '>') d -= 1;\r\n\t\t} else {\r\n\t\t\td = node.start;\r\n\t\t\twhile (source[d] !== '>') d += 1;\r\n\t\t\td += 1;\r\n\t\t}\r\n\t} else if (node.type === 'Text' || node.type === 'Comment') {\r\n\t\td = node.end;\r\n\t} else {\r\n\t\t// @ts-ignore\r\n\t\td = node.expression ? node.expression.node.end : c;\r\n\t\twhile (source[d] !== '}' && d <= source.length) d += 1;\r\n\t\twhile (source[d] === '}') d += 1;\r\n\t}\r\n\r\n\tconst start = locate(c);\r\n\tconst loc = `(${start.line}:${start.column})`;\r\n\r\n\treturn `${loc} ${source.slice(c, d)}`.replace(/\\s/g, ' ');\r\n}\r\n","import Attribute from '../Attribute';\r\nimport Component from '../../Component';\r\nimport { INode } from '../interfaces';\r\nimport Text from '../Text';\r\nimport { TemplateNode } from '../../../interfaces';\r\n\r\nexport default class Node {\r\n\treadonly start: number;\r\n\treadonly end: number;\r\n\treadonly component: Component;\r\n\treadonly parent: INode;\r\n\treadonly type: string;\r\n\r\n\tprev?: INode;\r\n\tnext?: INode;\r\n\r\n\tcan_use_innerhtml: boolean;\r\n\tvar: string;\r\n\tattributes: Attribute[];\r\n\r\n\tconstructor(component: Component, parent: Node, _scope, info: TemplateNode) {\r\n\t\tthis.start = info.start;\r\n\t\tthis.end = info.end;\r\n\t\tthis.type = info.type;\r\n\r\n\t\t// this makes properties non-enumerable, which makes logging\r\n\t\t// bearable. might have a performance cost. TODO remove in prod?\r\n\t\tObject.defineProperties(this, {\r\n\t\t\tcomponent: {\r\n\t\t\t\tvalue: component\r\n\t\t\t},\r\n\t\t\tparent: {\r\n\t\t\t\tvalue: parent\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tcannot_use_innerhtml() {\r\n\t\tif (this.can_use_innerhtml !== false) {\r\n\t\t\tthis.can_use_innerhtml = false;\r\n\t\t\tif (this.parent) this.parent.cannot_use_innerhtml();\r\n\t\t}\r\n\t}\r\n\r\n\tfind_nearest(selector: RegExp) {\r\n\t\tif (selector.test(this.type)) return this;\r\n\t\tif (this.parent) return this.parent.find_nearest(selector);\r\n\t}\r\n\r\n\tget_static_attribute_value(name: string) {\r\n\t\tconst attribute = this.attributes && this.attributes.find(\r\n\t\t\t(attr: Attribute) => attr.type === 'Attribute' && attr.name.toLowerCase() === name\r\n\t\t);\r\n\r\n\t\tif (!attribute) return null;\r\n\r\n\t\tif (attribute.is_true) return true;\r\n\t\tif (attribute.chunks.length === 0) return '';\r\n\r\n\t\tif (attribute.chunks.length === 1 && attribute.chunks[0].type === 'Text') {\r\n\t\t\treturn (attribute.chunks[0] as Text).data;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n\r\n\thas_ancestor(type: string) {\r\n\t\treturn this.parent ?\r\n\t\t\tthis.parent.type === type || this.parent.has_ancestor(type) :\r\n\t\t\tfalse;\r\n\t}\r\n}\r\n","// All compiler warnings should be listed and accessed from here\r\n\r\nimport { ARIAPropertyDefinition } from 'aria-query';\r\n\r\n/**\r\n * @internal\r\n */\r\nexport default {\r\n\tcustom_element_no_tag: {\r\n\t\tcode: 'custom-element-no-tag',\r\n\t\tmessage: 'No custom element \\'tag\\' option was specified. To automatically register a custom element, specify a name with a hyphen in it, e.g. <svelte:options tag=\"my-thing\"/>. To hide this warning, use <svelte:options tag={null}/>'\r\n\t},\r\n\tunused_export_let: (component: string, property: string) => ({\r\n\t\tcode: 'unused-export-let',\r\n\t\tmessage: `${component} has unused export property '${property}'. If it is for external reference only, please consider using \\`export const ${property}\\``\r\n\t}),\r\n\tmodule_script_reactive_declaration: {\r\n\t\tcode: 'module-script-reactive-declaration',\r\n\t\tmessage: '$: has no effect in a module script'\r\n\t},\r\n\tnon_top_level_reactive_declaration: {\r\n\t\tcode: 'non-top-level-reactive-declaration',\r\n\t\tmessage: '$: has no effect outside of the top-level'\r\n\t},\r\n\tmodule_script_variable_reactive_declaration: (names: string[]) => ({\r\n\t\tcode: 'module-script-reactive-declaration',\r\n\t\tmessage: `${names.map(name => `\"${name}\"`).join(', ')} ${names.length > 1 ? 'are' : 'is'} declared in a module script and will not be reactive`\r\n\t}),\r\n\tmissing_declaration: (name: string, has_script: boolean) => ({\r\n\t\tcode: 'missing-declaration',\r\n\t\tmessage: `'${name}' is not defined` + (has_script ? '' : `. Consider adding a <script> block with 'export let ${name}' to declare a prop`)\r\n\t}),\r\n\tmissing_custom_element_compile_options: {\r\n\t\tcode: 'missing-custom-element-compile-options',\r\n\t\tmessage: \"The 'tag' option is used when generating a custom element. Did you forget the 'customElement: true' compile option?\"\r\n\t},\r\n\tcss_unused_selector: (selector: string) => ({\r\n\t\tcode: 'css-unused-selector',\r\n\t\tmessage: `Unused CSS selector \"${selector}\"`\r\n\t}),\r\n\tempty_block: {\r\n\t\tcode: 'empty-block',\r\n\t\tmessage: 'Empty block'\r\n\t},\r\n\treactive_component: (name: string) => ({\r\n\t\tcode: 'reactive-component',\r\n\t\tmessage: `<${name}/> will not be reactive if ${name} changes. Use <svelte:component this={${name}}/> if you want this reactivity.`\r\n\t}),\r\n\tcomponent_name_lowercase: (name: string) => ({\r\n\t\tcode: 'component-name-lowercase',\r\n\t\tmessage: `<${name}> will be treated as an HTML element unless it begins with a capital letter`\r\n\t}),\r\n\tavoid_is: {\r\n\t\tcode: 'avoid-is',\r\n\t\tmessage: 'The \\'is\\' attribute is not supported cross-browser and should be avoided'\r\n\t},\r\n\tinvalid_html_attribute: (name: string, suggestion: string) => ({\r\n\t\tcode: 'invalid-html-attribute',\r\n\t\tmessage: `'${name}' is not a valid HTML attribute. Did you mean '${suggestion}'?`\r\n\t}),\r\n\ta11y_aria_attributes: (name: string) => ({\r\n\t\tcode: 'a11y-aria-attributes',\r\n\t\tmessage: `A11y: <${name}> should not have aria-* attributes`\r\n\t}),\r\n\ta11y_incorrect_attribute_type: (schema: ARIAPropertyDefinition, attribute: string) => {\r\n\t\tlet message;\r\n\t\tswitch (schema.type) {\r\n\t\t\tcase 'boolean':\r\n\t\t\t\tmessage = `The value of '${attribute}' must be exactly one of true or false`;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'id':\r\n\t\t\t\tmessage = `The value of '${attribute}' must be a string that represents a DOM element ID`;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'idlist':\r\n\t\t\t\tmessage = `The value of '${attribute}' must be a space-separated list of strings that represent DOM element IDs`;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'tristate':\r\n\t\t\t\tmessage = `The value of '${attribute}' must be exactly one of true, false, or mixed`;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'token':\r\n\t\t\t\tmessage = `The value of '${attribute}' must be exactly one of ${(schema.values || []).join(', ')}`;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'tokenlist':\r\n\t\t\t\tmessage = `The value of '${attribute}' must be a space-separated list of one or more of ${(schema.values || []).join(', ')}`;\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tmessage = `The value of '${attribute}' must be of type ${schema.type}`;\r\n\t\t}\r\n\t\treturn {\r\n\t\t\tcode: 'a11y-incorrect-aria-attribute-type',\r\n\t\t\tmessage: `A11y: ${message}`\r\n\t\t};\r\n\t},\r\n\ta11y_unknown_aria_attribute: (attribute: string, suggestion?: string) => ({\r\n\t\tcode: 'a11y-unknown-aria-attribute',\r\n\t\tmessage: `A11y: Unknown aria attribute 'aria-${attribute}'` + (suggestion ? ` (did you mean '${suggestion}'?)` : '')\r\n\t}),\r\n\ta11y_hidden: (name: string) => ({\r\n\t\tcode: 'a11y-hidden',\r\n\t\tmessage: `A11y: <${name}> element should not be hidden`\r\n\t}),\r\n\ta11y_misplaced_role: (name: string) => ({\r\n\t\tcode: 'a11y-misplaced-role',\r\n\t\tmessage: `A11y: <${name}> should not have role attribute`\r\n\t}),\r\n\ta11y_unknown_role: (role: string | boolean, suggestion?: string) => ({\r\n\t\tcode: 'a11y-unknown-role',\r\n\t\tmessage: `A11y: Unknown role '${role}'` + (suggestion ? ` (did you mean '${suggestion}'?)` : '')\r\n\t}),\r\n\ta11y_no_abstract_role: (role: string | boolean) => ({\r\n\t\tcode: 'a11y-no-abstract-role',\r\n\t\tmessage: `A11y: Abstract role '${role}' is forbidden`\r\n\t}),\r\n\ta11y_no_redundant_roles: (role: string | boolean) => ({\r\n\t\tcode: 'a11y-no-redundant-roles',\r\n\t\tmessage: `A11y: Redundant role '${role}'`\r\n\t}),\r\n\ta11y_no_interactive_element_to_noninteractive_role: (role: string | boolean, element: string) => ({\r\n\t\tcode: 'a11y-no-interactive-element-to-noninteractive-role',\r\n\t\tmessage: `A11y: <${element}> cannot have role '${role}'`\r\n\t}),\r\n\ta11y_role_has_required_aria_props: (role: string, props: string[]) => ({\r\n\t\tcode: 'a11y-role-has-required-aria-props',\r\n\t\tmessage: `A11y: Elements with the ARIA role \"${role}\" must have the following attributes defined: ${props.map(name => `\"${name}\"`).join(', ')}`\r\n\t}),\r\n\ta11y_accesskey: {\r\n\t\tcode: 'a11y-accesskey',\r\n\t\tmessage: 'A11y: Avoid using accesskey'\r\n\t},\r\n\ta11y_autofocus: {\r\n\t\tcode: 'a11y-autofocus',\r\n\t\tmessage: 'A11y: Avoid using autofocus'\r\n\t},\r\n\ta11y_misplaced_scope: {\r\n\t\tcode: 'a11y-misplaced-scope',\r\n\t\tmessage: 'A11y: The scope attribute should only be used with <th> elements'\r\n\t},\r\n\ta11y_positive_tabindex: {\r\n\t\tcode: 'a11y-positive-tabindex',\r\n\t\tmessage: 'A11y: avoid tabindex values above zero'\r\n\t},\r\n\ta11y_invalid_attribute: (href_attribute: string, href_value: string) => ({\r\n\t\tcode: 'a11y-invalid-attribute',\r\n\t\tmessage: `A11y: '${href_value}' is not a valid ${href_attribute} attribute`\r\n\t}),\r\n\ta11y_missing_attribute: (name: string, article: string, sequence: string) => ({\r\n\t\tcode: 'a11y-missing-attribute',\r\n\t\tmessage: `A11y: <${name}> element should have ${article} ${sequence} attribute`\r\n\t}),\r\n\ta11y_img_redundant_alt: {\r\n\t\tcode: 'a11y-img-redundant-alt',\r\n\t\tmessage: 'A11y: Screenreaders already announce <img> elements as an image.'\r\n\t},\r\n\ta11y_label_has_associated_control: {\r\n\t\tcode: 'a11y-label-has-associated-control',\r\n\t\tmessage: 'A11y: A form label must be associated with a control.'\r\n\t},\r\n\ta11y_media_has_caption: {\r\n\t\tcode: 'a11y-media-has-caption',\r\n\t\tmessage: 'A11y: <video> elements must have a <track kind=\"captions\">'\r\n\t},\r\n\ta11y_distracting_elements: (name: string) => ({\r\n\t\tcode: 'a11y-distracting-elements',\r\n\t\tmessage: `A11y: Avoid <${name}> elements`\r\n\t}),\r\n\ta11y_structure_immediate: {\r\n\t\tcode: 'a11y-structure',\r\n\t\tmessage: 'A11y: <figcaption> must be an immediate child of <figure>'\r\n\t},\r\n\ta11y_structure_first_or_last: {\r\n\t\tcode: 'a11y-structure',\r\n\t\tmessage: 'A11y: <figcaption> must be first or last child of <figure>'\r\n\t},\r\n\ta11y_mouse_events_have_key_events: (event: string, accompanied_by: string) => ({\r\n\t\tcode: 'a11y-mouse-events-have-key-events',\r\n\t\tmessage: `A11y: on:${event} must be accompanied by on:${accompanied_by}`\r\n\t}),\r\n\ta11y_missing_content: (name: string) => ({\r\n\t\tcode: 'a11y-missing-content',\r\n\t\tmessage: `A11y: <${name}> element should have child content`\r\n\t}),\r\n\tredundant_event_modifier_for_touch: {\r\n\t\tcode: 'redundant-event-modifier',\r\n\t\tmessage: 'Touch event handlers that don\\'t use the \\'event\\' object are passive by default'\r\n\t},\r\n\tredundant_event_modifier_passive: {\r\n\t\tcode: 'redundant-event-modifier',\r\n\t\tmessage: 'The passive modifier only works with wheel and touch events'\r\n\t}\r\n};\r\n","import Block from '../../render_dom/Block';\r\nimport Component from '../../Component';\r\nimport Node from './Node';\r\nimport { INode } from '../interfaces';\r\nimport compiler_warnings from '../../compiler_warnings';\r\n\r\nexport default class AbstractBlock extends Node {\r\n\tblock: Block;\r\n\tchildren: INode[];\r\n\r\n\tconstructor(component: Component, parent, scope, info: any) {\r\n\t\tsuper(component, parent, scope, info);\r\n\t}\r\n\r\n\twarn_if_empty_block() {\r\n\t\tif (!this.children || this.children.length > 1) return;\r\n\r\n\t\tconst child = this.children[0];\r\n\r\n\t\tif (!child || (child.type === 'Text' && !/[^ \\r\\n\\f\\v\\t]/.test(child.data))) {\r\n\t\t\tthis.component.warn(this, compiler_warnings.empty_block);\r\n\t\t}\r\n\t}\r\n}\r\n","import { Node, Identifier } from 'estree';\r\n\r\nexport default function flatten_reference(node: Node) {\r\n\tconst nodes = [];\r\n\tconst parts = [];\r\n\t\r\n\twhile (node.type === 'MemberExpression') {\r\n\t\tnodes.unshift(node.property);\r\n\r\n\t\tif (!node.computed) {\r\n\t\t\tparts.unshift((node.property as Identifier).name);\r\n\t\t} else {\r\n\t\t\tconst computed_property = to_string(node.property);\r\n\t\t\tif (computed_property) {\r\n\t\t\t\tparts.unshift(`[${computed_property}]`);\r\n\t\t\t}\r\n\t\t}\r\n\t\tnode = node.object;\r\n\t}\r\n\r\n\tconst name = node.type === 'Identifier'\r\n\t\t? node.name\r\n\t\t: node.type === 'ThisExpression' ? 'this' : null;\r\n\r\n\tnodes.unshift(node);\r\n\r\n\tparts.unshift(name);\r\n\r\n\treturn { name, nodes, parts };\r\n}\r\n\r\nfunction to_string(node: Node) {\r\n\tswitch (node.type) {\r\n\t\tcase 'Literal':\r\n\t\t\treturn String(node.value);\r\n\t\tcase 'Identifier':\r\n\t\t\treturn node.name;\r\n\t}\r\n}\r\n","import { Node } from 'estree';\r\nimport { analyze, Scope, extract_names, extract_identifiers } from 'periscopic';\r\n\r\nexport function create_scopes(expression: Node) {\r\n\treturn analyze(expression);\r\n}\r\n\r\nexport { Scope, extract_names, extract_identifiers };\r\n","import { Node, Identifier } from 'estree';\r\n\r\nexport default function get_object(node: Node): Identifier {\r\n\twhile (node.type === 'MemberExpression') node = node.object;\r\n\treturn node as Identifier;\r\n}\r\n","export const reserved_keywords = new Set(['$$props', '$$restProps', '$$slots']);\r\n\r\nexport function is_reserved_keyword(name) {\r\n\treturn reserved_keywords.has(name);\r\n}\r\n","import { Var } from '../../../../interfaces';\r\nimport { is_reserved_keyword } from '../../../utils/reserved_keywords';\r\n\r\nexport default function is_dynamic(variable: Var) {\r\n\tif (variable) {\r\n\t\tif (variable.mutated || variable.reassigned) return true; // dynamic internal state\r\n\t\tif (!variable.module && variable.writable && variable.export_name) return true; // writable props\r\n\t\tif (is_reserved_keyword(variable.name)) return true;\r\n\t}\r\n\r\n\treturn false;\r\n}\r\n","export function nodes_match(a, b) {\r\n\tif (!!a !== !!b) return false;\r\n\tif (Array.isArray(a) !== Array.isArray(b)) return false;\r\n\r\n\tif (a && typeof a === 'object') {\r\n\t\tif (Array.isArray(a)) {\r\n\t\t\tif (a.length !== b.length) return false;\r\n\t\t\treturn a.every((child, i) => nodes_match(child, b[i]));\r\n\t\t}\r\n\r\n\t\tconst a_keys = Object.keys(a).sort();\r\n\t\tconst b_keys = Object.keys(b).sort();\r\n\r\n\t\tif (a_keys.length !== b_keys.length) return false;\r\n\r\n\t\tlet i = a_keys.length;\r\n\t\twhile (i--) {\r\n\t\t\tconst key = a_keys[i];\r\n\t\t\tif (b_keys[i] !== key) return false;\r\n\r\n\t\t\tif (key === 'start' || key === 'end') continue;\r\n\r\n\t\t\tif (!nodes_match(a[key], b[key])) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t}\r\n\r\n\treturn a === b;\r\n}\r\n","import { nodes_match } from '../../utils/nodes_match';\r\nimport { Scope } from 'periscopic';\r\nimport { x } from 'code-red';\r\nimport { Node, Expression } from 'estree';\r\nimport Renderer from './Renderer';\r\nimport { Var } from '../../interfaces';\r\n\r\nexport function invalidate(renderer: Renderer, scope: Scope, node: Node, names: Set<string>, main_execution_context: boolean = false) {\r\n\tconst { component } = renderer;\r\n\r\n\tconst [head, ...tail] = Array.from(names)\r\n\t\t.filter(name => {\r\n\t\t\tconst owner = scope.find_owner(name);\r\n\t\t\treturn !owner || owner === component.instance_scope;\r\n\t\t})\r\n\t\t.map(name => component.var_lookup.get(name))\r\n\t\t.filter(variable =>\t{\r\n\t\t\treturn variable && (\r\n\t\t\t\t!variable.hoistable &&\r\n\t\t\t\t!variable.global &&\r\n\t\t\t\t!variable.module &&\r\n\t\t\t\t(\r\n\t\t\t\t\tvariable.referenced ||\r\n\t\t\t\t\tvariable.subscribable ||\r\n\t\t\t\t\tvariable.is_reactive_dependency ||\r\n\t\t\t\t\tvariable.export_name ||\r\n\t\t\t\t\tvariable.name[0] === '$'\r\n\t\t\t\t)\r\n\t\t\t);\r\n\t\t}) as Var[];\r\n\r\n\tfunction get_invalidated(variable: Var, node?: Expression) {\r\n\t\tif (main_execution_context && !variable.subscribable && variable.name[0] !== '$') {\r\n\t\t\treturn node;\r\n\t\t}\r\n\t\treturn renderer_invalidate(renderer, variable.name, undefined, main_execution_context);\r\n\t}\r\n\r\n\tif (!head) {\r\n\t\treturn node;\r\n\t}\r\n\r\n\tcomponent.has_reactive_assignments = true;\r\n\r\n\tif (node.type === 'AssignmentExpression' && node.operator === '=' && nodes_match(node.left, node.right) && tail.length === 0) {\r\n\t\treturn get_invalidated(head, node);\r\n\t}\r\n\r\n\tconst is_store_value = head.name[0] === '$' && head.name[1] !== '$';\r\n\tconst extra_args = tail.map(variable => get_invalidated(variable)).filter(Boolean);\r\n\r\n\tif (is_store_value) {\r\n\t\treturn x`@set_store_value(${head.name.slice(1)}, ${node}, ${head.name}, ${extra_args})`;\r\n\t}\r\n\r\n\tlet invalidate;\r\n\tif (!main_execution_context) {\r\n\t\tconst pass_value = (\r\n\t\t\textra_args.length > 0 ||\r\n\t\t\t(node.type === 'AssignmentExpression' && node.left.type !== 'Identifier') ||\r\n\t\t\t(node.type === 'UpdateExpression' && (!node.prefix || node.argument.type !== 'Identifier'))\r\n\t\t);\r\n\t\tif (pass_value) {\r\n\t\t\textra_args.unshift({\r\n\t\t\t\ttype: 'Identifier',\r\n\t\t\t\tname: head.name\r\n\t\t\t});\r\n\t\t}\r\n\t\tinvalidate = x`$$invalidate(${renderer.context_lookup.get(head.name).index}, ${node}, ${extra_args})`;\r\n\t} else {\r\n\t\t// skip `$$invalidate` if it is in the main execution context\r\n\t\tinvalidate = extra_args.length ? [node, ...extra_args] : node;\r\n\t}\r\n\r\n\tif (head.subscribable && head.reassigned) {\r\n\t\tconst subscribe = `$$subscribe_${head.name}`;\r\n\t\tinvalidate = x`${subscribe}(${invalidate})`;\r\n\t}\r\n\r\n\treturn invalidate;\r\n}\r\n\r\nexport function renderer_invalidate(renderer: Renderer, name: string, value?, main_execution_context: boolean = false) {\r\n\tconst variable = renderer.component.var_lookup.get(name);\r\n\r\n\tif (variable && (variable.subscribable && (variable.reassigned || variable.export_name))) {\r\n\t\tif (main_execution_context) {\r\n\t\t\treturn x`${`$$subscribe_${name}`}(${value || name})`;\r\n\t\t} else {\r\n\t\t\tconst member = renderer.context_lookup.get(name);\r\n\t\t\treturn x`${`$$subscribe_${name}`}($$invalidate(${member.index}, ${value || name}))`;\r\n\t\t}\r\n\t}\r\n\r\n\tif (name[0] === '$' && name[1] !== '$') {\r\n\t\treturn x`${name.slice(1)}.set(${value || name})`;\r\n\t}\r\n\r\n\tif (\r\n\t\tvariable && (\r\n\t\t\tvariable.module || (\r\n\t\t\t\t!variable.referenced &&\r\n\t\t\t\t!variable.is_reactive_dependency &&\r\n\t\t\t\t!variable.export_name &&\r\n\t\t\t\t!name.startsWith('$$')\r\n\t\t\t)\r\n\t\t)\r\n\t) {\r\n\t\treturn value || name;\r\n\t}\r\n\r\n\tif (value) {\r\n\t\tif (main_execution_context) {\r\n\t\t\treturn x`${value}`;\r\n\t\t} else {\r\n\t\t\tconst member = renderer.context_lookup.get(name);\r\n\t\t\treturn x`$$invalidate(${member.index}, ${value})`;\r\n\t\t}\r\n\t}\r\n\r\n\tif (main_execution_context) return;\r\n\r\n\t// if this is a reactive declaration, invalidate dependencies recursively\r\n\tconst deps = new Set([name]);\r\n\r\n\tdeps.forEach(name => {\r\n\t\tconst reactive_declarations = renderer.component.reactive_declarations.filter(x =>\r\n\t\t\tx.assignees.has(name)\r\n\t\t);\r\n\t\treactive_declarations.forEach(declaration => {\r\n\t\t\tdeclaration.dependencies.forEach(name => {\r\n\t\t\t\tdeps.add(name);\r\n\t\t\t});\r\n\t\t});\r\n\t});\r\n\r\n\t// TODO ideally globals etc wouldn't be here in the first place\r\n\tconst filtered = Array.from(deps).filter(n => renderer.context_lookup.has(n));\r\n\tif (!filtered.length) return null;\r\n\r\n\treturn filtered\r\n\t\t.map(n => x`$$invalidate(${renderer.context_lookup.get(n).index}, ${n})`)\r\n\t\t.reduce((lhs, rhs) => x`${lhs}, ${rhs}`);\r\n}\r\n","import { Node } from 'estree';\r\n\r\nexport default function replace_object(node: Node, replacement: Node) {\r\n\tif (node.type === 'Identifier') return replacement;\r\n\r\n\tconst ancestor = node;\r\n\tlet parent;\r\n\twhile (node.type === 'MemberExpression') {\r\n\t\tparent = node;\r\n\t\tnode = node.object;\r\n\t}\r\n\tparent.object = replacement;\r\n\treturn ancestor;\r\n}\r\n","import Component from '../../Component';\r\nimport TemplateScope from './TemplateScope';\r\nimport { is_reserved_keyword } from '../../utils/reserved_keywords';\r\n\r\nexport default function is_contextual(component: Component, scope: TemplateScope, name: string) {\r\n\tif (is_reserved_keyword(name)) return true;\r\n\r\n\t// if it's a name below root scope, it's contextual\r\n\tif (!scope.is_top_level(name)) return true;\r\n\r\n\tconst variable = component.var_lookup.get(name);\r\n\r\n\t// hoistables, module declarations, and imports are non-contextual\r\n\tif (!variable || variable.hoistable) return false;\r\n\r\n\t// assume contextual\r\n\treturn true;\r\n}\r\n","// adapted from klona v2.0.4 - https://github.com/lukeed/klona\r\n// (c) Luke Edwards, under MIT License\r\n\r\n// The sole modification is to skip function values in objects when cloning, so we don't break tests.\r\n\r\nexport function clone(val) {\r\n\tlet k, out, tmp;\r\n\r\n\tif (Array.isArray(val)) {\r\n\t\tout = Array(k = val.length);\r\n\t\twhile (k--) out[k] = (tmp = val[k]) && typeof tmp === 'object' ? clone(tmp) : tmp;\r\n\t\treturn out;\r\n\t}\r\n\r\n\tif (Object.prototype.toString.call(val) === '[object Object]') {\r\n\t\tout = {}; // null\r\n\t\tfor (k in val) {\r\n\t\t\tif (k === '__proto__') {\r\n\t\t\t\tObject.defineProperty(out, k, {\r\n\t\t\t\t\tvalue: clone(val[k]),\r\n\t\t\t\t\tconfigurable: true,\r\n\t\t\t\t\tenumerable: true,\r\n\t\t\t\t\twritable: true\r\n\t\t\t\t});\r\n\t\t\t} else if (typeof val[k] !== 'function') { // MODIFICATION: skip functions\r\n\t\t\t\tout[k] = (tmp = val[k]) && typeof tmp === 'object' ? clone(tmp) : tmp;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn out;\r\n\t}\r\n\r\n\treturn val;\r\n}\r\n","// All compiler errors should be listed and accessed from here\r\n\r\n/**\r\n * @internal\r\n */\r\nexport default {\r\n\tinvalid_binding_elements: (element: string, binding: string) => ({\r\n\t\tcode: 'invalid-binding',\r\n\t\tmessage: `'${binding}' is not a valid binding on <${element}> elements`\r\n\t}),\r\n\tinvalid_binding_element_with: (elements: string, binding: string) => ({\r\n\t\tcode: 'invalid-binding',\r\n\t\tmessage: `'${binding}' binding can only be used with ${elements}`\r\n\t}),\r\n\tinvalid_binding_on: (binding: string, element: string, post?: string) => ({\r\n\t\tcode: 'invalid-binding',\r\n\t\tmessage: `'${binding}' is not a valid binding on ${element}` + (post || '')\r\n\t}),\r\n\tinvalid_binding_foreign: (binding: string) => ({\r\n\t\tcode: 'invalid-binding',\r\n\t\tmessage: `'${binding}' is not a valid binding. Foreign elements only support bind:this`\r\n\t}),\r\n\tinvalid_binding_no_checkbox: (binding: string, is_radio: boolean) => ({\r\n\t\tcode: 'invalid-binding',\r\n\t\tmessage: `'${binding}' binding can only be used with <input type=\"checkbox\">` + (is_radio ? ' — for <input type=\"radio\">, use \\'group\\' binding' : '')\r\n\t}),\r\n\tinvalid_binding: (binding: string) => ({\r\n\t\tcode: 'invalid-binding',\r\n\t\tmessage: `'${binding}' is not a valid binding`\r\n\t}),\r\n\tinvalid_binding_window: (parts: string[]) => ({\r\n\t\tcode: 'invalid-binding',\r\n\t\tmessage: `Bindings on <svelte:window> must be to top-level properties, e.g. '${parts[parts.length - 1]}' rather than '${parts.join('.')}'`\r\n\t}),\r\n\tinvalid_binding_let: {\r\n\t\tcode: 'invalid-binding',\r\n\t\tmessage: 'Cannot bind to a variable declared with the let: directive'\r\n\t},\r\n\tinvalid_binding_await: {\r\n\t\tcode: 'invalid-binding',\r\n\t\tmessage: 'Cannot bind to a variable declared with {#await ... then} or {:catch} blocks'\r\n\t},\r\n\tinvalid_binding_const: {\r\n\t\tcode: 'invalid-binding',\r\n\t\tmessage: 'Cannot bind to a variable declared with {@const ...}'\r\n\t},\r\n\tinvalid_binding_writibale: {\r\n\t\tcode: 'invalid-binding',\r\n\t\tmessage: 'Cannot bind to a variable which is not writable'\r\n\t},\r\n\tbinding_undeclared: (name: string) => ({\r\n\t\tcode: 'binding-undeclared',\r\n\t\tmessage: `${name} is not declared`\r\n\t}),\r\n\tinvalid_type: {\r\n\t\tcode: 'invalid-type',\r\n\t\tmessage: '\\'type\\' attribute cannot be dynamic if input uses two-way binding'\r\n\t},\r\n\tmissing_type: {\r\n\t\tcode: 'missing-type',\r\n\t\tmessage: '\\'type\\' attribute must be specified'\r\n\t},\r\n\tdynamic_multiple_attribute: {\r\n\t\tcode: 'dynamic-multiple-attribute',\r\n\t\tmessage: '\\'multiple\\' attribute cannot be dynamic if select uses two-way binding'\r\n\t},\r\n\tmissing_contenteditable_attribute: {\r\n\t\tcode: 'missing-contenteditable-attribute',\r\n\t\tmessage: '\\'contenteditable\\' attribute is required for textContent and innerHTML two-way bindings'\r\n\t},\r\n\tdynamic_contenteditable_attribute: {\r\n\t\tcode: 'dynamic-contenteditable-attribute',\r\n\t\tmessage: '\\'contenteditable\\' attribute cannot be dynamic if element uses two-way binding'\r\n\t},\r\n\tinvalid_event_modifier_combination: (modifier1: string, modifier2: string) => ({\r\n\t\tcode: 'invalid-event-modifier',\r\n\t\tmessage: `The '${modifier1}' and '${modifier2}' modifiers cannot be used together`\r\n\t}),\r\n\tinvalid_event_modifier_legacy: (modifier: string) => ({\r\n\t\tcode: 'invalid-event-modifier',\r\n\t\tmessage: `The '${modifier}' modifier cannot be used in legacy mode`\r\n\t}),\r\n\tinvalid_event_modifier: (valid: string) => ({\r\n\t\tcode: 'invalid-event-modifier',\r\n\t\tmessage: `Valid event modifiers are ${valid}`\r\n\t}),\r\n\tinvalid_event_modifier_component: {\r\n\t\tcode: 'invalid-event-modifier',\r\n\t\tmessage: \"Event modifiers other than 'once' can only be used on DOM elements\"\r\n\t},\r\n\ttextarea_duplicate_value: {\r\n\t\tcode: 'textarea-duplicate-value',\r\n\t\tmessage: 'A <textarea> can have either a value attribute or (equivalently) child content, but not both'\r\n\t},\r\n\tillegal_attribute: (name: string) => ({\r\n\t\tcode: 'illegal-attribute',\r\n\t\tmessage: `'${name}' is not a valid attribute name`\r\n\t}),\r\n\tinvalid_slot_attribute: {\r\n\t\tcode: 'invalid-slot-attribute',\r\n\t\tmessage: 'slot attribute cannot have a dynamic value'\r\n\t},\r\n\tduplicate_slot_attribute: (name: string) => ({\r\n\t\tcode: 'duplicate-slot-attribute',\r\n\t\tmessage: `Duplicate '${name}' slot`\r\n\t}),\r\n\tinvalid_slotted_content: {\r\n\t\tcode: 'invalid-slotted-content',\r\n\t\tmessage: 'Element with a slot=\\'...\\' attribute must be a child of a component or a descendant of a custom element'\r\n\t},\r\n\tinvalid_attribute_head: {\r\n\t\tcode: 'invalid-attribute',\r\n\t\tmessage: '<svelte:head> should not have any attributes or directives'\r\n\t},\r\n\tinvalid_action: {\r\n\t\tcode: 'invalid-action',\r\n\t\tmessage: 'Actions can only be applied to DOM elements, not components'\r\n\t},\r\n\tinvalid_class: {\r\n\t\tcode: 'invalid-class',\r\n\t\tmessage: 'Classes can only be applied to DOM elements, not components'\r\n\t},\r\n\tinvalid_transition: {\r\n\t\tcode: 'invalid-transition',\r\n\t\tmessage: 'Transitions can only be applied to DOM elements, not components'\r\n\t},\r\n\tinvalid_let: {\r\n\t\tcode: 'invalid-let',\r\n\t\tmessage: 'let directive value must be an identifier or an object/array pattern'\r\n\t},\r\n\tinvalid_slot_directive: {\r\n\t\tcode: 'invalid-slot-directive',\r\n\t\tmessage: '<slot> cannot have directives'\r\n\t},\r\n\tdynamic_slot_name: {\r\n\t\tcode: 'dynamic-slot-name',\r\n\t\tmessage: '<slot> name cannot be dynamic'\r\n\t},\r\n\tinvalid_slot_name: {\r\n\t\tcode: 'invalid-slot-name',\r\n\t\tmessage: 'default is a reserved word — it cannot be used as a slot name'\r\n\t},\r\n\tinvalid_slot_attribute_value_missing: {\r\n\t\tcode: 'invalid-slot-attribute',\r\n\t\tmessage: 'slot attribute value is missing'\r\n\t},\r\n\tinvalid_slotted_content_fragment: {\r\n\t\tcode: 'invalid-slotted-content',\r\n\t\tmessage: '<svelte:fragment> must be a child of a component'\r\n\t},\r\n\tillegal_attribute_title: {\r\n\t\tcode: 'illegal-attribute',\r\n\t\tmessage: '<title> cannot have attributes'\r\n\t},\r\n\tillegal_structure_title: {\r\n\t\tcode: 'illegal-structure',\r\n\t\tmessage: '<title> can only contain text and {tags}'\r\n\t},\r\n\tduplicate_transition: (directive: string, parent_directive: string) => {\r\n\t\tfunction describe(_directive: string) {\r\n\t\t\treturn _directive === 'transition'\r\n\t\t\t\t? \"a 'transition'\"\r\n\t\t\t\t: `an '${_directive}'`;\r\n\t\t}\r\n\t\tconst message = directive === parent_directive\r\n\t\t\t? `An element can only have one '${directive}' directive`\r\n\t\t\t: `An element cannot have both ${describe(parent_directive)} directive and ${describe(directive)} directive`;\r\n\t\treturn {\r\n\t\t\tcode: 'duplicate-transition',\r\n\t\t\tmessage\r\n\t\t};\r\n\t},\r\n\tcontextual_store: {\r\n\t\tcode: 'contextual-store',\r\n\t\tmessage: 'Stores must be declared at the top level of the component (this may change in a future version of Svelte)'\r\n\t},\r\n\tdefault_export: {\r\n\t\tcode: 'default-export',\r\n\t\tmessage: 'A component cannot have a default export'\r\n\t},\r\n\tillegal_declaration: {\r\n\t\tcode: 'illegal-declaration',\r\n\t\tmessage: 'The $ prefix is reserved, and cannot be used for variable and import names'\r\n\t},\r\n\tillegal_subscription: {\r\n\t\tcode: 'illegal-subscription',\r\n\t\tmessage: 'Cannot reference store value inside <script context=\"module\">'\r\n\t},\r\n\tillegal_global: (name: string) => ({\r\n\t\tcode: 'illegal-global',\r\n\t\tmessage: `${name} is an illegal variable name`\r\n\t}),\r\n\tillegal_variable_declaration: {\r\n\t\tcode: 'illegal-variable-declaration',\r\n\t\tmessage: 'Cannot declare same variable name which is imported inside <script context=\"module\">'\r\n\t},\r\n\tcyclical_reactive_declaration: (cycle: string[]) => ({\r\n\t\tcode: 'cyclical-reactive-declaration',\r\n\t\tmessage: `Cyclical dependency detected: ${cycle.join(' → ')}`\r\n\t}),\r\n\tinvalid_tag_property: {\r\n\t\tcode: 'invalid-tag-property',\r\n\t\tmessage: \"tag name must be two or more words joined by the '-' character\"\r\n\t},\r\n\tinvalid_tag_attribute: {\r\n\t\tcode: 'invalid-tag-attribute',\r\n\t\tmessage: \"'tag' must be a string literal\"\r\n\t},\r\n\tinvalid_namespace_property: (namespace: string, suggestion?: string) => ({\r\n\t\tcode: 'invalid-namespace-property',\r\n\t\tmessage: `Invalid namespace '${namespace}'` + (suggestion ? ` (did you mean '${suggestion}'?)` : '')\r\n\t}),\r\n\tinvalid_namespace_attribute: {\r\n\t\tcode: 'invalid-namespace-attribute',\r\n\t\tmessage: \"The 'namespace' attribute must be a string literal representing a valid namespace\"\r\n\t},\r\n\tinvalid_attribute_value: (name: string) => ({\r\n\t\tcode: `invalid-${name}-value`,\r\n\t\tmessage: `${name} attribute must be true or false`\r\n\t}),\r\n\tinvalid_options_attribute_unknown: {\r\n\t\tcode: 'invalid-options-attribute',\r\n\t\tmessage: '<svelte:options> unknown attribute'\r\n\t},\r\n\tinvalid_options_attribute: {\r\n\t\tcode: 'invalid-options-attribute',\r\n\t\tmessage: \"<svelte:options> can only have static 'tag', 'namespace', 'accessors', 'immutable' and 'preserveWhitespace' attributes\"\r\n\t},\r\n\tcss_invalid_global: {\r\n\t\tcode: 'css-invalid-global',\r\n\t\tmessage: ':global(...) can be at the start or end of a selector sequence, but not in the middle'\r\n\t},\r\n\tcss_invalid_global_selector: {\r\n\t\tcode: 'css-invalid-global-selector',\r\n\t\tmessage: ':global(...) must contain a single selector'\r\n\t},\r\n\tcss_invalid_selector: (selector: string) => ({\r\n\t\tcode: 'css-invalid-selector',\r\n\t\tmessage: `Invalid selector \"${selector}\"`\r\n\t}),\r\n\tduplicate_animation: {\r\n\t\tcode: 'duplicate-animation',\r\n\t\tmessage: \"An element can only have one 'animate' directive\"\r\n\t},\r\n\tinvalid_animation_immediate: {\r\n\t\tcode: 'invalid-animation',\r\n\t\tmessage: 'An element that uses the animate directive must be the immediate child of a keyed each block'\r\n\t},\r\n\tinvalid_animation_key: {\r\n\t\tcode: 'invalid-animation',\r\n\t\tmessage: 'An element that uses the animate directive must be used inside a keyed each block. Did you forget to add a key to your each block?'\r\n\t},\r\n\tinvalid_animation_sole: {\r\n\t\tcode: 'invalid-animation',\r\n\t\tmessage: 'An element that uses the animate directive must be the sole child of a keyed each block'\r\n\t},\r\n\tinvalid_animation_dynamic_element: {\r\n\t\tcode: 'invalid-animation',\r\n\t\tmessage: '<svelte:element> cannot have a animate directive'\r\n\t},\r\n\tinvalid_directive_value: {\r\n\t\tcode: 'invalid-directive-value',\r\n\t\tmessage: 'Can only bind to an identifier (e.g. `foo`) or a member expression (e.g. `foo.bar` or `foo[baz]`)'\r\n\t},\r\n\tinvalid_const_placement: {\r\n\t\tcode: 'invalid-const-placement',\r\n\t\tmessage: '{@const} must be the immediate child of {#if}, {:else if}, {:else}, {#each}, {:then}, {:catch}, <svelte:fragment> or <Component>'\r\n\t},\r\n\tinvalid_const_declaration: (name: string) => ({\r\n\t\tcode: 'invalid-const-declaration',\r\n\t\tmessage: `'${name}' has already been declared`\r\n\t}),\r\n\tinvalid_const_update: (name: string) => ({\r\n\t\tcode: 'invalid-const-update',\r\n\t\tmessage: `'${name}' is declared using {@const ...} and is read-only`\r\n\t}),\r\n\tcyclical_const_tags: (cycle: string[]) => ({\r\n\t\tcode: 'cyclical-const-tags',\r\n\t\tmessage: `Cyclical dependency detected: ${cycle.join(' → ')}`\r\n\t}),\r\n\tinvalid_component_style_directive: {\r\n\t\tcode: 'invalid-component-style-directive',\r\n\t\tmessage: 'Style directives cannot be used on components'\r\n\t}\r\n};\r\n","import Component from '../../Component';\r\nimport { walk } from 'estree-walker';\r\nimport is_reference from 'is-reference';\r\nimport flatten_reference from '../../utils/flatten_reference';\r\nimport { create_scopes, Scope, extract_names } from '../../utils/scope';\r\nimport { sanitize } from '../../../utils/names';\r\nimport TemplateScope from './TemplateScope';\r\nimport get_object from '../../utils/get_object';\r\nimport Block from '../../render_dom/Block';\r\nimport is_dynamic from '../../render_dom/wrappers/shared/is_dynamic';\r\nimport { b } from 'code-red';\r\nimport { invalidate } from '../../render_dom/invalidate';\r\nimport { Node, FunctionExpression, Identifier } from 'estree';\r\nimport { INode } from '../interfaces';\r\nimport { is_reserved_keyword } from '../../utils/reserved_keywords';\r\nimport replace_object from '../../utils/replace_object';\r\nimport is_contextual from './is_contextual';\r\nimport EachBlock from '../EachBlock';\r\nimport { clone } from '../../../utils/clone';\r\nimport compiler_errors from '../../compiler_errors';\r\n\r\ntype Owner = INode;\r\n\r\nexport default class Expression {\r\n\ttype: 'Expression' = 'Expression';// eslint-disable-line\r\n\tcomponent: Component;\r\n\towner: Owner;\r\n\tnode: Node;\r\n\treferences: Set<string> = new Set();\r\n\tdependencies: Set<string> = new Set();\r\n\tcontextual_dependencies: Set<string> = new Set();\r\n\r\n\ttemplate_scope: TemplateScope;\r\n\tscope: Scope;\r\n\tscope_map: WeakMap<Node, Scope>;\r\n\r\n\tdeclarations: Array<(Node | Node[])> = [];\r\n\tuses_context = false;\r\n\r\n\tmanipulated: Node;\r\n\r\n\tconstructor(component: Component, owner: Owner, template_scope: TemplateScope, info: Node, lazy?: boolean) {\r\n\t\t// TODO revert to direct property access in prod?\r\n\t\tObject.defineProperties(this, {\r\n\t\t\tcomponent: {\r\n\t\t\t\tvalue: component\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.node = info;\r\n\t\tthis.template_scope = template_scope;\r\n\t\tthis.owner = owner;\r\n\r\n\t\tconst { dependencies, contextual_dependencies, references } = this;\r\n\r\n\t\tlet { map, scope } = create_scopes(info);\r\n\t\tthis.scope = scope;\r\n\t\tthis.scope_map = map;\r\n\r\n\t\tconst expression = this;\r\n\t\tlet function_expression;\r\n\r\n\t\t// discover dependencies, but don't change the code yet\r\n\t\twalk(info, {\r\n\t\t\tenter(node: any, parent: any, key: string) {\r\n\t\t\t\t// don't manipulate shorthand props twice\r\n\t\t\t\tif (key === 'key' && parent.shorthand) return;\r\n\t\t\t\t// don't manipulate `import.meta`, `new.target`\r\n\t\t\t\tif (node.type === 'MetaProperty') return this.skip();\r\n\r\n\t\t\t\tif (map.has(node)) {\r\n\t\t\t\t\tscope = map.get(node);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!function_expression && /FunctionExpression/.test(node.type)) {\r\n\t\t\t\t\tfunction_expression = node;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (is_reference(node, parent)) {\r\n\t\t\t\t\tconst { name, nodes } = flatten_reference(node);\r\n\t\t\t\t\treferences.add(name);\r\n\r\n\t\t\t\t\tif (scope.has(name)) return;\r\n\r\n\t\t\t\t\tif (name[0] === '$') {\r\n\t\t\t\t\t\tconst store_name = name.slice(1);\r\n\t\t\t\t\t\tif (template_scope.names.has(store_name) || scope.has(store_name)) {\r\n\t\t\t\t\t\t\treturn component.error(node, compiler_errors.contextual_store);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (template_scope.is_let(name)) {\r\n\t\t\t\t\t\tif (!lazy) {\r\n\t\t\t\t\t\t\tcontextual_dependencies.add(name);\r\n\t\t\t\t\t\t\tdependencies.add(name);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (template_scope.names.has(name)) {\r\n\t\t\t\t\t\texpression.uses_context = true;\r\n\r\n\t\t\t\t\t\tcontextual_dependencies.add(name);\r\n\r\n\t\t\t\t\t\tconst owner = template_scope.get_owner(name);\r\n\t\t\t\t\t\tconst is_index = owner.type === 'EachBlock' && owner.key && name === owner.index;\r\n\r\n\t\t\t\t\t\tif (!lazy || is_index) {\r\n\t\t\t\t\t\t\ttemplate_scope.dependencies_for_name.get(name).forEach(name => dependencies.add(name));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (!lazy) {\r\n\t\t\t\t\t\t\tdependencies.add(name);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tcomponent.add_reference(node, name);\r\n\t\t\t\t\t\tcomponent.warn_if_undefined(name, nodes[0], template_scope);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.skip();\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// track any assignments from template expressions as mutable\r\n\t\t\t\tlet names;\r\n\t\t\t\tlet deep = false;\r\n\r\n\t\t\t\tif (function_expression) {\r\n\t\t\t\t\tif (node.type === 'AssignmentExpression') {\r\n\t\t\t\t\t\tdeep = node.left.type === 'MemberExpression';\r\n\t\t\t\t\t\tnames = extract_names(deep ? get_object(node.left) : node.left);\r\n\t\t\t\t\t} else if (node.type === 'UpdateExpression') {\r\n\t\t\t\t\t\tnames = extract_names(get_object(node.argument));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (names) {\r\n\t\t\t\t\tnames.forEach(name => {\r\n\t\t\t\t\t\tif (template_scope.names.has(name)) {\r\n\t\t\t\t\t\t\tif (template_scope.is_const(name)) {\r\n\t\t\t\t\t\t\t\tcomponent.error(node, compiler_errors.invalid_const_update(name));\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\ttemplate_scope.dependencies_for_name.get(name).forEach(name => {\r\n\t\t\t\t\t\t\t\tconst variable = component.var_lookup.get(name);\r\n\t\t\t\t\t\t\t\tif (variable) variable[deep ? 'mutated' : 'reassigned'] = true;\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\tconst each_block = template_scope.get_owner(name);\r\n\t\t\t\t\t\t\t(each_block as EachBlock).has_binding = true;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tcomponent.add_reference(node, name);\r\n\r\n\t\t\t\t\t\t\tconst variable = component.var_lookup.get(name);\r\n\t\t\t\t\t\t\tif (variable) variable[deep ? 'mutated' : 'reassigned'] = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\tleave(node: Node) {\r\n\t\t\t\tif (map.has(node)) {\r\n\t\t\t\t\tscope = scope.parent;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (node === function_expression) {\r\n\t\t\t\t\tfunction_expression = null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tdynamic_dependencies() {\r\n\t\treturn Array.from(this.dependencies).filter(name => {\r\n\t\t\tif (this.template_scope.is_let(name)) return true;\r\n\t\t\tif (is_reserved_keyword(name)) return true;\r\n\r\n\t\t\tconst variable = this.component.var_lookup.get(name);\r\n\t\t\treturn is_dynamic(variable);\r\n\t\t});\r\n\t}\r\n\r\n\t// TODO move this into a render-dom wrapper?\r\n\tmanipulate(block?: Block, ctx?: string | void) {\r\n\t\t// TODO ideally we wouldn't end up calling this method\r\n\t\t// multiple times\r\n\t\tif (this.manipulated) return this.manipulated;\r\n\r\n\t\tconst {\r\n\t\t\tcomponent,\r\n\t\t\tdeclarations,\r\n\t\t\tscope_map: map,\r\n\t\t\ttemplate_scope,\r\n\t\t\towner\r\n\t\t} = this;\r\n\t\tlet scope = this.scope;\r\n\r\n\t\tlet function_expression;\r\n\r\n\t\tlet dependencies: Set<string>;\r\n\t\tlet contextual_dependencies: Set<string>;\r\n\r\n\t\tconst node = walk(this.node, {\r\n\t\t\tenter(node: any, parent: any) {\r\n\t\t\t\tif (node.type === 'Property' && node.shorthand) {\r\n\t\t\t\t\tnode.value = clone(node.value);\r\n\t\t\t\t\tnode.shorthand = false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (map.has(node)) {\r\n\t\t\t\t\tscope = map.get(node);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (node.type === 'Identifier' && is_reference(node, parent)) {\r\n\t\t\t\t\tconst { name } = flatten_reference(node);\r\n\r\n\t\t\t\t\tif (scope.has(name)) return;\r\n\r\n\t\t\t\t\tif (function_expression) {\r\n\t\t\t\t\t\tif (template_scope.names.has(name)) {\r\n\t\t\t\t\t\t\tcontextual_dependencies.add(name);\r\n\r\n\t\t\t\t\t\t\ttemplate_scope.dependencies_for_name.get(name).forEach(dependency => {\r\n\t\t\t\t\t\t\t\tdependencies.add(dependency);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tdependencies.add(name);\r\n\t\t\t\t\t\t\tcomponent.add_reference(node, name); // TODO is this redundant/misplaced?\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (is_contextual(component, template_scope, name)) {\r\n\t\t\t\t\t\tconst reference = block.renderer.reference(node, ctx);\r\n\t\t\t\t\t\tthis.replace(reference);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.skip();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!function_expression) {\r\n\t\t\t\t\tif (node.type === 'AssignmentExpression') {\r\n\t\t\t\t\t\t// TODO should this be a warning/error? `<p>{foo = 1}</p>`\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (node.type === 'FunctionExpression' || node.type === 'ArrowFunctionExpression') {\r\n\t\t\t\t\t\tfunction_expression = node;\r\n\t\t\t\t\t\tdependencies = new Set();\r\n\t\t\t\t\t\tcontextual_dependencies = new Set();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\tleave(node: Node, parent: Node) {\r\n\t\t\t\tif (map.has(node)) scope = scope.parent;\r\n\r\n\t\t\t\tif (node === function_expression) {\r\n\t\t\t\t\tconst id = component.get_unique_name(\r\n\t\t\t\t\t\tsanitize(get_function_name(node, owner))\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t\tconst declaration = b`const ${id} = ${node}`;\r\n\r\n\t\t\t\t\tif (owner.type === 'ConstTag') {\r\n\t\t\t\t\t\tlet child_scope = scope;\r\n\t\t\t\t\t\twalk(node, {\r\n\t\t\t\t\t\t\tenter(node: Node, parent: any) {\r\n\t\t\t\t\t\t\t\tif (map.has(node)) child_scope = map.get(node);\r\n\t\t\t\t\t\t\t\tif (node.type === 'Identifier' && is_reference(node, parent)) {\r\n\t\t\t\t\t\t\t\t\tif (child_scope.has(node.name)) return;\r\n\t\t\t\t\t\t\t\t\tthis.replace(block.renderer.reference(node, ctx));\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tleave(node: Node) {\r\n\t\t\t\t\t\t\t\tif (map.has(node)) child_scope = child_scope.parent;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} else if (dependencies.size === 0 && contextual_dependencies.size === 0) {\r\n\t\t\t\t\t\t// we can hoist this out of the component completely\r\n\t\t\t\t\t\tcomponent.fully_hoisted.push(declaration);\r\n\r\n\t\t\t\t\t\tthis.replace(id as any);\r\n\r\n\t\t\t\t\t\tcomponent.add_var(node, {\r\n\t\t\t\t\t\t\tname: id.name,\r\n\t\t\t\t\t\t\tinternal: true,\r\n\t\t\t\t\t\t\thoistable: true,\r\n\t\t\t\t\t\t\treferenced: true\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} else if (contextual_dependencies.size === 0) {\r\n\t\t\t\t\t\t// function can be hoisted inside the component init\r\n\t\t\t\t\t\tcomponent.partly_hoisted.push(declaration);\r\n\r\n\t\t\t\t\t\tblock.renderer.add_to_context(id.name);\r\n\t\t\t\t\t\tthis.replace(block.renderer.reference(id));\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// we need a combo block/init recipe\r\n\t\t\t\t\t\tconst deps = Array.from(contextual_dependencies);\r\n\t\t\t\t\t\tconst function_expression = node as FunctionExpression;\r\n\r\n\t\t\t\t\t\tconst has_args = function_expression.params.length > 0;\r\n\t\t\t\t\t\tfunction_expression.params = [\r\n\t\t\t\t\t\t\t...deps.map(name => ({ type: 'Identifier', name } as Identifier)),\r\n\t\t\t\t\t\t\t...function_expression.params\r\n\t\t\t\t\t\t];\r\n\r\n\t\t\t\t\t\tconst context_args = deps.map(name => block.renderer.reference(name));\r\n\r\n\t\t\t\t\t\tcomponent.partly_hoisted.push(declaration);\r\n\r\n\t\t\t\t\t\tblock.renderer.add_to_context(id.name);\r\n\t\t\t\t\t\tconst callee = block.renderer.reference(id);\r\n\r\n\t\t\t\t\t\tthis.replace(id as any);\r\n\r\n\t\t\t\t\t\tconst func_declaration = has_args\r\n\t\t\t\t\t\t\t? b`function ${id}(...args) {\r\n\t\t\t\t\t\t\t\treturn ${callee}(${context_args}, ...args);\r\n\t\t\t\t\t\t\t}`\r\n\t\t\t\t\t\t\t: b`function ${id}() {\r\n\t\t\t\t\t\t\t\treturn ${callee}(${context_args});\r\n\t\t\t\t\t\t\t}`;\r\n\r\n\t\t\t\t\t\tif (owner.type === 'Attribute' && owner.parent.name === 'slot') {\r\n\t\t\t\t\t\t\tconst dep_scopes = new Set<INode>(deps.map(name => template_scope.get_owner(name)));\r\n\t\t\t\t\t\t\t// find the nearest scopes\r\n\t\t\t\t\t\t\tlet node: INode = owner.parent;\r\n\t\t\t\t\t\t\twhile (node && !dep_scopes.has(node)) {\r\n\t\t\t\t\t\t\t\tnode = node.parent;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tconst func_expression = func_declaration[0];\r\n\r\n\t\t\t\t\t\t\tif (node.type === 'InlineComponent' || node.type === 'SlotTemplate') {\r\n\t\t\t\t\t\t\t\t// <Comp let:data />\r\n\t\t\t\t\t\t\t\tthis.replace(func_expression);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t// {#each}, {#await}\r\n\t\t\t\t\t\t\t\tconst func_id = component.get_unique_name(id.name + '_func');\r\n\t\t\t\t\t\t\t\tblock.renderer.add_to_context(func_id.name, true);\r\n\t\t\t\t\t\t\t\t// rename #ctx -> child_ctx;\r\n\t\t\t\t\t\t\t\twalk(func_expression, {\r\n\t\t\t\t\t\t\t\t\tenter(node: Node) {\r\n\t\t\t\t\t\t\t\t\t\tif (node.type === 'Identifier' && node.name === '#ctx') {\r\n\t\t\t\t\t\t\t\t\t\t\tnode.name = 'child_ctx';\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t// add to get_xxx_context\r\n\t\t\t\t\t\t\t\t// child_ctx[x] = function () { ... }\r\n\t\t\t\t\t\t\t\t(template_scope.get_owner(deps[0]) as EachBlock).contexts.push({\r\n\t\t\t\t\t\t\t\t\tkey: func_id,\r\n\t\t\t\t\t\t\t\t\tmodifier: () => func_expression,\r\n\t\t\t\t\t\t\t\t\tdefault_modifier: node => node\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\tthis.replace(block.renderer.reference(func_id));\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tdeclarations.push(func_declaration);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction_expression = null;\r\n\t\t\t\t\tdependencies = null;\r\n\t\t\t\t\tcontextual_dependencies = null;\r\n\r\n\t\t\t\t\tif (parent && parent.type === 'Property') {\r\n\t\t\t\t\t\tparent.method = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (node.type === 'AssignmentExpression' || node.type === 'UpdateExpression') {\r\n\t\t\t\t\tconst assignee = node.type === 'AssignmentExpression' ? node.left : node.argument;\r\n\r\n\t\t\t\t\tconst object_name = get_object(assignee).name;\r\n\r\n\t\t\t\t\tif (scope.has(object_name)) return;\r\n\r\n\t\t\t\t\t// normally (`a = 1`, `b.c = 2`), there'll be a single name\r\n\t\t\t\t\t// (a or b). In destructuring cases (`[d, e] = [e, d]`) there\r\n\t\t\t\t\t// may be more, in which case we need to tack the extra ones\r\n\t\t\t\t\t// onto the initial function call\r\n\t\t\t\t\tconst names = new Set(extract_names(assignee as Node));\r\n\r\n\t\t\t\t\tconst traced: Set<string> = new Set();\r\n\t\t\t\t\tnames.forEach(name => {\r\n\t\t\t\t\t\tconst dependencies = template_scope.dependencies_for_name.get(name);\r\n\t\t\t\t\t\tif (dependencies) {\r\n\t\t\t\t\t\t\tdependencies.forEach(name => traced.add(name));\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\ttraced.add(name);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tconst context = block.bindings.get(object_name);\r\n\r\n\t\t\t\t\tif (context) {\r\n\t\t\t\t\t\t// for `{#each array as item}`\r\n\t\t\t\t\t\t// replace `item = 1` to `each_array[each_index] = 1`, this allow us to mutate the array\r\n\t\t\t\t\t\t// rather than mutating the local `item` variable\r\n\t\t\t\t\t\tconst { snippet, object, property } = context;\r\n\t\t\t\t\t\tconst replaced: any = replace_object(assignee, snippet);\r\n\t\t\t\t\t\tif (node.type === 'AssignmentExpression') {\r\n\t\t\t\t\t\t\tnode.left = replaced;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tnode.argument = replaced;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcontextual_dependencies.add(object.name);\r\n\t\t\t\t\t\tcontextual_dependencies.add(property.name);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.replace(invalidate(block.renderer, scope, node, traced));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (declarations.length > 0) {\r\n\t\t\tblock.maintain_context = true;\r\n\t\t\tdeclarations.forEach(declaration => {\r\n\t\t\t\tblock.chunks.init.push(declaration);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn (this.manipulated = node as Node);\r\n\t}\r\n}\r\n\r\nfunction get_function_name(_node, parent) {\r\n\tif (parent.type === 'EventHandler') {\r\n\t\treturn `${parent.name}_handler`;\r\n\t}\r\n\r\n\tif (parent.type === 'Action') {\r\n\t\treturn `${parent.name}_function`;\r\n\t}\r\n\r\n\treturn 'func';\r\n}\r\n","import { x } from 'code-red';\r\nimport { Node, Identifier, Expression } from 'estree';\r\nimport { walk } from 'estree-walker';\r\nimport is_reference, { NodeWithPropertyDefinition } from 'is-reference';\r\nimport { clone } from '../../../utils/clone';\r\nimport Component from '../../Component';\r\nimport flatten_reference from '../../utils/flatten_reference';\r\nimport TemplateScope from './TemplateScope';\r\n\r\nexport interface Context {\r\n\tkey: Identifier;\r\n\tname?: string;\r\n\tmodifier: (node: Node) => Node;\r\n\tdefault_modifier: (node: Node, to_ctx: (name: string) => Node) => Node;\r\n}\r\n\r\nexport function unpack_destructuring({\r\n\tcontexts,\r\n\tnode,\r\n\tmodifier = (node) => node,\r\n\tdefault_modifier = (node) => node,\r\n\tscope,\r\n\tcomponent\r\n}: {\r\n\tcontexts: Context[];\r\n\tnode: Node;\r\n\tmodifier?: Context['modifier'];\r\n\tdefault_modifier?: Context['default_modifier'];\r\n\tscope: TemplateScope;\r\n\tcomponent: Component;\r\n}) {\r\n\tif (!node) return;\r\n\r\n\tif (node.type === 'Identifier') {\r\n\t\tcontexts.push({\r\n\t\t\tkey: node as Identifier,\r\n\t\t\tmodifier,\r\n\t\t\tdefault_modifier\r\n\t\t});\r\n\t} else if (node.type === 'RestElement') {\r\n\t\tcontexts.push({\r\n\t\t\tkey: node.argument as Identifier,\r\n\t\t\tmodifier,\r\n\t\t\tdefault_modifier\r\n\t\t});\r\n\t} else if (node.type === 'ArrayPattern') {\r\n\t\tnode.elements.forEach((element, i) => {\r\n\t\t\tif (element && element.type === 'RestElement') {\r\n\t\t\t\tunpack_destructuring({\r\n\t\t\t\t\tcontexts,\r\n\t\t\t\t\tnode: element,\r\n\t\t\t\t\tmodifier: (node) => x`${modifier(node)}.slice(${i})` as Node,\r\n\t\t\t\t\tdefault_modifier,\r\n\t\t\t\t\tscope,\r\n\t\t\t\t\tcomponent\r\n\t\t\t\t});\r\n\t\t\t} else if (element && element.type === 'AssignmentPattern') {\r\n\t\t\t\tconst n = contexts.length;\r\n\t\t\t\tmark_referenced(element.right, scope, component);\r\n\r\n\t\t\t\tunpack_destructuring({\r\n\t\t\t\t\tcontexts,\r\n\t\t\t\t\tnode: element.left,\r\n\t\t\t\t\tmodifier: (node) => x`${modifier(node)}[${i}]`,\r\n\t\t\t\t\tdefault_modifier: (node, to_ctx) =>\r\n\t\t\t\t\t\tx`${node} !== undefined ? ${node} : ${update_reference(\r\n\t\t\t\t\t\t\tcontexts,\r\n\t\t\t\t\t\t\tn,\r\n\t\t\t\t\t\t\telement.right,\r\n\t\t\t\t\t\t\tto_ctx\r\n\t\t\t\t\t\t)}` as Node,\r\n\t\t\t\t\tscope,\r\n\t\t\t\t\tcomponent\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tunpack_destructuring({\r\n\t\t\t\t\tcontexts,\r\n\t\t\t\t\tnode: element,\r\n\t\t\t\t\tmodifier: (node) => x`${modifier(node)}[${i}]` as Node,\r\n\t\t\t\t\tdefault_modifier,\r\n\t\t\t\t\tscope,\r\n\t\t\t\t\tcomponent\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t} else if (node.type === 'ObjectPattern') {\r\n\t\tconst used_properties = [];\r\n\r\n\t\tnode.properties.forEach((property) => {\r\n\t\t\tif (property.type === 'RestElement') {\r\n\t\t\t\tunpack_destructuring({\r\n\t\t\t\t\tcontexts,\r\n\t\t\t\t\tnode: property.argument,\r\n\t\t\t\t\tmodifier: (node) =>\r\n\t\t\t\t\t\tx`@object_without_properties(${modifier(\r\n\t\t\t\t\t\t\tnode\r\n\t\t\t\t\t\t)}, [${used_properties}])` as Node,\r\n\t\t\t\t\tdefault_modifier,\r\n\t\t\t\t\tscope,\r\n\t\t\t\t\tcomponent\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tconst key = property.key as Identifier;\r\n\t\t\t\tconst value = property.value;\r\n\r\n\t\t\t\tused_properties.push(x`\"${key.name}\"`);\r\n\t\t\t\tif (value.type === 'AssignmentPattern') {\r\n\t\t\t\t\tconst n = contexts.length;\r\n\r\n\t\t\t\t\tmark_referenced(value.right, scope, component);\r\n\r\n\t\t\t\t\tunpack_destructuring({\r\n\t\t\t\t\t\tcontexts,\r\n\t\t\t\t\t\tnode: value.left,\r\n\t\t\t\t\t\tmodifier: (node) => x`${modifier(node)}.${key.name}`,\r\n\t\t\t\t\t\tdefault_modifier: (node, to_ctx) =>\r\n\t\t\t\t\t\t\tx`${node} !== undefined ? ${node} : ${update_reference(\r\n\t\t\t\t\t\t\t\tcontexts,\r\n\t\t\t\t\t\t\t\tn,\r\n\t\t\t\t\t\t\t\tvalue.right,\r\n\t\t\t\t\t\t\t\tto_ctx\r\n\t\t\t\t\t\t\t)}` as Node,\r\n\t\t\t\t\t\tscope,\r\n\t\t\t\t\t\tcomponent\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tunpack_destructuring({\r\n\t\t\t\t\t\tcontexts,\r\n\t\t\t\t\t\tnode: value,\r\n\t\t\t\t\t\tmodifier: (node) => x`${modifier(node)}.${key.name}` as Node,\r\n\t\t\t\t\t\tdefault_modifier,\r\n\t\t\t\t\t\tscope,\r\n\t\t\t\t\t\tcomponent\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n\r\nfunction update_reference(\r\n\tcontexts: Context[],\r\n\tn: number,\r\n\texpression: Expression,\r\n\tto_ctx: (name: string) => Node\r\n): Node {\r\n\tconst find_from_context = (node: Identifier) => {\r\n\t\tfor (let i = n; i < contexts.length; i++) {\r\n\t\t\tconst { key } = contexts[i];\r\n\t\t\tif (node.name === key.name) {\r\n\t\t\t\tthrow new Error(`Cannot access '${node.name}' before initialization`);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn to_ctx(node.name);\r\n\t};\r\n\r\n\tif (expression.type === 'Identifier') {\r\n\t\treturn find_from_context(expression);\r\n\t}\r\n\r\n\t// NOTE: avoid unnecessary deep clone?\r\n\texpression = clone(expression) as Expression;\r\n\twalk(expression, {\r\n\t\tenter(node, parent: Node) {\r\n\t\t\tif (\r\n\t\t\t\tis_reference(\r\n\t\t\t\t\tnode as NodeWithPropertyDefinition,\r\n\t\t\t\t\tparent as NodeWithPropertyDefinition\r\n\t\t\t\t)\r\n\t\t\t) {\r\n\t\t\t\tthis.replace(find_from_context(node as Identifier));\r\n\t\t\t\tthis.skip();\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\treturn expression;\r\n}\r\n\r\nfunction mark_referenced(\r\n\tnode: Node,\r\n\tscope: TemplateScope,\r\n\tcomponent: Component\r\n) {\r\n\twalk(node, {\r\n\t\tenter(node: any, parent: any) {\r\n\t\t\tif (is_reference(node, parent)) {\r\n\t\t\t\tconst { name } = flatten_reference(node);\r\n\t\t\t\tif (!scope.is_let(name) && !scope.names.has(name)) {\r\n\t\t\t\t\tcomponent.add_reference(node, name);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n}\r\n","import Node from './shared/Node';\r\nimport Expression from './shared/Expression';\r\nimport Component from '../Component';\r\nimport TemplateScope from './shared/TemplateScope';\r\nimport { Context, unpack_destructuring } from './shared/Context';\r\nimport { ConstTag as ConstTagType } from '../../interfaces';\r\nimport { INodeAllowConstTag } from './interfaces';\r\nimport { walk } from 'estree-walker';\r\nimport { extract_identifiers } from 'periscopic';\r\nimport is_reference, { NodeWithPropertyDefinition } from 'is-reference';\r\nimport get_object from '../utils/get_object';\r\nimport compiler_errors from '../compiler_errors';\r\n\r\nconst allowed_parents = new Set(['EachBlock', 'CatchBlock', 'ThenBlock', 'InlineComponent', 'SlotTemplate', 'IfBlock', 'ElseBlock']);\r\n\r\nexport default class ConstTag extends Node {\r\n\ttype: 'ConstTag';\r\n\texpression: Expression;\r\n\tcontexts: Context[] = [];\r\n\tnode: ConstTagType;\r\n\tscope: TemplateScope;\r\n\r\n\tassignees: Set<string> = new Set();\r\n  dependencies: Set<string> = new Set();\r\n\r\n\tconstructor(component: Component, parent: INodeAllowConstTag, scope: TemplateScope, info: ConstTagType) {\r\n\t\tsuper(component, parent, scope, info);\r\n\r\n\t\tif (!allowed_parents.has(parent.type)) {\r\n\t\t\tcomponent.error(info, compiler_errors.invalid_const_placement);\r\n\t\t}\r\n\t\tthis.node = info;\r\n\t\tthis.scope = scope;\r\n\r\n\t\tconst { assignees, dependencies } = this;\r\n\r\n\t\textract_identifiers(info.expression.left).forEach(({ name }) => {\r\n      assignees.add(name);\r\n\t\t\tconst owner = this.scope.get_owner(name);\r\n\t\t\tif (owner === parent) {\r\n\t\t\t\tcomponent.error(info, compiler_errors.invalid_const_declaration(name));\r\n\t\t\t}\r\n    });\r\n\r\n    walk(info.expression.right, {\r\n      enter(node, parent) {\r\n        if (is_reference(node as NodeWithPropertyDefinition, parent as NodeWithPropertyDefinition)) {\r\n          const identifier = get_object(node as any);\r\n          const { name } = identifier;\r\n          dependencies.add(name);\r\n        }\r\n      }\r\n    });\r\n\t}\r\n\r\n\tparse_expression() {\r\n\t\tunpack_destructuring({\r\n\t\t\tcontexts: this.contexts,\r\n\t\t\tnode: this.node.expression.left,\r\n\t\t\tscope: this.scope,\r\n\t\t\tcomponent: this.component\r\n\t\t});\r\n\t\tthis.expression = new Expression(this.component, this, this.scope, this.node.expression.right);\r\n\t\tthis.contexts.forEach(context => {\r\n\t\t\tconst owner = this.scope.get_owner(context.key.name);\r\n\t\t\tif (owner && owner.type === 'ConstTag' && owner.parent === this.parent) {\r\n\t\t\t\tthis.component.error(this.node, compiler_errors.invalid_const_declaration(context.key.name));\r\n\t\t\t}\r\n\t\t\tthis.scope.add(context.key.name, this.expression.dependencies, this);\r\n\t\t});\r\n\t}\r\n}\r\n","import map_children from './shared/map_children';\r\nimport AbstractBlock from './shared/AbstractBlock';\r\nimport Component from '../Component';\r\nimport TemplateScope from './shared/TemplateScope';\r\nimport { TemplateNode } from '../../interfaces';\r\nimport Node from './shared/Node';\r\n\r\nexport default class PendingBlock extends AbstractBlock {\r\n\ttype: 'PendingBlock';\r\n\tconstructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode) {\r\n\t\tsuper(component, parent, scope, info);\r\n\t\tthis.children = map_children(component, parent, scope, info.children);\r\n\r\n\t\tif (!info.skip) {\r\n\t\t\tthis.warn_if_empty_block();\r\n\t\t}\r\n\t}\r\n}\r\n","import TemplateScope from './shared/TemplateScope';\r\nimport AbstractBlock from './shared/AbstractBlock';\r\nimport AwaitBlock from './AwaitBlock';\r\nimport Component from '../Component';\r\nimport { TemplateNode } from '../../interfaces';\r\nimport get_const_tags from './shared/get_const_tags';\r\nimport ConstTag from './ConstTag';\r\n\r\nexport default class CatchBlock extends AbstractBlock {\r\n\ttype: 'CatchBlock';\r\n\tscope: TemplateScope;\r\n\tconst_tags: ConstTag[];\r\n\r\n\tconstructor(component: Component, parent: AwaitBlock, scope: TemplateScope, info: TemplateNode) {\r\n\t\tsuper(component, parent, scope, info);\r\n\r\n\t\tthis.scope = scope.child();\r\n\t\tif (parent.catch_node) {\r\n\t\t\tparent.catch_contexts.forEach(context => {\r\n\t\t\t\tthis.scope.add(context.key.name, parent.expression.dependencies, this);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t([this.const_tags, this.children] = get_const_tags(info.children, component, this, parent));\r\n\r\n\t\tif (!info.skip) {\r\n\t\t\tthis.warn_if_empty_block();\r\n\t\t}\r\n\t}\r\n}\r\n","import Node from './shared/Node';\r\nimport PendingBlock from './PendingBlock';\r\nimport ThenBlock from './ThenBlock';\r\nimport CatchBlock from './CatchBlock';\r\nimport Expression from './shared/Expression';\r\nimport Component from '../Component';\r\nimport TemplateScope from './shared/TemplateScope';\r\nimport { TemplateNode } from '../../interfaces';\r\nimport { Context, unpack_destructuring } from './shared/Context';\r\nimport { Node as ESTreeNode } from 'estree';\r\n\r\nexport default class AwaitBlock extends Node {\r\n\ttype: 'AwaitBlock';\r\n\texpression: Expression;\r\n\r\n\tthen_contexts: Context[];\r\n\tcatch_contexts: Context[];\r\n\r\n\tthen_node: ESTreeNode | null;\r\n\tcatch_node: ESTreeNode | null;\r\n\r\n\tpending: PendingBlock;\r\n\tthen: ThenBlock;\r\n\tcatch: CatchBlock;\r\n\r\n\tconstructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode) {\r\n\t\tsuper(component, parent, scope, info);\r\n\r\n\t\tthis.expression = new Expression(component, this, scope, info.expression);\r\n\r\n\t\tthis.then_node = info.value;\r\n\t\tthis.catch_node = info.error;\r\n\r\n\t\tif (this.then_node) {\r\n\t\t\tthis.then_contexts = [];\r\n\t\t\tunpack_destructuring({ contexts: this.then_contexts, node: info.value, scope, component });\r\n\t\t}\r\n\r\n\t\tif (this.catch_node) {\r\n\t\t\tthis.catch_contexts = [];\r\n\t\t\tunpack_destructuring({ contexts: this.catch_contexts, node: info.error, scope, component });\r\n\t\t}\r\n\r\n\t\tthis.pending = new PendingBlock(component, this, scope, info.pending);\r\n\t\tthis.then = new ThenBlock(component, this, scope, info.then);\r\n\t\tthis.catch = new CatchBlock(component, this, scope, info.catch);\r\n\t}\r\n}\r\n","import Node from './shared/Node';\r\nimport Expression from './shared/Expression';\r\nimport Component from '../Component';\r\nimport { sanitize } from '../../utils/names';\r\nimport { Identifier } from 'estree';\r\nimport TemplateScope from './shared/TemplateScope';\r\nimport { TemplateNode } from '../../interfaces';\r\n\r\nexport default class EventHandler extends Node {\r\n\ttype: 'EventHandler';\r\n\tname: string;\r\n\tmodifiers: Set<string>;\r\n\texpression: Expression;\r\n\thandler_name: Identifier;\r\n\tuses_context = false;\r\n\tcan_make_passive = false;\r\n\r\n\tconstructor(component: Component, parent: Node, template_scope: TemplateScope, info: TemplateNode) {\r\n\t\tsuper(component, parent, template_scope, info);\r\n\r\n\t\tthis.name = info.name;\r\n\t\tthis.modifiers = new Set(info.modifiers);\r\n\r\n\t\tif (info.expression) {\r\n\t\t\tthis.expression = new Expression(component, this, template_scope, info.expression);\r\n\t\t\tthis.uses_context = this.expression.uses_context;\r\n\r\n\t\t\tif (/FunctionExpression/.test(info.expression.type) && info.expression.params.length === 0) {\r\n\t\t\t\t// TODO make this detection more accurate — if `event.preventDefault` isn't called, and\r\n\t\t\t\t// `event` is passed to another function, we can make it passive\r\n\t\t\t\tthis.can_make_passive = true;\r\n\t\t\t} else if (info.expression.type === 'Identifier') {\r\n\t\t\t\tlet node = component.node_for_declaration.get(info.expression.name);\r\n\r\n\t\t\t\tif (node) {\r\n\t\t\t\t\tif (node.type === 'VariableDeclaration') {\r\n\t\t\t\t\t\t// for `const handleClick = () => {...}`, we want the [arrow] function expression node\r\n\t\t\t\t\t\tconst declarator = node.declarations.find(d => (d.id as Identifier).name === info.expression.name);\r\n\t\t\t\t\t\tnode = declarator && declarator.init;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (node && (node.type === 'FunctionExpression' || node.type === 'FunctionDeclaration' || node.type === 'ArrowFunctionExpression') && node.params.length === 0) {\r\n\t\t\t\t\t\tthis.can_make_passive = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.handler_name = component.get_unique_name(`${sanitize(this.name)}_handler`);\r\n\t\t}\r\n\t}\r\n\r\n\tget reassigned(): boolean {\r\n\t\tif (!this.expression) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tconst node = this.expression.node;\r\n\r\n\t\tif (/FunctionExpression/.test(node.type)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn this.expression.dynamic_dependencies().length > 0;\r\n\t}\r\n}\r\n","import Node from './shared/Node';\r\nimport Expression from './shared/Expression';\r\nimport Component from '../Component';\r\nimport TemplateScope from './shared/TemplateScope';\r\nimport { Directive } from '../../interfaces';\r\n\r\nexport default class Action extends Node {\r\n\ttype: 'Action';\r\n\tname: string;\r\n\texpression: Expression;\r\n\tuses_context: boolean;\r\n\ttemplate_scope: TemplateScope;\r\n\r\n\tconstructor(component: Component, parent: Node, scope: TemplateScope, info: Directive) {\r\n\t\tsuper(component, parent, scope, info);\r\n\r\n\t\tconst object = info.name.split('.')[0];\r\n\t\tcomponent.warn_if_undefined(object, info, scope);\r\n\r\n\t\tthis.name = info.name;\r\n\t\tcomponent.add_reference(this as any, object);\r\n\r\n\t\tthis.expression = info.expression\r\n\t\t\t? new Expression(component, this, scope, info.expression)\r\n\t\t\t: null;\r\n\r\n\t\tthis.template_scope = scope;\r\n\r\n\t\tthis.uses_context = this.expression && this.expression.uses_context;\r\n\t}\r\n}\r\n","import Node from './shared/Node';\r\nimport EventHandler from './EventHandler';\r\nimport Action from './Action';\r\nimport Component from '../Component';\r\nimport TemplateScope from './shared/TemplateScope';\r\nimport { Element } from '../../interfaces';\r\n\r\nexport default class Body extends Node {\r\n\ttype: 'Body';\r\n\thandlers: EventHandler[] = [];\r\n\tactions: Action[] = [];\r\n\r\n\tconstructor(component: Component, parent: Node, scope: TemplateScope, info: Element) {\r\n\t\tsuper(component, parent, scope, info);\r\n\r\n\t\tinfo.attributes.forEach((node) => {\r\n\t\t\tif (node.type === 'EventHandler') {\r\n\t\t\t\tthis.handlers.push(new EventHandler(component, this, scope, node));\r\n\t\t\t} else if (node.type === 'Action') {\r\n\t\t\t\tthis.actions.push(new Action(component, this, scope, node));\r\n\t\t\t} else {\r\n\t\t\t\t// TODO there shouldn't be anything else here...\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n","import { TemplateNode } from '../../interfaces';\r\nimport Component from '../Component';\r\nimport Node from './shared/Node';\r\nimport TemplateScope from './shared/TemplateScope';\r\n\r\nexport default class Comment extends Node {\r\n\ttype: 'Comment';\r\n\tdata: string;\r\n\tignores: string[];\r\n\r\n\tconstructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode) {\r\n\t\tsuper(component, parent, scope, info);\r\n\t\tthis.data = info.data;\r\n\t\tthis.ignores = info.ignores;\r\n\t}\r\n}\r\n","import AbstractBlock from './shared/AbstractBlock';\r\nimport Component from '../Component';\r\nimport TemplateScope from './shared/TemplateScope';\r\nimport { TemplateNode } from '../../interfaces';\r\nimport Node from './shared/Node';\r\nimport ConstTag from './ConstTag';\r\nimport get_const_tags from './shared/get_const_tags';\r\n\r\nexport default class ElseBlock extends AbstractBlock {\r\n\ttype: 'ElseBlock';\r\n\tscope: TemplateScope;\r\n\tconst_tags: ConstTag[];\r\n\r\n\tconstructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode) {\r\n\t\tsuper(component, parent, scope, info);\r\n\r\n\t\tthis.scope = scope.child();\r\n\t\t([this.const_tags, this.children] = get_const_tags(info.children, component, this, this));\r\n\r\n\t\tthis.warn_if_empty_block();\r\n\t}\r\n}\r\n","import ElseBlock from './ElseBlock';\r\nimport Expression from './shared/Expression';\r\nimport TemplateScope from './shared/TemplateScope';\r\nimport AbstractBlock from './shared/AbstractBlock';\r\nimport Element from './Element';\r\nimport ConstTag from './ConstTag';\r\nimport { Context, unpack_destructuring } from './shared/Context';\r\nimport { Node } from 'estree';\r\nimport Component from '../Component';\r\nimport { TemplateNode } from '../../interfaces';\r\nimport compiler_errors from '../compiler_errors';\r\nimport { INode } from './interfaces';\r\nimport get_const_tags from './shared/get_const_tags';\r\n\r\nexport default class EachBlock extends AbstractBlock {\r\n\ttype: 'EachBlock';\r\n\r\n\texpression: Expression;\r\n\tcontext_node: Node;\r\n\r\n\titerations: string;\r\n\tindex: string;\r\n\tcontext: string;\r\n\tkey: Expression;\r\n\tscope: TemplateScope;\r\n\tcontexts: Context[];\r\n\tconst_tags: ConstTag[];\r\n\thas_animation: boolean;\r\n\thas_binding = false;\r\n\thas_index_binding = false;\r\n\r\n\telse?: ElseBlock;\r\n\r\n\tconstructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode) {\r\n\t\tsuper(component, parent, scope, info);\r\n\r\n\t\tthis.expression = new Expression(component, this, scope, info.expression);\r\n\t\tthis.context = info.context.name || 'each'; // TODO this is used to facilitate binding; currently fails with destructuring\r\n\t\tthis.context_node = info.context;\r\n\t\tthis.index = info.index;\r\n\r\n\t\tthis.scope = scope.child();\r\n\r\n\t\tthis.contexts = [];\r\n\t\tunpack_destructuring({ contexts: this.contexts, node: info.context, scope, component });\r\n\r\n\t\tthis.contexts.forEach(context => {\r\n\t\t\tthis.scope.add(context.key.name, this.expression.dependencies, this);\r\n\t\t});\r\n\r\n\t\tif (this.index) {\r\n\t\t\t// index can only change if this is a keyed each block\r\n\t\t\tconst dependencies = info.key ? this.expression.dependencies : new Set([]);\r\n\t\t\tthis.scope.add(this.index, dependencies, this);\r\n\t\t}\r\n\r\n\t\tthis.key = info.key\r\n\t\t\t? new Expression(component, this, this.scope, info.key)\r\n\t\t\t: null;\r\n\r\n\t\tthis.has_animation = false;\r\n\r\n\t\t([this.const_tags, this.children] = get_const_tags(info.children, component, this, this));\r\n\r\n\t\tif (this.has_animation) {\r\n\t\t\tthis.children = this.children.filter(child => !isEmptyNode(child) && !isCommentNode(child));\r\n\r\n\t\t\tif (this.children.length !== 1) {\r\n\t\t\t\tconst child = this.children.find(child => !!(child as Element).animation);\r\n\t\t\t\tcomponent.error((child as Element).animation, compiler_errors.invalid_animation_sole);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.warn_if_empty_block();\r\n\r\n\t\tthis.else = info.else\r\n\t\t\t? new ElseBlock(component, this, this.scope, info.else)\r\n\t\t\t: null;\r\n\t}\r\n}\r\n\r\nfunction isEmptyNode(node: INode) {\r\n\treturn node.type === 'Text' && node.data.trim() === '';\r\n}\r\nfunction isCommentNode(node: INode) {\r\n\treturn node.type === 'Comment';\r\n}\r\n","export function string_literal(data: string) {\r\n\treturn {\r\n\t\ttype: 'Literal',\r\n\t\tvalue: data\r\n\t};\r\n}\r\n\r\nexport function escape(data: string, { only_escape_at_symbol = false } = {}) {\r\n\treturn data.replace(only_escape_at_symbol ? /@+/g : /(@+|#+)/g, (match: string) => {\r\n\t\treturn match + match[0];\r\n\t});\r\n}\r\n\r\nconst escaped = {\r\n\t'\"': '&quot;',\r\n\t\"'\": '&#39;',\r\n\t'&': '&amp;',\r\n\t'<': '&lt;',\r\n\t'>': '&gt;'\r\n};\r\n\r\nexport function escape_html(html) {\r\n\treturn String(html).replace(/[\"'&<>]/g, match => escaped[match]);\r\n}\r\n\r\nexport function escape_template(str) {\r\n\treturn str.replace(/(\\${|`|\\\\)/g, '\\\\$1');\r\n}\r\n","export default function add_to_set<T>(a: Set<T>, b: Set<T> | T[]) {\r\n\t// @ts-ignore\r\n\tb.forEach(item => {\r\n\t\ta.add(item);\r\n\t});\r\n}\r\n","import { string_literal } from '../utils/stringify';\r\nimport add_to_set from '../utils/add_to_set';\r\nimport Component from '../Component';\r\nimport Node from './shared/Node';\r\nimport Element from './Element';\r\nimport Text from './Text';\r\nimport Expression from './shared/Expression';\r\nimport TemplateScope from './shared/TemplateScope';\r\nimport { x } from 'code-red';\r\nimport { TemplateNode } from '../../interfaces';\r\n\r\nexport default class Attribute extends Node {\r\n\ttype: 'Attribute' | 'Spread';\r\n\tstart: number;\r\n\tend: number;\r\n\tscope: TemplateScope;\r\n\r\n\tcomponent: Component;\r\n\tparent: Element;\r\n\tname: string;\r\n\tis_spread: boolean;\r\n\tis_true: boolean;\r\n\tis_static: boolean;\r\n\texpression?: Expression;\r\n\tchunks: Array<Text | Expression>;\r\n\tdependencies: Set<string>;\r\n\r\n\tconstructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode) {\r\n\t\tsuper(component, parent, scope, info);\r\n\t\tthis.scope = scope;\r\n\r\n\t\tif (info.type === 'Spread') {\r\n\t\t\tthis.name = null;\r\n\t\t\tthis.is_spread = true;\r\n\t\t\tthis.is_true = false;\r\n\r\n\t\t\tthis.expression = new Expression(component, this, scope, info.expression);\r\n\t\t\tthis.dependencies = this.expression.dependencies;\r\n\t\t\tthis.chunks = null;\r\n\r\n\t\t\tthis.is_static = false;\r\n\t\t} else {\r\n\t\t\tthis.name = info.name;\r\n\t\t\tthis.is_true = info.value === true;\r\n\t\t\tthis.is_static = true;\r\n\r\n\t\t\tthis.dependencies = new Set();\r\n\r\n\t\t\tthis.chunks = this.is_true\r\n\t\t\t\t? []\r\n\t\t\t\t: info.value.map(node => {\r\n\t\t\t\t\tif (node.type === 'Text') return node;\r\n\r\n\t\t\t\t\tthis.is_static = false;\r\n\r\n\t\t\t\t\tconst expression = new Expression(component, this, scope, node.expression);\r\n\r\n\t\t\t\t\tadd_to_set(this.dependencies, expression.dependencies);\r\n\t\t\t\t\treturn expression;\r\n\t\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tget_dependencies() {\r\n\t\tif (this.is_spread) return this.expression.dynamic_dependencies();\r\n\r\n\t\tconst dependencies: Set<string> = new Set();\r\n\t\tthis.chunks.forEach(chunk => {\r\n\t\t\tif (chunk.type === 'Expression') {\r\n\t\t\t\tadd_to_set(dependencies, chunk.dynamic_dependencies());\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn Array.from(dependencies);\r\n\t}\r\n\r\n\tget_value(block) {\r\n\t\tif (this.is_true) return x`true`;\r\n\t\tif (this.chunks.length === 0) return x`\"\"`;\r\n\r\n\t\tif (this.chunks.length === 1) {\r\n\t\t\treturn this.chunks[0].type === 'Text'\r\n\t\t\t\t? string_literal((this.chunks[0] as Text).data)\r\n\t\t\t\t: (this.chunks[0] as Expression).manipulate(block);\r\n\t\t}\r\n\r\n\t\tlet expression = this.chunks\r\n\t\t\t.map(chunk => chunk.type === 'Text' ? string_literal(chunk.data) : chunk.manipulate(block))\r\n\t\t\t.reduce((lhs, rhs) => x`${lhs} + ${rhs}`);\r\n\r\n\t\tif (this.chunks[0].type !== 'Text') {\r\n\t\t\texpression = x`\"\" + ${expression}`;\r\n\t\t}\r\n\r\n\t\treturn expression;\r\n\t}\r\n\r\n\tget_static_value() {\r\n\t\tif (!this.is_static) return null;\r\n\r\n\t\treturn this.is_true\r\n\t\t\t? true\r\n\t\t\t: this.chunks[0]\r\n\t\t\t\t// method should be called only when `is_static = true`\r\n\t\t\t\t? (this.chunks[0] as Text).data\r\n\t\t\t\t: '';\r\n\t}\r\n\r\n\tshould_cache() {\r\n\t\treturn this.is_static\r\n\t\t\t? false\r\n\t\t\t: this.chunks.length === 1\r\n\t\t\t\t// @ts-ignore todo: probably error\r\n\t\t\t\t? this.chunks[0].node.type !== 'Identifier' || this.scope.names.has(this.chunks[0].node.name)\r\n\t\t\t\t: true;\r\n\t}\r\n}\r\n","import Node from './shared/Node';\r\nimport get_object from '../utils/get_object';\r\nimport Expression from './shared/Expression';\r\nimport Component from '../Component';\r\nimport TemplateScope from './shared/TemplateScope';\r\nimport {dimensions} from '../../utils/patterns';\r\nimport { Node as ESTreeNode } from 'estree';\r\nimport { TemplateNode } from '../../interfaces';\r\nimport Element from './Element';\r\nimport InlineComponent from './InlineComponent';\r\nimport Window from './Window';\r\nimport { clone } from '../../utils/clone';\r\nimport compiler_errors from '../compiler_errors';\r\n\r\n// TODO this should live in a specific binding\r\nconst read_only_media_attributes = new Set([\r\n\t'duration',\r\n\t'buffered',\r\n\t'seekable',\r\n\t'played',\r\n\t'seeking',\r\n\t'ended',\r\n\t'videoHeight',\r\n\t'videoWidth'\r\n]);\r\n\r\nexport default class Binding extends Node {\r\n\ttype: 'Binding';\r\n\tname: string;\r\n\texpression: Expression;\r\n\traw_expression: ESTreeNode; // TODO exists only for bind:this — is there a more elegant solution?\r\n\tis_contextual: boolean;\r\n\tis_readonly: boolean;\r\n\r\n\tconstructor(component: Component, parent: Element | InlineComponent | Window, scope: TemplateScope, info: TemplateNode) {\r\n\t\tsuper(component, parent, scope, info);\r\n\r\n\t\tif (info.expression.type !== 'Identifier' && info.expression.type !== 'MemberExpression') {\r\n\t\t\tcomponent.error(info, compiler_errors.invalid_directive_value);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.name = info.name;\r\n\t\tthis.expression = new Expression(component, this, scope, info.expression);\r\n\t\tthis.raw_expression = clone(info.expression);\r\n\r\n\t\tconst { name } = get_object(this.expression.node);\r\n\r\n\t\tthis.is_contextual = Array.from(this.expression.references).some(name => scope.names.has(name));\r\n\r\n\t\t// make sure we track this as a mutable ref\r\n\t\tif (scope.is_let(name)) {\r\n\t\t\tcomponent.error(this, compiler_errors.invalid_binding_let);\r\n\t\t\treturn;\r\n\t\t} else if (scope.names.has(name)) {\r\n\t\t\tif (scope.is_await(name)) {\r\n\t\t\t\tcomponent.error(this, compiler_errors.invalid_binding_await);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (scope.is_const(name)) {\r\n\t\t\t\tcomponent.error(this, compiler_errors.invalid_binding_const);\r\n\t\t\t}\r\n\r\n\t\t\tscope.dependencies_for_name.get(name).forEach(name => {\r\n\t\t\t\tconst variable = component.var_lookup.get(name);\r\n\t\t\t\tif (variable) {\r\n\t\t\t\t\tvariable.mutated = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tconst variable = component.var_lookup.get(name);\r\n\r\n\t\t\tif (!variable || variable.global) {\r\n\t\t\t\tcomponent.error(this.expression.node as any, compiler_errors.binding_undeclared(name));\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvariable[this.expression.node.type === 'MemberExpression' ? 'mutated' : 'reassigned'] = true;\r\n\r\n\t\t\tif (info.expression.type === 'Identifier' && !variable.writable) {\r\n\t\t\t\tcomponent.error(this.expression.node as any, compiler_errors.invalid_binding_writibale);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst type = parent.get_static_attribute_value('type');\r\n\r\n\t\tthis.is_readonly =\r\n\t\t\tdimensions.test(this.name) ||\r\n\t\t\t(isElement(parent) &&\r\n\t\t\t\t((parent.is_media_node() && read_only_media_attributes.has(this.name)) ||\r\n\t\t\t\t\t(parent.name === 'input' && type === 'file')) /* TODO others? */);\r\n\t}\r\n\r\n\tis_readonly_media_attribute() {\r\n\t\treturn read_only_media_attributes.has(this.name);\r\n\t}\r\n}\r\n\r\nfunction isElement(node: Node): node is Element {\r\n\treturn !!(node as any).is_media_node;\r\n}\r\n","import Node from './shared/Node';\r\nimport Expression from './shared/Expression';\r\nimport Component from '../Component';\r\nimport TemplateScope from './shared/TemplateScope';\r\nimport { TemplateNode } from '../../interfaces';\r\nimport Element from './Element';\r\nimport compiler_errors from '../compiler_errors';\r\n\r\nexport default class Transition extends Node {\r\n\ttype: 'Transition';\r\n\tname: string;\r\n\tdirective: string;\r\n\texpression: Expression;\r\n\tis_local: boolean;\r\n\r\n\tconstructor(component: Component, parent: Element, scope: TemplateScope, info: TemplateNode) {\r\n\t\tsuper(component, parent, scope, info);\r\n\r\n\t\tcomponent.warn_if_undefined(info.name, info, scope);\r\n\r\n\t\tthis.name = info.name;\r\n\t\tcomponent.add_reference(this as any, info.name.split('.')[0]);\r\n\r\n\t\tthis.directive = info.intro && info.outro ? 'transition' : info.intro ? 'in' : 'out';\r\n\t\tthis.is_local = info.modifiers.includes('local');\r\n\r\n\t\tif ((info.intro && parent.intro) || (info.outro && parent.outro)) {\r\n\t\t\tconst parent_transition = (parent.intro || parent.outro);\r\n\t\t\tcomponent.error(info, compiler_errors.duplicate_transition(this.directive, parent_transition.directive));\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.expression = info.expression\r\n\t\t\t? new Expression(component, this, scope, info.expression)\r\n\t\t\t: null;\r\n\t}\r\n}\r\n","import Node from './shared/Node';\r\nimport Expression from './shared/Expression';\r\nimport Component from '../Component';\r\nimport TemplateScope from './shared/TemplateScope';\r\nimport { TemplateNode } from '../../interfaces';\r\nimport Element from './Element';\r\nimport EachBlock from './EachBlock';\r\nimport compiler_errors from '../compiler_errors';\r\n\r\nexport default class Animation extends Node {\r\n\ttype: 'Animation';\r\n\tname: string;\r\n\texpression: Expression;\r\n\r\n\tconstructor(component: Component, parent: Element, scope: TemplateScope, info: TemplateNode) {\r\n\t\tsuper(component, parent, scope, info);\r\n\r\n\t\tcomponent.warn_if_undefined(info.name, info, scope);\r\n\r\n\t\tthis.name = info.name;\r\n\t\tcomponent.add_reference(this as any, info.name.split('.')[0]);\r\n\r\n\t\tif (parent.animation) {\r\n\t\t\tcomponent.error(this, compiler_errors.duplicate_animation);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst block = parent.parent;\r\n\t\tif (!block || block.type !== 'EachBlock') {\r\n\t\t\t// TODO can we relax the 'immediate child' rule?\r\n\t\t\tcomponent.error(this, compiler_errors.invalid_animation_immediate);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!block.key) {\r\n\t\t\tcomponent.error(this, compiler_errors.invalid_animation_key);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t(block as EachBlock).has_animation = true;\r\n\r\n\t\tthis.expression = info.expression\r\n\t\t\t? new Expression(component, this, scope, info.expression, true)\r\n\t\t\t: null;\r\n\t}\r\n}\r\n","import Node from './shared/Node';\r\nimport Expression from './shared/Expression';\r\nimport { TemplateNode } from '../../interfaces';\r\nimport TemplateScope from './shared/TemplateScope';\r\nimport Component from '../Component';\r\n\r\nexport default class Class extends Node {\r\n\ttype: 'Class';\r\n\tname: string;\r\n\texpression: Expression;\r\n\r\n\tconstructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode) {\r\n\t\tsuper(component, parent, scope, info);\r\n\r\n\t\tthis.name = info.name;\r\n\r\n\t\tthis.expression = info.expression\r\n\t\t\t? new Expression(component, this, scope, info.expression)\r\n\t\t\t: null;\r\n\t}\r\n}\r\n","import { TemplateElement, TemplateLiteral } from 'estree';\r\nimport { MustacheTag, Text } from '../../interfaces';\r\n\r\n/**\r\n * Transforms a list of Text and MustacheTags into a TemplateLiteral expression.\r\n * Start/End positions on the elements of the expression are not set.\r\n */\r\nexport function nodes_to_template_literal(value: Array<Text | MustacheTag>): TemplateLiteral {\r\n    const literal: TemplateLiteral  = {\r\n        type: 'TemplateLiteral',\r\n        expressions: [],\r\n        quasis: []\r\n    };\r\n\r\n    let quasi: TemplateElement  = {\r\n        type: 'TemplateElement',\r\n        value: { raw: '', cooked: null },\r\n        tail: false\r\n    };\r\n\r\n    value.forEach((node) => {\r\n        if (node.type === 'Text') {\r\n            quasi.value.raw += node.raw;\r\n        } else if (node.type === 'MustacheTag') {\r\n            literal.quasis.push(quasi);\r\n            literal.expressions.push(node.expression as any);\r\n            quasi = {\r\n                type: 'TemplateElement',\r\n                value: { raw: '', cooked: null },\r\n                tail: false\r\n            };\r\n        }\r\n    });\r\n    quasi.tail = true;\r\n    literal.quasis.push(quasi);\r\n    return literal;\r\n}\r\n","import { TemplateNode } from '../../interfaces';\r\nimport Component from '../Component';\r\nimport { nodes_to_template_literal } from '../utils/nodes_to_template_literal';\r\nimport Expression from './shared/Expression';\r\nimport Node from './shared/Node';\r\nimport TemplateScope from './shared/TemplateScope';\r\n\r\nexport default class StyleDirective extends Node {\r\n\ttype: 'StyleDirective';\r\n\tname: string;\r\n\texpression: Expression;\r\n\tshould_cache: boolean;\r\n\r\n\tconstructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode) {\r\n\t\tsuper(component, parent, scope, info);\r\n\r\n\t\tthis.name = info.name;\r\n\r\n\t\t// Convert the value array to an expression so it's easier to handle\r\n\t\t// the StyleDirective going forward.\r\n\t\tif (info.value === true || (info.value.length === 1 && info.value[0].type === 'MustacheTag')) {\r\n\t\t\tconst identifier = info.value === true\r\n\t\t\t\t? {\r\n\t\t\t\t\ttype: 'Identifier',\r\n\t\t\t\t\tstart: info.end - info.name.length,\r\n\t\t\t\t\tend: info.end,\r\n\t\t\t\t\tname: info.name\r\n\t\t\t\t} as any\r\n\t\t\t\t: info.value[0].expression;\r\n\t\t\tthis.expression = new Expression(component, this, scope, identifier);\r\n\t\t\tthis.should_cache = false;\r\n\t\t} else {\r\n\t\t\tconst raw_expression = nodes_to_template_literal(info.value);\r\n\t\t\tthis.expression = new Expression(component, this, scope, raw_expression);\r\n\t\t\tthis.should_cache = raw_expression.expressions.length > 0;\r\n\t\t}\r\n\r\n\t}\r\n}\r\n","import Node from './shared/Node';\r\nimport Component from '../Component';\r\nimport TemplateScope from './shared/TemplateScope';\r\nimport { INode } from './interfaces';\r\nimport { TemplateNode } from '../../interfaces';\r\n\r\n// Whitespace inside one of these elements will not result in\r\n// a whitespace node being created in any circumstances. (This\r\n// list is almost certainly very incomplete)\r\nconst elements_without_text = new Set([\r\n\t'audio',\r\n\t'datalist',\r\n\t'dl',\r\n\t'optgroup',\r\n\t'select',\r\n\t'video'\r\n]);\r\n\r\nexport default class Text extends Node {\r\n\ttype: 'Text';\r\n\tdata: string;\r\n\tsynthetic: boolean;\r\n\r\n\tconstructor(component: Component, parent: INode, scope: TemplateScope, info: TemplateNode) {\r\n\t\tsuper(component, parent, scope, info);\r\n\t\tthis.data = info.data;\r\n\t\tthis.synthetic = info.synthetic || false;\r\n\t}\r\n\r\n\tshould_skip() {\r\n\t\tif (/\\S/.test(this.data)) return false;\r\n\r\n\t\tconst parent_element = this.find_nearest(/(?:Element|InlineComponent|SlotTemplate|Head)/);\r\n\t\tif (!parent_element) return false;\r\n\r\n\t\tif (parent_element.type === 'Head') return true;\r\n\t\tif (parent_element.type === 'InlineComponent') return parent_element.children.length === 1 && this === parent_element.children[0];\r\n\r\n\t\t// svg namespace exclusions\r\n\t\tif (/svg$/.test(parent_element.namespace)) {\r\n\t\t\tif (this.prev && this.prev.type === 'Element' && this.prev.name === 'tspan') return false;\r\n\t\t}\r\n\r\n\t\treturn parent_element.namespace || elements_without_text.has(parent_element.name);\r\n\t}\r\n\r\n\tkeep_space(): boolean {\r\n\t\tif (this.component.component_options.preserveWhitespace) return true;\r\n\t\treturn this.within_pre();\r\n\t}\r\n\r\n\twithin_pre(): boolean {\r\n\t\tlet node = this.parent;\r\n\t\twhile (node) {\r\n\t\t\tif (node.type === 'Element' && node.name === 'pre') {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tnode = node.parent;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n}\r\n","// The `foreign` namespace covers all DOM implementations that aren't HTML5.\r\n// It opts out of HTML5-specific a11y checks and case-insensitive attribute names.\r\nexport const foreign = 'https://svelte.dev/docs#template-syntax-svelte-options';\r\nexport const html = 'http://www.w3.org/1999/xhtml';\r\nexport const mathml = 'http://www.w3.org/1998/Math/MathML';\r\nexport const svg = 'http://www.w3.org/2000/svg';\r\nexport const xlink = 'http://www.w3.org/1999/xlink';\r\nexport const xml = 'http://www.w3.org/XML/1998/namespace';\r\nexport const xmlns = 'http://www.w3.org/2000/xmlns';\r\n\r\nexport const valid_namespaces = [\r\n\t'foreign',\r\n\t'html',\r\n\t'mathml',\r\n\t'svg',\r\n\t'xlink',\r\n\t'xml',\r\n\t'xmlns',\r\n\tforeign,\r\n\thtml,\r\n\tmathml,\r\n\tsvg,\r\n\txlink,\r\n\txml,\r\n\txmlns\r\n];\r\n\r\nexport const namespaces: Record<string, string> = { foreign, html, mathml, svg, xlink, xml, xmlns };\r\n","import Node from './shared/Node';\r\nimport Component from '../Component';\r\nimport { walk } from 'estree-walker';\r\nimport { BasePattern, Identifier } from 'estree';\r\nimport TemplateScope from './shared/TemplateScope';\r\nimport { TemplateNode } from '../../interfaces';\r\nimport compiler_errors from '../compiler_errors';\r\n\r\nconst applicable = new Set(['Identifier', 'ObjectExpression', 'ArrayExpression', 'Property']);\r\n\r\nexport default class Let extends Node {\r\n\ttype: 'Let';\r\n\tname: Identifier;\r\n\tvalue: Identifier;\r\n\tnames: string[] = [];\r\n\r\n\tconstructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode) {\r\n\t\tsuper(component, parent, scope, info);\r\n\r\n\t\tthis.name = { type: 'Identifier', name: info.name };\r\n\r\n\t\tconst { names } = this;\r\n\r\n\t\tif (info.expression) {\r\n\t\t\tthis.value = info.expression;\r\n\r\n\t\t\twalk(info.expression, {\r\n\t\t\t\tenter(node: Identifier | BasePattern) {\r\n\t\t\t\t\tif (!applicable.has(node.type)) {\r\n\t\t\t\t\t\treturn component.error(node as any, compiler_errors.invalid_let);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (node.type === 'Identifier') {\r\n\t\t\t\t\t\tnames.push((node as Identifier).name);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// slightly unfortunate hack\r\n\t\t\t\t\tif (node.type === 'ArrayExpression') {\r\n\t\t\t\t\t\tnode.type = 'ArrayPattern';\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (node.type === 'ObjectExpression') {\r\n\t\t\t\t\t\tnode.type = 'ObjectPattern';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tnames.push(this.name.name);\r\n\t\t}\r\n\t}\r\n}\r\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nvar properties = [['aria-activedescendant', {\n  'type': 'id'\n}], ['aria-atomic', {\n  'type': 'boolean'\n}], ['aria-autocomplete', {\n  'type': 'token',\n  'values': ['inline', 'list', 'both', 'none']\n}], ['aria-busy', {\n  'type': 'boolean'\n}], ['aria-checked', {\n  'type': 'tristate'\n}], ['aria-colcount', {\n  type: 'integer'\n}], ['aria-colindex', {\n  type: 'integer'\n}], ['aria-colspan', {\n  type: 'integer'\n}], ['aria-controls', {\n  'type': 'idlist'\n}], ['aria-current', {\n  type: 'token',\n  values: ['page', 'step', 'location', 'date', 'time', true, false]\n}], ['aria-describedby', {\n  'type': 'idlist'\n}], ['aria-details', {\n  'type': 'id'\n}], ['aria-disabled', {\n  'type': 'boolean'\n}], ['aria-dropeffect', {\n  'type': 'tokenlist',\n  'values': ['copy', 'execute', 'link', 'move', 'none', 'popup']\n}], ['aria-errormessage', {\n  'type': 'id'\n}], ['aria-expanded', {\n  'type': 'boolean',\n  'allowundefined': true\n}], ['aria-flowto', {\n  'type': 'idlist'\n}], ['aria-grabbed', {\n  'type': 'boolean',\n  'allowundefined': true\n}], ['aria-haspopup', {\n  'type': 'token',\n  'values': [false, true, 'menu', 'listbox', 'tree', 'grid', 'dialog']\n}], ['aria-hidden', {\n  'type': 'boolean',\n  'allowundefined': true\n}], ['aria-invalid', {\n  'type': 'token',\n  'values': ['grammar', false, 'spelling', true]\n}], ['aria-keyshortcuts', {\n  type: 'string'\n}], ['aria-label', {\n  'type': 'string'\n}], ['aria-labelledby', {\n  'type': 'idlist'\n}], ['aria-level', {\n  'type': 'integer'\n}], ['aria-live', {\n  'type': 'token',\n  'values': ['assertive', 'off', 'polite']\n}], ['aria-modal', {\n  type: 'boolean'\n}], ['aria-multiline', {\n  'type': 'boolean'\n}], ['aria-multiselectable', {\n  'type': 'boolean'\n}], ['aria-orientation', {\n  'type': 'token',\n  'values': ['vertical', 'undefined', 'horizontal']\n}], ['aria-owns', {\n  'type': 'idlist'\n}], ['aria-placeholder', {\n  type: 'string'\n}], ['aria-posinset', {\n  'type': 'integer'\n}], ['aria-pressed', {\n  'type': 'tristate'\n}], ['aria-readonly', {\n  'type': 'boolean'\n}], ['aria-relevant', {\n  'type': 'tokenlist',\n  'values': ['additions', 'all', 'removals', 'text']\n}], ['aria-required', {\n  'type': 'boolean'\n}], ['aria-roledescription', {\n  type: 'string'\n}], ['aria-rowcount', {\n  type: 'integer'\n}], ['aria-rowindex', {\n  type: 'integer'\n}], ['aria-rowspan', {\n  type: 'integer'\n}], ['aria-selected', {\n  'type': 'boolean',\n  'allowundefined': true\n}], ['aria-setsize', {\n  'type': 'integer'\n}], ['aria-sort', {\n  'type': 'token',\n  'values': ['ascending', 'descending', 'none', 'other']\n}], ['aria-valuemax', {\n  'type': 'number'\n}], ['aria-valuemin', {\n  'type': 'number'\n}], ['aria-valuenow', {\n  'type': 'number'\n}], ['aria-valuetext', {\n  'type': 'string'\n}]];\nvar ariaPropsMap = {\n  entries: function entries() {\n    return properties;\n  },\n  get: function get(key) {\n    var item = properties.find(function (tuple) {\n      return tuple[0] === key ? true : false;\n    });\n    return item && item[1];\n  },\n  has: function has(key) {\n    return !!this.get(key);\n  },\n  keys: function keys() {\n    return properties.map(function (_ref) {\n      var _ref2 = _slicedToArray(_ref, 1),\n          key = _ref2[0];\n\n      return key;\n    });\n  },\n  values: function values() {\n    return properties.map(function (_ref3) {\n      var _ref4 = _slicedToArray(_ref3, 2),\n          values = _ref4[1];\n\n      return values;\n    });\n  }\n};\nvar _default = ariaPropsMap;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nvar dom = [['a', {\n  reserved: false\n}], ['abbr', {\n  reserved: false\n}], ['acronym', {\n  reserved: false\n}], ['address', {\n  reserved: false\n}], ['applet', {\n  reserved: false\n}], ['area', {\n  reserved: false\n}], ['article', {\n  reserved: false\n}], ['aside', {\n  reserved: false\n}], ['audio', {\n  reserved: false\n}], ['b', {\n  reserved: false\n}], ['base', {\n  reserved: true\n}], ['bdi', {\n  reserved: false\n}], ['bdo', {\n  reserved: false\n}], ['big', {\n  reserved: false\n}], ['blink', {\n  reserved: false\n}], ['blockquote', {\n  reserved: false\n}], ['body', {\n  reserved: false\n}], ['br', {\n  reserved: false\n}], ['button', {\n  reserved: false\n}], ['canvas', {\n  reserved: false\n}], ['caption', {\n  reserved: false\n}], ['center', {\n  reserved: false\n}], ['cite', {\n  reserved: false\n}], ['code', {\n  reserved: false\n}], ['col', {\n  reserved: true\n}], ['colgroup', {\n  reserved: true\n}], ['content', {\n  reserved: false\n}], ['data', {\n  reserved: false\n}], ['datalist', {\n  reserved: false\n}], ['dd', {\n  reserved: false\n}], ['del', {\n  reserved: false\n}], ['details', {\n  reserved: false\n}], ['dfn', {\n  reserved: false\n}], ['dialog', {\n  reserved: false\n}], ['dir', {\n  reserved: false\n}], ['div', {\n  reserved: false\n}], ['dl', {\n  reserved: false\n}], ['dt', {\n  reserved: false\n}], ['em', {\n  reserved: false\n}], ['embed', {\n  reserved: false\n}], ['fieldset', {\n  reserved: false\n}], ['figcaption', {\n  reserved: false\n}], ['figure', {\n  reserved: false\n}], ['font', {\n  reserved: false\n}], ['footer', {\n  reserved: false\n}], ['form', {\n  reserved: false\n}], ['frame', {\n  reserved: false\n}], ['frameset', {\n  reserved: false\n}], ['h1', {\n  reserved: false\n}], ['h2', {\n  reserved: false\n}], ['h3', {\n  reserved: false\n}], ['h4', {\n  reserved: false\n}], ['h5', {\n  reserved: false\n}], ['h6', {\n  reserved: false\n}], ['head', {\n  reserved: true\n}], ['header', {\n  reserved: false\n}], ['hgroup', {\n  reserved: false\n}], ['hr', {\n  reserved: false\n}], ['html', {\n  reserved: true\n}], ['i', {\n  reserved: false\n}], ['iframe', {\n  reserved: false\n}], ['img', {\n  reserved: false\n}], ['input', {\n  reserved: false\n}], ['ins', {\n  reserved: false\n}], ['kbd', {\n  reserved: false\n}], ['keygen', {\n  reserved: false\n}], ['label', {\n  reserved: false\n}], ['legend', {\n  reserved: false\n}], ['li', {\n  reserved: false\n}], ['link', {\n  reserved: true\n}], ['main', {\n  reserved: false\n}], ['map', {\n  reserved: false\n}], ['mark', {\n  reserved: false\n}], ['marquee', {\n  reserved: false\n}], ['menu', {\n  reserved: false\n}], ['menuitem', {\n  reserved: false\n}], ['meta', {\n  reserved: true\n}], ['meter', {\n  reserved: false\n}], ['nav', {\n  reserved: false\n}], ['noembed', {\n  reserved: true\n}], ['noscript', {\n  reserved: true\n}], ['object', {\n  reserved: false\n}], ['ol', {\n  reserved: false\n}], ['optgroup', {\n  reserved: false\n}], ['option', {\n  reserved: false\n}], ['output', {\n  reserved: false\n}], ['p', {\n  reserved: false\n}], ['param', {\n  reserved: true\n}], ['picture', {\n  reserved: true\n}], ['pre', {\n  reserved: false\n}], ['progress', {\n  reserved: false\n}], ['q', {\n  reserved: false\n}], ['rp', {\n  reserved: false\n}], ['rt', {\n  reserved: false\n}], ['rtc', {\n  reserved: false\n}], ['ruby', {\n  reserved: false\n}], ['s', {\n  reserved: false\n}], ['samp', {\n  reserved: false\n}], ['script', {\n  reserved: true\n}], ['section', {\n  reserved: false\n}], ['select', {\n  reserved: false\n}], ['small', {\n  reserved: false\n}], ['source', {\n  reserved: true\n}], ['spacer', {\n  reserved: false\n}], ['span', {\n  reserved: false\n}], ['strike', {\n  reserved: false\n}], ['strong', {\n  reserved: false\n}], ['style', {\n  reserved: true\n}], ['sub', {\n  reserved: false\n}], ['summary', {\n  reserved: false\n}], ['sup', {\n  reserved: false\n}], ['table', {\n  reserved: false\n}], ['tbody', {\n  reserved: false\n}], ['td', {\n  reserved: false\n}], ['textarea', {\n  reserved: false\n}], ['tfoot', {\n  reserved: false\n}], ['th', {\n  reserved: false\n}], ['thead', {\n  reserved: false\n}], ['time', {\n  reserved: false\n}], ['title', {\n  reserved: true\n}], ['tr', {\n  reserved: false\n}], ['track', {\n  reserved: true\n}], ['tt', {\n  reserved: false\n}], ['u', {\n  reserved: false\n}], ['ul', {\n  reserved: false\n}], ['var', {\n  reserved: false\n}], ['video', {\n  reserved: false\n}], ['wbr', {\n  reserved: false\n}], ['xmp', {\n  reserved: false\n}]];\nvar domMap = {\n  entries: function entries() {\n    return dom;\n  },\n  get: function get(key) {\n    var item = dom.find(function (tuple) {\n      return tuple[0] === key ? true : false;\n    });\n    return item && item[1];\n  },\n  has: function has(key) {\n    return !!this.get(key);\n  },\n  keys: function keys() {\n    return dom.map(function (_ref) {\n      var _ref2 = _slicedToArray(_ref, 1),\n          key = _ref2[0];\n\n      return key;\n    });\n  },\n  values: function values() {\n    return dom.map(function (_ref3) {\n      var _ref4 = _slicedToArray(_ref3, 2),\n          values = _ref4[1];\n\n      return values;\n    });\n  }\n};\nvar _default = domMap;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar commandRole = {\n  abstract: true,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'menuitem'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'widget']]\n};\nvar _default = commandRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar compositeRole = {\n  abstract: true,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-activedescendant': null,\n    'aria-disabled': null\n  },\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'widget']]\n};\nvar _default = compositeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar inputRole = {\n  abstract: true,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'input'\n    },\n    module: 'XForms'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'widget']]\n};\nvar _default = inputRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar landmarkRole = {\n  abstract: true,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = landmarkRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar rangeRole = {\n  abstract: true,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-valuemax': null,\n    'aria-valuemin': null,\n    'aria-valuenow': null\n  },\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure']]\n};\nvar _default = rangeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar roletypeRole = {\n  abstract: true,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: [],\n  prohibitedProps: [],\n  props: {\n    'aria-atomic': null,\n    'aria-busy': null,\n    'aria-controls': null,\n    'aria-current': null,\n    'aria-describedby': null,\n    'aria-details': null,\n    'aria-dropeffect': null,\n    'aria-flowto': null,\n    'aria-grabbed': null,\n    'aria-hidden': null,\n    'aria-keyshortcuts': null,\n    'aria-label': null,\n    'aria-labelledby': null,\n    'aria-live': null,\n    'aria-owns': null,\n    'aria-relevant': null,\n    'aria-roledescription': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'rel'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'role'\n    },\n    module: 'XHTML'\n  }, {\n    concept: {\n      name: 'type'\n    },\n    module: 'Dublin Core'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: []\n};\nvar _default = roletypeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar sectionRole = {\n  abstract: true,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: [],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'frontmatter'\n    },\n    module: 'DTB'\n  }, {\n    concept: {\n      name: 'level'\n    },\n    module: 'DTB'\n  }, {\n    concept: {\n      name: 'level'\n    },\n    module: 'SMIL'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure']]\n};\nvar _default = sectionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar sectionheadRole = {\n  abstract: true,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure']]\n};\nvar _default = sectionheadRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar selectRole = {\n  abstract: true,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-orientation': null\n  },\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'composite'], ['roletype', 'structure', 'section', 'group']]\n};\nvar _default = selectRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar structureRole = {\n  abstract: true,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: [],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype']]\n};\nvar _default = structureRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar widgetRole = {\n  abstract: true,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: [],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype']]\n};\nvar _default = widgetRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar windowRole = {\n  abstract: true,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-modal': null\n  },\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype']]\n};\nvar _default = windowRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _commandRole = _interopRequireDefault(require(\"./abstract/commandRole\"));\n\nvar _compositeRole = _interopRequireDefault(require(\"./abstract/compositeRole\"));\n\nvar _inputRole = _interopRequireDefault(require(\"./abstract/inputRole\"));\n\nvar _landmarkRole = _interopRequireDefault(require(\"./abstract/landmarkRole\"));\n\nvar _rangeRole = _interopRequireDefault(require(\"./abstract/rangeRole\"));\n\nvar _roletypeRole = _interopRequireDefault(require(\"./abstract/roletypeRole\"));\n\nvar _sectionRole = _interopRequireDefault(require(\"./abstract/sectionRole\"));\n\nvar _sectionheadRole = _interopRequireDefault(require(\"./abstract/sectionheadRole\"));\n\nvar _selectRole = _interopRequireDefault(require(\"./abstract/selectRole\"));\n\nvar _structureRole = _interopRequireDefault(require(\"./abstract/structureRole\"));\n\nvar _widgetRole = _interopRequireDefault(require(\"./abstract/widgetRole\"));\n\nvar _windowRole = _interopRequireDefault(require(\"./abstract/windowRole\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ariaAbstractRoles = [['command', _commandRole.default], ['composite', _compositeRole.default], ['input', _inputRole.default], ['landmark', _landmarkRole.default], ['range', _rangeRole.default], ['roletype', _roletypeRole.default], ['section', _sectionRole.default], ['sectionhead', _sectionheadRole.default], ['select', _selectRole.default], ['structure', _structureRole.default], ['widget', _widgetRole.default], ['window', _windowRole.default]];\nvar _default = ariaAbstractRoles;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar alertRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-atomic': 'true',\n    'aria-live': 'assertive'\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'alert'\n    },\n    module: 'XForms'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = alertRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar alertdialogRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'alert'\n    },\n    module: 'XForms'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'alert'], ['roletype', 'window', 'dialog']]\n};\nvar _default = alertdialogRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar applicationRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-activedescendant': null,\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'Device Independence Delivery Unit'\n    }\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure']]\n};\nvar _default = applicationRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar articleRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-posinset': null,\n    'aria-setsize': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'article'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'document']]\n};\nvar _default = articleRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar bannerRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      constraints: ['direct descendant of document'],\n      name: 'header'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = bannerRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar blockquoteRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = blockquoteRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar buttonRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: true,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-pressed': null\n  },\n  relatedConcepts: [{\n    concept: {\n      attributes: [{\n        constraints: ['set'],\n        name: 'aria-pressed'\n      }, {\n        name: 'type',\n        value: 'checkbox'\n      }],\n      name: 'input'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        name: 'aria-expanded',\n        value: 'false'\n      }],\n      name: 'summary'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        name: 'aria-expanded',\n        value: 'true'\n      }],\n      constraints: ['direct descendant of details element with the open attribute defined'],\n      name: 'summary'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        name: 'type',\n        value: 'button'\n      }],\n      name: 'input'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        name: 'type',\n        value: 'image'\n      }],\n      name: 'input'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        name: 'type',\n        value: 'reset'\n      }],\n      name: 'input'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        name: 'type',\n        value: 'submit'\n      }],\n      name: 'input'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'button'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'trigger'\n    },\n    module: 'XForms'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'command']]\n};\nvar _default = buttonRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar captionRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['prohibited'],\n  prohibitedProps: ['aria-label', 'aria-labelledby'],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: ['figure', 'grid', 'table'],\n  requiredContextRole: ['figure', 'grid', 'table'],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = captionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar cellRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-colindex': null,\n    'aria-colspan': null,\n    'aria-rowindex': null,\n    'aria-rowspan': null\n  },\n  relatedConcepts: [{\n    concept: {\n      constraints: ['descendant of table'],\n      name: 'td'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: ['row'],\n  requiredContextRole: ['row'],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = cellRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar checkboxRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: true,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-checked': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-invalid': null,\n    'aria-readonly': null,\n    'aria-required': null\n  },\n  relatedConcepts: [{\n    concept: {\n      attributes: [{\n        name: 'type',\n        value: 'checkbox'\n      }],\n      name: 'input'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'option'\n    },\n    module: 'ARIA'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {\n    'aria-checked': null\n  },\n  superClass: [['roletype', 'widget', 'input']]\n};\nvar _default = checkboxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar codeRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['prohibited'],\n  prohibitedProps: ['aria-label', 'aria-labelledby'],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = codeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar columnheaderRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-sort': null\n  },\n  relatedConcepts: [{\n    attributes: [{\n      name: 'scope',\n      value: 'col'\n    }],\n    concept: {\n      name: 'th'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: ['row'],\n  requiredContextRole: ['row'],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'cell'], ['roletype', 'structure', 'section', 'cell', 'gridcell'], ['roletype', 'widget', 'gridcell'], ['roletype', 'structure', 'sectionhead']]\n};\nvar _default = columnheaderRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar comboboxRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-activedescendant': null,\n    'aria-autocomplete': null,\n    'aria-errormessage': null,\n    'aria-invalid': null,\n    'aria-readonly': null,\n    'aria-required': null,\n    'aria-expanded': 'false',\n    'aria-haspopup': 'listbox'\n  },\n  relatedConcepts: [{\n    concept: {\n      attributes: [{\n        constraints: ['set'],\n        name: 'list'\n      }, {\n        name: 'type',\n        value: 'email'\n      }],\n      name: 'input'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        constraints: ['set'],\n        name: 'list'\n      }, {\n        name: 'type',\n        value: 'search'\n      }],\n      name: 'input'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        constraints: ['set'],\n        name: 'list'\n      }, {\n        name: 'type',\n        value: 'tel'\n      }],\n      name: 'input'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        constraints: ['set'],\n        name: 'list'\n      }, {\n        name: 'type',\n        value: 'text'\n      }],\n      name: 'input'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        constraints: ['set'],\n        name: 'list'\n      }, {\n        name: 'type',\n        value: 'url'\n      }],\n      name: 'input'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        constraints: ['set'],\n        name: 'list'\n      }, {\n        name: 'type',\n        value: 'url'\n      }],\n      name: 'input'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        constraints: ['undefined'],\n        name: 'multiple'\n      }, {\n        constraints: ['undefined'],\n        name: 'size'\n      }],\n      name: 'select'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        constraints: ['undefined'],\n        name: 'multiple'\n      }, {\n        name: 'size',\n        value: 1\n      }],\n      name: 'select'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'select'\n    },\n    module: 'XForms'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {\n    'aria-controls': null,\n    'aria-expanded': 'false'\n  },\n  superClass: [['roletype', 'widget', 'input']]\n};\nvar _default = comboboxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar complementaryRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'aside'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = complementaryRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar contentinfoRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      constraints: ['direct descendant of document'],\n      name: 'footer'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = contentinfoRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar definitionRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'dd'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = definitionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar deletionRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['prohibited'],\n  prohibitedProps: ['aria-label', 'aria-labelledby'],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = deletionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar dialogRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'dialog'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'window']]\n};\nvar _default = dialogRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar directoryRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    module: 'DAISY Guide'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'list']]\n};\nvar _default = directoryRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar documentRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'Device Independence Delivery Unit'\n    }\n  }, {\n    concept: {\n      name: 'body'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure']]\n};\nvar _default = documentRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar emphasisRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['prohibited'],\n  prohibitedProps: ['aria-label', 'aria-labelledby'],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = emphasisRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar feedRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [['article']],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'list']]\n};\nvar _default = feedRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar figureRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'figure'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = figureRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar formRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      attributes: [{\n        constraints: ['set'],\n        name: 'aria-label'\n      }],\n      name: 'form'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        constraints: ['set'],\n        name: 'aria-labelledby'\n      }],\n      name: 'form'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        constraints: ['set'],\n        name: 'name'\n      }],\n      name: 'form'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = formRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar genericRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['prohibited'],\n  prohibitedProps: ['aria-label', 'aria-labelledby'],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'span'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'div'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure']]\n};\nvar _default = genericRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar gridRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-multiselectable': null,\n    'aria-readonly': null\n  },\n  relatedConcepts: [{\n    concept: {\n      attributes: [{\n        name: 'role',\n        value: 'grid'\n      }],\n      name: 'table'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [['row'], ['row', 'rowgroup']],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'composite'], ['roletype', 'structure', 'section', 'table']]\n};\nvar _default = gridRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar gridcellRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null,\n    'aria-readonly': null,\n    'aria-required': null,\n    'aria-selected': null\n  },\n  relatedConcepts: [{\n    concept: {\n      attributes: [{\n        name: 'role',\n        value: 'gridcell'\n      }],\n      name: 'td'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: ['row'],\n  requiredContextRole: ['row'],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'cell'], ['roletype', 'widget']]\n};\nvar _default = gridcellRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar groupRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-activedescendant': null,\n    'aria-disabled': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'details'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'fieldset'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'optgroup'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = groupRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar headingRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-level': '2'\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'h1'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'h2'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'h3'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'h4'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'h5'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'h6'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {\n    'aria-level': '2'\n  },\n  superClass: [['roletype', 'structure', 'sectionhead']]\n};\nvar _default = headingRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar imgRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: true,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      attributes: [{\n        constraints: ['set'],\n        name: 'alt'\n      }],\n      name: 'img'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        constraints: ['undefined'],\n        name: 'alt'\n      }],\n      name: 'img'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'imggroup'\n    },\n    module: 'DTB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = imgRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar insertionRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['prohibited'],\n  prohibitedProps: ['aria-label', 'aria-labelledby'],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = insertionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar linkRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-expanded': null,\n    'aria-haspopup': null\n  },\n  relatedConcepts: [{\n    concept: {\n      attributes: [{\n        name: 'href'\n      }],\n      name: 'a'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        name: 'href'\n      }],\n      name: 'area'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        name: 'href'\n      }],\n      name: 'link'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'command']]\n};\nvar _default = linkRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar listRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'menu'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'ol'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'ul'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [['listitem']],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = listRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar listboxRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-invalid': null,\n    'aria-multiselectable': null,\n    'aria-readonly': null,\n    'aria-required': null,\n    'aria-orientation': 'vertical'\n  },\n  relatedConcepts: [{\n    concept: {\n      attributes: [{\n        constraints: ['>1'],\n        name: 'size'\n      }, {\n        name: 'multiple'\n      }],\n      name: 'select'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        constraints: ['>1'],\n        name: 'size'\n      }],\n      name: 'select'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        name: 'multiple'\n      }],\n      name: 'select'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'datalist'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'list'\n    },\n    module: 'ARIA'\n  }, {\n    concept: {\n      name: 'select'\n    },\n    module: 'XForms'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [['option', 'group'], ['option']],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'composite', 'select'], ['roletype', 'structure', 'section', 'group', 'select']]\n};\nvar _default = listboxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar listitemRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-level': null,\n    'aria-posinset': null,\n    'aria-setsize': null\n  },\n  relatedConcepts: [{\n    concept: {\n      constraints: ['direct descendant of ol, ul or menu'],\n      name: 'li'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'item'\n    },\n    module: 'XForms'\n  }],\n  requireContextRole: ['directory', 'list'],\n  requiredContextRole: ['directory', 'list'],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = listitemRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar logRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-live': 'polite'\n  },\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = logRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar mainRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'main'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = mainRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar marqueeRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = marqueeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar mathRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'math'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = mathRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar menuRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-orientation': 'vertical'\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'MENU'\n    },\n    module: 'JAPI'\n  }, {\n    concept: {\n      name: 'list'\n    },\n    module: 'ARIA'\n  }, {\n    concept: {\n      name: 'select'\n    },\n    module: 'XForms'\n  }, {\n    concept: {\n      name: 'sidebar'\n    },\n    module: 'DTB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [['menuitem', 'group'], ['menuitemradio', 'group'], ['menuitemcheckbox', 'group'], ['menuitem'], ['menuitemcheckbox'], ['menuitemradio']],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'composite', 'select'], ['roletype', 'structure', 'section', 'group', 'select']]\n};\nvar _default = menuRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar menubarRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-orientation': 'horizontal'\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'toolbar'\n    },\n    module: 'ARIA'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [['menuitem', 'group'], ['menuitemradio', 'group'], ['menuitemcheckbox', 'group'], ['menuitem'], ['menuitemcheckbox'], ['menuitemradio']],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'composite', 'select', 'menu'], ['roletype', 'structure', 'section', 'group', 'select', 'menu']]\n};\nvar _default = menubarRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar menuitemRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-posinset': null,\n    'aria-setsize': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'MENU_ITEM'\n    },\n    module: 'JAPI'\n  }, {\n    concept: {\n      name: 'listitem'\n    },\n    module: 'ARIA'\n  }, {\n    concept: {\n      name: 'menuitem'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'option'\n    },\n    module: 'ARIA'\n  }],\n  requireContextRole: ['group', 'menu', 'menubar'],\n  requiredContextRole: ['group', 'menu', 'menubar'],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'command']]\n};\nvar _default = menuitemRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar menuitemcheckboxRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: true,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'menuitem'\n    },\n    module: 'ARIA'\n  }],\n  requireContextRole: ['group', 'menu', 'menubar'],\n  requiredContextRole: ['group', 'menu', 'menubar'],\n  requiredOwnedElements: [],\n  requiredProps: {\n    'aria-checked': null\n  },\n  superClass: [['roletype', 'widget', 'input', 'checkbox'], ['roletype', 'widget', 'command', 'menuitem']]\n};\nvar _default = menuitemcheckboxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar menuitemradioRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: true,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'menuitem'\n    },\n    module: 'ARIA'\n  }],\n  requireContextRole: ['group', 'menu', 'menubar'],\n  requiredContextRole: ['group', 'menu', 'menubar'],\n  requiredOwnedElements: [],\n  requiredProps: {\n    'aria-checked': null\n  },\n  superClass: [['roletype', 'widget', 'input', 'checkbox', 'menuitemcheckbox'], ['roletype', 'widget', 'command', 'menuitem', 'menuitemcheckbox'], ['roletype', 'widget', 'input', 'radio']]\n};\nvar _default = menuitemradioRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar meterRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: true,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-valuetext': null,\n    'aria-valuemax': '100',\n    'aria-valuemin': '0'\n  },\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {\n    'aria-valuenow': null\n  },\n  superClass: [['roletype', 'structure', 'range']]\n};\nvar _default = meterRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar navigationRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'nav'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = navigationRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar noneRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: [],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: []\n};\nvar _default = noneRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar noteRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = noteRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar optionRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: true,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-checked': null,\n    'aria-posinset': null,\n    'aria-setsize': null,\n    'aria-selected': 'false'\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'item'\n    },\n    module: 'XForms'\n  }, {\n    concept: {\n      name: 'listitem'\n    },\n    module: 'ARIA'\n  }, {\n    concept: {\n      name: 'option'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {\n    'aria-selected': 'false'\n  },\n  superClass: [['roletype', 'widget', 'input']]\n};\nvar _default = optionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar paragraphRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['prohibited'],\n  prohibitedProps: ['aria-label', 'aria-labelledby'],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = paragraphRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar presentationRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['prohibited'],\n  prohibitedProps: ['aria-label', 'aria-labelledby'],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure']]\n};\nvar _default = presentationRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar progressbarRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: true,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-valuetext': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'progress'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'status'\n    },\n    module: 'ARIA'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'range'], ['roletype', 'widget']]\n};\nvar _default = progressbarRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar radioRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: true,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-checked': null,\n    'aria-posinset': null,\n    'aria-setsize': null\n  },\n  relatedConcepts: [{\n    concept: {\n      attributes: [{\n        name: 'type',\n        value: 'radio'\n      }],\n      name: 'input'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {\n    'aria-checked': null\n  },\n  superClass: [['roletype', 'widget', 'input']]\n};\nvar _default = radioRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar radiogroupRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-errormessage': null,\n    'aria-invalid': null,\n    'aria-readonly': null,\n    'aria-required': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'list'\n    },\n    module: 'ARIA'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [['radio']],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'composite', 'select'], ['roletype', 'structure', 'section', 'group', 'select']]\n};\nvar _default = radiogroupRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar regionRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      attributes: [{\n        constraints: ['set'],\n        name: 'aria-label'\n      }],\n      name: 'section'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        constraints: ['set'],\n        name: 'aria-labelledby'\n      }],\n      name: 'section'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'Device Independence Glossart perceivable unit'\n    }\n  }, {\n    concept: {\n      name: 'frame'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = regionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar rowRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-colindex': null,\n    'aria-expanded': null,\n    'aria-level': null,\n    'aria-posinset': null,\n    'aria-rowindex': null,\n    'aria-selected': null,\n    'aria-setsize': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'tr'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: ['grid', 'rowgroup', 'table', 'treegrid'],\n  requiredContextRole: ['grid', 'rowgroup', 'table', 'treegrid'],\n  requiredOwnedElements: [['cell'], ['columnheader'], ['gridcell'], ['rowheader']],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'group'], ['roletype', 'widget']]\n};\nvar _default = rowRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar rowgroupRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'tbody'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'tfoot'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'thead'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: ['grid', 'table', 'treegrid'],\n  requiredContextRole: ['grid', 'table', 'treegrid'],\n  requiredOwnedElements: [['row']],\n  requiredProps: {},\n  superClass: [['roletype', 'structure']]\n};\nvar _default = rowgroupRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar rowheaderRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-sort': null\n  },\n  relatedConcepts: [{\n    concept: {\n      attributes: [{\n        name: 'scope',\n        value: 'row'\n      }],\n      name: 'th'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: ['row'],\n  requiredContextRole: ['row'],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'cell'], ['roletype', 'structure', 'section', 'cell', 'gridcell'], ['roletype', 'widget', 'gridcell'], ['roletype', 'structure', 'sectionhead']]\n};\nvar _default = rowheaderRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar scrollbarRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: true,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-valuetext': null,\n    'aria-orientation': 'vertical',\n    'aria-valuemax': '100',\n    'aria-valuemin': '0'\n  },\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {\n    'aria-controls': null,\n    'aria-valuenow': null\n  },\n  superClass: [['roletype', 'structure', 'range'], ['roletype', 'widget']]\n};\nvar _default = scrollbarRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar searchRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = searchRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar searchboxRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      attributes: [{\n        constraints: ['undefined'],\n        name: 'list'\n      }, {\n        name: 'type',\n        value: 'search'\n      }],\n      name: 'input'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'input', 'textbox']]\n};\nvar _default = searchboxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar separatorRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: true,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-orientation': 'horizontal',\n    'aria-valuemax': '100',\n    'aria-valuemin': '0',\n    'aria-valuenow': null,\n    'aria-valuetext': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'hr'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure']]\n};\nvar _default = separatorRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar sliderRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: true,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-errormessage': null,\n    'aria-haspopup': null,\n    'aria-invalid': null,\n    'aria-readonly': null,\n    'aria-valuetext': null,\n    'aria-orientation': 'horizontal',\n    'aria-valuemax': '100',\n    'aria-valuemin': '0'\n  },\n  relatedConcepts: [{\n    concept: {\n      attributes: [{\n        name: 'type',\n        value: 'range'\n      }],\n      name: 'input'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {\n    'aria-valuenow': null\n  },\n  superClass: [['roletype', 'widget', 'input'], ['roletype', 'structure', 'range']]\n};\nvar _default = sliderRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar spinbuttonRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-errormessage': null,\n    'aria-invalid': null,\n    'aria-readonly': null,\n    'aria-required': null,\n    'aria-valuetext': null,\n    'aria-valuenow': '0'\n  },\n  relatedConcepts: [{\n    concept: {\n      attributes: [{\n        name: 'type',\n        value: 'number'\n      }],\n      name: 'input'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'composite'], ['roletype', 'widget', 'input'], ['roletype', 'structure', 'range']]\n};\nvar _default = spinbuttonRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar statusRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-atomic': 'true',\n    'aria-live': 'polite'\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'output'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = statusRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar strongRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['prohibited'],\n  prohibitedProps: ['aria-label', 'aria-labelledby'],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = strongRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar subscriptRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['prohibited'],\n  prohibitedProps: ['aria-label', 'aria-labelledby'],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = subscriptRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar superscriptRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['prohibited'],\n  prohibitedProps: ['aria-label', 'aria-labelledby'],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = superscriptRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar switchRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: true,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'button'\n    },\n    module: 'ARIA'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {\n    'aria-checked': null\n  },\n  superClass: [['roletype', 'widget', 'input', 'checkbox']]\n};\nvar _default = switchRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar tabRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: true,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-posinset': null,\n    'aria-setsize': null,\n    'aria-selected': 'false'\n  },\n  relatedConcepts: [],\n  requireContextRole: ['tablist'],\n  requiredContextRole: ['tablist'],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'sectionhead'], ['roletype', 'widget']]\n};\nvar _default = tabRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar tableRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-colcount': null,\n    'aria-rowcount': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'table'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [['row'], ['row', 'rowgroup']],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = tableRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar tablistRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-level': null,\n    'aria-multiselectable': null,\n    'aria-orientation': 'horizontal'\n  },\n  relatedConcepts: [{\n    module: 'DAISY',\n    concept: {\n      name: 'guide'\n    }\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [['tab']],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'composite']]\n};\nvar _default = tablistRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar tabpanelRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = tabpanelRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar termRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'dfn'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'dt'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = termRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar textboxRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-activedescendant': null,\n    'aria-autocomplete': null,\n    'aria-errormessage': null,\n    'aria-haspopup': null,\n    'aria-invalid': null,\n    'aria-multiline': null,\n    'aria-placeholder': null,\n    'aria-readonly': null,\n    'aria-required': null\n  },\n  relatedConcepts: [{\n    concept: {\n      attributes: [{\n        constraints: ['undefined'],\n        name: 'type'\n      }, {\n        constraints: ['undefined'],\n        name: 'list'\n      }],\n      name: 'input'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        constraints: ['undefined'],\n        name: 'list'\n      }, {\n        name: 'type',\n        value: 'email'\n      }],\n      name: 'input'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        constraints: ['undefined'],\n        name: 'list'\n      }, {\n        name: 'type',\n        value: 'tel'\n      }],\n      name: 'input'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        constraints: ['undefined'],\n        name: 'list'\n      }, {\n        name: 'type',\n        value: 'text'\n      }],\n      name: 'input'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      attributes: [{\n        constraints: ['undefined'],\n        name: 'list'\n      }, {\n        name: 'type',\n        value: 'url'\n      }],\n      name: 'input'\n    },\n    module: 'HTML'\n  }, {\n    concept: {\n      name: 'input'\n    },\n    module: 'XForms'\n  }, {\n    concept: {\n      name: 'textarea'\n    },\n    module: 'HTML'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'input']]\n};\nvar _default = textboxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar timeRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = timeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar timerRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'status']]\n};\nvar _default = timerRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar toolbarRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-orientation': 'horizontal'\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'menubar'\n    },\n    module: 'ARIA'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'group']]\n};\nvar _default = toolbarRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar tooltipRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = tooltipRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar treeRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-errormessage': null,\n    'aria-invalid': null,\n    'aria-multiselectable': null,\n    'aria-required': null,\n    'aria-orientation': 'vertical'\n  },\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [['treeitem', 'group'], ['treeitem']],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'composite', 'select'], ['roletype', 'structure', 'section', 'group', 'select']]\n};\nvar _default = treeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar treegridRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [['row'], ['row', 'rowgroup']],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'composite', 'grid'], ['roletype', 'structure', 'section', 'table', 'grid'], ['roletype', 'widget', 'composite', 'select', 'tree'], ['roletype', 'structure', 'section', 'group', 'select', 'tree']]\n};\nvar _default = treegridRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar treeitemRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-expanded': null,\n    'aria-haspopup': null\n  },\n  relatedConcepts: [],\n  requireContextRole: ['group', 'tree'],\n  requiredContextRole: ['group', 'tree'],\n  requiredOwnedElements: [],\n  requiredProps: {\n    'aria-selected': null\n  },\n  superClass: [['roletype', 'structure', 'section', 'listitem'], ['roletype', 'widget', 'input', 'option']]\n};\nvar _default = treeitemRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _alertRole = _interopRequireDefault(require(\"./literal/alertRole\"));\n\nvar _alertdialogRole = _interopRequireDefault(require(\"./literal/alertdialogRole\"));\n\nvar _applicationRole = _interopRequireDefault(require(\"./literal/applicationRole\"));\n\nvar _articleRole = _interopRequireDefault(require(\"./literal/articleRole\"));\n\nvar _bannerRole = _interopRequireDefault(require(\"./literal/bannerRole\"));\n\nvar _blockquoteRole = _interopRequireDefault(require(\"./literal/blockquoteRole\"));\n\nvar _buttonRole = _interopRequireDefault(require(\"./literal/buttonRole\"));\n\nvar _captionRole = _interopRequireDefault(require(\"./literal/captionRole\"));\n\nvar _cellRole = _interopRequireDefault(require(\"./literal/cellRole\"));\n\nvar _checkboxRole = _interopRequireDefault(require(\"./literal/checkboxRole\"));\n\nvar _codeRole = _interopRequireDefault(require(\"./literal/codeRole\"));\n\nvar _columnheaderRole = _interopRequireDefault(require(\"./literal/columnheaderRole\"));\n\nvar _comboboxRole = _interopRequireDefault(require(\"./literal/comboboxRole\"));\n\nvar _complementaryRole = _interopRequireDefault(require(\"./literal/complementaryRole\"));\n\nvar _contentinfoRole = _interopRequireDefault(require(\"./literal/contentinfoRole\"));\n\nvar _definitionRole = _interopRequireDefault(require(\"./literal/definitionRole\"));\n\nvar _deletionRole = _interopRequireDefault(require(\"./literal/deletionRole\"));\n\nvar _dialogRole = _interopRequireDefault(require(\"./literal/dialogRole\"));\n\nvar _directoryRole = _interopRequireDefault(require(\"./literal/directoryRole\"));\n\nvar _documentRole = _interopRequireDefault(require(\"./literal/documentRole\"));\n\nvar _emphasisRole = _interopRequireDefault(require(\"./literal/emphasisRole\"));\n\nvar _feedRole = _interopRequireDefault(require(\"./literal/feedRole\"));\n\nvar _figureRole = _interopRequireDefault(require(\"./literal/figureRole\"));\n\nvar _formRole = _interopRequireDefault(require(\"./literal/formRole\"));\n\nvar _genericRole = _interopRequireDefault(require(\"./literal/genericRole\"));\n\nvar _gridRole = _interopRequireDefault(require(\"./literal/gridRole\"));\n\nvar _gridcellRole = _interopRequireDefault(require(\"./literal/gridcellRole\"));\n\nvar _groupRole = _interopRequireDefault(require(\"./literal/groupRole\"));\n\nvar _headingRole = _interopRequireDefault(require(\"./literal/headingRole\"));\n\nvar _imgRole = _interopRequireDefault(require(\"./literal/imgRole\"));\n\nvar _insertionRole = _interopRequireDefault(require(\"./literal/insertionRole\"));\n\nvar _linkRole = _interopRequireDefault(require(\"./literal/linkRole\"));\n\nvar _listRole = _interopRequireDefault(require(\"./literal/listRole\"));\n\nvar _listboxRole = _interopRequireDefault(require(\"./literal/listboxRole\"));\n\nvar _listitemRole = _interopRequireDefault(require(\"./literal/listitemRole\"));\n\nvar _logRole = _interopRequireDefault(require(\"./literal/logRole\"));\n\nvar _mainRole = _interopRequireDefault(require(\"./literal/mainRole\"));\n\nvar _marqueeRole = _interopRequireDefault(require(\"./literal/marqueeRole\"));\n\nvar _mathRole = _interopRequireDefault(require(\"./literal/mathRole\"));\n\nvar _menuRole = _interopRequireDefault(require(\"./literal/menuRole\"));\n\nvar _menubarRole = _interopRequireDefault(require(\"./literal/menubarRole\"));\n\nvar _menuitemRole = _interopRequireDefault(require(\"./literal/menuitemRole\"));\n\nvar _menuitemcheckboxRole = _interopRequireDefault(require(\"./literal/menuitemcheckboxRole\"));\n\nvar _menuitemradioRole = _interopRequireDefault(require(\"./literal/menuitemradioRole\"));\n\nvar _meterRole = _interopRequireDefault(require(\"./literal/meterRole\"));\n\nvar _navigationRole = _interopRequireDefault(require(\"./literal/navigationRole\"));\n\nvar _noneRole = _interopRequireDefault(require(\"./literal/noneRole\"));\n\nvar _noteRole = _interopRequireDefault(require(\"./literal/noteRole\"));\n\nvar _optionRole = _interopRequireDefault(require(\"./literal/optionRole\"));\n\nvar _paragraphRole = _interopRequireDefault(require(\"./literal/paragraphRole\"));\n\nvar _presentationRole = _interopRequireDefault(require(\"./literal/presentationRole\"));\n\nvar _progressbarRole = _interopRequireDefault(require(\"./literal/progressbarRole\"));\n\nvar _radioRole = _interopRequireDefault(require(\"./literal/radioRole\"));\n\nvar _radiogroupRole = _interopRequireDefault(require(\"./literal/radiogroupRole\"));\n\nvar _regionRole = _interopRequireDefault(require(\"./literal/regionRole\"));\n\nvar _rowRole = _interopRequireDefault(require(\"./literal/rowRole\"));\n\nvar _rowgroupRole = _interopRequireDefault(require(\"./literal/rowgroupRole\"));\n\nvar _rowheaderRole = _interopRequireDefault(require(\"./literal/rowheaderRole\"));\n\nvar _scrollbarRole = _interopRequireDefault(require(\"./literal/scrollbarRole\"));\n\nvar _searchRole = _interopRequireDefault(require(\"./literal/searchRole\"));\n\nvar _searchboxRole = _interopRequireDefault(require(\"./literal/searchboxRole\"));\n\nvar _separatorRole = _interopRequireDefault(require(\"./literal/separatorRole\"));\n\nvar _sliderRole = _interopRequireDefault(require(\"./literal/sliderRole\"));\n\nvar _spinbuttonRole = _interopRequireDefault(require(\"./literal/spinbuttonRole\"));\n\nvar _statusRole = _interopRequireDefault(require(\"./literal/statusRole\"));\n\nvar _strongRole = _interopRequireDefault(require(\"./literal/strongRole\"));\n\nvar _subscriptRole = _interopRequireDefault(require(\"./literal/subscriptRole\"));\n\nvar _superscriptRole = _interopRequireDefault(require(\"./literal/superscriptRole\"));\n\nvar _switchRole = _interopRequireDefault(require(\"./literal/switchRole\"));\n\nvar _tabRole = _interopRequireDefault(require(\"./literal/tabRole\"));\n\nvar _tableRole = _interopRequireDefault(require(\"./literal/tableRole\"));\n\nvar _tablistRole = _interopRequireDefault(require(\"./literal/tablistRole\"));\n\nvar _tabpanelRole = _interopRequireDefault(require(\"./literal/tabpanelRole\"));\n\nvar _termRole = _interopRequireDefault(require(\"./literal/termRole\"));\n\nvar _textboxRole = _interopRequireDefault(require(\"./literal/textboxRole\"));\n\nvar _timeRole = _interopRequireDefault(require(\"./literal/timeRole\"));\n\nvar _timerRole = _interopRequireDefault(require(\"./literal/timerRole\"));\n\nvar _toolbarRole = _interopRequireDefault(require(\"./literal/toolbarRole\"));\n\nvar _tooltipRole = _interopRequireDefault(require(\"./literal/tooltipRole\"));\n\nvar _treeRole = _interopRequireDefault(require(\"./literal/treeRole\"));\n\nvar _treegridRole = _interopRequireDefault(require(\"./literal/treegridRole\"));\n\nvar _treeitemRole = _interopRequireDefault(require(\"./literal/treeitemRole\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ariaLiteralRoles = [['alert', _alertRole.default], ['alertdialog', _alertdialogRole.default], ['application', _applicationRole.default], ['article', _articleRole.default], ['banner', _bannerRole.default], ['blockquote', _blockquoteRole.default], ['button', _buttonRole.default], ['caption', _captionRole.default], ['cell', _cellRole.default], ['checkbox', _checkboxRole.default], ['code', _codeRole.default], ['columnheader', _columnheaderRole.default], ['combobox', _comboboxRole.default], ['complementary', _complementaryRole.default], ['contentinfo', _contentinfoRole.default], ['definition', _definitionRole.default], ['deletion', _deletionRole.default], ['dialog', _dialogRole.default], ['directory', _directoryRole.default], ['document', _documentRole.default], ['emphasis', _emphasisRole.default], ['feed', _feedRole.default], ['figure', _figureRole.default], ['form', _formRole.default], ['generic', _genericRole.default], ['grid', _gridRole.default], ['gridcell', _gridcellRole.default], ['group', _groupRole.default], ['heading', _headingRole.default], ['img', _imgRole.default], ['insertion', _insertionRole.default], ['link', _linkRole.default], ['list', _listRole.default], ['listbox', _listboxRole.default], ['listitem', _listitemRole.default], ['log', _logRole.default], ['main', _mainRole.default], ['marquee', _marqueeRole.default], ['math', _mathRole.default], ['menu', _menuRole.default], ['menubar', _menubarRole.default], ['menuitem', _menuitemRole.default], ['menuitemcheckbox', _menuitemcheckboxRole.default], ['menuitemradio', _menuitemradioRole.default], ['meter', _meterRole.default], ['navigation', _navigationRole.default], ['none', _noneRole.default], ['note', _noteRole.default], ['option', _optionRole.default], ['paragraph', _paragraphRole.default], ['presentation', _presentationRole.default], ['progressbar', _progressbarRole.default], ['radio', _radioRole.default], ['radiogroup', _radiogroupRole.default], ['region', _regionRole.default], ['row', _rowRole.default], ['rowgroup', _rowgroupRole.default], ['rowheader', _rowheaderRole.default], ['scrollbar', _scrollbarRole.default], ['search', _searchRole.default], ['searchbox', _searchboxRole.default], ['separator', _separatorRole.default], ['slider', _sliderRole.default], ['spinbutton', _spinbuttonRole.default], ['status', _statusRole.default], ['strong', _strongRole.default], ['subscript', _subscriptRole.default], ['superscript', _superscriptRole.default], ['switch', _switchRole.default], ['tab', _tabRole.default], ['table', _tableRole.default], ['tablist', _tablistRole.default], ['tabpanel', _tabpanelRole.default], ['term', _termRole.default], ['textbox', _textboxRole.default], ['time', _timeRole.default], ['timer', _timerRole.default], ['toolbar', _toolbarRole.default], ['tooltip', _tooltipRole.default], ['tree', _treeRole.default], ['treegrid', _treegridRole.default], ['treeitem', _treeitemRole.default]];\nvar _default = ariaLiteralRoles;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docAbstractRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'abstract [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = docAbstractRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docAcknowledgmentsRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'acknowledgments [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docAcknowledgmentsRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docAfterwordRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'afterword [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docAfterwordRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docAppendixRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'appendix [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docAppendixRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docBacklinkRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author', 'content'],\n  prohibitedProps: [],\n  props: {\n    'aria-errormessage': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'referrer [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'command', 'link']]\n};\nvar _default = docBacklinkRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docBiblioentryRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'EPUB biblioentry [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: ['doc-bibliography'],\n  requiredContextRole: ['doc-bibliography'],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'listitem']]\n};\nvar _default = docBiblioentryRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docBibliographyRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'bibliography [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [['doc-biblioentry']],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docBibliographyRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docBibliorefRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-errormessage': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'biblioref [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'command', 'link']]\n};\nvar _default = docBibliorefRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docChapterRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'chapter [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docChapterRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docColophonRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'colophon [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = docColophonRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docConclusionRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'conclusion [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docConclusionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docCoverRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'cover [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'img']]\n};\nvar _default = docCoverRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docCreditRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'credit [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = docCreditRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docCreditsRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'credits [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docCreditsRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docDedicationRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'dedication [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = docDedicationRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docEndnoteRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'rearnote [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: ['doc-endnotes'],\n  requiredContextRole: ['doc-endnotes'],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'listitem']]\n};\nvar _default = docEndnoteRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docEndnotesRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'rearnotes [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [['doc-endnote']],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docEndnotesRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docEpigraphRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'epigraph [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = docEpigraphRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docEpilogueRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'epilogue [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docEpilogueRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docErrataRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'errata [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docErrataRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docExampleRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = docExampleRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docFootnoteRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'footnote [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = docFootnoteRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docForewordRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'foreword [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docForewordRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docGlossaryRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'glossary [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [['definition'], ['term']],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docGlossaryRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docGlossrefRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-errormessage': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'glossref [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'command', 'link']]\n};\nvar _default = docGlossrefRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docIndexRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'index [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark', 'navigation']]\n};\nvar _default = docIndexRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docIntroductionRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'introduction [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docIntroductionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docNoterefRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author', 'contents'],\n  prohibitedProps: [],\n  props: {\n    'aria-errormessage': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'noteref [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'widget', 'command', 'link']]\n};\nvar _default = docNoterefRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docNoticeRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'notice [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'note']]\n};\nvar _default = docNoticeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docPagebreakRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: true,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'pagebreak [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'separator']]\n};\nvar _default = docPagebreakRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docPagelistRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'page-list [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark', 'navigation']]\n};\nvar _default = docPagelistRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docPartRole = {\n  abstract: false,\n  accessibleNameRequired: true,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'part [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docPartRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docPrefaceRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'preface [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docPrefaceRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docPrologueRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'prologue [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docPrologueRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docPullquoteRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {},\n  relatedConcepts: [{\n    concept: {\n      name: 'pullquote [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['none']]\n};\nvar _default = docPullquoteRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docQnaRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'qna [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = docQnaRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docSubtitleRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'subtitle [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'sectionhead']]\n};\nvar _default = docSubtitleRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docTipRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'help [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'note']]\n};\nvar _default = docTipRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar docTocRole = {\n  abstract: false,\n  accessibleNameRequired: false,\n  baseConcepts: [],\n  childrenPresentational: false,\n  nameFrom: ['author'],\n  prohibitedProps: [],\n  props: {\n    'aria-disabled': null,\n    'aria-errormessage': null,\n    'aria-expanded': null,\n    'aria-haspopup': null,\n    'aria-invalid': null\n  },\n  relatedConcepts: [{\n    concept: {\n      name: 'toc [EPUB-SSV]'\n    },\n    module: 'EPUB'\n  }],\n  requireContextRole: [],\n  requiredContextRole: [],\n  requiredOwnedElements: [],\n  requiredProps: {},\n  superClass: [['roletype', 'structure', 'section', 'landmark', 'navigation']]\n};\nvar _default = docTocRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _docAbstractRole = _interopRequireDefault(require(\"./dpub/docAbstractRole\"));\n\nvar _docAcknowledgmentsRole = _interopRequireDefault(require(\"./dpub/docAcknowledgmentsRole\"));\n\nvar _docAfterwordRole = _interopRequireDefault(require(\"./dpub/docAfterwordRole\"));\n\nvar _docAppendixRole = _interopRequireDefault(require(\"./dpub/docAppendixRole\"));\n\nvar _docBacklinkRole = _interopRequireDefault(require(\"./dpub/docBacklinkRole\"));\n\nvar _docBiblioentryRole = _interopRequireDefault(require(\"./dpub/docBiblioentryRole\"));\n\nvar _docBibliographyRole = _interopRequireDefault(require(\"./dpub/docBibliographyRole\"));\n\nvar _docBibliorefRole = _interopRequireDefault(require(\"./dpub/docBibliorefRole\"));\n\nvar _docChapterRole = _interopRequireDefault(require(\"./dpub/docChapterRole\"));\n\nvar _docColophonRole = _interopRequireDefault(require(\"./dpub/docColophonRole\"));\n\nvar _docConclusionRole = _interopRequireDefault(require(\"./dpub/docConclusionRole\"));\n\nvar _docCoverRole = _interopRequireDefault(require(\"./dpub/docCoverRole\"));\n\nvar _docCreditRole = _interopRequireDefault(require(\"./dpub/docCreditRole\"));\n\nvar _docCreditsRole = _interopRequireDefault(require(\"./dpub/docCreditsRole\"));\n\nvar _docDedicationRole = _interopRequireDefault(require(\"./dpub/docDedicationRole\"));\n\nvar _docEndnoteRole = _interopRequireDefault(require(\"./dpub/docEndnoteRole\"));\n\nvar _docEndnotesRole = _interopRequireDefault(require(\"./dpub/docEndnotesRole\"));\n\nvar _docEpigraphRole = _interopRequireDefault(require(\"./dpub/docEpigraphRole\"));\n\nvar _docEpilogueRole = _interopRequireDefault(require(\"./dpub/docEpilogueRole\"));\n\nvar _docErrataRole = _interopRequireDefault(require(\"./dpub/docErrataRole\"));\n\nvar _docExampleRole = _interopRequireDefault(require(\"./dpub/docExampleRole\"));\n\nvar _docFootnoteRole = _interopRequireDefault(require(\"./dpub/docFootnoteRole\"));\n\nvar _docForewordRole = _interopRequireDefault(require(\"./dpub/docForewordRole\"));\n\nvar _docGlossaryRole = _interopRequireDefault(require(\"./dpub/docGlossaryRole\"));\n\nvar _docGlossrefRole = _interopRequireDefault(require(\"./dpub/docGlossrefRole\"));\n\nvar _docIndexRole = _interopRequireDefault(require(\"./dpub/docIndexRole\"));\n\nvar _docIntroductionRole = _interopRequireDefault(require(\"./dpub/docIntroductionRole\"));\n\nvar _docNoterefRole = _interopRequireDefault(require(\"./dpub/docNoterefRole\"));\n\nvar _docNoticeRole = _interopRequireDefault(require(\"./dpub/docNoticeRole\"));\n\nvar _docPagebreakRole = _interopRequireDefault(require(\"./dpub/docPagebreakRole\"));\n\nvar _docPagelistRole = _interopRequireDefault(require(\"./dpub/docPagelistRole\"));\n\nvar _docPartRole = _interopRequireDefault(require(\"./dpub/docPartRole\"));\n\nvar _docPrefaceRole = _interopRequireDefault(require(\"./dpub/docPrefaceRole\"));\n\nvar _docPrologueRole = _interopRequireDefault(require(\"./dpub/docPrologueRole\"));\n\nvar _docPullquoteRole = _interopRequireDefault(require(\"./dpub/docPullquoteRole\"));\n\nvar _docQnaRole = _interopRequireDefault(require(\"./dpub/docQnaRole\"));\n\nvar _docSubtitleRole = _interopRequireDefault(require(\"./dpub/docSubtitleRole\"));\n\nvar _docTipRole = _interopRequireDefault(require(\"./dpub/docTipRole\"));\n\nvar _docTocRole = _interopRequireDefault(require(\"./dpub/docTocRole\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ariaDpubRoles = [['doc-abstract', _docAbstractRole.default], ['doc-acknowledgments', _docAcknowledgmentsRole.default], ['doc-afterword', _docAfterwordRole.default], ['doc-appendix', _docAppendixRole.default], ['doc-backlink', _docBacklinkRole.default], ['doc-biblioentry', _docBiblioentryRole.default], ['doc-bibliography', _docBibliographyRole.default], ['doc-biblioref', _docBibliorefRole.default], ['doc-chapter', _docChapterRole.default], ['doc-colophon', _docColophonRole.default], ['doc-conclusion', _docConclusionRole.default], ['doc-cover', _docCoverRole.default], ['doc-credit', _docCreditRole.default], ['doc-credits', _docCreditsRole.default], ['doc-dedication', _docDedicationRole.default], ['doc-endnote', _docEndnoteRole.default], ['doc-endnotes', _docEndnotesRole.default], ['doc-epigraph', _docEpigraphRole.default], ['doc-epilogue', _docEpilogueRole.default], ['doc-errata', _docErrataRole.default], ['doc-example', _docExampleRole.default], ['doc-footnote', _docFootnoteRole.default], ['doc-foreword', _docForewordRole.default], ['doc-glossary', _docGlossaryRole.default], ['doc-glossref', _docGlossrefRole.default], ['doc-index', _docIndexRole.default], ['doc-introduction', _docIntroductionRole.default], ['doc-noteref', _docNoterefRole.default], ['doc-notice', _docNoticeRole.default], ['doc-pagebreak', _docPagebreakRole.default], ['doc-pagelist', _docPagelistRole.default], ['doc-part', _docPartRole.default], ['doc-preface', _docPrefaceRole.default], ['doc-prologue', _docPrologueRole.default], ['doc-pullquote', _docPullquoteRole.default], ['doc-qna', _docQnaRole.default], ['doc-subtitle', _docSubtitleRole.default], ['doc-tip', _docTipRole.default], ['doc-toc', _docTocRole.default]];\nvar _default = ariaDpubRoles;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _ariaAbstractRoles = _interopRequireDefault(require(\"./etc/roles/ariaAbstractRoles\"));\n\nvar _ariaLiteralRoles = _interopRequireDefault(require(\"./etc/roles/ariaLiteralRoles\"));\n\nvar _ariaDpubRoles = _interopRequireDefault(require(\"./etc/roles/ariaDpubRoles\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nvar roles = [].concat(_ariaAbstractRoles.default, _ariaLiteralRoles.default, _ariaDpubRoles.default);\nroles.forEach(function (_ref) {\n  var _ref2 = _slicedToArray(_ref, 2),\n      roleDefinition = _ref2[1];\n\n  // Conglomerate the properties\n  var _iterator = _createForOfIteratorHelper(roleDefinition.superClass),\n      _step;\n\n  try {\n    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n      var superClassIter = _step.value;\n\n      var _iterator2 = _createForOfIteratorHelper(superClassIter),\n          _step2;\n\n      try {\n        var _loop = function _loop() {\n          var superClassName = _step2.value;\n          var superClassRoleTuple = roles.find(function (_ref3) {\n            var _ref4 = _slicedToArray(_ref3, 1),\n                name = _ref4[0];\n\n            return name === superClassName;\n          });\n\n          if (superClassRoleTuple) {\n            var superClassDefinition = superClassRoleTuple[1];\n\n            for (var _i2 = 0, _Object$keys = Object.keys(superClassDefinition.props); _i2 < _Object$keys.length; _i2++) {\n              var prop = _Object$keys[_i2];\n\n              if ( // $FlowIssue Accessing the hasOwnProperty on the Object prototype is fine.\n              !Object.prototype.hasOwnProperty.call(roleDefinition.props, prop)) {\n                Object.assign(roleDefinition.props, _defineProperty({}, prop, superClassDefinition.props[prop]));\n              }\n            }\n          }\n        };\n\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          _loop();\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n    }\n  } catch (err) {\n    _iterator.e(err);\n  } finally {\n    _iterator.f();\n  }\n});\nvar rolesMap = {\n  entries: function entries() {\n    return roles;\n  },\n  get: function get(key) {\n    var item = roles.find(function (tuple) {\n      return tuple[0] === key ? true : false;\n    });\n    return item && item[1];\n  },\n  has: function has(key) {\n    return !!this.get(key);\n  },\n  keys: function keys() {\n    return roles.map(function (_ref5) {\n      var _ref6 = _slicedToArray(_ref5, 1),\n          key = _ref6[0];\n\n      return key;\n    });\n  },\n  values: function values() {\n    return roles.map(function (_ref7) {\n      var _ref8 = _slicedToArray(_ref7, 2),\n          values = _ref8[1];\n\n      return values;\n    });\n  }\n};\nvar _default = rolesMap;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _rolesMap = _interopRequireDefault(require(\"./rolesMap\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nvar elementRoles = [];\n\nvar keys = _rolesMap.default.keys();\n\nfor (var i = 0; i < keys.length; i++) {\n  var _key = keys[i];\n\n  var role = _rolesMap.default.get(_key);\n\n  if (role) {\n    var concepts = [].concat(role.baseConcepts, role.relatedConcepts);\n\n    for (var k = 0; k < concepts.length; k++) {\n      var relation = concepts[k];\n\n      if (relation.module === 'HTML') {\n        var concept = relation.concept;\n\n        if (concept) {\n          (function () {\n            var conceptStr = JSON.stringify(concept);\n            var elementRoleRelation = elementRoles.find(function (relation) {\n              return JSON.stringify(relation[0]) === conceptStr;\n            });\n            var roles = void 0;\n\n            if (elementRoleRelation) {\n              roles = elementRoleRelation[1];\n            } else {\n              roles = [];\n            }\n\n            var isUnique = true;\n\n            for (var _i = 0; _i < roles.length; _i++) {\n              if (roles[_i] === _key) {\n                isUnique = false;\n                break;\n              }\n            }\n\n            if (isUnique) {\n              roles.push(_key);\n            }\n\n            elementRoles.push([concept, roles]);\n          })();\n        }\n      }\n    }\n  }\n}\n\nvar elementRoleMap = {\n  entries: function entries() {\n    return elementRoles;\n  },\n  get: function get(key) {\n    var item = elementRoles.find(function (tuple) {\n      return JSON.stringify(tuple[0]) === JSON.stringify(key) ? true : false;\n    });\n    return item && item[1];\n  },\n  has: function has(key) {\n    return !!this.get(key);\n  },\n  keys: function keys() {\n    return elementRoles.map(function (_ref) {\n      var _ref2 = _slicedToArray(_ref, 1),\n          key = _ref2[0];\n\n      return key;\n    });\n  },\n  values: function values() {\n    return elementRoles.map(function (_ref3) {\n      var _ref4 = _slicedToArray(_ref3, 2),\n          values = _ref4[1];\n\n      return values;\n    });\n  }\n};\nvar _default = elementRoleMap;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _rolesMap = _interopRequireDefault(require(\"./rolesMap\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nvar roleElement = [];\n\nvar keys = _rolesMap.default.keys();\n\nvar _loop = function _loop(i) {\n  var key = keys[i];\n\n  var role = _rolesMap.default.get(key);\n\n  if (role) {\n    var concepts = [].concat(role.baseConcepts, role.relatedConcepts);\n\n    for (var k = 0; k < concepts.length; k++) {\n      var relation = concepts[k];\n\n      if (relation.module === 'HTML') {\n        var concept = relation.concept;\n\n        if (concept) {\n          var roleElementRelation = roleElement.find(function (item) {\n            return item[0] === key;\n          });\n          var relationConcepts = void 0;\n\n          if (roleElementRelation) {\n            relationConcepts = roleElementRelation[1];\n          } else {\n            relationConcepts = [];\n          }\n\n          relationConcepts.push(concept);\n          roleElement.push([key, relationConcepts]);\n        }\n      }\n    }\n  }\n};\n\nfor (var i = 0; i < keys.length; i++) {\n  _loop(i);\n}\n\nvar roleElementMap = {\n  entries: function entries() {\n    return roleElement;\n  },\n  get: function get(key) {\n    var item = roleElement.find(function (tuple) {\n      return tuple[0] === key ? true : false;\n    });\n    return item && item[1];\n  },\n  has: function has(key) {\n    return !!this.get(key);\n  },\n  keys: function keys() {\n    return roleElement.map(function (_ref) {\n      var _ref2 = _slicedToArray(_ref, 1),\n          key = _ref2[0];\n\n      return key;\n    });\n  },\n  values: function values() {\n    return roleElement.map(function (_ref3) {\n      var _ref4 = _slicedToArray(_ref3, 2),\n          values = _ref4[1];\n\n      return values;\n    });\n  }\n};\nvar _default = roleElementMap;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.roleElements = exports.elementRoles = exports.roles = exports.dom = exports.aria = void 0;\n\nvar _ariaPropsMap = _interopRequireDefault(require(\"./ariaPropsMap\"));\n\nvar _domMap = _interopRequireDefault(require(\"./domMap\"));\n\nvar _rolesMap = _interopRequireDefault(require(\"./rolesMap\"));\n\nvar _elementRoleMap = _interopRequireDefault(require(\"./elementRoleMap\"));\n\nvar _roleElementMap = _interopRequireDefault(require(\"./roleElementMap\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar aria = _ariaPropsMap.default;\nexports.aria = aria;\nvar dom = _domMap.default;\nexports.dom = dom;\nvar roles = _rolesMap.default;\nexports.roles = roles;\nvar elementRoles = _elementRoleMap.default;\nexports.elementRoles = elementRoles;\nvar roleElements = _roleElementMap.default;\nexports.roleElements = roleElements;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar AbbrRole = {\n  relatedConcepts: [{\n    module: 'HTML',\n    concept: {\n      name: 'abbr'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = AbbrRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar AlertDialogRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'alertdialog'\n    }\n  }],\n  type: 'window'\n};\nvar _default = AlertDialogRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar AlertRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'alert'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = AlertRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar AnnotationRole = {\n  relatedConcepts: [],\n  type: 'structure'\n};\nvar _default = AnnotationRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar ApplicationRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'application'\n    }\n  }],\n  type: 'window'\n};\nvar _default = ApplicationRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar ArticleRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'article'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'article'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = ArticleRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar AudioRole = {\n  relatedConcepts: [{\n    module: 'HTML',\n    concept: {\n      name: 'audio'\n    }\n  }],\n  type: 'widget'\n};\nvar _default = AudioRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar BannerRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'banner'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = BannerRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar BlockquoteRole = {\n  relatedConcepts: [{\n    module: 'HTML',\n    concept: {\n      name: 'blockquote'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = BlockquoteRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar BusyIndicatorRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      attributes: [{\n        name: 'aria-busy',\n        value: 'true'\n      }]\n    }\n  }],\n  type: 'widget'\n};\nvar _default = BusyIndicatorRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar ButtonRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'button'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'button'\n    }\n  }],\n  type: 'widget'\n};\nvar _default = ButtonRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar CanvasRole = {\n  relatedConcepts: [{\n    module: 'HTML',\n    concept: {\n      name: 'canvas'\n    }\n  }],\n  type: 'widget'\n};\nvar _default = CanvasRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar CaptionRole = {\n  relatedConcepts: [{\n    module: 'HTML',\n    concept: {\n      name: 'caption'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = CaptionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar CellRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'cell'\n    }\n  }, {\n    module: 'ARIA',\n    concept: {\n      name: 'gridcell'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'td'\n    }\n  }],\n  type: 'widget'\n};\nvar _default = CellRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar CheckBoxRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'checkbox'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'input',\n      attributes: [{\n        name: 'type',\n        value: 'checkbox'\n      }]\n    }\n  }],\n  type: 'widget'\n};\nvar _default = CheckBoxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar ColorWellRole = {\n  relatedConcepts: [{\n    module: 'HTML',\n    concept: {\n      name: 'input',\n      attributes: [{\n        name: 'type',\n        value: 'color'\n      }]\n    }\n  }],\n  type: 'widget'\n};\nvar _default = ColorWellRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar ColumnHeaderRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'columnheader'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'th'\n    }\n  }],\n  type: 'widget'\n};\nvar _default = ColumnHeaderRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar ColumnRole = {\n  relatedConcepts: [],\n  type: 'structure'\n};\nvar _default = ColumnRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar ComboBoxRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'combobox'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'select'\n    }\n  }],\n  type: 'widget'\n};\nvar _default = ComboBoxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar ComplementaryRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'complementary'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = ComplementaryRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar ContentInfoRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'structureinfo'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = ContentInfoRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar DateRole = {\n  relatedConcepts: [{\n    module: 'HTML',\n    concept: {\n      name: 'input',\n      attributes: [{\n        name: 'type',\n        value: 'date'\n      }]\n    }\n  }],\n  type: 'widget'\n};\nvar _default = DateRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar DateTimeRole = {\n  relatedConcepts: [{\n    module: 'HTML',\n    concept: {\n      name: 'input',\n      attributes: [{\n        name: 'type',\n        value: 'datetime'\n      }]\n    }\n  }],\n  type: 'widget'\n};\nvar _default = DateTimeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar DefinitionRole = {\n  relatedConcepts: [{\n    module: 'HTML',\n    concept: {\n      name: 'dfn'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = DefinitionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar DescriptionListDetailRole = {\n  relatedConcepts: [{\n    module: 'HTML',\n    concept: {\n      name: 'dd'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = DescriptionListDetailRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar DescriptionListRole = {\n  relatedConcepts: [{\n    module: 'HTML',\n    concept: {\n      name: 'dl'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = DescriptionListRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar DescriptionListTermRole = {\n  relatedConcepts: [{\n    module: 'HTML',\n    concept: {\n      name: 'dt'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = DescriptionListTermRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar DetailsRole = {\n  relatedConcepts: [{\n    module: 'HTML',\n    concept: {\n      name: 'details'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = DetailsRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar DialogRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'dialog'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'dialog'\n    }\n  }],\n  type: 'window'\n};\nvar _default = DialogRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar DirectoryRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'directory'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'dir'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = DirectoryRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar DisclosureTriangleRole = {\n  relatedConcepts: [{\n    module: 'HTML',\n    concept: {\n      name: 'summary'\n    }\n  }],\n  type: 'widget'\n};\nvar _default = DisclosureTriangleRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar DivRole = {\n  relatedConcepts: [{\n    module: 'HTML',\n    concept: {\n      name: 'div'\n    }\n  }],\n  type: 'generic'\n};\nvar _default = DivRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar DocumentRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'document'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = DocumentRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar EmbeddedObjectRole = {\n  relatedConcepts: [{\n    module: 'HTML',\n    concept: {\n      name: 'embed'\n    }\n  }],\n  type: 'widget'\n};\nvar _default = EmbeddedObjectRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar FeedRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'feed'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = FeedRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar FigcaptionRole = {\n  relatedConcepts: [{\n    module: 'HTML',\n    concept: {\n      name: 'figcaption'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = FigcaptionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar FigureRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'figure'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'figure'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = FigureRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar FooterRole = {\n  relatedConcepts: [{\n    module: 'HTML',\n    concept: {\n      name: 'footer'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = FooterRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar FormRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'form'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'form'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = FormRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar GridRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'grid'\n    }\n  }],\n  type: 'widget'\n};\nvar _default = GridRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar GroupRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'group'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = GroupRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar HeadingRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'heading'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'h1'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'h2'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'h3'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'h4'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'h5'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'h6'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = HeadingRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar IframePresentationalRole = {\n  relatedConcepts: [],\n  type: 'window'\n};\nvar _default = IframePresentationalRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar IframeRole = {\n  relatedConcepts: [{\n    module: 'HTML',\n    concept: {\n      name: 'iframe'\n    }\n  }],\n  type: 'window'\n};\nvar _default = IframeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar IgnoredRole = {\n  relatedConcepts: [],\n  type: 'structure'\n};\nvar _default = IgnoredRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar ImageMapLinkRole = {\n  relatedConcepts: [],\n  type: 'widget'\n};\nvar _default = ImageMapLinkRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar ImageMapRole = {\n  relatedConcepts: [{\n    module: 'HTML',\n    concept: {\n      name: 'img',\n      attributes: [{\n        name: 'usemap'\n      }]\n    }\n  }],\n  type: 'structure'\n};\nvar _default = ImageMapRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar ImageRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'img'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'img'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = ImageRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar InlineTextBoxRole = {\n  relatedConcepts: [{\n    module: 'HTML',\n    concept: {\n      name: 'input'\n    }\n  }],\n  type: 'widget'\n};\nvar _default = InlineTextBoxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar InputTimeRole = {\n  relatedConcepts: [{\n    module: 'HTML',\n    concept: {\n      name: 'input',\n      attributes: [{\n        name: 'type',\n        value: 'time'\n      }]\n    }\n  }],\n  type: 'widget'\n};\nvar _default = InputTimeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar LabelRole = {\n  relatedConcepts: [{\n    module: 'HTML',\n    concept: {\n      name: 'label'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = LabelRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar LegendRole = {\n  relatedConcepts: [{\n    module: 'HTML',\n    concept: {\n      name: 'legend'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = LegendRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar LineBreakRole = {\n  relatedConcepts: [{\n    module: 'HTML',\n    concept: {\n      name: 'br'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = LineBreakRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar LinkRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'link'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'a',\n      attributes: [{\n        name: 'href'\n      }]\n    }\n  }],\n  type: 'widget'\n};\nvar _default = LinkRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar ListBoxOptionRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'option'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'option'\n    }\n  }],\n  type: 'widget'\n};\nvar _default = ListBoxOptionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar ListBoxRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'listbox'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'datalist'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'select'\n    }\n  }],\n  type: 'widget'\n};\nvar _default = ListBoxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar ListItemRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'listitem'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'li'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = ListItemRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar ListMarkerRole = {\n  relatedConcepts: [],\n  type: 'structure'\n};\nvar _default = ListMarkerRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar ListRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'list'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'ul'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'ol'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = ListRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar LogRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'log'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = LogRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar MainRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'main'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'main'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = MainRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar MarkRole = {\n  relatedConcepts: [{\n    module: 'HTML',\n    concept: {\n      name: 'mark'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = MarkRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar MarqueeRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'marquee'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'marquee'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = MarqueeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar MathRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'math'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = MathRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar MenuBarRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'menubar'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = MenuBarRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar MenuButtonRole = {\n  relatedConcepts: [],\n  type: 'widget'\n};\nvar _default = MenuButtonRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar MenuItemRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'menuitem'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'menuitem'\n    }\n  }],\n  type: 'widget'\n};\nvar _default = MenuItemRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar MenuItemCheckBoxRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'menuitemcheckbox'\n    }\n  }],\n  type: 'widget'\n};\nvar _default = MenuItemCheckBoxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar MenuItemRadioRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'menuitemradio'\n    }\n  }],\n  type: 'widget'\n};\nvar _default = MenuItemRadioRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar MenuListOptionRole = {\n  relatedConcepts: [],\n  type: 'widget'\n};\nvar _default = MenuListOptionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar MenuListPopupRole = {\n  relatedConcepts: [],\n  type: 'widget'\n};\nvar _default = MenuListPopupRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar MenuRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'menu'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'menu'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = MenuRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar MeterRole = {\n  relatedConcepts: [{\n    module: 'HTML',\n    concept: {\n      name: 'meter'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = MeterRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar NavigationRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'navigation'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'nav'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = NavigationRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar NoneRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'none'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = NoneRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar NoteRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'note'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = NoteRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar OutlineRole = {\n  relatedConcepts: [],\n  type: 'structure'\n};\nvar _default = OutlineRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar ParagraphRole = {\n  relatedConcepts: [{\n    module: 'HTML',\n    concept: {\n      name: 'p'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = ParagraphRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar PopUpButtonRole = {\n  relatedConcepts: [],\n  type: 'widget'\n};\nvar _default = PopUpButtonRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar PreRole = {\n  relatedConcepts: [{\n    module: 'HTML',\n    concept: {\n      name: 'pre'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = PreRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar PresentationalRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'presentation'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = PresentationalRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar ProgressIndicatorRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'progressbar'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'progress'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = ProgressIndicatorRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar RadioButtonRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'radio'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'input',\n      attributes: [{\n        name: 'type',\n        value: 'radio'\n      }]\n    }\n  }],\n  type: 'widget'\n};\nvar _default = RadioButtonRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar RadioGroupRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'radiogroup'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = RadioGroupRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar RegionRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'region'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = RegionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar RootWebAreaRole = {\n  relatedConcepts: [],\n  type: 'structure'\n};\nvar _default = RootWebAreaRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar RowHeaderRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'rowheader'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'th',\n      attributes: [{\n        name: 'scope',\n        value: 'row'\n      }]\n    }\n  }],\n  type: 'widget'\n};\nvar _default = RowHeaderRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar RowRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'row'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'tr'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = RowRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar RubyRole = {\n  relatedConcepts: [{\n    module: 'HTML',\n    concept: {\n      name: 'ruby'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = RubyRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar RulerRole = {\n  relatedConcepts: [],\n  type: 'structure'\n};\nvar _default = RulerRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar ScrollAreaRole = {\n  relatedConcepts: [],\n  type: 'structure'\n};\nvar _default = ScrollAreaRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar ScrollBarRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'scrollbar'\n    }\n  }],\n  type: 'widget'\n};\nvar _default = ScrollBarRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar SeamlessWebAreaRole = {\n  relatedConcepts: [],\n  type: 'structure'\n};\nvar _default = SeamlessWebAreaRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar SearchRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'search'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = SearchRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar SearchBoxRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'searchbox'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'input',\n      attributes: [{\n        name: 'type',\n        value: 'search'\n      }]\n    }\n  }],\n  type: 'widget'\n};\nvar _default = SearchBoxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar SliderRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'slider'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'input',\n      attributes: [{\n        name: 'type',\n        value: 'range'\n      }]\n    }\n  }],\n  type: 'widget'\n};\nvar _default = SliderRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar SliderThumbRole = {\n  relatedConcepts: [],\n  type: 'structure'\n};\nvar _default = SliderThumbRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar SpinButtonRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'spinbutton'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'input',\n      attributes: [{\n        name: 'type',\n        value: 'number'\n      }]\n    }\n  }],\n  type: 'widget'\n};\nvar _default = SpinButtonRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar SpinButtonPartRole = {\n  relatedConcepts: [],\n  type: 'structure'\n};\nvar _default = SpinButtonPartRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar SplitterRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'separator'\n    }\n  }],\n  type: 'widget'\n};\nvar _default = SplitterRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar StaticTextRole = {\n  relatedConcepts: [],\n  type: 'structure'\n};\nvar _default = StaticTextRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar StatusRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'status'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = StatusRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar SVGRootRole = {\n  relatedConcepts: [],\n  type: 'structure'\n};\nvar _default = SVGRootRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar SwitchRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'switch'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'input',\n      attributes: [{\n        name: 'type',\n        value: 'checkbox'\n      }]\n    }\n  }],\n  type: 'widget'\n};\nvar _default = SwitchRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar TabGroupRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'tablist'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = TabGroupRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar TabRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'tab'\n    }\n  }],\n  type: 'widget'\n};\nvar _default = TabRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar TableHeaderContainerRole = {\n  relatedConcepts: [],\n  type: 'structure'\n};\nvar _default = TableHeaderContainerRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar TableRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'table'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'table'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = TableRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar TabListRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'tablist'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = TabListRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar TabPanelRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'tabpanel'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = TabPanelRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar TermRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'term'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = TermRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar TextFieldRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'textbox'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'input'\n    }\n  }, {\n    module: 'HTML',\n    concept: {\n      name: 'input',\n      attributes: [{\n        name: 'type',\n        value: 'text'\n      }]\n    }\n  }],\n  type: 'widget'\n};\nvar _default = TextFieldRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar TimeRole = {\n  relatedConcepts: [{\n    module: 'HTML',\n    concept: {\n      name: 'time'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = TimeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar TimerRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'timer'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = TimerRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar ToggleButtonRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      attributes: [{\n        name: 'aria-pressed'\n      }]\n    }\n  }],\n  type: 'widget'\n};\nvar _default = ToggleButtonRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar ToolbarRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'toolbar'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = ToolbarRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar TreeRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'tree'\n    }\n  }],\n  type: 'widget'\n};\nvar _default = TreeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar TreeGridRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'treegrid'\n    }\n  }],\n  type: 'widget'\n};\nvar _default = TreeGridRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar TreeItemRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'treeitem'\n    }\n  }],\n  type: 'widget'\n};\nvar _default = TreeItemRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar UserInterfaceTooltipRole = {\n  relatedConcepts: [{\n    module: 'ARIA',\n    concept: {\n      name: 'tooltip'\n    }\n  }],\n  type: 'structure'\n};\nvar _default = UserInterfaceTooltipRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar VideoRole = {\n  relatedConcepts: [{\n    module: 'HTML',\n    concept: {\n      name: 'video'\n    }\n  }],\n  type: 'widget'\n};\nvar _default = VideoRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar WebAreaRole = {\n  relatedConcepts: [],\n  type: 'structure'\n};\nvar _default = WebAreaRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar WindowRole = {\n  relatedConcepts: [],\n  type: 'window'\n};\nvar _default = WindowRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _AbbrRole = _interopRequireDefault(require(\"./etc/objects/AbbrRole\"));\n\nvar _AlertDialogRole = _interopRequireDefault(require(\"./etc/objects/AlertDialogRole\"));\n\nvar _AlertRole = _interopRequireDefault(require(\"./etc/objects/AlertRole\"));\n\nvar _AnnotationRole = _interopRequireDefault(require(\"./etc/objects/AnnotationRole\"));\n\nvar _ApplicationRole = _interopRequireDefault(require(\"./etc/objects/ApplicationRole\"));\n\nvar _ArticleRole = _interopRequireDefault(require(\"./etc/objects/ArticleRole\"));\n\nvar _AudioRole = _interopRequireDefault(require(\"./etc/objects/AudioRole\"));\n\nvar _BannerRole = _interopRequireDefault(require(\"./etc/objects/BannerRole\"));\n\nvar _BlockquoteRole = _interopRequireDefault(require(\"./etc/objects/BlockquoteRole\"));\n\nvar _BusyIndicatorRole = _interopRequireDefault(require(\"./etc/objects/BusyIndicatorRole\"));\n\nvar _ButtonRole = _interopRequireDefault(require(\"./etc/objects/ButtonRole\"));\n\nvar _CanvasRole = _interopRequireDefault(require(\"./etc/objects/CanvasRole\"));\n\nvar _CaptionRole = _interopRequireDefault(require(\"./etc/objects/CaptionRole\"));\n\nvar _CellRole = _interopRequireDefault(require(\"./etc/objects/CellRole\"));\n\nvar _CheckBoxRole = _interopRequireDefault(require(\"./etc/objects/CheckBoxRole\"));\n\nvar _ColorWellRole = _interopRequireDefault(require(\"./etc/objects/ColorWellRole\"));\n\nvar _ColumnHeaderRole = _interopRequireDefault(require(\"./etc/objects/ColumnHeaderRole\"));\n\nvar _ColumnRole = _interopRequireDefault(require(\"./etc/objects/ColumnRole\"));\n\nvar _ComboBoxRole = _interopRequireDefault(require(\"./etc/objects/ComboBoxRole\"));\n\nvar _ComplementaryRole = _interopRequireDefault(require(\"./etc/objects/ComplementaryRole\"));\n\nvar _ContentInfoRole = _interopRequireDefault(require(\"./etc/objects/ContentInfoRole\"));\n\nvar _DateRole = _interopRequireDefault(require(\"./etc/objects/DateRole\"));\n\nvar _DateTimeRole = _interopRequireDefault(require(\"./etc/objects/DateTimeRole\"));\n\nvar _DefinitionRole = _interopRequireDefault(require(\"./etc/objects/DefinitionRole\"));\n\nvar _DescriptionListDetailRole = _interopRequireDefault(require(\"./etc/objects/DescriptionListDetailRole\"));\n\nvar _DescriptionListRole = _interopRequireDefault(require(\"./etc/objects/DescriptionListRole\"));\n\nvar _DescriptionListTermRole = _interopRequireDefault(require(\"./etc/objects/DescriptionListTermRole\"));\n\nvar _DetailsRole = _interopRequireDefault(require(\"./etc/objects/DetailsRole\"));\n\nvar _DialogRole = _interopRequireDefault(require(\"./etc/objects/DialogRole\"));\n\nvar _DirectoryRole = _interopRequireDefault(require(\"./etc/objects/DirectoryRole\"));\n\nvar _DisclosureTriangleRole = _interopRequireDefault(require(\"./etc/objects/DisclosureTriangleRole\"));\n\nvar _DivRole = _interopRequireDefault(require(\"./etc/objects/DivRole\"));\n\nvar _DocumentRole = _interopRequireDefault(require(\"./etc/objects/DocumentRole\"));\n\nvar _EmbeddedObjectRole = _interopRequireDefault(require(\"./etc/objects/EmbeddedObjectRole\"));\n\nvar _FeedRole = _interopRequireDefault(require(\"./etc/objects/FeedRole\"));\n\nvar _FigcaptionRole = _interopRequireDefault(require(\"./etc/objects/FigcaptionRole\"));\n\nvar _FigureRole = _interopRequireDefault(require(\"./etc/objects/FigureRole\"));\n\nvar _FooterRole = _interopRequireDefault(require(\"./etc/objects/FooterRole\"));\n\nvar _FormRole = _interopRequireDefault(require(\"./etc/objects/FormRole\"));\n\nvar _GridRole = _interopRequireDefault(require(\"./etc/objects/GridRole\"));\n\nvar _GroupRole = _interopRequireDefault(require(\"./etc/objects/GroupRole\"));\n\nvar _HeadingRole = _interopRequireDefault(require(\"./etc/objects/HeadingRole\"));\n\nvar _IframePresentationalRole = _interopRequireDefault(require(\"./etc/objects/IframePresentationalRole\"));\n\nvar _IframeRole = _interopRequireDefault(require(\"./etc/objects/IframeRole\"));\n\nvar _IgnoredRole = _interopRequireDefault(require(\"./etc/objects/IgnoredRole\"));\n\nvar _ImageMapLinkRole = _interopRequireDefault(require(\"./etc/objects/ImageMapLinkRole\"));\n\nvar _ImageMapRole = _interopRequireDefault(require(\"./etc/objects/ImageMapRole\"));\n\nvar _ImageRole = _interopRequireDefault(require(\"./etc/objects/ImageRole\"));\n\nvar _InlineTextBoxRole = _interopRequireDefault(require(\"./etc/objects/InlineTextBoxRole\"));\n\nvar _InputTimeRole = _interopRequireDefault(require(\"./etc/objects/InputTimeRole\"));\n\nvar _LabelRole = _interopRequireDefault(require(\"./etc/objects/LabelRole\"));\n\nvar _LegendRole = _interopRequireDefault(require(\"./etc/objects/LegendRole\"));\n\nvar _LineBreakRole = _interopRequireDefault(require(\"./etc/objects/LineBreakRole\"));\n\nvar _LinkRole = _interopRequireDefault(require(\"./etc/objects/LinkRole\"));\n\nvar _ListBoxOptionRole = _interopRequireDefault(require(\"./etc/objects/ListBoxOptionRole\"));\n\nvar _ListBoxRole = _interopRequireDefault(require(\"./etc/objects/ListBoxRole\"));\n\nvar _ListItemRole = _interopRequireDefault(require(\"./etc/objects/ListItemRole\"));\n\nvar _ListMarkerRole = _interopRequireDefault(require(\"./etc/objects/ListMarkerRole\"));\n\nvar _ListRole = _interopRequireDefault(require(\"./etc/objects/ListRole\"));\n\nvar _LogRole = _interopRequireDefault(require(\"./etc/objects/LogRole\"));\n\nvar _MainRole = _interopRequireDefault(require(\"./etc/objects/MainRole\"));\n\nvar _MarkRole = _interopRequireDefault(require(\"./etc/objects/MarkRole\"));\n\nvar _MarqueeRole = _interopRequireDefault(require(\"./etc/objects/MarqueeRole\"));\n\nvar _MathRole = _interopRequireDefault(require(\"./etc/objects/MathRole\"));\n\nvar _MenuBarRole = _interopRequireDefault(require(\"./etc/objects/MenuBarRole\"));\n\nvar _MenuButtonRole = _interopRequireDefault(require(\"./etc/objects/MenuButtonRole\"));\n\nvar _MenuItemRole = _interopRequireDefault(require(\"./etc/objects/MenuItemRole\"));\n\nvar _MenuItemCheckBoxRole = _interopRequireDefault(require(\"./etc/objects/MenuItemCheckBoxRole\"));\n\nvar _MenuItemRadioRole = _interopRequireDefault(require(\"./etc/objects/MenuItemRadioRole\"));\n\nvar _MenuListOptionRole = _interopRequireDefault(require(\"./etc/objects/MenuListOptionRole\"));\n\nvar _MenuListPopupRole = _interopRequireDefault(require(\"./etc/objects/MenuListPopupRole\"));\n\nvar _MenuRole = _interopRequireDefault(require(\"./etc/objects/MenuRole\"));\n\nvar _MeterRole = _interopRequireDefault(require(\"./etc/objects/MeterRole\"));\n\nvar _NavigationRole = _interopRequireDefault(require(\"./etc/objects/NavigationRole\"));\n\nvar _NoneRole = _interopRequireDefault(require(\"./etc/objects/NoneRole\"));\n\nvar _NoteRole = _interopRequireDefault(require(\"./etc/objects/NoteRole\"));\n\nvar _OutlineRole = _interopRequireDefault(require(\"./etc/objects/OutlineRole\"));\n\nvar _ParagraphRole = _interopRequireDefault(require(\"./etc/objects/ParagraphRole\"));\n\nvar _PopUpButtonRole = _interopRequireDefault(require(\"./etc/objects/PopUpButtonRole\"));\n\nvar _PreRole = _interopRequireDefault(require(\"./etc/objects/PreRole\"));\n\nvar _PresentationalRole = _interopRequireDefault(require(\"./etc/objects/PresentationalRole\"));\n\nvar _ProgressIndicatorRole = _interopRequireDefault(require(\"./etc/objects/ProgressIndicatorRole\"));\n\nvar _RadioButtonRole = _interopRequireDefault(require(\"./etc/objects/RadioButtonRole\"));\n\nvar _RadioGroupRole = _interopRequireDefault(require(\"./etc/objects/RadioGroupRole\"));\n\nvar _RegionRole = _interopRequireDefault(require(\"./etc/objects/RegionRole\"));\n\nvar _RootWebAreaRole = _interopRequireDefault(require(\"./etc/objects/RootWebAreaRole\"));\n\nvar _RowHeaderRole = _interopRequireDefault(require(\"./etc/objects/RowHeaderRole\"));\n\nvar _RowRole = _interopRequireDefault(require(\"./etc/objects/RowRole\"));\n\nvar _RubyRole = _interopRequireDefault(require(\"./etc/objects/RubyRole\"));\n\nvar _RulerRole = _interopRequireDefault(require(\"./etc/objects/RulerRole\"));\n\nvar _ScrollAreaRole = _interopRequireDefault(require(\"./etc/objects/ScrollAreaRole\"));\n\nvar _ScrollBarRole = _interopRequireDefault(require(\"./etc/objects/ScrollBarRole\"));\n\nvar _SeamlessWebAreaRole = _interopRequireDefault(require(\"./etc/objects/SeamlessWebAreaRole\"));\n\nvar _SearchRole = _interopRequireDefault(require(\"./etc/objects/SearchRole\"));\n\nvar _SearchBoxRole = _interopRequireDefault(require(\"./etc/objects/SearchBoxRole\"));\n\nvar _SliderRole = _interopRequireDefault(require(\"./etc/objects/SliderRole\"));\n\nvar _SliderThumbRole = _interopRequireDefault(require(\"./etc/objects/SliderThumbRole\"));\n\nvar _SpinButtonRole = _interopRequireDefault(require(\"./etc/objects/SpinButtonRole\"));\n\nvar _SpinButtonPartRole = _interopRequireDefault(require(\"./etc/objects/SpinButtonPartRole\"));\n\nvar _SplitterRole = _interopRequireDefault(require(\"./etc/objects/SplitterRole\"));\n\nvar _StaticTextRole = _interopRequireDefault(require(\"./etc/objects/StaticTextRole\"));\n\nvar _StatusRole = _interopRequireDefault(require(\"./etc/objects/StatusRole\"));\n\nvar _SVGRootRole = _interopRequireDefault(require(\"./etc/objects/SVGRootRole\"));\n\nvar _SwitchRole = _interopRequireDefault(require(\"./etc/objects/SwitchRole\"));\n\nvar _TabGroupRole = _interopRequireDefault(require(\"./etc/objects/TabGroupRole\"));\n\nvar _TabRole = _interopRequireDefault(require(\"./etc/objects/TabRole\"));\n\nvar _TableHeaderContainerRole = _interopRequireDefault(require(\"./etc/objects/TableHeaderContainerRole\"));\n\nvar _TableRole = _interopRequireDefault(require(\"./etc/objects/TableRole\"));\n\nvar _TabListRole = _interopRequireDefault(require(\"./etc/objects/TabListRole\"));\n\nvar _TabPanelRole = _interopRequireDefault(require(\"./etc/objects/TabPanelRole\"));\n\nvar _TermRole = _interopRequireDefault(require(\"./etc/objects/TermRole\"));\n\nvar _TextFieldRole = _interopRequireDefault(require(\"./etc/objects/TextFieldRole\"));\n\nvar _TimeRole = _interopRequireDefault(require(\"./etc/objects/TimeRole\"));\n\nvar _TimerRole = _interopRequireDefault(require(\"./etc/objects/TimerRole\"));\n\nvar _ToggleButtonRole = _interopRequireDefault(require(\"./etc/objects/ToggleButtonRole\"));\n\nvar _ToolbarRole = _interopRequireDefault(require(\"./etc/objects/ToolbarRole\"));\n\nvar _TreeRole = _interopRequireDefault(require(\"./etc/objects/TreeRole\"));\n\nvar _TreeGridRole = _interopRequireDefault(require(\"./etc/objects/TreeGridRole\"));\n\nvar _TreeItemRole = _interopRequireDefault(require(\"./etc/objects/TreeItemRole\"));\n\nvar _UserInterfaceTooltipRole = _interopRequireDefault(require(\"./etc/objects/UserInterfaceTooltipRole\"));\n\nvar _VideoRole = _interopRequireDefault(require(\"./etc/objects/VideoRole\"));\n\nvar _WebAreaRole = _interopRequireDefault(require(\"./etc/objects/WebAreaRole\"));\n\nvar _WindowRole = _interopRequireDefault(require(\"./etc/objects/WindowRole\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nvar AXObjects = [['AbbrRole', _AbbrRole.default], ['AlertDialogRole', _AlertDialogRole.default], ['AlertRole', _AlertRole.default], ['AnnotationRole', _AnnotationRole.default], ['ApplicationRole', _ApplicationRole.default], ['ArticleRole', _ArticleRole.default], ['AudioRole', _AudioRole.default], ['BannerRole', _BannerRole.default], ['BlockquoteRole', _BlockquoteRole.default], ['BusyIndicatorRole', _BusyIndicatorRole.default], ['ButtonRole', _ButtonRole.default], ['CanvasRole', _CanvasRole.default], ['CaptionRole', _CaptionRole.default], ['CellRole', _CellRole.default], ['CheckBoxRole', _CheckBoxRole.default], ['ColorWellRole', _ColorWellRole.default], ['ColumnHeaderRole', _ColumnHeaderRole.default], ['ColumnRole', _ColumnRole.default], ['ComboBoxRole', _ComboBoxRole.default], ['ComplementaryRole', _ComplementaryRole.default], ['ContentInfoRole', _ContentInfoRole.default], ['DateRole', _DateRole.default], ['DateTimeRole', _DateTimeRole.default], ['DefinitionRole', _DefinitionRole.default], ['DescriptionListDetailRole', _DescriptionListDetailRole.default], ['DescriptionListRole', _DescriptionListRole.default], ['DescriptionListTermRole', _DescriptionListTermRole.default], ['DetailsRole', _DetailsRole.default], ['DialogRole', _DialogRole.default], ['DirectoryRole', _DirectoryRole.default], ['DisclosureTriangleRole', _DisclosureTriangleRole.default], ['DivRole', _DivRole.default], ['DocumentRole', _DocumentRole.default], ['EmbeddedObjectRole', _EmbeddedObjectRole.default], ['FeedRole', _FeedRole.default], ['FigcaptionRole', _FigcaptionRole.default], ['FigureRole', _FigureRole.default], ['FooterRole', _FooterRole.default], ['FormRole', _FormRole.default], ['GridRole', _GridRole.default], ['GroupRole', _GroupRole.default], ['HeadingRole', _HeadingRole.default], ['IframePresentationalRole', _IframePresentationalRole.default], ['IframeRole', _IframeRole.default], ['IgnoredRole', _IgnoredRole.default], ['ImageMapLinkRole', _ImageMapLinkRole.default], ['ImageMapRole', _ImageMapRole.default], ['ImageRole', _ImageRole.default], ['InlineTextBoxRole', _InlineTextBoxRole.default], ['InputTimeRole', _InputTimeRole.default], ['LabelRole', _LabelRole.default], ['LegendRole', _LegendRole.default], ['LineBreakRole', _LineBreakRole.default], ['LinkRole', _LinkRole.default], ['ListBoxOptionRole', _ListBoxOptionRole.default], ['ListBoxRole', _ListBoxRole.default], ['ListItemRole', _ListItemRole.default], ['ListMarkerRole', _ListMarkerRole.default], ['ListRole', _ListRole.default], ['LogRole', _LogRole.default], ['MainRole', _MainRole.default], ['MarkRole', _MarkRole.default], ['MarqueeRole', _MarqueeRole.default], ['MathRole', _MathRole.default], ['MenuBarRole', _MenuBarRole.default], ['MenuButtonRole', _MenuButtonRole.default], ['MenuItemRole', _MenuItemRole.default], ['MenuItemCheckBoxRole', _MenuItemCheckBoxRole.default], ['MenuItemRadioRole', _MenuItemRadioRole.default], ['MenuListOptionRole', _MenuListOptionRole.default], ['MenuListPopupRole', _MenuListPopupRole.default], ['MenuRole', _MenuRole.default], ['MeterRole', _MeterRole.default], ['NavigationRole', _NavigationRole.default], ['NoneRole', _NoneRole.default], ['NoteRole', _NoteRole.default], ['OutlineRole', _OutlineRole.default], ['ParagraphRole', _ParagraphRole.default], ['PopUpButtonRole', _PopUpButtonRole.default], ['PreRole', _PreRole.default], ['PresentationalRole', _PresentationalRole.default], ['ProgressIndicatorRole', _ProgressIndicatorRole.default], ['RadioButtonRole', _RadioButtonRole.default], ['RadioGroupRole', _RadioGroupRole.default], ['RegionRole', _RegionRole.default], ['RootWebAreaRole', _RootWebAreaRole.default], ['RowHeaderRole', _RowHeaderRole.default], ['RowRole', _RowRole.default], ['RubyRole', _RubyRole.default], ['RulerRole', _RulerRole.default], ['ScrollAreaRole', _ScrollAreaRole.default], ['ScrollBarRole', _ScrollBarRole.default], ['SeamlessWebAreaRole', _SeamlessWebAreaRole.default], ['SearchRole', _SearchRole.default], ['SearchBoxRole', _SearchBoxRole.default], ['SliderRole', _SliderRole.default], ['SliderThumbRole', _SliderThumbRole.default], ['SpinButtonRole', _SpinButtonRole.default], ['SpinButtonPartRole', _SpinButtonPartRole.default], ['SplitterRole', _SplitterRole.default], ['StaticTextRole', _StaticTextRole.default], ['StatusRole', _StatusRole.default], ['SVGRootRole', _SVGRootRole.default], ['SwitchRole', _SwitchRole.default], ['TabGroupRole', _TabGroupRole.default], ['TabRole', _TabRole.default], ['TableHeaderContainerRole', _TableHeaderContainerRole.default], ['TableRole', _TableRole.default], ['TabListRole', _TabListRole.default], ['TabPanelRole', _TabPanelRole.default], ['TermRole', _TermRole.default], ['TextFieldRole', _TextFieldRole.default], ['TimeRole', _TimeRole.default], ['TimerRole', _TimerRole.default], ['ToggleButtonRole', _ToggleButtonRole.default], ['ToolbarRole', _ToolbarRole.default], ['TreeRole', _TreeRole.default], ['TreeGridRole', _TreeGridRole.default], ['TreeItemRole', _TreeItemRole.default], ['UserInterfaceTooltipRole', _UserInterfaceTooltipRole.default], ['VideoRole', _VideoRole.default], ['WebAreaRole', _WebAreaRole.default], ['WindowRole', _WindowRole.default]];\nvar AXObjectsMap = {\n  entries: function entries() {\n    return AXObjects;\n  },\n  get: function get(key) {\n    var item = AXObjects.find(function (tuple) {\n      return tuple[0] === key ? true : false;\n    });\n    return item && item[1];\n  },\n  has: function has(key) {\n    return !!this.get(key);\n  },\n  keys: function keys() {\n    return AXObjects.map(function (_ref) {\n      var _ref2 = _slicedToArray(_ref, 1),\n          key = _ref2[0];\n\n      return key;\n    });\n  },\n  values: function values() {\n    return AXObjects.map(function (_ref3) {\n      var _ref4 = _slicedToArray(_ref3, 2),\n          values = _ref4[1];\n\n      return values;\n    });\n  }\n};\nvar _default = AXObjectsMap;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _AXObjectsMap = _interopRequireDefault(require(\"./AXObjectsMap\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar AXObjectElements = [];\n\nvar _iterator = _createForOfIteratorHelper(_AXObjectsMap.default.entries()),\n    _step;\n\ntry {\n  var _loop = function _loop() {\n    var _step$value = _slicedToArray(_step.value, 2),\n        name = _step$value[0],\n        def = _step$value[1];\n\n    var relatedConcepts = def.relatedConcepts;\n\n    if (Array.isArray(relatedConcepts)) {\n      relatedConcepts.forEach(function (relation) {\n        if (relation.module === 'HTML') {\n          var concept = relation.concept;\n\n          if (concept) {\n            var index = AXObjectElements.findIndex(function (_ref5) {\n              var _ref6 = _slicedToArray(_ref5, 1),\n                  key = _ref6[0];\n\n              return key === name;\n            });\n\n            if (index === -1) {\n              AXObjectElements.push([name, []]);\n              index = AXObjectElements.length - 1;\n            }\n\n            AXObjectElements[index][1].push(concept);\n          }\n        }\n      });\n    }\n  };\n\n  for (_iterator.s(); !(_step = _iterator.n()).done;) {\n    _loop();\n  }\n} catch (err) {\n  _iterator.e(err);\n} finally {\n  _iterator.f();\n}\n\nvar AXObjectElementMap = {\n  entries: function entries() {\n    return AXObjectElements;\n  },\n  get: function get(key) {\n    var item = AXObjectElements.find(function (tuple) {\n      return tuple[0] === key ? true : false;\n    });\n    return item && item[1];\n  },\n  has: function has(key) {\n    return !!this.get(key);\n  },\n  keys: function keys() {\n    return AXObjectElements.map(function (_ref) {\n      var _ref2 = _slicedToArray(_ref, 1),\n          key = _ref2[0];\n\n      return key;\n    });\n  },\n  values: function values() {\n    return AXObjectElements.map(function (_ref3) {\n      var _ref4 = _slicedToArray(_ref3, 2),\n          values = _ref4[1];\n\n      return values;\n    });\n  }\n};\nvar _default = AXObjectElementMap;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _AXObjectsMap = _interopRequireDefault(require(\"./AXObjectsMap\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar AXObjectRoleElements = [];\n\nvar _iterator = _createForOfIteratorHelper(_AXObjectsMap.default.entries()),\n    _step;\n\ntry {\n  var _loop = function _loop() {\n    var _step$value = _slicedToArray(_step.value, 2),\n        name = _step$value[0],\n        def = _step$value[1];\n\n    var relatedConcepts = def.relatedConcepts;\n\n    if (Array.isArray(relatedConcepts)) {\n      relatedConcepts.forEach(function (relation) {\n        if (relation.module === 'ARIA') {\n          var concept = relation.concept;\n\n          if (concept) {\n            var index = AXObjectRoleElements.findIndex(function (_ref5) {\n              var _ref6 = _slicedToArray(_ref5, 1),\n                  key = _ref6[0];\n\n              return key === name;\n            });\n\n            if (index === -1) {\n              AXObjectRoleElements.push([name, []]);\n              index = AXObjectRoleElements.length - 1;\n            }\n\n            AXObjectRoleElements[index][1].push(concept);\n          }\n        }\n      });\n    }\n  };\n\n  for (_iterator.s(); !(_step = _iterator.n()).done;) {\n    _loop();\n  }\n} catch (err) {\n  _iterator.e(err);\n} finally {\n  _iterator.f();\n}\n\nvar AXObjectRoleMap = {\n  entries: function entries() {\n    return AXObjectRoleElements;\n  },\n  get: function get(key) {\n    var item = AXObjectRoleElements.find(function (tuple) {\n      return tuple[0] === key ? true : false;\n    });\n    return item && item[1];\n  },\n  has: function has(key) {\n    return !!this.get(key);\n  },\n  keys: function keys() {\n    return AXObjectRoleElements.map(function (_ref) {\n      var _ref2 = _slicedToArray(_ref, 1),\n          key = _ref2[0];\n\n      return key;\n    });\n  },\n  values: function values() {\n    return AXObjectRoleElements.map(function (_ref3) {\n      var _ref4 = _slicedToArray(_ref3, 2),\n          values = _ref4[1];\n\n      return values;\n    });\n  }\n};\nvar _default = AXObjectRoleMap;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _AXObjectsMap = _interopRequireDefault(require(\"./AXObjectsMap\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar elementAXObjects = [];\n\nvar _iterator = _createForOfIteratorHelper(_AXObjectsMap.default.entries()),\n    _step;\n\ntry {\n  var _loop = function _loop() {\n    var _step$value = _slicedToArray(_step.value, 2),\n        name = _step$value[0],\n        def = _step$value[1];\n\n    var relatedConcepts = def.relatedConcepts;\n\n    if (Array.isArray(relatedConcepts)) {\n      relatedConcepts.forEach(function (relation) {\n        if (relation.module === 'HTML') {\n          var concept = relation.concept;\n\n          if (concept) {\n            var conceptStr = JSON.stringify(concept);\n            var axObjects;\n            var index = 0;\n\n            for (; index < elementAXObjects.length; index++) {\n              var _key = elementAXObjects[index][0];\n\n              if (JSON.stringify(_key) === conceptStr) {\n                axObjects = elementAXObjects[index][1];\n                break;\n              }\n            }\n\n            if (!axObjects) {\n              axObjects = [];\n            }\n\n            var loc = axObjects.findIndex(function (item) {\n              return item === name;\n            });\n\n            if (loc === -1) {\n              axObjects.push(name);\n            }\n\n            if (index < elementAXObjects.length) {\n              elementAXObjects.splice(index, 1, [concept, axObjects]);\n            } else {\n              elementAXObjects.push([concept, axObjects]);\n            }\n          }\n        }\n      });\n    }\n  };\n\n  for (_iterator.s(); !(_step = _iterator.n()).done;) {\n    _loop();\n  }\n} catch (err) {\n  _iterator.e(err);\n} finally {\n  _iterator.f();\n}\n\nvar elementAXObjectMap = {\n  entries: function entries() {\n    return elementAXObjects;\n  },\n  get: function get(key) {\n    var item = elementAXObjects.find(function (tuple) {\n      return tuple[0] === key ? true : false;\n    });\n    return item && item[1];\n  },\n  has: function has(key) {\n    return !!this.get(key);\n  },\n  keys: function keys() {\n    return elementAXObjects.map(function (_ref) {\n      var _ref2 = _slicedToArray(_ref, 1),\n          key = _ref2[0];\n\n      return key;\n    });\n  },\n  values: function values() {\n    return elementAXObjects.map(function (_ref3) {\n      var _ref4 = _slicedToArray(_ref3, 2),\n          values = _ref4[1];\n\n      return values;\n    });\n  }\n};\nvar _default = elementAXObjectMap;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.elementAXObjects = exports.AXObjects = exports.AXObjectRoles = exports.AXObjectElements = void 0;\n\nvar _AXObjectElementMap = _interopRequireDefault(require(\"./AXObjectElementMap\"));\n\nvar _AXObjectRoleMap = _interopRequireDefault(require(\"./AXObjectRoleMap\"));\n\nvar _AXObjectsMap = _interopRequireDefault(require(\"./AXObjectsMap\"));\n\nvar _elementAXObjectMap = _interopRequireDefault(require(\"./elementAXObjectMap\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar AXObjectElements = _AXObjectElementMap.default;\nexports.AXObjectElements = AXObjectElements;\nvar AXObjectRoles = _AXObjectRoleMap.default;\nexports.AXObjectRoles = AXObjectRoles;\nvar AXObjects = _AXObjectsMap.default;\nexports.AXObjects = AXObjects;\nvar elementAXObjects = _elementAXObjectMap.default;\nexports.elementAXObjects = elementAXObjects;","import {\r\n\tARIARoleDefintionKey,\r\n\troles as roles_map,\r\n\telementRoles,\r\n\tARIARoleRelationConcept\r\n} from 'aria-query';\r\nimport { AXObjects, elementAXObjects } from 'axobject-query';\r\nimport Attribute from '../nodes/Attribute';\r\n\r\nconst roles = [...roles_map.keys()];\r\n\r\nconst non_interactive_roles = new Set(\r\n\troles\r\n\t\t.filter((name) => {\r\n\t\t\tconst role = roles_map.get(name);\r\n\t\t\treturn (\r\n\t\t\t\t!roles_map.get(name).abstract &&\r\n\t\t\t\t// 'toolbar' does not descend from widget, but it does support\r\n\t\t\t\t// aria-activedescendant, thus in practice we treat it as a widget.\r\n\t\t\t\tname !== 'toolbar' &&\r\n\t\t\t\t!role.superClass.some((classes) => classes.includes('widget'))\r\n\t\t\t);\r\n\t\t})\r\n\t\t.concat(\r\n\t\t\t// The `progressbar` is descended from `widget`, but in practice, its\r\n\t\t\t// value is always `readonly`, so we treat it as a non-interactive role.\r\n\t\t\t'progressbar'\r\n\t\t)\r\n);\r\n\r\nconst interactive_roles = new Set(\r\n\troles\r\n\t\t.filter((name) => {\r\n\t\t\tconst role = roles_map.get(name);\r\n\t\t\treturn (\r\n\t\t\t\t!role.abstract &&\r\n\t\t\t\t// The `progressbar` is descended from `widget`, but in practice, its\r\n\t\t\t\t// value is always `readonly`, so we treat it as a non-interactive role.\r\n\t\t\t\tname !== 'progressbar' &&\r\n\t\t\t\trole.superClass.some((classes) => classes.includes('widget'))\r\n\t\t\t);\r\n\t\t})\r\n\t\t.concat(\r\n\t\t\t// 'toolbar' does not descend from widget, but it does support\r\n\t\t\t// aria-activedescendant, thus in practice we treat it as a widget.\r\n\t\t\t'toolbar'\r\n\t\t)\r\n);\r\n\r\nexport function is_non_interactive_roles(role: ARIARoleDefintionKey) {\r\n\treturn non_interactive_roles.has(role);\r\n}\r\n\r\nconst presentation_roles = new Set(['presentation', 'none']);\r\n\r\nexport function is_presentation_role(role: ARIARoleDefintionKey) {\r\n\treturn presentation_roles.has(role);\r\n}\r\n\r\nconst non_interactive_element_role_schemas: ARIARoleRelationConcept[] = [];\r\n\r\nelementRoles.entries().forEach(([schema, roles]) => {\r\n\tif ([...roles].every((role) => non_interactive_roles.has(role))) {\r\n\t\tnon_interactive_element_role_schemas.push(schema);\r\n\t}\r\n});\r\n\r\nconst interactive_element_role_schemas: ARIARoleRelationConcept[] = [];\r\n\r\nelementRoles.entries().forEach(([schema, roles]) => {\r\n\tif ([...roles].every((role) => interactive_roles.has(role))) {\r\n\t\tinteractive_element_role_schemas.push(schema);\r\n\t}\r\n});\r\n\r\nconst interactive_ax_objects = new Set(\r\n\t[...AXObjects.keys()].filter((name) => AXObjects.get(name).type === 'widget')\r\n);\r\n\r\nconst interactive_element_ax_object_schemas: ARIARoleRelationConcept[] = [];\r\n\r\nelementAXObjects.entries().forEach(([schema, ax_object]) => {\r\n\tif ([...ax_object].every((role) => interactive_ax_objects.has(role))) {\r\n\t\tinteractive_element_ax_object_schemas.push(schema);\r\n\t}\r\n});\r\n\r\nfunction match_schema(\r\n\tschema: ARIARoleRelationConcept,\r\n\ttag_name: string,\r\n\tattribute_map: Map<string, Attribute>\r\n) {\r\n\tif (schema.name !== tag_name) return false;\r\n\tif (!schema.attributes) return true;\r\n\treturn schema.attributes.every((schema_attribute) => {\r\n\t\tconst attribute = attribute_map.get(schema_attribute.name);\r\n\t\tif (!attribute) return false;\r\n\t\tif (\r\n\t\t\tschema_attribute.value &&\r\n\t\t\tschema_attribute.value !== attribute.get_static_value()\r\n\t\t) {\r\nreturn false;\r\n}\r\n\t\treturn true;\r\n\t});\r\n}\r\n\r\nexport function is_interactive_element(\r\n\ttag_name: string,\r\n\tattribute_map: Map<string, Attribute>\r\n): boolean {\r\n\tif (\r\n\t\tinteractive_element_role_schemas.some((schema) =>\r\n\t\t\tmatch_schema(schema, tag_name, attribute_map)\r\n\t\t)\r\n\t) {\r\n\t\treturn true;\r\n\t}\r\n\r\n\tif (\r\n\t\tnon_interactive_element_role_schemas.some((schema) =>\r\n\t\t\tmatch_schema(schema, tag_name, attribute_map)\r\n\t\t)\r\n\t) {\r\n\t\treturn false;\r\n\t}\r\n\r\n\tif (\r\n\t\tinteractive_element_ax_object_schemas.some((schema) =>\r\n\t\t\tmatch_schema(schema, tag_name, attribute_map)\r\n\t\t)\r\n\t) {\r\n\t\treturn true;\r\n\t}\r\n\r\n\treturn false;\r\n}\r\n","import { is_void } from '../../../shared/utils/names';\r\nimport Node from './shared/Node';\r\nimport Attribute from './Attribute';\r\nimport Binding from './Binding';\r\nimport EventHandler from './EventHandler';\r\nimport Transition from './Transition';\r\nimport Animation from './Animation';\r\nimport Action from './Action';\r\nimport Class from './Class';\r\nimport StyleDirective from './StyleDirective';\r\nimport Text from './Text';\r\nimport { namespaces } from '../../utils/namespaces';\r\nimport map_children from './shared/map_children';\r\nimport { dimensions, start_newline } from '../../utils/patterns';\r\nimport fuzzymatch from '../../utils/fuzzymatch';\r\nimport list from '../../utils/list';\r\nimport Let from './Let';\r\nimport TemplateScope from './shared/TemplateScope';\r\nimport { INode } from './interfaces';\r\nimport Component from '../Component';\r\nimport Expression from './shared/Expression';\r\nimport { string_literal } from '../utils/stringify';\r\nimport { Literal } from 'estree';\r\nimport compiler_warnings from '../compiler_warnings';\r\nimport compiler_errors from '../compiler_errors';\r\nimport { ARIARoleDefintionKey, roles, aria, ARIAPropertyDefinition, ARIAProperty } from 'aria-query';\r\nimport { is_interactive_element, is_non_interactive_roles, is_presentation_role } from '../utils/a11y';\r\n\r\nconst svg = /^(?:altGlyph|altGlyphDef|altGlyphItem|animate|animateColor|animateMotion|animateTransform|circle|clipPath|color-profile|cursor|defs|desc|discard|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|font|font-face|font-face-format|font-face-name|font-face-src|font-face-uri|foreignObject|g|glyph|glyphRef|hatch|hatchpath|hkern|image|line|linearGradient|marker|mask|mesh|meshgradient|meshpatch|meshrow|metadata|missing-glyph|mpath|path|pattern|polygon|polyline|radialGradient|rect|set|solidcolor|stop|svg|switch|symbol|text|textPath|tref|tspan|unknown|use|view|vkern)$/;\r\n\r\nconst aria_attributes = 'activedescendant atomic autocomplete busy checked colcount colindex colspan controls current describedby description details disabled dropeffect errormessage expanded flowto grabbed haspopup hidden invalid keyshortcuts label labelledby level live modal multiline multiselectable orientation owns placeholder posinset pressed readonly relevant required roledescription rowcount rowindex rowspan selected setsize sort valuemax valuemin valuenow valuetext'.split(' ');\r\nconst aria_attribute_set = new Set(aria_attributes);\r\n\r\nconst aria_roles = roles.keys();\r\nconst aria_role_set = new Set(aria_roles);\r\nconst aria_role_abstract_set = new Set(roles.keys().filter(role => roles.get(role).abstract));\r\n\r\nconst a11y_required_attributes = {\r\n\ta: ['href'],\r\n\tarea: ['alt', 'aria-label', 'aria-labelledby'],\r\n\r\n\t// html-has-lang\r\n\thtml: ['lang'],\r\n\r\n\t// iframe-has-title\r\n\tiframe: ['title'],\r\n\timg: ['alt'],\r\n\tobject: ['title', 'aria-label', 'aria-labelledby']\r\n};\r\n\r\nconst a11y_distracting_elements = new Set([\r\n\t'blink',\r\n\t'marquee'\r\n]);\r\n\r\nconst a11y_required_content = new Set([\r\n\t// anchor-has-content\r\n\t'a',\r\n\r\n\t// heading-has-content\r\n\t'h1',\r\n\t'h2',\r\n\t'h3',\r\n\t'h4',\r\n\t'h5',\r\n\t'h6'\r\n]);\r\n\r\nconst a11y_labelable = new Set([\r\n\t'button',\r\n\t'input',\r\n\t'keygen',\r\n\t'meter',\r\n\t'output',\r\n\t'progress',\r\n\t'select',\r\n\t'textarea'\r\n]);\r\n\r\nconst a11y_nested_implicit_semantics = new Map([\r\n\t['header', 'banner'],\r\n\t['footer', 'contentinfo']\r\n]);\r\n\r\nconst a11y_implicit_semantics = new Map([\r\n\t['a', 'link'],\r\n\t['aside', 'complementary'],\r\n\t['body', 'document'],\r\n\t['datalist', 'listbox'],\r\n\t['dd', 'definition'],\r\n\t['dfn', 'term'],\r\n\t['details', 'group'],\r\n\t['dt', 'term'],\r\n\t['fieldset', 'group'],\r\n\t['form', 'form'],\r\n\t['h1', 'heading'],\r\n\t['h2', 'heading'],\r\n\t['h3', 'heading'],\r\n\t['h4', 'heading'],\r\n\t['h5', 'heading'],\r\n\t['h6', 'heading'],\r\n\t['hr', 'separator'],\r\n\t['li', 'listitem'],\r\n\t['menu', 'list'],\r\n\t['nav', 'navigation'],\r\n\t['ol', 'list'],\r\n\t['optgroup', 'group'],\r\n\t['output', 'status'],\r\n\t['progress', 'progressbar'],\r\n\t['section', 'region'],\r\n\t['summary', 'button'],\r\n\t['tbody', 'rowgroup'],\r\n\t['textarea', 'textbox'],\r\n\t['tfoot', 'rowgroup'],\r\n\t['thead', 'rowgroup'],\r\n\t['tr', 'row'],\r\n\t['ul', 'list']\r\n]);\r\n\r\nconst invisible_elements = new Set(['meta', 'html', 'script', 'style']);\r\n\r\nconst valid_modifiers = new Set([\r\n\t'preventDefault',\r\n\t'stopPropagation',\r\n\t'capture',\r\n\t'once',\r\n\t'passive',\r\n\t'nonpassive',\r\n\t'self',\r\n\t'trusted'\r\n]);\r\n\r\nconst passive_events = new Set([\r\n\t'wheel',\r\n\t'touchstart',\r\n\t'touchmove',\r\n\t'touchend',\r\n\t'touchcancel'\r\n]);\r\n\r\nconst react_attributes = new Map([\r\n\t['className', 'class'],\r\n\t['htmlFor', 'for']\r\n]);\r\n\r\nconst attributes_to_compact_whitespace = ['class', 'style'];\r\n\r\nfunction is_parent(parent: INode, elements: string[]) {\r\n\tlet check = false;\r\n\r\n\twhile (parent) {\r\n\t\tconst parent_name = (parent as Element).name;\r\n\t\tif (elements.includes(parent_name)) {\r\n\t\t\tcheck = true;\r\n\t\t\tbreak;\r\n\t\t}\r\n\t\tif (parent.type === 'Element') {\r\n\t\t\tbreak;\r\n\t\t}\r\n\t\tparent = parent.parent;\r\n\t}\r\n\treturn check;\r\n}\r\n\r\nfunction get_namespace(parent: Element, element: Element, explicit_namespace: string) {\r\n\tconst parent_element = parent.find_nearest(/^Element/);\r\n\r\n\tif (!parent_element) {\r\n\t\treturn explicit_namespace || (svg.test(element.name)\r\n\t\t\t? namespaces.svg\r\n\t\t\t: null);\r\n\t}\r\n\r\n\tif (parent_element.namespace !== namespaces.foreign) {\r\n\t\tif (svg.test(element.name.toLowerCase())) return namespaces.svg;\r\n\t\tif (parent_element.name.toLowerCase() === 'foreignobject') return null;\r\n\t}\r\n\r\n\treturn parent_element.namespace;\r\n}\r\n\r\nfunction is_valid_aria_attribute_value(schema: ARIAPropertyDefinition, value: string | boolean): boolean {\r\n\tswitch (schema.type) {\r\n\t\tcase 'boolean':\r\n\t\t\treturn typeof value === 'boolean';\r\n\t\tcase 'string':\r\n\t\tcase 'id':\r\n\t\t\treturn typeof value === 'string';\r\n\t\tcase 'tristate':\r\n\t\t\treturn typeof value === 'boolean' || value === 'mixed';\r\n\t\tcase 'integer':\r\n\t\tcase 'number':\r\n\t\t\treturn typeof value !== 'boolean' && isNaN(Number(value)) === false;\r\n\t\tcase 'token': // single token\r\n\t\t\treturn (schema.values || [])\r\n\t\t\t\t.indexOf(typeof value === 'string' ? value.toLowerCase() : value) > -1;\r\n\t\tcase 'idlist': // if list of ids, split each\r\n\t\t\treturn typeof value === 'string'\r\n\t\t\t\t&& value.split(' ').every((id) => typeof id === 'string');\r\n\t\tcase 'tokenlist': // if list of tokens, split each\r\n\t\t\treturn typeof value === 'string'\r\n\t\t\t\t&& value.split(' ').every((token) => (schema.values || []).indexOf(token.toLowerCase()) > -1);\r\n\t\tdefault:\r\n\t\t\treturn false;\r\n\t}\r\n}\r\n\r\nexport default class Element extends Node {\r\n\ttype: 'Element';\r\n\tname: string;\r\n\tscope: TemplateScope;\r\n\tattributes: Attribute[] = [];\r\n\tactions: Action[] = [];\r\n\tbindings: Binding[] = [];\r\n\tclasses: Class[] = [];\r\n\tstyles: StyleDirective[] = [];\r\n\thandlers: EventHandler[] = [];\r\n\tlets: Let[] = [];\r\n\tintro?: Transition = null;\r\n\toutro?: Transition = null;\r\n\tanimation?: Animation = null;\r\n\tchildren: INode[];\r\n\tnamespace: string;\r\n\tneeds_manual_style_scoping: boolean;\r\n\ttag_expr: Expression;\r\n\r\n\tget is_dynamic_element() {\r\n\t\treturn this.name === 'svelte:element';\r\n\t}\r\n\r\n\tconstructor(component: Component, parent: Node, scope: TemplateScope, info: any) {\r\n\t\tsuper(component, parent, scope, info);\r\n\t\tthis.name = info.name;\r\n\r\n\t\tif (info.name === 'svelte:element') {\r\n\t\t\tif (typeof info.tag !== 'string') {\r\n\t\t\t\tthis.tag_expr = new Expression(component, this, scope, info.tag);\r\n\t\t\t} else {\r\n\t\t\t\tthis.tag_expr = new Expression(component, this, scope, string_literal(info.tag) as Literal);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.tag_expr = new Expression(component, this, scope, string_literal(this.name) as Literal);\r\n\t\t}\r\n\r\n\t\tthis.namespace = get_namespace(parent as Element, this, component.namespace);\r\n\r\n\t\tif (this.namespace !== namespaces.foreign) {\r\n\t\t\tif (this.name === 'pre' || this.name === 'textarea') {\r\n\t\t\t\tconst first = info.children[0];\r\n\t\t\t\tif (first && first.type === 'Text') {\r\n\t\t\t\t\t// The leading newline character needs to be stripped because of a qirk,\r\n\t\t\t\t\t// it is ignored by browsers if the tag and its contents are set through\r\n\t\t\t\t\t// innerHTML (NOT if set through the innerHTML of the tag or dynamically).\r\n\t\t\t\t\t// Therefore strip it here but add it back in the appropriate\r\n\t\t\t\t\t// places if there's another newline afterwards.\r\n\t\t\t\t\t// see https://html.spec.whatwg.org/multipage/syntax.html#element-restrictions\r\n\t\t\t\t\t// see https://html.spec.whatwg.org/multipage/grouping-content.html#the-pre-element\r\n\t\t\t\t\tfirst.data = first.data.replace(start_newline, '');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (this.name === 'textarea') {\r\n\t\t\t\tif (info.children.length > 0) {\r\n\t\t\t\t\tconst value_attribute = info.attributes.find(node => node.name === 'value');\r\n\t\t\t\t\tif (value_attribute) {\r\n\t\t\t\t\t\tcomponent.error(value_attribute, compiler_errors.textarea_duplicate_value);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// this is an egregious hack, but it's the easiest way to get <textarea>\r\n\t\t\t\t\t// children treated the same way as a value attribute\r\n\t\t\t\t\tinfo.attributes.push({\r\n\t\t\t\t\t\ttype: 'Attribute',\r\n\t\t\t\t\t\tname: 'value',\r\n\t\t\t\t\t\tvalue: info.children\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tinfo.children = [];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (this.name === 'option') {\r\n\t\t\t\t// Special case — treat these the same way:\r\n\t\t\t\t//   <option>{foo}</option>\r\n\t\t\t\t//   <option value={foo}>{foo}</option>\r\n\t\t\t\tconst value_attribute = info.attributes.find(attribute => attribute.name === 'value');\r\n\r\n\t\t\t\tif (!value_attribute) {\r\n\t\t\t\t\tinfo.attributes.push({\r\n\t\t\t\t\t\ttype: 'Attribute',\r\n\t\t\t\t\t\tname: 'value',\r\n\t\t\t\t\t\tvalue: info.children,\r\n\t\t\t\t\t\tsynthetic: true\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tconst has_let = info.attributes.some(node => node.type === 'Let');\r\n\t\tif (has_let) {\r\n\t\t\tscope = scope.child();\r\n\t\t}\r\n\r\n\t\t// Binding relies on Attribute, defer its evaluation\r\n\t\tconst order = ['Binding']; // everything else is -1\r\n\t\tinfo.attributes.sort((a, b) => order.indexOf(a.type) - order.indexOf(b.type));\r\n\r\n\t\tinfo.attributes.forEach(node => {\r\n\t\t\tswitch (node.type) {\r\n\t\t\t\tcase 'Action':\r\n\t\t\t\t\tthis.actions.push(new Action(component, this, scope, node));\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'Attribute':\r\n\t\t\t\tcase 'Spread':\r\n\t\t\t\t\t// special case\r\n\t\t\t\t\tif (node.name === 'xmlns') this.namespace = node.value[0].data;\r\n\r\n\t\t\t\t\tthis.attributes.push(new Attribute(component, this, scope, node));\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'Binding':\r\n\t\t\t\t\tthis.bindings.push(new Binding(component, this, scope, node));\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'Class':\r\n\t\t\t\t\tthis.classes.push(new Class(component, this, scope, node));\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'StyleDirective':\r\n\t\t\t\t\tthis.styles.push(new StyleDirective(component, this, scope, node));\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'EventHandler':\r\n\t\t\t\t\tthis.handlers.push(new EventHandler(component, this, scope, node));\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'Let': {\r\n\t\t\t\t\tconst l = new Let(component, this, scope, node);\r\n\t\t\t\t\tthis.lets.push(l);\r\n\t\t\t\t\tconst dependencies = new Set([l.name.name]);\r\n\r\n\t\t\t\t\tl.names.forEach(name => {\r\n\t\t\t\t\t\tscope.add(name, dependencies, this);\r\n\t\t\t\t\t});\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcase 'Transition':\r\n\t\t\t\t{\r\n\t\t\t\t\tconst transition = new Transition(component, this, scope, node);\r\n\t\t\t\t\tif (node.intro) this.intro = transition;\r\n\t\t\t\t\tif (node.outro) this.outro = transition;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcase 'Animation':\r\n\t\t\t\t\tthis.animation = new Animation(component, this, scope, node);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tthrow new Error(`Not implemented: ${node.type}`);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.scope = scope;\r\n\t\tthis.children = map_children(component, this, this.scope, info.children);\r\n\r\n\t\tthis.validate();\r\n\r\n\t\tthis.optimise();\r\n\r\n\t\tcomponent.apply_stylesheet(this);\r\n\t}\r\n\r\n\tvalidate() {\r\n\t\tif (this.component.var_lookup.has(this.name) && this.component.var_lookup.get(this.name).imported) {\r\n\t\t\tthis.component.warn(this, compiler_warnings.component_name_lowercase(this.name));\r\n\t\t}\r\n\r\n\t\tthis.validate_attributes();\r\n\t\tthis.validate_event_handlers();\r\n\t\tif (this.namespace === namespaces.foreign) {\r\n\t\t\tthis.validate_bindings_foreign();\r\n\t\t} else {\r\n\t\t\tthis.validate_attributes_a11y();\r\n\t\t\tthis.validate_special_cases();\r\n\t\t\tthis.validate_bindings();\r\n\t\t\tthis.validate_content();\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tvalidate_attributes() {\r\n\t\tconst { component, parent } = this;\r\n\r\n\t\tthis.attributes.forEach(attribute => {\r\n\t\t\tif (attribute.is_spread) return;\r\n\r\n\t\t\tconst name = attribute.name.toLowerCase();\r\n\r\n\t\t\t// Errors\r\n\r\n\t\t\tif (/(^[0-9-.])|[\\^$@%&#?!|()[\\]{}^*+~;]/.test(name)) {\r\n\t\t\t\treturn component.error(attribute, compiler_errors.illegal_attribute(name));\r\n\t\t\t}\r\n\r\n\t\t\tif (name === 'slot') {\r\n\t\t\t\tif (!attribute.is_static) {\r\n\t\t\t\t\treturn component.error(attribute, compiler_errors.invalid_slot_attribute);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (component.slot_outlets.has(name)) {\r\n\t\t\t\t\treturn component.error(attribute, compiler_errors.duplicate_slot_attribute(name));\r\n\r\n\t\t\t\t\t// this code was unreachable. Still needed?\r\n\t\t\t\t\t// component.slot_outlets.add(name);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!(parent.type === 'SlotTemplate' || within_custom_element(parent))) {\r\n\t\t\t\t\treturn component.error(attribute, compiler_errors.invalid_slotted_content);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Warnings\r\n\r\n\t\t\tif (this.namespace !== namespaces.foreign) {\r\n\t\t\t\tif (name === 'is') {\r\n\t\t\t\t\tcomponent.warn(attribute, compiler_warnings.avoid_is);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (react_attributes.has(attribute.name)) {\r\n\t\t\t\t\tcomponent.warn(attribute, compiler_warnings.invalid_html_attribute(attribute.name, react_attributes.get(attribute.name)));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tvalidate_attributes_a11y() {\r\n\t\tconst { component, attributes } = this;\r\n\r\n\t\tconst attribute_map = new Map<string, Attribute>();\r\n\t\tattributes.forEach(attribute => (\r\n\t\t\tattribute_map.set(attribute.name, attribute)\r\n\t\t));\r\n\r\n\t\tattributes.forEach(attribute => {\r\n\t\t\tif (attribute.is_spread) return;\r\n\r\n\t\t\tconst name = attribute.name.toLowerCase();\r\n\r\n\t\t\t// aria-props\r\n\t\t\tif (name.startsWith('aria-')) {\r\n\t\t\t\tif (invisible_elements.has(this.name)) {\r\n\t\t\t\t\t// aria-unsupported-elements\r\n\t\t\t\t\tcomponent.warn(attribute, compiler_warnings.a11y_aria_attributes(this.name));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst type = name.slice(5);\r\n\t\t\t\tif (!aria_attribute_set.has(type)) {\r\n\t\t\t\t\tconst match = fuzzymatch(type, aria_attributes);\r\n\t\t\t\t\tcomponent.warn(attribute, compiler_warnings.a11y_unknown_aria_attribute(type, match));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (name === 'aria-hidden' && /^h[1-6]$/.test(this.name)) {\r\n\t\t\t\t\tcomponent.warn(attribute, compiler_warnings.a11y_hidden(this.name));\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// aria-proptypes\r\n\t\t\t\tlet value = attribute.get_static_value();\r\n\t\t\t\tif (value === 'true') value = true;\r\n\t\t\t\tif (value === 'false') value = false;\r\n\r\n\t\t\t\tif (value !== null && value !== undefined && aria.has(name as ARIAProperty)) {\r\n\t\t\t\t\tconst schema = aria.get(name as ARIAProperty);\r\n\t\t\t\t\tif (!is_valid_aria_attribute_value(schema, value)) {\r\n\t\t\t\t\t\tcomponent.warn(attribute, compiler_warnings.a11y_incorrect_attribute_type(schema, name));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// aria-role\r\n\t\t\tif (name === 'role') {\r\n\t\t\t\tif (invisible_elements.has(this.name)) {\r\n\t\t\t\t\t// aria-unsupported-elements\r\n\t\t\t\t\tcomponent.warn(attribute, compiler_warnings.a11y_misplaced_role(this.name));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst value = attribute.get_static_value() as ARIARoleDefintionKey;\r\n\t\t\t\t\r\n\t\t\t\tif (value && aria_role_abstract_set.has(value)) {\r\n\t\t\t\t\tcomponent.warn(attribute, compiler_warnings.a11y_no_abstract_role(value));\r\n\t\t\t\t} else if (value && !aria_role_set.has(value)) {\r\n\t\t\t\t\tconst match = fuzzymatch(value, aria_roles);\r\n\t\t\t\t\tcomponent.warn(attribute, compiler_warnings.a11y_unknown_role(value, match));\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// no-redundant-roles\r\n\t\t\t\tconst has_redundant_role = value === a11y_implicit_semantics.get(this.name);\r\n\r\n\t\t\t\tif (this.name === value || has_redundant_role) {\r\n\t\t\t\t\tcomponent.warn(attribute, compiler_warnings.a11y_no_redundant_roles(value));\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Footers and headers are special cases, and should not have redundant roles unless they are the children of sections or articles.\r\n\t\t\t\tconst is_parent_section_or_article = is_parent(this.parent, ['section', 'article']);\r\n\t\t\t\tif (!is_parent_section_or_article) {\r\n\t\t\t\t\tconst has_nested_redundant_role = value === a11y_nested_implicit_semantics.get(this.name);\r\n\t\t\t\t\tif (has_nested_redundant_role) {\r\n\t\t\t\t\t\tcomponent.warn(attribute, compiler_warnings.a11y_no_redundant_roles(value));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// role-has-required-aria-props\r\n\t\t\t\tconst role = roles.get(value);\r\n\t\t\t\tif (role) {\r\n\t\t\t\t\tconst required_role_props = Object.keys(role.requiredProps);\r\n\t\t\t\t\tconst has_missing_props = required_role_props.some(prop => !attributes.find(a => a.name === prop));\r\n\r\n\t\t\t\t\tif (has_missing_props) {\r\n\t\t\t\t\t\tcomponent.warn(attribute, compiler_warnings.a11y_role_has_required_aria_props(value as string, required_role_props));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// no-interactive-element-to-noninteractive-role\r\n\t\t\t\tif (is_interactive_element(this.name, attribute_map) && (is_non_interactive_roles(value) || is_presentation_role(value))) {\r\n\t\t\t\t\tcomponent.warn(this, compiler_warnings.a11y_no_interactive_element_to_noninteractive_role(value, this.name));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// no-access-key\r\n\t\t\tif (name === 'accesskey') {\r\n\t\t\t\tcomponent.warn(attribute, compiler_warnings.a11y_accesskey);\r\n\t\t\t}\r\n\r\n\t\t\t// no-autofocus\r\n\t\t\tif (name === 'autofocus') {\r\n\t\t\t\tcomponent.warn(attribute, compiler_warnings.a11y_autofocus);\r\n\t\t\t}\r\n\r\n\t\t\t// scope\r\n\t\t\tif (name === 'scope' && this.name !== 'th') {\r\n\t\t\t\tcomponent.warn(attribute, compiler_warnings.a11y_misplaced_scope);\r\n\t\t\t}\r\n\r\n\t\t\t// tabindex-no-positive\r\n\t\t\tif (name === 'tabindex') {\r\n\t\t\t\tconst value = attribute.get_static_value();\r\n\t\t\t\t// @ts-ignore todo is tabindex=true correct case?\r\n\t\t\t\tif (!isNaN(value) && +value > 0) {\r\n\t\t\t\t\tcomponent.warn(attribute, compiler_warnings.a11y_positive_tabindex);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tvalidate_special_cases() {\r\n\t\tconst { component, attributes, handlers } = this;\r\n\r\n\t\tconst attribute_map = new Map();\r\n\t\tconst handlers_map = new Map();\r\n\r\n\t\tattributes.forEach(attribute => (\r\n\t\t\tattribute_map.set(attribute.name, attribute)\r\n\t\t));\r\n\r\n\t\thandlers.forEach(handler => (\r\n\t\t\thandlers_map.set(handler.name, handler)\r\n\t\t));\r\n\r\n\t\tif (this.name === 'a') {\r\n\t\t\tconst href_attribute = attribute_map.get('href') || attribute_map.get('xlink:href');\r\n\t\t\tconst id_attribute = attribute_map.get('id');\r\n\t\t\tconst name_attribute = attribute_map.get('name');\r\n\r\n\t\t\tif (href_attribute) {\r\n\t\t\t\tconst href_value = href_attribute.get_static_value();\r\n\r\n\t\t\t\tif (href_value === '' || href_value === '#' || /^\\W*javascript:/i.test(href_value)) {\r\n\t\t\t\t\tcomponent.warn(href_attribute, compiler_warnings.a11y_invalid_attribute(href_attribute.name, href_value));\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tconst id_attribute_valid = id_attribute && id_attribute.get_static_value() !== '';\r\n\t\t\t\tconst name_attribute_valid = name_attribute && name_attribute.get_static_value() !== '';\r\n\r\n\t\t\t\tif (!id_attribute_valid && !name_attribute_valid) {\r\n\t\t\t\t\tcomponent.warn(this, compiler_warnings.a11y_missing_attribute('a', 'an', 'href'));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tconst required_attributes = a11y_required_attributes[this.name];\r\n\t\t\tif (required_attributes) {\r\n\t\t\t\tconst has_attribute = required_attributes.some(name => attribute_map.has(name));\r\n\r\n\t\t\t\tif (!has_attribute) {\r\n\t\t\t\t\tshould_have_attribute(this, required_attributes);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.name === 'input') {\r\n\t\t\tconst type = attribute_map.get('type');\r\n\t\t\tif (type && type.get_static_value() === 'image') {\r\n\t\t\t\tconst required_attributes = ['alt', 'aria-label', 'aria-labelledby'];\r\n\t\t\t\tconst has_attribute = required_attributes.some(name => attribute_map.has(name));\r\n\r\n\t\t\t\tif (!has_attribute) {\r\n\t\t\t\t\tshould_have_attribute(this, required_attributes, 'input type=\"image\"');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.name === 'img') {\r\n\t\t\tconst alt_attribute = attribute_map.get('alt');\r\n\t\t\tconst aria_hidden_attribute = attribute_map.get('aria-hidden');\r\n\r\n\t\t\tconst aria_hidden_exist = aria_hidden_attribute && aria_hidden_attribute.get_static_value();\r\n\r\n\t\t\tif (alt_attribute && !aria_hidden_exist) {\r\n\t\t\t\tconst alt_value = alt_attribute.get_static_value();\r\n\r\n\t\t\t\tif (/\\b(image|picture|photo)\\b/i.test(alt_value)) {\r\n\t\t\t\t\tcomponent.warn(this, compiler_warnings.a11y_img_redundant_alt);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.name === 'label') {\r\n\t\t\tconst has_input_child = (children: INode[]) => {\r\n\t\t\t\tif (children.some(child => (child instanceof Element && (a11y_labelable.has(child.name) || child.name === 'slot')))) {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfor (const child of children) {\r\n\t\t\t\t\tif (!('children' in child) || child.children.length === 0) {\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (has_input_child(child.children)) {\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn false;\r\n\t\t\t};\r\n\r\n\t\t\tif (!attribute_map.has('for') && !has_input_child(this.children)) {\r\n\t\t\t\tcomponent.warn(this, compiler_warnings.a11y_label_has_associated_control);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.name === 'video') {\r\n\t\t\tif (attribute_map.has('muted')) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tlet has_caption;\r\n\t\t\tconst track = this.children.find((i: Element) => i.name === 'track');\r\n\t\t\tif (track) {\r\n\t\t\t\thas_caption = track.attributes.find(a => a.name === 'kind' && a.get_static_value() === 'captions');\r\n\t\t\t}\r\n\r\n\t\t\tif (!has_caption) {\r\n\t\t\t\tcomponent.warn(this, compiler_warnings.a11y_media_has_caption);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (a11y_distracting_elements.has(this.name)) {\r\n\t\t\t// no-distracting-elements\r\n\t\t\tcomponent.warn(this, compiler_warnings.a11y_distracting_elements(this.name));\r\n\t\t}\r\n\r\n\t\tif (this.name === 'figcaption') {\r\n\t\t\tlet { parent } = this;\r\n\t\t\tlet is_figure_parent = false;\r\n\r\n\t\t\twhile (parent) {\r\n\t\t\t\tif ((parent as Element).name === 'figure') {\r\n\t\t\t\t\tis_figure_parent = true;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\tif (parent.type === 'Element') {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\tparent = parent.parent;\r\n\t\t\t}\r\n\r\n\t\t\tif (!is_figure_parent) {\r\n\t\t\t\tcomponent.warn(this, compiler_warnings.a11y_structure_immediate);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.name === 'figure') {\r\n\t\t\tconst children = this.children.filter(node => {\r\n\t\t\t\tif (node.type === 'Comment') return false;\r\n\t\t\t\tif (node.type === 'Text') return /\\S/.test(node.data);\r\n\t\t\t\treturn true;\r\n\t\t\t});\r\n\r\n\t\t\tconst index = children.findIndex(child => (child as Element).name === 'figcaption');\r\n\r\n\t\t\tif (index !== -1 && (index !== 0 && index !== children.length - 1)) {\r\n\t\t\t\tcomponent.warn(children[index], compiler_warnings.a11y_structure_first_or_last);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (handlers_map.has('mouseover') && !handlers_map.has('focus')) {\r\n\t\t\tcomponent.warn(this, compiler_warnings.a11y_mouse_events_have_key_events('mouseover', 'focus'));\r\n\t\t}\r\n\r\n\t\tif (handlers_map.has('mouseout') && !handlers_map.has('blur')) {\r\n\t\t\tcomponent.warn(this, compiler_warnings.a11y_mouse_events_have_key_events('mouseout', 'blur'));\r\n\t\t}\r\n\t}\r\n\r\n\tvalidate_bindings_foreign() {\r\n\t\tthis.bindings.forEach(binding => {\r\n\t\t\tif (binding.name !== 'this') {\r\n\t\t\t\treturn this.component.error(binding, compiler_errors.invalid_binding_foreign(binding.name));\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tvalidate_bindings() {\r\n\t\tconst { component } = this;\r\n\r\n\t\tconst check_type_attribute = () => {\r\n\t\t\tconst attribute = this.attributes.find(\r\n\t\t\t\t(attribute: Attribute) => attribute.name === 'type'\r\n\t\t\t);\r\n\r\n\t\t\tif (!attribute) return null;\r\n\r\n\t\t\tif (!attribute.is_static) {\r\n\t\t\t\treturn component.error(attribute, compiler_errors.invalid_type);\r\n\t\t\t}\r\n\r\n\t\t\tconst value = attribute.get_static_value();\r\n\r\n\t\t\tif (value === true) {\r\n\t\t\t\treturn component.error(attribute, compiler_errors.missing_type);\r\n\t\t\t}\r\n\r\n\t\t\treturn value;\r\n\t\t};\r\n\r\n\t\tthis.bindings.forEach(binding => {\r\n\t\t\tconst { name } = binding;\r\n\r\n\t\t\tif (name === 'value') {\r\n\t\t\t\tif (\r\n\t\t\t\t\tthis.name !== 'input' &&\r\n\t\t\t\t\tthis.name !== 'textarea' &&\r\n\t\t\t\t\tthis.name !== 'select'\r\n\t\t\t\t) {\r\n\t\t\t\t\treturn component.error(binding, compiler_errors.invalid_binding_elements(this.name, 'value'));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.name === 'select') {\r\n\t\t\t\t\tconst attribute = this.attributes.find(\r\n\t\t\t\t\t\t(attribute: Attribute) => attribute.name === 'multiple'\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t\tif (attribute && !attribute.is_static) {\r\n\t\t\t\t\t\treturn component.error(attribute, compiler_errors.dynamic_multiple_attribute);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcheck_type_attribute();\r\n\t\t\t\t}\r\n\t\t\t} else if (name === 'checked' || name === 'indeterminate') {\r\n\t\t\t\tif (this.name !== 'input') {\r\n\t\t\t\t\treturn component.error(binding, compiler_errors.invalid_binding_elements(this.name, name));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst type = check_type_attribute();\r\n\r\n\t\t\t\tif (type !== 'checkbox') {\r\n\t\t\t\t\treturn component.error(binding, compiler_errors.invalid_binding_no_checkbox(name, type === 'radio'));\r\n\t\t\t\t}\r\n\t\t\t} else if (name === 'group') {\r\n\t\t\t\tif (this.name !== 'input') {\r\n\t\t\t\t\treturn component.error(binding, compiler_errors.invalid_binding_elements(this.name, 'group'));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst type = check_type_attribute();\r\n\r\n\t\t\t\tif (type !== 'checkbox' && type !== 'radio') {\r\n\t\t\t\t\treturn component.error(binding, compiler_errors.invalid_binding_element_with('<input type=\"checkbox\"> or <input type=\"radio\">', 'group'));\r\n\t\t\t\t}\r\n\t\t\t} else if (name === 'files') {\r\n\t\t\t\tif (this.name !== 'input') {\r\n\t\t\t\t\treturn component.error(binding, compiler_errors.invalid_binding_elements(this.name, 'files'));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst type = check_type_attribute();\r\n\r\n\t\t\t\tif (type !== 'file') {\r\n\t\t\t\t\treturn component.error(binding, compiler_errors.invalid_binding_element_with('<input type=\"file\">', 'files'));\r\n\t\t\t\t}\r\n\r\n\t\t\t} else if (name === 'open') {\r\n\t\t\t\tif (this.name !== 'details') {\r\n\t\t\t\t\treturn component.error(binding, compiler_errors.invalid_binding_element_with('<details>', name));\r\n\t\t\t\t}\r\n\t\t\t} else if (\r\n\t\t\t\tname === 'currentTime' ||\r\n\t\t\t\tname === 'duration' ||\r\n\t\t\t\tname === 'paused' ||\r\n\t\t\t\tname === 'buffered' ||\r\n\t\t\t\tname === 'seekable' ||\r\n\t\t\t\tname === 'played' ||\r\n\t\t\t\tname === 'volume' ||\r\n\t\t\t\tname === 'muted' ||\r\n\t\t\t\tname === 'playbackRate' ||\r\n\t\t\t\tname === 'seeking' ||\r\n\t\t\t\tname === 'ended'\r\n\t\t\t) {\r\n\t\t\t\tif (this.name !== 'audio' && this.name !== 'video') {\r\n\t\t\t\t\treturn component.error(binding, compiler_errors.invalid_binding_element_with('audio> or <video>', name));\r\n\t\t\t\t}\r\n\t\t\t} else if (\r\n\t\t\t\tname === 'videoHeight' ||\r\n\t\t\t\tname === 'videoWidth'\r\n\t\t\t) {\r\n\t\t\t\tif (this.name !== 'video') {\r\n\t\t\t\t\treturn component.error(binding, compiler_errors.invalid_binding_element_with('<video>', name));\r\n\t\t\t\t}\r\n\t\t\t} else if (dimensions.test(name)) {\r\n\t\t\t\tif (this.name === 'svg' && (name === 'offsetWidth' || name === 'offsetHeight')) {\r\n\t\t\t\t\treturn component.error(binding, compiler_errors.invalid_binding_on(binding.name, `<svg>. Use '${name.replace('offset', 'client')}' instead`));\r\n\t\t\t\t} else if (svg.test(this.name)) {\r\n\t\t\t\t\treturn component.error(binding, compiler_errors.invalid_binding_on(binding.name, 'SVG elements'));\r\n\t\t\t\t} else if (is_void(this.name)) {\r\n\t\t\t\t\treturn component.error(binding, compiler_errors.invalid_binding_on(binding.name, `void elements like <${this.name}>. Use a wrapper element instead`));\r\n\t\t\t\t}\r\n\t\t\t} else if (\r\n\t\t\t\tname === 'textContent' ||\r\n\t\t\t\tname === 'innerHTML'\r\n\t\t\t) {\r\n\t\t\t\tconst contenteditable = this.attributes.find(\r\n\t\t\t\t\t(attribute: Attribute) => attribute.name === 'contenteditable'\r\n\t\t\t\t);\r\n\r\n\t\t\t\tif (!contenteditable) {\r\n\t\t\t\t\treturn component.error(binding, compiler_errors.missing_contenteditable_attribute);\r\n\t\t\t\t} else if (contenteditable && !contenteditable.is_static) {\r\n\t\t\t\t\treturn component.error(contenteditable, compiler_errors.dynamic_contenteditable_attribute);\r\n\t\t\t\t}\r\n\t\t\t} else if (name !== 'this') {\r\n\t\t\t\treturn component.error(binding, compiler_errors.invalid_binding(binding.name));\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tvalidate_content() {\r\n\t\tif (!a11y_required_content.has(this.name)) return;\r\n\t\tif (\r\n\t\t\tthis.bindings\r\n\t\t\t\t.some((binding) => ['textContent', 'innerHTML'].includes(binding.name))\r\n\t\t) return;\r\n\r\n\t\tif (this.children.length === 0) {\r\n\t\t\tthis.component.warn(this, compiler_warnings.a11y_missing_content(this.name));\r\n\t\t}\r\n\t}\r\n\r\n\tvalidate_event_handlers() {\r\n\t\tconst { component } = this;\r\n\r\n\t\tthis.handlers.forEach(handler => {\r\n\t\t\tif (handler.modifiers.has('passive') && handler.modifiers.has('preventDefault')) {\r\n\t\t\t\treturn component.error(handler, compiler_errors.invalid_event_modifier_combination('passive', 'preventDefault'));\r\n\t\t\t}\r\n\r\n\t\t\tif (handler.modifiers.has('passive') && handler.modifiers.has('nonpassive')) {\r\n\t\t\t\treturn component.error(handler, compiler_errors.invalid_event_modifier_combination('passive', 'nonpassive'));\r\n\t\t\t}\r\n\r\n\t\t\thandler.modifiers.forEach(modifier => {\r\n\t\t\t\tif (!valid_modifiers.has(modifier)) {\r\n\t\t\t\t\treturn component.error(handler, compiler_errors.invalid_event_modifier(list(Array.from(valid_modifiers))));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (modifier === 'passive') {\r\n\t\t\t\t\tif (passive_events.has(handler.name)) {\r\n\t\t\t\t\t\tif (handler.can_make_passive) {\r\n\t\t\t\t\t\t\tcomponent.warn(handler, compiler_warnings.redundant_event_modifier_for_touch);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tcomponent.warn(handler, compiler_warnings.redundant_event_modifier_passive);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (component.compile_options.legacy && (modifier === 'once' || modifier === 'passive')) {\r\n\t\t\t\t\t// TODO this could be supported, but it would need a few changes to\r\n\t\t\t\t\t// how event listeners work\r\n\t\t\t\t\treturn component.error(handler, compiler_errors.invalid_event_modifier_legacy(modifier));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif (passive_events.has(handler.name) && handler.can_make_passive && !handler.modifiers.has('preventDefault') && !handler.modifiers.has('nonpassive')) {\r\n\t\t\t\t// touch/wheel events should be passive by default\r\n\t\t\t\thandler.modifiers.add('passive');\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tis_media_node() {\r\n\t\treturn this.name === 'audio' || this.name === 'video';\r\n\t}\r\n\r\n\tadd_css_class() {\r\n\t\tif (this.attributes.some(attr => attr.is_spread)) {\r\n\t\t\tthis.needs_manual_style_scoping = true;\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst { id } = this.component.stylesheet;\r\n\r\n\t\tconst class_attribute = this.attributes.find(a => a.name === 'class');\r\n\r\n\t\tif (class_attribute && !class_attribute.is_true) {\r\n\t\t\tif (class_attribute.chunks.length === 1 && class_attribute.chunks[0].type === 'Text') {\r\n\t\t\t\t(class_attribute.chunks[0] as Text).data += ` ${id}`;\r\n\t\t\t} else {\r\n\t\t\t\t(class_attribute.chunks as Node[]).push(\r\n\t\t\t\t\tnew Text(this.component, this, this.scope, {\r\n\t\t\t\t\t\ttype: 'Text',\r\n\t\t\t\t\t\tdata: ` ${id}`,\r\n\t\t\t\t\t\tsynthetic: true\r\n\t\t\t\t\t} as any)\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.attributes.push(\r\n\t\t\t\tnew Attribute(this.component, this, this.scope, {\r\n\t\t\t\t\ttype: 'Attribute',\r\n\t\t\t\t\tname: 'class',\r\n\t\t\t\t\tvalue: [{ type: 'Text', data: id, synthetic: true }]\r\n\t\t\t\t} as any)\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\tget slot_template_name() {\r\n\t\treturn this.attributes.find(attribute => attribute.name === 'slot').get_static_value() as string;\r\n\t}\r\n\r\n\toptimise() {\r\n\t\tattributes_to_compact_whitespace.forEach(attribute_name => {\r\n\t\t\tconst attribute = this.attributes.find(a => a.name === attribute_name);\r\n\t\t\tif (attribute && !attribute.is_true) {\r\n\t\t\t\tattribute.chunks.forEach((chunk, index) => {\r\n\t\t\t\t\tif (chunk.type === 'Text') {\r\n\t\t\t\t\t\tlet data = chunk.data.replace(/[\\s\\n\\t]+/g, ' ');\r\n\t\t\t\t\t\tif (index === 0) {\r\n\t\t\t\t\t\t\tdata = data.trimLeft();\r\n\t\t\t\t\t\t} else if (index === attribute.chunks.length - 1) {\r\n\t\t\t\t\t\t\tdata = data.trimRight();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tchunk.data = data;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n\r\nfunction should_have_attribute(\r\n\tnode,\r\n\tattributes: string[],\r\n\tname = node.name\r\n) {\r\n\tconst article = /^[aeiou]/.test(attributes[0]) ? 'an' : 'a';\r\n\tconst sequence = attributes.length > 1 ?\r\n\t\tattributes.slice(0, -1).join(', ') + ` or ${attributes[attributes.length - 1]}` :\r\n\t\tattributes[0];\r\n\r\n\tnode.component.warn(node, compiler_warnings.a11y_missing_attribute(name, article, sequence));\r\n}\r\n\r\nfunction within_custom_element(parent: INode) {\r\n\twhile (parent) {\r\n\t\tif (parent.type === 'InlineComponent') return false;\r\n\t\tif (parent.type === 'Element' && /-/.test(parent.name)) return true;\r\n\t\tparent = parent.parent;\r\n\t}\r\n\treturn false;\r\n}\r\n","// https://github.com/darkskyapp/string-hash/blob/master/index.js\r\nexport default function hash(str: string): string {\r\n\tstr = str.replace(/\\r/g, '');\r\n\tlet hash = 5381;\r\n\tlet i = str.length;\r\n\r\n\twhile (i--) hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\r\n\treturn (hash >>> 0).toString(36);\r\n}\r\n","import Node from './shared/Node';\r\nimport map_children from './shared/map_children';\r\nimport hash from '../utils/hash';\r\nimport Component from '../Component';\r\nimport TemplateScope from './shared/TemplateScope';\r\nimport { TemplateNode } from '../../interfaces';\r\nimport compiler_errors from '../compiler_errors';\r\n\r\nexport default class Head extends Node {\r\n\ttype: 'Head';\r\n\tchildren: any[]; // TODO\r\n\tid: string;\r\n\r\n\tconstructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode) {\r\n\t\tsuper(component, parent, scope, info);\r\n\r\n\t\tif (info.attributes.length) {\r\n\t\t\tcomponent.error(info.attributes[0], compiler_errors.invalid_attribute_head);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.children = map_children(component, parent, scope, info.children.filter(child => {\r\n\t\t\treturn (child.type !== 'Text' || /\\S/.test(child.data));\r\n\t\t}));\r\n\r\n\t\tif (this.children.length > 0) {\r\n\t\t\tthis.id = `svelte-${hash(this.component.source.slice(this.start, this.end))}`;\r\n\t\t}\r\n\t}\r\n}\r\n","import ElseBlock from './ElseBlock';\r\nimport Expression from './shared/Expression';\r\nimport AbstractBlock from './shared/AbstractBlock';\r\nimport Component from '../Component';\r\nimport TemplateScope from './shared/TemplateScope';\r\nimport { TemplateNode } from '../../interfaces';\r\nimport Node from './shared/Node';\r\nimport ConstTag from './ConstTag';\r\nimport get_const_tags from './shared/get_const_tags';\r\n\r\nexport default class IfBlock extends AbstractBlock {\r\n\ttype: 'IfBlock';\r\n\texpression: Expression;\r\n\telse: ElseBlock;\r\n\tscope: TemplateScope;\r\n\tconst_tags: ConstTag[];\r\n\r\n\tconstructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode) {\r\n\t\tsuper(component, parent, scope, info);\r\n\t\tthis.scope = scope.child();\r\n\r\n\t\tthis.expression = new Expression(component, this, this.scope, info.expression);\r\n\t\t([this.const_tags, this.children] = get_const_tags(info.children, component, this, this));\r\n\r\n\t\tthis.else = info.else\r\n\t\t\t? new ElseBlock(component, this, scope, info.else)\r\n\t\t\t: null;\r\n\r\n\t\tthis.warn_if_empty_block();\r\n\t}\r\n}\r\n","import Node from './shared/Node';\r\nimport Attribute from './Attribute';\r\nimport map_children from './shared/map_children';\r\nimport Binding from './Binding';\r\nimport EventHandler from './EventHandler';\r\nimport Expression from './shared/Expression';\r\nimport Component from '../Component';\r\nimport Let from './Let';\r\nimport TemplateScope from './shared/TemplateScope';\r\nimport { INode } from './interfaces';\r\nimport { TemplateNode } from '../../interfaces';\r\nimport compiler_errors from '../compiler_errors';\r\n\r\nexport default class InlineComponent extends Node {\r\n\ttype: 'InlineComponent';\r\n\tname: string;\r\n\texpression: Expression;\r\n\tattributes: Attribute[] = [];\r\n\tbindings: Binding[] = [];\r\n\thandlers: EventHandler[] = [];\r\n\tlets: Let[] = [];\r\n\tcss_custom_properties: Attribute[] = [];\r\n\tchildren: INode[];\r\n\tscope: TemplateScope;\r\n\r\n\tconstructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode) {\r\n\t\tsuper(component, parent, scope, info);\r\n\r\n\t\tif (info.name !== 'svelte:component' && info.name !== 'svelte:self') {\r\n\t\t\tconst name = info.name.split('.')[0]; // accommodate namespaces\r\n\t\t\tcomponent.warn_if_undefined(name, info, scope);\r\n\t\t\tcomponent.add_reference(this as any, name);\r\n\t\t}\r\n\r\n\t\tthis.name = info.name;\r\n\r\n\t\tthis.expression = this.name === 'svelte:component'\r\n\t\t\t? new Expression(component, this, scope, info.expression)\r\n\t\t\t: null;\r\n\r\n\t\tinfo.attributes.forEach(node => {\r\n\t\t\t/* eslint-disable no-fallthrough */\r\n\t\t\tswitch (node.type) {\r\n\t\t\t\tcase 'Action':\r\n\t\t\t\t\treturn component.error(node, compiler_errors.invalid_action);\r\n\r\n\t\t\t\tcase 'Attribute':\r\n\t\t\t\t\tif (node.name.startsWith('--')) {\r\n\t\t\t\t\t\tthis.css_custom_properties.push(new Attribute(component, this, scope, node));\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// fallthrough\r\n\t\t\t\tcase 'Spread':\r\n\t\t\t\t\tthis.attributes.push(new Attribute(component, this, scope, node));\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'Binding':\r\n\t\t\t\t\tthis.bindings.push(new Binding(component, this, scope, node));\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'Class':\r\n\t\t\t\t\treturn component.error(node, compiler_errors.invalid_class);\r\n\r\n\t\t\t\tcase 'EventHandler':\r\n\t\t\t\t\tthis.handlers.push(new EventHandler(component, this, scope, node));\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'Let':\r\n\t\t\t\t\tthis.lets.push(new Let(component, this, scope, node));\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'Transition':\r\n\t\t\t\t\treturn component.error(node, compiler_errors.invalid_transition);\r\n\t\t\t\t\r\n\t\t\t\tcase 'StyleDirective':\r\n\t\t\t\t\treturn component.error(node, compiler_errors.invalid_component_style_directive);\r\n\t\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tthrow new Error(`Not implemented: ${node.type}`);\r\n\t\t\t}\r\n\t\t\t/* eslint-enable no-fallthrough */\r\n\t\t});\r\n\r\n\t\tif (this.lets.length > 0) {\r\n\t\t\tthis.scope = scope.child();\r\n\r\n\t\t\tthis.lets.forEach(l => {\r\n\t\t\t\tconst dependencies = new Set([l.name.name]);\r\n\r\n\t\t\t\tl.names.forEach(name => {\r\n\t\t\t\t\tthis.scope.add(name, dependencies, this);\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.scope = scope;\r\n\t\t}\r\n\r\n\t\tthis.handlers.forEach(handler => {\r\n\t\t\thandler.modifiers.forEach(modifier => {\r\n\t\t\t\tif (modifier !== 'once') {\r\n\t\t\t\t\treturn component.error(handler, compiler_errors.invalid_event_modifier_component);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tconst children = [];\r\n\t\tfor (let i = info.children.length - 1; i >= 0; i--) {\r\n\t\t\tconst child = info.children[i];\r\n\t\t\tif (child.type === 'SlotTemplate') {\r\n\t\t\t\tchildren.push(child);\r\n\t\t\t\tinfo.children.splice(i, 1);\r\n\t\t\t} else if ((child.type === 'Element' || child.type === 'InlineComponent' || child.type === 'Slot') && child.attributes.find(attribute => attribute.name === 'slot')) {\r\n\t\t\t\tconst slot_template = {\r\n\t\t\t\t\tstart: child.start,\r\n\t\t\t\t\tend: child.end,\r\n\t\t\t\t\ttype: 'SlotTemplate',\r\n\t\t\t\t\tname: 'svelte:fragment',\r\n\t\t\t\t\tattributes: [],\r\n\t\t\t\t\tchildren: [child]\r\n\t\t\t\t};\r\n\r\n\t\t\t\t// transfer attributes\r\n\t\t\t\tfor (let i = child.attributes.length - 1; i >= 0; i--) {\r\n\t\t\t\t\tconst attribute = child.attributes[i];\r\n\t\t\t\t\tif (attribute.type === 'Let') {\r\n\t\t\t\t\t\tslot_template.attributes.push(attribute);\r\n\t\t\t\t\t\tchild.attributes.splice(i, 1);\r\n\t\t\t\t\t} else if (attribute.type === 'Attribute' && attribute.name === 'slot') {\r\n\t\t\t\t\t\tslot_template.attributes.push(attribute);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t// transfer const\r\n\t\t\t\tfor (let i = child.children.length - 1; i >= 0; i--) {\r\n\t\t\t\t\tconst child_child = child.children[i];\r\n\t\t\t\t\tif (child_child.type === 'ConstTag') {\r\n\t\t\t\t\t\tslot_template.children.push(child_child);\r\n\t\t\t\t\t\tchild.children.splice(i, 1);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tchildren.push(slot_template);\r\n\t\t\t\tinfo.children.splice(i, 1);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (info.children.some(node => not_whitespace_text(node))) {\r\n\t\t\tchildren.push({\r\n\t\t\t\tstart: info.start,\r\n\t\t\t\tend: info.end,\r\n\t\t\t\ttype: 'SlotTemplate',\r\n\t\t\t\tname: 'svelte:fragment',\r\n\t\t\t\tattributes: [],\r\n\t\t\t\tchildren: info.children\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis.children = map_children(component, this, this.scope, children);\r\n\t}\r\n\r\n\tget slot_template_name() {\r\n\t\treturn this.attributes.find(attribute => attribute.name === 'slot').get_static_value() as string;\r\n\t}\r\n}\r\n\r\nfunction not_whitespace_text(node) {\r\n\treturn !(node.type === 'Text' && /^\\s+$/.test(node.data));\r\n}\r\n","import Expression from './shared/Expression';\r\nimport map_children from './shared/map_children';\r\nimport AbstractBlock from './shared/AbstractBlock';\r\nimport Component from '../Component';\r\nimport TemplateScope from './shared/TemplateScope';\r\nimport { TemplateNode } from '../../interfaces';\r\nimport Node from './shared/Node';\r\n\r\nexport default class KeyBlock extends AbstractBlock {\r\n\ttype: 'KeyBlock';\r\n\r\n\texpression: Expression;\r\n\r\n\tconstructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode) {\r\n\t\tsuper(component, parent, scope, info);\r\n\r\n\t\tthis.expression = new Expression(component, this, scope, info.expression);\r\n\r\n\t\tthis.children = map_children(component, this, scope, info.children);\r\n\r\n\t\tthis.warn_if_empty_block();\r\n\t}\r\n}\r\n","import Node from './Node';\r\nimport Expression from './Expression';\r\n\r\nexport default class Tag extends Node {\r\n\ttype: 'MustacheTag' | 'RawMustacheTag';\r\n\texpression: Expression;\r\n\tshould_cache: boolean;\r\n\r\n\tconstructor(component, parent, scope, info) {\r\n\t\tsuper(component, parent, scope, info);\r\n\t\tthis.expression = new Expression(component, this, scope, info.expression);\r\n\r\n\t\tthis.should_cache = (\r\n\t\t\tinfo.expression.type !== 'Identifier' ||\r\n\t\t\t(this.expression.dependencies.size && scope.names.has(info.expression.name))\r\n\t\t);\r\n\t}\r\n}\r\n","import Tag from './shared/Tag';\r\n\r\nexport default class MustacheTag extends Tag {\r\n\ttype: 'MustacheTag';\r\n}\r\n","import Node from './shared/Node';\r\n\r\nexport default class Options extends Node {\r\n\ttype: 'Options';\r\n}\r\n","import Tag from './shared/Tag';\r\n\r\nexport default class RawMustacheTag extends Tag {\r\n\ttype: 'RawMustacheTag';\r\n}\r\n","import Node from './shared/Node';\r\nimport Expression from './shared/Expression';\r\nimport Component from '../Component';\r\nimport TemplateScope from './shared/TemplateScope';\r\nimport { TemplateNode } from '../../interfaces';\r\nimport { INode } from './interfaces';\r\nimport { Node as EsTreeNode } from 'estree';\r\n\r\nexport default class DebugTag extends Node {\r\n\ttype: 'DebugTag';\r\n\texpressions: Expression[];\r\n\r\n\tconstructor(component: Component, parent: INode, scope: TemplateScope, info: TemplateNode) {\r\n\t\tsuper(component, parent, scope, info);\r\n\r\n\t\tthis.expressions = info.identifiers.map((node: EsTreeNode) => {\r\n\t\t\treturn new Expression(component, parent, scope, node);\r\n\t\t});\r\n\t}\r\n}\r\n","import Element from './Element';\r\nimport Attribute from './Attribute';\r\nimport Component from '../Component';\r\nimport TemplateScope from './shared/TemplateScope';\r\nimport { INode } from './interfaces';\r\nimport { TemplateNode } from '../../interfaces';\r\nimport compiler_errors from '../compiler_errors';\r\n\r\nexport default class Slot extends Element {\r\n\ttype: 'Element';\r\n\tname: string;\r\n\tchildren: INode[];\r\n\tslot_name: string;\r\n\tvalues: Map<string, Attribute> = new Map();\r\n\r\n\tconstructor(component: Component, parent: INode, scope: TemplateScope, info: TemplateNode) {\r\n\t\tsuper(component, parent, scope, info);\r\n\r\n\t\tinfo.attributes.forEach(attr => {\r\n\t\t\tif (attr.type !== 'Attribute' && attr.type !== 'Spread') {\r\n\t\t\t\treturn component.error(attr, compiler_errors.invalid_slot_directive);\r\n\t\t\t}\r\n\r\n\t\t\tif (attr.name === 'name') {\r\n\t\t\t\tif (attr.value.length !== 1 || attr.value[0].type !== 'Text') {\r\n\t\t\t\t\treturn component.error(attr, compiler_errors.dynamic_slot_name);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.slot_name = attr.value[0].data;\r\n\t\t\t\tif (this.slot_name === 'default') {\r\n\t\t\t\t\treturn component.error(attr, compiler_errors.invalid_slot_name);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.values.set(attr.name, new Attribute(component, this, scope, attr));\r\n\t\t});\r\n\r\n\t\tif (!this.slot_name) this.slot_name = 'default';\r\n\r\n\t\tif (this.slot_name === 'default') {\r\n\t\t\t// if this is the default slot, add our dependencies to any\r\n\t\t\t// other slots (which inherit our slot values) that were\r\n\t\t\t// previously encountered\r\n\t\t\tcomponent.slots.forEach((slot) => {\r\n\t\t\t\tthis.values.forEach((attribute, name) => {\r\n\t\t\t\t\tif (!slot.values.has(name)) {\r\n\t\t\t\t\t\tslot.values.set(name, attribute);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t} else if (component.slots.has('default')) {\r\n\t\t\t// otherwise, go the other way — inherit values from\r\n\t\t\t// a previously encountered default slot\r\n\t\t\tconst default_slot = component.slots.get('default');\r\n\t\t\tdefault_slot.values.forEach((attribute, name) => {\r\n\t\t\t\tif (!this.values.has(name)) {\r\n\t\t\t\t\tthis.values.set(name, attribute);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tcomponent.slots.set(this.slot_name, this);\r\n\t}\r\n}\r\n","import Component from '../Component';\r\nimport TemplateScope from './shared/TemplateScope';\r\nimport Node from './shared/Node';\r\nimport Let from './Let';\r\nimport Attribute from './Attribute';\r\nimport { INode } from './interfaces';\r\nimport compiler_errors from '../compiler_errors';\r\nimport get_const_tags from './shared/get_const_tags';\r\nimport ConstTag from './ConstTag';\r\n\r\nexport default class SlotTemplate extends Node {\r\n\ttype: 'SlotTemplate';\r\n\tscope: TemplateScope;\r\n\tchildren: INode[];\r\n\tlets: Let[] = [];\r\n\tconst_tags: ConstTag[];\r\n\tslot_attribute: Attribute;\r\n\tslot_template_name: string = 'default';\r\n\r\n\tconstructor(\r\n\t\tcomponent: Component,\r\n\t\tparent: INode,\r\n\t\tscope: TemplateScope,\r\n\t\tinfo: any\r\n\t) {\r\n\t\tsuper(component, parent, scope, info);\r\n\r\n\t\tthis.validate_slot_template_placement();\r\n\r\n\t\tscope = scope.child();\r\n\r\n\t\tinfo.attributes.forEach((node) => {\r\n\t\t\tswitch (node.type) {\r\n\t\t\t\tcase 'Let': {\r\n\t\t\t\t\tconst l = new Let(component, this, scope, node);\r\n\t\t\t\t\tthis.lets.push(l);\r\n\t\t\t\t\tconst dependencies = new Set([l.name.name]);\r\n\r\n\t\t\t\t\tl.names.forEach((name) => {\r\n\t\t\t\t\t\tscope.add(name, dependencies, this);\r\n\t\t\t\t\t});\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\tcase 'Attribute': {\r\n\t\t\t\t\tif (node.name === 'slot') {\r\n\t\t\t\t\t\tthis.slot_attribute = new Attribute(component, this, scope, node);\r\n\t\t\t\t\t\tif (!this.slot_attribute.is_static) {\r\n\t\t\t\t\t\t\treturn component.error(node, compiler_errors.invalid_slot_attribute);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tconst value = this.slot_attribute.get_static_value();\r\n\t\t\t\t\t\tif (typeof value === 'boolean') {\r\n\t\t\t\t\t\t\treturn component.error(node, compiler_errors.invalid_slot_attribute_value_missing);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthis.slot_template_name = value as string;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthrow new Error(`Invalid attribute '${node.name}' in <svelte:fragment>`);\r\n\t\t\t\t}\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tthrow new Error(`Not implemented: ${node.type}`);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.scope = scope;\r\n\t\t([this.const_tags, this.children] = get_const_tags(info.children, component, this, this));\r\n\t}\r\n\r\n\tvalidate_slot_template_placement() {\r\n\t\tif (this.parent.type !== 'InlineComponent') {\r\n\t\t\treturn this.component.error(this, compiler_errors.invalid_slotted_content_fragment);\r\n\t\t}\r\n\t}\r\n}\r\n","import Node from './shared/Node';\r\nimport map_children, { Children } from './shared/map_children';\r\nimport Component from '../Component';\r\nimport TemplateScope from './shared/TemplateScope';\r\nimport { TemplateNode } from '../../interfaces';\r\nimport compiler_errors from '../compiler_errors';\r\n\r\nexport default class Title extends Node {\r\n\ttype: 'Title';\r\n\tchildren: Children;\r\n\tshould_cache: boolean;\r\n\r\n\tconstructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode) {\r\n\t\tsuper(component, parent, scope, info);\r\n\t\tthis.children = map_children(component, parent, scope, info.children);\r\n\r\n\t\tif (info.attributes.length > 0) {\r\n\t\t\tcomponent.error(info.attributes[0], compiler_errors.illegal_attribute_title);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tinfo.children.forEach(child => {\r\n\t\t\tif (child.type !== 'Text' && child.type !== 'MustacheTag') {\r\n\t\t\t\treturn component.error(child, compiler_errors.illegal_structure_title);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.should_cache = info.children.length === 1\r\n\t\t\t? (\r\n\t\t\t\tinfo.children[0].type !== 'Identifier' ||\r\n\t\t\t\tscope.names.has(info.children[0].name)\r\n\t\t\t)\r\n\t\t\t: true;\r\n\t}\r\n}\r\n","import Node from './shared/Node';\r\nimport Binding from './Binding';\r\nimport EventHandler from './EventHandler';\r\nimport flatten_reference from '../utils/flatten_reference';\r\nimport fuzzymatch from '../../utils/fuzzymatch';\r\nimport list from '../../utils/list';\r\nimport Action from './Action';\r\nimport Component from '../Component';\r\nimport TemplateScope from './shared/TemplateScope';\r\nimport { TemplateNode } from '../../interfaces';\r\nimport compiler_errors from '../compiler_errors';\r\n\r\nconst valid_bindings = [\r\n\t'innerWidth',\r\n\t'innerHeight',\r\n\t'outerWidth',\r\n\t'outerHeight',\r\n\t'scrollX',\r\n\t'scrollY',\r\n\t'online'\r\n];\r\n\r\nexport default class Window extends Node {\r\n\ttype: 'Window';\r\n\thandlers: EventHandler[] = [];\r\n\tbindings: Binding[] = [];\r\n\tactions: Action[] = [];\r\n\r\n\tconstructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode) {\r\n\t\tsuper(component, parent, scope, info);\r\n\r\n\t\tinfo.attributes.forEach(node => {\r\n\t\t\tif (node.type === 'EventHandler') {\r\n\t\t\t\tthis.handlers.push(new EventHandler(component, this, scope, node));\r\n\t\t\t} else if (node.type === 'Binding') {\r\n\t\t\t\tif (node.expression.type !== 'Identifier') {\r\n\t\t\t\t\tconst { parts } = flatten_reference(node.expression);\r\n\r\n\t\t\t\t\t// TODO is this constraint necessary?\r\n\t\t\t\t\treturn component.error(node.expression, compiler_errors.invalid_binding_window(parts));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!~valid_bindings.indexOf(node.name)) {\r\n\t\t\t\t\tconst match = (\r\n\t\t\t\t\t\tnode.name === 'width' ? 'innerWidth' :\r\n\t\t\t\t\t\t\tnode.name === 'height' ? 'innerHeight' :\r\n\t\t\t\t\t\t\t\tfuzzymatch(node.name, valid_bindings)\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t\tif (match) {\r\n\t\t\t\t\t\treturn component.error(node, compiler_errors.invalid_binding_on(node.name, '<svelte:window>', ` (did you mean '${match}'?)`));\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn component.error(node, compiler_errors.invalid_binding_on(node.name, '<svelte:window>', ` — valid bindings are ${list(valid_bindings)}`));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.bindings.push(new Binding(component, this, scope, node));\r\n\t\t\t} else if (node.type === 'Action') {\r\n\t\t\t\tthis.actions.push(new Action(component, this, scope, node));\r\n\t\t\t} else {\r\n\t\t\t\t// TODO there shouldn't be anything else here...\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n","/**\r\n * Pushes all `items` into `array` using `push`, therefore mutating the array.\r\n * We do this for memory and perf reasons, and because `array.push(...items)` would\r\n * run into a \"max call stack size exceeded\" error with too many items (~65k).\r\n * @param array \r\n * @param items \r\n */\r\nexport function push_array<T>(array: T[], items: T[]): void {\r\n\tfor (let i = 0; i < items.length; i++) {\r\n\t\tarray.push(items[i]);\r\n\t}\r\n}\r\n","import AwaitBlock from '../AwaitBlock';\r\nimport Body from '../Body';\r\nimport ConstTag from '../ConstTag';\r\nimport Comment from '../Comment';\r\nimport EachBlock from '../EachBlock';\r\nimport Element from '../Element';\r\nimport Head from '../Head';\r\nimport IfBlock from '../IfBlock';\r\nimport InlineComponent from '../InlineComponent';\r\nimport KeyBlock from '../KeyBlock';\r\nimport MustacheTag from '../MustacheTag';\r\nimport Options from '../Options';\r\nimport RawMustacheTag from '../RawMustacheTag';\r\nimport DebugTag from '../DebugTag';\r\nimport Slot from '../Slot';\r\nimport SlotTemplate from '../SlotTemplate';\r\nimport Text from '../Text';\r\nimport Title from '../Title';\r\nimport Window from '../Window';\r\nimport { TemplateNode } from '../../../interfaces';\r\nimport { push_array } from '../../../utils/push_array';\r\n\r\nexport type Children = ReturnType<typeof map_children>;\r\n\r\nfunction get_constructor(type) {\r\n\tswitch (type) {\r\n\t\tcase 'AwaitBlock': return AwaitBlock;\r\n\t\tcase 'Body': return Body;\r\n\t\tcase 'Comment': return Comment;\r\n\t\tcase 'ConstTag': return ConstTag;\r\n\t\tcase 'EachBlock': return EachBlock;\r\n\t\tcase 'Element': return Element;\r\n\t\tcase 'Head': return Head;\r\n\t\tcase 'IfBlock': return IfBlock;\r\n\t\tcase 'InlineComponent': return InlineComponent;\r\n\t\tcase 'KeyBlock': return KeyBlock;\r\n\t\tcase 'MustacheTag': return MustacheTag;\r\n\t\tcase 'Options': return Options;\r\n\t\tcase 'RawMustacheTag': return RawMustacheTag;\r\n\t\tcase 'DebugTag': return DebugTag;\r\n\t\tcase 'Slot': return Slot;\r\n\t\tcase 'SlotTemplate': return SlotTemplate;\r\n\t\tcase 'Text': return Text;\r\n\t\tcase 'Title': return Title;\r\n\t\tcase 'Window': return Window;\r\n\t\tdefault: throw new Error(`Not implemented: ${type}`);\r\n\t}\r\n}\r\n\r\nexport default function map_children(component, parent, scope, children: TemplateNode[]) {\r\n\tlet last = null;\r\n\tlet ignores = [];\r\n\r\n\treturn children.map(child => {\r\n\t\tconst constructor = get_constructor(child.type);\r\n\r\n\t\tconst use_ignores = child.type !== 'Text' && child.type !== 'Comment' && ignores.length;\r\n\r\n\t\tif (use_ignores) component.push_ignores(ignores);\r\n\t\tconst node = new constructor(component, parent, scope, child);\r\n\t\tif (use_ignores) component.pop_ignores(), ignores = [];\r\n\r\n\t\tif (node.type === 'Comment' && node.ignores.length) {\r\n\t\t\tpush_array(ignores, node.ignores);\r\n\t\t}\r\n\r\n\t\tif (last) last.next = node;\r\n\t\tnode.prev = last;\r\n\t\tlast = node;\r\n\r\n\t\treturn node;\r\n\t});\r\n}\r\n","export default function check_graph_for_cycles(edges: Array<[any, any]>): any[] {\r\n\tconst graph: Map<any, any[]> = edges.reduce((g, edge) => {\r\n\t\tconst [u, v] = edge;\r\n\t\tif (!g.has(u)) g.set(u, []);\r\n\t\tif (!g.has(v)) g.set(v, []);\r\n\t\tg.get(u).push(v);\r\n\t\treturn g;\r\n\t}, new Map());\r\n\r\n\tconst visited = new Set();\r\n\tconst on_stack = new Set();\r\n\tconst cycles = [];\r\n\r\n\tfunction visit (v) {\r\n\t\tvisited.add(v);\r\n\t\ton_stack.add(v);\r\n\r\n\t\tgraph.get(v).forEach(w => {\r\n\t\t\tif (!visited.has(w)) {\r\n\t\t\t\tvisit(w);\r\n\t\t\t} else if (on_stack.has(w)) {\r\n\t\t\t\tcycles.push([...on_stack, w]);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\ton_stack.delete(v);\r\n\t}\r\n\r\n\tgraph.forEach((_, v) => {\r\n\t\tif (!visited.has(v)) {\r\n\t\t\tvisit(v);\r\n\t\t}\r\n\t});\r\n\r\n\treturn cycles[0];\r\n}\r\n","import { TemplateNode, ConstTag as ConstTagType } from '../../../interfaces';\r\nimport Component from '../../Component';\r\nimport ConstTag from '../ConstTag';\r\nimport map_children from './map_children';\r\nimport { INodeAllowConstTag, INode } from '../interfaces';\r\nimport check_graph_for_cycles from '../../utils/check_graph_for_cycles';\r\nimport compiler_errors from '../../compiler_errors';\r\n\r\nexport default function get_const_tags(children: TemplateNode[], component: Component, node: INodeAllowConstTag, parent: INode): [ConstTag[], Array<Exclude<INode, ConstTag>>] {\r\n  const const_tags: ConstTagType[] = [];\r\n  const others: Array<Exclude<TemplateNode, ConstTagType>> = [];\r\n\r\n  for (const child of children) {\r\n    if (child.type === 'ConstTag') {\r\n      const_tags.push(child as ConstTagType);\r\n    } else {\r\n      others.push(child);\r\n    }\r\n  }\r\n\r\n  const consts_nodes = const_tags.map(tag => new ConstTag(component, node, node.scope, tag));\r\n  const sorted_consts_nodes = sort_consts_nodes(consts_nodes, component);\r\n  sorted_consts_nodes.forEach(node => node.parse_expression());\r\n\r\n  const children_nodes = map_children(component, parent, node.scope, others);\r\n\r\n  return [sorted_consts_nodes, children_nodes as Array<Exclude<INode, ConstTag>>];\r\n}\r\n\r\nfunction sort_consts_nodes(consts_nodes: ConstTag[], component: Component) {\r\n  type ConstNode = {\r\n    assignees: Set<string>;\r\n    dependencies: Set<string>;\r\n    node: ConstTag;\r\n  };\r\n  const sorted_consts_nodes: ConstNode[] = [];\r\n\r\n  const unsorted_consts_nodes: ConstNode[] = consts_nodes.map(node => {\r\n    return {\r\n      assignees: node.assignees,\r\n      dependencies: node.dependencies,\r\n      node\r\n    };\r\n  });\r\n\r\n  const lookup = new Map();\r\n\r\n  unsorted_consts_nodes.forEach(node => {\r\n    node.assignees.forEach(name => {\r\n      if (!lookup.has(name)) {\r\n        lookup.set(name, []);\r\n      }\r\n      lookup.get(name).push(node);\r\n    });\r\n  });\r\n\r\n  const cycle = check_graph_for_cycles(unsorted_consts_nodes.reduce((acc, node) => {\r\n    node.assignees.forEach(v => {\r\n      node.dependencies.forEach(w => {\r\n        if (!node.assignees.has(w)) {\r\n          acc.push([v, w]);\r\n        }\r\n      });\r\n    });\r\n    return acc;\r\n  }, []));\r\n\r\n  if (cycle && cycle.length) {\r\n    const nodeList = lookup.get(cycle[0]);\r\n    const node = nodeList[0];\r\n    component.error(node.node, compiler_errors.cyclical_const_tags(cycle));\r\n  }\r\n\r\n  const add_node = (node: ConstNode) => {\r\n    if (sorted_consts_nodes.includes(node)) return;\r\n\r\n    node.dependencies.forEach(name => {\r\n      if (node.assignees.has(name)) return;\r\n      const earlier_nodes = lookup.get(name);\r\n      if (earlier_nodes) {\r\n        earlier_nodes.forEach(add_node);\r\n      }\r\n    });\r\n\r\n    sorted_consts_nodes.push(node);\r\n  };\r\n\r\n  unsorted_consts_nodes.forEach(add_node);\r\n\r\n  return sorted_consts_nodes.map(node => node.node);\r\n}\r\n","import TemplateScope from './shared/TemplateScope';\r\nimport AbstractBlock from './shared/AbstractBlock';\r\nimport AwaitBlock from './AwaitBlock';\r\nimport Component from '../Component';\r\nimport { TemplateNode } from '../../interfaces';\r\nimport get_const_tags from './shared/get_const_tags';\r\nimport ConstTag from './ConstTag';\r\n\r\nexport default class ThenBlock extends AbstractBlock {\r\n\ttype: 'ThenBlock';\r\n\tscope: TemplateScope;\r\n\tconst_tags: ConstTag[];\r\n\r\n\tconstructor(component: Component, parent: AwaitBlock, scope: TemplateScope, info: TemplateNode) {\r\n\t\tsuper(component, parent, scope, info);\r\n\r\n\t\tthis.scope = scope.child();\r\n\t\tif (parent.then_node) {\r\n\t\t\tparent.then_contexts.forEach(context => {\r\n\t\t\t\tthis.scope.add(context.key.name, parent.expression.dependencies, this);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t([this.const_tags, this.children] = get_const_tags(info.children, component, this, parent));\r\n\r\n\t\tif (!info.skip) {\r\n\t\t\tthis.warn_if_empty_block();\r\n\t\t}\r\n\t}\r\n}\r\n","import ConstTag from '../../../nodes/ConstTag';\r\nimport Block from '../../Block';\r\nimport { b, x } from 'code-red';\r\nimport Renderer from '../../Renderer';\r\n\r\nexport function add_const_tags(block: Block, const_tags: ConstTag[], ctx: string) {\r\n  const const_tags_props = [];\r\n  const_tags.forEach((const_tag, i) => {\r\n    const name = `#constants_${i}`;\r\n    const_tags_props.push(b`const ${name} = ${const_tag.expression.manipulate(block, ctx)}`);\r\n    const_tag.contexts.forEach(context => {\r\n      const_tags_props.push(b`${ctx}[${block.renderer.context_lookup.get(context.key.name).index}] = ${context.default_modifier(context.modifier({ type: 'Identifier', name }), name => block.renderer.context_lookup.has(name) ? x`${ctx}[${block.renderer.context_lookup.get(name).index}]` : { type: 'Identifier', name })};`);\r\n    });\r\n  });\r\n  return const_tags_props;\r\n}\r\n\r\nexport function add_const_tags_context(renderer: Renderer, const_tags: ConstTag[]) {\r\n  const_tags.forEach(const_tag => {\r\n    const_tag.contexts.forEach(context => {\r\n      renderer.add_to_context(context.key.name, true);\r\n    });\r\n  });\r\n}\r\n","import Wrapper from './shared/Wrapper';\r\nimport Renderer from '../Renderer';\r\nimport Block from '../Block';\r\nimport AwaitBlock from '../../nodes/AwaitBlock';\r\nimport create_debugging_comment from './shared/create_debugging_comment';\r\nimport { b, x } from 'code-red';\r\nimport FragmentWrapper from './Fragment';\r\nimport PendingBlock from '../../nodes/PendingBlock';\r\nimport ThenBlock from '../../nodes/ThenBlock';\r\nimport CatchBlock from '../../nodes/CatchBlock';\r\nimport { Context } from '../../nodes/shared/Context';\r\nimport { Identifier, Literal, Node } from 'estree';\r\nimport { add_const_tags, add_const_tags_context } from './shared/add_const_tags';\r\n\r\ntype Status = 'pending' | 'then' | 'catch';\r\n\r\nclass AwaitBlockBranch extends Wrapper {\r\n\tparent: AwaitBlockWrapper;\r\n\tnode: PendingBlock | ThenBlock | CatchBlock;\r\n\tblock: Block;\r\n\tfragment: FragmentWrapper;\r\n\tis_dynamic: boolean;\r\n\r\n\tvar = null;\r\n\tstatus: Status;\r\n\r\n\tvalue: string;\r\n\tvalue_index: Literal;\r\n\tvalue_contexts: Context[];\r\n\tis_destructured: boolean;\r\n\r\n\tconstructor(\r\n\t\tstatus: Status,\r\n\t\trenderer: Renderer,\r\n\t\tblock: Block,\r\n\t\tparent: AwaitBlockWrapper,\r\n\t\tnode: PendingBlock | ThenBlock | CatchBlock,\r\n\t\tstrip_whitespace: boolean,\r\n\t\tnext_sibling: Wrapper\r\n\t) {\r\n\t\tsuper(renderer, block, parent, node);\r\n\t\tthis.status = status;\r\n\r\n\t\tthis.block = block.child({\r\n\t\t\tcomment: create_debugging_comment(node, this.renderer.component),\r\n\t\t\tname: this.renderer.component.get_unique_name(`create_${status}_block`),\r\n\t\t\ttype: status\r\n\t\t});\r\n\r\n\t\tthis.add_context(parent.node[status + '_node'], parent.node[status + '_contexts']);\r\n\r\n\t\tthis.fragment = new FragmentWrapper(\r\n\t\t\trenderer,\r\n\t\t\tthis.block,\r\n\t\t\tthis.node.children,\r\n\t\t\tparent,\r\n\t\t\tstrip_whitespace,\r\n\t\t\tnext_sibling\r\n\t\t);\r\n\r\n\t\tthis.is_dynamic = this.block.dependencies.size > 0;\r\n\t}\r\n\r\n\tadd_context(node: Node | null, contexts: Context[]) {\r\n\t\tif (!node) return;\r\n\r\n\t\tif (node.type === 'Identifier') {\r\n\t\t\tthis.value = node.name;\r\n\t\t\tthis.renderer.add_to_context(this.value, true);\r\n\t\t} else {\r\n\t\t\tcontexts.forEach(context => {\r\n\t\t\t\tthis.renderer.add_to_context(context.key.name, true);\r\n\t\t\t});\r\n\t\t\tthis.value = this.block.parent.get_unique_name('value').name;\r\n\t\t\tthis.value_contexts = contexts;\r\n\t\t\tthis.renderer.add_to_context(this.value, true);\r\n\t\t\tthis.is_destructured = true;\r\n\t\t}\r\n\t\tthis.value_index = this.renderer.context_lookup.get(this.value).index;\r\n\r\n\t\tif (this.has_consts(this.node)) {\r\n\t\t\tadd_const_tags_context(this.renderer, this.node.const_tags);\r\n\t\t}\r\n\t}\r\n\r\n\thas_consts(node: PendingBlock | ThenBlock | CatchBlock): node is ThenBlock | CatchBlock {\r\n\t\treturn node instanceof ThenBlock || node instanceof CatchBlock;\r\n\t}\r\n\r\n\trender(block: Block, parent_node: Identifier, parent_nodes: Identifier) {\r\n\t\tthis.fragment.render(block, parent_node, parent_nodes);\r\n\r\n\t\tif (this.is_destructured || (this.has_consts(this.node) && this.node.const_tags.length > 0)) {\r\n\t\t\tthis.render_get_context();\r\n\t\t}\r\n\t}\r\n\r\n\trender_get_context() {\r\n\t\tconst props = this.is_destructured ? this.value_contexts.map(prop => b`#ctx[${this.block.renderer.context_lookup.get(prop.key.name).index}] = ${prop.default_modifier(prop.modifier(x`#ctx[${this.value_index}]`), name => this.renderer.reference(name))};`) : null;\r\n\r\n\t\tconst const_tags_props = this.has_consts(this.node) ? add_const_tags(this.block, this.node.const_tags, '#ctx') : null;\r\n\r\n\t\tconst get_context = this.block.renderer.component.get_unique_name(`get_${this.status}_context`);\r\n\t\tthis.block.renderer.blocks.push(b`\r\n\t\t\tfunction ${get_context}(#ctx) {\r\n\t\t\t\t${props}\r\n\t\t\t\t${const_tags_props}\r\n\t\t\t}\r\n\t\t`);\r\n\t\tthis.block.chunks.declarations.push(b`${get_context}(#ctx)`);\r\n\t\tif (this.block.has_update_method) {\r\n\t\t\tthis.block.chunks.update.unshift(b`${get_context}(#ctx)`);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default class AwaitBlockWrapper extends Wrapper {\r\n\tnode: AwaitBlock;\r\n\r\n\tpending: AwaitBlockBranch;\r\n\tthen: AwaitBlockBranch;\r\n\tcatch: AwaitBlockBranch;\r\n\r\n\tvar: Identifier = { type: 'Identifier', name: 'await_block' };\r\n\r\n\tconstructor(\r\n\t\trenderer: Renderer,\r\n\t\tblock: Block,\r\n\t\tparent: Wrapper,\r\n\t\tnode: AwaitBlock,\r\n\t\tstrip_whitespace: boolean,\r\n\t\tnext_sibling: Wrapper\r\n\t) {\r\n\t\tsuper(renderer, block, parent, node);\r\n\r\n\t\tthis.cannot_use_innerhtml();\r\n\t\tthis.not_static_content();\r\n\r\n\t\tblock.add_dependencies(this.node.expression.dependencies);\r\n\r\n\t\tlet is_dynamic = false;\r\n\t\tlet has_intros = false;\r\n\t\tlet has_outros = false;\r\n\r\n\t\t['pending', 'then', 'catch'].forEach((status: Status) => {\r\n\t\t\tconst child = this.node[status];\r\n\r\n\t\t\tconst branch = new AwaitBlockBranch(\r\n\t\t\t\tstatus,\r\n\t\t\t\trenderer,\r\n\t\t\t\tblock,\r\n\t\t\t\tthis,\r\n\t\t\t\tchild,\r\n\t\t\t\tstrip_whitespace,\r\n\t\t\t\tnext_sibling\r\n\t\t\t);\r\n\r\n\t\t\trenderer.blocks.push(branch.block);\r\n\r\n\t\t\tif (branch.is_dynamic) {\r\n\t\t\t\tis_dynamic = true;\r\n\t\t\t\t// TODO should blocks update their own parents?\r\n\t\t\t\tblock.add_dependencies(branch.block.dependencies);\r\n\t\t\t}\r\n\r\n\t\t\tif (branch.block.has_intros) has_intros = true;\r\n\t\t\tif (branch.block.has_outros) has_outros = true;\r\n\r\n\t\t\tthis[status] = branch;\r\n\t\t});\r\n\r\n\t\t['pending', 'then', 'catch'].forEach(status => {\r\n\t\t\tthis[status].block.has_update_method = is_dynamic;\r\n\t\t\tthis[status].block.has_intro_method = has_intros;\r\n\t\t\tthis[status].block.has_outro_method = has_outros;\r\n\t\t});\r\n\r\n\t\tif (has_outros) {\r\n\t\t\tblock.add_outro();\r\n\t\t}\r\n\t}\r\n\r\n\trender(\r\n\t\tblock: Block,\r\n\t\tparent_node: Identifier,\r\n\t\tparent_nodes: Identifier\r\n\t) {\r\n\t\tconst anchor = this.get_or_create_anchor(block, parent_node, parent_nodes);\r\n\t\tconst update_mount_node = this.get_update_mount_node(anchor);\r\n\r\n\t\tconst snippet = this.node.expression.manipulate(block);\r\n\r\n\t\tconst info = block.get_unique_name('info');\r\n\t\tconst promise = block.get_unique_name('promise');\r\n\r\n\t\tblock.add_variable(promise);\r\n\r\n\t\tblock.maintain_context = true;\r\n\r\n\t\tconst info_props: any = x`{\r\n\t\t\tctx: #ctx,\r\n\t\t\tcurrent: null,\r\n\t\t\ttoken: null,\r\n\t\t\thasCatch: ${this.catch.node.start !== null ? 'true' : 'false'},\r\n\t\t\tpending: ${this.pending.block.name},\r\n\t\t\tthen: ${this.then.block.name},\r\n\t\t\tcatch: ${this.catch.block.name},\r\n\t\t\tvalue: ${this.then.value_index},\r\n\t\t\terror: ${this.catch.value_index},\r\n\t\t\tblocks: ${this.pending.block.has_outro_method && x`[,,,]`}\r\n\t\t}`;\r\n\r\n\t\tblock.chunks.init.push(b`\r\n\t\t\tlet ${info} = ${info_props};\r\n\t\t`);\r\n\r\n\t\tblock.chunks.init.push(b`\r\n\t\t\t@handle_promise(${promise} = ${snippet}, ${info});\r\n\t\t`);\r\n\r\n\t\tblock.chunks.create.push(b`\r\n\t\t\t${info}.block.c();\r\n\t\t`);\r\n\r\n\t\tif (parent_nodes && this.renderer.options.hydratable) {\r\n\t\t\tblock.chunks.claim.push(b`\r\n\t\t\t\t${info}.block.l(${parent_nodes});\r\n\t\t\t`);\r\n\t\t}\r\n\r\n\t\tconst initial_mount_node = parent_node || '#target';\r\n\t\tconst anchor_node = parent_node ? 'null' : '#anchor';\r\n\r\n\t\tconst has_transitions = this.pending.block.has_intro_method || this.pending.block.has_outro_method;\r\n\r\n\t\tblock.chunks.mount.push(b`\r\n\t\t\t${info}.block.m(${initial_mount_node}, ${info}.anchor = ${anchor_node});\r\n\t\t\t${info}.mount = () => ${update_mount_node};\r\n\t\t\t${info}.anchor = ${anchor};\r\n\t\t`);\r\n\r\n\t\tif (has_transitions) {\r\n\t\t\tblock.chunks.intro.push(b`@transition_in(${info}.block);`);\r\n\t\t}\r\n\r\n\t\tconst dependencies = this.node.expression.dynamic_dependencies();\r\n\r\n\t\tconst update_await_block_branch = b`@update_await_block_branch(${info}, #ctx, #dirty)`;\r\n\r\n\t\tif (dependencies.length > 0) {\r\n\t\t\tconst condition = x`\r\n\t\t\t\t${block.renderer.dirty(dependencies)} &&\r\n\t\t\t\t${promise} !== (${promise} = ${snippet}) &&\r\n\t\t\t\t@handle_promise(${promise}, ${info})`;\r\n\r\n\t\t\tblock.chunks.update.push(\r\n\t\t\t\tb`${info}.ctx = #ctx;`\r\n\t\t\t);\r\n\r\n\t\t\tif (this.pending.block.has_update_method) {\r\n\t\t\t\tblock.chunks.update.push(b`\r\n\t\t\t\t\tif (${condition}) {\r\n\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t${update_await_block_branch}\r\n\t\t\t\t\t}\r\n\t\t\t\t`);\r\n\t\t\t} else {\r\n\t\t\t\tblock.chunks.update.push(b`\r\n\t\t\t\t\t${condition}\r\n\t\t\t\t`);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (this.pending.block.has_update_method) {\r\n\t\t\t\tblock.chunks.update.push(b`\r\n\t\t\t\t\t${update_await_block_branch}\r\n\t\t\t\t`);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.pending.block.has_outro_method) {\r\n\t\t\tblock.chunks.outro.push(b`\r\n\t\t\t\tfor (let #i = 0; #i < 3; #i += 1) {\r\n\t\t\t\t\tconst block = ${info}.blocks[#i];\r\n\t\t\t\t\t@transition_out(block);\r\n\t\t\t\t}\r\n\t\t\t`);\r\n\t\t}\r\n\r\n\t\tblock.chunks.destroy.push(b`\r\n\t\t\t${info}.block.d(${parent_node ? null : 'detaching'});\r\n\t\t\t${info}.token = null;\r\n\t\t\t${info} = null;\r\n\t\t`);\r\n\r\n\t\t[this.pending, this.then, this.catch].forEach(branch => {\r\n\t\t\tbranch.render(branch.block, null, x`#nodes` as Identifier);\r\n\t\t});\r\n\t}\r\n}\r\n","import EventHandler from '../../../nodes/EventHandler';\r\nimport Wrapper from '../shared/Wrapper';\r\nimport Block from '../../Block';\r\nimport { b, x, p } from 'code-red';\r\nimport { Expression } from 'estree';\r\n\r\nconst TRUE = x`true`;\r\nconst FALSE = x`false`;\r\n\r\nexport default class EventHandlerWrapper {\r\n\tnode: EventHandler;\r\n\tparent: Wrapper;\r\n\r\n\tconstructor(node: EventHandler, parent: Wrapper) {\r\n\t\tthis.node = node;\r\n\t\tthis.parent = parent;\r\n\r\n\t\tif (!node.expression) {\r\n\t\t\tthis.parent.renderer.add_to_context(node.handler_name.name);\r\n\r\n\t\t\tthis.parent.renderer.component.partly_hoisted.push(b`\r\n\t\t\t\tfunction ${node.handler_name.name}(event) {\r\n\t\t\t\t\t@bubble.call(this, $$self, event);\r\n\t\t\t\t}\r\n\t\t\t`);\r\n\t\t}\r\n\t}\r\n\r\n\tget_snippet(block) {\r\n\t\tconst snippet = this.node.expression ? this.node.expression.manipulate(block) : block.renderer.reference(this.node.handler_name);\r\n\r\n\t\tif (this.node.reassigned) {\r\n\t\t\tblock.maintain_context = true;\r\n\t\t\treturn x`function () { if (@is_function(${snippet})) ${snippet}.apply(this, arguments); }`;\r\n\t\t}\r\n\t\treturn snippet;\r\n\t}\r\n\r\n\trender(block: Block, target: string | Expression) {\r\n\t\tlet snippet = this.get_snippet(block);\r\n\r\n\t\tif (this.node.modifiers.has('preventDefault')) snippet = x`@prevent_default(${snippet})`;\r\n\t\tif (this.node.modifiers.has('stopPropagation')) snippet = x`@stop_propagation(${snippet})`;\r\n\t\tif (this.node.modifiers.has('self')) snippet = x`@self(${snippet})`;\r\n\t\tif (this.node.modifiers.has('trusted')) snippet = x`@trusted(${snippet})`;\r\n\r\n\t\tconst args = [];\r\n\r\n\t\tconst opts = ['nonpassive', 'passive', 'once', 'capture'].filter(mod => this.node.modifiers.has(mod));\r\n\t\tif (opts.length) {\r\n\t\t\tif (opts.length === 1 && opts[0] === 'capture') {\r\n\t\t\t\targs.push(TRUE);\r\n\t\t\t} else {\r\n\t\t\t\targs.push(x`{ ${ opts.map(opt =>\r\n\t\t\t\t\topt === 'nonpassive'\r\n\t\t\t\t\t\t? p`passive: false`\r\n\t\t\t\t\t\t: p`${opt}: true`\r\n\t\t\t\t) } }`);\r\n\t\t\t}\r\n\t\t} else if (block.renderer.options.dev) {\r\n\t\t\targs.push(FALSE);\r\n\t\t}\r\n\r\n\t\tif (block.renderer.options.dev) {\r\n\t\t\targs.push(this.node.modifiers.has('preventDefault') ? TRUE : FALSE);\r\n\t\t\targs.push(this.node.modifiers.has('stopPropagation') ? TRUE : FALSE);\r\n\t\t}\r\n\r\n\t\tblock.event_listeners.push(\r\n\t\t\tx`@listen(${target}, \"${this.node.name}\", ${snippet}, ${args})`\r\n\t\t);\r\n\t}\r\n}\r\n","import Block from '../../Block';\r\nimport EventHandler from '../Element/EventHandler';\r\nimport { Expression } from 'estree';\r\n\r\nexport default function add_event_handlers(\r\n\tblock: Block,\r\n\ttarget: string | Expression,\r\n\thandlers: EventHandler[]\r\n) {\r\n\thandlers.forEach(handler => add_event_handler(block, target, handler));\r\n}\r\n\r\nexport function add_event_handler(\r\n\tblock: Block,\r\n\ttarget: string | Expression,\r\n\thandler: EventHandler\r\n) {\r\n\thandler.render(block, target);\r\n}\r\n","import { b, x } from 'code-red';\r\nimport Block from '../../Block';\r\nimport Action from '../../../nodes/Action';\r\nimport { Expression } from 'estree';\r\nimport is_contextual from '../../../nodes/shared/is_contextual';\r\n\r\nexport default function add_actions(\r\n\tblock: Block,\r\n\ttarget: string | Expression,\r\n\tactions: Action[]\r\n) {\r\n\tactions.forEach(action => add_action(block, target, action));\r\n}\r\n\r\nexport function add_action(block: Block, target: string | Expression, action: Action) {\r\n\tconst { expression, template_scope } = action;\r\n\tlet snippet;\r\n\tlet dependencies;\r\n\r\n\tif (expression) {\r\n\t\tsnippet = expression.manipulate(block);\r\n\t\tdependencies = expression.dynamic_dependencies();\r\n\t}\r\n\r\n\tconst id = block.get_unique_name(\r\n\t\t`${action.name.replace(/[^a-zA-Z0-9_$]/g, '_')}_action`\r\n\t);\r\n\r\n\tblock.add_variable(id);\r\n\r\n\tconst [obj, ...properties] = action.name.split('.');\r\n\r\n\tconst fn = is_contextual(action.component, template_scope, obj)\r\n\t\t? block.renderer.reference(obj)\r\n\t\t: obj;\r\n\r\n\tif (properties.length) {\r\n\t\tconst member_expression = properties.reduce((lhs, rhs) => x`${lhs}.${rhs}`, fn);\r\n\t\tblock.event_listeners.push(\r\n\t\t\tx`@action_destroyer(${id} = ${member_expression}(${target}, ${snippet}))`\r\n\t\t);\r\n\t} else {\r\n\t\tblock.event_listeners.push(\r\n\t\t\tx`@action_destroyer(${id} = ${fn}.call(null, ${target}, ${snippet}))`\r\n\t\t);\r\n\t}\r\n\r\n\tif (dependencies && dependencies.length > 0) {\r\n\t\tlet condition = x`${id} && @is_function(${id}.update)`;\r\n\r\n\t\tif (dependencies.length > 0) {\r\n\t\t\tcondition = x`${condition} && ${block.renderer.dirty(dependencies)}`;\r\n\t\t}\r\n\r\n\t\tblock.chunks.update.push(\r\n\t\t\tb`if (${condition}) ${id}.update.call(null, ${snippet});`\r\n\t\t);\r\n\t}\r\n}\r\n","import Block from '../Block';\r\nimport Wrapper from './shared/Wrapper';\r\nimport { x } from 'code-red';\r\nimport Body from '../../nodes/Body';\r\nimport { Identifier } from 'estree';\r\nimport EventHandler from './Element/EventHandler';\r\nimport add_event_handlers from './shared/add_event_handlers';\r\nimport { TemplateNode } from '../../../interfaces';\r\nimport Renderer from '../Renderer';\r\nimport add_actions from './shared/add_actions';\r\n\r\nexport default class BodyWrapper extends Wrapper {\r\n\tnode: Body;\r\n\thandlers: EventHandler[];\r\n\r\n\tconstructor(renderer: Renderer, block: Block, parent: Wrapper, node: TemplateNode) {\r\n\t\tsuper(renderer, block, parent, node);\r\n\t\tthis.handlers = this.node.handlers.map(handler => new EventHandler(handler, this));\r\n\t}\r\n\r\n\trender(block: Block, _parent_node: Identifier, _parent_nodes: Identifier) {\r\n\t\tadd_event_handlers(block, x`@_document.body`, this.handlers);\r\n\t\tadd_actions(block, x`@_document.body`, this.node.actions);\r\n\t}\r\n}\r\n","import Renderer from '../Renderer';\r\nimport Wrapper from './shared/Wrapper';\r\nimport Block from '../Block';\r\nimport DebugTag from '../../nodes/DebugTag';\r\nimport add_to_set from '../../utils/add_to_set';\r\nimport { b, p } from 'code-red';\r\nimport { Identifier, DebuggerStatement } from 'estree';\r\n\r\nexport default class DebugTagWrapper extends Wrapper {\r\n\tnode: DebugTag;\r\n\r\n\tconstructor(\r\n\t\trenderer: Renderer,\r\n\t\tblock: Block,\r\n\t\tparent: Wrapper,\r\n\t\tnode: DebugTag,\r\n\t\t_strip_whitespace: boolean,\r\n\t\t_next_sibling: Wrapper\r\n\t) {\r\n\t\tsuper(renderer, block, parent, node);\r\n\t}\r\n\r\n\trender(block: Block, _parent_node: Identifier, _parent_nodes: Identifier) {\r\n\t\tconst { renderer } = this;\r\n\t\tconst { component } = renderer;\r\n\r\n\t\tif (!renderer.options.dev) return;\r\n\r\n\t\tconst { var_lookup } = component;\r\n\r\n\t\tconst start = component.locate(this.node.start + 1);\r\n\t\tconst end = { line: start.line, column: start.column + 6 };\r\n\r\n\t\tconst loc = { start, end };\r\n\r\n\t\tconst debug: DebuggerStatement = {\r\n\t\t\ttype: 'DebuggerStatement',\r\n\t\t\tloc\r\n\t\t};\r\n\r\n\t\tif (this.node.expressions.length === 0) {\r\n\t\t\t// Debug all\r\n\t\t\tblock.chunks.create.push(debug);\r\n\t\t\tblock.chunks.update.push(debug);\r\n\t\t} else {\r\n\t\t\tconst log: Identifier = {\r\n\t\t\t\ttype: 'Identifier',\r\n\t\t\t\tname: 'log',\r\n\t\t\t\tloc\r\n\t\t\t};\r\n\r\n\t\t\tconst dependencies: Set<string> = new Set();\r\n\t\t\tthis.node.expressions.forEach(expression => {\r\n\t\t\t\tadd_to_set(dependencies, expression.dependencies);\r\n\t\t\t});\r\n\r\n\t\t\tconst contextual_identifiers = this.node.expressions\r\n\t\t\t\t.filter(e => {\r\n\t\t\t\t\tconst variable = var_lookup.get((e.node as Identifier).name);\r\n\t\t\t\t\treturn !(variable && variable.hoistable);\r\n\t\t\t\t})\r\n\t\t\t\t.map(e => (e.node as Identifier).name);\r\n\r\n\t\t\tconst logged_identifiers = this.node.expressions.map(e => p`${(e.node as Identifier).name}`);\r\n\r\n\t\t\tconst debug_statements = b`\r\n\t\t\t\t${contextual_identifiers.map(name => b`const ${name} = ${renderer.reference(name)};`)}\r\n\t\t\t\t@_console.${log}({ ${logged_identifiers} });\r\n\t\t\t\tdebugger;`;\r\n\r\n\t\t\tif (dependencies.size) {\r\n\t\t\t\tconst condition = renderer.dirty(Array.from(dependencies));\r\n\r\n\t\t\t\tblock.chunks.update.push(b`\r\n\t\t\t\t\tif (${condition}) {\r\n\t\t\t\t\t\t${debug_statements}\r\n\t\t\t\t\t}\r\n\t\t\t\t`);\r\n\t\t\t}\r\n\r\n\t\t\tblock.chunks.create.push(b`{\r\n\t\t\t\t${debug_statements}\r\n\t\t\t}`);\r\n\t\t}\r\n\t}\r\n}\r\n","import Renderer from '../Renderer';\r\nimport Block from '../Block';\r\nimport Wrapper from './shared/Wrapper';\r\nimport create_debugging_comment from './shared/create_debugging_comment';\r\nimport EachBlock from '../../nodes/EachBlock';\r\nimport FragmentWrapper from './Fragment';\r\nimport { b, x } from 'code-red';\r\nimport ElseBlock from '../../nodes/ElseBlock';\r\nimport { Identifier, Node } from 'estree';\r\nimport get_object from '../../utils/get_object';\r\nimport { add_const_tags, add_const_tags_context } from './shared/add_const_tags';\r\n\r\nexport class ElseBlockWrapper extends Wrapper {\r\n\tnode: ElseBlock;\r\n\tblock: Block;\r\n\tfragment: FragmentWrapper;\r\n\tis_dynamic: boolean;\r\n\r\n\tvar = null;\r\n\r\n\tconstructor(\r\n\t\trenderer: Renderer,\r\n\t\tblock: Block,\r\n\t\tparent: Wrapper,\r\n\t\tnode: ElseBlock,\r\n\t\tstrip_whitespace: boolean,\r\n\t\tnext_sibling: Wrapper\r\n\t) {\r\n\t\tsuper(renderer, block, parent, node);\r\n\t\tadd_const_tags_context(renderer, this.node.const_tags);\r\n\r\n\t\tthis.block = block.child({\r\n\t\t\tcomment: create_debugging_comment(node, this.renderer.component),\r\n\t\t\tname: this.renderer.component.get_unique_name('create_else_block'),\r\n\t\t\ttype: 'else'\r\n\t\t});\r\n\r\n\t\tthis.fragment = new FragmentWrapper(\r\n\t\t\trenderer,\r\n\t\t\tthis.block,\r\n\t\t\tthis.node.children,\r\n\t\t\tparent,\r\n\t\t\tstrip_whitespace,\r\n\t\t\tnext_sibling\r\n\t\t);\r\n\r\n\t\tthis.is_dynamic = this.block.dependencies.size > 0;\r\n\t}\r\n}\r\n\r\nexport default class EachBlockWrapper extends Wrapper {\r\n\tblock: Block;\r\n\tnode: EachBlock;\r\n\tfragment: FragmentWrapper;\r\n\telse?: ElseBlockWrapper;\r\n\tvars: {\r\n\t\tcreate_each_block: Identifier;\r\n\t\teach_block_value: Identifier;\r\n\t\tget_each_context: Identifier;\r\n\t\titerations: Identifier;\r\n\t\tfixed_length: number;\r\n\t\tdata_length: Node | number;\r\n\t\tview_length: Node | number;\r\n\t};\r\n\r\n\tcontext_props: Array<Node | Node[]>;\r\n\tindex_name: Identifier;\r\n\tupdates: Array<Node | Node[]> = [];\r\n\tdependencies: Set<string>;\r\n\r\n\tvar: Identifier = { type: 'Identifier', name: 'each' };\r\n\r\n\tconstructor(\r\n\t\trenderer: Renderer,\r\n\t\tblock: Block,\r\n\t\tparent: Wrapper,\r\n\t\tnode: EachBlock,\r\n\t\tstrip_whitespace: boolean,\r\n\t\tnext_sibling: Wrapper\r\n\t) {\r\n\t\tsuper(renderer, block, parent, node);\r\n\t\tthis.cannot_use_innerhtml();\r\n\t\tthis.not_static_content();\r\n\r\n\t\tconst { dependencies } = node.expression;\r\n\t\tblock.add_dependencies(dependencies);\r\n\r\n\t\tthis.node.contexts.forEach(context => {\r\n\t\t\trenderer.add_to_context(context.key.name, true);\r\n\t\t});\r\n\t\tadd_const_tags_context(renderer, this.node.const_tags);\r\n\r\n\t\tthis.block = block.child({\r\n\t\t\tcomment: create_debugging_comment(this.node, this.renderer.component),\r\n\t\t\tname: renderer.component.get_unique_name('create_each_block'),\r\n\t\t\ttype: 'each',\r\n\t\t\t// @ts-ignore todo: probably error\r\n\t\t\tkey: node.key as string,\r\n\r\n\t\t\tbindings: new Map(block.bindings)\r\n\t\t});\r\n\r\n\t\t// TODO this seems messy\r\n\t\tthis.block.has_animation = this.node.has_animation;\r\n\r\n\t\tthis.index_name = this.node.index\r\n\t\t\t? { type: 'Identifier', name: this.node.index }\r\n\t\t\t: renderer.component.get_unique_name(`${this.node.context}_index`);\r\n\r\n\t\tconst fixed_length =\r\n\t\t\tnode.expression.node.type === 'ArrayExpression' &&\r\n\t\t\tnode.expression.node.elements.every(element => element.type !== 'SpreadElement')\r\n\t\t\t\t? node.expression.node.elements.length\r\n\t\t\t\t: null;\r\n\r\n\t\t// hack the sourcemap, so that if data is missing the bug\r\n\t\t// is easy to find\r\n\t\tlet c = this.node.start + 2;\r\n\t\twhile (renderer.component.source[c] !== 'e') c += 1;\r\n\t\tconst start = renderer.component.locate(c);\r\n\t\tconst end = { line: start.line, column: start.column + 4 };\r\n\t\tconst length = {\r\n\t\t\ttype: 'Identifier',\r\n\t\t\tname: 'length',\r\n\t\t\tloc: { start, end }\r\n\t\t};\r\n\r\n\t\tconst each_block_value = renderer.component.get_unique_name(`${this.var.name}_value`);\r\n\t\tconst iterations = block.get_unique_name(`${this.var.name}_blocks`);\r\n\r\n\t\trenderer.add_to_context(each_block_value.name, true);\r\n\t\trenderer.add_to_context(this.index_name.name, true);\r\n\r\n\t\tthis.vars = {\r\n\t\t\tcreate_each_block: this.block.name,\r\n\t\t\teach_block_value,\r\n\t\t\tget_each_context: renderer.component.get_unique_name(`get_${this.var.name}_context`),\r\n\t\t\titerations,\r\n\r\n\t\t\t// optimisation for array literal\r\n\t\t\tfixed_length,\r\n\t\t\tdata_length: fixed_length === null ? x`${each_block_value}.${length}` : fixed_length,\r\n\t\t\tview_length: fixed_length === null ? x`${iterations}.length` : fixed_length\r\n\t\t};\r\n\r\n\t\tconst object = get_object(node.expression.node);\r\n\t\tconst store = object.type === 'Identifier' && object.name[0] === '$' ? object.name.slice(1) : null;\r\n\r\n\t\tnode.contexts.forEach(prop => {\r\n\t\t\tthis.block.bindings.set(prop.key.name, {\r\n\t\t\t\tobject: this.vars.each_block_value,\r\n\t\t\t\tproperty: this.index_name,\r\n\t\t\t\tmodifier: prop.modifier,\r\n\t\t\t\tsnippet: prop.modifier(x`${this.vars.each_block_value}[${this.index_name}]` as Node),\r\n\t\t\t\tstore\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tif (this.node.index) {\r\n\t\t\tthis.block.get_unique_name(this.node.index); // this prevents name collisions (#1254)\r\n\t\t}\r\n\r\n\t\trenderer.blocks.push(this.block);\r\n\r\n\t\tthis.fragment = new FragmentWrapper(renderer, this.block, node.children, this, strip_whitespace, next_sibling);\r\n\r\n\t\tif (this.node.else) {\r\n\t\t\tthis.else = new ElseBlockWrapper(\r\n\t\t\t\trenderer,\r\n\t\t\t\tblock,\r\n\t\t\t\tthis,\r\n\t\t\t\tthis.node.else,\r\n\t\t\t\tstrip_whitespace,\r\n\t\t\t\tnext_sibling\r\n\t\t\t);\r\n\r\n\t\t\trenderer.blocks.push(this.else.block);\r\n\r\n\t\t\tif (this.else.is_dynamic) {\r\n\t\t\t\tthis.block.add_dependencies(this.else.block.dependencies);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tblock.add_dependencies(this.block.dependencies);\r\n\r\n\t\tif (this.block.has_outros || (this.else && this.else.block.has_outros)) {\r\n\t\t\tblock.add_outro();\r\n\t\t}\r\n\t}\r\n\r\n\trender(block: Block, parent_node: Identifier, parent_nodes: Identifier) {\r\n\t\tif (this.fragment.nodes.length === 0) return;\r\n\r\n\t\tconst { renderer } = this;\r\n\t\tconst { component } = renderer;\r\n\r\n\t\tconst needs_anchor = this.next\r\n\t\t\t? !this.next.is_dom_node() :\r\n\t\t\t!parent_node || !this.parent.is_dom_node();\r\n\r\n\t\tconst snippet = this.node.expression.manipulate(block);\r\n\r\n\t\tblock.chunks.init.push(b`let ${this.vars.each_block_value} = ${snippet};`);\r\n\t\tif (this.renderer.options.dev) {\r\n\t\t\tblock.chunks.init.push(b`@validate_each_argument(${this.vars.each_block_value});`);\r\n\t\t}\r\n\r\n\t\tconst initial_anchor_node: Identifier = { type: 'Identifier', name: parent_node ? 'null' : '#anchor' };\r\n\t\tconst initial_mount_node: Identifier = parent_node || { type: 'Identifier', name: '#target' };\r\n\t\tconst update_anchor_node = needs_anchor\r\n\t\t\t? block.get_unique_name(`${this.var.name}_anchor`)\r\n\t\t\t: (this.next && this.next.var) || { type: 'Identifier', name: 'null' };\r\n\t\tconst update_mount_node: Identifier = this.get_update_mount_node((update_anchor_node as Identifier));\r\n\r\n\t\tconst args = {\r\n\t\t\tblock,\r\n\t\t\tparent_node,\r\n\t\t\tparent_nodes,\r\n\t\t\tsnippet,\r\n\t\t\tinitial_anchor_node,\r\n\t\t\tinitial_mount_node,\r\n\t\t\tupdate_anchor_node,\r\n\t\t\tupdate_mount_node\r\n\t\t};\r\n\r\n\t\tconst all_dependencies = new Set(this.block.dependencies); // TODO should be dynamic deps only\r\n\t\tthis.node.expression.dynamic_dependencies().forEach((dependency: string) => {\r\n\t\t\tall_dependencies.add(dependency);\r\n\t\t});\r\n\t\tif (this.node.key) {\r\n\t\t\tthis.node.key.dynamic_dependencies().forEach((dependency: string) => {\r\n\t\t\t\tall_dependencies.add(dependency);\r\n\t\t\t});\r\n\t\t}\r\n\t\tthis.dependencies = all_dependencies;\r\n\r\n\t\tif (this.node.key) {\r\n\t\t\tthis.render_keyed(args);\r\n\t\t} else {\r\n\t\t\tthis.render_unkeyed(args);\r\n\t\t}\r\n\r\n\t\tif (this.block.has_intro_method || this.block.has_outro_method) {\r\n\t\t\tblock.chunks.intro.push(b`\r\n\t\t\t\tfor (let #i = 0; #i < ${this.vars.data_length}; #i += 1) {\r\n\t\t\t\t\t@transition_in(${this.vars.iterations}[#i]);\r\n\t\t\t\t}\r\n\t\t\t`);\r\n\t\t}\r\n\r\n\t\tif (needs_anchor) {\r\n\t\t\tblock.add_element(\r\n\t\t\t\tupdate_anchor_node as Identifier,\r\n\t\t\t\tx`@empty()`,\r\n\t\t\t\tparent_nodes && x`@empty()`,\r\n\t\t\t\tparent_node\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tif (this.else) {\r\n\t\t\tlet else_ctx = x`#ctx`;\r\n\t\t\tif (this.else.node.const_tags.length > 0) {\r\n\t\t\t\tconst get_ctx_name = this.renderer.component.get_unique_name('get_else_ctx');\r\n\t\t\t\tthis.renderer.blocks.push(b`\r\n\t\t\t\t\tfunction ${get_ctx_name}(#ctx) {\r\n\t\t\t\t\t\tconst child_ctx = #ctx.slice();\r\n\t\t\t\t\t\t${add_const_tags(block, this.else.node.const_tags, 'child_ctx')}\r\n\t\t\t\t\t\treturn child_ctx;\r\n\t\t\t\t\t}\r\n\t\t\t\t`);\r\n\t\t\t\telse_ctx = x`${get_ctx_name}(#ctx)`;\r\n\t\t\t}\r\n\t\t\tconst each_block_else = component.get_unique_name(`${this.var.name}_else`);\r\n\r\n\t\t\tblock.chunks.init.push(b`let ${each_block_else} = null;`);\r\n\r\n\t\t\t// TODO neaten this up... will end up with an empty line in the block\r\n\t\t\tblock.chunks.init.push(b`\r\n\t\t\t\tif (!${this.vars.data_length}) {\r\n\t\t\t\t\t${each_block_else} = ${this.else.block.name}(${else_ctx});\r\n\t\t\t\t}\r\n\t\t\t`);\r\n\r\n\t\t\tblock.chunks.create.push(b`\r\n\t\t\t\tif (${each_block_else}) {\r\n\t\t\t\t\t${each_block_else}.c();\r\n\t\t\t\t}\r\n\t\t\t`);\r\n\r\n\t\t\tif (this.renderer.options.hydratable) {\r\n\t\t\t\tblock.chunks.claim.push(b`\r\n\t\t\t\t\tif (${each_block_else}) {\r\n\t\t\t\t\t\t${each_block_else}.l(${parent_nodes});\r\n\t\t\t\t\t}\r\n\t\t\t\t`);\r\n\t\t\t}\r\n\r\n\t\t\tblock.chunks.mount.push(b`\r\n\t\t\t\tif (${each_block_else}) {\r\n\t\t\t\t\t${each_block_else}.m(${initial_mount_node}, ${initial_anchor_node});\r\n\t\t\t\t}\r\n\t\t\t`);\r\n\r\n\t\t\tconst has_transitions = !!(this.else.block.has_intro_method || this.else.block.has_outro_method);\r\n\r\n\t\t\tconst destroy_block_else = this.else.block.has_outro_method\r\n\t\t\t\t? b`\r\n\t\t\t\t\t@group_outros();\r\n\t\t\t\t\t@transition_out(${each_block_else}, 1, 1, () => {\r\n\t\t\t\t\t\t${each_block_else} = null;\r\n\t\t\t\t\t});\r\n\t\t\t\t\t@check_outros();`\r\n\t\t\t\t: b`\r\n\t\t\t\t\t${each_block_else}.d(1);\r\n\t\t\t\t\t${each_block_else} = null;`;\r\n\r\n\t\t\tif (this.else.block.has_update_method) {\r\n\t\t\t\tthis.updates.push(b`\r\n\t\t\t\t\tif (!${this.vars.data_length} && ${each_block_else}) {\r\n\t\t\t\t\t\t${each_block_else}.p(${else_ctx}, #dirty);\r\n\t\t\t\t\t} else if (!${this.vars.data_length}) {\r\n\t\t\t\t\t\t${each_block_else} = ${this.else.block.name}(${else_ctx});\r\n\t\t\t\t\t\t${each_block_else}.c();\r\n\t\t\t\t\t\t${has_transitions && b`@transition_in(${each_block_else}, 1);`}\r\n\t\t\t\t\t\t${each_block_else}.m(${update_mount_node}, ${update_anchor_node});\r\n\t\t\t\t\t} else if (${each_block_else}) {\r\n\t\t\t\t\t\t${destroy_block_else};\r\n\t\t\t\t\t}\r\n\t\t\t\t`);\r\n\t\t\t} else {\r\n\t\t\t\tthis.updates.push(b`\r\n\t\t\t\t\tif (${this.vars.data_length}) {\r\n\t\t\t\t\t\tif (${each_block_else}) {\r\n\t\t\t\t\t\t\t${destroy_block_else};\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (!${each_block_else}) {\r\n\t\t\t\t\t\t${each_block_else} = ${this.else.block.name}(${else_ctx});\r\n\t\t\t\t\t\t${each_block_else}.c();\r\n\t\t\t\t\t\t${has_transitions && b`@transition_in(${each_block_else}, 1);`}\r\n\t\t\t\t\t\t${each_block_else}.m(${update_mount_node}, ${update_anchor_node});\r\n\t\t\t\t\t}\r\n\t\t\t\t`);\r\n\t\t\t}\r\n\r\n\t\t\tblock.chunks.destroy.push(b`\r\n\t\t\t\tif (${each_block_else}) ${each_block_else}.d(${parent_node ? '' : 'detaching'});\r\n\t\t\t`);\r\n\t\t}\r\n\r\n\t\tif (this.updates.length) {\r\n\t\t\tblock.chunks.update.push(b`\r\n\t\t\t\tif (${block.renderer.dirty(Array.from(all_dependencies))}) {\r\n\t\t\t\t\t${this.updates}\r\n\t\t\t\t}\r\n\t\t\t`);\r\n\t\t}\r\n\r\n\t\tthis.fragment.render(this.block, null, x`#nodes` as Identifier);\r\n\r\n\t\tif (this.else) {\r\n\t\t\tthis.else.fragment.render(this.else.block, null, x`#nodes` as Identifier);\r\n\t\t}\r\n\r\n\t\tthis.context_props = this.node.contexts.map(prop => b`child_ctx[${renderer.context_lookup.get(prop.key.name).index}] = ${prop.default_modifier(prop.modifier(x`list[i]`), name => renderer.context_lookup.has(name) ? x`child_ctx[${renderer.context_lookup.get(name).index}]` : { type: 'Identifier', name })};`);\r\n\r\n\t\tif (this.node.has_binding) this.context_props.push(b`child_ctx[${renderer.context_lookup.get(this.vars.each_block_value.name).index}] = list;`);\r\n\t\tif (this.node.has_binding || this.node.has_index_binding || this.node.index) this.context_props.push(b`child_ctx[${renderer.context_lookup.get(this.index_name.name).index}] = i;`);\r\n\r\n\t\t// TODO which is better — Object.create(array) or array.slice()?\r\n\t\trenderer.blocks.push(b`\r\n\t\t\tfunction ${this.vars.get_each_context}(#ctx, list, i) {\r\n\t\t\t\tconst child_ctx = #ctx.slice();\r\n\t\t\t\t${this.context_props}\r\n\t\t\t\t${add_const_tags(this.block, this.node.const_tags, 'child_ctx')}\r\n\t\t\t\treturn child_ctx;\r\n\t\t\t}\r\n\t\t`);\r\n\t}\r\n\r\n\trender_keyed({\r\n\t\tblock,\r\n\t\tparent_node,\r\n\t\tparent_nodes,\r\n\t\tsnippet,\r\n\t\tinitial_anchor_node,\r\n\t\tinitial_mount_node,\r\n\t\tupdate_anchor_node,\r\n\t\tupdate_mount_node\r\n\t}: {\r\n\t\tblock: Block;\r\n\t\tparent_node: Identifier;\r\n\t\tparent_nodes: Identifier;\r\n\t\tsnippet: Node;\r\n\t\tinitial_anchor_node: Identifier;\r\n\t\tinitial_mount_node: Identifier;\r\n\t\tupdate_anchor_node: Identifier;\r\n\t\tupdate_mount_node: Identifier;\r\n\t}) {\r\n\t\tconst {\r\n\t\t\tcreate_each_block,\r\n\t\t\titerations,\r\n\t\t\tdata_length,\r\n\t\t\tview_length\r\n\t\t} = this.vars;\r\n\r\n\t\tconst get_key = block.get_unique_name('get_key');\r\n\t\tconst lookup = block.get_unique_name(`${this.var.name}_lookup`);\r\n\r\n\t\tblock.add_variable(iterations, x`[]`);\r\n\t\tblock.add_variable(lookup, x`new @_Map()`);\r\n\r\n\t\tif (this.fragment.nodes[0].is_dom_node()) {\r\n\t\t\tthis.block.first = this.fragment.nodes[0].var;\r\n\t\t} else {\r\n\t\t\tthis.block.first = this.block.get_unique_name('first');\r\n\t\t\tthis.block.add_element(\r\n\t\t\t\tthis.block.first,\r\n\t\t\t\tx`@empty()`,\r\n\t\t\t\tparent_nodes && x`@empty()`,\r\n\t\t\t\tnull\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tblock.chunks.init.push(b`\r\n\t\t\tconst ${get_key} = #ctx => ${this.node.key.manipulate(block)};\r\n\r\n\t\t\t${this.renderer.options.dev && b`@validate_each_keys(#ctx, ${this.vars.each_block_value}, ${this.vars.get_each_context}, ${get_key});`}\r\n\t\t\tfor (let #i = 0; #i < ${data_length}; #i += 1) {\r\n\t\t\t\tlet child_ctx = ${this.vars.get_each_context}(#ctx, ${this.vars.each_block_value}, #i);\r\n\t\t\t\tlet key = ${get_key}(child_ctx);\r\n\t\t\t\t${lookup}.set(key, ${iterations}[#i] = ${create_each_block}(key, child_ctx));\r\n\t\t\t}\r\n\t\t`);\r\n\r\n\t\tblock.chunks.create.push(b`\r\n\t\t\tfor (let #i = 0; #i < ${view_length}; #i += 1) {\r\n\t\t\t\t${iterations}[#i].c();\r\n\t\t\t}\r\n\t\t`);\r\n\r\n\t\tif (parent_nodes && this.renderer.options.hydratable) {\r\n\t\t\tblock.chunks.claim.push(b`\r\n\t\t\t\tfor (let #i = 0; #i < ${view_length}; #i += 1) {\r\n\t\t\t\t\t${iterations}[#i].l(${parent_nodes});\r\n\t\t\t\t}\r\n\t\t\t`);\r\n\t\t}\r\n\r\n\t\tblock.chunks.mount.push(b`\r\n\t\t\tfor (let #i = 0; #i < ${view_length}; #i += 1) {\r\n\t\t\t\t${iterations}[#i].m(${initial_mount_node}, ${initial_anchor_node});\r\n\t\t\t}\r\n\t\t`);\r\n\r\n\t\tconst dynamic = this.block.has_update_method;\r\n\r\n\t\tconst destroy = this.node.has_animation\r\n\t\t\t? (this.block.has_outros\r\n\t\t\t\t? '@fix_and_outro_and_destroy_block'\r\n\t\t\t\t: '@fix_and_destroy_block')\r\n\t\t\t: this.block.has_outros\r\n\t\t\t\t? '@outro_and_destroy_block'\r\n\t\t\t\t: '@destroy_block';\r\n\r\n\t\tif (this.dependencies.size) {\r\n\t\t\tthis.block.maintain_context = true;\r\n\r\n\t\t\tthis.updates.push(b`\r\n\t\t\t\t${this.vars.each_block_value} = ${snippet};\r\n\t\t\t\t${this.renderer.options.dev && b`@validate_each_argument(${this.vars.each_block_value});`}\r\n\r\n\t\t\t\t${this.block.has_outros && b`@group_outros();`}\r\n\t\t\t\t${this.node.has_animation && b`for (let #i = 0; #i < ${view_length}; #i += 1) ${iterations}[#i].r();`}\r\n\t\t\t\t${this.renderer.options.dev && b`@validate_each_keys(#ctx, ${this.vars.each_block_value}, ${this.vars.get_each_context}, ${get_key});`}\r\n\t\t\t\t${iterations} = @update_keyed_each(${iterations}, #dirty, ${get_key}, ${dynamic ? 1 : 0}, #ctx, ${this.vars.each_block_value}, ${lookup}, ${update_mount_node}, ${destroy}, ${create_each_block}, ${update_anchor_node}, ${this.vars.get_each_context});\r\n\t\t\t\t${this.node.has_animation && b`for (let #i = 0; #i < ${view_length}; #i += 1) ${iterations}[#i].a();`}\r\n\t\t\t\t${this.block.has_outros && b`@check_outros();`}\r\n\t\t\t`);\r\n\t\t}\r\n\r\n\t\tif (this.block.has_outros) {\r\n\t\t\tblock.chunks.outro.push(b`\r\n\t\t\t\tfor (let #i = 0; #i < ${view_length}; #i += 1) {\r\n\t\t\t\t\t@transition_out(${iterations}[#i]);\r\n\t\t\t\t}\r\n\t\t\t`);\r\n\t\t}\r\n\r\n\t\tblock.chunks.destroy.push(b`\r\n\t\t\tfor (let #i = 0; #i < ${view_length}; #i += 1) {\r\n\t\t\t\t${iterations}[#i].d(${parent_node ? null : 'detaching'});\r\n\t\t\t}\r\n\t\t`);\r\n\t}\r\n\r\n\trender_unkeyed({\r\n\t\tblock,\r\n\t\tparent_nodes,\r\n\t\tsnippet,\r\n\t\tinitial_anchor_node,\r\n\t\tinitial_mount_node,\r\n\t\tupdate_anchor_node,\r\n\t\tupdate_mount_node\r\n\t}: {\r\n\t\tblock: Block;\r\n\t\tparent_nodes: Identifier;\r\n\t\tsnippet: Node;\r\n\t\tinitial_anchor_node: Identifier;\r\n\t\tinitial_mount_node: Identifier;\r\n\t\tupdate_anchor_node: Identifier;\r\n\t\tupdate_mount_node: Identifier;\r\n\t}) {\r\n\t\tconst {\r\n\t\t\tcreate_each_block,\r\n\t\t\titerations,\r\n\t\t\tfixed_length,\r\n\t\t\tdata_length,\r\n\t\t\tview_length\r\n\t\t} = this.vars;\r\n\r\n\t\tblock.chunks.init.push(b`\r\n\t\t\tlet ${iterations} = [];\r\n\r\n\t\t\tfor (let #i = 0; #i < ${data_length}; #i += 1) {\r\n\t\t\t\t${iterations}[#i] = ${create_each_block}(${this.vars.get_each_context}(#ctx, ${this.vars.each_block_value}, #i));\r\n\t\t\t}\r\n\t\t`);\r\n\r\n\t\tblock.chunks.create.push(b`\r\n\t\t\tfor (let #i = 0; #i < ${view_length}; #i += 1) {\r\n\t\t\t\t${iterations}[#i].c();\r\n\t\t\t}\r\n\t\t`);\r\n\r\n\t\tif (parent_nodes && this.renderer.options.hydratable) {\r\n\t\t\tblock.chunks.claim.push(b`\r\n\t\t\t\tfor (let #i = 0; #i < ${view_length}; #i += 1) {\r\n\t\t\t\t\t${iterations}[#i].l(${parent_nodes});\r\n\t\t\t\t}\r\n\t\t\t`);\r\n\t\t}\r\n\r\n\t\tblock.chunks.mount.push(b`\r\n\t\t\tfor (let #i = 0; #i < ${view_length}; #i += 1) {\r\n\t\t\t\t${iterations}[#i].m(${initial_mount_node}, ${initial_anchor_node});\r\n\t\t\t}\r\n\t\t`);\r\n\r\n\t\tif (this.dependencies.size) {\r\n\t\t\tconst has_transitions = !!(this.block.has_intro_method || this.block.has_outro_method);\r\n\r\n\t\t\tconst for_loop_body = this.block.has_update_method\r\n\t\t\t\t? b`\r\n\t\t\t\t\tif (${iterations}[#i]) {\r\n\t\t\t\t\t\t${iterations}[#i].p(child_ctx, #dirty);\r\n\t\t\t\t\t\t${has_transitions && b`@transition_in(${this.vars.iterations}[#i], 1);`}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t${iterations}[#i] = ${create_each_block}(child_ctx);\r\n\t\t\t\t\t\t${iterations}[#i].c();\r\n\t\t\t\t\t\t${has_transitions && b`@transition_in(${this.vars.iterations}[#i], 1);`}\r\n\t\t\t\t\t\t${iterations}[#i].m(${update_mount_node}, ${update_anchor_node});\r\n\t\t\t\t\t}\r\n\t\t\t\t`\r\n\t\t\t\t: has_transitions\r\n\t\t\t\t\t? b`\r\n\t\t\t\t\t\tif (${iterations}[#i]) {\r\n\t\t\t\t\t\t\t@transition_in(${this.vars.iterations}[#i], 1);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t${iterations}[#i] = ${create_each_block}(child_ctx);\r\n\t\t\t\t\t\t\t${iterations}[#i].c();\r\n\t\t\t\t\t\t\t@transition_in(${this.vars.iterations}[#i], 1);\r\n\t\t\t\t\t\t\t${iterations}[#i].m(${update_mount_node}, ${update_anchor_node});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t`\r\n\t\t\t\t\t: b`\r\n\t\t\t\t\t\tif (!${iterations}[#i]) {\r\n\t\t\t\t\t\t\t${iterations}[#i] = ${create_each_block}(child_ctx);\r\n\t\t\t\t\t\t\t${iterations}[#i].c();\r\n\t\t\t\t\t\t\t${iterations}[#i].m(${update_mount_node}, ${update_anchor_node});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t`;\r\n\r\n\t\t\tconst start = this.block.has_update_method ? 0 : '#old_length';\r\n\r\n\t\t\tlet remove_old_blocks;\r\n\r\n\t\t\tif (this.block.has_outros) {\r\n\t\t\t\tconst out = block.get_unique_name('out');\r\n\r\n\t\t\t\tblock.chunks.init.push(b`\r\n\t\t\t\t\tconst ${out} = i => @transition_out(${iterations}[i], 1, 1, () => {\r\n\t\t\t\t\t\t${iterations}[i] = null;\r\n\t\t\t\t\t});\r\n\t\t\t\t`);\r\n\t\t\t\tremove_old_blocks = b`\r\n\t\t\t\t\t@group_outros();\r\n\t\t\t\t\tfor (#i = ${data_length}; #i < ${view_length}; #i += 1) {\r\n\t\t\t\t\t\t${out}(#i);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t@check_outros();\r\n\t\t\t\t`;\r\n\t\t\t} else {\r\n\t\t\t\tremove_old_blocks = b`\r\n\t\t\t\t\tfor (${this.block.has_update_method ? null : x`#i = ${data_length}`}; #i < ${this.block.has_update_method ? view_length : '#old_length'}; #i += 1) {\r\n\t\t\t\t\t\t${iterations}[#i].d(1);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t${!fixed_length && b`${view_length} = ${data_length};`}\r\n\t\t\t\t`;\r\n\t\t\t}\r\n\r\n\t\t\t// We declare `i` as block scoped here, as the `remove_old_blocks` code\r\n\t\t\t// may rely on continuing where this iteration stopped.\r\n\t\t\tconst update = b`\r\n\t\t\t\t${!this.block.has_update_method && b`const #old_length = ${this.vars.each_block_value}.length;`}\r\n\t\t\t\t${this.vars.each_block_value} = ${snippet};\r\n\t\t\t\t${this.renderer.options.dev && b`@validate_each_argument(${this.vars.each_block_value});`}\r\n\r\n\t\t\t\tlet #i;\r\n\t\t\t\tfor (#i = ${start}; #i < ${data_length}; #i += 1) {\r\n\t\t\t\t\tconst child_ctx = ${this.vars.get_each_context}(#ctx, ${this.vars.each_block_value}, #i);\r\n\r\n\t\t\t\t\t${for_loop_body}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t${remove_old_blocks}\r\n\t\t\t`;\r\n\r\n\t\t\tthis.updates.push(update);\r\n\t\t}\r\n\r\n\t\tif (this.block.has_outros) {\r\n\t\t\tblock.chunks.outro.push(b`\r\n\t\t\t\t${iterations} = ${iterations}.filter(@_Boolean);\r\n\t\t\t\tfor (let #i = 0; #i < ${view_length}; #i += 1) {\r\n\t\t\t\t\t@transition_out(${iterations}[#i]);\r\n\t\t\t\t}\r\n\t\t\t`);\r\n\t\t}\r\n\r\n\t\tblock.chunks.destroy.push(b`@destroy_each(${iterations}, detaching);`);\r\n\t}\r\n}\r\n","import Renderer from '../Renderer';\r\nimport Block from '../Block';\r\nimport Text from '../../nodes/Text';\r\nimport Wrapper from './shared/Wrapper';\r\nimport { x } from 'code-red';\r\nimport { Identifier } from 'estree';\r\n\r\nexport default class TextWrapper extends Wrapper {\r\n\tnode: Text;\r\n\tdata: string;\r\n\tskip: boolean;\r\n\tvar: Identifier;\r\n\r\n\tconstructor(\r\n\t\trenderer: Renderer,\r\n\t\tblock: Block,\r\n\t\tparent: Wrapper,\r\n\t\tnode: Text,\r\n\t\tdata: string\r\n\t) {\r\n\t\tsuper(renderer, block, parent, node);\r\n\r\n\t\tthis.skip = this.node.should_skip();\r\n\t\tthis.data = data;\r\n\t\tthis.var = (this.skip ? null : x`t`) as unknown as Identifier;\r\n\t}\r\n\r\n\tuse_space() {\r\n\t\tif (this.renderer.component.component_options.preserveWhitespace) return false;\r\n\t\tif (/[\\S\\u00A0]/.test(this.data)) return false;\r\n\r\n\t\treturn !this.node.within_pre();\r\n\t}\r\n\r\n\trender(block: Block, parent_node: Identifier, parent_nodes: Identifier) {\r\n\t\tif (this.skip) return;\r\n\t\tconst use_space = this.use_space();\r\n\r\n\t\tconst string_literal = {\r\n\t\t\ttype: 'Literal',\r\n\t\t\tvalue: this.data,\r\n\t\t\tloc: {\r\n\t\t\t\tstart: this.renderer.locate(this.node.start),\r\n\t\t\t\tend: this.renderer.locate(this.node.end)\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tblock.add_element(\r\n\t\t\tthis.var,\r\n\t\t\tuse_space ? x`@space()` : x`@text(${string_literal})`,\r\n\t\t\tparent_nodes && (use_space ? x`@claim_space(${parent_nodes})` : x`@claim_text(${parent_nodes}, ${string_literal})`),\r\n\t\t\tparent_node as Identifier\r\n\t\t);\r\n\t}\r\n}\r\n","const svg_attributes = 'accent-height accumulate additive alignment-baseline allowReorder alphabetic amplitude arabic-form ascent attributeName attributeType autoReverse azimuth baseFrequency baseline-shift baseProfile bbox begin bias by calcMode cap-height class clip clipPathUnits clip-path clip-rule color color-interpolation color-interpolation-filters color-profile color-rendering contentScriptType contentStyleType cursor cx cy d decelerate descent diffuseConstant direction display divisor dominant-baseline dur dx dy edgeMode elevation enable-background end exponent externalResourcesRequired fill fill-opacity fill-rule filter filterRes filterUnits flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight format from fr fx fy g1 g2 glyph-name glyph-orientation-horizontal glyph-orientation-vertical glyphRef gradientTransform gradientUnits hanging height href horiz-adv-x horiz-origin-x id ideographic image-rendering in in2 intercept k k1 k2 k3 k4 kernelMatrix kernelUnitLength kerning keyPoints keySplines keyTimes lang lengthAdjust letter-spacing lighting-color limitingConeAngle local marker-end marker-mid marker-start markerHeight markerUnits markerWidth mask maskContentUnits maskUnits mathematical max media method min mode name numOctaves offset onabort onactivate onbegin onclick onend onerror onfocusin onfocusout onload onmousedown onmousemove onmouseout onmouseover onmouseup onrepeat onresize onscroll onunload opacity operator order orient orientation origin overflow overline-position overline-thickness panose-1 paint-order pathLength patternContentUnits patternTransform patternUnits pointer-events points pointsAtX pointsAtY pointsAtZ preserveAlpha preserveAspectRatio primitiveUnits r radius refX refY rendering-intent repeatCount repeatDur requiredExtensions requiredFeatures restart result rotate rx ry scale seed shape-rendering slope spacing specularConstant specularExponent speed spreadMethod startOffset stdDeviation stemh stemv stitchTiles stop-color stop-opacity strikethrough-position strikethrough-thickness string stroke stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width style surfaceScale systemLanguage tabindex tableValues target targetX targetY text-anchor text-decoration text-rendering textLength to transform type u1 u2 underline-position underline-thickness unicode unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical values version vert-adv-y vert-origin-x vert-origin-y viewBox viewTarget visibility width widths word-spacing writing-mode x x-height x1 x2 xChannelSelector xlink:actuate xlink:arcrole xlink:href xlink:role xlink:show xlink:title xlink:type xml:base xml:lang xml:space y y1 y2 yChannelSelector z zoomAndPan'.split(' ');\r\n\r\nconst svg_attribute_lookup = new Map();\r\n\r\nsvg_attributes.forEach(name => {\r\n\tsvg_attribute_lookup.set(name.toLowerCase(), name);\r\n});\r\n\r\nexport default function fix_attribute_casing(name) {\r\n\tname = name.toLowerCase();\r\n\treturn svg_attribute_lookup.get(name) || name;\r\n}\r\n","import AttributeWrapper from './Attribute';\r\nimport BindingWrapper from './Binding';\r\nimport ElementWrapper from './index';\r\n\r\nexport default function handle_select_value_binding(\r\n\tattr: AttributeWrapper | BindingWrapper,\r\n\tdependencies: Set<string>\r\n) {\r\n\tconst { parent } = attr;\r\n\tif (parent.node.name === 'select') {\r\n\t\t(parent as ElementWrapper).select_binding_dependencies = dependencies;\r\n\t\tdependencies.forEach((prop: string) => {\r\n\t\t\tparent.renderer.component.indirect_dependencies.set(prop, new Set());\r\n\t\t});\r\n\t}\r\n}\r\n","import Attribute from '../../../nodes/Attribute';\r\nimport Block from '../../Block';\r\nimport fix_attribute_casing from './fix_attribute_casing';\r\nimport ElementWrapper from './index';\r\nimport { string_literal } from '../../../utils/stringify';\r\nimport { b, x } from 'code-red';\r\nimport Expression from '../../../nodes/shared/Expression';\r\nimport Text from '../../../nodes/Text';\r\nimport handle_select_value_binding from './handle_select_value_binding';\r\nimport { Identifier, Node } from 'estree';\r\nimport { namespaces } from '../../../../utils/namespaces';\r\n\r\nconst non_textlike_input_types = new Set([\r\n\t'button',\r\n\t'checkbox',\r\n\t'color',\r\n\t'date',\r\n\t'datetime-local',\r\n\t'file',\r\n\t'hidden',\r\n\t'image',\r\n\t'radio',\r\n\t'range',\r\n\t'reset',\r\n\t'submit'\r\n]);\r\n\r\nexport class BaseAttributeWrapper {\r\n\tnode: Attribute;\r\n\tparent: ElementWrapper;\r\n\r\n\tconstructor(parent: ElementWrapper, block: Block, node: Attribute) {\r\n\t\tthis.node = node;\r\n\t\tthis.parent = parent;\r\n\r\n\t\tif (node.dependencies.size > 0) {\r\n\t\t\tparent.cannot_use_innerhtml();\r\n\t\t\tparent.not_static_content();\r\n\r\n\t\t\tblock.add_dependencies(node.dependencies);\r\n\t\t}\r\n\t}\r\n\r\n\trender(_block: Block) {}\r\n}\r\n\r\nexport default class AttributeWrapper extends BaseAttributeWrapper {\r\n\tnode: Attribute;\r\n\tparent: ElementWrapper;\r\n\tmetadata: any;\r\n\tname: string;\r\n\tproperty_name: string;\r\n\tis_indirectly_bound_value: boolean;\r\n\tis_src: boolean;\r\n\tis_select_value_attribute: boolean;\r\n\tis_input_value: boolean;\r\n\tshould_cache: boolean;\r\n\tlast: Identifier;\r\n\r\n\tconstructor(parent: ElementWrapper, block: Block, node: Attribute) {\r\n\t\tsuper(parent, block, node);\r\n\r\n\t\tif (node.dependencies.size > 0) {\r\n\t\t\t// special case — <option value={foo}> — see below\r\n\t\t\tif (this.parent.node.name === 'option' && node.name === 'value') {\r\n\t\t\t\tlet select: ElementWrapper = this.parent;\r\n\t\t\t\twhile (select && (select.node.type !== 'Element' || select.node.name !== 'select')) {\r\n\t\t\t\t\t// @ts-ignore todo: doublecheck this, but looks to be correct\r\n\t\t\t\t\tselect = select.parent;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (select && select.select_binding_dependencies) {\r\n\t\t\t\t\tselect.select_binding_dependencies.forEach(prop => {\r\n\t\t\t\t\t\tthis.node.dependencies.forEach((dependency: string) => {\r\n\t\t\t\t\t\t\tthis.parent.renderer.component.indirect_dependencies.get(prop).add(dependency);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (node.name === 'value') {\r\n\t\t\t\thandle_select_value_binding(this, node.dependencies);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.parent.node.namespace == namespaces.foreign) {\r\n\t\t\t// leave attribute case alone for elements in the \"foreign\" namespace\r\n\t\t\tthis.name = this.node.name;\r\n\t\t\tthis.metadata = this.get_metadata();\r\n\t\t\tthis.is_indirectly_bound_value = false;\r\n\t\t\tthis.property_name = null;\r\n\t\t\tthis.is_select_value_attribute = false;\r\n\t\t\tthis.is_input_value = false;\r\n\t\t} else {\r\n\t\t\tthis.name = fix_attribute_casing(this.node.name);\r\n\t\t\tthis.metadata = this.get_metadata();\r\n\t\t\tthis.is_indirectly_bound_value = is_indirectly_bound_value(this);\r\n\t\t\tthis.property_name = this.is_indirectly_bound_value\r\n\t\t\t\t? '__value'\r\n\t\t\t\t: this.metadata && this.metadata.property_name;\r\n\t\t\tthis.is_select_value_attribute = this.name === 'value' && this.parent.node.name === 'select';\r\n\t\t\tthis.is_input_value = this.name === 'value' && this.parent.node.name === 'input';\r\n\t\t}\r\n\r\n\t\t// TODO retire this exception in favour of https://github.com/sveltejs/svelte/issues/3750\r\n\t\tthis.is_src = this.name === 'src' && (!this.parent.node.namespace || this.parent.node.namespace === namespaces.html);\r\n\t\tthis.should_cache = should_cache(this);\r\n\t}\r\n\r\n\trender(block: Block) {\r\n\t\tconst element = this.parent;\r\n\t\tconst { name, property_name, should_cache, is_indirectly_bound_value } = this;\r\n\r\n\t\t// xlink is a special case... we could maybe extend this to generic\r\n\t\t// namespaced attributes but I'm not sure that's applicable in\r\n\t\t// HTML5?\r\n\t\tconst method = /-/.test(element.node.name)\r\n\t\t\t? '@set_custom_element_data'\r\n\t\t\t: name.slice(0, 6) === 'xlink:'\r\n\t\t\t\t? '@xlink_attr'\r\n\t\t\t\t: '@attr';\r\n\r\n\t\tconst is_legacy_input_type = element.renderer.component.compile_options.legacy && name === 'type' && this.parent.node.name === 'input';\r\n\r\n\t\tconst dependencies = this.get_dependencies();\r\n\t\tconst value = this.get_value(block);\r\n\r\n\t\tlet updater;\r\n\t\tconst init = this.get_init(block, value);\r\n\r\n\t\tif (is_legacy_input_type) {\r\n\t\t\tblock.chunks.hydrate.push(\r\n\t\t\t\tb`@set_input_type(${element.var}, ${init});`\r\n\t\t\t);\r\n\t\t\tupdater = b`@set_input_type(${element.var}, ${should_cache ? this.last : value});`;\r\n\t\t} else if (this.is_select_value_attribute) {\r\n\t\t\t// annoying special case\r\n\t\t\tconst is_multiple_select = element.node.get_static_attribute_value('multiple');\r\n\r\n\t\t\tif (is_multiple_select) {\r\n\t\t\t\tupdater = b`@select_options(${element.var}, ${value});`;\r\n\t\t\t} else {\r\n\t\t\t\tupdater = b`@select_option(${element.var}, ${value});`;\r\n\t\t\t}\r\n\r\n\t\t\tblock.chunks.mount.push(b`\r\n\t\t\t\t${updater}\r\n\t\t\t`);\r\n\t\t} else if (this.is_src) {\r\n\t\t\tblock.chunks.hydrate.push(\r\n\t\t\t\tb`if (!@src_url_equal(${element.var}.src, ${init})) ${method}(${element.var}, \"${name}\", ${this.last});`\r\n\t\t\t);\r\n\t\t\tupdater = b`${method}(${element.var}, \"${name}\", ${should_cache ? this.last : value});`;\r\n\t\t} else if (property_name) {\r\n\t\t\tblock.chunks.hydrate.push(\r\n\t\t\t\tb`${element.var}.${property_name} = ${init};`\r\n\t\t\t);\r\n\t\t\tupdater = block.renderer.options.dev\r\n\t\t\t\t? b`@prop_dev(${element.var}, \"${property_name}\", ${should_cache ? this.last : value});`\r\n\t\t\t\t: b`${element.var}.${property_name} = ${should_cache ? this.last : value};`;\r\n\t\t} else {\r\n\t\t\tblock.chunks.hydrate.push(\r\n\t\t\t\tb`${method}(${element.var}, \"${name}\", ${init});`\r\n\t\t\t);\r\n\t\t\tupdater = b`${method}(${element.var}, \"${name}\", ${should_cache ? this.last : value});`;\r\n\t\t}\r\n\r\n\t\tif (is_indirectly_bound_value) {\r\n\t\t\tconst update_value = b`${element.var}.value = ${element.var}.__value;`;\r\n\t\t\tblock.chunks.hydrate.push(update_value);\r\n\r\n\t\t\tupdater = b`\r\n\t\t\t\t${updater}\r\n\t\t\t\t${update_value};\r\n\t\t\t`;\r\n\t\t}\r\n\r\n\t\tif (dependencies.length > 0) {\r\n\t\t\tconst condition = this.get_dom_update_conditions(block, block.renderer.dirty(dependencies));\r\n\r\n\t\t\tblock.chunks.update.push(b`\r\n\t\t\t\tif (${condition}) {\r\n\t\t\t\t\t${updater}\r\n\t\t\t\t}`);\r\n\t\t}\r\n\r\n\t\t// special case – autofocus. has to be handled in a bit of a weird way\r\n\t\tif (name === 'autofocus') {\r\n\t\t\tblock.autofocus = {\r\n\t\t\t\telement_var: element.var,\r\n\t\t\t\tcondition_expression: this.node.is_true ? undefined : value\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\tget_init(block: Block, value) {\r\n\t\tthis.last = this.should_cache && block.get_unique_name(\r\n\t\t\t`${this.parent.var.name}_${this.name.replace(/[^a-zA-Z_$]/g, '_')}_value`\r\n\t\t);\r\n\r\n\t\tif (this.should_cache) block.add_variable(this.last);\r\n\r\n\t\treturn this.should_cache ? x`${this.last} = ${value}` : value;\r\n\t}\r\n\r\n\tget_dom_update_conditions(block: Block, dependency_condition: Node) {\r\n\t\tconst { property_name, should_cache, last } = this;\r\n\t\tconst element = this.parent;\r\n\t\tconst value = this.get_value(block);\r\n\r\n\t\tlet condition = dependency_condition;\r\n\r\n\t\tif (should_cache) {\r\n\t\t\tcondition = this.is_src\r\n\t\t\t\t? x`${condition} && (!@src_url_equal(${element.var}.src, (${last} = ${value})))`\r\n\t\t\t\t: x`${condition} && (${last} !== (${last} = ${value}))`;\r\n\t\t}\r\n\r\n\t\tif (this.is_input_value) {\r\n\t\t\tconst type = element.node.get_static_attribute_value('type');\r\n\t\t\tif (type !== true && !non_textlike_input_types.has(type)) {\r\n\t\t\t\tcondition = x`${condition} && ${element.var}.${property_name} !== ${should_cache ? last : value}`;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (block.has_outros) {\r\n\t\t\tcondition = x`!#current || ${condition}`;\r\n\t\t}\r\n\r\n\t\treturn condition;\r\n\t}\r\n\r\n\tget_dependencies() {\r\n\t\tconst node_dependencies = this.node.get_dependencies();\r\n\t\tconst dependencies = new Set(node_dependencies);\r\n\r\n\t\tnode_dependencies.forEach((prop: string) => {\r\n\t\t\tconst indirect_dependencies = this.parent.renderer.component.indirect_dependencies.get(prop);\r\n\t\t\tif (indirect_dependencies) {\r\n\t\t\t\tindirect_dependencies.forEach(indirect_dependency => {\r\n\t\t\t\t\tdependencies.add(indirect_dependency);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn Array.from(dependencies);\r\n\t}\r\n\r\n\tget_metadata() {\r\n\t\tif (this.parent.node.namespace) return null;\r\n\t\tconst metadata = attribute_lookup[this.name];\r\n\t\tif (metadata && metadata.applies_to && !metadata.applies_to.includes(this.parent.node.name)) return null;\r\n\t\treturn metadata;\r\n\t}\r\n\r\n\tget_value(block) {\r\n\t\tif (this.node.is_true) {\r\n\t\t\tif (this.metadata && boolean_attribute.has(this.metadata.property_name.toLowerCase())) {\r\n\t\t\t\treturn x`true`;\r\n\t\t\t}\r\n\t\t\treturn x`\"\"`;\r\n\t\t}\r\n\t\tif (this.node.chunks.length === 0) return x`\"\"`;\r\n\r\n\t\t// TODO some of this code is repeated in Tag.ts — would be good to\r\n\t\t// DRY it out if that's possible without introducing crazy indirection\r\n\t\tif (this.node.chunks.length === 1) {\r\n\t\t\treturn this.node.chunks[0].type === 'Text'\r\n\t\t\t\t? string_literal((this.node.chunks[0] as Text).data)\r\n\t\t\t\t: (this.node.chunks[0] as Expression).manipulate(block);\r\n\t\t}\r\n\r\n\t\tlet value = this.node.name === 'class'\r\n\t\t\t? this.get_class_name_text(block)\r\n\t\t\t: this.render_chunks(block).reduce((lhs, rhs) => x`${lhs} + ${rhs}`);\r\n\r\n\t\t// '{foo} {bar}' — treat as string concatenation\r\n\t\tif (this.node.chunks[0].type !== 'Text') {\r\n\t\t\tvalue = x`\"\" + ${value}`;\r\n\t\t}\r\n\r\n\t\treturn value;\r\n\t}\r\n\r\n\tget_class_name_text(block) {\r\n\t\tconst scoped_css = this.node.chunks.some((chunk: Text) => chunk.synthetic);\r\n\t\tconst rendered = this.render_chunks(block);\r\n\r\n\t\tif (scoped_css && rendered.length === 2) {\r\n\t\t\t// we have a situation like class={possiblyUndefined}\r\n\t\t\trendered[0] = x`@null_to_empty(${rendered[0]})`;\r\n\t\t}\r\n\r\n\t\treturn rendered.reduce((lhs, rhs) => x`${lhs} + ${rhs}`);\r\n\t}\r\n\r\n\trender_chunks(block: Block) {\r\n\t\treturn this.node.chunks.map((chunk) => {\r\n\t\t\tif (chunk.type === 'Text') {\r\n\t\t\t\treturn string_literal(chunk.data);\r\n\t\t\t}\r\n\r\n\t\t\treturn chunk.manipulate(block);\r\n\t\t});\r\n\t}\r\n\r\n\tstringify() {\r\n\t\tif (this.node.is_true) return '';\r\n\r\n\t\tconst value = this.node.chunks;\r\n\t\tif (value.length === 0) return '=\"\"';\r\n\r\n\t\treturn `=\"${value.map(chunk => {\r\n\t\t\treturn chunk.type === 'Text'\r\n\t\t\t\t? chunk.data.replace(/\"/g, '\\\\\"')\r\n\t\t\t\t: `\\${${chunk.manipulate()}}`;\r\n\t\t}).join('')}\"`;\r\n\t}\r\n}\r\n\r\n// source: https://html.spec.whatwg.org/multipage/indices.html\r\nconst attribute_lookup = {\r\n\tallowfullscreen: { property_name: 'allowFullscreen', applies_to: ['iframe'] },\r\n\tallowpaymentrequest: { property_name: 'allowPaymentRequest', applies_to: ['iframe'] },\r\n\tasync: { applies_to: ['script'] },\r\n\tautofocus: { applies_to: ['button', 'input', 'keygen', 'select', 'textarea'] },\r\n\tautoplay: { applies_to: ['audio', 'video'] },\r\n\tchecked: { applies_to: ['input'] },\r\n\tcontrols: { applies_to: ['audio', 'video'] },\r\n\tdefault: { applies_to: ['track'] },\r\n\tdefer: { applies_to: ['script'] },\r\n\tdisabled: {\r\n\t\tapplies_to: [\r\n\t\t\t'button',\r\n\t\t\t'fieldset',\r\n\t\t\t'input',\r\n\t\t\t'keygen',\r\n\t\t\t'optgroup',\r\n\t\t\t'option',\r\n\t\t\t'select',\r\n\t\t\t'textarea'\r\n\t\t]\r\n\t},\r\n\tformnovalidate: { property_name: 'formNoValidate', applies_to: ['button', 'input'] },\r\n\thidden: {},\r\n\tindeterminate: { applies_to: ['input'] },\r\n\tismap: { property_name: 'isMap', applies_to: ['img'] },\r\n\tloop: { applies_to: ['audio', 'bgsound', 'video'] },\r\n\tmultiple: { applies_to: ['input', 'select'] },\r\n\tmuted: { applies_to: ['audio', 'video'] },\r\n\tnomodule: { property_name: 'noModule', applies_to: ['script'] },\r\n\tnovalidate: { property_name: 'noValidate', applies_to: ['form'] },\r\n\topen: { applies_to: ['details', 'dialog'] },\r\n\tplaysinline: { property_name: 'playsInline', applies_to: ['video'] },\r\n\treadonly: { property_name: 'readOnly', applies_to: ['input', 'textarea'] },\r\n\trequired: { applies_to: ['input', 'select', 'textarea'] },\r\n\treversed: { applies_to: ['ol'] },\r\n\tselected: { applies_to: ['option'] },\r\n\tvalue: {\r\n\t\tapplies_to: [\r\n\t\t\t'button',\r\n\t\t\t'option',\r\n\t\t\t'input',\r\n\t\t\t'li',\r\n\t\t\t'meter',\r\n\t\t\t'progress',\r\n\t\t\t'param',\r\n\t\t\t'select',\r\n\t\t\t'textarea'\r\n\t\t]\r\n\t}\r\n};\r\n\r\nObject.keys(attribute_lookup).forEach(name => {\r\n\tconst metadata = attribute_lookup[name];\r\n\tif (!metadata.property_name) metadata.property_name = name;\r\n});\r\n\r\n// source: https://html.spec.whatwg.org/multipage/indices.html\r\nconst boolean_attribute = new Set([\r\n\t'allowfullscreen',\r\n\t'allowpaymentrequest',\r\n\t'async',\r\n\t'autofocus',\r\n\t'autoplay',\r\n\t'checked',\r\n\t'controls',\r\n\t'default',\r\n\t'defer',\r\n\t'disabled',\r\n\t'formnovalidate',\r\n\t'hidden',\r\n\t'ismap',\r\n\t'itemscope',\r\n\t'loop',\r\n\t'multiple',\r\n\t'muted',\r\n\t'nomodule',\r\n\t'novalidate',\r\n\t'open',\r\n\t'playsinline',\r\n\t'readonly',\r\n\t'required',\r\n\t'reversed',\r\n\t'selected'\r\n]);\r\n\r\nfunction should_cache(attribute: AttributeWrapper) {\r\n\treturn attribute.is_src || attribute.node.should_cache();\r\n}\r\n\r\nfunction is_indirectly_bound_value(attribute: AttributeWrapper) {\r\n\tconst element = attribute.parent;\r\n\treturn attribute.name === 'value' &&\r\n\t\t(element.node.name === 'option' || // TODO check it's actually bound\r\n\t\t\t(element.node.name === 'input' &&\r\n\t\t\t\telement.node.bindings.some(\r\n\t\t\t\t\t(binding) =>\r\n\t\t\t\t\t\t/checked|group/.test(binding.name)\r\n\t\t\t\t)));\r\n}\r\n","import { b, x } from 'code-red';\r\nimport Attribute from '../../../nodes/Attribute';\r\nimport Block from '../../Block';\r\nimport AttributeWrapper from './Attribute';\r\nimport ElementWrapper from '../Element';\r\nimport { string_literal } from '../../../utils/stringify';\r\nimport add_to_set from '../../../utils/add_to_set';\r\nimport Expression from '../../../nodes/shared/Expression';\r\nimport Text from '../../../nodes/Text';\r\n\r\nexport interface StyleProp {\r\n\tkey: string;\r\n\tvalue: Array<Text | Expression>;\r\n\timportant: boolean;\r\n}\r\n\r\nexport default class StyleAttributeWrapper extends AttributeWrapper {\r\n\tnode: Attribute;\r\n\tparent: ElementWrapper;\r\n\r\n\trender(block: Block) {\r\n\t\tconst style_props = optimize_style(this.node.chunks);\r\n\t\tif (!style_props) return super.render(block);\r\n\r\n\t\tstyle_props.forEach((prop: StyleProp) => {\r\n\t\t\tlet value;\r\n\r\n\t\t\tif (is_dynamic(prop.value)) {\r\n\t\t\t\tconst prop_dependencies: Set<string> = new Set();\r\n\r\n\t\t\t\tvalue = prop.value\r\n\t\t\t\t\t.map(chunk => {\r\n\t\t\t\t\t\tif (chunk.type === 'Text') {\r\n\t\t\t\t\t\t\treturn string_literal(chunk.data);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tadd_to_set(prop_dependencies, chunk.dynamic_dependencies());\r\n\t\t\t\t\t\t\treturn chunk.manipulate(block);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.reduce((lhs, rhs) => x`${lhs} + ${rhs}`);\r\n\r\n\t\t\t\t// TODO is this necessary? style.setProperty always treats value as string, no?\r\n\t\t\t\t// if (prop.value.length === 1 || prop.value[0].type !== 'Text') {\r\n\t\t\t\t// \tvalue = x`\"\" + ${value}`;\r\n\t\t\t\t// }\r\n\r\n\t\t\t\tif (prop_dependencies.size) {\r\n\t\t\t\t\tlet condition = block.renderer.dirty(Array.from(prop_dependencies));\r\n\r\n\t\t\t\t\tif (block.has_outros) {\r\n\t\t\t\t\t\tcondition = x`!#current || ${condition}`;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst update = b`\r\n\t\t\t\t\t\tif (${condition}) {\r\n\t\t\t\t\t\t\t@set_style(${this.parent.var}, \"${prop.key}\", ${value}, ${prop.important ? 1 : null});\r\n\t\t\t\t\t\t}`;\r\n\r\n\t\t\t\t\tblock.chunks.update.push(update);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tvalue = string_literal((prop.value[0] as Text).data);\r\n\t\t\t}\r\n\r\n\t\t\tblock.chunks.hydrate.push(\r\n\t\t\t\tb`@set_style(${this.parent.var}, \"${prop.key}\", ${value}, ${prop.important ? 1 : null});`\r\n\t\t\t);\r\n\t\t});\r\n\t}\r\n}\r\n\r\nfunction optimize_style(value: Array<Text | Expression>) {\r\n\tconst props: StyleProp[] = [];\r\n\tlet chunks = value.slice();\r\n\r\n\twhile (chunks.length) {\r\n\t\tconst chunk = chunks[0];\r\n\r\n\t\tif (chunk.type !== 'Text') return null;\r\n\r\n\t\tconst key_match = /^\\s*([\\w-]+):\\s*/.exec(chunk.data);\r\n\t\tif (!key_match) return null;\r\n\r\n\t\tconst key = key_match[1];\r\n\r\n\t\tconst offset = key_match.index + key_match[0].length;\r\n\t\tconst remaining_data = chunk.data.slice(offset);\r\n\r\n\t\tif (remaining_data) {\r\n\t\t\tchunks[0] = {\r\n\t\t\t\tstart: chunk.start + offset,\r\n\t\t\t\tend: chunk.end,\r\n\t\t\t\ttype: 'Text',\r\n\t\t\t\tdata: remaining_data\r\n\t\t\t} as Text;\r\n\t\t} else {\r\n\t\t\tchunks.shift();\r\n\t\t}\r\n\r\n\t\tconst result = get_style_value(chunks);\r\n\r\n\t\tprops.push({ key, value: result.value, important: result.important });\r\n\t\tchunks = result.chunks;\r\n\t}\r\n\r\n\treturn props;\r\n}\r\n\r\nfunction get_style_value(chunks: Array<Text | Expression>) {\r\n\tconst value: Array<Text | Expression> = [];\r\n\r\n\tlet in_url = false;\r\n\tlet quote_mark = null;\r\n\tlet escaped = false;\r\n\tlet closed = false;\r\n\r\n\twhile (chunks.length && !closed) {\r\n\t\tconst chunk = chunks.shift();\r\n\r\n\t\tif (chunk.type === 'Text') {\r\n\t\t\tlet c = 0;\r\n\t\t\twhile (c < chunk.data.length) {\r\n\t\t\t\tconst char = chunk.data[c];\r\n\r\n\t\t\t\tif (escaped) {\r\n\t\t\t\t\tescaped = false;\r\n\t\t\t\t} else if (char === '\\\\') {\r\n\t\t\t\t\tescaped = true;\r\n\t\t\t\t} else if (char === quote_mark) {\r\n\t\t\t\t\tquote_mark = null;\r\n\t\t\t\t} else if (char === '\"' || char === \"'\") {\r\n\t\t\t\t\tquote_mark = char;\r\n\t\t\t\t} else if (char === ')' && in_url) {\r\n\t\t\t\t\tin_url = false;\r\n\t\t\t\t} else if (char === 'u' && chunk.data.slice(c, c + 4) === 'url(') {\r\n\t\t\t\t\tin_url = true;\r\n\t\t\t\t} else if (char === ';' && !in_url && !quote_mark) {\r\n\t\t\t\t\tclosed = true;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tc += 1;\r\n\t\t\t}\r\n\r\n\t\t\tif (c > 0) {\r\n\t\t\t\tvalue.push({\r\n\t\t\t\t\ttype: 'Text',\r\n\t\t\t\t\tstart: chunk.start,\r\n\t\t\t\t\tend: chunk.start + c,\r\n\t\t\t\t\tdata: chunk.data.slice(0, c)\r\n\t\t\t\t} as Text);\r\n\t\t\t}\r\n\r\n\t\t\twhile (/[;\\s]/.test(chunk.data[c])) c += 1;\r\n\t\t\tconst remaining_data = chunk.data.slice(c);\r\n\r\n\t\t\tif (remaining_data) {\r\n\t\t\t\tchunks.unshift({\r\n\t\t\t\t\tstart: chunk.start + c,\r\n\t\t\t\t\tend: chunk.end,\r\n\t\t\t\t\ttype: 'Text',\r\n\t\t\t\t\tdata: remaining_data\r\n\t\t\t\t} as Text);\r\n\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tvalue.push(chunk);\r\n\t\t}\r\n\t}\r\n\r\n\tlet important = false;\r\n\r\n\tconst last_chunk = value[value.length - 1];\r\n\tif (last_chunk && last_chunk.type === 'Text' && /\\s*!important\\s*$/.test(last_chunk.data)) {\r\n\t\timportant = true;\r\n\t\tlast_chunk.data = last_chunk.data.replace(/\\s*!important\\s*$/, '');\r\n\t\tif (!last_chunk.data) value.pop();\r\n\t}\r\n\r\n\treturn {\r\n\t\tchunks,\r\n\t\tvalue,\r\n\t\timportant\r\n\t};\r\n}\r\n\r\nfunction is_dynamic(value: Array<Text | Expression>) {\r\n\treturn value.length > 1 || value[0].type !== 'Text';\r\n}\r\n","import { BaseAttributeWrapper } from './Attribute';\r\n\r\nexport default class SpreadAttributeWrapper extends BaseAttributeWrapper {}\r\n","import EachBlock from '../../../nodes/EachBlock';\r\nimport InlineComponentWrapper from '../InlineComponent';\r\nimport ElementWrapper from '../Element';\r\nimport Binding from '../../../nodes/Binding';\r\n\r\nexport default function mark_each_block_bindings(\r\n\tparent: ElementWrapper | InlineComponentWrapper,\r\n\tbinding: Binding\r\n) {\r\n\t// we need to ensure that the each block creates a context including\r\n\t// the list and the index, if they're not otherwise referenced\r\n\tbinding.expression.references.forEach(name => {\r\n\t\tconst each_block = parent.node.scope.get_owner(name);\r\n\t\tif (each_block) {\r\n\t\t\t(each_block as EachBlock).has_binding = true;\r\n\t\t}\r\n\t});\r\n\r\n\tif (binding.name === 'group') {\r\n\t\tconst add_index_binding = (name: string) => {\r\n\t\t\tconst each_block = parent.node.scope.get_owner(name);\r\n\t\t\tif (each_block.type === 'EachBlock') {\r\n\t\t\t\teach_block.has_index_binding = true;\r\n\t\t\t\tfor (const dep of each_block.expression.contextual_dependencies) {\r\n\t\t\t\t\tadd_index_binding(dep);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\t// for `<input bind:group={} >`, we make sure that all the each blocks creates context with `index`\r\n\t\tfor (const name of binding.expression.contextual_dependencies) {\r\n\t\t\tadd_index_binding(name);\r\n\t\t}\r\n\t}\r\n}\r\n","import { b, x } from 'code-red';\r\nimport Binding from '../../../nodes/Binding';\r\nimport ElementWrapper from '../Element';\r\nimport InlineComponentWrapper from '../InlineComponent';\r\nimport get_object from '../../../utils/get_object';\r\nimport replace_object from '../../../utils/replace_object';\r\nimport Block from '../../Block';\r\nimport Renderer from '../../Renderer';\r\nimport flatten_reference from '../../../utils/flatten_reference';\r\nimport { Node, Identifier } from 'estree';\r\nimport add_to_set from '../../../utils/add_to_set';\r\nimport mark_each_block_bindings from '../shared/mark_each_block_bindings';\r\nimport handle_select_value_binding from './handle_select_value_binding';\r\n\r\nexport default class BindingWrapper {\r\n\tnode: Binding;\r\n\tparent: ElementWrapper | InlineComponentWrapper;\r\n\r\n\tobject: string;\r\n\thandler: {\r\n\t\tuses_context: boolean;\r\n\t\tmutation: (Node | Node[]);\r\n\t\tcontextual_dependencies: Set<string>;\r\n\t\tlhs?: Node;\r\n\t};\r\n\tsnippet: Node;\r\n\tis_readonly: boolean;\r\n\tneeds_lock: boolean;\r\n\r\n\tconstructor(block: Block, node: Binding, parent: ElementWrapper | InlineComponentWrapper) {\r\n\t\tthis.node = node;\r\n\t\tthis.parent = parent;\r\n\r\n\t\tconst { dependencies } = this.node.expression;\r\n\r\n\t\tblock.add_dependencies(dependencies);\r\n\r\n\t\t// TODO does this also apply to e.g. `<input type='checkbox' bind:group='foo'>`?\r\n\r\n\t\thandle_select_value_binding(this, dependencies);\r\n\r\n\t\tif (node.is_contextual) {\r\n\t\t\tmark_each_block_bindings(this.parent, this.node);\r\n\t\t}\r\n\r\n\t\tthis.object = get_object(this.node.expression.node).name;\r\n\r\n\t\t// view to model\r\n\t\tthis.handler = get_event_handler(this, parent.renderer, block, this.object, this.node.raw_expression);\r\n\r\n\t\tthis.snippet = this.node.expression.manipulate(block);\r\n\r\n\t\tthis.is_readonly = this.node.is_readonly;\r\n\r\n\t\tthis.needs_lock = this.node.name === 'currentTime';  // TODO others?\r\n\t}\r\n\r\n\tget_dependencies() {\r\n\t\tconst dependencies = new Set(this.node.expression.dependencies);\r\n\r\n\t\tthis.node.expression.dependencies.forEach((prop: string) => {\r\n\t\t\tconst indirect_dependencies = this.parent.renderer.component.indirect_dependencies.get(prop);\r\n\t\t\tif (indirect_dependencies) {\r\n\t\t\t\tindirect_dependencies.forEach(indirect_dependency => {\r\n\t\t\t\t\tdependencies.add(indirect_dependency);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn dependencies;\r\n\t}\r\n\r\n\tget_update_dependencies() {\r\n\t\tconst object = this.object;\r\n\t\tconst dependencies = new Set<string>();\r\n\t\tif (this.node.expression.template_scope.names.has(object)) {\r\n\t\t\tthis.node.expression.template_scope.dependencies_for_name\r\n\t\t\t\t.get(object)\r\n\t\t\t\t.forEach((name) => dependencies.add(name));\r\n\t\t} else {\r\n\t\t\tdependencies.add(object);\r\n\t\t}\r\n\r\n\t\tconst result = new Set(dependencies);\r\n\t\tdependencies.forEach((dependency) => {\r\n\t\t\tconst indirect_dependencies = this.parent.renderer.component.indirect_dependencies.get(dependency);\r\n\t\t\tif (indirect_dependencies) {\r\n\t\t\t\tindirect_dependencies.forEach(indirect_dependency => {\r\n\t\t\t\t\tresult.add(indirect_dependency);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\tis_readonly_media_attribute() {\r\n\t\treturn this.node.is_readonly_media_attribute();\r\n\t}\r\n\r\n\trender(block: Block, lock: Identifier) {\r\n\t\tif (this.is_readonly) return;\r\n\r\n\t\tconst { parent } = this;\r\n\r\n\t\tconst update_conditions: any[] = this.needs_lock ? [x`!${lock}`] : [];\r\n\t\tconst mount_conditions: any[] = [];\r\n\r\n\t\tconst dependency_array = Array.from(this.get_dependencies());\r\n\r\n\t\tif (dependency_array.length > 0) {\r\n\t\t\tupdate_conditions.push(block.renderer.dirty(dependency_array));\r\n\t\t}\r\n\r\n\t\tif (parent.node.name === 'input') {\r\n\t\t\tconst type = parent.node.get_static_attribute_value('type');\r\n\r\n\t\t\tif (\r\n\t\t\t\ttype === null ||\r\n\t\t\t\ttype === '' ||\r\n\t\t\t\ttype === 'text' ||\r\n\t\t\t\ttype === 'email' ||\r\n\t\t\t\ttype === 'password'\r\n\t\t\t) {\r\n\t\t\t\tupdate_conditions.push(\r\n\t\t\t\t\tx`${parent.var}.${this.node.name} !== ${this.snippet}`\r\n\t\t\t\t);\r\n\t\t\t} else if (type === 'number') {\r\n\t\t\t\tupdate_conditions.push(\r\n\t\t\t\t\tx`@to_number(${parent.var}.${this.node.name}) !== ${this.snippet}`\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// model to view\r\n\t\tlet update_dom = get_dom_updater(parent, this);\r\n\t\tlet mount_dom = update_dom;\r\n\r\n\t\t// special cases\r\n\t\tswitch (this.node.name) {\r\n\t\t\tcase 'group':\r\n\t\t\t{\r\n\t\t\t\tconst { binding_group, is_context, contexts, index, keypath } = get_binding_group(parent.renderer, this.node, block);\r\n\r\n\t\t\t\tblock.renderer.add_to_context('$$binding_groups');\r\n\r\n\t\t\t\tif (is_context && !block.binding_group_initialised.has(keypath)) {\r\n\t\t\t\t\tif (contexts.length > 1) {\r\n\t\t\t\t\t\tlet binding_group = x`${block.renderer.reference('$$binding_groups')}[${index}]`;\r\n\t\t\t\t\t\tfor (const name of contexts.slice(0, -1)) {\r\n\t\t\t\t\t\t\tbinding_group = x`${binding_group}[${block.renderer.reference(name)}]`;\r\n\t\t\t\t\t\t\tblock.chunks.init.push(\r\n\t\t\t\t\t\t\t\tb`${binding_group} = ${binding_group} || [];`\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tblock.chunks.init.push(\r\n\t\t\t\t\t\tb`${binding_group(true)} = [];`\r\n\t\t\t\t\t);\r\n\t\t\t\t\tblock.binding_group_initialised.add(keypath);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tblock.chunks.hydrate.push(\r\n\t\t\t\t\tb`${binding_group(true)}.push(${parent.var});`\r\n\t\t\t\t);\r\n\r\n\t\t\t\tblock.chunks.destroy.push(\r\n\t\t\t\t\tb`${binding_group(true)}.splice(${binding_group(true)}.indexOf(${parent.var}), 1);`\r\n\t\t\t\t);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tcase 'textContent':\r\n\t\t\t\tupdate_conditions.push(x`${this.snippet} !== ${parent.var}.textContent`);\r\n\t\t\t\tmount_conditions.push(x`${this.snippet} !== void 0`);\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'innerHTML':\r\n\t\t\t\tupdate_conditions.push(x`${this.snippet} !== ${parent.var}.innerHTML`);\r\n\t\t\t\tmount_conditions.push(x`${this.snippet} !== void 0`);\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'currentTime':\r\n\t\t\t\tupdate_conditions.push(x`!@_isNaN(${this.snippet})`);\r\n\t\t\t\tmount_dom = null;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'playbackRate':\r\n\t\t\tcase 'volume':\r\n\t\t\t\tupdate_conditions.push(x`!@_isNaN(${this.snippet})`);\r\n\t\t\t\tmount_conditions.push(x`!@_isNaN(${this.snippet})`);\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'paused':\r\n\t\t\t{\r\n\t\t\t\t// this is necessary to prevent audio restarting by itself\r\n\t\t\t\tconst last = block.get_unique_name(`${parent.var.name}_is_paused`);\r\n\t\t\t\tblock.add_variable(last, x`true`);\r\n\r\n\t\t\t\tupdate_conditions.push(x`${last} !== (${last} = ${this.snippet})`);\r\n\t\t\t\tupdate_dom = b`${parent.var}[${last} ? \"pause\" : \"play\"]();`;\r\n\t\t\t\tmount_dom = null;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tcase 'value':\r\n\t\t\t\tif (parent.node.get_static_attribute_value('type') === 'file') {\r\n\t\t\t\t\tupdate_dom = null;\r\n\t\t\t\t\tmount_dom = null;\r\n\t\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (update_dom) {\r\n\t\t\tif (update_conditions.length > 0) {\r\n\t\t\t\tconst condition = update_conditions.reduce((lhs, rhs) => x`${lhs} && ${rhs}`);\r\n\r\n\t\t\t\tblock.chunks.update.push(b`\r\n\t\t\t\t\tif (${condition}) {\r\n\t\t\t\t\t\t${update_dom}\r\n\t\t\t\t\t}\r\n\t\t\t\t`);\r\n\t\t\t} else {\r\n\t\t\t\tblock.chunks.update.push(update_dom);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (mount_dom) {\r\n\t\t\tif (mount_conditions.length > 0) {\r\n\t\t\t\tconst condition = mount_conditions.reduce((lhs, rhs) => x`${lhs} && ${rhs}`);\r\n\r\n\t\t\t\tblock.chunks.mount.push(b`\r\n\t\t\t\t\tif (${condition}) {\r\n\t\t\t\t\t\t${mount_dom}\r\n\t\t\t\t\t}\r\n\t\t\t\t`);\r\n\t\t\t} else {\r\n\t\t\t\tblock.chunks.mount.push(mount_dom);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction get_dom_updater(\r\n\telement: ElementWrapper | InlineComponentWrapper,\r\n\tbinding: BindingWrapper\r\n) {\r\n\tconst { node } = element;\r\n\r\n\tif (binding.is_readonly_media_attribute()) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tif (binding.node.name === 'this') {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tif (node.name === 'select') {\r\n\t\treturn node.get_static_attribute_value('multiple') === true ?\r\n\t\t\tb`@select_options(${element.var}, ${binding.snippet})` :\r\n\t\t\tb`@select_option(${element.var}, ${binding.snippet})`;\r\n\t}\r\n\r\n\tif (binding.node.name === 'group') {\r\n\t\tconst type = node.get_static_attribute_value('type');\r\n\r\n\t\tconst condition = type === 'checkbox'\r\n\t\t\t? x`~${binding.snippet}.indexOf(${element.var}.__value)`\r\n\t\t\t: x`${element.var}.__value === ${binding.snippet}`;\r\n\r\n\t\treturn b`${element.var}.checked = ${condition};`;\r\n\t}\r\n\r\n\tif (binding.node.name === 'value') {\r\n\t\treturn b`@set_input_value(${element.var}, ${binding.snippet});`;\r\n\t}\r\n\r\n\treturn b`${element.var}.${binding.node.name} = ${binding.snippet};`;\r\n}\r\n\r\nfunction get_binding_group(renderer: Renderer, value: Binding, block: Block) {\r\n\tconst { parts } = flatten_reference(value.raw_expression);\r\n\tlet keypath = parts.join('.');\r\n\r\n\tconst contexts = [];\r\n\tconst contextual_dependencies = new Set<string>();\r\n\tconst { template_scope } = value.expression;\r\n\tconst add_contextual_dependency = (dep: string) => {\r\n\t\tcontextual_dependencies.add(dep);\r\n\t\tconst owner = template_scope.get_owner(dep);\r\n\t\tif (owner.type === 'EachBlock') {\r\n\t\t\tfor (const dep of owner.expression.contextual_dependencies) {\r\n\t\t\t\tadd_contextual_dependency(dep);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\tfor (const dep of value.expression.contextual_dependencies) {\r\n\t\tadd_contextual_dependency(dep);\r\n\t}\r\n\r\n\tfor (const dep of contextual_dependencies) {\r\n\t\tconst context = block.bindings.get(dep);\r\n\t\tlet key;\r\n\t\tlet name;\r\n\t\tif (context) {\r\n\t\t\tkey = context.object.name;\r\n\t\t\tname = context.property.name;\r\n\t\t} else {\r\n\t\t\tkey = dep;\r\n\t\t\tname = dep;\r\n\t\t}\r\n\t\tkeypath = `${key}@${keypath}`;\r\n\t\tcontexts.push(name);\r\n\t}\r\n\r\n\tif (!renderer.binding_groups.has(keypath)) {\r\n\t\tconst index = renderer.binding_groups.size;\r\n\r\n\t\tcontexts.forEach(context => {\r\n\t\t\trenderer.add_to_context(context, true);\r\n\t\t});\r\n\r\n\t\trenderer.binding_groups.set(keypath, {\r\n\t\t\tbinding_group: (to_reference: boolean = false) => {\r\n\t\t\t\tlet binding_group = '$$binding_groups';\r\n\t\t\t\tlet _secondary_indexes = contexts;\r\n\r\n\t\t\t\tif (to_reference) {\r\n\t\t\t\t\tbinding_group = block.renderer.reference(binding_group);\r\n\t\t\t\t\t_secondary_indexes = _secondary_indexes.map(name => block.renderer.reference(name));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (_secondary_indexes.length > 0) {\r\n\t\t\t\t\tlet obj = x`${binding_group}[${index}]`;\r\n\t\t\t\t\t_secondary_indexes.forEach(secondary_index => {\r\n\t\t\t\t\t\tobj = x`${obj}[${secondary_index}]`;\r\n\t\t\t\t\t});\r\n\t\t\t\t\treturn obj;\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn x`${binding_group}[${index}]`;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tis_context: contexts.length > 0,\r\n\t\t\tcontexts,\r\n\t\t\tindex,\r\n\t\t\tkeypath\r\n\t\t});\r\n\t}\r\n\r\n\treturn renderer.binding_groups.get(keypath);\r\n}\r\n\r\nfunction get_event_handler(\r\n\tbinding: BindingWrapper,\r\n\trenderer: Renderer,\r\n\tblock: Block,\r\n\tname: string,\r\n\tlhs: Node\r\n): {\r\n\tuses_context: boolean;\r\n\tmutation: (Node | Node[]);\r\n\tcontextual_dependencies: Set<string>;\r\n\tlhs?: Node;\r\n} {\r\n\tconst contextual_dependencies = new Set<string>(binding.node.expression.contextual_dependencies);\r\n\r\n\tconst context = block.bindings.get(name);\r\n\tlet set_store;\r\n\r\n\tif (context) {\r\n\t\tconst { object, property, store, snippet } = context;\r\n\t\tlhs = replace_object(lhs, snippet);\r\n\t\tcontextual_dependencies.add(object.name);\r\n\t\tcontextual_dependencies.add(property.name);\r\n\t\tcontextual_dependencies.delete(name);\r\n\r\n\t\tif (store) {\r\n\t\t\tset_store = b`${store}.set(${`$${store}`});`;\r\n\t\t}\r\n\t} else {\r\n\t\tconst object = get_object(lhs);\r\n\t\tif (object.name[0] === '$') {\r\n\t\t\tconst store = object.name.slice(1);\r\n\t\t\tset_store = b`${store}.set(${object.name});`;\r\n\t\t}\r\n\t}\r\n\r\n\tconst value = get_value_from_dom(renderer, binding.parent, binding, block, contextual_dependencies);\r\n\r\n\tconst mutation = b`\r\n\t\t${lhs} = ${value};\r\n\t\t${set_store}\r\n\t`;\r\n\r\n\treturn {\r\n\t\tuses_context: binding.node.is_contextual || binding.node.expression.uses_context, // TODO this is messy\r\n\t\tmutation,\r\n\t\tcontextual_dependencies,\r\n\t\tlhs\r\n\t};\r\n}\r\n\r\nfunction get_value_from_dom(\r\n\trenderer: Renderer,\r\n\telement: ElementWrapper | InlineComponentWrapper,\r\n\tbinding: BindingWrapper,\r\n\tblock: Block,\r\n\tcontextual_dependencies: Set<string>\r\n) {\r\n\tconst { node } = element;\r\n\tconst { name } = binding.node;\r\n\r\n\tif (name === 'this') {\r\n\t\treturn x`$$value`;\r\n\t}\r\n\r\n\t// <select bind:value='selected>\r\n\tif (node.name === 'select') {\r\n\t\treturn node.get_static_attribute_value('multiple') === true ?\r\n\t\t\tx`@select_multiple_value(this)` :\r\n\t\t\tx`@select_value(this)`;\r\n\t}\r\n\r\n\tconst type = node.get_static_attribute_value('type');\r\n\r\n\t// <input type='checkbox' bind:group='foo'>\r\n\tif (name === 'group') {\r\n\t\tif (type === 'checkbox') {\r\n\t\t\tconst { binding_group, contexts } = get_binding_group(renderer, binding.node, block);\r\n\t\t\tadd_to_set(contextual_dependencies, contexts);\r\n\t\t\treturn x`@get_binding_group_value(${binding_group()}, this.__value, this.checked)`;\r\n\t\t}\r\n\r\n\t\treturn x`this.__value`;\r\n\t}\r\n\r\n\t// <input type='range|number' bind:value>\r\n\tif (type === 'range' || type === 'number') {\r\n\t\treturn x`@to_number(this.${name})`;\r\n\t}\r\n\r\n\tif ((name === 'buffered' || name === 'seekable' || name === 'played')) {\r\n\t\treturn x`@time_ranges_to_array(this.${name})`;\r\n\t}\r\n\r\n\t// everything else\r\n\treturn x`this.${name}`;\r\n}\r\n","import { Node, Literal, Identifier, MemberExpression } from 'estree';\r\n\r\nexport function compare_node(a: Node | void, b: Node | void) {\r\n\tif (a === b) return true;\r\n\tif (!a || !b) return false;\r\n\tif (a.type !== b.type) return false;\r\n\tswitch (a.type) {\r\n\t\tcase 'Identifier':\r\n\t\t\treturn a.name === (b as Identifier).name;\r\n\t\tcase 'MemberExpression':\r\n\t\t\treturn (\r\n\t\t\t\tcompare_node(a.object, (b as MemberExpression).object) &&\r\n\t\t\t\tcompare_node(a.property, (b as MemberExpression).property) &&\r\n\t\t\t\ta.computed === (b as MemberExpression).computed\r\n\t\t\t);\r\n\t\tcase 'Literal':\r\n\t\t\treturn a.value === (b as Literal).value;\r\n\t}\r\n}\r\n","import { b, x } from 'code-red';\r\nimport Component from '../../../Component';\r\nimport Block from '../../Block';\r\nimport BindingWrapper from '../Element/Binding';\r\nimport { Identifier } from 'estree';\r\nimport { compare_node } from '../../../utils/compare_node';\r\n\r\nexport default function bind_this(component: Component, block: Block, binding: BindingWrapper, variable: Identifier) {\r\n\tconst fn = component.get_unique_name(`${variable.name}_binding`);\r\n\r\n\tblock.renderer.add_to_context(fn.name);\r\n\tconst callee = block.renderer.reference(fn.name);\r\n\r\n\tconst { contextual_dependencies, mutation } = binding.handler;\r\n\tconst dependencies = binding.get_update_dependencies();\r\n\r\n\tconst body = b`\r\n\t\t${mutation}\r\n\t\t${Array.from(dependencies)\r\n\t\t\t.filter(dep => dep[0] !== '$')\r\n\t\t\t.filter(dep => !contextual_dependencies.has(dep))\r\n\t\t\t.map(dep => b`${block.renderer.invalidate(dep)};`)}\r\n\t`;\r\n\r\n\tif (contextual_dependencies.size) {\r\n\t\tconst params: Identifier[] = Array.from(contextual_dependencies).map(name => ({\r\n\t\t\ttype: 'Identifier',\r\n\t\t\tname\r\n\t\t}));\r\n\t\tcomponent.partly_hoisted.push(b`\r\n\t\t\tfunction ${fn}($$value, ${params}) {\r\n\t\t\t\t@binding_callbacks[$$value ? 'unshift' : 'push'](() => {\r\n\t\t\t\t\t${body}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t`);\r\n\r\n\t\tconst alias_map = new Map();\r\n\t\tconst args = [];\r\n\t\tfor (let id of params) {\r\n\t\t\tconst value = block.renderer.reference(id.name);\r\n\t\t\tlet found = false;\r\n\t\t\tif (block.variables.has(id.name)) {\r\n\t\t\t\tlet alias = id.name;\r\n\t\t\t\tfor (\r\n\t\t\t\t\tlet i = 1;\r\n\t\t\t\t\tblock.variables.has(alias) && !compare_node(block.variables.get(alias).init, value);\r\n\t\t\t\t\talias = `${id.name}_${i++}`\r\n\t\t\t\t);\r\n\t\t\t\talias_map.set(alias, id.name);\r\n\t\t\t\tid = { type: 'Identifier', name: alias };\r\n\t\t\t\tfound = block.variables.has(alias);\r\n\t\t\t}\r\n\t\t\targs.push(id);\r\n\t\t\tif (!found) {\r\n\t\t\t\tblock.add_variable(id, value);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst assign = block.get_unique_name(`assign_${variable.name}`);\r\n\t\tconst unassign = block.get_unique_name(`unassign_${variable.name}`);\r\n\r\n\t\tblock.chunks.init.push(b`\r\n\t\t\tconst ${assign} = () => ${callee}(${variable}, ${args});\r\n\t\t\tconst ${unassign} = () => ${callee}(null, ${args});\r\n\t\t`);\r\n\r\n\t\tconst condition = Array.from(args)\r\n\t\t\t.map(name => x`${name} !== ${block.renderer.reference(alias_map.get(name.name) || name.name)}`)\r\n\t\t\t.reduce((lhs, rhs) => x`${lhs} || ${rhs}`);\r\n\r\n\t\t// we push unassign and unshift assign so that references are\r\n\t\t// nulled out before they're created, to avoid glitches\r\n\t\t// with shifting indices\r\n\t\tblock.chunks.update.push(b`\r\n\t\t\tif (${condition}) {\r\n\t\t\t\t${unassign}();\r\n\t\t\t\t${args.map(a => b`${a} = ${block.renderer.reference(alias_map.get(a.name) || a.name)}`)};\r\n\t\t\t\t${assign}();\r\n\t\t\t}`\r\n\t\t);\r\n\r\n\t\tblock.chunks.destroy.push(b`${unassign}();`);\r\n\t\treturn b`${assign}();`;\r\n\t}\r\n\r\n\tcomponent.partly_hoisted.push(b`\r\n\t\tfunction ${fn}($$value) {\r\n\t\t\t@binding_callbacks[$$value ? 'unshift' : 'push'](() => {\r\n\t\t\t\t${body}\r\n\t\t\t});\r\n\t\t}\r\n\t`);\r\n\r\n\tblock.chunks.destroy.push(b`${callee}(null);`);\r\n\treturn b`${callee}(${variable});`;\r\n}\r\n","import { b, x } from 'code-red';\r\nimport Wrapper from './Wrapper';\r\nimport Renderer from '../../Renderer';\r\nimport Block from '../../Block';\r\nimport MustacheTag from '../../../nodes/MustacheTag';\r\nimport RawMustacheTag from '../../../nodes/RawMustacheTag';\r\nimport { Node } from 'estree';\r\n\r\nexport default class Tag extends Wrapper {\r\n\tnode: MustacheTag | RawMustacheTag;\r\n\r\n\tconstructor(renderer: Renderer, block: Block, parent: Wrapper, node: MustacheTag | RawMustacheTag) {\r\n\t\tsuper(renderer, block, parent, node);\r\n\r\n\t\tthis.cannot_use_innerhtml();\r\n\t\tif (!this.is_dependencies_static()) {\r\n\t\t\tthis.not_static_content();\r\n\t\t}\r\n\r\n\t\tblock.add_dependencies(node.expression.dependencies);\r\n\t}\r\n\r\n\tis_dependencies_static() {\r\n\t\treturn this.node.expression.contextual_dependencies.size === 0 && this.node.expression.dynamic_dependencies().length === 0;\r\n\t}\r\n\r\n\trename_this_method(\r\n\t\tblock: Block,\r\n\t\tupdate: ((value: Node) => (Node | Node[]))\r\n\t) {\r\n\t\tconst dependencies = this.node.expression.dynamic_dependencies();\r\n\t\tlet snippet = this.node.expression.manipulate(block);\r\n\r\n\t\tconst value = this.node.should_cache && block.get_unique_name(`${this.var.name}_value`);\r\n\t\tconst content = this.node.should_cache ? value : snippet;\r\n\r\n\t\tsnippet = x`${snippet} + \"\"`;\r\n\r\n\t\tif (this.node.should_cache) block.add_variable(value, snippet); // TODO may need to coerce snippet to string\r\n\r\n\t\tif (dependencies.length > 0) {\r\n\t\t\tlet condition = block.renderer.dirty(dependencies);\r\n\r\n\t\t\tif (block.has_outros) {\r\n\t\t\t\tcondition = x`!#current || ${condition}`;\r\n\t\t\t}\r\n\r\n\t\t\tconst update_cached_value = x`${value} !== (${value} = ${snippet})`;\r\n\r\n\t\t\tif (this.node.should_cache) {\r\n\t\t\t\tcondition = x`${condition} && ${update_cached_value}`;\r\n\t\t\t}\r\n\r\n\t\t\tblock.chunks.update.push(b`if (${condition}) ${update(content as Node)}`);\r\n\t\t}\r\n\r\n\t\treturn { init: content };\r\n\t}\r\n}\r\n","import Renderer from '../Renderer';\r\nimport Block from '../Block';\r\nimport Tag from './shared/Tag';\r\nimport Wrapper from './shared/Wrapper';\r\nimport MustacheTag from '../../nodes/MustacheTag';\r\nimport RawMustacheTag from '../../nodes/RawMustacheTag';\r\nimport { x } from 'code-red';\r\nimport { Identifier } from 'estree';\r\n\r\nexport default class MustacheTagWrapper extends Tag {\r\n\tvar: Identifier = { type: 'Identifier', name: 't' };\r\n\r\n\tconstructor(renderer: Renderer, block: Block, parent: Wrapper, node: MustacheTag | RawMustacheTag) {\r\n\t\tsuper(renderer, block, parent, node);\r\n\t}\r\n\r\n\trender(block: Block, parent_node: Identifier, parent_nodes: Identifier) {\r\n\t\tconst { init } = this.rename_this_method(\r\n\t\t\tblock,\r\n\t\t\tvalue => x`@set_data(${this.var}, ${value})`\r\n\t\t);\r\n\r\n\t\tblock.add_element(\r\n\t\t\tthis.var,\r\n\t\t\tx`@text(${init})`,\r\n\t\t\tparent_nodes && x`@claim_text(${parent_nodes}, ${init})`,\r\n\t\t\tparent_node\r\n\t\t);\r\n\t}\r\n}\r\n","import { namespaces } from './../../../utils/namespaces';\r\nimport { b, x } from 'code-red';\r\nimport Renderer from '../Renderer';\r\nimport Block from '../Block';\r\nimport Tag from './shared/Tag';\r\nimport Wrapper from './shared/Wrapper';\r\nimport Element from '../../nodes/Element';\r\nimport MustacheTag from '../../nodes/MustacheTag';\r\nimport RawMustacheTag from '../../nodes/RawMustacheTag';\r\nimport { is_head } from './shared/is_head';\r\nimport { Identifier } from 'estree';\r\n\r\nexport default class RawMustacheTagWrapper extends Tag {\r\n\tvar: Identifier = { type: 'Identifier', name: 'raw' };\r\n\r\n\tconstructor(\r\n\t\trenderer: Renderer,\r\n\t\tblock: Block,\r\n\t\tparent: Wrapper,\r\n\t\tnode: MustacheTag | RawMustacheTag\r\n\t) {\r\n\t\tsuper(renderer, block, parent, node);\r\n\t\tthis.cannot_use_innerhtml();\r\n\t\tthis.not_static_content();\r\n\t}\r\n\r\n\trender(block: Block, parent_node: Identifier, _parent_nodes: Identifier) {\r\n\t\tconst in_head = is_head(parent_node);\r\n\r\n\t\tconst can_use_innerhtml = !in_head && parent_node && !this.prev && !this.next;\r\n\r\n\t\tif (can_use_innerhtml) {\r\n\t\t\tconst insert = content => b`${parent_node}.innerHTML = ${content};`[0];\r\n\r\n\t\t\tconst { init } = this.rename_this_method(\r\n\t\t\t\tblock,\r\n\t\t\t\tcontent => insert(content)\r\n\t\t\t);\r\n\r\n\t\t\tblock.chunks.mount.push(insert(init));\r\n\t\t} else {\r\n\t\t\tconst needs_anchor = in_head || (this.next ? !this.next.is_dom_node() : (!this.parent || !this.parent.is_dom_node()));\r\n\r\n\t\t\tconst html_tag = block.get_unique_name('html_tag');\r\n\t\t\tconst html_anchor = needs_anchor && block.get_unique_name('html_anchor');\r\n\r\n\t\t\tblock.add_variable(html_tag);\r\n\r\n\t\t\tconst { init } = this.rename_this_method(\r\n\t\t\t\tblock,\r\n\t\t\t\tcontent => x`${html_tag}.p(${content})`\r\n\t\t\t);\r\n\r\n\t\t\tconst update_anchor = needs_anchor ? html_anchor : this.next ? this.next.var : 'null';\r\n\r\n\t\t\tconst parent_element = this.node.find_nearest(/^Element/) as Element;\r\n\t\t\tconst is_svg = parent_element && parent_element.namespace === namespaces.svg;\r\n\t\t\tblock.chunks.create.push(b`${html_tag} = new @HtmlTag(${is_svg ? 'true' : 'false'});`);\r\n\r\n\t\t\tif (this.renderer.options.hydratable) {\r\n\t\t\t\tblock.chunks.claim.push(b`${html_tag} = @claim_html_tag(${_parent_nodes}, ${is_svg ? 'true' : 'false'});`);\r\n\t\t\t}\r\n\t\t\tblock.chunks.hydrate.push(b`${html_tag}.a = ${update_anchor};`);\r\n\t\t\tblock.chunks.mount.push(b`${html_tag}.m(${init}, ${parent_node || '#target'}, ${parent_node ? null : '#anchor'});`);\r\n\r\n\t\t\tif (needs_anchor) {\r\n\t\t\t\tblock.add_element(html_anchor, x`@empty()`, x`@empty()`, parent_node);\r\n\t\t\t}\r\n\r\n\t\t\tif (!parent_node || in_head) {\r\n\t\t\t\tblock.chunks.destroy.push(b`if (detaching) ${html_tag}.d();`);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n","import Renderer from '../../Renderer';\r\nimport Element from '../../../nodes/Element';\r\nimport Wrapper from '../shared/Wrapper';\r\nimport Block from '../../Block';\r\nimport { is_void } from '../../../../../shared/utils/names';\r\nimport FragmentWrapper from '../Fragment';\r\nimport { escape_html, string_literal } from '../../../utils/stringify';\r\nimport TextWrapper from '../Text';\r\nimport fix_attribute_casing from './fix_attribute_casing';\r\nimport { b, x, p } from 'code-red';\r\nimport { namespaces } from '../../../../utils/namespaces';\r\nimport AttributeWrapper from './Attribute';\r\nimport StyleAttributeWrapper from './StyleAttribute';\r\nimport SpreadAttributeWrapper from './SpreadAttribute';\r\nimport { dimensions, start_newline } from '../../../../utils/patterns';\r\nimport Binding from './Binding';\r\nimport add_to_set from '../../../utils/add_to_set';\r\nimport { add_event_handler } from '../shared/add_event_handlers';\r\nimport { add_action } from '../shared/add_actions';\r\nimport bind_this from '../shared/bind_this';\r\nimport { is_head } from '../shared/is_head';\r\nimport { Identifier, ExpressionStatement, CallExpression } from 'estree';\r\nimport EventHandler from './EventHandler';\r\nimport { extract_names } from 'periscopic';\r\nimport Action from '../../../nodes/Action';\r\nimport MustacheTagWrapper from '../MustacheTag';\r\nimport RawMustacheTagWrapper from '../RawMustacheTag';\r\nimport is_dynamic from '../shared/is_dynamic';\r\nimport create_debugging_comment from '../shared/create_debugging_comment';\r\nimport { push_array } from '../../../../utils/push_array';\r\n\r\ninterface BindingGroup {\r\n\tevents: string[];\r\n\tbindings: Binding[];\r\n}\r\n\r\nconst events = [\r\n\t{\r\n\t\tevent_names: ['input'],\r\n\t\tfilter: (node: Element, _name: string) =>\r\n\t\t\tnode.name === 'textarea' ||\r\n\t\t\tnode.name === 'input' && !/radio|checkbox|range|file/.test(node.get_static_attribute_value('type') as string)\r\n\t},\r\n\t{\r\n\t\tevent_names: ['input'],\r\n\t\tfilter: (node: Element, name: string) =>\r\n\t\t\t(name === 'textContent' || name === 'innerHTML') &&\r\n\t\t\tnode.attributes.some(attribute => attribute.name === 'contenteditable')\r\n\t},\r\n\t{\r\n\t\tevent_names: ['change'],\r\n\t\tfilter: (node: Element, _name: string) =>\r\n\t\t\tnode.name === 'select' ||\r\n\t\t\tnode.name === 'input' && /radio|checkbox|file/.test(node.get_static_attribute_value('type') as string)\r\n\t},\r\n\t{\r\n\t\tevent_names: ['change', 'input'],\r\n\t\tfilter: (node: Element, _name: string) =>\r\n\t\t\tnode.name === 'input' && node.get_static_attribute_value('type') === 'range'\r\n\t},\r\n\r\n\t{\r\n\t\tevent_names: ['elementresize'],\r\n\t\tfilter: (_node: Element, name: string) =>\r\n\t\t\tdimensions.test(name)\r\n\t},\r\n\r\n\t// media events\r\n\t{\r\n\t\tevent_names: ['timeupdate'],\r\n\t\tfilter: (node: Element, name: string) =>\r\n\t\t\tnode.is_media_node() &&\r\n\t\t\t(name === 'currentTime' || name === 'played' || name === 'ended')\r\n\t},\r\n\t{\r\n\t\tevent_names: ['durationchange'],\r\n\t\tfilter: (node: Element, name: string) =>\r\n\t\t\tnode.is_media_node() &&\r\n\t\t\tname === 'duration'\r\n\t},\r\n\t{\r\n\t\tevent_names: ['play', 'pause'],\r\n\t\tfilter: (node: Element, name: string) =>\r\n\t\t\tnode.is_media_node() &&\r\n\t\t\tname === 'paused'\r\n\t},\r\n\t{\r\n\t\tevent_names: ['progress'],\r\n\t\tfilter: (node: Element, name: string) =>\r\n\t\t\tnode.is_media_node() &&\r\n\t\t\tname === 'buffered'\r\n\t},\r\n\t{\r\n\t\tevent_names: ['loadedmetadata'],\r\n\t\tfilter: (node: Element, name: string) =>\r\n\t\t\tnode.is_media_node() &&\r\n\t\t\t(name === 'buffered' || name === 'seekable')\r\n\t},\r\n\t{\r\n\t\tevent_names: ['volumechange'],\r\n\t\tfilter: (node: Element, name: string) =>\r\n\t\t\tnode.is_media_node() &&\r\n\t\t\t(name === 'volume' || name === 'muted')\r\n\t},\r\n\t{\r\n\t\tevent_names: ['ratechange'],\r\n\t\tfilter: (node: Element, name: string) =>\r\n\t\t\tnode.is_media_node() &&\r\n\t\t\tname === 'playbackRate'\r\n\t},\r\n\t{\r\n\t\tevent_names: ['seeking', 'seeked'],\r\n\t\tfilter: (node: Element, name: string) =>\r\n\t\t\tnode.is_media_node() &&\r\n\t\t\t(name === 'seeking')\r\n\t},\r\n\t{\r\n\t\tevent_names: ['ended'],\r\n\t\tfilter: (node: Element, name: string) =>\r\n\t\t\tnode.is_media_node() &&\r\n\t\t\tname === 'ended'\r\n\t},\r\n\t{\r\n\t\tevent_names: ['resize'],\r\n\t\tfilter: (node: Element, name: string) =>\r\n\t\t\tnode.is_media_node() &&\r\n\t\t\t(name === 'videoHeight' || name === 'videoWidth')\r\n\t},\r\n\r\n\t// details event\r\n\t{\r\n\t\tevent_names: ['toggle'],\r\n\t\tfilter: (node: Element, _name: string) =>\r\n\t\t\tnode.name === 'details'\r\n\t}\r\n];\r\n\r\nconst CHILD_DYNAMIC_ELEMENT_BLOCK = 'child_dynamic_element';\r\n\r\nexport default class ElementWrapper extends Wrapper {\r\n\tnode: Element;\r\n\tfragment: FragmentWrapper;\r\n\tattributes: Array<AttributeWrapper | StyleAttributeWrapper | SpreadAttributeWrapper>;\r\n\tbindings: Binding[];\r\n\tevent_handlers: EventHandler[];\r\n\tclass_dependencies: string[];\r\n\r\n\tselect_binding_dependencies?: Set<string>;\r\n\r\n\tvar: any;\r\n\tvoid: boolean;\r\n\r\n\tchild_dynamic_element_block?: Block = null;\r\n\tchild_dynamic_element?: ElementWrapper = null;\r\n\r\n\tconstructor(\r\n\t\trenderer: Renderer,\r\n\t\tblock: Block,\r\n\t\tparent: Wrapper,\r\n\t\tnode: Element,\r\n\t\tstrip_whitespace: boolean,\r\n\t\tnext_sibling: Wrapper\r\n\t) {\r\n\t\tsuper(renderer, block, parent, node);\r\n\r\n\t\tif (node.is_dynamic_element && block.type !== CHILD_DYNAMIC_ELEMENT_BLOCK) {\r\n\t\t\tthis.child_dynamic_element_block = block.child({\r\n\t\t\t\tcomment: create_debugging_comment(node, renderer.component),\r\n\t\t\t\tname: renderer.component.get_unique_name('create_dynamic_element'),\r\n\t\t\t\ttype: CHILD_DYNAMIC_ELEMENT_BLOCK\r\n\t\t\t});\r\n\t\t\trenderer.blocks.push(this.child_dynamic_element_block);\r\n\t\t\tthis.child_dynamic_element = new ElementWrapper(\r\n\t\t\t\trenderer,\r\n\t\t\t\tthis.child_dynamic_element_block,\r\n\t\t\t\tparent,\r\n\t\t\t\tnode,\r\n\t\t\t\tstrip_whitespace,\r\n\t\t\t\tnext_sibling\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tthis.var = {\r\n\t\t\ttype: 'Identifier',\r\n\t\t\tname: node.name.replace(/[^a-zA-Z0-9_$]/g, '_')\r\n\t\t};\r\n\r\n\t\tthis.void = is_void(node.name);\r\n\r\n\t\tthis.class_dependencies = [];\r\n\r\n\t\tif (this.node.children.length) {\r\n\t\t\tthis.node.lets.forEach(l => {\r\n\t\t\t\textract_names(l.value || l.name).forEach(name => {\r\n\t\t\t\t\trenderer.add_to_context(name, true);\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis.attributes = this.node.attributes.map(attribute => {\r\n\t\t\tif (attribute.name === 'style') {\r\n\t\t\t\treturn new StyleAttributeWrapper(this, block, attribute);\r\n\t\t\t}\r\n\t\t\tif (attribute.type === 'Spread') {\r\n\t\t\t\treturn new SpreadAttributeWrapper(this, block, attribute);\r\n\t\t\t}\r\n\t\t\treturn new AttributeWrapper(this, block, attribute);\r\n\t\t});\r\n\r\n\t\t// ordinarily, there'll only be one... but we need to handle\r\n\t\t// the rare case where an element can have multiple bindings,\r\n\t\t// e.g. <audio bind:paused bind:currentTime>\r\n\t\tthis.bindings = this.node.bindings.map(binding => new Binding(block, binding, this));\r\n\r\n\t\tthis.event_handlers = this.node.handlers.map(event_handler => new EventHandler(event_handler, this));\r\n\r\n\t\tif (node.intro || node.outro) {\r\n\t\t\tif (node.intro) block.add_intro(node.intro.is_local);\r\n\t\t\tif (node.outro) block.add_outro(node.outro.is_local);\r\n\t\t}\r\n\r\n\t\tif (node.animation) {\r\n\t\t\tblock.add_animation();\r\n\t\t}\r\n\r\n\t\tblock.add_dependencies(node.tag_expr.dependencies);\r\n\r\n\t\t// add directive and handler dependencies\r\n\t\t[node.animation, node.outro, ...node.actions, ...node.classes, ...node.styles].forEach(directive => {\r\n\t\t\tif (directive && directive.expression) {\r\n\t\t\t\tblock.add_dependencies(directive.expression.dependencies);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tnode.handlers.forEach(handler => {\r\n\t\t\tif (handler.expression) {\r\n\t\t\t\tblock.add_dependencies(handler.expression.dependencies);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (this.parent) {\r\n\t\t\tif (node.actions.length > 0 ||\r\n\t\t\t\tnode.animation ||\r\n\t\t\t\tnode.bindings.length > 0 ||\r\n\t\t\t\tnode.classes.length > 0 ||\r\n\t\t\t\tnode.intro || node.outro ||\r\n\t\t\t\tnode.handlers.length > 0 ||\r\n\t\t\t\tnode.styles.length > 0 ||\r\n\t\t\t\tthis.node.name === 'option' ||\r\n\t\t\t\tnode.tag_expr.dynamic_dependencies().length ||\r\n\t\t\t\trenderer.options.dev\r\n\t\t\t) {\r\n\t\t\t\tthis.parent.cannot_use_innerhtml(); // need to use add_location\r\n\t\t\t\tthis.parent.not_static_content();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.fragment = new FragmentWrapper(renderer, block, node.children, this, strip_whitespace, next_sibling);\r\n\t}\r\n\r\n\trender(block: Block, parent_node: Identifier, parent_nodes: Identifier) {\r\n\t\tif (this.child_dynamic_element) {\r\n\t\t\tthis.render_dynamic_element(block, parent_node, parent_nodes);\r\n\t\t} else {\r\n\t\t\tthis.render_element(block, parent_node, parent_nodes);\r\n\t\t}\r\n\t}\r\n\r\n\trender_dynamic_element(block: Block, parent_node: Identifier, parent_nodes: Identifier) {\r\n\t\tthis.child_dynamic_element.render(\r\n\t\t\tthis.child_dynamic_element_block,\r\n\t\t\tnull,\r\n\t\t\t(x`#nodes` as unknown) as Identifier\r\n\t\t);\r\n\r\n\t\tconst previous_tag = block.get_unique_name('previous_tag');\r\n\t\tconst tag = this.node.tag_expr.manipulate(block);\r\n\t\tblock.add_variable(previous_tag, tag);\r\n\r\n\t\tblock.chunks.init.push(b`\r\n\t\t\t${this.renderer.options.dev && b`@validate_dynamic_element(${tag});`}\r\n\t\t\t${this.renderer.options.dev && this.node.children.length > 0 && b`@validate_void_dynamic_element(${tag});`}\r\n\t\t\tlet ${this.var} = ${tag} && ${this.child_dynamic_element_block.name}(#ctx);\r\n\t\t`);\r\n\r\n\t\tblock.chunks.create.push(b`\r\n\t\t\tif (${this.var}) ${this.var}.c();\r\n\t\t`);\r\n\r\n\t\tif (this.renderer.options.hydratable) {\r\n\t\t\tblock.chunks.claim.push(b`\r\n\t\t\t\tif (${this.var}) ${this.var}.l(${parent_nodes});\r\n\t\t\t`);\r\n\t\t}\r\n\r\n\t\tblock.chunks.mount.push(b`\r\n\t\t\tif (${this.var}) ${this.var}.m(${parent_node || '#target'}, ${parent_node ? 'null' : '#anchor'});\r\n\t\t`);\r\n\r\n\t\tconst anchor = this.get_or_create_anchor(block, parent_node, parent_nodes);\r\n\t\tconst has_transitions = !!(this.node.intro || this.node.outro);\r\n\t\tconst not_equal = this.renderer.component.component_options.immutable ? x`@not_equal` : x`@safe_not_equal`;\r\n\r\n\t\tblock.chunks.update.push(b`\r\n\t\t\tif (${tag}) {\r\n\t\t\t\tif (!${previous_tag}) {\r\n\t\t\t\t\t${this.var} = ${this.child_dynamic_element_block.name}(#ctx);\r\n\t\t\t\t\t${this.var}.c();\r\n\t\t\t\t\t${has_transitions && b`@transition_in(${this.var})`}\r\n\t\t\t\t\t${this.var}.m(${this.get_update_mount_node(anchor)}, ${anchor});\r\n\t\t\t\t} else if (${not_equal}(${previous_tag}, ${tag})) {\r\n\t\t\t\t\t${this.var}.d(1);\r\n\t\t\t\t\t${this.renderer.options.dev && b`@validate_dynamic_element(${tag});`}\r\n\t\t\t\t\t${this.renderer.options.dev && this.node.children.length > 0 && b`@validate_void_dynamic_element(${tag});`}\r\n\t\t\t\t\t${this.var} = ${this.child_dynamic_element_block.name}(#ctx);\r\n\t\t\t\t\t${this.var}.c();\r\n\t\t\t\t\t${this.var}.m(${this.get_update_mount_node(anchor)}, ${anchor});\r\n\t\t\t\t} else {\r\n\t\t\t\t\t${this.var}.p(#ctx, #dirty);\r\n\t\t\t\t}\r\n\t\t\t} else if (${previous_tag}) {\r\n\t\t\t\t${\r\n\t\t\t\t\thas_transitions\r\n\t\t\t\t\t\t? b`\r\n\t\t\t\t\t\t\t@group_outros();\r\n\t\t\t\t\t\t\t@transition_out(${this.var}, 1, 1, () => {\r\n\t\t\t\t\t\t\t\t${this.var} = null;\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t@check_outros();\r\n\t\t\t\t\t\t`\r\n\t\t\t\t\t\t: b`\r\n\t\t\t\t\t\t\t${this.var}.d(1);\r\n\t\t\t\t\t\t\t${this.var} = null;\r\n\t\t\t\t\t\t`\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t${previous_tag} = ${tag};\r\n\t\t`);\r\n\r\n\t\tif (this.child_dynamic_element_block.has_intros) {\r\n\t\t\tblock.chunks.intro.push(b`@transition_in(${this.var});`);\r\n\t\t}\r\n\r\n\t\tif (this.child_dynamic_element_block.has_outros) {\r\n\t\t\tblock.chunks.outro.push(b`@transition_out(${this.var});`);\r\n\t\t}\r\n\r\n\t\tblock.chunks.destroy.push(b`if (${this.var}) ${this.var}.d(detaching)`);\r\n\r\n\t\tif (this.node.animation) {\r\n\t\t\tconst measurements = block.get_unique_name('measurements');\r\n\t\t\tblock.add_variable(measurements);\r\n\t\t\tblock.chunks.measure.push(b`${measurements} = ${this.var}.r()`);\r\n\t\t\tblock.chunks.fix.push(b`${this.var}.f();`);\r\n\t\t\tblock.chunks.animate.push(b`\r\n\t\t\t\t${this.var}.s(${measurements});\r\n\t\t\t\t${this.var}.a()\r\n\t\t\t`);\r\n\t\t}\r\n\t}\r\n\r\n\tis_dom_node() {\r\n\t\treturn super.is_dom_node() && !this.child_dynamic_element;\r\n\t}\r\n\r\n\trender_element(block: Block, parent_node: Identifier, parent_nodes: Identifier) {\r\n\r\n\t\tconst { renderer } = this;\r\n\r\n\t\tif (this.node.name === 'noscript') return;\r\n\r\n\t\tconst node = this.var;\r\n\t\tconst nodes = parent_nodes && block.get_unique_name(`${this.var.name}_nodes`); // if we're in unclaimable territory, i.e. <head>, parent_nodes is null\r\n\t\tconst children = x`@children(${this.node.name === 'template' ? x`${node}.content` : node})`;\r\n\r\n\t\tblock.add_variable(node);\r\n\t\tconst render_statement = this.get_render_statement(block);\r\n\t\tblock.chunks.create.push(\r\n\t\t\tb`${node} = ${render_statement};`\r\n\t\t);\r\n\r\n\t\tif (renderer.options.hydratable) {\r\n\t\t\tif (parent_nodes) {\r\n\t\t\t\tblock.chunks.claim.push(b`\r\n\t\t\t\t\t${node} = ${this.get_claim_statement(block, parent_nodes)};\r\n\t\t\t\t`);\r\n\r\n\t\t\t\tif (!this.void && this.node.children.length > 0) {\r\n\t\t\t\t\tblock.chunks.claim.push(b`\r\n\t\t\t\t\t\tvar ${nodes} = ${children};\r\n\t\t\t\t\t`);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tblock.chunks.claim.push(\r\n\t\t\t\t\tb`${node} = ${render_statement};`\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (parent_node) {\r\n\t\t\tconst append = b`@append(${parent_node}, ${node});`;\r\n\t\t\t((append[0] as ExpressionStatement).expression as CallExpression).callee.loc = {\r\n\t\t\t\tstart: this.renderer.locate(this.node.start),\r\n\t\t\t\tend: this.renderer.locate(this.node.end)\r\n\t\t\t};\r\n\t\t\tblock.chunks.mount.push(append);\r\n\r\n\t\t\tif (is_head(parent_node)) {\r\n\t\t\t\tblock.chunks.destroy.push(b`@detach(${node});`);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tconst insert = b`@insert(#target, ${node}, #anchor);`;\r\n\t\t\t((insert[0] as ExpressionStatement).expression as CallExpression).callee.loc = {\r\n\t\t\t\tstart: this.renderer.locate(this.node.start),\r\n\t\t\t\tend: this.renderer.locate(this.node.end)\r\n\t\t\t};\r\n\t\t\tblock.chunks.mount.push(insert);\r\n\r\n\t\t\t// TODO we eventually need to consider what happens to elements\r\n\t\t\t// that belong to the same outgroup as an outroing element...\r\n\t\t\tblock.chunks.destroy.push(b`if (detaching) @detach(${node});`);\r\n\t\t}\r\n\r\n\t\t// insert static children with textContent or innerHTML\r\n\t\t// skip textcontent for <template>.  append nodes to TemplateElement.content instead\r\n\t\tconst can_use_textcontent = this.can_use_textcontent();\r\n\t\tconst is_template = this.node.name === 'template';\r\n\t\tconst is_template_with_text_content = is_template && can_use_textcontent;\r\n\r\n\t\tif (!is_template_with_text_content && !this.node.namespace && (this.can_use_innerhtml || can_use_textcontent) && this.fragment.nodes.length > 0) {\r\n\t\t\tif (this.fragment.nodes.length === 1 && this.fragment.nodes[0].node.type === 'Text') {\r\n\t\t\t\tblock.chunks.create.push(\r\n\t\t\t\t\tb`${node}.textContent = ${string_literal((this.fragment.nodes[0] as TextWrapper).data)};`\r\n\t\t\t\t);\r\n\t\t\t} else {\r\n\t\t\t\tconst state = {\r\n\t\t\t\t\tquasi: {\r\n\t\t\t\t\t\ttype: 'TemplateElement',\r\n\t\t\t\t\t\tvalue: { raw: '' }\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tconst literal = {\r\n\t\t\t\t\ttype: 'TemplateLiteral',\r\n\t\t\t\t\texpressions: [],\r\n\t\t\t\t\tquasis: []\r\n\t\t\t\t};\r\n\r\n\t\t\t\tconst can_use_raw_text = !this.can_use_innerhtml && can_use_textcontent;\r\n\t\t\t\tto_html((this.fragment.nodes as unknown as Array<ElementWrapper | TextWrapper>), block, literal, state, can_use_raw_text);\r\n\t\t\t\tliteral.quasis.push(state.quasi);\r\n\r\n\t\t\t\tblock.chunks.create.push(\r\n\t\t\t\t\tb`${node}.${this.can_use_innerhtml ? 'innerHTML' : 'textContent'} = ${literal};`\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.fragment.nodes.forEach((child: Wrapper) => {\r\n\t\t\t\tchild.render(\r\n\t\t\t\t\tblock,\r\n\t\t\t\t\tis_template ? x`${node}.content` : node,\r\n\t\t\t\t\tnodes\r\n\t\t\t\t);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tconst event_handler_or_binding_uses_context = (\r\n\t\t\tthis.bindings.some(binding => binding.handler.uses_context) ||\r\n\t\t\tthis.node.handlers.some(handler => handler.uses_context) ||\r\n\t\t\tthis.node.actions.some(action => action.uses_context)\r\n\t\t);\r\n\r\n\t\tif (event_handler_or_binding_uses_context) {\r\n\t\t\tblock.maintain_context = true;\r\n\t\t}\r\n\r\n\t\tthis.add_attributes(block);\r\n\t\tthis.add_directives_in_order(block);\r\n\t\tthis.add_transitions(block);\r\n\t\tthis.add_animation(block);\r\n\t\tthis.add_classes(block);\r\n\t\tthis.add_styles(block);\r\n\t\tthis.add_manual_style_scoping(block);\r\n\r\n\t\tif (nodes && this.renderer.options.hydratable && !this.void) {\r\n\t\t\tblock.chunks.claim.push(\r\n\t\t\t\tb`${this.node.children.length > 0 ? nodes : children}.forEach(@detach);`\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tif (renderer.options.dev) {\r\n\t\t\tconst loc = renderer.locate(this.node.start);\r\n\t\t\tblock.chunks.hydrate.push(\r\n\t\t\t\tb`@add_location(${this.var}, ${renderer.file_var}, ${loc.line - 1}, ${loc.column}, ${this.node.start});`\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tblock.renderer.dirty(this.node.tag_expr.dynamic_dependencies());\r\n\t}\r\n\r\n\tcan_use_textcontent() {\r\n\t\treturn this.is_static_content && this.fragment.nodes.every(node => node.node.type === 'Text' || node.node.type === 'MustacheTag');\r\n\t}\r\n\r\n\tget_render_statement(block: Block) {\r\n\t\tconst { name, namespace, tag_expr } = this.node;\r\n\r\n\t\tif (namespace === namespaces.svg) {\r\n\t\t\treturn x`@svg_element(\"${name}\")`;\r\n\t\t}\r\n\r\n\t\tif (namespace) {\r\n\t\t\treturn x`@_document.createElementNS(\"${namespace}\", \"${name}\")`;\r\n\t\t}\r\n\r\n\t\tconst is: AttributeWrapper = this.attributes.find(attr => attr.node.name === 'is') as any;\r\n\t\tif (is) {\r\n\t\t\treturn x`@element_is(\"${name}\", ${is.render_chunks(block).reduce((lhs, rhs) => x`${lhs} + ${rhs}`)})`;\r\n\t\t}\r\n\r\n\t\tconst reference = tag_expr.manipulate(block);\r\n\t\treturn x`@element(${reference})`;\r\n\t}\r\n\r\n\tget_claim_statement(block: Block, nodes: Identifier) {\r\n\t\tconst attributes = this.attributes\r\n\t\t\t.filter((attr) => !(attr instanceof SpreadAttributeWrapper) && !attr.property_name)\r\n\t\t\t.map((attr) => p`${(attr as StyleAttributeWrapper | AttributeWrapper).name}: true`);\r\n\r\n\t\tlet reference;\r\n\t\tif (this.node.tag_expr.node.type === 'Literal') {\r\n\t\t\tif (this.node.namespace) {\r\n\t\t\t\treference = `\"${this.node.tag_expr.node.value}\"`;\r\n\t\t\t} else {\r\n\t\t\t\treference = `\"${(this.node.tag_expr.node.value as String || '').toUpperCase()}\"`;\r\n\t\t\t}\r\n\t\t} else if (this.node.namespace) {\r\n\t\t\treference = x`${this.node.tag_expr.manipulate(block)}`;\r\n\t\t} else {\r\n\t\t\treference = x`(${this.node.tag_expr.manipulate(block)} || 'null').toUpperCase()`;\r\n\t\t}\r\n\r\n\t\tif (this.node.namespace === namespaces.svg) {\r\n\t\t\treturn x`@claim_svg_element(${nodes}, ${reference}, { ${attributes} })`;\r\n\t\t} else {\r\n\t\t\treturn x`@claim_element(${nodes}, ${reference}, { ${attributes} })`;\r\n\t\t}\r\n\t}\r\n\r\n\tadd_directives_in_order (block: Block) {\r\n\t\ttype OrderedAttribute = EventHandler | BindingGroup | Binding | Action;\r\n\r\n\t\tconst binding_groups = events\r\n\t\t\t.map(event => ({\r\n\t\t\t\tevents: event.event_names,\r\n\t\t\t\tbindings: this.bindings\r\n\t\t\t\t\t.filter(binding => binding.node.name !== 'this')\r\n\t\t\t\t\t.filter(binding => event.filter(this.node, binding.node.name))\r\n\t\t\t}))\r\n\t\t\t.filter(group => group.bindings.length);\r\n\r\n\t\tconst this_binding = this.bindings.find(b => b.node.name === 'this');\r\n\r\n\t\tfunction getOrder (item: OrderedAttribute) {\r\n\t\t\tif (item instanceof EventHandler) {\r\n\t\t\t\treturn item.node.start;\r\n\t\t\t} else if (item instanceof Binding) {\r\n\t\t\t\treturn item.node.start;\r\n\t\t\t} else if (item instanceof Action) {\r\n\t\t\t\treturn item.start;\r\n\t\t\t} else {\r\n\t\t\t\treturn item.bindings[0].node.start;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t([\r\n\t\t\t...binding_groups,\r\n\t\t\t...this.event_handlers,\r\n\t\t\tthis_binding,\r\n\t\t\t...this.node.actions\r\n\t\t] as OrderedAttribute[])\r\n\t\t\t.filter(Boolean)\r\n\t\t\t.sort((a, b) => getOrder(a) - getOrder(b))\r\n\t\t\t.forEach(item => {\r\n\t\t\t\tif (item instanceof EventHandler) {\r\n\t\t\t\t\tadd_event_handler(block, this.var, item);\r\n\t\t\t\t} else if (item instanceof Binding) {\r\n\t\t\t\t\tthis.add_this_binding(block, item);\r\n\t\t\t\t} else if (item instanceof Action) {\r\n\t\t\t\t\tadd_action(block, this.var, item);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.add_bindings(block, item);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\r\n\tadd_bindings(block: Block, binding_group: BindingGroup) {\r\n\t\tconst { renderer } = this;\r\n\r\n\t\tif (binding_group.bindings.length === 0) return;\r\n\r\n\t\trenderer.component.has_reactive_assignments = true;\r\n\r\n\t\tconst lock = binding_group.bindings.some(binding => binding.needs_lock) ?\r\n\t\t\tblock.get_unique_name(`${this.var.name}_updating`) :\r\n\t\t\tnull;\r\n\r\n\t\tif (lock) block.add_variable(lock, x`false`);\r\n\r\n\t\tconst handler = renderer.component.get_unique_name(`${this.var.name}_${binding_group.events.join('_')}_handler`);\r\n\t\trenderer.add_to_context(handler.name);\r\n\r\n\t\t// TODO figure out how to handle locks\r\n\t\tconst needs_lock = binding_group.bindings.some(binding => binding.needs_lock);\r\n\r\n\t\tconst dependencies: Set<string> = new Set();\r\n\t\tconst contextual_dependencies: Set<string> = new Set();\r\n\r\n\t\tbinding_group.bindings.forEach(binding => {\r\n\t\t\t// TODO this is a mess\r\n\t\t\tadd_to_set(dependencies, binding.get_update_dependencies());\r\n\t\t\tadd_to_set(contextual_dependencies, binding.handler.contextual_dependencies);\r\n\r\n\t\t\tbinding.render(block, lock);\r\n\t\t});\r\n\r\n\t\t// media bindings — awkward special case. The native timeupdate events\r\n\t\t// fire too infrequently, so we need to take matters into our\r\n\t\t// own hands\r\n\t\tlet animation_frame;\r\n\t\tif (binding_group.events[0] === 'timeupdate') {\r\n\t\t\tanimation_frame = block.get_unique_name(`${this.var.name}_animationframe`);\r\n\t\t\tblock.add_variable(animation_frame);\r\n\t\t}\r\n\r\n\t\tconst has_local_function = contextual_dependencies.size > 0 || needs_lock || animation_frame;\r\n\r\n\t\tlet callee = renderer.reference(handler);\r\n\r\n\t\t// TODO dry this out — similar code for event handlers and component bindings\r\n\t\tif (has_local_function) {\r\n\t\t\tconst args = Array.from(contextual_dependencies).map(name => renderer.reference(name));\r\n\r\n\t\t\t// need to create a block-local function that calls an instance-level function\r\n\t\t\tif (animation_frame) {\r\n\t\t\t\tblock.chunks.init.push(b`\r\n\t\t\t\t\tfunction ${handler}() {\r\n\t\t\t\t\t\t@_cancelAnimationFrame(${animation_frame});\r\n\t\t\t\t\t\tif (!${this.var}.paused) {\r\n\t\t\t\t\t\t\t${animation_frame} = @raf(${handler});\r\n\t\t\t\t\t\t\t${needs_lock && b`${lock} = true;`}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t${callee}.call(${this.var}, ${args});\r\n\t\t\t\t\t}\r\n\t\t\t\t`);\r\n\t\t\t} else {\r\n\t\t\t\tblock.chunks.init.push(b`\r\n\t\t\t\t\tfunction ${handler}() {\r\n\t\t\t\t\t\t${needs_lock && b`${lock} = true;`}\r\n\t\t\t\t\t\t${callee}.call(${this.var}, ${args});\r\n\t\t\t\t\t}\r\n\t\t\t\t`);\r\n\t\t\t}\r\n\r\n\t\t\tcallee = handler;\r\n\t\t}\r\n\r\n\t\tconst params = Array.from(contextual_dependencies).map(name => ({\r\n\t\t\ttype: 'Identifier',\r\n\t\t\tname\r\n\t\t}));\r\n\r\n\t\tthis.renderer.component.partly_hoisted.push(b`\r\n\t\t\tfunction ${handler}(${params}) {\r\n\t\t\t\t${binding_group.bindings.map(b => b.handler.mutation)}\r\n\t\t\t\t${Array.from(dependencies)\r\n\t\t\t\t\t.filter(dep => dep[0] !== '$')\r\n\t\t\t\t\t.filter(dep => !contextual_dependencies.has(dep))\r\n\t\t\t\t\t.map(dep => b`${this.renderer.invalidate(dep)};`)}\r\n\t\t\t}\r\n\t\t`);\r\n\r\n\t\tbinding_group.events.forEach(name => {\r\n\t\t\tif (name === 'elementresize') {\r\n\t\t\t\t// special case\r\n\t\t\t\tconst resize_listener = block.get_unique_name(`${this.var.name}_resize_listener`);\r\n\t\t\t\tblock.add_variable(resize_listener);\r\n\r\n\t\t\t\tblock.chunks.mount.push(\r\n\t\t\t\t\tb`${resize_listener} = @add_resize_listener(${this.var}, ${callee}.bind(${this.var}));`\r\n\t\t\t\t);\r\n\r\n\t\t\t\tblock.chunks.destroy.push(\r\n\t\t\t\t\tb`${resize_listener}();`\r\n\t\t\t\t);\r\n\t\t\t} else {\r\n\t\t\t\tblock.event_listeners.push(\r\n\t\t\t\t\tx`@listen(${this.var}, \"${name}\", ${callee})`\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tconst some_initial_state_is_undefined = binding_group.bindings\r\n\t\t\t.map(binding => x`${binding.snippet} === void 0`)\r\n\t\t\t.reduce((lhs, rhs) => x`${lhs} || ${rhs}`);\r\n\r\n\t\tconst should_initialise = (\r\n\t\t\tthis.node.name === 'select' ||\r\n\t\t\tbinding_group.bindings.find(binding => {\r\n\t\t\t\treturn (\r\n\t\t\t\t\tbinding.node.name === 'indeterminate' ||\r\n\t\t\t\t\tbinding.node.name === 'textContent' ||\r\n\t\t\t\t\tbinding.node.name === 'innerHTML' ||\r\n\t\t\t\t\tbinding.is_readonly_media_attribute()\r\n\t\t\t\t);\r\n\t\t\t})\r\n\t\t);\r\n\r\n\t\tif (should_initialise) {\r\n\t\t\tconst callback = has_local_function ? handler : x`() => ${callee}.call(${this.var})`;\r\n\t\t\tblock.chunks.hydrate.push(\r\n\t\t\t\tb`if (${some_initial_state_is_undefined}) @add_render_callback(${callback});`\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tif (binding_group.events[0] === 'elementresize') {\r\n\t\t\tblock.chunks.hydrate.push(\r\n\t\t\t\tb`@add_render_callback(() => ${callee}.call(${this.var}));`\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tif (lock) {\r\n\t\t\tblock.chunks.update.push(b`${lock} = false;`);\r\n\t\t}\r\n\t}\r\n\r\n\tadd_this_binding(block: Block, this_binding: Binding) {\r\n\t\tconst { renderer } = this;\r\n\r\n\t\trenderer.component.has_reactive_assignments = true;\r\n\r\n\t\tconst binding_callback = bind_this(renderer.component, block, this_binding, this.var);\r\n\t\tblock.chunks.mount.push(binding_callback);\r\n\t}\r\n\r\n\tadd_attributes(block: Block) {\r\n\t\t// Get all the class dependencies first\r\n\t\tthis.attributes.forEach((attribute) => {\r\n\t\t\tif (attribute.node.name === 'class') {\r\n\t\t\t\tconst dependencies = attribute.node.get_dependencies();\r\n\t\t\t\tpush_array(this.class_dependencies, dependencies);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (this.node.attributes.some(attr => attr.is_spread) || this.node.is_dynamic_element) {\r\n\t\t\tthis.add_spread_attributes(block);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.attributes.forEach((attribute) => {\r\n\t\t\tattribute.render(block);\r\n\t\t});\r\n\t}\r\n\r\n\tadd_spread_attributes(block: Block) {\r\n\t\tconst levels = block.get_unique_name(`${this.var.name}_levels`);\r\n\t\tconst data = block.get_unique_name(`${this.var.name}_data`);\r\n\r\n\t\tconst initial_props = [];\r\n\t\tconst updates = [];\r\n\r\n\t\tthis.attributes\r\n\t\t\t.forEach(attr => {\r\n\t\t\t\tconst dependencies = attr.node.get_dependencies();\r\n\r\n\t\t\t\tconst condition = dependencies.length > 0\r\n\t\t\t\t\t? block.renderer.dirty(dependencies)\r\n\t\t\t\t\t: null;\r\n\r\n\t\t\t\tif (attr instanceof SpreadAttributeWrapper) {\r\n\t\t\t\t\tconst snippet = attr.node.expression.manipulate(block);\r\n\r\n\t\t\t\t\tinitial_props.push(snippet);\r\n\r\n\t\t\t\t\tupdates.push(condition ? x`${condition} && ${snippet}` : snippet);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconst name = attr.property_name || attr.name;\r\n\t\t\t\t\tinitial_props.push(x`{ ${name}: ${attr.get_init(block, attr.get_value(block))} }`);\r\n\t\t\t\t\tconst snippet = x`{ ${name}: ${attr.should_cache ? attr.last : attr.get_value(block)} }`;\r\n\r\n\t\t\t\t\tupdates.push(condition ? x`${attr.get_dom_update_conditions(block, condition)} && ${snippet}` : snippet);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\tblock.chunks.init.push(b`\r\n\t\t\tlet ${levels} = [${initial_props}];\r\n\r\n\t\t\tlet ${data} = {};\r\n\t\t\tfor (let #i = 0; #i < ${levels}.length; #i += 1) {\r\n\t\t\t\t${data} = @assign(${data}, ${levels}[#i]);\r\n\t\t\t}\r\n\t\t`);\r\n\r\n\t\tconst fn = this.node.namespace === namespaces.svg ? x`@set_svg_attributes` : x`@set_attributes`;\r\n\r\n\t\tblock.chunks.hydrate.push(\r\n\t\t\tb`${fn}(${this.var}, ${data});`\r\n\t\t);\r\n\r\n\t\tblock.chunks.update.push(b`\r\n\t\t\t${fn}(${this.var}, ${data} = @get_spread_update(${levels}, [\r\n\t\t\t\t${updates}\r\n\t\t\t]));\r\n\t\t`);\r\n\r\n\t\t// handle edge cases for elements\r\n\t\tif (this.node.name === 'select') {\r\n\t\t\tconst dependencies = new Set<string>();\r\n\t\t\tfor (const attr of this.attributes) {\r\n\t\t\t\tfor (const dep of attr.node.dependencies) {\r\n\t\t\t\t\tdependencies.add(dep);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tblock.chunks.mount.push(b`\r\n\t\t\t\t(${data}.multiple ? @select_options : @select_option)(${this.var}, ${data}.value);\r\n\t\t\t`);\r\n\t\t\tblock.chunks.update.push(b`\r\n\t\t\t\tif (${block.renderer.dirty(Array.from(dependencies))} && 'value' in ${data}) (${data}.multiple ? @select_options : @select_option)(${this.var}, ${data}.value);\r\n\t\t\t`);\r\n\t\t} else if (this.node.name === 'input' && this.attributes.find(attr => attr.node.name === 'value')) {\r\n\t\t\tconst type = this.node.get_static_attribute_value('type');\r\n\t\t\tif (type === null || type === '' || type === 'text' || type === 'email' || type === 'password') {\r\n\t\t\t\tblock.chunks.mount.push(b`\r\n\t\t\t\t\t${this.var}.value = ${data}.value;\r\n\t\t\t\t`);\r\n\t\t\t\tblock.chunks.update.push(b`\r\n\t\t\t\t\tif ('value' in ${data}) {\r\n\t\t\t\t\t\t${this.var}.value = ${data}.value;\r\n\t\t\t\t\t}\r\n\t\t\t\t`);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (['button', 'input', 'keygen', 'select', 'textarea'].includes(this.node.name)) {\r\n\t\t\tblock.chunks.mount.push(b`\r\n\t\t\t\tif (${this.var}.autofocus) ${this.var}.focus();\r\n\t\t\t`);\r\n\t\t}\r\n\t}\r\n\r\n\tadd_transitions(\r\n\t\tblock: Block\r\n\t) {\r\n\t\tconst { intro, outro } = this.node;\r\n\t\tif (!intro && !outro) return;\r\n\r\n\t\tif (intro === outro) {\r\n\t\t\t// bidirectional transition\r\n\t\t\tconst name = block.get_unique_name(`${this.var.name}_transition`);\r\n\t\t\tconst snippet = intro.expression\r\n\t\t\t\t? intro.expression.manipulate(block)\r\n\t\t\t\t: x`{}`;\r\n\r\n\t\t\tblock.add_variable(name);\r\n\r\n\t\t\tconst fn = this.renderer.reference(intro.name);\r\n\r\n\t\t\tconst intro_block = b`\r\n\t\t\t\t@add_render_callback(() => {\r\n\t\t\t\t\tif (!${name}) ${name} = @create_bidirectional_transition(${this.var}, ${fn}, ${snippet}, true);\r\n\t\t\t\t\t${name}.run(1);\r\n\t\t\t\t});\r\n\t\t\t`;\r\n\r\n\t\t\tconst outro_block = b`\r\n\t\t\t\tif (!${name}) ${name} = @create_bidirectional_transition(${this.var}, ${fn}, ${snippet}, false);\r\n\t\t\t\t${name}.run(0);\r\n\t\t\t`;\r\n\r\n\t\t\tif (intro.is_local) {\r\n\t\t\t\tblock.chunks.intro.push(b`\r\n\t\t\t\t\tif (#local) {\r\n\t\t\t\t\t\t${intro_block}\r\n\t\t\t\t\t}\r\n\t\t\t\t`);\r\n\r\n\t\t\t\tblock.chunks.outro.push(b`\r\n\t\t\t\t\tif (#local) {\r\n\t\t\t\t\t\t${outro_block}\r\n\t\t\t\t\t}\r\n\t\t\t\t`);\r\n\t\t\t} else {\r\n\t\t\t\tblock.chunks.intro.push(intro_block);\r\n\t\t\t\tblock.chunks.outro.push(outro_block);\r\n\t\t\t}\r\n\r\n\t\t\tblock.chunks.destroy.push(b`if (detaching && ${name}) ${name}.end();`);\r\n\t\t} else {\r\n\t\t\tconst intro_name = intro && block.get_unique_name(`${this.var.name}_intro`);\r\n\t\t\tconst outro_name = outro && block.get_unique_name(`${this.var.name}_outro`);\r\n\r\n\t\t\tif (intro) {\r\n\t\t\t\tblock.add_variable(intro_name);\r\n\t\t\t\tconst snippet = intro.expression\r\n\t\t\t\t\t? intro.expression.manipulate(block)\r\n\t\t\t\t\t: x`{}`;\r\n\r\n\t\t\t\tconst fn = this.renderer.reference(intro.name);\r\n\r\n\t\t\t\tlet intro_block;\r\n\r\n\t\t\t\tif (outro) {\r\n\t\t\t\t\tintro_block = b`\r\n\t\t\t\t\t\t@add_render_callback(() => {\r\n\t\t\t\t\t\t\tif (${outro_name}) ${outro_name}.end(1);\r\n\t\t\t\t\t\t\t${intro_name} = @create_in_transition(${this.var}, ${fn}, ${snippet});\r\n\t\t\t\t\t\t\t${intro_name}.start();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t`;\r\n\r\n\t\t\t\t\tblock.chunks.outro.push(b`if (${intro_name}) ${intro_name}.invalidate();`);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tintro_block = b`\r\n\t\t\t\t\t\tif (!${intro_name}) {\r\n\t\t\t\t\t\t\t@add_render_callback(() => {\r\n\t\t\t\t\t\t\t\t${intro_name} = @create_in_transition(${this.var}, ${fn}, ${snippet});\r\n\t\t\t\t\t\t\t\t${intro_name}.start();\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t`;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (intro.is_local) {\r\n\t\t\t\t\tintro_block = b`\r\n\t\t\t\t\t\tif (#local) {\r\n\t\t\t\t\t\t\t${intro_block}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t`;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tblock.chunks.intro.push(intro_block);\r\n\t\t\t}\r\n\r\n\t\t\tif (outro) {\r\n\t\t\t\tblock.add_variable(outro_name);\r\n\t\t\t\tconst snippet = outro.expression\r\n\t\t\t\t\t? outro.expression.manipulate(block)\r\n\t\t\t\t\t: x`{}`;\r\n\r\n\t\t\t\tconst fn = this.renderer.reference(outro.name);\r\n\r\n\t\t\t\tif (!intro) {\r\n\t\t\t\t\tblock.chunks.intro.push(b`\r\n\t\t\t\t\t\tif (${outro_name}) ${outro_name}.end(1);\r\n\t\t\t\t\t`);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// TODO hide elements that have outro'd (unless they belong to a still-outroing\r\n\t\t\t\t// group) prior to their removal from the DOM\r\n\t\t\t\tlet outro_block = b`\r\n\t\t\t\t\t${outro_name} = @create_out_transition(${this.var}, ${fn}, ${snippet});\r\n\t\t\t\t`;\r\n\r\n\t\t\t\tif (outro.is_local) {\r\n\t\t\t\t\toutro_block = b`\r\n\t\t\t\t\t\tif (#local) {\r\n\t\t\t\t\t\t\t${outro_block}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t`;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tblock.chunks.outro.push(outro_block);\r\n\r\n\t\t\t\tblock.chunks.destroy.push(b`if (detaching && ${outro_name}) ${outro_name}.end();`);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif ((intro && intro.expression && intro.expression.dependencies.size) || (outro && outro.expression && outro.expression.dependencies.size)) {\r\n\t\t\tblock.maintain_context = true;\r\n\t\t}\r\n\t}\r\n\r\n\tadd_animation(block: Block) {\r\n\t\tif (!this.node.animation) return;\r\n\r\n\t\tconst { outro } = this.node;\r\n\r\n\t\tconst rect = block.get_unique_name('rect');\r\n\t\tconst stop_animation = block.get_unique_name('stop_animation');\r\n\r\n\t\tblock.add_variable(rect);\r\n\t\tblock.add_variable(stop_animation, x`@noop`);\r\n\r\n\t\tblock.chunks.measure.push(b`\r\n\t\t\t${rect} = ${this.var}.getBoundingClientRect();\r\n\t\t`);\r\n\r\n\t\tif (block.type === CHILD_DYNAMIC_ELEMENT_BLOCK) {\r\n\t\t\tblock.chunks.measure.push(b`return ${rect}`);\r\n\t\t\tblock.chunks.restore_measurements.push(b`${rect} = #measurement;`);\r\n\t\t}\r\n\r\n\t\tblock.chunks.fix.push(b`\r\n\t\t\t@fix_position(${this.var});\r\n\t\t\t${stop_animation}();\r\n\t\t\t${outro && b`@add_transform(${this.var}, ${rect});`}\r\n\t\t`);\r\n\r\n\t\tlet params;\r\n\t\tif (this.node.animation.expression) {\r\n\t\t\tparams = this.node.animation.expression.manipulate(block);\r\n\r\n\t\t\tif (this.node.animation.expression.dynamic_dependencies().length) {\r\n\t\t\t\t// if `params` is dynamic, calculate params ahead of time in the `.r()` method\r\n\t\t\t\tconst params_var = block.get_unique_name('params');\r\n\t\t\t\tblock.add_variable(params_var);\r\n\r\n\t\t\t\tblock.chunks.measure.push(b`${params_var} = ${params};`);\r\n\t\t\t\tparams = params_var;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tparams = x`{}`;\r\n\t\t}\r\n\r\n\t\tconst name = this.renderer.reference(this.node.animation.name);\r\n\r\n\t\tblock.chunks.animate.push(b`\r\n\t\t\t${stop_animation}();\r\n\t\t\t${stop_animation} = @create_animation(${this.var}, ${rect}, ${name}, ${params});\r\n\t\t`);\r\n\t}\r\n\r\n\tadd_classes(block: Block) {\r\n\t\tconst has_spread = this.node.attributes.some(attr => attr.is_spread);\r\n\t\tthis.node.classes.forEach(class_directive => {\r\n\t\t\tconst { expression, name } = class_directive;\r\n\t\t\tlet snippet;\r\n\t\t\tlet dependencies;\r\n\t\t\tif (expression) {\r\n\t\t\t\tsnippet = expression.manipulate(block);\r\n\t\t\t\tdependencies = expression.dependencies;\r\n\t\t\t} else {\r\n\t\t\t\tsnippet = name;\r\n\t\t\t\tdependencies = new Set([name]);\r\n\t\t\t}\r\n\t\t\tconst updater = b`@toggle_class(${this.var}, \"${name}\", ${snippet});`;\r\n\r\n\t\t\tblock.chunks.hydrate.push(updater);\r\n\r\n\t\t\tif (has_spread || this.node.is_dynamic_element) {\r\n\t\t\t\tblock.chunks.update.push(updater);\r\n\t\t\t} else if ((dependencies && dependencies.size > 0) || this.class_dependencies.length) {\r\n\t\t\t\tconst all_dependencies = this.class_dependencies.concat(...dependencies);\r\n\t\t\t\tlet condition = block.renderer.dirty(all_dependencies);\r\n\t\t\t\tif (block.has_outros) {\r\n\t\t\t\t\tcondition = x`!#current || ${condition}`;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// If all of the dependencies are non-dynamic (don't get updated) then there is no reason\r\n\t\t\t\t// to add an updater for this.\r\n\t\t\t\tconst any_dynamic_dependencies = all_dependencies.some((dep) => {\r\n\t\t\t\t\tconst variable = this.renderer.component.var_lookup.get(dep);\r\n\t\t\t\t\treturn !variable || is_dynamic(variable);\r\n\t\t\t\t});\r\n\t\t\t\tif (any_dynamic_dependencies) {\r\n\t\t\t\t\tblock.chunks.update.push(b`\r\n\t\t\t\t\t\tif (${condition}) {\r\n\t\t\t\t\t\t\t${updater}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t`);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tadd_styles(block: Block) {\r\n\t\tconst has_spread = this.node.attributes.some(attr => attr.is_spread);\r\n\t\tthis.node.styles.forEach((style_directive) => {\r\n\t\t\tconst { name, expression, should_cache } = style_directive;\r\n\r\n\t\t\tconst snippet = expression.manipulate(block);\r\n\t\t\tlet cached_snippet;\r\n\t\t\tif (should_cache) {\r\n\t\t\t\tcached_snippet = block.get_unique_name(`style_${name.replace(/-/g, '_')}`);\r\n\t\t\t\tblock.add_variable(cached_snippet, snippet);\r\n\t\t\t}\r\n\r\n\t\t\tconst updater = b`@set_style(${this.var}, \"${name}\", ${should_cache ? cached_snippet : snippet}, false)`;\r\n\r\n\t\t\tblock.chunks.hydrate.push(updater);\r\n\r\n\t\t\tconst dependencies = expression.dynamic_dependencies();\r\n\t\t\tif (has_spread) {\r\n\t\t\t\tblock.chunks.update.push(updater);\r\n\t\t\t} else if (dependencies.length > 0) {\r\n\t\t\t\tif (should_cache) {\r\n\t\t\t\t\tblock.chunks.update.push(b`\r\n\t\t\t\t\t\t\tif (${block.renderer.dirty(dependencies)} && (${cached_snippet} !== (${cached_snippet} = ${snippet}))) {\r\n\t\t\t\t\t\t\t\t${updater}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t`);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tblock.chunks.update.push(b`\r\n\t\t\t\t\t\tif (${block.renderer.dirty(dependencies)}) {\r\n\t\t\t\t\t\t\t${updater}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t`);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tadd_manual_style_scoping(block) {\r\n\t\tif (this.node.needs_manual_style_scoping) {\r\n\t\t\tconst updater = b`@toggle_class(${this.var}, \"${this.node.component.stylesheet.id}\", true);`;\r\n\t\t\tblock.chunks.hydrate.push(updater);\r\n\t\t\tblock.chunks.update.push(updater);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction to_html(wrappers: Array<ElementWrapper | TextWrapper | MustacheTagWrapper | RawMustacheTagWrapper>, block: Block, literal: any, state: any, can_use_raw_text?: boolean) {\r\n\twrappers.forEach(wrapper => {\r\n\t\tif (wrapper instanceof TextWrapper) {\r\n\t\t\t// Don't add the <pre>/<textare> newline logic here because pre/textarea.innerHTML\r\n\t\t\t// would keep the leading newline, too, only someParent.innerHTML = '..<pre/textarea>..' won't\r\n\r\n\t\t\tif ((wrapper as TextWrapper).use_space()) state.quasi.value.raw += ' ';\r\n\r\n\t\t\tconst parent = wrapper.node.parent as Element;\r\n\r\n\t\t\tconst raw = parent && (\r\n\t\t\t\tparent.name === 'script' ||\r\n\t\t\t\tparent.name === 'style' ||\r\n\t\t\t\tcan_use_raw_text\r\n\t\t\t);\r\n\r\n\t\t\tstate.quasi.value.raw += (raw ? wrapper.data : escape_html(wrapper.data))\r\n\t\t\t\t.replace(/\\\\/g, '\\\\\\\\')\r\n\t\t\t\t.replace(/`/g, '\\\\`')\r\n\t\t\t\t.replace(/\\$/g, '\\\\$');\r\n\t\t} else if (wrapper instanceof MustacheTagWrapper || wrapper instanceof RawMustacheTagWrapper) {\r\n\t\t\tliteral.quasis.push(state.quasi);\r\n\t\t\tliteral.expressions.push(wrapper.node.expression.manipulate(block));\r\n\t\t\tstate.quasi = {\r\n\t\t\t\ttype: 'TemplateElement',\r\n\t\t\t\tvalue: { raw: '' }\r\n\t\t\t};\r\n\t\t} else if (wrapper.node.name === 'noscript') {\r\n\t\t\t// do nothing\r\n\t\t} else {\r\n\t\t\t// element\r\n\t\t\tstate.quasi.value.raw += `<${wrapper.node.name}`;\r\n\r\n\t\t\tconst is_empty_textarea = wrapper.node.name === 'textarea' && wrapper.fragment.nodes.length === 0;\r\n\r\n\t\t\t(wrapper as ElementWrapper).attributes.forEach((attr: AttributeWrapper) => {\r\n\t\t\t\tif (is_empty_textarea && attr.node.name === 'value') {\r\n\t\t\t\t\t// The value attribute of <textarea> renders as content.\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tstate.quasi.value.raw += ` ${fix_attribute_casing(attr.node.name)}=\"`;\r\n\r\n\t\t\t\tto_html_for_attr_value(attr, block, literal, state);\r\n\r\n\t\t\t\tstate.quasi.value.raw += '\"';\r\n\t\t\t});\r\n\r\n\t\t\tif (!wrapper.void) {\r\n\t\t\t\tstate.quasi.value.raw += '>';\r\n\r\n\t\t\t\tif (wrapper.node.name === 'pre') {\r\n\t\t\t\t\t// Two or more leading newlines are required to restore the leading newline immediately after `<pre>`.\r\n\t\t\t\t\t// see https://html.spec.whatwg.org/multipage/grouping-content.html#the-pre-element\r\n\t\t\t\t\tconst first = wrapper.fragment.nodes[0];\r\n\t\t\t\t\tif (first && first.node.type === 'Text' && start_newline.test(first.node.data)) {\r\n\t\t\t\t\t\tstate.quasi.value.raw += '\\n';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (is_empty_textarea) {\r\n\t\t\t\t\t// The <textarea> renders the value attribute as content because the content is stored in the value attribute.\r\n\t\t\t\t\tconst value_attribute = wrapper.attributes.find(attr => attr.node.name === 'value');\r\n\t\t\t\t\tif (value_attribute) {\r\n\t\t\t\t\t\t// Two or more leading newlines are required to restore the leading newline immediately after `<textarea>`.\r\n\t\t\t\t\t\t// see https://html.spec.whatwg.org/multipage/syntax.html#element-restrictions\r\n\t\t\t\t\t\tconst first = value_attribute.node.chunks[0];\r\n\t\t\t\t\t\tif (first && first.type === 'Text' && start_newline.test(first.data)) {\r\n\t\t\t\t\t\t\tstate.quasi.value.raw += '\\n';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tto_html_for_attr_value(value_attribute, block, literal, state);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tto_html(wrapper.fragment.nodes as Array<ElementWrapper | TextWrapper>, block, literal, state);\r\n\r\n\t\t\t\tstate.quasi.value.raw += `</${wrapper.node.name}>`;\r\n\t\t\t} else {\r\n\t\t\t\tstate.quasi.value.raw += '/>';\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n}\r\n\r\nfunction to_html_for_attr_value(attr: AttributeWrapper | StyleAttributeWrapper | SpreadAttributeWrapper, block: Block, literal: any, state: any) {\r\n\tattr.node.chunks.forEach(chunk => {\r\n\t\tif (chunk.type === 'Text') {\r\n\t\t\tstate.quasi.value.raw += escape_html(chunk.data);\r\n\t\t} else {\r\n\t\t\tliteral.quasis.push(state.quasi);\r\n\t\t\tliteral.expressions.push(chunk.manipulate(block));\r\n\r\n\t\t\tstate.quasi = {\r\n\t\t\t\ttype: 'TemplateElement',\r\n\t\t\t\tvalue: { raw: '' }\r\n\t\t\t};\r\n\t\t}\r\n\t});\r\n}\r\n","import Wrapper from './shared/Wrapper';\r\nimport Renderer from '../Renderer';\r\nimport Block from '../Block';\r\nimport Head from '../../nodes/Head';\r\nimport FragmentWrapper from './Fragment';\r\nimport { x, b } from 'code-red';\r\nimport { Identifier } from 'estree';\r\n\r\nexport default class HeadWrapper extends Wrapper {\r\n\tfragment: FragmentWrapper;\r\n\tnode: Head;\r\n\r\n\tconstructor(\r\n\t\trenderer: Renderer,\r\n\t\tblock: Block,\r\n\t\tparent: Wrapper,\r\n\t\tnode: Head,\r\n\t\tstrip_whitespace: boolean,\r\n\t\tnext_sibling: Wrapper\r\n\t) {\r\n\t\tsuper(renderer, block, parent, node);\r\n\r\n\t\tthis.can_use_innerhtml = false;\r\n\r\n\t\tthis.fragment = new FragmentWrapper(\r\n\t\t\trenderer,\r\n\t\t\tblock,\r\n\t\t\tnode.children,\r\n\t\t\tthis,\r\n\t\t\tstrip_whitespace,\r\n\t\t\tnext_sibling\r\n\t\t);\r\n\t}\r\n\r\n\trender(block: Block, _parent_node: Identifier, _parent_nodes: Identifier) {\r\n\t\tlet nodes;\r\n\t\tif (this.renderer.options.hydratable && this.fragment.nodes.length) {\r\n\t\t\tnodes = block.get_unique_name('head_nodes');\r\n\t\t\tblock.chunks.claim.push(b`const ${nodes} = @query_selector_all('[data-svelte=\"${this.node.id}\"]', @_document.head);`);\r\n\t\t}\r\n\r\n\t\tthis.fragment.render(block, x`@_document.head` as unknown as Identifier, nodes);\r\n\r\n\t\tif (nodes && this.renderer.options.hydratable) {\r\n\t\t\tblock.chunks.claim.push(\r\n\t\t\t\tb`${nodes}.forEach(@detach);`\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n}\r\n","import Wrapper from './shared/Wrapper';\r\nimport Renderer from '../Renderer';\r\nimport Block from '../Block';\r\nimport EachBlock from '../../nodes/EachBlock';\r\nimport IfBlock from '../../nodes/IfBlock';\r\nimport create_debugging_comment from './shared/create_debugging_comment';\r\nimport ElseBlock from '../../nodes/ElseBlock';\r\nimport FragmentWrapper from './Fragment';\r\nimport { b, x } from 'code-red';\r\nimport { walk } from 'estree-walker';\r\nimport { is_head } from './shared/is_head';\r\nimport { Identifier, Node } from 'estree';\r\nimport { push_array } from '../../../utils/push_array';\r\nimport { add_const_tags, add_const_tags_context } from './shared/add_const_tags';\r\n\r\nfunction is_else_if(node: ElseBlock) {\r\n\treturn (\r\n\t\tnode && node.children.length === 1 && node.children[0].type === 'IfBlock'\r\n\t);\r\n}\r\n\r\nclass IfBlockBranch extends Wrapper {\r\n\tblock: Block;\r\n\tfragment: FragmentWrapper;\r\n\tdependencies?: string[];\r\n\tcondition?: any;\r\n\tsnippet?: Node;\r\n\tis_dynamic: boolean;\r\n\tnode: IfBlock | ElseBlock;\r\n\r\n\tvar = null;\r\n\tget_ctx_name: Node | undefined;\r\n\r\n\tconstructor(\r\n\t\trenderer: Renderer,\r\n\t\tblock: Block,\r\n\t\tparent: IfBlockWrapper,\r\n\t\tnode: IfBlock | ElseBlock,\r\n\t\tstrip_whitespace: boolean,\r\n\t\tnext_sibling: Wrapper\r\n\t) {\r\n\t\tsuper(renderer, block, parent, node);\r\n\r\n\t\tconst { expression } = (node as IfBlock);\r\n\t\tconst is_else = !expression;\r\n\r\n\t\tif (expression) {\r\n\t\t\tthis.dependencies = expression.dynamic_dependencies();\r\n\r\n\t\t\t// TODO is this the right rule? or should any non-reference count?\r\n\t\t\t// const should_cache = !is_reference(expression.node, null) && dependencies.length > 0;\r\n\t\t\tlet should_cache = false;\r\n\t\t\twalk(expression.node, {\r\n\t\t\t\tenter(node) {\r\n\t\t\t\t\tif (node.type === 'CallExpression' || node.type === 'NewExpression') {\r\n\t\t\t\t\t\tshould_cache = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif (should_cache) {\r\n\t\t\t\tthis.condition = block.get_unique_name('show_if');\r\n\t\t\t\tthis.snippet = (expression.manipulate(block) as Node);\r\n\t\t\t} else {\r\n\t\t\t\tthis.condition = expression.manipulate(block);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tadd_const_tags_context(renderer, this.node.const_tags);\r\n\r\n\t\tthis.block = block.child({\r\n\t\t\tcomment: create_debugging_comment(node, parent.renderer.component),\r\n\t\t\tname: parent.renderer.component.get_unique_name(\r\n\t\t\t\tis_else ? 'create_else_block' : 'create_if_block'\r\n\t\t\t),\r\n\t\t\ttype: (node as IfBlock).expression ? 'if' : 'else'\r\n\t\t});\r\n\r\n\t\tthis.fragment = new FragmentWrapper(renderer, this.block, node.children, parent, strip_whitespace, next_sibling);\r\n\r\n\t\tthis.is_dynamic = this.block.dependencies.size > 0;\r\n\r\n\t\tif (node.const_tags.length > 0) {\r\n\t\t\tthis.get_ctx_name = parent.renderer.component.get_unique_name(is_else ? 'get_else_ctx' : 'get_if_ctx');\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default class IfBlockWrapper extends Wrapper {\r\n\tnode: IfBlock;\r\n\tbranches: IfBlockBranch[];\r\n\tneeds_update = false;\r\n\r\n\tvar: Identifier = { type: 'Identifier', name: 'if_block' };\r\n\r\n\tconstructor(\r\n\t\trenderer: Renderer,\r\n\t\tblock: Block,\r\n\t\tparent: Wrapper,\r\n\t\tnode: EachBlock,\r\n\t\tstrip_whitespace: boolean,\r\n\t\tnext_sibling: Wrapper\r\n\t) {\r\n\t\tsuper(renderer, block, parent, node);\r\n\r\n\t\tthis.cannot_use_innerhtml();\r\n\t\tthis.not_static_content();\r\n\r\n\t\tthis.branches = [];\r\n\r\n\t\tconst blocks: Block[] = [];\r\n\t\tlet is_dynamic = false;\r\n\t\tlet has_intros = false;\r\n\t\tlet has_outros = false;\r\n\r\n\t\tconst create_branches = (node: IfBlock) => {\r\n\t\t\tconst branch = new IfBlockBranch(\r\n\t\t\t\trenderer,\r\n\t\t\t\tblock,\r\n\t\t\t\tthis,\r\n\t\t\t\tnode,\r\n\t\t\t\tstrip_whitespace,\r\n\t\t\t\tnext_sibling\r\n\t\t\t);\r\n\r\n\t\t\tthis.branches.push(branch);\r\n\r\n\t\t\tblocks.push(branch.block);\r\n\t\t\tblock.add_dependencies(node.expression.dependencies);\r\n\r\n\t\t\tif (branch.block.dependencies.size > 0) {\r\n\t\t\t\t// the condition, or its contents, is dynamic\r\n\t\t\t\tis_dynamic = true;\r\n\t\t\t\tblock.add_dependencies(branch.block.dependencies);\r\n\t\t\t}\r\n\r\n\t\t\tif (branch.dependencies && branch.dependencies.length > 0) {\r\n\t\t\t\t// the condition itself is dynamic\r\n\t\t\t\tthis.needs_update = true;\r\n\t\t\t}\r\n\r\n\t\t\tif (branch.block.has_intros) has_intros = true;\r\n\t\t\tif (branch.block.has_outros) has_outros = true;\r\n\r\n\t\t\tif (is_else_if(node.else)) {\r\n\t\t\t\tcreate_branches(node.else.children[0] as IfBlock);\r\n\t\t\t} else if (node.else) {\r\n\t\t\t\tconst branch = new IfBlockBranch(\r\n\t\t\t\t\trenderer,\r\n\t\t\t\t\tblock,\r\n\t\t\t\t\tthis,\r\n\t\t\t\t\tnode.else,\r\n\t\t\t\t\tstrip_whitespace,\r\n\t\t\t\t\tnext_sibling\r\n\t\t\t\t);\r\n\r\n\t\t\t\tthis.branches.push(branch);\r\n\r\n\t\t\t\tblocks.push(branch.block);\r\n\r\n\t\t\t\tif (branch.block.dependencies.size > 0) {\r\n\t\t\t\t\tis_dynamic = true;\r\n\t\t\t\t\tblock.add_dependencies(branch.block.dependencies);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (branch.block.has_intros) has_intros = true;\r\n\t\t\t\tif (branch.block.has_outros) has_outros = true;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tcreate_branches(this.node);\r\n\r\n\t\tblocks.forEach(block => {\r\n\t\t\tblock.has_update_method = is_dynamic;\r\n\t\t\tblock.has_intro_method = has_intros;\r\n\t\t\tblock.has_outro_method = has_outros;\r\n\t\t});\r\n\r\n\t\tpush_array(renderer.blocks, blocks);\r\n\t}\r\n\r\n\trender(\r\n\t\tblock: Block,\r\n\t\tparent_node: Identifier,\r\n\t\tparent_nodes: Identifier\r\n\t) {\r\n\t\tconst name = this.var;\r\n\r\n\t\tconst needs_anchor = this.next ? !this.next.is_dom_node() : !parent_node || !this.parent.is_dom_node();\r\n\t\tconst anchor = needs_anchor\r\n\t\t\t? block.get_unique_name(`${this.var.name}_anchor`)\r\n\t\t\t: (this.next && this.next.var) || 'null';\r\n\r\n\t\tconst has_else = !(this.branches[this.branches.length - 1].condition);\r\n\t\tconst if_exists_condition = has_else ? null : name;\r\n\r\n\t\tconst dynamic = this.branches[0].block.has_update_method; // can use [0] as proxy for all, since they necessarily have the same value\r\n\t\tconst has_intros = this.branches[0].block.has_intro_method;\r\n\t\tconst has_outros = this.branches[0].block.has_outro_method;\r\n\t\tconst has_transitions = has_intros || has_outros;\r\n\r\n\t\tthis.branches.forEach(branch => {\r\n\t\t\tif (branch.get_ctx_name) {\r\n\t\t\t\tthis.renderer.blocks.push(b`\r\n\t\t\t\tfunction ${branch.get_ctx_name}(#ctx) {\r\n\t\t\t\t\tconst child_ctx = #ctx.slice();\r\n\t\t\t\t\t${add_const_tags(block, branch.node.const_tags, 'child_ctx')}\r\n\t\t\t\t\treturn child_ctx;\r\n\t\t\t\t}\r\n\t\t\t\t`);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tconst vars = { name, anchor, if_exists_condition, has_else, has_transitions };\r\n\r\n\t\tconst detaching = parent_node && !is_head(parent_node) ? null : 'detaching';\r\n\r\n\t\tif (this.node.else) {\r\n\t\t\tthis.branches.forEach(branch => {\r\n\t\t\t\tif (branch.snippet) block.add_variable(branch.condition);\r\n\t\t\t});\r\n\r\n\t\t\tif (has_outros) {\r\n\t\t\t\tthis.render_compound_with_outros(block, parent_node, parent_nodes, dynamic, vars, detaching);\r\n\r\n\t\t\t\tblock.chunks.outro.push(b`@transition_out(${name});`);\r\n\t\t\t} else {\r\n\t\t\t\tthis.render_compound(block, parent_node, parent_nodes, dynamic, vars, detaching);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.render_simple(block, parent_node, parent_nodes, dynamic, vars, detaching);\r\n\r\n\t\t\tif (has_outros) {\r\n\t\t\t\tblock.chunks.outro.push(b`@transition_out(${name});`);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (if_exists_condition) {\r\n\t\t\tblock.chunks.create.push(b`if (${if_exists_condition}) ${name}.c();`);\r\n\t\t} else {\r\n\t\t\tblock.chunks.create.push(b`${name}.c();`);\r\n\t\t}\r\n\r\n\t\tif (parent_nodes && this.renderer.options.hydratable) {\r\n\t\t\tif (if_exists_condition) {\r\n\t\t\t\tblock.chunks.claim.push(\r\n\t\t\t\t\tb`if (${if_exists_condition}) ${name}.l(${parent_nodes});`\r\n\t\t\t\t);\r\n\t\t\t} else {\r\n\t\t\t\tblock.chunks.claim.push(\r\n\t\t\t\t\tb`${name}.l(${parent_nodes});`\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (has_intros || has_outros) {\r\n\t\t\tblock.chunks.intro.push(b`@transition_in(${name});`);\r\n\t\t}\r\n\r\n\t\tif (needs_anchor) {\r\n\t\t\tblock.add_element(\r\n\t\t\t\tanchor as Identifier,\r\n\t\t\t\tx`@empty()`,\r\n\t\t\t\tparent_nodes && x`@empty()`,\r\n\t\t\t\tparent_node\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tthis.branches.forEach(branch => {\r\n\t\t\tbranch.fragment.render(branch.block, null, x`#nodes` as unknown as Identifier);\r\n\t\t});\r\n\t}\r\n\r\n\trender_compound(\r\n\t\tblock: Block,\r\n\t\tparent_node: Identifier,\r\n\t\t_parent_nodes: Identifier,\r\n\t\tdynamic,\r\n\t\t{ name, anchor, has_else, if_exists_condition, has_transitions },\r\n\t\tdetaching\r\n\t) {\r\n\t\tconst select_block_type = this.renderer.component.get_unique_name('select_block_type');\r\n\t\tconst current_block_type = block.get_unique_name('current_block_type');\r\n\t\tconst need_select_block_ctx = this.branches.some(branch => branch.get_ctx_name);\r\n\t\tconst select_block_ctx = need_select_block_ctx ? block.get_unique_name('select_block_ctx') : null;\r\n\t\tconst if_ctx = select_block_ctx ? x`${select_block_ctx}(#ctx, ${current_block_type})` : x`#ctx`;\r\n\r\n\t\tconst get_block = has_else\r\n\t\t\t? x`${current_block_type}(${if_ctx})`\r\n\t\t\t: x`${current_block_type} && ${current_block_type}(${if_ctx})`;\r\n\r\n\t\tif (this.needs_update) {\r\n\t\t\tblock.chunks.init.push(b`\r\n\t\t\t\tfunction ${select_block_type}(#ctx, #dirty) {\r\n\t\t\t\t\t${this.branches.map(({ dependencies, condition, snippet }) => {\r\n\t\t\t\t\t\treturn b`${snippet && dependencies.length > 0 ? b`if (${block.renderer.dirty(dependencies)}) ${condition} = null;` : null}`;\r\n\t\t\t\t\t})}\r\n\t\t\t\t\t${this.branches.map(({ condition, snippet, block }) => condition\r\n\t\t\t\t\t\t? b`\r\n\t\t\t\t\t\t\t\t${snippet && b`if (${condition} == null) ${condition} = !!${snippet}`}\r\n\t\t\t\t\t\t\t\tif (${condition}) return ${block.name};`\r\n\t\t\t\t\t\t: b`return ${block.name};`\r\n\t\t\t\t\t)}\r\n\t\t\t\t}\r\n\t\t\t`);\r\n\t\t} else {\r\n\t\t\tblock.chunks.init.push(b`\r\n\t\t\t\tfunction ${select_block_type}(#ctx, #dirty) {\r\n\t\t\t\t\t${this.branches.map(({ condition, snippet, block }) => condition\r\n\t\t\t\t? b`if (${snippet || condition}) return ${block.name};`\r\n\t\t\t\t: b`return ${block.name};`)}\r\n\t\t\t\t}\r\n\t\t\t`);\r\n\t\t}\r\n\r\n\t\tif (need_select_block_ctx) {\r\n\t\t\t// if all branches needs create a context\r\n\t\t\tif (this.branches.every(branch => branch.get_ctx_name)) {\r\n\t\t\t\tblock.chunks.init.push(b`\r\n\t\t\t\t\tfunction ${select_block_ctx}(#ctx, #type) {\r\n\t\t\t\t\t\t${this.branches.map(({ condition, get_ctx_name, block }) => {\r\n\t\t\t\t\t\t\treturn condition\r\n\t\t\t\t\t\t\t\t? b`if (#type === ${block.name}) return ${get_ctx_name}(#ctx);`\r\n\t\t\t\t\t\t\t\t: b`return ${get_ctx_name}(#ctx);`;\r\n\t\t\t\t\t\t}).filter(Boolean)}\r\n\t\t\t\t\t}\r\n\t\t\t\t`);\r\n\t\t\t} else {\r\n\t\t\t\t// when not all branches need to create a new context,\r\n\t\t\t\t// this code is simpler\r\n\t\t\t\tblock.chunks.init.push(b`\r\n\t\t\t\t\tfunction ${select_block_ctx}(#ctx, #type) {\r\n\t\t\t\t\t\t${this.branches.map(({ get_ctx_name, block }) => {\r\n\t\t\t\t\t\t\treturn get_ctx_name\r\n\t\t\t\t\t\t\t\t? b`if (#type === ${block.name}) return ${get_ctx_name}(#ctx);`\r\n\t\t\t\t\t\t\t\t: null;\r\n\t\t\t\t\t\t}).filter(Boolean)}\r\n\t\t\t\t\t\treturn #ctx;\r\n\t\t\t\t\t}\r\n\t\t\t\t`);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tblock.chunks.init.push(b`\r\n\t\t\tlet ${current_block_type} = ${select_block_type}(#ctx, ${this.renderer.get_initial_dirty()});\r\n\t\t\tlet ${name} = ${get_block};\r\n\t\t`);\r\n\r\n\t\tconst initial_mount_node = parent_node || '#target';\r\n\t\tconst anchor_node = parent_node ? 'null' : '#anchor';\r\n\r\n\t\tif (if_exists_condition) {\r\n\t\t\tblock.chunks.mount.push(\r\n\t\t\t\tb`if (${if_exists_condition}) ${name}.m(${initial_mount_node}, ${anchor_node});`\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\tblock.chunks.mount.push(\r\n\t\t\t\tb`${name}.m(${initial_mount_node}, ${anchor_node});`\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tif (this.needs_update) {\r\n\t\t\tconst update_mount_node = this.get_update_mount_node(anchor);\r\n\r\n\t\t\tconst change_block = b`\r\n\t\t\t\t${if_exists_condition ? b`if (${if_exists_condition}) ${name}.d(1)` : b`${name}.d(1)`};\r\n\t\t\t\t${name} = ${get_block};\r\n\t\t\t\tif (${name}) {\r\n\t\t\t\t\t${name}.c();\r\n\t\t\t\t\t${has_transitions && b`@transition_in(${name}, 1);`}\r\n\t\t\t\t\t${name}.m(${update_mount_node}, ${anchor});\r\n\t\t\t\t}\r\n\t\t\t`;\r\n\r\n\t\t\tif (dynamic) {\r\n\t\t\t\tblock.chunks.update.push(b`\r\n\t\t\t\t\tif (${current_block_type} === (${current_block_type} = ${select_block_type}(#ctx, #dirty)) && ${name}) {\r\n\t\t\t\t\t\t${name}.p(${if_ctx}, #dirty);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t${change_block}\r\n\t\t\t\t\t}\r\n\t\t\t\t`);\r\n\t\t\t} else {\r\n\t\t\t\tblock.chunks.update.push(b`\r\n\t\t\t\t\tif (${current_block_type} !== (${current_block_type} = ${select_block_type}(#ctx, #dirty))) {\r\n\t\t\t\t\t\t${change_block}\r\n\t\t\t\t\t}\r\n\t\t\t\t`);\r\n\t\t\t}\r\n\t\t} else if (dynamic) {\r\n\t\t\tif (if_exists_condition) {\r\n\t\t\t\tblock.chunks.update.push(b`if (${if_exists_condition}) ${name}.p(${if_ctx}, #dirty);`);\r\n\t\t\t} else {\r\n\t\t\t\tblock.chunks.update.push(b`${name}.p(${if_ctx}, #dirty);`);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (if_exists_condition) {\r\n\t\t\tblock.chunks.destroy.push(b`\r\n\t\t\t\tif (${if_exists_condition}) {\r\n\t\t\t\t\t${name}.d(${detaching});\r\n\t\t\t\t}\r\n\t\t\t`);\r\n\t\t} else {\r\n\t\t\tblock.chunks.destroy.push(b`\r\n\t\t\t\t${name}.d(${detaching});\r\n\t\t\t`);\r\n\t\t}\r\n\t}\r\n\r\n\t// if any of the siblings have outros, we need to keep references to the blocks\r\n\t// (TODO does this only apply to bidi transitions?)\r\n\trender_compound_with_outros(\r\n\t\tblock: Block,\r\n\t\tparent_node: Identifier,\r\n\t\t_parent_nodes: Identifier,\r\n\t\tdynamic,\r\n\t\t{ name, anchor, has_else, has_transitions, if_exists_condition },\r\n\t\tdetaching\r\n\t) {\r\n\t\tconst select_block_type = this.renderer.component.get_unique_name('select_block_type');\r\n\t\tconst current_block_type_index = block.get_unique_name('current_block_type_index');\r\n\t\tconst previous_block_index = block.get_unique_name('previous_block_index');\r\n\t\tconst if_block_creators = block.get_unique_name('if_block_creators');\r\n\t\tconst if_blocks = block.get_unique_name('if_blocks');\r\n\t\tconst need_select_block_ctx = this.branches.some(branch => branch.get_ctx_name);\r\n\t\tconst select_block_ctx = need_select_block_ctx ? block.get_unique_name('select_block_ctx') : null;\r\n\t\tconst if_ctx = select_block_ctx ? x`${select_block_ctx}(#ctx, ${current_block_type_index})` : x`#ctx`;\r\n\r\n\t\tconst if_current_block_type_index = has_else\r\n\t\t\t? nodes => nodes\r\n\t\t\t: nodes => b`if (~${current_block_type_index}) { ${nodes} }`;\r\n\r\n\t\tblock.add_variable(current_block_type_index);\r\n\t\tblock.add_variable(name);\r\n\r\n\t\tblock.chunks.init.push(b`\r\n\t\t\tconst ${if_block_creators} = [\r\n\t\t\t\t${this.branches.map(branch => branch.block.name)}\r\n\t\t\t];\r\n\r\n\t\t\tconst ${if_blocks} = [];\r\n\r\n\t\t\t${this.needs_update\r\n\t\t\t\t? b`\r\n\t\t\t\t\tfunction ${select_block_type}(#ctx, #dirty) {\r\n\t\t\t\t\t\t${this.branches.map(({ dependencies, condition, snippet }) => {\r\n\t\t\t\t\t\t\treturn b`${snippet && dependencies.length > 0 ? b`if (${block.renderer.dirty(dependencies)}) ${condition} = null;` : null}`;\r\n\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t${this.branches.map(({ condition, snippet }, i) => condition\r\n\t\t\t\t\t\t\t? b`\r\n\t\t\t\t\t\t\t\t${snippet && b`if (${condition} == null) ${condition} = !!${snippet}`}\r\n\t\t\t\t\t\t\t\tif (${condition}) return ${i};`\r\n\t\t\t\t\t\t\t: b`return ${i};`)}\r\n\t\t\t\t\t\t\t\t${!has_else && b`return -1;`}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t`\r\n\t\t\t\t: b`\r\n\t\t\t\t\tfunction ${select_block_type}(#ctx, #dirty) {\r\n\t\t\t\t\t\t${this.branches.map(({ condition, snippet }, i) => condition\r\n\t\t\t\t\t\t\t? b`if (${snippet || condition}) return ${i};`\r\n\t\t\t\t\t\t\t: b`return ${i};`)}\r\n\t\t\t\t\t\t${!has_else && b`return -1;`}\r\n\t\t\t\t\t}\r\n\t\t\t\t`}\r\n\t\t`);\r\n\r\n\t\tif (need_select_block_ctx) {\r\n\t\t\t// if all branches needs create a context\r\n\t\t\tif (this.branches.every(branch => branch.get_ctx_name)) {\r\n\t\t\t\tblock.chunks.init.push(b`\r\n\t\t\t\t\tfunction ${select_block_ctx}(#ctx, #index) {\r\n\t\t\t\t\t\t${this.branches.map(({ condition, get_ctx_name }, i) => {\r\n\t\t\t\t\t\t\treturn condition\r\n\t\t\t\t\t\t\t\t? b`if (#index === ${i}) return ${get_ctx_name}(#ctx);`\r\n\t\t\t\t\t\t\t\t: b`return ${get_ctx_name}(#ctx);`;\r\n\t\t\t\t\t\t}).filter(Boolean)}\r\n\t\t\t\t\t}\r\n\t\t\t\t`);\r\n\t\t\t} else {\r\n\t\t\t\t// when not all branches need to create a new context,\r\n\t\t\t\t// this code is simpler\r\n\t\t\t\tblock.chunks.init.push(b`\r\n\t\t\t\t\tfunction ${select_block_ctx}(#ctx, #index) {\r\n\t\t\t\t\t\t${this.branches.map(({ get_ctx_name }, i) => {\r\n\t\t\t\t\t\t\treturn get_ctx_name\r\n\t\t\t\t\t\t\t\t? b`if (#index === ${i}) return ${get_ctx_name}(#ctx);`\r\n\t\t\t\t\t\t\t\t: null;\r\n\t\t\t\t\t\t}).filter(Boolean)}\r\n\t\t\t\t\t\treturn #ctx;\r\n\t\t\t\t\t}\r\n\t\t\t\t`);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (has_else) {\r\n\t\t\tblock.chunks.init.push(b`\r\n\t\t\t\t${current_block_type_index} = ${select_block_type}(#ctx, ${this.renderer.get_initial_dirty()});\r\n\t\t\t\t${name} = ${if_blocks}[${current_block_type_index}] = ${if_block_creators}[${current_block_type_index}](${if_ctx});\r\n\t\t\t`);\r\n\t\t} else {\r\n\t\t\tblock.chunks.init.push(b`\r\n\t\t\t\tif (~(${current_block_type_index} = ${select_block_type}(#ctx, ${this.renderer.get_initial_dirty()}))) {\r\n\t\t\t\t\t${name} = ${if_blocks}[${current_block_type_index}] = ${if_block_creators}[${current_block_type_index}](${if_ctx});\r\n\t\t\t\t}\r\n\t\t\t`);\r\n\t\t}\r\n\r\n\t\tconst initial_mount_node = parent_node || '#target';\r\n\t\tconst anchor_node = parent_node ? 'null' : '#anchor';\r\n\r\n\t\tblock.chunks.mount.push(\r\n\t\t\tif_current_block_type_index(\r\n\t\t\t\tb`${if_blocks}[${current_block_type_index}].m(${initial_mount_node}, ${anchor_node});`\r\n\t\t\t)\r\n\t\t);\r\n\r\n\t\tif (this.needs_update) {\r\n\t\t\tconst update_mount_node = this.get_update_mount_node(anchor);\r\n\r\n\t\t\tconst destroy_old_block = b`\r\n\t\t\t\t@group_outros();\r\n\t\t\t\t@transition_out(${if_blocks}[${previous_block_index}], 1, 1, () => {\r\n\t\t\t\t\t${if_blocks}[${previous_block_index}] = null;\r\n\t\t\t\t});\r\n\t\t\t\t@check_outros();\r\n\t\t\t`;\r\n\r\n\t\t\tconst create_new_block = b`\r\n\t\t\t\t${name} = ${if_blocks}[${current_block_type_index}];\r\n\t\t\t\tif (!${name}) {\r\n\t\t\t\t\t${name} = ${if_blocks}[${current_block_type_index}] = ${if_block_creators}[${current_block_type_index}](${if_ctx});\r\n\t\t\t\t\t${name}.c();\r\n\t\t\t\t} else {\r\n\t\t\t\t\t${dynamic && b`${name}.p(${if_ctx}, #dirty);`}\r\n\t\t\t\t}\r\n\t\t\t\t${has_transitions && b`@transition_in(${name}, 1);`}\r\n\t\t\t\t${name}.m(${update_mount_node}, ${anchor});\r\n\t\t\t`;\r\n\r\n\t\t\tconst change_block = has_else\r\n\t\t\t\t? b`\r\n\t\t\t\t\t${destroy_old_block}\r\n\r\n\t\t\t\t\t${create_new_block}\r\n\t\t\t\t`\r\n\t\t\t\t: b`\r\n\t\t\t\t\tif (${name}) {\r\n\t\t\t\t\t\t${destroy_old_block}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (~${current_block_type_index}) {\r\n\t\t\t\t\t\t${create_new_block}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t${name} = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t`;\r\n\r\n\t\t\tblock.chunks.update.push(b`\r\n\t\t\t\tlet ${previous_block_index} = ${current_block_type_index};\r\n\t\t\t\t${current_block_type_index} = ${select_block_type}(#ctx, #dirty);\r\n\t\t\t`);\r\n\r\n\t\t\tif (dynamic) {\r\n\t\t\t\tblock.chunks.update.push(b`\r\n\t\t\t\t\tif (${current_block_type_index} === ${previous_block_index}) {\r\n\t\t\t\t\t\t${if_current_block_type_index(b`${if_blocks}[${current_block_type_index}].p(${if_ctx}, #dirty);`)}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t${change_block}\r\n\t\t\t\t\t}\r\n\t\t\t\t`);\r\n\t\t\t} else {\r\n\t\t\t\tblock.chunks.update.push(b`\r\n\t\t\t\t\tif (${current_block_type_index} !== ${previous_block_index}) {\r\n\t\t\t\t\t\t${change_block}\r\n\t\t\t\t\t}\r\n\t\t\t\t`);\r\n\t\t\t}\r\n\t\t} else if (dynamic) {\r\n\t\t\tif (if_exists_condition) {\r\n\t\t\t\tblock.chunks.update.push(b`if (${if_exists_condition}) ${name}.p(${if_ctx}, #dirty);`);\r\n\t\t\t} else {\r\n\t\t\t\tblock.chunks.update.push(b`${name}.p(${if_ctx}, #dirty);`);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tblock.chunks.destroy.push(\r\n\t\t\tif_current_block_type_index(b`${if_blocks}[${current_block_type_index}].d(${detaching});`)\r\n\t\t);\r\n\t}\r\n\r\n\trender_simple(\r\n\t\tblock: Block,\r\n\t\tparent_node: Identifier,\r\n\t\t_parent_nodes: Identifier,\r\n\t\tdynamic,\r\n\t\t{ name, anchor, if_exists_condition, has_transitions },\r\n\t\tdetaching\r\n\t) {\r\n\t\tconst branch = this.branches[0];\r\n\t\tconst if_ctx = branch.get_ctx_name ? x`${branch.get_ctx_name}(#ctx)` : x`#ctx`;\r\n\r\n\t\tif (branch.snippet) block.add_variable(branch.condition, branch.snippet);\r\n\r\n\t\tblock.chunks.init.push(b`\r\n\t\t\tlet ${name} = ${branch.condition} && ${branch.block.name}(${if_ctx});\r\n\t\t`);\r\n\r\n\t\tconst initial_mount_node = parent_node || '#target';\r\n\t\tconst anchor_node = parent_node ? 'null' : '#anchor';\r\n\r\n\t\tblock.chunks.mount.push(\r\n\t\t\tb`if (${name}) ${name}.m(${initial_mount_node}, ${anchor_node});`\r\n\t\t);\r\n\r\n\t\tif (branch.dependencies.length > 0) {\r\n\t\t\tconst update_mount_node = this.get_update_mount_node(anchor);\r\n\r\n\t\t\tconst enter = b`\r\n\t\t\t\tif (${name}) {\r\n\t\t\t\t\t${dynamic && b`${name}.p(${if_ctx}, #dirty);`}\r\n\t\t\t\t\t${has_transitions &&\r\n\t\t\t\t\t\tb`if (${block.renderer.dirty(branch.dependencies)}) {\r\n\t\t\t\t\t\t\t\t\t@transition_in(${name}, 1);\r\n\t\t\t\t\t\t\t\t}`\r\n\t\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t${name} = ${branch.block.name}(${if_ctx});\r\n\t\t\t\t\t${name}.c();\r\n\t\t\t\t\t${has_transitions && b`@transition_in(${name}, 1);`}\r\n\t\t\t\t\t${name}.m(${update_mount_node}, ${anchor});\r\n\t\t\t\t}\r\n\t\t\t`;\r\n\r\n\t\t\tif (branch.snippet) {\r\n\t\t\t\tblock.chunks.update.push(b`if (${block.renderer.dirty(branch.dependencies)}) ${branch.condition} = ${branch.snippet}`);\r\n\t\t\t}\r\n\r\n\t\t\t// no `p()` here — we don't want to update outroing nodes,\r\n\t\t\t// as that will typically result in glitching\r\n\t\t\tif (branch.block.has_outro_method) {\r\n\t\t\t\tblock.chunks.update.push(b`\r\n\t\t\t\t\tif (${branch.condition}) {\r\n\t\t\t\t\t\t${enter}\r\n\t\t\t\t\t} else if (${name}) {\r\n\t\t\t\t\t\t@group_outros();\r\n\t\t\t\t\t\t@transition_out(${name}, 1, 1, () => {\r\n\t\t\t\t\t\t\t${name} = null;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t@check_outros();\r\n\t\t\t\t\t}\r\n\t\t\t\t`);\r\n\t\t\t} else {\r\n\t\t\t\tblock.chunks.update.push(b`\r\n\t\t\t\t\tif (${branch.condition}) {\r\n\t\t\t\t\t\t${enter}\r\n\t\t\t\t\t} else if (${name}) {\r\n\t\t\t\t\t\t${name}.d(1);\r\n\t\t\t\t\t\t${name} = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t`);\r\n\t\t\t}\r\n\t\t} else if (dynamic) {\r\n\t\t\tblock.chunks.update.push(b`\r\n\t\t\t\tif (${branch.condition}) ${name}.p(${if_ctx}, #dirty);\r\n\t\t\t`);\r\n\t\t}\r\n\r\n\t\tif (if_exists_condition) {\r\n\t\t\tblock.chunks.destroy.push(b`\r\n\t\t\t\tif (${if_exists_condition}) ${name}.d(${detaching});\r\n\t\t\t`);\r\n\t\t} else {\r\n\t\t\tblock.chunks.destroy.push(b`\r\n\t\t\t\t${name}.d(${detaching});\r\n\t\t\t`);\r\n\t\t}\r\n\t}\r\n}\r\n","import Wrapper from './shared/Wrapper';\r\nimport Renderer from '../Renderer';\r\nimport Block from '../Block';\r\nimport KeyBlock from '../../nodes/KeyBlock';\r\nimport create_debugging_comment from './shared/create_debugging_comment';\r\nimport FragmentWrapper from './Fragment';\r\nimport { b, x } from 'code-red';\r\nimport { Identifier } from 'estree';\r\n\r\nexport default class KeyBlockWrapper extends Wrapper {\r\n\tnode: KeyBlock;\r\n\tfragment: FragmentWrapper;\r\n\tblock: Block;\r\n\tdependencies: string[];\r\n\tvar: Identifier = { type: 'Identifier', name: 'key_block' };\r\n\r\n\tconstructor(\r\n\t\trenderer: Renderer,\r\n\t\tblock: Block,\r\n\t\tparent: Wrapper,\r\n\t\tnode: KeyBlock,\r\n\t\tstrip_whitespace: boolean,\r\n\t\tnext_sibling: Wrapper\r\n\t) {\r\n\t\tsuper(renderer, block, parent, node);\r\n\r\n\t\tthis.cannot_use_innerhtml();\r\n\t\tthis.not_static_content();\r\n\r\n\t\tthis.dependencies = node.expression.dynamic_dependencies();\r\n\r\n\t\tif (this.dependencies.length) {\r\n\t\t\tblock = block.child({\r\n\t\t\t\tcomment: create_debugging_comment(node, renderer.component),\r\n\t\t\t\tname: renderer.component.get_unique_name('create_key_block'),\r\n\t\t\t\ttype: 'key'\r\n\t\t\t});\r\n\t\t\tblock.add_dependencies(node.expression.dependencies);\r\n\t\t\trenderer.blocks.push(block);\r\n\t\t}\r\n\r\n\t\tthis.block = block;\r\n\t\tthis.fragment = new FragmentWrapper(\r\n\t\t\trenderer,\r\n\t\t\tthis.block,\r\n\t\t\tnode.children,\r\n\t\t\tthis,\r\n\t\t\tstrip_whitespace,\r\n\t\t\tnext_sibling\r\n\t\t);\r\n\t}\r\n\r\n\trender(block: Block, parent_node: Identifier, parent_nodes: Identifier) {\r\n\t\tif (this.dependencies.length === 0) {\r\n\t\t\tthis.render_static_key(block, parent_node, parent_nodes);\r\n\t\t} else {\r\n\t\t\tthis.render_dynamic_key(block, parent_node, parent_nodes);\r\n\t\t}\r\n\t}\r\n\r\n\trender_static_key(_block: Block, parent_node: Identifier, parent_nodes: Identifier) {\r\n\t\tthis.fragment.render(this.block, parent_node, parent_nodes);\r\n\t}\r\n\r\n\trender_dynamic_key(block: Block, parent_node: Identifier, parent_nodes: Identifier) {\r\n\t\tthis.fragment.render(\r\n\t\t\tthis.block,\r\n\t\t\tnull,\r\n\t\t\t(x`#nodes` as unknown) as Identifier\r\n\t\t);\r\n\r\n\t\tconst has_transitions = !!(\r\n\t\t\tthis.block.has_intro_method || this.block.has_outro_method\r\n\t\t);\r\n\t\tconst dynamic = this.block.has_update_method;\r\n\r\n\t\tconst previous_key = block.get_unique_name('previous_key');\r\n\t\tconst snippet = this.node.expression.manipulate(block);\r\n\t\tblock.add_variable(previous_key, snippet);\r\n\r\n\t\tconst not_equal = this.renderer.component.component_options.immutable ? x`@not_equal` : x`@safe_not_equal`;\r\n\t\tconst condition = x`${this.renderer.dirty(this.dependencies)} && ${not_equal}(${previous_key}, ${previous_key} = ${snippet})`;\r\n\r\n\t\tblock.chunks.init.push(b`\r\n\t\t\tlet ${this.var} = ${this.block.name}(#ctx);\r\n\t\t`);\r\n\t\tblock.chunks.create.push(b`${this.var}.c();`);\r\n\t\tif (this.renderer.options.hydratable) {\r\n\t\t\tblock.chunks.claim.push(b`${this.var}.l(${parent_nodes});`);\r\n\t\t}\r\n\t\tblock.chunks.mount.push(\r\n\t\t\tb`${this.var}.m(${parent_node || '#target'}, ${\r\n\t\t\t\tparent_node ? 'null' : '#anchor'\r\n\t\t\t});`\r\n\t\t);\r\n\t\tconst anchor = this.get_or_create_anchor(block, parent_node, parent_nodes);\r\n\t\tconst body = b`\r\n\t\t\t${\r\n\t\t\t\thas_transitions\r\n\t\t\t\t\t? b`\r\n\t\t\t\t\t\t@group_outros();\r\n\t\t\t\t\t\t@transition_out(${this.var}, 1, 1, @noop);\r\n\t\t\t\t\t\t@check_outros();\r\n\t\t\t\t\t`\r\n\t\t\t\t\t: b`${this.var}.d(1);`\r\n\t\t\t}\r\n\t\t\t${this.var} = ${this.block.name}(#ctx);\r\n\t\t\t${this.var}.c();\r\n\t\t\t${has_transitions && b`@transition_in(${this.var}, 1)`}\r\n\t\t\t${this.var}.m(${this.get_update_mount_node(anchor)}, ${anchor});\r\n\t\t`;\r\n\r\n\t\tif (dynamic) {\r\n\t\t\tblock.chunks.update.push(b`\r\n\t\t\t\tif (${condition}) {\r\n\t\t\t\t\t${body}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t${this.var}.p(#ctx, #dirty);\r\n\t\t\t\t}\r\n\t\t\t`);\r\n\t\t} else {\r\n\t\t\tblock.chunks.update.push(b`\r\n\t\t\t\tif (${condition}) {\r\n\t\t\t\t\t${body}\r\n\t\t\t\t}\r\n\t\t\t`);\r\n\t\t}\r\n\r\n\t\tif (has_transitions) {\r\n\t\t\tblock.chunks.intro.push(b`@transition_in(${this.var})`);\r\n\t\t\tblock.chunks.outro.push(b`@transition_out(${this.var})`);\r\n\t\t}\r\n\r\n\t\tblock.chunks.destroy.push(b`${this.var}.d(detaching)`);\r\n\t}\r\n}\r\n","import Let from '../../../nodes/Let';\r\nimport { x, p } from 'code-red';\r\nimport Block from '../../Block';\r\nimport TemplateScope from '../../../nodes/shared/TemplateScope';\r\nimport { BinaryExpression } from 'estree';\r\n\r\nexport function get_slot_definition(block: Block, scope: TemplateScope, lets: Let[]) {\r\n\tif (lets.length === 0) return { block, scope };\r\n\r\n\tconst context_input = {\r\n\t\ttype: 'ObjectPattern',\r\n\t\tproperties: lets.map(l => ({\r\n\t\t\ttype: 'Property',\r\n\t\t\tkind: 'init',\r\n\t\t\tkey: l.name,\r\n\t\t\tvalue: l.value || l.name\r\n\t\t}))\r\n\t};\r\n\r\n\tconst properties = [];\r\n\tconst value_map = new Map();\r\n\r\n\tlets.forEach(l => {\r\n\t\tlet value;\r\n\t\tif (l.names.length > 1) {\r\n\t\t\t// more than one, probably destructuring\r\n\t\t\tconst unique_name = block.get_unique_name(l.names.join('_')).name;\r\n\t\t\tvalue_map.set(l.value, unique_name);\r\n\t\t\tvalue = { type: 'Identifier', name: unique_name };\r\n\t\t} else {\r\n\t\t\tvalue = l.value || l.name;\r\n\t\t}\r\n\t\tproperties.push({\r\n\t\t\ttype: 'Property',\r\n\t\t\tkind: 'init',\r\n\t\t\tkey: l.name,\r\n\t\t\tvalue\r\n\t\t});\r\n\t});\r\n\r\n\tconst changes_input = {\r\n\t\ttype: 'ObjectPattern',\r\n\t\tproperties\r\n\t};\r\n\r\n\tconst names: Set<string> = new Set();\r\n\tconst names_lookup: Map<string, string> = new Map();\r\n\r\n\tlets.forEach(l => {\r\n\t\tl.names.forEach(name => {\r\n\t\t\tnames.add(name);\r\n\t\t\tif (value_map.has(l.value)) {\r\n\t\t\t\tnames_lookup.set(name, value_map.get(l.value));\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n\r\n\tconst context = {\r\n\t\ttype: 'ObjectExpression',\r\n\t\tproperties: Array.from(names).map(name => p`${block.renderer.context_lookup.get(name).index}: ${name}`)\r\n\t};\r\n\r\n\tconst { context_lookup } = block.renderer;\r\n\r\n\t// i am well aware that this code is gross\r\n\t// TODO: context-overflow make it less gross\r\n\tconst changes = {\r\n\t\ttype: 'ParenthesizedExpression',\r\n\t\tget expression() {\r\n\t\t\tif (block.renderer.context_overflow) {\r\n\t\t\t\tconst grouped = [];\r\n\r\n\t\t\t\tArray.from(names).forEach(name => {\r\n\t\t\t\t\tconst i = context_lookup.get(name).index.value as number;\r\n\t\t\t\t\tconst g = Math.floor(i / 31);\r\n\r\n\t\t\t\t\tconst lookup_name = names_lookup.has(name) ? names_lookup.get(name) : name;\r\n\r\n\t\t\t\t\tif (!grouped[g]) grouped[g] = [];\r\n\t\t\t\t\tgrouped[g].push({ name: lookup_name, n: i % 31 });\r\n\t\t\t\t});\r\n\r\n\t\t\t\tconst elements = [];\r\n\r\n\t\t\t\tfor (let g = 0; g < grouped.length; g += 1) {\r\n\t\t\t\t\telements[g] = grouped[g]\r\n\t\t\t\t\t\t? grouped[g]\r\n\t\t\t\t\t\t\t.map(({ name, n }) => x`${name} ? ${1 << n} : 0`)\r\n\t\t\t\t\t\t\t.reduce((lhs, rhs) => x`${lhs} | ${rhs}`)\r\n\t\t\t\t\t\t: x`0`;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\ttype: 'ArrayExpression',\r\n\t\t\t\t\telements\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn Array.from(names)\r\n\t\t\t\t.map(name => {\r\n\t\t\t\t\tconst lookup_name = names_lookup.has(name) ? names_lookup.get(name) : name;\r\n\t\t\t\t\tconst i = context_lookup.get(name).index.value as number;\r\n\t\t\t\t\treturn x`${lookup_name} ? ${1 << i} : 0`;\r\n\t\t\t\t})\r\n\t\t\t\t.reduce((lhs, rhs) => x`${lhs} | ${rhs}`) as BinaryExpression;\r\n\t\t}\r\n\t};\r\n\r\n\treturn {\r\n\t\tblock,\r\n\t\tscope,\r\n\t\tget_context: x`${context_input} => ${context}`,\r\n\t\tget_changes: x`${changes_input} => ${changes}`\r\n\t};\r\n}\r\n","import Wrapper from './shared/Wrapper';\r\nimport Renderer from '../Renderer';\r\nimport Block from '../Block';\r\nimport FragmentWrapper from './Fragment';\r\nimport create_debugging_comment from './shared/create_debugging_comment';\r\nimport { get_slot_definition } from './shared/get_slot_definition';\r\nimport { b, x } from 'code-red';\r\nimport { sanitize } from '../../../utils/names';\r\nimport { Identifier } from 'estree';\r\nimport InlineComponentWrapper from './InlineComponent';\r\nimport { extract_names } from 'periscopic';\r\nimport SlotTemplate from '../../nodes/SlotTemplate';\r\nimport { add_const_tags, add_const_tags_context } from './shared/add_const_tags';\r\n\r\nexport default class SlotTemplateWrapper extends Wrapper {\r\n\tnode: SlotTemplate;\r\n\tfragment: FragmentWrapper;\r\n\tblock: Block;\r\n\tparent: InlineComponentWrapper;\r\n\r\n\tconstructor(\r\n\t\trenderer: Renderer,\r\n\t\tblock: Block,\r\n\t\tparent: Wrapper,\r\n\t\tnode: SlotTemplate,\r\n\t\tstrip_whitespace: boolean,\r\n\t\tnext_sibling: Wrapper\r\n\t) {\r\n\t\tsuper(renderer, block, parent, node);\r\n\r\n\t\tconst { scope, lets, const_tags, slot_template_name } = this.node;\r\n\r\n\t\tlets.forEach(l => {\r\n\t\t\textract_names(l.value || l.name).forEach(name => {\r\n\t\t\t\trenderer.add_to_context(name, true);\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tadd_const_tags_context(renderer, const_tags);\r\n\r\n\t\tthis.block = block.child({\r\n\t\t\tcomment: create_debugging_comment(this.node, this.renderer.component),\r\n\t\t\tname: this.renderer.component.get_unique_name(\r\n\t\t\t\t`create_${sanitize(slot_template_name)}_slot`\r\n\t\t\t),\r\n\t\t\ttype: 'slot'\r\n\t\t});\r\n\t\tthis.renderer.blocks.push(this.block);\r\n\r\n\t\tconst seen = new Set(lets.map(l => l.name.name));\r\n\t\tthis.parent.node.lets.forEach(l => {\r\n\t\t\tif (!seen.has(l.name.name)) lets.push(l);\r\n\t\t});\r\n\r\n\t\tthis.parent.set_slot(\r\n\t\t\tslot_template_name,\r\n\t\t\tget_slot_definition(this.block, scope, lets)\r\n\t\t);\r\n\r\n\t\tthis.fragment = new FragmentWrapper(\r\n\t\t\trenderer,\r\n\t\t\tthis.block,\r\n\t\t\tnode.type === 'SlotTemplate' ? node.children : [node],\r\n\t\t\tthis,\r\n\t\t\tstrip_whitespace,\r\n\t\t\tnext_sibling\r\n\t\t);\r\n\r\n\t\tthis.block.parent.add_dependencies(this.block.dependencies);\r\n\t}\r\n\r\n\trender() {\r\n\t\tthis.fragment.render(this.block, null, x`#nodes` as Identifier);\r\n\r\n\t\tif (this.node.const_tags.length > 0) {\r\n\t\t\tthis.render_get_context();\r\n\t\t}\r\n\t}\r\n\trender_get_context() {\r\n\t\tconst get_context = this.block.renderer.component.get_unique_name('get_context');\r\n\t\tthis.block.renderer.blocks.push(b`\r\n\t\t\tfunction ${get_context}(#ctx) {\r\n\t\t\t\t${add_const_tags(this.block, this.node.const_tags, '#ctx')}\r\n\t\t\t}\r\n\t\t`);\r\n\t\tthis.block.chunks.declarations.push(b`${get_context}(#ctx)`);\r\n\t\tif (this.block.has_update_method) {\r\n\t\t\tthis.block.chunks.update.unshift(b`${get_context}(#ctx)`);\r\n\t\t}\r\n\t}\r\n}\r\n","import { MemberExpression, Identifier } from 'estree';\r\n\r\nexport function string_to_member_expression(name: string) {\r\n\tconst parts = name.split('.');\r\n\tlet node: MemberExpression | Identifier = {\r\n\t\ttype: 'Identifier',\r\n\t\tname: parts[0]\r\n\t};\r\n\tfor (let i = 1; i < parts.length; i++) {\r\n\t\tnode = {\r\n\t\t\ttype: 'MemberExpression',\r\n\t\t\tobject: node,\r\n\t\t\tproperty: { type: 'Identifier', name: parts[i] }\r\n\t\t} as MemberExpression;\r\n\t}\r\n\treturn node;\r\n}\r\n","import Wrapper from '../shared/Wrapper';\r\nimport BindingWrapper from '../Element/Binding';\r\nimport Renderer from '../../Renderer';\r\nimport Block from '../../Block';\r\nimport InlineComponent from '../../../nodes/InlineComponent';\r\nimport FragmentWrapper from '../Fragment';\r\nimport SlotTemplateWrapper from '../SlotTemplate';\r\nimport { sanitize } from '../../../../utils/names';\r\nimport add_to_set from '../../../utils/add_to_set';\r\nimport { b, x, p } from 'code-red';\r\nimport Attribute from '../../../nodes/Attribute';\r\nimport TemplateScope from '../../../nodes/shared/TemplateScope';\r\nimport is_dynamic from '../shared/is_dynamic';\r\nimport bind_this from '../shared/bind_this';\r\nimport { Node, Identifier, ObjectExpression } from 'estree';\r\nimport EventHandler from '../Element/EventHandler';\r\nimport { extract_names } from 'periscopic';\r\nimport mark_each_block_bindings from '../shared/mark_each_block_bindings';\r\nimport { string_to_member_expression } from '../../../utils/string_to_member_expression';\r\nimport SlotTemplate from '../../../nodes/SlotTemplate';\r\nimport { is_head } from '../shared/is_head';\r\nimport compiler_warnings from '../../../compiler_warnings';\r\n\r\ntype SlotDefinition = { block: Block; scope: TemplateScope; get_context?: Node; get_changes?: Node };\r\n\r\nexport default class InlineComponentWrapper extends Wrapper {\r\n\tvar: Identifier;\r\n\tslots: Map<string, SlotDefinition> = new Map();\r\n\tnode: InlineComponent;\r\n\tfragment: FragmentWrapper;\r\n\tchildren: Array<Wrapper | FragmentWrapper> = [];\r\n\r\n\tconstructor(\r\n\t\trenderer: Renderer,\r\n\t\tblock: Block,\r\n\t\tparent: Wrapper,\r\n\t\tnode: InlineComponent,\r\n\t\tstrip_whitespace: boolean,\r\n\t\tnext_sibling: Wrapper\r\n\t) {\r\n\t\tsuper(renderer, block, parent, node);\r\n\r\n\t\tthis.cannot_use_innerhtml();\r\n\t\tthis.not_static_content();\r\n\r\n\t\tif (this.node.expression) {\r\n\t\t\tblock.add_dependencies(this.node.expression.dependencies);\r\n\t\t}\r\n\r\n\t\tthis.node.attributes.forEach(attr => {\r\n\t\t\tblock.add_dependencies(attr.dependencies);\r\n\t\t});\r\n\r\n\t\tthis.node.bindings.forEach(binding => {\r\n\t\t\tif (binding.is_contextual) {\r\n\t\t\t\tmark_each_block_bindings(this, binding);\r\n\t\t\t}\r\n\r\n\t\t\tblock.add_dependencies(binding.expression.dependencies);\r\n\t\t});\r\n\r\n\t\tthis.node.handlers.forEach(handler => {\r\n\t\t\tif (handler.expression) {\r\n\t\t\t\tblock.add_dependencies(handler.expression.dependencies);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.node.css_custom_properties.forEach(attr => {\r\n\t\t\tblock.add_dependencies(attr.dependencies);\r\n\t\t});\r\n\r\n\t\tthis.var = {\r\n\t\t\ttype: 'Identifier',\r\n\t\t\tname: (\r\n\t\t\t\tthis.node.name === 'svelte:self' ? renderer.component.name.name :\r\n\t\t\t\t\tthis.node.name === 'svelte:component' ? 'switch_instance' :\r\n\t\t\t\t\t\tsanitize(this.node.name)\r\n\t\t\t).toLowerCase()\r\n\t\t};\r\n\r\n\t\tif (this.node.children.length) {\r\n\t\t\tthis.node.lets.forEach(l => {\r\n\t\t\t\textract_names(l.value || l.name).forEach(name => {\r\n\t\t\t\t\trenderer.add_to_context(name, true);\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\t\tthis.children = this.node.children.map(child => new SlotTemplateWrapper(renderer, block, this, child as SlotTemplate, strip_whitespace, next_sibling));\r\n\t\t}\r\n\r\n\t\tblock.add_outro();\r\n\t}\r\n\r\n\tset_slot(name: string, slot_definition: SlotDefinition) {\r\n\t\tif (this.slots.has(name)) {\r\n\t\t\tif (name === 'default') {\r\n\t\t\t\tthrow new Error('Found elements without slot attribute when using slot=\"default\"');\r\n\t\t\t}\r\n\t\t\tthrow new Error(`Duplicate slot name \"${name}\" in <${this.node.name}>`);\r\n\t\t}\r\n\t\tthis.slots.set(name, slot_definition);\r\n\t}\r\n\r\n\twarn_if_reactive() {\r\n\t\tconst { name } = this.node;\r\n\t\tconst variable = this.renderer.component.var_lookup.get(name);\r\n\t\tif (!variable) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (variable.reassigned || variable.export_name || variable.is_reactive_dependency) {\r\n\t\t\tthis.renderer.component.warn(this.node, compiler_warnings.reactive_component(name));\r\n\t\t}\r\n\t}\r\n\r\n\trender(\r\n\t\tblock: Block,\r\n\t\tparent_node: Identifier,\r\n\t\tparent_nodes: Identifier\r\n\t) {\r\n\t\tthis.warn_if_reactive();\r\n\r\n\t\tconst { renderer } = this;\r\n\t\tconst { component } = renderer;\r\n\r\n\t\tconst name = this.var;\r\n\t\tblock.add_variable(name);\r\n\r\n\t\tconst component_opts = x`{}` as ObjectExpression;\r\n\r\n\t\tconst statements: Array<Node | Node[]> = [];\r\n\t\tconst updates: Array<Node | Node[]> = [];\r\n\r\n\t\tthis.children.forEach((child) => {\r\n\t\t\tthis.renderer.add_to_context('$$scope', true);\r\n\t\t\tchild.render(block, null, x`#nodes` as Identifier);\r\n\t\t});\r\n\r\n\t\tlet props;\r\n\t\tconst name_changes = block.get_unique_name(`${name.name}_changes`);\r\n\r\n\t\tconst uses_spread = !!this.node.attributes.find(a => a.is_spread);\r\n\r\n\t\t// removing empty slot\r\n\t\tfor (const slot of this.slots.keys()) {\r\n\t\t\tif (!this.slots.get(slot).block.has_content()) {\r\n\t\t\t\tthis.renderer.remove_block(this.slots.get(slot).block);\r\n\t\t\t\tthis.slots.delete(slot);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst has_css_custom_properties = this.node.css_custom_properties.length > 0;\r\n\t\tconst css_custom_properties_wrapper = has_css_custom_properties ? block.get_unique_name('div') : null;\r\n\t\tif (has_css_custom_properties) {\r\n\t\t\tblock.add_variable(css_custom_properties_wrapper);\r\n\t\t}\r\n\r\n\t\tconst initial_props = this.slots.size > 0\r\n\t\t\t? [\r\n\t\t\t\tp`$$slots: {\r\n\t\t\t\t\t${Array.from(this.slots).map(([name, slot]) => {\r\n\t\t\t\t\t\treturn p`${name}: [${slot.block.name}, ${slot.get_context || null}, ${slot.get_changes || null}]`;\r\n\t\t\t\t\t})}\r\n\t\t\t\t}`,\r\n\t\t\t\tp`$$scope: {\r\n\t\t\t\t\tctx: #ctx\r\n\t\t\t\t}`\r\n\t\t\t]\r\n\t\t\t: [];\r\n\r\n\t\tconst attribute_object = uses_spread\r\n\t\t\t? x`{ ${initial_props} }`\r\n\t\t\t: x`{\r\n\t\t\t\t${this.node.attributes.map(attr => p`${attr.name}: ${attr.get_value(block)}`)},\r\n\t\t\t\t${initial_props}\r\n\t\t\t}`;\r\n\r\n\t\tif (this.node.attributes.length || this.node.bindings.length || initial_props.length) {\r\n\t\t\tif (!uses_spread && this.node.bindings.length === 0) {\r\n\t\t\t\tcomponent_opts.properties.push(p`props: ${attribute_object}`);\r\n\t\t\t} else {\r\n\t\t\t\tprops = block.get_unique_name(`${name.name}_props`);\r\n\t\t\t\tcomponent_opts.properties.push(p`props: ${props}`);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (component.compile_options.dev) {\r\n\t\t\t// TODO this is a terrible hack, but without it the component\r\n\t\t\t// will complain that options.target is missing. This would\r\n\t\t\t// work better if components had separate public and private\r\n\t\t\t// APIs\r\n\t\t\tcomponent_opts.properties.push(p`$$inline: true`);\r\n\t\t}\r\n\r\n\t\tconst fragment_dependencies = new Set(this.slots.size ? ['$$scope'] : []);\r\n\t\tthis.slots.forEach(slot => {\r\n\t\t\tslot.block.dependencies.forEach(name => {\r\n\t\t\t\tconst is_let = slot.scope.is_let(name);\r\n\t\t\t\tconst variable = renderer.component.var_lookup.get(name);\r\n\r\n\t\t\t\tif (is_let || is_dynamic(variable)) fragment_dependencies.add(name);\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tconst dynamic_attributes = this.node.attributes.filter(a => a.get_dependencies().length > 0);\r\n\r\n\t\tif (!uses_spread && (dynamic_attributes.length > 0 || this.node.bindings.length > 0 || fragment_dependencies.size > 0)) {\r\n\t\t\tupdates.push(b`const ${name_changes} = {};`);\r\n\t\t}\r\n\r\n\t\tif (this.node.attributes.length) {\r\n\t\t\tif (uses_spread) {\r\n\t\t\t\tconst levels = block.get_unique_name(`${this.var.name}_spread_levels`);\r\n\r\n\t\t\t\tconst initial_props = [];\r\n\t\t\t\tconst changes = [];\r\n\r\n\t\t\t\tconst all_dependencies: Set<string> = new Set();\r\n\r\n\t\t\t\tthis.node.attributes.forEach(attr => {\r\n\t\t\t\t\tadd_to_set(all_dependencies, attr.dependencies);\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis.node.attributes.forEach((attr, i) => {\r\n\t\t\t\t\tconst { name, dependencies } = attr;\r\n\r\n\t\t\t\t\tconst condition = dependencies.size > 0 && (dependencies.size !== all_dependencies.size)\r\n\t\t\t\t\t\t? renderer.dirty(Array.from(dependencies))\r\n\t\t\t\t\t\t: null;\r\n\t\t\t\t\tconst unchanged = dependencies.size === 0;\r\n\r\n\t\t\t\t\tlet change_object;\r\n\t\t\t\t\tif (attr.is_spread) {\r\n\t\t\t\t\t\tconst value = attr.expression.manipulate(block);\r\n\t\t\t\t\t\tinitial_props.push(value);\r\n\r\n\t\t\t\t\t\tlet value_object = value;\r\n\t\t\t\t\t\tif (attr.expression.node.type !== 'ObjectExpression') {\r\n\t\t\t\t\t\t\tvalue_object = x`@get_spread_object(${value})`;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tchange_object = value_object;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconst obj = x`{ ${name}: ${attr.get_value(block)} }`;\r\n\t\t\t\t\t\tinitial_props.push(obj);\r\n\t\t\t\t\t\tchange_object = obj;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tchanges.push(\r\n\t\t\t\t\t\tunchanged\r\n\t\t\t\t\t\t\t? x`${levels}[${i}]`\r\n\t\t\t\t\t\t\t: condition\r\n\t\t\t\t\t\t\t? x`${condition} && ${change_object}`\r\n\t\t\t\t\t\t\t: change_object\r\n\t\t\t\t\t);\r\n\t\t\t\t});\r\n\r\n\t\t\t\tblock.chunks.init.push(b`\r\n\t\t\t\t\tconst ${levels} = [\r\n\t\t\t\t\t\t${initial_props}\r\n\t\t\t\t\t];\r\n\t\t\t\t`);\r\n\r\n\t\t\t\tstatements.push(b`\r\n\t\t\t\t\tfor (let #i = 0; #i < ${levels}.length; #i += 1) {\r\n\t\t\t\t\t\t${props} = @assign(${props}, ${levels}[#i]);\r\n\t\t\t\t\t}\r\n\t\t\t\t`);\r\n\r\n\t\t\t\tif (all_dependencies.size) {\r\n\t\t\t\t\tconst condition = renderer.dirty(Array.from(all_dependencies));\r\n\r\n\t\t\t\t\tupdates.push(b`\r\n\t\t\t\t\t\tconst ${name_changes} = ${condition} ? @get_spread_update(${levels}, [\r\n\t\t\t\t\t\t\t${changes}\r\n\t\t\t\t\t\t]) : {}\r\n\t\t\t\t\t`);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tupdates.push(b`\r\n\t\t\t\t\t\tconst ${name_changes} = {};\r\n\t\t\t\t\t`);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tdynamic_attributes.forEach((attribute: Attribute) => {\r\n\t\t\t\t\tconst dependencies = attribute.get_dependencies();\r\n\t\t\t\t\tif (dependencies.length > 0) {\r\n\t\t\t\t\t\tconst condition = renderer.dirty(dependencies);\r\n\r\n\t\t\t\t\t\tupdates.push(b`\r\n\t\t\t\t\t\t\tif (${condition}) ${name_changes}.${attribute.name} = ${attribute.get_value(block)};\r\n\t\t\t\t\t\t`);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (fragment_dependencies.size > 0) {\r\n\t\t\tupdates.push(b`\r\n\t\t\t\tif (${renderer.dirty(Array.from(fragment_dependencies))}) {\r\n\t\t\t\t\t${name_changes}.$$scope = { dirty: #dirty, ctx: #ctx };\r\n\t\t\t\t}`);\r\n\t\t}\r\n\r\n\t\tconst munged_bindings = this.node.bindings.map(binding => {\r\n\t\t\tcomponent.has_reactive_assignments = true;\r\n\r\n\t\t\tif (binding.name === 'this') {\r\n\t\t\t\treturn bind_this(component, block, new BindingWrapper(block, binding, this), this.var);\r\n\t\t\t}\r\n\r\n\t\t\tconst id = component.get_unique_name(`${this.var.name}_${binding.name}_binding`);\r\n\t\t\trenderer.add_to_context(id.name);\r\n\t\t\tconst callee = renderer.reference(id);\r\n\r\n\t\t\tconst updating = block.get_unique_name(`updating_${binding.name}`);\r\n\t\t\tblock.add_variable(updating);\r\n\r\n\t\t\tconst snippet = binding.expression.manipulate(block);\r\n\r\n\t\t\tstatements.push(b`\r\n\t\t\t\tif (${snippet} !== void 0) {\r\n\t\t\t\t\t${props}.${binding.name} = ${snippet};\r\n\t\t\t\t}`\r\n\t\t\t);\r\n\r\n\t\t\tupdates.push(b`\r\n\t\t\t\tif (!${updating} && ${renderer.dirty(Array.from(binding.expression.dependencies))}) {\r\n\t\t\t\t\t${updating} = true;\r\n\t\t\t\t\t${name_changes}.${binding.name} = ${snippet};\r\n\t\t\t\t\t@add_flush_callback(() => ${updating} = false);\r\n\t\t\t\t}\r\n\t\t\t`);\r\n\r\n\t\t\tconst contextual_dependencies = Array.from(binding.expression.contextual_dependencies);\r\n\t\t\tconst dependencies = Array.from(binding.expression.dependencies);\r\n\r\n\t\t\tlet lhs = binding.raw_expression;\r\n\r\n\t\t\tif (binding.is_contextual && binding.expression.node.type === 'Identifier') {\r\n\t\t\t\t// bind:x={y} — we can't just do `y = x`, we need to\r\n\t\t\t\t// to `array[index] = x;\r\n\t\t\t\tconst { name } = binding.expression.node;\r\n\t\t\t\tconst { object, property, snippet } = block.bindings.get(name);\r\n\t\t\t\tlhs = snippet;\r\n\t\t\t\tcontextual_dependencies.push(object.name, property.name);\r\n\t\t\t}\r\n\r\n\t\t\tconst params: Identifier[] = [x`#value` as Identifier];\r\n\t\t\tconst args = [x`#value`];\r\n\t\t\tif (contextual_dependencies.length > 0) {\r\n\r\n\t\t\t\tcontextual_dependencies.forEach(name => {\r\n\t\t\t\t\tparams.push({\r\n\t\t\t\t\t\ttype: 'Identifier',\r\n\t\t\t\t\t\tname\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\trenderer.add_to_context(name, true);\r\n\t\t\t\t\targs.push(renderer.reference(name));\r\n\t\t\t\t});\r\n\r\n\r\n\t\t\t\tblock.maintain_context = true; // TODO put this somewhere more logical\r\n\t\t\t}\r\n\r\n\t\t\tblock.chunks.init.push(b`\r\n\t\t\t\tfunction ${id}(#value) {\r\n\t\t\t\t\t${callee}(${args});\r\n\t\t\t\t}\r\n\t\t\t`);\r\n\r\n\t\t\tlet invalidate_binding = b`\r\n\t\t\t\t${lhs} = #value;\r\n\t\t\t\t${renderer.invalidate(dependencies[0])};\r\n\t\t\t`;\r\n\t\t\tif (binding.expression.node.type === 'MemberExpression') {\r\n\t\t\t\tinvalidate_binding = b`\r\n\t\t\t\t\tif ($$self.$$.not_equal(${lhs}, #value)) {\r\n\t\t\t\t\t\t${invalidate_binding}\r\n\t\t\t\t\t}\r\n\t\t\t\t`;\r\n\t\t\t}\r\n\r\n\t\t\tconst body = b`\r\n\t\t\t\tfunction ${id}(${params}) {\r\n\t\t\t\t\t${invalidate_binding}\r\n\t\t\t\t}\r\n\t\t\t`;\r\n\r\n\t\t\tcomponent.partly_hoisted.push(body);\r\n\r\n\t\t\treturn b`@binding_callbacks.push(() => @bind(${this.var}, '${binding.name}', ${id}));`;\r\n\t\t});\r\n\r\n\t\tconst munged_handlers = this.node.handlers.map(handler => {\r\n\t\t\tconst event_handler = new EventHandler(handler, this);\r\n\t\t\tlet snippet = event_handler.get_snippet(block);\r\n\t\t\tif (handler.modifiers.has('once')) snippet = x`@once(${snippet})`;\r\n\r\n\t\t\treturn b`${name}.$on(\"${handler.name}\", ${snippet});`;\r\n\t\t});\r\n\r\n\t\tif (this.node.name === 'svelte:component') {\r\n\t\t\tconst switch_value = block.get_unique_name('switch_value');\r\n\t\t\tconst switch_props = block.get_unique_name('switch_props');\r\n\r\n\t\t\tconst snippet = this.node.expression.manipulate(block);\r\n\r\n\t\t\tblock.chunks.init.push(b`\r\n\t\t\t\tvar ${switch_value} = ${snippet};\r\n\r\n\t\t\t\tfunction ${switch_props}(#ctx) {\r\n\t\t\t\t\t${(this.node.attributes.length > 0 || this.node.bindings.length > 0) && b`\r\n\t\t\t\t\t${props && b`let ${props} = ${attribute_object};`}`}\r\n\t\t\t\t\t${statements}\r\n\t\t\t\t\treturn ${component_opts};\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (${switch_value}) {\r\n\t\t\t\t\t${name} = new ${switch_value}(${switch_props}(#ctx));\r\n\r\n\t\t\t\t\t${munged_bindings}\r\n\t\t\t\t\t${munged_handlers}\r\n\t\t\t\t}\r\n\t\t\t`);\r\n\r\n\t\t\tblock.chunks.create.push(\r\n\t\t\t\tb`if (${name}) @create_component(${name}.$$.fragment);`\r\n\t\t\t);\r\n\r\n\t\t\tif (parent_nodes && this.renderer.options.hydratable) {\r\n\t\t\t\tblock.chunks.claim.push(\r\n\t\t\t\t\tb`if (${name}) @claim_component(${name}.$$.fragment, ${parent_nodes});`\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\tblock.chunks.mount.push(b`\r\n\t\t\t\tif (${name}) {\r\n\t\t\t\t\t@mount_component(${name}, ${parent_node || '#target'}, ${parent_node ? 'null' : '#anchor'});\r\n\t\t\t\t}\r\n\t\t\t`);\r\n\r\n\t\t\tconst anchor = this.get_or_create_anchor(block, parent_node, parent_nodes);\r\n\t\t\tconst update_mount_node = this.get_update_mount_node(anchor);\r\n\r\n\t\t\tif (updates.length) {\r\n\t\t\t\tblock.chunks.update.push(b`\r\n\t\t\t\t\t${updates}\r\n\t\t\t\t`);\r\n\t\t\t}\r\n\r\n\t\t\tblock.chunks.update.push(b`\r\n\t\t\t\tif (${switch_value} !== (${switch_value} = ${snippet})) {\r\n\t\t\t\t\tif (${name}) {\r\n\t\t\t\t\t\t@group_outros();\r\n\t\t\t\t\t\tconst old_component = ${name};\r\n\t\t\t\t\t\t@transition_out(old_component.$$.fragment, 1, 0, () => {\r\n\t\t\t\t\t\t\t@destroy_component(old_component, 1);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t@check_outros();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (${switch_value}) {\r\n\t\t\t\t\t\t${name} = new ${switch_value}(${switch_props}(#ctx));\r\n\r\n\t\t\t\t\t\t${munged_bindings}\r\n\t\t\t\t\t\t${munged_handlers}\r\n\r\n\t\t\t\t\t\t@create_component(${name}.$$.fragment);\r\n\t\t\t\t\t\t@transition_in(${name}.$$.fragment, 1);\r\n\t\t\t\t\t\t@mount_component(${name}, ${update_mount_node}, ${anchor});\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t${name} = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (${switch_value}) {\r\n\t\t\t\t\t${updates.length > 0 && b`${name}.$set(${name_changes});`}\r\n\t\t\t\t}\r\n\t\t\t`);\r\n\r\n\t\t\tblock.chunks.intro.push(b`\r\n\t\t\t\tif (${name}) @transition_in(${name}.$$.fragment, #local);\r\n\t\t\t`);\r\n\r\n\t\t\tblock.chunks.outro.push(\r\n\t\t\t\tb`if (${name}) @transition_out(${name}.$$.fragment, #local);`\r\n\t\t\t);\r\n\r\n\t\t\tblock.chunks.destroy.push(b`if (${name}) @destroy_component(${name}, ${parent_node ? null : 'detaching'});`);\r\n\t\t} else {\r\n\t\t\tconst expression = this.node.name === 'svelte:self'\r\n\t\t\t\t? component.name\r\n\t\t\t\t: this.renderer.reference(string_to_member_expression(this.node.name));\r\n\r\n\t\t\tblock.chunks.init.push(b`\r\n\t\t\t\t${(this.node.attributes.length > 0 || this.node.bindings.length > 0) && b`\r\n\t\t\t\t${props && b`let ${props} = ${attribute_object};`}`}\r\n\t\t\t\t${statements}\r\n\t\t\t\t${name} = new ${expression}(${component_opts});\r\n\r\n\t\t\t\t${munged_bindings}\r\n\t\t\t\t${munged_handlers}\r\n\t\t\t`);\r\n\r\n\t\t\tif (has_css_custom_properties) {\r\n\t\t\t\tblock.chunks.create.push(b`${css_custom_properties_wrapper} = @element(\"div\");`);\r\n\t\t\t\tblock.chunks.hydrate.push(b`@set_style(${css_custom_properties_wrapper}, \"display\", \"contents\");`);\r\n\t\t\t\tthis.node.css_custom_properties.forEach(attr => {\r\n\t\t\t\t\tconst dependencies = attr.get_dependencies();\r\n\t\t\t\t\tconst should_cache = attr.should_cache();\r\n\t\t\t\t\tconst last = should_cache && block.get_unique_name(`${attr.name.replace(/[^a-zA-Z_$]/g, '_')}_last`);\r\n\t\t\t\t\tif (should_cache) block.add_variable(last);\r\n\t\t\t\t\tconst value = attr.get_value(block);\r\n\t\t\t\t\tconst init = should_cache ? x`${last} = ${value}` : value;\r\n\r\n\t\t\t\t\tblock.chunks.hydrate.push(b`@set_style(${css_custom_properties_wrapper}, \"${attr.name}\", ${init});`);\r\n\t\t\t\t\tif (dependencies.length > 0) {\r\n\t\t\t\t\t\tlet condition = block.renderer.dirty(dependencies);\r\n\t\t\t\t\t\tif (should_cache) condition = x`${condition} && (${last} !== (${last} = ${value}))`;\r\n\r\n\t\t\t\t\t\tblock.chunks.update.push(b`\r\n\t\t\t\t\t\t\tif (${condition}) {\r\n\t\t\t\t\t\t\t\t@set_style(${css_custom_properties_wrapper}, \"${attr.name}\", ${should_cache ? last : value});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t`);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tblock.chunks.create.push(b`@create_component(${name}.$$.fragment);`);\r\n\r\n\t\t\tif (parent_nodes && this.renderer.options.hydratable) {\r\n\t\t\t\tlet nodes = parent_nodes;\r\n\t\t\t\tif (has_css_custom_properties) {\r\n\t\t\t\t\tnodes = block.get_unique_name(`${css_custom_properties_wrapper.name}_nodes`);\r\n\t\t\t\t\tblock.chunks.claim.push(b`\r\n\t\t\t\t\t\t${css_custom_properties_wrapper} = @claim_element(${parent_nodes}, \"DIV\", { style: true })\r\n\t\t\t\t\t\tvar ${nodes} = @children(${css_custom_properties_wrapper});\r\n\t\t\t\t\t`);\r\n\t\t\t\t}\r\n\t\t\t\tblock.chunks.claim.push(\r\n\t\t\t\t\tb`@claim_component(${name}.$$.fragment, ${nodes});`\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\tif (has_css_custom_properties) {\r\n\t\t\t\tif (parent_node) {\r\n\t\t\t\t\tblock.chunks.mount.push(b`@append(${parent_node}, ${css_custom_properties_wrapper})`);\r\n\t\t\t\t\tif (is_head(parent_node)) {\r\n\t\t\t\t\t\tblock.chunks.destroy.push(b`@detach(${css_custom_properties_wrapper});`);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tblock.chunks.mount.push(b`@insert(#target, ${css_custom_properties_wrapper}, #anchor);`);\r\n\t\t\t\t\t// TODO we eventually need to consider what happens to elements\r\n\t\t\t\t\t// that belong to the same outgroup as an outroing element...\r\n\t\t\t\t\tblock.chunks.destroy.push(b`if (detaching) @detach(${css_custom_properties_wrapper});`);\r\n\t\t\t\t}\r\n\t\t\t\tblock.chunks.mount.push(b`@mount_component(${name}, ${css_custom_properties_wrapper}, null);`);\r\n\t\t\t} else {\r\n\t\t\t\tblock.chunks.mount.push(\r\n\t\t\t\t\tb`@mount_component(${name}, ${parent_node || '#target'}, ${parent_node ? 'null' : '#anchor'});`\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\tblock.chunks.intro.push(b`\r\n\t\t\t\t@transition_in(${name}.$$.fragment, #local);\r\n\t\t\t`);\r\n\r\n\t\t\tif (updates.length) {\r\n\t\t\t\tblock.chunks.update.push(b`\r\n\t\t\t\t\t${updates}\r\n\t\t\t\t\t${name}.$set(${name_changes});\r\n\t\t\t\t`);\r\n\t\t\t}\r\n\r\n\t\t\tblock.chunks.destroy.push(b`\r\n\t\t\t\t@destroy_component(${name}, ${parent_node ? null : 'detaching'});\r\n\t\t\t`);\r\n\r\n\t\t\tblock.chunks.outro.push(\r\n\t\t\t\tb`@transition_out(${name}.$$.fragment, #local);`\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n}\r\n","import Attribute from '../nodes/Attribute';\r\nimport { p, x } from 'code-red';\r\nimport { string_literal } from './stringify';\r\nimport Block from '../render_dom/Block';\r\n\r\nexport default function get_slot_data(values: Map<string, Attribute>, block: Block = null) {\r\n\treturn {\r\n\t\ttype: 'ObjectExpression',\r\n\t\tproperties: Array.from(values.values())\r\n\t\t\t.filter(attribute => attribute.name !== 'name')\r\n\t\t\t.map(attribute => {\r\n\t\t\t\tif (attribute.is_spread) {\r\n\t\t\t\t\tconst argument = get_spread_value(block, attribute);\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\ttype: 'SpreadElement',\r\n\t\t\t\t\t\targument\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst value = get_value(block, attribute);\r\n\t\t\t\treturn p`${attribute.name}: ${value}`;\r\n\t\t\t})\r\n\t};\r\n}\r\n\r\nfunction get_value(block: Block, attribute: Attribute) {\r\n\tif (attribute.is_true) return x`true`;\r\n\tif (attribute.chunks.length === 0) return x`\"\"`;\r\n\r\n\tlet value = attribute.chunks\r\n\t\t.map(chunk => chunk.type === 'Text' ? string_literal(chunk.data) : (block ? chunk.manipulate(block) : chunk.node))\r\n\t\t.reduce((lhs, rhs) => x`${lhs} + ${rhs}`);\r\n\r\n\tif (attribute.chunks.length > 1 && attribute.chunks[0].type !== 'Text') {\r\n\t\tvalue = x`\"\" + ${value}`;\r\n\t}\r\n\r\n\treturn value;\r\n}\r\n\r\nfunction get_spread_value(block: Block, attribute: Attribute) {\r\n\treturn block ? attribute.expression.manipulate(block) : attribute.expression.node;\r\n}\r\n","import Wrapper from './shared/Wrapper';\r\nimport Renderer from '../Renderer';\r\nimport Block from '../Block';\r\nimport Slot from '../../nodes/Slot';\r\nimport FragmentWrapper from './Fragment';\r\nimport { b, p, x } from 'code-red';\r\nimport { sanitize } from '../../../utils/names';\r\nimport add_to_set from '../../utils/add_to_set';\r\nimport get_slot_data from '../../utils/get_slot_data';\r\nimport { is_reserved_keyword } from '../../utils/reserved_keywords';\r\nimport is_dynamic from './shared/is_dynamic';\r\nimport { Identifier, ObjectExpression } from 'estree';\r\nimport create_debugging_comment from './shared/create_debugging_comment';\r\n\r\nexport default class SlotWrapper extends Wrapper {\r\n\tnode: Slot;\r\n\tfragment: FragmentWrapper;\r\n\tfallback: Block | null = null;\r\n\tslot_block: Block;\r\n\r\n\tvar: Identifier = { type: 'Identifier', name: 'slot' };\r\n\tdependencies: Set<string> = new Set(['$$scope']);\r\n\r\n\tconstructor(\r\n\t\trenderer: Renderer,\r\n\t\tblock: Block,\r\n\t\tparent: Wrapper,\r\n\t\tnode: Slot,\r\n\t\tstrip_whitespace: boolean,\r\n\t\tnext_sibling: Wrapper\r\n\t) {\r\n\t\tsuper(renderer, block, parent, node);\r\n\t\tthis.cannot_use_innerhtml();\r\n\t\tthis.not_static_content();\r\n\r\n\t\tif (this.node.children.length) {\r\n\t\t\tthis.fallback = block.child({\r\n\t\t\t\tcomment: create_debugging_comment(this.node.children[0], this.renderer.component),\r\n\t\t\t\tname: this.renderer.component.get_unique_name('fallback_block'),\r\n\t\t\t\ttype: 'fallback'\r\n\t\t\t});\r\n\t\t\trenderer.blocks.push(this.fallback);\r\n\t\t}\r\n\r\n\t\tthis.fragment = new FragmentWrapper(\r\n\t\t\trenderer,\r\n\t\t\tthis.fallback,\r\n\t\t\tnode.children,\r\n\t\t\tthis,\r\n\t\t\tstrip_whitespace,\r\n\t\t\tnext_sibling\r\n\t\t);\r\n\r\n\t\tthis.node.values.forEach(attribute => {\r\n\t\t\tadd_to_set(this.dependencies, attribute.dependencies);\r\n\t\t});\r\n\r\n\t\tblock.add_dependencies(this.dependencies);\r\n\r\n\t\t// we have to do this, just in case\r\n\t\tblock.add_intro();\r\n\t\tblock.add_outro();\r\n\t}\r\n\r\n\trender(\r\n\t\tblock: Block,\r\n\t\tparent_node: Identifier,\r\n\t\tparent_nodes: Identifier\r\n\t) {\r\n\t\tconst { renderer } = this;\r\n\r\n\t\tconst { slot_name } = this.node;\r\n\r\n\t\tif (this.slot_block) {\r\n\t\t\tblock = this.slot_block;\r\n\t\t}\r\n\r\n\t\tlet get_slot_changes_fn;\r\n\t\tlet get_slot_spread_changes_fn;\r\n\t\tlet get_slot_context_fn;\r\n\r\n\t\tif (this.node.values.size > 0) {\r\n\t\t\tget_slot_changes_fn = renderer.component.get_unique_name(`get_${sanitize(slot_name)}_slot_changes`);\r\n\t\t\tget_slot_context_fn = renderer.component.get_unique_name(`get_${sanitize(slot_name)}_slot_context`);\r\n\r\n\t\t\tconst changes = x`{}` as ObjectExpression;\r\n\r\n\t\t\tconst spread_dynamic_dependencies = new Set<string>();\r\n\r\n\t\t\tthis.node.values.forEach(attribute => {\r\n\t\t\t\tif (attribute.type === 'Spread') {\r\n\t\t\t\t\tadd_to_set(spread_dynamic_dependencies, Array.from(attribute.dependencies).filter((name) => this.is_dependency_dynamic(name)));\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconst dynamic_dependencies = Array.from(attribute.dependencies).filter((name) => this.is_dependency_dynamic(name));\r\n\r\n\t\t\t\t\tif (dynamic_dependencies.length > 0) {\r\n\t\t\t\t\t\tchanges.properties.push(p`${attribute.name}: ${renderer.dirty(dynamic_dependencies)}`);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\trenderer.blocks.push(b`\r\n\t\t\t\tconst ${get_slot_changes_fn} = #dirty => ${changes};\r\n\t\t\t\tconst ${get_slot_context_fn} = #ctx => ${get_slot_data(this.node.values, block)};\r\n\t\t\t`);\r\n\r\n\t\t\tif (spread_dynamic_dependencies.size) {\r\n\t\t\t\tget_slot_spread_changes_fn = renderer.component.get_unique_name(`get_${sanitize(slot_name)}_slot_spread_changes`);\r\n\t\t\t\trenderer.blocks.push(b`\r\n\t\t\t\t\tconst ${get_slot_spread_changes_fn} = #dirty => ${renderer.dirty(Array.from(spread_dynamic_dependencies))};\r\n\t\t\t\t`);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tget_slot_changes_fn = 'null';\r\n\t\t\tget_slot_context_fn = 'null';\r\n\t\t}\r\n\r\n\t\tlet has_fallback = !!this.fallback;\r\n\t\tif (this.fallback) {\r\n\t\t\tthis.fragment.render(this.fallback, null, x`#nodes` as Identifier);\r\n\t\t\thas_fallback = this.fallback.has_content();\r\n\t\t\tif (!has_fallback) {\r\n\t\t\t\trenderer.remove_block(this.fallback);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst slot = block.get_unique_name(`${sanitize(slot_name)}_slot`);\r\n\t\tconst slot_definition = block.get_unique_name(`${sanitize(slot_name)}_slot_template`);\r\n\t\tconst slot_or_fallback = has_fallback ? block.get_unique_name(`${sanitize(slot_name)}_slot_or_fallback`) : slot;\r\n\r\n\t\tblock.chunks.init.push(b`\r\n\t\t\tconst ${slot_definition} = ${renderer.reference('#slots')}.${slot_name};\r\n\t\t\tconst ${slot} = @create_slot(${slot_definition}, #ctx, ${renderer.reference('$$scope')}, ${get_slot_context_fn});\r\n\t\t\t${has_fallback ? b`const ${slot_or_fallback} = ${slot} || ${this.fallback.name}(#ctx);` : null}\r\n\t\t`);\r\n\r\n\t\tblock.chunks.create.push(\r\n\t\t\tb`if (${slot_or_fallback}) ${slot_or_fallback}.c();`\r\n\t\t);\r\n\r\n\t\tif (renderer.options.hydratable) {\r\n\t\t\tblock.chunks.claim.push(\r\n\t\t\t\tb`if (${slot_or_fallback}) ${slot_or_fallback}.l(${parent_nodes});`\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tblock.chunks.mount.push(b`\r\n\t\t\tif (${slot_or_fallback}) {\r\n\t\t\t\t${slot_or_fallback}.m(${parent_node || '#target'}, ${parent_node ? 'null' : '#anchor'});\r\n\t\t\t}\r\n\t\t`);\r\n\r\n\t\tblock.chunks.intro.push(\r\n\t\t\tb`@transition_in(${slot_or_fallback}, #local);`\r\n\t\t);\r\n\r\n\t\tblock.chunks.outro.push(\r\n\t\t\tb`@transition_out(${slot_or_fallback}, #local);`\r\n\t\t);\r\n\r\n\t\tconst dynamic_dependencies = Array.from(this.dependencies).filter((name) => this.is_dependency_dynamic(name));\r\n\r\n\t\tconst fallback_dynamic_dependencies = has_fallback\r\n\t\t\t? Array.from(this.fallback.dependencies).filter((name) => this.is_dependency_dynamic(name))\r\n\t\t\t: [];\r\n\r\n\t\tlet condition = renderer.dirty(dynamic_dependencies);\r\n\t\tif (block.has_outros) {\r\n\t\t\tcondition = x`!#current || ${condition}`;\r\n\t\t}\r\n\r\n\t\t// conditions to treat everything as dirty\r\n\t\tconst all_dirty_conditions = [\r\n\t\t\tget_slot_spread_changes_fn ? x`${get_slot_spread_changes_fn}(#dirty)` : null,\r\n\t\t\tblock.has_outros ? x`!#current` : null\r\n\t\t].filter(Boolean);\r\n\t\tconst all_dirty_condition = all_dirty_conditions.length ? all_dirty_conditions.reduce((condition1, condition2) => x`${condition1} || ${condition2}`) : null;\r\n\r\n\t\tlet slot_update;\r\n\t\tif (all_dirty_condition) {\r\n\t\t\tconst dirty = x`${all_dirty_condition} ? @get_all_dirty_from_scope(${renderer.reference('$$scope')}) : @get_slot_changes(${slot_definition}, ${renderer.reference('$$scope')}, #dirty, ${get_slot_changes_fn})`;\r\n\r\n\t\t\tslot_update = b`\r\n\t\t\t\tif (${slot}.p && ${condition}) {\r\n\t\t\t\t\t@update_slot_base(${slot}, ${slot_definition}, #ctx, ${renderer.reference('$$scope')}, ${dirty}, ${get_slot_context_fn});\r\n\t\t\t\t}\r\n\t\t\t`;\r\n\t\t} else {\r\n\t\t\tslot_update = b`\r\n\t\t\t\tif (${slot}.p && ${condition}) {\r\n\t\t\t\t\t@update_slot(${slot}, ${slot_definition}, #ctx, ${renderer.reference('$$scope')}, #dirty, ${get_slot_changes_fn}, ${get_slot_context_fn});\r\n\t\t\t\t}\r\n\t\t\t`;\r\n\t\t}\r\n\r\n\t\tlet fallback_condition = renderer.dirty(fallback_dynamic_dependencies);\r\n\t\tlet fallback_dirty = x`#dirty`;\r\n\t\tif (block.has_outros) {\r\n\t\t\tfallback_condition = x`!#current || ${fallback_condition}`;\r\n\t\t\tfallback_dirty = x`!#current ? ${renderer.get_initial_dirty()} : ${fallback_dirty}`;\r\n\t\t}\r\n\r\n\t\tconst fallback_update = has_fallback && fallback_dynamic_dependencies.length > 0 && b`\r\n\t\t\tif (${slot_or_fallback} && ${slot_or_fallback}.p && ${fallback_condition}) {\r\n\t\t\t\t${slot_or_fallback}.p(#ctx, ${fallback_dirty});\r\n\t\t\t}\r\n\t\t`;\r\n\r\n\t\tif (fallback_update) {\r\n\t\t\tblock.chunks.update.push(b`\r\n\t\t\t\tif (${slot}) {\r\n\t\t\t\t\t${slot_update}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t${fallback_update}\r\n\t\t\t\t}\r\n\t\t\t`);\r\n\t\t} else {\r\n\t\t\tblock.chunks.update.push(b`\r\n\t\t\t\tif (${slot}) {\r\n\t\t\t\t\t${slot_update}\r\n\t\t\t\t}\r\n\t\t\t`);\r\n\t\t}\r\n\r\n\t\tblock.chunks.destroy.push(\r\n\t\t\tb`if (${slot_or_fallback}) ${slot_or_fallback}.d(detaching);`\r\n\t\t);\r\n\t}\r\n\r\n\tis_dependency_dynamic(name: string) {\r\n\t\tif (name === '$$scope') return true;\r\n\t\tif (this.node.scope.is_let(name)) return true;\r\n\t\tif (is_reserved_keyword(name)) return true;\r\n\t\tconst variable = this.renderer.component.var_lookup.get(name);\r\n\t\treturn is_dynamic(variable);\r\n\t}\r\n}\r\n","import { b, x } from 'code-red';\r\nimport Wrapper from './shared/Wrapper';\r\nimport Renderer from '../Renderer';\r\nimport Block from '../Block';\r\nimport Title from '../../nodes/Title';\r\nimport { string_literal } from '../../utils/stringify';\r\nimport add_to_set from '../../utils/add_to_set';\r\nimport Text from '../../nodes/Text';\r\nimport { Identifier } from 'estree';\r\nimport MustacheTag from '../../nodes/MustacheTag';\r\n\r\nexport default class TitleWrapper extends Wrapper {\r\n\tnode: Title;\r\n\r\n\tconstructor(\r\n\t\trenderer: Renderer,\r\n\t\tblock: Block,\r\n\t\tparent: Wrapper,\r\n\t\tnode: Title,\r\n\t\t_strip_whitespace: boolean,\r\n\t\t_next_sibling: Wrapper\r\n\t) {\r\n\t\tsuper(renderer, block, parent, node);\r\n\t}\r\n\r\n\trender(block: Block, _parent_node: Identifier, _parent_nodes: Identifier) {\r\n\t\tconst is_dynamic = !!this.node.children.find(node => node.type !== 'Text');\r\n\r\n\t\tif (is_dynamic) {\r\n\t\t\tlet value;\r\n\r\n\t\t\tconst all_dependencies: Set<string> = new Set();\r\n\r\n\t\t\t// TODO some of this code is repeated in Tag.ts — would be good to\r\n\t\t\t// DRY it out if that's possible without introducing crazy indirection\r\n\t\t\tif (this.node.children.length === 1) {\r\n\t\t\t\t// single {tag} — may be a non-string\r\n\t\t\t\t// @ts-ignore todo: check this\r\n\t\t\t\tconst { expression } = this.node.children[0];\r\n\t\t\t\tvalue = expression.manipulate(block);\r\n\t\t\t\tadd_to_set(all_dependencies, expression.dependencies);\r\n\t\t\t} else {\r\n\t\t\t\t// '{foo} {bar}' — treat as string concatenation\r\n\t\t\t\tvalue = this.node.children\r\n\t\t\t\t\t.map(chunk => {\r\n\t\t\t\t\t\tif (chunk.type === 'Text') return string_literal(chunk.data);\r\n\r\n\t\t\t\t\t\t(chunk as MustacheTag).expression.dependencies.forEach(d => {\r\n\t\t\t\t\t\t\tall_dependencies.add(d);\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\treturn (chunk as MustacheTag).expression.manipulate(block);\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.reduce((lhs, rhs) => x`${lhs} + ${rhs}`);\r\n\r\n\t\t\t\tif (this.node.children[0].type !== 'Text') {\r\n\t\t\t\t\tvalue = x`\"\" + ${value}`;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tconst last = this.node.should_cache && block.get_unique_name(\r\n\t\t\t\t'title_value'\r\n\t\t\t);\r\n\r\n\t\t\tif (this.node.should_cache) block.add_variable(last);\r\n\r\n\t\t\tconst init = this.node.should_cache ? x`${last} = ${value}` : value;\r\n\r\n\t\t\tblock.chunks.init.push(\r\n\t\t\t\tb`@_document.title = ${init};`\r\n\t\t\t);\r\n\r\n\t\t\tconst updater = b`@_document.title = ${this.node.should_cache ? last : value};`;\r\n\r\n\t\t\tif (all_dependencies.size) {\r\n\t\t\t\tconst dependencies = Array.from(all_dependencies);\r\n\r\n\t\t\t\tlet condition = block.renderer.dirty(dependencies);\r\n\r\n\t\t\t\tif (block.has_outros) {\r\n\t\t\t\t\tcondition = x`!#current || ${condition}`;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.node.should_cache) {\r\n\t\t\t\t\tcondition = x`${condition} && (${last} !== (${last} = ${value}))`;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tblock.chunks.update.push(b`\r\n\t\t\t\t\tif (${condition}) {\r\n\t\t\t\t\t\t${updater}\r\n\t\t\t\t\t}`);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tconst value = this.node.children.length > 0\r\n\t\t\t\t? string_literal((this.node.children[0] as Text).data)\r\n\t\t\t\t: x`\"\"`;\r\n\r\n\t\t\tblock.chunks.hydrate.push(b`@_document.title = ${value};`);\r\n\t\t}\r\n\t}\r\n}\r\n","import Renderer from '../Renderer';\r\nimport Block from '../Block';\r\nimport Wrapper from './shared/Wrapper';\r\nimport { b, x } from 'code-red';\r\nimport add_event_handlers from './shared/add_event_handlers';\r\nimport Window from '../../nodes/Window';\r\nimport add_actions from './shared/add_actions';\r\nimport { Identifier } from 'estree';\r\nimport { TemplateNode } from '../../../interfaces';\r\nimport EventHandler from './Element/EventHandler';\r\n\r\nconst associated_events = {\r\n\tinnerWidth: 'resize',\r\n\tinnerHeight: 'resize',\r\n\touterWidth: 'resize',\r\n\touterHeight: 'resize',\r\n\r\n\tscrollX: 'scroll',\r\n\tscrollY: 'scroll'\r\n};\r\n\r\nconst properties = {\r\n\tscrollX: 'pageXOffset',\r\n\tscrollY: 'pageYOffset'\r\n};\r\n\r\nconst readonly = new Set([\r\n\t'innerWidth',\r\n\t'innerHeight',\r\n\t'outerWidth',\r\n\t'outerHeight',\r\n\t'online'\r\n]);\r\n\r\nexport default class WindowWrapper extends Wrapper {\r\n\tnode: Window;\r\n\thandlers: EventHandler[];\r\n\r\n\tconstructor(renderer: Renderer, block: Block, parent: Wrapper, node: TemplateNode) {\r\n\t\tsuper(renderer, block, parent, node);\r\n\t\tthis.handlers = this.node.handlers.map(handler => new EventHandler(handler, this));\r\n\t}\r\n\r\n\trender(block: Block, _parent_node: Identifier, _parent_nodes: Identifier) {\r\n\t\tconst { renderer } = this;\r\n\t\tconst { component } = renderer;\r\n\r\n\t\tconst events = {};\r\n\t\tconst bindings: Record<string, string> = {};\r\n\r\n\t\tadd_actions(block, '@_window', this.node.actions);\r\n\t\tadd_event_handlers(block, '@_window', this.handlers);\r\n\r\n\t\tthis.node.bindings.forEach(binding => {\r\n\t\t\t// TODO: what if it's a MemberExpression?\r\n\t\t\tconst binding_name = (binding.expression.node as Identifier).name;\r\n\r\n\t\t\t// in dev mode, throw if read-only values are written to\r\n\t\t\tif (readonly.has(binding.name)) {\r\n\t\t\t\trenderer.readonly.add(binding_name);\r\n\t\t\t}\r\n\r\n\t\t\tbindings[binding.name] = binding_name;\r\n\r\n\t\t\t// bind:online is a special case, we need to listen for two separate events\r\n\t\t\tif (binding.name === 'online') return;\r\n\r\n\t\t\tconst associated_event = associated_events[binding.name];\r\n\t\t\tconst property = properties[binding.name] || binding.name;\r\n\r\n\t\t\tif (!events[associated_event]) events[associated_event] = [];\r\n\t\t\tevents[associated_event].push({\r\n\t\t\t\tname: binding_name,\r\n\t\t\t\tvalue: property\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tconst scrolling = block.get_unique_name('scrolling');\r\n\t\tconst clear_scrolling = block.get_unique_name('clear_scrolling');\r\n\t\tconst scrolling_timeout = block.get_unique_name('scrolling_timeout');\r\n\r\n\t\tObject.keys(events).forEach(event => {\r\n\t\t\tconst id = block.get_unique_name(`onwindow${event}`);\r\n\t\t\tconst props = events[event];\r\n\r\n\t\t\trenderer.add_to_context(id.name);\r\n\t\t\tconst fn = renderer.reference(id.name);\r\n\r\n\t\t\tif (event === 'scroll') {\r\n\t\t\t\t// TODO other bidirectional bindings...\r\n\t\t\t\tblock.add_variable(scrolling, x`false`);\r\n\t\t\t\tblock.add_variable(clear_scrolling, x`() => { ${scrolling} = false }`);\r\n\t\t\t\tblock.add_variable(scrolling_timeout);\r\n\r\n\t\t\t\tconst condition = bindings.scrollX && bindings.scrollY\r\n\t\t\t\t\t? x`\"${bindings.scrollX}\" in this._state || \"${bindings.scrollY}\" in this._state`\r\n\t\t\t\t\t: x`\"${bindings.scrollX || bindings.scrollY}\" in this._state`;\r\n\r\n\t\t\t\tconst scrollX = bindings.scrollX && x`this._state.${bindings.scrollX}`;\r\n\t\t\t\tconst scrollY = bindings.scrollY && x`this._state.${bindings.scrollY}`;\r\n\r\n\t\t\t\trenderer.meta_bindings.push(b`\r\n\t\t\t\t\tif (${condition}) {\r\n\t\t\t\t\t\t@_scrollTo(${scrollX || '@_window.pageXOffset'}, ${scrollY || '@_window.pageYOffset'});\r\n\t\t\t\t\t}\r\n\t\t\t\t\t${scrollX && `${scrollX} = @_window.pageXOffset;`}\r\n\t\t\t\t\t${scrollY && `${scrollY} = @_window.pageYOffset;`}\r\n\t\t\t\t`);\r\n\r\n\t\t\t\tblock.event_listeners.push(x`\r\n\t\t\t\t\t@listen(@_window, \"${event}\", () => {\r\n\t\t\t\t\t\t${scrolling} = true;\r\n\t\t\t\t\t\t@_clearTimeout(${scrolling_timeout});\r\n\t\t\t\t\t\t${scrolling_timeout} = @_setTimeout(${clear_scrolling}, 100);\r\n\t\t\t\t\t\t${fn}();\r\n\t\t\t\t\t})\r\n\t\t\t\t`);\r\n\t\t\t} else {\r\n\t\t\t\tprops.forEach(prop => {\r\n\t\t\t\t\trenderer.meta_bindings.push(\r\n\t\t\t\t\t\tb`this._state.${prop.name} = @_window.${prop.value};`\r\n\t\t\t\t\t);\r\n\t\t\t\t});\r\n\r\n\t\t\t\tblock.event_listeners.push(x`\r\n\t\t\t\t\t@listen(@_window, \"${event}\", ${fn})\r\n\t\t\t\t`);\r\n\t\t\t}\r\n\r\n\t\t\tcomponent.partly_hoisted.push(b`\r\n\t\t\t\tfunction ${id}() {\r\n\t\t\t\t\t${props.map(prop => renderer.invalidate(prop.name, x`${prop.name} = @_window.${prop.value}`))}\r\n\t\t\t\t}\r\n\t\t\t`);\r\n\r\n\t\t\tblock.chunks.init.push(b`\r\n\t\t\t\t@add_render_callback(${fn});\r\n\t\t\t`);\r\n\r\n\t\t\tcomponent.has_reactive_assignments = true;\r\n\t\t});\r\n\r\n\t\t// special case... might need to abstract this out if we add more special cases\r\n\t\tif (bindings.scrollX || bindings.scrollY) {\r\n\t\t\tconst condition = renderer.dirty([bindings.scrollX, bindings.scrollY].filter(Boolean));\r\n\r\n\t\t\tconst scrollX = bindings.scrollX ? renderer.reference(bindings.scrollX) : x`@_window.pageXOffset`;\r\n\t\t\tconst scrollY = bindings.scrollY ? renderer.reference(bindings.scrollY) : x`@_window.pageYOffset`;\r\n\r\n\t\t\tblock.chunks.update.push(b`\r\n\t\t\t\tif (${condition} && !${scrolling}) {\r\n\t\t\t\t\t${scrolling} = true;\r\n\t\t\t\t\t@_clearTimeout(${scrolling_timeout});\r\n\t\t\t\t\t@_scrollTo(${scrollX}, ${scrollY});\r\n\t\t\t\t\t${scrolling_timeout} = @_setTimeout(${clear_scrolling}, 100);\r\n\t\t\t\t}\r\n\t\t\t`);\r\n\t\t}\r\n\r\n\t\t// another special case. (I'm starting to think these are all special cases.)\r\n\t\tif (bindings.online) {\r\n\t\t\tconst id = block.get_unique_name('onlinestatuschanged');\r\n\t\t\tconst name = bindings.online;\r\n\r\n\t\t\trenderer.add_to_context(id.name);\r\n\t\t\tconst reference = renderer.reference(id.name);\r\n\r\n\t\t\tcomponent.partly_hoisted.push(b`\r\n\t\t\t\tfunction ${id}() {\r\n\t\t\t\t\t${renderer.invalidate(name, x`${name} = @_navigator.onLine`)}\r\n\t\t\t\t}\r\n\t\t\t`);\r\n\r\n\t\t\tblock.chunks.init.push(b`\r\n\t\t\t\t@add_render_callback(${reference});\r\n\t\t\t`);\r\n\r\n\t\t\tblock.event_listeners.push(\r\n\t\t\t\tx`@listen(@_window, \"online\", ${reference})`,\r\n\t\t\t\tx`@listen(@_window, \"offline\", ${reference})`\r\n\t\t\t);\r\n\r\n\t\t\tcomponent.has_reactive_assignments = true;\r\n\t\t}\r\n\t}\r\n}\r\n","export function link<T extends { next?: T; prev?: T }>(next: T, prev: T) {\r\n\tprev.next = next;\r\n\tif (next) next.prev = prev;\r\n}\r\n","import Wrapper from './shared/Wrapper';\r\nimport AwaitBlock from './AwaitBlock';\r\nimport Body from './Body';\r\nimport DebugTag from './DebugTag';\r\nimport EachBlock from './EachBlock';\r\nimport Element from './Element/index';\r\nimport Head from './Head';\r\nimport IfBlock from './IfBlock';\r\nimport KeyBlock from './KeyBlock';\r\nimport InlineComponent from './InlineComponent/index';\r\nimport MustacheTag from './MustacheTag';\r\nimport RawMustacheTag from './RawMustacheTag';\r\nimport Slot from './Slot';\r\nimport SlotTemplate from './SlotTemplate';\r\nimport Text from './Text';\r\nimport Title from './Title';\r\nimport Window from './Window';\r\nimport { INode } from '../../nodes/interfaces';\r\nimport Renderer from '../Renderer';\r\nimport Block from '../Block';\r\nimport { trim_start, trim_end } from '../../../utils/trim';\r\nimport { link } from '../../../utils/link';\r\nimport { Identifier } from 'estree';\r\n\r\nconst wrappers = {\r\n\tAwaitBlock,\r\n\tBody,\r\n\tComment: null,\r\n\tDebugTag,\r\n\tEachBlock,\r\n\tElement,\r\n\tHead,\r\n\tIfBlock,\r\n\tInlineComponent,\r\n\tKeyBlock,\r\n\tMustacheTag,\r\n\tOptions: null,\r\n\tRawMustacheTag,\r\n\tSlot,\r\n\tSlotTemplate,\r\n\tText,\r\n\tTitle,\r\n\tWindow\r\n};\r\n\r\nfunction trimmable_at(child: INode, next_sibling: Wrapper): boolean {\r\n\t// Whitespace is trimmable if one of the following is true:\r\n\t// The child and its sibling share a common nearest each block (not at an each block boundary)\r\n\t// The next sibling's previous node is an each block\r\n\treturn (next_sibling.node.find_nearest(/EachBlock/) === child.find_nearest(/EachBlock/)) || next_sibling.node.prev.type === 'EachBlock';\r\n}\r\n\r\nexport default class FragmentWrapper {\r\n\tnodes: Wrapper[];\r\n\r\n\tconstructor(\r\n\t\trenderer: Renderer,\r\n\t\tblock: Block,\r\n\t\tnodes: INode[],\r\n\t\tparent: Wrapper,\r\n\t\tstrip_whitespace: boolean,\r\n\t\tnext_sibling: Wrapper\r\n\t) {\r\n\t\tthis.nodes = [];\r\n\r\n\t\tlet last_child: Wrapper;\r\n\t\tlet window_wrapper;\r\n\r\n\t\tlet i = nodes.length;\r\n\t\twhile (i--) {\r\n\t\t\tconst child = nodes[i];\r\n\r\n\t\t\tif (!child.type) {\r\n\t\t\t\tthrow new Error('missing type');\r\n\t\t\t}\r\n\r\n\t\t\tif (!(child.type in wrappers)) {\r\n\t\t\t\tthrow new Error(`TODO implement ${child.type}`);\r\n\t\t\t}\r\n\r\n\t\t\t// special case — this is an easy way to remove whitespace surrounding\r\n\t\t\t// <svelte:window/>. lil hacky but it works\r\n\t\t\tif (child.type === 'Window') {\r\n\t\t\t\twindow_wrapper = new Window(renderer, block, parent, child);\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tif (child.type === 'Text') {\r\n\t\t\t\tlet { data } = child;\r\n\r\n\t\t\t\t// We want to remove trailing whitespace inside an element/component/block,\r\n\t\t\t\t// *unless* there is no whitespace between this node and its next sibling\r\n\t\t\t\tif (this.nodes.length === 0) {\r\n\t\t\t\t\tconst should_trim = (\r\n\t\t\t\t\t\tnext_sibling ? (next_sibling.node.type === 'Text' && /^\\s/.test(next_sibling.node.data) && trimmable_at(child, next_sibling)) : !child.has_ancestor('EachBlock')\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t\tif (should_trim && !child.keep_space()) {\r\n\t\t\t\t\t\tdata = trim_end(data);\r\n\t\t\t\t\t\tif (!data) continue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// glue text nodes (which could e.g. be separated by comments) together\r\n\t\t\t\tif (last_child && last_child.node.type === 'Text') {\r\n\t\t\t\t\t(last_child as Text).data = data + (last_child as Text).data;\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst wrapper = new Text(renderer, block, parent, child, data);\r\n\t\t\t\tif (wrapper.skip) continue;\r\n\r\n\t\t\t\tthis.nodes.unshift(wrapper);\r\n\r\n\t\t\t\tlink(last_child, last_child = wrapper);\r\n\t\t\t} else {\r\n\t\t\t\tconst Wrapper = wrappers[child.type];\r\n\t\t\t\tif (!Wrapper) continue;\r\n\r\n\t\t\t\tconst wrapper = new Wrapper(renderer, block, parent, child, strip_whitespace, last_child || next_sibling);\r\n\t\t\t\tthis.nodes.unshift(wrapper);\r\n\r\n\t\t\t\tlink(last_child, last_child = wrapper);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (strip_whitespace) {\r\n\t\t\tconst first = this.nodes[0] as Text;\r\n\r\n\t\t\tif (first && first.node.type === 'Text' && !first.node.keep_space()) {\r\n\t\t\t\tfirst.data = trim_start(first.data);\r\n\t\t\t\tif (!first.data) {\r\n\t\t\t\t\tfirst.var = null;\r\n\t\t\t\t\tthis.nodes.shift();\r\n\r\n\t\t\t\t\tif (this.nodes[0]) {\r\n\t\t\t\t\t\tthis.nodes[0].prev = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (window_wrapper) {\r\n\t\t\tthis.nodes.unshift(window_wrapper);\r\n\t\t\tlink(last_child, window_wrapper);\r\n\t\t}\r\n\t}\r\n\r\n\trender(block: Block, parent_node: Identifier, parent_nodes: Identifier) {\r\n\t\tfor (let i = 0; i < this.nodes.length; i += 1) {\r\n\t\t\tthis.nodes[i].render(block, parent_node, parent_nodes);\r\n\t\t}\r\n\t}\r\n}\r\n","import Block from './Block';\r\nimport { CompileOptions, Var } from '../../interfaces';\r\nimport Component from '../Component';\r\nimport FragmentWrapper from './wrappers/Fragment';\r\nimport { x } from 'code-red';\r\nimport { Node, Identifier, MemberExpression, Literal, Expression, BinaryExpression, UnaryExpression, ArrayExpression } from 'estree';\r\nimport flatten_reference from '../utils/flatten_reference';\r\nimport { reserved_keywords } from '../utils/reserved_keywords';\r\nimport { renderer_invalidate } from './invalidate';\r\n\r\ninterface ContextMember {\r\n\tname: string;\r\n\tindex: Literal;\r\n\tis_contextual: boolean;\r\n\tis_non_contextual: boolean;\r\n\tvariable: Var;\r\n\tpriority: number;\r\n}\r\n\r\ntype BitMasks = Array<{\r\n\tn: number;\r\n\tnames: string[];\r\n}>;\r\n\r\nexport default class Renderer {\r\n\tcomponent: Component; // TODO Maybe Renderer shouldn't know about Component?\r\n\toptions: CompileOptions;\r\n\r\n\tcontext: ContextMember[] = [];\r\n\tinitial_context: ContextMember[] = [];\r\n\tcontext_lookup: Map<string, ContextMember> = new Map();\r\n\tcontext_overflow: boolean;\r\n\tblocks: Array<Block | Node | Node[]> = [];\r\n\treadonly: Set<string> = new Set();\r\n\tmeta_bindings: Array<Node | Node[]> = []; // initial values for e.g. window.innerWidth, if there's a <svelte:window> meta tag\r\n\tbinding_groups: Map<string, { binding_group: (to_reference?: boolean) => Node; is_context: boolean; contexts: string[]; index: number; keypath: string }> = new Map();\r\n\r\n\tblock: Block;\r\n\tfragment: FragmentWrapper;\r\n\r\n\tfile_var: Identifier;\r\n\tlocate: (c: number) => { line: number; column: number };\r\n\r\n\tconstructor(component: Component, options: CompileOptions) {\r\n\t\tthis.component = component;\r\n\t\tthis.options = options;\r\n\t\tthis.locate = component.locate; // TODO messy\r\n\r\n\t\tthis.file_var = options.dev && this.component.get_unique_name('file');\r\n\r\n\t\tcomponent.vars.filter(v => !v.hoistable || (v.export_name && !v.module)).forEach(v => this.add_to_context(v.name));\r\n\r\n\t\t// ensure store values are included in context\r\n\t\tcomponent.vars.filter(v => v.subscribable).forEach(v => this.add_to_context(`$${v.name}`));\r\n\r\n\t\treserved_keywords.forEach(keyword => {\r\n\t\t\tif (component.var_lookup.has(keyword)) {\r\n\t\t\t\tthis.add_to_context(keyword);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (component.slots.size > 0) {\r\n\t\t\tthis.add_to_context('$$scope');\r\n\t\t\tthis.add_to_context('#slots');\r\n\t\t}\r\n\r\n\t\tif (this.binding_groups.size > 0) {\r\n\t\t\tthis.add_to_context('$$binding_groups');\r\n\t\t}\r\n\r\n\t\t// main block\r\n\t\tthis.block = new Block({\r\n\t\t\trenderer: this,\r\n\t\t\tname: null,\r\n\t\t\ttype: 'component',\r\n\t\t\tkey: null,\r\n\r\n\t\t\tbindings: new Map(),\r\n\r\n\t\t\tdependencies: new Set()\r\n\t\t});\r\n\r\n\t\tthis.block.has_update_method = true;\r\n\r\n\t\tthis.fragment = new FragmentWrapper(\r\n\t\t\tthis,\r\n\t\t\tthis.block,\r\n\t\t\tcomponent.fragment.children,\r\n\t\t\tnull,\r\n\t\t\ttrue,\r\n\t\t\tnull\r\n\t\t);\r\n\r\n\t\t// TODO messy\r\n\t\tthis.blocks.forEach(block => {\r\n\t\t\tif (block instanceof Block) {\r\n\t\t\t\tblock.assign_variable_names();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.block.assign_variable_names();\r\n\r\n\t\tthis.fragment.render(this.block, null, x`#nodes` as Identifier);\r\n\r\n\t\tthis.context_overflow = this.context.length > 31;\r\n\r\n\t\tthis.context.forEach(member => {\r\n\t\t\tconst { variable } = member;\r\n\t\t\tif (variable) {\r\n\t\t\t\tmember.priority += 2;\r\n\t\t\t\tif (variable.mutated || variable.reassigned) member.priority += 4;\r\n\r\n\t\t\t\t// these determine whether variable is included in initial context\r\n\t\t\t\t// array, so must have the highest priority\r\n\t\t\t\tif (variable.is_reactive_dependency && (variable.mutated || variable.reassigned)) member.priority += 16;\r\n\t\t\t\tif (variable.export_name) member.priority += 32;\r\n\t\t\t\tif (variable.referenced) member.priority += 64;\r\n\t\t\t} else if (member.is_non_contextual) {\r\n\t\t\t\t// determine whether variable is included in initial context\r\n\t\t\t\t// array, so must have the highest priority\r\n\t\t\t\tmember.priority += 8;\r\n\t\t\t}\r\n\r\n\t\t\tif (!member.is_contextual) {\r\n\t\t\t\tmember.priority += 1;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.context.sort((a, b) => (b.priority - a.priority) || ((a.index.value as number) - (b.index.value as number)));\r\n\t\tthis.context.forEach((member, i) => member.index.value = i);\r\n\r\n\t\tlet i = this.context.length;\r\n\t\twhile (i--) {\r\n\t\t\tconst member = this.context[i];\r\n\t\t\tif (member.variable) {\r\n\t\t\t\tif (member.variable.referenced || member.variable.export_name || (member.variable.is_reactive_dependency && (member.variable.mutated || member.variable.reassigned))) break;\r\n\t\t\t} else if (member.is_non_contextual) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.initial_context = this.context.slice(0, i + 1);\r\n\t}\r\n\r\n\tadd_to_context(name: string, contextual = false) {\r\n\t\tif (!this.context_lookup.has(name)) {\r\n\t\t\tconst member: ContextMember = {\r\n\t\t\t\tname,\r\n\t\t\t\tindex: { type: 'Literal', value: this.context.length }, // index is updated later, but set here to preserve order within groups\r\n\t\t\t\tis_contextual: false,\r\n\t\t\t\tis_non_contextual: false, // shadowed vars could be contextual and non-contextual\r\n\t\t\t\tvariable: null,\r\n\t\t\t\tpriority: 0\r\n\t\t\t};\r\n\r\n\t\t\tthis.context_lookup.set(name, member);\r\n\t\t\tthis.context.push(member);\r\n\t\t}\r\n\r\n\t\tconst member = this.context_lookup.get(name);\r\n\r\n\t\tif (contextual) {\r\n\t\t\tmember.is_contextual = true;\r\n\t\t} else {\r\n\t\t\tmember.is_non_contextual = true;\r\n\t\t\tmember.variable = this.component.var_lookup.get(name);\r\n\t\t}\r\n\r\n\t\treturn member;\r\n\t}\r\n\r\n\tinvalidate(name: string, value?, main_execution_context: boolean = false) {\r\n\t\treturn renderer_invalidate(this, name, value, main_execution_context);\r\n\t}\r\n\r\n\tdirty(names: string[], is_reactive_declaration = false): Expression {\r\n\t\tconst renderer = this;\r\n\r\n\t\tconst dirty = (is_reactive_declaration\r\n\t\t\t? x`$$self.$$.dirty`\r\n\t\t\t: x`#dirty`) as Identifier | MemberExpression;\r\n\r\n\t\tconst get_bitmask = () => {\r\n\t\t\tconst bitmask: BitMasks = [];\r\n\t\t\tnames.forEach((name) => {\r\n\t\t\t\tconst member = renderer.context_lookup.get(name);\r\n\r\n\t\t\t\tif (!member) return;\r\n\r\n\t\t\t\tif (member.index.value === -1) {\r\n\t\t\t\t\tthrow new Error('unset index');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst value = member.index.value as number;\r\n\t\t\t\tconst i = (value / 31) | 0;\r\n\t\t\t\tconst n = 1 << (value % 31);\r\n\r\n\t\t\t\tif (!bitmask[i]) bitmask[i] = { n: 0, names: [] };\r\n\r\n\t\t\t\tbitmask[i].n |= n;\r\n\t\t\t\tbitmask[i].names.push(name);\r\n\t\t\t});\r\n\t\t\treturn bitmask;\r\n\t\t};\r\n\r\n\t\t// TODO: context-overflow make it less gross\r\n\t\treturn {\r\n\t\t\t// Using a ParenthesizedExpression allows us to create\r\n\t\t\t// the expression lazily. TODO would be better if\r\n\t\t\t// context was determined before rendering, so that\r\n\t\t\t// this indirection was unnecessary\r\n\t\t\ttype: 'ParenthesizedExpression',\r\n\t\t\tget expression() {\r\n\t\t\t\tconst bitmask = get_bitmask();\r\n\r\n\t\t\t\tif (!bitmask.length) {\r\n\t\t\t\t\treturn x`${dirty} & /*${names.join(', ')}*/ 0` as BinaryExpression;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (renderer.context_overflow) {\r\n\t\t\t\t\treturn bitmask\r\n\t\t\t\t\t\t.map((b, i) => ({ b, i }))\r\n\t\t\t\t\t\t.filter(({ b }) => b)\r\n\t\t\t\t\t\t.map(({ b, i }) => x`${dirty}[${i}] & /*${b.names.join(', ')}*/ ${b.n}`)\r\n\t\t\t\t\t\t.reduce((lhs, rhs) => x`${lhs} | ${rhs}`);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn x`${dirty} & /*${names.join(', ')}*/ ${bitmask[0].n}` as BinaryExpression;\r\n\t\t\t}\r\n\t\t} as any;\r\n\t}\r\n\r\n\t// NOTE: this method may be called before this.context_overflow / this.context is fully defined\r\n\t// therefore, they can only be evaluated later in a getter function\r\n\tget_initial_dirty(): UnaryExpression | ArrayExpression {\r\n\t\tconst _this = this;\r\n\t\t// TODO: context-overflow make it less gross\r\n\t\tconst val: UnaryExpression = x`-1` as UnaryExpression;\r\n\t\treturn {\r\n\t\t\tget type() {\r\n\t\t\t\treturn _this.context_overflow ? 'ArrayExpression' : 'UnaryExpression';\r\n\t\t\t},\r\n\t\t\t// as [-1]\r\n\t\t\tget elements() {\r\n\t\t\t\tconst elements = [];\r\n\t\t\t\tfor (let i = 0; i < _this.context.length; i += 31) {\r\n\t\t\t\t\telements.push(val);\r\n\t\t\t\t}\r\n\t\t\t\treturn elements;\r\n\t\t\t},\r\n\t\t\t// as -1\r\n\t\t\toperator: val.operator,\r\n\t\t\tprefix: val.prefix,\r\n\t\t\targument: val.argument\r\n\t\t};\r\n\t}\r\n\r\n\treference(node: string | Identifier | MemberExpression, ctx: string | void = '#ctx') {\r\n\t\tif (typeof node === 'string') {\r\n\t\t\tnode = { type: 'Identifier', name: node };\r\n\t\t}\r\n\r\n\t\tconst { name, nodes } = flatten_reference(node);\r\n\t\tconst member = this.context_lookup.get(name);\r\n\r\n\t\t// TODO is this correct?\r\n\t\tif (this.component.var_lookup.get(name)) {\r\n\t\t\tthis.component.add_reference(node, name);\r\n\t\t}\r\n\r\n\t\tif (member !== undefined) {\r\n\t\t\tconst replacement = x`/*${member.name}*/ ${ctx}[${member.index}]` as MemberExpression;\r\n\r\n\t\t\tif (nodes[0].loc) replacement.object.loc = nodes[0].loc;\r\n\t\t\tnodes[0] = replacement;\r\n\r\n\t\t\treturn nodes.reduce((lhs, rhs) => x`${lhs}.${rhs}`);\r\n\t\t}\r\n\r\n\t\treturn node;\r\n\t}\r\n\r\n\tremove_block(block: Block | Node | Node[]) {\r\n\t\tthis.blocks.splice(this.blocks.indexOf(block), 1);\r\n\t}\r\n}\r\n","var charToInteger = {};\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nfor (var i = 0; i < chars.length; i++) {\n    charToInteger[chars.charCodeAt(i)] = i;\n}\nfunction decode(mappings) {\n    var decoded = [];\n    var line = [];\n    var segment = [\n        0,\n        0,\n        0,\n        0,\n        0,\n    ];\n    var j = 0;\n    for (var i = 0, shift = 0, value = 0; i < mappings.length; i++) {\n        var c = mappings.charCodeAt(i);\n        if (c === 44) { // \",\"\n            segmentify(line, segment, j);\n            j = 0;\n        }\n        else if (c === 59) { // \";\"\n            segmentify(line, segment, j);\n            j = 0;\n            decoded.push(line);\n            line = [];\n            segment[0] = 0;\n        }\n        else {\n            var integer = charToInteger[c];\n            if (integer === undefined) {\n                throw new Error('Invalid character (' + String.fromCharCode(c) + ')');\n            }\n            var hasContinuationBit = integer & 32;\n            integer &= 31;\n            value += integer << shift;\n            if (hasContinuationBit) {\n                shift += 5;\n            }\n            else {\n                var shouldNegate = value & 1;\n                value >>>= 1;\n                if (shouldNegate) {\n                    value = value === 0 ? -0x80000000 : -value;\n                }\n                segment[j] += value;\n                j++;\n                value = shift = 0; // reset\n            }\n        }\n    }\n    segmentify(line, segment, j);\n    decoded.push(line);\n    return decoded;\n}\nfunction segmentify(line, segment, j) {\n    // This looks ugly, but we're creating specialized arrays with a specific\n    // length. This is much faster than creating a new array (which v8 expands to\n    // a capacity of 17 after pushing the first item), or slicing out a subarray\n    // (which is slow). Length 4 is assumed to be the most frequent, followed by\n    // length 5 (since not everything will have an associated name), followed by\n    // length 1 (it's probably rare for a source substring to not have an\n    // associated segment data).\n    if (j === 4)\n        line.push([segment[0], segment[1], segment[2], segment[3]]);\n    else if (j === 5)\n        line.push([segment[0], segment[1], segment[2], segment[3], segment[4]]);\n    else if (j === 1)\n        line.push([segment[0]]);\n}\nfunction encode(decoded) {\n    var sourceFileIndex = 0; // second field\n    var sourceCodeLine = 0; // third field\n    var sourceCodeColumn = 0; // fourth field\n    var nameIndex = 0; // fifth field\n    var mappings = '';\n    for (var i = 0; i < decoded.length; i++) {\n        var line = decoded[i];\n        if (i > 0)\n            mappings += ';';\n        if (line.length === 0)\n            continue;\n        var generatedCodeColumn = 0; // first field\n        var lineMappings = [];\n        for (var _i = 0, line_1 = line; _i < line_1.length; _i++) {\n            var segment = line_1[_i];\n            var segmentMappings = encodeInteger(segment[0] - generatedCodeColumn);\n            generatedCodeColumn = segment[0];\n            if (segment.length > 1) {\n                segmentMappings +=\n                    encodeInteger(segment[1] - sourceFileIndex) +\n                        encodeInteger(segment[2] - sourceCodeLine) +\n                        encodeInteger(segment[3] - sourceCodeColumn);\n                sourceFileIndex = segment[1];\n                sourceCodeLine = segment[2];\n                sourceCodeColumn = segment[3];\n            }\n            if (segment.length === 5) {\n                segmentMappings += encodeInteger(segment[4] - nameIndex);\n                nameIndex = segment[4];\n            }\n            lineMappings.push(segmentMappings);\n        }\n        mappings += lineMappings.join(',');\n    }\n    return mappings;\n}\nfunction encodeInteger(num) {\n    var result = '';\n    num = num < 0 ? (-num << 1) | 1 : num << 1;\n    do {\n        var clamped = num & 31;\n        num >>>= 5;\n        if (num > 0) {\n            clamped |= 32;\n        }\n        result += chars[clamped];\n    } while (num > 0);\n    return result;\n}\n\n/**\n * Copyright 2019 The AMP HTML Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Creates a brand new (prototype-less) object with the enumerable-own\n * properties of `target`. Any enumerable-own properties from `source` which\n * are not present on `target` will be copied as well.\n */\nfunction defaults(target, source) {\n    return Object.assign(Object.create(null), source, target);\n}\n\n/**\n * Copyright 2019 The AMP HTML Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Decodes an input sourcemap into a `DecodedSourceMap` sourcemap object.\n *\n * Valid input maps include a `DecodedSourceMap`, a `RawSourceMap`, or JSON\n * representations of either type.\n */\nfunction decodeSourceMap(map) {\n    if (typeof map === 'string') {\n        map = JSON.parse(map);\n    }\n    let { mappings } = map;\n    if (typeof mappings === 'string') {\n        mappings = decode(mappings);\n    }\n    else {\n        // Clone the Line so that we can sort it. We don't want to mutate an array\n        // that we don't own directly.\n        mappings = mappings.map(cloneSegmentLine);\n    }\n    // Sort each Line's segments. There's no guarantee that segments are sorted for us,\n    // and even Chrome's implementation sorts:\n    // https://cs.chromium.org/chromium/src/third_party/devtools-frontend/src/front_end/sdk/SourceMap.js?l=507-508&rcl=109232bcf479c8f4ef8ead3cf56c49eb25f8c2f0\n    mappings.forEach(sortSegments);\n    return defaults({ mappings }, map);\n}\nfunction cloneSegmentLine(segments) {\n    return segments.slice();\n}\nfunction sortSegments(segments) {\n    segments.sort(segmentComparator);\n}\nfunction segmentComparator(a, b) {\n    return a[0] - b[0];\n}\n\n/**\n * Copyright 2019 The AMP HTML Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A \"leaf\" node in the sourcemap tree, representing an original, unmodified\n * source file. Recursive segment tracing ends at the `OriginalSource`.\n */\nclass OriginalSource {\n    constructor(filename, content) {\n        this.filename = filename;\n        this.content = content;\n    }\n    /**\n     * Tracing a `SourceMapSegment` ends when we get to an `OriginalSource`,\n     * meaning this line/column location originated from this source file.\n     */\n    traceSegment(line, column, name) {\n        return { column, line, name, source: this };\n    }\n}\n\n/* istanbul ignore next */\nconst Url = (typeof URL !== 'undefined' ? URL : require('url').URL);\n// Matches \"..\", which must be preceeded by \"/\" or the start of the string, and\n// must be followed by a \"/\". We do not eat the following \"/\", so that the next\n// iteration can match on it.\nconst parentRegex = /(^|\\/)\\.\\.(?=\\/|$)/g;\nfunction isAbsoluteUrl(url) {\n    try {\n        return !!new Url(url);\n    }\n    catch (e) {\n        return false;\n    }\n}\n/**\n * Creates a directory name that is guaranteed to not be in `str`.\n */\nfunction uniqInStr(str) {\n    let uniq = String(Math.random()).slice(2);\n    while (str.indexOf(uniq) > -1) {\n        /* istanbul ignore next */\n        uniq += uniq;\n    }\n    return uniq;\n}\n/**\n * Removes the filename from the path (everything trailing the last \"/\"). This\n * is only safe to call on a path, never call with an absolute or protocol\n * relative URL.\n */\nfunction stripPathFilename(path) {\n    path = normalizePath(path);\n    const index = path.lastIndexOf('/');\n    return path.slice(0, index + 1);\n}\n/**\n * Normalizes a protocol-relative URL, but keeps it protocol relative by\n * stripping out the protocl before returning it.\n */\nfunction normalizeProtocolRelative(input, absoluteBase) {\n    const { href, protocol } = new Url(input, absoluteBase);\n    return href.slice(protocol.length);\n}\n/**\n * Normalizes a simple path (one that has no \"..\"s, or is absolute so \"..\"s can\n * be normalized absolutely).\n */\nfunction normalizeSimplePath(input) {\n    const { href } = new Url(input, 'https://foo.com/');\n    return href.slice('https://foo.com/'.length);\n}\n/**\n * Normalizes a path, ensuring that excess \"..\"s are preserved for relative\n * paths in the output.\n *\n * If the input is absolute, this will return an absolutey normalized path, but\n * it will not have a leading \"/\".\n *\n * If the input has a leading \"..\", the output will have a leading \"..\".\n *\n * If the input has a leading \".\", the output will not have a leading \".\"\n * unless there are too many \"..\"s, in which case there will be a leading \"..\".\n */\nfunction normalizePath(input) {\n    // If there are no \"..\"s, we can treat this as if it were an absolute path.\n    // The return won't be an absolute path, so it's easy.\n    if (!parentRegex.test(input))\n        return normalizeSimplePath(input);\n    // We already found one \"..\". Let's see how many there are.\n    let total = 1;\n    while (parentRegex.test(input))\n        total++;\n    // If there are \"..\"s, we need to prefix the the path with the same number of\n    // unique directories. This is to ensure that we \"remember\" how many parent\n    // directories we are accessing. Eg, \"../../..\" must keep 3, and \"foo/../..\"\n    // must keep 1.\n    const uniqDirectory = `z${uniqInStr(input)}/`;\n    // uniqDirectory is just a \"z\", followed by numbers, followed by a \"/\". So\n    // generating a runtime regex from it is safe. We'll use this search regex to\n    // strip out our uniq directory names and insert any needed \"..\"s.\n    const search = new RegExp(`^(?:${uniqDirectory})*`);\n    // Now we can resolve the total path. If there are excess \"..\"s, they will\n    // eliminate one or more of the unique directories we prefix with.\n    const relative = normalizeSimplePath(uniqDirectory.repeat(total) + input);\n    // We can now count the number of unique directories that were eliminated. If\n    // there were 3, and 1 was eliminated, we know we only need to add 1 \"..\". If\n    // 2 were eliminated, we need to insert 2 \"..\"s. If all 3 were eliminated,\n    // then we need 3, etc. This replace is guranteed to match (it may match 0 or\n    // more times), and we can count the total match to see how many were eliminated.\n    return relative.replace(search, (all) => {\n        const leftover = all.length / uniqDirectory.length;\n        return '../'.repeat(total - leftover);\n    });\n}\n/**\n * Attempts to resolve `input` URL relative to `base`.\n */\nfunction resolve(input, base) {\n    if (!base)\n        base = '';\n    // Absolute URLs are very easy to resolve right.\n    if (isAbsoluteUrl(input))\n        return new Url(input).href;\n    if (base) {\n        // Absolute URLs are easy...\n        if (isAbsoluteUrl(base))\n            return new Url(input, base).href;\n        // If base is protocol relative, we'll resolve with it but keep the result\n        // protocol relative.\n        if (base.startsWith('//'))\n            return normalizeProtocolRelative(input, `https:${base}`);\n    }\n    // Normalize input, but keep it protocol relative. We know base doesn't supply\n    // a protocol, because that would have been handled above.\n    if (input.startsWith('//'))\n        return normalizeProtocolRelative(input, 'https://foo.com/');\n    // We now know that base (if there is one) and input are paths. We've handled\n    // both absolute and protocol-relative variations above.\n    // Absolute paths don't need any special handling, because they cannot have\n    // extra \".\" or \"..\"s. That'll all be stripped away. Input takes priority here,\n    // because if input is an absolute path, base path won't affect it in any way.\n    if (input.startsWith('/'))\n        return '/' + normalizeSimplePath(input);\n    // Since input and base are paths, we need to join them to do any further\n    // processing. Paths are joined at the directory level, so we need to remove\n    // the base's filename before joining. We also know that input does not have a\n    // leading slash, and that the stripped base will have a trailing slash if\n    // there are any directories (or it'll be empty).\n    const joined = stripPathFilename(base) + input;\n    // If base is an absolute path, then input will be relative to it.\n    if (base.startsWith('/'))\n        return '/' + normalizeSimplePath(joined);\n    // We now know both base (if there is one) and input are relative paths.\n    const relative = normalizePath(joined);\n    // If base started with a leading \".\", or there is no base and input started\n    // with a \".\", then we need to ensure that the relative path starts with a\n    // \".\". We don't know if relative starts with a \"..\", though, so check before\n    // prepending.\n    if ((base || input).startsWith('.') && !relative.startsWith('.')) {\n        return './' + relative;\n    }\n    return relative;\n}\n\n/**\n * Copyright 2019 The AMP HTML Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nfunction resolve$1(input, base) {\n    // The base is always treated as a directory, if it's not empty.\n    // https://github.com/mozilla/source-map/blob/8cb3ee57/lib/util.js#L327\n    // https://github.com/chromium/chromium/blob/da4adbb3/third_party/blink/renderer/devtools/front_end/sdk/SourceMap.js#L400-L401\n    if (base && !base.endsWith('/'))\n        base += '/';\n    return resolve(input, base);\n}\n\n/**\n * Copyright 2019 The AMP HTML Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A binary search implementation that returns the index if a match is found,\n * or the negated index of where the `needle` should be inserted.\n *\n * The `comparator` callback receives both the `item` under comparison and the\n * needle we are searching for. It must return `0` if the `item` is a match,\n * any negative number if `item` is too small (and we must search after it), or\n * any positive number if the `item` is too large (and we must search before\n * it).\n *\n * If no match is found, a negated index of where to insert the `needle` is\n * returned. This negated index is guaranteed to be less than 0. To insert an\n * item, negate it (again) and splice:\n *\n * ```js\n * const array = [1, 3];\n * const needle = 2;\n * const index = binarySearch(array, needle, (item, needle) => item - needle);\n *\n * assert.equal(index, -2);\n * assert.equal(~index, 1);\n * array.splice(~index, 0, needle);\n * assert.deepEqual(array, [1, 2, 3]);\n * ```\n */\nfunction binarySearch(haystack, needle, comparator) {\n    let low = 0;\n    let high = haystack.length - 1;\n    while (low <= high) {\n        const mid = low + ((high - low) >> 1);\n        const cmp = comparator(haystack[mid], needle);\n        if (cmp === 0) {\n            return mid;\n        }\n        if (cmp < 0) {\n            low = mid + 1;\n        }\n        else {\n            high = mid - 1;\n        }\n    }\n    return ~low;\n}\n\n/**\n * Copyright 2019 The AMP HTML Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * FastStringArray acts like a `Set` (allowing only one occurrence of a string\n * `key`), but provides the index of the `key` in the backing array.\n *\n * This is designed to allow synchronizing a second array with the contents of\n * the backing array, like how `sourcesContent[i]` is the source content\n * associated with `source[i]`, and there are never duplicates.\n */\nclass FastStringArray {\n    constructor() {\n        this.indexes = Object.create(null);\n        this.array = [];\n    }\n    /**\n     * Puts `key` into the backing array, if it is not already present. Returns\n     * the index of the `key` in the backing array.\n     */\n    put(key) {\n        const { array, indexes } = this;\n        // The key may or may not be present. If it is present, it's a number.\n        let index = indexes[key];\n        // If it's not yet present, we need to insert it and track the index in the\n        // indexes.\n        if (index === undefined) {\n            index = indexes[key] = array.length;\n            array.push(key);\n        }\n        return index;\n    }\n}\n\n/**\n * Copyright 2019 The AMP HTML Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * SourceMapTree represents a single sourcemap, with the ability to trace\n * mappings into its child nodes (which may themselves be SourceMapTrees).\n */\nclass SourceMapTree {\n    constructor(map, sources) {\n        this.map = map;\n        this.sources = sources;\n    }\n    /**\n     * traceMappings is only called on the root level SourceMapTree, and begins\n     * the process of resolving each mapping in terms of the original source\n     * files.\n     */\n    traceMappings() {\n        const mappings = [];\n        const names = new FastStringArray();\n        const sources = new FastStringArray();\n        const sourcesContent = [];\n        const { mappings: rootMappings, names: rootNames } = this.map;\n        for (let i = 0; i < rootMappings.length; i++) {\n            const segments = rootMappings[i];\n            const tracedSegments = [];\n            for (let j = 0; j < segments.length; j++) {\n                const segment = segments[j];\n                // 1-length segments only move the current generated column, there's no\n                // source information to gather from it.\n                if (segment.length === 1)\n                    continue;\n                const source = this.sources[segment[1]];\n                const traced = source.traceSegment(segment[2], segment[3], segment.length === 5 ? rootNames[segment[4]] : '');\n                if (!traced)\n                    continue;\n                // So we traced a segment down into its original source file. Now push a\n                // new segment pointing to this location.\n                const { column, line, name } = traced;\n                const { content, filename } = traced.source;\n                // Store the source location, and ensure we keep sourcesContent up to\n                // date with the sources array.\n                const sourceIndex = sources.put(filename);\n                sourcesContent[sourceIndex] = content;\n                // This looks like unnecessary duplication, but it noticeably increases\n                // performance. If we were to push the nameIndex onto length-4 array, v8\n                // would internally allocate 22 slots! That's 68 wasted bytes! Array\n                // literals have the same capacity as their length, saving memory.\n                if (name) {\n                    tracedSegments.push([segment[0], sourceIndex, line, column, names.put(name)]);\n                }\n                else {\n                    tracedSegments.push([segment[0], sourceIndex, line, column]);\n                }\n            }\n            mappings.push(tracedSegments);\n        }\n        // TODO: Make all sources relative to the sourceRoot.\n        return defaults({\n            mappings,\n            names: names.array,\n            sources: sources.array,\n            sourcesContent,\n        }, this.map);\n    }\n    /**\n     * traceSegment is only called on children SourceMapTrees. It recurses down\n     * into its own child SourceMapTrees, until we find the original source map.\n     */\n    traceSegment(line, column, name) {\n        const { mappings, names } = this.map;\n        // It's common for parent sourcemaps to have pointers to lines that have no\n        // mapping (like a \"//# sourceMappingURL=\") at the end of the child file.\n        if (line >= mappings.length)\n            return null;\n        const segments = mappings[line];\n        if (segments.length === 0)\n            return null;\n        let index = binarySearch(segments, column, segmentComparator$1);\n        if (index === -1)\n            return null; // we come before any mapped segment\n        // If we can't find a segment that lines up to this column, we use the\n        // segment before.\n        if (index < 0) {\n            index = ~index - 1;\n        }\n        const segment = segments[index];\n        // 1-length segments only move the current generated column, there's no\n        // source information to gather from it.\n        if (segment.length === 1)\n            return null;\n        const source = this.sources[segment[1]];\n        // So now we can recurse down, until we hit the original source file.\n        return source.traceSegment(segment[2], segment[3], \n        // A child map's recorded name for this segment takes precedence over the\n        // parent's mapped name. Imagine a mangler changing the name over, etc.\n        segment.length === 5 ? names[segment[4]] : name);\n    }\n}\nfunction segmentComparator$1(segment, column) {\n    return segment[0] - column;\n}\n\n/**\n * Copyright 2019 The AMP HTML Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Removes the filename from a path.\n */\nfunction stripFilename(path) {\n    if (!path)\n        return '';\n    const index = path.lastIndexOf('/');\n    return path.slice(0, index + 1);\n}\n\n/**\n * Copyright 2019 The AMP HTML Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nfunction asArray(value) {\n    if (Array.isArray(value))\n        return value;\n    return [value];\n}\n/**\n * Recursively builds a tree structure out of sourcemap files, with each node\n * being either an `OriginalSource` \"leaf\" or a `SourceMapTree` composed of\n * `OriginalSource`s and `SourceMapTree`s.\n *\n * Every sourcemap is composed of a collection of source files and mappings\n * into locations of those source files. When we generate a `SourceMapTree` for\n * the sourcemap, we attempt to load each source file's own sourcemap. If it\n * does not have an associated sourcemap, it is considered an original,\n * unmodified source file.\n */\nfunction buildSourceMapTree(input, loader, relativeRoot) {\n    const maps = asArray(input).map(decodeSourceMap);\n    const map = maps.pop();\n    for (let i = 0; i < maps.length; i++) {\n        if (maps[i].sources.length !== 1) {\n            throw new Error(`Transformation map ${i} must have exactly one source file.\\n` +\n                'Did you specify these with the most recent transformation maps first?');\n        }\n    }\n    const { sourceRoot, sources, sourcesContent } = map;\n    const children = sources.map((sourceFile, i) => {\n        // Each source file is loaded relative to the sourcemap's own sourceRoot,\n        // which is itself relative to the sourcemap's parent.\n        const uri = resolve$1(sourceFile || '', resolve$1(sourceRoot || '', stripFilename(relativeRoot)));\n        // Use the provided loader callback to retrieve the file's sourcemap.\n        // TODO: We should eventually support async loading of sourcemap files.\n        const sourceMap = loader(uri);\n        // If there is no sourcemap, then it is an unmodified source file.\n        if (!sourceMap) {\n            // The source file's actual contents must be included in the sourcemap\n            // (done when generating the sourcemap) for it to be included as a\n            // sourceContent in the output sourcemap.\n            const sourceContent = sourcesContent ? sourcesContent[i] : null;\n            return new OriginalSource(uri, sourceContent);\n        }\n        // Else, it's a real sourcemap, and we need to recurse into it to load its\n        // source files.\n        return buildSourceMapTree(decodeSourceMap(sourceMap), loader, uri);\n    });\n    let tree = new SourceMapTree(map, children);\n    for (let i = maps.length - 1; i >= 0; i--) {\n        tree = new SourceMapTree(maps[i], [tree]);\n    }\n    return tree;\n}\n\n/**\n * Copyright 2019 The AMP HTML Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A SourceMap v3 compatible sourcemap, which only includes fields that were\n * provided to it.\n */\nclass SourceMap {\n    constructor(map, excludeContent) {\n        this.version = 3; // SourceMap spec says this should be first.\n        if ('file' in map)\n            this.file = map.file;\n        this.mappings = encode(map.mappings);\n        this.names = map.names;\n        // TODO: We first need to make all source URIs relative to the sourceRoot\n        // before we can support a sourceRoot.\n        // if ('sourceRoot' in map) this.sourceRoot = map.sourceRoot;\n        this.sources = map.sources;\n        if (!excludeContent && 'sourcesContent' in map)\n            this.sourcesContent = map.sourcesContent;\n    }\n    toString() {\n        return JSON.stringify(this);\n    }\n}\n\n/**\n * Copyright 2019 The AMP HTML Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Traces through all the mappings in the root sourcemap, through the sources\n * (and their sourcemaps), all the way back to the original source location.\n *\n * `loader` will be called every time we encounter a source file. If it returns\n * a sourcemap, we will recurse into that sourcemap to continue the trace. If\n * it returns a falsey value, that source file is treated as an original,\n * unmodified source file.\n *\n * Pass `excludeContent` content to exclude any self-containing source file\n * content from the output sourcemap.\n */\nfunction remapping(input, loader, excludeContent) {\n    const graph = buildSourceMapTree(input, loader);\n    return new SourceMap(graph.traceMappings(), !!excludeContent);\n}\n\nexport default remapping;\n//# sourceMappingURL=remapping.mjs.map\n","import { DecodedSourceMap, RawSourceMap, SourceMapLoader } from '@ampproject/remapping/dist/types/types';\r\nimport remapping from '@ampproject/remapping';\r\nimport { SourceMap } from 'magic-string';\r\nimport { Source, Processed } from '../preprocess/types';\r\nimport { push_array } from './push_array';\r\n\r\nexport type SourceLocation = {\r\n\tline: number;\r\n\tcolumn: number;\r\n};\r\n\r\nfunction last_line_length(s: string) {\r\n\treturn s.length - s.lastIndexOf('\\n') - 1;\r\n}\r\n\r\n// mutate map in-place\r\nexport function sourcemap_add_offset(\r\n\tmap: DecodedSourceMap, offset: SourceLocation, source_index: number\r\n) {\r\n\tif (map.mappings.length == 0) return;\r\n\tfor (let line = 0; line < map.mappings.length; line++) {\r\n\t\tconst segment_list = map.mappings[line];\r\n\t\tfor (let segment = 0; segment < segment_list.length; segment++) {\r\n\t\t\tconst seg = segment_list[segment];\r\n\t\t\t// shift only segments that belong to component source file\r\n\t\t\tif (seg[1] === source_index) { // also ensures that seg.length >= 4\r\n\t\t\t\t// shift column if it points at the first line\r\n\t\t\t\tif (seg[2] === 0) {\r\n\t\t\t\t\tseg[3] += offset.column;\r\n\t\t\t\t}\r\n\t\t\t\t// shift line\r\n\t\t\t\tseg[2] += offset.line;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction merge_tables<T>(this_table: T[], other_table: T[]): [T[], number[], boolean, boolean] {\r\n\tconst new_table = this_table.slice();\r\n\tconst idx_map = [];\r\n\tother_table = other_table || [];\r\n\tlet val_changed = false;\r\n\tfor (const [other_idx, other_val] of other_table.entries()) {\r\n\t\tconst this_idx = this_table.indexOf(other_val);\r\n\t\tif (this_idx >= 0) {\r\n\t\t\tidx_map[other_idx] = this_idx;\r\n\t\t} else {\r\n\t\t\tconst new_idx = new_table.length;\r\n\t\t\tnew_table[new_idx] = other_val;\r\n\t\t\tidx_map[other_idx] = new_idx;\r\n\t\t\tval_changed = true;\r\n\t\t}\r\n\t}\r\n\tlet idx_changed = val_changed;\r\n\tif (val_changed) {\r\n\t\tif (idx_map.find((val, idx) => val != idx) === undefined) {\r\n\t\t\t// idx_map is identity map [0, 1, 2, 3, 4, ....]\r\n\t\t\tidx_changed = false;\r\n\t\t}\r\n\t}\r\n\treturn [new_table, idx_map, val_changed, idx_changed];\r\n}\r\n\r\nexport class MappedCode {\r\n\tstring: string;\r\n\tmap: DecodedSourceMap;\r\n\r\n\tconstructor(string = '', map: DecodedSourceMap = null) {\r\n\t\tthis.string = string;\r\n\t\tif (map) {\r\n\t\t\tthis.map = map as DecodedSourceMap;\r\n\t\t} else {\r\n\t\t\tthis.map = {\r\n\t\t\t\tversion: 3,\r\n\t\t\t\tmappings: [],\r\n\t\t\t\tsources: [],\r\n\t\t\t\tnames: []\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * concat in-place (mutable), return this (chainable)\r\n\t * will also mutate the `other` object\r\n\t */\r\n\tconcat(other: MappedCode): MappedCode {\r\n\t\t// noop: if one is empty, return the other\r\n\t\tif (other.string == '') return this;\r\n\t\tif (this.string == '') {\r\n\t\t\tthis.string = other.string;\r\n\t\t\tthis.map = other.map;\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\t// compute last line length before mutating\r\n\t\tconst column_offset = last_line_length(this.string);\r\n\r\n\t\tthis.string += other.string;\r\n\r\n\t\tconst m1 = this.map;\r\n\t\tconst m2 = other.map;\r\n\r\n\t\tif (m2.mappings.length == 0) return this;\r\n\r\n\t\t// combine sources and names\r\n\t\tconst [sources, new_source_idx, sources_changed, sources_idx_changed] = merge_tables(m1.sources, m2.sources);\r\n\t\tconst [names, new_name_idx, names_changed, names_idx_changed] = merge_tables(m1.names, m2.names);\r\n\r\n\t\tif (sources_changed) m1.sources = sources;\r\n\t\tif (names_changed) m1.names = names;\r\n\r\n\t\t// unswitched loops are faster\r\n\t\tif (sources_idx_changed && names_idx_changed) {\r\n\t\t\tfor (let line = 0; line < m2.mappings.length; line++) {\r\n\t\t\t\tconst segment_list = m2.mappings[line];\r\n\t\t\t\tfor (let segment = 0; segment < segment_list.length; segment++) {\r\n\t\t\t\t\tconst seg = segment_list[segment];\r\n\t\t\t\t\tif (seg[1] >= 0) seg[1] = new_source_idx[seg[1]];\r\n\t\t\t\t\tif (seg[4] >= 0) seg[4] = new_name_idx[seg[4]];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else if (sources_idx_changed) {\r\n\t\t\tfor (let line = 0; line < m2.mappings.length; line++) {\r\n\t\t\t\tconst segment_list = m2.mappings[line];\r\n\t\t\t\tfor (let segment = 0; segment < segment_list.length; segment++) {\r\n\t\t\t\t\tconst seg = segment_list[segment];\r\n\t\t\t\t\tif (seg[1] >= 0) seg[1] = new_source_idx[seg[1]];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else if (names_idx_changed) {\r\n\t\t\tfor (let line = 0; line < m2.mappings.length; line++) {\r\n\t\t\t\tconst segment_list = m2.mappings[line];\r\n\t\t\t\tfor (let segment = 0; segment < segment_list.length; segment++) {\r\n\t\t\t\t\tconst seg = segment_list[segment];\r\n\t\t\t\t\tif (seg[4] >= 0) seg[4] = new_name_idx[seg[4]];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// combine the mappings\r\n\r\n\t\t// combine\r\n\t\t// 1. last line of first map\r\n\t\t// 2. first line of second map\r\n\t\t// columns of 2 must be shifted\r\n\r\n\t\tif (m2.mappings.length > 0 && column_offset > 0) {\r\n\t\t\tconst first_line = m2.mappings[0];\r\n\t\t\tfor (let i = 0; i < first_line.length; i++) {\r\n\t\t\t\tfirst_line[i][0] += column_offset;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// combine last line + first line\r\n\t\tpush_array(m1.mappings[m1.mappings.length - 1], m2.mappings.shift());\r\n\r\n\t\t// append other lines\r\n\t\tpush_array(m1.mappings, m2.mappings);\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\tstatic from_processed(string: string, map?: DecodedSourceMap): MappedCode {\r\n\t\tconst line_count = string.split('\\n').length;\r\n\r\n\t\tif (map) {\r\n\t\t\t// ensure that count of source map mappings lines\r\n\t\t\t// is equal to count of generated code lines\r\n\t\t\t// (some tools may produce less)\r\n\t\t\tconst missing_lines = line_count - map.mappings.length;\r\n\t\t\tfor (let i = 0; i < missing_lines; i++) {\r\n\t\t\t\tmap.mappings.push([]);\r\n\t\t\t}\r\n\t\t\treturn new MappedCode(string, map);\r\n\t\t}\r\n\r\n\t\tif (string == '') return new MappedCode();\r\n\t\tmap = { version: 3, names: [], sources: [], mappings: [] };\r\n\r\n\t\t// add empty SourceMapSegment[] for every line\r\n\t\tfor (let i = 0; i < line_count; i++) map.mappings.push([]);\r\n\t\treturn new MappedCode(string, map);\r\n\t}\r\n\r\n\tstatic from_source({ source, file_basename, get_location }: Source): MappedCode {\r\n\t\tlet offset: SourceLocation = get_location(0);\r\n\r\n\t\tif (!offset) offset = { line: 0, column: 0 };\r\n\t\tconst map: DecodedSourceMap = { version: 3, names: [], sources: [file_basename], mappings: [] };\r\n\t\tif (source == '') return new MappedCode(source, map);\r\n\r\n\t\t// we create a high resolution identity map here,\r\n\t\t// we know that it will eventually be merged with svelte's map,\r\n\t\t// at which stage the resolution will decrease.\r\n\t\tconst line_list = source.split('\\n');\r\n\t\tfor (let line = 0; line < line_list.length; line++) {\r\n\t\t\tmap.mappings.push([]);\r\n\t\t\tconst token_list = line_list[line].split(/([^\\d\\w\\s]|\\s+)/g);\r\n\t\t\tfor (let token = 0, column = 0; token < token_list.length; token++) {\r\n\t\t\t\tif (token_list[token] == '') continue;\r\n\t\t\t\tmap.mappings[line].push([column, 0, offset.line + line, column]);\r\n\t\t\t\tcolumn += token_list[token].length;\r\n\t\t\t}\r\n\t\t}\r\n\t\t// shift columns in first line\r\n\t\tconst segment_list = map.mappings[0];\r\n\t\tfor (let segment = 0; segment < segment_list.length; segment++) {\r\n\t\t\tsegment_list[segment][3] += offset.column;\r\n\t\t}\r\n\t\treturn new MappedCode(source, map);\r\n\t}\r\n}\r\n\r\nexport function combine_sourcemaps(\r\n\tfilename: string,\r\n\tsourcemap_list: Array<DecodedSourceMap | RawSourceMap>\r\n): RawSourceMap {\r\n\tif (sourcemap_list.length == 0) return null;\r\n\r\n\tlet map_idx = 1;\r\n\tconst map: RawSourceMap =\r\n\t\tsourcemap_list.slice(0, -1)\r\n\t\t\t.find(m => m.sources.length !== 1) === undefined\r\n\r\n\t\t\t? remapping( // use array interface\r\n\t\t\t\t// only the oldest sourcemap can have multiple sources\r\n\t\t\t\tsourcemap_list,\r\n\t\t\t\t() => null,\r\n\t\t\t\ttrue // skip optional field `sourcesContent`\r\n\t\t\t)\r\n\r\n\t\t\t: remapping( // use loader interface\r\n\t\t\t\tsourcemap_list[0], // last map\r\n\t\t\t\tfunction loader(sourcefile) {\r\n\t\t\t\t\tif (sourcefile === filename && sourcemap_list[map_idx]) {\r\n\t\t\t\t\t\treturn sourcemap_list[map_idx++]; // idx 1, 2, ...\r\n\t\t\t\t\t\t// bundle file = branch node\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn null; // source file = leaf node\r\n\t\t\t\t\t}\r\n\t\t\t\t} as SourceMapLoader,\r\n\t\t\t\ttrue\r\n\t\t\t);\r\n\r\n\tif (!map.file) delete map.file; // skip optional field `file`\r\n\r\n\t// When source maps are combined and the leading map is empty, sources is not set.\r\n\t// Add the filename to the empty array in this case. \r\n\t// Further improvements to remapping may help address this as well https://github.com/ampproject/remapping/issues/116\r\n\tif (!map.sources.length) map.sources = [filename];\r\n\r\n\treturn map;\r\n}\r\n\r\n// browser vs node.js\r\nconst b64enc = typeof btoa == 'function' ? btoa : b => Buffer.from(b).toString('base64');\r\nconst b64dec = typeof atob == 'function' ? atob : a => Buffer.from(a, 'base64').toString();\r\n\r\nexport function apply_preprocessor_sourcemap(filename: string, svelte_map: SourceMap, preprocessor_map_input: string | DecodedSourceMap | RawSourceMap): SourceMap {\r\n\tif (!svelte_map || !preprocessor_map_input) return svelte_map;\r\n\r\n\tconst preprocessor_map = typeof preprocessor_map_input === 'string' ? JSON.parse(preprocessor_map_input) : preprocessor_map_input;\r\n\r\n\tconst result_map = combine_sourcemaps(\r\n\t\tfilename,\r\n\t\t[\r\n\t\t\tsvelte_map as RawSourceMap,\r\n\t\t\tpreprocessor_map\r\n\t\t]\r\n\t) as RawSourceMap;\r\n\r\n\t// Svelte expects a SourceMap which includes toUrl and toString. Instead of wrapping our output in a class,\r\n\t// we just tack on the extra properties.\r\n\tObject.defineProperties(result_map, {\r\n\t\ttoString: {\r\n\t\t\tenumerable: false,\r\n\t\t\tvalue: function toString() {\r\n\t\t\t\treturn JSON.stringify(this);\r\n\t\t\t}\r\n\t\t},\r\n\t\ttoUrl: {\r\n\t\t\tenumerable: false,\r\n\t\t\tvalue: function toUrl() {\r\n\t\t\t\treturn 'data:application/json;charset=utf-8;base64,' + b64enc(this.toString());\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\treturn result_map as SourceMap;\r\n}\r\n\r\n// parse attached sourcemap in processed.code\r\nexport function parse_attached_sourcemap(processed: Processed, tag_name: 'script' | 'style'): void {\r\n\tconst r_in = '[#@]\\\\s*sourceMappingURL\\\\s*=\\\\s*(\\\\S*)';\r\n\tconst regex = (tag_name == 'script')\r\n\t\t? new RegExp('(?://' + r_in + ')|(?:/\\\\*' + r_in + '\\\\s*\\\\*/)$')\r\n\t\t: new RegExp('/\\\\*' + r_in + '\\\\s*\\\\*/$');\r\n\tfunction log_warning(message) {\r\n\t\t// code_start: help to find preprocessor\r\n\t\tconst code_start = processed.code.length < 100 ? processed.code : (processed.code.slice(0, 100) + ' [...]');\r\n\t\tconsole.warn(`warning: ${message}. processed.code = ${JSON.stringify(code_start)}`);\r\n\t}\r\n\tprocessed.code = processed.code.replace(regex, (_, match1, match2) => {\r\n\t\tconst map_url = (tag_name == 'script') ? (match1 || match2) : match1;\r\n\t\tconst map_data = (map_url.match(/data:(?:application|text)\\/json;(?:charset[:=]\\S+?;)?base64,(\\S*)/) || [])[1];\r\n\t\tif (map_data) {\r\n\t\t\t// sourceMappingURL is data URL\r\n\t\t\tif (processed.map) {\r\n\t\t\t\tlog_warning('Not implemented. ' +\r\n\t\t\t\t\t'Found sourcemap in both processed.code and processed.map. ' +\r\n\t\t\t\t\t'Please update your preprocessor to return only one sourcemap.');\r\n\t\t\t\t// ignore attached sourcemap\r\n\t\t\t\treturn '';\r\n\t\t\t}\r\n\t\t\tprocessed.map = b64dec(map_data); // use attached sourcemap\r\n\t\t\treturn ''; // remove from processed.code\r\n\t\t}\r\n\t\t// sourceMappingURL is path or URL\r\n\t\tif (!processed.map) {\r\n\t\t\tlog_warning(`Found sourcemap path ${JSON.stringify(map_url)} in processed.code, but no sourcemap data. ` +\r\n\t\t\t\t'Please update your preprocessor to return sourcemap data directly.');\r\n\t\t}\r\n\t\t// ignore sourcemap path\r\n\t\treturn ''; // remove from processed.code\r\n\t});\r\n}\r\n","import { EnableSourcemap } from '../../interfaces';\r\n\r\nexport default function check_enable_sourcemap(\r\n  enable_sourcemap: EnableSourcemap,\r\n  namespace: keyof Extract<EnableSourcemap, object>\r\n) {\r\n  return typeof enable_sourcemap === 'boolean'\r\n    ? enable_sourcemap\r\n    : enable_sourcemap[namespace];\r\n}\r\n","import { b, x, p } from 'code-red';\r\nimport Component from '../Component';\r\nimport Renderer from './Renderer';\r\nimport { CompileOptions, CssResult } from '../../interfaces';\r\nimport { walk } from 'estree-walker';\r\nimport { extract_names, Scope } from 'periscopic';\r\nimport { invalidate } from './invalidate';\r\nimport Block from './Block';\r\nimport { ImportDeclaration, ClassDeclaration, FunctionExpression, Node, Statement, ObjectExpression, Expression } from 'estree';\r\nimport { apply_preprocessor_sourcemap } from '../../utils/mapped_code';\r\nimport { RawSourceMap, DecodedSourceMap } from '@ampproject/remapping/dist/types/types';\r\nimport { flatten } from '../../utils/flatten';\r\nimport check_enable_sourcemap from '../utils/check_enable_sourcemap';\r\nimport { push_array } from '../../utils/push_array';\r\n\r\nexport default function dom(\r\n\tcomponent: Component,\r\n\toptions: CompileOptions\r\n): { js: Node[]; css: CssResult } {\r\n\tconst { name } = component;\r\n\r\n\tconst renderer = new Renderer(component, options);\r\n\tconst { block } = renderer;\r\n\r\n\tblock.has_outro_method = true;\r\n\r\n\t// prevent fragment being created twice (#1063)\r\n\tif (options.customElement) block.chunks.create.push(b`this.c = @noop;`);\r\n\r\n\tconst body = [];\r\n\r\n\tif (renderer.file_var) {\r\n\t\tconst file = component.file ? x`\"${component.file}\"` : x`undefined`;\r\n\t\tbody.push(b`const ${renderer.file_var} = ${file};`);\r\n\t}\r\n\r\n\tconst css = component.stylesheet.render(options.filename, !options.customElement);\r\n\r\n\tconst css_sourcemap_enabled = check_enable_sourcemap(options.enableSourcemap, 'css');\r\n\r\n\tif (css_sourcemap_enabled) {\r\n\t\tcss.map = apply_preprocessor_sourcemap(options.filename, css.map, options.sourcemap as string | RawSourceMap | DecodedSourceMap);\r\n\t} else {\r\n\t\tcss.map = null;\r\n\t}\r\n\r\n\tconst styles = css_sourcemap_enabled && component.stylesheet.has_styles && options.dev\r\n\t\t? `${css.code}\\n/*# sourceMappingURL=${css.map.toUrl()} */`\r\n\t\t: css.code;\r\n\r\n\tconst add_css = component.get_unique_name('add_css');\r\n\r\n\tconst should_add_css = (\r\n\t\t!options.customElement &&\r\n\t\t!!styles &&\r\n\t\toptions.css !== false\r\n\t);\r\n\r\n\tif (should_add_css) {\r\n\t\tbody.push(b`\r\n\t\t\tfunction ${add_css}(target) {\r\n\t\t\t\t@append_styles(target, \"${component.stylesheet.id}\", \"${styles}\");\r\n\t\t\t}\r\n\t\t`);\r\n\t}\r\n\r\n\t// fix order\r\n\t// TODO the deconflicted names of blocks are reversed... should set them here\r\n\tconst blocks = renderer.blocks.slice().reverse();\r\n\r\n\tpush_array(body, blocks.map(block => {\r\n\t\t// TODO this is a horrible mess — renderer.blocks\r\n\t\t// contains a mixture of Blocks and Nodes\r\n\t\tif ((block as Block).render) return (block as Block).render();\r\n\t\treturn block;\r\n\t}));\r\n\r\n\tif (options.dev && !options.hydratable) {\r\n\t\tblock.chunks.claim.push(\r\n\t\t\tb`throw new @_Error(\"options.hydrate only works if the component was compiled with the \\`hydratable: true\\` option\");`\r\n\t\t);\r\n\t}\r\n\r\n\tconst uses_slots = component.var_lookup.has('$$slots');\r\n\tlet compute_slots;\r\n\tif (uses_slots) {\r\n\t\tcompute_slots = b`\r\n\t\t\tconst $$slots = @compute_slots(#slots);\r\n\t\t`;\r\n\t}\r\n\r\n\r\n\tconst uses_props = component.var_lookup.has('$$props');\r\n\tconst uses_rest = component.var_lookup.has('$$restProps');\r\n\tconst $$props = uses_props || uses_rest ? '$$new_props' : '$$props';\r\n\tconst props = component.vars.filter(variable => !variable.module && variable.export_name);\r\n\tconst writable_props = props.filter(variable => variable.writable);\r\n\r\n\tconst omit_props_names = component.get_unique_name('omit_props_names');\r\n\tconst compute_rest = x`@compute_rest_props($$props, ${omit_props_names.name})`;\r\n\tconst rest = uses_rest ? b`\r\n\t\tconst ${omit_props_names.name} = [${props.map(prop => `\"${prop.export_name}\"`).join(',')}];\r\n\t\tlet $$restProps = ${compute_rest};\r\n\t` : null;\r\n\r\n\tconst set = (uses_props || uses_rest || writable_props.length > 0 || component.slots.size > 0)\r\n\t\t? x`\r\n\t\t\t${$$props} => {\r\n\t\t\t\t${uses_props && renderer.invalidate('$$props', x`$$props = @assign(@assign({}, $$props), @exclude_internal_props($$new_props))`)}\r\n\t\t\t\t${uses_rest && !uses_props && x`$$props = @assign(@assign({}, $$props), @exclude_internal_props($$new_props))`}\r\n\t\t\t\t${uses_rest && renderer.invalidate('$$restProps', x`$$restProps = ${compute_rest}`)}\r\n\t\t\t\t${writable_props.map(prop =>\r\n\t\t\t\t\tb`if ('${prop.export_name}' in ${$$props}) ${renderer.invalidate(prop.name, x`${prop.name} = ${$$props}.${prop.export_name}`)};`\r\n\t\t\t\t)}\r\n\t\t\t\t${component.slots.size > 0 &&\r\n\t\t\t\tb`if ('$$scope' in ${$$props}) ${renderer.invalidate('$$scope', x`$$scope = ${$$props}.$$scope`)};`}\r\n\t\t\t}\r\n\t\t`\r\n\t\t: null;\r\n\r\n\tconst accessors = [];\r\n\r\n\tconst not_equal = component.component_options.immutable ? x`@not_equal` : x`@safe_not_equal`;\r\n\tlet dev_props_check: Node[] | Node;\r\n\tlet inject_state: Expression;\r\n\tlet capture_state: Expression;\r\n\tlet props_inject: Node[] | Node;\r\n\r\n\tprops.forEach(prop => {\r\n\t\tconst variable = component.var_lookup.get(prop.name);\r\n\r\n\t\tif (!variable.writable || component.component_options.accessors) {\r\n\t\t\taccessors.push({\r\n\t\t\t\ttype: 'MethodDefinition',\r\n\t\t\t\tkind: 'get',\r\n\t\t\t\tkey: { type: 'Identifier', name: prop.export_name },\r\n\t\t\t\tvalue: x`function() {\r\n\t\t\t\t\treturn ${prop.hoistable ? prop.name : x`this.$$.ctx[${renderer.context_lookup.get(prop.name).index}]`}\r\n\t\t\t\t}`\r\n\t\t\t});\r\n\t\t} else if (component.compile_options.dev) {\r\n\t\t\taccessors.push({\r\n\t\t\t\ttype: 'MethodDefinition',\r\n\t\t\t\tkind: 'get',\r\n\t\t\t\tkey: { type: 'Identifier', name: prop.export_name },\r\n\t\t\t\tvalue: x`function() {\r\n\t\t\t\t\tthrow new @_Error(\"<${component.tag}>: Props cannot be read directly from the component instance unless compiling with 'accessors: true' or '<svelte:options accessors/>'\");\r\n\t\t\t\t}`\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (component.component_options.accessors) {\r\n\t\t\tif (variable.writable && !renderer.readonly.has(prop.name)) {\r\n\t\t\t\taccessors.push({\r\n\t\t\t\t\ttype: 'MethodDefinition',\r\n\t\t\t\t\tkind: 'set',\r\n\t\t\t\t\tkey: { type: 'Identifier', name: prop.export_name },\r\n\t\t\t\t\tvalue: x`function(${prop.name}) {\r\n\t\t\t\t\t\tthis.$$set({ ${prop.export_name}: ${prop.name} });\r\n\t\t\t\t\t\t@flush();\r\n\t\t\t\t\t}`\r\n\t\t\t\t});\r\n\t\t\t} else if (component.compile_options.dev) {\r\n\t\t\t\taccessors.push({\r\n\t\t\t\t\ttype: 'MethodDefinition',\r\n\t\t\t\t\tkind: 'set',\r\n\t\t\t\t\tkey: { type: 'Identifier', name: prop.export_name },\r\n\t\t\t\t\tvalue: x`function(value) {\r\n\t\t\t\t\t\tthrow new @_Error(\"<${component.tag}>: Cannot set read-only property '${prop.export_name}'\");\r\n\t\t\t\t\t}`\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t} else if (component.compile_options.dev) {\r\n\t\t\taccessors.push({\r\n\t\t\t\ttype: 'MethodDefinition',\r\n\t\t\t\tkind: 'set',\r\n\t\t\t\tkey: { type: 'Identifier', name: prop.export_name },\r\n\t\t\t\tvalue: x`function(value) {\r\n\t\t\t\t\tthrow new @_Error(\"<${component.tag}>: Props cannot be set directly on the component instance unless compiling with 'accessors: true' or '<svelte:options accessors/>'\");\r\n\t\t\t\t}`\r\n\t\t\t});\r\n\t\t}\r\n\t});\r\n\r\n\tcomponent.instance_exports_from.forEach(exports_from => {\r\n\t\tconst import_declaration = {\r\n\t\t\t...exports_from,\r\n\t\t\ttype: 'ImportDeclaration',\r\n\t\t\tspecifiers: [],\r\n\t\t\tsource: exports_from.source\r\n\t\t};\r\n\t\tcomponent.imports.push(import_declaration as ImportDeclaration);\r\n\r\n\t\texports_from.specifiers.forEach(specifier => {\r\n\t\t\tif (component.component_options.accessors) {\r\n\t\t\t\tconst name = component.get_unique_name(specifier.exported.name);\r\n\t\t\t\timport_declaration.specifiers.push({\r\n\t\t\t\t\t...specifier,\r\n\t\t\t\t\ttype: 'ImportSpecifier',\r\n\t\t\t\t\timported: specifier.local,\r\n\t\t\t\t\tlocal: name\r\n\t\t\t\t});\r\n\r\n\t\t\t\taccessors.push({\r\n\t\t\t\t\ttype: 'MethodDefinition',\r\n\t\t\t\t\tkind: 'get',\r\n\t\t\t\t\tkey: { type: 'Identifier', name: specifier.exported.name },\r\n\t\t\t\t\tvalue: x`function() {\r\n\t\t\t\t\t\treturn ${name}\r\n\t\t\t\t\t}`\r\n\t\t\t\t});\r\n\t\t\t} else if (component.compile_options.dev) {\r\n\t\t\t\taccessors.push({\r\n\t\t\t\t\ttype: 'MethodDefinition',\r\n\t\t\t\t\tkind: 'get',\r\n\t\t\t\t\tkey: { type: 'Identifier', name: specifier.exported.name },\r\n\t\t\t\t\tvalue: x`function() {\r\n\t\t\t\t\t\tthrow new @_Error(\"<${component.tag}>: Props cannot be read directly from the component instance unless compiling with 'accessors: true' or '<svelte:options accessors/>'\");\r\n\t\t\t\t\t}`\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n\r\n\tif (component.compile_options.dev) {\r\n\t\t// checking that expected ones were passed\r\n\t\tconst expected = props.filter(prop => prop.writable && !prop.initialised);\r\n\r\n\t\tif (expected.length) {\r\n\t\t\tdev_props_check = b`\r\n\t\t\t\tconst { ctx: #ctx } = this.$$;\r\n\t\t\t\tconst props = ${options.customElement ? x`this.attributes` : x`options.props || {}`};\r\n\t\t\t\t${expected.map(prop => b`\r\n\t\t\t\tif (${renderer.reference(prop.name)} === undefined && !('${prop.export_name}' in props)) {\r\n\t\t\t\t\t@_console.warn(\"<${component.tag}> was created without expected prop '${prop.export_name}'\");\r\n\t\t\t\t}`)}\r\n\t\t\t`;\r\n\t\t}\r\n\r\n\t\tconst capturable_vars = component.vars.filter(v => !v.internal && !v.global && !v.name.startsWith('$$'));\r\n\r\n\t\tif (capturable_vars.length > 0) {\r\n\t\t\tcapture_state = x`() => ({ ${capturable_vars.map(prop => p`${prop.name}`)} })`;\r\n\t\t}\r\n\r\n\t\tconst injectable_vars = capturable_vars.filter(v => !v.module && v.writable && v.name[0] !== '$');\r\n\r\n\t\tif (uses_props || injectable_vars.length > 0) {\r\n\t\t\tinject_state = x`\r\n\t\t\t\t${$$props} => {\r\n\t\t\t\t\t${uses_props && renderer.invalidate('$$props', x`$$props = @assign(@assign({}, $$props), $$new_props)`)}\r\n\t\t\t\t\t${injectable_vars.map(\r\n\t\t\t\t\t\tv => b`if ('${v.name}' in $$props) ${renderer.invalidate(v.name, x`${v.name} = ${$$props}.${v.name}`)};`\r\n\t\t\t\t\t)}\r\n\t\t\t\t}\r\n\t\t\t`;\r\n\r\n\t\t\tprops_inject = b`\r\n\t\t\t\tif ($$props && \"$$inject\" in $$props) {\r\n\t\t\t\t\t$$self.$inject_state($$props.$$inject);\r\n\t\t\t\t}\r\n\t\t\t`;\r\n\t\t}\r\n\t}\r\n\r\n\t// instrument assignments\r\n\tif (component.ast.instance) {\r\n\t\tlet scope = component.instance_scope;\r\n\t\tconst map = component.instance_scope_map;\r\n\t\tlet execution_context: Node | null = null;\r\n\r\n\t\twalk(component.ast.instance.content, {\r\n\t\t\tenter(node: Node) {\r\n\t\t\t\tif (map.has(node)) {\r\n\t\t\t\t\tscope = map.get(node) as Scope;\r\n\r\n\t\t\t\t\tif (!execution_context && !scope.block) {\r\n\t\t\t\t\t\texecution_context = node;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (!execution_context && node.type === 'LabeledStatement' && node.label.name === '$') {\r\n\t\t\t\t\texecution_context = node;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\tleave(node: Node) {\r\n\t\t\t\tif (map.has(node)) {\r\n\t\t\t\t\tscope = scope.parent;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (execution_context === node) {\r\n\t\t\t\t\texecution_context = null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (node.type === 'AssignmentExpression' || node.type === 'UpdateExpression') {\r\n\t\t\t\t\tconst assignee = node.type === 'AssignmentExpression' ? node.left : node.argument;\r\n\r\n\t\t\t\t\t// normally (`a = 1`, `b.c = 2`), there'll be a single name\r\n\t\t\t\t\t// (a or b). In destructuring cases (`[d, e] = [e, d]`) there\r\n\t\t\t\t\t// may be more, in which case we need to tack the extra ones\r\n\t\t\t\t\t// onto the initial function call\r\n\t\t\t\t\tconst names = new Set(extract_names(assignee as Node));\r\n\r\n\t\t\t\t\tthis.replace(invalidate(renderer, scope, node, names, execution_context === null));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tcomponent.rewrite_props(({ name, reassigned, export_name }) => {\r\n\t\t\tconst value = `$${name}`;\r\n\t\t\tconst i = renderer.context_lookup.get(`$${name}`).index;\r\n\r\n\t\t\tconst insert = (reassigned || export_name)\r\n\t\t\t\t? b`${`$$subscribe_${name}`}()`\r\n\t\t\t\t: b`@component_subscribe($$self, ${name}, #value => $$invalidate(${i}, ${value} = #value))`;\r\n\r\n\t\t\tif (component.compile_options.dev) {\r\n\t\t\t\treturn b`@validate_store(${name}, '${name}'); ${insert}`;\r\n\t\t\t}\r\n\r\n\t\t\treturn insert;\r\n\t\t});\r\n\t}\r\n\r\n\tconst args = [x`$$self`];\r\n\tconst has_invalidate = props.length > 0 ||\r\n\t\tcomponent.has_reactive_assignments ||\r\n\t\tcomponent.slots.size > 0 ||\r\n\t\tcapture_state ||\r\n\t\tinject_state;\r\n\tif (has_invalidate) {\r\n\t\targs.push(x`$$props`, x`$$invalidate`);\r\n\t} else if (component.compile_options.dev) {\r\n\t\t// $$props arg is still needed for unknown prop check\r\n\t\targs.push(x`$$props`);\r\n\t}\r\n\t// has_create_fragment is intentionally to be true in dev mode.\r\n\tconst has_create_fragment = component.compile_options.dev || block.has_content();\r\n\tif (has_create_fragment) {\r\n\t\tbody.push(b`\r\n\t\t\tfunction create_fragment(#ctx) {\r\n\t\t\t\t${block.get_contents()}\r\n\t\t\t}\r\n\t\t`);\r\n\t}\r\n\r\n\tbody.push(b`\r\n\t\t${component.extract_javascript(component.ast.module)}\r\n\r\n\t\t${component.fully_hoisted}\r\n\t`);\r\n\r\n\tconst filtered_props = props.filter(prop => {\r\n\t\tconst variable = component.var_lookup.get(prop.name);\r\n\r\n\t\tif (variable.hoistable) return false;\r\n\t\treturn prop.name[0] !== '$';\r\n\t});\r\n\r\n\tconst reactive_stores = component.vars.filter(variable => variable.name[0] === '$' && variable.name[1] !== '$');\r\n\r\n\tconst instance_javascript = component.extract_javascript(component.ast.instance);\r\n\r\n\tconst has_definition = (\r\n\t\tcomponent.compile_options.dev ||\r\n\t\t(instance_javascript && instance_javascript.length > 0) ||\r\n\t\tfiltered_props.length > 0 ||\r\n\t\tuses_props ||\r\n\t\tcomponent.partly_hoisted.length > 0 ||\r\n\t\trenderer.initial_context.length > 0 ||\r\n\t\tcomponent.reactive_declarations.length > 0 ||\r\n\t\tcapture_state ||\r\n\t\tinject_state\r\n\t);\r\n\r\n\tconst definition = has_definition\r\n\t\t? component.alias('instance')\r\n\t\t: { type: 'Literal', value: null };\r\n\r\n\tconst reactive_store_subscriptions = reactive_stores\r\n\t\t.filter(store => {\r\n\t\t\tconst variable = component.var_lookup.get(store.name.slice(1));\r\n\t\t\treturn !variable || variable.hoistable;\r\n\t\t})\r\n\t\t.map(({ name }) => b`\r\n\t\t\t${component.compile_options.dev && b`@validate_store(${name.slice(1)}, '${name.slice(1)}');`}\r\n\t\t\t@component_subscribe($$self, ${name.slice(1)}, $$value => $$invalidate(${renderer.context_lookup.get(name).index}, ${name} = $$value));\r\n\t\t`);\r\n\r\n\tconst resubscribable_reactive_store_unsubscribers = reactive_stores\r\n\t\t.filter(store => {\r\n\t\t\tconst variable = component.var_lookup.get(store.name.slice(1));\r\n\t\t\treturn variable && (variable.reassigned || variable.export_name);\r\n\t\t})\r\n\t\t.map(({ name }) => b`$$self.$$.on_destroy.push(() => ${`$$unsubscribe_${name.slice(1)}`}());`);\r\n\r\n\tif (has_definition) {\r\n\t\tconst reactive_declarations: (Node | Node[]) = [];\r\n\t\tconst fixed_reactive_declarations = []; // not really 'reactive' but whatever\r\n\r\n\t\tcomponent.reactive_declarations.forEach(d => {\r\n\t\t\tconst dependencies = Array.from(d.dependencies);\r\n\t\t\tconst uses_rest_or_props = !!dependencies.find(n => n === '$$props' || n === '$$restProps');\r\n\r\n\t\t\tconst writable = dependencies.filter(n => {\r\n\t\t\t\tconst variable = component.var_lookup.get(n);\r\n\t\t\t\treturn variable && (variable.export_name || variable.mutated || variable.reassigned);\r\n\t\t\t});\r\n\r\n\t\t\tconst condition = !uses_rest_or_props && writable.length > 0 && renderer.dirty(writable, true);\r\n\r\n\t\t\tlet statement = d.node; // TODO remove label (use d.node.body) if it's not referenced\r\n\r\n\t\t\tif (condition) statement = b`if (${condition}) { ${statement} }`[0] as Statement;\r\n\r\n\t\t\tif (condition || uses_rest_or_props) {\r\n\t\t\t\treactive_declarations.push(statement);\r\n\t\t\t} else {\r\n\t\t\t\tfixed_reactive_declarations.push(statement);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tconst injected = Array.from(component.injected_reactive_declaration_vars).filter(name => {\r\n\t\t\tconst variable = component.var_lookup.get(name);\r\n\t\t\treturn variable.injected && variable.name[0] !== '$';\r\n\t\t});\r\n\r\n\t\tconst reactive_store_declarations = reactive_stores.map(variable => {\r\n\t\t\tconst $name = variable.name;\r\n\t\t\tconst name = $name.slice(1);\r\n\r\n\t\t\tconst store = component.var_lookup.get(name);\r\n\t\t\tif (store && (store.reassigned || store.export_name)) {\r\n\t\t\t\tconst unsubscribe = `$$unsubscribe_${name}`;\r\n\t\t\t\tconst subscribe = `$$subscribe_${name}`;\r\n\t\t\t\tconst i = renderer.context_lookup.get($name).index;\r\n\r\n\t\t\t\treturn b`let ${$name}, ${unsubscribe} = @noop, ${subscribe} = () => (${unsubscribe}(), ${unsubscribe} = @subscribe(${name}, $$value => $$invalidate(${i}, ${$name} = $$value)), ${name})`;\r\n\t\t\t}\r\n\r\n\t\t\treturn b`let ${$name};`;\r\n\t\t});\r\n\r\n\t\tlet unknown_props_check;\r\n\t\tif (component.compile_options.dev && !(uses_props || uses_rest)) {\r\n\t\t\tunknown_props_check = b`\r\n\t\t\t\tconst writable_props = [${writable_props.map(prop => x`'${prop.export_name}'`)}];\r\n\t\t\t\t@_Object.keys($$props).forEach(key => {\r\n\t\t\t\t\tif (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') @_console.warn(\\`<${component.tag}> was created with unknown prop '\\${key}'\\`);\r\n\t\t\t\t});\r\n\t\t\t`;\r\n\t\t}\r\n\r\n\t\tconst return_value = {\r\n\t\t\ttype: 'ArrayExpression',\r\n\t\t\telements: renderer.initial_context.map(member => ({\r\n\t\t\t\ttype: 'Identifier',\r\n\t\t\t\tname: member.name\r\n\t\t\t}) as Expression)\r\n\t\t};\r\n\r\n\t\tbody.push(b`\r\n\t\t\tfunction ${definition}(${args}) {\r\n\t\t\t\t${injected.map(name => b`let ${name};`)}\r\n\r\n\t\t\t\t${rest}\r\n\r\n\t\t\t\t${reactive_store_declarations}\r\n\r\n\t\t\t\t${reactive_store_subscriptions}\r\n\r\n\t\t\t\t${resubscribable_reactive_store_unsubscribers}\r\n\r\n\t\t\t\t${component.slots.size || component.compile_options.dev || uses_slots ? b`let { $$slots: #slots = {}, $$scope } = $$props;` : null}\r\n\t\t\t\t${component.compile_options.dev && b`@validate_slots('${component.tag}', #slots, [${[...component.slots.keys()].map(key => `'${key}'`).join(',')}]);`}\r\n\t\t\t\t${compute_slots}\r\n\r\n\t\t\t\t${instance_javascript}\r\n\r\n\t\t\t\t${unknown_props_check}\r\n\r\n\t\t\t\t${renderer.binding_groups.size > 0 && b`const $$binding_groups = [${[...renderer.binding_groups.keys()].map(_ => x`[]`)}];`}\r\n\r\n\t\t\t\t${component.partly_hoisted}\r\n\r\n\t\t\t\t${set && b`$$self.$$set = ${set};`}\r\n\r\n\t\t\t\t${capture_state && b`$$self.$capture_state = ${capture_state};`}\r\n\r\n\t\t\t\t${inject_state && b`$$self.$inject_state = ${inject_state};`}\r\n\r\n\t\t\t\t${/* before reactive declarations */ props_inject}\r\n\r\n\t\t\t\t${reactive_declarations.length > 0 && b`\r\n\t\t\t\t$$self.$$.update = () => {\r\n\t\t\t\t\t${reactive_declarations}\r\n\t\t\t\t};\r\n\t\t\t\t`}\r\n\r\n\t\t\t\t${fixed_reactive_declarations}\r\n\r\n\t\t\t\t${uses_props && b`$$props = @exclude_internal_props($$props);`}\r\n\r\n\t\t\t\treturn ${return_value};\r\n\t\t\t}\r\n\t\t`);\r\n\t}\r\n\r\n\tconst prop_indexes = x`{\r\n\t\t${props.filter(v => v.export_name && !v.module).map(v => p`${v.export_name}: ${renderer.context_lookup.get(v.name).index}`)}\r\n\t}` as ObjectExpression;\r\n\r\n\tlet dirty;\r\n\tif (renderer.context_overflow) {\r\n\t\tdirty = x`[]`;\r\n\t\tfor (let i = 0; i < renderer.context.length; i += 31) {\r\n\t\t\tdirty.elements.push(x`-1`);\r\n\t\t}\r\n\t}\r\n\r\n\tif (options.customElement) {\r\n\r\n\t\tlet init_props = x`@attribute_to_object(this.attributes)`;\r\n\t\tif (uses_slots) {\r\n\t\t\tinit_props = x`{ ...${init_props}, $$slots: @get_custom_elements_slots(this) }`;\r\n\t\t}\r\n\r\n\t\tconst declaration = b`\r\n\t\t\tclass ${name} extends @SvelteElement {\r\n\t\t\t\tconstructor(options) {\r\n\t\t\t\t\tsuper();\r\n\r\n\t\t\t\t\t${css.code && b`this.shadowRoot.innerHTML = \\`<style>${css.code.replace(/\\\\/g, '\\\\\\\\')}${css_sourcemap_enabled && options.dev ? `\\n/*# sourceMappingURL=${css.map.toUrl()} */` : ''}</style>\\`;`}\r\n\r\n\t\t\t\t\t@init(this, { target: this.shadowRoot, props: ${init_props}, customElement: true }, ${definition}, ${has_create_fragment ? 'create_fragment' : 'null'}, ${not_equal}, ${prop_indexes}, null, ${dirty});\r\n\r\n\t\t\t\t\t${dev_props_check}\r\n\r\n\t\t\t\t\tif (options) {\r\n\t\t\t\t\t\tif (options.target) {\r\n\t\t\t\t\t\t\t@insert(options.target, this, options.anchor);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t${(props.length > 0 || uses_props || uses_rest) && b`\r\n\t\t\t\t\t\tif (options.props) {\r\n\t\t\t\t\t\t\tthis.$set(options.props);\r\n\t\t\t\t\t\t\t@flush();\r\n\t\t\t\t\t\t}`}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t`[0] as ClassDeclaration;\r\n\r\n\t\tif (props.length > 0) {\r\n\t\t\tdeclaration.body.body.push({\r\n\t\t\t\ttype: 'MethodDefinition',\r\n\t\t\t\tkind: 'get',\r\n\t\t\t\tstatic: true,\r\n\t\t\t\tcomputed: false,\r\n\t\t\t\tkey: { type: 'Identifier', name: 'observedAttributes' },\r\n\t\t\t\tvalue: x`function() {\r\n\t\t\t\t\treturn [${props.map(prop => x`\"${prop.export_name}\"`)}];\r\n\t\t\t\t}` as FunctionExpression\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tpush_array(declaration.body.body, accessors);\r\n\r\n\t\tbody.push(declaration);\r\n\r\n\t\tif (component.tag != null) {\r\n\t\t\tbody.push(b`\r\n\t\t\t\t@_customElements.define(\"${component.tag}\", ${name});\r\n\t\t\t`);\r\n\t\t}\r\n\t} else {\r\n\t\tconst superclass = {\r\n\t\t\ttype: 'Identifier',\r\n\t\t\tname: options.dev ? '@SvelteComponentDev' : '@SvelteComponent'\r\n\t\t};\r\n\r\n\t\tconst optional_parameters = [];\r\n\t\tif (should_add_css) {\r\n\t\t\toptional_parameters.push(add_css);\r\n\t\t} else if (dirty) {\r\n\t\t\toptional_parameters.push(x`null`);\r\n\t\t}\r\n\t\tif (dirty) {\r\n\t\t\toptional_parameters.push(dirty);\r\n\t\t}\r\n\r\n\t\tconst declaration = b`\r\n\t\t\tclass ${name} extends ${superclass} {\r\n\t\t\t\tconstructor(options) {\r\n\t\t\t\t\tsuper(${options.dev && 'options'});\r\n\t\t\t\t\t@init(this, options, ${definition}, ${has_create_fragment ? 'create_fragment' : 'null'}, ${not_equal}, ${prop_indexes}, ${optional_parameters});\r\n\t\t\t\t\t${options.dev && b`@dispatch_dev(\"SvelteRegisterComponent\", { component: this, tagName: \"${name.name}\", options, id: create_fragment.name });`}\r\n\r\n\t\t\t\t\t${dev_props_check}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t`[0] as ClassDeclaration;\r\n\r\n\t\tpush_array(declaration.body.body, accessors);\r\n\r\n\t\tbody.push(declaration);\r\n\t}\r\n\r\n\treturn { js: flatten(body), css };\r\n}\r\n","import ConstTag from '../../../nodes/ConstTag';\r\n\r\nexport function get_const_tags(const_tags: ConstTag[]) {\r\n  if (const_tags.length === 0) return null;\r\n  return {\r\n    type: 'VariableDeclaration',\r\n    kind: 'let',\r\n    declarations: const_tags.map(const_tag => {\r\n      const assignment = const_tag.node.expression;\r\n      return {\r\n        type: 'VariableDeclarator',\r\n        id: assignment.left,\r\n        init: assignment.right\r\n      };\r\n    })\r\n  };\r\n}\r\n","import Renderer, { RenderOptions } from '../Renderer';\r\nimport AwaitBlock from '../../nodes/AwaitBlock';\r\nimport { x } from 'code-red';\r\nimport { get_const_tags } from './shared/get_const_tags';\r\n\r\nexport default function(node: AwaitBlock, renderer: Renderer, options: RenderOptions) {\r\n\trenderer.push();\r\n\trenderer.render(node.pending.children, options);\r\n\tconst pending = renderer.pop();\r\n\r\n\trenderer.push();\r\n\trenderer.render(node.then.children, options);\r\n\tconst then = renderer.pop();\r\n\r\n\trenderer.add_expression(x`\r\n\t\tfunction(__value) {\r\n\t\t\tif (@is_promise(__value)) {\r\n\t\t\t\t__value.then(null, @noop);\r\n\t\t\t\treturn ${pending};\r\n\t\t\t}\r\n\t\t\treturn (function(${node.then_node ? node.then_node : ''}) { ${get_const_tags(node.then.const_tags)}; return ${then}; }(__value));\r\n\t\t}(${node.expression.node})\r\n\t`);\r\n}\r\n","import Renderer, { RenderOptions } from '../Renderer';\r\nimport Comment from '../../nodes/Comment';\r\n\r\nexport default function(node: Comment, renderer: Renderer, options: RenderOptions) {\r\n\tif (options.preserveComments) {\r\n\t\trenderer.add_string(`<!--${node.data}-->`);\r\n\t}\r\n}\r\n","import DebugTag from '../../nodes/DebugTag';\r\nimport Renderer, { RenderOptions } from '../Renderer';\r\nimport { x, p } from 'code-red';\r\nimport { Identifier } from 'estree';\r\n\r\nexport default function(node: DebugTag, renderer: Renderer, options: RenderOptions) {\r\n\tif (!options.dev) return;\r\n\r\n\tconst filename = options.filename || null;\r\n\tconst { line, column } = options.locate(node.start + 1);\r\n\r\n\tconst obj = x`{\r\n\t\t${node.expressions.map(e => p`${(e.node as Identifier).name}`)}\r\n\t}`;\r\n\r\n\trenderer.add_expression(x`@debug(${filename ? x`\"${filename}\"` : x`null`}, ${line - 1}, ${column}, ${obj})`);\r\n}\r\n","import Renderer, { RenderOptions } from '../Renderer';\r\nimport EachBlock from '../../nodes/EachBlock';\r\nimport { x } from 'code-red';\r\nimport { get_const_tags } from './shared/get_const_tags';\r\nimport { Node } from 'estree';\r\n\r\nexport default function(node: EachBlock, renderer: Renderer, options: RenderOptions) {\r\n\tconst args = [node.context_node];\r\n\tif (node.index) args.push({ type: 'Identifier', name: node.index });\r\n\r\n\trenderer.push();\r\n\trenderer.render(node.children, options);\r\n\tconst result = renderer.pop();\r\n\r\n\tconst consequent = x`@each(${node.expression.node}, (${args}) => { ${get_const_tags(node.const_tags)}; return ${result} })`;\r\n\r\n\tif (node.else) {\r\n\t\trenderer.push();\r\n\t\trenderer.render(node.else.children, options);\r\n\t\tlet alternate: Node = renderer.pop();\r\n\t\tif (node.else.const_tags.length > 0) alternate = x`(() => { ${get_const_tags(node.else.const_tags)}; return ${alternate} })()`;\r\n\r\n\t\trenderer.add_expression(x`${node.expression.node}.length ? ${consequent} : ${alternate}`);\r\n\t} else {\r\n\t\trenderer.add_expression(consequent);\r\n\t}\r\n}\r\n","import Attribute from '../../../nodes/Attribute';\r\nimport { string_literal } from '../../../utils/stringify';\r\nimport Text from '../../../nodes/Text';\r\nimport { x } from 'code-red';\r\nimport Expression from '../../../nodes/shared/Expression';\r\nimport { Expression as ESTreeExpression } from 'estree';\r\n\r\nexport function get_class_attribute_value(attribute: Attribute): ESTreeExpression {\r\n\t// handle special case — `class={possiblyUndefined}` with scoped CSS\r\n\tif (attribute.chunks.length === 2 && (attribute.chunks[1] as Text).synthetic) {\r\n\t\tconst value = (attribute.chunks[0] as Expression).node;\r\n\t\treturn x`@escape(@null_to_empty(${value}), true) + \"${(attribute.chunks[1] as Text).data}\"`;\r\n\t}\r\n\r\n\treturn get_attribute_value(attribute);\r\n}\r\n\r\nexport function get_attribute_value(attribute: Attribute): ESTreeExpression {\r\n\tif (attribute.chunks.length === 0) return x`\"\"`;\r\n\r\n\treturn attribute.chunks\r\n\t\t.map((chunk) => {\r\n\t\t\treturn chunk.type === 'Text'\r\n\t\t\t\t? string_literal(chunk.data.replace(/\"/g, '&quot;')) as ESTreeExpression\r\n\t\t\t\t: x`@escape(${chunk.node}, true)`;\r\n\t\t})\r\n\t\t.reduce((lhs, rhs) => x`${lhs} + ${rhs}`);\r\n}\r\n\r\nexport function get_attribute_expression(attribute: Attribute): ESTreeExpression {\r\n\tif (attribute.chunks.length === 1 && attribute.chunks[0].type === 'Expression') {\r\n\t\treturn (attribute.chunks[0] as Expression).node as ESTreeExpression;\r\n\t}\r\n\treturn get_attribute_value(attribute);\r\n}\r\n","// source: https://html.spec.whatwg.org/multipage/indices.html\r\nexport const boolean_attributes = new Set([\r\n\t'allowfullscreen',\r\n\t'allowpaymentrequest',\r\n\t'async',\r\n\t'autofocus',\r\n\t'autoplay',\r\n\t'checked',\r\n\t'controls',\r\n\t'default',\r\n\t'defer',\r\n\t'disabled',\r\n\t'formnovalidate',\r\n\t'hidden',\r\n\t'ismap',\r\n\t'loop',\r\n\t'multiple',\r\n\t'muted',\r\n\t'nomodule',\r\n\t'novalidate',\r\n\t'open',\r\n\t'playsinline',\r\n\t'readonly',\r\n\t'required',\r\n\t'reversed',\r\n\t'selected'\r\n]);\r\n","import { INode } from '../../../nodes/interfaces';\r\nimport { trim_end, trim_start } from '../../../../utils/trim';\r\nimport { link } from '../../../../utils/link';\r\n\r\n// similar logic from `compile/render_dom/wrappers/Fragment`\r\n// We want to remove trailing whitespace inside an element/component/block,\r\n// *unless* there is no whitespace between this node and its next sibling\r\nexport default function remove_whitespace_children(children: INode[], next?: INode): INode[] {\r\n\tconst nodes: INode[] = [];\r\n\tlet last_child: INode;\r\n\tlet i = children.length;\r\n\twhile (i--) {\r\n\t\tconst child = children[i];\r\n\r\n\t\tif (child.type === 'Text') {\r\n\t\t\tif (child.should_skip()) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tlet { data } = child;\r\n\r\n\t\t\tif (nodes.length === 0) {\r\n\t\t\t\tconst should_trim = next\r\n\t\t\t\t\t? next.type === 'Text' &&\r\n\t\t\t\t\t  /^\\s/.test(next.data) &&\r\n\t\t\t\t\t  trimmable_at(child, next)\r\n\t\t\t\t\t: !child.has_ancestor('EachBlock');\r\n\r\n\t\t\t\tif (should_trim && !child.keep_space()) {\r\n\t\t\t\t\tdata = trim_end(data);\r\n\t\t\t\t\tif (!data) continue;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// glue text nodes (which could e.g. be separated by comments) together\r\n\t\t\tif (last_child && last_child.type === 'Text') {\r\n\t\t\t\tlast_child.data = data + last_child.data;\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tnodes.unshift(child);\r\n\t\t\tlink(last_child, last_child = child);\r\n\t\t} else {\r\n\t\t\tnodes.unshift(child);\r\n\t\t\tlink(last_child, last_child = child);\r\n\t\t}\r\n\t}\r\n\r\n\tconst first = nodes[0];\r\n\tif (first && first.type === 'Text' && !first.keep_space()) {\r\n\t\tfirst.data = trim_start(first.data);\r\n\t\tif (!first.data) {\r\n\t\t\tfirst.var = null;\r\n\t\t\tnodes.shift();\r\n\r\n\t\t\tif (nodes[0]) {\r\n\t\t\t\tnodes[0].prev = null;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn nodes;\r\n}\r\n\r\nfunction trimmable_at(child: INode, next_sibling: INode): boolean {\r\n\t// Whitespace is trimmable if one of the following is true:\r\n\t// The child and its sibling share a common nearest each block (not at an each block boundary)\r\n\t// The next sibling's previous node is an each block\r\n\treturn (\r\n\t\tnext_sibling.find_nearest(/EachBlock/) ===\r\n\t\t\tchild.find_nearest(/EachBlock/) || next_sibling.prev.type === 'EachBlock'\r\n\t);\r\n}\r\n","import { is_void } from '../../../../shared/utils/names';\r\nimport { get_attribute_expression, get_attribute_value, get_class_attribute_value } from './shared/get_attribute_value';\r\nimport { boolean_attributes } from '../../../../shared/boolean_attributes';\r\nimport Renderer, { RenderOptions } from '../Renderer';\r\nimport Element from '../../nodes/Element';\r\nimport { p, x } from 'code-red';\r\nimport Expression from '../../nodes/shared/Expression';\r\nimport remove_whitespace_children from './utils/remove_whitespace_children';\r\nimport fix_attribute_casing from '../../render_dom/wrappers/Element/fix_attribute_casing';\r\nimport { namespaces } from '../../../utils/namespaces';\r\nimport { start_newline } from '../../../utils/patterns';\r\nimport { Node, Expression as ESExpression } from 'estree';\r\n\r\nexport default function (node: Element, renderer: Renderer, options: RenderOptions) {\r\n\r\n\tconst children = remove_whitespace_children(node.children, node.next);\r\n\r\n\t// awkward special case\r\n\tlet node_contents;\r\n\r\n\tconst contenteditable = (\r\n\t\tnode.name !== 'textarea' &&\r\n\t\tnode.name !== 'input' &&\r\n\t\tnode.attributes.some((attribute) => attribute.name === 'contenteditable')\r\n\t);\r\n\r\n\tif (node.is_dynamic_element) {\r\n\t\trenderer.push();\r\n\t}\r\n\r\n\trenderer.add_string('<');\r\n\tadd_tag_name();\r\n\r\n\tconst class_expression_list = node.classes.map(class_directive => {\r\n\t\tconst { expression, name } = class_directive;\r\n\t\tconst snippet = expression ? expression.node : x`#ctx.${name}`; // TODO is this right?\r\n\t\treturn x`${snippet} ? \"${name}\" : \"\"`;\r\n\t});\r\n\tif (node.needs_manual_style_scoping) {\r\n\t\tclass_expression_list.push(x`\"${node.component.stylesheet.id}\"`);\r\n\t}\r\n\tconst class_expression =\r\n\t\tclass_expression_list.length > 0 &&\r\n\t\tclass_expression_list.reduce((lhs, rhs) => x`${lhs} + ' ' + ${rhs}`);\r\n\r\n\tconst style_expression_list = node.styles.map(style_directive => {\r\n\t\tconst { name, expression: { node: expression } } = style_directive;\r\n\t\treturn p`\"${name}\": ${expression}`;\r\n\t});\r\n\r\n\tconst style_expression =\r\n\t\tstyle_expression_list.length > 0 &&\r\n\t\tx`{ ${style_expression_list} }`;\r\n\r\n\tif (node.attributes.some(attr => attr.is_spread)) {\r\n\t\t// TODO dry this out\r\n\t\tconst args = [];\r\n\t\tnode.attributes.forEach(attribute => {\r\n\t\t\tif (attribute.is_spread) {\r\n\t\t\t\targs.push(x`@escape_object(${attribute.expression.node})`);\r\n\t\t\t} else {\r\n\t\t\t\tconst attr_name = node.namespace === namespaces.foreign ? attribute.name : fix_attribute_casing(attribute.name);\r\n\t\t\t\tconst name = attribute.name.toLowerCase();\r\n\t\t\t\tif (name === 'value' && node.name.toLowerCase() === 'textarea') {\r\n\t\t\t\t\tnode_contents = get_attribute_value(attribute);\r\n\t\t\t\t} else if (attribute.is_true) {\r\n\t\t\t\t\targs.push(x`{ ${attr_name}: true }`);\r\n\t\t\t\t} else if (\r\n\t\t\t\t\tboolean_attributes.has(name) &&\r\n\t\t\t\t\tattribute.chunks.length === 1 &&\r\n\t\t\t\t\tattribute.chunks[0].type !== 'Text'\r\n\t\t\t\t) {\r\n\t\t\t\t\t// a boolean attribute with one non-Text chunk\r\n\t\t\t\t\targs.push(x`{ ${attr_name}: ${(attribute.chunks[0] as Expression).node} || null }`);\r\n\t\t\t\t} else if (attribute.chunks.length === 1 && attribute.chunks[0].type !== 'Text') {\r\n\t\t\t\t\tconst snippet = (attribute.chunks[0] as Expression).node;\r\n\t\t\t\t\targs.push(x`{ ${attr_name}: @escape_attribute_value(${snippet}) }`);\r\n\t\t\t\t} else {\r\n\t\t\t\t\targs.push(x`{ ${attr_name}: ${get_attribute_value(attribute)} }`);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\trenderer.add_expression(x`@spread([${args}], { classes: ${class_expression}, styles: ${style_expression} })`);\r\n\t} else {\r\n\t\tlet add_class_attribute = !!class_expression;\r\n\t\tlet add_style_attribute = !!style_expression;\r\n\t\tnode.attributes.forEach(attribute => {\r\n\t\t\tconst name = attribute.name.toLowerCase();\r\n\t\t\tconst attr_name = node.namespace === namespaces.foreign ? attribute.name : fix_attribute_casing(attribute.name);\r\n\t\t\tif (name === 'value' && node.name.toLowerCase() === 'textarea') {\r\n\t\t\t\tnode_contents = get_attribute_value(attribute);\r\n\t\t\t} else if (attribute.is_true) {\r\n\t\t\t\trenderer.add_string(` ${attr_name}`);\r\n\t\t\t} else if (\r\n\t\t\t\tboolean_attributes.has(name) &&\r\n\t\t\t\tattribute.chunks.length === 1 &&\r\n\t\t\t\tattribute.chunks[0].type !== 'Text'\r\n\t\t\t) {\r\n\t\t\t\t// a boolean attribute with one non-Text chunk\r\n\t\t\t\trenderer.add_string(' ');\r\n\t\t\t\trenderer.add_expression(x`${(attribute.chunks[0] as Expression).node} ? \"${attr_name}\" : \"\"`);\r\n\t\t\t} else if (name === 'class' && class_expression) {\r\n\t\t\t\tadd_class_attribute = false;\r\n\t\t\t\trenderer.add_string(` ${attr_name}=\"`);\r\n\t\t\t\trenderer.add_expression(x`[${get_class_attribute_value(attribute)}, ${class_expression}].join(' ').trim()`);\r\n\t\t\t\trenderer.add_string('\"');\r\n\t\t\t} else if (name === 'style' && style_expression) {\r\n\t\t\t\tadd_style_attribute = false;\r\n\t\t\t\trenderer.add_expression(x`@add_styles(@merge_ssr_styles(${get_attribute_value(attribute)}, ${style_expression}))`);\r\n\t\t\t} else if (attribute.chunks.length === 1 && attribute.chunks[0].type !== 'Text') {\r\n\t\t\t\tconst snippet = (attribute.chunks[0] as Expression).node;\r\n\t\t\t\trenderer.add_expression(x`@add_attribute(\"${attr_name}\", ${snippet}, ${boolean_attributes.has(name) ? 1 : 0})`);\r\n\t\t\t} else {\r\n\t\t\t\trenderer.add_string(` ${attr_name}=\"`);\r\n\t\t\t\trenderer.add_expression((name === 'class' ? get_class_attribute_value : get_attribute_value)(attribute));\r\n\t\t\t\trenderer.add_string('\"');\r\n\t\t\t}\r\n\t\t});\r\n\t\tif (add_class_attribute) {\r\n\t\t\trenderer.add_expression(x`@add_classes((${class_expression}).trim())`);\r\n\t\t}\r\n\t\tif (add_style_attribute) {\r\n\t\t\trenderer.add_expression(x`@add_styles(${style_expression})`);\r\n\t\t}\r\n\t}\r\n\r\n\tnode.bindings.forEach(binding => {\r\n\t\tconst { name, expression } = binding;\r\n\r\n\t\tif (binding.is_readonly) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (name === 'group') {\r\n\t\t\tconst value_attribute = node.attributes.find(({ name }) => name === 'value');\r\n\t\t\tif (value_attribute) {\r\n\t\t\t\tconst value = get_attribute_expression(value_attribute);\r\n\t\t\t\tconst type = node.get_static_attribute_value('type');\r\n\t\t\t\tconst bound = expression.node;\r\n\t\t\t\tconst condition = type === 'checkbox' ? x`~${bound}.indexOf(${value})` : x`${value} === ${bound}`;\r\n\t\t\t\trenderer.add_expression(x`${condition} ? @add_attribute(\"checked\", true, 1) : \"\"`);\r\n\t\t\t}\r\n\t\t} else if (contenteditable && (name === 'textContent' || name === 'innerHTML')) {\r\n\t\t\tnode_contents = expression.node;\r\n\r\n\t\t\t// TODO where was this used?\r\n\t\t\t// value = name === 'textContent' ? x`@escape($$value)` : x`$$value`;\r\n\t\t} else if (binding.name === 'value' && node.name === 'textarea') {\r\n\t\t\tconst snippet = expression.node;\r\n\t\t\tnode_contents = x`${snippet} || \"\"`;\r\n\t\t} else if (binding.name === 'value' && node.name === 'select') {\r\n\t\t\t// NOTE: do not add \"value\" attribute on <select />\r\n\t\t} else {\r\n\t\t\tconst snippet = expression.node;\r\n\t\t\trenderer.add_expression(x`@add_attribute(\"${name}\", ${snippet}, ${boolean_attributes.has(name) ? 1 : 0})`);\r\n\t\t}\r\n\t});\r\n\r\n\tif (options.hydratable && options.head_id) {\r\n\t\trenderer.add_string(` data-svelte=\"${options.head_id}\"`);\r\n\t}\r\n\r\n\trenderer.add_string('>');\r\n\r\n\tif (node_contents !== undefined) {\r\n\t\tif (contenteditable) {\r\n\t\t\trenderer.push();\r\n\t\t\trenderer.render(children, options);\r\n\t\t\tconst result = renderer.pop();\r\n\r\n\t\t\trenderer.add_expression(x`($$value => $$value === void 0 ? ${result} : $$value)(${node_contents})`);\r\n\t\t} else {\r\n\t\t\tif (node.name === 'textarea') {\r\n\t\t\t\t// Two or more leading newlines are required to restore the leading newline immediately after `<textarea>`.\r\n\t\t\t\t// see https://html.spec.whatwg.org/multipage/syntax.html#element-restrictions\r\n\t\t\t\tconst value_attribute = node.attributes.find(({ name }) => name === 'value');\r\n\t\t\t\tif (value_attribute) {\r\n\t\t\t\t\tconst first = value_attribute.chunks[0];\r\n\t\t\t\t\tif (first && first.type === 'Text' && start_newline.test(first.data)) {\r\n\t\t\t\t\t\trenderer.add_string('\\n');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\trenderer.add_expression(node_contents);\r\n\t\t}\r\n\r\n\t\tadd_close_tag();\r\n\t} else {\r\n\t\tif (node.name === 'pre') {\r\n\t\t\t// Two or more leading newlines are required to restore the leading newline immediately after `<pre>`.\r\n\t\t\t// see https://html.spec.whatwg.org/multipage/grouping-content.html#the-pre-element\r\n\t\t\t// see https://html.spec.whatwg.org/multipage/syntax.html#element-restrictions\r\n\t\t\tconst first = children[0];\r\n\t\t\tif (first && first.type === 'Text' && start_newline.test(first.data)) {\r\n\t\t\t\trenderer.add_string('\\n');\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (node.is_dynamic_element) renderer.push();\r\n\t\trenderer.render(children, options);\r\n\t\tif (node.is_dynamic_element) {\r\n\t\t\tconst children = renderer.pop();\r\n\t\t\trenderer.add_expression(x`@is_void(#tag) ? '' : ${children}`);\r\n\t\t}\r\n\t\tadd_close_tag();\r\n\t}\r\n\r\n\tif (node.is_dynamic_element) {\r\n\t\tlet content: Node = renderer.pop();\r\n\t\tif (options.dev && node.children.length > 0) content = x`(() => { @validate_void_dynamic_element(#tag); return ${content}; })()`;\r\n\t\trenderer.add_expression(x`((#tag) => {\r\n\t\t\t${options.dev && x`@validate_dynamic_element(#tag)`}\r\n\t\t\treturn #tag ? ${content} : '';\r\n\t\t})(${node.tag_expr.node})`);\r\n\t}\r\n\r\n\tfunction add_close_tag() {\r\n\t\tif (node.tag_expr.node.type === 'Literal') {\r\n\t\t\tif (!is_void(node.tag_expr.node.value as string)) {\r\n\t\t\t\trenderer.add_string('</');\r\n\t\t\t\tadd_tag_name();\r\n\t\t\t\trenderer.add_string('>');\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\t\trenderer.add_expression(x`@is_void(#tag) ? '' : \\`</\\${#tag}>\\``);\r\n\t}\r\n\r\n\tfunction add_tag_name() {\r\n\t\tif (node.tag_expr.node.type === 'Literal') {\r\n\t\t\trenderer.add_string(node.tag_expr.node.value as string);\r\n\t\t} else {\r\n\t\t\trenderer.add_expression(node.tag_expr.node as ESExpression);\r\n\t\t}\r\n\t}\r\n}\r\n\r\n","import Renderer, { RenderOptions } from '../Renderer';\r\nimport Head from '../../nodes/Head';\r\nimport { x } from 'code-red';\r\n\r\nexport default function(node: Head, renderer: Renderer, options: RenderOptions) {\r\n\tconst head_options = {\r\n\t\t...options,\r\n\t\thead_id: node.id\r\n\t};\r\n\r\n\trenderer.push();\r\n\trenderer.render(node.children, head_options);\r\n\tconst result = renderer.pop();\r\n\r\n\trenderer.add_expression(x`$$result.head += ${result}, \"\"`);\r\n}\r\n","import Renderer, { RenderOptions } from '../Renderer';\r\nimport RawMustacheTag from '../../nodes/RawMustacheTag';\r\nimport { Expression } from 'estree';\r\n\r\nexport default function(node: RawMustacheTag, renderer: Renderer, options: RenderOptions) {\r\n\tif (options.hydratable) renderer.add_string('<!-- HTML_TAG_START -->');\r\n\trenderer.add_expression(node.expression.node as Expression);\r\n\tif (options.hydratable) renderer.add_string('<!-- HTML_TAG_END -->');\r\n}\r\n","import IfBlock from '../../nodes/IfBlock';\r\nimport Renderer, { RenderOptions } from '../Renderer';\r\nimport { x } from 'code-red';\r\nimport { get_const_tags } from './shared/get_const_tags';\r\nimport { Node } from 'estree';\r\n\r\nexport default function (node: IfBlock, renderer: Renderer, options: RenderOptions) {\r\n\tconst condition = node.expression.node;\r\n\r\n\trenderer.push();\r\n\trenderer.render(node.children, options);\r\n\tlet consequent: Node = renderer.pop();\r\n\tif (node.const_tags.length > 0) consequent = x`(() => { ${get_const_tags(node.const_tags)}; return ${consequent} })()`;\r\n\r\n\trenderer.push();\r\n\tif (node.else) renderer.render(node.else.children, options);\r\n\tlet alternate: Node = renderer.pop();\r\n\tif (node.else && node.else.const_tags.length > 0) alternate = x`(() => { ${get_const_tags(node.else.const_tags)}; return ${alternate} })()`;\r\n\r\n\trenderer.add_expression(x`${condition} ? ${consequent} : ${alternate}`);\r\n}\r\n","import { string_literal } from '../../utils/stringify';\r\nimport { get_attribute_value } from './shared/get_attribute_value';\r\nimport Renderer, { RenderOptions } from '../Renderer';\r\nimport InlineComponent from '../../nodes/InlineComponent';\r\nimport { p, x } from 'code-red';\r\n\r\nfunction get_prop_value(attribute) {\r\n\tif (attribute.is_true) return x`true`;\r\n\tif (attribute.chunks.length === 0) return x`''`;\r\n\r\n\treturn attribute.chunks\r\n\t\t.map(chunk => {\r\n\t\t\tif (chunk.type === 'Text') return string_literal(chunk.data);\r\n\t\t\treturn chunk.node;\r\n\t\t})\r\n\t\t.reduce((lhs, rhs) => x`${lhs} + ${rhs}`);\r\n}\r\n\r\nexport default function(node: InlineComponent, renderer: Renderer, options: RenderOptions) {\r\n\tconst binding_props = [];\r\n\tconst binding_fns = [];\r\n\r\n\tnode.bindings.forEach(binding => {\r\n\t\trenderer.has_bindings = true;\r\n\r\n\t\t// TODO this probably won't work for contextual bindings\r\n\t\tconst snippet = binding.expression.node;\r\n\r\n\t\tbinding_props.push(p`${binding.name}: ${snippet}`);\r\n\t\tbinding_fns.push(p`${binding.name}: $$value => { ${snippet} = $$value; $$settled = false }`);\r\n\t});\r\n\r\n\tconst uses_spread = node.attributes.find(attr => attr.is_spread);\r\n\r\n\tlet props;\r\n\r\n\tif (uses_spread) {\r\n\t\tprops = x`@_Object.assign(${\r\n\t\t\tnode.attributes\r\n\t\t\t\t.map(attribute => {\r\n\t\t\t\t\tif (attribute.is_spread) {\r\n\t\t\t\t\t\treturn attribute.expression.node;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn x`{ ${attribute.name}: ${get_prop_value(attribute)} }`;\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.concat(binding_props.map(p => x`{ ${p} }`))\r\n\t\t})`;\r\n\t} else {\r\n\t\tprops = x`{\r\n\t\t\t${node.attributes.map(attribute => p`${attribute.name}: ${get_prop_value(attribute)}`)},\r\n\t\t\t${binding_props}\r\n\t\t}`;\r\n\t}\r\n\r\n\tconst bindings = x`{\r\n\t\t${binding_fns}\r\n\t}`;\r\n\r\n\tconst expression = (\r\n\t\tnode.name === 'svelte:self'\r\n\t\t\t? renderer.name\r\n\t\t\t: node.name === 'svelte:component'\r\n\t\t\t\t? x`(${node.expression.node}) || @missing_component`\r\n\t\t\t\t: node.name.split('.').reduce(((lhs, rhs) => x`${lhs}.${rhs}`) as any)\r\n\t);\r\n\r\n\tconst slot_fns = [];\r\n\r\n\tconst children = node.children;\r\n\r\n\tif (children.length) {\r\n\t\tconst slot_scopes = new Map();\r\n\r\n\t\trenderer.render(children, Object.assign({}, options, {\r\n\t\t\tslot_scopes\r\n\t\t}));\r\n\r\n\t\tslot_scopes.forEach(({ input, output, statements }, name) => {\r\n\t\t\tslot_fns.push(\r\n\t\t\t\tp`${name}: (${input}) => { ${statements}; return ${output}; }`\r\n\t\t\t);\r\n\t\t});\r\n\t}\r\n\r\n\tconst slots = x`{\r\n\t\t${slot_fns}\r\n\t}`;\r\n\r\n\tif (node.css_custom_properties.length > 0) {\r\n\t\trenderer.add_string('<div style=\"display: contents;');\r\n\t\tnode.css_custom_properties.forEach(attr => {\r\n\t\t\trenderer.add_string(` ${attr.name}:`);\r\n\t\t\trenderer.add_expression(get_attribute_value(attr));\r\n\t\t\trenderer.add_string(';');\r\n\t\t});\r\n\t\trenderer.add_string('\">');\r\n\t}\r\n\r\n\trenderer.add_expression(x`@validate_component(${expression}, \"${node.name}\").$$render($$result, ${props}, ${bindings}, ${slots})`);\r\n\r\n\tif (node.css_custom_properties.length > 0) {\r\n\t\trenderer.add_string('</div>');\r\n\t}\r\n}\r\n","import KeyBlock from '../../nodes/KeyBlock';\r\nimport Renderer, { RenderOptions } from '../Renderer';\r\n\r\nexport default function(node: KeyBlock, renderer: Renderer, options: RenderOptions) {\r\n\trenderer.render(node.children, options);\r\n}\r\n","import Let from '../../../nodes/Let';\r\nimport { ObjectPattern } from 'estree';\r\n\r\nexport function get_slot_scope(lets: Let[]): ObjectPattern {\r\n\tif (lets.length === 0) return null;\r\n\r\n\treturn {\r\n\t\ttype: 'ObjectPattern',\r\n\t\tproperties: lets.map(l => {\r\n\t\t\treturn {\r\n\t\t\t\ttype: 'Property',\r\n\t\t\t\tkind: 'init',\r\n\t\t\t\tmethod: false,\r\n\t\t\t\tshorthand: false,\r\n\t\t\t\tcomputed: false,\r\n\t\t\t\tkey: l.name,\r\n\t\t\t\tvalue: l.value || l.name\r\n\t\t\t};\r\n\t\t})\r\n\t};\r\n}\r\n","import Renderer, { RenderOptions } from '../Renderer';\r\nimport Slot from '../../nodes/Slot';\r\nimport { x } from 'code-red';\r\nimport get_slot_data from '../../utils/get_slot_data';\r\nimport { get_slot_scope } from './shared/get_slot_scope';\r\n\r\nexport default function(node: Slot, renderer: Renderer, options: RenderOptions & {\r\n\tslot_scopes: Map<any, any>;\r\n}) {\r\n\tconst slot_data = get_slot_data(node.values);\r\n\tconst slot = node.get_static_attribute_value('slot');\r\n\tconst nearest_inline_component = node.find_nearest(/InlineComponent/);\r\n\r\n\tif (slot && nearest_inline_component) {\r\n\t\trenderer.push();\r\n\t}\r\n\r\n\trenderer.push();\r\n\trenderer.render(node.children, options);\r\n\tconst result = renderer.pop();\r\n\r\n\trenderer.add_expression(x`\r\n\t\t#slots.${node.slot_name}\r\n\t\t\t? #slots.${node.slot_name}(${slot_data})\r\n\t\t\t: ${result}\r\n\t`);\r\n\r\n\tif (slot && nearest_inline_component) {\r\n\t\tconst lets = node.lets;\r\n\t\tconst seen = new Set(lets.map(l => l.name.name));\r\n\r\n\t\tnearest_inline_component.lets.forEach(l => {\r\n\t\t\tif (!seen.has(l.name.name)) lets.push(l);\r\n\t\t});\r\n\t\toptions.slot_scopes.set(slot, {\r\n\t\t\tinput: get_slot_scope(node.lets),\r\n\t\t\toutput: renderer.pop()\r\n\t\t});\r\n\t}\r\n}\r\n","import Renderer, { RenderOptions } from '../Renderer';\r\nimport SlotTemplate from '../../nodes/SlotTemplate';\r\nimport remove_whitespace_children from './utils/remove_whitespace_children';\r\nimport { get_slot_scope } from './shared/get_slot_scope';\r\nimport InlineComponent from '../../nodes/InlineComponent';\r\nimport { get_const_tags } from './shared/get_const_tags';\r\n\r\nexport default function(node: SlotTemplate, renderer: Renderer, options: RenderOptions & {\r\n\tslot_scopes: Map<any, any>;\r\n}) {\r\n\tconst parent_inline_component = node.parent as InlineComponent;\r\n\tconst children = remove_whitespace_children(node instanceof SlotTemplate ? node.children : [node], node.next);\r\n\r\n\trenderer.push();\r\n\trenderer.render(children, options);\r\n\r\n\tconst lets = node.lets;\r\n\tconst seen = new Set(lets.map(l => l.name.name));\r\n\tparent_inline_component.lets.forEach(l => {\r\n\t\tif (!seen.has(l.name.name)) lets.push(l);\r\n\t});\r\n\r\n\tconst slot_fragment_content = renderer.pop();\r\n\tif (!is_empty_template_literal(slot_fragment_content)) {\r\n\t\tif (options.slot_scopes.has(node.slot_template_name)) {\r\n\t\t\tif (node.slot_template_name === 'default') {\r\n\t\t\t\tthrow new Error('Found elements without slot attribute when using slot=\"default\"');\r\n\t\t\t}\r\n\t\t\tthrow new Error(`Duplicate slot name \"${node.slot_template_name}\" in <${parent_inline_component.name}>`);\r\n\t\t}\r\n\r\n\t\toptions.slot_scopes.set(node.slot_template_name, {\r\n\t\t\tinput: get_slot_scope(node.lets),\r\n\t\t\toutput: slot_fragment_content,\r\n\t\t\tstatements: get_const_tags(node.const_tags)\r\n\t\t});\r\n\t}\r\n}\r\n\r\nfunction is_empty_template_literal(template_literal) {\r\n\treturn (\r\n\t\ttemplate_literal.expressions.length === 0 &&\r\n\t\ttemplate_literal.quasis.length === 1 &&\r\n\t\ttemplate_literal.quasis[0].value.raw === ''\r\n\t);\r\n}\r\n","\r\nimport Renderer, { RenderOptions } from '../Renderer';\r\nimport { x } from 'code-red';\r\n\r\nexport default function(node, renderer: Renderer, _options: RenderOptions) {\r\n\tconst snippet = node.expression.node;\r\n\r\n\trenderer.add_expression(\r\n\t\tnode.parent &&\r\n\t\tnode.parent.type === 'Element' &&\r\n\t\tnode.parent.name === 'style'\r\n\t\t\t? snippet\r\n\t\t\t: x`@escape(${snippet})`\r\n\t);\r\n}\r\n","import { escape_html } from '../../utils/stringify';\r\nimport Renderer, { RenderOptions } from '../Renderer';\r\nimport Text from '../../nodes/Text';\r\nimport Element from '../../nodes/Element';\r\n\r\nexport default function(node: Text, renderer: Renderer, _options: RenderOptions) {\r\n\tlet text = node.data;\r\n\tif (\r\n\t\t!node.parent ||\r\n\t\tnode.parent.type !== 'Element' ||\r\n\t\t((node.parent as Element).name !== 'script' && (node.parent as Element).name !== 'style')\r\n\t) {\r\n\t\t// unless this Text node is inside a <script> or <style> element, escape &,<,>\r\n\t\ttext = escape_html(text);\r\n\t}\r\n\r\n\trenderer.add_string(text);\r\n}\r\n","import Renderer, { RenderOptions } from '../Renderer';\r\nimport Title from '../../nodes/Title';\r\nimport { x } from 'code-red';\r\n\r\nexport default function(node: Title, renderer: Renderer, options: RenderOptions) {\r\n\trenderer.push();\r\n\r\n\trenderer.add_string('<title>');\r\n\r\n\trenderer.render(node.children, options);\r\n\r\n\trenderer.add_string('</title>');\r\n\tconst result = renderer.pop();\r\n\r\n\trenderer.add_expression(x`$$result.title = ${result}, \"\"`);\r\n}\r\n","import AwaitBlock from './handlers/AwaitBlock';\r\nimport Comment from './handlers/Comment';\r\nimport DebugTag from './handlers/DebugTag';\r\nimport EachBlock from './handlers/EachBlock';\r\nimport Element from './handlers/Element';\r\nimport Head from './handlers/Head';\r\nimport HtmlTag from './handlers/HtmlTag';\r\nimport IfBlock from './handlers/IfBlock';\r\nimport InlineComponent from './handlers/InlineComponent';\r\nimport KeyBlock from './handlers/KeyBlock';\r\nimport Slot from './handlers/Slot';\r\nimport SlotTemplate from './handlers/SlotTemplate';\r\nimport Tag from './handlers/Tag';\r\nimport Text from './handlers/Text';\r\nimport Title from './handlers/Title';\r\nimport { AppendTarget, CompileOptions } from '../../interfaces';\r\nimport { INode } from '../nodes/interfaces';\r\nimport { Expression, TemplateLiteral, Identifier } from 'estree';\r\nimport { escape_template } from '../utils/stringify';\r\n\r\ntype Handler = (node: any, renderer: Renderer, options: CompileOptions) => void;\r\n\r\nfunction noop() {}\r\n\r\nconst handlers: Record<string, Handler> = {\r\n\tAwaitBlock,\r\n\tBody: noop,\r\n\tComment,\r\n\tDebugTag,\r\n\tEachBlock,\r\n\tElement,\r\n\tHead,\r\n\tIfBlock,\r\n\tInlineComponent,\r\n\tKeyBlock,\r\n\tMustacheTag: Tag, // TODO MustacheTag is an anachronism\r\n\tOptions: noop,\r\n\tRawMustacheTag: HtmlTag,\r\n\tSlot,\r\n\tSlotTemplate,\r\n\tText,\r\n\tTitle,\r\n\tWindow: noop\r\n};\r\n\r\nexport interface RenderOptions extends CompileOptions{\r\n\tlocate: (c: number) => { line: number; column: number };\r\n\thead_id?: string;\r\n}\r\n\r\nexport default class Renderer {\r\n\thas_bindings = false;\r\n\r\n\tname: Identifier;\r\n\r\n\tstack: Array<{ current: { value: string }; literal: TemplateLiteral }> = [];\r\n\tcurrent: { value: string }; // TODO can it just be `current: string`?\r\n\tliteral: TemplateLiteral;\r\n\r\n\ttargets: AppendTarget[] = [];\r\n\r\n\tconstructor({ name }) {\r\n\t\tthis.name = name;\r\n\t\tthis.push();\r\n\t}\r\n\r\n\tadd_string(str: string) {\r\n\t\tthis.current.value += escape_template(str);\r\n\t}\r\n\r\n\tadd_expression(node: Expression) {\r\n\t\tthis.literal.quasis.push({\r\n\t\t\ttype: 'TemplateElement',\r\n\t\t\tvalue: { raw: this.current.value, cooked: null },\r\n\t\t\ttail: false\r\n\t\t});\r\n\r\n\t\tthis.literal.expressions.push(node);\r\n\t\tthis.current.value = '';\r\n\t}\r\n\r\n\tpush() {\r\n\t\tconst current = this.current = { value: '' };\r\n\r\n\t\tconst literal = this.literal = {\r\n\t\t\ttype: 'TemplateLiteral',\r\n\t\t\texpressions: [],\r\n\t\t\tquasis: []\r\n\t\t};\r\n\r\n\t\tthis.stack.push({ current, literal });\r\n\t}\r\n\r\n\tpop() {\r\n\t\tthis.literal.quasis.push({\r\n\t\t\ttype: 'TemplateElement',\r\n\t\t\tvalue: { raw: this.current.value, cooked: null },\r\n\t\t\ttail: true\r\n\t\t});\r\n\r\n\t\tconst popped = this.stack.pop();\r\n\t\tconst last = this.stack[this.stack.length - 1];\r\n\r\n\t\tif (last) {\r\n\t\t\tthis.literal = last.literal;\r\n\t\t\tthis.current = last.current;\r\n\t\t}\r\n\r\n\t\treturn popped.literal;\r\n\t}\r\n\r\n\trender(nodes: INode[], options: RenderOptions) {\r\n\t\tnodes.forEach(node => {\r\n\t\t\tconst handler = handlers[node.type];\r\n\r\n\t\t\tif (!handler) {\r\n\t\t\t\tthrow new Error(`No handler for '${node.type}' nodes`);\r\n\t\t\t}\r\n\r\n\t\t\thandler(node, this, options);\r\n\t\t});\r\n\t}\r\n}\r\n","import { b } from 'code-red';\r\nimport Component from '../Component';\r\nimport { CompileOptions, CssResult } from '../../interfaces';\r\nimport { string_literal } from '../utils/stringify';\r\nimport Renderer from './Renderer';\r\nimport { INode as TemplateNode } from '../nodes/interfaces'; // TODO\r\nimport Text from '../nodes/Text';\r\nimport { LabeledStatement, Statement, Node } from 'estree';\r\nimport { extract_names } from 'periscopic';\r\nimport { walk } from 'estree-walker';\r\n\r\nimport { invalidate } from '../render_dom/invalidate';\r\nimport check_enable_sourcemap from '../utils/check_enable_sourcemap';\r\n\r\nexport default function ssr(\r\n\tcomponent: Component,\r\n\toptions: CompileOptions\r\n): {js: Node[]; css: CssResult} {\r\n\tconst renderer = new Renderer({\r\n\t\tname: component.name\r\n\t});\r\n\r\n\tconst { name } = component;\r\n\r\n\t// create $$render function\r\n\trenderer.render(trim(component.fragment.children), Object.assign({\r\n\t\tlocate: component.locate\r\n\t}, options));\r\n\r\n\t// TODO put this inside the Renderer class\r\n\tconst literal = renderer.pop();\r\n\r\n\t// TODO concatenate CSS maps\r\n\tconst css = options.customElement ?\r\n\t\t{ code: null, map: null } :\r\n\t\tcomponent.stylesheet.render(options.filename, true);\r\n\r\n\tconst uses_rest = component.var_lookup.has('$$restProps');\r\n\tconst props = component.vars.filter(variable => !variable.module && variable.export_name);\r\n\tconst rest = uses_rest ? b`let $$restProps = @compute_rest_props($$props, [${props.map(prop => `\"${prop.export_name}\"`).join(',')}]);` : null;\r\n\r\n\tconst uses_slots = component.var_lookup.has('$$slots');\r\n\tconst slots = uses_slots ? b`let $$slots = @compute_slots(#slots);` : null;\r\n\r\n\tconst reactive_stores = component.vars.filter(variable => variable.name[0] === '$' && variable.name[1] !== '$');\r\n\tconst reactive_store_subscriptions = reactive_stores\r\n\t\t.filter(store => {\r\n\t\t\tconst variable = component.var_lookup.get(store.name.slice(1));\r\n\t\t\treturn !variable || variable.hoistable;\r\n\t\t})\r\n\t\t.map(({ name }) => {\r\n\t\t\tconst store_name = name.slice(1);\r\n\t\t\treturn b`\r\n\t\t\t\t${component.compile_options.dev && b`@validate_store(${store_name}, '${store_name}');`}\r\n\t\t\t\t${`$$unsubscribe_${store_name}`} = @subscribe(${store_name}, #value => ${name} = #value)\r\n\t\t\t`;\r\n\t\t});\r\n\tconst reactive_store_unsubscriptions = reactive_stores.map(\r\n\t\t({ name }) => b`${`$$unsubscribe_${name.slice(1)}`}()`\r\n\t);\r\n\r\n\tconst reactive_store_declarations = reactive_stores\r\n\t\t.map(({ name }) => {\r\n\t\t\tconst store_name = name.slice(1);\r\n\t\t\tconst store = component.var_lookup.get(store_name);\r\n\r\n\t\t\tif (store && store.reassigned) {\r\n\t\t\t\tconst unsubscribe = `$$unsubscribe_${store_name}`;\r\n\t\t\t\tconst subscribe = `$$subscribe_${store_name}`;\r\n\r\n\t\t\t\treturn b`let ${name}, ${unsubscribe} = @noop, ${subscribe} = () => (${unsubscribe}(), ${unsubscribe} = @subscribe(${store_name}, $$value => ${name} = $$value), ${store_name})`;\r\n\t\t\t}\r\n\t\t\treturn b`let ${name}, ${`$$unsubscribe_${store_name}`};`;\r\n\t\t});\r\n\r\n\t// instrument get/set store value\r\n\tif (component.ast.instance) {\r\n\t\tlet scope = component.instance_scope;\r\n\t\tconst map = component.instance_scope_map;\r\n\r\n\t\twalk(component.ast.instance.content, {\r\n\t\t\tenter(node: Node) {\r\n\t\t\t\tif (map.has(node)) {\r\n\t\t\t\t\tscope = map.get(node);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tleave(node: Node) {\r\n\t\t\t\tif (map.has(node)) {\r\n\t\t\t\t\tscope = scope.parent;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (node.type === 'AssignmentExpression' || node.type === 'UpdateExpression') {\r\n\t\t\t\t\tconst assignee = node.type === 'AssignmentExpression' ? node.left : node.argument;\r\n\t\t\t\t\tconst names = new Set(extract_names(assignee as Node));\r\n\t\t\t\t\tconst to_invalidate = new Set<string>();\r\n\r\n\t\t\t\t\tfor (const name of names) {\r\n\t\t\t\t\t\tconst variable = component.var_lookup.get(name);\r\n\t\t\t\t\t\tif (variable &&\r\n\t\t\t\t\t\t\t!variable.hoistable &&\r\n\t\t\t\t\t\t\t!variable.global &&\r\n\t\t\t\t\t\t\t!variable.module &&\r\n\t\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\tvariable.subscribable || variable.name[0] === '$'\r\n\t\t\t\t\t\t\t)) {\r\n\t\t\t\t\t\t\t\tto_invalidate.add(variable.name);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (to_invalidate.size) {\r\n\t\t\t\t\t\tthis.replace(\r\n\t\t\t\t\t\t\tinvalidate(\r\n\t\t\t\t\t\t\t\t{ component } as any,\r\n\t\t\t\t\t\t\t\tscope,\r\n\t\t\t\t\t\t\t\tnode,\r\n\t\t\t\t\t\t\t\tto_invalidate,\r\n\t\t\t\t\t\t\t\ttrue\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tcomponent.rewrite_props(({ name, reassigned }) => {\r\n\t\tconst value = `$${name}`;\r\n\r\n\t\tlet insert = reassigned\r\n\t\t\t? b`${`$$subscribe_${name}`}()`\r\n\t\t\t: b`${`$$unsubscribe_${name}`} = @subscribe(${name}, #value => $${value} = #value)`;\r\n\r\n\t\tif (component.compile_options.dev) {\r\n\t\t\tinsert = b`@validate_store(${name}, '${name}'); ${insert}`;\r\n\t\t}\r\n\r\n\t\treturn insert;\r\n\t});\r\n\r\n\tconst instance_javascript = component.extract_javascript(component.ast.instance);\r\n\r\n\t// TODO only do this for props with a default value\r\n\tconst parent_bindings = instance_javascript\r\n\t\t? component.vars\r\n\t\t\t.filter(variable => !variable.module && variable.export_name)\r\n\t\t\t.map(prop => {\r\n\t\t\t\treturn b`if ($$props.${prop.export_name} === void 0 && $$bindings.${prop.export_name} && ${prop.name} !== void 0) $$bindings.${prop.export_name}(${prop.name});`;\r\n\t\t\t})\r\n\t\t: [];\r\n\r\n\tconst injected = Array.from(component.injected_reactive_declaration_vars).filter(name => {\r\n\t\tconst variable = component.var_lookup.get(name);\r\n\t\treturn variable.injected;\r\n\t});\r\n\r\n\tconst reactive_declarations = component.reactive_declarations.map(d => {\r\n\t\tconst body: Statement = (d.node as LabeledStatement).body;\r\n\r\n\t\tlet statement = b`${body}`;\r\n\r\n\t\tif (!d.declaration) { // TODO do not add label if it's not referenced\r\n\t\t\tstatement = b`$: { ${statement} }`;\r\n\t\t}\r\n\r\n\t\treturn statement;\r\n\t});\r\n\r\n\tconst main = renderer.has_bindings\r\n\t\t? b`\r\n\t\t\tlet $$settled;\r\n\t\t\tlet $$rendered;\r\n\r\n\t\t\tdo {\r\n\t\t\t\t$$settled = true;\r\n\r\n\t\t\t\t${reactive_declarations}\r\n\r\n\t\t\t\t$$rendered = ${literal};\r\n\t\t\t} while (!$$settled);\r\n\r\n\t\t\t${reactive_store_unsubscriptions}\r\n\r\n\t\t\treturn $$rendered;\r\n\t\t`\r\n\t\t: b`\r\n\t\t\t${reactive_declarations}\r\n\r\n\t\t\t${reactive_store_unsubscriptions}\r\n\r\n\t\t\treturn ${literal};`;\r\n\r\n\tconst blocks = [\r\n\t\t...injected.map(name => b`let ${name};`),\r\n\t\trest,\r\n\t\tslots,\r\n\t\t...reactive_store_declarations,\r\n\t\t...reactive_store_subscriptions,\r\n\t\tinstance_javascript,\r\n\t\t...parent_bindings,\r\n\t\tcss.code && b`$$result.css.add(#css);`,\r\n\t\tmain\r\n\t].filter(Boolean);\r\n\r\n\tconst css_sourcemap_enabled = check_enable_sourcemap(options.enableSourcemap, 'css');\r\n\r\n\tconst js = b`\r\n\t\t${css.code ? b`\r\n\t\tconst #css = {\r\n\t\t\tcode: \"${css.code}\",\r\n\t\t\tmap: ${css_sourcemap_enabled && css.map ? string_literal(css.map.toString()) : 'null'}\r\n\t\t};` : null}\r\n\r\n\t\t${component.extract_javascript(component.ast.module)}\r\n\r\n\t\t${component.fully_hoisted}\r\n\r\n\t\tconst ${name} = @create_ssr_component(($$result, $$props, $$bindings, #slots) => {\r\n\t\t\t${blocks}\r\n\t\t});\r\n\t`;\r\n\r\n\treturn {js, css};\r\n}\r\n\r\nfunction trim(nodes: TemplateNode[]) {\r\n\tlet start = 0;\r\n\tfor (; start < nodes.length; start += 1) {\r\n\t\tconst node = nodes[start] as Text;\r\n\t\tif (node.type !== 'Text') break;\r\n\r\n\t\tnode.data = node.data.replace(/^\\s+/, '');\r\n\t\tif (node.data) break;\r\n\t}\r\n\r\n\tlet end = nodes.length;\r\n\tfor (; end > start; end -= 1) {\r\n\t\tconst node = nodes[end - 1] as Text;\r\n\t\tif (node.type !== 'Text') break;\r\n\r\n\t\tnode.data = node.data.trimRight();\r\n\t\tif (node.data) break;\r\n\t}\r\n\r\n\treturn nodes.slice(start, end);\r\n}\r\n","import list from '../utils/list';\r\nimport { ModuleFormat } from '../interfaces';\r\nimport { b, x } from 'code-red';\r\nimport { Identifier, ImportDeclaration, ExportNamedDeclaration } from 'estree';\r\n\r\nconst wrappers = { esm, cjs };\r\n\r\ninterface Export {\r\n\tname: string;\r\n\tas: string;\r\n}\r\n\r\nexport default function create_module(\r\n\tprogram: any,\r\n\tformat: ModuleFormat,\r\n\tname: Identifier,\r\n\tbanner: string,\r\n\tsveltePath = 'svelte',\r\n\thelpers: Array<{ name: string; alias: Identifier }>,\r\n\tglobals: Array<{ name: string; alias: Identifier }>,\r\n\timports: ImportDeclaration[],\r\n\tmodule_exports: Export[],\r\n\texports_from: ExportNamedDeclaration[]\r\n) {\r\n\tconst internal_path = `${sveltePath}/internal`;\r\n\r\n\thelpers.sort((a, b) => (a.name < b.name) ? -1 : 1);\r\n\tglobals.sort((a, b) => (a.name < b.name) ? -1 : 1);\r\n\r\n\tconst formatter = wrappers[format];\r\n\r\n\tif (!formatter) {\r\n\t\tthrow new Error(`options.format is invalid (must be ${list(Object.keys(wrappers))})`);\r\n\t}\r\n\r\n\treturn formatter(program, name, banner, sveltePath, internal_path, helpers, globals, imports, module_exports, exports_from);\r\n}\r\n\r\nfunction edit_source(source, sveltePath) {\r\n\treturn source === 'svelte' || source.startsWith('svelte/')\r\n\t\t? source.replace('svelte', sveltePath)\r\n\t\t: source;\r\n}\r\n\r\nfunction get_internal_globals(\r\n\tglobals: Array<{ name: string; alias: Identifier }>,\r\n\thelpers: Array<{ name: string; alias: Identifier }>\r\n) {\r\n\treturn globals.length > 0 && {\r\n\t\ttype: 'VariableDeclaration',\r\n\t\tkind: 'const',\r\n\t\tdeclarations: [{\r\n\t\t\ttype: 'VariableDeclarator',\r\n\t\t\tid: {\r\n\t\t\t\ttype: 'ObjectPattern',\r\n\t\t\t\tproperties: globals.map(g => ({\r\n\t\t\t\t\ttype: 'Property',\r\n\t\t\t\t\tmethod: false,\r\n\t\t\t\t\tshorthand: false,\r\n\t\t\t\t\tcomputed: false,\r\n\t\t\t\t\tkey: { type: 'Identifier', name: g.name },\r\n\t\t\t\t\tvalue: g.alias,\r\n\t\t\t\t\tkind: 'init'\r\n\t\t\t\t}))\r\n\t\t\t},\r\n\t\t\tinit: helpers.find(({ name }) => name === 'globals').alias\r\n\t\t}]\r\n\t};\r\n}\r\n\r\nfunction esm(\r\n\tprogram: any,\r\n\tname: Identifier,\r\n\tbanner: string,\r\n\tsveltePath: string,\r\n\tinternal_path: string,\r\n\thelpers: Array<{ name: string; alias: Identifier }>,\r\n\tglobals: Array<{ name: string; alias: Identifier }>,\r\n\timports: ImportDeclaration[],\r\n\tmodule_exports: Export[],\r\n\texports_from: ExportNamedDeclaration[]\r\n) {\r\n\tconst import_declaration = {\r\n\t\ttype: 'ImportDeclaration',\r\n\t\tspecifiers: helpers.map(h => ({\r\n\t\t\ttype: 'ImportSpecifier',\r\n\t\t\tlocal: h.alias,\r\n\t\t\timported: { type: 'Identifier', name: h.name }\r\n\t\t})),\r\n\t\tsource: { type: 'Literal', value: internal_path }\r\n\t};\r\n\r\n\tconst internal_globals = get_internal_globals(globals, helpers);\r\n\r\n\t// edit user imports\r\n\tfunction rewrite_import(node) {\r\n\t\tconst value = edit_source(node.source.value, sveltePath);\r\n\t\tif (node.source.value !== value) {\r\n\t\t\tnode.source.value = value;\r\n\t\t\tnode.source.raw = null;\r\n\t\t}\r\n\t}\r\n\timports.forEach(rewrite_import);\r\n\texports_from.forEach(rewrite_import);\r\n\r\n\tconst exports = module_exports.length > 0 && {\r\n\t\ttype: 'ExportNamedDeclaration',\r\n\t\tspecifiers: module_exports.map(x => ({\r\n\t\t\ttype: 'Specifier',\r\n\t\t\tlocal: { type: 'Identifier', name: x.name },\r\n\t\t\texported: { type: 'Identifier', name: x.as }\r\n\t\t}))\r\n\t};\r\n\r\n\tprogram.body = b`\r\n\t\t/* ${banner} */\r\n\r\n\t\t${import_declaration}\r\n\t\t${internal_globals}\r\n\t\t${imports}\r\n\t\t${exports_from}\r\n\r\n\t\t${program.body}\r\n\r\n\t\texport default ${name};\r\n\t\t${exports}\r\n\t`;\r\n}\r\n\r\nfunction cjs(\r\n\tprogram: any,\r\n\tname: Identifier,\r\n\tbanner: string,\r\n\tsveltePath: string,\r\n\tinternal_path: string,\r\n\thelpers: Array<{ name: string; alias: Identifier }>,\r\n\tglobals: Array<{ name: string; alias: Identifier }>,\r\n\timports: ImportDeclaration[],\r\n\tmodule_exports: Export[],\r\n\texports_from: ExportNamedDeclaration[]\r\n) {\r\n\tconst internal_requires = {\r\n\t\ttype: 'VariableDeclaration',\r\n\t\tkind: 'const',\r\n\t\tdeclarations: [{\r\n\t\t\ttype: 'VariableDeclarator',\r\n\t\t\tid: {\r\n\t\t\t\ttype: 'ObjectPattern',\r\n\t\t\t\tproperties: helpers.map(h => ({\r\n\t\t\t\t\ttype: 'Property',\r\n\t\t\t\t\tmethod: false,\r\n\t\t\t\t\tshorthand: false,\r\n\t\t\t\t\tcomputed: false,\r\n\t\t\t\t\tkey: { type: 'Identifier', name: h.name },\r\n\t\t\t\t\tvalue: h.alias,\r\n\t\t\t\t\tkind: 'init'\r\n\t\t\t\t}))\r\n\t\t\t},\r\n\t\t\tinit: x`require(\"${internal_path}\")`\r\n\t\t}]\r\n\t};\r\n\r\n\tconst internal_globals = get_internal_globals(globals, helpers);\r\n\r\n\tconst user_requires = imports.map(node => {\r\n\t\tconst init = x`require(\"${edit_source(node.source.value, sveltePath)}\")`;\r\n\t\tif (node.specifiers.length === 0) {\r\n\t\t\treturn b`${init};`;\r\n\t\t}\r\n\t\treturn {\r\n\t\t\ttype: 'VariableDeclaration',\r\n\t\t\tkind: 'const',\r\n\t\t\tdeclarations: [{\r\n\t\t\t\ttype: 'VariableDeclarator',\r\n\t\t\t\tid: node.specifiers[0].type === 'ImportNamespaceSpecifier'\r\n\t\t\t\t\t? { type: 'Identifier', name: node.specifiers[0].local.name }\r\n\t\t\t\t\t: {\r\n\t\t\t\t\t\ttype: 'ObjectPattern',\r\n\t\t\t\t\t\tproperties: node.specifiers.map(s => ({\r\n\t\t\t\t\t\t\ttype: 'Property',\r\n\t\t\t\t\t\t\tmethod: false,\r\n\t\t\t\t\t\t\tshorthand: false,\r\n\t\t\t\t\t\t\tcomputed: false,\r\n\t\t\t\t\t\t\tkey: s.type === 'ImportSpecifier' ? s.imported : { type: 'Identifier', name: 'default' },\r\n\t\t\t\t\t\t\tvalue: s.local,\r\n\t\t\t\t\t\t\tkind: 'init'\r\n\t\t\t\t\t\t}))\r\n\t\t\t\t\t},\r\n\t\t\t\tinit\r\n\t\t\t}]\r\n\t\t};\r\n\t});\r\n\r\n\tconst exports = module_exports.map(x => b`exports.${{ type: 'Identifier', name: x.as }} = ${{ type: 'Identifier', name: x.name }};`);\r\n\r\n\tconst user_exports_from = exports_from.map(node => {\r\n\t\tconst init = x`require(\"${edit_source(node.source.value, sveltePath)}\")`;\r\n\t\treturn node.specifiers.map(specifier => {\r\n\t\t\treturn b`exports.${specifier.exported} = ${init}.${specifier.local};`;\r\n\t\t});\r\n\t});\r\n\r\n\tprogram.body = b`\r\n\t\t/* ${banner} */\r\n\r\n\t\t\"use strict\";\r\n\t\t${internal_requires}\r\n\t\t${internal_globals}\r\n\t\t${user_requires}\r\n\t\t${user_exports_from}\r\n\r\n\t\t${program.body}\r\n\r\n\t\texports.default = ${name};\r\n\t\t${exports}\r\n\t`;\r\n}\r\n","import { encode } from 'sourcemap-codec';\n\nvar BitSet = function BitSet(arg) {\n\tthis.bits = arg instanceof BitSet ? arg.bits.slice() : [];\n};\n\nBitSet.prototype.add = function add (n) {\n\tthis.bits[n >> 5] |= 1 << (n & 31);\n};\n\nBitSet.prototype.has = function has (n) {\n\treturn !!(this.bits[n >> 5] & (1 << (n & 31)));\n};\n\nvar Chunk = function Chunk(start, end, content) {\n\tthis.start = start;\n\tthis.end = end;\n\tthis.original = content;\n\n\tthis.intro = '';\n\tthis.outro = '';\n\n\tthis.content = content;\n\tthis.storeName = false;\n\tthis.edited = false;\n\n\t// we make these non-enumerable, for sanity while debugging\n\tObject.defineProperties(this, {\n\t\tprevious: { writable: true, value: null },\n\t\tnext: { writable: true, value: null },\n\t});\n};\n\nChunk.prototype.appendLeft = function appendLeft (content) {\n\tthis.outro += content;\n};\n\nChunk.prototype.appendRight = function appendRight (content) {\n\tthis.intro = this.intro + content;\n};\n\nChunk.prototype.clone = function clone () {\n\tvar chunk = new Chunk(this.start, this.end, this.original);\n\n\tchunk.intro = this.intro;\n\tchunk.outro = this.outro;\n\tchunk.content = this.content;\n\tchunk.storeName = this.storeName;\n\tchunk.edited = this.edited;\n\n\treturn chunk;\n};\n\nChunk.prototype.contains = function contains (index) {\n\treturn this.start < index && index < this.end;\n};\n\nChunk.prototype.eachNext = function eachNext (fn) {\n\tvar chunk = this;\n\twhile (chunk) {\n\t\tfn(chunk);\n\t\tchunk = chunk.next;\n\t}\n};\n\nChunk.prototype.eachPrevious = function eachPrevious (fn) {\n\tvar chunk = this;\n\twhile (chunk) {\n\t\tfn(chunk);\n\t\tchunk = chunk.previous;\n\t}\n};\n\nChunk.prototype.edit = function edit (content, storeName, contentOnly) {\n\tthis.content = content;\n\tif (!contentOnly) {\n\t\tthis.intro = '';\n\t\tthis.outro = '';\n\t}\n\tthis.storeName = storeName;\n\n\tthis.edited = true;\n\n\treturn this;\n};\n\nChunk.prototype.prependLeft = function prependLeft (content) {\n\tthis.outro = content + this.outro;\n};\n\nChunk.prototype.prependRight = function prependRight (content) {\n\tthis.intro = content + this.intro;\n};\n\nChunk.prototype.split = function split (index) {\n\tvar sliceIndex = index - this.start;\n\n\tvar originalBefore = this.original.slice(0, sliceIndex);\n\tvar originalAfter = this.original.slice(sliceIndex);\n\n\tthis.original = originalBefore;\n\n\tvar newChunk = new Chunk(index, this.end, originalAfter);\n\tnewChunk.outro = this.outro;\n\tthis.outro = '';\n\n\tthis.end = index;\n\n\tif (this.edited) {\n\t\t// TODO is this block necessary?...\n\t\tnewChunk.edit('', false);\n\t\tthis.content = '';\n\t} else {\n\t\tthis.content = originalBefore;\n\t}\n\n\tnewChunk.next = this.next;\n\tif (newChunk.next) { newChunk.next.previous = newChunk; }\n\tnewChunk.previous = this;\n\tthis.next = newChunk;\n\n\treturn newChunk;\n};\n\nChunk.prototype.toString = function toString () {\n\treturn this.intro + this.content + this.outro;\n};\n\nChunk.prototype.trimEnd = function trimEnd (rx) {\n\tthis.outro = this.outro.replace(rx, '');\n\tif (this.outro.length) { return true; }\n\n\tvar trimmed = this.content.replace(rx, '');\n\n\tif (trimmed.length) {\n\t\tif (trimmed !== this.content) {\n\t\t\tthis.split(this.start + trimmed.length).edit('', undefined, true);\n\t\t}\n\t\treturn true;\n\t} else {\n\t\tthis.edit('', undefined, true);\n\n\t\tthis.intro = this.intro.replace(rx, '');\n\t\tif (this.intro.length) { return true; }\n\t}\n};\n\nChunk.prototype.trimStart = function trimStart (rx) {\n\tthis.intro = this.intro.replace(rx, '');\n\tif (this.intro.length) { return true; }\n\n\tvar trimmed = this.content.replace(rx, '');\n\n\tif (trimmed.length) {\n\t\tif (trimmed !== this.content) {\n\t\t\tthis.split(this.end - trimmed.length);\n\t\t\tthis.edit('', undefined, true);\n\t\t}\n\t\treturn true;\n\t} else {\n\t\tthis.edit('', undefined, true);\n\n\t\tthis.outro = this.outro.replace(rx, '');\n\t\tif (this.outro.length) { return true; }\n\t}\n};\n\nvar btoa = function () {\n\tthrow new Error('Unsupported environment: `window.btoa` or `Buffer` should be supported.');\n};\nif (typeof window !== 'undefined' && typeof window.btoa === 'function') {\n\tbtoa = function (str) { return window.btoa(unescape(encodeURIComponent(str))); };\n} else if (typeof Buffer === 'function') {\n\tbtoa = function (str) { return Buffer.from(str, 'utf-8').toString('base64'); };\n}\n\nvar SourceMap = function SourceMap(properties) {\n\tthis.version = 3;\n\tthis.file = properties.file;\n\tthis.sources = properties.sources;\n\tthis.sourcesContent = properties.sourcesContent;\n\tthis.names = properties.names;\n\tthis.mappings = encode(properties.mappings);\n};\n\nSourceMap.prototype.toString = function toString () {\n\treturn JSON.stringify(this);\n};\n\nSourceMap.prototype.toUrl = function toUrl () {\n\treturn 'data:application/json;charset=utf-8;base64,' + btoa(this.toString());\n};\n\nfunction guessIndent(code) {\n\tvar lines = code.split('\\n');\n\n\tvar tabbed = lines.filter(function (line) { return /^\\t+/.test(line); });\n\tvar spaced = lines.filter(function (line) { return /^ {2,}/.test(line); });\n\n\tif (tabbed.length === 0 && spaced.length === 0) {\n\t\treturn null;\n\t}\n\n\t// More lines tabbed than spaced? Assume tabs, and\n\t// default to tabs in the case of a tie (or nothing\n\t// to go on)\n\tif (tabbed.length >= spaced.length) {\n\t\treturn '\\t';\n\t}\n\n\t// Otherwise, we need to guess the multiple\n\tvar min = spaced.reduce(function (previous, current) {\n\t\tvar numSpaces = /^ +/.exec(current)[0].length;\n\t\treturn Math.min(numSpaces, previous);\n\t}, Infinity);\n\n\treturn new Array(min + 1).join(' ');\n}\n\nfunction getRelativePath(from, to) {\n\tvar fromParts = from.split(/[/\\\\]/);\n\tvar toParts = to.split(/[/\\\\]/);\n\n\tfromParts.pop(); // get dirname\n\n\twhile (fromParts[0] === toParts[0]) {\n\t\tfromParts.shift();\n\t\ttoParts.shift();\n\t}\n\n\tif (fromParts.length) {\n\t\tvar i = fromParts.length;\n\t\twhile (i--) { fromParts[i] = '..'; }\n\t}\n\n\treturn fromParts.concat(toParts).join('/');\n}\n\nvar toString = Object.prototype.toString;\n\nfunction isObject(thing) {\n\treturn toString.call(thing) === '[object Object]';\n}\n\nfunction getLocator(source) {\n\tvar originalLines = source.split('\\n');\n\tvar lineOffsets = [];\n\n\tfor (var i = 0, pos = 0; i < originalLines.length; i++) {\n\t\tlineOffsets.push(pos);\n\t\tpos += originalLines[i].length + 1;\n\t}\n\n\treturn function locate(index) {\n\t\tvar i = 0;\n\t\tvar j = lineOffsets.length;\n\t\twhile (i < j) {\n\t\t\tvar m = (i + j) >> 1;\n\t\t\tif (index < lineOffsets[m]) {\n\t\t\t\tj = m;\n\t\t\t} else {\n\t\t\t\ti = m + 1;\n\t\t\t}\n\t\t}\n\t\tvar line = i - 1;\n\t\tvar column = index - lineOffsets[line];\n\t\treturn { line: line, column: column };\n\t};\n}\n\nvar Mappings = function Mappings(hires) {\n\tthis.hires = hires;\n\tthis.generatedCodeLine = 0;\n\tthis.generatedCodeColumn = 0;\n\tthis.raw = [];\n\tthis.rawSegments = this.raw[this.generatedCodeLine] = [];\n\tthis.pending = null;\n};\n\nMappings.prototype.addEdit = function addEdit (sourceIndex, content, loc, nameIndex) {\n\tif (content.length) {\n\t\tvar segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\t\tif (nameIndex >= 0) {\n\t\t\tsegment.push(nameIndex);\n\t\t}\n\t\tthis.rawSegments.push(segment);\n\t} else if (this.pending) {\n\t\tthis.rawSegments.push(this.pending);\n\t}\n\n\tthis.advance(content);\n\tthis.pending = null;\n};\n\nMappings.prototype.addUneditedChunk = function addUneditedChunk (sourceIndex, chunk, original, loc, sourcemapLocations) {\n\tvar originalCharIndex = chunk.start;\n\tvar first = true;\n\n\twhile (originalCharIndex < chunk.end) {\n\t\tif (this.hires || first || sourcemapLocations.has(originalCharIndex)) {\n\t\t\tthis.rawSegments.push([this.generatedCodeColumn, sourceIndex, loc.line, loc.column]);\n\t\t}\n\n\t\tif (original[originalCharIndex] === '\\n') {\n\t\t\tloc.line += 1;\n\t\t\tloc.column = 0;\n\t\t\tthis.generatedCodeLine += 1;\n\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\tthis.generatedCodeColumn = 0;\n\t\t\tfirst = true;\n\t\t} else {\n\t\t\tloc.column += 1;\n\t\t\tthis.generatedCodeColumn += 1;\n\t\t\tfirst = false;\n\t\t}\n\n\t\toriginalCharIndex += 1;\n\t}\n\n\tthis.pending = null;\n};\n\nMappings.prototype.advance = function advance (str) {\n\tif (!str) { return; }\n\n\tvar lines = str.split('\\n');\n\n\tif (lines.length > 1) {\n\t\tfor (var i = 0; i < lines.length - 1; i++) {\n\t\t\tthis.generatedCodeLine++;\n\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t}\n\t\tthis.generatedCodeColumn = 0;\n\t}\n\n\tthis.generatedCodeColumn += lines[lines.length - 1].length;\n};\n\nvar n = '\\n';\n\nvar warned = {\n\tinsertLeft: false,\n\tinsertRight: false,\n\tstoreName: false,\n};\n\nvar MagicString = function MagicString(string, options) {\n\tif ( options === void 0 ) options = {};\n\n\tvar chunk = new Chunk(0, string.length, string);\n\n\tObject.defineProperties(this, {\n\t\toriginal: { writable: true, value: string },\n\t\toutro: { writable: true, value: '' },\n\t\tintro: { writable: true, value: '' },\n\t\tfirstChunk: { writable: true, value: chunk },\n\t\tlastChunk: { writable: true, value: chunk },\n\t\tlastSearchedChunk: { writable: true, value: chunk },\n\t\tbyStart: { writable: true, value: {} },\n\t\tbyEnd: { writable: true, value: {} },\n\t\tfilename: { writable: true, value: options.filename },\n\t\tindentExclusionRanges: { writable: true, value: options.indentExclusionRanges },\n\t\tsourcemapLocations: { writable: true, value: new BitSet() },\n\t\tstoredNames: { writable: true, value: {} },\n\t\tindentStr: { writable: true, value: guessIndent(string) },\n\t});\n\n\tthis.byStart[0] = chunk;\n\tthis.byEnd[string.length] = chunk;\n};\n\nMagicString.prototype.addSourcemapLocation = function addSourcemapLocation (char) {\n\tthis.sourcemapLocations.add(char);\n};\n\nMagicString.prototype.append = function append (content) {\n\tif (typeof content !== 'string') { throw new TypeError('outro content must be a string'); }\n\n\tthis.outro += content;\n\treturn this;\n};\n\nMagicString.prototype.appendLeft = function appendLeft (index, content) {\n\tif (typeof content !== 'string') { throw new TypeError('inserted content must be a string'); }\n\n\tthis._split(index);\n\n\tvar chunk = this.byEnd[index];\n\n\tif (chunk) {\n\t\tchunk.appendLeft(content);\n\t} else {\n\t\tthis.intro += content;\n\t}\n\treturn this;\n};\n\nMagicString.prototype.appendRight = function appendRight (index, content) {\n\tif (typeof content !== 'string') { throw new TypeError('inserted content must be a string'); }\n\n\tthis._split(index);\n\n\tvar chunk = this.byStart[index];\n\n\tif (chunk) {\n\t\tchunk.appendRight(content);\n\t} else {\n\t\tthis.outro += content;\n\t}\n\treturn this;\n};\n\nMagicString.prototype.clone = function clone () {\n\tvar cloned = new MagicString(this.original, { filename: this.filename });\n\n\tvar originalChunk = this.firstChunk;\n\tvar clonedChunk = (cloned.firstChunk = cloned.lastSearchedChunk = originalChunk.clone());\n\n\twhile (originalChunk) {\n\t\tcloned.byStart[clonedChunk.start] = clonedChunk;\n\t\tcloned.byEnd[clonedChunk.end] = clonedChunk;\n\n\t\tvar nextOriginalChunk = originalChunk.next;\n\t\tvar nextClonedChunk = nextOriginalChunk && nextOriginalChunk.clone();\n\n\t\tif (nextClonedChunk) {\n\t\t\tclonedChunk.next = nextClonedChunk;\n\t\t\tnextClonedChunk.previous = clonedChunk;\n\n\t\t\tclonedChunk = nextClonedChunk;\n\t\t}\n\n\t\toriginalChunk = nextOriginalChunk;\n\t}\n\n\tcloned.lastChunk = clonedChunk;\n\n\tif (this.indentExclusionRanges) {\n\t\tcloned.indentExclusionRanges = this.indentExclusionRanges.slice();\n\t}\n\n\tcloned.sourcemapLocations = new BitSet(this.sourcemapLocations);\n\n\tcloned.intro = this.intro;\n\tcloned.outro = this.outro;\n\n\treturn cloned;\n};\n\nMagicString.prototype.generateDecodedMap = function generateDecodedMap (options) {\n\t\tvar this$1$1 = this;\n\n\toptions = options || {};\n\n\tvar sourceIndex = 0;\n\tvar names = Object.keys(this.storedNames);\n\tvar mappings = new Mappings(options.hires);\n\n\tvar locate = getLocator(this.original);\n\n\tif (this.intro) {\n\t\tmappings.advance(this.intro);\n\t}\n\n\tthis.firstChunk.eachNext(function (chunk) {\n\t\tvar loc = locate(chunk.start);\n\n\t\tif (chunk.intro.length) { mappings.advance(chunk.intro); }\n\n\t\tif (chunk.edited) {\n\t\t\tmappings.addEdit(\n\t\t\t\tsourceIndex,\n\t\t\t\tchunk.content,\n\t\t\t\tloc,\n\t\t\t\tchunk.storeName ? names.indexOf(chunk.original) : -1\n\t\t\t);\n\t\t} else {\n\t\t\tmappings.addUneditedChunk(sourceIndex, chunk, this$1$1.original, loc, this$1$1.sourcemapLocations);\n\t\t}\n\n\t\tif (chunk.outro.length) { mappings.advance(chunk.outro); }\n\t});\n\n\treturn {\n\t\tfile: options.file ? options.file.split(/[/\\\\]/).pop() : null,\n\t\tsources: [options.source ? getRelativePath(options.file || '', options.source) : null],\n\t\tsourcesContent: options.includeContent ? [this.original] : [null],\n\t\tnames: names,\n\t\tmappings: mappings.raw,\n\t};\n};\n\nMagicString.prototype.generateMap = function generateMap (options) {\n\treturn new SourceMap(this.generateDecodedMap(options));\n};\n\nMagicString.prototype.getIndentString = function getIndentString () {\n\treturn this.indentStr === null ? '\\t' : this.indentStr;\n};\n\nMagicString.prototype.indent = function indent (indentStr, options) {\n\tvar pattern = /^[^\\r\\n]/gm;\n\n\tif (isObject(indentStr)) {\n\t\toptions = indentStr;\n\t\tindentStr = undefined;\n\t}\n\n\tindentStr = indentStr !== undefined ? indentStr : this.indentStr || '\\t';\n\n\tif (indentStr === '') { return this; } // noop\n\n\toptions = options || {};\n\n\t// Process exclusion ranges\n\tvar isExcluded = {};\n\n\tif (options.exclude) {\n\t\tvar exclusions =\n\t\t\ttypeof options.exclude[0] === 'number' ? [options.exclude] : options.exclude;\n\t\texclusions.forEach(function (exclusion) {\n\t\t\tfor (var i = exclusion[0]; i < exclusion[1]; i += 1) {\n\t\t\t\tisExcluded[i] = true;\n\t\t\t}\n\t\t});\n\t}\n\n\tvar shouldIndentNextCharacter = options.indentStart !== false;\n\tvar replacer = function (match) {\n\t\tif (shouldIndentNextCharacter) { return (\"\" + indentStr + match); }\n\t\tshouldIndentNextCharacter = true;\n\t\treturn match;\n\t};\n\n\tthis.intro = this.intro.replace(pattern, replacer);\n\n\tvar charIndex = 0;\n\tvar chunk = this.firstChunk;\n\n\twhile (chunk) {\n\t\tvar end = chunk.end;\n\n\t\tif (chunk.edited) {\n\t\t\tif (!isExcluded[charIndex]) {\n\t\t\t\tchunk.content = chunk.content.replace(pattern, replacer);\n\n\t\t\t\tif (chunk.content.length) {\n\t\t\t\t\tshouldIndentNextCharacter = chunk.content[chunk.content.length - 1] === '\\n';\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tcharIndex = chunk.start;\n\n\t\t\twhile (charIndex < end) {\n\t\t\t\tif (!isExcluded[charIndex]) {\n\t\t\t\t\tvar char = this.original[charIndex];\n\n\t\t\t\t\tif (char === '\\n') {\n\t\t\t\t\t\tshouldIndentNextCharacter = true;\n\t\t\t\t\t} else if (char !== '\\r' && shouldIndentNextCharacter) {\n\t\t\t\t\t\tshouldIndentNextCharacter = false;\n\n\t\t\t\t\t\tif (charIndex === chunk.start) {\n\t\t\t\t\t\t\tchunk.prependRight(indentStr);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis._splitChunk(chunk, charIndex);\n\t\t\t\t\t\t\tchunk = chunk.next;\n\t\t\t\t\t\t\tchunk.prependRight(indentStr);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcharIndex += 1;\n\t\t\t}\n\t\t}\n\n\t\tcharIndex = chunk.end;\n\t\tchunk = chunk.next;\n\t}\n\n\tthis.outro = this.outro.replace(pattern, replacer);\n\n\treturn this;\n};\n\nMagicString.prototype.insert = function insert () {\n\tthrow new Error(\n\t\t'magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)'\n\t);\n};\n\nMagicString.prototype.insertLeft = function insertLeft (index, content) {\n\tif (!warned.insertLeft) {\n\t\tconsole.warn(\n\t\t\t'magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead'\n\t\t); // eslint-disable-line no-console\n\t\twarned.insertLeft = true;\n\t}\n\n\treturn this.appendLeft(index, content);\n};\n\nMagicString.prototype.insertRight = function insertRight (index, content) {\n\tif (!warned.insertRight) {\n\t\tconsole.warn(\n\t\t\t'magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead'\n\t\t); // eslint-disable-line no-console\n\t\twarned.insertRight = true;\n\t}\n\n\treturn this.prependRight(index, content);\n};\n\nMagicString.prototype.move = function move (start, end, index) {\n\tif (index >= start && index <= end) { throw new Error('Cannot move a selection inside itself'); }\n\n\tthis._split(start);\n\tthis._split(end);\n\tthis._split(index);\n\n\tvar first = this.byStart[start];\n\tvar last = this.byEnd[end];\n\n\tvar oldLeft = first.previous;\n\tvar oldRight = last.next;\n\n\tvar newRight = this.byStart[index];\n\tif (!newRight && last === this.lastChunk) { return this; }\n\tvar newLeft = newRight ? newRight.previous : this.lastChunk;\n\n\tif (oldLeft) { oldLeft.next = oldRight; }\n\tif (oldRight) { oldRight.previous = oldLeft; }\n\n\tif (newLeft) { newLeft.next = first; }\n\tif (newRight) { newRight.previous = last; }\n\n\tif (!first.previous) { this.firstChunk = last.next; }\n\tif (!last.next) {\n\t\tthis.lastChunk = first.previous;\n\t\tthis.lastChunk.next = null;\n\t}\n\n\tfirst.previous = newLeft;\n\tlast.next = newRight || null;\n\n\tif (!newLeft) { this.firstChunk = first; }\n\tif (!newRight) { this.lastChunk = last; }\n\treturn this;\n};\n\nMagicString.prototype.overwrite = function overwrite (start, end, content, options) {\n\tif (typeof content !== 'string') { throw new TypeError('replacement content must be a string'); }\n\n\twhile (start < 0) { start += this.original.length; }\n\twhile (end < 0) { end += this.original.length; }\n\n\tif (end > this.original.length) { throw new Error('end is out of bounds'); }\n\tif (start === end)\n\t\t{ throw new Error(\n\t\t\t'Cannot overwrite a zero-length range – use appendLeft or prependRight instead'\n\t\t); }\n\n\tthis._split(start);\n\tthis._split(end);\n\n\tif (options === true) {\n\t\tif (!warned.storeName) {\n\t\t\tconsole.warn(\n\t\t\t\t'The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string'\n\t\t\t); // eslint-disable-line no-console\n\t\t\twarned.storeName = true;\n\t\t}\n\n\t\toptions = { storeName: true };\n\t}\n\tvar storeName = options !== undefined ? options.storeName : false;\n\tvar contentOnly = options !== undefined ? options.contentOnly : false;\n\n\tif (storeName) {\n\t\tvar original = this.original.slice(start, end);\n\t\tObject.defineProperty(this.storedNames, original, { writable: true, value: true, enumerable: true });\n\t}\n\n\tvar first = this.byStart[start];\n\tvar last = this.byEnd[end];\n\n\tif (first) {\n\t\tvar chunk = first;\n\t\twhile (chunk !== last) {\n\t\t\tif (chunk.next !== this.byStart[chunk.end]) {\n\t\t\t\tthrow new Error('Cannot overwrite across a split point');\n\t\t\t}\n\t\t\tchunk = chunk.next;\n\t\t\tchunk.edit('', false);\n\t\t}\n\n\t\tfirst.edit(content, storeName, contentOnly);\n\t} else {\n\t\t// must be inserting at the end\n\t\tvar newChunk = new Chunk(start, end, '').edit(content, storeName);\n\n\t\t// TODO last chunk in the array may not be the last chunk, if it's moved...\n\t\tlast.next = newChunk;\n\t\tnewChunk.previous = last;\n\t}\n\treturn this;\n};\n\nMagicString.prototype.prepend = function prepend (content) {\n\tif (typeof content !== 'string') { throw new TypeError('outro content must be a string'); }\n\n\tthis.intro = content + this.intro;\n\treturn this;\n};\n\nMagicString.prototype.prependLeft = function prependLeft (index, content) {\n\tif (typeof content !== 'string') { throw new TypeError('inserted content must be a string'); }\n\n\tthis._split(index);\n\n\tvar chunk = this.byEnd[index];\n\n\tif (chunk) {\n\t\tchunk.prependLeft(content);\n\t} else {\n\t\tthis.intro = content + this.intro;\n\t}\n\treturn this;\n};\n\nMagicString.prototype.prependRight = function prependRight (index, content) {\n\tif (typeof content !== 'string') { throw new TypeError('inserted content must be a string'); }\n\n\tthis._split(index);\n\n\tvar chunk = this.byStart[index];\n\n\tif (chunk) {\n\t\tchunk.prependRight(content);\n\t} else {\n\t\tthis.outro = content + this.outro;\n\t}\n\treturn this;\n};\n\nMagicString.prototype.remove = function remove (start, end) {\n\twhile (start < 0) { start += this.original.length; }\n\twhile (end < 0) { end += this.original.length; }\n\n\tif (start === end) { return this; }\n\n\tif (start < 0 || end > this.original.length) { throw new Error('Character is out of bounds'); }\n\tif (start > end) { throw new Error('end must be greater than start'); }\n\n\tthis._split(start);\n\tthis._split(end);\n\n\tvar chunk = this.byStart[start];\n\n\twhile (chunk) {\n\t\tchunk.intro = '';\n\t\tchunk.outro = '';\n\t\tchunk.edit('');\n\n\t\tchunk = end > chunk.end ? this.byStart[chunk.end] : null;\n\t}\n\treturn this;\n};\n\nMagicString.prototype.lastChar = function lastChar () {\n\tif (this.outro.length) { return this.outro[this.outro.length - 1]; }\n\tvar chunk = this.lastChunk;\n\tdo {\n\t\tif (chunk.outro.length) { return chunk.outro[chunk.outro.length - 1]; }\n\t\tif (chunk.content.length) { return chunk.content[chunk.content.length - 1]; }\n\t\tif (chunk.intro.length) { return chunk.intro[chunk.intro.length - 1]; }\n\t} while ((chunk = chunk.previous));\n\tif (this.intro.length) { return this.intro[this.intro.length - 1]; }\n\treturn '';\n};\n\nMagicString.prototype.lastLine = function lastLine () {\n\tvar lineIndex = this.outro.lastIndexOf(n);\n\tif (lineIndex !== -1) { return this.outro.substr(lineIndex + 1); }\n\tvar lineStr = this.outro;\n\tvar chunk = this.lastChunk;\n\tdo {\n\t\tif (chunk.outro.length > 0) {\n\t\t\tlineIndex = chunk.outro.lastIndexOf(n);\n\t\t\tif (lineIndex !== -1) { return chunk.outro.substr(lineIndex + 1) + lineStr; }\n\t\t\tlineStr = chunk.outro + lineStr;\n\t\t}\n\n\t\tif (chunk.content.length > 0) {\n\t\t\tlineIndex = chunk.content.lastIndexOf(n);\n\t\t\tif (lineIndex !== -1) { return chunk.content.substr(lineIndex + 1) + lineStr; }\n\t\t\tlineStr = chunk.content + lineStr;\n\t\t}\n\n\t\tif (chunk.intro.length > 0) {\n\t\t\tlineIndex = chunk.intro.lastIndexOf(n);\n\t\t\tif (lineIndex !== -1) { return chunk.intro.substr(lineIndex + 1) + lineStr; }\n\t\t\tlineStr = chunk.intro + lineStr;\n\t\t}\n\t} while ((chunk = chunk.previous));\n\tlineIndex = this.intro.lastIndexOf(n);\n\tif (lineIndex !== -1) { return this.intro.substr(lineIndex + 1) + lineStr; }\n\treturn this.intro + lineStr;\n};\n\nMagicString.prototype.slice = function slice (start, end) {\n\t\tif ( start === void 0 ) start = 0;\n\t\tif ( end === void 0 ) end = this.original.length;\n\n\twhile (start < 0) { start += this.original.length; }\n\twhile (end < 0) { end += this.original.length; }\n\n\tvar result = '';\n\n\t// find start chunk\n\tvar chunk = this.firstChunk;\n\twhile (chunk && (chunk.start > start || chunk.end <= start)) {\n\t\t// found end chunk before start\n\t\tif (chunk.start < end && chunk.end >= end) {\n\t\t\treturn result;\n\t\t}\n\n\t\tchunk = chunk.next;\n\t}\n\n\tif (chunk && chunk.edited && chunk.start !== start)\n\t\t{ throw new Error((\"Cannot use replaced character \" + start + \" as slice start anchor.\")); }\n\n\tvar startChunk = chunk;\n\twhile (chunk) {\n\t\tif (chunk.intro && (startChunk !== chunk || chunk.start === start)) {\n\t\t\tresult += chunk.intro;\n\t\t}\n\n\t\tvar containsEnd = chunk.start < end && chunk.end >= end;\n\t\tif (containsEnd && chunk.edited && chunk.end !== end)\n\t\t\t{ throw new Error((\"Cannot use replaced character \" + end + \" as slice end anchor.\")); }\n\n\t\tvar sliceStart = startChunk === chunk ? start - chunk.start : 0;\n\t\tvar sliceEnd = containsEnd ? chunk.content.length + end - chunk.end : chunk.content.length;\n\n\t\tresult += chunk.content.slice(sliceStart, sliceEnd);\n\n\t\tif (chunk.outro && (!containsEnd || chunk.end === end)) {\n\t\t\tresult += chunk.outro;\n\t\t}\n\n\t\tif (containsEnd) {\n\t\t\tbreak;\n\t\t}\n\n\t\tchunk = chunk.next;\n\t}\n\n\treturn result;\n};\n\n// TODO deprecate this? not really very useful\nMagicString.prototype.snip = function snip (start, end) {\n\tvar clone = this.clone();\n\tclone.remove(0, start);\n\tclone.remove(end, clone.original.length);\n\n\treturn clone;\n};\n\nMagicString.prototype._split = function _split (index) {\n\tif (this.byStart[index] || this.byEnd[index]) { return; }\n\n\tvar chunk = this.lastSearchedChunk;\n\tvar searchForward = index > chunk.end;\n\n\twhile (chunk) {\n\t\tif (chunk.contains(index)) { return this._splitChunk(chunk, index); }\n\n\t\tchunk = searchForward ? this.byStart[chunk.end] : this.byEnd[chunk.start];\n\t}\n};\n\nMagicString.prototype._splitChunk = function _splitChunk (chunk, index) {\n\tif (chunk.edited && chunk.content.length) {\n\t\t// zero-length edited chunks are a special case (overlapping replacements)\n\t\tvar loc = getLocator(this.original)(index);\n\t\tthrow new Error(\n\t\t\t(\"Cannot split a chunk that has already been edited (\" + (loc.line) + \":\" + (loc.column) + \" – \\\"\" + (chunk.original) + \"\\\")\")\n\t\t);\n\t}\n\n\tvar newChunk = chunk.split(index);\n\n\tthis.byEnd[index] = chunk;\n\tthis.byStart[index] = newChunk;\n\tthis.byEnd[newChunk.end] = newChunk;\n\n\tif (chunk === this.lastChunk) { this.lastChunk = newChunk; }\n\n\tthis.lastSearchedChunk = chunk;\n\treturn true;\n};\n\nMagicString.prototype.toString = function toString () {\n\tvar str = this.intro;\n\n\tvar chunk = this.firstChunk;\n\twhile (chunk) {\n\t\tstr += chunk.toString();\n\t\tchunk = chunk.next;\n\t}\n\n\treturn str + this.outro;\n};\n\nMagicString.prototype.isEmpty = function isEmpty () {\n\tvar chunk = this.firstChunk;\n\tdo {\n\t\tif (\n\t\t\t(chunk.intro.length && chunk.intro.trim()) ||\n\t\t\t(chunk.content.length && chunk.content.trim()) ||\n\t\t\t(chunk.outro.length && chunk.outro.trim())\n\t\t)\n\t\t\t{ return false; }\n\t} while ((chunk = chunk.next));\n\treturn true;\n};\n\nMagicString.prototype.length = function length () {\n\tvar chunk = this.firstChunk;\n\tvar length = 0;\n\tdo {\n\t\tlength += chunk.intro.length + chunk.content.length + chunk.outro.length;\n\t} while ((chunk = chunk.next));\n\treturn length;\n};\n\nMagicString.prototype.trimLines = function trimLines () {\n\treturn this.trim('[\\\\r\\\\n]');\n};\n\nMagicString.prototype.trim = function trim (charType) {\n\treturn this.trimStart(charType).trimEnd(charType);\n};\n\nMagicString.prototype.trimEndAborted = function trimEndAborted (charType) {\n\tvar rx = new RegExp((charType || '\\\\s') + '+$');\n\n\tthis.outro = this.outro.replace(rx, '');\n\tif (this.outro.length) { return true; }\n\n\tvar chunk = this.lastChunk;\n\n\tdo {\n\t\tvar end = chunk.end;\n\t\tvar aborted = chunk.trimEnd(rx);\n\n\t\t// if chunk was trimmed, we have a new lastChunk\n\t\tif (chunk.end !== end) {\n\t\t\tif (this.lastChunk === chunk) {\n\t\t\t\tthis.lastChunk = chunk.next;\n\t\t\t}\n\n\t\t\tthis.byEnd[chunk.end] = chunk;\n\t\t\tthis.byStart[chunk.next.start] = chunk.next;\n\t\t\tthis.byEnd[chunk.next.end] = chunk.next;\n\t\t}\n\n\t\tif (aborted) { return true; }\n\t\tchunk = chunk.previous;\n\t} while (chunk);\n\n\treturn false;\n};\n\nMagicString.prototype.trimEnd = function trimEnd (charType) {\n\tthis.trimEndAborted(charType);\n\treturn this;\n};\nMagicString.prototype.trimStartAborted = function trimStartAborted (charType) {\n\tvar rx = new RegExp('^' + (charType || '\\\\s') + '+');\n\n\tthis.intro = this.intro.replace(rx, '');\n\tif (this.intro.length) { return true; }\n\n\tvar chunk = this.firstChunk;\n\n\tdo {\n\t\tvar end = chunk.end;\n\t\tvar aborted = chunk.trimStart(rx);\n\n\t\tif (chunk.end !== end) {\n\t\t\t// special case...\n\t\t\tif (chunk === this.lastChunk) { this.lastChunk = chunk.next; }\n\n\t\t\tthis.byEnd[chunk.end] = chunk;\n\t\t\tthis.byStart[chunk.next.start] = chunk.next;\n\t\t\tthis.byEnd[chunk.next.end] = chunk.next;\n\t\t}\n\n\t\tif (aborted) { return true; }\n\t\tchunk = chunk.next;\n\t} while (chunk);\n\n\treturn false;\n};\n\nMagicString.prototype.trimStart = function trimStart (charType) {\n\tthis.trimStartAborted(charType);\n\treturn this;\n};\n\nvar hasOwnProp = Object.prototype.hasOwnProperty;\n\nvar Bundle = function Bundle(options) {\n\tif ( options === void 0 ) options = {};\n\n\tthis.intro = options.intro || '';\n\tthis.separator = options.separator !== undefined ? options.separator : '\\n';\n\tthis.sources = [];\n\tthis.uniqueSources = [];\n\tthis.uniqueSourceIndexByFilename = {};\n};\n\nBundle.prototype.addSource = function addSource (source) {\n\tif (source instanceof MagicString) {\n\t\treturn this.addSource({\n\t\t\tcontent: source,\n\t\t\tfilename: source.filename,\n\t\t\tseparator: this.separator,\n\t\t});\n\t}\n\n\tif (!isObject(source) || !source.content) {\n\t\tthrow new Error(\n\t\t\t'bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`'\n\t\t);\n\t}\n\n\t['filename', 'indentExclusionRanges', 'separator'].forEach(function (option) {\n\t\tif (!hasOwnProp.call(source, option)) { source[option] = source.content[option]; }\n\t});\n\n\tif (source.separator === undefined) {\n\t\t// TODO there's a bunch of this sort of thing, needs cleaning up\n\t\tsource.separator = this.separator;\n\t}\n\n\tif (source.filename) {\n\t\tif (!hasOwnProp.call(this.uniqueSourceIndexByFilename, source.filename)) {\n\t\t\tthis.uniqueSourceIndexByFilename[source.filename] = this.uniqueSources.length;\n\t\t\tthis.uniqueSources.push({ filename: source.filename, content: source.content.original });\n\t\t} else {\n\t\t\tvar uniqueSource = this.uniqueSources[this.uniqueSourceIndexByFilename[source.filename]];\n\t\t\tif (source.content.original !== uniqueSource.content) {\n\t\t\t\tthrow new Error((\"Illegal source: same filename (\" + (source.filename) + \"), different contents\"));\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.sources.push(source);\n\treturn this;\n};\n\nBundle.prototype.append = function append (str, options) {\n\tthis.addSource({\n\t\tcontent: new MagicString(str),\n\t\tseparator: (options && options.separator) || '',\n\t});\n\n\treturn this;\n};\n\nBundle.prototype.clone = function clone () {\n\tvar bundle = new Bundle({\n\t\tintro: this.intro,\n\t\tseparator: this.separator,\n\t});\n\n\tthis.sources.forEach(function (source) {\n\t\tbundle.addSource({\n\t\t\tfilename: source.filename,\n\t\t\tcontent: source.content.clone(),\n\t\t\tseparator: source.separator,\n\t\t});\n\t});\n\n\treturn bundle;\n};\n\nBundle.prototype.generateDecodedMap = function generateDecodedMap (options) {\n\t\tvar this$1$1 = this;\n\t\tif ( options === void 0 ) options = {};\n\n\tvar names = [];\n\tthis.sources.forEach(function (source) {\n\t\tObject.keys(source.content.storedNames).forEach(function (name) {\n\t\t\tif (!~names.indexOf(name)) { names.push(name); }\n\t\t});\n\t});\n\n\tvar mappings = new Mappings(options.hires);\n\n\tif (this.intro) {\n\t\tmappings.advance(this.intro);\n\t}\n\n\tthis.sources.forEach(function (source, i) {\n\t\tif (i > 0) {\n\t\t\tmappings.advance(this$1$1.separator);\n\t\t}\n\n\t\tvar sourceIndex = source.filename ? this$1$1.uniqueSourceIndexByFilename[source.filename] : -1;\n\t\tvar magicString = source.content;\n\t\tvar locate = getLocator(magicString.original);\n\n\t\tif (magicString.intro) {\n\t\t\tmappings.advance(magicString.intro);\n\t\t}\n\n\t\tmagicString.firstChunk.eachNext(function (chunk) {\n\t\t\tvar loc = locate(chunk.start);\n\n\t\t\tif (chunk.intro.length) { mappings.advance(chunk.intro); }\n\n\t\t\tif (source.filename) {\n\t\t\t\tif (chunk.edited) {\n\t\t\t\t\tmappings.addEdit(\n\t\t\t\t\t\tsourceIndex,\n\t\t\t\t\t\tchunk.content,\n\t\t\t\t\t\tloc,\n\t\t\t\t\t\tchunk.storeName ? names.indexOf(chunk.original) : -1\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tmappings.addUneditedChunk(\n\t\t\t\t\t\tsourceIndex,\n\t\t\t\t\t\tchunk,\n\t\t\t\t\t\tmagicString.original,\n\t\t\t\t\t\tloc,\n\t\t\t\t\t\tmagicString.sourcemapLocations\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tmappings.advance(chunk.content);\n\t\t\t}\n\n\t\t\tif (chunk.outro.length) { mappings.advance(chunk.outro); }\n\t\t});\n\n\t\tif (magicString.outro) {\n\t\t\tmappings.advance(magicString.outro);\n\t\t}\n\t});\n\n\treturn {\n\t\tfile: options.file ? options.file.split(/[/\\\\]/).pop() : null,\n\t\tsources: this.uniqueSources.map(function (source) {\n\t\t\treturn options.file ? getRelativePath(options.file, source.filename) : source.filename;\n\t\t}),\n\t\tsourcesContent: this.uniqueSources.map(function (source) {\n\t\t\treturn options.includeContent ? source.content : null;\n\t\t}),\n\t\tnames: names,\n\t\tmappings: mappings.raw,\n\t};\n};\n\nBundle.prototype.generateMap = function generateMap (options) {\n\treturn new SourceMap(this.generateDecodedMap(options));\n};\n\nBundle.prototype.getIndentString = function getIndentString () {\n\tvar indentStringCounts = {};\n\n\tthis.sources.forEach(function (source) {\n\t\tvar indentStr = source.content.indentStr;\n\n\t\tif (indentStr === null) { return; }\n\n\t\tif (!indentStringCounts[indentStr]) { indentStringCounts[indentStr] = 0; }\n\t\tindentStringCounts[indentStr] += 1;\n\t});\n\n\treturn (\n\t\tObject.keys(indentStringCounts).sort(function (a, b) {\n\t\t\treturn indentStringCounts[a] - indentStringCounts[b];\n\t\t})[0] || '\\t'\n\t);\n};\n\nBundle.prototype.indent = function indent (indentStr) {\n\t\tvar this$1$1 = this;\n\n\tif (!arguments.length) {\n\t\tindentStr = this.getIndentString();\n\t}\n\n\tif (indentStr === '') { return this; } // noop\n\n\tvar trailingNewline = !this.intro || this.intro.slice(-1) === '\\n';\n\n\tthis.sources.forEach(function (source, i) {\n\t\tvar separator = source.separator !== undefined ? source.separator : this$1$1.separator;\n\t\tvar indentStart = trailingNewline || (i > 0 && /\\r?\\n$/.test(separator));\n\n\t\tsource.content.indent(indentStr, {\n\t\t\texclude: source.indentExclusionRanges,\n\t\t\tindentStart: indentStart, //: trailingNewline || /\\r?\\n$/.test( separator )  //true///\\r?\\n/.test( separator )\n\t\t});\n\n\t\ttrailingNewline = source.content.lastChar() === '\\n';\n\t});\n\n\tif (this.intro) {\n\t\tthis.intro =\n\t\t\tindentStr +\n\t\t\tthis.intro.replace(/^[^\\n]/gm, function (match, index) {\n\t\t\t\treturn index > 0 ? indentStr + match : match;\n\t\t\t});\n\t}\n\n\treturn this;\n};\n\nBundle.prototype.prepend = function prepend (str) {\n\tthis.intro = str + this.intro;\n\treturn this;\n};\n\nBundle.prototype.toString = function toString () {\n\t\tvar this$1$1 = this;\n\n\tvar body = this.sources\n\t\t.map(function (source, i) {\n\t\t\tvar separator = source.separator !== undefined ? source.separator : this$1$1.separator;\n\t\t\tvar str = (i > 0 ? separator : '') + source.content.toString();\n\n\t\t\treturn str;\n\t\t})\n\t\t.join('');\n\n\treturn this.intro + body;\n};\n\nBundle.prototype.isEmpty = function isEmpty () {\n\tif (this.intro.length && this.intro.trim()) { return false; }\n\tif (this.sources.some(function (source) { return !source.content.isEmpty(); })) { return false; }\n\treturn true;\n};\n\nBundle.prototype.length = function length () {\n\treturn this.sources.reduce(\n\t\tfunction (length, source) { return length + source.content.length(); },\n\t\tthis.intro.length\n\t);\n};\n\nBundle.prototype.trimLines = function trimLines () {\n\treturn this.trim('[\\\\r\\\\n]');\n};\n\nBundle.prototype.trim = function trim (charType) {\n\treturn this.trimStart(charType).trimEnd(charType);\n};\n\nBundle.prototype.trimStart = function trimStart (charType) {\n\tvar rx = new RegExp('^' + (charType || '\\\\s') + '+');\n\tthis.intro = this.intro.replace(rx, '');\n\n\tif (!this.intro) {\n\t\tvar source;\n\t\tvar i = 0;\n\n\t\tdo {\n\t\t\tsource = this.sources[i++];\n\t\t\tif (!source) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t} while (!source.content.trimStartAborted(charType));\n\t}\n\n\treturn this;\n};\n\nBundle.prototype.trimEnd = function trimEnd (charType) {\n\tvar rx = new RegExp((charType || '\\\\s') + '+$');\n\n\tvar source;\n\tvar i = this.sources.length - 1;\n\n\tdo {\n\t\tsource = this.sources[i--];\n\t\tif (!source) {\n\t\t\tthis.intro = this.intro.replace(rx, '');\n\t\t\tbreak;\n\t\t}\n\t} while (!source.content.trimEndAborted(charType));\n\n\treturn this;\n};\n\nexport { Bundle, SourceMap, MagicString as default };\n//# sourceMappingURL=magic-string.es.js.map\n","import { Node } from 'estree';\r\n\r\nexport const UNKNOWN = {};\r\n\r\nexport function gather_possible_values(node: Node, set: Set<string | {}>) {\r\n\tif (node.type === 'Literal') {\r\n\t\tset.add(node.value);\r\n\t} else if (node.type === 'ConditionalExpression') {\r\n\t\tgather_possible_values(node.consequent, set);\r\n\t\tgather_possible_values(node.alternate, set);\r\n\t} else {\r\n\t\tset.add(UNKNOWN);\r\n\t}\r\n}\r\n","import MagicString from 'magic-string';\r\nimport Stylesheet from './Stylesheet';\r\nimport { gather_possible_values, UNKNOWN } from './gather_possible_values';\r\nimport { CssNode } from './interfaces';\r\nimport Component from '../Component';\r\nimport Element from '../nodes/Element';\r\nimport { INode } from '../nodes/interfaces';\r\nimport EachBlock from '../nodes/EachBlock';\r\nimport IfBlock from '../nodes/IfBlock';\r\nimport AwaitBlock from '../nodes/AwaitBlock';\r\nimport compiler_errors from '../compiler_errors';\r\n\r\nenum BlockAppliesToNode {\r\n\tNotPossible,\r\n\tPossible,\r\n\tUnknownSelectorType\r\n}\r\nenum NodeExist {\r\n\tProbably = 1,\r\n\tDefinitely = 2,\r\n}\r\n\r\nconst whitelist_attribute_selector = new Map([\r\n\t['details', new Set(['open'])],\r\n\t['dialog', new Set(['open'])]\r\n]);\r\n\r\nexport default class Selector {\r\n\tnode: CssNode;\r\n\tstylesheet: Stylesheet;\r\n\tblocks: Block[];\r\n\tlocal_blocks: Block[];\r\n\tused: boolean;\r\n\r\n\tconstructor(node: CssNode, stylesheet: Stylesheet) {\r\n\t\tthis.node = node;\r\n\t\tthis.stylesheet = stylesheet;\r\n\r\n\t\tthis.blocks = group_selectors(node);\r\n\r\n\t\t// take trailing :global(...) selectors out of consideration\r\n\t\tlet i = this.blocks.length;\r\n\t\twhile (i > 0) {\r\n\t\t\tif (!this.blocks[i - 1].global) break;\r\n\t\t\ti -= 1;\r\n\t\t}\r\n\r\n\t\tthis.local_blocks = this.blocks.slice(0, i);\r\n\r\n\t\tconst host_only = this.blocks.length === 1 && this.blocks[0].host;\r\n\t\tconst root_only = this.blocks.length === 1 && this.blocks[0].root;\r\n\r\n\t\tthis.used = this.local_blocks.length === 0 || host_only || root_only;\r\n\t}\r\n\r\n\tapply(node: Element) {\r\n\t\tconst to_encapsulate: Array<{ node: Element, block: Block }> = [];\r\n\r\n\t\tapply_selector(this.local_blocks.slice(), node, to_encapsulate);\r\n\r\n\t\tif (to_encapsulate.length > 0) {\r\n\t\t\tto_encapsulate.forEach(({ node, block }) => {\r\n\t\t\t\tthis.stylesheet.nodes_with_css_class.add(node);\r\n\t\t\t\tblock.should_encapsulate = true;\r\n\t\t\t});\r\n\r\n\t\t\tthis.used = true;\r\n\t\t}\r\n\t}\r\n\r\n\tminify(code: MagicString) {\r\n\t\tlet c: number = null;\r\n\t\tthis.blocks.forEach((block, i) => {\r\n\t\t\tif (i > 0) {\r\n\t\t\t\tif (block.start - c > 1) {\r\n\t\t\t\t\tcode.overwrite(c, block.start, block.combinator.name || ' ');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tc = block.end;\r\n\t\t});\r\n\t}\r\n\r\n\ttransform(code: MagicString, attr: string, max_amount_class_specificity_increased: number) {\r\n\t\tconst amount_class_specificity_to_increase = max_amount_class_specificity_increased - this.blocks.filter(block => block.should_encapsulate).length;\r\n\r\n\t\tfunction remove_global_pseudo_class(selector: CssNode) {\r\n\t\t\tconst first = selector.children[0];\r\n\t\t\tconst last = selector.children[selector.children.length - 1];\r\n\t\t\tcode.remove(selector.start, first.start).remove(last.end, selector.end);\r\n\t\t}\r\n\r\n\t\tfunction encapsulate_block(block: Block, attr: string) {\r\n\t\t\tfor (const selector of block.selectors) {\r\n\t\t\t\tif (selector.type === 'PseudoClassSelector' && selector.name === 'global') {\r\n\t\t\t\t\tremove_global_pseudo_class(selector);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tlet i = block.selectors.length;\r\n\r\n\t\t\twhile (i--) {\r\n\t\t\t\tconst selector = block.selectors[i];\r\n\t\t\t\tif (selector.type === 'PseudoElementSelector' || selector.type === 'PseudoClassSelector') {\r\n\t\t\t\t\tif (selector.name !== 'root' && selector.name !== 'host') {\r\n\t\t\t\t\t\tif (i === 0) code.prependRight(selector.start, attr);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (selector.type === 'TypeSelector' && selector.name === '*') {\r\n\t\t\t\t\tcode.overwrite(selector.start, selector.end, attr);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcode.appendLeft(selector.end, attr);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.blocks.forEach((block, index) => {\r\n\t\t\tif (block.global) {\r\n\t\t\t\tremove_global_pseudo_class(block.selectors[0]);\r\n\t\t\t}\r\n\t\t\tif (block.should_encapsulate) encapsulate_block(block, index === this.blocks.length - 1 ? attr.repeat(amount_class_specificity_to_increase + 1) : attr);\r\n\t\t});\r\n\t}\r\n\r\n\tvalidate(component: Component) {\r\n\t\tlet start = 0;\r\n\t\tlet end = this.blocks.length;\r\n\r\n\t\tfor (; start < end; start += 1) {\r\n\t\t\tif (!this.blocks[start].global) break;\r\n\t\t}\r\n\r\n\t\tfor (; end > start; end -= 1) {\r\n\t\t\tif (!this.blocks[end - 1].global) break;\r\n\t\t}\r\n\r\n\t\tfor (let i = start; i < end; i += 1) {\r\n\t\t\tif (this.blocks[i].global) {\r\n\t\t\t\treturn component.error(this.blocks[i].selectors[0], compiler_errors.css_invalid_global);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.validate_global_with_multiple_selectors(component);\r\n\t\tthis.validate_invalid_combinator_without_selector(component);\r\n\t}\r\n\r\n\tvalidate_global_with_multiple_selectors(component: Component) {\r\n\t\tif (this.blocks.length === 1 && this.blocks[0].selectors.length === 1) {\r\n\t\t\t// standalone :global() with multiple selectors is OK\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tfor (const block of this.blocks) {\r\n\t\t\tfor (const selector of block.selectors) {\r\n\t\t\t\tif (selector.type === 'PseudoClassSelector' && selector.name === 'global') {\r\n\t\t\t\t\tif (/[^\\\\],(?!([^([]+[^\\\\]|[^([\\\\])[)\\]])/.test(selector.children[0].value)) {\r\n\t\t\t\t\t\tcomponent.error(selector, compiler_errors.css_invalid_global_selector);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tvalidate_invalid_combinator_without_selector(component: Component) {\r\n\t\tfor (let i = 0; i < this.blocks.length; i++) {\r\n\t\t\tconst block = this.blocks[i];\r\n\t\t\tif (block.combinator && block.selectors.length === 0) {\r\n\t\t\t\tcomponent.error(this.node, compiler_errors.css_invalid_selector(component.source.slice(this.node.start, this.node.end)));\r\n\t\t\t}\r\n\t\t\tif (!block.combinator && block.selectors.length === 0) {\r\n\t\t\t\tcomponent.error(this.node, compiler_errors.css_invalid_selector(component.source.slice(this.node.start, this.node.end)));\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tget_amount_class_specificity_increased() {\r\n\t\tlet count = 0;\r\n\t\tfor (const block of this.blocks) {\r\n\t\t\tif (block.should_encapsulate) {\r\n\t\t\t\tcount ++;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn count;\r\n\t}\r\n}\r\n\r\nfunction apply_selector(blocks: Block[], node: Element, to_encapsulate: Array<{ node: Element, block: Block }>): boolean {\r\n\tconst block = blocks.pop();\r\n\tif (!block) return false;\r\n\r\n\tif (!node) {\r\n\t\treturn (\r\n\t\t\t(block.global && blocks.every(block => block.global)) ||\r\n\t\t\t(block.host && blocks.length === 0)\r\n\t\t);\r\n\t}\r\n\r\n\tswitch (block_might_apply_to_node(block, node)) {\r\n\t\tcase BlockAppliesToNode.NotPossible:\r\n\t\t\treturn false;\r\n\r\n\t\tcase BlockAppliesToNode.UnknownSelectorType:\r\n\t\t// bail. TODO figure out what these could be\r\n\t\t\tto_encapsulate.push({ node, block });\r\n\t\t\treturn true;\r\n\t}\r\n\r\n\tif (block.combinator) {\r\n\t\tif (block.combinator.type === 'WhiteSpace') {\r\n\t\t\tfor (const ancestor_block of blocks) {\r\n\t\t\t\tif (ancestor_block.global) {\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (ancestor_block.host) {\r\n\t\t\t\t\tto_encapsulate.push({ node, block });\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet parent = node;\r\n\t\t\t\twhile (parent = get_element_parent(parent)) {\r\n\t\t\t\t\tif (block_might_apply_to_node(ancestor_block, parent) !== BlockAppliesToNode.NotPossible) {\r\n\t\t\t\t\t\tto_encapsulate.push({ node: parent, block: ancestor_block });\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (to_encapsulate.length) {\r\n\t\t\t\t\tto_encapsulate.push({ node, block });\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (blocks.every(block => block.global)) {\r\n\t\t\t\tto_encapsulate.push({ node, block });\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\treturn false;\r\n\t\t} else if (block.combinator.name === '>') {\r\n\t\t\tconst has_global_parent = blocks.every(block => block.global);\r\n\t\t\tif (has_global_parent || apply_selector(blocks, get_element_parent(node), to_encapsulate)) {\r\n\t\t\t\tto_encapsulate.push({ node, block });\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\treturn false;\r\n\t\t} else if (block.combinator.name === '+' || block.combinator.name === '~') {\r\n\t\t\tconst siblings = get_possible_element_siblings(node, block.combinator.name === '+');\r\n\t\t\tlet has_match = false;\r\n\r\n\t\t\t// NOTE: if we have :global(), we couldn't figure out what is selected within `:global` due to the\r\n\t\t\t// css-tree limitation that does not parse the inner selector of :global\r\n\t\t\t// so unless we are sure there will be no sibling to match, we will consider it as matched\r\n\t\t\tconst has_global = blocks.some(block => block.global);\r\n\t\t\tif (has_global) {\r\n\t\t\t\tif (siblings.size === 0 && get_element_parent(node) !== null) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tto_encapsulate.push({ node, block });\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tfor (const possible_sibling of siblings.keys()) {\r\n\t\t\t\tif (apply_selector(blocks.slice(), possible_sibling, to_encapsulate)) {\r\n\t\t\t\t\tto_encapsulate.push({ node, block });\r\n\t\t\t\t\thas_match = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn has_match;\r\n\t\t}\r\n\r\n\t\t// TODO other combinators\r\n\t\tto_encapsulate.push({ node, block });\r\n\t\treturn true;\r\n\t}\r\n\r\n\tto_encapsulate.push({ node, block });\r\n\treturn true;\r\n}\r\n\r\nfunction block_might_apply_to_node(block: Block, node: Element): BlockAppliesToNode {\r\n\tlet i = block.selectors.length;\r\n\r\n\twhile (i--) {\r\n\t\tconst selector = block.selectors[i];\r\n\t\tconst name = typeof selector.name === 'string' && selector.name.replace(/\\\\(.)/g, '$1');\r\n\r\n\t\tif (selector.type === 'PseudoClassSelector' && (name === 'host' || name === 'root')) {\r\n\t\t\treturn BlockAppliesToNode.NotPossible;\r\n\t\t}\r\n\r\n\t\tif (block.selectors.length === 1 && selector.type === 'PseudoClassSelector' && name === 'global') {\r\n\t\t\treturn BlockAppliesToNode.NotPossible;\r\n\t\t}\r\n\r\n\t\tif (selector.type === 'PseudoClassSelector' || selector.type === 'PseudoElementSelector') {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tif (selector.type === 'ClassSelector') {\r\n\t\t\tif (!attribute_matches(node, 'class', name, '~=', false) && !node.classes.some(c => c.name === name)) return BlockAppliesToNode.NotPossible;\r\n\t\t} else if (selector.type === 'IdSelector') {\r\n\t\t\tif (!attribute_matches(node, 'id', name, '=', false)) return BlockAppliesToNode.NotPossible;\r\n\t\t} else if (selector.type === 'AttributeSelector') {\r\n\t\t\tif (\r\n\t\t\t\t!(whitelist_attribute_selector.has(node.name.toLowerCase()) && whitelist_attribute_selector.get(node.name.toLowerCase()).has(selector.name.name.toLowerCase())) &&\r\n\t\t\t\t!attribute_matches(node, selector.name.name, selector.value && unquote(selector.value), selector.matcher, selector.flags)) {\r\n\t\t\t\treturn BlockAppliesToNode.NotPossible;\r\n\t\t\t}\r\n\t\t} else if (selector.type === 'TypeSelector') {\r\n\t\t\tif (node.name.toLowerCase() !== name.toLowerCase() && name !== '*') return BlockAppliesToNode.NotPossible;\r\n\t\t} else {\r\n\t\t\treturn BlockAppliesToNode.UnknownSelectorType;\r\n\t\t}\r\n\t}\r\n\r\n\treturn BlockAppliesToNode.Possible;\r\n}\r\n\r\nfunction test_attribute(operator, expected_value, case_insensitive, value) {\r\n\tif (case_insensitive) {\r\n\t\texpected_value = expected_value.toLowerCase();\r\n\t\tvalue = value.toLowerCase();\r\n\t}\r\n\tswitch (operator) {\r\n\t\tcase '=': return value === expected_value;\r\n\t\tcase '~=': return value.split(/\\s/).includes(expected_value);\r\n\t\tcase '|=': return `${value}-`.startsWith(`${expected_value}-`);\r\n\t\tcase '^=': return value.startsWith(expected_value);\r\n\t\tcase '$=': return value.endsWith(expected_value);\r\n\t\tcase '*=': return value.includes(expected_value);\r\n\t\tdefault: throw new Error(\"this shouldn't happen\");\r\n\t}\r\n}\r\n\r\nfunction attribute_matches(node: CssNode, name: string, expected_value: string, operator: string, case_insensitive: boolean) {\r\n\tconst spread = node.attributes.find(attr => attr.type === 'Spread');\r\n\tif (spread) return true;\r\n\r\n\tif (node.bindings.some((binding: CssNode) => binding.name === name)) return true;\r\n\r\n\tconst attr = node.attributes.find((attr: CssNode) => attr.name === name);\r\n\tif (!attr) return false;\r\n\tif (attr.is_true) return operator === null;\r\n\tif (!expected_value) return true;\r\n\r\n\tif (attr.chunks.length === 1) {\r\n\t\tconst value = attr.chunks[0];\r\n\t\tif (!value) return false;\r\n\t\tif (value.type === 'Text') return test_attribute(operator, expected_value, case_insensitive, value.data);\r\n\t}\r\n\r\n\tconst possible_values = new Set();\r\n\r\n\tlet prev_values = [];\r\n\tfor (const chunk of attr.chunks) {\r\n\t\tconst current_possible_values = new Set();\r\n\t\tif (chunk.type === 'Text') {\r\n\t\t\tcurrent_possible_values.add(chunk.data);\r\n\t\t} else {\r\n\t\t\tgather_possible_values(chunk.node, current_possible_values);\r\n\t\t}\r\n\r\n\t\t// impossible to find out all combinations\r\n\t\tif (current_possible_values.has(UNKNOWN)) return true;\r\n\r\n\t\tif (prev_values.length > 0) {\r\n\t\t\tconst start_with_space = [];\r\n\t\t\tconst remaining = [];\r\n\t\t\tcurrent_possible_values.forEach((current_possible_value: string) => {\r\n\t\t\t\tif (/^\\s/.test(current_possible_value)) {\r\n\t\t\t\t\tstart_with_space.push(current_possible_value);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tremaining.push(current_possible_value);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif (remaining.length > 0) {\r\n\t\t\t\tif (start_with_space.length > 0) {\r\n\t\t\t\t\tprev_values.forEach(prev_value => possible_values.add(prev_value));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst combined = [];\r\n\t\t\t\tprev_values.forEach((prev_value: string) => {\r\n\t\t\t\t\tremaining.forEach((value: string) => {\r\n\t\t\t\t\t\tcombined.push(prev_value + value);\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t\tprev_values = combined;\r\n\r\n\t\t\t\tstart_with_space.forEach((value: string) => {\r\n\t\t\t\t\tif (/\\s$/.test(value)) {\r\n\t\t\t\t\t\tpossible_values.add(value);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tprev_values.push(value);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tcontinue;\r\n\t\t\t} else {\r\n\t\t\t\tprev_values.forEach(prev_value => possible_values.add(prev_value));\r\n\t\t\t\tprev_values = [];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tcurrent_possible_values.forEach((current_possible_value: string) => {\r\n\t\t\tif (/\\s$/.test(current_possible_value)) {\r\n\t\t\t\tpossible_values.add(current_possible_value);\r\n\t\t\t} else {\r\n\t\t\t\tprev_values.push(current_possible_value);\r\n\t\t\t}\r\n\t\t});\r\n\t\tif (prev_values.length < current_possible_values.size) {\r\n\t\t\tprev_values.push(' ');\r\n\t\t}\r\n\r\n\t\tif (prev_values.length > 20) {\r\n\t\t\t// might grow exponentially, bail out\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\tprev_values.forEach(prev_value => possible_values.add(prev_value));\r\n\r\n\tif (possible_values.has(UNKNOWN)) return true;\r\n\r\n\tfor (const value of possible_values) {\r\n\t\tif (test_attribute(operator, expected_value, case_insensitive, value)) return true;\r\n\t}\r\n\r\n\treturn false;\r\n}\r\n\r\nfunction unquote(value: CssNode) {\r\n\tif (value.type === 'Identifier') return value.name;\r\n\tconst str = value.value;\r\n\tif (str[0] === str[str.length - 1] && str[0] === \"'\" || str[0] === '\"') {\r\n\t\treturn str.slice(1, str.length - 1);\r\n\t}\r\n\treturn str;\r\n}\r\n\r\nfunction get_element_parent(node: Element): Element | null {\r\n\tlet parent: INode = node;\r\n\twhile ((parent = parent.parent) && parent.type !== 'Element');\r\n\treturn parent as Element | null;\r\n}\r\n\r\nfunction get_possible_element_siblings(node: INode, adjacent_only: boolean): Map<Element, NodeExist> {\r\n\tconst result: Map<Element, NodeExist> = new Map();\r\n\tlet prev: INode = node;\r\n\twhile (prev = prev.prev) {\r\n\t\tif (prev.type === 'Element') {\r\n\t\t\tif (!prev.attributes.find(attr => attr.type === 'Attribute' && attr.name.toLowerCase() === 'slot')) {\r\n\t\t\t\tresult.set(prev, NodeExist.Definitely);\r\n\t\t\t}\r\n\r\n\t\t\tif (adjacent_only) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t} else if (prev.type === 'EachBlock' || prev.type === 'IfBlock' || prev.type === 'AwaitBlock') {\r\n\t\t\tconst possible_last_child = get_possible_last_child(prev, adjacent_only);\r\n\r\n\t\t\tadd_to_map(possible_last_child, result);\r\n\t\t\tif (adjacent_only && has_definite_elements(possible_last_child)) {\r\n\t\t\t\treturn result;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tif (!prev || !adjacent_only) {\r\n\t\tlet parent: INode = node;\r\n\t\tlet skip_each_for_last_child = node.type === 'ElseBlock';\r\n\t\twhile ((parent = parent.parent) && (parent.type === 'EachBlock' || parent.type === 'IfBlock' || parent.type === 'ElseBlock' || parent.type === 'AwaitBlock')) {\r\n\t\t\tconst possible_siblings = get_possible_element_siblings(parent, adjacent_only);\r\n\t\t\tadd_to_map(possible_siblings, result);\r\n\r\n\t\t\tif (parent.type === 'EachBlock') {\r\n\t\t\t\t// first child of each block can select the last child of each block as previous sibling\r\n\t\t\t\tif (skip_each_for_last_child) {\r\n\t\t\t\t\tskip_each_for_last_child = false;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tadd_to_map(get_possible_last_child(parent, adjacent_only), result);\r\n\t\t\t\t}\r\n\t\t\t} else if (parent.type === 'ElseBlock') {\r\n\t\t\t\tskip_each_for_last_child = true;\r\n\t\t\t\tparent = parent.parent;\r\n\t\t\t}\r\n\r\n\t\t\tif (adjacent_only && has_definite_elements(possible_siblings)) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn result;\r\n}\r\n\r\nfunction get_possible_last_child(block: EachBlock | IfBlock | AwaitBlock, adjacent_only: boolean): Map<Element, NodeExist> {\r\n\tconst result: Map<Element, NodeExist> = new Map();\r\n\r\n\tif (block.type === 'EachBlock') {\r\n\t\tconst each_result: Map<Element, NodeExist> = loop_child(block.children, adjacent_only);\r\n\t\tconst else_result: Map<Element, NodeExist> = block.else ? loop_child(block.else.children, adjacent_only) : new Map();\r\n\r\n\t\tconst not_exhaustive = !has_definite_elements(else_result);\r\n\r\n\t\tif (not_exhaustive) {\r\n\t\t\tmark_as_probably(each_result);\r\n\t\t\tmark_as_probably(else_result);\r\n\t\t}\r\n\t\tadd_to_map(each_result, result);\r\n\t\tadd_to_map(else_result, result);\r\n\t} else if (block.type === 'IfBlock') {\r\n\t\tconst if_result: Map<Element, NodeExist> = loop_child(block.children, adjacent_only);\r\n\t\tconst else_result: Map<Element, NodeExist> = block.else ? loop_child(block.else.children, adjacent_only) : new Map();\r\n\r\n\t\tconst not_exhaustive = !has_definite_elements(if_result) || !has_definite_elements(else_result);\r\n\r\n\t\tif (not_exhaustive) {\r\n\t\t\tmark_as_probably(if_result);\r\n\t\t\tmark_as_probably(else_result);\r\n\t\t}\r\n\r\n\t\tadd_to_map(if_result, result);\r\n\t\tadd_to_map(else_result, result);\r\n\t} else if (block.type === 'AwaitBlock') {\r\n\t\tconst pending_result: Map<Element, NodeExist> = block.pending ? loop_child(block.pending.children, adjacent_only) : new Map();\r\n\t\tconst then_result: Map<Element, NodeExist> = block.then ? loop_child(block.then.children, adjacent_only) : new Map();\r\n\t\tconst catch_result: Map<Element, NodeExist> = block.catch ? loop_child(block.catch.children, adjacent_only) : new Map();\r\n\r\n\t\tconst not_exhaustive = !has_definite_elements(pending_result) || !has_definite_elements(then_result) || !has_definite_elements(catch_result);\r\n\r\n\t\tif (not_exhaustive) {\r\n\t\t\tmark_as_probably(pending_result);\r\n\t\t\tmark_as_probably(then_result);\r\n\t\t\tmark_as_probably(catch_result);\r\n\t\t}\r\n\r\n\t\tadd_to_map(pending_result, result);\r\n\t\tadd_to_map(then_result, result);\r\n\t\tadd_to_map(catch_result, result);\r\n\t}\r\n\r\n\treturn result;\r\n}\r\n\r\nfunction has_definite_elements(result: Map<Element, NodeExist>): boolean {\r\n\tif (result.size === 0) return false;\r\n\tfor (const exist of result.values()) {\r\n\t\tif (exist === NodeExist.Definitely) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\treturn false;\r\n}\r\n\r\nfunction add_to_map(from: Map<Element, NodeExist>, to: Map<Element, NodeExist>) {\r\n\tfrom.forEach((exist, element) => {\r\n\t\tto.set(element, higher_existence(exist, to.get(element)));\r\n\t});\r\n}\r\n\r\nfunction higher_existence(exist1: NodeExist | null, exist2: NodeExist | null): NodeExist {\r\n\tif (exist1 === undefined || exist2 === undefined) return exist1 || exist2;\r\n\treturn exist1 > exist2 ? exist1 : exist2;\r\n}\r\n\r\nfunction mark_as_probably(result: Map<Element, NodeExist>) {\r\n\tfor (const key of result.keys()) {\r\n\t\tresult.set(key, NodeExist.Probably);\r\n\t}\r\n}\r\n\r\nfunction loop_child(children: INode[], adjacent_only: boolean) {\r\n\tconst result: Map<Element, NodeExist> = new Map();\r\n\tfor (let i = children.length - 1; i >= 0; i--) {\r\n\t\tconst child = children[i];\r\n\t\tif (child.type === 'Element') {\r\n\t\t\tresult.set(child, NodeExist.Definitely);\r\n\t\t\tif (adjacent_only) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t} else if (child.type === 'EachBlock' || child.type === 'IfBlock' || child.type === 'AwaitBlock') {\r\n\t\t\tconst child_result = get_possible_last_child(child, adjacent_only);\r\n\t\t\tadd_to_map(child_result, result);\r\n\t\t\tif (adjacent_only && has_definite_elements(child_result)) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn result;\r\n}\r\n\r\nclass Block {\r\n\thost: boolean;\r\n\troot: boolean;\r\n\tcombinator: CssNode;\r\n\tselectors: CssNode[];\r\n\tstart: number;\r\n\tend: number;\r\n\tshould_encapsulate: boolean;\r\n\r\n\tconstructor(combinator: CssNode) {\r\n\t\tthis.combinator = combinator;\r\n\t\tthis.host = false;\r\n\t\tthis.root = false;\r\n\t\tthis.selectors = [];\r\n\r\n\t\tthis.start = null;\r\n\t\tthis.end = null;\r\n\r\n\t\tthis.should_encapsulate = false;\r\n\t}\r\n\r\n\tadd(selector: CssNode) {\r\n\t\tif (this.selectors.length === 0) {\r\n\t\t\tthis.start = selector.start;\r\n\t\t\tthis.host = selector.type === 'PseudoClassSelector' && selector.name === 'host';\r\n\t\t}\r\n\t\tthis.root = this.root || selector.type === 'PseudoClassSelector' && selector.name === 'root';\r\n\r\n\t\tthis.selectors.push(selector);\r\n\t\tthis.end = selector.end;\r\n\t}\r\n\r\n\tget global() {\r\n\t\treturn (\r\n\t\t\tthis.selectors.length >= 1 &&\r\n\t\t\tthis.selectors[0].type === 'PseudoClassSelector' &&\r\n\t\t\tthis.selectors[0].name === 'global' &&\r\n\t\t\tthis.selectors.every((selector) => selector.type === 'PseudoClassSelector' || selector.type === 'PseudoElementSelector')\r\n\t\t);\r\n\t}\r\n}\r\n\r\nfunction group_selectors(selector: CssNode) {\r\n\tlet block: Block = new Block(null);\r\n\r\n\tconst blocks = [block];\r\n\r\n\tselector.children.forEach((child: CssNode) => {\r\n\t\tif (child.type === 'WhiteSpace' || child.type === 'Combinator') {\r\n\t\t\tblock = new Block(child);\r\n\t\t\tblocks.push(block);\r\n\t\t} else {\r\n\t\t\tblock.add(child);\r\n\t\t}\r\n\t});\r\n\r\n\treturn blocks;\r\n}\r\n","import MagicString from 'magic-string';\r\nimport { walk } from 'estree-walker';\r\nimport Selector from './Selector';\r\nimport Element from '../nodes/Element';\r\nimport { Ast, CssHashGetter } from '../../interfaces';\r\nimport Component from '../Component';\r\nimport { CssNode } from './interfaces';\r\nimport hash from '../utils/hash';\r\nimport compiler_warnings from '../compiler_warnings';\r\nimport { extract_ignores_above_position } from '../../utils/extract_svelte_ignore';\r\nimport { push_array } from '../../utils/push_array';\r\n\r\nfunction remove_css_prefix(name: string): string {\r\n\treturn name.replace(/^-((webkit)|(moz)|(o)|(ms))-/, '');\r\n}\r\n\r\nconst is_keyframes_node = (node: CssNode) =>\r\n\tremove_css_prefix(node.name) === 'keyframes';\r\n\r\nconst at_rule_has_declaration = ({ block }: CssNode): true =>\r\n\tblock &&\r\n\tblock.children &&\r\n\tblock.children.find((node: CssNode) => node.type === 'Declaration');\r\n\r\nfunction minify_declarations(\r\n\tcode: MagicString,\r\n\tstart: number,\r\n\tdeclarations: Declaration[]\r\n): number {\r\n\tlet c = start;\r\n\r\n\tdeclarations.forEach((declaration, i) => {\r\n\t\tconst separator = i > 0 ? ';' : '';\r\n\t\tif ((declaration.node.start - c) > separator.length) {\r\n\t\t\tcode.overwrite(c, declaration.node.start, separator);\r\n\t\t}\r\n\t\tdeclaration.minify(code);\r\n\t\tc = declaration.node.end;\r\n\t});\r\n\r\n\treturn c;\r\n}\r\n\r\nclass Rule {\r\n\tselectors: Selector[];\r\n\tdeclarations: Declaration[];\r\n\tnode: CssNode;\r\n\tparent: Atrule;\r\n\r\n\tconstructor(node: CssNode, stylesheet, parent?: Atrule) {\r\n\t\tthis.node = node;\r\n\t\tthis.parent = parent;\r\n\t\tthis.selectors = node.prelude.children.map((node: CssNode) => new Selector(node, stylesheet));\r\n\t\tthis.declarations = node.block.children.map((node: CssNode) => new Declaration(node));\r\n\t}\r\n\r\n\tapply(node: Element) {\r\n\t\tthis.selectors.forEach(selector => selector.apply(node)); // TODO move the logic in here?\r\n\t}\r\n\r\n\tis_used(dev: boolean) {\r\n\t\tif (this.parent && this.parent.node.type === 'Atrule' && is_keyframes_node(this.parent.node)) return true;\r\n\t\tif (this.declarations.length === 0) return dev;\r\n\t\treturn this.selectors.some(s => s.used);\r\n\t}\r\n\r\n\tminify(code: MagicString, _dev: boolean) {\r\n\t\tlet c = this.node.start;\r\n\t\tlet started = false;\r\n\r\n\t\tthis.selectors.forEach((selector) => {\r\n\t\t\tif (selector.used) {\r\n\t\t\t\tconst separator = started ? ',' : '';\r\n\t\t\t\tif ((selector.node.start - c) > separator.length) {\r\n\t\t\t\t\tcode.overwrite(c, selector.node.start, separator);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tselector.minify(code);\r\n\t\t\t\tc = selector.node.end;\r\n\r\n\t\t\t\tstarted = true;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tcode.remove(c, this.node.block.start);\r\n\r\n\t\tc = this.node.block.start + 1;\r\n\t\tc = minify_declarations(code, c, this.declarations);\r\n\r\n\t\tcode.remove(c, this.node.block.end - 1);\r\n\t}\r\n\r\n\ttransform(code: MagicString, id: string, keyframes: Map<string, string>, max_amount_class_specificity_increased: number) {\r\n\t\tif (this.parent && this.parent.node.type === 'Atrule' && is_keyframes_node(this.parent.node)) return true;\r\n\r\n\t\tconst attr = `.${id}`;\r\n\r\n\t\tthis.selectors.forEach(selector => selector.transform(code, attr, max_amount_class_specificity_increased));\r\n\t\tthis.declarations.forEach(declaration => declaration.transform(code, keyframes));\r\n\t}\r\n\r\n\tvalidate(component: Component) {\r\n\t\tthis.selectors.forEach(selector => {\r\n\t\t\tselector.validate(component);\r\n\t\t});\r\n\t}\r\n\r\n\twarn_on_unused_selector(handler: (selector: Selector) => void) {\r\n\t\tthis.selectors.forEach(selector => {\r\n\t\t\tif (!selector.used) handler(selector);\r\n\t\t});\r\n\t}\r\n\r\n\tget_max_amount_class_specificity_increased() {\r\n\t\treturn Math.max(...this.selectors.map(selector => selector.get_amount_class_specificity_increased()));\r\n\t}\r\n}\r\n\r\nclass Declaration {\r\n\tnode: CssNode;\r\n\r\n\tconstructor(node: CssNode) {\r\n\t\tthis.node = node;\r\n\t}\r\n\r\n\ttransform(code: MagicString, keyframes: Map<string, string>) {\r\n\t\tconst property = this.node.property && remove_css_prefix(this.node.property.toLowerCase());\r\n\t\tif (property === 'animation' || property === 'animation-name') {\r\n\t\t\tthis.node.value.children.forEach((block: CssNode) => {\r\n\t\t\t\tif (block.type === 'Identifier') {\r\n\t\t\t\t\tconst name = block.name;\r\n\t\t\t\t\tif (keyframes.has(name)) {\r\n\t\t\t\t\t\tcode.overwrite(block.start, block.end, keyframes.get(name));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tminify(code: MagicString) {\r\n\t\tif (!this.node.property) return; // @apply, and possibly other weird cases?\r\n\r\n\t\tconst c = this.node.start + this.node.property.length;\r\n\t\tconst first = this.node.value.children\r\n\t\t\t? this.node.value.children[0]\r\n\t\t\t: this.node.value;\r\n\r\n\t\t// Don't minify whitespace in custom properties, since some browsers (Chromium < 99)\r\n\t\t// treat --foo: ; and --foo:; differently\r\n\t\tif (first.type === 'Raw' && /^\\s+$/.test(first.value)) return;\r\n\r\n\t\tlet start = first.start;\r\n\t\twhile (/\\s/.test(code.original[start])) start += 1;\r\n\r\n\t\tif (start - c > 1) {\r\n\t\t\tcode.overwrite(c, start, ':');\r\n\t\t}\r\n\t}\r\n}\r\n\r\nclass Atrule {\r\n\tnode: CssNode;\r\n\tchildren: Array<Atrule | Rule>;\r\n\tdeclarations: Declaration[];\r\n\r\n\tconstructor(node: CssNode) {\r\n\t\tthis.node = node;\r\n\t\tthis.children = [];\r\n\t\tthis.declarations = [];\r\n\t}\r\n\r\n\tapply(node: Element) {\r\n\t\tif (this.node.name === 'media' || this.node.name === 'supports' || this.node.name === 'layer') {\r\n\t\t\tthis.children.forEach(child => {\r\n\t\t\t\tchild.apply(node);\r\n\t\t\t});\r\n\t\t} else if (is_keyframes_node(this.node)) {\r\n\t\t\tthis.children.forEach((rule: Rule) => {\r\n\t\t\t\trule.selectors.forEach(selector => {\r\n\t\t\t\t\tselector.used = true;\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tis_used(_dev: boolean) {\r\n\t\treturn true; // TODO\r\n\t}\r\n\r\n\tminify(code: MagicString, dev: boolean) {\r\n\t\tif (this.node.name === 'media') {\r\n\t\t\tconst expression_char = code.original[this.node.prelude.start];\r\n\t\t\tlet c = this.node.start + (expression_char === '(' ? 6 : 7);\r\n\t\t\tif (this.node.prelude.start > c) code.remove(c, this.node.prelude.start);\r\n\r\n\t\t\tthis.node.prelude.children.forEach((query: CssNode) => {\r\n\t\t\t\t// TODO minify queries\r\n\t\t\t\tc = query.end;\r\n\t\t\t});\r\n\r\n\t\t\tcode.remove(c, this.node.block.start);\r\n\t\t} else if (this.node.name === 'supports') {\r\n\t\t\tlet c = this.node.start + 9;\r\n\t\t\tif (this.node.prelude.start - c > 1) code.overwrite(c, this.node.prelude.start, ' ');\r\n\t\t\tthis.node.prelude.children.forEach((query: CssNode) => {\r\n\t\t\t\t// TODO minify queries\r\n\t\t\t\tc = query.end;\r\n\t\t\t});\r\n\t\t\tcode.remove(c, this.node.block.start);\r\n\t\t} else {\r\n\t\t\tlet c = this.node.start + this.node.name.length + 1;\r\n\t\t\tif (this.node.prelude) {\r\n\t\t\t\tif (this.node.prelude.start - c > 1) code.overwrite(c, this.node.prelude.start, ' ');\r\n\t\t\t\tc = this.node.prelude.end;\r\n\t\t\t}\r\n\t\t\tif (this.node.block && this.node.block.start - c > 0) {\r\n\t\t\t\tcode.remove(c, this.node.block.start);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// TODO other atrules\r\n\r\n\t\tif (this.node.block) {\r\n\t\t\tlet c = this.node.block.start + 1;\r\n\t\t\tif (this.declarations.length) {\r\n\t\t\t\tc = minify_declarations(code, c, this.declarations);\r\n\t\t\t\t// if the atrule has children, leave the last declaration semicolon alone\r\n\t\t\t\tif (this.children.length) c++;\r\n\t\t\t}\r\n\r\n\t\t\tthis.children.forEach(child => {\r\n\t\t\t\tif (child.is_used(dev)) {\r\n\t\t\t\t\tcode.remove(c, child.node.start);\r\n\t\t\t\t\tchild.minify(code, dev);\r\n\t\t\t\t\tc = child.node.end;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tcode.remove(c, this.node.block.end - 1);\r\n\t\t}\r\n\t}\r\n\r\n\ttransform(code: MagicString, id: string, keyframes: Map<string, string>, max_amount_class_specificity_increased: number) {\r\n\t\tif (is_keyframes_node(this.node)) {\r\n\t\t\tthis.node.prelude.children.forEach(({ type, name, start, end }: CssNode) => {\r\n\t\t\t\tif (type === 'Identifier') {\r\n\t\t\t\t\tif (name.startsWith('-global-')) {\r\n\t\t\t\t\t\tcode.remove(start, start + 8);\r\n\t\t\t\t\t\tthis.children.forEach((rule: Rule) => {\r\n\t\t\t\t\t\t\trule.selectors.forEach(selector => {\r\n\t\t\t\t\t\t\t\tselector.used = true;\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tcode.overwrite(start, end, keyframes.get(name));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis.children.forEach(child => {\r\n\t\t\tchild.transform(code, id, keyframes, max_amount_class_specificity_increased);\r\n\t\t});\r\n\t}\r\n\r\n\tvalidate(component: Component) {\r\n\t\tthis.children.forEach(child => {\r\n\t\t\tchild.validate(component);\r\n\t\t});\r\n\t}\r\n\r\n\twarn_on_unused_selector(handler: (selector: Selector) => void) {\r\n\t\tif (this.node.name !== 'media') return;\r\n\r\n\t\tthis.children.forEach(child => {\r\n\t\t\tchild.warn_on_unused_selector(handler);\r\n\t\t});\r\n\t}\r\n\r\n\tget_max_amount_class_specificity_increased() {\r\n\t\treturn Math.max(...this.children.map(rule => rule.get_max_amount_class_specificity_increased()));\r\n\t}\r\n}\r\n\r\nconst get_default_css_hash: CssHashGetter = ({ css, hash }) => {\r\n\treturn `svelte-${hash(css)}`;\r\n};\r\n\r\nexport default class Stylesheet {\r\n\tsource: string;\r\n\tast: Ast;\r\n\tfilename: string;\r\n\tdev: boolean;\r\n\r\n\thas_styles: boolean;\r\n\tid: string;\r\n\r\n\tchildren: Array<Rule | Atrule> = [];\r\n\tkeyframes: Map<string, string> = new Map();\r\n\r\n\tnodes_with_css_class: Set<CssNode> = new Set();\r\n\r\n\tconstructor({\r\n\t\tsource,\r\n\t\tast,\r\n\t\tcomponent_name,\r\n\t\tfilename,\r\n\t\tdev,\r\n\t\tget_css_hash = get_default_css_hash\r\n\t}: {\r\n\t\tsource: string;\r\n\t\tast: Ast;\r\n\t\tfilename: string | undefined;\r\n\t\tcomponent_name: string | undefined;\r\n\t\tdev: boolean;\r\n\t\tget_css_hash: CssHashGetter;\r\n\t}) {\r\n\t\tthis.source = source;\r\n\t\tthis.ast = ast;\r\n\t\tthis.filename = filename;\r\n\t\tthis.dev = dev;\r\n\r\n\t\tif (ast.css && ast.css.children.length) {\r\n\t\t\tthis.id = get_css_hash({\r\n\t\t\t\tfilename,\r\n\t\t\t\tname: component_name,\r\n\t\t\t\tcss: ast.css.content.styles,\r\n\t\t\t\thash\r\n\t\t\t});\r\n\r\n\t\t\tthis.has_styles = true;\r\n\r\n\t\t\tconst stack: Atrule[] = [];\r\n\t\t\tlet depth = 0;\r\n\t\t\tlet current_atrule: Atrule = null;\r\n\r\n\t\t\twalk(ast.css as any, {\r\n\t\t\t\tenter: (node: any) => {\r\n\t\t\t\t\tif (node.type === 'Atrule') {\r\n\t\t\t\t\t\tconst atrule = new Atrule(node);\r\n\t\t\t\t\t\tstack.push(atrule);\r\n\r\n\t\t\t\t\t\tif (current_atrule) {\r\n\t\t\t\t\t\t\tcurrent_atrule.children.push(atrule);\r\n\t\t\t\t\t\t} else if (depth <= 1) {\r\n\t\t\t\t\t\t\tthis.children.push(atrule);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (is_keyframes_node(node)) {\r\n\t\t\t\t\t\t\tnode.prelude.children.forEach((expression: CssNode) => {\r\n\t\t\t\t\t\t\t\tif (expression.type === 'Identifier' && !expression.name.startsWith('-global-')) {\r\n\t\t\t\t\t\t\t\t\tthis.keyframes.set(expression.name, `${this.id}-${expression.name}`);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t} else if (at_rule_has_declaration(node)) {\r\n\t\t\t\t\t\t\tconst at_rule_declarations = node.block.children\r\n\t\t\t\t\t\t\t\t.filter(node => node.type === 'Declaration')\r\n\t\t\t\t\t\t\t\t.map(node => new Declaration(node));\r\n\t\t\t\t\t\t\tpush_array(atrule.declarations, at_rule_declarations);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tcurrent_atrule = atrule;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (node.type === 'Rule') {\r\n\t\t\t\t\t\tconst rule = new Rule(node, this, current_atrule);\r\n\r\n\t\t\t\t\t\tif (current_atrule) {\r\n\t\t\t\t\t\t\tcurrent_atrule.children.push(rule);\r\n\t\t\t\t\t\t} else if (depth <= 1) {\r\n\t\t\t\t\t\t\tthis.children.push(rule);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tdepth += 1;\r\n\t\t\t\t},\r\n\r\n\t\t\t\tleave: (node: any) => {\r\n\t\t\t\t\tif (node.type === 'Atrule') {\r\n\t\t\t\t\t\tstack.pop();\r\n\t\t\t\t\t\tcurrent_atrule = stack[stack.length - 1];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tdepth -= 1;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.has_styles = false;\r\n\t\t}\r\n\t}\r\n\r\n\tapply(node: Element) {\r\n\t\tif (!this.has_styles) return;\r\n\r\n\t\tfor (let i = 0; i < this.children.length; i += 1) {\r\n\t\t\tconst child = this.children[i];\r\n\t\t\tchild.apply(node);\r\n\t\t}\r\n\t}\r\n\r\n\treify() {\r\n\t\tthis.nodes_with_css_class.forEach((node: Element) => {\r\n\t\t\tnode.add_css_class();\r\n\t\t});\r\n\t}\r\n\r\n\trender(file: string, should_transform_selectors: boolean) {\r\n\t\tif (!this.has_styles) {\r\n\t\t\treturn { code: null, map: null };\r\n\t\t}\r\n\r\n\t\tconst code = new MagicString(this.source);\r\n\r\n\t\twalk(this.ast.css as any, {\r\n\t\t\tenter: (node: any) => {\r\n\t\t\t\tcode.addSourcemapLocation(node.start);\r\n\t\t\t\tcode.addSourcemapLocation(node.end);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (should_transform_selectors) {\r\n\t\t\tconst max = Math.max(...this.children.map(rule => rule.get_max_amount_class_specificity_increased()));\r\n\t\t\tthis.children.forEach((child: (Atrule | Rule)) => {\r\n\t\t\t\tchild.transform(code, this.id, this.keyframes, max);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tlet c = 0;\r\n\t\tthis.children.forEach(child => {\r\n\t\t\tif (child.is_used(this.dev)) {\r\n\t\t\t\tcode.remove(c, child.node.start);\r\n\t\t\t\tchild.minify(code, this.dev);\r\n\t\t\t\tc = child.node.end;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tcode.remove(c, this.source.length);\r\n\r\n\t\treturn {\r\n\t\t\tcode: code.toString(),\r\n\t\t\tmap: code.generateMap({\r\n\t\t\t\tincludeContent: true,\r\n\t\t\t\tsource: this.filename,\r\n\t\t\t\tfile\r\n\t\t\t})\r\n\t\t};\r\n\t}\r\n\r\n\tvalidate(component: Component) {\r\n\t\tthis.children.forEach(child => {\r\n\t\t\tchild.validate(component);\r\n\t\t});\r\n\t}\r\n\r\n\twarn_on_unused_selectors(component: Component) {\r\n\t\tconst ignores = !this.ast.css ? [] : extract_ignores_above_position(this.ast.css.start, this.ast.html.children);\r\n\t\tcomponent.push_ignores(ignores);\r\n\t\tthis.children.forEach(child => {\r\n\t\t\tchild.warn_on_unused_selector((selector: Selector) => {\r\n\t\t\t\tcomponent.warn(selector.node, compiler_warnings.css_unused_selector(this.source.slice(selector.node.start, selector.node.end)));\r\n\t\t\t});\r\n\t\t});\r\n\t\tcomponent.pop_ignores();\r\n\t}\r\n}\r\n","export const test = typeof process !== 'undefined' && process.env.TEST;\r\n","import EachBlock from '../EachBlock';\r\nimport ThenBlock from '../ThenBlock';\r\nimport CatchBlock from '../CatchBlock';\r\nimport InlineComponent from '../InlineComponent';\r\nimport Element from '../Element';\r\nimport SlotTemplate from '../SlotTemplate';\r\nimport ConstTag from '../ConstTag';\r\n\r\ntype NodeWithScope = EachBlock | ThenBlock | CatchBlock | InlineComponent | Element | SlotTemplate | ConstTag;\r\n\r\nexport default class TemplateScope {\r\n\tnames: Set<string>;\r\n\tdependencies_for_name: Map<string, Set<string>>;\r\n\towners: Map<string, NodeWithScope> = new Map();\r\n\tparent?: TemplateScope;\r\n\r\n\tconstructor(parent?: TemplateScope) {\r\n\t\tthis.parent = parent;\r\n\t\tthis.names = new Set(parent ? parent.names : []);\r\n\t\tthis.dependencies_for_name = new Map(parent ? parent.dependencies_for_name : []);\r\n\t}\r\n\r\n\tadd(name, dependencies: Set<string>, owner) {\r\n\t\tthis.names.add(name);\r\n\t\tthis.dependencies_for_name.set(name, dependencies);\r\n\t\tthis.owners.set(name, owner);\r\n\t\treturn this;\r\n\t}\r\n\r\n\tchild() {\r\n\t\tconst child = new TemplateScope(this);\r\n\t\treturn child;\r\n\t}\r\n\r\n\tis_top_level(name: string) {\r\n\t\treturn !this.parent || !this.names.has(name) && this.parent.is_top_level(name);\r\n\t}\r\n\r\n\tget_owner(name: string): NodeWithScope {\r\n\t\treturn this.owners.get(name) || (this.parent && this.parent.get_owner(name));\r\n\t}\r\n\r\n\tis_let(name: string) {\r\n\t\tconst owner = this.get_owner(name);\r\n\t\treturn owner && (owner.type === 'Element' || owner.type === 'InlineComponent' || owner.type === 'SlotTemplate');\r\n\t}\r\n\r\n\tis_await(name: string) {\r\n\t\tconst owner = this.get_owner(name);\r\n\t\treturn owner && (owner.type === 'ThenBlock' || owner.type === 'CatchBlock');\r\n\t}\r\n\r\n\tis_const(name: string) {\r\n\t\tconst owner = this.get_owner(name);\r\n\t\treturn owner && owner.type === 'ConstTag';\r\n\t}\r\n}\r\n","import Node from './shared/Node';\r\nimport Component from '../Component';\r\nimport map_children from './shared/map_children';\r\nimport Block from '../render_dom/Block';\r\nimport TemplateScope from './shared/TemplateScope';\r\nimport { INode } from './interfaces';\r\nimport { TemplateNode } from '../../interfaces';\r\n\r\nexport default class Fragment extends Node {\r\n\ttype: 'Fragment';\r\n\tblock: Block;\r\n\tchildren: INode[];\r\n\tscope: TemplateScope;\r\n\r\n\tconstructor(component: Component, info: TemplateNode) {\r\n\t\tconst scope = new TemplateScope();\r\n\t\tsuper(component, null, scope, info);\r\n\r\n\t\tthis.scope = scope;\r\n\t\tthis.children = map_children(component, this, scope, info.children);\r\n\t}\r\n}\r\n","// This file is automatically generated\nexport default new Set([\"HtmlTag\",\"HtmlTagHydration\",\"SvelteComponent\",\"SvelteComponentDev\",\"SvelteComponentTyped\",\"SvelteElement\",\"action_destroyer\",\"add_attribute\",\"add_classes\",\"add_flush_callback\",\"add_location\",\"add_render_callback\",\"add_resize_listener\",\"add_styles\",\"add_transform\",\"afterUpdate\",\"append\",\"append_dev\",\"append_hydration\",\"append_hydration_dev\",\"append_styles\",\"append_stylesheet\",\"assign\",\"attr\",\"attr_dev\",\"attribute_to_object\",\"beforeUpdate\",\"bind\",\"binding_callbacks\",\"blank_object\",\"bubble\",\"check_outros\",\"children\",\"claim_component\",\"claim_element\",\"claim_html_tag\",\"claim_space\",\"claim_svg_element\",\"claim_text\",\"clear_loops\",\"component_subscribe\",\"compute_rest_props\",\"compute_slots\",\"createEventDispatcher\",\"create_animation\",\"create_bidirectional_transition\",\"create_component\",\"create_in_transition\",\"create_out_transition\",\"create_slot\",\"create_ssr_component\",\"current_component\",\"custom_event\",\"dataset_dev\",\"debug\",\"destroy_block\",\"destroy_component\",\"destroy_each\",\"detach\",\"detach_after_dev\",\"detach_before_dev\",\"detach_between_dev\",\"detach_dev\",\"dirty_components\",\"dispatch_dev\",\"each\",\"element\",\"element_is\",\"empty\",\"end_hydrating\",\"escape\",\"escape_attribute_value\",\"escape_object\",\"exclude_internal_props\",\"fix_and_destroy_block\",\"fix_and_outro_and_destroy_block\",\"fix_position\",\"flush\",\"getAllContexts\",\"getContext\",\"get_all_dirty_from_scope\",\"get_binding_group_value\",\"get_current_component\",\"get_custom_elements_slots\",\"get_root_for_style\",\"get_slot_changes\",\"get_spread_object\",\"get_spread_update\",\"get_store_value\",\"globals\",\"group_outros\",\"handle_promise\",\"hasContext\",\"has_prop\",\"identity\",\"init\",\"insert\",\"insert_dev\",\"insert_hydration\",\"insert_hydration_dev\",\"intros\",\"invalid_attribute_name_character\",\"is_client\",\"is_crossorigin\",\"is_empty\",\"is_function\",\"is_promise\",\"is_void\",\"listen\",\"listen_dev\",\"loop\",\"loop_guard\",\"merge_ssr_styles\",\"missing_component\",\"mount_component\",\"noop\",\"not_equal\",\"now\",\"null_to_empty\",\"object_without_properties\",\"onDestroy\",\"onMount\",\"once\",\"outro_and_destroy_block\",\"prevent_default\",\"prop_dev\",\"query_selector_all\",\"raf\",\"run\",\"run_all\",\"safe_not_equal\",\"schedule_update\",\"select_multiple_value\",\"select_option\",\"select_options\",\"select_value\",\"self\",\"setContext\",\"set_attributes\",\"set_current_component\",\"set_custom_element_data\",\"set_data\",\"set_data_dev\",\"set_input_type\",\"set_input_value\",\"set_now\",\"set_raf\",\"set_store_value\",\"set_style\",\"set_svg_attributes\",\"space\",\"spread\",\"src_url_equal\",\"start_hydrating\",\"stop_propagation\",\"subscribe\",\"svg_element\",\"text\",\"tick\",\"time_ranges_to_array\",\"to_number\",\"toggle_class\",\"transition_in\",\"transition_out\",\"trusted\",\"update_await_block_branch\",\"update_keyed_each\",\"update_slot\",\"update_slot_base\",\"validate_component\",\"validate_dynamic_element\",\"validate_each_argument\",\"validate_each_keys\",\"validate_slots\",\"validate_store\",\"validate_void_dynamic_element\",\"xlink_attr\"]);","import { Node } from 'estree';\r\nimport is_reference, { NodeWithPropertyDefinition } from 'is-reference';\r\n\r\nexport default function is_used_as_reference(\r\n\tnode: Node,\r\n\tparent: Node\r\n): boolean {\r\n\tif (!is_reference(node as NodeWithPropertyDefinition, parent as NodeWithPropertyDefinition)) {\r\n\t\treturn false;\r\n\t}\r\n\tif (!parent) {\r\n\t\treturn true;\r\n\t}\r\n\r\n\t/* eslint-disable no-fallthrough */\r\n\tswitch (parent.type) {\r\n\t\t// disregard the `foo` in `const foo = bar`\r\n\t\tcase 'VariableDeclarator':\r\n\t\t\treturn node !== parent.id;\r\n\t\t// disregard the `foo`, `bar` in `function foo(bar){}`\r\n\t\tcase 'FunctionDeclaration':\r\n\t\t// disregard the `foo` in `import { foo } from 'foo'`\r\n\t\tcase 'ImportSpecifier':\r\n\t\t// disregard the `foo` in `import foo from 'foo'`\r\n\t\tcase 'ImportDefaultSpecifier':\r\n\t\t// disregard the `foo` in `import * as foo from 'foo'`\r\n\t\tcase 'ImportNamespaceSpecifier':\r\n\t\t// disregard the `foo` in `export { foo }`\r\n\t\tcase 'ExportSpecifier':\r\n\t\t\treturn false;\r\n\t\tdefault:\r\n\t\t\treturn true;\r\n\t}\r\n}\r\n","import { walk } from 'estree-walker';\r\nimport { getLocator } from 'locate-character';\r\nimport Stats from '../Stats';\r\nimport { globals, reserved, is_valid } from '../utils/names';\r\nimport { namespaces, valid_namespaces } from '../utils/namespaces';\r\nimport create_module from './create_module';\r\nimport {\r\n\tcreate_scopes,\r\n\textract_names,\r\n\tScope,\r\n\textract_identifiers\r\n} from './utils/scope';\r\nimport Stylesheet from './css/Stylesheet';\r\nimport { test } from '../config';\r\nimport Fragment from './nodes/Fragment';\r\nimport internal_exports from './internal_exports';\r\nimport { Ast, CompileOptions, Var, Warning, CssResult } from '../interfaces';\r\nimport error from '../utils/error';\r\nimport get_code_frame from '../utils/get_code_frame';\r\nimport flatten_reference from './utils/flatten_reference';\r\nimport is_used_as_reference from './utils/is_used_as_reference';\r\nimport is_reference, { NodeWithPropertyDefinition } from 'is-reference';\r\nimport TemplateScope from './nodes/shared/TemplateScope';\r\nimport fuzzymatch from '../utils/fuzzymatch';\r\nimport get_object from './utils/get_object';\r\nimport Slot from './nodes/Slot';\r\nimport { Node, ImportDeclaration, ExportNamedDeclaration, Identifier, ExpressionStatement, AssignmentExpression, Literal, Property, RestElement, ExportDefaultDeclaration, ExportAllDeclaration, FunctionDeclaration, FunctionExpression } from 'estree';\r\nimport add_to_set from './utils/add_to_set';\r\nimport check_graph_for_cycles from './utils/check_graph_for_cycles';\r\nimport { print, b } from 'code-red';\r\nimport { is_reserved_keyword } from './utils/reserved_keywords';\r\nimport { apply_preprocessor_sourcemap } from '../utils/mapped_code';\r\nimport Element from './nodes/Element';\r\nimport { DecodedSourceMap, RawSourceMap } from '@ampproject/remapping/dist/types/types';\r\nimport { clone } from '../utils/clone';\r\nimport compiler_warnings from './compiler_warnings';\r\nimport compiler_errors from './compiler_errors';\r\nimport { extract_ignores_above_position, extract_svelte_ignore_from_comments } from '../utils/extract_svelte_ignore';\r\nimport check_enable_sourcemap from './utils/check_enable_sourcemap';\r\n\r\ninterface ComponentOptions {\r\n\tnamespace?: string;\r\n\ttag?: string;\r\n\timmutable?: boolean;\r\n\taccessors?: boolean;\r\n\tpreserveWhitespace?: boolean;\r\n}\r\n\r\nexport default class Component {\r\n\tstats: Stats;\r\n\twarnings: Warning[];\r\n\tignores: Set<string>;\r\n\tignore_stack: Array<Set<string>> = [];\r\n\r\n\tast: Ast;\r\n\toriginal_ast: Ast;\r\n\tsource: string;\r\n\tname: Identifier;\r\n\tcompile_options: CompileOptions;\r\n\tfragment: Fragment;\r\n\tmodule_scope: Scope;\r\n\tinstance_scope: Scope;\r\n\tinstance_scope_map: WeakMap<Node, Scope>;\r\n\r\n\tcomponent_options: ComponentOptions;\r\n\tnamespace: string;\r\n\ttag: string;\r\n\taccessors: boolean;\r\n\r\n\tvars: Var[] = [];\r\n\tvar_lookup: Map<string, Var> = new Map();\r\n\r\n\timports: ImportDeclaration[] = [];\r\n\texports_from: ExportNamedDeclaration[] = [];\r\n\tinstance_exports_from: ExportNamedDeclaration[] = [];\r\n\r\n\thoistable_nodes: Set<Node> = new Set();\r\n\tnode_for_declaration: Map<string, Node> = new Map();\r\n\tpartly_hoisted: Array<(Node | Node[])> = [];\r\n\tfully_hoisted: Array<(Node | Node[])> = [];\r\n\treactive_declarations: Array<{\r\n\t\tassignees: Set<string>;\r\n\t\tdependencies: Set<string>;\r\n\t\tnode: Node;\r\n\t\tdeclaration: Node;\r\n\t}> = [];\r\n\treactive_declaration_nodes: Set<Node> = new Set();\r\n\thas_reactive_assignments = false;\r\n\tinjected_reactive_declaration_vars: Set<string> = new Set();\r\n\thelpers: Map<string, Identifier> = new Map();\r\n\tglobals: Map<string, Identifier> = new Map();\r\n\r\n\tindirect_dependencies: Map<string, Set<string>> = new Map();\r\n\r\n\tfile: string;\r\n\tlocate: (c: number) => { line: number; column: number };\r\n\r\n\telements: Element[] = [];\r\n\tstylesheet: Stylesheet;\r\n\r\n\taliases: Map<string, Identifier> = new Map();\r\n\tused_names: Set<string> = new Set();\r\n\tglobally_used_names: Set<string> = new Set();\r\n\r\n\tslots: Map<string, Slot> = new Map();\r\n\tslot_outlets: Set<string> = new Set();\r\n\r\n\tconstructor(\r\n\t\tast: Ast,\r\n\t\tsource: string,\r\n\t\tname: string,\r\n\t\tcompile_options: CompileOptions,\r\n\t\tstats: Stats,\r\n\t\twarnings: Warning[]\r\n\t) {\r\n\t\tthis.name = { type: 'Identifier', name };\r\n\r\n\t\tthis.stats = stats;\r\n\t\tthis.warnings = warnings;\r\n\t\tthis.ast = ast;\r\n\t\tthis.source = source;\r\n\t\tthis.compile_options = compile_options;\r\n\r\n\t\t// the instance JS gets mutated, so we park\r\n\t\t// a copy here for later. TODO this feels gross\r\n\t\tthis.original_ast = clone({\r\n\t\t\thtml: ast.html,\r\n\t\t\tcss: ast.css,\r\n\t\t\tinstance: ast.instance,\r\n\t\t\tmodule: ast.module\r\n\t\t});\r\n\r\n\t\tthis.file =\r\n\t\t\tcompile_options.filename &&\r\n\t\t\t(typeof process !== 'undefined'\r\n\t\t\t\t? compile_options.filename\r\n\t\t\t\t\t.replace(process.cwd(), '')\r\n\t\t\t\t\t.replace(/^[/\\\\]/, '')\r\n\t\t\t\t: compile_options.filename);\r\n\t\tthis.locate = getLocator(this.source, { offsetLine: 1 });\r\n\r\n\t\t// styles\r\n\t\tthis.stylesheet = new Stylesheet({\r\n\t\t\tsource,\r\n\t\t\tast,\r\n\t\t\tfilename: compile_options.filename,\r\n\t\t\tcomponent_name: name,\r\n\t\t\tdev: compile_options.dev,\r\n\t\t\tget_css_hash: compile_options.cssHash\r\n\t\t});\r\n\t\tthis.stylesheet.validate(this);\r\n\r\n\t\tthis.component_options = process_component_options(\r\n\t\t\tthis,\r\n\t\t\tthis.ast.html.children\r\n\t\t);\r\n\t\tthis.namespace =\r\n\t\t\tnamespaces[this.component_options.namespace] ||\r\n\t\t\tthis.component_options.namespace;\r\n\r\n\t\tif (compile_options.customElement) {\r\n\t\t\tif (\r\n\t\t\t\tthis.component_options.tag === undefined &&\r\n\t\t\t\tcompile_options.tag === undefined\r\n\t\t\t) {\r\n\t\t\t\tconst svelteOptions = ast.html.children.find(\r\n\t\t\t\t\tchild => child.name === 'svelte:options'\r\n\t\t\t\t) || { start: 0, end: 0 };\r\n\t\t\t\tthis.warn(svelteOptions, compiler_warnings.custom_element_no_tag);\r\n\t\t\t}\r\n\t\t\tthis.tag = this.component_options.tag || compile_options.tag;\r\n\t\t} else {\r\n\t\t\tthis.tag = this.name.name;\r\n\t\t}\r\n\r\n\t\tthis.walk_module_js();\r\n\r\n\t\tthis.push_ignores(this.ast.instance ? extract_ignores_above_position(this.ast.instance.start, this.ast.html.children) : []);\r\n\t\tthis.walk_instance_js_pre_template();\r\n\t\tthis.pop_ignores();\r\n\r\n\t\tthis.fragment = new Fragment(this, ast.html);\r\n\t\tthis.name = this.get_unique_name(name);\r\n\r\n\t\tthis.push_ignores(this.ast.instance ? extract_ignores_above_position(this.ast.instance.start, this.ast.html.children) : []);\r\n\t\tthis.walk_instance_js_post_template();\r\n\t\tthis.pop_ignores();\r\n\r\n\t\tthis.elements.forEach(element => this.stylesheet.apply(element));\r\n\t\tif (!compile_options.customElement) this.stylesheet.reify();\r\n\t\tthis.stylesheet.warn_on_unused_selectors(this);\r\n\t}\r\n\r\n\tadd_var(node: Node, variable: Var, add_to_lookup = true) {\r\n\t\tthis.vars.push(variable);\r\n\r\n\t\tif (add_to_lookup) {\r\n\t\t\tif (this.var_lookup.has(variable.name)) {\r\n\t\t\t\tconst exists_var = this.var_lookup.get(variable.name);\r\n\t\t\t\tif (exists_var.module && exists_var.imported) {\r\n\t\t\t\t\tthis.error(node as any, compiler_errors.illegal_variable_declaration);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.var_lookup.set(variable.name, variable);\r\n\t\t}\r\n\t}\r\n\r\n\tadd_reference(node: Node, name: string) {\r\n\t\tconst variable = this.var_lookup.get(name);\r\n\r\n\t\tif (variable) {\r\n\t\t\tvariable.referenced = true;\r\n\t\t} else if (is_reserved_keyword(name)) {\r\n\t\t\tthis.add_var(node, {\r\n\t\t\t\tname,\r\n\t\t\t\tinjected: true,\r\n\t\t\t\treferenced: true\r\n\t\t\t});\r\n\t\t} else if (name[0] === '$') {\r\n\t\t\tthis.add_var(node, {\r\n\t\t\t\tname,\r\n\t\t\t\tinjected: true,\r\n\t\t\t\treferenced: true,\r\n\t\t\t\tmutated: true,\r\n\t\t\t\twritable: true\r\n\t\t\t});\r\n\r\n\t\t\tconst subscribable_name = name.slice(1);\r\n\r\n\t\t\tconst variable = this.var_lookup.get(subscribable_name);\r\n\t\t\tif (variable) {\r\n\t\t\t\tvariable.referenced = true;\r\n\t\t\t\tvariable.subscribable = true;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (this.compile_options.varsReport === 'full') {\r\n\t\t\t\tthis.add_var(node, { name, referenced: true }, false);\r\n\t\t\t}\r\n\r\n\t\t\tthis.used_names.add(name);\r\n\t\t}\r\n\t}\r\n\r\n\talias(name: string) {\r\n\t\tif (!this.aliases.has(name)) {\r\n\t\t\tthis.aliases.set(name, this.get_unique_name(name));\r\n\t\t}\r\n\r\n\t\treturn this.aliases.get(name);\r\n\t}\r\n\r\n\tapply_stylesheet(element: Element) {\r\n\t\tthis.elements.push(element);\r\n\t}\r\n\r\n\tglobal(name: string) {\r\n\t\tconst alias = this.alias(name);\r\n\t\tthis.globals.set(name, alias);\r\n\t\treturn alias;\r\n\t}\r\n\r\n\tgenerate(result?: { js: Node[]; css: CssResult }) {\r\n\t\tlet js = null;\r\n\t\tlet css = null;\r\n\r\n\t\tif (result) {\r\n\t\t\tconst { compile_options, name } = this;\r\n\t\t\tconst { format = 'esm' } = compile_options;\r\n\r\n\t\t\tconst banner = `${this.file ? `${this.file} ` : ''}generated by Svelte v${'__VERSION__'}`;\r\n\r\n\t\t\tconst program: any = { type: 'Program', body: result.js };\r\n\r\n\t\t\twalk(program, {\r\n\t\t\t\tenter: (node: Node, parent: Node, key) => {\r\n\t\t\t\t\tif (node.type === 'Identifier') {\r\n\t\t\t\t\t\tif (node.name[0] === '@') {\r\n\t\t\t\t\t\t\tif (node.name[1] === '_') {\r\n\t\t\t\t\t\t\t\tconst alias = this.global(node.name.slice(2));\r\n\t\t\t\t\t\t\t\tnode.name = alias.name;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tlet name = node.name.slice(1);\r\n\r\n\t\t\t\t\t\t\t\tif (compile_options.hydratable) {\r\n\t\t\t\t\t\t\t\t\tif (internal_exports.has(`${name}_hydration`)) {\r\n\t\t\t\t\t\t\t\t\t\tname += '_hydration';\r\n\t\t\t\t\t\t\t\t\t} else if (internal_exports.has(`${name}Hydration`)) {\r\n\t\t\t\t\t\t\t\t\t\tname += 'Hydration';\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (compile_options.dev) {\r\n\t\t\t\t\t\t\t\t\tif (internal_exports.has(`${name}_dev`)) {\r\n\t\t\t\t\t\t\t\t\t\tname += '_dev';\r\n\t\t\t\t\t\t\t\t\t} else if (internal_exports.has(`${name}Dev`)) {\r\n\t\t\t\t\t\t\t\t\t\tname += 'Dev';\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tconst alias = this.alias(name);\r\n\t\t\t\t\t\t\t\tthis.helpers.set(name, alias);\r\n\t\t\t\t\t\t\t\tnode.name = alias.name;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else if (node.name[0] !== '#' && !is_valid(node.name)) {\r\n\t\t\t\t\t\t\t// this hack allows x`foo.${bar}` where bar could be invalid\r\n\t\t\t\t\t\t\tconst literal: Literal = { type: 'Literal', value: node.name };\r\n\r\n\t\t\t\t\t\t\tif (parent.type === 'Property' && key === 'key') {\r\n\t\t\t\t\t\t\t\tparent.key = literal;\r\n\t\t\t\t\t\t\t} else if (parent.type === 'MemberExpression' && key === 'property') {\r\n\t\t\t\t\t\t\t\tparent.property = literal;\r\n\t\t\t\t\t\t\t\tparent.computed = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tconst referenced_globals = Array.from(\r\n\t\t\t\tthis.globals,\r\n\t\t\t\t([name, alias]) => name !== alias.name && { name, alias }\r\n\t\t\t).filter(Boolean);\r\n\t\t\tif (referenced_globals.length) {\r\n\t\t\t\tthis.helpers.set('globals', this.alias('globals'));\r\n\t\t\t}\r\n\t\t\tconst imported_helpers = Array.from(this.helpers, ([name, alias]) => ({\r\n\t\t\t\tname,\r\n\t\t\t\talias\r\n\t\t\t}));\r\n\r\n\t\t\tcreate_module(\r\n\t\t\t\tprogram,\r\n\t\t\t\tformat,\r\n\t\t\t\tname,\r\n\t\t\t\tbanner,\r\n\t\t\t\tcompile_options.sveltePath,\r\n\t\t\t\timported_helpers,\r\n\t\t\t\treferenced_globals,\r\n\t\t\t\tthis.imports,\r\n\t\t\t\tthis.vars\r\n\t\t\t\t\t.filter(variable => variable.module && variable.export_name)\r\n\t\t\t\t\t.map(variable => ({\r\n\t\t\t\t\t\tname: variable.name,\r\n\t\t\t\t\t\tas: variable.export_name\r\n\t\t\t\t\t})),\r\n\t\t\t\tthis.exports_from\r\n\t\t\t);\r\n\r\n\t\t\tcss = compile_options.customElement\r\n\t\t\t\t? { code: null, map: null }\r\n\t\t\t\t: result.css;\r\n\r\n\t\t\tconst js_sourcemap_enabled = check_enable_sourcemap(compile_options.enableSourcemap, 'js');\r\n\r\n\t\t\tif (!js_sourcemap_enabled) {\r\n\t\t\t\tjs = print(program);\r\n\t\t\t\tjs.map = null;\r\n\t\t\t} else {\r\n\t\t\t\tconst sourcemap_source_filename = get_sourcemap_source_filename(compile_options);\r\n\r\n\t\t\t\tjs = print(program, {\r\n\t\t\t\t\tsourceMapSource: sourcemap_source_filename\r\n\t\t\t\t});\r\n\r\n\t\t\t\tjs.map.sources = [\r\n\t\t\t\t\tsourcemap_source_filename\r\n\t\t\t\t];\r\n\r\n\t\t\t\tjs.map.sourcesContent = [\r\n\t\t\t\t\tthis.source\r\n\t\t\t\t];\r\n\r\n\t\t\t\tjs.map = apply_preprocessor_sourcemap(sourcemap_source_filename, js.map, compile_options.sourcemap as (string | RawSourceMap | DecodedSourceMap));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tjs,\r\n\t\t\tcss,\r\n\t\t\tast: this.original_ast,\r\n\t\t\twarnings: this.warnings,\r\n\t\t\tvars: this.get_vars_report(),\r\n\t\t\tstats: this.stats.render()\r\n\t\t};\r\n\t}\r\n\r\n\tget_unique_name(name: string, scope?: Scope): Identifier {\r\n\t\tif (test) name = `${name}$`;\r\n\t\tlet alias = name;\r\n\t\tfor (\r\n\t\t\tlet i = 1;\r\n\t\t\treserved.has(alias) ||\r\n\t\t\tthis.var_lookup.has(alias) ||\r\n\t\t\tthis.used_names.has(alias) ||\r\n\t\t\tthis.globally_used_names.has(alias) ||\r\n\t\t\t(scope && scope.has(alias));\r\n\t\t\talias = `${name}_${i++}`\r\n\t\t);\r\n\t\tthis.used_names.add(alias);\r\n\t\treturn { type: 'Identifier', name: alias };\r\n\t}\r\n\r\n\tget_unique_name_maker() {\r\n\t\tconst local_used_names = new Set();\r\n\r\n\t\tfunction add(name: string) {\r\n\t\t\tlocal_used_names.add(name);\r\n\t\t}\r\n\r\n\t\treserved.forEach(add);\r\n\t\tinternal_exports.forEach(add);\r\n\t\tthis.var_lookup.forEach((_value, key) => add(key));\r\n\r\n\t\treturn (name: string): Identifier => {\r\n\t\t\tif (test) name = `${name}$`;\r\n\t\t\tlet alias = name;\r\n\t\t\tfor (\r\n\t\t\t\tlet i = 1;\r\n\t\t\t\tthis.used_names.has(alias) || local_used_names.has(alias);\r\n\t\t\t\talias = `${name}_${i++}`\r\n\t\t\t);\r\n\t\t\tlocal_used_names.add(alias);\r\n\t\t\tthis.globally_used_names.add(alias);\r\n\r\n\t\t\treturn {\r\n\t\t\t\ttype: 'Identifier',\r\n\t\t\t\tname: alias\r\n\t\t\t};\r\n\t\t};\r\n\t}\r\n\r\n\tget_vars_report(): Var[] {\r\n\t\tconst { compile_options, vars } = this;\r\n\r\n\t\tconst vars_report = compile_options.varsReport === false\r\n\t\t\t? []\r\n\t\t\t: compile_options.varsReport === 'full'\r\n\t\t\t\t? vars\r\n\t\t\t\t: vars.filter(v => !v.global && !v.internal);\r\n\r\n\t\treturn vars_report.map(v => ({\r\n\t\t\tname: v.name,\r\n\t\t\texport_name: v.export_name || null,\r\n\t\t\tinjected: v.injected || false,\r\n\t\t\tmodule: v.module || false,\r\n\t\t\tmutated: v.mutated || false,\r\n\t\t\treassigned: v.reassigned || false,\r\n\t\t\treferenced: v.referenced || false,\r\n\t\t\twritable: v.writable || false,\r\n\t\t\treferenced_from_script: v.referenced_from_script || false\r\n\t\t}));\r\n\t}\r\n\r\n\terror(\r\n\t\tpos: {\r\n\t\t\tstart: number;\r\n\t\t\tend: number;\r\n\t\t},\r\n\t\te: {\r\n\t\t\tcode: string;\r\n\t\t\tmessage: string;\r\n\t\t}\r\n\t) {\r\n\t\tif (this.compile_options.errorMode === 'warn') {\r\n\t\t\tthis.warn(pos, e);\r\n\t\t} else {\r\n\t\t\terror(e.message, {\r\n\t\t\t\tname: 'ValidationError',\r\n\t\t\t\tcode: e.code,\r\n\t\t\t\tsource: this.source,\r\n\t\t\t\tstart: pos.start,\r\n\t\t\t\tend: pos.end,\r\n\t\t\t\tfilename: this.compile_options.filename\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\twarn(\r\n\t\tpos: {\r\n\t\t\tstart: number;\r\n\t\t\tend: number;\r\n\t\t},\r\n\t\twarning: {\r\n\t\t\tcode: string;\r\n\t\t\tmessage: string;\r\n\t\t}\r\n\t) {\r\n\t\tif (this.ignores && this.ignores.has(warning.code)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst start = this.locate(pos.start);\r\n\t\tconst end = this.locate(pos.end);\r\n\r\n\t\tconst frame = get_code_frame(this.source, start.line - 1, start.column);\r\n\r\n\t\tthis.warnings.push({\r\n\t\t\tcode: warning.code,\r\n\t\t\tmessage: warning.message,\r\n\t\t\tframe,\r\n\t\t\tstart,\r\n\t\t\tend,\r\n\t\t\tpos: pos.start,\r\n\t\t\tfilename: this.compile_options.filename,\r\n\t\t\ttoString: () =>\r\n\t\t\t\t`${warning.message} (${start.line}:${start.column})\\n${frame}`\r\n\t\t});\r\n\t}\r\n\r\n\textract_imports(node) {\r\n\t\tthis.imports.push(node);\r\n\t}\r\n\r\n\textract_exports(node, module_script = false) {\r\n\t\tconst ignores = extract_svelte_ignore_from_comments(node);\r\n\t\tif (ignores.length) this.push_ignores(ignores);\r\n\t\tconst result = this._extract_exports(node, module_script);\r\n\t\tif (ignores.length) this.pop_ignores();\r\n\t\treturn result;\r\n\t}\r\n\r\n\tprivate _extract_exports(node: ExportDefaultDeclaration | ExportNamedDeclaration | ExportAllDeclaration, module_script: boolean) {\r\n\t\tif (node.type === 'ExportDefaultDeclaration') {\r\n\t\t\treturn this.error(node as any, compiler_errors.default_export);\r\n\t\t}\r\n\r\n\t\tif (node.type === 'ExportNamedDeclaration') {\r\n\t\t\tif (node.source) {\r\n\t\t\t\tif (module_script) {\r\n\t\t\t\t\tthis.exports_from.push(node);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.instance_exports_from.push(node);\r\n\t\t\t\t}\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t\tif (node.declaration) {\r\n\t\t\t\tif (node.declaration.type === 'VariableDeclaration') {\r\n\t\t\t\t\tnode.declaration.declarations.forEach(declarator => {\r\n\t\t\t\t\t\textract_names(declarator.id).forEach(name => {\r\n\t\t\t\t\t\t\tconst variable = this.var_lookup.get(name);\r\n\t\t\t\t\t\t\tvariable.export_name = name;\r\n\t\t\t\t\t\t\tif (!module_script && variable.writable && !(variable.referenced || variable.referenced_from_script || variable.subscribable)) {\r\n\t\t\t\t\t\t\t\tthis.warn(declarator as any, compiler_warnings.unused_export_let(this.name.name, name));\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconst { name } = node.declaration.id;\r\n\r\n\t\t\t\t\tconst variable = this.var_lookup.get(name);\r\n\t\t\t\t\tvariable.export_name = name;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn node.declaration;\r\n\t\t\t} else {\r\n\t\t\t\tnode.specifiers.forEach(specifier => {\r\n\t\t\t\t\tconst variable = this.var_lookup.get(specifier.local.name);\r\n\r\n\t\t\t\t\tif (variable) {\r\n\t\t\t\t\t\tvariable.export_name = specifier.exported.name;\r\n\r\n\t\t\t\t\t\tif (!module_script && variable.writable && !(variable.referenced || variable.referenced_from_script || variable.subscribable)) {\r\n\t\t\t\t\t\t\tthis.warn(specifier as any, compiler_warnings.unused_export_let(this.name.name, specifier.exported.name));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\textract_javascript(script) {\r\n\t\tif (!script) return null;\r\n\r\n\t\treturn script.content.body.filter(node => {\r\n\t\t\tif (!node) return false;\r\n\t\t\tif (this.hoistable_nodes.has(node)) return false;\r\n\t\t\tif (this.reactive_declaration_nodes.has(node)) return false;\r\n\t\t\tif (node.type === 'ImportDeclaration') return false;\r\n\t\t\tif (node.type === 'ExportDeclaration' && node.specifiers.length > 0) return false;\r\n\t\t\treturn true;\r\n\t\t});\r\n\t}\r\n\r\n\twalk_module_js() {\r\n\t\tconst component = this;\r\n\t\tconst script = this.ast.module;\r\n\t\tif (!script) return;\r\n\r\n\t\twalk(script.content, {\r\n\t\t\tenter(node: Node) {\r\n\t\t\t\tif (node.type === 'LabeledStatement' && node.label.name === '$') {\r\n\t\t\t\t\tcomponent.warn(node as any, compiler_warnings.module_script_reactive_declaration);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tconst { scope, globals } = create_scopes(script.content);\r\n\t\tthis.module_scope = scope;\r\n\r\n\t\tscope.declarations.forEach((node, name) => {\r\n\t\t\tif (name[0] === '$') {\r\n\t\t\t\treturn this.error(node as any, compiler_errors.illegal_declaration);\r\n\t\t\t}\r\n\r\n\t\t\tconst writable = node.type === 'VariableDeclaration' && (node.kind === 'var' || node.kind === 'let');\r\n\t\t\tconst imported = node.type.startsWith('Import');\r\n\r\n\t\t\tthis.add_var(node, {\r\n\t\t\t\tname,\r\n\t\t\t\tmodule: true,\r\n\t\t\t\thoistable: true,\r\n\t\t\t\twritable,\r\n\t\t\t\timported\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tglobals.forEach((node, name) => {\r\n\t\t\tif (name[0] === '$') {\r\n\t\t\t\treturn this.error(node as any, compiler_errors.illegal_subscription);\r\n\t\t\t} else {\r\n\t\t\t\tthis.add_var(node, {\r\n\t\t\t\t\tname,\r\n\t\t\t\t\tglobal: true,\r\n\t\t\t\t\thoistable: true\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tconst { body } = script.content;\r\n\t\tlet i = body.length;\r\n\t\twhile (--i >= 0) {\r\n\t\t\tconst node = body[i];\r\n\t\t\tif (node.type === 'ImportDeclaration') {\r\n\t\t\t\tthis.extract_imports(node);\r\n\t\t\t\tbody.splice(i, 1);\r\n\t\t\t}\r\n\r\n\t\t\tif (/^Export/.test(node.type)) {\r\n\t\t\t\tconst replacement = this.extract_exports(node, true);\r\n\t\t\t\tif (replacement) {\r\n\t\t\t\t\tbody[i] = replacement;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tbody.splice(i, 1);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\twalk_instance_js_pre_template() {\r\n\t\tconst script = this.ast.instance;\r\n\t\tif (!script) return;\r\n\r\n\t\t// inject vars for reactive declarations\r\n\t\tscript.content.body.forEach(node => {\r\n\t\t\tif (node.type !== 'LabeledStatement') return;\r\n\t\t\tif (node.body.type !== 'ExpressionStatement') return;\r\n\r\n\t\t\tconst { expression } = node.body;\r\n\t\t\tif (expression.type !== 'AssignmentExpression') return;\r\n\t\t\tif (expression.left.type === 'MemberExpression') return;\r\n\r\n\t\t\textract_names(expression.left).forEach(name => {\r\n\t\t\t\tif (!this.var_lookup.has(name) && name[0] !== '$') {\r\n\t\t\t\t\tthis.injected_reactive_declaration_vars.add(name);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tconst { scope: instance_scope, map, globals } = create_scopes(\r\n\t\t\tscript.content\r\n\t\t);\r\n\t\tthis.instance_scope = instance_scope;\r\n\t\tthis.instance_scope_map = map;\r\n\r\n\t\tinstance_scope.declarations.forEach((node, name) => {\r\n\t\t\tif (name[0] === '$') {\r\n\t\t\t\treturn this.error(node as any, compiler_errors.illegal_declaration);\r\n\t\t\t}\r\n\r\n\t\t\tconst writable = node.type === 'VariableDeclaration' && (node.kind === 'var' || node.kind === 'let');\r\n\t\t\tconst imported = node.type.startsWith('Import');\r\n\r\n\t\t\tthis.add_var(node, {\r\n\t\t\t\tname,\r\n\t\t\t\tinitialised: instance_scope.initialised_declarations.has(name),\r\n\t\t\t\twritable,\r\n\t\t\t\timported\r\n\t\t\t});\r\n\r\n\t\t\tthis.node_for_declaration.set(name, node);\r\n\t\t});\r\n\r\n\t\t// NOTE: add store variable first, then only $store value\r\n\t\t// as `$store` will mark `store` variable as referenced and subscribable\r\n\t\tconst global_keys = Array.from(globals.keys());\r\n\t\tconst sorted_globals = [\r\n\t\t\t...global_keys.filter(key => key[0] !== '$'),\r\n\t\t\t...global_keys.filter(key => key[0] === '$')\r\n\t\t];\r\n\r\n\t\tsorted_globals.forEach(name => {\r\n\t\t\tif (this.var_lookup.has(name)) return;\r\n\t\t\tconst node = globals.get(name);\r\n\r\n\t\t\tif (this.injected_reactive_declaration_vars.has(name)) {\r\n\t\t\t\tthis.add_var(node, {\r\n\t\t\t\t\tname,\r\n\t\t\t\t\tinjected: true,\r\n\t\t\t\t\twritable: true,\r\n\t\t\t\t\treassigned: true,\r\n\t\t\t\t\tinitialised: true\r\n\t\t\t\t});\r\n\t\t\t} else if (is_reserved_keyword(name)) {\r\n\t\t\t\tthis.add_var(node, {\r\n\t\t\t\t\tname,\r\n\t\t\t\t\tinjected: true\r\n\t\t\t\t});\r\n\t\t\t} else if (name[0] === '$') {\r\n\t\t\t\tif (name === '$' || name[1] === '$') {\r\n\t\t\t\t\treturn this.error(node as any, compiler_errors.illegal_global(name));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.add_var(node, {\r\n\t\t\t\t\tname,\r\n\t\t\t\t\tinjected: true,\r\n\t\t\t\t\tmutated: true,\r\n\t\t\t\t\twritable: true\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis.add_reference(node, name.slice(1));\r\n\r\n\t\t\t\tconst variable = this.var_lookup.get(name.slice(1));\r\n\t\t\t\tif (variable) {\r\n\t\t\t\t\tvariable.subscribable = true;\r\n\t\t\t\t\tvariable.referenced_from_script = true;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tthis.add_var(node, {\r\n\t\t\t\t\tname,\r\n\t\t\t\t\tglobal: true,\r\n\t\t\t\t\thoistable: true\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.track_references_and_mutations();\r\n\t}\r\n\r\n\twalk_instance_js_post_template() {\r\n\t\tconst script = this.ast.instance;\r\n\t\tif (!script) return;\r\n\r\n\t\tthis.post_template_walk();\r\n\r\n\t\tthis.hoist_instance_declarations();\r\n\t\tthis.extract_reactive_declarations();\r\n\t}\r\n\r\n\tpost_template_walk() {\r\n\t\tconst script = this.ast.instance;\r\n\t\tif (!script) return;\r\n\r\n\t\tconst component = this;\r\n\t\tconst { content } = script;\r\n\t\tconst { instance_scope, instance_scope_map: map } = this;\r\n\r\n\t\tlet scope = instance_scope;\r\n\r\n\t\tconst to_remove = [];\r\n\t\tconst remove = (parent, prop, index) => {\r\n\t\t\tto_remove.unshift([parent, prop, index]);\r\n\t\t};\r\n\t\tlet scope_updated = false;\r\n\r\n\t\tconst current_function_stack = [];\r\n\t\tlet current_function: FunctionDeclaration | FunctionExpression = null;\r\n\r\n\t\twalk(content, {\r\n\t\t\tenter(node: Node, parent: Node, prop, index) {\r\n\t\t\t\tif ((node.type === 'FunctionDeclaration' || node.type === 'FunctionExpression')) {\r\n\t\t\t\t\tcurrent_function_stack.push(current_function = node);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (map.has(node)) {\r\n\t\t\t\t\tscope = map.get(node);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (node.type === 'ImportDeclaration') {\r\n\t\t\t\t\tcomponent.extract_imports(node);\r\n\t\t\t\t\t// TODO: to use actual remove\r\n\t\t\t\t\tremove(parent, prop, index);\r\n\t\t\t\t\treturn this.skip();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (/^Export/.test(node.type)) {\r\n\t\t\t\t\tconst replacement = component.extract_exports(node);\r\n\t\t\t\t\tif (replacement) {\r\n\t\t\t\t\t\tthis.replace(replacement);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// TODO: to use actual remove\r\n\t\t\t\t\t\tremove(parent, prop, index);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn this.skip();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcomponent.warn_on_undefined_store_value_references(node, parent, prop, scope);\r\n\t\t\t},\r\n\r\n\t\t\tleave(node: Node) {\r\n\t\t\t\tif ((node.type === 'FunctionDeclaration' || node.type === 'FunctionExpression')) {\r\n\t\t\t\t\tcurrent_function_stack.pop();\r\n\t\t\t\t\tcurrent_function = current_function_stack[current_function_stack.length - 1];\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// do it on leave, to prevent infinite loop\r\n\t\t\t\tif (component.compile_options.dev && component.compile_options.loopGuardTimeout > 0 && (!current_function || (!current_function.generator && !current_function.async))) {\r\n\t\t\t\t\tconst to_replace_for_loop_protect = component.loop_protect(node, scope, component.compile_options.loopGuardTimeout);\r\n\t\t\t\t\tif (to_replace_for_loop_protect) {\r\n\t\t\t\t\t\tthis.replace(to_replace_for_loop_protect);\r\n\t\t\t\t\t\tscope_updated = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (map.has(node)) {\r\n\t\t\t\t\tscope = scope.parent;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tfor (const [parent, prop, index] of to_remove) {\r\n\t\t\tif (parent) {\r\n\t\t\t\tif (index !== null) {\r\n\t\t\t\t\tparent[prop].splice(index, 1);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdelete parent[prop];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (scope_updated) {\r\n\t\t\tconst { scope, map } = create_scopes(script.content);\r\n\t\t\tthis.instance_scope = scope;\r\n\t\t\tthis.instance_scope_map = map;\r\n\t\t}\r\n\t}\r\n\r\n\ttrack_references_and_mutations() {\r\n\t\tconst script = this.ast.instance;\r\n\t\tif (!script) return;\r\n\r\n\t\tconst component = this;\r\n\t\tconst { content } = script;\r\n\t\tconst { instance_scope, module_scope, instance_scope_map: map } = this;\r\n\r\n\t\tlet scope = instance_scope;\r\n\r\n\t\twalk(content, {\r\n\t\t\tenter(node: Node, parent: Node) {\r\n\t\t\t\tif (map.has(node)) {\r\n\t\t\t\t\tscope = map.get(node);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (node.type === 'AssignmentExpression' || node.type === 'UpdateExpression') {\r\n\t\t\t\t\tconst assignee = node.type === 'AssignmentExpression' ? node.left : node.argument;\r\n\t\t\t\t\tconst names = extract_names(assignee as Node);\r\n\r\n\t\t\t\t\tconst deep = assignee.type === 'MemberExpression';\r\n\r\n\t\t\t\t\tnames.forEach(name => {\r\n\t\t\t\t\t\tconst scope_owner = scope.find_owner(name);\r\n\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\tscope_owner !== null\r\n\t\t\t\t\t\t\t\t? scope_owner === instance_scope\r\n\t\t\t\t\t\t\t\t: module_scope && module_scope.has(name)\r\n\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\tconst variable = component.var_lookup.get(name);\r\n\t\t\t\t\t\t\tvariable[deep ? 'mutated' : 'reassigned'] = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (is_used_as_reference(node, parent)) {\r\n\t\t\t\t\tconst object = get_object(node);\r\n\t\t\t\t\tif (scope.find_owner(object.name) === instance_scope) {\r\n\t\t\t\t\t\tconst variable = component.var_lookup.get(object.name);\r\n\t\t\t\t\t\tvariable.referenced_from_script = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\tleave(node: Node) {\r\n\t\t\t\tif (map.has(node)) {\r\n\t\t\t\t\tscope = scope.parent;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\twarn_on_undefined_store_value_references(node: Node, parent: Node, prop: string, scope: Scope) {\r\n\t\tif (\r\n\t\t\tnode.type === 'LabeledStatement' &&\r\n\t\t\tnode.label.name === '$' &&\r\n\t\t\tparent.type !== 'Program'\r\n\t\t) {\r\n\t\t\tthis.warn(node as any, compiler_warnings.non_top_level_reactive_declaration);\r\n\t\t}\r\n\r\n\t\tif (is_reference(node as NodeWithPropertyDefinition, parent as NodeWithPropertyDefinition)) {\r\n\t\t\tconst object = get_object(node);\r\n\t\t\tconst { name } = object;\r\n\r\n\t\t\tif (name[0] === '$') {\r\n\t\t\t\tif (!scope.has(name)) {\r\n\t\t\t\t\tthis.warn_if_undefined(name, object, null);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (name[1] !== '$' && scope.has(name.slice(1)) && scope.find_owner(name.slice(1)) !== this.instance_scope) {\r\n\t\t\t\t\tif (!((/Function/.test(parent.type) && prop === 'params') || (parent.type === 'VariableDeclarator' && prop === 'id'))) {\r\n\t\t\t\t\t\treturn this.error(node as any, compiler_errors.contextual_store);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tloop_protect(node, scope: Scope, timeout: number): Node | null {\r\n\t\tif (node.type === 'WhileStatement' ||\r\n\t\t\tnode.type === 'ForStatement' ||\r\n\t\t\tnode.type === 'DoWhileStatement') {\r\n\t\t\tconst guard = this.get_unique_name('guard', scope);\r\n\t\t\tthis.used_names.add(guard.name);\r\n\r\n\t\t\tconst before = b`const ${guard} = @loop_guard(${timeout})`;\r\n\t\t\tconst inside = b`${guard}();`;\r\n\r\n\t\t\t// wrap expression statement with BlockStatement\r\n\t\t\tif (node.body.type !== 'BlockStatement') {\r\n\t\t\t\tnode.body = {\r\n\t\t\t\t\ttype: 'BlockStatement',\r\n\t\t\t\t\tbody: [node.body]\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\tnode.body.body.push(inside[0]);\r\n\r\n\t\t\treturn {\r\n\t\t\t\ttype: 'BlockStatement',\r\n\t\t\t\tbody: [\r\n\t\t\t\t\tbefore[0],\r\n\t\t\t\t\tnode\r\n\t\t\t\t]\r\n\t\t\t};\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\trewrite_props(get_insert: (variable: Var) => Node[]) {\r\n\t\tif (!this.ast.instance) return;\r\n\r\n\t\tconst component = this;\r\n\t\tconst { instance_scope, instance_scope_map: map } = this;\r\n\t\tlet scope = instance_scope;\r\n\r\n\t\twalk(this.ast.instance.content, {\r\n\t\t\tenter(node: Node) {\r\n\t\t\t\tif (/Function/.test(node.type)) {\r\n\t\t\t\t\treturn this.skip();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (map.has(node)) {\r\n\t\t\t\t\tscope = map.get(node);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (node.type === 'ExportNamedDeclaration' && node.declaration) {\r\n\t\t\t\t\treturn this.replace(node.declaration);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (node.type === 'VariableDeclaration') {\r\n\t\t\t\t\t// NOTE: `var` does not follow block scoping\r\n\t\t\t\t\tif (node.kind === 'var' || scope === instance_scope) {\r\n\t\t\t\t\t\tconst inserts = [];\r\n\t\t\t\t\t\tconst props = [];\r\n\r\n\t\t\t\t\t\tfunction add_new_props(exported, local, default_value) {\r\n\t\t\t\t\t\t\tprops.push({\r\n\t\t\t\t\t\t\t\ttype: 'Property',\r\n\t\t\t\t\t\t\t\tmethod: false,\r\n\t\t\t\t\t\t\t\tshorthand: false,\r\n\t\t\t\t\t\t\t\tcomputed: false,\r\n\t\t\t\t\t\t\t\tkind: 'init',\r\n\t\t\t\t\t\t\t\tkey: exported,\r\n\t\t\t\t\t\t\t\tvalue: default_value\r\n\t\t\t\t\t\t\t\t\t? {\r\n\t\t\t\t\t\t\t\t\t\ttype: 'AssignmentPattern',\r\n\t\t\t\t\t\t\t\t\t\tleft: local,\r\n\t\t\t\t\t\t\t\t\t\tright: default_value\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t: local\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// transform\r\n\t\t\t\t\t\t// ```\r\n\t\t\t\t\t\t// export let { x, y = 123 } = OBJ, z = 456\r\n\t\t\t\t\t\t// ```\r\n\t\t\t\t\t\t// into\r\n\t\t\t\t\t\t// ```\r\n\t\t\t\t\t\t// let { x: x$, y: y$ = 123 } = OBJ;\r\n\t\t\t\t\t\t// let { x = x$, y = y$, z = 456 } = $$props;\r\n\t\t\t\t\t\t// ```\r\n\t\t\t\t\t\tfor (let index = 0; index < node.declarations.length; index++) {\r\n\t\t\t\t\t\t\tconst declarator = node.declarations[index];\r\n\t\t\t\t\t\t\tif (declarator.id.type !== 'Identifier') {\r\n\t\t\t\t\t\t\t\tfunction get_new_name(local) {\r\n\t\t\t\t\t\t\t\t\tconst variable = component.var_lookup.get(local.name);\r\n\t\t\t\t\t\t\t\t\tif (variable.subscribable) {\r\n\t\t\t\t\t\t\t\t\t\tinserts.push(get_insert(variable));\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\tif (variable.export_name && variable.writable) {\r\n\t\t\t\t\t\t\t\t\t\tconst alias_name = component.get_unique_name(local.name);\r\n\t\t\t\t\t\t\t\t\t\tadd_new_props({ type: 'Identifier', name: variable.export_name }, local, alias_name);\r\n\t\t\t\t\t\t\t\t\t\treturn alias_name;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\treturn local;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tfunction rename_identifiers(param: Node) {\r\n\t\t\t\t\t\t\t\t\tswitch (param.type) {\r\n\t\t\t\t\t\t\t\t\t\tcase 'ObjectPattern': {\r\n\t\t\t\t\t\t\t\t\t\t\tconst handle_prop = (prop: Property | RestElement) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (prop.type === 'RestElement') {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\trename_identifiers(prop);\r\n\t\t\t\t\t\t\t\t\t\t\t\t} else if (prop.value.type === 'Identifier') {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tprop.value = get_new_name(prop.value);\r\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\trename_identifiers(prop.value);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tparam.properties.forEach(handle_prop);\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tcase 'ArrayPattern': {\r\n\t\t\t\t\t\t\t\t\t\t\tconst handle_element = (element: Node, index: number, array: Node[]) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (element) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (element.type === 'Identifier') {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tarray[index] = get_new_name(element);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\trename_identifiers(element);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tparam.elements.forEach(handle_element);\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tcase 'RestElement':\r\n\t\t\t\t\t\t\t\t\t\t\tparam.argument = get_new_name(param.argument);\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\t\t\tcase 'AssignmentPattern':\r\n\t\t\t\t\t\t\t\t\t\t\tif (param.left.type === 'Identifier') {\r\n\t\t\t\t\t\t\t\t\t\t\t\tparam.left = get_new_name(param.left);\r\n\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\trename_identifiers(param.left);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\trename_identifiers(declarator.id);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tconst { name } = declarator.id;\r\n\t\t\t\t\t\t\t\tconst variable = component.var_lookup.get(name);\r\n\t\t\t\t\t\t\t\tconst is_props = variable.export_name && variable.writable;\r\n\t\t\t\t\t\t\t\tif (is_props) {\r\n\t\t\t\t\t\t\t\t\tadd_new_props({ type: 'Identifier', name: variable.export_name }, declarator.id, declarator.init);\r\n\t\t\t\t\t\t\t\t\tnode.declarations.splice(index--, 1);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (variable.subscribable && (is_props || declarator.init)) {\r\n\t\t\t\t\t\t\t\t\tinserts.push(get_insert(variable));\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthis.replace(b`\r\n\t\t\t\t\t\t\t${node.declarations.length ? node : null}\r\n\t\t\t\t\t\t\t${ props.length > 0 && b`let { ${ props } } = $$props;`}\r\n\t\t\t\t\t\t\t${inserts}\r\n\t\t\t\t\t\t` as any);\r\n\t\t\t\t\t\treturn this.skip();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\tleave(node: Node) {\r\n\t\t\t\tif (map.has(node)) {\r\n\t\t\t\t\tscope = scope.parent;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\thoist_instance_declarations() {\r\n\t\t// we can safely hoist variable declarations that are\r\n\t\t// initialised to literals, and functions that don't\r\n\t\t// reference instance variables other than other\r\n\t\t// hoistable functions. TODO others?\r\n\r\n\t\tconst {\r\n\t\t\thoistable_nodes,\r\n\t\t\tvar_lookup,\r\n\t\t\tinjected_reactive_declaration_vars,\r\n\t\t\timports\r\n\t\t} = this;\r\n\r\n\t\tconst top_level_function_declarations = new Map();\r\n\r\n\t\tconst { body } = this.ast.instance.content;\r\n\r\n\t\tfor (let i = 0; i < body.length; i += 1) {\r\n\t\t\tconst node = body[i];\r\n\r\n\t\t\tif (node.type === 'VariableDeclaration') {\r\n\t\t\t\tconst all_hoistable = node.declarations.every(d => {\r\n\t\t\t\t\tif (!d.init) return false;\r\n\t\t\t\t\tif (d.init.type !== 'Literal') return false;\r\n\r\n\t\t\t\t\t// everything except const values can be changed by e.g. svelte devtools\r\n\t\t\t\t\t// which means we can't hoist it\r\n\t\t\t\t\tif (node.kind !== 'const' && this.compile_options.dev) return false;\r\n\r\n\t\t\t\t\tconst { name } = d.id as Identifier;\r\n\r\n\t\t\t\t\tconst v = this.var_lookup.get(name);\r\n\t\t\t\t\tif (v.reassigned) return false;\r\n\t\t\t\t\tif (v.export_name) return false;\r\n\r\n\t\t\t\t\tif (this.var_lookup.get(name).reassigned) return false;\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\tthis.vars.find(\r\n\t\t\t\t\t\t\tvariable => variable.name === name && variable.module\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (all_hoistable) {\r\n\t\t\t\t\tnode.declarations.forEach(d => {\r\n\t\t\t\t\t\tconst variable = this.var_lookup.get((d.id as Identifier).name);\r\n\t\t\t\t\t\tvariable.hoistable = true;\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\thoistable_nodes.add(node);\r\n\r\n\t\t\t\t\tbody.splice(i--, 1);\r\n\t\t\t\t\tthis.fully_hoisted.push(node);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (\r\n\t\t\t\tnode.type === 'ExportNamedDeclaration' &&\r\n\t\t\t\tnode.declaration &&\r\n\t\t\t\tnode.declaration.type === 'FunctionDeclaration'\r\n\t\t\t) {\r\n\t\t\t\ttop_level_function_declarations.set(node.declaration.id.name, node);\r\n\t\t\t}\r\n\r\n\t\t\tif (node.type === 'FunctionDeclaration') {\r\n\t\t\t\ttop_level_function_declarations.set(node.id.name, node);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst checked = new Set();\r\n\t\tconst walking = new Set();\r\n\r\n\t\tconst is_hoistable = fn_declaration => {\r\n\t\t\tif (fn_declaration.type === 'ExportNamedDeclaration') {\r\n\t\t\t\tfn_declaration = fn_declaration.declaration;\r\n\t\t\t}\r\n\r\n\t\t\tconst instance_scope = this.instance_scope;\r\n\t\t\tlet scope = this.instance_scope;\r\n\t\t\tconst map = this.instance_scope_map;\r\n\r\n\t\t\tlet hoistable = true;\r\n\r\n\t\t\t// handle cycles\r\n\t\t\twalking.add(fn_declaration);\r\n\r\n\t\t\twalk(fn_declaration, {\r\n\t\t\t\tenter(node: Node, parent) {\r\n\t\t\t\t\tif (!hoistable) return this.skip();\r\n\r\n\t\t\t\t\tif (map.has(node)) {\r\n\t\t\t\t\t\tscope = map.get(node);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (is_reference(node as NodeWithPropertyDefinition, parent as NodeWithPropertyDefinition)) {\r\n\t\t\t\t\t\tconst { name } = flatten_reference(node);\r\n\t\t\t\t\t\tconst owner = scope.find_owner(name);\r\n\r\n\t\t\t\t\t\tif (injected_reactive_declaration_vars.has(name)) {\r\n\t\t\t\t\t\t\thoistable = false;\r\n\t\t\t\t\t\t} else if (name[0] === '$' && !owner) {\r\n\t\t\t\t\t\t\thoistable = false;\r\n\t\t\t\t\t\t} else if (owner === instance_scope) {\r\n\t\t\t\t\t\t\tconst variable = var_lookup.get(name);\r\n\r\n\t\t\t\t\t\t\tif (variable.reassigned || variable.mutated) hoistable = false;\r\n\r\n\t\t\t\t\t\t\tif (name === fn_declaration.id.name) return;\r\n\r\n\t\t\t\t\t\t\tif (variable.hoistable) return;\r\n\r\n\t\t\t\t\t\t\tif (top_level_function_declarations.has(name)) {\r\n\t\t\t\t\t\t\t\tconst other_declaration = top_level_function_declarations.get(\r\n\t\t\t\t\t\t\t\t\tname\r\n\t\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t\tif (walking.has(other_declaration)) {\r\n\t\t\t\t\t\t\t\t\thoistable = false;\r\n\t\t\t\t\t\t\t\t} else if (\r\n\t\t\t\t\t\t\t\t\tother_declaration.type === 'ExportNamedDeclaration' &&\r\n\t\t\t\t\t\t\t\t\twalking.has(other_declaration.declaration)\r\n\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\thoistable = false;\r\n\t\t\t\t\t\t\t\t} else if (!is_hoistable(other_declaration)) {\r\n\t\t\t\t\t\t\t\t\thoistable = false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\thoistable = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthis.skip();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\r\n\t\t\t\tleave(node: Node) {\r\n\t\t\t\t\tif (map.has(node)) {\r\n\t\t\t\t\t\tscope = scope.parent;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tchecked.add(fn_declaration);\r\n\t\t\twalking.delete(fn_declaration);\r\n\r\n\t\t\treturn hoistable;\r\n\t\t};\r\n\r\n\t\tfor (const [name, node] of top_level_function_declarations) {\r\n\t\t\tif (is_hoistable(node)) {\r\n\t\t\t\tconst variable = this.var_lookup.get(name);\r\n\t\t\t\tvariable.hoistable = true;\r\n\t\t\t\thoistable_nodes.add(node);\r\n\r\n\t\t\t\tconst i = body.indexOf(node);\r\n\t\t\t\tbody.splice(i, 1);\r\n\t\t\t\tthis.fully_hoisted.push(node);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfor (const { specifiers } of imports) {\r\n\t\t\tfor (const specifier of specifiers) {\r\n\t\t\t\tconst variable = var_lookup.get(specifier.local.name);\r\n\r\n\t\t\t\tif (!variable.mutated || variable.subscribable) {\r\n\t\t\t\t\tvariable.hoistable = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\textract_reactive_declarations() {\r\n\t\tconst component = this;\r\n\r\n\t\tconst unsorted_reactive_declarations: Array<{\r\n\t\t\tassignees: Set<string>;\r\n\t\t\tdependencies: Set<string>;\r\n\t\t\tnode: Node;\r\n\t\t\tdeclaration: Node;\r\n\t\t}> = [];\r\n\r\n\t\tthis.ast.instance.content.body.forEach(node => {\r\n\t\t\tconst ignores = extract_svelte_ignore_from_comments(node);\r\n\t\t\tif (ignores.length) this.push_ignores(ignores);\r\n\r\n\t\t\tif (node.type === 'LabeledStatement' && node.label.name === '$') {\r\n\t\t\t\tthis.reactive_declaration_nodes.add(node);\r\n\r\n\t\t\t\tconst assignees = new Set<string>();\r\n\t\t\t\tconst assignee_nodes = new Set();\r\n\t\t\t\tconst dependencies = new Set<string>();\r\n\t\t\t\tconst module_dependencies = new Set<string>();\r\n\r\n\t\t\t\tlet scope = this.instance_scope;\r\n\t\t\t\tconst map = this.instance_scope_map;\r\n\r\n\t\t\t\twalk(node.body, {\r\n\t\t\t\t\tenter(node: Node, parent) {\r\n\t\t\t\t\t\tif (map.has(node)) {\r\n\t\t\t\t\t\t\tscope = map.get(node);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (node.type === 'AssignmentExpression') {\r\n\t\t\t\t\t\t\tconst left = get_object(node.left);\r\n\r\n\t\t\t\t\t\t\textract_identifiers(left).forEach(node => {\r\n\t\t\t\t\t\t\t\tassignee_nodes.add(node);\r\n\t\t\t\t\t\t\t\tassignees.add(node.name);\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\tif (node.operator !== '=') {\r\n\t\t\t\t\t\t\t\tdependencies.add(left.name);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else if (node.type === 'UpdateExpression') {\r\n\t\t\t\t\t\t\tconst identifier = get_object(node.argument);\r\n\t\t\t\t\t\t\tassignees.add(identifier.name);\r\n\t\t\t\t\t\t} else if (is_reference(node as NodeWithPropertyDefinition, parent as NodeWithPropertyDefinition)) {\r\n\t\t\t\t\t\t\tconst identifier = get_object(node);\r\n\t\t\t\t\t\t\tif (!assignee_nodes.has(identifier)) {\r\n\t\t\t\t\t\t\t\tconst { name } = identifier;\r\n\t\t\t\t\t\t\t\tconst owner = scope.find_owner(name);\r\n\t\t\t\t\t\t\t\tconst variable = component.var_lookup.get(name);\r\n\t\t\t\t\t\t\t\tlet should_add_as_dependency = true;\r\n\r\n\t\t\t\t\t\t\t\tif (variable) {\r\n\t\t\t\t\t\t\t\t\tvariable.is_reactive_dependency = true;\r\n\t\t\t\t\t\t\t\t\tif (variable.module && variable.writable) {\r\n\t\t\t\t\t\t\t\t\t\tshould_add_as_dependency = false;\r\n\t\t\t\t\t\t\t\t\t\tmodule_dependencies.add(name);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tconst is_writable_or_mutated =\r\n\t\t\t\t\t\t\t\t\tvariable && (variable.writable || variable.mutated);\r\n\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\tshould_add_as_dependency &&\r\n\t\t\t\t\t\t\t\t\t(!owner || owner === component.instance_scope) &&\r\n\t\t\t\t\t\t\t\t\t(name[0] === '$' || is_writable_or_mutated)\r\n\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\tdependencies.add(name);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tthis.skip();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tleave(node: Node) {\r\n\t\t\t\t\t\tif (map.has(node)) {\r\n\t\t\t\t\t\t\tscope = scope.parent;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (module_dependencies.size > 0 && dependencies.size === 0) {\r\n\t\t\t\t\tcomponent.warn(node.body as any, compiler_warnings.module_script_variable_reactive_declaration(Array.from(module_dependencies)));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst { expression } = node.body as ExpressionStatement;\r\n\t\t\t\tconst declaration = expression && (expression as AssignmentExpression).left;\r\n\r\n\t\t\t\tunsorted_reactive_declarations.push({\r\n\t\t\t\t\tassignees,\r\n\t\t\t\t\tdependencies,\r\n\t\t\t\t\tnode,\r\n\t\t\t\t\tdeclaration\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif (ignores.length) this.pop_ignores();\r\n\t\t});\r\n\r\n\t\tconst lookup = new Map();\r\n\r\n\t\tunsorted_reactive_declarations.forEach(declaration => {\r\n\t\t\tdeclaration.assignees.forEach(name => {\r\n\t\t\t\tif (!lookup.has(name)) {\r\n\t\t\t\t\tlookup.set(name, []);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// TODO warn or error if a name is assigned to in\r\n\t\t\t\t// multiple reactive declarations?\r\n\t\t\t\tlookup.get(name).push(declaration);\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tconst cycle = check_graph_for_cycles(unsorted_reactive_declarations.reduce((acc, declaration) => {\r\n\t\t\tdeclaration.assignees.forEach(v => {\r\n\t\t\t\tdeclaration.dependencies.forEach(w => {\r\n\t\t\t\t\tif (!declaration.assignees.has(w)) {\r\n\t\t\t\t\t\tacc.push([v, w]);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t\treturn acc;\r\n\t\t}, []));\r\n\r\n\t\tif (cycle && cycle.length) {\r\n\t\t\tconst declarationList = lookup.get(cycle[0]);\r\n\t\t\tconst declaration = declarationList[0];\r\n\t\t\treturn this.error(declaration.node, compiler_errors.cyclical_reactive_declaration(cycle));\r\n\t\t}\r\n\r\n\t\tconst add_declaration = declaration => {\r\n\t\t\tif (this.reactive_declarations.includes(declaration)) return;\r\n\r\n\t\t\tdeclaration.dependencies.forEach(name => {\r\n\t\t\t\tif (declaration.assignees.has(name)) return;\r\n\t\t\t\tconst earlier_declarations = lookup.get(name);\r\n\t\t\t\tif (earlier_declarations) {\r\n\t\t\t\t\tearlier_declarations.forEach(add_declaration);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.reactive_declarations.push(declaration);\r\n\t\t};\r\n\r\n\t\tunsorted_reactive_declarations.forEach(add_declaration);\r\n\t}\r\n\r\n\twarn_if_undefined(name: string, node, template_scope: TemplateScope) {\r\n\t\tif (name[0] === '$') {\r\n\t\t\tif (name === '$' || name[1] === '$' && !is_reserved_keyword(name)) {\r\n\t\t\t\treturn this.error(node, compiler_errors.illegal_global(name));\r\n\t\t\t}\r\n\r\n\t\t\tthis.has_reactive_assignments = true; // TODO does this belong here?\r\n\r\n\t\t\tif (is_reserved_keyword(name)) return;\r\n\r\n\t\t\tname = name.slice(1);\r\n\t\t}\r\n\r\n\t\tif (this.var_lookup.has(name) && !this.var_lookup.get(name).global) return;\r\n\t\tif (template_scope && template_scope.names.has(name)) return;\r\n\t\tif (globals.has(name) && node.type !== 'InlineComponent') return;\r\n\r\n\t\tthis.warn(node, compiler_warnings.missing_declaration(name, !!this.ast.instance));\r\n\t}\r\n\r\n\tpush_ignores(ignores) {\r\n\t\tthis.ignores = new Set(this.ignores || []);\r\n\t\tadd_to_set(this.ignores, ignores);\r\n\t\tthis.ignore_stack.push(this.ignores);\r\n\t}\r\n\r\n\tpop_ignores() {\r\n\t\tthis.ignore_stack.pop();\r\n\t\tthis.ignores = this.ignore_stack[this.ignore_stack.length - 1];\r\n\t}\r\n}\r\n\r\nfunction process_component_options(component: Component, nodes) {\r\n\tconst component_options: ComponentOptions = {\r\n\t\timmutable: component.compile_options.immutable || false,\r\n\t\taccessors:\r\n\t\t\t'accessors' in component.compile_options\r\n\t\t\t\t? component.compile_options.accessors\r\n\t\t\t\t: !!component.compile_options.customElement,\r\n\t\tpreserveWhitespace: !!component.compile_options.preserveWhitespace,\r\n\t\tnamespace: component.compile_options.namespace\r\n\t};\r\n\r\n\tconst node = nodes.find(node => node.name === 'svelte:options');\r\n\r\n\tfunction get_value(attribute, {code, message}) {\r\n\t\tconst { value } = attribute;\r\n\t\tconst chunk = value[0];\r\n\r\n\t\tif (!chunk) return true;\r\n\r\n\t\tif (value.length > 1) {\r\n\t\t\treturn component.error(attribute, { code, message });\r\n\t\t}\r\n\r\n\t\tif (chunk.type === 'Text') return chunk.data;\r\n\r\n\t\tif (chunk.expression.type !== 'Literal') {\r\n\t\t\treturn component.error(attribute, { code, message });\r\n\t\t}\r\n\r\n\t\treturn chunk.expression.value;\r\n\t}\r\n\r\n\tif (node) {\r\n\t\tnode.attributes.forEach(attribute => {\r\n\t\t\tif (attribute.type === 'Attribute') {\r\n\t\t\t\tconst { name } = attribute;\r\n\r\n\t\t\t\tswitch (name) {\r\n\t\t\t\t\tcase 'tag': {\r\n\t\t\t\t\t\tconst tag = get_value(attribute, compiler_errors.invalid_tag_attribute);\r\n\r\n\t\t\t\t\t\tif (typeof tag !== 'string' && tag !== null) {\r\n\t\t\t\t\t\t\treturn component.error(attribute, compiler_errors.invalid_tag_attribute);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (tag && !/^[a-zA-Z][a-zA-Z0-9]*-[a-zA-Z0-9-]+$/.test(tag)) {\r\n\t\t\t\t\t\t\treturn component.error(attribute, compiler_errors.invalid_tag_property);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (tag && !component.compile_options.customElement) {\r\n\t\t\t\t\t\t\tcomponent.warn(attribute, compiler_warnings.missing_custom_element_compile_options);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tcomponent_options.tag = tag;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tcase 'namespace': {\r\n\t\t\t\t\t\tconst ns = get_value(attribute, compiler_errors.invalid_namespace_attribute);\r\n\r\n\t\t\t\t\t\tif (typeof ns !== 'string') {\r\n\t\t\t\t\t\t\treturn component.error(attribute, compiler_errors.invalid_namespace_attribute);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (valid_namespaces.indexOf(ns) === -1) {\r\n\t\t\t\t\t\t\tconst match = fuzzymatch(ns, valid_namespaces);\r\n\t\t\t\t\t\t\treturn component.error(attribute, compiler_errors.invalid_namespace_property(ns, match));\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tcomponent_options.namespace = ns;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tcase 'accessors':\r\n\t\t\t\t\tcase 'immutable':\r\n\t\t\t\t\tcase 'preserveWhitespace': {\r\n\t\t\t\t\t\tconst value = get_value(attribute, compiler_errors.invalid_attribute_value(name));\r\n\r\n\t\t\t\t\t\tif (typeof value !== 'boolean') {\r\n\t\t\t\t\t\t\treturn component.error(attribute, compiler_errors.invalid_attribute_value(name));\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tcomponent_options[name] = value;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\treturn component.error(attribute, compiler_errors.invalid_options_attribute_unknown);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\treturn component.error(attribute, compiler_errors.invalid_options_attribute);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\treturn component_options;\r\n}\r\n\r\nfunction get_relative_path(from: string, to: string) {\r\n\tconst from_parts = from.split(/[/\\\\]/);\r\n\tconst to_parts = to.split(/[/\\\\]/);\r\n\r\n\tfrom_parts.pop(); // get dirname\r\n\r\n\twhile (from_parts[0] === to_parts[0]) {\r\n\t\tfrom_parts.shift();\r\n\t\tto_parts.shift();\r\n\t}\r\n\r\n\tif (from_parts.length) {\r\n\t\tlet i = from_parts.length;\r\n\t\twhile (i--) from_parts[i] = '..';\r\n\t}\r\n\r\n\treturn from_parts.concat(to_parts).join('/');\r\n}\r\n\r\nfunction get_basename(filename: string) {\r\n\treturn filename.split(/[/\\\\]/).pop();\r\n}\r\n\r\nfunction get_sourcemap_source_filename(compile_options: CompileOptions) {\r\n\tif (!compile_options.filename) return null;\r\n\r\n\treturn compile_options.outputFilename\r\n\t\t? get_relative_path(compile_options.outputFilename, compile_options.filename)\r\n\t\t: get_basename(compile_options.filename);\r\n}\r\n","export default function get_name_from_filename(filename: string) {\r\n\tif (!filename) return null;\r\n\r\n\tconst parts = filename.split(/[/\\\\]/).map(encodeURI);\r\n\r\n\tif (parts.length > 1) {\r\n\t\tconst index_match = parts[parts.length - 1].match(/^index(\\.\\w+)/);\r\n\t\tif (index_match) {\r\n\t\t\tparts.pop();\r\n\t\t\tparts[parts.length - 1] += index_match[1];\r\n\t\t}\r\n\t}\r\n\r\n\tconst base = parts.pop()\r\n\t\t.replace(/%/g, 'u')\r\n\t\t.replace(/\\.[^.]+$/, '')\r\n\t\t.replace(/[^a-zA-Z_$0-9]+/g, '_')\r\n\t\t.replace(/^_/, '')\r\n\t\t.replace(/_$/, '')\r\n\t\t.replace(/^(\\d)/, '_$1');\r\n\r\n\tif (!base) {\r\n\t\tthrow new Error(`Could not derive component name from file ${filename}`);\r\n\t}\r\n\r\n\treturn base[0].toUpperCase() + base.slice(1);\r\n}\r\n","import Stats from '../Stats';\r\nimport parse from '../parse/index';\r\nimport render_dom from './render_dom/index';\r\nimport render_ssr from './render_ssr/index';\r\nimport { CompileOptions, Warning } from '../interfaces';\r\nimport Component from './Component';\r\nimport fuzzymatch from '../utils/fuzzymatch';\r\nimport get_name_from_filename from './utils/get_name_from_filename';\r\nimport { valid_namespaces } from '../utils/namespaces';\r\n\r\nconst valid_options = [\r\n\t'format',\r\n\t'name',\r\n\t'filename',\r\n\t'sourcemap',\r\n\t'enableSourcemap',\r\n\t'generate',\r\n\t'errorMode',\r\n\t'varsReport',\r\n\t'outputFilename',\r\n\t'cssOutputFilename',\r\n\t'sveltePath',\r\n\t'dev',\r\n\t'accessors',\r\n\t'immutable',\r\n\t'hydratable',\r\n\t'legacy',\r\n\t'customElement',\r\n\t'namespace',\r\n\t'tag',\r\n\t'css',\r\n\t'loopGuardTimeout',\r\n\t'preserveComments',\r\n\t'preserveWhitespace',\r\n\t'cssHash'\r\n];\r\n\r\nfunction validate_options(options: CompileOptions, warnings: Warning[]) {\r\n\tconst { name, filename, loopGuardTimeout, dev, namespace } = options;\r\n\r\n\tObject.keys(options).forEach(key => {\r\n\t\tif (!valid_options.includes(key)) {\r\n\t\t\tconst match = fuzzymatch(key, valid_options);\r\n\t\t\tlet message = `Unrecognized option '${key}'`;\r\n\t\t\tif (match) message += ` (did you mean '${match}'?)`;\r\n\r\n\t\t\tthrow new Error(message);\r\n\t\t}\r\n\t});\r\n\r\n\tif (name && !/^[a-zA-Z_$][a-zA-Z_$0-9]*$/.test(name)) {\r\n\t\tthrow new Error(`options.name must be a valid identifier (got '${name}')`);\r\n\t}\r\n\r\n\tif (name && /^[a-z]/.test(name)) {\r\n\t\tconst message = 'options.name should be capitalised';\r\n\t\twarnings.push({\r\n\t\t\tcode: 'options-lowercase-name',\r\n\t\t\tmessage,\r\n\t\t\tfilename,\r\n\t\t\ttoString: () => message\r\n\t\t});\r\n\t}\r\n\r\n\tif (loopGuardTimeout && !dev) {\r\n\t\tconst message = 'options.loopGuardTimeout is for options.dev = true only';\r\n\t\twarnings.push({\r\n\t\t\tcode: 'options-loop-guard-timeout',\r\n\t\t\tmessage,\r\n\t\t\tfilename,\r\n\t\t\ttoString: () => message\r\n\t\t});\r\n\t}\r\n\r\n\tif (namespace && valid_namespaces.indexOf(namespace) === -1) {\r\n\t\tconst match = fuzzymatch(namespace, valid_namespaces);\r\n\t\tif (match) {\r\n\t\t\tthrow new Error(`Invalid namespace '${namespace}' (did you mean '${match}'?)`);\r\n\t\t} else {\r\n\t\t\tthrow new Error(`Invalid namespace '${namespace}'`);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default function compile(source: string, options: CompileOptions = {}) {\r\n\toptions = Object.assign({ generate: 'dom', dev: false, enableSourcemap: true }, options);\r\n\r\n\tconst stats = new Stats();\r\n\tconst warnings = [];\r\n\r\n\tvalidate_options(options, warnings);\r\n\r\n\tstats.start('parse');\r\n\tconst ast = parse(source, options);\r\n\tstats.stop('parse');\r\n\r\n\tstats.start('create component');\r\n\tconst component = new Component(\r\n\t\tast,\r\n\t\tsource,\r\n\t\toptions.name || get_name_from_filename(options.filename) || 'Component',\r\n\t\toptions,\r\n\t\tstats,\r\n\t\twarnings\r\n\t);\r\n\tstats.stop('create component');\r\n\r\n\tconst result = options.generate === false\r\n\t\t? null\r\n\t\t: options.generate === 'ssr'\r\n\t\t\t? render_ssr(component, options)\r\n\t\t\t: render_dom(component, options);\r\n\r\n\treturn component.generate(result);\r\n}\r\n","import { decode as decode_mappings } from 'sourcemap-codec';\r\nimport { Processed } from './types';\r\n\r\n/**\r\n * Import decoded sourcemap from mozilla/source-map/SourceMapGenerator\r\n * Forked from source-map/lib/source-map-generator.js\r\n * from methods _serializeMappings and toJSON.\r\n * We cannot use source-map.d.ts types, because we access hidden properties.\r\n */\r\nfunction decoded_sourcemap_from_generator(generator: any) {\r\n\tlet previous_generated_line = 1;\r\n\tconst converted_mappings = [[]];\r\n\tlet result_line;\r\n\tlet result_segment;\r\n\tlet mapping;\r\n\r\n\tconst source_idx = generator._sources.toArray()\r\n\t\t.reduce((acc, val, idx) => (acc[val] = idx, acc), {});\r\n\r\n\tconst name_idx = generator._names.toArray()\r\n\t\t.reduce((acc, val, idx) => (acc[val] = idx, acc), {});\r\n\r\n\tconst mappings = generator._mappings.toArray();\r\n\tresult_line = converted_mappings[0];\r\n\r\n\tfor (let i = 0, len = mappings.length; i < len; i++) {\r\n\t\tmapping = mappings[i];\r\n\r\n\t\tif (mapping.generatedLine > previous_generated_line) {\r\n\t\t\twhile (mapping.generatedLine > previous_generated_line) {\r\n\t\t\t\tconverted_mappings.push([]);\r\n\t\t\t\tprevious_generated_line++;\r\n\t\t\t}\r\n\t\t\tresult_line = converted_mappings[mapping.generatedLine - 1]; // line is one-based\r\n\t\t} else if (i > 0) {\r\n\t\t\tconst previous_mapping = mappings[i - 1];\r\n\t\t\tif (\r\n\t\t\t\t// sorted by selectivity\r\n\t\t\t\tmapping.generatedColumn === previous_mapping.generatedColumn &&\r\n\t\t\t\tmapping.originalColumn === previous_mapping.originalColumn &&\r\n\t\t\t\tmapping.name === previous_mapping.name &&\r\n\t\t\t\tmapping.generatedLine === previous_mapping.generatedLine &&\r\n\t\t\t\tmapping.originalLine === previous_mapping.originalLine &&\r\n\t\t\t\tmapping.source === previous_mapping.source\r\n\t\t) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t}\r\n\t\tresult_line.push([mapping.generatedColumn]);\r\n\t\tresult_segment = result_line[result_line.length - 1];\r\n\r\n\t\tif (mapping.source != null) {\r\n\t\t\tresult_segment.push(...[\r\n\t\t\t\tsource_idx[mapping.source],\r\n\t\t\t\tmapping.originalLine - 1, // line is one-based\r\n\t\t\t\tmapping.originalColumn\r\n\t\t\t]);\r\n\t\t\tif (mapping.name != null) {\r\n\t\t\t\tresult_segment.push(name_idx[mapping.name]);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tconst map = {\r\n\t\tversion: generator._version,\r\n\t\tsources: generator._sources.toArray(),\r\n\t\tnames: generator._names.toArray(),\r\n\t\tmappings: converted_mappings\r\n\t};\r\n\tif (generator._file != null) {\r\n\t\t(map as any).file = generator._file;\r\n\t}\r\n\t// not needed: map.sourcesContent and map.sourceRoot\r\n\treturn map;\r\n}\r\n\r\nexport function decode_map(processed: Processed) {\r\n\tlet decoded_map = typeof processed.map === 'string' ? JSON.parse(processed.map) : processed.map;\r\n\tif (typeof(decoded_map.mappings) === 'string') {\r\n\t\tdecoded_map.mappings = decode_mappings(decoded_map.mappings);\r\n\t}\r\n\tif ((decoded_map as any)._mappings && decoded_map.constructor.name === 'SourceMapGenerator') {\r\n\t\t// import decoded sourcemap from mozilla/source-map/SourceMapGenerator\r\n\t\tdecoded_map = decoded_sourcemap_from_generator(decoded_map);\r\n\t}\r\n\r\n\treturn decoded_map;\r\n}\r\n","import { MappedCode } from '../utils/mapped_code';\r\nimport { Source } from './types';\r\n\r\ninterface Replacement {\r\n\toffset: number;\r\n\tlength: number;\r\n\treplacement: MappedCode;\r\n}\r\n\r\nexport function slice_source(\r\n\tcode_slice: string,\r\n\toffset: number,\r\n\t{ file_basename, filename, get_location }: Source\r\n): Source {\r\n\treturn {\r\n\t\tsource: code_slice,\r\n\t\tget_location: (index: number) => get_location(index + offset),\r\n\t\tfile_basename,\r\n\t\tfilename\r\n\t};\r\n}\r\n\r\nfunction calculate_replacements(\r\n\tre: RegExp,\r\n\tget_replacement: (...match: any[]) => Promise<MappedCode>,\r\n\tsource: string\r\n) {\r\n\tconst replacements: Array<Promise<Replacement>> = [];\r\n\r\n\tsource.replace(re, (...match) => {\r\n\t\treplacements.push(\r\n\t\t\tget_replacement(...match).then(\r\n\t\t\t\treplacement => {\r\n\t\t\t\t\tconst matched_string = match[0];\r\n\t\t\t\t\tconst offset = match[match.length - 2];\r\n\r\n\t\t\t\t\treturn ({ offset, length: matched_string.length, replacement });\r\n\t\t\t\t}\r\n\t\t\t)\r\n\t\t);\r\n\t\treturn '';\r\n\t});\r\n\r\n\treturn Promise.all(replacements);\r\n}\r\n\r\nfunction perform_replacements(\r\n\treplacements: Replacement[],\r\n\tsource: Source\r\n): MappedCode {\r\n\tconst out = new MappedCode();\r\n\tlet last_end = 0;\r\n\r\n\tfor (const { offset, length, replacement } of replacements) {\r\n\t\tconst unchanged_prefix = MappedCode.from_source(\r\n\t\t\tslice_source(source.source.slice(last_end, offset), last_end, source)\r\n\t\t);\r\n\t\tout.concat(unchanged_prefix).concat(replacement);\r\n\t\tlast_end = offset + length;\r\n\t}\r\n\r\n\tconst unchanged_suffix = MappedCode.from_source(slice_source(source.source.slice(last_end), last_end, source));\r\n\r\n\treturn out.concat(unchanged_suffix);\r\n}\r\n\r\nexport async function replace_in_code(\r\n\tregex: RegExp,\r\n\tget_replacement: (...match: any[]) => Promise<MappedCode>,\r\n\tlocation: Source\r\n): Promise<MappedCode> {\r\n\tconst replacements = await calculate_replacements(regex, get_replacement, location.source);\r\n\r\n\treturn perform_replacements(replacements, location);\r\n}\r\n","import { RawSourceMap, DecodedSourceMap } from '@ampproject/remapping/dist/types/types';\r\nimport { getLocator } from 'locate-character';\r\nimport { MappedCode, SourceLocation, parse_attached_sourcemap, sourcemap_add_offset, combine_sourcemaps } from '../utils/mapped_code';\r\nimport { decode_map } from './decode_sourcemap';\r\nimport { replace_in_code, slice_source } from './replace_in_code';\r\nimport { MarkupPreprocessor, Source, Preprocessor, PreprocessorGroup, Processed } from './types';\r\n\r\nexport * from './types';\r\n\r\ninterface SourceUpdate {\r\n\tstring?: string;\r\n\tmap?: DecodedSourceMap;\r\n\tdependencies?: string[];\r\n}\r\n\r\nfunction get_file_basename(filename: string) {\r\n\treturn filename.split(/[/\\\\]/).pop();\r\n}\r\n\r\n/**\r\n * Represents intermediate states of the preprocessing.\r\n */\r\nclass PreprocessResult implements Source {\r\n\t// sourcemap_list is sorted in reverse order from last map (index 0) to first map (index -1)\r\n\t// so we use sourcemap_list.unshift() to add new maps\r\n\t// https://github.com/ampproject/remapping#multiple-transformations-of-a-file\r\n\tsourcemap_list: Array<DecodedSourceMap | RawSourceMap> = [];\r\n\tdependencies: string[] = [];\r\n\tfile_basename: string;\r\n\r\n\tget_location: ReturnType<typeof getLocator>;\r\n\r\n\tconstructor(public source: string, public filename?: string) {\r\n\t\tthis.update_source({ string: source });\r\n\r\n\t\t// preprocess source must be relative to itself or equal null\r\n\t\tthis.file_basename = filename == null ? null : get_file_basename(filename);\r\n\t}\r\n\r\n\tupdate_source({ string: source, map, dependencies }: SourceUpdate) {\r\n\t\tif (source != null) {\r\n\t\t\tthis.source = source;\r\n\t\t\tthis.get_location = getLocator(source);\r\n\t\t}\r\n\r\n\t\tif (map) {\r\n\t\t\tthis.sourcemap_list.unshift(map);\r\n\t\t}\r\n\r\n\t\tif (dependencies) {\r\n\t\t\tthis.dependencies.push(...dependencies);\r\n\t\t}\r\n\t}\r\n\r\n\tto_processed(): Processed {\r\n\t\t// Combine all the source maps for each preprocessor function into one\r\n\t\tconst map: RawSourceMap = combine_sourcemaps(this.file_basename, this.sourcemap_list);\r\n\r\n\t\treturn {\r\n\t\t\t// TODO return separated output, in future version where svelte.compile supports it:\r\n\t\t\t// style: { code: styleCode, map: styleMap },\r\n\t\t\t// script { code: scriptCode, map: scriptMap },\r\n\t\t\t// markup { code: markupCode, map: markupMap },\r\n\r\n\t\t\tcode: this.source,\r\n\t\t\tdependencies: [...new Set(this.dependencies)],\r\n\t\t\tmap: map as object,\r\n\t\t\ttoString: () => this.source\r\n\t\t};\r\n\t}\r\n}\r\n\r\n/**\r\n * Convert preprocessor output for the tag content into MappedCode\r\n */\r\nfunction processed_content_to_code(processed: Processed, location: SourceLocation, file_basename: string): MappedCode {\r\n\t// Convert the preprocessed code and its sourcemap to a MappedCode\r\n\tlet decoded_map: DecodedSourceMap;\r\n\tif (processed.map) {\r\n\t\tdecoded_map = decode_map(processed);\r\n\r\n\t\t// decoded map may not have sources for empty maps like `{ mappings: '' }`\r\n\t\tif (decoded_map.sources) {\r\n\t\t\t// offset only segments pointing at original component source\r\n\t\t\tconst source_index = decoded_map.sources.indexOf(file_basename);\r\n\t\t\tif (source_index !== -1) {\r\n\t\t\t\tsourcemap_add_offset(decoded_map, location, source_index);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn MappedCode.from_processed(processed.code, decoded_map);\r\n}\r\n\r\n/**\r\n * Given the whole tag including content, return a `MappedCode`\r\n * representing the tag content replaced with `processed`.\r\n */\r\nfunction processed_tag_to_code(\r\n\tprocessed: Processed,\r\n\ttag_name: 'style' | 'script',\r\n\tattributes: string,\r\n\tsource: Source\r\n): MappedCode {\r\n\tconst { file_basename, get_location } = source;\r\n\r\n\tconst build_mapped_code = (code: string, offset: number) =>\r\n\t\tMappedCode.from_source(slice_source(code, offset, source));\r\n\r\n\tconst tag_open = `<${tag_name}${attributes || ''}>`;\r\n\tconst tag_close = `</${tag_name}>`;\r\n\r\n\tconst tag_open_code = build_mapped_code(tag_open, 0);\r\n\tconst tag_close_code = build_mapped_code(tag_close, tag_open.length + source.source.length);\r\n\r\n\tparse_attached_sourcemap(processed, tag_name);\r\n\r\n\tconst content_code = processed_content_to_code(processed, get_location(tag_open.length), file_basename);\r\n\r\n\treturn tag_open_code.concat(content_code).concat(tag_close_code);\r\n}\r\n\r\nfunction parse_tag_attributes(str: string) {\r\n\t// note: won't work with attribute values containing spaces.\r\n\treturn str\r\n\t\t.split(/\\s+/)\r\n\t\t.filter(Boolean)\r\n\t\t.reduce((attrs, attr) => {\r\n\t\t\tconst i = attr.indexOf('=');\r\n\t\t\tconst [key, value] = i > 0 ? [attr.slice(0, i), attr.slice(i + 1)] : [attr];\r\n\t\t\tconst [, unquoted] = (value && value.match(/^['\"](.*)['\"]$/)) || [];\r\n\r\n\t\t\treturn { ...attrs, [key]: unquoted ?? value ?? true };\r\n\t\t}, {});\r\n}\r\n\r\n/**\r\n * Calculate the updates required to process all instances of the specified tag.\r\n */\r\nasync function process_tag(\r\n\ttag_name: 'style' | 'script',\r\n\tpreprocessor: Preprocessor,\r\n\tsource: Source\r\n): Promise<SourceUpdate> {\r\n\tconst { filename, source: markup } = source;\r\n\tconst tag_regex =\r\n\t\ttag_name === 'style'\r\n\t\t\t? /<!--[^]*?-->|<style(\\s[^]*?)?(?:>([^]*?)<\\/style>|\\/>)/gi\r\n\t\t\t: /<!--[^]*?-->|<script(\\s[^]*?)?(?:>([^]*?)<\\/script>|\\/>)/gi;\r\n\r\n\tconst dependencies: string[] = [];\r\n\r\n\tasync function process_single_tag(\r\n\t\ttag_with_content: string,\r\n\t\tattributes = '',\r\n\t\tcontent = '',\r\n\t\ttag_offset: number\r\n\t): Promise<MappedCode> {\r\n\t\tconst no_change = () => MappedCode.from_source(slice_source(tag_with_content, tag_offset, source));\r\n\r\n\t\tif (!attributes && !content) return no_change();\r\n\r\n\t\tconst processed = await preprocessor({\r\n\t\t\tcontent: content || '',\r\n\t\t\tattributes: parse_tag_attributes(attributes || ''),\r\n\t\t\tmarkup,\r\n\t\t\tfilename\r\n\t\t});\r\n\r\n\t\tif (!processed) return no_change();\r\n\t\tif (processed.dependencies) dependencies.push(...processed.dependencies);\r\n\t\tif (!processed.map && processed.code === content) return no_change();\r\n\r\n\t\treturn processed_tag_to_code(processed, tag_name, attributes, slice_source(content, tag_offset, source));\r\n\t}\r\n\r\n\tconst { string, map } = await replace_in_code(tag_regex, process_single_tag, source);\r\n\r\n\treturn { string, map, dependencies };\r\n}\r\n\r\nasync function process_markup(process: MarkupPreprocessor, source: Source) {\r\n\tconst processed = await process({\r\n\t\tcontent: source.source,\r\n\t\tfilename: source.filename\r\n\t});\r\n\r\n\tif (processed) {\r\n\t\treturn {\r\n\t\t\tstring: processed.code,\r\n\t\t\tmap: processed.map\r\n\t\t\t\t? // TODO: can we use decode_sourcemap?\r\n\t\t\t\t  typeof processed.map === 'string'\r\n\t\t\t\t\t? JSON.parse(processed.map)\r\n\t\t\t\t\t: processed.map\r\n\t\t\t\t: undefined,\r\n\t\t\tdependencies: processed.dependencies\r\n\t\t};\r\n\t} else {\r\n\t\treturn {};\r\n\t}\r\n}\r\n\r\nexport default async function preprocess(\r\n\tsource: string,\r\n\tpreprocessor: PreprocessorGroup | PreprocessorGroup[],\r\n\toptions?: { filename?: string }\r\n): Promise<Processed> {\r\n\tconst filename: string | undefined = (options && options.filename) || (preprocessor as any).filename; // legacy\r\n\r\n\tconst preprocessors = preprocessor ? (Array.isArray(preprocessor) ? preprocessor : [preprocessor]) : [];\r\n\r\n\tconst markup = preprocessors.map(p => p.markup).filter(Boolean);\r\n\tconst script = preprocessors.map(p => p.script).filter(Boolean);\r\n\tconst style = preprocessors.map(p => p.style).filter(Boolean);\r\n\r\n\tconst result = new PreprocessResult(source, filename);\r\n\r\n\t// TODO keep track: what preprocessor generated what sourcemap?\r\n\t// to make debugging easier = detect low-resolution sourcemaps in fn combine_mappings\r\n\r\n\tfor (const process of markup) {\r\n\t\tresult.update_source(await process_markup(process, result));\r\n\t}\r\n\r\n\tfor (const process of script) {\r\n\t\tresult.update_source(await process_tag('script', process, result));\r\n\t}\r\n\r\n\tfor (const preprocess of style) {\r\n\t\tresult.update_source(await process_tag('style', preprocess, result));\r\n\t}\r\n\r\n\treturn result.to_processed();\r\n}\r\n","export { default as compile } from './compile/index';\r\nexport { default as parse } from './parse/index';\r\nexport { default as preprocess } from './preprocess/index';\r\nexport { walk } from 'estree-walker';\r\n\r\nexport const VERSION = '__VERSION__';\r\n// additional exports added through generate-type-definitions.js\r\n"],"names":["list","Scope","i","btoa","perisopic.analyze","join","flatten","acorn.parse","acorn.parseExpressionAt","parse","parseExpressionAt","code_red.parse","code_red.parseExpressionAt","isHexDigit","isIdentifierStart","isDigit","charCodeDef","isUppercaseLetter","isName","isWhiteSpace","isValidEscape","TYPE","constants","NAME","cmpStr","EOF","isNewline","isNumberStart","charCodeCategory","isBOM","getNewlineLength","findWhiteSpaceEnd","consumeEscaped","consumeName","consumeNumber","consumeBadUrlRemnants","OFFSET_MASK","TYPE_SHIFT","TokenStream","require$$0","SyntaxError","WHITESPACE","COMMENT","findWhiteSpaceStart","URL","OffsetToLocation","List","tokenize","cmpChar","IDENT","NUMBER","FUNCTION","HASH","PERCENTAGE","NUMBERSIGN","DELIM","DIMENSION","LEFTSQUAREBRACKET","ASTERISK","PLUSSIGN","SOLIDUS","require$$1","COMMA","require$$2","STRING","LEFTPARENTHESIS","COLON","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","HYPHENMINUS","N","rawMode","consumeRaw","SEMICOLON","LEFTCURLYBRACKET","VERTICALLINE","TILDE","ATKEYWORD","RIGHTCURLYBRACKET","RIGHTSQUAREBRACKET","FULLSTOP","GREATERTHANSIGN","hasOwnProperty","keywords","isCustomProperty","EXCLAMATIONMARK","DOLLARSIGN","RIGHTPARENTHESIS","CDO","CDC","U","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","require$$22","require$$23","require$$24","require$$25","require$$26","require$$27","require$$28","require$$29","require$$30","require$$31","require$$32","require$$33","require$$34","require$$35","require$$36","require$$37","require$$38","require$$39","createParser","config","Parser","Block","Node","to_string","Comment","require$$40","require$$41","require$$42","require$$43","require$$44","require$$45","require$$46","require$$47","require$$48","require$$49","require$$50","require$$51","require$$52","require$$53","require$$54","require$$55","require$$56","require$$57","require$$58","require$$59","require$$60","require$$61","require$$62","require$$63","require$$64","require$$65","require$$66","require$$67","require$$68","require$$69","require$$70","require$$71","require$$72","require$$73","require$$74","require$$75","require$$76","require$$77","require$$78","require$$79","require$$80","require$$81","require$$82","require$$83","require$$84","require$$85","require$$86","require$$87","require$$88","require$$89","require$$90","require$$91","require$$92","require$$93","require$$94","require$$95","require$$96","require$$97","require$$98","require$$99","require$$100","require$$101","require$$102","require$$103","require$$104","require$$105","require$$106","require$$107","require$$108","require$$109","require$$110","require$$111","require$$112","require$$113","require$$114","require$$115","require$$116","require$$117","require$$118","require$$119","require$$120","require$$121","require$$122","roles_map","elementRoles","AXObjects","elementAXObjects","svg","roles","aria","push_array","EventHandler","is_dynamic","Tag","Binding","properties","AwaitBlock","Body","DebugTag","EachBlock","Element","Head","IfBlock","InlineComponent","KeyBlock","MustacheTag","RawMustacheTag","Slot","SlotTemplate","Text","Title","Window","charToInteger","chars","decode","segmentify","encode","encodeInteger","Url","get_const_tags","trimmable_at","noop","handlers","Renderer","wrappers","SourceMap","toString","getLocator","Selector","Rule","Declaration","Atrule","render_ssr","render_dom","decode_mappings"],"mappings":"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AAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;AACh9B;AACA;AACA,IAAI,0BAA0B,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EA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AAI;IACrB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,cAAc,EAAE,GAAG;IACnB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,KAAK;IACrB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,KAAK;IACrB,cAAc,EAAE,KAAK;IACrB,cAAc,EAAE,KAAK;IACrB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,KAAK;IACrB,cAAc,EAAE,KAAK;IACrB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,KAAK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IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,GAAG;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"}