From b159597559666778910744ecac9598fa92a88daa Mon Sep 17 00:00:00 2001 From: koreafood Date: Wed, 10 Jun 2026 12:49:53 +0900 Subject: [PATCH] Initial commit --- .trae/skills/agent-browser/SKILL.md | 96 + .trae/skills/brainstorming/SKILL.md | 191 + .../skills/brainstorming/visual-companion.md | 68 + .trae/skills/find-skills/SKILL.md | 132 + .trae/skills/frontend-design/SKILL.md | 97 + .trae/skills/karpathy-guidelines/SKILL.md | 90 + .trae/skills/systematic-debugging/SKILL.md | 130 + .trae/skills/ui-ux-pro-max/SKILL.md | 116 + .trae/skills/using-superpowers/SKILL.md | 90 + .trae/skills/webapp-testing/SKILL.md | 109 + .trae/skills/writing-plans/SKILL.md | 139 + README.md | 165 + backend/__pycache__/init_db.cpython-313.pyc | Bin 0 -> 1171 bytes backend/__pycache__/main.cpython-313.pyc | Bin 0 -> 5875 bytes backend/app.db | Bin 0 -> 12288 bytes backend/init_db.py | 19 + backend/main.py | 87 + backend/requirements.txt | 2 + .../plans/2026-06-09-global-config.md | 73 + .../plans/2026-06-09-port-config-split.md | 69 + .../plans/2026-06-09-skill-docs-expansion.md | 207 + .../2026-06-09-sqlite-fastapi-vue-crud.md | 198 + ...26-06-09-sqlite-fastapi-vue-hello-world.md | 155 + .../specs/2026-06-09-global-config-design.md | 108 + .../2026-06-09-port-config-split-design.md | 118 + .../specs/2026-06-09-skill-docs-design.md | 190 + ...26-06-09-sqlite-fastapi-vue-crud-design.md | 192 + ...9-sqlite-fastapi-vue-hello-world-design.md | 140 + docs/test-scenarios.md | 114 + frontend/index.html | 18 + frontend/node_modules/.bin/esbuild | 1 + frontend/node_modules/.bin/nanoid | 1 + frontend/node_modules/.bin/parser | 1 + frontend/node_modules/.bin/rollup | 1 + frontend/node_modules/.bin/vite | 1 + frontend/node_modules/.package-lock.json | 443 + .../@babel/helper-string-parser/LICENSE | 22 + .../@babel/helper-string-parser/README.md | 19 + .../@babel/helper-string-parser/lib/index.js | 295 + .../helper-string-parser/lib/index.js.map | 1 + .../@babel/helper-string-parser/package.json | 31 + .../helper-validator-identifier/LICENSE | 22 + .../helper-validator-identifier/README.md | 19 + .../lib/identifier.js | 70 + .../lib/identifier.js.map | 1 + .../helper-validator-identifier/lib/index.js | 57 + .../lib/index.js.map | 1 + .../lib/keyword.js | 35 + .../lib/keyword.js.map | 1 + .../helper-validator-identifier/package.json | 31 + .../node_modules/@babel/parser/CHANGELOG.md | 1073 + frontend/node_modules/@babel/parser/LICENSE | 19 + frontend/node_modules/@babel/parser/README.md | 19 + .../@babel/parser/bin/babel-parser.js | 15 + .../node_modules/@babel/parser/lib/index.js | 14599 ++++ .../@babel/parser/lib/index.js.map | 1 + .../node_modules/@babel/parser/package.json | 50 + .../@babel/parser/typings/babel-parser.d.ts | 262 + frontend/node_modules/@babel/types/LICENSE | 22 + frontend/node_modules/@babel/types/README.md | 19 + .../@babel/types/lib/asserts/assertNode.js | 16 + .../types/lib/asserts/assertNode.js.map | 1 + .../types/lib/asserts/generated/index.js | 1251 + .../types/lib/asserts/generated/index.js.map | 1 + .../types/lib/ast-types/generated/index.js | 3 + .../lib/ast-types/generated/index.js.map | 1 + .../lib/builders/flow/createFlowUnionType.js | 18 + .../builders/flow/createFlowUnionType.js.map | 1 + .../flow/createTypeAnnotationBasedOnTypeof.js | 31 + .../createTypeAnnotationBasedOnTypeof.js.map | 1 + .../types/lib/builders/generated/index.js | 29 + .../types/lib/builders/generated/index.js.map | 1 + .../types/lib/builders/generated/lowercase.js | 2902 + .../lib/builders/generated/lowercase.js.map | 1 + .../types/lib/builders/generated/uppercase.js | 272 + .../lib/builders/generated/uppercase.js.map | 1 + .../@babel/types/lib/builders/productions.js | 12 + .../types/lib/builders/productions.js.map | 1 + .../types/lib/builders/react/buildChildren.js | 24 + .../lib/builders/react/buildChildren.js.map | 1 + .../builders/typescript/createTSUnionType.js | 22 + .../typescript/createTSUnionType.js.map | 1 + .../@babel/types/lib/builders/validateNode.js | 21 + .../types/lib/builders/validateNode.js.map | 1 + .../@babel/types/lib/clone/clone.js | 12 + .../@babel/types/lib/clone/clone.js.map | 1 + .../@babel/types/lib/clone/cloneDeep.js | 12 + .../@babel/types/lib/clone/cloneDeep.js.map | 1 + .../types/lib/clone/cloneDeepWithoutLoc.js | 12 + .../lib/clone/cloneDeepWithoutLoc.js.map | 1 + .../@babel/types/lib/clone/cloneNode.js | 107 + .../@babel/types/lib/clone/cloneNode.js.map | 1 + .../@babel/types/lib/clone/cloneWithoutLoc.js | 12 + .../types/lib/clone/cloneWithoutLoc.js.map | 1 + .../@babel/types/lib/comments/addComment.js | 15 + .../types/lib/comments/addComment.js.map | 1 + .../@babel/types/lib/comments/addComments.js | 22 + .../types/lib/comments/addComments.js.map | 1 + .../lib/comments/inheritInnerComments.js | 12 + .../lib/comments/inheritInnerComments.js.map | 1 + .../lib/comments/inheritLeadingComments.js | 12 + .../comments/inheritLeadingComments.js.map | 1 + .../lib/comments/inheritTrailingComments.js | 12 + .../comments/inheritTrailingComments.js.map | 1 + .../types/lib/comments/inheritsComments.js | 17 + .../lib/comments/inheritsComments.js.map | 1 + .../types/lib/comments/removeComments.js | 15 + .../types/lib/comments/removeComments.js.map | 1 + .../types/lib/constants/generated/index.js | 60 + .../lib/constants/generated/index.js.map | 1 + .../@babel/types/lib/constants/index.js | 31 + .../@babel/types/lib/constants/index.js.map | 1 + .../types/lib/converters/ensureBlock.js | 14 + .../types/lib/converters/ensureBlock.js.map | 1 + .../converters/gatherSequenceExpressions.js | 65 + .../gatherSequenceExpressions.js.map | 1 + .../lib/converters/toBindingIdentifierName.js | 14 + .../converters/toBindingIdentifierName.js.map | 1 + .../@babel/types/lib/converters/toBlock.js | 29 + .../types/lib/converters/toBlock.js.map | 1 + .../types/lib/converters/toComputedKey.js | 14 + .../types/lib/converters/toComputedKey.js.map | 1 + .../types/lib/converters/toExpression.js | 28 + .../types/lib/converters/toExpression.js.map | 1 + .../types/lib/converters/toIdentifier.js | 25 + .../types/lib/converters/toIdentifier.js.map | 1 + .../@babel/types/lib/converters/toKeyAlias.js | 38 + .../types/lib/converters/toKeyAlias.js.map | 1 + .../lib/converters/toSequenceExpression.js | 19 + .../converters/toSequenceExpression.js.map | 1 + .../types/lib/converters/toStatement.js | 39 + .../types/lib/converters/toStatement.js.map | 1 + .../types/lib/converters/valueToNode.js | 89 + .../types/lib/converters/valueToNode.js.map | 1 + .../@babel/types/lib/definitions/core.js | 1725 + .../@babel/types/lib/definitions/core.js.map | 1 + .../lib/definitions/deprecated-aliases.js | 11 + .../lib/definitions/deprecated-aliases.js.map | 1 + .../types/lib/definitions/experimental.js | 124 + .../types/lib/definitions/experimental.js.map | 1 + .../@babel/types/lib/definitions/flow.js | 495 + .../@babel/types/lib/definitions/flow.js.map | 1 + .../@babel/types/lib/definitions/index.js | 106 + .../@babel/types/lib/definitions/index.js.map | 1 + .../@babel/types/lib/definitions/jsx.js | 157 + .../@babel/types/lib/definitions/jsx.js.map | 1 + .../@babel/types/lib/definitions/misc.js | 31 + .../@babel/types/lib/definitions/misc.js.map | 1 + .../types/lib/definitions/placeholders.js | 27 + .../types/lib/definitions/placeholders.js.map | 1 + .../types/lib/definitions/typescript.js | 528 + .../types/lib/definitions/typescript.js.map | 1 + .../@babel/types/lib/definitions/utils.js | 296 + .../@babel/types/lib/definitions/utils.js.map | 1 + .../@babel/types/lib/index-legacy.d.ts | 2797 + .../node_modules/@babel/types/lib/index.d.ts | 3617 + .../node_modules/@babel/types/lib/index.js | 582 + .../@babel/types/lib/index.js.flow | 2650 + .../@babel/types/lib/index.js.map | 1 + .../modifications/appendToMemberExpression.js | 15 + .../appendToMemberExpression.js.map | 1 + .../flow/removeTypeDuplicates.js | 65 + .../flow/removeTypeDuplicates.js.map | 1 + .../types/lib/modifications/inherits.js | 28 + .../types/lib/modifications/inherits.js.map | 1 + .../prependToMemberExpression.js | 17 + .../prependToMemberExpression.js.map | 1 + .../lib/modifications/removeProperties.js | 24 + .../lib/modifications/removeProperties.js.map | 1 + .../lib/modifications/removePropertiesDeep.js | 14 + .../modifications/removePropertiesDeep.js.map | 1 + .../typescript/removeTypeDuplicates.js | 66 + .../typescript/removeTypeDuplicates.js.map | 1 + .../retrievers/getAssignmentIdentifiers.js | 48 + .../getAssignmentIdentifiers.js.map | 1 + .../lib/retrievers/getBindingIdentifiers.js | 102 + .../retrievers/getBindingIdentifiers.js.map | 1 + .../types/lib/retrievers/getFunctionName.js | 63 + .../lib/retrievers/getFunctionName.js.map | 1 + .../retrievers/getOuterBindingIdentifiers.js | 13 + .../getOuterBindingIdentifiers.js.map | 1 + .../@babel/types/lib/traverse/traverse.js | 50 + .../@babel/types/lib/traverse/traverse.js.map | 1 + .../@babel/types/lib/traverse/traverseFast.js | 40 + .../types/lib/traverse/traverseFast.js.map | 1 + .../types/lib/utils/deprecationWarning.js | 44 + .../types/lib/utils/deprecationWarning.js.map | 1 + .../@babel/types/lib/utils/inherit.js | 13 + .../@babel/types/lib/utils/inherit.js.map | 1 + .../react/cleanJSXElementLiteralChild.js | 40 + .../react/cleanJSXElementLiteralChild.js.map | 1 + .../@babel/types/lib/utils/shallowEqual.js | 17 + .../types/lib/utils/shallowEqual.js.map | 1 + .../validators/buildMatchMemberExpression.js | 13 + .../buildMatchMemberExpression.js.map | 1 + .../types/lib/validators/generated/index.js | 2797 + .../lib/validators/generated/index.js.map | 1 + .../@babel/types/lib/validators/is.js | 27 + .../@babel/types/lib/validators/is.js.map | 1 + .../@babel/types/lib/validators/isBinding.js | 27 + .../types/lib/validators/isBinding.js.map | 1 + .../types/lib/validators/isBlockScoped.js | 13 + .../types/lib/validators/isBlockScoped.js.map | 1 + .../types/lib/validators/isImmutable.js | 21 + .../types/lib/validators/isImmutable.js.map | 1 + .../@babel/types/lib/validators/isLet.js | 13 + .../@babel/types/lib/validators/isLet.js.map | 1 + .../@babel/types/lib/validators/isNode.js | 12 + .../@babel/types/lib/validators/isNode.js.map | 1 + .../types/lib/validators/isNodesEquivalent.js | 57 + .../lib/validators/isNodesEquivalent.js.map | 1 + .../types/lib/validators/isPlaceholderType.js | 15 + .../lib/validators/isPlaceholderType.js.map | 1 + .../types/lib/validators/isReferenced.js | 96 + .../types/lib/validators/isReferenced.js.map | 1 + .../@babel/types/lib/validators/isScope.js | 18 + .../types/lib/validators/isScope.js.map | 1 + .../lib/validators/isSpecifierDefault.js | 14 + .../lib/validators/isSpecifierDefault.js.map | 1 + .../@babel/types/lib/validators/isType.js | 17 + .../@babel/types/lib/validators/isType.js.map | 1 + .../lib/validators/isValidES3Identifier.js | 13 + .../validators/isValidES3Identifier.js.map | 1 + .../types/lib/validators/isValidIdentifier.js | 18 + .../lib/validators/isValidIdentifier.js.map | 1 + .../@babel/types/lib/validators/isVar.js | 15 + .../@babel/types/lib/validators/isVar.js.map | 1 + .../types/lib/validators/matchesPattern.js | 44 + .../lib/validators/matchesPattern.js.map | 1 + .../types/lib/validators/react/isCompatTag.js | 11 + .../lib/validators/react/isCompatTag.js.map | 1 + .../lib/validators/react/isReactComponent.js | 11 + .../validators/react/isReactComponent.js.map | 1 + .../@babel/types/lib/validators/validate.js | 42 + .../types/lib/validators/validate.js.map | 1 + .../node_modules/@babel/types/package.json | 39 + .../@esbuild/darwin-x64/README.md | 3 + .../@esbuild/darwin-x64/bin/esbuild | Bin 0 -> 10290544 bytes .../@esbuild/darwin-x64/package.json | 20 + .../@jridgewell/sourcemap-codec/LICENSE | 19 + .../@jridgewell/sourcemap-codec/README.md | 264 + .../sourcemap-codec/dist/sourcemap-codec.mjs | 423 + .../dist/sourcemap-codec.mjs.map | 6 + .../dist/sourcemap-codec.umd.js | 464 + .../dist/sourcemap-codec.umd.js.map | 6 + .../@jridgewell/sourcemap-codec/package.json | 63 + .../@jridgewell/sourcemap-codec/src/scopes.ts | 345 + .../sourcemap-codec/src/sourcemap-codec.ts | 111 + .../sourcemap-codec/src/strings.ts | 65 + .../@jridgewell/sourcemap-codec/src/vlq.ts | 55 + .../sourcemap-codec/types/scopes.d.cts | 50 + .../sourcemap-codec/types/scopes.d.cts.map | 1 + .../sourcemap-codec/types/scopes.d.mts | 50 + .../sourcemap-codec/types/scopes.d.mts.map | 1 + .../types/sourcemap-codec.d.cts | 9 + .../types/sourcemap-codec.d.cts.map | 1 + .../types/sourcemap-codec.d.mts | 9 + .../types/sourcemap-codec.d.mts.map | 1 + .../sourcemap-codec/types/strings.d.cts | 16 + .../sourcemap-codec/types/strings.d.cts.map | 1 + .../sourcemap-codec/types/strings.d.mts | 16 + .../sourcemap-codec/types/strings.d.mts.map | 1 + .../sourcemap-codec/types/vlq.d.cts | 7 + .../sourcemap-codec/types/vlq.d.cts.map | 1 + .../sourcemap-codec/types/vlq.d.mts | 7 + .../sourcemap-codec/types/vlq.d.mts.map | 1 + frontend/node_modules/@types/estree/LICENSE | 21 + frontend/node_modules/@types/estree/README.md | 15 + frontend/node_modules/@types/estree/flow.d.ts | 167 + .../node_modules/@types/estree/index.d.ts | 694 + .../node_modules/@types/estree/package.json | 27 + .../node_modules/@vue/compiler-core/LICENSE | 21 + .../node_modules/@vue/compiler-core/README.md | 1 + .../compiler-core/dist/compiler-core.cjs.js | 6880 ++ .../dist/compiler-core.cjs.prod.js | 6755 ++ .../compiler-core/dist/compiler-core.d.ts | 1100 + .../dist/compiler-core.esm-bundler.js | 5835 ++ .../node_modules/@vue/compiler-core/index.js | 7 + .../@vue/compiler-core/package.json | 58 + .../node_modules/@vue/compiler-dom/LICENSE | 21 + .../node_modules/@vue/compiler-dom/README.md | 1 + .../compiler-dom/dist/compiler-dom.cjs.js | 934 + .../dist/compiler-dom.cjs.prod.js | 689 + .../@vue/compiler-dom/dist/compiler-dom.d.ts | 45 + .../dist/compiler-dom.esm-browser.js | 6644 ++ .../dist/compiler-dom.esm-browser.prod.js | 14 + .../dist/compiler-dom.esm-bundler.js | 690 + .../compiler-dom/dist/compiler-dom.global.js | 6814 ++ .../dist/compiler-dom.global.prod.js | 14 + .../node_modules/@vue/compiler-dom/index.js | 7 + .../@vue/compiler-dom/package.json | 57 + .../node_modules/@vue/compiler-sfc/LICENSE | 21 + .../node_modules/@vue/compiler-sfc/README.md | 79 + .../compiler-sfc/dist/compiler-sfc.cjs.js | 25799 ++++++ .../@vue/compiler-sfc/dist/compiler-sfc.d.ts | 487 + .../dist/compiler-sfc.esm-browser.js | 51088 ++++++++++++ .../@vue/compiler-sfc/package.json | 67 + .../node_modules/@vue/compiler-ssr/LICENSE | 21 + .../node_modules/@vue/compiler-ssr/README.md | 1 + .../compiler-ssr/dist/compiler-ssr.cjs.js | 1413 + .../@vue/compiler-ssr/dist/compiler-ssr.d.ts | 4 + .../@vue/compiler-ssr/package.json | 34 + frontend/node_modules/@vue/reactivity/LICENSE | 21 + .../node_modules/@vue/reactivity/README.md | 19 + .../@vue/reactivity/dist/reactivity.cjs.js | 2054 + .../reactivity/dist/reactivity.cjs.prod.js | 1898 + .../@vue/reactivity/dist/reactivity.d.ts | 757 + .../reactivity/dist/reactivity.esm-browser.js | 2052 + .../dist/reactivity.esm-browser.prod.js | 5 + .../reactivity/dist/reactivity.esm-bundler.js | 2011 + .../@vue/reactivity/dist/reactivity.global.js | 2108 + .../reactivity/dist/reactivity.global.prod.js | 5 + .../node_modules/@vue/reactivity/index.js | 7 + .../node_modules/@vue/reactivity/package.json | 55 + .../node_modules/@vue/runtime-core/LICENSE | 21 + .../node_modules/@vue/runtime-core/README.md | 28 + .../runtime-core/dist/runtime-core.cjs.js | 8734 ++ .../dist/runtime-core.cjs.prod.js | 6875 ++ .../@vue/runtime-core/dist/runtime-core.d.ts | 1866 + .../dist/runtime-core.esm-bundler.js | 8663 ++ .../node_modules/@vue/runtime-core/index.js | 7 + .../@vue/runtime-core/package.json | 52 + .../node_modules/@vue/runtime-dom/LICENSE | 21 + .../node_modules/@vue/runtime-dom/README.md | 13 + .../@vue/runtime-dom/dist/runtime-dom.cjs.js | 1972 + .../runtime-dom/dist/runtime-dom.cjs.prod.js | 1822 + .../@vue/runtime-dom/dist/runtime-dom.d.ts | 1450 + .../dist/runtime-dom.esm-browser.js | 12857 +++ .../dist/runtime-dom.esm-browser.prod.js | 7 + .../dist/runtime-dom.esm-bundler.js | 2011 + .../runtime-dom/dist/runtime-dom.global.js | 12910 +++ .../dist/runtime-dom.global.prod.js | 7 + .../node_modules/@vue/runtime-dom/index.js | 7 + .../@vue/runtime-dom/package.json | 60 + .../node_modules/@vue/server-renderer/LICENSE | 21 + .../@vue/server-renderer/README.md | 178 + .../dist/server-renderer.cjs.js | 1159 + .../dist/server-renderer.cjs.prod.js | 883 + .../server-renderer/dist/server-renderer.d.ts | 65 + .../dist/server-renderer.esm-browser.js | 8688 ++ .../dist/server-renderer.esm-browser.prod.js | 5 + .../dist/server-renderer.esm-bundler.js | 1097 + .../@vue/server-renderer/index.js | 7 + .../@vue/server-renderer/package.json | 55 + frontend/node_modules/@vue/shared/LICENSE | 21 + frontend/node_modules/@vue/shared/README.md | 3 + .../@vue/shared/dist/shared.cjs.js | 612 + .../@vue/shared/dist/shared.cjs.prod.js | 604 + .../node_modules/@vue/shared/dist/shared.d.ts | 334 + .../@vue/shared/dist/shared.esm-bundler.js | 536 + frontend/node_modules/@vue/shared/index.js | 7 + .../node_modules/@vue/shared/package.json | 47 + frontend/node_modules/csstype/LICENSE | 19 + frontend/node_modules/csstype/README.md | 291 + frontend/node_modules/csstype/index.d.ts | 22569 ++++++ frontend/node_modules/csstype/index.js.flow | 6863 ++ frontend/node_modules/csstype/package.json | 70 + frontend/node_modules/entities/LICENSE | 11 + frontend/node_modules/entities/decode.d.ts | 3 + frontend/node_modules/entities/decode.js | 3 + .../dist/commonjs/decode-codepoint.d.ts | 19 + .../dist/commonjs/decode-codepoint.d.ts.map | 1 + .../dist/commonjs/decode-codepoint.js | 77 + .../dist/commonjs/decode-codepoint.js.map | 1 + .../entities/dist/commonjs/decode.d.ts | 205 + .../entities/dist/commonjs/decode.d.ts.map | 1 + .../entities/dist/commonjs/decode.js | 568 + .../entities/dist/commonjs/decode.js.map | 1 + .../entities/dist/commonjs/encode.d.ts | 22 + .../entities/dist/commonjs/encode.d.ts.map | 1 + .../entities/dist/commonjs/encode.js | 92 + .../entities/dist/commonjs/encode.js.map | 1 + .../entities/dist/commonjs/escape.d.ts | 46 + .../entities/dist/commonjs/escape.d.ts.map | 1 + .../entities/dist/commonjs/escape.js | 138 + .../entities/dist/commonjs/escape.js.map | 1 + .../commonjs/generated/decode-data-html.d.ts | 2 + .../generated/decode-data-html.d.ts.map | 1 + .../commonjs/generated/decode-data-html.js | 7 + .../generated/decode-data-html.js.map | 1 + .../commonjs/generated/decode-data-xml.d.ts | 2 + .../generated/decode-data-xml.d.ts.map | 1 + .../commonjs/generated/decode-data-xml.js | 7 + .../commonjs/generated/decode-data-xml.js.map | 1 + .../dist/commonjs/generated/encode-html.d.ts | 3 + .../commonjs/generated/encode-html.d.ts.map | 1 + .../dist/commonjs/generated/encode-html.js | 14 + .../commonjs/generated/encode-html.js.map | 1 + .../entities/dist/commonjs/index.d.ts | 96 + .../entities/dist/commonjs/index.d.ts.map | 1 + .../entities/dist/commonjs/index.js | 131 + .../entities/dist/commonjs/index.js.map | 1 + .../commonjs/internal/bin-trie-flags.d.ts | 17 + .../commonjs/internal/bin-trie-flags.d.ts.map | 1 + .../dist/commonjs/internal/bin-trie-flags.js | 21 + .../commonjs/internal/bin-trie-flags.js.map | 1 + .../dist/commonjs/internal/decode-shared.d.ts | 2 + .../commonjs/internal/decode-shared.d.ts.map | 1 + .../dist/commonjs/internal/decode-shared.js | 31 + .../commonjs/internal/decode-shared.js.map | 1 + .../dist/commonjs/internal/encode-shared.d.ts | 32 + .../commonjs/internal/encode-shared.d.ts.map | 1 + .../dist/commonjs/internal/encode-shared.js | 94 + .../commonjs/internal/encode-shared.js.map | 1 + .../entities/dist/commonjs/package.json | 3 + .../entities/dist/esm/decode-codepoint.d.ts | 19 + .../dist/esm/decode-codepoint.d.ts.map | 1 + .../entities/dist/esm/decode-codepoint.js | 72 + .../entities/dist/esm/decode-codepoint.js.map | 1 + .../entities/dist/esm/decode.d.ts | 205 + .../entities/dist/esm/decode.d.ts.map | 1 + .../node_modules/entities/dist/esm/decode.js | 554 + .../entities/dist/esm/decode.js.map | 1 + .../entities/dist/esm/encode.d.ts | 22 + .../entities/dist/esm/encode.d.ts.map | 1 + .../node_modules/entities/dist/esm/encode.js | 88 + .../entities/dist/esm/encode.js.map | 1 + .../entities/dist/esm/escape.d.ts | 46 + .../entities/dist/esm/escape.d.ts.map | 1 + .../node_modules/entities/dist/esm/escape.js | 134 + .../entities/dist/esm/escape.js.map | 1 + .../dist/esm/generated/decode-data-html.d.ts | 2 + .../esm/generated/decode-data-html.d.ts.map | 1 + .../dist/esm/generated/decode-data-html.js | 4 + .../esm/generated/decode-data-html.js.map | 1 + .../dist/esm/generated/decode-data-xml.d.ts | 2 + .../esm/generated/decode-data-xml.d.ts.map | 1 + .../dist/esm/generated/decode-data-xml.js | 4 + .../dist/esm/generated/decode-data-xml.js.map | 1 + .../dist/esm/generated/encode-html.d.ts | 3 + .../dist/esm/generated/encode-html.d.ts.map | 1 + .../dist/esm/generated/encode-html.js | 11 + .../dist/esm/generated/encode-html.js.map | 1 + .../node_modules/entities/dist/esm/index.d.ts | 96 + .../entities/dist/esm/index.d.ts.map | 1 + .../node_modules/entities/dist/esm/index.js | 107 + .../entities/dist/esm/index.js.map | 1 + .../dist/esm/internal/bin-trie-flags.d.ts | 17 + .../dist/esm/internal/bin-trie-flags.d.ts.map | 1 + .../dist/esm/internal/bin-trie-flags.js | 18 + .../dist/esm/internal/bin-trie-flags.js.map | 1 + .../dist/esm/internal/decode-shared.d.ts | 2 + .../dist/esm/internal/decode-shared.d.ts.map | 1 + .../dist/esm/internal/decode-shared.js | 28 + .../dist/esm/internal/decode-shared.js.map | 1 + .../dist/esm/internal/encode-shared.d.ts | 32 + .../dist/esm/internal/encode-shared.d.ts.map | 1 + .../dist/esm/internal/encode-shared.js | 91 + .../dist/esm/internal/encode-shared.js.map | 1 + .../entities/dist/esm/package.json | 3 + frontend/node_modules/entities/escape.d.ts | 3 + frontend/node_modules/entities/escape.js | 3 + frontend/node_modules/entities/package.json | 120 + frontend/node_modules/entities/readme.md | 143 + .../entities/src/decode-codepoint.ts | 81 + frontend/node_modules/entities/src/decode.ts | 685 + frontend/node_modules/entities/src/encode.ts | 93 + frontend/node_modules/entities/src/escape.ts | 161 + .../entities/src/generated/.eslintrc.json | 10 + .../src/generated/decode-data-html.ts | 6 + .../entities/src/generated/decode-data-xml.ts | 6 + .../entities/src/generated/encode-html.ts | 17 + frontend/node_modules/entities/src/index.ts | 187 + .../entities/src/internal/bin-trie-flags.ts | 16 + .../entities/src/internal/decode-shared.ts | 30 + .../entities/src/internal/encode-shared.ts | 121 + frontend/node_modules/esbuild/LICENSE.md | 21 + frontend/node_modules/esbuild/README.md | 3 + frontend/node_modules/esbuild/bin/esbuild | Bin 0 -> 10290544 bytes frontend/node_modules/esbuild/install.js | 285 + frontend/node_modules/esbuild/lib/main.d.ts | 705 + frontend/node_modules/esbuild/lib/main.js | 2239 + frontend/node_modules/esbuild/package.json | 46 + .../node_modules/estree-walker/CHANGELOG.md | 92 + frontend/node_modules/estree-walker/LICENSE | 7 + frontend/node_modules/estree-walker/README.md | 48 + .../estree-walker/dist/esm/estree-walker.js | 333 + .../estree-walker/dist/esm/package.json | 1 + .../estree-walker/dist/umd/estree-walker.js | 344 + .../node_modules/estree-walker/package.json | 37 + .../node_modules/estree-walker/src/async.js | 118 + .../node_modules/estree-walker/src/index.js | 35 + .../estree-walker/src/package.json | 1 + .../node_modules/estree-walker/src/sync.js | 118 + .../node_modules/estree-walker/src/walker.js | 61 + .../estree-walker/types/async.d.ts | 53 + .../estree-walker/types/index.d.ts | 56 + .../estree-walker/types/sync.d.ts | 53 + .../estree-walker/types/tsconfig.tsbuildinfo | 345 + .../estree-walker/types/walker.d.ts | 37 + frontend/node_modules/magic-string/LICENSE | 7 + frontend/node_modules/magic-string/README.md | 325 + .../magic-string/dist/magic-string.cjs.d.ts | 289 + .../magic-string/dist/magic-string.cjs.js | 1594 + .../magic-string/dist/magic-string.cjs.js.map | 1 + .../magic-string/dist/magic-string.es.d.mts | 289 + .../magic-string/dist/magic-string.es.mjs | 1588 + .../magic-string/dist/magic-string.es.mjs.map | 1 + .../magic-string/dist/magic-string.umd.js | 1682 + .../magic-string/dist/magic-string.umd.js.map | 1 + .../node_modules/magic-string/package.json | 67 + .../nanoid/.claude/settings.local.json | 14 + frontend/node_modules/nanoid/LICENSE | 20 + frontend/node_modules/nanoid/README.md | 39 + .../nanoid/async/index.browser.cjs | 69 + .../nanoid/async/index.browser.js | 34 + frontend/node_modules/nanoid/async/index.cjs | 71 + frontend/node_modules/nanoid/async/index.d.ts | 56 + frontend/node_modules/nanoid/async/index.js | 35 + .../node_modules/nanoid/async/index.native.js | 26 + .../node_modules/nanoid/async/package.json | 12 + frontend/node_modules/nanoid/bin/nanoid.cjs | 55 + .../node_modules/nanoid/index.browser.cjs | 72 + frontend/node_modules/nanoid/index.browser.js | 34 + frontend/node_modules/nanoid/index.cjs | 86 + frontend/node_modules/nanoid/index.d.cts | 91 + frontend/node_modules/nanoid/index.d.ts | 91 + frontend/node_modules/nanoid/index.js | 46 + frontend/node_modules/nanoid/nanoid.js | 1 + .../node_modules/nanoid/non-secure/index.cjs | 34 + .../node_modules/nanoid/non-secure/index.d.ts | 33 + .../node_modules/nanoid/non-secure/index.js | 21 + .../nanoid/non-secure/package.json | 6 + frontend/node_modules/nanoid/package.json | 89 + .../nanoid/url-alphabet/index.cjs | 7 + .../node_modules/nanoid/url-alphabet/index.js | 3 + .../nanoid/url-alphabet/package.json | 6 + frontend/node_modules/picocolors/LICENSE | 15 + frontend/node_modules/picocolors/README.md | 21 + frontend/node_modules/picocolors/package.json | 25 + .../picocolors/picocolors.browser.js | 4 + .../node_modules/picocolors/picocolors.d.ts | 5 + .../node_modules/picocolors/picocolors.js | 75 + frontend/node_modules/picocolors/types.d.ts | 51 + frontend/node_modules/postcss/LICENSE | 20 + frontend/node_modules/postcss/README.md | 28 + .../node_modules/postcss/lib/at-rule.d.ts | 139 + frontend/node_modules/postcss/lib/at-rule.js | 25 + .../node_modules/postcss/lib/comment.d.ts | 67 + frontend/node_modules/postcss/lib/comment.js | 13 + .../node_modules/postcss/lib/container.d.ts | 478 + .../node_modules/postcss/lib/container.js | 447 + .../postcss/lib/css-syntax-error.d.ts | 247 + .../postcss/lib/css-syntax-error.js | 133 + .../node_modules/postcss/lib/declaration.d.ts | 150 + .../node_modules/postcss/lib/declaration.js | 24 + .../node_modules/postcss/lib/document.d.ts | 68 + frontend/node_modules/postcss/lib/document.js | 33 + .../node_modules/postcss/lib/fromJSON.d.ts | 9 + frontend/node_modules/postcss/lib/fromJSON.js | 54 + frontend/node_modules/postcss/lib/input.d.ts | 226 + frontend/node_modules/postcss/lib/input.js | 273 + .../node_modules/postcss/lib/lazy-result.d.ts | 189 + .../node_modules/postcss/lib/lazy-result.js | 563 + frontend/node_modules/postcss/lib/list.d.ts | 60 + frontend/node_modules/postcss/lib/list.js | 58 + .../node_modules/postcss/lib/map-generator.js | 376 + .../postcss/lib/no-work-result.d.ts | 45 + .../postcss/lib/no-work-result.js | 137 + frontend/node_modules/postcss/lib/node.d.ts | 555 + frontend/node_modules/postcss/lib/node.js | 449 + frontend/node_modules/postcss/lib/parse.d.ts | 9 + frontend/node_modules/postcss/lib/parse.js | 42 + frontend/node_modules/postcss/lib/parser.js | 618 + .../node_modules/postcss/lib/postcss.d.mts | 66 + .../node_modules/postcss/lib/postcss.d.ts | 461 + frontend/node_modules/postcss/lib/postcss.js | 101 + frontend/node_modules/postcss/lib/postcss.mjs | 30 + .../postcss/lib/previous-map.d.ts | 80 + .../node_modules/postcss/lib/previous-map.js | 161 + .../node_modules/postcss/lib/processor.d.ts | 114 + .../node_modules/postcss/lib/processor.js | 67 + frontend/node_modules/postcss/lib/result.d.ts | 204 + frontend/node_modules/postcss/lib/result.js | 42 + frontend/node_modules/postcss/lib/root.d.ts | 86 + frontend/node_modules/postcss/lib/root.js | 61 + frontend/node_modules/postcss/lib/rule.d.ts | 126 + frontend/node_modules/postcss/lib/rule.js | 27 + .../node_modules/postcss/lib/stringifier.d.ts | 45 + .../node_modules/postcss/lib/stringifier.js | 374 + .../node_modules/postcss/lib/stringify.d.ts | 9 + .../node_modules/postcss/lib/stringify.js | 11 + frontend/node_modules/postcss/lib/symbols.js | 5 + .../postcss/lib/terminal-highlight.js | 70 + frontend/node_modules/postcss/lib/tokenize.js | 270 + .../node_modules/postcss/lib/warn-once.js | 13 + .../node_modules/postcss/lib/warning.d.ts | 146 + frontend/node_modules/postcss/lib/warning.js | 37 + frontend/node_modules/postcss/package.json | 88 + frontend/node_modules/rollup/LICENSE.md | 679 + frontend/node_modules/rollup/README.md | 134 + frontend/node_modules/rollup/dist/bin/rollup | 1912 + .../rollup/dist/es/getLogFilter.js | 64 + .../node_modules/rollup/dist/es/package.json | 1 + .../node_modules/rollup/dist/es/parseAst.js | 12 + .../node_modules/rollup/dist/es/rollup.js | 17 + .../rollup/dist/es/shared/node-entry.js | 24473 ++++++ .../rollup/dist/es/shared/parseAst.js | 2124 + .../rollup/dist/es/shared/watch.js | 9909 +++ .../rollup/dist/getLogFilter.d.ts | 5 + .../node_modules/rollup/dist/getLogFilter.js | 69 + .../rollup/dist/loadConfigFile.d.ts | 20 + .../rollup/dist/loadConfigFile.js | 29 + frontend/node_modules/rollup/dist/native.js | 167 + .../node_modules/rollup/dist/parseAst.d.ts | 4 + frontend/node_modules/rollup/dist/parseAst.js | 22 + frontend/node_modules/rollup/dist/rollup.d.ts | 1225 + frontend/node_modules/rollup/dist/rollup.js | 127 + .../rollup/dist/shared/fsevents-importer.js | 37 + .../node_modules/rollup/dist/shared/index.js | 9615 +++ .../rollup/dist/shared/loadConfigFile.js | 572 + .../rollup/dist/shared/parseAst.js | 2361 + .../node_modules/rollup/dist/shared/rollup.js | 24395 ++++++ .../rollup/dist/shared/watch-cli.js | 542 + .../node_modules/rollup/dist/shared/watch.js | 324 + frontend/node_modules/rollup/package.json | 296 + frontend/node_modules/source-map-js/LICENSE | 28 + frontend/node_modules/source-map-js/README.md | 765 + .../source-map-js/lib/array-set.js | 121 + .../source-map-js/lib/base64-vlq.js | 140 + .../node_modules/source-map-js/lib/base64.js | 67 + .../source-map-js/lib/binary-search.js | 111 + .../source-map-js/lib/mapping-list.js | 79 + .../source-map-js/lib/quick-sort.js | 132 + .../lib/source-map-consumer.d.ts | 1 + .../source-map-js/lib/source-map-consumer.js | 1188 + .../lib/source-map-generator.d.ts | 1 + .../source-map-js/lib/source-map-generator.js | 444 + .../source-map-js/lib/source-node.d.ts | 1 + .../source-map-js/lib/source-node.js | 413 + .../node_modules/source-map-js/lib/util.js | 594 + .../node_modules/source-map-js/package.json | 71 + .../source-map-js/source-map.d.ts | 104 + .../node_modules/source-map-js/source-map.js | 8 + frontend/node_modules/vite/LICENSE.md | 3423 + frontend/node_modules/vite/README.md | 20 + .../vite/bin/openChrome.applescript | 95 + frontend/node_modules/vite/bin/vite.js | 61 + frontend/node_modules/vite/client.d.ts | 256 + .../node_modules/vite/dist/client/client.mjs | 829 + .../node_modules/vite/dist/client/env.mjs | 24 + .../vite/dist/node-cjs/publicUtils.cjs | 6172 ++ .../vite/dist/node/chunks/dep-BB45zftN.js | 993 + .../vite/dist/node/chunks/dep-BK3b2jBa.js | 67048 ++++++++++++++++ .../vite/dist/node/chunks/dep-D-7KCb9p.js | 7960 ++ .../vite/dist/node/chunks/dep-Dnp7gl8U.js | 7004 ++ .../vite/dist/node/chunks/dep-IQS-Za7F.js | 561 + frontend/node_modules/vite/dist/node/cli.js | 917 + .../node_modules/vite/dist/node/constants.js | 113 + .../node_modules/vite/dist/node/index.d.ts | 3627 + frontend/node_modules/vite/dist/node/index.js | 261 + .../node_modules/vite/dist/node/runtime.d.ts | 63 + .../node_modules/vite/dist/node/runtime.js | 1066 + .../vite/dist/node/types.d-aGj9QkWt.d.ts | 281 + frontend/node_modules/vite/index.cjs | 60 + frontend/node_modules/vite/index.d.cts | 6 + frontend/node_modules/vite/package.json | 191 + .../node_modules/vite/types/customEvent.d.ts | 39 + .../node_modules/vite/types/hmrPayload.d.ts | 65 + frontend/node_modules/vite/types/hot.d.ts | 36 + .../node_modules/vite/types/import-meta.d.ts | 5 + .../node_modules/vite/types/importGlob.d.ts | 75 + .../node_modules/vite/types/importMeta.d.ts | 22 + .../node_modules/vite/types/metadata.d.ts | 10 + frontend/node_modules/vite/types/package.json | 4 + frontend/node_modules/vue/LICENSE | 21 + frontend/node_modules/vue/README.md | 58 + .../vue/compiler-sfc/index.browser.js | 1 + .../vue/compiler-sfc/index.browser.mjs | 1 + .../node_modules/vue/compiler-sfc/index.d.mts | 1 + .../node_modules/vue/compiler-sfc/index.d.ts | 1 + .../node_modules/vue/compiler-sfc/index.js | 3 + .../node_modules/vue/compiler-sfc/index.mjs | 3 + .../vue/compiler-sfc/package.json | 4 + .../vue/compiler-sfc/register-ts.js | 3 + frontend/node_modules/vue/dist/vue.cjs.js | 80 + .../node_modules/vue/dist/vue.cjs.prod.js | 66 + frontend/node_modules/vue/dist/vue.d.mts | 7 + frontend/node_modules/vue/dist/vue.d.ts | 7 + .../node_modules/vue/dist/vue.esm-browser.js | 18771 +++++ .../vue/dist/vue.esm-browser.prod.js | 13 + .../node_modules/vue/dist/vue.esm-bundler.js | 71 + frontend/node_modules/vue/dist/vue.global.js | 18651 +++++ .../node_modules/vue/dist/vue.global.prod.js | 13 + .../vue/dist/vue.runtime.esm-browser.js | 12880 +++ .../vue/dist/vue.runtime.esm-browser.prod.js | 7 + .../vue/dist/vue.runtime.esm-bundler.js | 26 + .../vue/dist/vue.runtime.global.js | 12934 +++ .../vue/dist/vue.runtime.global.prod.js | 7 + frontend/node_modules/vue/index.js | 7 + frontend/node_modules/vue/index.mjs | 1 + .../node_modules/vue/jsx-runtime/index.d.ts | 25 + .../node_modules/vue/jsx-runtime/index.js | 15 + .../node_modules/vue/jsx-runtime/index.mjs | 12 + .../node_modules/vue/jsx-runtime/package.json | 5 + frontend/node_modules/vue/jsx.d.ts | 22 + frontend/node_modules/vue/package.json | 112 + .../vue/server-renderer/index.d.mts | 1 + .../vue/server-renderer/index.d.ts | 1 + .../node_modules/vue/server-renderer/index.js | 1 + .../vue/server-renderer/index.mjs | 1 + .../vue/server-renderer/package.json | 4 + frontend/package-lock.json | 1221 + frontend/package.json | 16 + frontend/src/main.js | 175 + frontend/vite.config.js | 14 + skillText.md | 67 + 707 files changed, 551154 insertions(+) create mode 100644 .trae/skills/agent-browser/SKILL.md create mode 100644 .trae/skills/brainstorming/SKILL.md create mode 100644 .trae/skills/brainstorming/visual-companion.md create mode 100644 .trae/skills/find-skills/SKILL.md create mode 100644 .trae/skills/frontend-design/SKILL.md create mode 100644 .trae/skills/karpathy-guidelines/SKILL.md create mode 100644 .trae/skills/systematic-debugging/SKILL.md create mode 100644 .trae/skills/ui-ux-pro-max/SKILL.md create mode 100644 .trae/skills/using-superpowers/SKILL.md create mode 100644 .trae/skills/webapp-testing/SKILL.md create mode 100644 .trae/skills/writing-plans/SKILL.md create mode 100644 README.md create mode 100644 backend/__pycache__/init_db.cpython-313.pyc create mode 100644 backend/__pycache__/main.cpython-313.pyc create mode 100644 backend/app.db create mode 100644 backend/init_db.py create mode 100644 backend/main.py create mode 100644 backend/requirements.txt create mode 100644 docs/superpowers/plans/2026-06-09-global-config.md create mode 100644 docs/superpowers/plans/2026-06-09-port-config-split.md create mode 100644 docs/superpowers/plans/2026-06-09-skill-docs-expansion.md create mode 100644 docs/superpowers/plans/2026-06-09-sqlite-fastapi-vue-crud.md create mode 100644 docs/superpowers/plans/2026-06-09-sqlite-fastapi-vue-hello-world.md create mode 100644 docs/superpowers/specs/2026-06-09-global-config-design.md create mode 100644 docs/superpowers/specs/2026-06-09-port-config-split-design.md create mode 100644 docs/superpowers/specs/2026-06-09-skill-docs-design.md create mode 100644 docs/superpowers/specs/2026-06-09-sqlite-fastapi-vue-crud-design.md create mode 100644 docs/superpowers/specs/2026-06-09-sqlite-fastapi-vue-hello-world-design.md create mode 100644 docs/test-scenarios.md create mode 100644 frontend/index.html create mode 120000 frontend/node_modules/.bin/esbuild create mode 120000 frontend/node_modules/.bin/nanoid create mode 120000 frontend/node_modules/.bin/parser create mode 120000 frontend/node_modules/.bin/rollup create mode 120000 frontend/node_modules/.bin/vite create mode 100644 frontend/node_modules/.package-lock.json create mode 100644 frontend/node_modules/@babel/helper-string-parser/LICENSE create mode 100644 frontend/node_modules/@babel/helper-string-parser/README.md create mode 100644 frontend/node_modules/@babel/helper-string-parser/lib/index.js create mode 100644 frontend/node_modules/@babel/helper-string-parser/lib/index.js.map create mode 100644 frontend/node_modules/@babel/helper-string-parser/package.json create mode 100644 frontend/node_modules/@babel/helper-validator-identifier/LICENSE create mode 100644 frontend/node_modules/@babel/helper-validator-identifier/README.md create mode 100644 frontend/node_modules/@babel/helper-validator-identifier/lib/identifier.js create mode 100644 frontend/node_modules/@babel/helper-validator-identifier/lib/identifier.js.map create mode 100644 frontend/node_modules/@babel/helper-validator-identifier/lib/index.js create mode 100644 frontend/node_modules/@babel/helper-validator-identifier/lib/index.js.map create mode 100644 frontend/node_modules/@babel/helper-validator-identifier/lib/keyword.js create mode 100644 frontend/node_modules/@babel/helper-validator-identifier/lib/keyword.js.map create mode 100644 frontend/node_modules/@babel/helper-validator-identifier/package.json create mode 100644 frontend/node_modules/@babel/parser/CHANGELOG.md create mode 100644 frontend/node_modules/@babel/parser/LICENSE create mode 100644 frontend/node_modules/@babel/parser/README.md create mode 100755 frontend/node_modules/@babel/parser/bin/babel-parser.js create mode 100644 frontend/node_modules/@babel/parser/lib/index.js create mode 100644 frontend/node_modules/@babel/parser/lib/index.js.map create mode 100644 frontend/node_modules/@babel/parser/package.json create mode 100644 frontend/node_modules/@babel/parser/typings/babel-parser.d.ts create mode 100644 frontend/node_modules/@babel/types/LICENSE create mode 100644 frontend/node_modules/@babel/types/README.md create mode 100644 frontend/node_modules/@babel/types/lib/asserts/assertNode.js create mode 100644 frontend/node_modules/@babel/types/lib/asserts/assertNode.js.map create mode 100644 frontend/node_modules/@babel/types/lib/asserts/generated/index.js create mode 100644 frontend/node_modules/@babel/types/lib/asserts/generated/index.js.map create mode 100644 frontend/node_modules/@babel/types/lib/ast-types/generated/index.js create mode 100644 frontend/node_modules/@babel/types/lib/ast-types/generated/index.js.map create mode 100644 frontend/node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js create mode 100644 frontend/node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js.map create mode 100644 frontend/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js create mode 100644 frontend/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js.map create mode 100644 frontend/node_modules/@babel/types/lib/builders/generated/index.js create mode 100644 frontend/node_modules/@babel/types/lib/builders/generated/index.js.map create mode 100644 frontend/node_modules/@babel/types/lib/builders/generated/lowercase.js create mode 100644 frontend/node_modules/@babel/types/lib/builders/generated/lowercase.js.map create mode 100644 frontend/node_modules/@babel/types/lib/builders/generated/uppercase.js create mode 100644 frontend/node_modules/@babel/types/lib/builders/generated/uppercase.js.map create mode 100644 frontend/node_modules/@babel/types/lib/builders/productions.js create mode 100644 frontend/node_modules/@babel/types/lib/builders/productions.js.map create mode 100644 frontend/node_modules/@babel/types/lib/builders/react/buildChildren.js create mode 100644 frontend/node_modules/@babel/types/lib/builders/react/buildChildren.js.map create mode 100644 frontend/node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js create mode 100644 frontend/node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js.map create mode 100644 frontend/node_modules/@babel/types/lib/builders/validateNode.js create mode 100644 frontend/node_modules/@babel/types/lib/builders/validateNode.js.map create mode 100644 frontend/node_modules/@babel/types/lib/clone/clone.js create mode 100644 frontend/node_modules/@babel/types/lib/clone/clone.js.map create mode 100644 frontend/node_modules/@babel/types/lib/clone/cloneDeep.js create mode 100644 frontend/node_modules/@babel/types/lib/clone/cloneDeep.js.map create mode 100644 frontend/node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js create mode 100644 frontend/node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js.map create mode 100644 frontend/node_modules/@babel/types/lib/clone/cloneNode.js create mode 100644 frontend/node_modules/@babel/types/lib/clone/cloneNode.js.map create mode 100644 frontend/node_modules/@babel/types/lib/clone/cloneWithoutLoc.js create mode 100644 frontend/node_modules/@babel/types/lib/clone/cloneWithoutLoc.js.map create mode 100644 frontend/node_modules/@babel/types/lib/comments/addComment.js create mode 100644 frontend/node_modules/@babel/types/lib/comments/addComment.js.map create mode 100644 frontend/node_modules/@babel/types/lib/comments/addComments.js create mode 100644 frontend/node_modules/@babel/types/lib/comments/addComments.js.map create mode 100644 frontend/node_modules/@babel/types/lib/comments/inheritInnerComments.js create mode 100644 frontend/node_modules/@babel/types/lib/comments/inheritInnerComments.js.map create mode 100644 frontend/node_modules/@babel/types/lib/comments/inheritLeadingComments.js create mode 100644 frontend/node_modules/@babel/types/lib/comments/inheritLeadingComments.js.map create mode 100644 frontend/node_modules/@babel/types/lib/comments/inheritTrailingComments.js create mode 100644 frontend/node_modules/@babel/types/lib/comments/inheritTrailingComments.js.map create mode 100644 frontend/node_modules/@babel/types/lib/comments/inheritsComments.js create mode 100644 frontend/node_modules/@babel/types/lib/comments/inheritsComments.js.map create mode 100644 frontend/node_modules/@babel/types/lib/comments/removeComments.js create mode 100644 frontend/node_modules/@babel/types/lib/comments/removeComments.js.map create mode 100644 frontend/node_modules/@babel/types/lib/constants/generated/index.js create mode 100644 frontend/node_modules/@babel/types/lib/constants/generated/index.js.map create mode 100644 frontend/node_modules/@babel/types/lib/constants/index.js create mode 100644 frontend/node_modules/@babel/types/lib/constants/index.js.map create mode 100644 frontend/node_modules/@babel/types/lib/converters/ensureBlock.js create mode 100644 frontend/node_modules/@babel/types/lib/converters/ensureBlock.js.map create mode 100644 frontend/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js create mode 100644 frontend/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js.map create mode 100644 frontend/node_modules/@babel/types/lib/converters/toBindingIdentifierName.js create mode 100644 frontend/node_modules/@babel/types/lib/converters/toBindingIdentifierName.js.map create mode 100644 frontend/node_modules/@babel/types/lib/converters/toBlock.js create mode 100644 frontend/node_modules/@babel/types/lib/converters/toBlock.js.map create mode 100644 frontend/node_modules/@babel/types/lib/converters/toComputedKey.js create mode 100644 frontend/node_modules/@babel/types/lib/converters/toComputedKey.js.map create mode 100644 frontend/node_modules/@babel/types/lib/converters/toExpression.js create mode 100644 frontend/node_modules/@babel/types/lib/converters/toExpression.js.map create mode 100644 frontend/node_modules/@babel/types/lib/converters/toIdentifier.js create mode 100644 frontend/node_modules/@babel/types/lib/converters/toIdentifier.js.map create mode 100644 frontend/node_modules/@babel/types/lib/converters/toKeyAlias.js create mode 100644 frontend/node_modules/@babel/types/lib/converters/toKeyAlias.js.map create mode 100644 frontend/node_modules/@babel/types/lib/converters/toSequenceExpression.js create mode 100644 frontend/node_modules/@babel/types/lib/converters/toSequenceExpression.js.map create mode 100644 frontend/node_modules/@babel/types/lib/converters/toStatement.js create mode 100644 frontend/node_modules/@babel/types/lib/converters/toStatement.js.map create mode 100644 frontend/node_modules/@babel/types/lib/converters/valueToNode.js create mode 100644 frontend/node_modules/@babel/types/lib/converters/valueToNode.js.map create mode 100644 frontend/node_modules/@babel/types/lib/definitions/core.js create mode 100644 frontend/node_modules/@babel/types/lib/definitions/core.js.map create mode 100644 frontend/node_modules/@babel/types/lib/definitions/deprecated-aliases.js create mode 100644 frontend/node_modules/@babel/types/lib/definitions/deprecated-aliases.js.map create mode 100644 frontend/node_modules/@babel/types/lib/definitions/experimental.js create mode 100644 frontend/node_modules/@babel/types/lib/definitions/experimental.js.map create mode 100644 frontend/node_modules/@babel/types/lib/definitions/flow.js create mode 100644 frontend/node_modules/@babel/types/lib/definitions/flow.js.map create mode 100644 frontend/node_modules/@babel/types/lib/definitions/index.js create mode 100644 frontend/node_modules/@babel/types/lib/definitions/index.js.map create mode 100644 frontend/node_modules/@babel/types/lib/definitions/jsx.js create mode 100644 frontend/node_modules/@babel/types/lib/definitions/jsx.js.map create mode 100644 frontend/node_modules/@babel/types/lib/definitions/misc.js create mode 100644 frontend/node_modules/@babel/types/lib/definitions/misc.js.map create mode 100644 frontend/node_modules/@babel/types/lib/definitions/placeholders.js create mode 100644 frontend/node_modules/@babel/types/lib/definitions/placeholders.js.map create mode 100644 frontend/node_modules/@babel/types/lib/definitions/typescript.js create mode 100644 frontend/node_modules/@babel/types/lib/definitions/typescript.js.map create mode 100644 frontend/node_modules/@babel/types/lib/definitions/utils.js create mode 100644 frontend/node_modules/@babel/types/lib/definitions/utils.js.map create mode 100644 frontend/node_modules/@babel/types/lib/index-legacy.d.ts create mode 100644 frontend/node_modules/@babel/types/lib/index.d.ts create mode 100644 frontend/node_modules/@babel/types/lib/index.js create mode 100644 frontend/node_modules/@babel/types/lib/index.js.flow create mode 100644 frontend/node_modules/@babel/types/lib/index.js.map create mode 100644 frontend/node_modules/@babel/types/lib/modifications/appendToMemberExpression.js create mode 100644 frontend/node_modules/@babel/types/lib/modifications/appendToMemberExpression.js.map create mode 100644 frontend/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js create mode 100644 frontend/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js.map create mode 100644 frontend/node_modules/@babel/types/lib/modifications/inherits.js create mode 100644 frontend/node_modules/@babel/types/lib/modifications/inherits.js.map create mode 100644 frontend/node_modules/@babel/types/lib/modifications/prependToMemberExpression.js create mode 100644 frontend/node_modules/@babel/types/lib/modifications/prependToMemberExpression.js.map create mode 100644 frontend/node_modules/@babel/types/lib/modifications/removeProperties.js create mode 100644 frontend/node_modules/@babel/types/lib/modifications/removeProperties.js.map create mode 100644 frontend/node_modules/@babel/types/lib/modifications/removePropertiesDeep.js create mode 100644 frontend/node_modules/@babel/types/lib/modifications/removePropertiesDeep.js.map create mode 100644 frontend/node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js create mode 100644 frontend/node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js.map create mode 100644 frontend/node_modules/@babel/types/lib/retrievers/getAssignmentIdentifiers.js create mode 100644 frontend/node_modules/@babel/types/lib/retrievers/getAssignmentIdentifiers.js.map create mode 100644 frontend/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js create mode 100644 frontend/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js.map create mode 100644 frontend/node_modules/@babel/types/lib/retrievers/getFunctionName.js create mode 100644 frontend/node_modules/@babel/types/lib/retrievers/getFunctionName.js.map create mode 100644 frontend/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js create mode 100644 frontend/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js.map create mode 100644 frontend/node_modules/@babel/types/lib/traverse/traverse.js create mode 100644 frontend/node_modules/@babel/types/lib/traverse/traverse.js.map create mode 100644 frontend/node_modules/@babel/types/lib/traverse/traverseFast.js create mode 100644 frontend/node_modules/@babel/types/lib/traverse/traverseFast.js.map create mode 100644 frontend/node_modules/@babel/types/lib/utils/deprecationWarning.js create mode 100644 frontend/node_modules/@babel/types/lib/utils/deprecationWarning.js.map create mode 100644 frontend/node_modules/@babel/types/lib/utils/inherit.js create mode 100644 frontend/node_modules/@babel/types/lib/utils/inherit.js.map create mode 100644 frontend/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js create mode 100644 frontend/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js.map create mode 100644 frontend/node_modules/@babel/types/lib/utils/shallowEqual.js create mode 100644 frontend/node_modules/@babel/types/lib/utils/shallowEqual.js.map create mode 100644 frontend/node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js create mode 100644 frontend/node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js.map create mode 100644 frontend/node_modules/@babel/types/lib/validators/generated/index.js create mode 100644 frontend/node_modules/@babel/types/lib/validators/generated/index.js.map create mode 100644 frontend/node_modules/@babel/types/lib/validators/is.js create mode 100644 frontend/node_modules/@babel/types/lib/validators/is.js.map create mode 100644 frontend/node_modules/@babel/types/lib/validators/isBinding.js create mode 100644 frontend/node_modules/@babel/types/lib/validators/isBinding.js.map create mode 100644 frontend/node_modules/@babel/types/lib/validators/isBlockScoped.js create mode 100644 frontend/node_modules/@babel/types/lib/validators/isBlockScoped.js.map create mode 100644 frontend/node_modules/@babel/types/lib/validators/isImmutable.js create mode 100644 frontend/node_modules/@babel/types/lib/validators/isImmutable.js.map create mode 100644 frontend/node_modules/@babel/types/lib/validators/isLet.js create mode 100644 frontend/node_modules/@babel/types/lib/validators/isLet.js.map create mode 100644 frontend/node_modules/@babel/types/lib/validators/isNode.js create mode 100644 frontend/node_modules/@babel/types/lib/validators/isNode.js.map create mode 100644 frontend/node_modules/@babel/types/lib/validators/isNodesEquivalent.js create mode 100644 frontend/node_modules/@babel/types/lib/validators/isNodesEquivalent.js.map create mode 100644 frontend/node_modules/@babel/types/lib/validators/isPlaceholderType.js create mode 100644 frontend/node_modules/@babel/types/lib/validators/isPlaceholderType.js.map create mode 100644 frontend/node_modules/@babel/types/lib/validators/isReferenced.js create mode 100644 frontend/node_modules/@babel/types/lib/validators/isReferenced.js.map create mode 100644 frontend/node_modules/@babel/types/lib/validators/isScope.js create mode 100644 frontend/node_modules/@babel/types/lib/validators/isScope.js.map create mode 100644 frontend/node_modules/@babel/types/lib/validators/isSpecifierDefault.js create mode 100644 frontend/node_modules/@babel/types/lib/validators/isSpecifierDefault.js.map create mode 100644 frontend/node_modules/@babel/types/lib/validators/isType.js create mode 100644 frontend/node_modules/@babel/types/lib/validators/isType.js.map create mode 100644 frontend/node_modules/@babel/types/lib/validators/isValidES3Identifier.js create mode 100644 frontend/node_modules/@babel/types/lib/validators/isValidES3Identifier.js.map create mode 100644 frontend/node_modules/@babel/types/lib/validators/isValidIdentifier.js create mode 100644 frontend/node_modules/@babel/types/lib/validators/isValidIdentifier.js.map create mode 100644 frontend/node_modules/@babel/types/lib/validators/isVar.js create mode 100644 frontend/node_modules/@babel/types/lib/validators/isVar.js.map create mode 100644 frontend/node_modules/@babel/types/lib/validators/matchesPattern.js create mode 100644 frontend/node_modules/@babel/types/lib/validators/matchesPattern.js.map create mode 100644 frontend/node_modules/@babel/types/lib/validators/react/isCompatTag.js create mode 100644 frontend/node_modules/@babel/types/lib/validators/react/isCompatTag.js.map create mode 100644 frontend/node_modules/@babel/types/lib/validators/react/isReactComponent.js create mode 100644 frontend/node_modules/@babel/types/lib/validators/react/isReactComponent.js.map create mode 100644 frontend/node_modules/@babel/types/lib/validators/validate.js create mode 100644 frontend/node_modules/@babel/types/lib/validators/validate.js.map create mode 100644 frontend/node_modules/@babel/types/package.json create mode 100644 frontend/node_modules/@esbuild/darwin-x64/README.md create mode 100755 frontend/node_modules/@esbuild/darwin-x64/bin/esbuild create mode 100644 frontend/node_modules/@esbuild/darwin-x64/package.json create mode 100644 frontend/node_modules/@jridgewell/sourcemap-codec/LICENSE create mode 100644 frontend/node_modules/@jridgewell/sourcemap-codec/README.md create mode 100644 frontend/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs create mode 100644 frontend/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs.map create mode 100644 frontend/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js create mode 100644 frontend/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js.map create mode 100644 frontend/node_modules/@jridgewell/sourcemap-codec/package.json create mode 100644 frontend/node_modules/@jridgewell/sourcemap-codec/src/scopes.ts create mode 100644 frontend/node_modules/@jridgewell/sourcemap-codec/src/sourcemap-codec.ts create mode 100644 frontend/node_modules/@jridgewell/sourcemap-codec/src/strings.ts create mode 100644 frontend/node_modules/@jridgewell/sourcemap-codec/src/vlq.ts create mode 100644 frontend/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.cts create mode 100644 frontend/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.cts.map create mode 100644 frontend/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.mts create mode 100644 frontend/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.mts.map create mode 100644 frontend/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.cts create mode 100644 frontend/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.cts.map create mode 100644 frontend/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.mts create mode 100644 frontend/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.mts.map create mode 100644 frontend/node_modules/@jridgewell/sourcemap-codec/types/strings.d.cts create mode 100644 frontend/node_modules/@jridgewell/sourcemap-codec/types/strings.d.cts.map create mode 100644 frontend/node_modules/@jridgewell/sourcemap-codec/types/strings.d.mts create mode 100644 frontend/node_modules/@jridgewell/sourcemap-codec/types/strings.d.mts.map create mode 100644 frontend/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.cts create mode 100644 frontend/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.cts.map create mode 100644 frontend/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.mts create mode 100644 frontend/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.mts.map create mode 100644 frontend/node_modules/@types/estree/LICENSE create mode 100644 frontend/node_modules/@types/estree/README.md create mode 100644 frontend/node_modules/@types/estree/flow.d.ts create mode 100644 frontend/node_modules/@types/estree/index.d.ts create mode 100644 frontend/node_modules/@types/estree/package.json create mode 100644 frontend/node_modules/@vue/compiler-core/LICENSE create mode 100644 frontend/node_modules/@vue/compiler-core/README.md create mode 100644 frontend/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js create mode 100644 frontend/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js create mode 100644 frontend/node_modules/@vue/compiler-core/dist/compiler-core.d.ts create mode 100644 frontend/node_modules/@vue/compiler-core/dist/compiler-core.esm-bundler.js create mode 100644 frontend/node_modules/@vue/compiler-core/index.js create mode 100644 frontend/node_modules/@vue/compiler-core/package.json create mode 100644 frontend/node_modules/@vue/compiler-dom/LICENSE create mode 100644 frontend/node_modules/@vue/compiler-dom/README.md create mode 100644 frontend/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.js create mode 100644 frontend/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js create mode 100644 frontend/node_modules/@vue/compiler-dom/dist/compiler-dom.d.ts create mode 100644 frontend/node_modules/@vue/compiler-dom/dist/compiler-dom.esm-browser.js create mode 100644 frontend/node_modules/@vue/compiler-dom/dist/compiler-dom.esm-browser.prod.js create mode 100644 frontend/node_modules/@vue/compiler-dom/dist/compiler-dom.esm-bundler.js create mode 100644 frontend/node_modules/@vue/compiler-dom/dist/compiler-dom.global.js create mode 100644 frontend/node_modules/@vue/compiler-dom/dist/compiler-dom.global.prod.js create mode 100644 frontend/node_modules/@vue/compiler-dom/index.js create mode 100644 frontend/node_modules/@vue/compiler-dom/package.json create mode 100644 frontend/node_modules/@vue/compiler-sfc/LICENSE create mode 100644 frontend/node_modules/@vue/compiler-sfc/README.md create mode 100644 frontend/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js create mode 100644 frontend/node_modules/@vue/compiler-sfc/dist/compiler-sfc.d.ts create mode 100644 frontend/node_modules/@vue/compiler-sfc/dist/compiler-sfc.esm-browser.js create mode 100644 frontend/node_modules/@vue/compiler-sfc/package.json create mode 100644 frontend/node_modules/@vue/compiler-ssr/LICENSE create mode 100644 frontend/node_modules/@vue/compiler-ssr/README.md create mode 100644 frontend/node_modules/@vue/compiler-ssr/dist/compiler-ssr.cjs.js create mode 100644 frontend/node_modules/@vue/compiler-ssr/dist/compiler-ssr.d.ts create mode 100644 frontend/node_modules/@vue/compiler-ssr/package.json create mode 100644 frontend/node_modules/@vue/reactivity/LICENSE create mode 100644 frontend/node_modules/@vue/reactivity/README.md create mode 100644 frontend/node_modules/@vue/reactivity/dist/reactivity.cjs.js create mode 100644 frontend/node_modules/@vue/reactivity/dist/reactivity.cjs.prod.js create mode 100644 frontend/node_modules/@vue/reactivity/dist/reactivity.d.ts create mode 100644 frontend/node_modules/@vue/reactivity/dist/reactivity.esm-browser.js create mode 100644 frontend/node_modules/@vue/reactivity/dist/reactivity.esm-browser.prod.js create mode 100644 frontend/node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js create mode 100644 frontend/node_modules/@vue/reactivity/dist/reactivity.global.js create mode 100644 frontend/node_modules/@vue/reactivity/dist/reactivity.global.prod.js create mode 100644 frontend/node_modules/@vue/reactivity/index.js create mode 100644 frontend/node_modules/@vue/reactivity/package.json create mode 100644 frontend/node_modules/@vue/runtime-core/LICENSE create mode 100644 frontend/node_modules/@vue/runtime-core/README.md create mode 100644 frontend/node_modules/@vue/runtime-core/dist/runtime-core.cjs.js create mode 100644 frontend/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js create mode 100644 frontend/node_modules/@vue/runtime-core/dist/runtime-core.d.ts create mode 100644 frontend/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js create mode 100644 frontend/node_modules/@vue/runtime-core/index.js create mode 100644 frontend/node_modules/@vue/runtime-core/package.json create mode 100644 frontend/node_modules/@vue/runtime-dom/LICENSE create mode 100644 frontend/node_modules/@vue/runtime-dom/README.md create mode 100644 frontend/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.js create mode 100644 frontend/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.prod.js create mode 100644 frontend/node_modules/@vue/runtime-dom/dist/runtime-dom.d.ts create mode 100644 frontend/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-browser.js create mode 100644 frontend/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-browser.prod.js create mode 100644 frontend/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js create mode 100644 frontend/node_modules/@vue/runtime-dom/dist/runtime-dom.global.js create mode 100644 frontend/node_modules/@vue/runtime-dom/dist/runtime-dom.global.prod.js create mode 100644 frontend/node_modules/@vue/runtime-dom/index.js create mode 100644 frontend/node_modules/@vue/runtime-dom/package.json create mode 100644 frontend/node_modules/@vue/server-renderer/LICENSE create mode 100644 frontend/node_modules/@vue/server-renderer/README.md create mode 100644 frontend/node_modules/@vue/server-renderer/dist/server-renderer.cjs.js create mode 100644 frontend/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js create mode 100644 frontend/node_modules/@vue/server-renderer/dist/server-renderer.d.ts create mode 100644 frontend/node_modules/@vue/server-renderer/dist/server-renderer.esm-browser.js create mode 100644 frontend/node_modules/@vue/server-renderer/dist/server-renderer.esm-browser.prod.js create mode 100644 frontend/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.js create mode 100644 frontend/node_modules/@vue/server-renderer/index.js create mode 100644 frontend/node_modules/@vue/server-renderer/package.json create mode 100644 frontend/node_modules/@vue/shared/LICENSE create mode 100644 frontend/node_modules/@vue/shared/README.md create mode 100644 frontend/node_modules/@vue/shared/dist/shared.cjs.js create mode 100644 frontend/node_modules/@vue/shared/dist/shared.cjs.prod.js create mode 100644 frontend/node_modules/@vue/shared/dist/shared.d.ts create mode 100644 frontend/node_modules/@vue/shared/dist/shared.esm-bundler.js create mode 100644 frontend/node_modules/@vue/shared/index.js create mode 100644 frontend/node_modules/@vue/shared/package.json create mode 100644 frontend/node_modules/csstype/LICENSE create mode 100644 frontend/node_modules/csstype/README.md create mode 100644 frontend/node_modules/csstype/index.d.ts create mode 100644 frontend/node_modules/csstype/index.js.flow create mode 100644 frontend/node_modules/csstype/package.json create mode 100644 frontend/node_modules/entities/LICENSE create mode 100644 frontend/node_modules/entities/decode.d.ts create mode 100644 frontend/node_modules/entities/decode.js create mode 100644 frontend/node_modules/entities/dist/commonjs/decode-codepoint.d.ts create mode 100644 frontend/node_modules/entities/dist/commonjs/decode-codepoint.d.ts.map create mode 100644 frontend/node_modules/entities/dist/commonjs/decode-codepoint.js create mode 100644 frontend/node_modules/entities/dist/commonjs/decode-codepoint.js.map create mode 100644 frontend/node_modules/entities/dist/commonjs/decode.d.ts create mode 100644 frontend/node_modules/entities/dist/commonjs/decode.d.ts.map create mode 100644 frontend/node_modules/entities/dist/commonjs/decode.js create mode 100644 frontend/node_modules/entities/dist/commonjs/decode.js.map create mode 100644 frontend/node_modules/entities/dist/commonjs/encode.d.ts create mode 100644 frontend/node_modules/entities/dist/commonjs/encode.d.ts.map create mode 100644 frontend/node_modules/entities/dist/commonjs/encode.js create mode 100644 frontend/node_modules/entities/dist/commonjs/encode.js.map create mode 100644 frontend/node_modules/entities/dist/commonjs/escape.d.ts create mode 100644 frontend/node_modules/entities/dist/commonjs/escape.d.ts.map create mode 100644 frontend/node_modules/entities/dist/commonjs/escape.js create mode 100644 frontend/node_modules/entities/dist/commonjs/escape.js.map create mode 100644 frontend/node_modules/entities/dist/commonjs/generated/decode-data-html.d.ts create mode 100644 frontend/node_modules/entities/dist/commonjs/generated/decode-data-html.d.ts.map create mode 100644 frontend/node_modules/entities/dist/commonjs/generated/decode-data-html.js create mode 100644 frontend/node_modules/entities/dist/commonjs/generated/decode-data-html.js.map create mode 100644 frontend/node_modules/entities/dist/commonjs/generated/decode-data-xml.d.ts create mode 100644 frontend/node_modules/entities/dist/commonjs/generated/decode-data-xml.d.ts.map create mode 100644 frontend/node_modules/entities/dist/commonjs/generated/decode-data-xml.js create mode 100644 frontend/node_modules/entities/dist/commonjs/generated/decode-data-xml.js.map create mode 100644 frontend/node_modules/entities/dist/commonjs/generated/encode-html.d.ts create mode 100644 frontend/node_modules/entities/dist/commonjs/generated/encode-html.d.ts.map create mode 100644 frontend/node_modules/entities/dist/commonjs/generated/encode-html.js create mode 100644 frontend/node_modules/entities/dist/commonjs/generated/encode-html.js.map create mode 100644 frontend/node_modules/entities/dist/commonjs/index.d.ts create mode 100644 frontend/node_modules/entities/dist/commonjs/index.d.ts.map create mode 100644 frontend/node_modules/entities/dist/commonjs/index.js create mode 100644 frontend/node_modules/entities/dist/commonjs/index.js.map create mode 100644 frontend/node_modules/entities/dist/commonjs/internal/bin-trie-flags.d.ts create mode 100644 frontend/node_modules/entities/dist/commonjs/internal/bin-trie-flags.d.ts.map create mode 100644 frontend/node_modules/entities/dist/commonjs/internal/bin-trie-flags.js create mode 100644 frontend/node_modules/entities/dist/commonjs/internal/bin-trie-flags.js.map create mode 100644 frontend/node_modules/entities/dist/commonjs/internal/decode-shared.d.ts create mode 100644 frontend/node_modules/entities/dist/commonjs/internal/decode-shared.d.ts.map create mode 100644 frontend/node_modules/entities/dist/commonjs/internal/decode-shared.js create mode 100644 frontend/node_modules/entities/dist/commonjs/internal/decode-shared.js.map create mode 100644 frontend/node_modules/entities/dist/commonjs/internal/encode-shared.d.ts create mode 100644 frontend/node_modules/entities/dist/commonjs/internal/encode-shared.d.ts.map create mode 100644 frontend/node_modules/entities/dist/commonjs/internal/encode-shared.js create mode 100644 frontend/node_modules/entities/dist/commonjs/internal/encode-shared.js.map create mode 100644 frontend/node_modules/entities/dist/commonjs/package.json create mode 100644 frontend/node_modules/entities/dist/esm/decode-codepoint.d.ts create mode 100644 frontend/node_modules/entities/dist/esm/decode-codepoint.d.ts.map create mode 100644 frontend/node_modules/entities/dist/esm/decode-codepoint.js create mode 100644 frontend/node_modules/entities/dist/esm/decode-codepoint.js.map create mode 100644 frontend/node_modules/entities/dist/esm/decode.d.ts create mode 100644 frontend/node_modules/entities/dist/esm/decode.d.ts.map create mode 100644 frontend/node_modules/entities/dist/esm/decode.js create mode 100644 frontend/node_modules/entities/dist/esm/decode.js.map create mode 100644 frontend/node_modules/entities/dist/esm/encode.d.ts create mode 100644 frontend/node_modules/entities/dist/esm/encode.d.ts.map create mode 100644 frontend/node_modules/entities/dist/esm/encode.js create mode 100644 frontend/node_modules/entities/dist/esm/encode.js.map create mode 100644 frontend/node_modules/entities/dist/esm/escape.d.ts create mode 100644 frontend/node_modules/entities/dist/esm/escape.d.ts.map create mode 100644 frontend/node_modules/entities/dist/esm/escape.js create mode 100644 frontend/node_modules/entities/dist/esm/escape.js.map create mode 100644 frontend/node_modules/entities/dist/esm/generated/decode-data-html.d.ts create mode 100644 frontend/node_modules/entities/dist/esm/generated/decode-data-html.d.ts.map create mode 100644 frontend/node_modules/entities/dist/esm/generated/decode-data-html.js create mode 100644 frontend/node_modules/entities/dist/esm/generated/decode-data-html.js.map create mode 100644 frontend/node_modules/entities/dist/esm/generated/decode-data-xml.d.ts create mode 100644 frontend/node_modules/entities/dist/esm/generated/decode-data-xml.d.ts.map create mode 100644 frontend/node_modules/entities/dist/esm/generated/decode-data-xml.js create mode 100644 frontend/node_modules/entities/dist/esm/generated/decode-data-xml.js.map create mode 100644 frontend/node_modules/entities/dist/esm/generated/encode-html.d.ts create mode 100644 frontend/node_modules/entities/dist/esm/generated/encode-html.d.ts.map create mode 100644 frontend/node_modules/entities/dist/esm/generated/encode-html.js create mode 100644 frontend/node_modules/entities/dist/esm/generated/encode-html.js.map create mode 100644 frontend/node_modules/entities/dist/esm/index.d.ts create mode 100644 frontend/node_modules/entities/dist/esm/index.d.ts.map create mode 100644 frontend/node_modules/entities/dist/esm/index.js create mode 100644 frontend/node_modules/entities/dist/esm/index.js.map create mode 100644 frontend/node_modules/entities/dist/esm/internal/bin-trie-flags.d.ts create mode 100644 frontend/node_modules/entities/dist/esm/internal/bin-trie-flags.d.ts.map create mode 100644 frontend/node_modules/entities/dist/esm/internal/bin-trie-flags.js create mode 100644 frontend/node_modules/entities/dist/esm/internal/bin-trie-flags.js.map create mode 100644 frontend/node_modules/entities/dist/esm/internal/decode-shared.d.ts create mode 100644 frontend/node_modules/entities/dist/esm/internal/decode-shared.d.ts.map create mode 100644 frontend/node_modules/entities/dist/esm/internal/decode-shared.js create mode 100644 frontend/node_modules/entities/dist/esm/internal/decode-shared.js.map create mode 100644 frontend/node_modules/entities/dist/esm/internal/encode-shared.d.ts create mode 100644 frontend/node_modules/entities/dist/esm/internal/encode-shared.d.ts.map create mode 100644 frontend/node_modules/entities/dist/esm/internal/encode-shared.js create mode 100644 frontend/node_modules/entities/dist/esm/internal/encode-shared.js.map create mode 100644 frontend/node_modules/entities/dist/esm/package.json create mode 100644 frontend/node_modules/entities/escape.d.ts create mode 100644 frontend/node_modules/entities/escape.js create mode 100644 frontend/node_modules/entities/package.json create mode 100644 frontend/node_modules/entities/readme.md create mode 100644 frontend/node_modules/entities/src/decode-codepoint.ts create mode 100644 frontend/node_modules/entities/src/decode.ts create mode 100644 frontend/node_modules/entities/src/encode.ts create mode 100644 frontend/node_modules/entities/src/escape.ts create mode 100644 frontend/node_modules/entities/src/generated/.eslintrc.json create mode 100644 frontend/node_modules/entities/src/generated/decode-data-html.ts create mode 100644 frontend/node_modules/entities/src/generated/decode-data-xml.ts create mode 100644 frontend/node_modules/entities/src/generated/encode-html.ts create mode 100644 frontend/node_modules/entities/src/index.ts create mode 100644 frontend/node_modules/entities/src/internal/bin-trie-flags.ts create mode 100644 frontend/node_modules/entities/src/internal/decode-shared.ts create mode 100644 frontend/node_modules/entities/src/internal/encode-shared.ts create mode 100644 frontend/node_modules/esbuild/LICENSE.md create mode 100644 frontend/node_modules/esbuild/README.md create mode 100755 frontend/node_modules/esbuild/bin/esbuild create mode 100644 frontend/node_modules/esbuild/install.js create mode 100644 frontend/node_modules/esbuild/lib/main.d.ts create mode 100644 frontend/node_modules/esbuild/lib/main.js create mode 100644 frontend/node_modules/esbuild/package.json create mode 100644 frontend/node_modules/estree-walker/CHANGELOG.md create mode 100644 frontend/node_modules/estree-walker/LICENSE create mode 100644 frontend/node_modules/estree-walker/README.md create mode 100644 frontend/node_modules/estree-walker/dist/esm/estree-walker.js create mode 100644 frontend/node_modules/estree-walker/dist/esm/package.json create mode 100644 frontend/node_modules/estree-walker/dist/umd/estree-walker.js create mode 100644 frontend/node_modules/estree-walker/package.json create mode 100644 frontend/node_modules/estree-walker/src/async.js create mode 100644 frontend/node_modules/estree-walker/src/index.js create mode 100644 frontend/node_modules/estree-walker/src/package.json create mode 100644 frontend/node_modules/estree-walker/src/sync.js create mode 100644 frontend/node_modules/estree-walker/src/walker.js create mode 100644 frontend/node_modules/estree-walker/types/async.d.ts create mode 100644 frontend/node_modules/estree-walker/types/index.d.ts create mode 100644 frontend/node_modules/estree-walker/types/sync.d.ts create mode 100644 frontend/node_modules/estree-walker/types/tsconfig.tsbuildinfo create mode 100644 frontend/node_modules/estree-walker/types/walker.d.ts create mode 100644 frontend/node_modules/magic-string/LICENSE create mode 100644 frontend/node_modules/magic-string/README.md create mode 100644 frontend/node_modules/magic-string/dist/magic-string.cjs.d.ts create mode 100644 frontend/node_modules/magic-string/dist/magic-string.cjs.js create mode 100644 frontend/node_modules/magic-string/dist/magic-string.cjs.js.map create mode 100644 frontend/node_modules/magic-string/dist/magic-string.es.d.mts create mode 100644 frontend/node_modules/magic-string/dist/magic-string.es.mjs create mode 100644 frontend/node_modules/magic-string/dist/magic-string.es.mjs.map create mode 100644 frontend/node_modules/magic-string/dist/magic-string.umd.js create mode 100644 frontend/node_modules/magic-string/dist/magic-string.umd.js.map create mode 100644 frontend/node_modules/magic-string/package.json create mode 100644 frontend/node_modules/nanoid/.claude/settings.local.json create mode 100644 frontend/node_modules/nanoid/LICENSE create mode 100644 frontend/node_modules/nanoid/README.md create mode 100644 frontend/node_modules/nanoid/async/index.browser.cjs create mode 100644 frontend/node_modules/nanoid/async/index.browser.js create mode 100644 frontend/node_modules/nanoid/async/index.cjs create mode 100644 frontend/node_modules/nanoid/async/index.d.ts create mode 100644 frontend/node_modules/nanoid/async/index.js create mode 100644 frontend/node_modules/nanoid/async/index.native.js create mode 100644 frontend/node_modules/nanoid/async/package.json create mode 100755 frontend/node_modules/nanoid/bin/nanoid.cjs create mode 100644 frontend/node_modules/nanoid/index.browser.cjs create mode 100644 frontend/node_modules/nanoid/index.browser.js create mode 100644 frontend/node_modules/nanoid/index.cjs create mode 100644 frontend/node_modules/nanoid/index.d.cts create mode 100644 frontend/node_modules/nanoid/index.d.ts create mode 100644 frontend/node_modules/nanoid/index.js create mode 100644 frontend/node_modules/nanoid/nanoid.js create mode 100644 frontend/node_modules/nanoid/non-secure/index.cjs create mode 100644 frontend/node_modules/nanoid/non-secure/index.d.ts create mode 100644 frontend/node_modules/nanoid/non-secure/index.js create mode 100644 frontend/node_modules/nanoid/non-secure/package.json create mode 100644 frontend/node_modules/nanoid/package.json create mode 100644 frontend/node_modules/nanoid/url-alphabet/index.cjs create mode 100644 frontend/node_modules/nanoid/url-alphabet/index.js create mode 100644 frontend/node_modules/nanoid/url-alphabet/package.json create mode 100644 frontend/node_modules/picocolors/LICENSE create mode 100644 frontend/node_modules/picocolors/README.md create mode 100644 frontend/node_modules/picocolors/package.json create mode 100644 frontend/node_modules/picocolors/picocolors.browser.js create mode 100644 frontend/node_modules/picocolors/picocolors.d.ts create mode 100644 frontend/node_modules/picocolors/picocolors.js create mode 100644 frontend/node_modules/picocolors/types.d.ts create mode 100644 frontend/node_modules/postcss/LICENSE create mode 100644 frontend/node_modules/postcss/README.md create mode 100644 frontend/node_modules/postcss/lib/at-rule.d.ts create mode 100644 frontend/node_modules/postcss/lib/at-rule.js create mode 100644 frontend/node_modules/postcss/lib/comment.d.ts create mode 100644 frontend/node_modules/postcss/lib/comment.js create mode 100644 frontend/node_modules/postcss/lib/container.d.ts create mode 100644 frontend/node_modules/postcss/lib/container.js create mode 100644 frontend/node_modules/postcss/lib/css-syntax-error.d.ts create mode 100644 frontend/node_modules/postcss/lib/css-syntax-error.js create mode 100644 frontend/node_modules/postcss/lib/declaration.d.ts create mode 100644 frontend/node_modules/postcss/lib/declaration.js create mode 100644 frontend/node_modules/postcss/lib/document.d.ts create mode 100644 frontend/node_modules/postcss/lib/document.js create mode 100644 frontend/node_modules/postcss/lib/fromJSON.d.ts create mode 100644 frontend/node_modules/postcss/lib/fromJSON.js create mode 100644 frontend/node_modules/postcss/lib/input.d.ts create mode 100644 frontend/node_modules/postcss/lib/input.js create mode 100644 frontend/node_modules/postcss/lib/lazy-result.d.ts create mode 100644 frontend/node_modules/postcss/lib/lazy-result.js create mode 100644 frontend/node_modules/postcss/lib/list.d.ts create mode 100644 frontend/node_modules/postcss/lib/list.js create mode 100644 frontend/node_modules/postcss/lib/map-generator.js create mode 100644 frontend/node_modules/postcss/lib/no-work-result.d.ts create mode 100644 frontend/node_modules/postcss/lib/no-work-result.js create mode 100644 frontend/node_modules/postcss/lib/node.d.ts create mode 100644 frontend/node_modules/postcss/lib/node.js create mode 100644 frontend/node_modules/postcss/lib/parse.d.ts create mode 100644 frontend/node_modules/postcss/lib/parse.js create mode 100644 frontend/node_modules/postcss/lib/parser.js create mode 100644 frontend/node_modules/postcss/lib/postcss.d.mts create mode 100644 frontend/node_modules/postcss/lib/postcss.d.ts create mode 100644 frontend/node_modules/postcss/lib/postcss.js create mode 100644 frontend/node_modules/postcss/lib/postcss.mjs create mode 100644 frontend/node_modules/postcss/lib/previous-map.d.ts create mode 100644 frontend/node_modules/postcss/lib/previous-map.js create mode 100644 frontend/node_modules/postcss/lib/processor.d.ts create mode 100644 frontend/node_modules/postcss/lib/processor.js create mode 100644 frontend/node_modules/postcss/lib/result.d.ts create mode 100644 frontend/node_modules/postcss/lib/result.js create mode 100644 frontend/node_modules/postcss/lib/root.d.ts create mode 100644 frontend/node_modules/postcss/lib/root.js create mode 100644 frontend/node_modules/postcss/lib/rule.d.ts create mode 100644 frontend/node_modules/postcss/lib/rule.js create mode 100644 frontend/node_modules/postcss/lib/stringifier.d.ts create mode 100644 frontend/node_modules/postcss/lib/stringifier.js create mode 100644 frontend/node_modules/postcss/lib/stringify.d.ts create mode 100644 frontend/node_modules/postcss/lib/stringify.js create mode 100644 frontend/node_modules/postcss/lib/symbols.js create mode 100644 frontend/node_modules/postcss/lib/terminal-highlight.js create mode 100644 frontend/node_modules/postcss/lib/tokenize.js create mode 100644 frontend/node_modules/postcss/lib/warn-once.js create mode 100644 frontend/node_modules/postcss/lib/warning.d.ts create mode 100644 frontend/node_modules/postcss/lib/warning.js create mode 100644 frontend/node_modules/postcss/package.json create mode 100644 frontend/node_modules/rollup/LICENSE.md create mode 100644 frontend/node_modules/rollup/README.md create mode 100755 frontend/node_modules/rollup/dist/bin/rollup create mode 100644 frontend/node_modules/rollup/dist/es/getLogFilter.js create mode 100644 frontend/node_modules/rollup/dist/es/package.json create mode 100644 frontend/node_modules/rollup/dist/es/parseAst.js create mode 100644 frontend/node_modules/rollup/dist/es/rollup.js create mode 100644 frontend/node_modules/rollup/dist/es/shared/node-entry.js create mode 100644 frontend/node_modules/rollup/dist/es/shared/parseAst.js create mode 100644 frontend/node_modules/rollup/dist/es/shared/watch.js create mode 100644 frontend/node_modules/rollup/dist/getLogFilter.d.ts create mode 100644 frontend/node_modules/rollup/dist/getLogFilter.js create mode 100644 frontend/node_modules/rollup/dist/loadConfigFile.d.ts create mode 100644 frontend/node_modules/rollup/dist/loadConfigFile.js create mode 100644 frontend/node_modules/rollup/dist/native.js create mode 100644 frontend/node_modules/rollup/dist/parseAst.d.ts create mode 100644 frontend/node_modules/rollup/dist/parseAst.js create mode 100644 frontend/node_modules/rollup/dist/rollup.d.ts create mode 100644 frontend/node_modules/rollup/dist/rollup.js create mode 100644 frontend/node_modules/rollup/dist/shared/fsevents-importer.js create mode 100644 frontend/node_modules/rollup/dist/shared/index.js create mode 100644 frontend/node_modules/rollup/dist/shared/loadConfigFile.js create mode 100644 frontend/node_modules/rollup/dist/shared/parseAst.js create mode 100644 frontend/node_modules/rollup/dist/shared/rollup.js create mode 100644 frontend/node_modules/rollup/dist/shared/watch-cli.js create mode 100644 frontend/node_modules/rollup/dist/shared/watch.js create mode 100644 frontend/node_modules/rollup/package.json create mode 100644 frontend/node_modules/source-map-js/LICENSE create mode 100644 frontend/node_modules/source-map-js/README.md create mode 100644 frontend/node_modules/source-map-js/lib/array-set.js create mode 100644 frontend/node_modules/source-map-js/lib/base64-vlq.js create mode 100644 frontend/node_modules/source-map-js/lib/base64.js create mode 100644 frontend/node_modules/source-map-js/lib/binary-search.js create mode 100644 frontend/node_modules/source-map-js/lib/mapping-list.js create mode 100644 frontend/node_modules/source-map-js/lib/quick-sort.js create mode 100644 frontend/node_modules/source-map-js/lib/source-map-consumer.d.ts create mode 100644 frontend/node_modules/source-map-js/lib/source-map-consumer.js create mode 100644 frontend/node_modules/source-map-js/lib/source-map-generator.d.ts create mode 100644 frontend/node_modules/source-map-js/lib/source-map-generator.js create mode 100644 frontend/node_modules/source-map-js/lib/source-node.d.ts create mode 100644 frontend/node_modules/source-map-js/lib/source-node.js create mode 100644 frontend/node_modules/source-map-js/lib/util.js create mode 100644 frontend/node_modules/source-map-js/package.json create mode 100644 frontend/node_modules/source-map-js/source-map.d.ts create mode 100644 frontend/node_modules/source-map-js/source-map.js create mode 100644 frontend/node_modules/vite/LICENSE.md create mode 100644 frontend/node_modules/vite/README.md create mode 100644 frontend/node_modules/vite/bin/openChrome.applescript create mode 100755 frontend/node_modules/vite/bin/vite.js create mode 100644 frontend/node_modules/vite/client.d.ts create mode 100644 frontend/node_modules/vite/dist/client/client.mjs create mode 100644 frontend/node_modules/vite/dist/client/env.mjs create mode 100644 frontend/node_modules/vite/dist/node-cjs/publicUtils.cjs create mode 100644 frontend/node_modules/vite/dist/node/chunks/dep-BB45zftN.js create mode 100644 frontend/node_modules/vite/dist/node/chunks/dep-BK3b2jBa.js create mode 100644 frontend/node_modules/vite/dist/node/chunks/dep-D-7KCb9p.js create mode 100644 frontend/node_modules/vite/dist/node/chunks/dep-Dnp7gl8U.js create mode 100644 frontend/node_modules/vite/dist/node/chunks/dep-IQS-Za7F.js create mode 100644 frontend/node_modules/vite/dist/node/cli.js create mode 100644 frontend/node_modules/vite/dist/node/constants.js create mode 100644 frontend/node_modules/vite/dist/node/index.d.ts create mode 100644 frontend/node_modules/vite/dist/node/index.js create mode 100644 frontend/node_modules/vite/dist/node/runtime.d.ts create mode 100644 frontend/node_modules/vite/dist/node/runtime.js create mode 100644 frontend/node_modules/vite/dist/node/types.d-aGj9QkWt.d.ts create mode 100644 frontend/node_modules/vite/index.cjs create mode 100644 frontend/node_modules/vite/index.d.cts create mode 100644 frontend/node_modules/vite/package.json create mode 100644 frontend/node_modules/vite/types/customEvent.d.ts create mode 100644 frontend/node_modules/vite/types/hmrPayload.d.ts create mode 100644 frontend/node_modules/vite/types/hot.d.ts create mode 100644 frontend/node_modules/vite/types/import-meta.d.ts create mode 100644 frontend/node_modules/vite/types/importGlob.d.ts create mode 100644 frontend/node_modules/vite/types/importMeta.d.ts create mode 100644 frontend/node_modules/vite/types/metadata.d.ts create mode 100644 frontend/node_modules/vite/types/package.json create mode 100644 frontend/node_modules/vue/LICENSE create mode 100644 frontend/node_modules/vue/README.md create mode 100644 frontend/node_modules/vue/compiler-sfc/index.browser.js create mode 100644 frontend/node_modules/vue/compiler-sfc/index.browser.mjs create mode 100644 frontend/node_modules/vue/compiler-sfc/index.d.mts create mode 100644 frontend/node_modules/vue/compiler-sfc/index.d.ts create mode 100644 frontend/node_modules/vue/compiler-sfc/index.js create mode 100644 frontend/node_modules/vue/compiler-sfc/index.mjs create mode 100644 frontend/node_modules/vue/compiler-sfc/package.json create mode 100644 frontend/node_modules/vue/compiler-sfc/register-ts.js create mode 100644 frontend/node_modules/vue/dist/vue.cjs.js create mode 100644 frontend/node_modules/vue/dist/vue.cjs.prod.js create mode 100644 frontend/node_modules/vue/dist/vue.d.mts create mode 100644 frontend/node_modules/vue/dist/vue.d.ts create mode 100644 frontend/node_modules/vue/dist/vue.esm-browser.js create mode 100644 frontend/node_modules/vue/dist/vue.esm-browser.prod.js create mode 100644 frontend/node_modules/vue/dist/vue.esm-bundler.js create mode 100644 frontend/node_modules/vue/dist/vue.global.js create mode 100644 frontend/node_modules/vue/dist/vue.global.prod.js create mode 100644 frontend/node_modules/vue/dist/vue.runtime.esm-browser.js create mode 100644 frontend/node_modules/vue/dist/vue.runtime.esm-browser.prod.js create mode 100644 frontend/node_modules/vue/dist/vue.runtime.esm-bundler.js create mode 100644 frontend/node_modules/vue/dist/vue.runtime.global.js create mode 100644 frontend/node_modules/vue/dist/vue.runtime.global.prod.js create mode 100644 frontend/node_modules/vue/index.js create mode 100644 frontend/node_modules/vue/index.mjs create mode 100644 frontend/node_modules/vue/jsx-runtime/index.d.ts create mode 100644 frontend/node_modules/vue/jsx-runtime/index.js create mode 100644 frontend/node_modules/vue/jsx-runtime/index.mjs create mode 100644 frontend/node_modules/vue/jsx-runtime/package.json create mode 100644 frontend/node_modules/vue/jsx.d.ts create mode 100644 frontend/node_modules/vue/package.json create mode 100644 frontend/node_modules/vue/server-renderer/index.d.mts create mode 100644 frontend/node_modules/vue/server-renderer/index.d.ts create mode 100644 frontend/node_modules/vue/server-renderer/index.js create mode 100644 frontend/node_modules/vue/server-renderer/index.mjs create mode 100644 frontend/node_modules/vue/server-renderer/package.json create mode 100644 frontend/package-lock.json create mode 100644 frontend/package.json create mode 100644 frontend/src/main.js create mode 100644 frontend/vite.config.js create mode 100644 skillText.md diff --git a/.trae/skills/agent-browser/SKILL.md b/.trae/skills/agent-browser/SKILL.md new file mode 100644 index 0000000..a700fb7 --- /dev/null +++ b/.trae/skills/agent-browser/SKILL.md @@ -0,0 +1,96 @@ +--- +name: "agent-browser" +description: "브라우저 자동화 CLI를 사용해 웹사이트를 탐색하고 조작합니다. 페이지 이동, 폼 입력, 클릭, 스크린샷, 데이터 추출, 웹앱 테스트가 필요할 때 호출합니다." +--- + +# Agent Browser + +에이전트를 위한 빠른 브라우저 자동화 CLI 가이드입니다. 웹사이트 탐색, 폼 입력, 버튼 클릭, 스크린샷 촬영, 데이터 추출, 웹앱 테스트, 탐색적 QA 등에 사용합니다. + +## 언제 사용할지 + +다음과 같은 요청에서 우선 사용합니다. + +- 웹사이트를 열어 달라고 할 때 +- 폼을 입력하거나 버튼을 클릭해야 할 때 +- 페이지 스크린샷이 필요할 때 +- 웹페이지 데이터를 추출하거나 스크래핑할 때 +- 웹앱을 실제 브라우저에서 테스트할 때 +- 로그인, QA, 버그 재현, 탐색적 테스트가 필요할 때 + +Electron 기반 데스크톱 앱이나 Slack 자동화 같은 확장 작업에도 활용할 수 있습니다. + +## 시작 방법 + +`agent-browser` 명령을 바로 사용하기 전에, 설치된 버전에 맞는 실제 가이드를 CLI에서 불러옵니다. + +```bash +agent-browser skills get core +``` + +전체 명령과 템플릿까지 포함해 보고 싶다면: + +```bash +agent-browser skills get core --full +``` + +이 스킬 문서는 시작점 역할만 합니다. 실제 사용 절차와 최신 명령 형식은 항상 CLI가 제공하는 가이드를 기준으로 확인합니다. + +## 특수 가이드 + +작업 성격에 따라 아래 보조 가이드를 불러올 수 있습니다. + +- `agent-browser skills get electron` +- `agent-browser skills get slack` +- `agent-browser skills get dogfood` +- `agent-browser skills get vercel-sandbox` +- `agent-browser skills get agentcore` + +사용 가능한 전체 목록은 아래 명령으로 확인합니다. + +```bash +agent-browser skills list +``` + +## 기본 사용 흐름 + +1. 먼저 `agent-browser skills get core`로 현재 버전 가이드를 읽습니다. +2. 작업이 웹 브라우저인지, Electron인지, Slack인지 성격을 구분합니다. +3. 필요하면 해당 특수 가이드를 추가로 읽습니다. +4. 세션을 열고 탐색, 선택, 입력, 클릭, 추출 같은 실제 작업을 진행합니다. +5. 스크린샷, 상태 저장, 기록 기능이 필요하면 그 옵션을 함께 사용합니다. + +## 장점 + +- 빠른 네이티브 CLI 기반 동작 +- Chrome/Chromium 제어 +- 접근성 트리 기반 스냅샷과 안정적인 요소 참조 +- 세션 유지, 인증 저장, 상태 지속성 지원 +- 영상 기록 및 다양한 특수 자동화 시나리오 지원 + +## 운영 원칙 + +- 내장 웹 도구보다 `agent-browser`가 더 적합한 작업이면 이를 우선 사용합니다. +- 현재 설치된 버전의 CLI가 제공하는 가이드를 기준으로 작업합니다. +- 오래된 문서 기억보다, 실행 중인 버전의 `skills get` 결과를 신뢰합니다. + +## 언제 특히 유용한가 + +- 실제 브라우저 상호작용이 길거나 반복적일 때 +- 접근성 트리 기준의 안정적인 요소 선택이 필요할 때 +- 상태 지속, 인증, 녹화, 세션 관리가 중요한 테스트일 때 +- 단순 스크래핑이 아니라 탐색적 QA나 실제 사용자 흐름 재현이 필요할 때 + +## 안티 패턴 + +- 설치된 버전을 확인하지 않고 예전 명령 기억으로 바로 실행하는 방식 +- 일반 웹 도구로 충분한 작업인데 굳이 복잡한 세션을 여는 방식 +- 작업 성격이 특수 가이드 대상인데 core만 읽고 끝내는 방식 + +## 기대 결과 + +이 스킬을 적용한 결과는 다음을 만족해야 합니다. + +- 현재 설치된 버전 기준으로 정확한 사용 절차를 따른다 +- 작업 유형에 맞는 특수 가이드를 선택한다 +- 브라우저 자동화가 실제 목표에 맞게 안정적으로 수행된다 diff --git a/.trae/skills/brainstorming/SKILL.md b/.trae/skills/brainstorming/SKILL.md new file mode 100644 index 0000000..4e38bda --- /dev/null +++ b/.trae/skills/brainstorming/SKILL.md @@ -0,0 +1,191 @@ +--- +name: "brainstorming" +description: "구현 전에 아이디어를 질문과 설계안으로 구체화합니다. 기능 추가, 동작 변경, 신규 개발처럼 창의적 작업을 시작하기 전에 반드시 호출합니다." +--- + +# 아이디어를 설계로 구체화하기 + +자연스러운 협업형 대화를 통해 아이디어를 완성도 높은 설계와 명세로 바꿉니다. + +먼저 현재 프로젝트 문맥을 이해한 뒤, 질문을 한 번에 하나씩 하면서 아이디어를 구체화합니다. 무엇을 만들지 충분히 이해했다면 설계를 제시하고 사용자 승인을 받습니다. + + +설계를 제시하고 사용자 승인을 받기 전까지는 구현 스킬 호출, 코드 작성, 프로젝트 스캐폴딩, 기타 구현 행동을 해서는 안 됩니다. 이 규칙은 작업이 얼마나 단순해 보이든 항상 적용됩니다. + + +## 안티 패턴: "이건 너무 단순해서 설계가 필요 없다" + +모든 작업은 이 과정을 거쳐야 합니다. 할 일 목록, 단일 함수 유틸리티, 설정 변경도 예외가 아닙니다. "단순한" 작업일수록 검증되지 않은 가정 때문에 불필요한 재작업이 생기기 쉽습니다. 설계는 짧아도 되지만, 반드시 제시하고 승인을 받아야 합니다. + +## 체크리스트 + +아래 항목별로 작업을 만들고, 순서대로 완료해야 합니다. + +1. **프로젝트 문맥 탐색** - 파일, 문서, 최근 커밋 확인 +2. **시각 보조 도구 제안** - 시각적 질문이 예상되면 별도 메시지로 제안 +3. **명확화 질문 진행** - 한 번에 하나씩 질문하며 목적, 제약, 성공 기준 파악 +4. **2~3개 접근법 제안** - 트레이드오프와 추천안 포함 +5. **설계 제시** - 복잡도에 맞춰 섹션별로 설명하고 승인 받기 +6. **설계 문서 작성** - `docs/superpowers/specs/YYYY-MM-DD--design.md`에 저장 +7. **명세 자체 점검** - placeholder, 모순, 모호성, 범위 확인 +8. **사용자 문서 검토** - 구현 전 설계 문서 검토 요청 +9. **구현 단계 전환** - 다음 단계로 `writing-plans` 스킬 호출 + +## 프로세스 흐름 + +기본 흐름은 아래와 같습니다. + +1. 현재 프로젝트 문맥을 탐색합니다. +2. 필요한 경우 시각 보조 도구를 별도 메시지로 제안합니다. +3. 질문을 한 번에 하나씩 하며 요구를 구체화합니다. +4. 2~3개의 접근법을 비교하고 추천안을 제시합니다. +5. 설계를 섹션 단위로 설명하며 단계적으로 승인을 받습니다. +6. 승인된 설계를 문서로 저장합니다. +7. 문서를 스스로 점검해 빈칸, 모순, 모호함을 제거합니다. +8. 사용자에게 문서 검토를 요청합니다. +9. 승인이 끝나면 다음 단계로 `writing-plans`를 호출합니다. + +## 프로세스 + +**아이디어 이해** + +- 먼저 현재 프로젝트 상태를 확인합니다. +- 요청이 여러 독립 하위 시스템을 포함하면, 세부 질문 전에 먼저 분해가 필요한지 판단합니다. +- 하나의 명세로 다루기 너무 크다면 하위 프로젝트로 나누고, 첫 번째 하위 프로젝트만 일반 설계 흐름으로 진행합니다. +- 적절한 범위라면 질문을 한 번에 하나씩 하며 구체화합니다. +- 가능하면 객관식 질문을 우선 사용하되, 필요하면 서술형도 사용합니다. +- 각 메시지에는 질문 하나만 포함합니다. +- 목적, 제약 조건, 성공 기준을 이해하는 데 집중합니다. +- 너무 일찍 구현 방향으로 뛰어들지 말고, 범위와 기대 결과를 먼저 고정합니다. +- "간단해 보인다"는 이유로 질문 단계를 생략하지 않습니다. + +**접근법 탐색** + +- 서로 다른 2~3개의 접근법을 제안합니다. +- 각 접근법의 장단점과 추천 이유를 함께 설명합니다. +- 추천안을 먼저 제시하고, 왜 그 선택이 적합한지 설명합니다. +- 접근법은 기능 관점뿐 아니라 유지보수, 테스트 용이성, 사용자 경험까지 함께 비교합니다. + +**설계 제시** + +- 무엇을 만들지 충분히 이해했다면 설계를 제시합니다. +- 각 섹션은 복잡도에 맞게 짧게 또는 자세히 설명합니다. +- 각 섹션 뒤에는 지금까지 맞는지 확인을 요청합니다. +- 아키텍처, 구성요소, 데이터 흐름, 오류 처리, 테스트를 다룹니다. +- 이해되지 않는 부분이 있으면 다시 질문하고 명확히 합니다. +- 한 번에 모든 내용을 밀어 넣기보다, 사용자가 따라올 수 있는 단위로 나눠 검증합니다. + +**격리와 명확성을 고려한 설계** + +- 시스템을 명확한 목적을 가진 작은 단위로 나눕니다. +- 각 단위는 잘 정의된 인터페이스로 통신하고, 독립적으로 이해 및 테스트 가능해야 합니다. +- 각 단위에 대해 "무엇을 하는가, 어떻게 사용하는가, 무엇에 의존하는가"를 설명할 수 있어야 합니다. +- 내부 구현을 몰라도 역할을 이해할 수 있어야 하며, 내부를 바꿔도 소비자가 깨지지 않아야 합니다. +- 파일이 지나치게 커지면 책임이 과도하게 섞였다는 신호로 봅니다. + +**기존 코드베이스에서 작업할 때** + +- 변경 제안 전에 현재 구조와 패턴을 먼저 탐색합니다. +- 현재 작업에 영향을 주는 구조적 문제는 설계에 포함해 개선할 수 있습니다. +- 현재 목표와 무관한 리팩터링은 제안하지 않습니다. + +## 설계 제시 규칙 + +- 섹션별로 끊어서 설명하고, 각 섹션 뒤에 확인을 받습니다. +- 설계는 복잡도에 맞춰 짧게 또는 자세히 조절합니다. +- 구조, 데이터 흐름, 오류 처리, 테스트 전략을 빠뜨리지 않습니다. +- 사용자가 "지금까지 맞다"고 확인하기 전까지 다음 단계로 밀어붙이지 않습니다. + +## 금지 사항 + +- 설계 승인 전에 구현 스킬 호출 +- 설계 승인 전에 코드 작성 +- 질문 여러 개를 한 번에 던지는 방식 +- 대안 비교 없이 단일 해법만 제시하는 방식 +- 현재 목표와 무관한 대형 리팩터링 제안 +- 사용자 검토 없이 바로 구현 계획 또는 구현으로 넘어가는 방식 + +## 설계 후 단계 + +**문서화** + +- 승인된 설계를 `docs/superpowers/specs/YYYY-MM-DD--design.md`에 작성합니다. +- 사용자가 다른 문서 위치를 선호하면 그 경로를 우선합니다. +- 가능하면 명확하고 간결한 문체를 유지합니다. + +**명세 자체 점검** + +설계 문서를 작성한 뒤 아래 항목을 빠르게 확인합니다. + +1. **Placeholder 점검** - `TBD`, `TODO`, 미완성 섹션, 모호한 요구사항이 있는지 확인 +2. **내부 일관성 점검** - 섹션끼리 모순되지 않는지 확인 +3. **범위 점검** - 단일 구현 계획으로 충분한 범위인지 확인 +4. **모호성 점검** - 여러 해석이 가능한 요구사항을 하나로 명확히 고정 + +문제가 있으면 문서 안에서 바로 수정하고 진행합니다. + +**사용자 검토 게이트** + +설계 검토가 끝나면, 구현 계획으로 넘어가기 전에 사용자에게 작성된 명세 문서를 검토해 달라고 요청합니다. + +예시 문구: + +> 명세를 `` 에 작성했습니다. 구현 계획을 쓰기 전에 변경하고 싶은 점이 있는지 검토해 주세요. + +사용자가 승인할 때까지 기다립니다. 변경 요청이 있으면 수정하고 다시 점검합니다. + +**구현 전환** + +- 다음 단계에서는 `writing-plans` 스킬을 호출합니다. +- 다른 구현 스킬을 먼저 호출하지 않습니다. + +## 기대 결과 + +이 스킬의 결과물은 다음을 만족해야 합니다. + +- 사용자 의도가 구조화된 설계 문장으로 정리되어 있어야 합니다. +- 구현 전에 범위와 성공 기준이 합의되어 있어야 합니다. +- 설계 문서만 읽어도 다음 단계에서 무엇을 구현할지 알 수 있어야 합니다. +- 설계 문서는 placeholder 없이 구체적이어야 합니다. + +## 핵심 원칙 + +- **한 번에 한 질문** - 여러 질문을 한꺼번에 던지지 않습니다. +- **객관식 우선** - 답하기 쉬운 형식을 우선합니다. +- **YAGNI 준수** - 불필요한 기능은 설계에서 제거합니다. +- **대안 비교** - 항상 2~3개의 접근법을 제시합니다. +- **점진적 검증** - 설계를 제시하고 승인받은 뒤 다음으로 진행합니다. +- **유연한 명확화** - 이해가 부족하면 다시 질문합니다. + +## 안티 패턴 신호 + +다음 생각이 들면 흐름을 다시 점검합니다. + +- 이건 너무 간단해서 설계가 필요 없다 +- 구현하면서 알아가도 된다 +- 사용자 의도는 아마 이럴 것이다 +- 설계 문서는 나중에 써도 된다 +- 구현 스킬부터 불러도 큰 문제는 없다 + +이런 생각은 대부분 브레인스토밍 단계를 건너뛰려는 신호입니다. + +## 시각 보조 도구 + +목업, 다이어그램, 시각 옵션을 보여주는 브라우저 기반 보조 수단입니다. 이는 별도 모드가 아니라 필요할 때 사용하는 도구입니다. + +**제안 시점** + +앞으로의 질문이 시각 요소를 포함할 가능성이 높다면, 아래 문구를 반드시 **단독 메시지**로 제안합니다. + +> 지금 논의하는 내용 중 일부는 웹 브라우저에서 직접 보여드리면 더 이해하기 쉬울 수 있습니다. 진행하면서 목업, 다이어그램, 비교안 같은 시각 자료를 준비할 수 있습니다. 아직 새 기능이라 토큰 사용량이 많을 수 있는데, 사용해 보시겠어요? (로컬 URL 열기 필요) + +이 제안 메시지에는 다른 질문, 요약, 설명을 섞지 않습니다. 사용자의 답변을 기다린 뒤 계속 진행합니다. + +**질문별 판단** + +사용자가 수락했더라도 모든 질문을 브라우저로 처리하지는 않습니다. 매 질문마다 "읽는 것보다 보는 것이 더 이해하기 쉬운가?"를 기준으로 판단합니다. + +- 브라우저 사용: 목업, 와이어프레임, 레이아웃 비교, 아키텍처 다이어그램 같은 시각 중심 내용 +- 터미널 사용: 요구사항 질문, 개념적 선택지, 트레이드오프 설명, 범위 결정 같은 텍스트 중심 내용 + +자세한 사용법은 [visual-companion.md](./visual-companion.md)를 참고합니다. diff --git a/.trae/skills/brainstorming/visual-companion.md b/.trae/skills/brainstorming/visual-companion.md new file mode 100644 index 0000000..2909910 --- /dev/null +++ b/.trae/skills/brainstorming/visual-companion.md @@ -0,0 +1,68 @@ +# 시각 보조 도구 가이드 + +브레인스토밍 중 목업, 다이어그램, 비교안을 보여주기 위한 브라우저 기반 시각 보조 가이드입니다. + +## 언제 사용할지 + +세션 단위가 아니라 질문 단위로 판단합니다. 기준은 하나입니다. **읽는 것보다 보는 것이 더 이해하기 쉬운가?** + +**브라우저를 사용할 때** + +- UI 목업, 와이어프레임, 레이아웃, 내비게이션 구조 +- 시스템 구성도, 데이터 흐름도, 관계도 +- 레이아웃이나 스타일의 시각적 비교 +- 간격, 시각적 위계, 분위기 같은 디자인 완성도 논의 +- 상태 전이, 흐름도, 엔터티 관계처럼 공간적 관계가 중요한 설명 + +**터미널을 사용할 때** + +- 요구사항과 범위 질문 +- 개념적 A/B/C 선택 +- 장단점 비교와 트레이드오프 정리 +- API 설계, 데이터 모델링, 구조 선택 같은 기술 의사결정 +- 시각 취향이 아니라 언어 설명이 필요한 명확화 질문 + +UI 주제에 대한 질문이라고 해서 자동으로 시각 질문이 되는 것은 아닙니다. "어떤 종류의 위저드를 원하나요?"는 개념 질문이고, "이 위저드 레이아웃 중 무엇이 더 맞나요?"는 시각 질문입니다. + +## 진행 방식 + +서버는 HTML 파일이 저장되는 디렉터리를 감시하고 가장 최근 파일을 브라우저에 제공합니다. 화면 내용은 `screen_dir`에 기록하고, 사용자의 클릭/선택 결과는 `state_dir/events`에 저장됩니다. + +**콘텐츠 조각과 전체 문서** + +- HTML이 `` - GitHub 등에서 스킬 설치 +- `npx skills check` - 업데이트 확인 +- `npx skills update` - 설치된 스킬 업데이트 + +브라우징 사이트: + +- `https://skills.sh/` + +## 추천 절차 + +### 1. 요구사항 이해 + +- 도메인이 무엇인지 파악합니다. +- 실제로 하고 싶은 작업이 무엇인지 파악합니다. +- 흔한 문제인지, 이미 스킬이 있을 가능성이 높은지 판단합니다. +- 검색 전에 사용자가 원하는 것이 "기능", "워크플로", "템플릿", "도메인 지식" 중 무엇인지 구분합니다. + +### 2. 먼저 인기 스킬 확인 + +- 검색 전에 leaderboard나 인기 목록에서 검증된 스킬이 있는지 먼저 봅니다. +- 설치 수가 많고 널리 알려진 출처를 우선합니다. + +### 3. 검색 + +필요하면 아래 명령으로 검색합니다. + +```bash +npx skills find [query] +``` + +예: + +- React 성능 최적화 -> `npx skills find react performance` +- PR 리뷰 -> `npx skills find pr review` +- changelog 생성 -> `npx skills find changelog` + +### 4. 품질 검증 + +검색 결과만 보고 바로 추천하지 않습니다. 아래를 반드시 확인합니다. + +- 설치 수 +- 출처 신뢰도 +- GitHub 저장소 평판 + +가능하면 공식 또는 널리 알려진 조직의 스킬을 우선합니다. + +추가로 아래도 함께 봅니다. + +- 최근에도 관리되고 있는지 +- 설명이 실제 사용 시점을 명확히 말하는지 +- 사용자가 원하는 작업과 과하게 어긋나지 않는지 + +### 5. 사용자에게 제시 + +다음 정보를 함께 제공합니다. + +- 스킬 이름과 역할 +- 설치 수와 출처 +- 설치 명령 +- 더 알아볼 링크 + +### 6. 설치 제안 + +사용자가 원하면 설치까지 진행할 수 있습니다. + +```bash +npx skills add -g -y +``` + +## 검색 절차 요약 + +1. 사용자가 하려는 일을 짧게 재정의합니다. +2. 인기 스킬에서 먼저 후보를 봅니다. +3. 부족하면 `npx skills find`로 구체 검색을 합니다. +4. 검색 결과를 설치 수와 출처 기준으로 걸러냅니다. +5. 사용자에게 1~3개 정도의 실질적인 후보를 제시합니다. +6. 원하면 설치까지 이어집니다. + +## 검색 팁 + +- 너무 넓은 키워드보다 구체적인 키워드를 사용합니다. +- 검색 결과가 약하면 동의어를 바꿔가며 다시 찾습니다. +- 테스트, 디자인, 문서화, 배포, 코드리뷰, 생산성 같은 범주를 기준으로 접근합니다. + +## 추천 시 주의점 + +- 검색 결과만 나왔다고 바로 추천하지 않습니다. +- 설치 수가 지나치게 적고 출처가 불분명하면 주의 표시를 합니다. +- 사용자가 당장 원하는 문제를 일반 역량으로 더 빨리 해결할 수 있다면 그 점도 함께 안내합니다. + +## 찾지 못했을 때 + +적절한 스킬이 없다면 다음 원칙을 따릅니다. + +- 스킬을 찾지 못했다고 명확히 알립니다. +- 일반 역량으로 직접 도와줄 수 있다고 제안합니다. +- 반복 작업이라면 새 스킬을 직접 만들 수 있다고 안내합니다. + +## 기대 결과 + +이 스킬의 결과물은 다음을 만족해야 합니다. + +- 사용자가 어떤 스킬을 왜 추천받았는지 이해할 수 있어야 합니다. +- 추천 스킬은 최소한의 품질 검증을 통과해야 합니다. +- 설치 명령과 더 알아볼 경로가 함께 제공되어야 합니다. +- 적절한 스킬이 없을 경우에도 다음 행동이 제시되어야 합니다. diff --git a/.trae/skills/frontend-design/SKILL.md b/.trae/skills/frontend-design/SKILL.md new file mode 100644 index 0000000..bf6e52e --- /dev/null +++ b/.trae/skills/frontend-design/SKILL.md @@ -0,0 +1,97 @@ +--- +name: "frontend-design" +description: "개성 있고 완성도 높은 프론트엔드 UI를 설계하고 구현합니다. 웹 페이지, 컴포넌트, 대시보드, 랜딩페이지, 스타일 개선 요청이 있을 때 호출합니다." +--- + +# 개성 있는 프로덕션급 프론트엔드 디자인 + +이 스킬은 흔한 "AI가 만든 티 나는" 결과물을 피하고, 높은 디자인 완성도를 가진 프론트엔드 인터페이스를 만들기 위한 가이드입니다. 미학적 디테일과 창의적 선택에 집중하면서 실제로 동작하는 코드를 구현합니다. + +사용자는 컴포넌트, 페이지, 애플리케이션, 포스터, 웹 인터페이스 등의 프론트엔드 요구사항을 제공합니다. 여기에는 목적, 대상 사용자, 기술 제약이 함께 포함될 수 있습니다. + +## 디자인 사고 + +코드를 작성하기 전에 문맥을 이해하고, 분명하고 대담한 미학 방향을 먼저 정합니다. + +- **목적** - 이 인터페이스가 해결하는 문제는 무엇인지, 누가 사용하는지 파악합니다. +- **톤** - 극단적인 방향성을 고릅니다. 예: 극단적 미니멀리즘, 맥시멀리즘, 레트로 퓨처리즘, 유기적/자연주의, 고급/정제, 장난감 같은 유쾌함, 에디토리얼/매거진, 브루탈리즘, 아르데코, 소프트/파스텔, 산업적/실용주의 등 +- **제약** - 프레임워크, 성능, 접근성 같은 기술 조건을 확인합니다. +- **차별점** - 이 결과물을 잊히지 않게 만드는 핵심 한 가지가 무엇인지 정의합니다. + +**중요**: 개념적 방향을 명확히 정하고 정밀하게 실행해야 합니다. 대담한 맥시멀리즘이든 정제된 미니멀리즘이든 모두 가능하지만, 핵심은 강도가 아니라 의도성입니다. + +방향을 정할 때는 "멋있어 보이는 것"만이 아니라 "왜 이 제품과 맥락에 맞는가"까지 설명할 수 있어야 합니다. + +그 다음, HTML/CSS/JS, React, Vue 등 적절한 기술로 아래 기준을 만족하는 실제 동작 코드를 구현합니다. + +- 프로덕션 수준의 완성도와 기능성 +- 시각적으로 강렬하고 기억에 남는 결과 +- 일관된 미학 관점 +- 세부까지 정교하게 다듬어진 표현 + +## 프론트엔드 미학 가이드라인 + +다음 요소에 집중합니다. + +- **타이포그래피** - 아름답고, 독특하고, 흥미로운 폰트를 선택합니다. Arial, Inter 같은 너무 흔한 폰트는 피합니다. 개성 있는 디스플레이 폰트와 정제된 본문 폰트를 조합합니다. +- **색상과 테마** - 일관된 미학 방향에 확실히 맞춥니다. CSS 변수로 일관성을 유지합니다. 소심하게 균등 분배된 색상보다, 지배적인 메인 컬러와 날카로운 포인트 컬러가 더 강한 인상을 줍니다. +- **모션** - 애니메이션과 마이크로 인터랙션을 활용합니다. HTML에서는 가능하면 CSS 중심으로 해결하고, React에서는 Motion 계열 라이브러리를 활용할 수 있습니다. 페이지 로드 연출, 스태거드 리빌, 스크롤 트리거, 의외성 있는 호버 상태처럼 임팩트 있는 순간에 집중합니다. +- **공간 구성** - 예상 가능한 배치보다 비대칭, 겹침, 대각선 흐름, 그리드를 깨는 요소, 넉넉한 여백 또는 의도된 밀도를 적극 활용합니다. +- **배경과 시각 디테일** - 단색 배경으로 끝내지 말고 분위기와 깊이를 만듭니다. 그래디언트 메시, 노이즈 텍스처, 기하학 패턴, 레이어 투명도, 강한 그림자, 장식 테두리, 커스텀 커서, 그레인 오버레이 등 맥락에 맞는 효과를 활용합니다. +- **맥락 적합성** - 금융, 의료, 패션, 교육처럼 도메인별 기대치를 반영합니다. 시각적으로 강하더라도 제품 신뢰를 해치면 실패입니다. +- **디테일 완성도** - 버튼 상태, 입력 포커스, 빈 상태, 에러 상태, 로딩 상태까지 같은 미학 언어로 정리합니다. + +## 반드시 피할 것 + +다음과 같은 흔한 AI 스타일은 사용하지 않습니다. + +- Inter, Roboto, Arial, 시스템 폰트에 과도하게 의존하는 구성 +- 흰 배경 위 보라색 그라데이션 같은 진부한 색 조합 +- 너무 예측 가능한 레이아웃과 컴포넌트 패턴 +- 맥락 고유성이 없는 쿠키커터식 디자인 + +항상 맥락에 맞게 창의적으로 해석하고, 예상 밖이지만 설득력 있는 선택을 합니다. 모든 디자인은 서로 달라야 하며, 결과물마다 라이트/다크 테마, 폰트, 분위기, 스타일이 달라질 수 있어야 합니다. 여러 세대의 결과물이 공통된 안전한 선택으로 수렴해서는 안 됩니다. + +다음 같은 패턴도 피합니다. + +- 의미 없는 화려함만 있고 정보 위계가 약한 구성 +- 디자인 방향 없이 라이브러리 기본 스타일만 얹은 화면 +- 모든 요소에 같은 그림자, 같은 반경, 같은 간격을 기계적으로 적용한 화면 +- 제품 목적보다 Dribbble식 비주얼 과시에 치우친 화면 + +## 구현 복잡도와 미학의 일치 + +구현 복잡도는 미학 방향과 맞아야 합니다. + +- 맥시멀한 디자인이라면 풍부한 애니메이션, 시각 효과, 정교한 레이어링이 필요할 수 있습니다. +- 미니멀하거나 정제된 디자인이라면 절제, 정밀한 간격, 타이포그래피, 미묘한 디테일에 집중해야 합니다. + +우아함은 단순함 자체가 아니라, 선택한 비전을 얼마나 정확하게 실행했는지에서 나옵니다. + +## 작업 절차 + +이 스킬을 적용할 때는 보통 아래 순서를 따릅니다. + +1. 제품 맥락과 사용자층을 확인합니다. +2. 대담한 미학 방향을 한 문장으로 정의합니다. +3. 색상, 폰트, 레이아웃, 모션 원칙을 결정합니다. +4. 그 방향에 맞는 실제 UI를 구현합니다. +5. 상태 변화, 반응형, 접근성, 디테일 완성도를 점검합니다. + +## 산출물 기대치 + +최종 결과물은 다음을 만족해야 합니다. + +- 실제로 동작하는 코드여야 합니다. +- 디자인 방향이 한눈에 읽혀야 합니다. +- 타이포그래피와 색상 시스템이 의도적으로 구성되어야 합니다. +- 상태 변화와 미세 상호작용까지 마감되어야 합니다. +- 흔한 AI 스타일이 아니라, 맥락에 맞는 인상적인 화면이어야 합니다. + +## 핵심 원칙 + +- 프론트엔드 결과물은 항상 실제로 동작해야 합니다. +- 미학 방향은 분명해야 하며, 애매한 절충안으로 흐르지 않습니다. +- 흔한 AI 스타일 대신 맥락에 맞는 독창성을 우선합니다. +- 디테일, 간격, 타이포그래피, 모션, 색상 일관성을 끝까지 다듬습니다. +- 과감한 선택을 두려워하지 말고, 명확한 방향성을 완성도 있게 구현합니다. diff --git a/.trae/skills/karpathy-guidelines/SKILL.md b/.trae/skills/karpathy-guidelines/SKILL.md new file mode 100644 index 0000000..b469189 --- /dev/null +++ b/.trae/skills/karpathy-guidelines/SKILL.md @@ -0,0 +1,90 @@ +--- +name: "karpathy-guidelines" +description: "LLM 코딩 실수를 줄이는 행동 지침입니다. 코드 작성, 리뷰, 리팩터링 시 과설계와 과추정을 줄이고 검증 가능한 목표를 세워야 할 때 호출합니다." +--- + +# Karpathy 가이드라인 + +이 스킬은 LLM이 코드 작업에서 자주 하는 실수를 줄이기 위한 행동 규칙입니다. 속도보다 신중함을 약간 더 우선합니다. + +사소한 작업에서는 판단의 여지가 있지만, 코드 작성, 리뷰, 리팩터링처럼 실수가 누적되기 쉬운 작업에서는 이 규칙을 기본 행동으로 삼습니다. + +## 1. 코딩 전에 먼저 생각하기 + +- 추정하지 않습니다. +- 헷갈리는 점을 숨기지 않습니다. +- 가정을 명시적으로 드러냅니다. +- 해석이 여러 가지면 조용히 하나를 고르지 말고 선택지를 보여줍니다. +- 더 단순한 방법이 있으면 먼저 제안합니다. +- 불명확하면 멈추고 무엇이 불명확한지 말합니다. + +핵심은 "모르는 상태에서 자신감 있게 진행하지 않는 것"입니다. + +## 2. 단순함 우선 + +문제를 해결하는 최소한의 코드만 작성합니다. + +- 요청하지 않은 기능은 넣지 않습니다. +- 한 번만 쓰는 코드에 추상화를 만들지 않습니다. +- 요구되지 않은 유연성이나 설정 가능성은 추가하지 않습니다. +- 실제로 불가능한 시나리오까지 과한 예외 처리를 만들지 않습니다. +- 200줄이 50줄로 될 수 있다면 다시 단순화합니다. + +항상 스스로 묻습니다. "시니어 엔지니어가 이걸 과하다고 말하지 않을까?" + +단순함은 기능 부족이 아니라, 요구에 정확히 맞는 최소 해법을 의미합니다. + +## 3. 수술하듯 수정하기 + +필요한 부분만 건드리고, 내 변경으로 생긴 부산물만 정리합니다. + +- 인접 코드, 주석, 포맷을 괜히 손보지 않습니다. +- 고장 나지 않은 부분을 리팩터링하지 않습니다. +- 기존 스타일을 따릅니다. +- 내 변경 때문에 쓰이지 않게 된 import, 변수, 함수만 제거합니다. +- 원래부터 있던 죽은 코드는 함부로 지우지 않고 필요하면 언급만 합니다. + +모든 변경 줄은 사용자 요청과 직접 연결되어야 합니다. + +관련 없는 개선 욕구는 분리해야 합니다. 지금 작업의 일부가 아니라면 메모만 하고 건드리지 않습니다. + +## 4. 목표 기반 실행 + +작업은 검증 가능한 목표로 바꿉니다. + +- 유효성 검사 추가 -> 잘못된 입력 테스트를 쓰고 통과시킨다 +- 버그 수정 -> 재현 테스트를 만들고 통과시킨다 +- 리팩터링 -> 변경 전후 테스트가 모두 통과하는지 확인한다 + +여러 단계 작업이라면 짧은 계획과 검증 기준을 함께 둡니다. + +예: + +1. 단계 수행 -> 어떤 체크로 검증할지 명시 +2. 다음 단계 수행 -> 어떤 체크로 검증할지 명시 +3. 최종 검증 -> 통과 조건 명시 + +강한 성공 기준이 있을수록 중간 판단을 줄일 수 있고, 사용자의 재확인 없이도 정확하게 루프를 돌 수 있습니다. + +## 자주 막아야 할 실수 + +- 애매한 요구를 임의로 해석해 구현해 버리는 것 +- 한 번만 쓸 로직에 구조를 과하게 씌우는 것 +- 요청과 직접 관련 없는 주변 코드까지 손대는 것 +- "작동하면 됐다" 수준으로 검증 없이 마무리하는 것 + +## 기대 결과 + +이 스킬을 적용한 결과는 다음을 만족해야 합니다. + +- 가정이 숨겨지지 않는다 +- 코드가 필요한 만큼만 단순하다 +- 변경 범위가 요청과 정확히 맞닿아 있다 +- 성공 기준이 검증 가능한 문장으로 바뀌어 있다 + +## 핵심 요약 + +- 먼저 생각하고, 모르면 묻습니다. +- 최소 코드로 끝냅니다. +- 꼭 필요한 줄만 바꿉니다. +- 검증 가능한 성공 기준을 세웁니다. diff --git a/.trae/skills/systematic-debugging/SKILL.md b/.trae/skills/systematic-debugging/SKILL.md new file mode 100644 index 0000000..94851c1 --- /dev/null +++ b/.trae/skills/systematic-debugging/SKILL.md @@ -0,0 +1,130 @@ +--- +name: "systematic-debugging" +description: "버그, 테스트 실패, 예기치 않은 동작을 체계적으로 진단합니다. 수정안을 제시하기 전에 반드시 근본 원인을 먼저 찾아야 할 때 호출합니다." +--- + +# 체계적 디버깅 + +무작위 수정은 시간을 낭비하고 새 버그를 만듭니다. 빠른 땜질은 증상만 가릴 뿐입니다. 이 스킬의 핵심은 **수정 전에 반드시 근본 원인을 찾는 것**입니다. + +## 철칙 + +근본 원인 조사 없이 수정하지 않습니다. + +다시 말해, 1단계를 끝내지 않았다면 수정안 제시는 아직 허용되지 않습니다. + +## 언제 사용할지 + +다음과 같은 모든 기술 문제에서 사용합니다. + +- 테스트 실패 +- 운영 중 버그 +- 예기치 않은 동작 +- 성능 문제 +- 빌드 실패 +- 통합 문제 + +특히 아래 상황에서 반드시 사용합니다. + +- 시간이 촉박할 때 +- "일단 이것만 빨리 고치면 될 것 같을 때" +- 이미 여러 수정안을 시도했을 때 +- 이전 수정이 실패했을 때 +- 문제를 완전히 이해하지 못한 상태일 때 + +다음 상황에서도 생략하지 않습니다. + +- 문제가 너무 단순해 보일 때 +- 급하게 고쳐 달라는 압박이 있을 때 +- 지금 보이는 증상만 없애면 될 것처럼 느껴질 때 + +## 4단계 프로세스 + +### 1단계: 근본 원인 조사 + +수정 전에 반드시 아래를 수행합니다. + +- 오류 메시지, 경고, 스택 트레이스를 끝까지 읽습니다. +- 재현 절차를 명확히 만들고, 반복 재현 가능한지 확인합니다. +- 최근 변경 사항, 설정 차이, 의존성 변경, 환경 차이를 확인합니다. +- 다중 컴포넌트 시스템이라면 경계마다 로그와 계측을 추가해 어디서 깨지는지 증거를 모읍니다. +- 호출 스택이 깊다면 잘못된 값이 어디서 시작됐는지 거꾸로 추적합니다. +- 재현이 안정적이지 않다면, 추측 대신 로그와 관찰 지점을 늘립니다. +- 레이어가 여러 개인 시스템이라면 각 경계에서 입력, 출력, 상태 전파를 확인합니다. + +### 2단계: 패턴 분석 + +- 같은 코드베이스에서 정상 동작하는 유사 사례를 찾습니다. +- 참조 구현이 있다면 끝까지 읽고 패턴을 정확히 이해합니다. +- 정상 사례와 문제 사례의 차이를 작은 것까지 모두 나열합니다. +- 필요한 설정, 환경, 전제 조건을 파악합니다. +- "이 정도 차이는 중요하지 않겠지"라고 넘기지 않습니다. + +### 3단계: 가설과 검증 + +- "원인은 X이며 이유는 Y다"라는 단일 가설을 명확히 적습니다. +- 가설을 검증할 수 있는 최소 변경만 적용합니다. +- 한 번에 변수 하나만 바꿉니다. +- 실패하면 수정안을 겹쳐 쌓지 말고 새 가설로 돌아갑니다. +- 모르는 것은 모른다고 인정하고 추가 조사 또는 도움 요청을 합니다. + +이 단계의 핵심은 과학적 방법입니다. + +- 한 번에 하나의 가설만 세웁니다. +- 한 번에 하나의 변수만 바꿉니다. +- 실패하면 더 많은 수정으로 덮지 않고, 얻은 새 증거를 바탕으로 다시 분석합니다. + +### 4단계: 구현 + +- 먼저 실패하는 테스트나 최소 재현 케이스를 만듭니다. +- 확인된 근본 원인만 겨냥해 한 번에 한 수정만 적용합니다. +- 테스트가 통과하는지, 다른 것이 깨지지 않았는지 검증합니다. +- 수정이 실패하면 즉시 멈추고 다시 1단계로 돌아갑니다. +- 세 번 이상 실패했다면 개별 버그가 아니라 구조적 문제일 가능성을 의심합니다. + +세 번 이상 수정이 연속 실패했다면 아래를 질문합니다. + +- 우리가 증상을 계속 쫓고 있지는 않은가 +- 현재 구조 자체가 문제를 유발하고 있지는 않은가 +- 고칠 문제가 아니라 패턴을 바꿔야 하는 상황은 아닌가 + +## 중단 신호 + +다음 생각이 들면 멈추고 다시 1단계로 돌아갑니다. + +- 일단 빨리 고치고 나중에 조사하자 +- X를 바꿔보면 될 것 같다 +- 여러 개를 같이 바꾸면 빠를 것 같다 +- 테스트는 나중에 쓰자 +- 완전히 이해는 못 했지만 아마 맞을 것이다 +- 한 번만 더 고쳐보자 +- 여기 문제들은 대충 이런 것들이다 +- 로그 없이 감으로 수정 방향을 정하자 +- 여기저기 같이 바꾸면 하나쯤 맞을 것이다 + +이 신호들은 대부분 조사보다 추측이 앞서고 있다는 뜻입니다. + +## 안티 패턴 + +- 증상만 감추는 빠른 땜질 +- 여러 수정안을 한 번에 넣는 방식 +- 재현 없이 감으로 고치는 방식 +- 비교 대상 없이 현재 코드만 들여다보는 방식 +- 세 번 이상 실패했는데도 구조를 의심하지 않는 방식 + +## 핵심 원칙 + +- 증상이 아니라 원인을 수정합니다. +- 계측과 증거 없이 추측하지 않습니다. +- 한 번에 하나만 바꿉니다. +- 재현, 비교, 검증이 없는 수정은 완료가 아닙니다. +- 여러 번 실패하면 구조 자체를 의심합니다. + +## 기대 결과 + +이 스킬을 적용한 결과는 다음을 만족해야 합니다. + +- 문제의 재현 절차가 설명 가능해야 합니다. +- 근본 원인을 뒷받침하는 증거가 있어야 합니다. +- 수정안은 하나의 원인에 대응해야 합니다. +- 수정 후에는 재현 테스트 또는 검증 절차가 통과해야 합니다. diff --git a/.trae/skills/ui-ux-pro-max/SKILL.md b/.trae/skills/ui-ux-pro-max/SKILL.md new file mode 100644 index 0000000..becf832 --- /dev/null +++ b/.trae/skills/ui-ux-pro-max/SKILL.md @@ -0,0 +1,116 @@ +--- +name: "ui-ux-pro-max" +description: "웹과 모바일 전반의 UI/UX 설계 지능을 제공합니다. 새 페이지 설계, 컴포넌트 리팩터링, 디자인 시스템, 접근성, 상호작용 품질 점검이 필요할 때 호출합니다." +--- + +# UI/UX Pro Max + +웹과 모바일 애플리케이션을 위한 종합 UI/UX 설계 가이드입니다. 다양한 스타일, 색상 팔레트, 폰트 조합, 제품 유형별 추천, UX 가이드라인, 차트 유형 관점을 바탕으로 더 완성도 높은 인터페이스를 설계하도록 돕습니다. + +## 언제 적용할지 + +다음과 같은 작업에서는 이 스킬을 우선 사용합니다. + +- 새 페이지를 설계할 때 +- 버튼, 모달, 폼, 테이블, 차트 같은 UI 컴포넌트를 만들거나 리팩터링할 때 +- 색상 체계, 타이포그래피, 간격, 레이아웃 시스템을 정할 때 +- UI 코드의 사용성, 접근성, 시각 일관성을 검토할 때 +- 내비게이션, 애니메이션, 반응형 동작을 설계할 때 +- 제품 수준의 스타일, 정보 위계, 브랜드 표현을 결정할 때 +- 인터페이스의 명확성, 품질감, 사용성을 개선할 때 + +## 반드시 사용할 상황 + +아래 상황에서는 이 스킬 사용을 기본값으로 둡니다. + +- 랜딩 페이지, 대시보드, 어드민, SaaS, 모바일 앱 등 새 화면 구조를 만들 때 +- 버튼, 모달, 폼, 테이블, 차트 같은 핵심 컴포넌트를 설계 또는 개편할 때 +- 색상 체계와 타이포그래피 시스템을 결정할 때 +- 접근성, 상호작용 품질, 시각 일관성 리뷰를 수행할 때 +- 반응형 레이아웃과 내비게이션 구조를 정할 때 + +다음 경우에는 보조적으로 권장됩니다. + +- UI가 "어딘가 덜 프로페셔널해 보이는데 이유가 분명하지 않을 때" +- 사용성 피드백을 받았을 때 +- 출시 전 UI 품질을 정리할 때 +- 웹, iOS, Android 간 디자인 정렬이 필요할 때 +- 디자인 시스템 또는 재사용 가능한 컴포넌트 라이브러리를 만들 때 + +## 권장 상황 + +- UI가 덜 프로페셔널해 보이지만 원인이 명확하지 않을 때 +- 제품 피드백에서 "불편하다", "헷갈린다"는 의견이 반복될 때 +- 출시 직전 품질 점검에서 디자인 완성도를 끌어올려야 할 때 + +## 불필요한 상황 + +아래 작업에서는 일반적으로 이 스킬이 우선순위가 아닙니다. + +- 순수 백엔드 로직만 다루는 작업 +- API 계약, DB 스키마 설계만 다루는 작업 +- UI와 무관한 인프라/DevOps 작업 +- 시각 요소가 없는 자동화 스크립트 작업 + +다음 작업에는 일반적으로 필요하지 않습니다. + +- 순수 백엔드 로직 개발 +- API 또는 데이터베이스 설계만 하는 작업 +- 인터페이스와 무관한 성능 최적화 +- 인프라, DevOps, 비시각 자동화 작업 + +판단 기준은 단순합니다. 작업이 기능이 **어떻게 보이고, 느껴지고, 움직이고, 상호작용되는지**를 바꾼다면 이 스킬을 사용합니다. + +## 핵심 원칙 + +- 접근성을 최우선으로 봅니다. 대비, 키보드 탐색, 레이블, 상태 표현을 먼저 확인합니다. +- 시각적 품질보다 정보 구조와 사용 흐름을 먼저 정리합니다. +- 제품 맥락에 맞는 스타일을 선택하고, 유행하는 패턴을 무조건 복제하지 않습니다. +- 타이포그래피, 색상, 간격, 그림자, 애니메이션, 반응형 규칙을 시스템으로 다룹니다. +- 웹과 모바일을 포함한 여러 플랫폼 간 일관성을 유지하되, 플랫폼 고유 상호작용은 존중합니다. +- 차트나 데이터 시각화는 미적인 취향보다 데이터 전달 목적에 맞게 선택합니다. + +## 우선순위별 검토 항목 + +1. **접근성** - 대비, 포커스, 라벨, 키보드 접근성, 보조기기 친화성 +2. **상호작용 품질** - 클릭 영역, 터치 친화성, 상태 변화, 피드백 +3. **정보 위계** - 가장 중요한 내용이 첫눈에 보이는지 확인 +4. **레이아웃 시스템** - 그리드, 여백, 정렬, 반응형 구조 +5. **타이포그래피** - 역할이 명확한 글자 크기, 무게, 줄 간격, 폰트 조합 +6. **색상 시스템** - 브랜드 적합성, 상태 색, 강조 규칙, 다크/라이트 확장성 +7. **모션과 전환** - 의미 있는 움직임만 남기고 산만한 효과는 제거 +8. **시각 디테일** - 경계선, 그림자, 반경, 배경 질감, 컴포넌트 완성도 + +## 워크플로 + +1. 제품 유형과 목표 사용자, 핵심 과업을 정의합니다. +2. 정보 위계와 화면 구조를 먼저 설계합니다. +3. 스타일 방향, 색상 전략, 타이포그래피 전략을 정합니다. +4. 컴포넌트와 페이지를 같은 시스템 규칙으로 맞춥니다. +5. 접근성, 반응형, 상태 표현, 상호작용 완성도를 점검합니다. +6. 필요한 경우 리뷰 결과를 우선순위별로 정리해 개선합니다. + +## 작업 방식 + +- 먼저 제품 유형과 대상 사용자, 핵심 화면 목적을 확인합니다. +- 그 다음 스타일 방향, 컬러 전략, 타이포그래피 방향, 레이아웃 전략을 제안합니다. +- 필요한 경우 2~3개의 시각 방향을 비교하고 추천안을 제시합니다. +- 구현에 들어갈 때는 컴포넌트 단위 규칙과 페이지 단위 위계를 함께 설계합니다. +- 리뷰 작업이라면 문제를 단순 나열하지 말고, 우선순위와 수정 이유까지 설명합니다. + +## 안티 패턴 + +- 정보 구조를 정하기 전에 시각 효과만 먼저 쌓는 방식 +- 모든 화면을 같은 템플릿으로 찍어내는 방식 +- 접근성 점검 없이 색상과 애니메이션만 조정하는 방식 +- 컴포넌트 규칙 없이 페이지별 임시 스타일을 누적하는 방식 + +## 산출물 기준 + +이 스킬을 사용한 결과물은 다음을 만족해야 합니다. + +- 보기 좋을 뿐 아니라 읽기 쉽고 사용하기 쉬워야 합니다. +- 단일 화면이 아니라 전체 시스템 관점에서 일관성이 있어야 합니다. +- 컴포넌트와 페이지의 관계가 명확해야 합니다. +- 접근성, 반응형, 상태 표현을 빠뜨리지 않아야 합니다. +- 색상, 폰트, 간격, 인터랙션이 의도적으로 선택되어야 합니다. diff --git a/.trae/skills/using-superpowers/SKILL.md b/.trae/skills/using-superpowers/SKILL.md new file mode 100644 index 0000000..86fb421 --- /dev/null +++ b/.trae/skills/using-superpowers/SKILL.md @@ -0,0 +1,90 @@ +--- +name: "using-superpowers" +description: "응답 전에 관련 스킬을 먼저 확인하고 호출하는 운영 규칙입니다. 어떤 작업이든 적절한 스킬 적용 여부를 먼저 판단해야 할 때 호출합니다." +--- + +# 스킬 사용 운영 규칙 + +이 스킬은 대화나 작업을 시작할 때, 어떤 스킬을 먼저 확인하고 어떻게 적용할지에 대한 기본 운영 원칙을 정의합니다. + +## 최우선 규칙 + +관련 스킬이 조금이라도 적용될 가능성이 있다면, 응답이나 행동 전에 먼저 스킬을 호출합니다. + +질문에 답하기 전, 코드 읽기 전, 구현 시작 전, 명확화 질문을 하기 전에도 먼저 검토합니다. + +단 1%의 가능성이라도 있다면 먼저 확인하는 쪽이 기본값입니다. + +## 우선순위 + +스킬 지시보다 사용자 지시가 항상 우선합니다. + +1. 사용자 명시 지시 +2. 스킬 지시 +3. 시스템 기본 동작 + +즉, 스킬이 어떤 워크플로를 권장하더라도 사용자가 다른 방식을 명확히 요구하면 사용자 지시를 따릅니다. + +## 기본 흐름 + +- 사용자 메시지를 받으면 먼저 관련 스킬 가능성을 판단합니다. +- 관련 가능성이 있으면 즉시 스킬을 호출합니다. +- 호출된 스킬에 체크리스트가 있으면 작업 목록을 만들고 순서대로 따릅니다. +- 그 다음에야 응답, 질문, 구현, 조사 같은 행동을 합니다. + +중요한 점은, "먼저 조금만 확인하고 나서 스킬을 쓰자"가 아니라 "스킬을 먼저 확인하고 나서 어떻게 확인할지 결정한다"는 순서입니다. + +## 스킬 우선 적용 순서 + +여러 스킬이 동시에 맞을 수 있다면 아래 순서를 기준으로 봅니다. + +1. **프로세스 스킬** - 작업 방식을 정하는 스킬 +2. **구현 스킬** - 실제 구현이나 산출물을 만드는 스킬 + +예: + +- "무언가를 만들자" -> brainstorming 먼저, 그다음 구현 스킬 +- "버그를 고치자" -> debugging 먼저, 그다음 도메인 스킬 + +즉, 프로세스를 정하는 스킬이 항상 구현 스킬보다 먼저입니다. + +## 흔한 자기합리화 경고 + +다음 생각이 들면 흐름을 다시 점검합니다. + +- 이건 간단하니까 스킬이 필요 없겠다 +- 먼저 코드 좀 보고 나서 생각하자 +- 빠르게 확인만 하고 나중에 스킬을 쓰자 +- 이 정도는 기억으로 처리해도 되겠다 +- 질문이니까 작업이 아니다 +- 스킬이 너무 과한 것 같다 +- 이건 그냥 간단한 확인이다 +- 이전에 본 적 있는 스킬이라 다시 안 읽어도 된다 + +이런 생각은 대부분 스킬 적용을 건너뛰려는 신호입니다. + +## 적용 절차 + +실제 적용 절차는 아래와 같습니다. + +1. 사용자 메시지를 받습니다. +2. 관련 스킬 가능성을 먼저 판단합니다. +3. 조금이라도 관련 있다면 스킬을 호출합니다. +4. 스킬의 체크리스트나 절차를 작업 흐름에 반영합니다. +5. 그 다음 응답, 조사, 구현을 진행합니다. + +## 원칙 + +- 스킬은 선택이 아니라 작업 방식의 일부로 본다 +- 단순한 작업일수록 오히려 프로세스를 지켜 과잉 추정을 줄인다 +- 기억에 의존하지 말고 현재 스킬 내용을 기준으로 판단한다 +- 관련성이 아주 낮아 보여도, 가능성이 있으면 먼저 확인한다 + +## 기대 결과 + +이 스킬의 목적은 다음 상태를 만드는 것입니다. + +- 관련 스킬이 빠지지 않는다 +- 작업 접근 순서가 일관된다 +- 응답 전에 방법론이 먼저 고정된다 +- 임의 판단과 과잉 추정이 줄어든다 diff --git a/.trae/skills/webapp-testing/SKILL.md b/.trae/skills/webapp-testing/SKILL.md new file mode 100644 index 0000000..64a4384 --- /dev/null +++ b/.trae/skills/webapp-testing/SKILL.md @@ -0,0 +1,109 @@ +--- +name: "webapp-testing" +description: "Playwright 기반으로 로컬 웹앱을 점검하고 테스트합니다. 프론트엔드 동작 검증, UI 디버깅, 스크린샷, 브라우저 로그 확인이 필요할 때 호출합니다." +--- + +# 웹앱 테스트 + +이 스킬은 로컬 웹 애플리케이션을 브라우저에서 실제로 검증하기 위한 Playwright 기반 테스트 가이드입니다. + +## 기본 원칙 + +- 동적 웹앱은 렌더링이 끝나기 전에 DOM을 섣불리 읽지 않습니다. +- 브라우저 조작 전에 먼저 화면 상태를 관찰합니다. +- 가능하면 기본 제공 스크립트를 블랙박스로 활용합니다. +- 정적인 추측보다 브라우저에서 직접 확인한 셀렉터와 상태를 신뢰합니다. + +## 사용 가능한 보조 스크립트 + +- `scripts/with_server.py` - 서버 실행과 종료를 관리합니다. + +이 스크립트는 먼저 `--help`로 사용법을 확인한 뒤 사용합니다. 소스를 먼저 읽기보다, 가능한 한 도구처럼 호출하는 방식을 우선합니다. + +## 언제 사용할지 + +- 로컬 웹앱의 실제 동작을 확인해야 할 때 +- 버튼, 폼, 내비게이션, 모달 같은 UI 상호작용을 점검할 때 +- 스크린샷이나 브라우저 로그가 필요할 때 +- 동적 렌더링 이후의 DOM을 기준으로 문제를 확인해야 할 때 + +## 접근 방식 결정 + +### 정적 HTML인 경우 + +- 파일을 직접 읽어 셀렉터를 먼저 확인합니다. +- 그 셀렉터를 바탕으로 Playwright 스크립트를 작성합니다. +- 직접 확인이 부족하면 동적 앱처럼 취급합니다. + +### 동적 웹앱인 경우 + +- 서버가 안 떠 있다면 `with_server.py`로 서버 라이프사이클을 관리합니다. +- 서버가 이미 떠 있다면 브라우저에서 먼저 정찰한 뒤 조작합니다. + +## 정찰 후 행동 패턴 + +이 스킬의 기본 패턴은 "정찰 후 행동"입니다. + +1. 페이지에 접속합니다. +2. `networkidle` 상태까지 기다립니다. +3. 스크린샷을 찍거나 렌더링된 DOM을 확인합니다. +4. 그 상태를 기준으로 셀렉터를 식별합니다. +5. 그 다음 클릭, 입력, 검증 같은 행동을 수행합니다. + +정적 분석으로 셀렉터를 추측하는 대신, 실제 렌더링 결과를 기준으로 선택자를 확정합니다. + +## 서버 관리 예시 + +단일 서버: + +```bash +python scripts/with_server.py --server "npm run dev" --port 5173 -- python your_automation.py +``` + +복수 서버: + +```bash +python scripts/with_server.py --server "cd backend && python server.py" --port 3000 --server "cd frontend && npm run dev" --port 5173 -- python your_automation.py +``` + +## 자동화 스크립트 원칙 + +- `sync_playwright()`를 기본으로 사용합니다. +- Chromium은 headless 모드로 실행합니다. +- 페이지 이동 후 `page.wait_for_load_state('networkidle')`를 호출합니다. +- 작업이 끝나면 브라우저를 닫습니다. + +## with_server.py 사용 원칙 + +- 먼저 `python scripts/with_server.py --help`로 옵션을 확인합니다. +- 서버가 여러 개인 경우에도 이 스크립트로 생명주기를 한 번에 관리합니다. +- Playwright 스크립트 안에는 서버 시작 로직을 넣지 않습니다. +- 자동화 스크립트는 브라우저 조작에만 집중합니다. + +## 좋은 습관 + +- 먼저 관찰하고 나중에 조작합니다. +- `text=`, `role=`, CSS 선택자, ID 등 설명력 있는 셀렉터를 씁니다. +- 필요한 경우 `wait_for_selector()` 같은 명시적 대기를 사용합니다. +- 스크린샷과 콘솔 로그 수집을 적극 활용합니다. +- 재현이 불안정하면 관찰 스텝을 늘리고, 행동 스텝은 줄여 원인을 좁힙니다. + +## 흔한 실수 + +- JS가 끝나기 전에 DOM을 확인하는 것 +- 서버 실행과 테스트 로직을 뒤섞는 것 +- 셀렉터 확인 없이 곧바로 클릭부터 시도하는 것 +- 렌더링 전 HTML만 보고 동적 UI 동작을 단정하는 것 + +## 기대 결과 + +이 스킬을 적용한 결과물은 다음을 만족해야 합니다. + +- 서버 실행과 테스트 로직이 분리되어 있어야 합니다. +- 브라우저에서 실제 보이는 상태를 기준으로 상호작용이 설계되어야 합니다. +- 셀렉터와 검증 조건이 관찰 결과를 기반으로 정해져야 합니다. +- 필요 시 스크린샷, 콘솔 로그, DOM 확인 결과를 남길 수 있어야 합니다. + +## 목표 + +이 스킬의 목적은 브라우저에서 실제 사용자 흐름을 검증하고, 화면 기준으로 문제를 발견하며, 재현 가능한 자동화 스크립트를 만드는 것입니다. diff --git a/.trae/skills/writing-plans/SKILL.md b/.trae/skills/writing-plans/SKILL.md new file mode 100644 index 0000000..83bc679 --- /dev/null +++ b/.trae/skills/writing-plans/SKILL.md @@ -0,0 +1,139 @@ +--- +name: "writing-plans" +description: "명세가 정해진 다단계 작업을 실행 계획으로 바꿉니다. 코드를 건드리기 전에 구체적인 구현 계획과 작업 순서를 작성해야 할 때 호출합니다." +--- + +# 구현 계획 작성 + +이 스킬은 명세나 요구사항이 있는 작업을, 실제 엔지니어가 바로 수행할 수 있는 상세 구현 계획으로 바꾸기 위한 가이드입니다. + +## 개요 + +계획은 코드베이스 맥락이 거의 없는 개발자도 이해할 수 있도록 충분히 구체적이어야 합니다. 어떤 파일을 수정할지, 어떤 테스트를 작성할지, 무엇을 어떤 순서로 검증할지까지 모두 포함해야 합니다. + +핵심 원칙은 다음과 같습니다. + +- DRY +- YAGNI +- TDD +- 잦은 커밋 +- 작은 단계 + +계획 문서는 기본적으로 `docs/superpowers/plans/YYYY-MM-DD-.md` 에 저장합니다. + +시작할 때는 현재 구현 계획 작성 단계에 들어왔음을 명확히 선언합니다. + +## 범위 점검 + +- 명세가 여러 독립 하위 시스템을 포함한다면 계획도 분리합니다. +- 하나의 계획은 자체적으로 구현, 테스트, 검증 가능한 범위를 가져야 합니다. +- 하나의 계획만으로 독립적으로 완료 가능한 단위를 만드는 것이 목표입니다. + +## 파일 구조 먼저 정의 + +작업을 나누기 전에 어떤 파일을 만들고 수정할지 먼저 정리합니다. + +- 각 파일은 하나의 명확한 책임만 가지게 설계합니다. +- 함께 바뀌는 파일은 가까이 두고, 책임 기준으로 나눕니다. +- 기존 코드베이스의 패턴을 따릅니다. +- 지나치게 커진 파일을 다뤄야 한다면 계획 안에 분리 작업을 포함할 수 있습니다. +- 분해 결정은 이 단계에서 고정하는 것이 좋습니다. 계획 후반에 파일 책임이 바뀌면 전체 작업이 흔들립니다. + +## 작업 단위 규칙 + +각 단계는 2~5분 안에 수행 가능한 하나의 행동이어야 합니다. + +- 실패 테스트 작성 +- 테스트를 실행해 실패 확인 +- 최소 구현 작성 +- 테스트를 실행해 통과 확인 +- 커밋 + +이처럼 한 단계에는 한 행동만 담습니다. + +좋은 계획은 "무엇을 할지"만 적지 않고, "어떻게 검증할지"까지 함께 적습니다. + +## 계획 문서 헤더 + +모든 계획 문서는 다음 구조로 시작합니다. + +```markdown +# [기능명] 구현 계획 +> **에이전트 작업자용:** 각 작업은 체크박스(`- [ ]`)로 추적합니다. +**목표:** [이 기능이 무엇을 만드는지 한 문장] +**아키텍처:** [접근 방식 2~3문장] +**기술 스택:** [핵심 기술] +--- +``` + +## 작업 구조 + +각 작업은 아래 내용을 포함해야 합니다. + +- 대상 파일 경로 +- 생성/수정/테스트 파일 구분 +- 실제 테스트 코드 예시 +- 실행 명령과 기대 결과 +- 최소 구현 코드 예시 +- 커밋 명령 예시 + +가능하다면 각 작업은 독립적으로 읽혀야 합니다. 작업을 순서대로 읽지 않아도 필요한 정보가 빠지지 않아야 합니다. + +## 금지 사항 + +다음과 같은 placeholder는 허용하지 않습니다. + +- TBD +- TODO +- 나중에 구현 +- 적절한 에러 처리 추가 +- 위 내용을 테스트 작성 +- Task N과 유사 +- 방법 설명만 있고 실제 코드나 명령이 없는 단계 + +모든 단계는 실행에 필요한 실제 내용을 포함해야 합니다. + +다음 표현도 피합니다. + +- 적당히 구현 +- 필요하면 보완 +- 상황에 맞게 처리 +- 일반적인 에러 처리 추가 +- 위 단계 참고 + +이런 표현은 실행 정보를 숨기기 때문에 계획 품질을 떨어뜨립니다. + +## 자체 검토 + +계획 작성 후 아래를 스스로 점검합니다. + +1. 명세의 모든 요구사항이 작업에 반영됐는가 +2. placeholder나 빈칸이 남지 않았는가 +3. 함수명, 타입, 시그니처, 속성명이 작업 간 일관적인가 + +빠진 요구사항이 있으면 즉시 작업을 추가합니다. + +추가로 아래도 확인합니다. + +- 각 작업이 실제로 끝나는 단위인지 +- 테스트나 검증 단계가 빠지지 않았는지 +- 파일 경로가 모호하지 않은지 +- 한 작업에 여러 행동이 뭉쳐 있지 않은지 + +## 완료 후 인계 + +계획 저장 후에는 실행 방식을 사용자에게 선택하게 합니다. + +- 서브에이전트 기반 실행 +- 현재 세션에서 인라인 실행 + +핵심은, 구현 전에 계획이 먼저 완성되고 검토 가능해야 한다는 점입니다. + +## 기대 결과 + +이 스킬의 결과물은 다음을 만족해야 합니다. + +- 구현자가 문맥 없이도 작업을 시작할 수 있어야 합니다. +- 각 작업은 체크리스트처럼 따라갈 수 있어야 합니다. +- 테스트와 검증 명령이 포함되어 있어야 합니다. +- 문서 안에 실행 가능한 수준의 구체성이 있어야 합니다. diff --git a/README.md b/README.md new file mode 100644 index 0000000..a9bd2bd --- /dev/null +++ b/README.md @@ -0,0 +1,165 @@ +# skillDesk + +TRAE에서 바로 사용할 수 있도록 정리한 에이전트 스킬 모음 저장소입니다. +`skillText.md`에 정리된 인기 스킬 10개를 현재 프로젝트의 `.trae/skills` 구조로 옮기고, 한국어로 확장 설명을 추가했습니다. + +## 프로젝트 목적 + +이 저장소는 다음 목적을 가집니다. + +- 자주 쓰이는 에이전트 스킬 10개를 현재 프로젝트 안에서 바로 참조 가능하게 정리 +- 원문에 가까운 규칙, 사용 시점, 워크플로를 한국어로 복원 +- TRAE에서 실제로 검증할 수 있는 프롬프트형 테스트 시나리오 제공 + +## 포함된 스킬 + +- [brainstorming](./.trae/skills/brainstorming/SKILL.md) +- [frontend-design](./.trae/skills/frontend-design/SKILL.md) +- [ui-ux-pro-max](./.trae/skills/ui-ux-pro-max/SKILL.md) +- [systematic-debugging](./.trae/skills/systematic-debugging/SKILL.md) +- [writing-plans](./.trae/skills/writing-plans/SKILL.md) +- [find-skills](./.trae/skills/find-skills/SKILL.md) +- [using-superpowers](./.trae/skills/using-superpowers/SKILL.md) +- [karpathy-guidelines](./.trae/skills/karpathy-guidelines/SKILL.md) +- [webapp-testing](./.trae/skills/webapp-testing/SKILL.md) +- [agent-browser](./.trae/skills/agent-browser/SKILL.md) + +## 디렉터리 구조 + +```text +skillDesk/ +├── .trae/ +│ └── skills/ +│ ├── brainstorming/ +│ ├── frontend-design/ +│ ├── ui-ux-pro-max/ +│ ├── systematic-debugging/ +│ ├── writing-plans/ +│ ├── find-skills/ +│ ├── using-superpowers/ +│ ├── karpathy-guidelines/ +│ ├── webapp-testing/ +│ └── agent-browser/ +├── docs/ +│ ├── superpowers/ +│ │ ├── specs/ +│ │ └── plans/ +│ └── test-scenarios.md +├── README.md +└── skillText.md +``` + +## 문서 구성 + +- [skillText.md](./skillText.md): 10개 인기 스킬 소개 번역본 +- 각 `SKILL.md`: 실제 프로젝트용 스킬 설명과 사용 규칙 +- [테스트 시나리오](./docs/test-scenarios.md): TRAE에서 바로 실행해 볼 수 있는 검증 프롬프트 모음 +- [설계 문서](./docs/superpowers/specs/2026-06-09-skill-docs-design.md): 문서 확장 설계 +- [구현 계획](./docs/superpowers/plans/2026-06-09-skill-docs-expansion.md): 실행 계획 기록 + +## TRAE에서 사용하는 방법 + +1. 이 프로젝트를 TRAE에서 엽니다. +2. `.trae/skills/` 아래 스킬들이 인식되는 환경에서 작업합니다. +3. 작업 요청을 입력하면, 적절한 스킬이 먼저 호출되는지 확인합니다. +4. 스킬별 동작을 검증하려면 [테스트 시나리오](./docs/test-scenarios.md)의 프롬프트를 그대로 사용합니다. + +## 추천 사용 흐름 + +작업 성격에 따라 아래 순서를 추천합니다. + +- 신규 기능/설계: `brainstorming` -> `writing-plans` -> 구현 스킬 +- UI 작업: `brainstorming` -> `frontend-design` 또는 `ui-ux-pro-max` +- 버그 수정: `systematic-debugging` -> 도메인 스킬 +- 브라우저 검증: `webapp-testing` 또는 `agent-browser` +- 스킬 탐색: `find-skills` +- 전반 운영 규칙: `using-superpowers`, `karpathy-guidelines` + +## 문서 확장 기준 + +이번 저장소의 스킬 문서는 다음 기준으로 정리했습니다. + +- 원문 핵심 규칙, 단계, 금지 사항은 최대한 유지 +- 한국어 가독성을 위해 구조와 문장을 재편집 +- 단순 번역보다 실제 프로젝트에서 바로 읽히는 운영 문서 형태로 정리 +- frontmatter `description`은 짧고 실사용 판단에 유리하게 유지 + +## 빠른 확인 포인트 + +- 설계 없이 구현으로 바로 가는가 -> `brainstorming` +- 계획 없이 바로 코드를 바꾸려는가 -> `writing-plans` +- 버그를 감으로 고치려는가 -> `systematic-debugging` +- UI가 평범하고 맥락이 약한가 -> `frontend-design`, `ui-ux-pro-max` +- 적절한 스킬이 있는지부터 모르겠는가 -> `find-skills` + +## 테스트 시나리오 + +실제 TRAE 검증용 프롬프트는 아래 문서에 정리되어 있습니다. + +- [docs/test-scenarios.md](./docs/test-scenarios.md) + +## SQLite + FastAPI + Vue CRUD 예제 실행 + +현재 저장소에는 SQLite의 `messages` 테이블 데이터를 FastAPI가 읽고 쓰며, Vue 화면에서 조회, 추가, 수정, 삭제할 수 있는 최소 CRUD 예제가 포함되어 있습니다. + +### 1. 백엔드 실행 + +```bash +python3 -m venv .venv +source .venv/bin/activate +pip install -r backend/requirements.txt +python backend/init_db.py +uvicorn backend.main:app --host 127.0.0.1 --port 8000 --reload +``` + +### 2. 프론트엔드 실행 + +새 터미널에서 아래 명령을 실행합니다. + +```bash +python3 -m http.server 5173 -d frontend +``` + +### 3. 확인 + +- 백엔드 API 목록 조회: `http://127.0.0.1:8000/api/messages` +- 프론트엔드 화면: `http://127.0.0.1:5173` +- 기존 단일 조회 호환 API: `http://127.0.0.1:8000/api/message` + +정상 동작 시 Vue 화면에서 초기 데이터 `hello world`를 포함한 메시지 목록이 보이고, 새 메시지 추가, 기존 메시지 수정, 기존 메시지 삭제가 모두 가능합니다. + +### 4. 포트 충돌 시 대체 실행 + +이미 `8000` 또는 `5173` 포트를 다른 프로그램이 사용 중이면 아래처럼 대체 포트를 사용합니다. + +#### 백엔드 대체 포트 예시 + +```bash +uvicorn backend.main:app --host 127.0.0.1 --port 8001 --reload +``` + +#### 프론트엔드 대체 포트 예시 + +```bash +python3 -m http.server 5174 -d frontend +``` + +#### 프론트 API 포트 맞추기 + +프론트가 다른 백엔드 포트를 보도록 하려면 [index.html](file:///Users/woozooni/Documents/trae_projects/skillDesk/frontend/index.html#L8-L15) 의 `window.APP_CONFIG`에서 `apiPort` 값을 백엔드 실행 포트와 동일하게 수정합니다. + +예를 들어 백엔드를 `8001`로 실행했다면 아래처럼 맞춥니다. + +```html + +``` + +이 경우 접속 주소는 아래와 같습니다. + +- 백엔드 API 목록 조회: `http://127.0.0.1:8001/api/messages` +- 프론트엔드 화면: `http://127.0.0.1:5174` diff --git a/backend/__pycache__/init_db.cpython-313.pyc b/backend/__pycache__/init_db.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a2f18609caa49ffe92b17a77c6a5a8607f33840d GIT binary patch literal 1171 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 literal 0 HcmV?d00001 diff --git a/backend/init_db.py b/backend/init_db.py new file mode 100644 index 0000000..ea8b7a9 --- /dev/null +++ b/backend/init_db.py @@ -0,0 +1,19 @@ +import sqlite3 # SQLite 데이터베이스를 다루기 위한 모듈을 가져온다. +from pathlib import Path # 파일 경로를 안전하게 계산하기 위한 모듈을 가져온다. + +DB_PATH = Path(__file__).resolve().parent / "app.db" # 현재 파일 기준으로 데이터베이스 파일 경로를 정한다. + + +def main() -> None: # 데이터베이스를 초기화하는 메인 함수를 정의한다. + connection = sqlite3.connect(DB_PATH) # SQLite 데이터베이스에 연결한다. + cursor = connection.cursor() # SQL 실행을 위한 커서를 만든다. + cursor.execute("CREATE TABLE IF NOT EXISTS messages (id INTEGER PRIMARY KEY AUTOINCREMENT, content TEXT NOT NULL)") # 메시지 테이블이 없으면 생성한다. + cursor.execute("DELETE FROM messages") # 예제를 단순하게 유지하기 위해 기존 메시지를 모두 지운다. + cursor.execute("INSERT INTO messages (content) VALUES (?)", ("hello world",)) # hello world 예제 데이터를 한 건 추가한다. + connection.commit() # 변경 내용을 데이터베이스에 저장한다. + connection.close() # 데이터베이스 연결을 닫는다. + print(f"Database initialized at: {DB_PATH}") # 초기화된 데이터베이스 경로를 출력한다. + + +if __name__ == "__main__": # 현재 파일을 직접 실행했을 때만 초기화 함수를 호출한다. + main() # 데이터베이스 초기화를 수행한다. diff --git a/backend/main.py b/backend/main.py new file mode 100644 index 0000000..70b29a4 --- /dev/null +++ b/backend/main.py @@ -0,0 +1,87 @@ +import sqlite3 # SQLite 데이터베이스를 읽고 쓰기 위한 모듈을 가져온다. +from pathlib import Path # 데이터베이스 파일 경로를 계산하기 위한 모듈을 가져온다. + +from fastapi import FastAPI, HTTPException # FastAPI 앱과 예외 응답 도구를 가져온다. +from fastapi.middleware.cors import CORSMiddleware # 프론트엔드 연동을 위한 CORS 미들웨어를 가져온다. +from pydantic import BaseModel # 요청 본문을 검증하기 위한 기본 모델 클래스를 가져온다. + +DB_PATH = Path(__file__).resolve().parent / "app.db" # 현재 파일 기준으로 데이터베이스 파일 경로를 정한다. +app = FastAPI(title="SQLite CRUD API") # FastAPI 애플리케이션 인스턴스를 만든다. +app.add_middleware(CORSMiddleware, allow_origins=["http://127.0.0.1:5173", "http://localhost:5173"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"]) # Vue 개발 서버에서 API를 호출할 수 있도록 CORS를 허용한다. + + +class MessagePayload(BaseModel): # 메시지 생성과 수정을 위한 요청 모델을 정의한다. + content: str # 요청 본문에서 메시지 내용을 문자열로 받는다. + + +def ensure_database_exists() -> None: # 데이터베이스 파일 존재 여부를 확인하는 함수를 정의한다. + if not DB_PATH.exists(): # 데이터베이스 파일이 아직 생성되지 않았는지 확인한다. + raise HTTPException(status_code=500, detail="Database file does not exist. Run backend/init_db.py first.") # 초기화 스크립트 실행이 필요하다는 오류를 반환한다. + + +def get_connection() -> sqlite3.Connection: # SQLite 연결 객체를 공통으로 만드는 함수를 정의한다. + ensure_database_exists() # 데이터베이스 파일이 존재하는지 먼저 확인한다. + connection = sqlite3.connect(DB_PATH) # SQLite 데이터베이스에 연결한다. + connection.row_factory = sqlite3.Row # 컬럼 이름으로 접근할 수 있도록 Row 팩토리를 지정한다. + return connection # 설정이 끝난 연결 객체를 반환한다. + + +def normalize_content(content: str) -> str: # 메시지 내용을 공통 규칙으로 정리하는 함수를 정의한다. + normalized_content = content.strip() # 앞뒤 공백을 제거해 실제 입력값만 남긴다. + if not normalized_content: # 공백만 있거나 빈 문자열인 경우를 확인한다. + raise HTTPException(status_code=400, detail="Content must not be empty") # 빈 메시지는 허용하지 않는다는 오류를 반환한다. + return normalized_content # 검증을 통과한 메시지 내용을 반환한다. + + +def serialize_message(row: sqlite3.Row) -> dict[str, int | str]: # SQLite 행 데이터를 JSON 응답용 딕셔너리로 바꾸는 함수를 정의한다. + return {"id": row["id"], "content": row["content"]} # id와 content만 꺼내서 반환한다. + + +def read_first_message() -> str: # 데이터베이스에서 첫 번째 메시지를 읽는 함수를 정의한다. + with get_connection() as connection: # 데이터베이스 연결을 열고 자동으로 닫히게 한다. + row = connection.execute("SELECT content FROM messages ORDER BY id ASC LIMIT 1").fetchone() # 가장 먼저 저장된 메시지 한 건을 조회한다. + if row is None: # 조회된 메시지가 없는 경우를 확인한다. + raise HTTPException(status_code=404, detail="Message not found") # 메시지가 없다는 404 오류를 반환한다. + return row["content"] # 조회한 메시지 내용을 반환한다. + + +@app.get("/api/message") # 기존 예제와 호환되도록 첫 번째 메시지를 반환하는 GET 엔드포인트를 유지한다. +def get_message() -> dict[str, str]: # JSON 응답 형태의 딕셔너리를 반환하는 함수를 정의한다. + return {"message": read_first_message()} # 데이터베이스에서 읽은 첫 번째 메시지를 JSON으로 반환한다. + + +@app.get("/api/messages") # 전체 메시지 목록을 반환하는 GET 엔드포인트를 정의한다. +def list_messages() -> list[dict[str, int | str]]: # 메시지 목록을 JSON 배열 형태로 반환하는 함수를 정의한다. + with get_connection() as connection: # 데이터베이스 연결을 열고 자동으로 닫히게 한다. + rows = connection.execute("SELECT id, content FROM messages ORDER BY id ASC").fetchall() # 저장된 메시지를 id 오름차순으로 모두 조회한다. + return [serialize_message(row) for row in rows] # 조회된 모든 행을 직렬화해 반환한다. + + +@app.post("/api/messages", status_code=201) # 새 메시지를 저장하는 POST 엔드포인트를 정의한다. +def create_message(payload: MessagePayload) -> dict[str, int | str]: # 생성된 메시지 정보를 반환하는 함수를 정의한다. + normalized_content = normalize_content(payload.content) # 요청 본문의 메시지 내용을 공통 규칙으로 정리한다. + with get_connection() as connection: # 데이터베이스 연결을 열고 자동으로 닫히게 한다. + cursor = connection.execute("INSERT INTO messages (content) VALUES (?)", (normalized_content,)) # 정리된 메시지 내용을 테이블에 저장한다. + connection.commit() # INSERT 결과를 데이터베이스에 반영한다. + return {"id": int(cursor.lastrowid), "content": normalized_content} # 생성된 id와 메시지 내용을 응답으로 반환한다. + + +@app.put("/api/messages/{message_id}") # 기존 메시지를 수정하는 PUT 엔드포인트를 정의한다. +def update_message(message_id: int, payload: MessagePayload) -> dict[str, int | str]: # 수정된 메시지 정보를 반환하는 함수를 정의한다. + normalized_content = normalize_content(payload.content) # 요청 본문의 메시지 내용을 공통 규칙으로 정리한다. + with get_connection() as connection: # 데이터베이스 연결을 열고 자동으로 닫히게 한다. + cursor = connection.execute("UPDATE messages SET content = ? WHERE id = ?", (normalized_content, message_id)) # 지정한 id의 메시지 내용을 새 값으로 수정한다. + connection.commit() # UPDATE 결과를 데이터베이스에 반영한다. + if cursor.rowcount == 0: # 실제로 수정된 행이 없는 경우를 확인한다. + raise HTTPException(status_code=404, detail="Message not found") # 없는 메시지라는 404 오류를 반환한다. + return {"id": message_id, "content": normalized_content} # 수정된 id와 메시지 내용을 응답으로 반환한다. + + +@app.delete("/api/messages/{message_id}") # 기존 메시지를 삭제하는 DELETE 엔드포인트를 정의한다. +def delete_message(message_id: int) -> dict[str, bool]: # 삭제 성공 여부를 반환하는 함수를 정의한다. + with get_connection() as connection: # 데이터베이스 연결을 열고 자동으로 닫히게 한다. + cursor = connection.execute("DELETE FROM messages WHERE id = ?", (message_id,)) # 지정한 id의 메시지를 테이블에서 삭제한다. + connection.commit() # DELETE 결과를 데이터베이스에 반영한다. + if cursor.rowcount == 0: # 실제로 삭제된 행이 없는 경우를 확인한다. + raise HTTPException(status_code=404, detail="Message not found") # 없는 메시지라는 404 오류를 반환한다. + return {"success": True} # 삭제가 성공했음을 JSON으로 반환한다. diff --git a/backend/requirements.txt b/backend/requirements.txt new file mode 100644 index 0000000..97dc7cd --- /dev/null +++ b/backend/requirements.txt @@ -0,0 +1,2 @@ +fastapi +uvicorn diff --git a/docs/superpowers/plans/2026-06-09-global-config.md b/docs/superpowers/plans/2026-06-09-global-config.md new file mode 100644 index 0000000..25e2e4e --- /dev/null +++ b/docs/superpowers/plans/2026-06-09-global-config.md @@ -0,0 +1,73 @@ +# SQLite + FastAPI + Vue 전역 설정 분리 구현 계획 +> **에이전트 작업자용:** 각 작업은 체크박스(`- [ ]`)로 추적합니다. +**목표:** 프론트엔드가 `index.html`의 전역 설정 객체에서 API 호스트와 포트를 읽어 오도록 바꿔, 포트 변경 시 `main.js`를 수정하지 않아도 되게 만든다. +**아키텍처:** `frontend/index.html`에 `window.APP_CONFIG`를 정의하고, `frontend/src/main.js`는 이 전역 객체를 읽어 기본값과 함께 `API_BASE_URL`을 조합한다. README는 설정 위치와 포트 충돌 대응 절차를 `index.html` 기준으로 다시 설명한다. +**기술 스택:** HTML, Vue 3 ESM, JavaScript, Markdown +--- + +- [ ] **작업 1: HTML 전역 설정 객체 추가** + - **대상 파일:** `/Users/woozooni/Documents/trae_projects/skillDesk/frontend/index.html` (수정) + - **할 일:** Vue 앱 스크립트가 실행되기 전에 `window.APP_CONFIG` 객체를 선언하고, 기본 `apiHost`와 `apiPort`를 넣는다. + - **최소 구현 예시:** + ```html + + ``` + - **검증 명령:** `python3 -m http.server 5173 -d frontend` + - **기대 결과:** 브라우저가 `index.html`을 로드하면 Vue 앱 시작 전 전역 설정 객체가 준비된다. + +- [ ] **작업 2: main.js가 전역 설정과 기본값을 읽도록 변경** + - **대상 파일:** `/Users/woozooni/Documents/trae_projects/skillDesk/frontend/src/main.js` (수정) + - **할 일:** 기존 `API_HOST`, `API_PORT` 상수를 `window.APP_CONFIG` 기반으로 바꾸고, 설정이 없을 때 기본값 `127.0.0.1:8000`이 유지되게 한다. + - **최소 구현 예시:** + ```javascript + const appConfig = window.APP_CONFIG ?? {} + const apiHost = appConfig.apiHost || 'http://127.0.0.1' + const apiPort = appConfig.apiPort || '8000' + const API_BASE_URL = `${apiHost}:${apiPort}/api` + ``` + - **검증 명령:** `python3 -m py_compile backend/main.py` + - **기대 결과:** `main.js`를 수정하지 않고 `index.html` 값만 바꿔 다른 백엔드 포트로 연결할 수 있다. + +- [ ] **작업 3: 기존 CRUD fetch 흐름 유지 확인** + - **대상 파일:** `/Users/woozooni/Documents/trae_projects/skillDesk/frontend/src/main.js` (검토) + - **할 일:** 생성, 조회, 수정, 삭제 fetch 호출이 모두 새 `API_BASE_URL`을 그대로 사용하도록 유지한다. + - **최소 구현 예시:** + ```javascript + const response = await fetch(`${API_BASE_URL}/messages`) + ``` + - **검증 명령:** `python3 -m py_compile backend/main.py` + - **기대 결과:** 설정 방식만 바뀌고 CRUD 기능 경로는 그대로 유지된다. + +- [ ] **작업 4: README 설정 위치 설명 갱신** + - **대상 파일:** `/Users/woozooni/Documents/trae_projects/skillDesk/README.md` (수정) + - **할 일:** 기존 `main.js`의 `API_PORT` 수정 안내를 `index.html`의 `window.APP_CONFIG.apiPort` 수정 안내로 바꾼다. + - **최소 구현 예시:** + ```markdown + `frontend/index.html`의 `window.APP_CONFIG`에서 `apiPort` 값을 백엔드 실행 포트와 맞춥니다. + ``` + - **검증 명령:** `python3 -m py_compile backend/init_db.py backend/main.py` + - **기대 결과:** README만 읽어도 설정 수정 위치가 `index.html`이라는 점을 알 수 있다. + +- [ ] **작업 5: 포트 충돌 대응 예시를 전역 설정 방식으로 보강** + - **대상 파일:** `/Users/woozooni/Documents/trae_projects/skillDesk/README.md` (수정) + - **할 일:** 백엔드를 `8001`, 프론트를 `5174`로 실행할 때 `apiPort: '8001'` 예시를 함께 적는다. + - **최소 구현 예시:** + ```html + window.APP_CONFIG = { + apiHost: 'http://127.0.0.1', + apiPort: '8001', + } + ``` + - **검증 명령:** `python3 -m py_compile backend/init_db.py backend/main.py` + - **기대 결과:** 사용자가 포트 충돌 시 실행 명령과 전역 설정 값을 한 번에 맞출 수 있다. + +- [ ] **작업 6: 진단 및 수동 검증** + - **대상 파일:** `/Users/woozooni/Documents/trae_projects/skillDesk/frontend/index.html` (진단), `/Users/woozooni/Documents/trae_projects/skillDesk/frontend/src/main.js` (진단), `/Users/woozooni/Documents/trae_projects/skillDesk/README.md` (진단) + - **할 일:** IDE 진단을 확인하고, 필요 시 즉시 수정한다. 가능하면 프론트 정적 서버를 열어 설정 객체가 페이지 로드 전에 선언되는 구조도 점검한다. + - **검증 도구:** IDE 진단 확인 + - **기대 결과:** 새 오류 없이 전역 설정 분리 구조가 문서와 코드에 모두 반영된다. diff --git a/docs/superpowers/plans/2026-06-09-port-config-split.md b/docs/superpowers/plans/2026-06-09-port-config-split.md new file mode 100644 index 0000000..79b800a --- /dev/null +++ b/docs/superpowers/plans/2026-06-09-port-config-split.md @@ -0,0 +1,69 @@ +# SQLite + FastAPI + Vue 포트 설정 분리 구현 계획 +> **에이전트 작업자용:** 각 작업은 체크박스(`- [ ]`)로 추적합니다. +**목표:** CRUD 예제의 프론트 API 주소와 실행 포트 안내를 분리해 포트 충돌 시 최소 수정으로 다시 실행할 수 있게 만든다. +**아키텍처:** 프론트엔드는 `frontend/src/main.js`에서 API 주소를 `API_HOST`, `API_PORT`, `API_BASE_URL` 상수로 나누어 관리한다. 실행 포트 선택은 백엔드와 프론트 모두 명령줄에서 유지하고, README에 기본 포트와 대체 포트 예시를 함께 적어 사용자가 충돌 상황에서 바로 대응할 수 있게 한다. +**기술 스택:** Vue 3 ESM, FastAPI, Python http.server, Markdown +--- + +- [ ] **작업 1: 프론트 API 주소 상수 구조 변경** + - **대상 파일:** `/Users/woozooni/Documents/trae_projects/skillDesk/frontend/src/main.js` (수정) + - **할 일:** 현재 하나의 문자열로 선언된 `API_BASE_URL`을 `API_HOST`, `API_PORT`, `API_BASE_URL`로 분리한다. + - **최소 구현 예시:** + ```javascript + const API_HOST = 'http://127.0.0.1' + const API_PORT = '8000' + const API_BASE_URL = `${API_HOST}:${API_PORT}/api` + ``` + - **검증 명령:** `python3 -m py_compile backend/main.py` + - **기대 결과:** 프론트 코드에서 백엔드 포트를 한 줄만 수정해 다른 포트로 연결할 수 있다. + +- [ ] **작업 2: 프론트 주석과 설정 의도 정리** + - **대상 파일:** `/Users/woozooni/Documents/trae_projects/skillDesk/frontend/src/main.js` (수정) + - **할 일:** 사용자 규칙에 맞춰 각 상수와 조합 이유를 한글 주석으로 설명하고, 기존 fetch 호출이 새 상수를 그대로 사용하도록 유지한다. + - **최소 구현 예시:** + ```javascript + const API_HOST = 'http://127.0.0.1' // 백엔드 API 호스트 주소를 별도 상수로 분리한다. + const API_PORT = '8000' // 백엔드 포트 충돌 시 이 값만 바꾸면 되도록 한다. + const API_BASE_URL = `${API_HOST}:${API_PORT}/api` // 실제 fetch 요청에 사용할 기본 API 주소를 조합한다. + ``` + - **검증 명령:** `python3 -m py_compile backend/main.py` + - **기대 결과:** 프론트 상수 구조만 읽어도 포트 변경 지점을 쉽게 찾을 수 있다. + +- [ ] **작업 3: README 기본 실행 예시를 명시적 포트 기준으로 보강** + - **대상 파일:** `/Users/woozooni/Documents/trae_projects/skillDesk/README.md` (수정) + - **할 일:** 기존 실행 안내에 기본 백엔드 포트 `8000`, 프론트 포트 `5173`을 명령 예시로 명확히 적는다. + - **최소 구현 예시:** + ```markdown + uvicorn backend.main:app --host 127.0.0.1 --port 8000 + python3 -m http.server 5173 -d frontend + ``` + - **검증 명령:** `python3 -m py_compile backend/init_db.py backend/main.py` + - **기대 결과:** README만 보고 기본 실행 주소를 바로 이해할 수 있다. + +- [ ] **작업 4: README에 포트 충돌 대응 섹션 추가** + - **대상 파일:** `/Users/woozooni/Documents/trae_projects/skillDesk/README.md` (수정) + - **할 일:** `8001`, `5174` 같은 대체 포트 예시와 함께, 프론트에서 `API_PORT`를 어디서 바꾸는지 안내한다. + - **최소 구현 예시:** + ```markdown + uvicorn backend.main:app --host 127.0.0.1 --port 8001 + python3 -m http.server 5174 -d frontend + `frontend/src/main.js`의 `API_PORT`도 `8001`로 맞춥니다. + ``` + - **검증 명령:** `python3 -m py_compile backend/init_db.py backend/main.py` + - **기대 결과:** 포트 충돌 시 사용자가 다음 명령과 코드 수정 위치를 바로 알 수 있다. + +- [ ] **작업 5: 문법 및 진단 확인** + - **대상 파일:** `/Users/woozooni/Documents/trae_projects/skillDesk/frontend/src/main.js` (진단), `/Users/woozooni/Documents/trae_projects/skillDesk/README.md` (진단) + - **할 일:** IDE 진단으로 새 오류를 확인하고, 필요 시 즉시 수정한다. + - **검증 도구:** IDE 진단 확인 + - **기대 결과:** 수정 파일에 새 오류가 없다. + +- [ ] **작업 6: 수동 확인 절차 정리** + - **대상 파일:** `/Users/woozooni/Documents/trae_projects/skillDesk/README.md` (검토) + - **할 일:** 사용자가 직접 확인할 수 있도록 기본 포트 실행과 대체 포트 실행 시 어떤 주소를 열어야 하는지 최종 점검한다. + - **실행 명령:** + ```bash + uvicorn backend.main:app --host 127.0.0.1 --port 8001 + python3 -m http.server 5174 -d frontend + ``` + - **기대 결과:** `frontend/src/main.js`의 `API_PORT`를 `8001`로 맞추면 `http://127.0.0.1:5174`에서 정상 동작해야 한다는 실행 흐름이 README에 반영된다. diff --git a/docs/superpowers/plans/2026-06-09-skill-docs-expansion.md b/docs/superpowers/plans/2026-06-09-skill-docs-expansion.md new file mode 100644 index 0000000..eb5c8c3 --- /dev/null +++ b/docs/superpowers/plans/2026-06-09-skill-docs-expansion.md @@ -0,0 +1,207 @@ +# Skill 문서 확장 구현 계획 +> **에이전트 작업자용:** REQUIRED SUB-SKILL: 현재 세션에서는 인라인으로 실행한다. Steps use checkbox (`- [ ]`) syntax for tracking. +**Goal:** 10개 스킬 문서를 원문에 더 가깝게 확장하고, README와 TRAE 테스트 시나리오 문서를 추가한다. +**Architecture:** 기존 `.trae/skills/*/SKILL.md`를 스킬 성격별로 확장하고, 저장소 루트에는 탐색용 README를, `docs/`에는 실행 가능한 테스트 시나리오 문서를 둔다. 검증은 Markdown 진단과 문서 간 링크/명칭 일관성 확인으로 마무리한다. +**Tech Stack:** Markdown, Trae skill frontmatter, VS Code diagnostics +--- + +### Task 1: 프로세스 스킬 문서 확장 +**Files:** +- Modify: `.trae/skills/brainstorming/SKILL.md` +- Modify: `.trae/skills/systematic-debugging/SKILL.md` +- Modify: `.trae/skills/writing-plans/SKILL.md` +- Modify: `.trae/skills/using-superpowers/SKILL.md` +- Modify: `.trae/skills/karpathy-guidelines/SKILL.md` +- Test: 문서 진단 확인 + +- [ ] **Step 1: 현재 프로세스 스킬 문서를 다시 읽어 섹션 공통 틀을 고정** +Read: +```text +.trae/skills/brainstorming/SKILL.md +.trae/skills/systematic-debugging/SKILL.md +.trae/skills/writing-plans/SKILL.md +.trae/skills/using-superpowers/SKILL.md +.trae/skills/karpathy-guidelines/SKILL.md +``` +Expected: 각 문서에 공통으로 들어갈 섹션(개요, 적용 시점, 워크플로, 금지 사항, 기대 결과)을 정할 수 있다. + +- [ ] **Step 2: brainstorming 문서를 원문 흐름에 가깝게 확장** +Include: +```markdown +## 체크리스트 +## 프로세스 흐름 +## 설계 제시 규칙 +## 문서화와 사용자 검토 게이트 +## 시각 보조 도구 사용 기준 +``` +Expected: 설계 전 구현 금지, 한 번에 한 질문, 2~3개 접근법 제안, writing-plans로 전환 규칙이 모두 드러난다. + +- [ ] **Step 3: systematic-debugging 문서를 4단계 절차 중심으로 확장** +Include: +```markdown +## 철칙 +## 1단계: 근본 원인 조사 +## 2단계: 패턴 분석 +## 3단계: 가설과 검증 +## 4단계: 구현 +## 중단 신호 +``` +Expected: 수정 전에 조사, 증거 기반 추적, 최소 변경 검증, 3회 이상 실패 시 구조 재검토가 명확해진다. + +- [ ] **Step 4: writing-plans 문서를 계획 품질 기준 중심으로 확장** +Include: +```markdown +## 파일 구조 먼저 정의 +## 작업 단위 규칙 +## 계획 문서 헤더 +## 금지 사항 +## 자체 검토 +## 완료 후 인계 +``` +Expected: placeholder 금지, 작은 단계, 명확한 파일 경로, 검증 가능한 명령이 강조된다. + +- [ ] **Step 5: using-superpowers와 karpathy-guidelines를 운영 규칙 중심으로 확장** +Include: +```markdown +## 최우선 규칙 +## 스킬 우선 적용 순서 +## 흔한 자기합리화 경고 +## 코딩 전에 먼저 생각하기 +## 단순함 우선 +## 수술하듯 수정하기 +## 목표 기반 실행 +``` +Expected: 스킬 선적용 원칙과 과설계 방지 원칙이 각각 독립적으로 읽혀야 한다. + +- [ ] **Step 6: 진단 확인** +Run: Markdown diagnostics for the five edited files +Expected: 진단 오류 없음 + +### Task 2: UI/구현/탐색 스킬 문서 확장 +**Files:** +- Modify: `.trae/skills/frontend-design/SKILL.md` +- Modify: `.trae/skills/ui-ux-pro-max/SKILL.md` +- Modify: `.trae/skills/find-skills/SKILL.md` +- Modify: `.trae/skills/webapp-testing/SKILL.md` +- Modify: `.trae/skills/agent-browser/SKILL.md` +- Test: 문서 진단 확인 + +- [ ] **Step 1: 현재 다섯 문서를 다시 읽고 성격별 확장 포인트 정리** +Read: +```text +.trae/skills/frontend-design/SKILL.md +.trae/skills/ui-ux-pro-max/SKILL.md +.trae/skills/find-skills/SKILL.md +.trae/skills/webapp-testing/SKILL.md +.trae/skills/agent-browser/SKILL.md +``` +Expected: 디자인형, 탐색형, 테스트형, 자동화형 문서에 필요한 추가 섹션이 정리된다. + +- [ ] **Step 2: frontend-design 문서를 미학 방향성과 금지 패턴 중심으로 확장** +Include: +```markdown +## 디자인 사고 +## 미학 가이드라인 +## 반드시 피할 것 +## 구현 복잡도와 미학의 일치 +## 산출물 기대치 +``` +Expected: 흔한 AI 스타일 회피, 타이포그래피/색상/모션/공간 구성 원칙이 상세해진다. + +- [ ] **Step 3: ui-ux-pro-max 문서를 적용 조건과 우선순위 점검 기준 중심으로 확장** +Include: +```markdown +## 언제 적용할지 +## 반드시 사용할 상황 +## 권장 상황 +## 불필요한 상황 +## 우선순위별 검토 항목 +## 산출물 기준 +``` +Expected: 웹/모바일 UI 품질 관리용 종합 규칙처럼 읽힌다. + +- [ ] **Step 4: find-skills, webapp-testing, agent-browser 문서를 실행 절차 중심으로 확장** +Include: +```markdown +## 검색 절차 +## 품질 검증 +## 정찰 후 행동 패턴 +## with_server.py 사용 원칙 +## agent-browser skills get core +## 특수 가이드 +``` +Expected: 사용자가 바로 명령과 판단 기준을 가져다 쓸 수 있다. + +- [ ] **Step 5: 진단 확인** +Run: Markdown diagnostics for the five edited files +Expected: 진단 오류 없음 + +### Task 3: README와 테스트 시나리오 문서 작성 +**Files:** +- Create: `README.md` +- Create: `docs/test-scenarios.md` +- Test: 문서 진단 확인 + +- [ ] **Step 1: README 초안 작성** +Include: +```markdown +# skillDesk +## 프로젝트 소개 +## 포함된 스킬 +## 디렉터리 구조 +## TRAE에서 사용하는 방법 +## 추천 사용 흐름 +## 테스트 시나리오 +``` +Expected: 저장소 목적, 10개 스킬, 사용 흐름을 처음 보는 사람도 이해할 수 있다. + +- [ ] **Step 2: 테스트 시나리오 문서 작성** +Include: +```markdown +# TRAE 테스트 시나리오 +## 공통 사용법 +## brainstorming 시나리오 +## frontend-design 시나리오 +## ... +## agent-browser 시나리오 +``` +Expected: 각 스킬당 최소 1개 프롬프트, 기대 동작, 확인 포인트가 담긴다. + +- [ ] **Step 3: README와 테스트 문서 간 링크 연결** +Add: +```markdown +[테스트 시나리오](./docs/test-scenarios.md) +[brainstorming](./.trae/skills/brainstorming/SKILL.md) +``` +Expected: README에서 주요 문서로 빠르게 이동할 수 있다. + +- [ ] **Step 4: 진단 확인** +Run: Markdown diagnostics for `README.md` and `docs/test-scenarios.md` +Expected: 진단 오류 없음 + +### Task 4: 최종 검증과 정리 +**Files:** +- Modify: 전체 문서 일관성 점검 결과에 따라 필요한 파일 +- Test: 전체 신규/수정 Markdown 파일 진단 확인 + +- [ ] **Step 1: 문서 명칭과 링크 일관성 점검** +Check: +```text +README.md +docs/test-scenarios.md +.trae/skills/*/SKILL.md +``` +Expected: 스킬 이름, 링크 경로, 설명 용어가 서로 충돌하지 않는다. + +- [ ] **Step 2: Markdown 진단 일괄 확인** +Run: diagnostics for all touched markdown files +Expected: 진단 오류 없음 + +- [ ] **Step 3: 결과 요약 작성** +Include: +```text +확장한 스킬 목록 +추가한 문서 목록 +검증 결과 +``` +Expected: 사용자가 바로 산출물을 훑어볼 수 있다. diff --git a/docs/superpowers/plans/2026-06-09-sqlite-fastapi-vue-crud.md b/docs/superpowers/plans/2026-06-09-sqlite-fastapi-vue-crud.md new file mode 100644 index 0000000..eb812ce --- /dev/null +++ b/docs/superpowers/plans/2026-06-09-sqlite-fastapi-vue-crud.md @@ -0,0 +1,198 @@ +# SQLite + FastAPI + Vue CRUD 구현 계획 +> **에이전트 작업자용:** 각 작업은 체크박스(`- [ ]`)로 추적합니다. +**목표:** SQLite의 `messages` 테이블 데이터를 FastAPI CRUD API로 조작하고 Vue 화면에서 생성, 조회, 수정, 삭제할 수 있게 만든다. +**아키텍처:** 백엔드는 `sqlite3`와 FastAPI로 단순 CRUD 엔드포인트를 제공하고, 프론트엔드는 브라우저용 Vue ESM 번들로 목록형 CRUD UI를 구현한다. 구현은 기존 파일 구조를 유지하면서 최소한의 상태만 추가하고, 마지막에 API와 화면 흐름을 직접 검증한다. +**기술 스택:** Python 3, FastAPI, sqlite3, Vue 3 ESM, 정적 HTML +--- + +- [ ] **작업 1: DB 초기화 스크립트 유지 여부 점검** + - **대상 파일:** `/Users/woozooni/Documents/trae_projects/skillDesk/backend/init_db.py` (수정) + - **할 일:** `messages` 테이블 구조가 CRUD 요구사항에 충분한지 확인하고, 초기 데이터 `hello world` 1건을 유지하는 방식으로 정리한다. + - **최소 구현 예시:** + ```python + cursor.execute( + "CREATE TABLE IF NOT EXISTS messages (id INTEGER PRIMARY KEY AUTOINCREMENT, content TEXT NOT NULL)" + ) + cursor.execute("DELETE FROM messages") + cursor.execute("INSERT INTO messages (content) VALUES (?)", ("hello world",)) + ``` + - **검증 명령:** `python3 backend/init_db.py` + - **기대 결과:** `backend/app.db`가 다시 생성되거나 갱신되고, `messages` 테이블에 `hello world` 1건이 들어간다. + +- [ ] **작업 2: FastAPI용 요청 모델과 DB 헬퍼 추가** + - **대상 파일:** `/Users/woozooni/Documents/trae_projects/skillDesk/backend/main.py` (수정) + - **할 일:** SQLite 연결 헬퍼, 메시지 직렬화 헬퍼, 입력 검증용 Pydantic 모델을 추가한다. + - **최소 구현 예시:** + ```python + class MessagePayload(BaseModel): + content: str + + @field_validator("content") + @classmethod + def validate_content(cls, value: str) -> str: + stripped_value = value.strip() + if not stripped_value: + raise ValueError("Content must not be empty") + return stripped_value + ``` + - **검증 명령:** `python3 -m py_compile backend/main.py` + - **기대 결과:** API 함수들이 공통 검증 로직과 연결 헬퍼를 재사용할 준비가 된다. + +- [ ] **작업 3: 메시지 목록 조회 API 구현** + - **대상 파일:** `/Users/woozooni/Documents/trae_projects/skillDesk/backend/main.py` (수정) + - **할 일:** `GET /api/messages` 엔드포인트를 추가해 전체 메시지 목록을 `id` 오름차순으로 반환한다. + - **최소 구현 예시:** + ```python + @app.get("/api/messages") + def list_messages() -> list[dict[str, object]]: + with get_connection() as connection: + rows = connection.execute( + "SELECT id, content FROM messages ORDER BY id ASC" + ).fetchall() + return [serialize_message(row) for row in rows] + ``` + - **검증 명령:** `python3 -c "from backend.main import list_messages; print(list_messages())"` + - **기대 결과:** `hello world`가 포함된 리스트가 출력된다. + +- [ ] **작업 4: 메시지 생성 API 구현** + - **대상 파일:** `/Users/woozooni/Documents/trae_projects/skillDesk/backend/main.py` (수정) + - **할 일:** `POST /api/messages` 엔드포인트를 추가해 메시지를 저장하고 생성된 `id`와 `content`를 반환한다. + - **최소 구현 예시:** + ```python + @app.post("/api/messages", status_code=201) + def create_message(payload: MessagePayload) -> dict[str, object]: + with get_connection() as connection: + cursor = connection.execute( + "INSERT INTO messages (content) VALUES (?)", + (payload.content,), + ) + connection.commit() + return {"id": cursor.lastrowid, "content": payload.content} + ``` + - **검증 명령:** `python3 - <<'PY'\nfrom backend.main import create_message, MessagePayload\nprint(create_message(MessagePayload(content='created from plan')))\nPY` + - **기대 결과:** 새 `id`와 저장된 `content`가 출력된다. + +- [ ] **작업 5: 메시지 수정 API 구현** + - **대상 파일:** `/Users/woozooni/Documents/trae_projects/skillDesk/backend/main.py` (수정) + - **할 일:** `PUT /api/messages/{id}` 엔드포인트를 추가해 해당 메시지를 수정하고, 없는 `id`는 404를 반환한다. + - **최소 구현 예시:** + ```python + @app.put("/api/messages/{message_id}") + def update_message(message_id: int, payload: MessagePayload) -> dict[str, object]: + with get_connection() as connection: + cursor = connection.execute( + "UPDATE messages SET content = ? WHERE id = ?", + (payload.content, message_id), + ) + connection.commit() + if cursor.rowcount == 0: + raise HTTPException(status_code=404, detail="Message not found") + return {"id": message_id, "content": payload.content} + ``` + - **검증 명령:** `python3 - <<'PY'\nfrom backend.main import update_message, MessagePayload\nprint(update_message(1, MessagePayload(content='updated hello world')))\nPY` + - **기대 결과:** 수정된 메시지 객체가 출력된다. + +- [ ] **작업 6: 메시지 삭제 API 구현** + - **대상 파일:** `/Users/woozooni/Documents/trae_projects/skillDesk/backend/main.py` (수정) + - **할 일:** `DELETE /api/messages/{id}` 엔드포인트를 추가해 해당 메시지를 삭제하고 성공 여부를 반환한다. + - **최소 구현 예시:** + ```python + @app.delete("/api/messages/{message_id}") + def delete_message(message_id: int) -> dict[str, bool]: + with get_connection() as connection: + cursor = connection.execute( + "DELETE FROM messages WHERE id = ?", + (message_id,), + ) + connection.commit() + if cursor.rowcount == 0: + raise HTTPException(status_code=404, detail="Message not found") + return {"success": True} + ``` + - **검증 명령:** `python3 - <<'PY'\nfrom backend.main import delete_message\nprint(delete_message(1))\nPY` + - **기대 결과:** `{'success': True}`가 출력된다. + +- [ ] **작업 7: Vue 상태를 목록형 CRUD 구조로 변경** + - **대상 파일:** `/Users/woozooni/Documents/trae_projects/skillDesk/frontend/src/main.js` (수정) + - **할 일:** 단일 `message` 상태를 `messages`, `newContent`, `editingId`, `editingContent` 상태로 교체하고 목록 조회 함수를 만든다. + - **최소 구현 예시:** + ```javascript + const messages = ref([]) + const newContent = ref('') + const editingId = ref(null) + const editingContent = ref('') + ``` + - **검증 명령:** `python3 -m py_compile backend/main.py` + - **기대 결과:** 프론트 로직이 CRUD API 구조와 맞는 상태 이름으로 정리된다. + +- [ ] **작업 8: Vue 생성/수정/삭제 액션 구현** + - **대상 파일:** `/Users/woozooni/Documents/trae_projects/skillDesk/frontend/src/main.js` (수정) + - **할 일:** `fetch`를 사용해 생성, 수정, 삭제 요청을 보내고 성공 후 목록을 다시 불러오거나 상태를 갱신한다. + - **최소 구현 예시:** + ```javascript + const createMessage = async () => { + await fetch(`${API_BASE_URL}/messages`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ content: newContent.value.trim() }), + }) + await loadMessages() + } + ``` + - **검증 명령:** `python3 backend/init_db.py` + - **기대 결과:** 프론트에서 각 버튼이 API 호출 함수와 연결된다. + +- [ ] **작업 9: Vue 템플릿을 목록형 CRUD UI로 교체** + - **대상 파일:** `/Users/woozooni/Documents/trae_projects/skillDesk/frontend/src/main.js` (수정) + - **할 일:** 입력 폼, 목록, 인라인 편집, 빈 상태, 에러 상태를 모두 표시하는 템플릿으로 교체한다. + - **최소 구현 예시:** + ```html +
+ + +
+
  • + {{ message.content }} +
  • + ``` + - **검증 명령:** `python3 -m http.server 5173 -d frontend` + - **기대 결과:** 브라우저에서 목록형 CRUD 화면이 렌더링된다. + +- [ ] **작업 10: README 실행/검증 문구를 CRUD 기준으로 갱신** + - **대상 파일:** `/Users/woozooni/Documents/trae_projects/skillDesk/README.md` (수정) + - **할 일:** 단일 조회 설명을 목록형 CRUD 예제 설명으로 바꾸고, 확인 포인트를 CRUD 흐름에 맞게 수정한다. + - **최소 구현 예시:** + ```markdown + - 백엔드 API: `http://127.0.0.1:8000/api/messages` + - 프론트엔드 화면: `http://127.0.0.1:5173` + - 정상 동작 시 메시지 추가, 수정, 삭제가 모두 가능하다. + ``` + - **검증 명령:** `python3 -m py_compile backend/init_db.py backend/main.py` + - **기대 결과:** README만 읽어도 CRUD 예제 실행과 확인 방법을 이해할 수 있다. + +- [ ] **작업 11: 백엔드 문법과 API 흐름 검증** + - **대상 파일:** `/Users/woozooni/Documents/trae_projects/skillDesk/backend/init_db.py` (검증), `/Users/woozooni/Documents/trae_projects/skillDesk/backend/main.py` (검증) + - **할 일:** DB를 초기화하고, Python에서 API 함수를 직접 호출해 생성, 조회, 수정, 삭제 흐름이 모두 동작하는지 확인한다. + - **실행 명령:** + ```bash + python3 backend/init_db.py + python3 - <<'PY' + from backend.main import MessagePayload, create_message, delete_message, list_messages, update_message + print("LIST-1", list_messages()) + created = create_message(MessagePayload(content="plan create")) + print("CREATED", created) + print("LIST-2", list_messages()) + updated = update_message(created["id"], MessagePayload(content="plan update")) + print("UPDATED", updated) + print("LIST-3", list_messages()) + print("DELETED", delete_message(created["id"])) + print("LIST-4", list_messages()) + PY + ``` + - **기대 결과:** 각 단계 출력에 따라 CRUD가 순서대로 성공한다. + +- [ ] **작업 12: 진단 점검 및 인라인 실행 정리** + - **대상 파일:** `/Users/woozooni/Documents/trae_projects/skillDesk/backend/main.py` (진단), `/Users/woozooni/Documents/trae_projects/skillDesk/frontend/src/main.js` (진단), `/Users/woozooni/Documents/trae_projects/skillDesk/README.md` (진단) + - **할 일:** 진단 도구로 오류를 확인하고 바로 수정한 뒤, 변경 파일과 실행 방법을 사용자에게 인계한다. + - **검증 도구:** IDE 진단 확인 + - **기대 결과:** 새 오류 없이 CRUD 예제를 실행할 수 있는 상태로 마무리된다. diff --git a/docs/superpowers/plans/2026-06-09-sqlite-fastapi-vue-hello-world.md b/docs/superpowers/plans/2026-06-09-sqlite-fastapi-vue-hello-world.md new file mode 100644 index 0000000..4105f2c --- /dev/null +++ b/docs/superpowers/plans/2026-06-09-sqlite-fastapi-vue-hello-world.md @@ -0,0 +1,155 @@ +# SQLite + FastAPI + Vue Hello World 구현 계획 +> **에이전트 작업자용:** 현재 세션에서 인라인으로 실행한다. Steps use checkbox (`- [ ]`) syntax for tracking. +**Goal:** SQLite에 저장된 `'hello world'` 값을 FastAPI API를 통해 Vue 화면에 표시하는 최소 실행 예제를 만든다. +**Architecture:** `backend/`에는 SQLite 초기화 스크립트와 FastAPI API를 두고, `frontend/`에는 Vite 기반 Vue 앱을 둔다. Vue는 `/api/message`를 호출해 DB 값을 받아 렌더링한다. +**Tech Stack:** Python, FastAPI, sqlite3, uvicorn, Vue 3, Vite +--- + +### Task 1: 백엔드 기본 구조 만들기 +**Files:** +- Create: `backend/requirements.txt` +- Create: `backend/init_db.py` +- Create: `backend/main.py` +- Test: `python3 -m py_compile backend/init_db.py backend/main.py` + +- [ ] **Step 1: requirements 파일 작성** +Content: +```text +fastapi +uvicorn +``` +Expected: 백엔드 설치 의존성이 명확해진다. + +- [ ] **Step 2: SQLite 초기화 스크립트 작성** +Code should: +```python +import sqlite3 +from pathlib import Path +``` +Behavior: +- `app.db` 생성 +- `messages` 테이블 생성 +- 기존 데이터 삭제 후 `'hello world'` 삽입 +Expected: `python3 backend/init_db.py` 실행 시 DB 파일과 샘플 데이터가 생성된다. + +- [ ] **Step 3: FastAPI 앱 작성** +Code should: +```python +from fastapi import FastAPI, HTTPException +from fastapi.middleware.cors import CORSMiddleware +``` +Behavior: +- `GET /api/message` +- SQLite에서 첫 메시지 조회 +- 없으면 404 반환 +Expected: 앱이 JSON으로 `{ "message": "hello world" }`를 반환할 수 있다. + +- [ ] **Step 4: Python 문법 확인** +Run: +```bash +python3 -m py_compile backend/init_db.py backend/main.py +``` +Expected: 출력 없이 종료 + +### Task 2: 프론트엔드 기본 구조 만들기 +**Files:** +- Create: `frontend/package.json` +- Create: `frontend/vite.config.js` +- Create: `frontend/index.html` +- Create: `frontend/src/main.js` +- Test: `npm run build` + +- [ ] **Step 1: package.json 작성** +Content should include: +```json +{ + "scripts": { + "dev": "vite", + "build": "vite build" + } +} +``` +Expected: Vue/Vite 개발 및 빌드 명령이 준비된다. + +- [ ] **Step 2: Vite 프록시 설정 작성** +Behavior: +- `/api` 요청을 `http://127.0.0.1:8000`으로 프록시 +Expected: 프론트엔드에서 상대 경로로 API 호출 가능 + +- [ ] **Step 3: index.html 작성** +Behavior: +- `#app` 마운트 포인트 제공 +Expected: Vue 앱이 정상적으로 마운트 가능 + +- [ ] **Step 4: Vue 메인 앱 작성** +Behavior: +- 로딩 상태 표시 +- `/api/message` fetch +- 성공 시 메시지 표시 +- 실패 시 에러 문구 표시 +Expected: 브라우저에서 `'hello world'`를 볼 수 있는 최소 화면이 구성된다. + +- [ ] **Step 5: 프론트엔드 빌드 확인** +Run: +```bash +npm install +npm run build +``` +Expected: 빌드 성공 + +### Task 3: 실행 문서 정리 +**Files:** +- Modify: `README.md` +- Test: 문서 진단 확인 + +- [ ] **Step 1: README에 예제 실행 섹션 추가** +Include: +```markdown +## SQLite + FastAPI + Vue 예제 실행 +``` +Details: +- Python 가상환경 생성 +- 백엔드 의존성 설치 +- DB 초기화 +- FastAPI 실행 +- 프론트엔드 설치/실행 +- 접속 URL 안내 +Expected: 처음 보는 사용자도 따라 실행 가능 + +### Task 4: 기본 동작 검증 +**Files:** +- Modify: 필요 시 문제 있는 파일 +- Test: DB 초기화, Python 문법, 프론트엔드 빌드 + +- [ ] **Step 1: DB 초기화 실행** +Run: +```bash +python3 backend/init_db.py +``` +Expected: `backend/app.db` 생성 + +- [ ] **Step 2: FastAPI 의존성 설치 후 앱 import 확인** +Run: +```bash +python3 -m venv .venv +.venv/bin/pip install -r backend/requirements.txt +.venv/bin/python -c "from backend.main import app; print(app.title)" +``` +Expected: 앱 타이틀 출력 + +- [ ] **Step 3: 프론트엔드 설치 및 빌드** +Run: +```bash +npm install +npm run build +``` +Expected: 빌드 성공 + +- [ ] **Step 4: 결과 요약 정리** +Include: +```text +생성 파일 +실행 방법 +검증 결과 +``` +Expected: 사용자가 바로 실행을 이어갈 수 있다. diff --git a/docs/superpowers/specs/2026-06-09-global-config-design.md b/docs/superpowers/specs/2026-06-09-global-config-design.md new file mode 100644 index 0000000..6dae97e --- /dev/null +++ b/docs/superpowers/specs/2026-06-09-global-config-design.md @@ -0,0 +1,108 @@ +# SQLite + FastAPI + Vue 전역 설정 분리 설계 + +## 목표 + +프론트엔드가 백엔드 API 주소를 코드 내부 상수에 직접 고정하지 않고, `index.html`의 전역 설정 객체를 통해 읽도록 바꿔서 포트 변경 시 자바스크립트 로직을 수정하지 않아도 되게 만든다. + +## 배경 + +현재 예제는 `frontend/src/main.js`에 `API_HOST`, `API_PORT`, `API_BASE_URL` 상수가 직접 선언되어 있다. + +이 구조는 이전보다 단순하지만, 포트를 바꿀 때 여전히 `main.js`를 수정해야 한다. 예제 사용성 관점에서는 HTML 설정만 바꾸고 Vue 로직은 그대로 두는 쪽이 더 이해하기 쉽다. + +## 범위 + +이번 작업은 다음을 포함한다. + +- `frontend/index.html`에 전역 설정 객체 추가 +- `frontend/src/main.js`가 전역 설정 객체를 읽도록 변경 +- 설정이 없을 때 기본값 `127.0.0.1:8000` 사용 +- README에 설정 위치를 `index.html` 기준으로 설명 + +이번 작업은 다음을 포함하지 않는다. + +- 별도 `config.js` 파일 추가 +- `.env` 기반 설정 시스템 도입 +- URL 쿼리 파라미터 기반 포트 주입 +- 백엔드 설정 시스템 변경 + +## 구조 + +### 1. HTML 전역 설정 + +`frontend/index.html`에 아래 형태의 전역 객체를 둔다. + +```html + +``` + +이 값은 프론트엔드 애플리케이션이 시작되기 전에 정의되어야 한다. + +### 2. 프론트엔드 설정 읽기 + +`frontend/src/main.js`는 `window.APP_CONFIG`를 읽어 아래 값을 만든다. + +- `apiHost` +- `apiPort` +- `API_BASE_URL` + +설정이 없거나 일부 속성이 빠져 있으면 기본값을 사용한다. + +예시 구조: + +```javascript +const appConfig = window.APP_CONFIG ?? {} +const apiHost = appConfig.apiHost || 'http://127.0.0.1' +const apiPort = appConfig.apiPort || '8000' +const API_BASE_URL = `${apiHost}:${apiPort}/api` +``` + +## 데이터 흐름 + +1. 브라우저가 `index.html`을 먼저 읽는다. +2. `window.APP_CONFIG`가 전역으로 설정된다. +3. `main.js`가 이 값을 읽어 실제 API 주소를 조합한다. +4. Vue 애플리케이션은 조합된 API 주소로 CRUD 요청을 보낸다. + +## 기본값 처리 + +전역 설정 객체가 없더라도 예제가 깨지지 않도록 기본값을 유지한다. + +- 기본 호스트: `http://127.0.0.1` +- 기본 포트: `8000` + +즉, 설정 객체는 선택 사항이지만 존재하면 우선 적용된다. + +## README 문서화 방식 + +README에는 아래 내용을 포함한다. + +- 기본 실행 예시 +- `index.html`의 `window.APP_CONFIG` 위치 설명 +- 포트 충돌 시 `apiPort`를 어떻게 바꾸는지 설명 +- 프론트 정적 서버 포트는 여전히 실행 명령에서 따로 바꾼다는 점 + +## 오류 처리 + +- 전역 설정이 없으면 기본값으로 동작한다. +- 전역 설정의 값이 잘못되어 연결에 실패하면 기존 fetch 에러 문구를 보여준다. +- README에 백엔드 포트와 `apiPort`가 같아야 한다는 점을 분명히 적는다. + +## 검증 기준 + +다음 조건을 만족하면 성공이다. + +- `main.js`를 수정하지 않고 `index.html`의 `apiPort` 값만 바꿔 다른 백엔드 포트로 연결할 수 있다. +- 전역 설정이 없어도 기본값으로 기존 CRUD 기능이 유지된다. +- README만 읽어도 설정 위치와 수정 방법을 이해할 수 있다. + +## 구현 원칙 + +- 기존 CRUD 기능은 그대로 유지한다. +- 설정 시스템은 예제 규모에 맞게 가장 단순한 수준으로 둔다. +- 포트 변경 지점은 한 곳으로 모은다. diff --git a/docs/superpowers/specs/2026-06-09-port-config-split-design.md b/docs/superpowers/specs/2026-06-09-port-config-split-design.md new file mode 100644 index 0000000..9d4c936 --- /dev/null +++ b/docs/superpowers/specs/2026-06-09-port-config-split-design.md @@ -0,0 +1,118 @@ +# SQLite + FastAPI + Vue 포트 설정 분리 설계 + +## 목표 + +현재 CRUD 예제의 백엔드와 프론트 실행 포트를 문서와 코드에서 더 분리해, 로컬 포트 충돌이 있어도 최소 수정으로 다시 실행할 수 있게 만든다. + +## 배경 + +기존 예제는 아래 주소를 기본값으로 사용한다. + +- 백엔드 API: `http://127.0.0.1:8000` +- 프론트 정적 서버: `http://127.0.0.1:5173` + +실행 중 실제로 `8000`, `5173` 포트가 이미 사용 중이어서 새 서버를 같은 포트에 띄우지 못했다. 따라서 포트를 바꾸는 방법이 코드와 문서에 더 명확히 드러나야 한다. + +## 범위 + +이번 작업은 다음을 포함한다. + +- 프론트엔드의 API 주소 상수 구조를 분리 +- 백엔드 포트 변경 방법을 README에 명시 +- 프론트 정적 서버 포트 변경 방법을 README에 명시 +- 기본 포트와 대체 포트 예시를 함께 제공 + +이번 작업은 다음을 포함하지 않는다. + +- 별도 설정 파일 도입 +- `.env` 기반 환경변수 시스템 추가 +- 프론트 번들러 도입 +- 런타임 자동 포트 탐지 + +## 접근 방식 + +### 1. 프론트 상수 분리 + +`frontend/src/main.js`의 API 주소를 하나의 긴 문자열 대신 아래 상수로 분리한다. + +- `API_HOST` +- `API_PORT` +- `API_BASE_URL` + +예시 구조: + +```javascript +const API_HOST = 'http://127.0.0.1' +const API_PORT = '8000' +const API_BASE_URL = `${API_HOST}:${API_PORT}/api` +``` + +이렇게 하면 백엔드 포트를 `8001` 같은 값으로 바꿀 때 한 줄만 수정하면 된다. + +### 2. 백엔드 실행 포트는 명령에서 제어 + +백엔드는 FastAPI 코드 내부에서 포트를 고정하지 않는다. 실행 포트는 `uvicorn` 명령의 `--port` 옵션으로 제어한다. + +기본 실행: + +```bash +uvicorn backend.main:app --host 127.0.0.1 --port 8000 +``` + +대체 실행: + +```bash +uvicorn backend.main:app --host 127.0.0.1 --port 8001 +``` + +### 3. 프론트 정적 서버 포트는 명령에서 제어 + +프론트 정적 서버도 코드가 아니라 실행 명령에서 포트를 선택한다. + +기본 실행: + +```bash +python3 -m http.server 5173 -d frontend +``` + +대체 실행: + +```bash +python3 -m http.server 5174 -d frontend +``` + +## README 문서화 방식 + +README에는 아래 내용을 포함한다. + +- 기본 포트 실행 예시 +- 포트 충돌 시 대체 실행 예시 +- 프론트에서 `API_PORT` 값을 어디서 바꾸는지 설명 +- 백엔드와 프론트 포트는 서로 독립적으로 바꿀 수 있다는 점 + +## 데이터 흐름 + +1. 사용자가 백엔드를 원하는 포트로 실행한다. +2. 프론트는 `API_HOST`와 `API_PORT`를 조합해 API 주소를 만든다. +3. 프론트 정적 서버는 별도 포트에서 독립적으로 제공된다. +4. 포트 충돌 시 백엔드와 프론트 포트를 각각 따로 변경할 수 있다. + +## 오류 처리 + +- 프론트가 잘못된 백엔드 포트를 가리키면 기존처럼 fetch 에러 문구를 보여준다. +- README에 포트 불일치 점검 순서를 넣어 사용자가 원인을 쉽게 찾을 수 있게 한다. + +## 검증 기준 + +다음 조건을 만족하면 성공이다. + +- 프론트 코드에서 백엔드 포트를 한 곳만 바꿔도 API 주소가 함께 변경된다. +- README만 읽어도 기본 포트와 대체 포트 실행 방법을 이해할 수 있다. +- 기존 CRUD 기능은 변경 없이 유지된다. +- 포트 충돌 상황에서 사용자가 다음 행동을 바로 선택할 수 있다. + +## 구현 원칙 + +- 기존 CRUD 구조를 유지한다. +- 설정 분리를 위해 새 시스템을 과하게 도입하지 않는다. +- 실행 문서는 실제 충돌 상황을 해결하는 데 바로 도움이 되도록 쓴다. diff --git a/docs/superpowers/specs/2026-06-09-skill-docs-design.md b/docs/superpowers/specs/2026-06-09-skill-docs-design.md new file mode 100644 index 0000000..c0a121b --- /dev/null +++ b/docs/superpowers/specs/2026-06-09-skill-docs-design.md @@ -0,0 +1,190 @@ +# skillDesk 문서 확장 설계 + +## 목표 + +현재 프로젝트의 10개 스킬 문서를 원문에 더 가깝게 확장하고, 사용자가 바로 이해하고 검증할 수 있도록 루트 README와 TRAE 실사용 테스트 시나리오 문서를 추가한다. + +## 범위 + +이번 작업은 다음 세 가지를 포함한다. + +1. `.trae/skills/*/SKILL.md` 10개 문서 확장 +2. 루트 `README.md` 신규 작성 +3. `docs/test-scenarios.md` 신규 작성 + +이번 작업은 다음을 포함하지 않는다. + +- 실제 스킬 실행 엔진 개발 +- 자동 테스트 실행 스크립트 작성 +- 외부 설치 자동화 +- Git 커밋 자동 생성 + +## 현재 상태 + +- 루트에는 [skillText.md](file:///Users/woozooni/Documents/trae_projects/skillDesk/skillText.md) 가 있고, 10개 스킬 목록의 한국어 번역이 있다. +- `.trae/skills/` 아래에 10개 스킬 디렉터리와 `SKILL.md`가 생성되어 있다. +- 현재 스킬 문서는 핵심 요약형에 가깝고, 원문 세부 규칙과 절차 복원 수준은 낮다. +- 루트 `README.md`는 아직 없다. +- 테스트 시나리오 문서도 아직 없다. + +## 설계 방향 + +### 1. 스킬 문서 확장 + +각 `SKILL.md`는 현재의 짧은 요약형에서 벗어나, 원문에 더 가까운 아래 구조를 갖는다. + +- 언제 사용하는지 +- 반드시 지켜야 하는 규칙 +- 단계별 작업 흐름 +- 권장/비권장 행동 +- 결과물 기대치 +- 필요 시 예시 프롬프트 또는 운영 팁 + +모든 스킬을 원문 그대로 기계 번역하는 방식은 피한다. 대신 다음 원칙을 따른다. + +- 원문 핵심 규칙, 체크리스트, 금지 사항은 최대한 보존한다. +- 한국어 사용성과 현재 프로젝트 맥락을 고려해 불필요한 외부 의존 서술은 줄인다. +- 지나치게 긴 원문은 구조화해서 읽기 쉽게 재편집한다. +- frontmatter `description`은 짧고 명확하게 유지한다. + +### 2. README 구조 + +루트 `README.md`는 프로젝트 안내문 역할을 하며 아래 내용을 포함한다. + +- 프로젝트 소개 +- 포함된 10개 스킬 목록 +- 디렉터리 구조 설명 +- TRAE에서 사용하는 방법 +- 추천 사용 흐름 +- 문서 확장 기준 설명 +- 테스트 시나리오 문서 위치 안내 + +README는 "이 저장소가 무엇인지, 어떻게 써야 하는지"를 처음 보는 사람도 바로 이해할 수 있게 작성한다. + +### 3. 테스트 시나리오 문서 + +`docs/test-scenarios.md`는 실제 TRAE에서 복붙 가능한 검증 시나리오 모음으로 작성한다. + +각 시나리오는 아래 형식을 따른다. + +- 시나리오 목적 +- 사전 조건 +- 입력 프롬프트 +- 기대 동작 +- 확인 포인트 + +10개 스킬 각각 최소 1개 이상의 대표 시나리오를 둔다. 필요하면 공통 시나리오도 추가한다. + +## 정보 구조 + +### 스킬 문서 일관성 규칙 + +모든 `SKILL.md`는 아래 섹션 순서를 가능한 한 맞춘다. + +1. 개요 +2. 언제 사용할지 +3. 핵심 규칙 +4. 단계 또는 워크플로 +5. 금지 사항 또는 안티 패턴 +6. 기대 결과 +7. 예시 또는 운영 팁 + +스킬마다 성격이 다르므로 완전히 동일한 틀을 강제하지는 않지만, 사용자 관점에서 탐색성이 유지되도록 한다. + +### README와 테스트 문서 연결 + +- README에서 테스트 시나리오 문서를 직접 링크한다. +- README에서 스킬별 문서 위치도 빠르게 찾을 수 있게 정리한다. +- 테스트 문서에서는 각 스킬 파일명을 명시해 사용자가 대응 관계를 이해할 수 있게 한다. + +## 구현 단위 + +### 단위 A: 기존 스킬 문서 확장 + +대상 파일: + +- `.trae/skills/brainstorming/SKILL.md` +- `.trae/skills/frontend-design/SKILL.md` +- `.trae/skills/ui-ux-pro-max/SKILL.md` +- `.trae/skills/systematic-debugging/SKILL.md` +- `.trae/skills/writing-plans/SKILL.md` +- `.trae/skills/find-skills/SKILL.md` +- `.trae/skills/using-superpowers/SKILL.md` +- `.trae/skills/karpathy-guidelines/SKILL.md` +- `.trae/skills/webapp-testing/SKILL.md` +- `.trae/skills/agent-browser/SKILL.md` + +접근 방식: + +- 이미 있는 한국어 문서를 기반으로 구조를 넓힌다. +- 원문에서 확인한 사용 시점, 워크플로, 금지 사항을 최대한 반영한다. +- 서로 중복되는 규칙은 표현은 달리하되 의미를 맞춘다. + +### 단위 B: README 작성 + +대상 파일: + +- `README.md` + +접근 방식: + +- 저장소 소개에서 시작해 사용 흐름으로 내려가는 구조를 사용한다. +- 표 또는 목록으로 10개 스킬을 빠르게 훑을 수 있게 한다. +- 문서 탐색 링크를 충분히 제공한다. + +### 단위 C: 테스트 시나리오 작성 + +대상 파일: + +- `docs/test-scenarios.md` + +접근 방식: + +- 각 스킬당 1개 이상 총 10개 이상의 대표 프롬프트를 작성한다. +- 실제 TRAE 사용자가 바로 실행할 수 있는 형태로 구체화한다. +- 기대 결과를 너무 추상적으로 쓰지 않고, 어떤 종류의 응답이 나와야 하는지 명시한다. + +## 품질 기준 + +완료 판단 기준은 다음과 같다. + +- 10개 스킬 문서가 현재보다 명확히 더 상세해진다. +- README만 읽어도 프로젝트 구조와 사용법을 이해할 수 있다. +- 테스트 시나리오 문서만으로 실제 검증을 시작할 수 있다. +- 문서 간 링크와 역할 분담이 자연스럽다. +- Markdown 진단 오류가 없다. + +## 리스크와 대응 + +### 리스크 1: 문서가 과도하게 길어짐 + +대응: + +- 핵심 규칙은 유지하되, 반복 표현은 줄인다. +- 표와 목록을 적극 사용한다. + +### 리스크 2: 원문 충실도와 한국어 가독성 충돌 + +대응: + +- 규칙과 단계는 원문에 가깝게 유지한다. +- 설명 문장은 한국어 사용성을 우선해 재구성한다. + +### 리스크 3: 테스트 시나리오가 추상적이 됨 + +대응: + +- 실제 입력 프롬프트를 그대로 넣는다. +- 기대 응답의 구조와 체크 포인트를 함께 적는다. + +## 검증 계획 + +- 수정 후 각 Markdown 파일에 대해 진단을 확인한다. +- README, 테스트 문서, 스킬 문서 간 링크와 명칭 일관성을 점검한다. +- 시나리오가 실제 스킬 설명과 어긋나지 않는지 교차 검토한다. + +## 최종 산출물 + +- 확장된 10개 `SKILL.md` +- 루트 `README.md` +- `docs/test-scenarios.md` diff --git a/docs/superpowers/specs/2026-06-09-sqlite-fastapi-vue-crud-design.md b/docs/superpowers/specs/2026-06-09-sqlite-fastapi-vue-crud-design.md new file mode 100644 index 0000000..ca49046 --- /dev/null +++ b/docs/superpowers/specs/2026-06-09-sqlite-fastapi-vue-crud-design.md @@ -0,0 +1,192 @@ +# SQLite + FastAPI + Vue CRUD 예제 설계 + +## 목표 + +기존의 단일 `'hello world'` 조회 예제를 확장해, SQLite에 저장된 메시지를 Vue 화면에서 생성(Create), 조회(Read), 수정(Update), 삭제(Delete)할 수 있는 목록형 CRUD 예제로 만든다. + +## 범위 + +이번 작업은 다음을 포함한다. + +- SQLite `messages` 테이블 유지 +- 메시지 목록 조회 API 추가 +- 메시지 생성 API 추가 +- 메시지 수정 API 추가 +- 메시지 삭제 API 추가 +- Vue 화면에서 목록형 CRUD UI 구현 +- 초기 데이터로 `hello world` 1건 유지 +- 실행 문서 업데이트 + +이번 작업은 다음을 포함하지 않는다. + +- 인증/권한 +- 검색/정렬/페이지네이션 +- 다중 테이블 관계 +- 복잡한 폼 검증 +- 배포 설정 + +## 구조 + +기존 분리형 구조를 그대로 유지한다. + +```text +skillDesk/ +├── backend/ +│ ├── init_db.py +│ ├── main.py +│ ├── requirements.txt +│ └── app.db +├── frontend/ +│ ├── index.html +│ └── src/ +│ └── main.js +└── README.md +``` + +## 데이터 모델 + +테이블명: `messages` + +컬럼: + +- `id` INTEGER PRIMARY KEY AUTOINCREMENT +- `content` TEXT NOT NULL + +메시지 단위는 매우 단순하게 유지한다. 별도 제목, 작성일, 상태 컬럼은 추가하지 않는다. + +## API 설계 + +### 1. 목록 조회 + +`GET /api/messages` + +응답 예시: + +```json +[ + { "id": 1, "content": "hello world" } +] +``` + +### 2. 생성 + +`POST /api/messages` + +요청 예시: + +```json +{ + "content": "new message" +} +``` + +응답 예시: + +```json +{ + "id": 2, + "content": "new message" +} +``` + +### 3. 수정 + +`PUT /api/messages/{id}` + +요청 예시: + +```json +{ + "content": "updated message" +} +``` + +응답 예시: + +```json +{ + "id": 1, + "content": "updated message" +} +``` + +### 4. 삭제 + +`DELETE /api/messages/{id}` + +응답 예시: + +```json +{ + "success": true +} +``` + +## 백엔드 설계 + +- FastAPI는 기존 CORS 설정을 유지한다. +- sqlite3 표준 라이브러리를 사용한다. +- 입력 모델은 최소한으로 `content` 문자열만 받는다. +- 빈 문자열은 거부한다. +- 존재하지 않는 id에 대한 수정/삭제는 404로 반환한다. + +## 프론트엔드 설계 + +### 화면 구성 + +- 상단 제목과 설명 +- 새 메시지 입력 폼 +- 메시지 목록 영역 +- 각 항목의 수정 / 삭제 버튼 +- 수정 모드일 때 인라인 입력창과 저장 / 취소 버튼 +- 로딩 / 에러 / 빈 목록 상태 표시 + +### 사용자 흐름 + +1. 페이지 진입 시 목록을 불러온다. +2. 입력창에 값을 넣고 생성 버튼을 누르면 메시지가 추가된다. +3. 각 항목의 수정 버튼을 누르면 해당 줄이 편집 모드로 바뀐다. +4. 저장 시 수정 API를 호출하고 목록을 갱신한다. +5. 삭제 시 삭제 API를 호출하고 목록을 갱신한다. + +### 상태 + +다음 상태를 최소로 둔다. + +- 전체 목록 +- 새 메시지 입력값 +- 현재 편집 중인 메시지 id +- 편집 중 입력값 +- 로딩 상태 +- 에러 상태 + +## 데이터 흐름 + +1. `init_db.py`가 DB를 만들고 `hello world`를 기본 데이터로 넣는다. +2. Vue는 페이지 로드 시 `GET /api/messages`를 호출한다. +3. 사용자가 생성/수정/삭제를 수행하면 해당 API를 호출한다. +4. 요청 성공 후 목록을 다시 불러오거나 로컬 상태를 갱신한다. + +## 오류 처리 + +- 빈 메시지 생성/수정은 프론트엔드와 백엔드 모두에서 막는다. +- 없는 메시지 수정/삭제는 404로 처리한다. +- API 실패 시 화면에 간단한 오류 문구를 표시한다. + +## 검증 기준 + +다음 조건을 만족하면 성공이다. + +- 초기 화면에 `hello world`가 포함된 목록이 표시된다. +- 새 메시지를 추가할 수 있다. +- 기존 메시지를 수정할 수 있다. +- 기존 메시지를 삭제할 수 있다. +- 삭제 후 목록이 즉시 반영된다. +- README 실행 방법이 최신 흐름에 맞게 정리된다. + +## 구현 원칙 + +- 기존 예제 구조를 최대한 유지한다. +- 불필요한 라이브러리는 추가하지 않는다. +- CRUD 흐름이 한눈에 보이는 최소 UI를 만든다. +- 과도한 추상화보다 이해하기 쉬운 코드를 우선한다. diff --git a/docs/superpowers/specs/2026-06-09-sqlite-fastapi-vue-hello-world-design.md b/docs/superpowers/specs/2026-06-09-sqlite-fastapi-vue-hello-world-design.md new file mode 100644 index 0000000..bfbb6e8 --- /dev/null +++ b/docs/superpowers/specs/2026-06-09-sqlite-fastapi-vue-hello-world-design.md @@ -0,0 +1,140 @@ +# SQLite + FastAPI + Vue Hello World 예제 설계 + +## 목표 + +SQLite 데이터베이스에 저장된 문자열 `'hello world'`를 Python FastAPI 백엔드가 읽고, Vue 프론트엔드가 API를 호출해 화면에 표시하는 최소 동작 예제를 만든다. + +## 범위 + +이번 예제는 다음 범위를 포함한다. + +- SQLite DB 파일 생성 +- 메시지 테이블 생성과 샘플 데이터 삽입 +- FastAPI에서 SQLite 데이터를 읽는 API 구현 +- Vue에서 API를 호출해 화면에 문자열 출력 +- 실행 방법 문서화 + +이번 예제는 다음 범위를 포함하지 않는다. + +- 사용자 입력 폼 +- CRUD 전체 기능 +- 인증/권한 +- 상태관리 라이브러리 +- 배포 구성 + +## 구조 + +예제는 프론트엔드와 백엔드를 분리한 최소 구조로 만든다. + +```text +skillDesk/ +├── backend/ +│ ├── main.py +│ ├── init_db.py +│ ├── requirements.txt +│ └── app.db +├── frontend/ +│ ├── package.json +│ ├── vite.config.js +│ └── src/ +│ ├── App.vue +│ └── main.js +└── README.md +``` + +## 데이터 흐름 + +1. `backend/init_db.py`가 SQLite 데이터베이스 파일을 만들고 `messages` 테이블을 생성한다. +2. 초기 데이터로 `'hello world'` 한 건을 삽입한다. +3. `backend/main.py`의 `GET /api/message` 엔드포인트가 SQLite에서 첫 메시지를 읽는다. +4. Vue 앱이 페이지 로드 시 `/api/message`를 호출한다. +5. 응답 JSON의 메시지를 화면에 렌더링한다. + +## 백엔드 설계 + +### 기술 선택 + +- Python +- FastAPI +- sqlite3 표준 라이브러리 +- uvicorn + +### 엔드포인트 + +`GET /api/message` + +응답 예시: + +```json +{ + "message": "hello world" +} +``` + +### DB 스키마 + +테이블명: `messages` + +컬럼: + +- `id` INTEGER PRIMARY KEY AUTOINCREMENT +- `content` TEXT NOT NULL + +### CORS + +개발 중 Vue dev server에서 FastAPI API를 호출할 수 있도록 최소 CORS 설정을 추가한다. + +## 프론트엔드 설계 + +### 기술 선택 + +- Vue 3 +- Vite + +### 동작 + +- 앱이 마운트되면 FastAPI API를 호출한다. +- 로딩 중에는 간단한 로딩 문구를 표시한다. +- 성공하면 DB에서 받은 `'hello world'`를 표시한다. +- 실패하면 간단한 에러 문구를 표시한다. + +### 화면 구성 + +예제는 최소 화면만 구성한다. + +- 제목 +- API에서 받은 메시지 출력 영역 +- 로딩/에러 상태 문구 + +## 실행 흐름 + +1. Python 가상환경 생성 및 의존성 설치 +2. SQLite 초기화 스크립트 실행 +3. FastAPI 서버 실행 +4. Vue 의존성 설치 +5. Vue 개발 서버 실행 +6. 브라우저에서 메시지 표시 확인 + +## 검증 기준 + +다음 조건을 만족하면 예제가 성공이다. + +- SQLite DB 파일이 생성된다. +- `messages` 테이블에 `'hello world'`가 저장된다. +- `GET /api/message` 호출 시 JSON 응답이 반환된다. +- Vue 화면에서 `'hello world'`가 보인다. +- 백엔드와 프론트엔드 실행 방법이 README에 정리된다. + +## 오류 처리 + +최소 예제이므로 복잡한 예외 처리 대신 아래 수준만 포함한다. + +- DB에 메시지가 없으면 기본 에러 응답 반환 +- 프론트엔드 fetch 실패 시 에러 문구 표시 + +## 구현 원칙 + +- 예제는 최대한 짧고 이해하기 쉬워야 한다. +- 구조는 실제 앱 구조와 유사하게 분리한다. +- 과도한 추상화는 하지 않는다. +- 의존성은 최소화한다. diff --git a/docs/test-scenarios.md b/docs/test-scenarios.md new file mode 100644 index 0000000..db76310 --- /dev/null +++ b/docs/test-scenarios.md @@ -0,0 +1,114 @@ +# TRAE 테스트 시나리오 + +이 문서는 현재 저장소에 포함된 10개 스킬을 실제 TRAE에서 바로 검증해 볼 수 있도록 만든 프롬프트형 시나리오 모음입니다. + +## 공통 사용법 + +- 각 시나리오의 **입력 프롬프트**를 그대로 복사해서 TRAE에 넣습니다. +- 기대 동작은 "정답 문장"이 아니라 "어떤 종류의 흐름이 나와야 하는지"를 의미합니다. +- 결과가 다소 다르더라도, 핵심 스킬 호출과 절차가 맞으면 통과로 봅니다. + +--- + +## 1. brainstorming + +- **목적:** 구현 전에 설계 중심 흐름으로 들어가는지 확인 +- **사전 조건:** 현재 프로젝트가 열려 있어야 함 +- **입력 프롬프트:** `간단한 할일 관리 위젯을 추가하고 싶은데 바로 구현하지 말고 먼저 어떻게 설계할지 같이 정리해줘` +- **기대 동작:** 바로 코드 작성으로 들어가지 않고, 질문 또는 설계 흐름으로 진입해야 함 +- **확인 포인트:** 한 번에 한 질문, 설계 승인 전 구현 금지, 이후 `writing-plans`로 이어질 여지가 보여야 함 + +## 2. frontend-design + +- **목적:** 평범한 UI 생성이 아니라 강한 미학 방향을 먼저 잡는지 확인 +- **사전 조건:** 프론트엔드 결과물을 요청할 수 있는 문맥 +- **입력 프롬프트:** `패션 브랜드용 랜딩페이지 히어로 섹션을 만들어줘. 흔한 AI 스타일 말고 강한 개성이 있었으면 좋겠어` +- **기대 동작:** 톤, 타이포그래피, 색상, 레이아웃 같은 미학 방향을 언급해야 함 +- **확인 포인트:** "AI 티 나는 화면" 회피, 대담한 스타일 방향, 실제 구현 코드 의도 설명 + +## 3. ui-ux-pro-max + +- **목적:** UI 미감뿐 아니라 UX 품질 기준까지 함께 다루는지 확인 +- **사전 조건:** UI 구조 개선 요청 가능 +- **입력 프롬프트:** `관리자 대시보드가 뭔가 덜 프로페셔널해 보여. 정보 위계, 접근성, 상호작용 품질 관점에서 개선 방향을 제안해줘` +- **기대 동작:** 접근성, 위계, 상태 표현, 레이아웃, 상호작용 품질을 우선순위 있게 다뤄야 함 +- **확인 포인트:** 단순 색상 추천이 아니라 시스템 수준의 개선 기준 제시 + +## 4. systematic-debugging + +- **목적:** 버그 수정 전에 근본 원인 조사 흐름을 밟는지 확인 +- **사전 조건:** 버그 상황을 설명할 수 있어야 함 +- **입력 프롬프트:** `로그인 후 가끔 대시보드가 빈 화면으로 떠. 일단 추측하지 말고 체계적으로 원인부터 찾는 방식으로 진행해줘` +- **기대 동작:** 재현, 최근 변경, 로그/증거 수집, 가설 검증 순서를 제시해야 함 +- **확인 포인트:** 즉시 수정안부터 제안하지 않는지, 원인 조사 단계가 분리되는지 + +## 5. writing-plans + +- **목적:** 구현 전에 체크리스트형 계획을 만드는지 확인 +- **사전 조건:** 간단한 요구사항 또는 명세가 있어야 함 +- **입력 프롬프트:** `사용자 프로필 편집 기능을 추가해야 해. 코드는 아직 건드리지 말고 파일 단위와 테스트 단위까지 포함한 구현 계획만 작성해줘` +- **기대 동작:** 파일 경로, 작업 순서, 검증 기준, 테스트 단계가 포함된 계획을 작성해야 함 +- **확인 포인트:** TODO 수준이 아니라 실행 가능한 단계인지, 작은 단계로 분해되는지 + +## 6. find-skills + +- **목적:** 바로 구현보다 적절한 커뮤니티 스킬 탐색 흐름을 타는지 확인 +- **사전 조건:** 특정 작업용 스킬을 찾는 상황 +- **입력 프롬프트:** `PR 리뷰를 더 체계적으로 해주는 스킬이 있는지 찾아줘` +- **기대 동작:** 필요한 도메인을 파악하고, 인기/품질 기준을 거쳐 후보를 제시해야 함 +- **확인 포인트:** 검색만이 아니라 설치 수, 출처, 설치 명령까지 제공하는지 + +## 7. using-superpowers + +- **목적:** 응답 전에 관련 스킬을 먼저 확인하는 운영 규칙이 작동하는지 확인 +- **사전 조건:** 다른 스킬이 분명히 필요한 작업 요청 +- **입력 프롬프트:** `새로운 대시보드 페이지를 설계하고 구현해줘` +- **기대 동작:** 바로 구현하기보다 먼저 관련 스킬을 확인하고 적용해야 함 +- **확인 포인트:** 프로세스 스킬 우선, 구현 스킬 후순위 원칙이 드러나는지 + +## 8. karpathy-guidelines + +- **목적:** 과설계와 과추정을 줄이는 행동 원칙이 반영되는지 확인 +- **사전 조건:** 코드 변경 또는 리팩터링 맥락 +- **입력 프롬프트:** `이 기능 리팩터링하되 너무 크게 뜯어고치지 말고 필요한 최소 변경만으로 접근해줘` +- **기대 동작:** 가정 명시, 최소 변경, 검증 기준 중심으로 접근해야 함 +- **확인 포인트:** 주변 코드까지 과하게 손대지 않는지, 목표 기반으로 설명하는지 + +## 9. webapp-testing + +- **목적:** 로컬 웹앱 테스트에서 정찰 후 행동 패턴을 따르는지 확인 +- **사전 조건:** 로컬 웹앱 또는 정적 HTML을 테스트할 수 있는 상황 +- **입력 프롬프트:** `이 로컬 웹앱의 회원가입 폼을 Playwright 방식으로 점검해줘. 바로 클릭하지 말고 먼저 화면 상태부터 확인해줘` +- **기대 동작:** `networkidle` 대기, 스크린샷 또는 DOM 확인, 셀렉터 파악 후 행동 순서를 보여야 함 +- **확인 포인트:** 먼저 관찰하고 나중에 상호작용하는지 + +## 10. agent-browser + +- **목적:** 일반 브라우저 도구보다 agent-browser 흐름이 필요한 상황을 인식하는지 확인 +- **사전 조건:** 브라우저 자동화 요청 +- **입력 프롬프트:** `특정 사이트에 로그인해서 여러 페이지를 돌아다니며 상태를 확인하고 스크린샷도 남겨줘` +- **기대 동작:** `agent-browser skills get core` 같은 시작 절차를 우선 언급해야 함 +- **확인 포인트:** 설치된 버전 기준 가이드를 먼저 확인하는지, 특수 가이드 가능성도 보는지 + +--- + +## 교차 시나리오 1: 설계 -> 계획 + +- **목적:** `brainstorming`에서 `writing-plans`로 자연스럽게 이어지는지 확인 +- **입력 프롬프트:** `알림 센터 기능을 추가하고 싶어. 먼저 설계부터 하고, 내가 승인하면 계획까지 이어가자` +- **기대 동작:** 처음에는 설계 흐름, 승인 후에는 계획 문서 흐름으로 전환 +- **확인 포인트:** 설계와 구현 계획 단계가 섞이지 않는지 + +## 교차 시나리오 2: 디버깅 -> 검증 + +- **목적:** 버그 분석 이후 실제 검증 단계로 이어질 수 있는지 확인 +- **입력 프롬프트:** `폼 제출 버그를 먼저 근본 원인부터 찾고, 수정 전후 동작을 브라우저에서 검증할 수 있게 정리해줘` +- **기대 동작:** `systematic-debugging` 중심으로 조사하고, 필요 시 `webapp-testing` 또는 브라우저 검증 흐름으로 이어짐 +- **확인 포인트:** 원인 분석과 검증이 분리되면서도 연결되는지 + +## 교차 시나리오 3: UI 설계 -> 품질 향상 + +- **목적:** `frontend-design`과 `ui-ux-pro-max`가 역할을 나눠 쓰이는지 확인 +- **입력 프롬프트:** `이 SaaS 설정 페이지를 더 개성 있게 만들고 싶어. 동시에 접근성과 정보 위계도 챙겨줘` +- **기대 동작:** 미학 방향과 UX 품질 기준을 함께 다루되, 역할이 구분되어야 함 +- **확인 포인트:** 스타일 강화와 UX 품질 점검이 모두 보이는지 diff --git a/frontend/index.html b/frontend/index.html new file mode 100644 index 0000000..0c0a853 --- /dev/null +++ b/frontend/index.html @@ -0,0 +1,18 @@ + + + + + + SQLite + FastAPI + Vue Hello World + + +
    + + + + diff --git a/frontend/node_modules/.bin/esbuild b/frontend/node_modules/.bin/esbuild new file mode 120000 index 0000000..c83ac07 --- /dev/null +++ b/frontend/node_modules/.bin/esbuild @@ -0,0 +1 @@ +../esbuild/bin/esbuild \ No newline at end of file diff --git a/frontend/node_modules/.bin/nanoid b/frontend/node_modules/.bin/nanoid new file mode 120000 index 0000000..e2be547 --- /dev/null +++ b/frontend/node_modules/.bin/nanoid @@ -0,0 +1 @@ +../nanoid/bin/nanoid.cjs \ No newline at end of file diff --git a/frontend/node_modules/.bin/parser b/frontend/node_modules/.bin/parser new file mode 120000 index 0000000..ce7bf97 --- /dev/null +++ b/frontend/node_modules/.bin/parser @@ -0,0 +1 @@ +../@babel/parser/bin/babel-parser.js \ No newline at end of file diff --git a/frontend/node_modules/.bin/rollup b/frontend/node_modules/.bin/rollup new file mode 120000 index 0000000..5939621 --- /dev/null +++ b/frontend/node_modules/.bin/rollup @@ -0,0 +1 @@ +../rollup/dist/bin/rollup \ No newline at end of file diff --git a/frontend/node_modules/.bin/vite b/frontend/node_modules/.bin/vite new file mode 120000 index 0000000..6d1e3be --- /dev/null +++ b/frontend/node_modules/.bin/vite @@ -0,0 +1 @@ +../vite/bin/vite.js \ No newline at end of file diff --git a/frontend/node_modules/.package-lock.json b/frontend/node_modules/.package-lock.json new file mode 100644 index 0000000..2f5af5d --- /dev/null +++ b/frontend/node_modules/.package-lock.json @@ -0,0 +1,443 @@ +{ + "name": "sqlite-fastapi-vue-hello", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "node_modules/@babel/helper-string-parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", + "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", + "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.35", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.35.tgz", + "integrity": "sha512-BUmHaR1J+O+CKZ9uJucdVTEr1LHsdyvv7vG3eNRhK3CczEHeMd/LtsHAuD7PbrxvI2envCY2v7HI1vC1aBRzKw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.3", + "@vue/shared": "3.5.35", + "entities": "^7.0.1", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.35", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.35.tgz", + "integrity": "sha512-k+bprkXxuqhVajgTx5mUHuir7TwQzUKOWR40ng1ncAqQRPnrLngGGgqVEEhOnTMlc8btHYVKmrP8s5Qyg0hvYA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.35", + "@vue/shared": "3.5.35" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.35", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.35.tgz", + "integrity": "sha512-G5VPMcXTSywXBgtFOZOnHKBxKSrwXUcvY1iaF5/hRcy7t0J6CH/d8ha9F4nzi00Fax1eLV0QHM7v4mQu68jydw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.3", + "@vue/compiler-core": "3.5.35", + "@vue/compiler-dom": "3.5.35", + "@vue/compiler-ssr": "3.5.35", + "@vue/shared": "3.5.35", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.21", + "postcss": "^8.5.15", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.35", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.35.tgz", + "integrity": "sha512-rGhAeXgdM7/ffTJGXT69rCCdTmjDewnFuUZfBQQHTdcEBeWdT5HCGY60y2ytLJr9/Dsu7IntUi5z/w0h6Rjnzw==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.35", + "@vue/shared": "3.5.35" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.35", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.35.tgz", + "integrity": "sha512-tVc+SsHConvh/Lz64qq1pP3rYArBmK42xonovEcxY74SQtvctZodG/zhq54P5dr38cVuw25d27cPNRdlMidpGQ==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.35" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.35", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.35.tgz", + "integrity": "sha512-A/xFNX9loIcWDygeQuNCfKuh0CoYBzxhqEMNah5TSFg9Z53DrFYEN2qi5CU9necjM1OWYegYREUTHmXTmhfXtg==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.35", + "@vue/shared": "3.5.35" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.35", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.35.tgz", + "integrity": "sha512-odrJ1C391dbGnyDRh8U+rnP7J2amIEzfmRk5vXy7xi3aZhEXofTvpi0T4HJb6jlNqQZTNPR5MPHSB3RHNkIORA==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.35", + "@vue/runtime-core": "3.5.35", + "@vue/shared": "3.5.35", + "csstype": "^3.2.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.35", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.35.tgz", + "integrity": "sha512-NkebSOYdB97wi8OQcO3HqzZSlymJi/aWsN/7h74OSVhRTm6qGs3Jp3e0rCXynmWwSlKeRrnlIug+ilYoHBmQDA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.35", + "@vue/shared": "3.5.35" + }, + "peerDependencies": { + "vue": "3.5.35" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.35", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.35.tgz", + "integrity": "sha512-zSbjL7gRXwks2ZQLRGCajBtBXEOXW9Ddhn/HvSdrGkE2dqGnumzW8XtusRrxrE9LvqtiqDXQ+A60Hp6mvdYxfA==", + "license": "MIT" + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/nanoid": { + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", + "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/postcss": { + "version": "8.5.15", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", + "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.12", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/rollup": { + "version": "4.61.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.61.1.tgz", + "integrity": "sha512-I4KW6iuRpuu2uHBLraZ1wNZe0DP7lnRha+VJ9tNaYVaVgKhW0aI3h4RYnoRPeql0flHm/Co55b7snEDcOfOJrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.9" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.61.1", + "@rollup/rollup-android-arm64": "4.61.1", + "@rollup/rollup-darwin-arm64": "4.61.1", + "@rollup/rollup-darwin-x64": "4.61.1", + "@rollup/rollup-freebsd-arm64": "4.61.1", + "@rollup/rollup-freebsd-x64": "4.61.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.61.1", + "@rollup/rollup-linux-arm-musleabihf": "4.61.1", + "@rollup/rollup-linux-arm64-gnu": "4.61.1", + "@rollup/rollup-linux-arm64-musl": "4.61.1", + "@rollup/rollup-linux-loong64-gnu": "4.61.1", + "@rollup/rollup-linux-loong64-musl": "4.61.1", + "@rollup/rollup-linux-ppc64-gnu": "4.61.1", + "@rollup/rollup-linux-ppc64-musl": "4.61.1", + "@rollup/rollup-linux-riscv64-gnu": "4.61.1", + "@rollup/rollup-linux-riscv64-musl": "4.61.1", + "@rollup/rollup-linux-s390x-gnu": "4.61.1", + "@rollup/rollup-linux-x64-gnu": "4.61.1", + "@rollup/rollup-linux-x64-musl": "4.61.1", + "@rollup/rollup-openbsd-x64": "4.61.1", + "@rollup/rollup-openharmony-arm64": "4.61.1", + "@rollup/rollup-win32-arm64-msvc": "4.61.1", + "@rollup/rollup-win32-ia32-msvc": "4.61.1", + "@rollup/rollup-win32-x64-gnu": "4.61.1", + "@rollup/rollup-win32-x64-msvc": "4.61.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vite": { + "version": "5.4.21", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz", + "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vue": { + "version": "3.5.35", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.35.tgz", + "integrity": "sha512-cx89fnr+0kVGHiNFG6y6s0bdjypJRFNZn6x3WPstNdQR1bi1mbB7h4v5IBGTsPJU3nK1+0Iqj3Zf+hZWMieR4Q==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.35", + "@vue/compiler-sfc": "3.5.35", + "@vue/runtime-dom": "3.5.35", + "@vue/server-renderer": "3.5.35", + "@vue/shared": "3.5.35" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + } + } +} diff --git a/frontend/node_modules/@babel/helper-string-parser/LICENSE b/frontend/node_modules/@babel/helper-string-parser/LICENSE new file mode 100644 index 0000000..f31575e --- /dev/null +++ b/frontend/node_modules/@babel/helper-string-parser/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2014-present Sebastian McKenzie and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/frontend/node_modules/@babel/helper-string-parser/README.md b/frontend/node_modules/@babel/helper-string-parser/README.md new file mode 100644 index 0000000..771b470 --- /dev/null +++ b/frontend/node_modules/@babel/helper-string-parser/README.md @@ -0,0 +1,19 @@ +# @babel/helper-string-parser + +> A utility package to parse strings + +See our website [@babel/helper-string-parser](https://babeljs.io/docs/babel-helper-string-parser) for more information. + +## Install + +Using npm: + +```sh +npm install --save @babel/helper-string-parser +``` + +or using yarn: + +```sh +yarn add @babel/helper-string-parser +``` diff --git a/frontend/node_modules/@babel/helper-string-parser/lib/index.js b/frontend/node_modules/@babel/helper-string-parser/lib/index.js new file mode 100644 index 0000000..2d94115 --- /dev/null +++ b/frontend/node_modules/@babel/helper-string-parser/lib/index.js @@ -0,0 +1,295 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.readCodePoint = readCodePoint; +exports.readInt = readInt; +exports.readStringContents = readStringContents; +var _isDigit = function isDigit(code) { + return code >= 48 && code <= 57; +}; +const forbiddenNumericSeparatorSiblings = { + decBinOct: new Set([46, 66, 69, 79, 95, 98, 101, 111]), + hex: new Set([46, 88, 95, 120]) +}; +const isAllowedNumericSeparatorSibling = { + bin: ch => ch === 48 || ch === 49, + oct: ch => ch >= 48 && ch <= 55, + dec: ch => ch >= 48 && ch <= 57, + hex: ch => ch >= 48 && ch <= 57 || ch >= 65 && ch <= 70 || ch >= 97 && ch <= 102 +}; +function readStringContents(type, input, pos, lineStart, curLine, errors) { + const initialPos = pos; + const initialLineStart = lineStart; + const initialCurLine = curLine; + let out = ""; + let firstInvalidLoc = null; + let chunkStart = pos; + const { + length + } = input; + for (;;) { + if (pos >= length) { + errors.unterminated(initialPos, initialLineStart, initialCurLine); + out += input.slice(chunkStart, pos); + break; + } + const ch = input.charCodeAt(pos); + if (isStringEnd(type, ch, input, pos)) { + out += input.slice(chunkStart, pos); + break; + } + if (ch === 92) { + out += input.slice(chunkStart, pos); + const res = readEscapedChar(input, pos, lineStart, curLine, type === "template", errors); + if (res.ch === null && !firstInvalidLoc) { + firstInvalidLoc = { + pos, + lineStart, + curLine + }; + } else { + out += res.ch; + } + ({ + pos, + lineStart, + curLine + } = res); + chunkStart = pos; + } else if (ch === 8232 || ch === 8233) { + ++pos; + ++curLine; + lineStart = pos; + } else if (ch === 10 || ch === 13) { + if (type === "template") { + out += input.slice(chunkStart, pos) + "\n"; + ++pos; + if (ch === 13 && input.charCodeAt(pos) === 10) { + ++pos; + } + ++curLine; + chunkStart = lineStart = pos; + } else { + errors.unterminated(initialPos, initialLineStart, initialCurLine); + } + } else { + ++pos; + } + } + return { + pos, + str: out, + firstInvalidLoc, + lineStart, + curLine, + containsInvalid: !!firstInvalidLoc + }; +} +function isStringEnd(type, ch, input, pos) { + if (type === "template") { + return ch === 96 || ch === 36 && input.charCodeAt(pos + 1) === 123; + } + return ch === (type === "double" ? 34 : 39); +} +function readEscapedChar(input, pos, lineStart, curLine, inTemplate, errors) { + const throwOnInvalid = !inTemplate; + pos++; + const res = ch => ({ + pos, + ch, + lineStart, + curLine + }); + const ch = input.charCodeAt(pos++); + switch (ch) { + case 110: + return res("\n"); + case 114: + return res("\r"); + case 120: + { + let code; + ({ + code, + pos + } = readHexChar(input, pos, lineStart, curLine, 2, false, throwOnInvalid, errors)); + return res(code === null ? null : String.fromCharCode(code)); + } + case 117: + { + let code; + ({ + code, + pos + } = readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors)); + return res(code === null ? null : String.fromCodePoint(code)); + } + case 116: + return res("\t"); + case 98: + return res("\b"); + case 118: + return res("\u000b"); + case 102: + return res("\f"); + case 13: + if (input.charCodeAt(pos) === 10) { + ++pos; + } + case 10: + lineStart = pos; + ++curLine; + case 8232: + case 8233: + return res(""); + case 56: + case 57: + if (inTemplate) { + return res(null); + } else { + errors.strictNumericEscape(pos - 1, lineStart, curLine); + } + default: + if (ch >= 48 && ch <= 55) { + const startPos = pos - 1; + const match = /^[0-7]+/.exec(input.slice(startPos, pos + 2)); + let octalStr = match[0]; + let octal = parseInt(octalStr, 8); + if (octal > 255) { + octalStr = octalStr.slice(0, -1); + octal = parseInt(octalStr, 8); + } + pos += octalStr.length - 1; + const next = input.charCodeAt(pos); + if (octalStr !== "0" || next === 56 || next === 57) { + if (inTemplate) { + return res(null); + } else { + errors.strictNumericEscape(startPos, lineStart, curLine); + } + } + return res(String.fromCharCode(octal)); + } + return res(String.fromCharCode(ch)); + } +} +function readHexChar(input, pos, lineStart, curLine, len, forceLen, throwOnInvalid, errors) { + const initialPos = pos; + let n; + ({ + n, + pos + } = readInt(input, pos, lineStart, curLine, 16, len, forceLen, false, errors, !throwOnInvalid)); + if (n === null) { + if (throwOnInvalid) { + errors.invalidEscapeSequence(initialPos, lineStart, curLine); + } else { + pos = initialPos - 1; + } + } + return { + code: n, + pos + }; +} +function readInt(input, pos, lineStart, curLine, radix, len, forceLen, allowNumSeparator, errors, bailOnError) { + const start = pos; + const forbiddenSiblings = radix === 16 ? forbiddenNumericSeparatorSiblings.hex : forbiddenNumericSeparatorSiblings.decBinOct; + const isAllowedSibling = radix === 16 ? isAllowedNumericSeparatorSibling.hex : radix === 10 ? isAllowedNumericSeparatorSibling.dec : radix === 8 ? isAllowedNumericSeparatorSibling.oct : isAllowedNumericSeparatorSibling.bin; + let invalid = false; + let total = 0; + for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) { + const code = input.charCodeAt(pos); + let val; + if (code === 95 && allowNumSeparator !== "bail") { + const prev = input.charCodeAt(pos - 1); + const next = input.charCodeAt(pos + 1); + if (!allowNumSeparator) { + if (bailOnError) return { + n: null, + pos + }; + errors.numericSeparatorInEscapeSequence(pos, lineStart, curLine); + } else if (Number.isNaN(next) || !isAllowedSibling(next) || forbiddenSiblings.has(prev) || forbiddenSiblings.has(next)) { + if (bailOnError) return { + n: null, + pos + }; + errors.unexpectedNumericSeparator(pos, lineStart, curLine); + } + ++pos; + continue; + } + if (code >= 97) { + val = code - 97 + 10; + } else if (code >= 65) { + val = code - 65 + 10; + } else if (_isDigit(code)) { + val = code - 48; + } else { + val = Infinity; + } + if (val >= radix) { + if (val <= 9 && bailOnError) { + return { + n: null, + pos + }; + } else if (val <= 9 && errors.invalidDigit(pos, lineStart, curLine, radix)) { + val = 0; + } else if (forceLen) { + val = 0; + invalid = true; + } else { + break; + } + } + ++pos; + total = total * radix + val; + } + if (pos === start || len != null && pos - start !== len || invalid) { + return { + n: null, + pos + }; + } + return { + n: total, + pos + }; +} +function readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors) { + const ch = input.charCodeAt(pos); + let code; + if (ch === 123) { + ++pos; + ({ + code, + pos + } = readHexChar(input, pos, lineStart, curLine, input.indexOf("}", pos) - pos, true, throwOnInvalid, errors)); + ++pos; + if (code !== null && code > 0x10ffff) { + if (throwOnInvalid) { + errors.invalidCodePoint(pos, lineStart, curLine); + } else { + return { + code: null, + pos + }; + } + } + } else { + ({ + code, + pos + } = readHexChar(input, pos, lineStart, curLine, 4, false, throwOnInvalid, errors)); + } + return { + code, + pos + }; +} + +//# sourceMappingURL=index.js.map diff --git a/frontend/node_modules/@babel/helper-string-parser/lib/index.js.map b/frontend/node_modules/@babel/helper-string-parser/lib/index.js.map new file mode 100644 index 0000000..cd50797 --- /dev/null +++ b/frontend/node_modules/@babel/helper-string-parser/lib/index.js.map @@ -0,0 +1 @@ +{"version":3,"names":["isDigit","code","forbiddenNumericSeparatorSiblings","decBinOct","Set","hex","isAllowedNumericSeparatorSibling","bin","ch","oct","dec","readStringContents","type","input","pos","lineStart","curLine","errors","initialPos","initialLineStart","initialCurLine","out","firstInvalidLoc","chunkStart","length","unterminated","slice","charCodeAt","isStringEnd","res","readEscapedChar","str","containsInvalid","inTemplate","throwOnInvalid","readHexChar","String","fromCharCode","readCodePoint","fromCodePoint","strictNumericEscape","startPos","match","exec","octalStr","octal","parseInt","next","len","forceLen","n","readInt","invalidEscapeSequence","radix","allowNumSeparator","bailOnError","start","forbiddenSiblings","isAllowedSibling","invalid","total","i","e","Infinity","val","prev","numericSeparatorInEscapeSequence","Number","isNaN","has","unexpectedNumericSeparator","_isDigit","invalidDigit","indexOf","invalidCodePoint"],"sources":["../src/index.ts"],"sourcesContent":["// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\n\n// The following character codes are forbidden from being\n// an immediate sibling of NumericLiteralSeparator _\nconst forbiddenNumericSeparatorSiblings = {\n decBinOct: new Set([\n charCodes.dot,\n charCodes.uppercaseB,\n charCodes.uppercaseE,\n charCodes.uppercaseO,\n charCodes.underscore, // multiple separators are not allowed\n charCodes.lowercaseB,\n charCodes.lowercaseE,\n charCodes.lowercaseO,\n ]),\n hex: new Set([\n charCodes.dot,\n charCodes.uppercaseX,\n charCodes.underscore, // multiple separators are not allowed\n charCodes.lowercaseX,\n ]),\n};\n\nconst isAllowedNumericSeparatorSibling = {\n // 0 - 1\n bin: (ch: number) => ch === charCodes.digit0 || ch === charCodes.digit1,\n\n // 0 - 7\n oct: (ch: number) => ch >= charCodes.digit0 && ch <= charCodes.digit7,\n\n // 0 - 9\n dec: (ch: number) => ch >= charCodes.digit0 && ch <= charCodes.digit9,\n\n // 0 - 9, A - F, a - f,\n hex: (ch: number) =>\n (ch >= charCodes.digit0 && ch <= charCodes.digit9) ||\n (ch >= charCodes.uppercaseA && ch <= charCodes.uppercaseF) ||\n (ch >= charCodes.lowercaseA && ch <= charCodes.lowercaseF),\n};\n\nexport type StringContentsErrorHandlers = EscapedCharErrorHandlers & {\n unterminated(\n initialPos: number,\n initialLineStart: number,\n initialCurLine: number,\n ): void;\n};\n\nexport function readStringContents(\n type: \"single\" | \"double\" | \"template\",\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n errors: StringContentsErrorHandlers,\n) {\n const initialPos = pos;\n const initialLineStart = lineStart;\n const initialCurLine = curLine;\n\n let out = \"\";\n let firstInvalidLoc = null;\n let chunkStart = pos;\n const { length } = input;\n for (;;) {\n if (pos >= length) {\n errors.unterminated(initialPos, initialLineStart, initialCurLine);\n out += input.slice(chunkStart, pos);\n break;\n }\n const ch = input.charCodeAt(pos);\n if (isStringEnd(type, ch, input, pos)) {\n out += input.slice(chunkStart, pos);\n break;\n }\n if (ch === charCodes.backslash) {\n out += input.slice(chunkStart, pos);\n const res = readEscapedChar(\n input,\n pos,\n lineStart,\n curLine,\n type === \"template\",\n errors,\n );\n if (res.ch === null && !firstInvalidLoc) {\n firstInvalidLoc = { pos, lineStart, curLine };\n } else {\n out += res.ch;\n }\n ({ pos, lineStart, curLine } = res);\n chunkStart = pos;\n } else if (\n ch === charCodes.lineSeparator ||\n ch === charCodes.paragraphSeparator\n ) {\n ++pos;\n ++curLine;\n lineStart = pos;\n } else if (ch === charCodes.lineFeed || ch === charCodes.carriageReturn) {\n if (type === \"template\") {\n out += input.slice(chunkStart, pos) + \"\\n\";\n ++pos;\n if (\n ch === charCodes.carriageReturn &&\n input.charCodeAt(pos) === charCodes.lineFeed\n ) {\n ++pos;\n }\n ++curLine;\n chunkStart = lineStart = pos;\n } else {\n errors.unterminated(initialPos, initialLineStart, initialCurLine);\n }\n } else {\n ++pos;\n }\n }\n return process.env.BABEL_8_BREAKING\n ? { pos, str: out, firstInvalidLoc, lineStart, curLine }\n : {\n pos,\n str: out,\n firstInvalidLoc,\n lineStart,\n curLine,\n containsInvalid: !!firstInvalidLoc,\n };\n}\n\nfunction isStringEnd(\n type: \"single\" | \"double\" | \"template\",\n ch: number,\n input: string,\n pos: number,\n) {\n if (type === \"template\") {\n return (\n ch === charCodes.graveAccent ||\n (ch === charCodes.dollarSign &&\n input.charCodeAt(pos + 1) === charCodes.leftCurlyBrace)\n );\n }\n return (\n ch === (type === \"double\" ? charCodes.quotationMark : charCodes.apostrophe)\n );\n}\n\ntype EscapedCharErrorHandlers = HexCharErrorHandlers &\n CodePointErrorHandlers & {\n strictNumericEscape(pos: number, lineStart: number, curLine: number): void;\n };\n\nfunction readEscapedChar(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n inTemplate: boolean,\n errors: EscapedCharErrorHandlers,\n) {\n const throwOnInvalid = !inTemplate;\n pos++; // skip '\\'\n\n const res = (ch: string | null) => ({ pos, ch, lineStart, curLine });\n\n const ch = input.charCodeAt(pos++);\n switch (ch) {\n case charCodes.lowercaseN:\n return res(\"\\n\");\n case charCodes.lowercaseR:\n return res(\"\\r\");\n case charCodes.lowercaseX: {\n let code;\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n 2,\n false,\n throwOnInvalid,\n errors,\n ));\n return res(code === null ? null : String.fromCharCode(code));\n }\n case charCodes.lowercaseU: {\n let code;\n ({ code, pos } = readCodePoint(\n input,\n pos,\n lineStart,\n curLine,\n throwOnInvalid,\n errors,\n ));\n return res(code === null ? null : String.fromCodePoint(code));\n }\n case charCodes.lowercaseT:\n return res(\"\\t\");\n case charCodes.lowercaseB:\n return res(\"\\b\");\n case charCodes.lowercaseV:\n return res(\"\\u000b\");\n case charCodes.lowercaseF:\n return res(\"\\f\");\n case charCodes.carriageReturn:\n if (input.charCodeAt(pos) === charCodes.lineFeed) {\n ++pos;\n }\n // fall through\n case charCodes.lineFeed:\n lineStart = pos;\n ++curLine;\n // fall through\n case charCodes.lineSeparator:\n case charCodes.paragraphSeparator:\n return res(\"\");\n case charCodes.digit8:\n case charCodes.digit9:\n if (inTemplate) {\n return res(null);\n } else {\n errors.strictNumericEscape(pos - 1, lineStart, curLine);\n }\n // fall through\n default:\n if (ch >= charCodes.digit0 && ch <= charCodes.digit7) {\n const startPos = pos - 1;\n const match = /^[0-7]+/.exec(input.slice(startPos, pos + 2));\n\n let octalStr = match[0];\n\n let octal = parseInt(octalStr, 8);\n if (octal > 255) {\n octalStr = octalStr.slice(0, -1);\n octal = parseInt(octalStr, 8);\n }\n pos += octalStr.length - 1;\n const next = input.charCodeAt(pos);\n if (\n octalStr !== \"0\" ||\n next === charCodes.digit8 ||\n next === charCodes.digit9\n ) {\n if (inTemplate) {\n return res(null);\n } else {\n errors.strictNumericEscape(startPos, lineStart, curLine);\n }\n }\n\n return res(String.fromCharCode(octal));\n }\n\n return res(String.fromCharCode(ch));\n }\n}\n\ntype HexCharErrorHandlers = IntErrorHandlers & {\n invalidEscapeSequence(pos: number, lineStart: number, curLine: number): void;\n};\n\n// Used to read character escape sequences ('\\x', '\\u').\nfunction readHexChar(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n len: number,\n forceLen: boolean,\n throwOnInvalid: boolean,\n errors: HexCharErrorHandlers,\n) {\n const initialPos = pos;\n let n;\n ({ n, pos } = readInt(\n input,\n pos,\n lineStart,\n curLine,\n 16,\n len,\n forceLen,\n false,\n errors,\n /* bailOnError */ !throwOnInvalid,\n ));\n if (n === null) {\n if (throwOnInvalid) {\n errors.invalidEscapeSequence(initialPos, lineStart, curLine);\n } else {\n pos = initialPos - 1;\n }\n }\n return { code: n, pos };\n}\n\nexport type IntErrorHandlers = {\n numericSeparatorInEscapeSequence(\n pos: number,\n lineStart: number,\n curLine: number,\n ): void;\n unexpectedNumericSeparator(\n pos: number,\n lineStart: number,\n curLine: number,\n ): void;\n // It can return \"true\" to indicate that the error was handled\n // and the int parsing should continue.\n invalidDigit(\n pos: number,\n lineStart: number,\n curLine: number,\n radix: number,\n ): boolean;\n};\n\nexport function readInt(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n radix: number,\n len: number | undefined,\n forceLen: boolean,\n allowNumSeparator: boolean | \"bail\",\n errors: IntErrorHandlers,\n bailOnError: boolean,\n) {\n const start = pos;\n const forbiddenSiblings =\n radix === 16\n ? forbiddenNumericSeparatorSiblings.hex\n : forbiddenNumericSeparatorSiblings.decBinOct;\n const isAllowedSibling =\n radix === 16\n ? isAllowedNumericSeparatorSibling.hex\n : radix === 10\n ? isAllowedNumericSeparatorSibling.dec\n : radix === 8\n ? isAllowedNumericSeparatorSibling.oct\n : isAllowedNumericSeparatorSibling.bin;\n\n let invalid = false;\n let total = 0;\n\n for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) {\n const code = input.charCodeAt(pos);\n let val;\n\n if (code === charCodes.underscore && allowNumSeparator !== \"bail\") {\n const prev = input.charCodeAt(pos - 1);\n const next = input.charCodeAt(pos + 1);\n\n if (!allowNumSeparator) {\n if (bailOnError) return { n: null, pos };\n errors.numericSeparatorInEscapeSequence(pos, lineStart, curLine);\n } else if (\n Number.isNaN(next) ||\n !isAllowedSibling(next) ||\n forbiddenSiblings.has(prev) ||\n forbiddenSiblings.has(next)\n ) {\n if (bailOnError) return { n: null, pos };\n errors.unexpectedNumericSeparator(pos, lineStart, curLine);\n }\n\n // Ignore this _ character\n ++pos;\n continue;\n }\n\n if (code >= charCodes.lowercaseA) {\n val = code - charCodes.lowercaseA + charCodes.lineFeed;\n } else if (code >= charCodes.uppercaseA) {\n val = code - charCodes.uppercaseA + charCodes.lineFeed;\n } else if (charCodes.isDigit(code)) {\n val = code - charCodes.digit0; // 0-9\n } else {\n val = Infinity;\n }\n if (val >= radix) {\n // If we found a digit which is too big, errors.invalidDigit can return true to avoid\n // breaking the loop (this is used for error recovery).\n if (val <= 9 && bailOnError) {\n return { n: null, pos };\n } else if (\n val <= 9 &&\n errors.invalidDigit(pos, lineStart, curLine, radix)\n ) {\n val = 0;\n } else if (forceLen) {\n val = 0;\n invalid = true;\n } else {\n break;\n }\n }\n ++pos;\n total = total * radix + val;\n }\n if (pos === start || (len != null && pos - start !== len) || invalid) {\n return { n: null, pos };\n }\n\n return { n: total, pos };\n}\n\nexport type CodePointErrorHandlers = HexCharErrorHandlers & {\n invalidCodePoint(pos: number, lineStart: number, curLine: number): void;\n};\n\nexport function readCodePoint(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n throwOnInvalid: boolean,\n errors: CodePointErrorHandlers,\n) {\n const ch = input.charCodeAt(pos);\n let code;\n\n if (ch === charCodes.leftCurlyBrace) {\n ++pos;\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n input.indexOf(\"}\", pos) - pos,\n true,\n throwOnInvalid,\n errors,\n ));\n ++pos;\n if (code !== null && code > 0x10ffff) {\n if (throwOnInvalid) {\n errors.invalidCodePoint(pos, lineStart, curLine);\n } else {\n return { code: null, pos };\n }\n }\n } else {\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n 4,\n false,\n throwOnInvalid,\n errors,\n ));\n }\n return { code, pos };\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/frontend/node_modules/@babel/helper-string-parser/package.json b/frontend/node_modules/@babel/helper-string-parser/package.json new file mode 100644 index 0000000..7192a14 --- /dev/null +++ b/frontend/node_modules/@babel/helper-string-parser/package.json @@ -0,0 +1,31 @@ +{ + "name": "@babel/helper-string-parser", + "version": "7.29.7", + "description": "A utility package to parse strings", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel.git", + "directory": "packages/babel-helper-string-parser" + }, + "homepage": "https://babel.dev/docs/en/next/babel-helper-string-parser", + "license": "MIT", + "publishConfig": { + "access": "public" + }, + "main": "./lib/index.js", + "devDependencies": { + "charcodes": "^0.2.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "author": "The Babel Team (https://babel.dev/team)", + "exports": { + ".": { + "types": "./lib/index.d.ts", + "default": "./lib/index.js" + }, + "./package.json": "./package.json" + }, + "type": "commonjs" +} \ No newline at end of file diff --git a/frontend/node_modules/@babel/helper-validator-identifier/LICENSE b/frontend/node_modules/@babel/helper-validator-identifier/LICENSE new file mode 100644 index 0000000..f31575e --- /dev/null +++ b/frontend/node_modules/@babel/helper-validator-identifier/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2014-present Sebastian McKenzie and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/frontend/node_modules/@babel/helper-validator-identifier/README.md b/frontend/node_modules/@babel/helper-validator-identifier/README.md new file mode 100644 index 0000000..05c19e6 --- /dev/null +++ b/frontend/node_modules/@babel/helper-validator-identifier/README.md @@ -0,0 +1,19 @@ +# @babel/helper-validator-identifier + +> Validate identifier/keywords name + +See our website [@babel/helper-validator-identifier](https://babeljs.io/docs/babel-helper-validator-identifier) for more information. + +## Install + +Using npm: + +```sh +npm install --save @babel/helper-validator-identifier +``` + +or using yarn: + +```sh +yarn add @babel/helper-validator-identifier +``` diff --git a/frontend/node_modules/@babel/helper-validator-identifier/lib/identifier.js b/frontend/node_modules/@babel/helper-validator-identifier/lib/identifier.js new file mode 100644 index 0000000..b12e6e4 --- /dev/null +++ b/frontend/node_modules/@babel/helper-validator-identifier/lib/identifier.js @@ -0,0 +1,70 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.isIdentifierChar = isIdentifierChar; +exports.isIdentifierName = isIdentifierName; +exports.isIdentifierStart = isIdentifierStart; +let 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-\u088f\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\u0c5c\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdc-\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-\u1c8a\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-\ua7dc\ua7f1-\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"; +let nonASCIIidentifierChars = "\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\u0897-\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\u0cf3\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-\u0ece\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-\u1add\u1ae0-\u1aeb\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\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\u30fb\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\uff65"; +const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); +const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); +nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; +const 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, 4, 51, 13, 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, 7, 25, 39, 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, 39, 27, 10, 22, 251, 41, 7, 1, 17, 5, 57, 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, 20, 1, 64, 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, 31, 9, 2, 0, 3, 0, 2, 37, 2, 0, 26, 0, 2, 0, 45, 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, 200, 32, 32, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 24, 43, 261, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 26, 3994, 6, 582, 6842, 29, 1763, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 433, 44, 212, 63, 33, 24, 3, 24, 45, 74, 6, 0, 67, 12, 65, 1, 2, 0, 15, 4, 10, 7381, 42, 31, 98, 114, 8702, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 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, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 229, 29, 3, 0, 208, 30, 2, 2, 2, 1, 2, 6, 3, 4, 10, 1, 225, 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, 4381, 3, 5773, 3, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 8489]; +const 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, 7, 9, 32, 4, 318, 1, 78, 5, 71, 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, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 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, 199, 7, 137, 9, 54, 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, 55, 9, 266, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 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, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 245, 1, 2, 9, 233, 0, 3, 0, 8, 1, 6, 0, 475, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; +function isInAstralSet(code, set) { + let pos = 0x10000; + for (let i = 0, length = set.length; i < length; i += 2) { + pos += set[i]; + if (pos > code) return false; + pos += set[i + 1]; + if (pos >= code) return true; + } + return false; +} +function isIdentifierStart(code) { + if (code < 65) return code === 36; + if (code <= 90) return true; + if (code < 97) return code === 95; + if (code <= 122) return true; + if (code <= 0xffff) { + return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)); + } + return isInAstralSet(code, astralIdentifierStartCodes); +} +function isIdentifierChar(code) { + if (code < 48) return code === 36; + if (code < 58) return true; + if (code < 65) return false; + if (code <= 90) return true; + if (code < 97) return code === 95; + if (code <= 122) return true; + if (code <= 0xffff) { + return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)); + } + return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes); +} +function isIdentifierName(name) { + let isFirst = true; + for (let i = 0; i < name.length; i++) { + let cp = name.charCodeAt(i); + if ((cp & 0xfc00) === 0xd800 && i + 1 < name.length) { + const trail = name.charCodeAt(++i); + if ((trail & 0xfc00) === 0xdc00) { + cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff); + } + } + if (isFirst) { + isFirst = false; + if (!isIdentifierStart(cp)) { + return false; + } + } else if (!isIdentifierChar(cp)) { + return false; + } + } + return !isFirst; +} + +//# sourceMappingURL=identifier.js.map diff --git a/frontend/node_modules/@babel/helper-validator-identifier/lib/identifier.js.map b/frontend/node_modules/@babel/helper-validator-identifier/lib/identifier.js.map new file mode 100644 index 0000000..71d32ff --- /dev/null +++ b/frontend/node_modules/@babel/helper-validator-identifier/lib/identifier.js.map @@ -0,0 +1 @@ +{"version":3,"names":["nonASCIIidentifierStartChars","nonASCIIidentifierChars","nonASCIIidentifierStart","RegExp","nonASCIIidentifier","astralIdentifierStartCodes","astralIdentifierCodes","isInAstralSet","code","set","pos","i","length","isIdentifierStart","test","String","fromCharCode","isIdentifierChar","isIdentifierName","name","isFirst","cp","charCodeAt","trail"],"sources":["../src/identifier.ts"],"sourcesContent":["// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\n\n// ## Character categories\n\n// Big ugly regular expressions that match characters in the\n// whitespace, identifier, and identifier-start categories. These\n// are only applied when a character is found to actually have a\n// code point between 0x80 and 0xffff.\n// Generated by `scripts/generate-identifier-regex.cjs`.\n\n/* prettier-ignore */\nlet 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-\\u088f\\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\\u0c5c\\u0c5d\\u0c60\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cdc-\\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-\\u1c8a\\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-\\ua7dc\\ua7f1-\\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/* prettier-ignore */\nlet nonASCIIidentifierChars = \"\\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\\u0897-\\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\\u0cf3\\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-\\u0ece\\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-\\u1add\\u1ae0-\\u1aeb\\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\\u200c\\u200d\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\u30fb\\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\\uff65\";\n\nconst nonASCIIidentifierStart = new RegExp(\n \"[\" + nonASCIIidentifierStartChars + \"]\",\n);\nconst nonASCIIidentifier = new RegExp(\n \"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\",\n);\n\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\n\n// These are a run-length and offset-encoded representation of the\n// >0xffff code points that are a valid part of identifiers. The\n// offset starts at 0x10000, and each pair of numbers represents an\n// offset to the next range, and then a size of the range. They were\n// generated by `scripts/generate-identifier-regex.cjs`.\n/* prettier-ignore */\nconst 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,4,51,13,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,7,25,39,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,39,27,10,22,251,41,7,1,17,5,57,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,20,1,64,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,31,9,2,0,3,0,2,37,2,0,26,0,2,0,45,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,200,32,32,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,24,43,261,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,26,3994,6,582,6842,29,1763,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,433,44,212,63,33,24,3,24,45,74,6,0,67,12,65,1,2,0,15,4,10,7381,42,31,98,114,8702,3,2,6,2,1,2,290,16,0,30,2,3,0,15,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,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,229,29,3,0,208,30,2,2,2,1,2,6,3,4,10,1,225,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,4381,3,5773,3,7472,16,621,2467,541,1507,4938,6,8489];\n/* prettier-ignore */\nconst 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,7,9,32,4,318,1,78,5,71,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,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,68,8,2,0,3,0,2,3,2,4,2,0,15,1,83,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,7,19,58,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,199,7,137,9,54,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,55,9,266,3,10,1,2,0,49,6,4,4,14,10,5350,0,7,14,11465,27,2343,9,87,9,39,4,60,6,26,9,535,9,470,0,2,54,8,3,82,0,12,1,19628,1,4178,9,519,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,101,0,161,6,10,9,357,0,62,13,499,13,245,1,2,9,233,0,3,0,8,1,6,0,475,6,110,6,6,9,4759,9,787719,239];\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: number, set: readonly number[]): boolean {\n let pos = 0x10000;\n for (let i = 0, length = set.length; i < length; i += 2) {\n pos += set[i];\n if (pos > code) return false;\n\n pos += set[i + 1];\n if (pos >= code) return true;\n }\n return false;\n}\n\n// Test whether a given character code starts an identifier.\n\nexport function isIdentifierStart(code: number): boolean {\n if (code < charCodes.uppercaseA) return code === charCodes.dollarSign;\n if (code <= charCodes.uppercaseZ) return true;\n if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n if (code <= charCodes.lowercaseZ) return true;\n if (code <= 0xffff) {\n return (\n code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code))\n );\n }\n return isInAstralSet(code, astralIdentifierStartCodes);\n}\n\n// Test whether a given character is part of an identifier.\n\nexport function isIdentifierChar(code: number): boolean {\n if (code < charCodes.digit0) return code === charCodes.dollarSign;\n if (code < charCodes.colon) return true;\n if (code < charCodes.uppercaseA) return false;\n if (code <= charCodes.uppercaseZ) return true;\n if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n if (code <= charCodes.lowercaseZ) return true;\n if (code <= 0xffff) {\n return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));\n }\n return (\n isInAstralSet(code, astralIdentifierStartCodes) ||\n isInAstralSet(code, astralIdentifierCodes)\n );\n}\n\n// Test whether a given string is a valid identifier name\n\nexport function isIdentifierName(name: string): boolean {\n let isFirst = true;\n for (let i = 0; i < name.length; i++) {\n // The implementation is based on\n // https://source.chromium.org/chromium/chromium/src/+/master:v8/src/builtins/builtins-string-gen.cc;l=1455;drc=221e331b49dfefadbc6fa40b0c68e6f97606d0b3;bpv=0;bpt=1\n // We reimplement `codePointAt` because `codePointAt` is a V8 builtin which is not inlined by TurboFan (as of M91)\n // since `name` is mostly ASCII, an inlined `charCodeAt` wins here\n let cp = name.charCodeAt(i);\n if ((cp & 0xfc00) === 0xd800 && i + 1 < name.length) {\n const trail = name.charCodeAt(++i);\n if ((trail & 0xfc00) === 0xdc00) {\n cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff);\n }\n }\n if (isFirst) {\n isFirst = false;\n if (!isIdentifierStart(cp)) {\n return false;\n }\n } else if (!isIdentifierChar(cp)) {\n return false;\n }\n }\n return !isFirst;\n}\n"],"mappings":";;;;;;;;AAaA,IAAIA,4BAA4B,GAAG,spIAAspI;AAEzrI,IAAIC,uBAAuB,GAAG,4lFAA4lF;AAE1nF,MAAMC,uBAAuB,GAAG,IAAIC,MAAM,CACxC,GAAG,GAAGH,4BAA4B,GAAG,GACvC,CAAC;AACD,MAAMI,kBAAkB,GAAG,IAAID,MAAM,CACnC,GAAG,GAAGH,4BAA4B,GAAGC,uBAAuB,GAAG,GACjE,CAAC;AAEDD,4BAA4B,GAAGC,uBAAuB,GAAG,IAAI;AAQ7D,MAAMI,0BAA0B,GAAG,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,EAAE,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,CAAC;AAEjnD,MAAMC,qBAAqB,GAAG,CAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAA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","ignoreList":[]} \ No newline at end of file diff --git a/frontend/node_modules/@babel/helper-validator-identifier/lib/index.js b/frontend/node_modules/@babel/helper-validator-identifier/lib/index.js new file mode 100644 index 0000000..76b2282 --- /dev/null +++ b/frontend/node_modules/@babel/helper-validator-identifier/lib/index.js @@ -0,0 +1,57 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "isIdentifierChar", { + enumerable: true, + get: function () { + return _identifier.isIdentifierChar; + } +}); +Object.defineProperty(exports, "isIdentifierName", { + enumerable: true, + get: function () { + return _identifier.isIdentifierName; + } +}); +Object.defineProperty(exports, "isIdentifierStart", { + enumerable: true, + get: function () { + return _identifier.isIdentifierStart; + } +}); +Object.defineProperty(exports, "isKeyword", { + enumerable: true, + get: function () { + return _keyword.isKeyword; + } +}); +Object.defineProperty(exports, "isReservedWord", { + enumerable: true, + get: function () { + return _keyword.isReservedWord; + } +}); +Object.defineProperty(exports, "isStrictBindOnlyReservedWord", { + enumerable: true, + get: function () { + return _keyword.isStrictBindOnlyReservedWord; + } +}); +Object.defineProperty(exports, "isStrictBindReservedWord", { + enumerable: true, + get: function () { + return _keyword.isStrictBindReservedWord; + } +}); +Object.defineProperty(exports, "isStrictReservedWord", { + enumerable: true, + get: function () { + return _keyword.isStrictReservedWord; + } +}); +var _identifier = require("./identifier.js"); +var _keyword = require("./keyword.js"); + +//# sourceMappingURL=index.js.map diff --git a/frontend/node_modules/@babel/helper-validator-identifier/lib/index.js.map b/frontend/node_modules/@babel/helper-validator-identifier/lib/index.js.map new file mode 100644 index 0000000..d985f3b --- /dev/null +++ b/frontend/node_modules/@babel/helper-validator-identifier/lib/index.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_identifier","require","_keyword"],"sources":["../src/index.ts"],"sourcesContent":["export {\n isIdentifierName,\n isIdentifierChar,\n isIdentifierStart,\n} from \"./identifier.ts\";\nexport {\n isReservedWord,\n isStrictBindOnlyReservedWord,\n isStrictBindReservedWord,\n isStrictReservedWord,\n isKeyword,\n} from \"./keyword.ts\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA","ignoreList":[]} \ No newline at end of file diff --git a/frontend/node_modules/@babel/helper-validator-identifier/lib/keyword.js b/frontend/node_modules/@babel/helper-validator-identifier/lib/keyword.js new file mode 100644 index 0000000..054cf84 --- /dev/null +++ b/frontend/node_modules/@babel/helper-validator-identifier/lib/keyword.js @@ -0,0 +1,35 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.isKeyword = isKeyword; +exports.isReservedWord = isReservedWord; +exports.isStrictBindOnlyReservedWord = isStrictBindOnlyReservedWord; +exports.isStrictBindReservedWord = isStrictBindReservedWord; +exports.isStrictReservedWord = isStrictReservedWord; +const reservedWords = { + keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"], + strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"], + strictBind: ["eval", "arguments"] +}; +const keywords = new Set(reservedWords.keyword); +const reservedWordsStrictSet = new Set(reservedWords.strict); +const reservedWordsStrictBindSet = new Set(reservedWords.strictBind); +function isReservedWord(word, inModule) { + return inModule && word === "await" || word === "enum"; +} +function isStrictReservedWord(word, inModule) { + return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word); +} +function isStrictBindOnlyReservedWord(word) { + return reservedWordsStrictBindSet.has(word); +} +function isStrictBindReservedWord(word, inModule) { + return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word); +} +function isKeyword(word) { + return keywords.has(word); +} + +//# sourceMappingURL=keyword.js.map diff --git a/frontend/node_modules/@babel/helper-validator-identifier/lib/keyword.js.map b/frontend/node_modules/@babel/helper-validator-identifier/lib/keyword.js.map new file mode 100644 index 0000000..3471f78 --- /dev/null +++ b/frontend/node_modules/@babel/helper-validator-identifier/lib/keyword.js.map @@ -0,0 +1 @@ +{"version":3,"names":["reservedWords","keyword","strict","strictBind","keywords","Set","reservedWordsStrictSet","reservedWordsStrictBindSet","isReservedWord","word","inModule","isStrictReservedWord","has","isStrictBindOnlyReservedWord","isStrictBindReservedWord","isKeyword"],"sources":["../src/keyword.ts"],"sourcesContent":["const reservedWords = {\n keyword: [\n \"break\",\n \"case\",\n \"catch\",\n \"continue\",\n \"debugger\",\n \"default\",\n \"do\",\n \"else\",\n \"finally\",\n \"for\",\n \"function\",\n \"if\",\n \"return\",\n \"switch\",\n \"throw\",\n \"try\",\n \"var\",\n \"const\",\n \"while\",\n \"with\",\n \"new\",\n \"this\",\n \"super\",\n \"class\",\n \"extends\",\n \"export\",\n \"import\",\n \"null\",\n \"true\",\n \"false\",\n \"in\",\n \"instanceof\",\n \"typeof\",\n \"void\",\n \"delete\",\n ],\n strict: [\n \"implements\",\n \"interface\",\n \"let\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"static\",\n \"yield\",\n ],\n strictBind: [\"eval\", \"arguments\"],\n};\nconst keywords = new Set(reservedWords.keyword);\nconst reservedWordsStrictSet = new Set(reservedWords.strict);\nconst reservedWordsStrictBindSet = new Set(reservedWords.strictBind);\n\n/**\n * Checks if word is a reserved word in non-strict mode\n */\nexport function isReservedWord(word: string, inModule: boolean): boolean {\n return (inModule && word === \"await\") || word === \"enum\";\n}\n\n/**\n * Checks if word is a reserved word in non-binding strict mode\n *\n * Includes non-strict reserved words\n */\nexport function isStrictReservedWord(word: string, inModule: boolean): boolean {\n return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode, but it is allowed as\n * a normal identifier.\n */\nexport function isStrictBindOnlyReservedWord(word: string): boolean {\n return reservedWordsStrictBindSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode\n *\n * Includes non-strict reserved words and non-binding strict reserved words\n */\nexport function isStrictBindReservedWord(\n word: string,\n inModule: boolean,\n): boolean {\n return (\n isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word)\n );\n}\n\nexport function isKeyword(word: string): boolean {\n return keywords.has(word);\n}\n"],"mappings":";;;;;;;;;;AAAA,MAAMA,aAAa,GAAG;EACpBC,OAAO,EAAE,CACP,OAAO,EACP,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,SAAS,EACT,IAAI,EACJ,MAAM,EACN,SAAS,EACT,KAAK,EACL,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,KAAK,EACL,KAAK,EACL,OAAO,EACP,OAAO,EACP,MAAM,EACN,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,MAAM,EACN,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,QAAQ,CACT;EACDC,MAAM,EAAE,CACN,YAAY,EACZ,WAAW,EACX,KAAK,EACL,SAAS,EACT,SAAS,EACT,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,OAAO,CACR;EACDC,UAAU,EAAE,CAAC,MAAM,EAAE,WAAW;AAClC,CAAC;AACD,MAAMC,QAAQ,GAAG,IAAIC,GAAG,CAACL,aAAa,CAACC,OAAO,CAAC;AAC/C,MAAMK,sBAAsB,GAAG,IAAID,GAAG,CAACL,aAAa,CAACE,MAAM,CAAC;AAC5D,MAAMK,0BAA0B,GAAG,IAAIF,GAAG,CAACL,aAAa,CAACG,UAAU,CAAC;AAK7D,SAASK,cAAcA,CAACC,IAAY,EAAEC,QAAiB,EAAW;EACvE,OAAQA,QAAQ,IAAID,IAAI,KAAK,OAAO,IAAKA,IAAI,KAAK,MAAM;AAC1D;AAOO,SAASE,oBAAoBA,CAACF,IAAY,EAAEC,QAAiB,EAAW;EAC7E,OAAOF,cAAc,CAACC,IAAI,EAAEC,QAAQ,CAAC,IAAIJ,sBAAsB,CAACM,GAAG,CAACH,IAAI,CAAC;AAC3E;AAMO,SAASI,4BAA4BA,CAACJ,IAAY,EAAW;EAClE,OAAOF,0BAA0B,CAACK,GAAG,CAACH,IAAI,CAAC;AAC7C;AAOO,SAASK,wBAAwBA,CACtCL,IAAY,EACZC,QAAiB,EACR;EACT,OACEC,oBAAoB,CAACF,IAAI,EAAEC,QAAQ,CAAC,IAAIG,4BAA4B,CAACJ,IAAI,CAAC;AAE9E;AAEO,SAASM,SAASA,CAACN,IAAY,EAAW;EAC/C,OAAOL,QAAQ,CAACQ,GAAG,CAACH,IAAI,CAAC;AAC3B","ignoreList":[]} \ No newline at end of file diff --git a/frontend/node_modules/@babel/helper-validator-identifier/package.json b/frontend/node_modules/@babel/helper-validator-identifier/package.json new file mode 100644 index 0000000..9904752 --- /dev/null +++ b/frontend/node_modules/@babel/helper-validator-identifier/package.json @@ -0,0 +1,31 @@ +{ + "name": "@babel/helper-validator-identifier", + "version": "7.29.7", + "description": "Validate identifier/keywords name", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel.git", + "directory": "packages/babel-helper-validator-identifier" + }, + "license": "MIT", + "publishConfig": { + "access": "public" + }, + "main": "./lib/index.js", + "exports": { + ".": { + "types": "./lib/index.d.ts", + "default": "./lib/index.js" + }, + "./package.json": "./package.json" + }, + "devDependencies": { + "@unicode/unicode-17.0.0": "^1.6.10", + "charcodes": "^0.2.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "author": "The Babel Team (https://babel.dev/team)", + "type": "commonjs" +} \ No newline at end of file diff --git a/frontend/node_modules/@babel/parser/CHANGELOG.md b/frontend/node_modules/@babel/parser/CHANGELOG.md new file mode 100644 index 0000000..b3840ac --- /dev/null +++ b/frontend/node_modules/@babel/parser/CHANGELOG.md @@ -0,0 +1,1073 @@ +# Changelog + +> **Tags:** +> - :boom: [Breaking Change] +> - :eyeglasses: [Spec Compliance] +> - :rocket: [New Feature] +> - :bug: [Bug Fix] +> - :memo: [Documentation] +> - :house: [Internal] +> - :nail_care: [Polish] + +> Semver Policy: https://github.com/babel/babel/tree/main/packages/babel-parser#semver + +_Note: Gaps between patch versions are faulty, broken or test releases._ + +See the [Babel Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) for the pre-6.8.0 version Changelog. + +## 6.17.1 (2017-05-10) + +### :bug: Bug Fix + * Fix typo in flow spread operator error (Brian Ng) + * Fixed invalid number literal parsing ([#473](https://github.com/babel/babylon/pull/473)) (Alex Kuzmenko) + * Fix number parser ([#433](https://github.com/babel/babylon/pull/433)) (Alex Kuzmenko) + * Ensure non pattern shorthand props are checked for reserved words ([#479](https://github.com/babel/babylon/pull/479)) (Brian Ng) + * Remove jsx context when parsing arrow functions ([#475](https://github.com/babel/babylon/pull/475)) (Brian Ng) + * Allow super in class properties ([#499](https://github.com/babel/babylon/pull/499)) (Brian Ng) + * Allow flow class field to be named constructor ([#510](https://github.com/babel/babylon/pull/510)) (Brian Ng) + +## 6.17.0 (2017-04-20) + +### :bug: Bug Fix + * Cherry-pick #418 to 6.x ([#476](https://github.com/babel/babylon/pull/476)) (Sebastian McKenzie) + * Add support for invalid escapes in tagged templates ([#274](https://github.com/babel/babylon/pull/274)) (Kevin Gibbons) + * Throw error if new.target is used outside of a function ([#402](https://github.com/babel/babylon/pull/402)) (Brian Ng) + * Fix parsing of class properties ([#351](https://github.com/babel/babylon/pull/351)) (Kevin Gibbons) + * Fix parsing yield with dynamicImport ([#383](https://github.com/babel/babylon/pull/383)) (Brian Ng) + * Ensure consistent start args for parseParenItem ([#386](https://github.com/babel/babylon/pull/386)) (Brian Ng) + +## 7.0.0-beta.8 (2017-04-04) + +### New Feature +* Add support for flow type spread (#418) (Conrad Buck) +* Allow statics in flow interfaces (#427) (Brian Ng) + +### Bug Fix +* Fix predicate attachment to match flow parser (#428) (Brian Ng) +* Add extra.raw back to JSXText and JSXAttribute (#344) (Alex Rattray) +* Fix rest parameters with array and objects (#424) (Brian Ng) +* Fix number parser (#433) (Alex Kuzmenko) + +### Docs +* Fix CONTRIBUTING.md [skip ci] (#432) (Alex Kuzmenko) + +### Internal +* Use babel-register script when running babel smoke tests (#442) (Brian Ng) + +## 7.0.0-beta.7 (2017-03-22) + +### Spec Compliance +* Remove babylon plugin for template revision since it's stage-4 (#426) (Henry Zhu) + +### Bug Fix + +* Fix push-pop logic in flow (#405) (Daniel Tschinder) + +## 7.0.0-beta.6 (2017-03-21) + +### New Feature +* Add support for invalid escapes in tagged templates (#274) (Kevin Gibbons) + +### Polish +* Improves error message when super is called outside of constructor (#408) (Arshabh Kumar Agarwal) + +### Docs + +* [7.0] Moved value field in spec from ObjectMember to ObjectProperty as ObjectMethod's don't have it (#415) [skip ci] (James Browning) + +## 7.0.0-beta.5 (2017-03-21) + +### Bug Fix +* Throw error if new.target is used outside of a function (#402) (Brian Ng) +* Fix parsing of class properties (#351) (Kevin Gibbons) + +### Other + * Test runner: Detect extra property in 'actual' but not in 'expected'. (#407) (Andy) + * Optimize travis builds (#419) (Daniel Tschinder) + * Update codecov to 2.0 (#412) (Daniel Tschinder) + * Fix spec for ClassMethod: It doesn't have a function, it *is* a function. (#406) [skip ci] (Andy) + * Changed Non-existent RestPattern to RestElement which is what is actually parsed (#409) [skip ci] (James Browning) + * Upgrade flow to 0.41 (Daniel Tschinder) + * Fix watch command (#403) (Brian Ng) + * Update yarn lock (Daniel Tschinder) + * Fix watch command (#403) (Brian Ng) + * chore(package): update flow-bin to version 0.41.0 (#395) (greenkeeper[bot]) + * Add estree test for correct order of directives (Daniel Tschinder) + * Add DoExpression to spec (#364) (Alex Kuzmenko) + * Mention cloning of repository in CONTRIBUTING.md (#391) [skip ci] (Sumedh Nimkarde) + * Explain how to run only one test (#389) [skip ci] (Aaron Ang) + + ## 7.0.0-beta.4 (2017-03-01) + +* Don't consume async when checking for async func decl (#377) (Brian Ng) +* add `ranges` option [skip ci] (Henry Zhu) +* Don't parse class properties without initializers when classProperties is disabled and Flow is enabled (#300) (Andrew Levine) + +## 7.0.0-beta.3 (2017-02-28) + +- [7.0] Change RestProperty/SpreadProperty to RestElement/SpreadElement (#384) +- Merge changes from 6.x + +## 7.0.0-beta.2 (2017-02-20) + +- estree: correctly change literals in all cases (#368) (Daniel Tschinder) + +## 7.0.0-beta.1 (2017-02-20) + +- Fix negative number literal typeannotations (#366) (Daniel Tschinder) +- Update contributing with more test info [skip ci] (#355) (Brian Ng) + +## 7.0.0-beta.0 (2017-02-15) + +- Reintroduce Variance node (#333) (Daniel Tschinder) +- Rename NumericLiteralTypeAnnotation to NumberLiteralTypeAnnotation (#332) (Charles Pick) +- [7.0] Remove ForAwaitStatement, add await flag to ForOfStatement (#349) (Brandon Dail) +- chore(package): update ava to version 0.18.0 (#345) (greenkeeper[bot]) +- chore(package): update babel-plugin-istanbul to version 4.0.0 (#350) (greenkeeper[bot]) +- Change location of ObjectTypeIndexer to match flow (#228) (Daniel Tschinder) +- Rename flow AST Type ExistentialTypeParam to ExistsTypeAnnotation (#322) (Toru Kobayashi) +- Revert "Temporary rollback for erroring on trailing comma with spread (#154)" (#290) (Daniel Tschinder) +- Remove classConstructorCall plugin (#291) (Brian Ng) +- Update yarn.lock (Daniel Tschinder) +- Update cross-env to 3.x (Daniel Tschinder) +- [7.0] Remove node 0.10, 0.12 and 5 from Travis (#284) (Sergey Rubanov) +- Remove `String.fromCodePoint` shim (#279) (Mathias Bynens) + +## 6.16.1 (2017-02-23) + +### :bug: Regression + +- Revert "Fix export default async function to be FunctionDeclaration" ([#375](https://github.com/babel/babylon/pull/375)) + +Need to modify Babel for this AST node change, so moving to 7.0. + +- Revert "Don't parse class properties without initializers when classProperties plugin is disabled, and Flow is enabled" ([#376](https://github.com/babel/babylon/pull/376)) + +[react-native](https://github.com/facebook/react-native/issues/12542) broke with this so we reverted. + +## 6.16.0 (2017-02-23) + +### :rocket: New Feature + +***ESTree*** compatibility as plugin ([#277](https://github.com/babel/babylon/pull/277)) (Daniel Tschinder) + +We finally introduce a new compatibility layer for ESTree. To put babylon into ESTree-compatible mode the new plugin `estree` can be enabled. In this mode the parser will output an AST that is compliant to the specs of [ESTree](https://github.com/estree/estree/) + +We highly recommend everyone who uses babylon outside of babel to use this plugin. This will make it much easier for users to switch between different ESTree-compatible parsers. We so far tested several projects with different parsers and exchanged their parser to babylon and in nearly all cases it worked out of the box. Some other estree-compatible parsers include `acorn`, `esprima`, `espree`, `flow-parser`, etc. + +To enable `estree` mode simply add the plugin in the config: +```json +{ + "plugins": [ "estree" ] +} +``` + +If you want to migrate your project from non-ESTree mode to ESTree, have a look at our [Readme](https://github.com/babel/babylon/#output), where all deviations are mentioned. + +Add a parseExpression public method ([#213](https://github.com/babel/babylon/pull/213)) (jeromew) + +Babylon exports a new function to parse a single expression + +```js +import { parseExpression } from 'babylon'; + +const ast = parseExpression('x || y && z', options); +``` + +The returned AST will only consist of the expression. The options are the same as for `parse()` + +Add startLine option ([#346](https://github.com/babel/babylon/pull/346)) (Raphael Mu) + +A new option was added to babylon allowing to change the initial linenumber for the first line which is usually `1`. +Changing this for example to `100` will make line `1` of the input source to be marked as line `100`, line `2` as `101`, line `3` as `102`, ... + +Function predicate declaration ([#103](https://github.com/babel/babylon/pull/103)) (Panagiotis Vekris) + +Added support for function predicates which flow introduced in version 0.33.0 + +```js +declare function is_number(x: mixed): boolean %checks(typeof x === "number"); +``` + +Allow imports in declare module ([#315](https://github.com/babel/babylon/pull/315)) (Daniel Tschinder) + +Added support for imports within module declarations which flow introduced in version 0.37.0 + +```js +declare module "C" { + import type { DT } from "D"; + declare export type CT = { D: DT }; +} +``` + +### :eyeglasses: Spec Compliance + +Forbid semicolons after decorators in classes ([#352](https://github.com/babel/babylon/pull/352)) (Kevin Gibbons) + +This example now correctly throws an error when there is a semicolon after the decorator: + +```js +class A { +@a; +foo(){} +} +``` + +Keywords are not allowed as local specifier ([#307](https://github.com/babel/babylon/pull/307)) (Daniel Tschinder) + +Using keywords in imports is not allowed anymore: + +```js +import { default } from "foo"; +import { a as debugger } from "foo"; +``` + +Do not allow overwritting of primitive types ([#314](https://github.com/babel/babylon/pull/314)) (Daniel Tschinder) + +In flow it is now forbidden to overwrite the primitive types `"any"`, `"mixed"`, `"empty"`, `"bool"`, `"boolean"`, `"number"`, `"string"`, `"void"` and `"null"` with your own type declaration. + +Disallow import type { type a } from … ([#305](https://github.com/babel/babylon/pull/305)) (Daniel Tschinder) + +The following code now correctly throws an error + +```js +import type { type a } from "foo"; +``` + +Don't parse class properties without initializers when classProperties is disabled and Flow is enabled ([#300](https://github.com/babel/babylon/pull/300)) (Andrew Levine) + +Ensure that you enable the `classProperties` plugin in order to enable correct parsing of class properties. Prior to this version it was possible to parse them by enabling the `flow` plugin but this was not intended the behaviour. + +If you enable the flow plugin you can only define the type of the class properties, but not initialize them. + +Fix export default async function to be FunctionDeclaration ([#324](https://github.com/babel/babylon/pull/324)) (Daniel Tschinder) + +Parsing the following code now returns a `FunctionDeclaration` AST node instead of `FunctionExpression`. + +```js +export default async function bar() {}; +``` + +### :nail_care: Polish + +Improve error message on attempt to destructure named import ([#288](https://github.com/babel/babylon/pull/288)) (Brian Ng) + +### :bug: Bug Fix + +Fix negative number literal typeannotations ([#366](https://github.com/babel/babylon/pull/366)) (Daniel Tschinder) + +Ensure takeDecorators is called on exported class ([#358](https://github.com/babel/babylon/pull/358)) (Brian Ng) + +ESTree: correctly change literals in all cases ([#368](https://github.com/babel/babylon/pull/368)) (Daniel Tschinder) + +Correctly convert RestProperty to Assignable ([#339](https://github.com/babel/babylon/pull/339)) (Daniel Tschinder) + +Fix #321 by allowing question marks in type params ([#338](https://github.com/babel/babylon/pull/338)) (Daniel Tschinder) + +Fix #336 by correctly setting arrow-param ([#337](https://github.com/babel/babylon/pull/337)) (Daniel Tschinder) + +Fix parse error when destructuring `set` with default value ([#317](https://github.com/babel/babylon/pull/317)) (Brian Ng) + +Fix ObjectTypeCallProperty static ([#298](https://github.com/babel/babylon/pull/298)) (Dan Harper) + + +### :house: Internal + +Fix generator-method-with-computed-name spec ([#360](https://github.com/babel/babylon/pull/360)) (Alex Rattray) + +Fix flow type-parameter-declaration test with unintended semantic ([#361](https://github.com/babel/babylon/pull/361)) (Alex Rattray) + +Cleanup and splitup parser functions ([#295](https://github.com/babel/babylon/pull/295)) (Daniel Tschinder) + +chore(package): update flow-bin to version 0.38.0 ([#313](https://github.com/babel/babylon/pull/313)) (greenkeeper[bot]) + +Call inner function instead of 1:1 copy to plugin ([#294](https://github.com/babel/babylon/pull/294)) (Daniel Tschinder) + +Update eslint-config-babel to the latest version 🚀 ([#299](https://github.com/babel/babylon/pull/299)) (greenkeeper[bot]) + +Update eslint-config-babel to the latest version 🚀 ([#293](https://github.com/babel/babylon/pull/293)) (greenkeeper[bot]) + +devDeps: remove eslint-plugin-babel ([#292](https://github.com/babel/babylon/pull/292)) (Kai Cataldo) + +Correct indent eslint rule config ([#276](https://github.com/babel/babylon/pull/276)) (Daniel Tschinder) + +Fail tests that have expected.json and throws-option ([#285](https://github.com/babel/babylon/pull/285)) (Daniel Tschinder) + +### :memo: Documentation + +Update contributing with more test info [skip ci] ([#355](https://github.com/babel/babylon/pull/355)) (Brian Ng) + +Update API documentation ([#330](https://github.com/babel/babylon/pull/330)) (Timothy Gu) + +Added keywords to package.json ([#323](https://github.com/babel/babylon/pull/323)) (Dmytro) + +AST spec: fix casing of `RegExpLiteral` ([#318](https://github.com/babel/babylon/pull/318)) (Mathias Bynens) + +## 6.15.0 (2017-01-10) + +### :eyeglasses: Spec Compliance + +Add support for Flow shorthand import type ([#267](https://github.com/babel/babylon/pull/267)) (Jeff Morrison) + +This change implements flows new shorthand import syntax +and where previously you had to write this code: + +```js +import {someValue} from "blah"; +import type {someType} from "blah"; +import typeof {someOtherValue} from "blah"; +``` + +you can now write it like this: + +```js +import { + someValue, + type someType, + typeof someOtherValue, +} from "blah"; +``` + +For more information look at [this](https://github.com/facebook/flow/pull/2890) pull request. + +flow: allow leading pipes in all positions ([#256](https://github.com/babel/babylon/pull/256)) (Vladimir Kurchatkin) + +This change now allows a leading pipe everywhere types can be used: +```js +var f = (x): | 1 | 2 => 1; +``` + +Throw error when exporting non-declaration ([#241](https://github.com/babel/babylon/pull/241)) (Kai Cataldo) + +Previously babylon parsed the following exports, although they are not valid: +```js +export typeof foo; +export new Foo(); +export function() {}; +export for (;;); +export while(foo); +``` + +### :bug: Bug Fix + +Don't set inType flag when parsing property names ([#266](https://github.com/babel/babylon/pull/266)) (Vladimir Kurchatkin) + +This fixes parsing of this case: + +```js +const map = { + [age <= 17] : 'Too young' +}; +``` + +Fix source location for JSXEmptyExpression nodes (fixes #248) ([#249](https://github.com/babel/babylon/pull/249)) (James Long) + +The following case produced an invalid AST +```js +
    {/* foo */}
    +``` + +Use fromCodePoint to convert high value unicode entities ([#243](https://github.com/babel/babylon/pull/243)) (Ryan Duffy) + +When high value unicode entities (e.g. 💩) were used in the input source code they are now correctly encoded in the resulting AST. + +Rename folder to avoid Windows-illegal characters ([#281](https://github.com/babel/babylon/pull/281)) (Ryan Plant) + +Allow this.state.clone() when parsing decorators ([#262](https://github.com/babel/babylon/pull/262)) (Alex Rattray) + +### :house: Internal + +User external-helpers ([#254](https://github.com/babel/babylon/pull/254)) (Daniel Tschinder) + +Add watch script for dev ([#234](https://github.com/babel/babylon/pull/234)) (Kai Cataldo) + +Freeze current plugins list for "*" option, and remove from README.md ([#245](https://github.com/babel/babylon/pull/245)) (Andrew Levine) + +Prepare tests for multiple fixture runners. ([#240](https://github.com/babel/babylon/pull/240)) (Daniel Tschinder) + +Add some test coverage for decorators stage-0 plugin ([#250](https://github.com/babel/babylon/pull/250)) (Andrew Levine) + +Refactor tokenizer types file ([#263](https://github.com/babel/babylon/pull/263)) (Sven SAULEAU) + +Update eslint-config-babel to the latest version 🚀 ([#273](https://github.com/babel/babylon/pull/273)) (greenkeeper[bot]) + +chore(package): update rollup to version 0.41.0 ([#272](https://github.com/babel/babylon/pull/272)) (greenkeeper[bot]) + +chore(package): update flow-bin to version 0.37.0 ([#255](https://github.com/babel/babylon/pull/255)) (greenkeeper[bot]) + +## 6.14.1 (2016-11-17) + +### :bug: Bug Fix + +Allow `"plugins": ["*"]` ([#229](https://github.com/babel/babylon/pull/229)) (Daniel Tschinder) + +```js +{ + "plugins": ["*"] +} +``` + +Will include all parser plugins instead of specifying each one individually. Useful for tools like babel-eslint, jscodeshift, and ast-explorer. + +## 6.14.0 (2016-11-16) + +### :eyeglasses: Spec Compliance + +Throw error for reserved words `enum` and `await` ([#195](https://github.com/babel/babylon/pull/195)) (Kai Cataldo) + +[11.6.2.2 Future Reserved Words](http://www.ecma-international.org/ecma-262/6.0/#sec-future-reserved-words) + +Babylon will throw for more reserved words such as `enum` or `await` (in strict mode). + +``` +class enum {} // throws +class await {} // throws in strict mode (module) +``` + +Optional names for function types and object type indexers ([#197](https://github.com/babel/babylon/pull/197)) (Gabe Levi) + +So where you used to have to write + +```js +type A = (x: string, y: boolean) => number; +type B = (z: string) => number; +type C = { [key: string]: number }; +``` + +you can now write (with flow 0.34.0) + +```js +type A = (string, boolean) => number; +type B = string => number; +type C = { [string]: number }; +``` + +Parse flow nested array type annotations like `number[][]` ([#219](https://github.com/babel/babylon/pull/219)) (Bernhard Häussner) + +Supports these form now of specifying array types: + +```js +var a: number[][][][]; +var b: string[][]; +``` + +### :bug: Bug Fix + +Correctly eat semicolon at the end of `DelcareModuleExports` ([#223](https://github.com/babel/babylon/pull/223)) (Daniel Tschinder) + +``` +declare module "foo" { declare module.exports: number } +declare module "foo" { declare module.exports: number; } // also allowed now +``` + +### :house: Internal + + * Count Babel tests towards Babylon code coverage ([#182](https://github.com/babel/babylon/pull/182)) (Moti Zilberman) + * Fix strange line endings ([#214](https://github.com/babel/babylon/pull/214)) (Thomas Grainger) + * Add node 7 (Daniel Tschinder) + * chore(package): update flow-bin to version 0.34.0 ([#204](https://github.com/babel/babylon/pull/204)) (Greenkeeper) + +## v6.13.1 (2016-10-26) + +### :nail_care: Polish + +- Use rollup for bundling to speed up startup time ([#190](https://github.com/babel/babylon/pull/190)) ([@drewml](https://github.com/DrewML)) + +```js +const babylon = require('babylon'); +const ast = babylon.parse('var foo = "lol";'); +``` + +With that test case, there was a ~95ms savings by removing the need for node to build/traverse the dependency graph. + +**Without bundling** +![image](https://cloud.githubusercontent.com/assets/5233399/19420264/3133497e-93ad-11e6-9a6a-2da59c4f5c13.png) + +**With bundling** +![image](https://cloud.githubusercontent.com/assets/5233399/19420267/388f556e-93ad-11e6-813e-7c5c396be322.png) + +- add clean command [skip ci] ([#201](https://github.com/babel/babylon/pull/201)) (Henry Zhu) +- add ForAwaitStatement (async generator already added) [skip ci] ([#196](https://github.com/babel/babylon/pull/196)) (Henry Zhu) + +## v6.13.0 (2016-10-21) + +### :eyeglasses: Spec Compliance + +Property variance type annotations for Flow plugin ([#161](https://github.com/babel/babylon/pull/161)) (Sam Goldman) + +> See https://flowtype.org/docs/variance.html for more information + +```js +type T = { +p: T }; +interface T { -p: T }; +declare class T { +[k:K]: V }; +class T { -[k:K]: V }; +class C2 { +p: T = e }; +``` + +Raise error on duplicate definition of __proto__ ([#183](https://github.com/babel/babylon/pull/183)) (Moti Zilberman) + +```js +({ __proto__: 1, __proto__: 2 }) // Throws an error now +``` + +### :bug: Bug Fix + +Flow: Allow class properties to be named `static` ([#184](https://github.com/babel/babylon/pull/184)) (Moti Zilberman) + +```js +declare class A { + static: T; +} +``` + +Allow "async" as identifier for object literal property shorthand ([#187](https://github.com/babel/babylon/pull/187)) (Andrew Levine) + +```js +var foo = { async, bar }; +``` + +### :nail_care: Polish + +Fix flowtype and add inType to state ([#189](https://github.com/babel/babylon/pull/189)) (Daniel Tschinder) + +> This improves the performance slightly (because of hidden classes) + +### :house: Internal + +Fix .gitattributes line ending setting ([#191](https://github.com/babel/babylon/pull/191)) (Moti Zilberman) + +Increase test coverage ([#175](https://github.com/babel/babylon/pull/175) (Moti Zilberman) + +Readd missin .eslinignore for IDEs (Daniel Tschinder) + +Error on missing expected.json fixture in CI ([#188](https://github.com/babel/babylon/pull/188)) (Moti Zilberman) + +Add .gitattributes and .editorconfig for LF line endings ([#179](https://github.com/babel/babylon/pull/179)) (Moti Zilberman) + +Fixes two tests that are failing after the merge of #172 ([#177](https://github.com/babel/babylon/pull/177)) (Moti Zilberman) + +## v6.12.0 (2016-10-14) + +### :eyeglasses: Spec Compliance + +Implement import() syntax ([#163](https://github.com/babel/babylon/pull/163)) (Jordan Gensler) + +#### Dynamic Import + +- Proposal Repo: https://github.com/domenic/proposal-dynamic-import +- Championed by [@domenic](https://github.com/domenic) +- stage-2 +- [sept-28 tc39 notes](https://github.com/rwaldron/tc39-notes/blob/master/es7/2016-09/sept-28.md#113a-import) + +> This repository contains a proposal for adding a "function-like" import() module loading syntactic form to JavaScript + +```js +import(`./section-modules/${link.dataset.entryModule}.js`) +.then(module => { + module.loadPageInto(main); +}) +``` + +Add EmptyTypeAnnotation ([#171](https://github.com/babel/babylon/pull/171)) (Sam Goldman) + +#### EmptyTypeAnnotation + +Just wasn't covered before. + +```js +type T = empty; +``` + +### :bug: Bug Fix + +Fix crash when exporting with destructuring and sparse array ([#170](https://github.com/babel/babylon/pull/170)) (Jeroen Engels) + +```js +// was failing due to sparse array +export const { foo: [ ,, qux7 ] } = bar; +``` + +Allow keyword in Flow object declaration property names with type parameters ([#146](https://github.com/babel/babylon/pull/146)) (Dan Harper) + +```js +declare class X { + foobar(): void; + static foobar(): void; +} +``` + +Allow keyword in object/class property names with Flow type parameters ([#145](https://github.com/babel/babylon/pull/145)) (Dan Harper) + +```js +class Foo { + delete(item: T): T { + return item; + } +} +``` + +Allow typeAnnotations for yield expressions ([#174](https://github.com/babel/babylon/pull/174))) (Daniel Tschinder) + +```js +function *foo() { + const x = (yield 5: any); +} +``` + +### :nail_care: Polish + +Annotate more errors with expected token ([#172](https://github.com/babel/babylon/pull/172))) (Moti Zilberman) + +```js +// Unexpected token, expected ; (1:6) +{ set 1 } +``` + +### :house: Internal + +Remove kcheck ([#173](https://github.com/babel/babylon/pull/173))) (Daniel Tschinder) + +Also run flow, linting, babel tests on separate instances (add back node 0.10) + +## v6.11.6 (2016-10-12) + +### :bug: Bug Fix/Regression + +Fix crash when exporting with destructuring and sparse array ([#170](https://github.com/babel/babylon/pull/170)) (Jeroen Engels) + +```js +// was failing with `Cannot read property 'type' of null` because of null identifiers +export const { foo: [ ,, qux7 ] } = bar; +``` + +## v6.11.5 (2016-10-12) + +### :eyeglasses: Spec Compliance + +Fix: Check for duplicate named exports in exported destructuring assignments ([#144](https://github.com/babel/babylon/pull/144)) (Kai Cataldo) + +```js +// `foo` has already been exported. Exported identifiers must be unique. (2:20) +export function foo() {}; +export const { a: [{foo}] } = bar; +``` + +Fix: Check for duplicate named exports in exported rest elements/properties ([#164](https://github.com/babel/babylon/pull/164)) (Kai Cataldo) + +```js +// `foo` has already been exported. Exported identifiers must be unique. (2:22) +export const foo = 1; +export const [bar, ...foo] = baz; +``` + +### :bug: Bug Fix + +Fix: Allow identifier `async` for default param in arrow expression ([#165](https://github.com/babel/babylon/pull/165)) (Kai Cataldo) + +```js +// this is ok now +const test = ({async = true}) => {}; +``` + +### :nail_care: Polish + +Babylon will now print out the token it's expecting if there's a `SyntaxError` ([#150](https://github.com/babel/babylon/pull/150)) (Daniel Tschinder) + +```bash +# So in the case of a missing ending curly (`}`) +Module build failed: SyntaxError: Unexpected token, expected } (30:0) + 28 | } + 29 | +> 30 | + | ^ +``` + +## v6.11.4 (2016-10-03) + +Temporary rollback for erroring on trailing comma with spread (#154) (Henry Zhu) + +## v6.11.3 (2016-10-01) + +### :eyeglasses: Spec Compliance + +Add static errors for object rest (#149) ([@danez](https://github.com/danez)) + +> https://github.com/sebmarkbage/ecmascript-rest-spread + +Object rest copies the *rest* of properties from the right hand side `obj` starting from the left to right. + +```js +let { x, y, ...z } = { x: 1, y: 2, z: 3 }; +// x = 1 +// y = 2 +// z = { z: 3 } +``` + +#### New Syntax Errors: + +**SyntaxError**: The rest element has to be the last element when destructuring (1:10) +```bash +> 1 | let { ...x, y, z } = { x: 1, y: 2, z: 3}; + | ^ +# Previous behavior: +# x = { x: 1, y: 2, z: 3 } +# y = 2 +# z = 3 +``` + +Before, this was just a more verbose way of shallow copying `obj` since it doesn't actually do what you think. + +**SyntaxError**: Cannot have multiple rest elements when destructuring (1:13) + +```bash +> 1 | let { x, ...y, ...z } = { x: 1, y: 2, z: 3}; + | ^ +# Previous behavior: +# x = 1 +# y = { y: 2, z: 3 } +# z = { y: 2, z: 3 } +``` + +Before y and z would just be the same value anyway so there is no reason to need to have both. + +**SyntaxError**: A trailing comma is not permitted after the rest element (1:16) + +```js +let { x, y, ...z, } = obj; +``` + +The rationale for this is that the use case for trailing comma is that you can add something at the end without affecting the line above. Since a RestProperty always has to be the last property it doesn't make sense. + +--- + +get / set are valid property names in default assignment (#142) ([@jezell](https://github.com/jezell)) + +```js +// valid +function something({ set = null, get = null }) {} +``` + +## v6.11.2 (2016-09-23) + +### Bug Fix + +- [#139](https://github.com/babel/babylon/issues/139) Don't do the duplicate check if not an identifier (#140) @hzoo + +```js +// regression with duplicate export check +SyntaxError: ./typography.js: `undefined` has already been exported. Exported identifiers must be unique. (22:13) + 20 | + 21 | export const { rhythm } = typography; +> 22 | export const { TypographyStyle } = typography +``` + +Bail out for now, and make a change to account for destructuring in the next release. + +## 6.11.1 (2016-09-22) + +### Bug Fix +- [#137](https://github.com/babel/babylon/pull/137) - Fix a regression with duplicate exports - it was erroring on all keys in `Object.prototype`. @danez + +```javascript +export toString from './toString'; +``` + +```bash +`toString` has already been exported. Exported identifiers must be unique. (1:7) +> 1 | export toString from './toString'; + | ^ + 2 | +``` + +## 6.11.0 (2016-09-22) + +### Spec Compliance (will break CI) + +- Disallow duplicate named exports ([#107](https://github.com/babel/babylon/pull/107)) @kaicataldo + +```js +// Only one default export allowed per module. (2:9) +export default function() {}; +export { foo as default }; + +// Only one default export allowed per module. (2:0) +export default {}; +export default function() {}; + +// `Foo` has already been exported. Exported identifiers must be unique. (2:0) +export { Foo }; +export class Foo {}; +``` + +### New Feature (Syntax) + +- Add support for computed class property names ([#121](https://github.com/babel/babylon/pull/121)) @motiz88 + +```js +// AST +interface ClassProperty <: Node { + type: "ClassProperty"; + key: Identifier; + value: Expression; + computed: boolean; // added +} +``` + +```js +// with "plugins": ["classProperties"] +class Foo { + [x] + ['y'] +} + +class Bar { + [p] + [m] () {} +} + ``` + +### Bug Fix + +- Fix `static` property falling through in the declare class Flow AST ([#135](https://github.com/babel/babylon/pull/135)) @danharper + +```js +declare class X { + a: number; + static b: number; // static + c: number; // this was being marked as static in the AST as well +} +``` + +### Polish + +- Rephrase "assigning/binding to rvalue" errors to include context ([#119](https://github.com/babel/babylon/pull/119)) @motiz88 + +```js +// Used to error with: +// SyntaxError: Assigning to rvalue (1:0) + +// Now: +// Invalid left-hand side in assignment expression (1:0) +3 = 4 + +// Invalid left-hand side in for-in statement (1:5) +for (+i in {}); +``` + +### Internal + +- Fix call to `this.parseMaybeAssign` with correct arguments ([#133](https://github.com/babel/babylon/pull/133)) @danez +- Add semver note to changelog ([#131](https://github.com/babel/babylon/pull/131)) @hzoo + +## 6.10.0 (2016-09-19) + +> We plan to include some spec compliance bugs in patch versions. An example was the multiple default exports issue. + +### Spec Compliance + +* Implement ES2016 check for simple parameter list in strict mode ([#106](https://github.com/babel/babylon/pull/106)) (Timothy Gu) + +> It is a Syntax Error if ContainsUseStrict of FunctionBody is true and IsSimpleParameterList of FormalParameters is false. https://tc39.github.io/ecma262/2016/#sec-function-definitions-static-semantics-early-errors + +More Context: [tc39-notes](https://github.com/rwaldron/tc39-notes/blob/master/es7/2015-07/july-29.md#611-the-scope-of-use-strict-with-respect-to-destructuring-in-parameter-lists) + +For example: + +```js +// this errors because it uses destructuring and default parameters +// in a function with a "use strict" directive +function a([ option1, option2 ] = []) { + "use strict"; +} + ``` + +The solution would be to use a top level "use strict" or to remove the destructuring or default parameters when using a function + "use strict" or to. + +### New Feature + +* Exact object type annotations for Flow plugin ([#104](https://github.com/babel/babylon/pull/104)) (Basil Hosmer) + +Added to flow in https://github.com/facebook/flow/commit/c710c40aa2a115435098d6c0dfeaadb023cd39b8 + +Looks like: + +```js +var a : {| x: number, y: string |} = { x: 0, y: 'foo' }; +``` + +### Bug Fixes + +* Include `typeParameter` location in `ArrowFunctionExpression` ([#126](https://github.com/babel/babylon/pull/126)) (Daniel Tschinder) +* Error on invalid flow type annotation with default assignment ([#122](https://github.com/babel/babylon/pull/122)) (Dan Harper) +* Fix Flow return types on arrow functions ([#124](https://github.com/babel/babylon/pull/124)) (Dan Harper) + +### Misc + +* Add tests for export extensions ([#127](https://github.com/babel/babylon/pull/127)) (Daniel Tschinder) +* Fix Contributing guidelines [skip ci] (Daniel Tschinder) + +## 6.9.2 (2016-09-09) + +The only change is to remove the `babel-runtime` dependency by compiling with Babel's ES2015 loose mode. So using babylon standalone should be smaller. + +## 6.9.1 (2016-08-23) + +This release contains mainly small bugfixes but also updates babylons default mode to es2017. The features for `exponentiationOperator`, `asyncFunctions` and `trailingFunctionCommas` which previously needed to be activated via plugin are now enabled by default and the plugins are now no-ops. + +### Bug Fixes + +- Fix issues with default object params in async functions ([#96](https://github.com/babel/babylon/pull/96)) @danez +- Fix issues with flow-types and async function ([#95](https://github.com/babel/babylon/pull/95)) @danez +- Fix arrow functions with destructuring, types & default value ([#94](https://github.com/babel/babylon/pull/94)) @danharper +- Fix declare class with qualified type identifier ([#97](https://github.com/babel/babylon/pull/97)) @danez +- Remove exponentiationOperator, asyncFunctions, trailingFunctionCommas plugins and enable them by default ([#98](https://github.com/babel/babylon/pull/98)) @danez + +## 6.9.0 (2016-08-16) + +### New syntax support + +- Add JSX spread children ([#42](https://github.com/babel/babylon/pull/42)) @calebmer + +(Be aware that React is not going to support this syntax) + +```js +
    + {...todos.map(todo => )} +
    +``` + +- Add support for declare module.exports ([#72](https://github.com/babel/babylon/pull/72)) @danez + +```js +declare module "foo" { + declare module.exports: {} +} +``` + +### New Features + +- If supplied, attach filename property to comment node loc. ([#80](https://github.com/babel/babylon/pull/80)) @divmain +- Add identifier name to node loc field ([#90](https://github.com/babel/babylon/pull/90)) @kittens + +### Bug Fixes + +- Fix exponential operator to behave according to spec ([#75](https://github.com/babel/babylon/pull/75)) @danez +- Fix lookahead to not add comments to arrays which are not cloned ([#76](https://github.com/babel/babylon/pull/76)) @danez +- Fix accidental fall-through in Flow type parsing. ([#82](https://github.com/babel/babylon/pull/82)) @xiemaisi +- Only allow declares inside declare module ([#73](https://github.com/babel/babylon/pull/73)) @danez +- Small fix for parsing type parameter declarations ([#83](https://github.com/babel/babylon/pull/83)) @gabelevi +- Fix arrow param locations with flow types ([#57](https://github.com/babel/babylon/pull/57)) @danez +- Fixes SyntaxError position with flow optional type ([#65](https://github.com/babel/babylon/pull/65)) @danez + +### Internal + +- Add codecoverage to tests @danez +- Fix tests to not save expected output if we expect the test to fail @danez +- Make a shallow clone of babel for testing @danez +- chore(package): update cross-env to version 2.0.0 ([#77](https://github.com/babel/babylon/pull/77)) @greenkeeperio-bot +- chore(package): update ava to version 0.16.0 ([#86](https://github.com/babel/babylon/pull/86)) @greenkeeperio-bot +- chore(package): update babel-plugin-istanbul to version 2.0.0 ([#89](https://github.com/babel/babylon/pull/89)) @greenkeeperio-bot +- chore(package): update nyc to version 8.0.0 ([#88](https://github.com/babel/babylon/pull/88)) @greenkeeperio-bot + +## 6.8.4 (2016-07-06) + +### Bug Fixes + +- Fix the location of params, when flow and default value used ([#68](https://github.com/babel/babylon/pull/68)) @danez + +## 6.8.3 (2016-07-02) + +### Bug Fixes + +- Fix performance regression introduced in 6.8.2 with conditionals ([#63](https://github.com/babel/babylon/pull/63)) @danez + +## 6.8.2 (2016-06-24) + +### Bug Fixes + +- Fix parse error with yielding jsx elements in generators `function* it() { yield ; }` ([#31](https://github.com/babel/babylon/pull/31)) @eldereal +- When cloning nodes do not clone its comments ([#24](https://github.com/babel/babylon/pull/24)) @danez +- Fix parse errors when using arrow functions with an spread element and return type `(...props): void => {}` ([#10](https://github.com/babel/babylon/pull/10)) @danez +- Fix leading comments added from previous node ([#23](https://github.com/babel/babylon/pull/23)) @danez +- Fix parse errors with flow's optional arguments `(arg?) => {}` ([#19](https://github.com/babel/babylon/pull/19)) @danez +- Support negative numeric type literals @kittens +- Remove line terminator restriction after await keyword @kittens +- Remove grouped type arrow restriction as it seems flow no longer has it @kittens +- Fix parse error with generic methods that have the name `get` or `set` `class foo { get() {} }` ([#55](https://github.com/babel/babylon/pull/55)) @vkurchatkin +- Fix parse error with arrow functions that have flow type parameter declarations `(x: T): T => x;` ([#54](https://github.com/babel/babylon/pull/54)) @gabelevi + +### Documentation + +- Document AST differences from ESTree ([#41](https://github.com/babel/babylon/pull/41)) @nene +- Move ast spec from babel/babel ([#46](https://github.com/babel/babylon/pull/46)) @hzoo + +### Internal + +- Enable skipped tests ([#16](https://github.com/babel/babylon/pull/16)) @danez +- Add script to test latest version of babylon with babel ([#21](https://github.com/babel/babylon/pull/21)) @danez +- Upgrade test runner ava @kittens +- Add missing generate-identifier-regex script @kittens +- Rename parser context types @kittens +- Add node v6 to travis testing @hzoo +- Update to Unicode v9 ([#45](https://github.com/babel/babylon/pull/45)) @mathiasbynens + +## 6.8.1 (2016-06-06) + +### New Feature + +- Parse type parameter declarations with defaults like `type Foo = T` + +### Bug Fixes +- Type parameter declarations need 1 or more type parameters. +- The existential type `*` is not a valid type parameter. +- The existential type `*` is a primary type + +### Spec Compliance +- The param list for type parameter declarations now consists of `TypeParameter` nodes +- New `TypeParameter` AST Node (replaces using the `Identifier` node before) + +``` +interface TypeParameter <: Node { + bound: TypeAnnotation; + default: TypeAnnotation; + name: string; + variance: "plus" | "minus"; +} +``` + +## 6.8.0 (2016-05-02) + +#### New Feature + +##### Parse Method Parameter Decorators ([#12](https://github.com/babel/babylon/pull/12)) + +> [Method Parameter Decorators](https://goo.gl/8MmCMG) is now a TC39 [stage 0 proposal](https://github.com/tc39/ecma262/blob/master/stage0.md). + +Examples: + +```js +class Foo { + constructor(@foo() x, @bar({ a: 123 }) @baz() y) {} +} + +export default function func(@foo() x, @bar({ a: 123 }) @baz() y) {} + +var obj = { + method(@foo() x, @bar({ a: 123 }) @baz() y) {} +}; +``` + +##### Parse for-await statements (w/ `asyncGenerators` plugin) ([#17](https://github.com/babel/babylon/pull/17)) + +There is also a new node type, `ForAwaitStatement`. + +> [Async generators and for-await](https://github.com/tc39/proposal-async-iteration) are now a [stage 2 proposal](https://github.com/tc39/ecma262#current-proposals). + +Example: + +```js +async function f() { + for await (let x of y); +} +``` diff --git a/frontend/node_modules/@babel/parser/LICENSE b/frontend/node_modules/@babel/parser/LICENSE new file mode 100644 index 0000000..d4c7fc5 --- /dev/null +++ b/frontend/node_modules/@babel/parser/LICENSE @@ -0,0 +1,19 @@ +Copyright (C) 2012-2014 by various contributors (see AUTHORS) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/frontend/node_modules/@babel/parser/README.md b/frontend/node_modules/@babel/parser/README.md new file mode 100644 index 0000000..a9463e8 --- /dev/null +++ b/frontend/node_modules/@babel/parser/README.md @@ -0,0 +1,19 @@ +# @babel/parser + +> A JavaScript parser + +See our website [@babel/parser](https://babeljs.io/docs/babel-parser) for more information or the [issues](https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20parser%22+is%3Aopen) associated with this package. + +## Install + +Using npm: + +```sh +npm install --save-dev @babel/parser +``` + +or using yarn: + +```sh +yarn add @babel/parser --dev +``` diff --git a/frontend/node_modules/@babel/parser/bin/babel-parser.js b/frontend/node_modules/@babel/parser/bin/babel-parser.js new file mode 100755 index 0000000..4808c5e --- /dev/null +++ b/frontend/node_modules/@babel/parser/bin/babel-parser.js @@ -0,0 +1,15 @@ +#!/usr/bin/env node +/* eslint-disable no-var, unicorn/prefer-node-protocol */ + +var parser = require(".."); +var fs = require("fs"); + +var filename = process.argv[2]; +if (!filename) { + console.error("no filename specified"); +} else { + var file = fs.readFileSync(filename, "utf8"); + var ast = parser.parse(file); + + console.log(JSON.stringify(ast, null, " ")); +} diff --git a/frontend/node_modules/@babel/parser/lib/index.js b/frontend/node_modules/@babel/parser/lib/index.js new file mode 100644 index 0000000..a7c4667 --- /dev/null +++ b/frontend/node_modules/@babel/parser/lib/index.js @@ -0,0 +1,14599 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { + value: true +}); +function _objectWithoutPropertiesLoose(r, e) { + if (null == r) return {}; + var t = {}; + for (var n in r) if ({}.hasOwnProperty.call(r, n)) { + if (-1 !== e.indexOf(n)) continue; + t[n] = r[n]; + } + return t; +} +class Position { + constructor(line, col, index) { + this.line = void 0; + this.column = void 0; + this.index = void 0; + this.line = line; + this.column = col; + this.index = index; + } +} +class SourceLocation { + constructor(start, end) { + this.start = void 0; + this.end = void 0; + this.filename = void 0; + this.identifierName = void 0; + this.start = start; + this.end = end; + } +} +function createPositionWithColumnOffset(position, columnOffset) { + const { + line, + column, + index + } = position; + return new Position(line, column + columnOffset, index + columnOffset); +} +const code = "BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED"; +var ModuleErrors = { + ImportMetaOutsideModule: { + message: `import.meta may appear only with 'sourceType: "module"'`, + code + }, + ImportOutsideModule: { + message: `'import' and 'export' may appear only with 'sourceType: "module"'`, + code + } +}; +const NodeDescriptions = { + ArrayPattern: "array destructuring pattern", + AssignmentExpression: "assignment expression", + AssignmentPattern: "assignment expression", + ArrowFunctionExpression: "arrow function expression", + ConditionalExpression: "conditional expression", + CatchClause: "catch clause", + ForOfStatement: "for-of statement", + ForInStatement: "for-in statement", + ForStatement: "for-loop", + FormalParameters: "function parameter list", + Identifier: "identifier", + ImportSpecifier: "import specifier", + ImportDefaultSpecifier: "import default specifier", + ImportNamespaceSpecifier: "import namespace specifier", + ObjectPattern: "object destructuring pattern", + ParenthesizedExpression: "parenthesized expression", + RestElement: "rest element", + UpdateExpression: { + true: "prefix operation", + false: "postfix operation" + }, + VariableDeclarator: "variable declaration", + YieldExpression: "yield expression" +}; +const toNodeDescription = node => node.type === "UpdateExpression" ? NodeDescriptions.UpdateExpression[`${node.prefix}`] : NodeDescriptions[node.type]; +var StandardErrors = { + AccessorIsGenerator: ({ + kind + }) => `A ${kind}ter cannot be a generator.`, + ArgumentsInClass: "'arguments' is only allowed in functions and class methods.", + AsyncFunctionInSingleStatementContext: "Async functions can only be declared at the top level or inside a block.", + AwaitBindingIdentifier: "Can not use 'await' as identifier inside an async function.", + AwaitBindingIdentifierInStaticBlock: "Can not use 'await' as identifier inside a static block.", + AwaitExpressionFormalParameter: "'await' is not allowed in async function parameters.", + AwaitUsingNotInAsyncContext: "'await using' is only allowed within async functions and at the top levels of modules.", + AwaitNotInAsyncContext: "'await' is only allowed within async functions and at the top levels of modules.", + BadGetterArity: "A 'get' accessor must not have any formal parameters.", + BadSetterArity: "A 'set' accessor must have exactly one formal parameter.", + BadSetterRestParameter: "A 'set' accessor function argument must not be a rest parameter.", + ConstructorClassField: "Classes may not have a field named 'constructor'.", + ConstructorClassPrivateField: "Classes may not have a private field named '#constructor'.", + ConstructorIsAccessor: "Class constructor may not be an accessor.", + ConstructorIsAsync: "Constructor can't be an async function.", + ConstructorIsGenerator: "Constructor can't be a generator.", + DeclarationMissingInitializer: ({ + kind + }) => `Missing initializer in ${kind} declaration.`, + DecoratorArgumentsOutsideParentheses: "Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(decorator)(args)'.", + DecoratorBeforeExport: "Decorators must be placed *before* the 'export' keyword. Remove the 'decoratorsBeforeExport: true' option to use the 'export @decorator class {}' syntax.", + DecoratorsBeforeAfterExport: "Decorators can be placed *either* before or after the 'export' keyword, but not in both locations at the same time.", + DecoratorConstructor: "Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?", + DecoratorExportClass: "Decorators must be placed *after* the 'export' keyword. Remove the 'decoratorsBeforeExport: false' option to use the '@decorator export class {}' syntax.", + DecoratorSemicolon: "Decorators must not be followed by a semicolon.", + DecoratorStaticBlock: "Decorators can't be used with a static block.", + DeferImportRequiresNamespace: 'Only `import defer * as x from "./module"` is valid.', + DeletePrivateField: "Deleting a private field is not allowed.", + DestructureNamedImport: "ES2015 named imports do not destructure. Use another statement for destructuring after the import.", + DuplicateConstructor: "Duplicate constructor in the same class.", + DuplicateDefaultExport: "Only one default export allowed per module.", + DuplicateExport: ({ + exportName + }) => `\`${exportName}\` has already been exported. Exported identifiers must be unique.`, + DuplicateProto: "Redefinition of __proto__ property.", + DuplicateRegExpFlags: "Duplicate regular expression flag.", + ElementAfterRest: "Rest element must be last element.", + EscapedCharNotAnIdentifier: "Invalid Unicode escape.", + ExportBindingIsString: ({ + localName, + exportName + }) => `A string literal cannot be used as an exported binding without \`from\`.\n- Did you mean \`export { '${localName}' as '${exportName}' } from 'some-module'\`?`, + ExportDefaultFromAsIdentifier: "'from' is not allowed as an identifier after 'export default'.", + ForInOfLoopInitializer: ({ + type + }) => `'${type === "ForInStatement" ? "for-in" : "for-of"}' loop variable declaration may not have an initializer.`, + ForInUsing: "For-in loop may not start with 'using' declaration.", + ForOfAsync: "The left-hand side of a for-of loop may not be 'async'.", + ForOfLet: "The left-hand side of a for-of loop may not start with 'let'.", + GeneratorInSingleStatementContext: "Generators can only be declared at the top level or inside a block.", + IllegalBreakContinue: ({ + type + }) => `Unsyntactic ${type === "BreakStatement" ? "break" : "continue"}.`, + IllegalLanguageModeDirective: "Illegal 'use strict' directive in function with non-simple parameter list.", + IllegalReturn: "'return' outside of function.", + ImportAttributesUseAssert: "The `assert` keyword in import attributes is deprecated and it has been replaced by the `with` keyword. You can enable the `deprecatedImportAssert` parser plugin to suppress this error.", + ImportBindingIsString: ({ + importName + }) => `A string literal cannot be used as an imported binding.\n- Did you mean \`import { "${importName}" as foo }\`?`, + ImportCallArity: `\`import()\` requires exactly one or two arguments.`, + ImportCallNotNewExpression: "Cannot use new with import(...).", + ImportCallSpreadArgument: "`...` is not allowed in `import()`.", + ImportJSONBindingNotDefault: "A JSON module can only be imported with `default`.", + ImportReflectionHasAssertion: "`import module x` cannot have assertions.", + ImportReflectionNotBinding: 'Only `import module x from "./module"` is valid.', + IncompatibleRegExpUVFlags: "The 'u' and 'v' regular expression flags cannot be enabled at the same time.", + InvalidBigIntLiteral: "Invalid BigIntLiteral.", + InvalidCodePoint: "Code point out of bounds.", + InvalidCoverDiscardElement: "'void' must be followed by an expression when not used in a binding position.", + InvalidCoverInitializedName: "Invalid shorthand property initializer.", + InvalidDecimal: "Invalid decimal.", + InvalidDigit: ({ + radix + }) => `Expected number in radix ${radix}.`, + InvalidEscapeSequence: "Bad character escape sequence.", + InvalidEscapeSequenceTemplate: "Invalid escape sequence in template.", + InvalidEscapedReservedWord: ({ + reservedWord + }) => `Escape sequence in keyword ${reservedWord}.`, + InvalidIdentifier: ({ + identifierName + }) => `Invalid identifier ${identifierName}.`, + InvalidLhs: ({ + ancestor + }) => `Invalid left-hand side in ${toNodeDescription(ancestor)}.`, + InvalidLhsBinding: ({ + ancestor + }) => `Binding invalid left-hand side in ${toNodeDescription(ancestor)}.`, + InvalidLhsOptionalChaining: ({ + ancestor + }) => `Invalid optional chaining in the left-hand side of ${toNodeDescription(ancestor)}.`, + InvalidNumber: "Invalid number.", + InvalidOrMissingExponent: "Floating-point numbers require a valid exponent after the 'e'.", + InvalidOrUnexpectedToken: ({ + unexpected + }) => `Unexpected character '${unexpected}'.`, + InvalidParenthesizedAssignment: "Invalid parenthesized assignment pattern.", + InvalidPrivateFieldResolution: ({ + identifierName + }) => `Private name #${identifierName} is not defined.`, + InvalidPropertyBindingPattern: "Binding member expression.", + InvalidRecordProperty: "Only properties and spread elements are allowed in record definitions.", + InvalidRestAssignmentPattern: "Invalid rest operator's argument.", + LabelRedeclaration: ({ + labelName + }) => `Label '${labelName}' is already declared.`, + LetInLexicalBinding: "'let' is disallowed as a lexically bound name.", + LineTerminatorBeforeArrow: "No line break is allowed before '=>'.", + MalformedRegExpFlags: "Invalid regular expression flag.", + MissingClassName: "A class name is required.", + MissingEqInAssignment: "Only '=' operator can be used for specifying default value.", + MissingSemicolon: "Missing semicolon.", + MissingPlugin: ({ + missingPlugin + }) => `This experimental syntax requires enabling the parser plugin: ${missingPlugin.map(name => JSON.stringify(name)).join(", ")}.`, + MissingOneOfPlugins: ({ + missingPlugin + }) => `This experimental syntax requires enabling one of the following parser plugin(s): ${missingPlugin.map(name => JSON.stringify(name)).join(", ")}.`, + MissingUnicodeEscape: "Expecting Unicode escape sequence \\uXXXX.", + MixingCoalesceWithLogical: "Nullish coalescing operator(??) requires parens when mixing with logical operators.", + ModuleAttributeDifferentFromType: "The only accepted module attribute is `type`.", + ModuleAttributeInvalidValue: "Only string literals are allowed as module attribute values.", + ModuleAttributesWithDuplicateKeys: ({ + key + }) => `Duplicate key "${key}" is not allowed in module attributes.`, + ModuleExportNameHasLoneSurrogate: ({ + surrogateCharCode + }) => `An export name cannot include a lone surrogate, found '\\u${surrogateCharCode.toString(16)}'.`, + ModuleExportUndefined: ({ + localName + }) => `Export '${localName}' is not defined.`, + MultipleDefaultsInSwitch: "Multiple default clauses.", + NewlineAfterThrow: "Illegal newline after throw.", + NoCatchOrFinally: "Missing catch or finally clause.", + NumberIdentifier: "Identifier directly after number.", + NumericSeparatorInEscapeSequence: "Numeric separators are not allowed inside unicode escape sequences or hex escape sequences.", + ObsoleteAwaitStar: "'await*' has been removed from the async functions proposal. Use Promise.all() instead.", + OptionalChainingNoNew: "Constructors in/after an Optional Chain are not allowed.", + OptionalChainingNoTemplate: "Tagged Template Literals are not allowed in optionalChain.", + OverrideOnConstructor: "'override' modifier cannot appear on a constructor declaration.", + ParamDupe: "Argument name clash.", + PatternHasAccessor: "Object pattern can't contain getter or setter.", + PatternHasMethod: "Object pattern can't contain methods.", + PrivateInExpectedIn: ({ + identifierName + }) => `Private names are only allowed in property accesses (\`obj.#${identifierName}\`) or in \`in\` expressions (\`#${identifierName} in obj\`).`, + PrivateNameRedeclaration: ({ + identifierName + }) => `Duplicate private name #${identifierName}.`, + RecordExpressionBarIncorrectEndSyntaxType: "Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.", + RecordExpressionBarIncorrectStartSyntaxType: "Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.", + RecordExpressionHashIncorrectStartSyntaxType: "Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.", + RecordNoProto: "'__proto__' is not allowed in Record expressions.", + RestTrailingComma: "Unexpected trailing comma after rest element.", + SloppyFunction: "In non-strict mode code, functions can only be declared at top level or inside a block.", + SloppyFunctionAnnexB: "In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement.", + SourcePhaseImportRequiresDefault: 'Only `import source x from "./module"` is valid.', + StaticPrototype: "Classes may not have static property named prototype.", + SuperNotAllowed: "`super()` is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?", + SuperPrivateField: "Private fields can't be accessed on super.", + TrailingDecorator: "Decorators must be attached to a class element.", + TupleExpressionBarIncorrectEndSyntaxType: "Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.", + TupleExpressionBarIncorrectStartSyntaxType: "Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.", + TupleExpressionHashIncorrectStartSyntaxType: "Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.", + UnexpectedArgumentPlaceholder: "Unexpected argument placeholder.", + UnexpectedAwaitAfterPipelineBody: 'Unexpected "await" after pipeline body; await must have parentheses in minimal proposal.', + UnexpectedDigitAfterHash: "Unexpected digit after hash token.", + UnexpectedImportExport: "'import' and 'export' may only appear at the top level.", + UnexpectedKeyword: ({ + keyword + }) => `Unexpected keyword '${keyword}'.`, + UnexpectedLeadingDecorator: "Leading decorators must be attached to a class declaration.", + UnexpectedLexicalDeclaration: "Lexical declaration cannot appear in a single-statement context.", + UnexpectedNewTarget: "`new.target` can only be used in functions or class properties.", + UnexpectedNumericSeparator: "A numeric separator is only allowed between two digits.", + UnexpectedPrivateField: "Unexpected private name.", + UnexpectedReservedWord: ({ + reservedWord + }) => `Unexpected reserved word '${reservedWord}'.`, + UnexpectedSuper: "'super' is only allowed in object methods and classes.", + UnexpectedToken: ({ + expected, + unexpected + }) => `Unexpected token${unexpected ? ` '${unexpected}'.` : ""}${expected ? `, expected "${expected}"` : ""}`, + UnexpectedTokenUnaryExponentiation: "Illegal expression. Wrap left hand side or entire exponentiation in parentheses.", + UnexpectedUsingDeclaration: "Using declaration cannot appear in the top level when source type is `script` or in the bare case statement.", + UnexpectedVoidPattern: "Unexpected void binding.", + UnsupportedBind: "Binding should be performed on object property.", + UnsupportedDecoratorExport: "A decorated export must export a class declaration.", + UnsupportedDefaultExport: "Only expressions, functions or classes are allowed as the `default` export.", + UnsupportedImport: "`import` can only be used in `import()` or `import.meta`.", + UnsupportedMetaProperty: ({ + target, + onlyValidPropertyName + }) => `The only valid meta property for ${target} is ${target}.${onlyValidPropertyName}.`, + UnsupportedParameterDecorator: "Decorators cannot be used to decorate parameters.", + UnsupportedPropertyDecorator: "Decorators cannot be used to decorate object literal properties.", + UnsupportedSuper: "'super' can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop]).", + UnterminatedComment: "Unterminated comment.", + UnterminatedRegExp: "Unterminated regular expression.", + UnterminatedString: "Unterminated string constant.", + UnterminatedTemplate: "Unterminated template.", + UsingDeclarationExport: "Using declaration cannot be exported.", + UsingDeclarationHasBindingPattern: "Using declaration cannot have destructuring patterns.", + VarRedeclaration: ({ + identifierName + }) => `Identifier '${identifierName}' has already been declared.`, + VoidPatternCatchClauseParam: "A void binding can not be the catch clause parameter. Use `try { ... } catch { ... }` if you want to discard the caught error.", + VoidPatternInitializer: "A void binding may not have an initializer.", + YieldBindingIdentifier: "Can not use 'yield' as identifier inside a generator.", + YieldInParameter: "Yield expression is not allowed in formal parameters.", + YieldNotInGeneratorFunction: "'yield' is only allowed within generator functions.", + ZeroDigitNumericSeparator: "Numeric separator can not be used after leading 0." +}; +var StrictModeErrors = { + StrictDelete: "Deleting local variable in strict mode.", + StrictEvalArguments: ({ + referenceName + }) => `Assigning to '${referenceName}' in strict mode.`, + StrictEvalArgumentsBinding: ({ + bindingName + }) => `Binding '${bindingName}' in strict mode.`, + StrictFunction: "In strict mode code, functions can only be declared at top level or inside a block.", + StrictNumericEscape: "The only valid numeric escape in strict mode is '\\0'.", + StrictOctalLiteral: "Legacy octal literals are not allowed in strict mode.", + StrictWith: "'with' in strict mode." +}; +var ParseExpressionErrors = { + ParseExpressionEmptyInput: "Unexpected parseExpression() input: The input is empty or contains only comments.", + ParseExpressionExpectsEOF: ({ + unexpected + }) => `Unexpected parseExpression() input: The input should contain exactly one expression, but the first expression is followed by the unexpected character \`${String.fromCodePoint(unexpected)}\`.` +}; +const UnparenthesizedPipeBodyDescriptions = new Set(["ArrowFunctionExpression", "AssignmentExpression", "ConditionalExpression", "YieldExpression"]); +var PipelineOperatorErrors = Object.assign({ + PipeBodyIsTighter: "Unexpected yield after pipeline body; any yield expression acting as Hack-style pipe body must be parenthesized due to its loose operator precedence.", + PipeTopicRequiresHackPipes: 'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.', + PipeTopicUnbound: "Topic reference is unbound; it must be inside a pipe body.", + PipeTopicUnconfiguredToken: ({ + token + }) => `Invalid topic token ${token}. In order to use ${token} as a topic reference, the pipelineOperator plugin must be configured with { "proposal": "hack", "topicToken": "${token}" }.`, + PipeTopicUnused: "Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.", + PipeUnparenthesizedBody: ({ + type + }) => `Hack-style pipe body cannot be an unparenthesized ${toNodeDescription({ + type + })}; please wrap it in parentheses.` +}, { + PipelineBodyNoArrow: 'Unexpected arrow "=>" after pipeline body; arrow function in pipeline body must be parenthesized.', + PipelineBodySequenceExpression: "Pipeline body may not be a comma-separated sequence expression.", + PipelineHeadSequenceExpression: "Pipeline head should not be a comma-separated sequence expression.", + PipelineTopicUnused: "Pipeline is in topic style but does not use topic reference.", + PrimaryTopicNotAllowed: "Topic reference was used in a lexical context without topic binding.", + PrimaryTopicRequiresSmartPipeline: 'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.' +}); +const _excluded = ["message"]; +function defineHidden(obj, key, value) { + Object.defineProperty(obj, key, { + enumerable: false, + configurable: true, + value + }); +} +function toParseErrorConstructor({ + toMessage, + code, + reasonCode, + syntaxPlugin +}) { + const hasMissingPlugin = reasonCode === "MissingPlugin" || reasonCode === "MissingOneOfPlugins"; + const oldReasonCodes = { + AccessorCannotDeclareThisParameter: "AccesorCannotDeclareThisParameter", + AccessorCannotHaveTypeParameters: "AccesorCannotHaveTypeParameters", + ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference: "ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference", + SetAccessorCannotHaveOptionalParameter: "SetAccesorCannotHaveOptionalParameter", + SetAccessorCannotHaveRestParameter: "SetAccesorCannotHaveRestParameter", + SetAccessorCannotHaveReturnType: "SetAccesorCannotHaveReturnType" + }; + if (oldReasonCodes[reasonCode]) { + reasonCode = oldReasonCodes[reasonCode]; + } + return function constructor(loc, details) { + const error = new SyntaxError(); + error.code = code; + error.reasonCode = reasonCode; + error.loc = loc; + error.pos = loc.index; + error.syntaxPlugin = syntaxPlugin; + if (hasMissingPlugin) { + error.missingPlugin = details.missingPlugin; + } + defineHidden(error, "clone", function clone(overrides = {}) { + var _overrides$loc; + const { + line, + column, + index + } = (_overrides$loc = overrides.loc) != null ? _overrides$loc : loc; + return constructor(new Position(line, column, index), Object.assign({}, details, overrides.details)); + }); + defineHidden(error, "details", details); + Object.defineProperty(error, "message", { + configurable: true, + get() { + const message = `${toMessage(details)} (${loc.line}:${loc.column})`; + this.message = message; + return message; + }, + set(value) { + Object.defineProperty(this, "message", { + value, + writable: true + }); + } + }); + return error; + }; +} +function ParseErrorEnum(argument, syntaxPlugin) { + if (Array.isArray(argument)) { + return parseErrorTemplates => ParseErrorEnum(parseErrorTemplates, argument[0]); + } + const ParseErrorConstructors = {}; + for (const reasonCode of Object.keys(argument)) { + const template = argument[reasonCode]; + const _ref = typeof template === "string" ? { + message: () => template + } : typeof template === "function" ? { + message: template + } : template, + { + message + } = _ref, + rest = _objectWithoutPropertiesLoose(_ref, _excluded); + const toMessage = typeof message === "string" ? () => message : message; + ParseErrorConstructors[reasonCode] = toParseErrorConstructor(Object.assign({ + code: "BABEL_PARSER_SYNTAX_ERROR", + reasonCode, + toMessage + }, syntaxPlugin ? { + syntaxPlugin + } : {}, rest)); + } + return ParseErrorConstructors; +} +const Errors = Object.assign({}, ParseErrorEnum(ModuleErrors), ParseErrorEnum(StandardErrors), ParseErrorEnum(StrictModeErrors), ParseErrorEnum(ParseExpressionErrors), ParseErrorEnum`pipelineOperator`(PipelineOperatorErrors)); +function createDefaultOptions() { + return { + sourceType: "script", + sourceFilename: undefined, + startIndex: 0, + startColumn: 0, + startLine: 1, + allowAwaitOutsideFunction: false, + allowReturnOutsideFunction: false, + allowNewTargetOutsideFunction: false, + allowImportExportEverywhere: false, + allowSuperOutsideMethod: false, + allowUndeclaredExports: false, + allowYieldOutsideFunction: false, + plugins: [], + strictMode: undefined, + ranges: false, + tokens: false, + createImportExpressions: false, + createParenthesizedExpressions: false, + errorRecovery: false, + attachComment: true, + annexB: true + }; +} +function getOptions(opts) { + const options = createDefaultOptions(); + if (opts == null) { + return options; + } + if (opts.annexB != null && opts.annexB !== false) { + throw new Error("The `annexB` option can only be set to `false`."); + } + for (const key of Object.keys(options)) { + if (opts[key] != null) options[key] = opts[key]; + } + if (options.startLine === 1) { + if (opts.startIndex == null && options.startColumn > 0) { + options.startIndex = options.startColumn; + } else if (opts.startColumn == null && options.startIndex > 0) { + options.startColumn = options.startIndex; + } + } else if (opts.startColumn == null || opts.startIndex == null) { + if (opts.startIndex != null) { + throw new Error("With a `startLine > 1` you must also specify `startIndex` and `startColumn`."); + } + } + if (options.sourceType === "commonjs") { + if (opts.allowAwaitOutsideFunction != null) { + throw new Error("The `allowAwaitOutsideFunction` option cannot be used with `sourceType: 'commonjs'`."); + } + if (opts.allowReturnOutsideFunction != null) { + throw new Error("`sourceType: 'commonjs'` implies `allowReturnOutsideFunction: true`, please remove the `allowReturnOutsideFunction` option or use `sourceType: 'script'`."); + } + if (opts.allowNewTargetOutsideFunction != null) { + throw new Error("`sourceType: 'commonjs'` implies `allowNewTargetOutsideFunction: true`, please remove the `allowNewTargetOutsideFunction` option or use `sourceType: 'script'`."); + } + } + return options; +} +const { + defineProperty +} = Object; +const toUnenumerable = (object, key) => { + if (object) { + defineProperty(object, key, { + enumerable: false, + value: object[key] + }); + } +}; +function toESTreeLocation(node) { + toUnenumerable(node.loc.start, "index"); + toUnenumerable(node.loc.end, "index"); + return node; +} +var estree = superClass => class ESTreeParserMixin extends superClass { + parse() { + const file = toESTreeLocation(super.parse()); + if (this.optionFlags & 256) { + file.tokens = file.tokens.map(toESTreeLocation); + } + return file; + } + parseRegExpLiteral({ + pattern, + flags + }) { + let regex = null; + try { + regex = new RegExp(pattern, flags); + } catch (_) {} + const node = this.estreeParseLiteral(regex); + node.regex = { + pattern, + flags + }; + return node; + } + parseBigIntLiteral(value) { + let bigInt; + try { + bigInt = BigInt(value); + } catch (_unused) { + bigInt = null; + } + const node = this.estreeParseLiteral(bigInt); + node.bigint = String(node.value || value); + return node; + } + parseDecimalLiteral(value) { + const decimal = null; + const node = this.estreeParseLiteral(decimal); + node.decimal = String(node.value || value); + return node; + } + estreeParseLiteral(value) { + return this.parseLiteral(value, "Literal"); + } + parseStringLiteral(value) { + return this.estreeParseLiteral(value); + } + parseNumericLiteral(value) { + return this.estreeParseLiteral(value); + } + parseNullLiteral() { + return this.estreeParseLiteral(null); + } + parseBooleanLiteral(value) { + return this.estreeParseLiteral(value); + } + estreeParseChainExpression(node, endLoc) { + const chain = this.startNodeAtNode(node); + chain.expression = node; + return this.finishNodeAt(chain, "ChainExpression", endLoc); + } + directiveToStmt(directive) { + const expression = directive.value; + delete directive.value; + this.castNodeTo(expression, "Literal"); + expression.raw = expression.extra.raw; + expression.value = expression.extra.expressionValue; + const stmt = this.castNodeTo(directive, "ExpressionStatement"); + stmt.expression = expression; + stmt.directive = expression.extra.rawValue; + delete expression.extra; + return stmt; + } + fillOptionalPropertiesForTSESLint(node) {} + cloneEstreeStringLiteral(node) { + const { + start, + end, + loc, + range, + raw, + value + } = node; + const cloned = Object.create(node.constructor.prototype); + cloned.type = "Literal"; + cloned.start = start; + cloned.end = end; + cloned.loc = loc; + cloned.range = range; + cloned.raw = raw; + cloned.value = value; + return cloned; + } + initFunction(node, isAsync) { + super.initFunction(node, isAsync); + node.expression = false; + } + checkDeclaration(node) { + if (node != null && this.isObjectProperty(node)) { + this.checkDeclaration(node.value); + } else { + super.checkDeclaration(node); + } + } + getObjectOrClassMethodParams(method) { + return method.value.params; + } + isValidDirective(stmt) { + var _stmt$expression$extr; + return stmt.type === "ExpressionStatement" && stmt.expression.type === "Literal" && typeof stmt.expression.value === "string" && !((_stmt$expression$extr = stmt.expression.extra) != null && _stmt$expression$extr.parenthesized); + } + parseBlockBody(node, allowDirectives, topLevel, end, afterBlockParse) { + super.parseBlockBody(node, allowDirectives, topLevel, end, afterBlockParse); + const directiveStatements = node.directives.map(d => this.directiveToStmt(d)); + node.body = directiveStatements.concat(node.body); + delete node.directives; + } + parsePrivateName() { + const node = super.parsePrivateName(); + if (!this.getPluginOption("estree", "classFeatures")) { + return node; + } + return this.convertPrivateNameToPrivateIdentifier(node); + } + convertPrivateNameToPrivateIdentifier(node) { + const name = super.getPrivateNameSV(node); + delete node.id; + node.name = name; + return this.castNodeTo(node, "PrivateIdentifier"); + } + isPrivateName(node) { + if (!this.getPluginOption("estree", "classFeatures")) { + return super.isPrivateName(node); + } + return node.type === "PrivateIdentifier"; + } + getPrivateNameSV(node) { + if (!this.getPluginOption("estree", "classFeatures")) { + return super.getPrivateNameSV(node); + } + return node.name; + } + parseLiteral(value, type) { + const node = super.parseLiteral(value, type); + node.raw = node.extra.raw; + delete node.extra; + return node; + } + parseFunctionBody(node, allowExpression, isMethod = false) { + super.parseFunctionBody(node, allowExpression, isMethod); + node.expression = node.body.type !== "BlockStatement"; + } + parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope = false) { + let funcNode = this.startNode(); + funcNode.kind = node.kind; + funcNode = super.parseMethod(funcNode, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope); + delete funcNode.kind; + const { + typeParameters + } = node; + if (typeParameters) { + delete node.typeParameters; + funcNode.typeParameters = typeParameters; + this.resetStartLocationFromNode(funcNode, typeParameters); + } + const valueNode = this.castNodeTo(funcNode, "FunctionExpression"); + node.value = valueNode; + if (type === "ClassPrivateMethod") { + node.computed = false; + } + if (type === "ObjectMethod") { + if (node.kind === "method") { + node.kind = "init"; + } + node.shorthand = false; + return this.finishNode(node, "Property"); + } else { + return this.finishNode(node, "MethodDefinition"); + } + } + nameIsConstructor(key) { + if (key.type === "Literal") return key.value === "constructor"; + return super.nameIsConstructor(key); + } + parseClassProperty(...args) { + const propertyNode = super.parseClassProperty(...args); + if (!this.getPluginOption("estree", "classFeatures")) { + return propertyNode; + } + this.castNodeTo(propertyNode, "PropertyDefinition"); + return propertyNode; + } + parseClassPrivateProperty(...args) { + const propertyNode = super.parseClassPrivateProperty(...args); + if (!this.getPluginOption("estree", "classFeatures")) { + return propertyNode; + } + this.castNodeTo(propertyNode, "PropertyDefinition"); + propertyNode.computed = false; + return propertyNode; + } + parseClassAccessorProperty(node) { + const accessorPropertyNode = super.parseClassAccessorProperty(node); + if (!this.getPluginOption("estree", "classFeatures")) { + return accessorPropertyNode; + } + if (accessorPropertyNode.abstract && this.hasPlugin("typescript")) { + delete accessorPropertyNode.abstract; + this.castNodeTo(accessorPropertyNode, "TSAbstractAccessorProperty"); + } else { + this.castNodeTo(accessorPropertyNode, "AccessorProperty"); + } + return accessorPropertyNode; + } + parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors) { + const node = super.parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors); + if (node) { + node.kind = "init"; + this.castNodeTo(node, "Property"); + } + return node; + } + finishObjectProperty(node) { + node.kind = "init"; + return this.finishNode(node, "Property"); + } + isValidLVal(type, disallowCallExpression, isUnparenthesizedInAssign, binding) { + return type === "Property" ? "value" : super.isValidLVal(type, disallowCallExpression, isUnparenthesizedInAssign, binding); + } + isAssignable(node, isBinding) { + if (node != null && this.isObjectProperty(node)) { + return this.isAssignable(node.value, isBinding); + } + return super.isAssignable(node, isBinding); + } + toAssignable(node, isLHS = false) { + if (node != null && this.isObjectProperty(node)) { + const { + key, + value + } = node; + if (this.isPrivateName(key)) { + this.classScope.usePrivateName(this.getPrivateNameSV(key), key.loc.start); + } + this.toAssignable(value, isLHS); + } else { + super.toAssignable(node, isLHS); + } + } + toAssignableObjectExpressionProp(prop, isLast, isLHS) { + if (prop.type === "Property" && (prop.kind === "get" || prop.kind === "set")) { + this.raise(Errors.PatternHasAccessor, prop.key); + } else if (prop.type === "Property" && prop.method) { + this.raise(Errors.PatternHasMethod, prop.key); + } else { + super.toAssignableObjectExpressionProp(prop, isLast, isLHS); + } + } + finishCallExpression(unfinished, optional) { + const node = super.finishCallExpression(unfinished, optional); + if (node.callee.type === "Import") { + var _ref, _ref2; + this.castNodeTo(node, "ImportExpression"); + node.source = node.arguments[0]; + node.options = (_ref = node.arguments[1]) != null ? _ref : null; + node.attributes = (_ref2 = node.arguments[1]) != null ? _ref2 : null; + delete node.arguments; + delete node.callee; + } else if (node.type === "OptionalCallExpression") { + this.castNodeTo(node, "CallExpression"); + } else { + node.optional = false; + } + return node; + } + toReferencedArguments(node) { + if (node.type === "ImportExpression") { + return; + } + super.toReferencedArguments(node); + } + parseExport(unfinished, decorators) { + const exportStartLoc = this.state.lastTokStartLoc; + const node = super.parseExport(unfinished, decorators); + switch (node.type) { + case "ExportAllDeclaration": + node.exported = null; + break; + case "ExportNamedDeclaration": + if (node.specifiers.length === 1 && node.specifiers[0].type === "ExportNamespaceSpecifier") { + this.castNodeTo(node, "ExportAllDeclaration"); + node.exported = node.specifiers[0].exported; + delete node.specifiers; + } + case "ExportDefaultDeclaration": + { + var _declaration$decorato; + const { + declaration + } = node; + if ((declaration == null ? void 0 : declaration.type) === "ClassDeclaration" && ((_declaration$decorato = declaration.decorators) == null ? void 0 : _declaration$decorato.length) > 0 && declaration.start === node.start) { + this.resetStartLocation(node, exportStartLoc); + } + } + break; + } + return node; + } + stopParseSubscript(base, state) { + const node = super.stopParseSubscript(base, state); + if (state.optionalChainMember) { + return this.estreeParseChainExpression(node, base.loc.end); + } + return node; + } + parseMember(base, startLoc, state, computed, optional) { + const node = super.parseMember(base, startLoc, state, computed, optional); + if (node.type === "OptionalMemberExpression") { + this.castNodeTo(node, "MemberExpression"); + } else { + node.optional = false; + } + return node; + } + isOptionalMemberExpression(node) { + if (node.type === "ChainExpression") { + return node.expression.type === "MemberExpression"; + } + return super.isOptionalMemberExpression(node); + } + hasPropertyAsPrivateName(node) { + if (node.type === "ChainExpression") { + node = node.expression; + } + return super.hasPropertyAsPrivateName(node); + } + isObjectProperty(node) { + return node.type === "Property" && node.kind === "init" && !node.method; + } + isObjectMethod(node) { + return node.type === "Property" && (node.method || node.kind === "get" || node.kind === "set"); + } + castNodeTo(node, type) { + const result = super.castNodeTo(node, type); + this.fillOptionalPropertiesForTSESLint(result); + return result; + } + cloneIdentifier(node) { + const cloned = super.cloneIdentifier(node); + this.fillOptionalPropertiesForTSESLint(cloned); + return cloned; + } + cloneStringLiteral(node) { + if (node.type === "Literal") { + return this.cloneEstreeStringLiteral(node); + } + return super.cloneStringLiteral(node); + } + finishNodeAt(node, type, endLoc) { + return toESTreeLocation(super.finishNodeAt(node, type, endLoc)); + } + finishNode(node, type) { + const result = super.finishNode(node, type); + this.fillOptionalPropertiesForTSESLint(result); + return result; + } + resetStartLocation(node, startLoc) { + super.resetStartLocation(node, startLoc); + toESTreeLocation(node); + } + resetEndLocation(node, endLoc = this.state.lastTokEndLoc) { + super.resetEndLocation(node, endLoc); + toESTreeLocation(node); + } +}; +class TokContext { + constructor(token, preserveSpace) { + this.token = void 0; + this.preserveSpace = void 0; + this.token = token; + this.preserveSpace = !!preserveSpace; + } +} +const types = { + brace: new TokContext("{"), + j_oTag: new TokContext("...", true) +}; +types.template = new TokContext("`", true); +const beforeExpr = true; +const startsExpr = true; +const isLoop = true; +const isAssign = true; +const prefix = true; +const postfix = true; +class ExportedTokenType { + constructor(label, conf = {}) { + this.label = void 0; + this.keyword = void 0; + this.beforeExpr = void 0; + this.startsExpr = void 0; + this.rightAssociative = void 0; + this.isLoop = void 0; + this.isAssign = void 0; + this.prefix = void 0; + this.postfix = void 0; + this.binop = void 0; + this.label = label; + this.keyword = conf.keyword; + this.beforeExpr = !!conf.beforeExpr; + this.startsExpr = !!conf.startsExpr; + this.rightAssociative = !!conf.rightAssociative; + this.isLoop = !!conf.isLoop; + this.isAssign = !!conf.isAssign; + this.prefix = !!conf.prefix; + this.postfix = !!conf.postfix; + this.binop = conf.binop != null ? conf.binop : null; + this.updateContext = null; + } +} +const keywords$1 = new Map(); +function createKeyword(name, options = {}) { + options.keyword = name; + const token = createToken(name, options); + keywords$1.set(name, token); + return token; +} +function createBinop(name, binop) { + return createToken(name, { + beforeExpr, + binop + }); +} +let tokenTypeCounter = -1; +const tokenTypes = []; +const tokenLabels = []; +const tokenBinops = []; +const tokenBeforeExprs = []; +const tokenStartsExprs = []; +const tokenPrefixes = []; +function createToken(name, options = {}) { + var _options$binop, _options$beforeExpr, _options$startsExpr, _options$prefix; + ++tokenTypeCounter; + tokenLabels.push(name); + tokenBinops.push((_options$binop = options.binop) != null ? _options$binop : -1); + tokenBeforeExprs.push((_options$beforeExpr = options.beforeExpr) != null ? _options$beforeExpr : false); + tokenStartsExprs.push((_options$startsExpr = options.startsExpr) != null ? _options$startsExpr : false); + tokenPrefixes.push((_options$prefix = options.prefix) != null ? _options$prefix : false); + tokenTypes.push(new ExportedTokenType(name, options)); + return tokenTypeCounter; +} +function createKeywordLike(name, options = {}) { + var _options$binop2, _options$beforeExpr2, _options$startsExpr2, _options$prefix2; + ++tokenTypeCounter; + keywords$1.set(name, tokenTypeCounter); + tokenLabels.push(name); + tokenBinops.push((_options$binop2 = options.binop) != null ? _options$binop2 : -1); + tokenBeforeExprs.push((_options$beforeExpr2 = options.beforeExpr) != null ? _options$beforeExpr2 : false); + tokenStartsExprs.push((_options$startsExpr2 = options.startsExpr) != null ? _options$startsExpr2 : false); + tokenPrefixes.push((_options$prefix2 = options.prefix) != null ? _options$prefix2 : false); + tokenTypes.push(new ExportedTokenType("name", options)); + return tokenTypeCounter; +} +const tt = { + bracketL: createToken("[", { + beforeExpr, + startsExpr + }), + bracketHashL: createToken("#[", { + beforeExpr, + startsExpr + }), + bracketBarL: createToken("[|", { + beforeExpr, + startsExpr + }), + bracketR: createToken("]"), + bracketBarR: createToken("|]"), + braceL: createToken("{", { + beforeExpr, + startsExpr + }), + braceBarL: createToken("{|", { + beforeExpr, + startsExpr + }), + braceHashL: createToken("#{", { + beforeExpr, + startsExpr + }), + braceR: createToken("}"), + braceBarR: createToken("|}"), + parenL: createToken("(", { + beforeExpr, + startsExpr + }), + parenR: createToken(")"), + comma: createToken(",", { + beforeExpr + }), + semi: createToken(";", { + beforeExpr + }), + colon: createToken(":", { + beforeExpr + }), + doubleColon: createToken("::", { + beforeExpr + }), + dot: createToken("."), + question: createToken("?", { + beforeExpr + }), + questionDot: createToken("?."), + arrow: createToken("=>", { + beforeExpr + }), + template: createToken("template"), + ellipsis: createToken("...", { + beforeExpr + }), + backQuote: createToken("`", { + startsExpr + }), + dollarBraceL: createToken("${", { + beforeExpr, + startsExpr + }), + templateTail: createToken("...`", { + startsExpr + }), + templateNonTail: createToken("...${", { + beforeExpr, + startsExpr + }), + at: createToken("@"), + hash: createToken("#", { + startsExpr + }), + interpreterDirective: createToken("#!..."), + eq: createToken("=", { + beforeExpr, + isAssign + }), + assign: createToken("_=", { + beforeExpr, + isAssign + }), + slashAssign: createToken("_=", { + beforeExpr, + isAssign + }), + xorAssign: createToken("_=", { + beforeExpr, + isAssign + }), + moduloAssign: createToken("_=", { + beforeExpr, + isAssign + }), + incDec: createToken("++/--", { + prefix, + postfix, + startsExpr + }), + bang: createToken("!", { + beforeExpr, + prefix, + startsExpr + }), + tilde: createToken("~", { + beforeExpr, + prefix, + startsExpr + }), + doubleCaret: createToken("^^", { + startsExpr + }), + doubleAt: createToken("@@", { + startsExpr + }), + pipeline: createBinop("|>", 0), + nullishCoalescing: createBinop("??", 1), + logicalOR: createBinop("||", 1), + logicalAND: createBinop("&&", 2), + bitwiseOR: createBinop("|", 3), + bitwiseXOR: createBinop("^", 4), + bitwiseAND: createBinop("&", 5), + equality: createBinop("==/!=/===/!==", 6), + lt: createBinop("/<=/>=", 7), + gt: createBinop("/<=/>=", 7), + relational: createBinop("/<=/>=", 7), + bitShift: createBinop("<>/>>>", 8), + bitShiftL: createBinop("<>/>>>", 8), + bitShiftR: createBinop("<>/>>>", 8), + plusMin: createToken("+/-", { + beforeExpr, + binop: 9, + prefix, + startsExpr + }), + modulo: createToken("%", { + binop: 10, + startsExpr + }), + star: createToken("*", { + binop: 10 + }), + slash: createBinop("/", 10), + exponent: createToken("**", { + beforeExpr, + binop: 11, + rightAssociative: true + }), + _in: createKeyword("in", { + beforeExpr, + binop: 7 + }), + _instanceof: createKeyword("instanceof", { + beforeExpr, + binop: 7 + }), + _break: createKeyword("break"), + _case: createKeyword("case", { + beforeExpr + }), + _catch: createKeyword("catch"), + _continue: createKeyword("continue"), + _debugger: createKeyword("debugger"), + _default: createKeyword("default", { + beforeExpr + }), + _else: createKeyword("else", { + beforeExpr + }), + _finally: createKeyword("finally"), + _function: createKeyword("function", { + startsExpr + }), + _if: createKeyword("if"), + _return: createKeyword("return", { + beforeExpr + }), + _switch: createKeyword("switch"), + _throw: createKeyword("throw", { + beforeExpr, + prefix, + startsExpr + }), + _try: createKeyword("try"), + _var: createKeyword("var"), + _const: createKeyword("const"), + _with: createKeyword("with"), + _new: createKeyword("new", { + beforeExpr, + startsExpr + }), + _this: createKeyword("this", { + startsExpr + }), + _super: createKeyword("super", { + startsExpr + }), + _class: createKeyword("class", { + startsExpr + }), + _extends: createKeyword("extends", { + beforeExpr + }), + _export: createKeyword("export"), + _import: createKeyword("import", { + startsExpr + }), + _null: createKeyword("null", { + startsExpr + }), + _true: createKeyword("true", { + startsExpr + }), + _false: createKeyword("false", { + startsExpr + }), + _typeof: createKeyword("typeof", { + beforeExpr, + prefix, + startsExpr + }), + _void: createKeyword("void", { + beforeExpr, + prefix, + startsExpr + }), + _delete: createKeyword("delete", { + beforeExpr, + prefix, + startsExpr + }), + _do: createKeyword("do", { + isLoop, + beforeExpr + }), + _for: createKeyword("for", { + isLoop + }), + _while: createKeyword("while", { + isLoop + }), + _as: createKeywordLike("as", { + startsExpr + }), + _assert: createKeywordLike("assert", { + startsExpr + }), + _async: createKeywordLike("async", { + startsExpr + }), + _await: createKeywordLike("await", { + startsExpr + }), + _defer: createKeywordLike("defer", { + startsExpr + }), + _from: createKeywordLike("from", { + startsExpr + }), + _get: createKeywordLike("get", { + startsExpr + }), + _let: createKeywordLike("let", { + startsExpr + }), + _meta: createKeywordLike("meta", { + startsExpr + }), + _of: createKeywordLike("of", { + startsExpr + }), + _sent: createKeywordLike("sent", { + startsExpr + }), + _set: createKeywordLike("set", { + startsExpr + }), + _source: createKeywordLike("source", { + startsExpr + }), + _static: createKeywordLike("static", { + startsExpr + }), + _using: createKeywordLike("using", { + startsExpr + }), + _yield: createKeywordLike("yield", { + startsExpr + }), + _asserts: createKeywordLike("asserts", { + startsExpr + }), + _checks: createKeywordLike("checks", { + startsExpr + }), + _exports: createKeywordLike("exports", { + startsExpr + }), + _global: createKeywordLike("global", { + startsExpr + }), + _implements: createKeywordLike("implements", { + startsExpr + }), + _intrinsic: createKeywordLike("intrinsic", { + startsExpr + }), + _infer: createKeywordLike("infer", { + startsExpr + }), + _is: createKeywordLike("is", { + startsExpr + }), + _mixins: createKeywordLike("mixins", { + startsExpr + }), + _proto: createKeywordLike("proto", { + startsExpr + }), + _require: createKeywordLike("require", { + startsExpr + }), + _satisfies: createKeywordLike("satisfies", { + startsExpr + }), + _keyof: createKeywordLike("keyof", { + startsExpr + }), + _readonly: createKeywordLike("readonly", { + startsExpr + }), + _unique: createKeywordLike("unique", { + startsExpr + }), + _abstract: createKeywordLike("abstract", { + startsExpr + }), + _declare: createKeywordLike("declare", { + startsExpr + }), + _enum: createKeywordLike("enum", { + startsExpr + }), + _module: createKeywordLike("module", { + startsExpr + }), + _namespace: createKeywordLike("namespace", { + startsExpr + }), + _interface: createKeywordLike("interface", { + startsExpr + }), + _type: createKeywordLike("type", { + startsExpr + }), + _opaque: createKeywordLike("opaque", { + startsExpr + }), + name: createToken("name", { + startsExpr + }), + placeholder: createToken("%%", { + startsExpr + }), + string: createToken("string", { + startsExpr + }), + num: createToken("num", { + startsExpr + }), + bigint: createToken("bigint", { + startsExpr + }), + decimal: createToken("decimal", { + startsExpr + }), + regexp: createToken("regexp", { + startsExpr + }), + privateName: createToken("#name", { + startsExpr + }), + eof: createToken("eof"), + jsxName: createToken("jsxName"), + jsxText: createToken("jsxText", { + beforeExpr + }), + jsxTagStart: createToken("jsxTagStart", { + startsExpr + }), + jsxTagEnd: createToken("jsxTagEnd") +}; +function tokenIsIdentifier(token) { + return token >= 93 && token <= 133; +} +function tokenKeywordOrIdentifierIsKeyword(token) { + return token <= 92; +} +function tokenIsKeywordOrIdentifier(token) { + return token >= 58 && token <= 133; +} +function tokenIsLiteralPropertyName(token) { + return token >= 58 && token <= 137; +} +function tokenComesBeforeExpression(token) { + return tokenBeforeExprs[token]; +} +function tokenCanStartExpression(token) { + return tokenStartsExprs[token]; +} +function tokenIsAssignment(token) { + return token >= 29 && token <= 33; +} +function tokenIsFlowInterfaceOrTypeOrOpaque(token) { + return token >= 129 && token <= 131; +} +function tokenIsLoop(token) { + return token >= 90 && token <= 92; +} +function tokenIsKeyword(token) { + return token >= 58 && token <= 92; +} +function tokenIsOperator(token) { + return token >= 39 && token <= 59; +} +function tokenIsPostfix(token) { + return token === 34; +} +function tokenIsPrefix(token) { + return tokenPrefixes[token]; +} +function tokenIsTSTypeOperator(token) { + return token >= 121 && token <= 123; +} +function tokenIsTSDeclarationStart(token) { + return token >= 124 && token <= 130; +} +function tokenLabelName(token) { + return tokenLabels[token]; +} +function tokenOperatorPrecedence(token) { + return tokenBinops[token]; +} +function tokenIsRightAssociative(token) { + return token === 57; +} +function tokenIsTemplate(token) { + return token >= 24 && token <= 25; +} +function getExportedToken(token) { + return tokenTypes[token]; +} +tokenTypes[8].updateContext = context => { + context.pop(); +}; +tokenTypes[5].updateContext = tokenTypes[7].updateContext = tokenTypes[23].updateContext = context => { + context.push(types.brace); +}; +tokenTypes[22].updateContext = context => { + if (context[context.length - 1] === types.template) { + context.pop(); + } else { + context.push(types.template); + } +}; +tokenTypes[143].updateContext = context => { + context.push(types.j_expr, types.j_oTag); +}; +let 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-\u088f\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\u0c5c\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdc-\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-\u1c8a\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-\ua7dc\ua7f1-\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"; +let nonASCIIidentifierChars = "\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\u0897-\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\u0cf3\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-\u0ece\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-\u1add\u1ae0-\u1aeb\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\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\u30fb\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\uff65"; +const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); +const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); +nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; +const 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, 4, 51, 13, 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, 7, 25, 39, 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, 39, 27, 10, 22, 251, 41, 7, 1, 17, 5, 57, 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, 20, 1, 64, 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, 31, 9, 2, 0, 3, 0, 2, 37, 2, 0, 26, 0, 2, 0, 45, 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, 200, 32, 32, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 24, 43, 261, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 26, 3994, 6, 582, 6842, 29, 1763, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 433, 44, 212, 63, 33, 24, 3, 24, 45, 74, 6, 0, 67, 12, 65, 1, 2, 0, 15, 4, 10, 7381, 42, 31, 98, 114, 8702, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 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, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 229, 29, 3, 0, 208, 30, 2, 2, 2, 1, 2, 6, 3, 4, 10, 1, 225, 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, 4381, 3, 5773, 3, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 8489]; +const 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, 7, 9, 32, 4, 318, 1, 78, 5, 71, 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, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 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, 199, 7, 137, 9, 54, 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, 55, 9, 266, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 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, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 245, 1, 2, 9, 233, 0, 3, 0, 8, 1, 6, 0, 475, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; +function isInAstralSet(code, set) { + let pos = 0x10000; + for (let i = 0, length = set.length; i < length; i += 2) { + pos += set[i]; + if (pos > code) return false; + pos += set[i + 1]; + if (pos >= code) return true; + } + return false; +} +function isIdentifierStart(code) { + if (code < 65) return code === 36; + if (code <= 90) return true; + if (code < 97) return code === 95; + if (code <= 122) return true; + if (code <= 0xffff) { + return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)); + } + return isInAstralSet(code, astralIdentifierStartCodes); +} +function isIdentifierChar(code) { + if (code < 48) return code === 36; + if (code < 58) return true; + if (code < 65) return false; + if (code <= 90) return true; + if (code < 97) return code === 95; + if (code <= 122) return true; + if (code <= 0xffff) { + return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)); + } + return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes); +} +const reservedWords = { + keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"], + strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"], + strictBind: ["eval", "arguments"] +}; +const keywords = new Set(reservedWords.keyword); +const reservedWordsStrictSet = new Set(reservedWords.strict); +const reservedWordsStrictBindSet = new Set(reservedWords.strictBind); +function isReservedWord(word, inModule) { + return inModule && word === "await" || word === "enum"; +} +function isStrictReservedWord(word, inModule) { + return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word); +} +function isStrictBindOnlyReservedWord(word) { + return reservedWordsStrictBindSet.has(word); +} +function isStrictBindReservedWord(word, inModule) { + return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word); +} +function isKeyword(word) { + return keywords.has(word); +} +function isIteratorStart(current, next, next2) { + return current === 64 && next === 64 && isIdentifierStart(next2); +} +const reservedWordLikeSet = new Set(["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete", "implements", "interface", "let", "package", "private", "protected", "public", "static", "yield", "eval", "arguments", "enum", "await"]); +function canBeReservedWord(word) { + return reservedWordLikeSet.has(word); +} +class Scope { + constructor(flags) { + this.flags = 0; + this.names = new Map(); + this.firstLexicalName = ""; + this.flags = flags; + } +} +class ScopeHandler { + constructor(parser, inModule) { + this.parser = void 0; + this.scopeStack = []; + this.inModule = void 0; + this.undefinedExports = new Map(); + this.parser = parser; + this.inModule = inModule; + } + get inTopLevel() { + return (this.currentScope().flags & 1) > 0; + } + get inFunction() { + return (this.currentVarScopeFlags() & 2) > 0; + } + get allowSuper() { + return (this.currentThisScopeFlags() & 16) > 0; + } + get allowDirectSuper() { + return (this.currentThisScopeFlags() & 32) > 0; + } + get allowNewTarget() { + return (this.currentThisScopeFlags() & 512) > 0; + } + get inClass() { + return (this.currentThisScopeFlags() & 64) > 0; + } + get inClassAndNotInNonArrowFunction() { + const flags = this.currentThisScopeFlags(); + return (flags & 64) > 0 && (flags & 2) === 0; + } + get inStaticBlock() { + for (let i = this.scopeStack.length - 1;; i--) { + const { + flags + } = this.scopeStack[i]; + if (flags & 128) { + return true; + } + if (flags & (1667 | 64)) { + return false; + } + } + } + get inNonArrowFunction() { + return (this.currentThisScopeFlags() & 2) > 0; + } + get inBareCaseStatement() { + return (this.currentScope().flags & 256) > 0; + } + get treatFunctionsAsVar() { + return this.treatFunctionsAsVarInScope(this.currentScope()); + } + createScope(flags) { + return new Scope(flags); + } + enter(flags) { + this.scopeStack.push(this.createScope(flags)); + } + exit() { + const scope = this.scopeStack.pop(); + return scope.flags; + } + treatFunctionsAsVarInScope(scope) { + return !!(scope.flags & (2 | 128) || !this.parser.inModule && scope.flags & 1); + } + declareName(name, bindingType, loc) { + let scope = this.currentScope(); + if (bindingType & 8 || bindingType & 16) { + this.checkRedeclarationInScope(scope, name, bindingType, loc); + let type = scope.names.get(name) || 0; + if (bindingType & 16) { + type = type | 4; + } else { + if (!scope.firstLexicalName) { + scope.firstLexicalName = name; + } + type = type | 2; + } + scope.names.set(name, type); + if (bindingType & 8) { + this.maybeExportDefined(scope, name); + } + } else if (bindingType & 4) { + for (let i = this.scopeStack.length - 1; i >= 0; --i) { + scope = this.scopeStack[i]; + this.checkRedeclarationInScope(scope, name, bindingType, loc); + scope.names.set(name, (scope.names.get(name) || 0) | 1); + this.maybeExportDefined(scope, name); + if (scope.flags & 1667) break; + } + } + if (this.parser.inModule && scope.flags & 1) { + this.undefinedExports.delete(name); + } + } + maybeExportDefined(scope, name) { + if (this.parser.inModule && scope.flags & 1) { + this.undefinedExports.delete(name); + } + } + checkRedeclarationInScope(scope, name, bindingType, loc) { + if (this.isRedeclaredInScope(scope, name, bindingType)) { + this.parser.raise(Errors.VarRedeclaration, loc, { + identifierName: name + }); + } + } + isRedeclaredInScope(scope, name, bindingType) { + if (!(bindingType & 1)) return false; + if (bindingType & 8) { + return scope.names.has(name); + } + const type = scope.names.get(name) || 0; + if (bindingType & 16) { + return (type & 2) > 0 || !this.treatFunctionsAsVarInScope(scope) && (type & 1) > 0; + } + return (type & 2) > 0 && !(scope.flags & 8 && scope.firstLexicalName === name) || !this.treatFunctionsAsVarInScope(scope) && (type & 4) > 0; + } + checkLocalExport(id) { + const { + name + } = id; + const topLevelScope = this.scopeStack[0]; + if (!topLevelScope.names.has(name)) { + this.undefinedExports.set(name, id.loc.start); + } + } + currentScope() { + return this.scopeStack[this.scopeStack.length - 1]; + } + currentVarScopeFlags() { + for (let i = this.scopeStack.length - 1;; i--) { + const { + flags + } = this.scopeStack[i]; + if (flags & 1667) { + return flags; + } + } + } + currentThisScopeFlags() { + for (let i = this.scopeStack.length - 1;; i--) { + const { + flags + } = this.scopeStack[i]; + if (flags & (1667 | 64) && !(flags & 4)) { + return flags; + } + } + } +} +class FlowScope extends Scope { + constructor(...args) { + super(...args); + this.declareFunctions = new Set(); + } +} +class FlowScopeHandler extends ScopeHandler { + createScope(flags) { + return new FlowScope(flags); + } + declareName(name, bindingType, loc) { + const scope = this.currentScope(); + if (bindingType & 2048) { + this.checkRedeclarationInScope(scope, name, bindingType, loc); + this.maybeExportDefined(scope, name); + scope.declareFunctions.add(name); + return; + } + super.declareName(name, bindingType, loc); + } + isRedeclaredInScope(scope, name, bindingType) { + if (super.isRedeclaredInScope(scope, name, bindingType)) return true; + if (bindingType & 2048 && !scope.declareFunctions.has(name)) { + const type = scope.names.get(name); + return (type & 4) > 0 || (type & 2) > 0; + } + return false; + } + checkLocalExport(id) { + if (!this.scopeStack[0].declareFunctions.has(id.name)) { + super.checkLocalExport(id); + } + } +} +const reservedTypes = new Set(["_", "any", "bool", "boolean", "empty", "extends", "false", "interface", "mixed", "null", "number", "static", "string", "true", "typeof", "void"]); +const FlowErrors = ParseErrorEnum`flow`({ + AmbiguousConditionalArrow: "Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.", + AmbiguousDeclareModuleKind: "Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module.", + AssignReservedType: ({ + reservedType + }) => `Cannot overwrite reserved type ${reservedType}.`, + DeclareClassElement: "The `declare` modifier can only appear on class fields.", + DeclareClassFieldInitializer: "Initializers are not allowed in fields with the `declare` modifier.", + DuplicateDeclareModuleExports: "Duplicate `declare module.exports` statement.", + EnumBooleanMemberNotInitialized: ({ + memberName, + enumName + }) => `Boolean enum members need to be initialized. Use either \`${memberName} = true,\` or \`${memberName} = false,\` in enum \`${enumName}\`.`, + EnumDuplicateMemberName: ({ + memberName, + enumName + }) => `Enum member names need to be unique, but the name \`${memberName}\` has already been used before in enum \`${enumName}\`.`, + EnumInconsistentMemberValues: ({ + enumName + }) => `Enum \`${enumName}\` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.`, + EnumInvalidExplicitType: ({ + invalidEnumType, + enumName + }) => `Enum type \`${invalidEnumType}\` is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${enumName}\`.`, + EnumInvalidExplicitTypeUnknownSupplied: ({ + enumName + }) => `Supplied enum type is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${enumName}\`.`, + EnumInvalidMemberInitializerPrimaryType: ({ + enumName, + memberName, + explicitType + }) => `Enum \`${enumName}\` has type \`${explicitType}\`, so the initializer of \`${memberName}\` needs to be a ${explicitType} literal.`, + EnumInvalidMemberInitializerSymbolType: ({ + enumName, + memberName + }) => `Symbol enum members cannot be initialized. Use \`${memberName},\` in enum \`${enumName}\`.`, + EnumInvalidMemberInitializerUnknownType: ({ + enumName, + memberName + }) => `The enum member initializer for \`${memberName}\` needs to be a literal (either a boolean, number, or string) in enum \`${enumName}\`.`, + EnumInvalidMemberName: ({ + enumName, + memberName, + suggestion + }) => `Enum member names cannot start with lowercase 'a' through 'z'. Instead of using \`${memberName}\`, consider using \`${suggestion}\`, in enum \`${enumName}\`.`, + EnumNumberMemberNotInitialized: ({ + enumName, + memberName + }) => `Number enum members need to be initialized, e.g. \`${memberName} = 1\` in enum \`${enumName}\`.`, + EnumStringMemberInconsistentlyInitialized: ({ + enumName + }) => `String enum members need to consistently either all use initializers, or use no initializers, in enum \`${enumName}\`.`, + GetterMayNotHaveThisParam: "A getter cannot have a `this` parameter.", + ImportReflectionHasImportType: "An `import module` declaration can not use `type` or `typeof` keyword.", + ImportTypeShorthandOnlyInPureImport: "The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements.", + InexactInsideExact: "Explicit inexact syntax cannot appear inside an explicit exact object type.", + InexactInsideNonObject: "Explicit inexact syntax cannot appear in class or interface definitions.", + InexactVariance: "Explicit inexact syntax cannot have variance.", + InvalidNonTypeImportInDeclareModule: "Imports within a `declare module` body must always be `import type` or `import typeof`.", + MissingTypeParamDefault: "Type parameter declaration needs a default, since a preceding type parameter declaration has a default.", + NestedDeclareModule: "`declare module` cannot be used inside another `declare module`.", + NestedFlowComment: "Cannot have a flow comment inside another flow comment.", + PatternIsOptional: Object.assign({ + message: "A binding pattern parameter cannot be optional in an implementation signature." + }, { + reasonCode: "OptionalBindingPattern" + }), + SetterMayNotHaveThisParam: "A setter cannot have a `this` parameter.", + SpreadVariance: "Spread properties cannot have variance.", + ThisParamAnnotationRequired: "A type annotation is required for the `this` parameter.", + ThisParamBannedInConstructor: "Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.", + ThisParamMayNotBeOptional: "The `this` parameter cannot be optional.", + ThisParamMustBeFirst: "The `this` parameter must be the first function parameter.", + ThisParamNoDefault: "The `this` parameter may not have a default value.", + TypeBeforeInitializer: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.", + TypeCastInPattern: "The type cast expression is expected to be wrapped with parenthesis.", + UnexpectedExplicitInexactInObject: "Explicit inexact syntax must appear at the end of an inexact object.", + UnexpectedReservedType: ({ + reservedType + }) => `Unexpected reserved type ${reservedType}.`, + UnexpectedReservedUnderscore: "`_` is only allowed as a type argument to call or new.", + UnexpectedSpaceBetweenModuloChecks: "Spaces between `%` and `checks` are not allowed here.", + UnexpectedSpreadType: "Spread operator cannot appear in class or interface definitions.", + UnexpectedSubtractionOperand: 'Unexpected token, expected "number" or "bigint".', + UnexpectedTokenAfterTypeParameter: "Expected an arrow function after this type parameter declaration.", + UnexpectedTypeParameterBeforeAsyncArrowFunction: "Type parameters must come after the async keyword, e.g. instead of ` async () => {}`, use `async () => {}`.", + UnsupportedDeclareExportKind: ({ + unsupportedExportKind, + suggestion + }) => `\`declare export ${unsupportedExportKind}\` is not supported. Use \`${suggestion}\` instead.`, + UnsupportedStatementInDeclareModule: "Only declares and type imports are allowed inside declare module.", + UnterminatedFlowComment: "Unterminated flow-comment." +}); +function isEsModuleType(bodyElement) { + return bodyElement.type === "DeclareExportAllDeclaration" || bodyElement.type === "DeclareExportDeclaration" && (!bodyElement.declaration || bodyElement.declaration.type !== "TypeAlias" && bodyElement.declaration.type !== "InterfaceDeclaration"); +} +function hasTypeImportKind(node) { + return node.importKind === "type" || node.importKind === "typeof"; +} +const exportSuggestions = { + const: "declare export var", + let: "declare export var", + type: "export type", + interface: "export interface" +}; +function partition(list, test) { + const list1 = []; + const list2 = []; + for (let i = 0; i < list.length; i++) { + (test(list[i], i, list) ? list1 : list2).push(list[i]); + } + return [list1, list2]; +} +const FLOW_PRAGMA_REGEX = /\*?\s*@((?:no)?flow)\b/; +var flow = superClass => class FlowParserMixin extends superClass { + constructor(...args) { + super(...args); + this.flowPragma = undefined; + } + getScopeHandler() { + return FlowScopeHandler; + } + shouldParseTypes() { + return this.getPluginOption("flow", "all") || this.flowPragma === "flow"; + } + finishToken(type, val) { + if (type !== 134 && type !== 13 && type !== 28) { + if (this.flowPragma === undefined) { + this.flowPragma = null; + } + } + super.finishToken(type, val); + } + addComment(comment) { + if (this.flowPragma === undefined) { + const matches = FLOW_PRAGMA_REGEX.exec(comment.value); + if (!matches) ;else if (matches[1] === "flow") { + this.flowPragma = "flow"; + } else if (matches[1] === "noflow") { + this.flowPragma = "noflow"; + } else { + throw new Error("Unexpected flow pragma"); + } + } + super.addComment(comment); + } + flowParseTypeInitialiser(tok) { + const oldInType = this.state.inType; + this.state.inType = true; + this.expect(tok || 14); + const type = this.flowParseType(); + this.state.inType = oldInType; + return type; + } + flowParsePredicate() { + const node = this.startNode(); + const moduloLoc = this.state.startLoc; + this.next(); + this.expectContextual(110); + if (this.state.lastTokStartLoc.index > moduloLoc.index + 1) { + this.raise(FlowErrors.UnexpectedSpaceBetweenModuloChecks, moduloLoc); + } + if (this.eat(10)) { + node.value = super.parseExpression(); + this.expect(11); + return this.finishNode(node, "DeclaredPredicate"); + } else { + return this.finishNode(node, "InferredPredicate"); + } + } + flowParseTypeAndPredicateInitialiser() { + const oldInType = this.state.inType; + this.state.inType = true; + this.expect(14); + let type = null; + let predicate = null; + if (this.match(54)) { + this.state.inType = oldInType; + predicate = this.flowParsePredicate(); + } else { + type = this.flowParseType(); + this.state.inType = oldInType; + if (this.match(54)) { + predicate = this.flowParsePredicate(); + } + } + return [type, predicate]; + } + flowParseDeclareClass(node) { + this.next(); + this.flowParseInterfaceish(node, true); + return this.finishNode(node, "DeclareClass"); + } + flowParseDeclareFunction(node) { + this.next(); + const id = node.id = this.parseIdentifier(); + const typeNode = this.startNode(); + const typeContainer = this.startNode(); + if (this.match(47)) { + typeNode.typeParameters = this.flowParseTypeParameterDeclaration(); + } else { + typeNode.typeParameters = null; + } + this.expect(10); + const tmp = this.flowParseFunctionTypeParams(); + typeNode.params = tmp.params; + typeNode.rest = tmp.rest; + typeNode.this = tmp._this; + this.expect(11); + [typeNode.returnType, node.predicate] = this.flowParseTypeAndPredicateInitialiser(); + typeContainer.typeAnnotation = this.finishNode(typeNode, "FunctionTypeAnnotation"); + id.typeAnnotation = this.finishNode(typeContainer, "TypeAnnotation"); + this.resetEndLocation(id); + this.semicolon(); + this.scope.declareName(node.id.name, 2048, node.id.loc.start); + return this.finishNode(node, "DeclareFunction"); + } + flowParseDeclare(node, insideModule) { + if (this.match(80)) { + return this.flowParseDeclareClass(node); + } else if (this.match(68)) { + return this.flowParseDeclareFunction(node); + } else if (this.match(74)) { + return this.flowParseDeclareVariable(node); + } else if (this.eatContextual(127)) { + if (this.match(16)) { + return this.flowParseDeclareModuleExports(node); + } else { + if (insideModule) { + this.raise(FlowErrors.NestedDeclareModule, this.state.lastTokStartLoc); + } + return this.flowParseDeclareModule(node); + } + } else if (this.isContextual(130)) { + return this.flowParseDeclareTypeAlias(node); + } else if (this.isContextual(131)) { + return this.flowParseDeclareOpaqueType(node); + } else if (this.isContextual(129)) { + return this.flowParseDeclareInterface(node); + } else if (this.match(82)) { + return this.flowParseDeclareExportDeclaration(node, insideModule); + } + throw this.unexpected(); + } + flowParseDeclareVariable(node) { + this.next(); + node.id = this.flowParseTypeAnnotatableIdentifier(); + this.scope.declareName(node.id.name, 5, node.id.loc.start); + this.semicolon(); + return this.finishNode(node, "DeclareVariable"); + } + flowParseDeclareModule(node) { + this.scope.enter(0); + if (this.match(134)) { + node.id = super.parseExprAtom(); + } else { + node.id = this.parseIdentifier(); + } + const bodyNode = node.body = this.startNode(); + const body = bodyNode.body = []; + this.expect(5); + while (!this.match(8)) { + const bodyNode = this.startNode(); + if (this.match(83)) { + this.next(); + if (!this.isContextual(130) && !this.match(87)) { + this.raise(FlowErrors.InvalidNonTypeImportInDeclareModule, this.state.lastTokStartLoc); + } + body.push(super.parseImport(bodyNode)); + } else { + this.expectContextual(125, FlowErrors.UnsupportedStatementInDeclareModule); + body.push(this.flowParseDeclare(bodyNode, true)); + } + } + this.scope.exit(); + this.expect(8); + this.finishNode(bodyNode, "BlockStatement"); + let kind = null; + let hasModuleExport = false; + body.forEach(bodyElement => { + if (isEsModuleType(bodyElement)) { + if (kind === "CommonJS") { + this.raise(FlowErrors.AmbiguousDeclareModuleKind, bodyElement); + } + kind = "ES"; + } else if (bodyElement.type === "DeclareModuleExports") { + if (hasModuleExport) { + this.raise(FlowErrors.DuplicateDeclareModuleExports, bodyElement); + } + if (kind === "ES") { + this.raise(FlowErrors.AmbiguousDeclareModuleKind, bodyElement); + } + kind = "CommonJS"; + hasModuleExport = true; + } + }); + node.kind = kind || "CommonJS"; + return this.finishNode(node, "DeclareModule"); + } + flowParseDeclareExportDeclaration(node, insideModule) { + this.expect(82); + if (this.eat(65)) { + if (this.match(68) || this.match(80)) { + node.declaration = this.flowParseDeclare(this.startNode()); + } else { + node.declaration = this.flowParseType(); + this.semicolon(); + } + node.default = true; + return this.finishNode(node, "DeclareExportDeclaration"); + } else { + if (this.match(75) || this.isLet() || (this.isContextual(130) || this.isContextual(129)) && !insideModule) { + const label = this.state.value; + throw this.raise(FlowErrors.UnsupportedDeclareExportKind, this.state.startLoc, { + unsupportedExportKind: label, + suggestion: exportSuggestions[label] + }); + } + if (this.match(74) || this.match(68) || this.match(80) || this.isContextual(131)) { + node.declaration = this.flowParseDeclare(this.startNode()); + node.default = false; + return this.finishNode(node, "DeclareExportDeclaration"); + } else if (this.match(55) || this.match(5) || this.isContextual(129) || this.isContextual(130) || this.isContextual(131)) { + node = this.parseExport(node, null); + if (node.type === "ExportNamedDeclaration") { + node.default = false; + delete node.exportKind; + return this.castNodeTo(node, "DeclareExportDeclaration"); + } else { + return this.castNodeTo(node, "DeclareExportAllDeclaration"); + } + } + } + throw this.unexpected(); + } + flowParseDeclareModuleExports(node) { + this.next(); + this.expectContextual(111); + node.typeAnnotation = this.flowParseTypeAnnotation(); + this.semicolon(); + return this.finishNode(node, "DeclareModuleExports"); + } + flowParseDeclareTypeAlias(node) { + this.next(); + const finished = this.flowParseTypeAlias(node); + this.castNodeTo(finished, "DeclareTypeAlias"); + return finished; + } + flowParseDeclareOpaqueType(node) { + this.next(); + const finished = this.flowParseOpaqueType(node, true); + this.castNodeTo(finished, "DeclareOpaqueType"); + return finished; + } + flowParseDeclareInterface(node) { + this.next(); + this.flowParseInterfaceish(node, false); + return this.finishNode(node, "DeclareInterface"); + } + flowParseInterfaceish(node, isClass) { + node.id = this.flowParseRestrictedIdentifier(!isClass, true); + this.scope.declareName(node.id.name, isClass ? 17 : 8201, node.id.loc.start); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } else { + node.typeParameters = null; + } + node.extends = []; + if (this.eat(81)) { + do { + node.extends.push(this.flowParseInterfaceExtends()); + } while (!isClass && this.eat(12)); + } + if (isClass) { + node.implements = []; + node.mixins = []; + if (this.eatContextual(117)) { + do { + node.mixins.push(this.flowParseInterfaceExtends()); + } while (this.eat(12)); + } + if (this.eatContextual(113)) { + do { + node.implements.push(this.flowParseInterfaceExtends()); + } while (this.eat(12)); + } + } + node.body = this.flowParseObjectType({ + allowStatic: isClass, + allowExact: false, + allowSpread: false, + allowProto: isClass, + allowInexact: false + }); + } + flowParseInterfaceExtends() { + const node = this.startNode(); + node.id = this.flowParseQualifiedTypeIdentifier(); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterInstantiation(); + } else { + node.typeParameters = null; + } + return this.finishNode(node, "InterfaceExtends"); + } + flowParseInterface(node) { + this.flowParseInterfaceish(node, false); + return this.finishNode(node, "InterfaceDeclaration"); + } + checkNotUnderscore(word) { + if (word === "_") { + this.raise(FlowErrors.UnexpectedReservedUnderscore, this.state.startLoc); + } + } + checkReservedType(word, startLoc, declaration) { + if (!reservedTypes.has(word)) return; + this.raise(declaration ? FlowErrors.AssignReservedType : FlowErrors.UnexpectedReservedType, startLoc, { + reservedType: word + }); + } + flowParseRestrictedIdentifierName(liberal, declaration) { + this.checkReservedType(this.state.value, this.state.startLoc, declaration); + return this.parseIdentifierName(liberal); + } + flowParseRestrictedIdentifier(liberal, declaration) { + const node = this.startNode(); + const name = this.flowParseRestrictedIdentifierName(liberal, declaration); + return this.createIdentifier(node, name); + } + flowParseTypeAlias(node) { + node.id = this.flowParseRestrictedIdentifier(false, true); + this.scope.declareName(node.id.name, 8201, node.id.loc.start); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } else { + node.typeParameters = null; + } + node.right = this.flowParseTypeInitialiser(29); + this.semicolon(); + return this.finishNode(node, "TypeAlias"); + } + flowParseOpaqueType(node, declare) { + this.expectContextual(130); + node.id = this.flowParseRestrictedIdentifier(true, true); + this.scope.declareName(node.id.name, 8201, node.id.loc.start); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } else { + node.typeParameters = null; + } + node.supertype = null; + if (this.match(14)) { + node.supertype = this.flowParseTypeInitialiser(14); + } + node.impltype = null; + if (!declare) { + node.impltype = this.flowParseTypeInitialiser(29); + } + this.semicolon(); + return this.finishNode(node, "OpaqueType"); + } + flowParseTypeParameterBound() { + if (this.match(14) || this.isContextual(81)) { + const node = this.startNode(); + this.next(); + node.typeAnnotation = this.flowParseType(); + return this.finishNode(node, "TypeAnnotation"); + } + } + flowParseTypeParameter(requireDefault = false) { + const nodeStartLoc = this.state.startLoc; + const node = this.startNode(); + const variance = this.flowParseVariance(); + node.name = this.flowParseRestrictedIdentifierName(); + node.variance = variance; + node.bound = this.flowParseTypeParameterBound(); + if (this.match(29)) { + this.eat(29); + node.default = this.flowParseType(); + } else { + if (requireDefault) { + this.raise(FlowErrors.MissingTypeParamDefault, nodeStartLoc); + } + } + return this.finishNode(node, "TypeParameter"); + } + flowParseTypeParameterDeclaration() { + const oldInType = this.state.inType; + const node = this.startNode(); + node.params = []; + this.state.inType = true; + if (this.match(47) || this.match(143)) { + this.next(); + } else { + this.unexpected(); + } + let defaultRequired = false; + do { + const typeParameter = this.flowParseTypeParameter(defaultRequired); + node.params.push(typeParameter); + if (typeParameter.default) { + defaultRequired = true; + } + if (!this.match(48)) { + this.expect(12); + } + } while (!this.match(48)); + this.expect(48); + this.state.inType = oldInType; + return this.finishNode(node, "TypeParameterDeclaration"); + } + flowInTopLevelContext(cb) { + if (this.curContext() !== types.brace) { + const oldContext = this.state.context; + this.state.context = [oldContext[0]]; + try { + return cb(); + } finally { + this.state.context = oldContext; + } + } else { + return cb(); + } + } + flowParseTypeParameterInstantiationInExpression() { + if (this.reScan_lt() !== 47) return; + return this.flowParseTypeParameterInstantiation(); + } + flowParseTypeParameterInstantiation() { + const node = this.startNode(); + const oldInType = this.state.inType; + this.state.inType = true; + node.params = []; + this.flowInTopLevelContext(() => { + this.expect(47); + const oldNoAnonFunctionType = this.state.noAnonFunctionType; + this.state.noAnonFunctionType = false; + while (!this.match(48)) { + node.params.push(this.flowParseType()); + if (!this.match(48)) { + this.expect(12); + } + } + this.state.noAnonFunctionType = oldNoAnonFunctionType; + }); + this.state.inType = oldInType; + if (!this.state.inType && this.curContext() === types.brace) { + this.reScan_lt_gt(); + } + this.expect(48); + return this.finishNode(node, "TypeParameterInstantiation"); + } + flowParseTypeParameterInstantiationCallOrNew() { + if (this.reScan_lt() !== 47) return null; + const node = this.startNode(); + const oldInType = this.state.inType; + node.params = []; + this.state.inType = true; + this.expect(47); + while (!this.match(48)) { + node.params.push(this.flowParseTypeOrImplicitInstantiation()); + if (!this.match(48)) { + this.expect(12); + } + } + this.expect(48); + this.state.inType = oldInType; + return this.finishNode(node, "TypeParameterInstantiation"); + } + flowParseInterfaceType() { + const node = this.startNode(); + this.expectContextual(129); + node.extends = []; + if (this.eat(81)) { + do { + node.extends.push(this.flowParseInterfaceExtends()); + } while (this.eat(12)); + } + node.body = this.flowParseObjectType({ + allowStatic: false, + allowExact: false, + allowSpread: false, + allowProto: false, + allowInexact: false + }); + return this.finishNode(node, "InterfaceTypeAnnotation"); + } + flowParseObjectPropertyKey() { + return this.match(135) || this.match(134) ? super.parseExprAtom() : this.parseIdentifier(true); + } + flowParseObjectTypeIndexer(node, isStatic, variance) { + node.static = isStatic; + if (this.lookahead().type === 14) { + node.id = this.flowParseObjectPropertyKey(); + node.key = this.flowParseTypeInitialiser(); + } else { + node.id = null; + node.key = this.flowParseType(); + } + this.expect(3); + node.value = this.flowParseTypeInitialiser(); + node.variance = variance; + return this.finishNode(node, "ObjectTypeIndexer"); + } + flowParseObjectTypeInternalSlot(node, isStatic) { + node.static = isStatic; + node.id = this.flowParseObjectPropertyKey(); + this.expect(3); + this.expect(3); + if (this.match(47) || this.match(10)) { + node.method = true; + node.optional = false; + node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(node.loc.start)); + } else { + node.method = false; + if (this.eat(17)) { + node.optional = true; + } + node.value = this.flowParseTypeInitialiser(); + } + return this.finishNode(node, "ObjectTypeInternalSlot"); + } + flowParseObjectTypeMethodish(node) { + node.params = []; + node.rest = null; + node.typeParameters = null; + node.this = null; + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } + this.expect(10); + if (this.match(78)) { + node.this = this.flowParseFunctionTypeParam(true); + node.this.name = null; + if (!this.match(11)) { + this.expect(12); + } + } + while (!this.match(11) && !this.match(21)) { + node.params.push(this.flowParseFunctionTypeParam(false)); + if (!this.match(11)) { + this.expect(12); + } + } + if (this.eat(21)) { + node.rest = this.flowParseFunctionTypeParam(false); + } + this.expect(11); + node.returnType = this.flowParseTypeInitialiser(); + return this.finishNode(node, "FunctionTypeAnnotation"); + } + flowParseObjectTypeCallProperty(node, isStatic) { + const valueNode = this.startNode(); + node.static = isStatic; + node.value = this.flowParseObjectTypeMethodish(valueNode); + return this.finishNode(node, "ObjectTypeCallProperty"); + } + flowParseObjectType({ + allowStatic, + allowExact, + allowSpread, + allowProto, + allowInexact + }) { + const oldInType = this.state.inType; + this.state.inType = true; + const nodeStart = this.startNode(); + nodeStart.callProperties = []; + nodeStart.properties = []; + nodeStart.indexers = []; + nodeStart.internalSlots = []; + let endDelim; + let exact; + let inexact = false; + if (allowExact && this.match(6)) { + this.expect(6); + endDelim = 9; + exact = true; + } else { + this.expect(5); + endDelim = 8; + exact = false; + } + nodeStart.exact = exact; + while (!this.match(endDelim)) { + let isStatic = false; + let protoStartLoc = null; + let inexactStartLoc = null; + const node = this.startNode(); + if (allowProto && this.isContextual(118)) { + const lookahead = this.lookahead(); + if (lookahead.type !== 14 && lookahead.type !== 17) { + this.next(); + protoStartLoc = this.state.startLoc; + allowStatic = false; + } + } + if (allowStatic && this.isContextual(106)) { + const lookahead = this.lookahead(); + if (lookahead.type !== 14 && lookahead.type !== 17) { + this.next(); + isStatic = true; + } + } + const variance = this.flowParseVariance(); + if (this.eat(0)) { + if (protoStartLoc != null) { + this.unexpected(protoStartLoc); + } + if (this.eat(0)) { + if (variance) { + this.unexpected(variance.loc.start); + } + nodeStart.internalSlots.push(this.flowParseObjectTypeInternalSlot(node, isStatic)); + } else { + nodeStart.indexers.push(this.flowParseObjectTypeIndexer(node, isStatic, variance)); + } + } else if (this.match(10) || this.match(47)) { + if (protoStartLoc != null) { + this.unexpected(protoStartLoc); + } + if (variance) { + this.unexpected(variance.loc.start); + } + nodeStart.callProperties.push(this.flowParseObjectTypeCallProperty(node, isStatic)); + } else { + let kind = "init"; + if (this.isContextual(99) || this.isContextual(104)) { + const lookahead = this.lookahead(); + if (tokenIsLiteralPropertyName(lookahead.type)) { + kind = this.state.value; + this.next(); + } + } + const propOrInexact = this.flowParseObjectTypeProperty(node, isStatic, protoStartLoc, variance, kind, allowSpread, allowInexact != null ? allowInexact : !exact); + if (propOrInexact === null) { + inexact = true; + inexactStartLoc = this.state.lastTokStartLoc; + } else { + nodeStart.properties.push(propOrInexact); + } + } + this.flowObjectTypeSemicolon(); + if (inexactStartLoc && !this.match(8) && !this.match(9)) { + this.raise(FlowErrors.UnexpectedExplicitInexactInObject, inexactStartLoc); + } + } + this.expect(endDelim); + if (allowSpread) { + nodeStart.inexact = inexact; + } + const out = this.finishNode(nodeStart, "ObjectTypeAnnotation"); + this.state.inType = oldInType; + return out; + } + flowParseObjectTypeProperty(node, isStatic, protoStartLoc, variance, kind, allowSpread, allowInexact) { + if (this.eat(21)) { + const isInexactToken = this.match(12) || this.match(13) || this.match(8) || this.match(9); + if (isInexactToken) { + if (!allowSpread) { + this.raise(FlowErrors.InexactInsideNonObject, this.state.lastTokStartLoc); + } else if (!allowInexact) { + this.raise(FlowErrors.InexactInsideExact, this.state.lastTokStartLoc); + } + if (variance) { + this.raise(FlowErrors.InexactVariance, variance); + } + return null; + } + if (!allowSpread) { + this.raise(FlowErrors.UnexpectedSpreadType, this.state.lastTokStartLoc); + } + if (protoStartLoc != null) { + this.unexpected(protoStartLoc); + } + if (variance) { + this.raise(FlowErrors.SpreadVariance, variance); + } + node.argument = this.flowParseType(); + return this.finishNode(node, "ObjectTypeSpreadProperty"); + } else { + node.key = this.flowParseObjectPropertyKey(); + node.static = isStatic; + node.proto = protoStartLoc != null; + node.kind = kind; + let optional = false; + if (this.match(47) || this.match(10)) { + node.method = true; + if (protoStartLoc != null) { + this.unexpected(protoStartLoc); + } + if (variance) { + this.unexpected(variance.loc.start); + } + node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(node.loc.start)); + if (kind === "get" || kind === "set") { + this.flowCheckGetterSetterParams(node); + } + if (!allowSpread && node.key.name === "constructor" && node.value.this) { + this.raise(FlowErrors.ThisParamBannedInConstructor, node.value.this); + } + } else { + if (kind !== "init") this.unexpected(); + node.method = false; + if (this.eat(17)) { + optional = true; + } + node.value = this.flowParseTypeInitialiser(); + node.variance = variance; + } + node.optional = optional; + return this.finishNode(node, "ObjectTypeProperty"); + } + } + flowCheckGetterSetterParams(property) { + const paramCount = property.kind === "get" ? 0 : 1; + const length = property.value.params.length + (property.value.rest ? 1 : 0); + if (property.value.this) { + this.raise(property.kind === "get" ? FlowErrors.GetterMayNotHaveThisParam : FlowErrors.SetterMayNotHaveThisParam, property.value.this); + } + if (length !== paramCount) { + this.raise(property.kind === "get" ? Errors.BadGetterArity : Errors.BadSetterArity, property); + } + if (property.kind === "set" && property.value.rest) { + this.raise(Errors.BadSetterRestParameter, property); + } + } + flowObjectTypeSemicolon() { + if (!this.eat(13) && !this.eat(12) && !this.match(8) && !this.match(9)) { + this.unexpected(); + } + } + flowParseQualifiedTypeIdentifier(startLoc, id) { + startLoc != null ? startLoc : startLoc = this.state.startLoc; + let node = id || this.flowParseRestrictedIdentifier(true); + while (this.eat(16)) { + const node2 = this.startNodeAt(startLoc); + node2.qualification = node; + node2.id = this.flowParseRestrictedIdentifier(true); + node = this.finishNode(node2, "QualifiedTypeIdentifier"); + } + return node; + } + flowParseGenericType(startLoc, id) { + const node = this.startNodeAt(startLoc); + node.typeParameters = null; + node.id = this.flowParseQualifiedTypeIdentifier(startLoc, id); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterInstantiation(); + } + return this.finishNode(node, "GenericTypeAnnotation"); + } + flowParseTypeofType() { + const node = this.startNode(); + this.expect(87); + node.argument = this.flowParsePrimaryType(); + return this.finishNode(node, "TypeofTypeAnnotation"); + } + flowParseTupleType() { + const node = this.startNode(); + node.types = []; + this.expect(0); + while (this.state.pos < this.length && !this.match(3)) { + node.types.push(this.flowParseType()); + if (this.match(3)) break; + this.expect(12); + } + this.expect(3); + return this.finishNode(node, "TupleTypeAnnotation"); + } + flowParseFunctionTypeParam(first) { + let name = null; + let optional = false; + let typeAnnotation = null; + const node = this.startNode(); + const lh = this.lookahead(); + const isThis = this.state.type === 78; + if (lh.type === 14 || lh.type === 17) { + if (isThis && !first) { + this.raise(FlowErrors.ThisParamMustBeFirst, node); + } + name = this.parseIdentifier(isThis); + if (this.eat(17)) { + optional = true; + if (isThis) { + this.raise(FlowErrors.ThisParamMayNotBeOptional, node); + } + } + typeAnnotation = this.flowParseTypeInitialiser(); + } else { + typeAnnotation = this.flowParseType(); + } + node.name = name; + node.optional = optional; + node.typeAnnotation = typeAnnotation; + return this.finishNode(node, "FunctionTypeParam"); + } + reinterpretTypeAsFunctionTypeParam(type) { + const node = this.startNodeAt(type.loc.start); + node.name = null; + node.optional = false; + node.typeAnnotation = type; + return this.finishNode(node, "FunctionTypeParam"); + } + flowParseFunctionTypeParams(params = []) { + let rest = null; + let _this = null; + if (this.match(78)) { + _this = this.flowParseFunctionTypeParam(true); + _this.name = null; + if (!this.match(11)) { + this.expect(12); + } + } + while (!this.match(11) && !this.match(21)) { + params.push(this.flowParseFunctionTypeParam(false)); + if (!this.match(11)) { + this.expect(12); + } + } + if (this.eat(21)) { + rest = this.flowParseFunctionTypeParam(false); + } + return { + params, + rest, + _this + }; + } + flowIdentToTypeAnnotation(startLoc, node, id) { + switch (id.name) { + case "any": + return this.finishNode(node, "AnyTypeAnnotation"); + case "bool": + case "boolean": + return this.finishNode(node, "BooleanTypeAnnotation"); + case "mixed": + return this.finishNode(node, "MixedTypeAnnotation"); + case "empty": + return this.finishNode(node, "EmptyTypeAnnotation"); + case "number": + return this.finishNode(node, "NumberTypeAnnotation"); + case "string": + return this.finishNode(node, "StringTypeAnnotation"); + case "symbol": + return this.finishNode(node, "SymbolTypeAnnotation"); + default: + this.checkNotUnderscore(id.name); + return this.flowParseGenericType(startLoc, id); + } + } + flowParsePrimaryType() { + const startLoc = this.state.startLoc; + const node = this.startNode(); + let tmp; + let type; + let isGroupedType = false; + const oldNoAnonFunctionType = this.state.noAnonFunctionType; + switch (this.state.type) { + case 5: + return this.flowParseObjectType({ + allowStatic: false, + allowExact: false, + allowSpread: true, + allowProto: false, + allowInexact: true + }); + case 6: + return this.flowParseObjectType({ + allowStatic: false, + allowExact: true, + allowSpread: true, + allowProto: false, + allowInexact: false + }); + case 0: + this.state.noAnonFunctionType = false; + type = this.flowParseTupleType(); + this.state.noAnonFunctionType = oldNoAnonFunctionType; + return type; + case 47: + { + const node = this.startNode(); + node.typeParameters = this.flowParseTypeParameterDeclaration(); + this.expect(10); + tmp = this.flowParseFunctionTypeParams(); + node.params = tmp.params; + node.rest = tmp.rest; + node.this = tmp._this; + this.expect(11); + this.expect(19); + node.returnType = this.flowParseType(); + return this.finishNode(node, "FunctionTypeAnnotation"); + } + case 10: + { + const node = this.startNode(); + this.next(); + if (!this.match(11) && !this.match(21)) { + if (tokenIsIdentifier(this.state.type) || this.match(78)) { + const token = this.lookahead().type; + isGroupedType = token !== 17 && token !== 14; + } else { + isGroupedType = true; + } + } + if (isGroupedType) { + this.state.noAnonFunctionType = false; + type = this.flowParseType(); + this.state.noAnonFunctionType = oldNoAnonFunctionType; + if (this.state.noAnonFunctionType || !(this.match(12) || this.match(11) && this.lookahead().type === 19)) { + this.expect(11); + return type; + } else { + this.eat(12); + } + } + if (type) { + tmp = this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(type)]); + } else { + tmp = this.flowParseFunctionTypeParams(); + } + node.params = tmp.params; + node.rest = tmp.rest; + node.this = tmp._this; + this.expect(11); + this.expect(19); + node.returnType = this.flowParseType(); + node.typeParameters = null; + return this.finishNode(node, "FunctionTypeAnnotation"); + } + case 134: + return this.parseLiteral(this.state.value, "StringLiteralTypeAnnotation"); + case 85: + case 86: + node.value = this.match(85); + this.next(); + return this.finishNode(node, "BooleanLiteralTypeAnnotation"); + case 53: + if (this.state.value === "-") { + this.next(); + if (this.match(135)) { + return this.parseLiteralAtNode(-this.state.value, "NumberLiteralTypeAnnotation", node); + } + if (this.match(136)) { + return this.parseLiteralAtNode(-this.state.value, "BigIntLiteralTypeAnnotation", node); + } + throw this.raise(FlowErrors.UnexpectedSubtractionOperand, this.state.startLoc); + } + throw this.unexpected(); + case 135: + return this.parseLiteral(this.state.value, "NumberLiteralTypeAnnotation"); + case 136: + return this.parseLiteral(this.state.value, "BigIntLiteralTypeAnnotation"); + case 88: + this.next(); + return this.finishNode(node, "VoidTypeAnnotation"); + case 84: + this.next(); + return this.finishNode(node, "NullLiteralTypeAnnotation"); + case 78: + this.next(); + return this.finishNode(node, "ThisTypeAnnotation"); + case 55: + this.next(); + return this.finishNode(node, "ExistsTypeAnnotation"); + case 87: + return this.flowParseTypeofType(); + default: + if (tokenIsKeyword(this.state.type)) { + const label = tokenLabelName(this.state.type); + this.next(); + return super.createIdentifier(node, label); + } else if (tokenIsIdentifier(this.state.type)) { + if (this.isContextual(129)) { + return this.flowParseInterfaceType(); + } + return this.flowIdentToTypeAnnotation(startLoc, node, this.parseIdentifier()); + } + } + throw this.unexpected(); + } + flowParsePostfixType() { + const startLoc = this.state.startLoc; + let type = this.flowParsePrimaryType(); + let seenOptionalIndexedAccess = false; + while ((this.match(0) || this.match(18)) && !this.canInsertSemicolon()) { + const node = this.startNodeAt(startLoc); + const optional = this.eat(18); + seenOptionalIndexedAccess = seenOptionalIndexedAccess || optional; + this.expect(0); + if (!optional && this.match(3)) { + node.elementType = type; + this.next(); + type = this.finishNode(node, "ArrayTypeAnnotation"); + } else { + node.objectType = type; + node.indexType = this.flowParseType(); + this.expect(3); + if (seenOptionalIndexedAccess) { + node.optional = optional; + type = this.finishNode(node, "OptionalIndexedAccessType"); + } else { + type = this.finishNode(node, "IndexedAccessType"); + } + } + } + return type; + } + flowParsePrefixType() { + const node = this.startNode(); + if (this.eat(17)) { + node.typeAnnotation = this.flowParsePrefixType(); + return this.finishNode(node, "NullableTypeAnnotation"); + } else { + return this.flowParsePostfixType(); + } + } + flowParseAnonFunctionWithoutParens() { + const param = this.flowParsePrefixType(); + if (!this.state.noAnonFunctionType && this.eat(19)) { + const node = this.startNodeAt(param.loc.start); + node.params = [this.reinterpretTypeAsFunctionTypeParam(param)]; + node.rest = null; + node.this = null; + node.returnType = this.flowParseType(); + node.typeParameters = null; + return this.finishNode(node, "FunctionTypeAnnotation"); + } + return param; + } + flowParseIntersectionType() { + const node = this.startNode(); + this.eat(45); + const type = this.flowParseAnonFunctionWithoutParens(); + node.types = [type]; + while (this.eat(45)) { + node.types.push(this.flowParseAnonFunctionWithoutParens()); + } + return node.types.length === 1 ? type : this.finishNode(node, "IntersectionTypeAnnotation"); + } + flowParseUnionType() { + const node = this.startNode(); + this.eat(43); + const type = this.flowParseIntersectionType(); + node.types = [type]; + while (this.eat(43)) { + node.types.push(this.flowParseIntersectionType()); + } + return node.types.length === 1 ? type : this.finishNode(node, "UnionTypeAnnotation"); + } + flowParseType() { + const oldInType = this.state.inType; + this.state.inType = true; + const type = this.flowParseUnionType(); + this.state.inType = oldInType; + return type; + } + flowParseTypeOrImplicitInstantiation() { + if (this.state.type === 132 && this.state.value === "_") { + const startLoc = this.state.startLoc; + const node = this.parseIdentifier(); + return this.flowParseGenericType(startLoc, node); + } else { + return this.flowParseType(); + } + } + flowParseTypeAnnotation() { + const node = this.startNode(); + node.typeAnnotation = this.flowParseTypeInitialiser(); + return this.finishNode(node, "TypeAnnotation"); + } + flowParseTypeAnnotatableIdentifier() { + const node = this.startNode(); + const name = this.parseIdentifierName(); + if (this.match(14)) { + node.typeAnnotation = this.flowParseTypeAnnotation(); + } + return this.createIdentifier(node, name); + } + typeCastToParameter(node) { + node.expression.typeAnnotation = node.typeAnnotation; + this.resetEndLocation(node.expression, node.typeAnnotation.loc.end); + return node.expression; + } + flowParseVariance() { + let variance = null; + if (this.match(53)) { + variance = this.startNode(); + if (this.state.value === "+") { + variance.kind = "plus"; + } else { + variance.kind = "minus"; + } + this.next(); + return this.finishNode(variance, "Variance"); + } + return variance; + } + parseFunctionBody(node, allowExpressionBody, isMethod = false) { + if (allowExpressionBody) { + this.forwardNoArrowParamsConversionAt(node, () => super.parseFunctionBody(node, true, isMethod)); + return; + } + super.parseFunctionBody(node, false, isMethod); + } + parseFunctionBodyAndFinish(node, type, isMethod = false) { + if (this.match(14)) { + const typeNode = this.startNode(); + [typeNode.typeAnnotation, node.predicate] = this.flowParseTypeAndPredicateInitialiser(); + node.returnType = typeNode.typeAnnotation ? this.finishNode(typeNode, "TypeAnnotation") : null; + } + return super.parseFunctionBodyAndFinish(node, type, isMethod); + } + parseStatementLike(flags) { + if (this.state.strict && this.isContextual(129)) { + const lookahead = this.lookahead(); + if (tokenIsKeywordOrIdentifier(lookahead.type)) { + const node = this.startNode(); + this.next(); + return this.flowParseInterface(node); + } + } else if (this.isContextual(126)) { + const node = this.startNode(); + this.next(); + return this.flowParseEnumDeclaration(node); + } + const stmt = super.parseStatementLike(flags); + if (this.flowPragma === undefined && !this.isValidDirective(stmt)) { + this.flowPragma = null; + } + return stmt; + } + parseExpressionStatement(node, expr, decorators) { + if (expr.type === "Identifier") { + if (expr.name === "declare") { + if (this.match(80) || tokenIsIdentifier(this.state.type) || this.match(68) || this.match(74) || this.match(82)) { + return this.flowParseDeclare(node); + } + } else if (tokenIsIdentifier(this.state.type)) { + if (expr.name === "interface") { + return this.flowParseInterface(node); + } else if (expr.name === "type") { + return this.flowParseTypeAlias(node); + } else if (expr.name === "opaque") { + return this.flowParseOpaqueType(node, false); + } + } + } + return super.parseExpressionStatement(node, expr, decorators); + } + shouldParseExportDeclaration() { + const { + type + } = this.state; + if (type === 126 || tokenIsFlowInterfaceOrTypeOrOpaque(type)) { + return !this.state.containsEsc; + } + return super.shouldParseExportDeclaration(); + } + isExportDefaultSpecifier() { + const { + type + } = this.state; + if (type === 126 || tokenIsFlowInterfaceOrTypeOrOpaque(type)) { + return this.state.containsEsc; + } + return super.isExportDefaultSpecifier(); + } + parseExportDefaultExpression() { + if (this.isContextual(126)) { + const node = this.startNode(); + this.next(); + return this.flowParseEnumDeclaration(node); + } + return super.parseExportDefaultExpression(); + } + parseConditional(expr, startLoc, refExpressionErrors) { + if (!this.match(17)) return expr; + if (this.state.maybeInArrowParameters) { + const nextCh = this.lookaheadCharCode(); + if (nextCh === 44 || nextCh === 61 || nextCh === 58 || nextCh === 41) { + this.setOptionalParametersError(refExpressionErrors); + return expr; + } + } + this.expect(17); + const state = this.state.clone(); + const originalNoArrowAt = this.state.noArrowAt; + const node = this.startNodeAt(startLoc); + let { + consequent, + failed + } = this.tryParseConditionalConsequent(); + let [valid, invalid] = this.getArrowLikeExpressions(consequent); + if (failed || invalid.length > 0) { + const noArrowAt = [...originalNoArrowAt]; + if (invalid.length > 0) { + this.state = state; + this.state.noArrowAt = noArrowAt; + for (let i = 0; i < invalid.length; i++) { + noArrowAt.push(invalid[i].start); + } + ({ + consequent, + failed + } = this.tryParseConditionalConsequent()); + [valid, invalid] = this.getArrowLikeExpressions(consequent); + } + if (failed && valid.length > 1) { + this.raise(FlowErrors.AmbiguousConditionalArrow, state.startLoc); + } + if (failed && valid.length === 1) { + this.state = state; + noArrowAt.push(valid[0].start); + this.state.noArrowAt = noArrowAt; + ({ + consequent, + failed + } = this.tryParseConditionalConsequent()); + } + } + this.getArrowLikeExpressions(consequent, true); + this.state.noArrowAt = originalNoArrowAt; + this.expect(14); + node.test = expr; + node.consequent = consequent; + node.alternate = this.forwardNoArrowParamsConversionAt(node, () => this.parseMaybeAssign(undefined, undefined)); + return this.finishNode(node, "ConditionalExpression"); + } + tryParseConditionalConsequent() { + this.state.noArrowParamsConversionAt.push(this.state.start); + const consequent = this.parseMaybeAssignAllowIn(); + const failed = !this.match(14); + this.state.noArrowParamsConversionAt.pop(); + return { + consequent, + failed + }; + } + getArrowLikeExpressions(node, disallowInvalid) { + const stack = [node]; + const arrows = []; + while (stack.length !== 0) { + const node = stack.pop(); + if (node.type === "ArrowFunctionExpression" && node.body.type !== "BlockStatement") { + if (node.typeParameters || !node.returnType) { + this.finishArrowValidation(node); + } else { + arrows.push(node); + } + stack.push(node.body); + } else if (node.type === "ConditionalExpression") { + stack.push(node.consequent); + stack.push(node.alternate); + } + } + if (disallowInvalid) { + arrows.forEach(node => this.finishArrowValidation(node)); + return [arrows, []]; + } + return partition(arrows, node => node.params.every(param => this.isAssignable(param, true))); + } + finishArrowValidation(node) { + var _node$extra; + this.toAssignableList(node.params, (_node$extra = node.extra) == null ? void 0 : _node$extra.trailingCommaLoc, false); + this.scope.enter(514 | 4); + super.checkParams(node, false, true); + this.scope.exit(); + } + forwardNoArrowParamsConversionAt(node, parse) { + let result; + if (this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(node.start))) { + this.state.noArrowParamsConversionAt.push(this.state.start); + result = parse(); + this.state.noArrowParamsConversionAt.pop(); + } else { + result = parse(); + } + return result; + } + parseParenItem(node, startLoc) { + const newNode = super.parseParenItem(node, startLoc); + if (this.eat(17)) { + newNode.optional = true; + this.resetEndLocation(node); + } + if (this.match(14)) { + const typeCastNode = this.startNodeAt(startLoc); + typeCastNode.expression = newNode; + typeCastNode.typeAnnotation = this.flowParseTypeAnnotation(); + return this.finishNode(typeCastNode, "TypeCastExpression"); + } + return newNode; + } + assertModuleNodeAllowed(node) { + if (node.type === "ImportDeclaration" && (node.importKind === "type" || node.importKind === "typeof") || node.type === "ExportNamedDeclaration" && node.exportKind === "type" || node.type === "ExportAllDeclaration" && node.exportKind === "type") { + return; + } + super.assertModuleNodeAllowed(node); + } + parseExportDeclaration(node) { + if (this.isContextual(130)) { + node.exportKind = "type"; + const declarationNode = this.startNode(); + this.next(); + if (this.match(5)) { + node.specifiers = this.parseExportSpecifiers(true); + super.parseExportFrom(node); + return null; + } else { + return this.flowParseTypeAlias(declarationNode); + } + } else if (this.isContextual(131)) { + node.exportKind = "type"; + const declarationNode = this.startNode(); + this.next(); + return this.flowParseOpaqueType(declarationNode, false); + } else if (this.isContextual(129)) { + node.exportKind = "type"; + const declarationNode = this.startNode(); + this.next(); + return this.flowParseInterface(declarationNode); + } else if (this.isContextual(126)) { + node.exportKind = "value"; + const declarationNode = this.startNode(); + this.next(); + return this.flowParseEnumDeclaration(declarationNode); + } else { + return super.parseExportDeclaration(node); + } + } + eatExportStar(node) { + if (super.eatExportStar(node)) return true; + if (this.isContextual(130) && this.lookahead().type === 55) { + node.exportKind = "type"; + this.next(); + this.next(); + return true; + } + return false; + } + maybeParseExportNamespaceSpecifier(node) { + const { + startLoc + } = this.state; + const hasNamespace = super.maybeParseExportNamespaceSpecifier(node); + if (hasNamespace && node.exportKind === "type") { + this.unexpected(startLoc); + } + return hasNamespace; + } + parseClassId(node, isStatement, optionalId) { + super.parseClassId(node, isStatement, optionalId); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } + } + parseClassMember(classBody, member, state) { + const { + startLoc + } = this.state; + if (this.isContextual(125)) { + if (super.parseClassMemberFromModifier(classBody, member)) { + return; + } + member.declare = true; + } + super.parseClassMember(classBody, member, state); + if (member.declare) { + if (member.type !== "ClassProperty" && member.type !== "ClassPrivateProperty" && member.type !== "PropertyDefinition") { + this.raise(FlowErrors.DeclareClassElement, startLoc); + } else if (member.value) { + this.raise(FlowErrors.DeclareClassFieldInitializer, member.value); + } + } + } + isIterator(word) { + return word === "iterator" || word === "asyncIterator"; + } + readIterator() { + const word = super.readWord1(); + const fullWord = "@@" + word; + if (!this.isIterator(word) || !this.state.inType) { + this.raise(Errors.InvalidIdentifier, this.state.curPosition(), { + identifierName: fullWord + }); + } + this.finishToken(132, fullWord); + } + getTokenFromCode(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (code === 123 && next === 124) { + this.finishOp(6, 2); + } else if (this.state.inType && (code === 62 || code === 60)) { + this.finishOp(code === 62 ? 48 : 47, 1); + } else if (this.state.inType && code === 63) { + if (next === 46) { + this.finishOp(18, 2); + } else { + this.finishOp(17, 1); + } + } else if (isIteratorStart(code, next, this.input.charCodeAt(this.state.pos + 2))) { + this.state.pos += 2; + this.readIterator(); + } else { + super.getTokenFromCode(code); + } + } + isAssignable(node, isBinding) { + if (node.type === "TypeCastExpression") { + return this.isAssignable(node.expression, isBinding); + } else { + return super.isAssignable(node, isBinding); + } + } + toAssignable(node, isLHS = false) { + if (!isLHS && node.type === "AssignmentExpression" && node.left.type === "TypeCastExpression") { + node.left = this.typeCastToParameter(node.left); + } + super.toAssignable(node, isLHS); + } + toAssignableList(exprList, trailingCommaLoc, isLHS) { + for (let i = 0; i < exprList.length; i++) { + const expr = exprList[i]; + if ((expr == null ? void 0 : expr.type) === "TypeCastExpression") { + exprList[i] = this.typeCastToParameter(expr); + } + } + super.toAssignableList(exprList, trailingCommaLoc, isLHS); + } + toReferencedList(exprList, isParenthesizedExpr) { + for (let i = 0; i < exprList.length; i++) { + var _expr$extra; + const expr = exprList[i]; + if (expr && expr.type === "TypeCastExpression" && !((_expr$extra = expr.extra) != null && _expr$extra.parenthesized) && (exprList.length > 1 || !isParenthesizedExpr)) { + this.raise(FlowErrors.TypeCastInPattern, expr.typeAnnotation); + } + } + return exprList; + } + parseArrayLike(close, isTuple, refExpressionErrors) { + const node = super.parseArrayLike(close, isTuple, refExpressionErrors); + if (refExpressionErrors != null && !this.state.maybeInArrowParameters) { + this.toReferencedList(node.elements); + } + return node; + } + isValidLVal(type, disallowCallExpression, isParenthesized, binding) { + return type === "TypeCastExpression" || super.isValidLVal(type, disallowCallExpression, isParenthesized, binding); + } + parseClassProperty(node) { + if (this.match(14)) { + node.typeAnnotation = this.flowParseTypeAnnotation(); + } + return super.parseClassProperty(node); + } + parseClassPrivateProperty(node) { + if (this.match(14)) { + node.typeAnnotation = this.flowParseTypeAnnotation(); + } + return super.parseClassPrivateProperty(node); + } + isClassMethod() { + return this.match(47) || super.isClassMethod(); + } + isClassProperty() { + return this.match(14) || super.isClassProperty(); + } + isNonstaticConstructor(method) { + return !this.match(14) && super.isNonstaticConstructor(method); + } + pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) { + if (method.variance) { + this.unexpected(method.variance.loc.start); + } + delete method.variance; + if (this.match(47)) { + method.typeParameters = this.flowParseTypeParameterDeclaration(); + } + super.pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper); + if (method.params && isConstructor) { + const params = method.params; + if (params.length > 0 && this.isThisParam(params[0])) { + this.raise(FlowErrors.ThisParamBannedInConstructor, method); + } + } else if (method.type === "MethodDefinition" && isConstructor && method.value.params) { + const params = method.value.params; + if (params.length > 0 && this.isThisParam(params[0])) { + this.raise(FlowErrors.ThisParamBannedInConstructor, method); + } + } + } + pushClassPrivateMethod(classBody, method, isGenerator, isAsync) { + if (method.variance) { + this.unexpected(method.variance.loc.start); + } + delete method.variance; + if (this.match(47)) { + method.typeParameters = this.flowParseTypeParameterDeclaration(); + } + super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync); + } + parseClassSuper(node) { + super.parseClassSuper(node); + if (node.superClass && (this.match(47) || this.match(51))) { + node.superTypeParameters = this.flowParseTypeParameterInstantiationInExpression(); + } + if (this.isContextual(113)) { + this.next(); + const implemented = node.implements = []; + do { + const node = this.startNode(); + node.id = this.flowParseRestrictedIdentifier(true); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterInstantiation(); + } else { + node.typeParameters = null; + } + implemented.push(this.finishNode(node, "ClassImplements")); + } while (this.eat(12)); + } + } + checkGetterSetterParams(method) { + super.checkGetterSetterParams(method); + const params = this.getObjectOrClassMethodParams(method); + if (params.length > 0) { + const param = params[0]; + if (this.isThisParam(param) && method.kind === "get") { + this.raise(FlowErrors.GetterMayNotHaveThisParam, param); + } else if (this.isThisParam(param)) { + this.raise(FlowErrors.SetterMayNotHaveThisParam, param); + } + } + } + parsePropertyNamePrefixOperator(node) { + node.variance = this.flowParseVariance(); + } + parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) { + if (prop.variance) { + this.unexpected(prop.variance.loc.start); + } + delete prop.variance; + let typeParameters; + if (this.match(47) && !isAccessor) { + typeParameters = this.flowParseTypeParameterDeclaration(); + if (!this.match(10)) this.unexpected(); + } + const result = super.parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors); + if (typeParameters) { + (result.value || result).typeParameters = typeParameters; + } + return result; + } + parseFunctionParamType(param) { + if (this.eat(17)) { + if (param.type !== "Identifier") { + this.raise(FlowErrors.PatternIsOptional, param); + } + if (this.isThisParam(param)) { + this.raise(FlowErrors.ThisParamMayNotBeOptional, param); + } + param.optional = true; + } + if (this.match(14)) { + param.typeAnnotation = this.flowParseTypeAnnotation(); + } else if (this.isThisParam(param)) { + this.raise(FlowErrors.ThisParamAnnotationRequired, param); + } + if (this.match(29) && this.isThisParam(param)) { + this.raise(FlowErrors.ThisParamNoDefault, param); + } + this.resetEndLocation(param); + return param; + } + parseMaybeDefault(startLoc, left) { + const node = super.parseMaybeDefault(startLoc, left); + if (node.type === "AssignmentPattern" && node.typeAnnotation && node.right.start < node.typeAnnotation.start) { + this.raise(FlowErrors.TypeBeforeInitializer, node.typeAnnotation); + } + return node; + } + checkImportReflection(node) { + super.checkImportReflection(node); + if (node.module && node.importKind !== "value") { + this.raise(FlowErrors.ImportReflectionHasImportType, node.specifiers[0].loc.start); + } + } + parseImportSpecifierLocal(node, specifier, type) { + specifier.local = hasTypeImportKind(node) ? this.flowParseRestrictedIdentifier(true, true) : this.parseIdentifier(); + node.specifiers.push(this.finishImportSpecifier(specifier, type)); + } + isPotentialImportPhase(isExport) { + if (super.isPotentialImportPhase(isExport)) return true; + if (this.isContextual(130)) { + if (!isExport) return true; + const ch = this.lookaheadCharCode(); + return ch === 123 || ch === 42; + } + return !isExport && this.isContextual(87); + } + applyImportPhase(node, isExport, phase, loc) { + super.applyImportPhase(node, isExport, phase, loc); + if (isExport) { + if (!phase && this.match(65)) { + return; + } + node.exportKind = phase === "type" ? phase : "value"; + } else { + if (phase === "type" && this.match(55)) this.unexpected(); + node.importKind = phase === "type" || phase === "typeof" ? phase : "value"; + } + } + parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, bindingType) { + const firstIdent = specifier.imported; + let specifierTypeKind = null; + if (firstIdent.type === "Identifier") { + if (firstIdent.name === "type") { + specifierTypeKind = "type"; + } else if (firstIdent.name === "typeof") { + specifierTypeKind = "typeof"; + } + } + let isBinding = false; + if (this.isContextual(93) && !this.isLookaheadContextual("as")) { + const as_ident = this.parseIdentifier(true); + if (specifierTypeKind !== null && !tokenIsKeywordOrIdentifier(this.state.type)) { + specifier.imported = as_ident; + specifier.importKind = specifierTypeKind; + specifier.local = this.cloneIdentifier(as_ident); + } else { + specifier.imported = firstIdent; + specifier.importKind = null; + specifier.local = this.parseIdentifier(); + } + } else { + if (specifierTypeKind !== null && tokenIsKeywordOrIdentifier(this.state.type)) { + specifier.imported = this.parseIdentifier(true); + specifier.importKind = specifierTypeKind; + } else { + if (importedIsString) { + throw this.raise(Errors.ImportBindingIsString, specifier, { + importName: firstIdent.value + }); + } + specifier.imported = firstIdent; + specifier.importKind = null; + } + if (this.eatContextual(93)) { + specifier.local = this.parseIdentifier(); + } else { + isBinding = true; + specifier.local = this.cloneIdentifier(specifier.imported); + } + } + const specifierIsTypeImport = hasTypeImportKind(specifier); + if (isInTypeOnlyImport && specifierIsTypeImport) { + this.raise(FlowErrors.ImportTypeShorthandOnlyInPureImport, specifier); + } + if (isInTypeOnlyImport || specifierIsTypeImport) { + this.checkReservedType(specifier.local.name, specifier.local.loc.start, true); + } + if (isBinding && !isInTypeOnlyImport && !specifierIsTypeImport) { + this.checkReservedWord(specifier.local.name, specifier.loc.start, true, true); + } + return this.finishImportSpecifier(specifier, "ImportSpecifier"); + } + parseBindingAtom() { + switch (this.state.type) { + case 78: + return this.parseIdentifier(true); + default: + return super.parseBindingAtom(); + } + } + parseFunctionParams(node, isConstructor) { + const kind = node.kind; + if (kind !== "get" && kind !== "set" && this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } + super.parseFunctionParams(node, isConstructor); + } + parseVarId(decl, kind) { + super.parseVarId(decl, kind); + if (this.match(14)) { + decl.id.typeAnnotation = this.flowParseTypeAnnotation(); + this.resetEndLocation(decl.id); + } + } + parseAsyncArrowFromCallExpression(node, call) { + if (this.match(14)) { + const oldNoAnonFunctionType = this.state.noAnonFunctionType; + this.state.noAnonFunctionType = true; + node.returnType = this.flowParseTypeAnnotation(); + this.state.noAnonFunctionType = oldNoAnonFunctionType; + } + return super.parseAsyncArrowFromCallExpression(node, call); + } + shouldParseAsyncArrow() { + return this.match(14) || super.shouldParseAsyncArrow(); + } + parseMaybeAssign(refExpressionErrors, afterLeftParse) { + var _jsx; + let state = null; + let jsx; + if (this.hasPlugin("jsx") && (this.match(143) || this.match(47))) { + state = this.state.clone(); + jsx = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse), state); + if (!jsx.error) return jsx.node; + const { + context + } = this.state; + const currentContext = context[context.length - 1]; + if (currentContext === types.j_oTag || currentContext === types.j_expr) { + context.pop(); + } + } + if ((_jsx = jsx) != null && _jsx.error || this.match(47)) { + var _jsx2, _jsx3; + state = state || this.state.clone(); + let typeParameters; + const arrow = this.tryParse(abort => { + var _arrowExpression$extr; + typeParameters = this.flowParseTypeParameterDeclaration(); + const arrowExpression = this.forwardNoArrowParamsConversionAt(typeParameters, () => { + const result = super.parseMaybeAssign(refExpressionErrors, afterLeftParse); + this.resetStartLocationFromNode(result, typeParameters); + return result; + }); + if ((_arrowExpression$extr = arrowExpression.extra) != null && _arrowExpression$extr.parenthesized) abort(); + const expr = this.maybeUnwrapTypeCastExpression(arrowExpression); + if (expr.type !== "ArrowFunctionExpression") abort(); + expr.typeParameters = typeParameters; + this.resetStartLocationFromNode(expr, typeParameters); + return arrowExpression; + }, state); + let arrowExpression = null; + if (arrow.node && this.maybeUnwrapTypeCastExpression(arrow.node).type === "ArrowFunctionExpression") { + if (!arrow.error && !arrow.aborted) { + if (arrow.node.async) { + this.raise(FlowErrors.UnexpectedTypeParameterBeforeAsyncArrowFunction, typeParameters); + } + return arrow.node; + } + arrowExpression = arrow.node; + } + if ((_jsx2 = jsx) != null && _jsx2.node) { + this.state = jsx.failState; + return jsx.node; + } + if (arrowExpression) { + this.state = arrow.failState; + return arrowExpression; + } + if ((_jsx3 = jsx) != null && _jsx3.thrown) throw jsx.error; + if (arrow.thrown) throw arrow.error; + throw this.raise(FlowErrors.UnexpectedTokenAfterTypeParameter, typeParameters); + } + return super.parseMaybeAssign(refExpressionErrors, afterLeftParse); + } + parseArrow(node) { + if (this.match(14)) { + const result = this.tryParse(() => { + const oldNoAnonFunctionType = this.state.noAnonFunctionType; + this.state.noAnonFunctionType = true; + const typeNode = this.startNode(); + [typeNode.typeAnnotation, node.predicate] = this.flowParseTypeAndPredicateInitialiser(); + this.state.noAnonFunctionType = oldNoAnonFunctionType; + if (this.canInsertSemicolon()) this.unexpected(); + if (!this.match(19)) this.unexpected(); + return typeNode; + }); + if (result.thrown) return null; + if (result.error) this.state = result.failState; + node.returnType = result.node.typeAnnotation ? this.finishNode(result.node, "TypeAnnotation") : null; + } + return super.parseArrow(node); + } + shouldParseArrow(params) { + return this.match(14) || super.shouldParseArrow(params); + } + setArrowFunctionParameters(node, params) { + if (this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(node.start))) { + node.params = params; + } else { + super.setArrowFunctionParameters(node, params); + } + } + checkParams(node, allowDuplicates, isArrowFunction, strictModeChanged = true) { + if (isArrowFunction && this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(node.start))) { + return; + } + for (let i = 0; i < node.params.length; i++) { + if (this.isThisParam(node.params[i]) && i > 0) { + this.raise(FlowErrors.ThisParamMustBeFirst, node.params[i]); + } + } + super.checkParams(node, allowDuplicates, isArrowFunction, strictModeChanged); + } + parseParenAndDistinguishExpression(canBeArrow) { + return super.parseParenAndDistinguishExpression(canBeArrow && !this.state.noArrowAt.includes(this.sourceToOffsetPos(this.state.start))); + } + parseSubscripts(base, startLoc, noCalls) { + if (base.type === "Identifier" && base.name === "async" && this.state.noArrowAt.includes(startLoc.index)) { + this.next(); + const node = this.startNodeAt(startLoc); + node.callee = base; + node.arguments = super.parseCallExpressionArguments(); + base = this.finishNode(node, "CallExpression"); + } else if (base.type === "Identifier" && base.name === "async" && this.match(47)) { + const state = this.state.clone(); + const arrow = this.tryParse(abort => this.parseAsyncArrowWithTypeParameters(startLoc) || abort(), state); + if (!arrow.error && !arrow.aborted) return arrow.node; + const result = this.tryParse(() => super.parseSubscripts(base, startLoc, noCalls), state); + if (result.node && !result.error) return result.node; + if (arrow.node) { + this.state = arrow.failState; + return arrow.node; + } + if (result.node) { + this.state = result.failState; + return result.node; + } + throw arrow.error || result.error; + } + return super.parseSubscripts(base, startLoc, noCalls); + } + parseSubscript(base, startLoc, noCalls, subscriptState) { + if (this.match(18) && this.isLookaheadToken_lt()) { + subscriptState.optionalChainMember = true; + if (noCalls) { + subscriptState.stop = true; + return base; + } + this.next(); + const node = this.startNodeAt(startLoc); + node.callee = base; + node.typeArguments = this.flowParseTypeParameterInstantiationInExpression(); + this.expect(10); + node.arguments = this.parseCallExpressionArguments(); + node.optional = true; + return this.finishCallExpression(node, true); + } else if (!noCalls && this.shouldParseTypes() && (this.match(47) || this.match(51))) { + const node = this.startNodeAt(startLoc); + node.callee = base; + const result = this.tryParse(() => { + node.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew(); + this.expect(10); + node.arguments = super.parseCallExpressionArguments(); + if (subscriptState.optionalChainMember) { + node.optional = false; + } + return this.finishCallExpression(node, subscriptState.optionalChainMember); + }); + if (result.node) { + if (result.error) this.state = result.failState; + return result.node; + } + } + return super.parseSubscript(base, startLoc, noCalls, subscriptState); + } + parseNewCallee(node) { + super.parseNewCallee(node); + let targs = null; + if (this.shouldParseTypes() && this.match(47)) { + targs = this.tryParse(() => this.flowParseTypeParameterInstantiationCallOrNew()).node; + } + node.typeArguments = targs; + } + parseAsyncArrowWithTypeParameters(startLoc) { + const node = this.startNodeAt(startLoc); + this.parseFunctionParams(node, false); + if (!this.parseArrow(node)) return; + return super.parseArrowExpression(node, undefined, true); + } + readToken_mult_modulo(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (code === 42 && next === 47 && this.state.hasFlowComment) { + this.state.hasFlowComment = false; + this.state.pos += 2; + this.nextToken(); + return; + } + super.readToken_mult_modulo(code); + } + readToken_pipe_amp(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (code === 124 && next === 125) { + this.finishOp(9, 2); + return; + } + super.readToken_pipe_amp(code); + } + parseTopLevel(file, program) { + const fileNode = super.parseTopLevel(file, program); + if (this.state.hasFlowComment) { + this.raise(FlowErrors.UnterminatedFlowComment, this.state.curPosition()); + } + return fileNode; + } + skipBlockComment() { + if (this.hasPlugin("flowComments") && this.skipFlowComment()) { + if (this.state.hasFlowComment) { + throw this.raise(FlowErrors.NestedFlowComment, this.state.startLoc); + } + this.hasFlowCommentCompletion(); + const commentSkip = this.skipFlowComment(); + if (commentSkip) { + this.state.pos += commentSkip; + this.state.hasFlowComment = true; + } + return; + } + return super.skipBlockComment(this.state.hasFlowComment ? "*-/" : "*/"); + } + skipFlowComment() { + const { + pos + } = this.state; + let shiftToFirstNonWhiteSpace = 2; + while ([32, 9].includes(this.input.charCodeAt(pos + shiftToFirstNonWhiteSpace))) { + shiftToFirstNonWhiteSpace++; + } + const ch2 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos); + const ch3 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos + 1); + if (ch2 === 58 && ch3 === 58) { + return shiftToFirstNonWhiteSpace + 2; + } + if (this.input.slice(shiftToFirstNonWhiteSpace + pos, shiftToFirstNonWhiteSpace + pos + 12) === "flow-include") { + return shiftToFirstNonWhiteSpace + 12; + } + if (ch2 === 58 && ch3 !== 58) { + return shiftToFirstNonWhiteSpace; + } + return false; + } + hasFlowCommentCompletion() { + const end = this.input.indexOf("*/", this.state.pos); + if (end === -1) { + throw this.raise(Errors.UnterminatedComment, this.state.curPosition()); + } + } + flowEnumErrorBooleanMemberNotInitialized(loc, { + enumName, + memberName + }) { + this.raise(FlowErrors.EnumBooleanMemberNotInitialized, loc, { + memberName, + enumName + }); + } + flowEnumErrorInvalidMemberInitializer(loc, enumContext) { + return this.raise(!enumContext.explicitType ? FlowErrors.EnumInvalidMemberInitializerUnknownType : enumContext.explicitType === "symbol" ? FlowErrors.EnumInvalidMemberInitializerSymbolType : FlowErrors.EnumInvalidMemberInitializerPrimaryType, loc, enumContext); + } + flowEnumErrorNumberMemberNotInitialized(loc, details) { + this.raise(FlowErrors.EnumNumberMemberNotInitialized, loc, details); + } + flowEnumErrorStringMemberInconsistentlyInitialized(node, details) { + this.raise(FlowErrors.EnumStringMemberInconsistentlyInitialized, node, details); + } + flowEnumMemberInit() { + const startLoc = this.state.startLoc; + const endOfInit = () => this.match(12) || this.match(8); + switch (this.state.type) { + case 135: + { + const literal = this.parseNumericLiteral(this.state.value); + if (endOfInit()) { + return { + type: "number", + loc: literal.loc.start, + value: literal + }; + } + return { + type: "invalid", + loc: startLoc + }; + } + case 134: + { + const literal = this.parseStringLiteral(this.state.value); + if (endOfInit()) { + return { + type: "string", + loc: literal.loc.start, + value: literal + }; + } + return { + type: "invalid", + loc: startLoc + }; + } + case 85: + case 86: + { + const literal = this.parseBooleanLiteral(this.match(85)); + if (endOfInit()) { + return { + type: "boolean", + loc: literal.loc.start, + value: literal + }; + } + return { + type: "invalid", + loc: startLoc + }; + } + default: + return { + type: "invalid", + loc: startLoc + }; + } + } + flowEnumMemberRaw() { + const loc = this.state.startLoc; + const id = this.parseIdentifier(true); + const init = this.eat(29) ? this.flowEnumMemberInit() : { + type: "none", + loc + }; + return { + id, + init + }; + } + flowEnumCheckExplicitTypeMismatch(loc, context, expectedType) { + const { + explicitType + } = context; + if (explicitType === null) { + return; + } + if (explicitType !== expectedType) { + this.flowEnumErrorInvalidMemberInitializer(loc, context); + } + } + flowEnumMembers({ + enumName, + explicitType + }) { + const seenNames = new Set(); + const members = { + booleanMembers: [], + numberMembers: [], + stringMembers: [], + defaultedMembers: [] + }; + let hasUnknownMembers = false; + while (!this.match(8)) { + if (this.eat(21)) { + hasUnknownMembers = true; + break; + } + const memberNode = this.startNode(); + const { + id, + init + } = this.flowEnumMemberRaw(); + const memberName = id.name; + if (memberName === "") { + continue; + } + if (/^[a-z]/.test(memberName)) { + this.raise(FlowErrors.EnumInvalidMemberName, id, { + memberName, + suggestion: memberName[0].toUpperCase() + memberName.slice(1), + enumName + }); + } + if (seenNames.has(memberName)) { + this.raise(FlowErrors.EnumDuplicateMemberName, id, { + memberName, + enumName + }); + } + seenNames.add(memberName); + const context = { + enumName, + explicitType, + memberName + }; + memberNode.id = id; + switch (init.type) { + case "boolean": + { + this.flowEnumCheckExplicitTypeMismatch(init.loc, context, "boolean"); + memberNode.init = init.value; + members.booleanMembers.push(this.finishNode(memberNode, "EnumBooleanMember")); + break; + } + case "number": + { + this.flowEnumCheckExplicitTypeMismatch(init.loc, context, "number"); + memberNode.init = init.value; + members.numberMembers.push(this.finishNode(memberNode, "EnumNumberMember")); + break; + } + case "string": + { + this.flowEnumCheckExplicitTypeMismatch(init.loc, context, "string"); + memberNode.init = init.value; + members.stringMembers.push(this.finishNode(memberNode, "EnumStringMember")); + break; + } + case "invalid": + { + throw this.flowEnumErrorInvalidMemberInitializer(init.loc, context); + } + case "none": + { + switch (explicitType) { + case "boolean": + this.flowEnumErrorBooleanMemberNotInitialized(init.loc, context); + break; + case "number": + this.flowEnumErrorNumberMemberNotInitialized(init.loc, context); + break; + default: + members.defaultedMembers.push(this.finishNode(memberNode, "EnumDefaultedMember")); + } + } + } + if (!this.match(8)) { + this.expect(12); + } + } + return { + members, + hasUnknownMembers + }; + } + flowEnumStringMembers(initializedMembers, defaultedMembers, { + enumName + }) { + if (initializedMembers.length === 0) { + return defaultedMembers; + } else if (defaultedMembers.length === 0) { + return initializedMembers; + } else if (defaultedMembers.length > initializedMembers.length) { + for (const member of initializedMembers) { + this.flowEnumErrorStringMemberInconsistentlyInitialized(member, { + enumName + }); + } + return defaultedMembers; + } else { + for (const member of defaultedMembers) { + this.flowEnumErrorStringMemberInconsistentlyInitialized(member, { + enumName + }); + } + return initializedMembers; + } + } + flowEnumParseExplicitType({ + enumName + }) { + if (!this.eatContextual(102)) return null; + if (!tokenIsIdentifier(this.state.type)) { + throw this.raise(FlowErrors.EnumInvalidExplicitTypeUnknownSupplied, this.state.startLoc, { + enumName + }); + } + const { + value + } = this.state; + this.next(); + if (value !== "boolean" && value !== "number" && value !== "string" && value !== "symbol") { + this.raise(FlowErrors.EnumInvalidExplicitType, this.state.startLoc, { + enumName, + invalidEnumType: value + }); + } + return value; + } + flowEnumBody(node, id) { + const enumName = id.name; + const nameLoc = id.loc.start; + const explicitType = this.flowEnumParseExplicitType({ + enumName + }); + this.expect(5); + const { + members, + hasUnknownMembers + } = this.flowEnumMembers({ + enumName, + explicitType + }); + node.hasUnknownMembers = hasUnknownMembers; + switch (explicitType) { + case "boolean": + node.explicitType = true; + node.members = members.booleanMembers; + this.expect(8); + return this.finishNode(node, "EnumBooleanBody"); + case "number": + node.explicitType = true; + node.members = members.numberMembers; + this.expect(8); + return this.finishNode(node, "EnumNumberBody"); + case "string": + node.explicitType = true; + node.members = this.flowEnumStringMembers(members.stringMembers, members.defaultedMembers, { + enumName + }); + this.expect(8); + return this.finishNode(node, "EnumStringBody"); + case "symbol": + node.members = members.defaultedMembers; + this.expect(8); + return this.finishNode(node, "EnumSymbolBody"); + default: + { + const empty = () => { + node.members = []; + this.expect(8); + return this.finishNode(node, "EnumStringBody"); + }; + node.explicitType = false; + const boolsLen = members.booleanMembers.length; + const numsLen = members.numberMembers.length; + const strsLen = members.stringMembers.length; + const defaultedLen = members.defaultedMembers.length; + if (!boolsLen && !numsLen && !strsLen && !defaultedLen) { + return empty(); + } else if (!boolsLen && !numsLen) { + node.members = this.flowEnumStringMembers(members.stringMembers, members.defaultedMembers, { + enumName + }); + this.expect(8); + return this.finishNode(node, "EnumStringBody"); + } else if (!numsLen && !strsLen && boolsLen >= defaultedLen) { + for (const member of members.defaultedMembers) { + this.flowEnumErrorBooleanMemberNotInitialized(member.loc.start, { + enumName, + memberName: member.id.name + }); + } + node.members = members.booleanMembers; + this.expect(8); + return this.finishNode(node, "EnumBooleanBody"); + } else if (!boolsLen && !strsLen && numsLen >= defaultedLen) { + for (const member of members.defaultedMembers) { + this.flowEnumErrorNumberMemberNotInitialized(member.loc.start, { + enumName, + memberName: member.id.name + }); + } + node.members = members.numberMembers; + this.expect(8); + return this.finishNode(node, "EnumNumberBody"); + } else { + this.raise(FlowErrors.EnumInconsistentMemberValues, nameLoc, { + enumName + }); + return empty(); + } + } + } + } + flowParseEnumDeclaration(node) { + const id = this.parseIdentifier(); + node.id = id; + node.body = this.flowEnumBody(this.startNode(), id); + return this.finishNode(node, "EnumDeclaration"); + } + jsxParseOpeningElementAfterName(node) { + if (this.shouldParseTypes()) { + if (this.match(47) || this.match(51)) { + node.typeArguments = this.flowParseTypeParameterInstantiationInExpression(); + } + } + return super.jsxParseOpeningElementAfterName(node); + } + isLookaheadToken_lt() { + const next = this.nextTokenStart(); + if (this.input.charCodeAt(next) === 60) { + const afterNext = this.input.charCodeAt(next + 1); + return afterNext !== 60 && afterNext !== 61; + } + return false; + } + reScan_lt_gt() { + const { + type + } = this.state; + if (type === 47) { + this.state.pos -= 1; + this.readToken_lt(); + } else if (type === 48) { + this.state.pos -= 1; + this.readToken_gt(); + } + } + reScan_lt() { + const { + type + } = this.state; + if (type === 51) { + this.state.pos -= 2; + this.finishOp(47, 1); + return 47; + } + return type; + } + maybeUnwrapTypeCastExpression(node) { + return node.type === "TypeCastExpression" ? node.expression : node; + } +}; +const entities = { + __proto__: null, + quot: "\u0022", + amp: "&", + apos: "\u0027", + lt: "<", + gt: ">", + nbsp: "\u00A0", + iexcl: "\u00A1", + cent: "\u00A2", + pound: "\u00A3", + curren: "\u00A4", + yen: "\u00A5", + brvbar: "\u00A6", + sect: "\u00A7", + uml: "\u00A8", + copy: "\u00A9", + ordf: "\u00AA", + laquo: "\u00AB", + not: "\u00AC", + shy: "\u00AD", + reg: "\u00AE", + macr: "\u00AF", + deg: "\u00B0", + plusmn: "\u00B1", + sup2: "\u00B2", + sup3: "\u00B3", + acute: "\u00B4", + micro: "\u00B5", + para: "\u00B6", + middot: "\u00B7", + cedil: "\u00B8", + sup1: "\u00B9", + ordm: "\u00BA", + raquo: "\u00BB", + frac14: "\u00BC", + frac12: "\u00BD", + frac34: "\u00BE", + iquest: "\u00BF", + Agrave: "\u00C0", + Aacute: "\u00C1", + Acirc: "\u00C2", + Atilde: "\u00C3", + Auml: "\u00C4", + Aring: "\u00C5", + AElig: "\u00C6", + Ccedil: "\u00C7", + Egrave: "\u00C8", + Eacute: "\u00C9", + Ecirc: "\u00CA", + Euml: "\u00CB", + Igrave: "\u00CC", + Iacute: "\u00CD", + Icirc: "\u00CE", + Iuml: "\u00CF", + ETH: "\u00D0", + Ntilde: "\u00D1", + Ograve: "\u00D2", + Oacute: "\u00D3", + Ocirc: "\u00D4", + Otilde: "\u00D5", + Ouml: "\u00D6", + times: "\u00D7", + Oslash: "\u00D8", + Ugrave: "\u00D9", + Uacute: "\u00DA", + Ucirc: "\u00DB", + Uuml: "\u00DC", + Yacute: "\u00DD", + THORN: "\u00DE", + szlig: "\u00DF", + agrave: "\u00E0", + aacute: "\u00E1", + acirc: "\u00E2", + atilde: "\u00E3", + auml: "\u00E4", + aring: "\u00E5", + aelig: "\u00E6", + ccedil: "\u00E7", + egrave: "\u00E8", + eacute: "\u00E9", + ecirc: "\u00EA", + euml: "\u00EB", + igrave: "\u00EC", + iacute: "\u00ED", + icirc: "\u00EE", + iuml: "\u00EF", + eth: "\u00F0", + ntilde: "\u00F1", + ograve: "\u00F2", + oacute: "\u00F3", + ocirc: "\u00F4", + otilde: "\u00F5", + ouml: "\u00F6", + divide: "\u00F7", + oslash: "\u00F8", + ugrave: "\u00F9", + uacute: "\u00FA", + ucirc: "\u00FB", + uuml: "\u00FC", + yacute: "\u00FD", + thorn: "\u00FE", + yuml: "\u00FF", + OElig: "\u0152", + oelig: "\u0153", + Scaron: "\u0160", + scaron: "\u0161", + Yuml: "\u0178", + fnof: "\u0192", + circ: "\u02C6", + tilde: "\u02DC", + Alpha: "\u0391", + Beta: "\u0392", + Gamma: "\u0393", + Delta: "\u0394", + Epsilon: "\u0395", + Zeta: "\u0396", + Eta: "\u0397", + Theta: "\u0398", + Iota: "\u0399", + Kappa: "\u039A", + Lambda: "\u039B", + Mu: "\u039C", + Nu: "\u039D", + Xi: "\u039E", + Omicron: "\u039F", + Pi: "\u03A0", + Rho: "\u03A1", + Sigma: "\u03A3", + Tau: "\u03A4", + Upsilon: "\u03A5", + Phi: "\u03A6", + Chi: "\u03A7", + Psi: "\u03A8", + Omega: "\u03A9", + alpha: "\u03B1", + beta: "\u03B2", + gamma: "\u03B3", + delta: "\u03B4", + epsilon: "\u03B5", + zeta: "\u03B6", + eta: "\u03B7", + theta: "\u03B8", + iota: "\u03B9", + kappa: "\u03BA", + lambda: "\u03BB", + mu: "\u03BC", + nu: "\u03BD", + xi: "\u03BE", + omicron: "\u03BF", + pi: "\u03C0", + rho: "\u03C1", + sigmaf: "\u03C2", + sigma: "\u03C3", + tau: "\u03C4", + upsilon: "\u03C5", + phi: "\u03C6", + chi: "\u03C7", + psi: "\u03C8", + omega: "\u03C9", + thetasym: "\u03D1", + upsih: "\u03D2", + piv: "\u03D6", + ensp: "\u2002", + emsp: "\u2003", + thinsp: "\u2009", + zwnj: "\u200C", + zwj: "\u200D", + lrm: "\u200E", + rlm: "\u200F", + ndash: "\u2013", + mdash: "\u2014", + lsquo: "\u2018", + rsquo: "\u2019", + sbquo: "\u201A", + ldquo: "\u201C", + rdquo: "\u201D", + bdquo: "\u201E", + dagger: "\u2020", + Dagger: "\u2021", + bull: "\u2022", + hellip: "\u2026", + permil: "\u2030", + prime: "\u2032", + Prime: "\u2033", + lsaquo: "\u2039", + rsaquo: "\u203A", + oline: "\u203E", + frasl: "\u2044", + euro: "\u20AC", + image: "\u2111", + weierp: "\u2118", + real: "\u211C", + trade: "\u2122", + alefsym: "\u2135", + larr: "\u2190", + uarr: "\u2191", + rarr: "\u2192", + darr: "\u2193", + harr: "\u2194", + crarr: "\u21B5", + lArr: "\u21D0", + uArr: "\u21D1", + rArr: "\u21D2", + dArr: "\u21D3", + hArr: "\u21D4", + forall: "\u2200", + part: "\u2202", + exist: "\u2203", + empty: "\u2205", + nabla: "\u2207", + isin: "\u2208", + notin: "\u2209", + ni: "\u220B", + prod: "\u220F", + sum: "\u2211", + minus: "\u2212", + lowast: "\u2217", + radic: "\u221A", + prop: "\u221D", + infin: "\u221E", + ang: "\u2220", + and: "\u2227", + or: "\u2228", + cap: "\u2229", + cup: "\u222A", + int: "\u222B", + there4: "\u2234", + sim: "\u223C", + cong: "\u2245", + asymp: "\u2248", + ne: "\u2260", + equiv: "\u2261", + le: "\u2264", + ge: "\u2265", + sub: "\u2282", + sup: "\u2283", + nsub: "\u2284", + sube: "\u2286", + supe: "\u2287", + oplus: "\u2295", + otimes: "\u2297", + perp: "\u22A5", + sdot: "\u22C5", + lceil: "\u2308", + rceil: "\u2309", + lfloor: "\u230A", + rfloor: "\u230B", + lang: "\u2329", + rang: "\u232A", + loz: "\u25CA", + spades: "\u2660", + clubs: "\u2663", + hearts: "\u2665", + diams: "\u2666" +}; +const lineBreak = /\r\n|[\r\n\u2028\u2029]/; +const lineBreakG = new RegExp(lineBreak.source, "g"); +function isNewLine(code) { + switch (code) { + case 10: + case 13: + case 8232: + case 8233: + return true; + default: + return false; + } +} +function hasNewLine(input, start, end) { + for (let i = start; i < end; i++) { + if (isNewLine(input.charCodeAt(i))) { + return true; + } + } + return false; +} +const skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g; +const skipWhiteSpaceInLine = /(?:[^\S\n\r\u2028\u2029]|\/\/.*|\/\*.*?\*\/)*/g; +function isWhitespace(code) { + switch (code) { + case 0x0009: + case 0x000b: + case 0x000c: + case 32: + case 160: + case 5760: + case 0x2000: + case 0x2001: + case 0x2002: + case 0x2003: + case 0x2004: + case 0x2005: + case 0x2006: + case 0x2007: + case 0x2008: + case 0x2009: + case 0x200a: + case 0x202f: + case 0x205f: + case 0x3000: + case 0xfeff: + return true; + default: + return false; + } +} +const JsxErrors = ParseErrorEnum`jsx`({ + AttributeIsEmpty: "JSX attributes must only be assigned a non-empty expression.", + MissingClosingTagElement: ({ + openingTagName + }) => `Expected corresponding JSX closing tag for <${openingTagName}>.`, + MissingClosingTagFragment: "Expected corresponding JSX closing tag for <>.", + UnexpectedSequenceExpression: "Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?", + UnexpectedToken: ({ + unexpected, + HTMLEntity + }) => `Unexpected token \`${unexpected}\`. Did you mean \`${HTMLEntity}\` or \`{'${unexpected}'}\`?`, + UnsupportedJsxValue: "JSX value should be either an expression or a quoted JSX text.", + UnterminatedJsxContent: "Unterminated JSX contents.", + UnwrappedAdjacentJSXElements: "Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...?" +}); +function isFragment(object) { + return object ? object.type === "JSXOpeningFragment" || object.type === "JSXClosingFragment" : false; +} +function getQualifiedJSXName(object) { + if (object.type === "JSXIdentifier") { + return object.name; + } + if (object.type === "JSXNamespacedName") { + return object.namespace.name + ":" + object.name.name; + } + if (object.type === "JSXMemberExpression") { + return getQualifiedJSXName(object.object) + "." + getQualifiedJSXName(object.property); + } + throw new Error("Node had unexpected type: " + object.type); +} +var jsx = superClass => class JSXParserMixin extends superClass { + jsxReadToken() { + let out = ""; + let chunkStart = this.state.pos; + for (;;) { + if (this.state.pos >= this.length) { + throw this.raise(JsxErrors.UnterminatedJsxContent, this.state.startLoc); + } + const ch = this.input.charCodeAt(this.state.pos); + switch (ch) { + case 60: + case 123: + if (this.state.pos === this.state.start) { + if (ch === 60 && this.state.canStartJSXElement) { + ++this.state.pos; + this.finishToken(143); + } else { + super.getTokenFromCode(ch); + } + return; + } + out += this.input.slice(chunkStart, this.state.pos); + this.finishToken(142, out); + return; + case 38: + out += this.input.slice(chunkStart, this.state.pos); + out += this.jsxReadEntity(); + chunkStart = this.state.pos; + break; + case 62: + case 125: + default: + if (isNewLine(ch)) { + out += this.input.slice(chunkStart, this.state.pos); + out += this.jsxReadNewLine(true); + chunkStart = this.state.pos; + } else { + ++this.state.pos; + } + } + } + } + jsxReadNewLine(normalizeCRLF) { + const ch = this.input.charCodeAt(this.state.pos); + let out; + ++this.state.pos; + if (ch === 13 && this.input.charCodeAt(this.state.pos) === 10) { + ++this.state.pos; + out = normalizeCRLF ? "\n" : "\r\n"; + } else { + out = String.fromCharCode(ch); + } + ++this.state.curLine; + this.state.lineStart = this.state.pos; + return out; + } + jsxReadString(quote) { + let out = ""; + let chunkStart = ++this.state.pos; + for (;;) { + if (this.state.pos >= this.length) { + throw this.raise(Errors.UnterminatedString, this.state.startLoc); + } + const ch = this.input.charCodeAt(this.state.pos); + if (ch === quote) break; + if (ch === 38) { + out += this.input.slice(chunkStart, this.state.pos); + out += this.jsxReadEntity(); + chunkStart = this.state.pos; + } else if (isNewLine(ch)) { + out += this.input.slice(chunkStart, this.state.pos); + out += this.jsxReadNewLine(false); + chunkStart = this.state.pos; + } else { + ++this.state.pos; + } + } + out += this.input.slice(chunkStart, this.state.pos++); + this.finishToken(134, out); + } + jsxReadEntity() { + const startPos = ++this.state.pos; + if (this.codePointAtPos(this.state.pos) === 35) { + ++this.state.pos; + let radix = 10; + if (this.codePointAtPos(this.state.pos) === 120) { + radix = 16; + ++this.state.pos; + } + const codePoint = this.readInt(radix, undefined, false, "bail"); + if (codePoint !== null && this.codePointAtPos(this.state.pos) === 59) { + ++this.state.pos; + return String.fromCodePoint(codePoint); + } + } else { + let count = 0; + let semi = false; + while (count++ < 10 && this.state.pos < this.length && !(semi = this.codePointAtPos(this.state.pos) === 59)) { + ++this.state.pos; + } + if (semi) { + const desc = this.input.slice(startPos, this.state.pos); + const entity = entities[desc]; + ++this.state.pos; + if (entity) { + return entity; + } + } + } + this.state.pos = startPos; + return "&"; + } + jsxReadWord() { + let ch; + const start = this.state.pos; + do { + ch = this.input.charCodeAt(++this.state.pos); + } while (isIdentifierChar(ch) || ch === 45); + this.finishToken(141, this.input.slice(start, this.state.pos)); + } + jsxParseIdentifier() { + const node = this.startNode(); + if (this.match(141)) { + node.name = this.state.value; + } else if (tokenIsKeyword(this.state.type)) { + node.name = tokenLabelName(this.state.type); + } else { + this.unexpected(); + } + this.next(); + return this.finishNode(node, "JSXIdentifier"); + } + jsxParseNamespacedName() { + const startLoc = this.state.startLoc; + const name = this.jsxParseIdentifier(); + if (!this.eat(14)) return name; + const node = this.startNodeAt(startLoc); + node.namespace = name; + node.name = this.jsxParseIdentifier(); + return this.finishNode(node, "JSXNamespacedName"); + } + jsxParseElementName() { + const startLoc = this.state.startLoc; + let node = this.jsxParseNamespacedName(); + if (node.type === "JSXNamespacedName") { + return node; + } + while (this.eat(16)) { + const newNode = this.startNodeAt(startLoc); + newNode.object = node; + newNode.property = this.jsxParseIdentifier(); + node = this.finishNode(newNode, "JSXMemberExpression"); + } + return node; + } + jsxParseAttributeValue() { + let node; + switch (this.state.type) { + case 5: + node = this.startNode(); + this.setContext(types.brace); + this.next(); + node = this.jsxParseExpressionContainer(node, types.j_oTag); + if (node.expression.type === "JSXEmptyExpression") { + this.raise(JsxErrors.AttributeIsEmpty, node); + } + return node; + case 143: + case 134: + return this.parseExprAtom(); + default: + throw this.raise(JsxErrors.UnsupportedJsxValue, this.state.startLoc); + } + } + jsxParseEmptyExpression() { + const node = this.startNodeAt(this.state.lastTokEndLoc); + return this.finishNodeAt(node, "JSXEmptyExpression", this.state.startLoc); + } + jsxParseSpreadChild(node) { + this.next(); + node.expression = this.parseExpression(); + this.setContext(types.j_expr); + this.state.canStartJSXElement = true; + this.expect(8); + return this.finishNode(node, "JSXSpreadChild"); + } + jsxParseExpressionContainer(node, previousContext) { + if (this.match(8)) { + node.expression = this.jsxParseEmptyExpression(); + } else { + const expression = this.parseExpression(); + node.expression = expression; + } + this.setContext(previousContext); + this.state.canStartJSXElement = true; + this.expect(8); + return this.finishNode(node, "JSXExpressionContainer"); + } + jsxParseAttribute() { + const node = this.startNode(); + if (this.match(5)) { + this.setContext(types.brace); + this.next(); + this.expect(21); + node.argument = this.parseMaybeAssignAllowIn(); + this.setContext(types.j_oTag); + this.state.canStartJSXElement = true; + this.expect(8); + return this.finishNode(node, "JSXSpreadAttribute"); + } + node.name = this.jsxParseNamespacedName(); + node.value = this.eat(29) ? this.jsxParseAttributeValue() : null; + return this.finishNode(node, "JSXAttribute"); + } + jsxParseOpeningElementAt(startLoc) { + const node = this.startNodeAt(startLoc); + if (this.eat(144)) { + return this.finishNode(node, "JSXOpeningFragment"); + } + node.name = this.jsxParseElementName(); + return this.jsxParseOpeningElementAfterName(node); + } + jsxParseOpeningElementAfterName(node) { + const attributes = []; + while (!this.match(56) && !this.match(144)) { + attributes.push(this.jsxParseAttribute()); + } + node.attributes = attributes; + node.selfClosing = this.eat(56); + this.expect(144); + return this.finishNode(node, "JSXOpeningElement"); + } + jsxParseClosingElementAt(startLoc) { + const node = this.startNodeAt(startLoc); + if (this.eat(144)) { + return this.finishNode(node, "JSXClosingFragment"); + } + node.name = this.jsxParseElementName(); + this.expect(144); + return this.finishNode(node, "JSXClosingElement"); + } + jsxParseElementAt(startLoc) { + const node = this.startNodeAt(startLoc); + const children = []; + const openingElement = this.jsxParseOpeningElementAt(startLoc); + let closingElement = null; + if (!openingElement.selfClosing) { + contents: for (;;) { + switch (this.state.type) { + case 143: + startLoc = this.state.startLoc; + this.next(); + if (this.eat(56)) { + closingElement = this.jsxParseClosingElementAt(startLoc); + break contents; + } + children.push(this.jsxParseElementAt(startLoc)); + break; + case 142: + children.push(this.parseLiteral(this.state.value, "JSXText")); + break; + case 5: + { + const node = this.startNode(); + this.setContext(types.brace); + this.next(); + if (this.match(21)) { + children.push(this.jsxParseSpreadChild(node)); + } else { + children.push(this.jsxParseExpressionContainer(node, types.j_expr)); + } + break; + } + default: + this.unexpected(); + } + } + if (isFragment(openingElement) && !isFragment(closingElement) && closingElement !== null) { + this.raise(JsxErrors.MissingClosingTagFragment, closingElement); + } else if (!isFragment(openingElement) && isFragment(closingElement)) { + this.raise(JsxErrors.MissingClosingTagElement, closingElement, { + openingTagName: getQualifiedJSXName(openingElement.name) + }); + } else if (!isFragment(openingElement) && !isFragment(closingElement)) { + if (getQualifiedJSXName(closingElement.name) !== getQualifiedJSXName(openingElement.name)) { + this.raise(JsxErrors.MissingClosingTagElement, closingElement, { + openingTagName: getQualifiedJSXName(openingElement.name) + }); + } + } + } + if (isFragment(openingElement)) { + node.openingFragment = openingElement; + node.closingFragment = closingElement; + } else { + node.openingElement = openingElement; + node.closingElement = closingElement; + } + node.children = children; + if (this.match(47)) { + throw this.raise(JsxErrors.UnwrappedAdjacentJSXElements, this.state.startLoc); + } + return isFragment(openingElement) ? this.finishNode(node, "JSXFragment") : this.finishNode(node, "JSXElement"); + } + jsxParseElement() { + const startLoc = this.state.startLoc; + this.next(); + return this.jsxParseElementAt(startLoc); + } + setContext(newContext) { + const { + context + } = this.state; + context[context.length - 1] = newContext; + } + parseExprAtom(refExpressionErrors) { + if (this.match(143)) { + return this.jsxParseElement(); + } else if (this.match(47) && this.input.charCodeAt(this.state.pos) !== 33) { + this.replaceToken(143); + return this.jsxParseElement(); + } else { + return super.parseExprAtom(refExpressionErrors); + } + } + skipSpace() { + const curContext = this.curContext(); + if (!curContext.preserveSpace) super.skipSpace(); + } + getTokenFromCode(code) { + const context = this.curContext(); + if (context === types.j_expr) { + this.jsxReadToken(); + return; + } + if (context === types.j_oTag || context === types.j_cTag) { + if (isIdentifierStart(code)) { + this.jsxReadWord(); + return; + } + if (code === 62) { + ++this.state.pos; + this.finishToken(144); + return; + } + if ((code === 34 || code === 39) && context === types.j_oTag) { + this.jsxReadString(code); + return; + } + } + if (code === 60 && this.state.canStartJSXElement && this.input.charCodeAt(this.state.pos + 1) !== 33) { + ++this.state.pos; + this.finishToken(143); + return; + } + super.getTokenFromCode(code); + } + updateContext(prevType) { + const { + context, + type + } = this.state; + if (type === 56 && prevType === 143) { + context.splice(-2, 2, types.j_cTag); + this.state.canStartJSXElement = false; + } else if (type === 143) { + context.push(types.j_oTag); + } else if (type === 144) { + const out = context[context.length - 1]; + if (out === types.j_oTag && prevType === 56 || out === types.j_cTag) { + context.pop(); + this.state.canStartJSXElement = context[context.length - 1] === types.j_expr; + } else { + this.setContext(types.j_expr); + this.state.canStartJSXElement = true; + } + } else { + this.state.canStartJSXElement = tokenComesBeforeExpression(type); + } + } +}; +class TypeScriptScope extends Scope { + constructor(...args) { + super(...args); + this.tsNames = new Map(); + } +} +class TypeScriptScopeHandler extends ScopeHandler { + constructor(...args) { + super(...args); + this.importsStack = []; + } + createScope(flags) { + this.importsStack.push(new Set()); + return new TypeScriptScope(flags); + } + enter(flags) { + if (flags === 1024) { + this.importsStack.push(new Set()); + } + super.enter(flags); + } + exit() { + const flags = super.exit(); + if (flags === 1024) { + this.importsStack.pop(); + } + return flags; + } + hasImport(name, allowShadow) { + const len = this.importsStack.length; + if (this.importsStack[len - 1].has(name)) { + return true; + } + if (!allowShadow && len > 1) { + for (let i = 0; i < len - 1; i++) { + if (this.importsStack[i].has(name)) return true; + } + } + return false; + } + declareName(name, bindingType, loc) { + if (bindingType & 4096) { + if (this.hasImport(name, true)) { + this.parser.raise(Errors.VarRedeclaration, loc, { + identifierName: name + }); + } + this.importsStack[this.importsStack.length - 1].add(name); + return; + } + const scope = this.currentScope(); + let type = scope.tsNames.get(name) || 0; + if (bindingType & 1024) { + this.maybeExportDefined(scope, name); + scope.tsNames.set(name, type | 16); + return; + } + super.declareName(name, bindingType, loc); + if (bindingType & 2) { + if (!(bindingType & 1)) { + this.checkRedeclarationInScope(scope, name, bindingType, loc); + this.maybeExportDefined(scope, name); + } + type = type | 1; + } + if (bindingType & 256) { + type = type | 2; + } + if (bindingType & 512) { + type = type | 4; + } + if (bindingType & 128) { + type = type | 8; + } + if (type) scope.tsNames.set(name, type); + } + isRedeclaredInScope(scope, name, bindingType) { + const type = scope.tsNames.get(name); + if ((type & 2) > 0) { + if (bindingType & 256) { + const isConst = !!(bindingType & 512); + const wasConst = (type & 4) > 0; + return isConst !== wasConst; + } + return true; + } + if (bindingType & 128 && (type & 8) > 0) { + if (scope.names.get(name) & 2) { + return !!(bindingType & 1); + } else { + return false; + } + } + if (bindingType & 2 && (type & 1) > 0) { + return true; + } + return super.isRedeclaredInScope(scope, name, bindingType); + } + checkLocalExport(id) { + const { + name + } = id; + if (this.hasImport(name)) return; + const len = this.scopeStack.length; + for (let i = len - 1; i >= 0; i--) { + const scope = this.scopeStack[i]; + const type = scope.tsNames.get(name); + if ((type & 1) > 0 || (type & 16) > 0) { + return; + } + } + super.checkLocalExport(id); + } +} +class ProductionParameterHandler { + constructor() { + this.stacks = []; + } + enter(flags) { + this.stacks.push(flags); + } + exit() { + this.stacks.pop(); + } + currentFlags() { + return this.stacks[this.stacks.length - 1]; + } + get hasAwait() { + return (this.currentFlags() & 2) > 0; + } + get hasYield() { + return (this.currentFlags() & 1) > 0; + } + get hasReturn() { + return (this.currentFlags() & 4) > 0; + } + get hasIn() { + return (this.currentFlags() & 8) > 0; + } +} +function functionFlags(isAsync, isGenerator) { + return (isAsync ? 2 : 0) | (isGenerator ? 1 : 0); +} +class BaseParser { + constructor() { + this.sawUnambiguousESM = false; + this.ambiguousScriptDifferentAst = false; + } + sourceToOffsetPos(sourcePos) { + return sourcePos + this.startIndex; + } + offsetToSourcePos(offsetPos) { + return offsetPos - this.startIndex; + } + hasPlugin(pluginConfig) { + if (typeof pluginConfig === "string") { + return this.plugins.has(pluginConfig); + } else { + const [pluginName, pluginOptions] = pluginConfig; + if (!this.hasPlugin(pluginName)) { + return false; + } + const actualOptions = this.plugins.get(pluginName); + for (const key of Object.keys(pluginOptions)) { + if ((actualOptions == null ? void 0 : actualOptions[key]) !== pluginOptions[key]) { + return false; + } + } + return true; + } + } + getPluginOption(plugin, name) { + var _this$plugins$get; + return (_this$plugins$get = this.plugins.get(plugin)) == null ? void 0 : _this$plugins$get[name]; + } +} +function setTrailingComments(node, comments) { + if (node.trailingComments === undefined) { + node.trailingComments = comments; + } else { + node.trailingComments.unshift(...comments); + } +} +function setLeadingComments(node, comments) { + if (node.leadingComments === undefined) { + node.leadingComments = comments; + } else { + node.leadingComments.unshift(...comments); + } +} +function setInnerComments(node, comments) { + if (node.innerComments === undefined) { + node.innerComments = comments; + } else { + node.innerComments.unshift(...comments); + } +} +function adjustInnerComments(node, elements, commentWS) { + let lastElement = null; + let i = elements.length; + while (lastElement === null && i > 0) { + lastElement = elements[--i]; + } + if (lastElement === null || lastElement.start > commentWS.start) { + setInnerComments(node, commentWS.comments); + } else { + setTrailingComments(lastElement, commentWS.comments); + } +} +class CommentsParser extends BaseParser { + addComment(comment) { + if (this.filename) comment.loc.filename = this.filename; + const { + commentsLen + } = this.state; + if (this.comments.length !== commentsLen) { + this.comments.length = commentsLen; + } + this.comments.push(comment); + this.state.commentsLen++; + } + processComment(node) { + const { + commentStack + } = this.state; + const commentStackLength = commentStack.length; + if (commentStackLength === 0) return; + let i = commentStackLength - 1; + const lastCommentWS = commentStack[i]; + if (lastCommentWS.start === node.end) { + lastCommentWS.leadingNode = node; + i--; + } + const { + start: nodeStart + } = node; + for (; i >= 0; i--) { + const commentWS = commentStack[i]; + const commentEnd = commentWS.end; + if (commentEnd > nodeStart) { + commentWS.containingNode = node; + this.finalizeComment(commentWS); + commentStack.splice(i, 1); + } else { + if (commentEnd === nodeStart) { + commentWS.trailingNode = node; + } + break; + } + } + } + finalizeComment(commentWS) { + var _node$options; + const { + comments + } = commentWS; + if (commentWS.leadingNode !== null || commentWS.trailingNode !== null) { + if (commentWS.leadingNode !== null) { + setTrailingComments(commentWS.leadingNode, comments); + } + if (commentWS.trailingNode !== null) { + setLeadingComments(commentWS.trailingNode, comments); + } + } else { + const node = commentWS.containingNode; + const commentStart = commentWS.start; + if (this.input.charCodeAt(this.offsetToSourcePos(commentStart) - 1) === 44) { + switch (node.type) { + case "ObjectExpression": + case "ObjectPattern": + adjustInnerComments(node, node.properties, commentWS); + break; + case "CallExpression": + case "NewExpression": + case "OptionalCallExpression": + adjustInnerComments(node, node.arguments, commentWS); + break; + case "ImportExpression": + adjustInnerComments(node, [node.source, (_node$options = node.options) != null ? _node$options : null], commentWS); + break; + case "FunctionDeclaration": + case "FunctionExpression": + case "ArrowFunctionExpression": + case "ObjectMethod": + case "ClassMethod": + case "ClassPrivateMethod": + case "TSTypeParameterDeclaration": + adjustInnerComments(node, node.params, commentWS); + break; + case "ArrayExpression": + case "ArrayPattern": + adjustInnerComments(node, node.elements, commentWS); + break; + case "ExportNamedDeclaration": + case "ImportDeclaration": + adjustInnerComments(node, node.specifiers, commentWS); + break; + case "TSEnumDeclaration": + adjustInnerComments(node, node.members, commentWS); + break; + case "TSEnumBody": + adjustInnerComments(node, node.members, commentWS); + break; + case "TSInterfaceBody": + adjustInnerComments(node, node.body, commentWS); + break; + default: + { + if (node.type === "RecordExpression") { + adjustInnerComments(node, node.properties, commentWS); + break; + } + if (node.type === "TupleExpression") { + adjustInnerComments(node, node.elements, commentWS); + break; + } + setInnerComments(node, comments); + } + } + } else { + setInnerComments(node, comments); + } + } + } + finalizeRemainingComments() { + const { + commentStack + } = this.state; + for (let i = commentStack.length - 1; i >= 0; i--) { + this.finalizeComment(commentStack[i]); + } + this.state.commentStack = []; + } + resetPreviousNodeTrailingComments(node) { + const { + commentStack + } = this.state; + const { + length + } = commentStack; + if (length === 0) return; + const commentWS = commentStack[length - 1]; + if (commentWS.leadingNode === node) { + commentWS.leadingNode = null; + } + } + takeSurroundingComments(node, start, end) { + const { + commentStack + } = this.state; + const commentStackLength = commentStack.length; + if (commentStackLength === 0) return; + let i = commentStackLength - 1; + for (; i >= 0; i--) { + const commentWS = commentStack[i]; + const commentEnd = commentWS.end; + const commentStart = commentWS.start; + if (commentStart === end) { + commentWS.leadingNode = node; + } else if (commentEnd === start) { + commentWS.trailingNode = node; + } else if (commentEnd < start) { + break; + } + } + } +} +class State { + constructor() { + this.flags = 1024; + this.startIndex = void 0; + this.curLine = void 0; + this.lineStart = void 0; + this.startLoc = void 0; + this.endLoc = void 0; + this.errors = []; + this.potentialArrowAt = -1; + this.noArrowAt = []; + this.noArrowParamsConversionAt = []; + this.topicContext = { + maxNumOfResolvableTopics: 0, + maxTopicIndex: null + }; + this.labels = []; + this.commentsLen = 0; + this.commentStack = []; + this.pos = 0; + this.type = 140; + this.value = null; + this.start = 0; + this.end = 0; + this.lastTokEndLoc = null; + this.lastTokStartLoc = null; + this.context = [types.brace]; + this.firstInvalidTemplateEscapePos = null; + this.strictErrors = new Map(); + this.tokensLength = 0; + } + get strict() { + return (this.flags & 1) > 0; + } + set strict(v) { + if (v) this.flags |= 1;else this.flags &= -2; + } + init({ + strictMode, + sourceType, + startIndex, + startLine, + startColumn + }) { + this.strict = strictMode === false ? false : strictMode === true ? true : sourceType === "module"; + this.startIndex = startIndex; + this.curLine = startLine; + this.lineStart = -startColumn; + this.startLoc = this.endLoc = new Position(startLine, startColumn, startIndex); + } + get maybeInArrowParameters() { + return (this.flags & 2) > 0; + } + set maybeInArrowParameters(v) { + if (v) this.flags |= 2;else this.flags &= -3; + } + get inType() { + return (this.flags & 4) > 0; + } + set inType(v) { + if (v) this.flags |= 4;else this.flags &= -5; + } + get noAnonFunctionType() { + return (this.flags & 8) > 0; + } + set noAnonFunctionType(v) { + if (v) this.flags |= 8;else this.flags &= -9; + } + get hasFlowComment() { + return (this.flags & 16) > 0; + } + set hasFlowComment(v) { + if (v) this.flags |= 16;else this.flags &= -17; + } + get isAmbientContext() { + return (this.flags & 32) > 0; + } + set isAmbientContext(v) { + if (v) this.flags |= 32;else this.flags &= -33; + } + get inAbstractClass() { + return (this.flags & 64) > 0; + } + set inAbstractClass(v) { + if (v) this.flags |= 64;else this.flags &= -65; + } + get inDisallowConditionalTypesContext() { + return (this.flags & 128) > 0; + } + set inDisallowConditionalTypesContext(v) { + if (v) this.flags |= 128;else this.flags &= -129; + } + get soloAwait() { + return (this.flags & 256) > 0; + } + set soloAwait(v) { + if (v) this.flags |= 256;else this.flags &= -257; + } + get inFSharpPipelineDirectBody() { + return (this.flags & 512) > 0; + } + set inFSharpPipelineDirectBody(v) { + if (v) this.flags |= 512;else this.flags &= -513; + } + get canStartJSXElement() { + return (this.flags & 1024) > 0; + } + set canStartJSXElement(v) { + if (v) this.flags |= 1024;else this.flags &= -1025; + } + get containsEsc() { + return (this.flags & 2048) > 0; + } + set containsEsc(v) { + if (v) this.flags |= 2048;else this.flags &= -2049; + } + get hasTopLevelAwait() { + return (this.flags & 4096) > 0; + } + set hasTopLevelAwait(v) { + if (v) this.flags |= 4096;else this.flags &= -4097; + } + curPosition() { + return new Position(this.curLine, this.pos - this.lineStart, this.pos + this.startIndex); + } + clone() { + const state = new State(); + state.flags = this.flags; + state.startIndex = this.startIndex; + state.curLine = this.curLine; + state.lineStart = this.lineStart; + state.startLoc = this.startLoc; + state.endLoc = this.endLoc; + state.errors = this.errors.slice(); + state.potentialArrowAt = this.potentialArrowAt; + state.noArrowAt = this.noArrowAt.slice(); + state.noArrowParamsConversionAt = this.noArrowParamsConversionAt.slice(); + state.topicContext = this.topicContext; + state.labels = this.labels.slice(); + state.commentsLen = this.commentsLen; + state.commentStack = this.commentStack.slice(); + state.pos = this.pos; + state.type = this.type; + state.value = this.value; + state.start = this.start; + state.end = this.end; + state.lastTokEndLoc = this.lastTokEndLoc; + state.lastTokStartLoc = this.lastTokStartLoc; + state.context = this.context.slice(); + state.firstInvalidTemplateEscapePos = this.firstInvalidTemplateEscapePos; + state.strictErrors = this.strictErrors; + state.tokensLength = this.tokensLength; + return state; + } +} +var _isDigit = function isDigit(code) { + return code >= 48 && code <= 57; +}; +const forbiddenNumericSeparatorSiblings = { + decBinOct: new Set([46, 66, 69, 79, 95, 98, 101, 111]), + hex: new Set([46, 88, 95, 120]) +}; +const isAllowedNumericSeparatorSibling = { + bin: ch => ch === 48 || ch === 49, + oct: ch => ch >= 48 && ch <= 55, + dec: ch => ch >= 48 && ch <= 57, + hex: ch => ch >= 48 && ch <= 57 || ch >= 65 && ch <= 70 || ch >= 97 && ch <= 102 +}; +function readStringContents(type, input, pos, lineStart, curLine, errors) { + const initialPos = pos; + const initialLineStart = lineStart; + const initialCurLine = curLine; + let out = ""; + let firstInvalidLoc = null; + let chunkStart = pos; + const { + length + } = input; + for (;;) { + if (pos >= length) { + errors.unterminated(initialPos, initialLineStart, initialCurLine); + out += input.slice(chunkStart, pos); + break; + } + const ch = input.charCodeAt(pos); + if (isStringEnd(type, ch, input, pos)) { + out += input.slice(chunkStart, pos); + break; + } + if (ch === 92) { + out += input.slice(chunkStart, pos); + const res = readEscapedChar(input, pos, lineStart, curLine, type === "template", errors); + if (res.ch === null && !firstInvalidLoc) { + firstInvalidLoc = { + pos, + lineStart, + curLine + }; + } else { + out += res.ch; + } + ({ + pos, + lineStart, + curLine + } = res); + chunkStart = pos; + } else if (ch === 8232 || ch === 8233) { + ++pos; + ++curLine; + lineStart = pos; + } else if (ch === 10 || ch === 13) { + if (type === "template") { + out += input.slice(chunkStart, pos) + "\n"; + ++pos; + if (ch === 13 && input.charCodeAt(pos) === 10) { + ++pos; + } + ++curLine; + chunkStart = lineStart = pos; + } else { + errors.unterminated(initialPos, initialLineStart, initialCurLine); + } + } else { + ++pos; + } + } + return { + pos, + str: out, + firstInvalidLoc, + lineStart, + curLine, + containsInvalid: !!firstInvalidLoc + }; +} +function isStringEnd(type, ch, input, pos) { + if (type === "template") { + return ch === 96 || ch === 36 && input.charCodeAt(pos + 1) === 123; + } + return ch === (type === "double" ? 34 : 39); +} +function readEscapedChar(input, pos, lineStart, curLine, inTemplate, errors) { + const throwOnInvalid = !inTemplate; + pos++; + const res = ch => ({ + pos, + ch, + lineStart, + curLine + }); + const ch = input.charCodeAt(pos++); + switch (ch) { + case 110: + return res("\n"); + case 114: + return res("\r"); + case 120: + { + let code; + ({ + code, + pos + } = readHexChar(input, pos, lineStart, curLine, 2, false, throwOnInvalid, errors)); + return res(code === null ? null : String.fromCharCode(code)); + } + case 117: + { + let code; + ({ + code, + pos + } = readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors)); + return res(code === null ? null : String.fromCodePoint(code)); + } + case 116: + return res("\t"); + case 98: + return res("\b"); + case 118: + return res("\u000b"); + case 102: + return res("\f"); + case 13: + if (input.charCodeAt(pos) === 10) { + ++pos; + } + case 10: + lineStart = pos; + ++curLine; + case 8232: + case 8233: + return res(""); + case 56: + case 57: + if (inTemplate) { + return res(null); + } else { + errors.strictNumericEscape(pos - 1, lineStart, curLine); + } + default: + if (ch >= 48 && ch <= 55) { + const startPos = pos - 1; + const match = /^[0-7]+/.exec(input.slice(startPos, pos + 2)); + let octalStr = match[0]; + let octal = parseInt(octalStr, 8); + if (octal > 255) { + octalStr = octalStr.slice(0, -1); + octal = parseInt(octalStr, 8); + } + pos += octalStr.length - 1; + const next = input.charCodeAt(pos); + if (octalStr !== "0" || next === 56 || next === 57) { + if (inTemplate) { + return res(null); + } else { + errors.strictNumericEscape(startPos, lineStart, curLine); + } + } + return res(String.fromCharCode(octal)); + } + return res(String.fromCharCode(ch)); + } +} +function readHexChar(input, pos, lineStart, curLine, len, forceLen, throwOnInvalid, errors) { + const initialPos = pos; + let n; + ({ + n, + pos + } = readInt(input, pos, lineStart, curLine, 16, len, forceLen, false, errors, !throwOnInvalid)); + if (n === null) { + if (throwOnInvalid) { + errors.invalidEscapeSequence(initialPos, lineStart, curLine); + } else { + pos = initialPos - 1; + } + } + return { + code: n, + pos + }; +} +function readInt(input, pos, lineStart, curLine, radix, len, forceLen, allowNumSeparator, errors, bailOnError) { + const start = pos; + const forbiddenSiblings = radix === 16 ? forbiddenNumericSeparatorSiblings.hex : forbiddenNumericSeparatorSiblings.decBinOct; + const isAllowedSibling = radix === 16 ? isAllowedNumericSeparatorSibling.hex : radix === 10 ? isAllowedNumericSeparatorSibling.dec : radix === 8 ? isAllowedNumericSeparatorSibling.oct : isAllowedNumericSeparatorSibling.bin; + let invalid = false; + let total = 0; + for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) { + const code = input.charCodeAt(pos); + let val; + if (code === 95 && allowNumSeparator !== "bail") { + const prev = input.charCodeAt(pos - 1); + const next = input.charCodeAt(pos + 1); + if (!allowNumSeparator) { + if (bailOnError) return { + n: null, + pos + }; + errors.numericSeparatorInEscapeSequence(pos, lineStart, curLine); + } else if (Number.isNaN(next) || !isAllowedSibling(next) || forbiddenSiblings.has(prev) || forbiddenSiblings.has(next)) { + if (bailOnError) return { + n: null, + pos + }; + errors.unexpectedNumericSeparator(pos, lineStart, curLine); + } + ++pos; + continue; + } + if (code >= 97) { + val = code - 97 + 10; + } else if (code >= 65) { + val = code - 65 + 10; + } else if (_isDigit(code)) { + val = code - 48; + } else { + val = Infinity; + } + if (val >= radix) { + if (val <= 9 && bailOnError) { + return { + n: null, + pos + }; + } else if (val <= 9 && errors.invalidDigit(pos, lineStart, curLine, radix)) { + val = 0; + } else if (forceLen) { + val = 0; + invalid = true; + } else { + break; + } + } + ++pos; + total = total * radix + val; + } + if (pos === start || len != null && pos - start !== len || invalid) { + return { + n: null, + pos + }; + } + return { + n: total, + pos + }; +} +function readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors) { + const ch = input.charCodeAt(pos); + let code; + if (ch === 123) { + ++pos; + ({ + code, + pos + } = readHexChar(input, pos, lineStart, curLine, input.indexOf("}", pos) - pos, true, throwOnInvalid, errors)); + ++pos; + if (code !== null && code > 0x10ffff) { + if (throwOnInvalid) { + errors.invalidCodePoint(pos, lineStart, curLine); + } else { + return { + code: null, + pos + }; + } + } + } else { + ({ + code, + pos + } = readHexChar(input, pos, lineStart, curLine, 4, false, throwOnInvalid, errors)); + } + return { + code, + pos + }; +} +function buildPosition(pos, lineStart, curLine) { + return new Position(curLine, pos - lineStart, pos); +} +const VALID_REGEX_FLAGS = new Set([103, 109, 115, 105, 121, 117, 100, 118]); +class Token { + constructor(state) { + const startIndex = state.startIndex || 0; + this.type = state.type; + this.value = state.value; + this.start = startIndex + state.start; + this.end = startIndex + state.end; + this.loc = new SourceLocation(state.startLoc, state.endLoc); + } +} +class Tokenizer extends CommentsParser { + constructor(options, input) { + super(); + this.isLookahead = void 0; + this.tokens = []; + this.errorHandlers_readInt = { + invalidDigit: (pos, lineStart, curLine, radix) => { + if (!(this.optionFlags & 2048)) return false; + this.raise(Errors.InvalidDigit, buildPosition(pos, lineStart, curLine), { + radix + }); + return true; + }, + numericSeparatorInEscapeSequence: this.errorBuilder(Errors.NumericSeparatorInEscapeSequence), + unexpectedNumericSeparator: this.errorBuilder(Errors.UnexpectedNumericSeparator) + }; + this.errorHandlers_readCodePoint = Object.assign({}, this.errorHandlers_readInt, { + invalidEscapeSequence: this.errorBuilder(Errors.InvalidEscapeSequence), + invalidCodePoint: this.errorBuilder(Errors.InvalidCodePoint) + }); + this.errorHandlers_readStringContents_string = Object.assign({}, this.errorHandlers_readCodePoint, { + strictNumericEscape: (pos, lineStart, curLine) => { + this.recordStrictModeErrors(Errors.StrictNumericEscape, buildPosition(pos, lineStart, curLine)); + }, + unterminated: (pos, lineStart, curLine) => { + throw this.raise(Errors.UnterminatedString, buildPosition(pos - 1, lineStart, curLine)); + } + }); + this.errorHandlers_readStringContents_template = Object.assign({}, this.errorHandlers_readCodePoint, { + strictNumericEscape: this.errorBuilder(Errors.StrictNumericEscape), + unterminated: (pos, lineStart, curLine) => { + throw this.raise(Errors.UnterminatedTemplate, buildPosition(pos, lineStart, curLine)); + } + }); + this.state = new State(); + this.state.init(options); + this.input = input; + this.length = input.length; + this.comments = []; + this.isLookahead = false; + } + pushToken(token) { + this.tokens.length = this.state.tokensLength; + this.tokens.push(token); + ++this.state.tokensLength; + } + next() { + this.checkKeywordEscapes(); + if (this.optionFlags & 256) { + this.pushToken(new Token(this.state)); + } + this.state.lastTokEndLoc = this.state.endLoc; + this.state.lastTokStartLoc = this.state.startLoc; + this.nextToken(); + } + eat(type) { + if (this.match(type)) { + this.next(); + return true; + } else { + return false; + } + } + match(type) { + return this.state.type === type; + } + createLookaheadState(state) { + return { + pos: state.pos, + value: null, + type: state.type, + start: state.start, + end: state.end, + context: [this.curContext()], + inType: state.inType, + startLoc: state.startLoc, + lastTokEndLoc: state.lastTokEndLoc, + curLine: state.curLine, + lineStart: state.lineStart, + curPosition: state.curPosition + }; + } + lookahead() { + const old = this.state; + this.state = this.createLookaheadState(old); + this.isLookahead = true; + this.nextToken(); + this.isLookahead = false; + const curr = this.state; + this.state = old; + return curr; + } + nextTokenStart() { + return this.nextTokenStartSince(this.state.pos); + } + nextTokenStartSince(pos) { + skipWhiteSpace.lastIndex = pos; + return skipWhiteSpace.test(this.input) ? skipWhiteSpace.lastIndex : pos; + } + lookaheadCharCode() { + return this.lookaheadCharCodeSince(this.state.pos); + } + lookaheadCharCodeSince(pos) { + return this.input.charCodeAt(this.nextTokenStartSince(pos)); + } + nextTokenInLineStart() { + return this.nextTokenInLineStartSince(this.state.pos); + } + nextTokenInLineStartSince(pos) { + skipWhiteSpaceInLine.lastIndex = pos; + return skipWhiteSpaceInLine.test(this.input) ? skipWhiteSpaceInLine.lastIndex : pos; + } + lookaheadInLineCharCode() { + return this.input.charCodeAt(this.nextTokenInLineStart()); + } + codePointAtPos(pos) { + let cp = this.input.charCodeAt(pos); + if ((cp & 0xfc00) === 0xd800 && ++pos < this.input.length) { + const trail = this.input.charCodeAt(pos); + if ((trail & 0xfc00) === 0xdc00) { + cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff); + } + } + return cp; + } + setStrict(strict) { + this.state.strict = strict; + if (strict) { + this.state.strictErrors.forEach(([toParseError, at]) => this.raise(toParseError, at)); + this.state.strictErrors.clear(); + } + } + curContext() { + return this.state.context[this.state.context.length - 1]; + } + nextToken() { + this.skipSpace(); + this.state.start = this.state.pos; + if (!this.isLookahead) this.state.startLoc = this.state.curPosition(); + if (this.state.pos >= this.length) { + this.finishToken(140); + return; + } + this.getTokenFromCode(this.codePointAtPos(this.state.pos)); + } + skipBlockComment(commentEnd) { + let startLoc; + if (!this.isLookahead) startLoc = this.state.curPosition(); + const start = this.state.pos; + const end = this.input.indexOf(commentEnd, start + 2); + if (end === -1) { + throw this.raise(Errors.UnterminatedComment, this.state.curPosition()); + } + this.state.pos = end + commentEnd.length; + lineBreakG.lastIndex = start + 2; + while (lineBreakG.test(this.input) && lineBreakG.lastIndex <= end) { + ++this.state.curLine; + this.state.lineStart = lineBreakG.lastIndex; + } + if (this.isLookahead) return; + const comment = { + type: "CommentBlock", + value: this.input.slice(start + 2, end), + start: this.sourceToOffsetPos(start), + end: this.sourceToOffsetPos(end + commentEnd.length), + loc: new SourceLocation(startLoc, this.state.curPosition()) + }; + if (this.optionFlags & 256) this.pushToken(comment); + return comment; + } + skipLineComment(startSkip) { + const start = this.state.pos; + let startLoc; + if (!this.isLookahead) startLoc = this.state.curPosition(); + let ch = this.input.charCodeAt(this.state.pos += startSkip); + if (this.state.pos < this.length) { + while (!isNewLine(ch) && ++this.state.pos < this.length) { + ch = this.input.charCodeAt(this.state.pos); + } + } + if (this.isLookahead) return; + const end = this.state.pos; + const value = this.input.slice(start + startSkip, end); + const comment = { + type: "CommentLine", + value, + start: this.sourceToOffsetPos(start), + end: this.sourceToOffsetPos(end), + loc: new SourceLocation(startLoc, this.state.curPosition()) + }; + if (this.optionFlags & 256) this.pushToken(comment); + return comment; + } + skipSpace() { + const spaceStart = this.state.pos; + const comments = this.optionFlags & 4096 ? [] : null; + loop: while (this.state.pos < this.length) { + const ch = this.input.charCodeAt(this.state.pos); + switch (ch) { + case 32: + case 160: + case 9: + ++this.state.pos; + break; + case 13: + if (this.input.charCodeAt(this.state.pos + 1) === 10) { + ++this.state.pos; + } + case 10: + case 8232: + case 8233: + ++this.state.pos; + ++this.state.curLine; + this.state.lineStart = this.state.pos; + break; + case 47: + switch (this.input.charCodeAt(this.state.pos + 1)) { + case 42: + { + const comment = this.skipBlockComment("*/"); + if (comment !== undefined) { + this.addComment(comment); + comments == null || comments.push(comment); + } + break; + } + case 47: + { + const comment = this.skipLineComment(2); + if (comment !== undefined) { + this.addComment(comment); + comments == null || comments.push(comment); + } + break; + } + default: + break loop; + } + break; + default: + if (isWhitespace(ch)) { + ++this.state.pos; + } else if (ch === 45 && !this.inModule && this.optionFlags & 8192) { + const pos = this.state.pos; + if (this.input.charCodeAt(pos + 1) === 45 && this.input.charCodeAt(pos + 2) === 62 && (spaceStart === 0 || this.state.lineStart > spaceStart)) { + const comment = this.skipLineComment(3); + if (comment !== undefined) { + this.addComment(comment); + comments == null || comments.push(comment); + } + } else { + break loop; + } + } else if (ch === 60 && !this.inModule && this.optionFlags & 8192) { + const pos = this.state.pos; + if (this.input.charCodeAt(pos + 1) === 33 && this.input.charCodeAt(pos + 2) === 45 && this.input.charCodeAt(pos + 3) === 45) { + const comment = this.skipLineComment(4); + if (comment !== undefined) { + this.addComment(comment); + comments == null || comments.push(comment); + } + } else { + break loop; + } + } else { + break loop; + } + } + } + if ((comments == null ? void 0 : comments.length) > 0) { + const end = this.state.pos; + const commentWhitespace = { + start: this.sourceToOffsetPos(spaceStart), + end: this.sourceToOffsetPos(end), + comments: comments, + leadingNode: null, + trailingNode: null, + containingNode: null + }; + this.state.commentStack.push(commentWhitespace); + } + } + finishToken(type, val) { + this.state.end = this.state.pos; + this.state.endLoc = this.state.curPosition(); + const prevType = this.state.type; + this.state.type = type; + this.state.value = val; + if (!this.isLookahead) { + this.updateContext(prevType); + } + } + replaceToken(type) { + this.state.type = type; + this.updateContext(); + } + readToken_numberSign() { + if (this.state.pos === 0 && this.readToken_interpreter()) { + return; + } + const nextPos = this.state.pos + 1; + const next = this.codePointAtPos(nextPos); + if (next >= 48 && next <= 57) { + throw this.raise(Errors.UnexpectedDigitAfterHash, this.state.curPosition()); + } + if (next === 123 || next === 91 && this.hasPlugin("recordAndTuple")) { + this.expectPlugin("recordAndTuple"); + if (this.getPluginOption("recordAndTuple", "syntaxType") === "bar") { + throw this.raise(next === 123 ? Errors.RecordExpressionHashIncorrectStartSyntaxType : Errors.TupleExpressionHashIncorrectStartSyntaxType, this.state.curPosition()); + } + this.state.pos += 2; + if (next === 123) { + this.finishToken(7); + } else { + this.finishToken(1); + } + } else if (isIdentifierStart(next)) { + ++this.state.pos; + this.finishToken(139, this.readWord1(next)); + } else if (next === 92) { + ++this.state.pos; + this.finishToken(139, this.readWord1()); + } else { + this.finishOp(27, 1); + } + } + readToken_dot() { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next >= 48 && next <= 57) { + this.readNumber(true); + return; + } + if (next === 46 && this.input.charCodeAt(this.state.pos + 2) === 46) { + this.state.pos += 3; + this.finishToken(21); + } else { + ++this.state.pos; + this.finishToken(16); + } + } + readToken_slash() { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === 61) { + this.finishOp(31, 2); + } else { + this.finishOp(56, 1); + } + } + readToken_interpreter() { + if (this.state.pos !== 0 || this.length < 2) return false; + let ch = this.input.charCodeAt(this.state.pos + 1); + if (ch !== 33) return false; + const start = this.state.pos; + this.state.pos += 1; + while (!isNewLine(ch) && ++this.state.pos < this.length) { + ch = this.input.charCodeAt(this.state.pos); + } + const value = this.input.slice(start + 2, this.state.pos); + this.finishToken(28, value); + return true; + } + readToken_mult_modulo(code) { + let type = code === 42 ? 55 : 54; + let width = 1; + let next = this.input.charCodeAt(this.state.pos + 1); + if (code === 42 && next === 42) { + width++; + next = this.input.charCodeAt(this.state.pos + 2); + type = 57; + } + if (next === 61 && !this.state.inType) { + width++; + type = code === 37 ? 33 : 30; + } + this.finishOp(type, width); + } + readToken_pipe_amp(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === code) { + if (this.input.charCodeAt(this.state.pos + 2) === 61) { + this.finishOp(30, 3); + } else { + this.finishOp(code === 124 ? 41 : 42, 2); + } + return; + } + if (code === 124) { + if (next === 62) { + this.finishOp(39, 2); + return; + } + if (this.hasPlugin("recordAndTuple") && next === 125) { + if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { + throw this.raise(Errors.RecordExpressionBarIncorrectEndSyntaxType, this.state.curPosition()); + } + this.state.pos += 2; + this.finishToken(9); + return; + } + if (this.hasPlugin("recordAndTuple") && next === 93) { + if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { + throw this.raise(Errors.TupleExpressionBarIncorrectEndSyntaxType, this.state.curPosition()); + } + this.state.pos += 2; + this.finishToken(4); + return; + } + } + if (next === 61) { + this.finishOp(30, 2); + return; + } + this.finishOp(code === 124 ? 43 : 45, 1); + } + readToken_caret() { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === 61 && !this.state.inType) { + this.finishOp(32, 2); + } else if (next === 94 && this.hasPlugin(["pipelineOperator", { + proposal: "hack", + topicToken: "^^" + }])) { + this.finishOp(37, 2); + const lookaheadCh = this.input.codePointAt(this.state.pos); + if (lookaheadCh === 94) { + this.unexpected(); + } + } else { + this.finishOp(44, 1); + } + } + readToken_atSign() { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === 64 && this.hasPlugin(["pipelineOperator", { + proposal: "hack", + topicToken: "@@" + }])) { + this.finishOp(38, 2); + } else { + this.finishOp(26, 1); + } + } + readToken_plus_min(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === code) { + this.finishOp(34, 2); + return; + } + if (next === 61) { + this.finishOp(30, 2); + } else { + this.finishOp(53, 1); + } + } + readToken_lt() { + const { + pos + } = this.state; + const next = this.input.charCodeAt(pos + 1); + if (next === 60) { + if (this.input.charCodeAt(pos + 2) === 61) { + this.finishOp(30, 3); + return; + } + this.finishOp(51, 2); + return; + } + if (next === 61) { + this.finishOp(49, 2); + return; + } + this.finishOp(47, 1); + } + readToken_gt() { + const { + pos + } = this.state; + const next = this.input.charCodeAt(pos + 1); + if (next === 62) { + const size = this.input.charCodeAt(pos + 2) === 62 ? 3 : 2; + if (this.input.charCodeAt(pos + size) === 61) { + this.finishOp(30, size + 1); + return; + } + this.finishOp(52, size); + return; + } + if (next === 61) { + this.finishOp(49, 2); + return; + } + this.finishOp(48, 1); + } + readToken_eq_excl(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === 61) { + this.finishOp(46, this.input.charCodeAt(this.state.pos + 2) === 61 ? 3 : 2); + return; + } + if (code === 61 && next === 62) { + this.state.pos += 2; + this.finishToken(19); + return; + } + this.finishOp(code === 61 ? 29 : 35, 1); + } + readToken_question() { + const next = this.input.charCodeAt(this.state.pos + 1); + const next2 = this.input.charCodeAt(this.state.pos + 2); + if (next === 63) { + if (next2 === 61) { + this.finishOp(30, 3); + } else { + this.finishOp(40, 2); + } + } else if (next === 46 && !(next2 >= 48 && next2 <= 57)) { + this.state.pos += 2; + this.finishToken(18); + } else { + ++this.state.pos; + this.finishToken(17); + } + } + getTokenFromCode(code) { + switch (code) { + case 46: + this.readToken_dot(); + return; + case 40: + ++this.state.pos; + this.finishToken(10); + return; + case 41: + ++this.state.pos; + this.finishToken(11); + return; + case 59: + ++this.state.pos; + this.finishToken(13); + return; + case 44: + ++this.state.pos; + this.finishToken(12); + return; + case 91: + if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) { + if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { + throw this.raise(Errors.TupleExpressionBarIncorrectStartSyntaxType, this.state.curPosition()); + } + this.state.pos += 2; + this.finishToken(2); + } else { + ++this.state.pos; + this.finishToken(0); + } + return; + case 93: + ++this.state.pos; + this.finishToken(3); + return; + case 123: + if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) { + if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { + throw this.raise(Errors.RecordExpressionBarIncorrectStartSyntaxType, this.state.curPosition()); + } + this.state.pos += 2; + this.finishToken(6); + } else { + ++this.state.pos; + this.finishToken(5); + } + return; + case 125: + ++this.state.pos; + this.finishToken(8); + return; + case 58: + if (this.hasPlugin("functionBind") && this.input.charCodeAt(this.state.pos + 1) === 58) { + this.finishOp(15, 2); + } else { + ++this.state.pos; + this.finishToken(14); + } + return; + case 63: + this.readToken_question(); + return; + case 96: + this.readTemplateToken(); + return; + case 48: + { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === 120 || next === 88) { + this.readRadixNumber(16); + return; + } + if (next === 111 || next === 79) { + this.readRadixNumber(8); + return; + } + if (next === 98 || next === 66) { + this.readRadixNumber(2); + return; + } + } + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + this.readNumber(false); + return; + case 34: + case 39: + this.readString(code); + return; + case 47: + this.readToken_slash(); + return; + case 37: + case 42: + this.readToken_mult_modulo(code); + return; + case 124: + case 38: + this.readToken_pipe_amp(code); + return; + case 94: + this.readToken_caret(); + return; + case 43: + case 45: + this.readToken_plus_min(code); + return; + case 60: + this.readToken_lt(); + return; + case 62: + this.readToken_gt(); + return; + case 61: + case 33: + this.readToken_eq_excl(code); + return; + case 126: + this.finishOp(36, 1); + return; + case 64: + this.readToken_atSign(); + return; + case 35: + this.readToken_numberSign(); + return; + case 92: + this.readWord(); + return; + default: + if (isIdentifierStart(code)) { + this.readWord(code); + return; + } + } + throw this.raise(Errors.InvalidOrUnexpectedToken, this.state.curPosition(), { + unexpected: String.fromCodePoint(code) + }); + } + finishOp(type, size) { + const str = this.input.slice(this.state.pos, this.state.pos + size); + this.state.pos += size; + this.finishToken(type, str); + } + readRegexp() { + const startLoc = this.state.startLoc; + const start = this.state.start + 1; + let escaped, inClass; + let { + pos + } = this.state; + for (;; ++pos) { + if (pos >= this.length) { + throw this.raise(Errors.UnterminatedRegExp, createPositionWithColumnOffset(startLoc, 1)); + } + const ch = this.input.charCodeAt(pos); + if (isNewLine(ch)) { + throw this.raise(Errors.UnterminatedRegExp, createPositionWithColumnOffset(startLoc, 1)); + } + if (escaped) { + escaped = false; + } else { + if (ch === 91) { + inClass = true; + } else if (ch === 93 && inClass) { + inClass = false; + } else if (ch === 47 && !inClass) { + break; + } + escaped = ch === 92; + } + } + const content = this.input.slice(start, pos); + ++pos; + let mods = ""; + const nextPos = () => createPositionWithColumnOffset(startLoc, pos + 2 - start); + while (pos < this.length) { + const cp = this.codePointAtPos(pos); + const char = String.fromCharCode(cp); + if (VALID_REGEX_FLAGS.has(cp)) { + if (cp === 118) { + if (mods.includes("u")) { + this.raise(Errors.IncompatibleRegExpUVFlags, nextPos()); + } + } else if (cp === 117) { + if (mods.includes("v")) { + this.raise(Errors.IncompatibleRegExpUVFlags, nextPos()); + } + } + if (mods.includes(char)) { + this.raise(Errors.DuplicateRegExpFlags, nextPos()); + } + } else if (isIdentifierChar(cp) || cp === 92) { + this.raise(Errors.MalformedRegExpFlags, nextPos()); + } else { + break; + } + ++pos; + mods += char; + } + this.state.pos = pos; + this.finishToken(138, { + pattern: content, + flags: mods + }); + } + readInt(radix, len, forceLen = false, allowNumSeparator = true) { + const { + n, + pos + } = readInt(this.input, this.state.pos, this.state.lineStart, this.state.curLine, radix, len, forceLen, allowNumSeparator, this.errorHandlers_readInt, false); + this.state.pos = pos; + return n; + } + readRadixNumber(radix) { + const start = this.state.pos; + const startLoc = this.state.curPosition(); + let isBigInt = false; + this.state.pos += 2; + const val = this.readInt(radix); + if (val == null) { + this.raise(Errors.InvalidDigit, createPositionWithColumnOffset(startLoc, 2), { + radix + }); + } + const next = this.input.charCodeAt(this.state.pos); + if (next === 110) { + ++this.state.pos; + isBigInt = true; + } else if (next === 109) { + throw this.raise(Errors.InvalidDecimal, startLoc); + } + if (isIdentifierStart(this.codePointAtPos(this.state.pos))) { + throw this.raise(Errors.NumberIdentifier, this.state.curPosition()); + } + if (isBigInt) { + const str = this.input.slice(start, this.state.pos).replace(/[_n]/g, ""); + this.finishToken(136, str); + return; + } + this.finishToken(135, val); + } + readNumber(startsWithDot) { + const start = this.state.pos; + const startLoc = this.state.curPosition(); + let isFloat = false; + let isBigInt = false; + let hasExponent = false; + let isOctal = false; + if (!startsWithDot && this.readInt(10) === null) { + this.raise(Errors.InvalidNumber, this.state.curPosition()); + } + const hasLeadingZero = this.state.pos - start >= 2 && this.input.charCodeAt(start) === 48; + if (hasLeadingZero) { + const integer = this.input.slice(start, this.state.pos); + this.recordStrictModeErrors(Errors.StrictOctalLiteral, startLoc); + if (!this.state.strict) { + const underscorePos = integer.indexOf("_"); + if (underscorePos > 0) { + this.raise(Errors.ZeroDigitNumericSeparator, createPositionWithColumnOffset(startLoc, underscorePos)); + } + } + isOctal = hasLeadingZero && !/[89]/.test(integer); + } + let next = this.input.charCodeAt(this.state.pos); + if (next === 46 && !isOctal) { + ++this.state.pos; + this.readInt(10); + isFloat = true; + next = this.input.charCodeAt(this.state.pos); + } + if ((next === 69 || next === 101) && !isOctal) { + next = this.input.charCodeAt(++this.state.pos); + if (next === 43 || next === 45) { + ++this.state.pos; + } + if (this.readInt(10) === null) { + this.raise(Errors.InvalidOrMissingExponent, startLoc); + } + isFloat = true; + hasExponent = true; + next = this.input.charCodeAt(this.state.pos); + } + if (next === 110) { + if (isFloat || hasLeadingZero) { + this.raise(Errors.InvalidBigIntLiteral, startLoc); + } + ++this.state.pos; + isBigInt = true; + } + if (next === 109) { + this.expectPlugin("decimal", this.state.curPosition()); + if (hasExponent || hasLeadingZero) { + this.raise(Errors.InvalidDecimal, startLoc); + } + ++this.state.pos; + var isDecimal = true; + } + if (isIdentifierStart(this.codePointAtPos(this.state.pos))) { + throw this.raise(Errors.NumberIdentifier, this.state.curPosition()); + } + const str = this.input.slice(start, this.state.pos).replace(/[_mn]/g, ""); + if (isBigInt) { + this.finishToken(136, str); + return; + } + if (isDecimal) { + this.finishToken(137, str); + return; + } + const val = isOctal ? parseInt(str, 8) : parseFloat(str); + this.finishToken(135, val); + } + readCodePoint(throwOnInvalid) { + const { + code, + pos + } = readCodePoint(this.input, this.state.pos, this.state.lineStart, this.state.curLine, throwOnInvalid, this.errorHandlers_readCodePoint); + this.state.pos = pos; + return code; + } + readString(quote) { + const { + str, + pos, + curLine, + lineStart + } = readStringContents(quote === 34 ? "double" : "single", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_string); + this.state.pos = pos + 1; + this.state.lineStart = lineStart; + this.state.curLine = curLine; + this.finishToken(134, str); + } + readTemplateContinuation() { + if (!this.match(8)) { + this.unexpected(null, 8); + } + this.state.pos--; + this.readTemplateToken(); + } + readTemplateToken() { + const opening = this.input[this.state.pos]; + const { + str, + firstInvalidLoc, + pos, + curLine, + lineStart + } = readStringContents("template", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_template); + this.state.pos = pos + 1; + this.state.lineStart = lineStart; + this.state.curLine = curLine; + if (firstInvalidLoc) { + this.state.firstInvalidTemplateEscapePos = new Position(firstInvalidLoc.curLine, firstInvalidLoc.pos - firstInvalidLoc.lineStart, this.sourceToOffsetPos(firstInvalidLoc.pos)); + } + if (this.input.codePointAt(pos) === 96) { + this.finishToken(24, firstInvalidLoc ? null : opening + str + "`"); + } else { + this.state.pos++; + this.finishToken(25, firstInvalidLoc ? null : opening + str + "${"); + } + } + recordStrictModeErrors(toParseError, at) { + const index = at.index; + if (this.state.strict && !this.state.strictErrors.has(index)) { + this.raise(toParseError, at); + } else { + this.state.strictErrors.set(index, [toParseError, at]); + } + } + readWord1(firstCode) { + this.state.containsEsc = false; + let word = ""; + const start = this.state.pos; + let chunkStart = this.state.pos; + if (firstCode !== undefined) { + this.state.pos += firstCode <= 0xffff ? 1 : 2; + } + while (this.state.pos < this.length) { + const ch = this.codePointAtPos(this.state.pos); + if (isIdentifierChar(ch)) { + this.state.pos += ch <= 0xffff ? 1 : 2; + } else if (ch === 92) { + this.state.containsEsc = true; + word += this.input.slice(chunkStart, this.state.pos); + const escStart = this.state.curPosition(); + const identifierCheck = this.state.pos === start ? isIdentifierStart : isIdentifierChar; + if (this.input.charCodeAt(++this.state.pos) !== 117) { + this.raise(Errors.MissingUnicodeEscape, this.state.curPosition()); + chunkStart = this.state.pos - 1; + continue; + } + ++this.state.pos; + const esc = this.readCodePoint(true); + if (esc !== null) { + if (!identifierCheck(esc)) { + this.raise(Errors.EscapedCharNotAnIdentifier, escStart); + } + word += String.fromCodePoint(esc); + } + chunkStart = this.state.pos; + } else { + break; + } + } + return word + this.input.slice(chunkStart, this.state.pos); + } + readWord(firstCode) { + const word = this.readWord1(firstCode); + const type = keywords$1.get(word); + if (type !== undefined) { + this.finishToken(type, tokenLabelName(type)); + } else { + this.finishToken(132, word); + } + } + checkKeywordEscapes() { + const { + type + } = this.state; + if (tokenIsKeyword(type) && this.state.containsEsc) { + this.raise(Errors.InvalidEscapedReservedWord, this.state.startLoc, { + reservedWord: tokenLabelName(type) + }); + } + } + raise(toParseError, at, details = {}) { + const loc = at instanceof Position ? at : at.loc.start; + const error = toParseError(loc, details); + if (!(this.optionFlags & 2048)) throw error; + if (!this.isLookahead) this.state.errors.push(error); + return error; + } + raiseOverwrite(toParseError, at, details = {}) { + const loc = at instanceof Position ? at : at.loc.start; + const pos = loc.index; + const errors = this.state.errors; + for (let i = errors.length - 1; i >= 0; i--) { + const error = errors[i]; + if (error.loc.index === pos) { + return errors[i] = toParseError(loc, details); + } + if (error.loc.index < pos) break; + } + return this.raise(toParseError, at, details); + } + updateContext(prevType) {} + unexpected(loc, type) { + throw this.raise(Errors.UnexpectedToken, loc != null ? loc : this.state.startLoc, { + expected: type ? tokenLabelName(type) : null + }); + } + expectPlugin(pluginName, loc) { + if (this.hasPlugin(pluginName)) { + return true; + } + throw this.raise(Errors.MissingPlugin, loc != null ? loc : this.state.startLoc, { + missingPlugin: [pluginName] + }); + } + expectOnePlugin(pluginNames) { + if (!pluginNames.some(name => this.hasPlugin(name))) { + throw this.raise(Errors.MissingOneOfPlugins, this.state.startLoc, { + missingPlugin: pluginNames + }); + } + } + errorBuilder(error) { + return (pos, lineStart, curLine) => { + this.raise(error, buildPosition(pos, lineStart, curLine)); + }; + } +} +class ClassScope { + constructor() { + this.privateNames = new Set(); + this.loneAccessors = new Map(); + this.undefinedPrivateNames = new Map(); + } +} +class ClassScopeHandler { + constructor(parser) { + this.parser = void 0; + this.stack = []; + this.undefinedPrivateNames = new Map(); + this.parser = parser; + } + current() { + return this.stack[this.stack.length - 1]; + } + enter() { + this.stack.push(new ClassScope()); + } + exit() { + const oldClassScope = this.stack.pop(); + const current = this.current(); + for (const [name, loc] of Array.from(oldClassScope.undefinedPrivateNames)) { + if (current) { + if (!current.undefinedPrivateNames.has(name)) { + current.undefinedPrivateNames.set(name, loc); + } + } else { + this.parser.raise(Errors.InvalidPrivateFieldResolution, loc, { + identifierName: name + }); + } + } + } + declarePrivateName(name, elementType, loc) { + const { + privateNames, + loneAccessors, + undefinedPrivateNames + } = this.current(); + let redefined = privateNames.has(name); + if (elementType & 3) { + const accessor = redefined && loneAccessors.get(name); + if (accessor) { + const oldStatic = accessor & 4; + const newStatic = elementType & 4; + const oldKind = accessor & 3; + const newKind = elementType & 3; + redefined = oldKind === newKind || oldStatic !== newStatic; + if (!redefined) loneAccessors.delete(name); + } else if (!redefined) { + loneAccessors.set(name, elementType); + } + } + if (redefined) { + this.parser.raise(Errors.PrivateNameRedeclaration, loc, { + identifierName: name + }); + } + privateNames.add(name); + undefinedPrivateNames.delete(name); + } + usePrivateName(name, loc) { + let classScope; + for (classScope of this.stack) { + if (classScope.privateNames.has(name)) return; + } + if (classScope) { + classScope.undefinedPrivateNames.set(name, loc); + } else { + this.parser.raise(Errors.InvalidPrivateFieldResolution, loc, { + identifierName: name + }); + } + } +} +class ExpressionScope { + constructor(type = 0) { + this.type = type; + } + canBeArrowParameterDeclaration() { + return this.type === 2 || this.type === 1; + } + isCertainlyParameterDeclaration() { + return this.type === 3; + } +} +class ArrowHeadParsingScope extends ExpressionScope { + constructor(type) { + super(type); + this.declarationErrors = new Map(); + } + recordDeclarationError(ParsingErrorClass, at) { + const index = at.index; + this.declarationErrors.set(index, [ParsingErrorClass, at]); + } + clearDeclarationError(index) { + this.declarationErrors.delete(index); + } + iterateErrors(iterator) { + this.declarationErrors.forEach(iterator); + } +} +class ExpressionScopeHandler { + constructor(parser) { + this.parser = void 0; + this.stack = [new ExpressionScope()]; + this.parser = parser; + } + enter(scope) { + this.stack.push(scope); + } + exit() { + this.stack.pop(); + } + recordParameterInitializerError(toParseError, node) { + const origin = node.loc.start; + const { + stack + } = this; + let i = stack.length - 1; + let scope = stack[i]; + while (!scope.isCertainlyParameterDeclaration()) { + if (scope.canBeArrowParameterDeclaration()) { + scope.recordDeclarationError(toParseError, origin); + } else { + return; + } + scope = stack[--i]; + } + this.parser.raise(toParseError, origin); + } + recordArrowParameterBindingError(error, node) { + const { + stack + } = this; + const scope = stack[stack.length - 1]; + const origin = node.loc.start; + if (scope.isCertainlyParameterDeclaration()) { + this.parser.raise(error, origin); + } else if (scope.canBeArrowParameterDeclaration()) { + scope.recordDeclarationError(error, origin); + } else { + return; + } + } + recordAsyncArrowParametersError(at) { + const { + stack + } = this; + let i = stack.length - 1; + let scope = stack[i]; + while (scope.canBeArrowParameterDeclaration()) { + if (scope.type === 2) { + scope.recordDeclarationError(Errors.AwaitBindingIdentifier, at); + } + scope = stack[--i]; + } + } + validateAsPattern() { + const { + stack + } = this; + const currentScope = stack[stack.length - 1]; + if (!currentScope.canBeArrowParameterDeclaration()) return; + currentScope.iterateErrors(([toParseError, loc]) => { + this.parser.raise(toParseError, loc); + let i = stack.length - 2; + let scope = stack[i]; + while (scope.canBeArrowParameterDeclaration()) { + scope.clearDeclarationError(loc.index); + scope = stack[--i]; + } + }); + } +} +function newParameterDeclarationScope() { + return new ExpressionScope(3); +} +function newArrowHeadScope() { + return new ArrowHeadParsingScope(1); +} +function newAsyncArrowScope() { + return new ArrowHeadParsingScope(2); +} +function newExpressionScope() { + return new ExpressionScope(); +} +class UtilParser extends Tokenizer { + addExtra(node, key, value, enumerable = true) { + if (!node) return; + let { + extra + } = node; + if (extra == null) { + extra = {}; + node.extra = extra; + } + if (enumerable) { + extra[key] = value; + } else { + Object.defineProperty(extra, key, { + enumerable, + value + }); + } + } + isContextual(token) { + return this.state.type === token && !this.state.containsEsc; + } + isUnparsedContextual(nameStart, name) { + if (this.input.startsWith(name, nameStart)) { + const nextCh = this.input.charCodeAt(nameStart + name.length); + return !(isIdentifierChar(nextCh) || (nextCh & 0xfc00) === 0xd800); + } + return false; + } + isLookaheadContextual(name) { + const next = this.nextTokenStart(); + return this.isUnparsedContextual(next, name); + } + eatContextual(token) { + if (this.isContextual(token)) { + this.next(); + return true; + } + return false; + } + expectContextual(token, toParseError) { + if (!this.eatContextual(token)) { + if (toParseError != null) { + throw this.raise(toParseError, this.state.startLoc); + } + this.unexpected(null, token); + } + } + canInsertSemicolon() { + return this.match(140) || this.match(8) || this.hasPrecedingLineBreak(); + } + hasPrecedingLineBreak() { + return hasNewLine(this.input, this.offsetToSourcePos(this.state.lastTokEndLoc.index), this.state.start); + } + hasFollowingLineBreak() { + return hasNewLine(this.input, this.state.end, this.nextTokenStart()); + } + isLineTerminator() { + return this.eat(13) || this.canInsertSemicolon(); + } + semicolon(allowAsi = true) { + if (allowAsi ? this.isLineTerminator() : this.eat(13)) return; + this.raise(Errors.MissingSemicolon, this.state.lastTokEndLoc); + } + expect(type, loc) { + if (!this.eat(type)) { + this.unexpected(loc, type); + } + } + tryParse(fn, oldState = this.state.clone()) { + const abortSignal = { + node: null + }; + try { + const node = fn((node = null) => { + abortSignal.node = node; + throw abortSignal; + }); + if (this.state.errors.length > oldState.errors.length) { + const failState = this.state; + this.state = oldState; + this.state.tokensLength = failState.tokensLength; + return { + node, + error: failState.errors[oldState.errors.length], + thrown: false, + aborted: false, + failState + }; + } + return { + node: node, + error: null, + thrown: false, + aborted: false, + failState: null + }; + } catch (error) { + const failState = this.state; + this.state = oldState; + if (error instanceof SyntaxError) { + return { + node: null, + error, + thrown: true, + aborted: false, + failState + }; + } + if (error === abortSignal) { + return { + node: abortSignal.node, + error: null, + thrown: false, + aborted: true, + failState + }; + } + throw error; + } + } + checkExpressionErrors(refExpressionErrors, andThrow) { + if (!refExpressionErrors) return false; + const { + shorthandAssignLoc, + doubleProtoLoc, + privateKeyLoc, + optionalParametersLoc, + voidPatternLoc + } = refExpressionErrors; + const hasErrors = !!shorthandAssignLoc || !!doubleProtoLoc || !!optionalParametersLoc || !!privateKeyLoc || !!voidPatternLoc; + if (!andThrow) { + return hasErrors; + } + if (shorthandAssignLoc != null) { + this.raise(Errors.InvalidCoverInitializedName, shorthandAssignLoc); + } + if (doubleProtoLoc != null) { + this.raise(Errors.DuplicateProto, doubleProtoLoc); + } + if (privateKeyLoc != null) { + this.raise(Errors.UnexpectedPrivateField, privateKeyLoc); + } + if (optionalParametersLoc != null) { + this.unexpected(optionalParametersLoc); + } + if (voidPatternLoc != null) { + this.raise(Errors.InvalidCoverDiscardElement, voidPatternLoc); + } + } + isLiteralPropertyName() { + return tokenIsLiteralPropertyName(this.state.type); + } + isPrivateName(node) { + return node.type === "PrivateName"; + } + getPrivateNameSV(node) { + return node.id.name; + } + hasPropertyAsPrivateName(node) { + return (node.type === "MemberExpression" || node.type === "OptionalMemberExpression") && this.isPrivateName(node.property); + } + isObjectProperty(node) { + return node.type === "ObjectProperty"; + } + isObjectMethod(node) { + return node.type === "ObjectMethod"; + } + initializeScopes(inModule = this.options.sourceType === "module") { + const oldLabels = this.state.labels; + this.state.labels = []; + const oldExportedIdentifiers = this.exportedIdentifiers; + this.exportedIdentifiers = new Set(); + const oldInModule = this.inModule; + this.inModule = inModule; + const oldScope = this.scope; + const ScopeHandler = this.getScopeHandler(); + this.scope = new ScopeHandler(this, inModule); + const oldProdParam = this.prodParam; + this.prodParam = new ProductionParameterHandler(); + const oldClassScope = this.classScope; + this.classScope = new ClassScopeHandler(this); + const oldExpressionScope = this.expressionScope; + this.expressionScope = new ExpressionScopeHandler(this); + return () => { + this.state.labels = oldLabels; + this.exportedIdentifiers = oldExportedIdentifiers; + this.inModule = oldInModule; + this.scope = oldScope; + this.prodParam = oldProdParam; + this.classScope = oldClassScope; + this.expressionScope = oldExpressionScope; + }; + } + enterInitialScopes() { + let paramFlags = 0; + if (this.inModule || this.optionFlags & 1) { + paramFlags |= 2; + } + if (this.optionFlags & 32) { + paramFlags |= 1; + } + const isCommonJS = !this.inModule && this.options.sourceType === "commonjs"; + if (isCommonJS || this.optionFlags & 2) { + paramFlags |= 4; + } + this.prodParam.enter(paramFlags); + let scopeFlags = isCommonJS ? 514 : 1; + if (this.optionFlags & 4) { + scopeFlags |= 512; + } + this.scope.enter(scopeFlags); + } + checkDestructuringPrivate(refExpressionErrors) { + const { + privateKeyLoc + } = refExpressionErrors; + if (privateKeyLoc !== null) { + this.expectPlugin("destructuringPrivate", privateKeyLoc); + } + } +} +class ExpressionErrors { + constructor() { + this.shorthandAssignLoc = null; + this.doubleProtoLoc = null; + this.privateKeyLoc = null; + this.optionalParametersLoc = null; + this.voidPatternLoc = null; + } +} +class Node { + constructor(parser, pos, loc) { + this.type = ""; + this.start = pos; + this.end = 0; + this.loc = new SourceLocation(loc); + if ((parser == null ? void 0 : parser.optionFlags) & 128) this.range = [pos, 0]; + if (parser != null && parser.filename) this.loc.filename = parser.filename; + } +} +const NodePrototype = Node.prototype; +NodePrototype.__clone = function () { + const newNode = new Node(undefined, this.start, this.loc.start); + const keys = Object.keys(this); + for (let i = 0, length = keys.length; i < length; i++) { + const key = keys[i]; + if (key !== "leadingComments" && key !== "trailingComments" && key !== "innerComments") { + newNode[key] = this[key]; + } + } + return newNode; +}; +class NodeUtils extends UtilParser { + startNode() { + const loc = this.state.startLoc; + return new Node(this, loc.index, loc); + } + startNodeAt(loc) { + return new Node(this, loc.index, loc); + } + startNodeAtNode(type) { + return this.startNodeAt(type.loc.start); + } + finishNode(node, type) { + return this.finishNodeAt(node, type, this.state.lastTokEndLoc); + } + finishNodeAt(node, type, endLoc) { + node.type = type; + node.end = endLoc.index; + node.loc.end = endLoc; + if (this.optionFlags & 128) node.range[1] = endLoc.index; + if (this.optionFlags & 4096) { + this.processComment(node); + } + return node; + } + resetStartLocation(node, startLoc) { + node.start = startLoc.index; + node.loc.start = startLoc; + if (this.optionFlags & 128) node.range[0] = startLoc.index; + } + resetEndLocation(node, endLoc = this.state.lastTokEndLoc) { + node.end = endLoc.index; + node.loc.end = endLoc; + if (this.optionFlags & 128) node.range[1] = endLoc.index; + } + resetStartLocationFromNode(node, locationNode) { + this.resetStartLocation(node, locationNode.loc.start); + } + castNodeTo(node, type) { + node.type = type; + return node; + } + cloneIdentifier(node) { + const { + type, + start, + end, + loc, + range, + name + } = node; + const cloned = Object.create(NodePrototype); + cloned.type = type; + cloned.start = start; + cloned.end = end; + cloned.loc = loc; + cloned.range = range; + cloned.name = name; + if (node.extra) cloned.extra = node.extra; + return cloned; + } + cloneStringLiteral(node) { + const { + type, + start, + end, + loc, + range, + extra + } = node; + const cloned = Object.create(NodePrototype); + cloned.type = type; + cloned.start = start; + cloned.end = end; + cloned.loc = loc; + cloned.range = range; + cloned.extra = extra; + cloned.value = node.value; + return cloned; + } +} +const unwrapParenthesizedExpression = node => { + return node.type === "ParenthesizedExpression" ? unwrapParenthesizedExpression(node.expression) : node; +}; +class LValParser extends NodeUtils { + toAssignable(node, isLHS = false) { + var _node$extra, _node$extra3; + let parenthesized = undefined; + if (node.type === "ParenthesizedExpression" || (_node$extra = node.extra) != null && _node$extra.parenthesized) { + parenthesized = unwrapParenthesizedExpression(node); + if (isLHS) { + if (parenthesized.type === "Identifier") { + this.expressionScope.recordArrowParameterBindingError(Errors.InvalidParenthesizedAssignment, node); + } else if (parenthesized.type !== "CallExpression" && parenthesized.type !== "MemberExpression" && !this.isOptionalMemberExpression(parenthesized)) { + this.raise(Errors.InvalidParenthesizedAssignment, node); + } + } else { + this.raise(Errors.InvalidParenthesizedAssignment, node); + } + } + switch (node.type) { + case "Identifier": + case "ObjectPattern": + case "ArrayPattern": + case "AssignmentPattern": + case "RestElement": + case "VoidPattern": + break; + case "ObjectExpression": + this.castNodeTo(node, "ObjectPattern"); + for (let i = 0, length = node.properties.length, last = length - 1; i < length; i++) { + var _node$extra2; + const prop = node.properties[i]; + const isLast = i === last; + this.toAssignableObjectExpressionProp(prop, isLast, isLHS); + if (isLast && prop.type === "RestElement" && (_node$extra2 = node.extra) != null && _node$extra2.trailingCommaLoc) { + this.raise(Errors.RestTrailingComma, node.extra.trailingCommaLoc); + } + } + break; + case "ObjectProperty": + { + const { + key, + value + } = node; + if (this.isPrivateName(key)) { + this.classScope.usePrivateName(this.getPrivateNameSV(key), key.loc.start); + } + this.toAssignable(value, isLHS); + break; + } + case "SpreadElement": + { + throw new Error("Internal @babel/parser error (this is a bug, please report it)." + " SpreadElement should be converted by .toAssignable's caller."); + } + case "ArrayExpression": + this.castNodeTo(node, "ArrayPattern"); + this.toAssignableList(node.elements, (_node$extra3 = node.extra) == null ? void 0 : _node$extra3.trailingCommaLoc, isLHS); + break; + case "AssignmentExpression": + if (node.operator !== "=") { + this.raise(Errors.MissingEqInAssignment, node.left.loc.end); + } + this.castNodeTo(node, "AssignmentPattern"); + delete node.operator; + if (node.left.type === "VoidPattern") { + this.raise(Errors.VoidPatternInitializer, node.left); + } + this.toAssignable(node.left, isLHS); + break; + case "ParenthesizedExpression": + this.toAssignable(parenthesized, isLHS); + break; + } + } + toAssignableObjectExpressionProp(prop, isLast, isLHS) { + if (prop.type === "ObjectMethod") { + this.raise(prop.kind === "get" || prop.kind === "set" ? Errors.PatternHasAccessor : Errors.PatternHasMethod, prop.key); + } else if (prop.type === "SpreadElement") { + this.castNodeTo(prop, "RestElement"); + const arg = prop.argument; + this.checkToRestConversion(arg, false); + this.toAssignable(arg, isLHS); + if (!isLast) { + this.raise(Errors.RestTrailingComma, prop); + } + } else { + this.toAssignable(prop, isLHS); + } + } + toAssignableList(exprList, trailingCommaLoc, isLHS) { + const end = exprList.length - 1; + for (let i = 0; i <= end; i++) { + const elt = exprList[i]; + if (!elt) continue; + this.toAssignableListItem(exprList, i, isLHS); + if (elt.type === "RestElement") { + if (i < end) { + this.raise(Errors.RestTrailingComma, elt); + } else if (trailingCommaLoc) { + this.raise(Errors.RestTrailingComma, trailingCommaLoc); + } + } + } + } + toAssignableListItem(exprList, index, isLHS) { + const node = exprList[index]; + if (node.type === "SpreadElement") { + this.castNodeTo(node, "RestElement"); + const arg = node.argument; + this.checkToRestConversion(arg, true); + this.toAssignable(arg, isLHS); + } else { + this.toAssignable(node, isLHS); + } + } + isAssignable(node, isBinding) { + switch (node.type) { + case "Identifier": + case "ObjectPattern": + case "ArrayPattern": + case "AssignmentPattern": + case "RestElement": + case "VoidPattern": + return true; + case "ObjectExpression": + { + const last = node.properties.length - 1; + return node.properties.every((prop, i) => { + return prop.type !== "ObjectMethod" && (i === last || prop.type !== "SpreadElement") && this.isAssignable(prop); + }); + } + case "ObjectProperty": + return this.isAssignable(node.value); + case "SpreadElement": + return this.isAssignable(node.argument); + case "ArrayExpression": + return node.elements.every(element => element === null || this.isAssignable(element)); + case "AssignmentExpression": + return node.operator === "="; + case "ParenthesizedExpression": + return this.isAssignable(node.expression); + case "MemberExpression": + case "OptionalMemberExpression": + return !isBinding; + default: + return false; + } + } + toReferencedList(exprList, isParenthesizedExpr) { + return exprList; + } + toReferencedListDeep(exprList, isParenthesizedExpr) { + this.toReferencedList(exprList, isParenthesizedExpr); + for (const expr of exprList) { + if ((expr == null ? void 0 : expr.type) === "ArrayExpression") { + this.toReferencedListDeep(expr.elements); + } + } + } + parseSpread(refExpressionErrors) { + const node = this.startNode(); + this.next(); + node.argument = this.parseMaybeAssignAllowIn(refExpressionErrors, undefined); + return this.finishNode(node, "SpreadElement"); + } + parseRestBinding() { + const node = this.startNode(); + this.next(); + const argument = this.parseBindingAtom(); + if (argument.type === "VoidPattern") { + this.raise(Errors.UnexpectedVoidPattern, argument); + } + node.argument = argument; + return this.finishNode(node, "RestElement"); + } + parseBindingAtom() { + switch (this.state.type) { + case 0: + { + const node = this.startNode(); + this.next(); + node.elements = this.parseBindingList(3, 93, 1); + return this.finishNode(node, "ArrayPattern"); + } + case 5: + return this.parseObjectLike(8, true); + case 88: + return this.parseVoidPattern(null); + } + return this.parseIdentifier(); + } + parseBindingList(close, closeCharCode, flags) { + const allowEmpty = flags & 1; + const elts = []; + let first = true; + while (!this.eat(close)) { + if (first) { + first = false; + } else { + this.expect(12); + } + if (allowEmpty && this.match(12)) { + elts.push(null); + } else if (this.eat(close)) { + break; + } else if (this.match(21)) { + let rest = this.parseRestBinding(); + if (this.hasPlugin("flow") || flags & 2) { + rest = this.parseFunctionParamType(rest); + } + elts.push(rest); + if (!this.checkCommaAfterRest(closeCharCode)) { + this.expect(close); + break; + } + } else { + const decorators = []; + if (flags & 2) { + if (this.match(26) && this.hasPlugin("decorators")) { + this.raise(Errors.UnsupportedParameterDecorator, this.state.startLoc); + } + while (this.match(26)) { + decorators.push(this.parseDecorator()); + } + } + elts.push(this.parseBindingElement(flags, decorators)); + } + } + return elts; + } + parseBindingRestProperty(prop) { + this.next(); + if (this.hasPlugin("discardBinding") && this.match(88)) { + prop.argument = this.parseVoidPattern(null); + this.raise(Errors.UnexpectedVoidPattern, prop.argument); + } else { + prop.argument = this.parseIdentifier(); + } + this.checkCommaAfterRest(125); + return this.finishNode(prop, "RestElement"); + } + parseBindingProperty() { + const { + type, + startLoc + } = this.state; + if (type === 21) { + return this.parseBindingRestProperty(this.startNode()); + } + const prop = this.startNode(); + if (type === 139) { + this.expectPlugin("destructuringPrivate", startLoc); + this.classScope.usePrivateName(this.state.value, startLoc); + prop.key = this.parsePrivateName(); + } else { + this.parsePropertyName(prop); + } + prop.method = false; + return this.parseObjPropValue(prop, startLoc, false, false, true, false); + } + parseBindingElement(flags, decorators) { + const left = this.parseMaybeDefault(); + if (this.hasPlugin("flow") || flags & 2) { + this.parseFunctionParamType(left); + } + if (decorators.length) { + left.decorators = decorators; + this.resetStartLocationFromNode(left, decorators[0]); + } + const elt = this.parseMaybeDefault(left.loc.start, left); + return elt; + } + parseFunctionParamType(param) { + return param; + } + parseMaybeDefault(startLoc, left) { + startLoc != null ? startLoc : startLoc = this.state.startLoc; + left = left != null ? left : this.parseBindingAtom(); + if (!this.eat(29)) return left; + const node = this.startNodeAt(startLoc); + if (left.type === "VoidPattern") { + this.raise(Errors.VoidPatternInitializer, left); + } + node.left = left; + node.right = this.parseMaybeAssignAllowIn(); + return this.finishNode(node, "AssignmentPattern"); + } + isValidLVal(type, disallowCallExpression, isUnparenthesizedInAssign, binding) { + switch (type) { + case "AssignmentPattern": + return "left"; + case "RestElement": + return "argument"; + case "ObjectProperty": + return "value"; + case "ParenthesizedExpression": + return "expression"; + case "ArrayPattern": + return "elements"; + case "ObjectPattern": + return "properties"; + case "VoidPattern": + return true; + case "CallExpression": + if (!disallowCallExpression && !this.state.strict && this.optionFlags & 8192) { + return true; + } + } + return false; + } + isOptionalMemberExpression(expression) { + return expression.type === "OptionalMemberExpression"; + } + checkLVal(expression, ancestor, binding = 64, checkClashes = false, strictModeChanged = false, hasParenthesizedAncestor = false, disallowCallExpression = false) { + var _expression$extra; + const type = expression.type; + if (this.isObjectMethod(expression)) return; + const isOptionalMemberExpression = this.isOptionalMemberExpression(expression); + if (isOptionalMemberExpression || type === "MemberExpression") { + if (isOptionalMemberExpression) { + this.expectPlugin("optionalChainingAssign", expression.loc.start); + if (ancestor.type !== "AssignmentExpression") { + this.raise(Errors.InvalidLhsOptionalChaining, expression, { + ancestor + }); + } + } + if (binding !== 64) { + this.raise(Errors.InvalidPropertyBindingPattern, expression); + } + return; + } + if (type === "Identifier") { + this.checkIdentifier(expression, binding, strictModeChanged); + const { + name + } = expression; + if (checkClashes) { + if (checkClashes.has(name)) { + this.raise(Errors.ParamDupe, expression); + } else { + checkClashes.add(name); + } + } + return; + } else if (type === "VoidPattern" && ancestor.type === "CatchClause") { + this.raise(Errors.VoidPatternCatchClauseParam, expression); + } + const unwrappedExpression = unwrapParenthesizedExpression(expression); + disallowCallExpression || (disallowCallExpression = unwrappedExpression.type === "CallExpression" && (unwrappedExpression.callee.type === "Import" || unwrappedExpression.callee.type === "Super")); + const validity = this.isValidLVal(type, disallowCallExpression, !(hasParenthesizedAncestor || (_expression$extra = expression.extra) != null && _expression$extra.parenthesized) && ancestor.type === "AssignmentExpression", binding); + if (validity === true) return; + if (validity === false) { + const ParseErrorClass = binding === 64 ? Errors.InvalidLhs : Errors.InvalidLhsBinding; + this.raise(ParseErrorClass, expression, { + ancestor + }); + return; + } + let key, isParenthesizedExpression; + if (typeof validity === "string") { + key = validity; + isParenthesizedExpression = type === "ParenthesizedExpression"; + } else { + [key, isParenthesizedExpression] = validity; + } + const nextAncestor = type === "ArrayPattern" || type === "ObjectPattern" ? { + type + } : ancestor; + const val = expression[key]; + if (Array.isArray(val)) { + for (const child of val) { + if (child) { + this.checkLVal(child, nextAncestor, binding, checkClashes, strictModeChanged, isParenthesizedExpression, true); + } + } + } else if (val) { + this.checkLVal(val, nextAncestor, binding, checkClashes, strictModeChanged, isParenthesizedExpression, disallowCallExpression); + } + } + checkIdentifier(at, bindingType, strictModeChanged = false) { + if (this.state.strict && (strictModeChanged ? isStrictBindReservedWord(at.name, this.inModule) : isStrictBindOnlyReservedWord(at.name))) { + if (bindingType === 64) { + this.raise(Errors.StrictEvalArguments, at, { + referenceName: at.name + }); + } else { + this.raise(Errors.StrictEvalArgumentsBinding, at, { + bindingName: at.name + }); + } + } + if (bindingType & 8192 && at.name === "let") { + this.raise(Errors.LetInLexicalBinding, at); + } + if (!(bindingType & 64)) { + this.declareNameFromIdentifier(at, bindingType); + } + } + declareNameFromIdentifier(identifier, binding) { + this.scope.declareName(identifier.name, binding, identifier.loc.start); + } + checkToRestConversion(node, allowPattern) { + switch (node.type) { + case "ParenthesizedExpression": + this.checkToRestConversion(node.expression, allowPattern); + break; + case "Identifier": + case "MemberExpression": + break; + case "ArrayExpression": + case "ObjectExpression": + if (allowPattern) break; + default: + this.raise(Errors.InvalidRestAssignmentPattern, node); + } + } + checkCommaAfterRest(close) { + if (!this.match(12)) { + return false; + } + this.raise(this.lookaheadCharCode() === close ? Errors.RestTrailingComma : Errors.ElementAfterRest, this.state.startLoc); + return true; + } +} +const keywordAndTSRelationalOperator = /in(?:stanceof)?|as|satisfies/y; +function nonNull(x) { + if (x == null) { + throw new Error(`Unexpected ${x} value.`); + } + return x; +} +function assert(x) { + if (!x) { + throw new Error("Assert fail"); + } +} +const TSErrors = ParseErrorEnum`typescript`({ + AbstractMethodHasImplementation: ({ + methodName + }) => `Method '${methodName}' cannot have an implementation because it is marked abstract.`, + AbstractPropertyHasInitializer: ({ + propertyName + }) => `Property '${propertyName}' cannot have an initializer because it is marked abstract.`, + AccessorCannotBeOptional: "An 'accessor' property cannot be declared optional.", + AccessorCannotDeclareThisParameter: "'get' and 'set' accessors cannot declare 'this' parameters.", + AccessorCannotHaveTypeParameters: "An accessor cannot have type parameters.", + ClassMethodHasDeclare: "Class methods cannot have the 'declare' modifier.", + ClassMethodHasReadonly: "Class methods cannot have the 'readonly' modifier.", + ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference: "A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.", + ConstructorHasTypeParameters: "Type parameters cannot appear on a constructor declaration.", + DeclareAccessor: ({ + kind + }) => `'declare' is not allowed in ${kind}ters.`, + DeclareClassFieldHasInitializer: "Initializers are not allowed in ambient contexts.", + DeclareFunctionHasImplementation: "An implementation cannot be declared in ambient contexts.", + DuplicateAccessibilityModifier: ({ + modifier + }) => `Accessibility modifier already seen: '${modifier}'.`, + DuplicateModifier: ({ + modifier + }) => `Duplicate modifier: '${modifier}'.`, + EmptyHeritageClauseType: ({ + token + }) => `'${token}' list cannot be empty.`, + EmptyTypeArguments: "Type argument list cannot be empty.", + EmptyTypeParameters: "Type parameter list cannot be empty.", + ExpectedAmbientAfterExportDeclare: "'export declare' must be followed by an ambient declaration.", + ImportAliasHasImportType: "An import alias can not use 'import type'.", + ImportReflectionHasImportType: "An `import module` declaration can not use `type` modifier", + IncompatibleModifiers: ({ + modifiers + }) => `'${modifiers[0]}' modifier cannot be used with '${modifiers[1]}' modifier.`, + IndexSignatureHasAbstract: "Index signatures cannot have the 'abstract' modifier.", + IndexSignatureHasAccessibility: ({ + modifier + }) => `Index signatures cannot have an accessibility modifier ('${modifier}').`, + IndexSignatureHasDeclare: "Index signatures cannot have the 'declare' modifier.", + IndexSignatureHasOverride: "'override' modifier cannot appear on an index signature.", + IndexSignatureHasStatic: "Index signatures cannot have the 'static' modifier.", + InitializerNotAllowedInAmbientContext: "Initializers are not allowed in ambient contexts.", + InvalidHeritageClauseType: ({ + token + }) => `'${token}' list can only include identifiers or qualified-names with optional type arguments.`, + InvalidModifierOnAwaitUsingDeclaration: modifier => `'${modifier}' modifier cannot appear on an await using declaration.`, + InvalidModifierOnTypeMember: ({ + modifier + }) => `'${modifier}' modifier cannot appear on a type member.`, + InvalidModifierOnTypeParameter: ({ + modifier + }) => `'${modifier}' modifier cannot appear on a type parameter.`, + InvalidModifierOnTypeParameterPositions: ({ + modifier + }) => `'${modifier}' modifier can only appear on a type parameter of a class, interface or type alias.`, + InvalidModifierOnUsingDeclaration: modifier => `'${modifier}' modifier cannot appear on a using declaration.`, + InvalidModifiersOrder: ({ + orderedModifiers + }) => `'${orderedModifiers[0]}' modifier must precede '${orderedModifiers[1]}' modifier.`, + InvalidPropertyAccessAfterInstantiationExpression: "Invalid property access after an instantiation expression. " + "You can either wrap the instantiation expression in parentheses, or delete the type arguments.", + InvalidTupleMemberLabel: "Tuple members must be labeled with a simple identifier.", + MissingInterfaceName: "'interface' declarations must be followed by an identifier.", + NonAbstractClassHasAbstractMethod: "Abstract methods can only appear within an abstract class.", + NonClassMethodPropertyHasAbstractModifier: "'abstract' modifier can only appear on a class, method, or property declaration.", + OptionalTypeBeforeRequired: "A required element cannot follow an optional element.", + OverrideNotInSubClass: "This member cannot have an 'override' modifier because its containing class does not extend another class.", + PatternIsOptional: "A binding pattern parameter cannot be optional in an implementation signature.", + PrivateElementHasAbstract: "Private elements cannot have the 'abstract' modifier.", + PrivateElementHasAccessibility: ({ + modifier + }) => `Private elements cannot have an accessibility modifier ('${modifier}').`, + ReadonlyForMethodSignature: "'readonly' modifier can only appear on a property declaration or index signature.", + ReservedArrowTypeParam: "This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma, as in `() => ...`.", + ReservedTypeAssertion: "This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.", + SetAccessorCannotHaveOptionalParameter: "A 'set' accessor cannot have an optional parameter.", + SetAccessorCannotHaveRestParameter: "A 'set' accessor cannot have rest parameter.", + SetAccessorCannotHaveReturnType: "A 'set' accessor cannot have a return type annotation.", + SingleTypeParameterWithoutTrailingComma: ({ + typeParameterName + }) => `Single type parameter ${typeParameterName} should have a trailing comma. Example usage: <${typeParameterName},>.`, + StaticBlockCannotHaveModifier: "Static class blocks cannot have any modifier.", + TupleOptionalAfterType: "A labeled tuple optional element must be declared using a question mark after the name and before the colon (`name?: type`), rather than after the type (`name: type?`).", + TypeAnnotationAfterAssign: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.", + TypeImportCannotSpecifyDefaultAndNamed: "A type-only import can specify a default import or named bindings, but not both.", + TypeModifierIsUsedInTypeExports: "The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement.", + TypeModifierIsUsedInTypeImports: "The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement.", + UnexpectedParameterModifier: "A parameter property is only allowed in a constructor implementation.", + UnexpectedReadonly: "'readonly' type modifier is only permitted on array and tuple literal types.", + UnexpectedTypeAnnotation: "Did not expect a type annotation here.", + UnexpectedTypeCastInParameter: "Unexpected type cast in parameter position.", + UnsupportedImportTypeArgument: "Argument in a type import must be a string literal.", + UnsupportedParameterPropertyKind: "A parameter property may not be declared using a binding pattern.", + UnsupportedSignatureParameterKind: ({ + type + }) => `Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got ${type}.`, + UsingDeclarationInAmbientContext: kind => `'${kind}' declarations are not allowed in ambient contexts.` +}); +function keywordTypeFromName(value) { + switch (value) { + case "any": + return "TSAnyKeyword"; + case "boolean": + return "TSBooleanKeyword"; + case "bigint": + return "TSBigIntKeyword"; + case "never": + return "TSNeverKeyword"; + case "number": + return "TSNumberKeyword"; + case "object": + return "TSObjectKeyword"; + case "string": + return "TSStringKeyword"; + case "symbol": + return "TSSymbolKeyword"; + case "undefined": + return "TSUndefinedKeyword"; + case "unknown": + return "TSUnknownKeyword"; + default: + return undefined; + } +} +function tsIsAccessModifier(modifier) { + return modifier === "private" || modifier === "public" || modifier === "protected"; +} +function tsIsVarianceAnnotations(modifier) { + return modifier === "in" || modifier === "out"; +} +var typescript = superClass => class TypeScriptParserMixin extends superClass { + constructor(...args) { + super(...args); + this.tsParseInOutModifiers = this.tsParseModifiers.bind(this, { + allowedModifiers: ["in", "out"], + disallowedModifiers: ["const", "public", "private", "protected", "readonly", "declare", "abstract", "override"], + errorTemplate: TSErrors.InvalidModifierOnTypeParameter + }); + this.tsParseConstModifier = this.tsParseModifiers.bind(this, { + allowedModifiers: ["const"], + disallowedModifiers: ["in", "out"], + errorTemplate: TSErrors.InvalidModifierOnTypeParameterPositions + }); + this.tsParseInOutConstModifiers = this.tsParseModifiers.bind(this, { + allowedModifiers: ["in", "out", "const"], + disallowedModifiers: ["public", "private", "protected", "readonly", "declare", "abstract", "override"], + errorTemplate: TSErrors.InvalidModifierOnTypeParameter + }); + } + getScopeHandler() { + return TypeScriptScopeHandler; + } + tsIsIdentifier() { + return tokenIsIdentifier(this.state.type); + } + tsTokenCanFollowModifier() { + return this.match(0) || this.match(5) || this.match(55) || this.match(21) || this.match(139) || this.isLiteralPropertyName(); + } + tsNextTokenOnSameLineAndCanFollowModifier() { + this.next(); + if (this.hasPrecedingLineBreak()) { + return false; + } + return this.tsTokenCanFollowModifier(); + } + tsNextTokenCanFollowModifier() { + if (this.match(106)) { + this.next(); + return this.tsTokenCanFollowModifier(); + } + return this.tsNextTokenOnSameLineAndCanFollowModifier(); + } + tsParseModifier(allowedModifiers, stopOnStartOfClassStaticBlock, hasSeenStaticModifier) { + if (!tokenIsIdentifier(this.state.type) && this.state.type !== 58 && this.state.type !== 75) { + return undefined; + } + const modifier = this.state.value; + if (allowedModifiers.includes(modifier)) { + if (hasSeenStaticModifier && this.match(106)) { + return undefined; + } + if (stopOnStartOfClassStaticBlock && this.tsIsStartOfStaticBlocks()) { + return undefined; + } + if (this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this))) { + return modifier; + } + } + return undefined; + } + tsParseModifiers({ + allowedModifiers, + disallowedModifiers, + stopOnStartOfClassStaticBlock, + errorTemplate = TSErrors.InvalidModifierOnTypeMember + }, modified) { + const enforceOrder = (loc, modifier, before, after) => { + if (modifier === before && modified[after]) { + this.raise(TSErrors.InvalidModifiersOrder, loc, { + orderedModifiers: [before, after] + }); + } + }; + const incompatible = (loc, modifier, mod1, mod2) => { + if (modified[mod1] && modifier === mod2 || modified[mod2] && modifier === mod1) { + this.raise(TSErrors.IncompatibleModifiers, loc, { + modifiers: [mod1, mod2] + }); + } + }; + for (;;) { + const { + startLoc + } = this.state; + const modifier = this.tsParseModifier(allowedModifiers.concat(disallowedModifiers != null ? disallowedModifiers : []), stopOnStartOfClassStaticBlock, modified.static); + if (!modifier) break; + if (tsIsAccessModifier(modifier)) { + if (modified.accessibility) { + this.raise(TSErrors.DuplicateAccessibilityModifier, startLoc, { + modifier + }); + } else { + enforceOrder(startLoc, modifier, modifier, "override"); + enforceOrder(startLoc, modifier, modifier, "static"); + enforceOrder(startLoc, modifier, modifier, "readonly"); + modified.accessibility = modifier; + } + } else if (tsIsVarianceAnnotations(modifier)) { + if (modified[modifier]) { + this.raise(TSErrors.DuplicateModifier, startLoc, { + modifier + }); + } + modified[modifier] = true; + enforceOrder(startLoc, modifier, "in", "out"); + } else { + if (hasOwnProperty.call(modified, modifier)) { + this.raise(TSErrors.DuplicateModifier, startLoc, { + modifier + }); + } else { + enforceOrder(startLoc, modifier, "static", "readonly"); + enforceOrder(startLoc, modifier, "static", "override"); + enforceOrder(startLoc, modifier, "override", "readonly"); + enforceOrder(startLoc, modifier, "abstract", "override"); + incompatible(startLoc, modifier, "declare", "override"); + incompatible(startLoc, modifier, "static", "abstract"); + } + modified[modifier] = true; + } + if (disallowedModifiers != null && disallowedModifiers.includes(modifier)) { + this.raise(errorTemplate, startLoc, { + modifier + }); + } + } + } + tsIsListTerminator(kind) { + switch (kind) { + case "EnumMembers": + case "TypeMembers": + return this.match(8); + case "HeritageClauseElement": + return this.match(5); + case "TupleElementTypes": + return this.match(3); + case "TypeParametersOrArguments": + return this.match(48); + } + } + tsParseList(kind, parseElement) { + const result = []; + while (!this.tsIsListTerminator(kind)) { + result.push(parseElement()); + } + return result; + } + tsParseDelimitedList(kind, parseElement, refTrailingCommaPos) { + return nonNull(this.tsParseDelimitedListWorker(kind, parseElement, true, refTrailingCommaPos)); + } + tsParseDelimitedListWorker(kind, parseElement, expectSuccess, refTrailingCommaPos) { + const result = []; + let trailingCommaPos = -1; + for (;;) { + if (this.tsIsListTerminator(kind)) { + break; + } + trailingCommaPos = -1; + const element = parseElement(); + if (element == null) { + return undefined; + } + result.push(element); + if (this.eat(12)) { + trailingCommaPos = this.state.lastTokStartLoc.index; + continue; + } + if (this.tsIsListTerminator(kind)) { + break; + } + if (expectSuccess) { + this.expect(12); + } + return undefined; + } + if (refTrailingCommaPos) { + refTrailingCommaPos.value = trailingCommaPos; + } + return result; + } + tsParseBracketedList(kind, parseElement, bracket, skipFirstToken, refTrailingCommaPos) { + if (!skipFirstToken) { + if (bracket) { + this.expect(0); + } else { + this.expect(47); + } + } + const result = this.tsParseDelimitedList(kind, parseElement, refTrailingCommaPos); + if (bracket) { + this.expect(3); + } else { + this.expect(48); + } + return result; + } + tsParseImportType() { + const node = this.startNode(); + this.expect(83); + this.expect(10); + if (!this.match(134)) { + this.raise(TSErrors.UnsupportedImportTypeArgument, this.state.startLoc); + node.argument = super.parseExprAtom(); + } else { + node.argument = this.parseStringLiteral(this.state.value); + } + if (this.eat(12)) { + node.options = this.tsParseImportTypeOptions(); + } else { + node.options = null; + } + this.expect(11); + if (this.eat(16)) { + node.qualifier = this.tsParseEntityName(1 | 2); + } + if (this.match(47)) { + node.typeParameters = this.tsParseTypeArguments(); + } + return this.finishNode(node, "TSImportType"); + } + tsParseImportTypeOptions() { + const node = this.startNode(); + this.expect(5); + const withProperty = this.startNode(); + if (this.isContextual(76)) { + withProperty.method = false; + withProperty.key = this.parseIdentifier(true); + withProperty.computed = false; + withProperty.shorthand = false; + } else { + this.unexpected(null, 76); + } + this.expect(14); + withProperty.value = this.tsParseImportTypeWithPropertyValue(); + node.properties = [this.finishObjectProperty(withProperty)]; + this.eat(12); + this.expect(8); + return this.finishNode(node, "ObjectExpression"); + } + tsParseImportTypeWithPropertyValue() { + const node = this.startNode(); + const properties = []; + this.expect(5); + while (!this.match(8)) { + const type = this.state.type; + if (tokenIsIdentifier(type) || type === 134) { + properties.push(super.parsePropertyDefinition(null)); + } else { + this.unexpected(); + } + this.eat(12); + } + node.properties = properties; + this.next(); + return this.finishNode(node, "ObjectExpression"); + } + tsParseEntityName(flags) { + let entity; + if (flags & 1 && this.match(78)) { + if (flags & 2) { + entity = this.parseIdentifier(true); + } else { + const node = this.startNode(); + this.next(); + entity = this.finishNode(node, "ThisExpression"); + } + } else { + entity = this.parseIdentifier(!!(flags & 1)); + } + while (this.eat(16)) { + const node = this.startNodeAtNode(entity); + node.left = entity; + node.right = this.parseIdentifier(!!(flags & 1)); + entity = this.finishNode(node, "TSQualifiedName"); + } + return entity; + } + tsParseTypeReference() { + const node = this.startNode(); + node.typeName = this.tsParseEntityName(1); + if (!this.hasPrecedingLineBreak() && this.match(47)) { + node.typeParameters = this.tsParseTypeArguments(); + } + return this.finishNode(node, "TSTypeReference"); + } + tsParseThisTypePredicate(lhs) { + this.next(); + const node = this.startNodeAtNode(lhs); + node.parameterName = lhs; + node.typeAnnotation = this.tsParseTypeAnnotation(false); + node.asserts = false; + return this.finishNode(node, "TSTypePredicate"); + } + tsParseThisTypeNode() { + const node = this.startNode(); + this.next(); + return this.finishNode(node, "TSThisType"); + } + tsParseTypeQuery() { + const node = this.startNode(); + this.expect(87); + if (this.match(83)) { + node.exprName = this.tsParseImportType(); + } else { + node.exprName = this.tsParseEntityName(1 | 2); + } + if (!this.hasPrecedingLineBreak() && this.match(47)) { + node.typeParameters = this.tsParseTypeArguments(); + } + return this.finishNode(node, "TSTypeQuery"); + } + tsParseTypeParameter(parseModifiers) { + const node = this.startNode(); + parseModifiers(node); + node.name = this.tsParseTypeParameterName(); + node.constraint = this.tsEatThenParseType(81); + node.default = this.tsEatThenParseType(29); + return this.finishNode(node, "TSTypeParameter"); + } + tsTryParseTypeParameters(parseModifiers) { + if (this.match(47)) { + return this.tsParseTypeParameters(parseModifiers); + } + } + tsParseTypeParameters(parseModifiers) { + const node = this.startNode(); + if (this.match(47) || this.match(143)) { + this.next(); + } else { + this.unexpected(); + } + const refTrailingCommaPos = { + value: -1 + }; + node.params = this.tsParseBracketedList("TypeParametersOrArguments", this.tsParseTypeParameter.bind(this, parseModifiers), false, true, refTrailingCommaPos); + if (node.params.length === 0) { + this.raise(TSErrors.EmptyTypeParameters, node); + } + if (refTrailingCommaPos.value !== -1) { + this.addExtra(node, "trailingComma", refTrailingCommaPos.value); + } + return this.finishNode(node, "TSTypeParameterDeclaration"); + } + tsFillSignature(returnToken, signature) { + const returnTokenRequired = returnToken === 19; + const paramsKey = "parameters"; + const returnTypeKey = "typeAnnotation"; + signature.typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier); + this.expect(10); + signature[paramsKey] = this.tsParseBindingListForSignature(); + if (returnTokenRequired) { + signature[returnTypeKey] = this.tsParseTypeOrTypePredicateAnnotation(returnToken); + } else if (this.match(returnToken)) { + signature[returnTypeKey] = this.tsParseTypeOrTypePredicateAnnotation(returnToken); + } + } + tsParseBindingListForSignature() { + const list = super.parseBindingList(11, 41, 2); + for (const pattern of list) { + const { + type + } = pattern; + if (type === "AssignmentPattern" || type === "TSParameterProperty") { + this.raise(TSErrors.UnsupportedSignatureParameterKind, pattern, { + type + }); + } + } + return list; + } + tsParseTypeMemberSemicolon() { + if (!this.eat(12) && !this.isLineTerminator()) { + this.expect(13); + } + } + tsParseSignatureMember(kind, node) { + this.tsFillSignature(14, node); + this.tsParseTypeMemberSemicolon(); + return this.finishNode(node, kind); + } + tsIsUnambiguouslyIndexSignature() { + this.next(); + if (tokenIsIdentifier(this.state.type)) { + this.next(); + return this.match(14); + } + return false; + } + tsTryParseIndexSignature(node) { + if (!(this.match(0) && this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this)))) { + return; + } + this.expect(0); + const id = this.parseIdentifier(); + id.typeAnnotation = this.tsParseTypeAnnotation(); + this.resetEndLocation(id); + this.expect(3); + node.parameters = [id]; + const type = this.tsTryParseTypeAnnotation(); + if (type) node.typeAnnotation = type; + this.tsParseTypeMemberSemicolon(); + return this.finishNode(node, "TSIndexSignature"); + } + tsParsePropertyOrMethodSignature(node, readonly) { + if (this.eat(17)) node.optional = true; + if (this.match(10) || this.match(47)) { + if (readonly) { + this.raise(TSErrors.ReadonlyForMethodSignature, node); + } + const method = node; + if (method.kind && this.match(47)) { + this.raise(TSErrors.AccessorCannotHaveTypeParameters, this.state.curPosition()); + } + this.tsFillSignature(14, method); + this.tsParseTypeMemberSemicolon(); + const paramsKey = "parameters"; + const returnTypeKey = "typeAnnotation"; + if (method.kind === "get") { + if (method[paramsKey].length > 0) { + this.raise(Errors.BadGetterArity, this.state.curPosition()); + if (this.isThisParam(method[paramsKey][0])) { + this.raise(TSErrors.AccessorCannotDeclareThisParameter, this.state.curPosition()); + } + } + } else if (method.kind === "set") { + if (method[paramsKey].length !== 1) { + this.raise(Errors.BadSetterArity, this.state.curPosition()); + } else { + const firstParameter = method[paramsKey][0]; + if (this.isThisParam(firstParameter)) { + this.raise(TSErrors.AccessorCannotDeclareThisParameter, this.state.curPosition()); + } + if (firstParameter.type === "Identifier" && firstParameter.optional) { + this.raise(TSErrors.SetAccessorCannotHaveOptionalParameter, this.state.curPosition()); + } + if (firstParameter.type === "RestElement") { + this.raise(TSErrors.SetAccessorCannotHaveRestParameter, this.state.curPosition()); + } + } + if (method[returnTypeKey]) { + this.raise(TSErrors.SetAccessorCannotHaveReturnType, method[returnTypeKey]); + } + } else { + method.kind = "method"; + } + return this.finishNode(method, "TSMethodSignature"); + } else { + const property = node; + if (readonly) property.readonly = true; + const type = this.tsTryParseTypeAnnotation(); + if (type) property.typeAnnotation = type; + this.tsParseTypeMemberSemicolon(); + return this.finishNode(property, "TSPropertySignature"); + } + } + tsParseTypeMember() { + const node = this.startNode(); + if (this.match(10) || this.match(47)) { + return this.tsParseSignatureMember("TSCallSignatureDeclaration", node); + } + if (this.match(77)) { + const id = this.startNode(); + this.next(); + if (this.match(10) || this.match(47)) { + return this.tsParseSignatureMember("TSConstructSignatureDeclaration", node); + } else { + node.key = this.createIdentifier(id, "new"); + return this.tsParsePropertyOrMethodSignature(node, false); + } + } + this.tsParseModifiers({ + allowedModifiers: ["readonly"], + disallowedModifiers: ["declare", "abstract", "private", "protected", "public", "static", "override"] + }, node); + const idx = this.tsTryParseIndexSignature(node); + if (idx) { + return idx; + } + super.parsePropertyName(node); + if (!node.computed && node.key.type === "Identifier" && (node.key.name === "get" || node.key.name === "set") && this.tsTokenCanFollowModifier()) { + node.kind = node.key.name; + super.parsePropertyName(node); + if (!this.match(10) && !this.match(47)) { + this.unexpected(null, 10); + } + } + return this.tsParsePropertyOrMethodSignature(node, !!node.readonly); + } + tsParseTypeLiteral() { + const node = this.startNode(); + node.members = this.tsParseObjectTypeMembers(); + return this.finishNode(node, "TSTypeLiteral"); + } + tsParseObjectTypeMembers() { + this.expect(5); + const members = this.tsParseList("TypeMembers", this.tsParseTypeMember.bind(this)); + this.expect(8); + return members; + } + tsIsStartOfMappedType() { + this.next(); + if (this.eat(53)) { + return this.isContextual(122); + } + if (this.isContextual(122)) { + this.next(); + } + if (!this.match(0)) { + return false; + } + this.next(); + if (!this.tsIsIdentifier()) { + return false; + } + this.next(); + return this.match(58); + } + tsParseMappedType() { + const node = this.startNode(); + this.expect(5); + if (this.match(53)) { + node.readonly = this.state.value; + this.next(); + this.expectContextual(122); + } else if (this.eatContextual(122)) { + node.readonly = true; + } + this.expect(0); + const typeParameter = this.startNode(); + typeParameter.name = this.tsParseTypeParameterName(); + typeParameter.constraint = this.tsExpectThenParseType(58); + node.typeParameter = this.finishNode(typeParameter, "TSTypeParameter"); + node.nameType = this.eatContextual(93) ? this.tsParseType() : null; + this.expect(3); + if (this.match(53)) { + node.optional = this.state.value; + this.next(); + this.expect(17); + } else if (this.eat(17)) { + node.optional = true; + } + node.typeAnnotation = this.tsTryParseType(); + this.semicolon(); + this.expect(8); + return this.finishNode(node, "TSMappedType"); + } + tsParseTupleType() { + const node = this.startNode(); + node.elementTypes = this.tsParseBracketedList("TupleElementTypes", this.tsParseTupleElementType.bind(this), true, false); + let seenOptionalElement = false; + node.elementTypes.forEach(elementNode => { + const { + type + } = elementNode; + if (seenOptionalElement && type !== "TSRestType" && type !== "TSOptionalType" && !(type === "TSNamedTupleMember" && elementNode.optional)) { + this.raise(TSErrors.OptionalTypeBeforeRequired, elementNode); + } + seenOptionalElement || (seenOptionalElement = type === "TSNamedTupleMember" && elementNode.optional || type === "TSOptionalType"); + }); + return this.finishNode(node, "TSTupleType"); + } + tsParseTupleElementType() { + const restStartLoc = this.state.startLoc; + const rest = this.eat(21); + const { + startLoc + } = this.state; + let labeled; + let label; + let optional; + let type; + const isWord = tokenIsKeywordOrIdentifier(this.state.type); + const chAfterWord = isWord ? this.lookaheadCharCode() : null; + if (chAfterWord === 58) { + labeled = true; + optional = false; + label = this.parseIdentifier(true); + this.expect(14); + type = this.tsParseType(); + } else if (chAfterWord === 63) { + optional = true; + const wordName = this.state.value; + const typeOrLabel = this.tsParseNonArrayType(); + if (this.lookaheadCharCode() === 58) { + labeled = true; + label = this.createIdentifier(this.startNodeAt(startLoc), wordName); + this.expect(17); + this.expect(14); + type = this.tsParseType(); + } else { + labeled = false; + type = typeOrLabel; + this.expect(17); + } + } else { + type = this.tsParseType(); + optional = this.eat(17); + labeled = this.eat(14); + } + if (labeled) { + let labeledNode; + if (label) { + labeledNode = this.startNodeAt(startLoc); + labeledNode.optional = optional; + labeledNode.label = label; + labeledNode.elementType = type; + if (this.eat(17)) { + labeledNode.optional = true; + this.raise(TSErrors.TupleOptionalAfterType, this.state.lastTokStartLoc); + } + } else { + labeledNode = this.startNodeAt(startLoc); + labeledNode.optional = optional; + this.raise(TSErrors.InvalidTupleMemberLabel, type); + labeledNode.label = type; + labeledNode.elementType = this.tsParseType(); + } + type = this.finishNode(labeledNode, "TSNamedTupleMember"); + } else if (optional) { + const optionalTypeNode = this.startNodeAt(startLoc); + optionalTypeNode.typeAnnotation = type; + type = this.finishNode(optionalTypeNode, "TSOptionalType"); + } + if (rest) { + const restNode = this.startNodeAt(restStartLoc); + restNode.typeAnnotation = type; + type = this.finishNode(restNode, "TSRestType"); + } + return type; + } + tsParseParenthesizedType() { + const node = this.startNode(); + this.expect(10); + node.typeAnnotation = this.tsParseType(); + this.expect(11); + return this.finishNode(node, "TSParenthesizedType"); + } + tsParseFunctionOrConstructorType(type, abstract) { + const node = this.startNode(); + if (type === "TSConstructorType") { + node.abstract = !!abstract; + if (abstract) this.next(); + this.next(); + } + this.tsInAllowConditionalTypesContext(() => this.tsFillSignature(19, node)); + return this.finishNode(node, type); + } + tsParseLiteralTypeNode() { + const node = this.startNode(); + switch (this.state.type) { + case 135: + case 136: + case 134: + case 85: + case 86: + node.literal = super.parseExprAtom(); + break; + default: + this.unexpected(); + } + return this.finishNode(node, "TSLiteralType"); + } + tsParseTemplateLiteralType() { + const node = this.startNode(); + node.literal = super.parseTemplate(false); + return this.finishNode(node, "TSLiteralType"); + } + parseTemplateSubstitution() { + if (this.state.inType) return this.tsParseType(); + return super.parseTemplateSubstitution(); + } + tsParseThisTypeOrThisTypePredicate() { + const thisKeyword = this.tsParseThisTypeNode(); + if (this.isContextual(116) && !this.hasPrecedingLineBreak()) { + return this.tsParseThisTypePredicate(thisKeyword); + } else { + return thisKeyword; + } + } + tsParseNonArrayType() { + switch (this.state.type) { + case 134: + case 135: + case 136: + case 85: + case 86: + return this.tsParseLiteralTypeNode(); + case 53: + if (this.state.value === "-") { + const node = this.startNode(); + const nextToken = this.lookahead(); + if (nextToken.type !== 135 && nextToken.type !== 136) { + this.unexpected(); + } + node.literal = this.parseMaybeUnary(); + return this.finishNode(node, "TSLiteralType"); + } + break; + case 78: + return this.tsParseThisTypeOrThisTypePredicate(); + case 87: + return this.tsParseTypeQuery(); + case 83: + return this.tsParseImportType(); + case 5: + return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this)) ? this.tsParseMappedType() : this.tsParseTypeLiteral(); + case 0: + return this.tsParseTupleType(); + case 10: + return this.tsParseParenthesizedType(); + case 25: + case 24: + return this.tsParseTemplateLiteralType(); + default: + { + const { + type + } = this.state; + if (tokenIsIdentifier(type) || type === 88 || type === 84) { + const nodeType = type === 88 ? "TSVoidKeyword" : type === 84 ? "TSNullKeyword" : keywordTypeFromName(this.state.value); + if (nodeType !== undefined && this.lookaheadCharCode() !== 46) { + const node = this.startNode(); + this.next(); + return this.finishNode(node, nodeType); + } + return this.tsParseTypeReference(); + } + } + } + throw this.unexpected(); + } + tsParseArrayTypeOrHigher() { + const { + startLoc + } = this.state; + let type = this.tsParseNonArrayType(); + while (!this.hasPrecedingLineBreak() && this.eat(0)) { + if (this.match(3)) { + const node = this.startNodeAt(startLoc); + node.elementType = type; + this.expect(3); + type = this.finishNode(node, "TSArrayType"); + } else { + const node = this.startNodeAt(startLoc); + node.objectType = type; + node.indexType = this.tsParseType(); + this.expect(3); + type = this.finishNode(node, "TSIndexedAccessType"); + } + } + return type; + } + tsParseTypeOperator() { + const node = this.startNode(); + const operator = this.state.value; + this.next(); + node.operator = operator; + node.typeAnnotation = this.tsParseTypeOperatorOrHigher(); + if (operator === "readonly") { + this.tsCheckTypeAnnotationForReadOnly(node); + } + return this.finishNode(node, "TSTypeOperator"); + } + tsCheckTypeAnnotationForReadOnly(node) { + switch (node.typeAnnotation.type) { + case "TSTupleType": + case "TSArrayType": + return; + default: + this.raise(TSErrors.UnexpectedReadonly, node); + } + } + tsParseInferType() { + const node = this.startNode(); + this.expectContextual(115); + const typeParameter = this.startNode(); + typeParameter.name = this.tsParseTypeParameterName(); + typeParameter.constraint = this.tsTryParse(() => this.tsParseConstraintForInferType()); + node.typeParameter = this.finishNode(typeParameter, "TSTypeParameter"); + return this.finishNode(node, "TSInferType"); + } + tsParseConstraintForInferType() { + if (this.eat(81)) { + const constraint = this.tsInDisallowConditionalTypesContext(() => this.tsParseType()); + if (this.state.inDisallowConditionalTypesContext || !this.match(17)) { + return constraint; + } + } + } + tsParseTypeOperatorOrHigher() { + const isTypeOperator = tokenIsTSTypeOperator(this.state.type) && !this.state.containsEsc; + return isTypeOperator ? this.tsParseTypeOperator() : this.isContextual(115) ? this.tsParseInferType() : this.tsInAllowConditionalTypesContext(() => this.tsParseArrayTypeOrHigher()); + } + tsParseUnionOrIntersectionType(kind, parseConstituentType, operator) { + const node = this.startNode(); + const hasLeadingOperator = this.eat(operator); + const types = []; + do { + types.push(parseConstituentType()); + } while (this.eat(operator)); + if (types.length === 1 && !hasLeadingOperator) { + return types[0]; + } + node.types = types; + return this.finishNode(node, kind); + } + tsParseIntersectionTypeOrHigher() { + return this.tsParseUnionOrIntersectionType("TSIntersectionType", this.tsParseTypeOperatorOrHigher.bind(this), 45); + } + tsParseUnionTypeOrHigher() { + return this.tsParseUnionOrIntersectionType("TSUnionType", this.tsParseIntersectionTypeOrHigher.bind(this), 43); + } + tsIsStartOfFunctionType() { + if (this.match(47)) { + return true; + } + return this.match(10) && this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this)); + } + tsSkipParameterStart() { + if (tokenIsIdentifier(this.state.type) || this.match(78)) { + this.next(); + return true; + } + if (this.match(5)) { + const { + errors + } = this.state; + const previousErrorCount = errors.length; + try { + this.parseObjectLike(8, true); + return errors.length === previousErrorCount; + } catch (_unused) { + return false; + } + } + if (this.match(0)) { + this.next(); + const { + errors + } = this.state; + const previousErrorCount = errors.length; + try { + super.parseBindingList(3, 93, 1); + return errors.length === previousErrorCount; + } catch (_unused2) { + return false; + } + } + return false; + } + tsIsUnambiguouslyStartOfFunctionType() { + this.next(); + if (this.match(11) || this.match(21)) { + return true; + } + if (this.tsSkipParameterStart()) { + if (this.match(14) || this.match(12) || this.match(17) || this.match(29)) { + return true; + } + if (this.match(11)) { + this.next(); + if (this.match(19)) { + return true; + } + } + } + return false; + } + tsParseTypeOrTypePredicateAnnotation(returnToken) { + return this.tsInType(() => { + const t = this.startNode(); + this.expect(returnToken); + const node = this.startNode(); + const asserts = !!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this)); + if (asserts && this.match(78)) { + let thisTypePredicate = this.tsParseThisTypeOrThisTypePredicate(); + if (thisTypePredicate.type === "TSThisType") { + node.parameterName = thisTypePredicate; + node.asserts = true; + node.typeAnnotation = null; + thisTypePredicate = this.finishNode(node, "TSTypePredicate"); + } else { + this.resetStartLocationFromNode(thisTypePredicate, node); + thisTypePredicate.asserts = true; + } + t.typeAnnotation = thisTypePredicate; + return this.finishNode(t, "TSTypeAnnotation"); + } + const typePredicateVariable = this.tsIsIdentifier() && this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this)); + if (!typePredicateVariable) { + if (!asserts) { + return this.tsParseTypeAnnotation(false, t); + } + node.parameterName = this.parseIdentifier(); + node.asserts = asserts; + node.typeAnnotation = null; + t.typeAnnotation = this.finishNode(node, "TSTypePredicate"); + return this.finishNode(t, "TSTypeAnnotation"); + } + const type = this.tsParseTypeAnnotation(false); + node.parameterName = typePredicateVariable; + node.typeAnnotation = type; + node.asserts = asserts; + t.typeAnnotation = this.finishNode(node, "TSTypePredicate"); + return this.finishNode(t, "TSTypeAnnotation"); + }); + } + tsTryParseTypeOrTypePredicateAnnotation() { + if (this.match(14)) { + return this.tsParseTypeOrTypePredicateAnnotation(14); + } + } + tsTryParseTypeAnnotation() { + if (this.match(14)) { + return this.tsParseTypeAnnotation(); + } + } + tsTryParseType() { + return this.tsEatThenParseType(14); + } + tsParseTypePredicatePrefix() { + const id = this.parseIdentifier(); + if (this.isContextual(116) && !this.hasPrecedingLineBreak()) { + this.next(); + return id; + } + } + tsParseTypePredicateAsserts() { + if (this.state.type !== 109) { + return false; + } + const containsEsc = this.state.containsEsc; + this.next(); + if (!tokenIsIdentifier(this.state.type) && !this.match(78)) { + return false; + } + if (containsEsc) { + this.raise(Errors.InvalidEscapedReservedWord, this.state.lastTokStartLoc, { + reservedWord: "asserts" + }); + } + return true; + } + tsParseTypeAnnotation(eatColon = true, t = this.startNode()) { + this.tsInType(() => { + if (eatColon) this.expect(14); + t.typeAnnotation = this.tsParseType(); + }); + return this.finishNode(t, "TSTypeAnnotation"); + } + tsParseType() { + assert(this.state.inType); + const type = this.tsParseNonConditionalType(); + if (this.state.inDisallowConditionalTypesContext || this.hasPrecedingLineBreak() || !this.eat(81)) { + return type; + } + const node = this.startNodeAtNode(type); + node.checkType = type; + node.extendsType = this.tsInDisallowConditionalTypesContext(() => this.tsParseNonConditionalType()); + this.expect(17); + node.trueType = this.tsInAllowConditionalTypesContext(() => this.tsParseType()); + this.expect(14); + node.falseType = this.tsInAllowConditionalTypesContext(() => this.tsParseType()); + return this.finishNode(node, "TSConditionalType"); + } + isAbstractConstructorSignature() { + return this.isContextual(124) && this.isLookaheadContextual("new"); + } + tsParseNonConditionalType() { + if (this.tsIsStartOfFunctionType()) { + return this.tsParseFunctionOrConstructorType("TSFunctionType"); + } + if (this.match(77)) { + return this.tsParseFunctionOrConstructorType("TSConstructorType"); + } else if (this.isAbstractConstructorSignature()) { + return this.tsParseFunctionOrConstructorType("TSConstructorType", true); + } + return this.tsParseUnionTypeOrHigher(); + } + tsParseTypeAssertion() { + if (this.getPluginOption("typescript", "disallowAmbiguousJSXLike")) { + this.raise(TSErrors.ReservedTypeAssertion, this.state.startLoc); + } + const node = this.startNode(); + node.typeAnnotation = this.tsInType(() => { + this.next(); + return this.match(75) ? this.tsParseTypeReference() : this.tsParseType(); + }); + this.expect(48); + node.expression = this.parseMaybeUnary(); + return this.finishNode(node, "TSTypeAssertion"); + } + tsParseHeritageClause(token) { + const originalStartLoc = this.state.startLoc; + const delimitedList = this.tsParseDelimitedList("HeritageClauseElement", () => { + const node = this.startNode(); + node.expression = this.tsParseEntityName(1 | 2); + if (this.match(47)) { + node.typeParameters = this.tsParseTypeArguments(); + } + return this.finishNode(node, "TSExpressionWithTypeArguments"); + }); + if (!delimitedList.length) { + this.raise(TSErrors.EmptyHeritageClauseType, originalStartLoc, { + token + }); + } + return delimitedList; + } + tsParseInterfaceDeclaration(node, properties = {}) { + if (this.hasFollowingLineBreak()) return null; + this.expectContextual(129); + if (properties.declare) node.declare = true; + if (tokenIsIdentifier(this.state.type)) { + node.id = this.parseIdentifier(); + this.checkIdentifier(node.id, 130); + } else { + node.id = null; + this.raise(TSErrors.MissingInterfaceName, this.state.startLoc); + } + node.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers); + if (this.eat(81)) { + node.extends = this.tsParseHeritageClause("extends"); + } + const body = this.startNode(); + body.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this)); + node.body = this.finishNode(body, "TSInterfaceBody"); + return this.finishNode(node, "TSInterfaceDeclaration"); + } + tsParseTypeAliasDeclaration(node) { + node.id = this.parseIdentifier(); + this.checkIdentifier(node.id, 2); + node.typeAnnotation = this.tsInType(() => { + node.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutModifiers); + this.expect(29); + if (this.isContextual(114) && this.lookaheadCharCode() !== 46) { + const node = this.startNode(); + this.next(); + return this.finishNode(node, "TSIntrinsicKeyword"); + } + return this.tsParseType(); + }); + this.semicolon(); + return this.finishNode(node, "TSTypeAliasDeclaration"); + } + tsInTopLevelContext(cb) { + if (this.curContext() !== types.brace) { + const oldContext = this.state.context; + this.state.context = [oldContext[0]]; + try { + return cb(); + } finally { + this.state.context = oldContext; + } + } else { + return cb(); + } + } + tsInType(cb) { + const oldInType = this.state.inType; + this.state.inType = true; + try { + return cb(); + } finally { + this.state.inType = oldInType; + } + } + tsInDisallowConditionalTypesContext(cb) { + const oldInDisallowConditionalTypesContext = this.state.inDisallowConditionalTypesContext; + this.state.inDisallowConditionalTypesContext = true; + try { + return cb(); + } finally { + this.state.inDisallowConditionalTypesContext = oldInDisallowConditionalTypesContext; + } + } + tsInAllowConditionalTypesContext(cb) { + const oldInDisallowConditionalTypesContext = this.state.inDisallowConditionalTypesContext; + this.state.inDisallowConditionalTypesContext = false; + try { + return cb(); + } finally { + this.state.inDisallowConditionalTypesContext = oldInDisallowConditionalTypesContext; + } + } + tsEatThenParseType(token) { + if (this.match(token)) { + return this.tsNextThenParseType(); + } + } + tsExpectThenParseType(token) { + return this.tsInType(() => { + this.expect(token); + return this.tsParseType(); + }); + } + tsNextThenParseType() { + return this.tsInType(() => { + this.next(); + return this.tsParseType(); + }); + } + tsParseEnumMember() { + const node = this.startNode(); + node.id = this.match(134) ? super.parseStringLiteral(this.state.value) : this.parseIdentifier(true); + if (this.eat(29)) { + node.initializer = super.parseMaybeAssignAllowIn(); + } + return this.finishNode(node, "TSEnumMember"); + } + tsParseEnumDeclaration(node, properties = {}) { + if (properties.const) node.const = true; + if (properties.declare) node.declare = true; + this.expectContextual(126); + node.id = this.parseIdentifier(); + this.checkIdentifier(node.id, node.const ? 8971 : 8459); + this.expect(5); + node.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this)); + this.expect(8); + return this.finishNode(node, "TSEnumDeclaration"); + } + tsParseEnumBody() { + const node = this.startNode(); + this.expect(5); + node.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this)); + this.expect(8); + return this.finishNode(node, "TSEnumBody"); + } + tsParseModuleBlock() { + const node = this.startNode(); + this.scope.enter(0); + this.expect(5); + super.parseBlockOrModuleBlockBody(node.body = [], undefined, true, 8); + this.scope.exit(); + return this.finishNode(node, "TSModuleBlock"); + } + tsParseModuleOrNamespaceDeclaration(node, nested = false) { + node.id = this.parseIdentifier(); + if (!nested) { + this.checkIdentifier(node.id, 1024); + } + if (this.eat(16)) { + const inner = this.startNode(); + this.tsParseModuleOrNamespaceDeclaration(inner, true); + node.body = inner; + } else { + this.scope.enter(1024); + this.prodParam.enter(0); + node.body = this.tsParseModuleBlock(); + this.prodParam.exit(); + this.scope.exit(); + } + return this.finishNode(node, "TSModuleDeclaration"); + } + tsParseAmbientExternalModuleDeclaration(node) { + if (this.isContextual(112)) { + node.kind = "global"; + node.global = true; + node.id = this.parseIdentifier(); + } else if (this.match(134)) { + node.kind = "module"; + node.id = super.parseStringLiteral(this.state.value); + } else { + this.unexpected(); + } + if (this.match(5)) { + this.scope.enter(1024); + this.prodParam.enter(0); + node.body = this.tsParseModuleBlock(); + this.prodParam.exit(); + this.scope.exit(); + } else { + this.semicolon(); + } + return this.finishNode(node, "TSModuleDeclaration"); + } + tsParseImportEqualsDeclaration(node, maybeDefaultIdentifier, isExport) { + node.isExport = isExport || false; + node.id = maybeDefaultIdentifier || this.parseIdentifier(); + this.checkIdentifier(node.id, 4096); + this.expect(29); + const moduleReference = this.tsParseModuleReference(); + if (node.importKind === "type" && moduleReference.type !== "TSExternalModuleReference") { + this.raise(TSErrors.ImportAliasHasImportType, moduleReference); + } + node.moduleReference = moduleReference; + this.semicolon(); + return this.finishNode(node, "TSImportEqualsDeclaration"); + } + tsIsExternalModuleReference() { + return this.isContextual(119) && this.lookaheadCharCode() === 40; + } + tsParseModuleReference() { + return this.tsIsExternalModuleReference() ? this.tsParseExternalModuleReference() : this.tsParseEntityName(0); + } + tsParseExternalModuleReference() { + const node = this.startNode(); + this.expectContextual(119); + this.expect(10); + if (!this.match(134)) { + this.unexpected(); + } + node.expression = super.parseExprAtom(); + this.expect(11); + this.sawUnambiguousESM = true; + return this.finishNode(node, "TSExternalModuleReference"); + } + tsLookAhead(f) { + const state = this.state.clone(); + const res = f(); + this.state = state; + return res; + } + tsTryParseAndCatch(f) { + const result = this.tryParse(abort => f() || abort()); + if (result.aborted || !result.node) return; + if (result.error) this.state = result.failState; + return result.node; + } + tsTryParse(f) { + const state = this.state.clone(); + const result = f(); + if (result !== undefined && result !== false) { + return result; + } + this.state = state; + } + tsTryParseDeclare(node) { + if (this.isLineTerminator()) { + return; + } + const startType = this.state.type; + return this.tsInAmbientContext(() => { + switch (startType) { + case 68: + node.declare = true; + return super.parseFunctionStatement(node, false, false); + case 80: + node.declare = true; + return this.parseClass(node, true, false); + case 126: + return this.tsParseEnumDeclaration(node, { + declare: true + }); + case 112: + return this.tsParseAmbientExternalModuleDeclaration(node); + case 100: + if (this.state.containsEsc) { + return; + } + case 75: + case 74: + if (!this.match(75) || !this.isLookaheadContextual("enum")) { + node.declare = true; + return this.parseVarStatement(node, this.state.value, true); + } + this.expect(75); + return this.tsParseEnumDeclaration(node, { + const: true, + declare: true + }); + case 107: + if (this.isUsing()) { + this.raise(TSErrors.InvalidModifierOnUsingDeclaration, this.state.startLoc, "declare"); + node.declare = true; + return this.parseVarStatement(node, "using", true); + } + break; + case 96: + if (this.isAwaitUsing()) { + this.raise(TSErrors.InvalidModifierOnAwaitUsingDeclaration, this.state.startLoc, "declare"); + node.declare = true; + this.next(); + return this.parseVarStatement(node, "await using", true); + } + break; + case 129: + { + const result = this.tsParseInterfaceDeclaration(node, { + declare: true + }); + if (result) return result; + } + default: + if (tokenIsIdentifier(startType)) { + return this.tsParseDeclaration(node, this.state.type, true, null); + } + } + }); + } + tsTryParseExportDeclaration() { + return this.tsParseDeclaration(this.startNode(), this.state.type, true, null); + } + tsParseDeclaration(node, type, next, decorators) { + switch (type) { + case 124: + if (this.tsCheckLineTerminator(next) && (this.match(80) || tokenIsIdentifier(this.state.type))) { + return this.tsParseAbstractDeclaration(node, decorators); + } + break; + case 127: + if (this.tsCheckLineTerminator(next)) { + if (this.match(134)) { + return this.tsParseAmbientExternalModuleDeclaration(node); + } else if (tokenIsIdentifier(this.state.type)) { + node.kind = "module"; + return this.tsParseModuleOrNamespaceDeclaration(node); + } + } + break; + case 128: + if (this.tsCheckLineTerminator(next) && tokenIsIdentifier(this.state.type)) { + node.kind = "namespace"; + return this.tsParseModuleOrNamespaceDeclaration(node); + } + break; + case 130: + if (this.tsCheckLineTerminator(next) && tokenIsIdentifier(this.state.type)) { + return this.tsParseTypeAliasDeclaration(node); + } + break; + } + } + tsCheckLineTerminator(next) { + if (next) { + if (this.hasFollowingLineBreak()) return false; + this.next(); + return true; + } + return !this.isLineTerminator(); + } + tsTryParseGenericAsyncArrowFunction(startLoc) { + if (!this.match(47)) return; + const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; + this.state.maybeInArrowParameters = true; + const res = this.tsTryParseAndCatch(() => { + const node = this.startNodeAt(startLoc); + node.typeParameters = this.tsParseTypeParameters(this.tsParseConstModifier); + super.parseFunctionParams(node); + node.returnType = this.tsTryParseTypeOrTypePredicateAnnotation(); + this.expect(19); + return node; + }); + this.state.maybeInArrowParameters = oldMaybeInArrowParameters; + if (!res) return; + return super.parseArrowExpression(res, null, true); + } + tsParseTypeArgumentsInExpression() { + if (this.reScan_lt() !== 47) return; + return this.tsParseTypeArguments(); + } + tsParseTypeArguments() { + const node = this.startNode(); + node.params = this.tsInType(() => this.tsInTopLevelContext(() => { + this.expect(47); + return this.tsParseDelimitedList("TypeParametersOrArguments", this.tsParseType.bind(this)); + })); + if (node.params.length === 0) { + this.raise(TSErrors.EmptyTypeArguments, node); + } else if (!this.state.inType && this.curContext() === types.brace) { + this.reScan_lt_gt(); + } + this.expect(48); + return this.finishNode(node, "TSTypeParameterInstantiation"); + } + tsIsDeclarationStart() { + return tokenIsTSDeclarationStart(this.state.type); + } + isExportDefaultSpecifier() { + if (this.tsIsDeclarationStart()) return false; + return super.isExportDefaultSpecifier(); + } + parseBindingElement(flags, decorators) { + const startLoc = decorators.length ? decorators[0].loc.start : this.state.startLoc; + const modified = {}; + this.tsParseModifiers({ + allowedModifiers: ["public", "private", "protected", "override", "readonly"] + }, modified); + const accessibility = modified.accessibility; + const override = modified.override; + const readonly = modified.readonly; + if (!(flags & 4) && (accessibility || readonly || override)) { + this.raise(TSErrors.UnexpectedParameterModifier, startLoc); + } + const left = this.parseMaybeDefault(); + if (flags & 2) { + this.parseFunctionParamType(left); + } + const elt = this.parseMaybeDefault(left.loc.start, left); + if (accessibility || readonly || override) { + const pp = this.startNodeAt(startLoc); + if (decorators.length) { + pp.decorators = decorators; + } + if (accessibility) pp.accessibility = accessibility; + if (readonly) pp.readonly = readonly; + if (override) pp.override = override; + if (elt.type !== "Identifier" && elt.type !== "AssignmentPattern") { + this.raise(TSErrors.UnsupportedParameterPropertyKind, pp); + } + pp.parameter = elt; + return this.finishNode(pp, "TSParameterProperty"); + } + if (decorators.length) { + left.decorators = decorators; + } + return elt; + } + isSimpleParameter(node) { + return node.type === "TSParameterProperty" && super.isSimpleParameter(node.parameter) || super.isSimpleParameter(node); + } + tsDisallowOptionalPattern(node) { + for (const param of node.params) { + if (param.type !== "Identifier" && param.optional && !this.state.isAmbientContext) { + this.raise(TSErrors.PatternIsOptional, param); + } + } + } + setArrowFunctionParameters(node, params, trailingCommaLoc) { + super.setArrowFunctionParameters(node, params, trailingCommaLoc); + this.tsDisallowOptionalPattern(node); + } + parseFunctionBodyAndFinish(node, type, isMethod = false) { + if (this.match(14)) { + node.returnType = this.tsParseTypeOrTypePredicateAnnotation(14); + } + const bodilessType = type === "FunctionDeclaration" ? "TSDeclareFunction" : type === "ClassMethod" || type === "ClassPrivateMethod" ? "TSDeclareMethod" : undefined; + if (bodilessType && !this.match(5) && this.isLineTerminator()) { + return this.finishNode(node, bodilessType); + } + if (bodilessType === "TSDeclareFunction" && this.state.isAmbientContext) { + this.raise(TSErrors.DeclareFunctionHasImplementation, node); + if (node.declare) { + return super.parseFunctionBodyAndFinish(node, bodilessType, isMethod); + } + } + this.tsDisallowOptionalPattern(node); + return super.parseFunctionBodyAndFinish(node, type, isMethod); + } + registerFunctionStatementId(node) { + if (!node.body && node.id) { + this.checkIdentifier(node.id, 1024); + } else { + super.registerFunctionStatementId(node); + } + } + tsCheckForInvalidTypeCasts(items) { + items.forEach(node => { + if ((node == null ? void 0 : node.type) === "TSTypeCastExpression") { + this.raise(TSErrors.UnexpectedTypeAnnotation, node.typeAnnotation); + } + }); + } + toReferencedList(exprList, isInParens) { + this.tsCheckForInvalidTypeCasts(exprList); + return exprList; + } + parseArrayLike(close, isTuple, refExpressionErrors) { + const node = super.parseArrayLike(close, isTuple, refExpressionErrors); + if (node.type === "ArrayExpression") { + this.tsCheckForInvalidTypeCasts(node.elements); + } + return node; + } + parseSubscript(base, startLoc, noCalls, state) { + if (!this.hasPrecedingLineBreak() && this.match(35)) { + this.state.canStartJSXElement = false; + this.next(); + const nonNullExpression = this.startNodeAt(startLoc); + nonNullExpression.expression = base; + return this.finishNode(nonNullExpression, "TSNonNullExpression"); + } + let isOptionalCall = false; + if (this.match(18) && this.lookaheadCharCode() === 60) { + if (noCalls) { + state.stop = true; + return base; + } + state.optionalChainMember = isOptionalCall = true; + this.next(); + } + if (this.match(47) || this.match(51)) { + let missingParenErrorLoc; + const result = this.tsTryParseAndCatch(() => { + if (!noCalls && this.atPossibleAsyncArrow(base)) { + const asyncArrowFn = this.tsTryParseGenericAsyncArrowFunction(startLoc); + if (asyncArrowFn) { + state.stop = true; + return asyncArrowFn; + } + } + const typeArguments = this.tsParseTypeArgumentsInExpression(); + if (!typeArguments) return; + if (isOptionalCall && !this.match(10)) { + missingParenErrorLoc = this.state.curPosition(); + return; + } + if (tokenIsTemplate(this.state.type)) { + const result = super.parseTaggedTemplateExpression(base, startLoc, state); + result.typeParameters = typeArguments; + return result; + } + if (!noCalls && this.eat(10)) { + const node = this.startNodeAt(startLoc); + node.callee = base; + node.arguments = this.parseCallExpressionArguments(); + this.tsCheckForInvalidTypeCasts(node.arguments); + node.typeParameters = typeArguments; + if (state.optionalChainMember) { + node.optional = isOptionalCall; + } + return this.finishCallExpression(node, state.optionalChainMember); + } + const tokenType = this.state.type; + if (tokenType === 48 || tokenType === 52 || tokenType !== 10 && tokenType !== 93 && tokenType !== 120 && tokenCanStartExpression(tokenType) && !this.hasPrecedingLineBreak()) { + return; + } + const node = this.startNodeAt(startLoc); + node.expression = base; + node.typeParameters = typeArguments; + return this.finishNode(node, "TSInstantiationExpression"); + }); + if (missingParenErrorLoc) { + this.unexpected(missingParenErrorLoc, 10); + } + if (result) { + if (result.type === "TSInstantiationExpression") { + if (this.match(16) || this.match(18) && this.lookaheadCharCode() !== 40) { + this.raise(TSErrors.InvalidPropertyAccessAfterInstantiationExpression, this.state.startLoc); + } + if (!this.match(16) && !this.match(18)) { + result.expression = super.stopParseSubscript(base, state); + } + } + return result; + } + } + return super.parseSubscript(base, startLoc, noCalls, state); + } + parseNewCallee(node) { + var _callee$extra; + super.parseNewCallee(node); + const { + callee + } = node; + if (callee.type === "TSInstantiationExpression" && !((_callee$extra = callee.extra) != null && _callee$extra.parenthesized)) { + node.typeParameters = callee.typeParameters; + node.callee = callee.expression; + } + } + parseExprOp(left, leftStartLoc, minPrec) { + let isSatisfies; + if (tokenOperatorPrecedence(58) > minPrec && !this.hasPrecedingLineBreak() && (this.isContextual(93) || (isSatisfies = this.isContextual(120)))) { + const node = this.startNodeAt(leftStartLoc); + node.expression = left; + node.typeAnnotation = this.tsInType(() => { + this.next(); + if (this.match(75)) { + if (isSatisfies) { + this.raise(Errors.UnexpectedKeyword, this.state.startLoc, { + keyword: "const" + }); + } + return this.tsParseTypeReference(); + } + return this.tsParseType(); + }); + this.finishNode(node, isSatisfies ? "TSSatisfiesExpression" : "TSAsExpression"); + this.reScan_lt_gt(); + return this.parseExprOp(node, leftStartLoc, minPrec); + } + return super.parseExprOp(left, leftStartLoc, minPrec); + } + checkReservedWord(word, startLoc, checkKeywords, isBinding) { + if (!this.state.isAmbientContext) { + super.checkReservedWord(word, startLoc, checkKeywords, isBinding); + } + } + checkImportReflection(node) { + super.checkImportReflection(node); + if (node.module && node.importKind !== "value") { + this.raise(TSErrors.ImportReflectionHasImportType, node.specifiers[0].loc.start); + } + } + checkDuplicateExports() {} + isPotentialImportPhase(isExport) { + if (super.isPotentialImportPhase(isExport)) return true; + if (this.isContextual(130)) { + const ch = this.lookaheadCharCode(); + return isExport ? ch === 123 || ch === 42 : ch !== 61; + } + return !isExport && this.isContextual(87); + } + applyImportPhase(node, isExport, phase, loc) { + super.applyImportPhase(node, isExport, phase, loc); + if (isExport) { + node.exportKind = phase === "type" ? "type" : "value"; + } else { + node.importKind = phase === "type" || phase === "typeof" ? phase : "value"; + } + } + parseImport(node) { + if (this.match(134)) { + node.importKind = "value"; + return super.parseImport(node); + } + let importNode; + if (tokenIsIdentifier(this.state.type) && this.lookaheadCharCode() === 61) { + node.importKind = "value"; + return this.tsParseImportEqualsDeclaration(node); + } else if (this.isContextual(130)) { + const maybeDefaultIdentifier = this.parseMaybeImportPhase(node, false); + if (this.lookaheadCharCode() === 61) { + return this.tsParseImportEqualsDeclaration(node, maybeDefaultIdentifier); + } else { + importNode = super.parseImportSpecifiersAndAfter(node, maybeDefaultIdentifier); + } + } else { + importNode = super.parseImport(node); + } + if (importNode.importKind === "type" && importNode.specifiers.length > 1 && importNode.specifiers[0].type === "ImportDefaultSpecifier") { + this.raise(TSErrors.TypeImportCannotSpecifyDefaultAndNamed, importNode); + } + return importNode; + } + parseExport(node, decorators) { + if (this.match(83)) { + const nodeImportEquals = node; + this.next(); + let maybeDefaultIdentifier = null; + if (this.isContextual(130) && this.isPotentialImportPhase(false)) { + maybeDefaultIdentifier = this.parseMaybeImportPhase(nodeImportEquals, false); + } else { + nodeImportEquals.importKind = "value"; + } + const declaration = this.tsParseImportEqualsDeclaration(nodeImportEquals, maybeDefaultIdentifier, true); + return declaration; + } else if (this.eat(29)) { + const assign = node; + assign.expression = super.parseExpression(); + this.semicolon(); + this.sawUnambiguousESM = true; + return this.finishNode(assign, "TSExportAssignment"); + } else if (this.eatContextual(93)) { + const decl = node; + this.expectContextual(128); + decl.id = this.parseIdentifier(); + this.semicolon(); + return this.finishNode(decl, "TSNamespaceExportDeclaration"); + } else { + return super.parseExport(node, decorators); + } + } + isAbstractClass() { + return this.isContextual(124) && this.isLookaheadContextual("class"); + } + parseExportDefaultExpression() { + if (this.isAbstractClass()) { + const cls = this.startNode(); + this.next(); + cls.abstract = true; + return this.parseClass(cls, true, true); + } + if (this.match(129)) { + const result = this.tsParseInterfaceDeclaration(this.startNode()); + if (result) return result; + } + return super.parseExportDefaultExpression(); + } + parseVarStatement(node, kind, allowMissingInitializer = false) { + const { + isAmbientContext + } = this.state; + const declaration = super.parseVarStatement(node, kind, allowMissingInitializer || isAmbientContext); + if (!isAmbientContext) return declaration; + if (!node.declare && (kind === "using" || kind === "await using")) { + this.raiseOverwrite(TSErrors.UsingDeclarationInAmbientContext, node, kind); + return declaration; + } + for (const { + id, + init + } of declaration.declarations) { + if (!init) continue; + if (kind === "var" || kind === "let" || !!id.typeAnnotation) { + this.raise(TSErrors.InitializerNotAllowedInAmbientContext, init); + } else if (!isValidAmbientConstInitializer(init, this.hasPlugin("estree"))) { + this.raise(TSErrors.ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference, init); + } + } + return declaration; + } + parseStatementContent(flags, decorators) { + if (!this.state.containsEsc) { + switch (this.state.type) { + case 75: + { + if (this.isLookaheadContextual("enum")) { + const node = this.startNode(); + this.expect(75); + return this.tsParseEnumDeclaration(node, { + const: true + }); + } + break; + } + case 124: + case 125: + { + if (this.nextTokenIsIdentifierAndNotTSRelationalOperatorOnSameLine()) { + const token = this.state.type; + const node = this.startNode(); + this.next(); + const declaration = token === 125 ? this.tsTryParseDeclare(node) : this.tsParseAbstractDeclaration(node, decorators); + if (declaration) { + if (token === 125) { + declaration.declare = true; + } + return declaration; + } else { + node.expression = this.createIdentifier(this.startNodeAt(node.loc.start), token === 125 ? "declare" : "abstract"); + this.semicolon(false); + return this.finishNode(node, "ExpressionStatement"); + } + } + break; + } + case 126: + return this.tsParseEnumDeclaration(this.startNode()); + case 112: + { + const nextCh = this.lookaheadCharCode(); + if (nextCh === 123) { + const node = this.startNode(); + return this.tsParseAmbientExternalModuleDeclaration(node); + } + break; + } + case 129: + { + const result = this.tsParseInterfaceDeclaration(this.startNode()); + if (result) return result; + break; + } + case 127: + { + if (this.nextTokenIsIdentifierOrStringLiteralOnSameLine()) { + const node = this.startNode(); + this.next(); + return this.tsParseDeclaration(node, 127, false, decorators); + } + break; + } + case 128: + { + if (this.nextTokenIsIdentifierOnSameLine()) { + const node = this.startNode(); + this.next(); + return this.tsParseDeclaration(node, 128, false, decorators); + } + break; + } + case 130: + { + if (this.nextTokenIsIdentifierOnSameLine()) { + const node = this.startNode(); + this.next(); + return this.tsParseTypeAliasDeclaration(node); + } + break; + } + } + } + return super.parseStatementContent(flags, decorators); + } + parseAccessModifier() { + return this.tsParseModifier(["public", "protected", "private"]); + } + tsHasSomeModifiers(member, modifiers) { + return modifiers.some(modifier => { + if (tsIsAccessModifier(modifier)) { + return member.accessibility === modifier; + } + return !!member[modifier]; + }); + } + tsIsStartOfStaticBlocks() { + return this.isContextual(106) && this.lookaheadCharCode() === 123; + } + parseClassMember(classBody, member, state) { + const modifiers = ["declare", "private", "public", "protected", "override", "abstract", "readonly", "static"]; + this.tsParseModifiers({ + allowedModifiers: modifiers, + disallowedModifiers: ["in", "out"], + stopOnStartOfClassStaticBlock: true, + errorTemplate: TSErrors.InvalidModifierOnTypeParameterPositions + }, member); + const callParseClassMemberWithIsStatic = () => { + if (this.tsIsStartOfStaticBlocks()) { + this.next(); + this.next(); + if (this.tsHasSomeModifiers(member, modifiers)) { + this.raise(TSErrors.StaticBlockCannotHaveModifier, this.state.curPosition()); + } + super.parseClassStaticBlock(classBody, member); + } else { + this.parseClassMemberWithIsStatic(classBody, member, state, !!member.static); + } + }; + if (member.declare) { + this.tsInAmbientContext(callParseClassMemberWithIsStatic); + } else { + callParseClassMemberWithIsStatic(); + } + } + parseClassMemberWithIsStatic(classBody, member, state, isStatic) { + const idx = this.tsTryParseIndexSignature(member); + if (idx) { + classBody.body.push(idx); + if (member.abstract) { + this.raise(TSErrors.IndexSignatureHasAbstract, member); + } + if (member.accessibility) { + this.raise(TSErrors.IndexSignatureHasAccessibility, member, { + modifier: member.accessibility + }); + } + if (member.declare) { + this.raise(TSErrors.IndexSignatureHasDeclare, member); + } + if (member.override) { + this.raise(TSErrors.IndexSignatureHasOverride, member); + } + return; + } + if (!this.state.inAbstractClass && member.abstract) { + this.raise(TSErrors.NonAbstractClassHasAbstractMethod, member); + } + if (member.override) { + if (!state.hadSuperClass) { + this.raise(TSErrors.OverrideNotInSubClass, member); + } + } + super.parseClassMemberWithIsStatic(classBody, member, state, isStatic); + } + parsePostMemberNameModifiers(methodOrProp) { + const optional = this.eat(17); + if (optional) methodOrProp.optional = true; + if (methodOrProp.readonly && this.match(10)) { + this.raise(TSErrors.ClassMethodHasReadonly, methodOrProp); + } + if (methodOrProp.declare && this.match(10)) { + this.raise(TSErrors.ClassMethodHasDeclare, methodOrProp); + } + } + shouldParseExportDeclaration() { + if (this.tsIsDeclarationStart()) return true; + return super.shouldParseExportDeclaration(); + } + parseConditional(expr, startLoc, refExpressionErrors) { + if (!this.match(17)) return expr; + if (this.state.maybeInArrowParameters) { + const nextCh = this.lookaheadCharCode(); + if (nextCh === 44 || nextCh === 61 || nextCh === 58 || nextCh === 41) { + this.setOptionalParametersError(refExpressionErrors); + return expr; + } + } + return super.parseConditional(expr, startLoc, refExpressionErrors); + } + parseParenItem(node, startLoc) { + const newNode = super.parseParenItem(node, startLoc); + if (this.eat(17)) { + newNode.optional = true; + this.resetEndLocation(node); + } + if (this.match(14)) { + const typeCastNode = this.startNodeAt(startLoc); + typeCastNode.expression = node; + typeCastNode.typeAnnotation = this.tsParseTypeAnnotation(); + return this.finishNode(typeCastNode, "TSTypeCastExpression"); + } + return node; + } + parseExportDeclaration(node) { + if (!this.state.isAmbientContext && this.isContextual(125)) { + return this.tsInAmbientContext(() => this.parseExportDeclaration(node)); + } + const startLoc = this.state.startLoc; + const isDeclare = this.eatContextual(125); + if (isDeclare && (this.isContextual(125) || !this.shouldParseExportDeclaration())) { + throw this.raise(TSErrors.ExpectedAmbientAfterExportDeclare, this.state.startLoc); + } + const isIdentifier = tokenIsIdentifier(this.state.type); + const declaration = isIdentifier && this.tsTryParseExportDeclaration() || super.parseExportDeclaration(node); + if (!declaration) return null; + if (declaration.type === "TSInterfaceDeclaration" || declaration.type === "TSTypeAliasDeclaration" || isDeclare) { + node.exportKind = "type"; + } + if (isDeclare && declaration.type !== "TSImportEqualsDeclaration") { + this.resetStartLocation(declaration, startLoc); + declaration.declare = true; + } + return declaration; + } + parseClassId(node, isStatement, optionalId, bindingType) { + if ((!isStatement || optionalId) && this.isContextual(113)) { + return; + } + super.parseClassId(node, isStatement, optionalId, node.declare ? 1024 : 8331); + const typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers); + if (typeParameters) node.typeParameters = typeParameters; + } + parseClassPropertyAnnotation(node) { + if (!node.optional) { + if (this.eat(35)) { + node.definite = true; + } else if (this.eat(17)) { + node.optional = true; + } + } + const type = this.tsTryParseTypeAnnotation(); + if (type) node.typeAnnotation = type; + } + parseClassProperty(node) { + this.parseClassPropertyAnnotation(node); + if (this.state.isAmbientContext && !(node.readonly && !node.typeAnnotation) && this.match(29)) { + this.raise(TSErrors.DeclareClassFieldHasInitializer, this.state.startLoc); + } + if (node.abstract && this.match(29)) { + const { + key + } = node; + this.raise(TSErrors.AbstractPropertyHasInitializer, this.state.startLoc, { + propertyName: key.type === "Identifier" && !node.computed ? key.name : `[${this.input.slice(this.offsetToSourcePos(key.start), this.offsetToSourcePos(key.end))}]` + }); + } + return super.parseClassProperty(node); + } + parseClassPrivateProperty(node) { + if (node.abstract) { + this.raise(TSErrors.PrivateElementHasAbstract, node); + } + if (node.accessibility) { + this.raise(TSErrors.PrivateElementHasAccessibility, node, { + modifier: node.accessibility + }); + } + this.parseClassPropertyAnnotation(node); + return super.parseClassPrivateProperty(node); + } + parseClassAccessorProperty(node) { + this.parseClassPropertyAnnotation(node); + if (node.optional) { + this.raise(TSErrors.AccessorCannotBeOptional, node); + } + return super.parseClassAccessorProperty(node); + } + pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) { + const typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier); + if (typeParameters && isConstructor) { + this.raise(TSErrors.ConstructorHasTypeParameters, typeParameters); + } + const { + declare = false, + kind + } = method; + if (declare && (kind === "get" || kind === "set")) { + this.raise(TSErrors.DeclareAccessor, method, { + kind + }); + } + if (typeParameters) method.typeParameters = typeParameters; + super.pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper); + } + pushClassPrivateMethod(classBody, method, isGenerator, isAsync) { + const typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier); + if (typeParameters) method.typeParameters = typeParameters; + super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync); + } + declareClassPrivateMethodInScope(node, kind) { + if (node.type === "TSDeclareMethod") return; + if (node.type === "MethodDefinition" && node.value.body == null) { + return; + } + super.declareClassPrivateMethodInScope(node, kind); + } + parseClassSuper(node) { + super.parseClassSuper(node); + if (node.superClass) { + if (node.superClass.type === "TSInstantiationExpression") { + const tsInstantiationExpression = node.superClass; + const superClass = tsInstantiationExpression.expression; + this.takeSurroundingComments(superClass, superClass.start, superClass.end); + const superTypeArguments = tsInstantiationExpression.typeParameters; + this.takeSurroundingComments(superTypeArguments, superTypeArguments.start, superTypeArguments.end); + node.superClass = superClass; + node.superTypeParameters = superTypeArguments; + } else if (this.match(47) || this.match(51)) { + node.superTypeParameters = this.tsParseTypeArgumentsInExpression(); + } + } + if (this.eatContextual(113)) { + node.implements = this.tsParseHeritageClause("implements"); + } + } + parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) { + const typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier); + if (typeParameters) prop.typeParameters = typeParameters; + return super.parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors); + } + parseFunctionParams(node, isConstructor) { + const typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier); + if (typeParameters) node.typeParameters = typeParameters; + super.parseFunctionParams(node, isConstructor); + } + parseVarId(decl, kind) { + super.parseVarId(decl, kind); + if (decl.id.type === "Identifier" && !this.hasPrecedingLineBreak() && this.eat(35)) { + decl.definite = true; + } + const type = this.tsTryParseTypeAnnotation(); + if (type) { + decl.id.typeAnnotation = type; + this.resetEndLocation(decl.id); + } + } + parseAsyncArrowFromCallExpression(node, call) { + if (this.match(14)) { + node.returnType = this.tsParseTypeAnnotation(); + } + return super.parseAsyncArrowFromCallExpression(node, call); + } + parseMaybeAssign(refExpressionErrors, afterLeftParse) { + var _jsx, _jsx2, _typeCast, _jsx3, _typeCast2; + let state; + let jsx; + let typeCast; + if (this.hasPlugin("jsx") && (this.match(143) || this.match(47))) { + state = this.state.clone(); + jsx = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse), state); + if (!jsx.error) return jsx.node; + const { + context + } = this.state; + const currentContext = context[context.length - 1]; + if (currentContext === types.j_oTag || currentContext === types.j_expr) { + context.pop(); + } + } + if (!((_jsx = jsx) != null && _jsx.error) && !this.match(47)) { + return super.parseMaybeAssign(refExpressionErrors, afterLeftParse); + } + if (!state || state === this.state) state = this.state.clone(); + let typeParameters; + const arrow = this.tryParse(abort => { + var _expr$extra, _typeParameters; + typeParameters = this.tsParseTypeParameters(this.tsParseConstModifier); + const expr = super.parseMaybeAssign(refExpressionErrors, afterLeftParse); + if (expr.type !== "ArrowFunctionExpression" || (_expr$extra = expr.extra) != null && _expr$extra.parenthesized) { + abort(); + } + if (((_typeParameters = typeParameters) == null ? void 0 : _typeParameters.params.length) !== 0) { + this.resetStartLocationFromNode(expr, typeParameters); + } + expr.typeParameters = typeParameters; + return expr; + }, state); + if (!arrow.error && !arrow.aborted) { + if (typeParameters) this.reportReservedArrowTypeParam(typeParameters); + return arrow.node; + } + if (!jsx) { + assert(!this.hasPlugin("jsx")); + typeCast = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse), state); + if (!typeCast.error) return typeCast.node; + } + if ((_jsx2 = jsx) != null && _jsx2.node) { + this.state = jsx.failState; + return jsx.node; + } + if (arrow.node) { + this.state = arrow.failState; + if (typeParameters) this.reportReservedArrowTypeParam(typeParameters); + return arrow.node; + } + if ((_typeCast = typeCast) != null && _typeCast.node) { + this.state = typeCast.failState; + return typeCast.node; + } + throw ((_jsx3 = jsx) == null ? void 0 : _jsx3.error) || arrow.error || ((_typeCast2 = typeCast) == null ? void 0 : _typeCast2.error); + } + reportReservedArrowTypeParam(node) { + var _node$extra2; + if (node.params.length === 1 && !node.params[0].constraint && !((_node$extra2 = node.extra) != null && _node$extra2.trailingComma) && this.getPluginOption("typescript", "disallowAmbiguousJSXLike")) { + this.raise(TSErrors.ReservedArrowTypeParam, node); + } + } + parseMaybeUnary(refExpressionErrors, sawUnary) { + if (!this.hasPlugin("jsx") && this.match(47)) { + return this.tsParseTypeAssertion(); + } + return super.parseMaybeUnary(refExpressionErrors, sawUnary); + } + parseArrow(node) { + if (this.match(14)) { + const result = this.tryParse(abort => { + const returnType = this.tsParseTypeOrTypePredicateAnnotation(14); + if (this.canInsertSemicolon() || !this.match(19)) abort(); + return returnType; + }); + if (result.aborted) return; + if (!result.thrown) { + if (result.error) this.state = result.failState; + node.returnType = result.node; + } + } + return super.parseArrow(node); + } + parseFunctionParamType(param) { + if (this.eat(17)) { + param.optional = true; + } + const type = this.tsTryParseTypeAnnotation(); + if (type) param.typeAnnotation = type; + this.resetEndLocation(param); + return param; + } + isAssignable(node, isBinding) { + switch (node.type) { + case "TSTypeCastExpression": + return this.isAssignable(node.expression, isBinding); + case "TSParameterProperty": + return true; + default: + return super.isAssignable(node, isBinding); + } + } + toAssignable(node, isLHS = false) { + switch (node.type) { + case "ParenthesizedExpression": + this.toAssignableParenthesizedExpression(node, isLHS); + break; + case "TSAsExpression": + case "TSSatisfiesExpression": + case "TSNonNullExpression": + case "TSTypeAssertion": + if (isLHS) { + this.expressionScope.recordArrowParameterBindingError(TSErrors.UnexpectedTypeCastInParameter, node); + } else { + this.raise(TSErrors.UnexpectedTypeCastInParameter, node); + } + this.toAssignable(node.expression, isLHS); + break; + case "AssignmentExpression": + if (!isLHS && node.left.type === "TSTypeCastExpression") { + node.left = this.typeCastToParameter(node.left); + } + default: + super.toAssignable(node, isLHS); + } + } + toAssignableParenthesizedExpression(node, isLHS) { + switch (node.expression.type) { + case "TSAsExpression": + case "TSSatisfiesExpression": + case "TSNonNullExpression": + case "TSTypeAssertion": + case "ParenthesizedExpression": + this.toAssignable(node.expression, isLHS); + break; + default: + super.toAssignable(node, isLHS); + } + } + checkToRestConversion(node, allowPattern) { + switch (node.type) { + case "TSAsExpression": + case "TSSatisfiesExpression": + case "TSTypeAssertion": + case "TSNonNullExpression": + this.checkToRestConversion(node.expression, false); + break; + default: + super.checkToRestConversion(node, allowPattern); + } + } + isValidLVal(type, disallowCallExpression, isUnparenthesizedInAssign, binding) { + switch (type) { + case "TSTypeCastExpression": + return true; + case "TSParameterProperty": + return "parameter"; + case "TSNonNullExpression": + return "expression"; + case "TSAsExpression": + case "TSSatisfiesExpression": + case "TSTypeAssertion": + return (binding !== 64 || !isUnparenthesizedInAssign) && ["expression", true]; + default: + return super.isValidLVal(type, disallowCallExpression, isUnparenthesizedInAssign, binding); + } + } + parseBindingAtom() { + if (this.state.type === 78) { + return this.parseIdentifier(true); + } + return super.parseBindingAtom(); + } + parseMaybeDecoratorArguments(expr, startLoc) { + if (this.match(47) || this.match(51)) { + const typeArguments = this.tsParseTypeArgumentsInExpression(); + if (this.match(10)) { + const call = super.parseMaybeDecoratorArguments(expr, startLoc); + call.typeParameters = typeArguments; + return call; + } + this.unexpected(null, 10); + } + return super.parseMaybeDecoratorArguments(expr, startLoc); + } + checkCommaAfterRest(close) { + if (this.state.isAmbientContext && this.match(12) && this.lookaheadCharCode() === close) { + this.next(); + return false; + } + return super.checkCommaAfterRest(close); + } + isClassMethod() { + return this.match(47) || super.isClassMethod(); + } + isClassProperty() { + return this.match(35) || this.match(14) || super.isClassProperty(); + } + parseMaybeDefault(startLoc, left) { + const node = super.parseMaybeDefault(startLoc, left); + if (node.type === "AssignmentPattern" && node.typeAnnotation && node.right.start < node.typeAnnotation.start) { + this.raise(TSErrors.TypeAnnotationAfterAssign, node.typeAnnotation); + } + return node; + } + getTokenFromCode(code) { + if (this.state.inType) { + if (code === 62) { + this.finishOp(48, 1); + return; + } + if (code === 60) { + this.finishOp(47, 1); + return; + } + } + super.getTokenFromCode(code); + } + reScan_lt_gt() { + const { + type + } = this.state; + if (type === 47) { + this.state.pos -= 1; + this.readToken_lt(); + } else if (type === 48) { + this.state.pos -= 1; + this.readToken_gt(); + } + } + reScan_lt() { + const { + type + } = this.state; + if (type === 51) { + this.state.pos -= 2; + this.finishOp(47, 1); + return 47; + } + return type; + } + toAssignableListItem(exprList, index, isLHS) { + const node = exprList[index]; + if (node.type === "TSTypeCastExpression") { + exprList[index] = this.typeCastToParameter(node); + } + super.toAssignableListItem(exprList, index, isLHS); + } + typeCastToParameter(node) { + node.expression.typeAnnotation = node.typeAnnotation; + this.resetEndLocation(node.expression, node.typeAnnotation.loc.end); + return node.expression; + } + shouldParseArrow(params) { + if (this.match(14)) { + return params.every(expr => this.isAssignable(expr, true)); + } + return super.shouldParseArrow(params); + } + shouldParseAsyncArrow() { + return this.match(14) || super.shouldParseAsyncArrow(); + } + canHaveLeadingDecorator() { + return super.canHaveLeadingDecorator() || this.isAbstractClass(); + } + jsxParseOpeningElementAfterName(node) { + if (this.match(47) || this.match(51)) { + const typeArguments = this.tsTryParseAndCatch(() => this.tsParseTypeArgumentsInExpression()); + if (typeArguments) { + node.typeParameters = typeArguments; + } + } + return super.jsxParseOpeningElementAfterName(node); + } + getGetterSetterExpectedParamCount(method) { + const baseCount = super.getGetterSetterExpectedParamCount(method); + const params = this.getObjectOrClassMethodParams(method); + const firstParam = params[0]; + const hasContextParam = firstParam && this.isThisParam(firstParam); + return hasContextParam ? baseCount + 1 : baseCount; + } + parseCatchClauseParam() { + const param = super.parseCatchClauseParam(); + const type = this.tsTryParseTypeAnnotation(); + if (type) { + param.typeAnnotation = type; + this.resetEndLocation(param); + } + return param; + } + tsInAmbientContext(cb) { + const { + isAmbientContext: oldIsAmbientContext, + strict: oldStrict + } = this.state; + this.state.isAmbientContext = true; + this.state.strict = false; + try { + return cb(); + } finally { + this.state.isAmbientContext = oldIsAmbientContext; + this.state.strict = oldStrict; + } + } + parseClass(node, isStatement, optionalId) { + const oldInAbstractClass = this.state.inAbstractClass; + this.state.inAbstractClass = !!node.abstract; + try { + return super.parseClass(node, isStatement, optionalId); + } finally { + this.state.inAbstractClass = oldInAbstractClass; + } + } + tsParseAbstractDeclaration(node, decorators) { + if (this.match(80)) { + node.abstract = true; + return this.maybeTakeDecorators(decorators, this.parseClass(node, true, false)); + } else if (this.isContextual(129)) { + if (!this.hasFollowingLineBreak()) { + node.abstract = true; + this.raise(TSErrors.NonClassMethodPropertyHasAbstractModifier, node); + return this.tsParseInterfaceDeclaration(node); + } else { + return null; + } + } + throw this.unexpected(null, 80); + } + parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope) { + const method = super.parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope); + if (method.abstract || method.type === "TSAbstractMethodDefinition") { + const hasEstreePlugin = this.hasPlugin("estree"); + const methodFn = hasEstreePlugin ? method.value : method; + if (methodFn.body) { + const { + key + } = method; + this.raise(TSErrors.AbstractMethodHasImplementation, method, { + methodName: key.type === "Identifier" && !method.computed ? key.name : `[${this.input.slice(this.offsetToSourcePos(key.start), this.offsetToSourcePos(key.end))}]` + }); + } + } + return method; + } + tsParseTypeParameterName() { + const typeName = this.parseIdentifier(); + return typeName.name; + } + shouldParseAsAmbientContext() { + return !!this.getPluginOption("typescript", "dts"); + } + parse() { + if (this.shouldParseAsAmbientContext()) { + this.state.isAmbientContext = true; + } + return super.parse(); + } + getExpression() { + if (this.shouldParseAsAmbientContext()) { + this.state.isAmbientContext = true; + } + return super.getExpression(); + } + parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly) { + if (!isString && isMaybeTypeOnly) { + this.parseTypeOnlyImportExportSpecifier(node, false, isInTypeExport); + return this.finishNode(node, "ExportSpecifier"); + } + node.exportKind = "value"; + return super.parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly); + } + parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, bindingType) { + if (!importedIsString && isMaybeTypeOnly) { + this.parseTypeOnlyImportExportSpecifier(specifier, true, isInTypeOnlyImport); + return this.finishNode(specifier, "ImportSpecifier"); + } + specifier.importKind = "value"; + return super.parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, isInTypeOnlyImport ? 4098 : 4096); + } + parseTypeOnlyImportExportSpecifier(node, isImport, isInTypeOnlyImportExport) { + const leftOfAsKey = isImport ? "imported" : "local"; + const rightOfAsKey = isImport ? "local" : "exported"; + let leftOfAs = node[leftOfAsKey]; + let rightOfAs; + let hasTypeSpecifier = false; + let canParseAsKeyword = true; + const loc = leftOfAs.loc.start; + if (this.isContextual(93)) { + const firstAs = this.parseIdentifier(); + if (this.isContextual(93)) { + const secondAs = this.parseIdentifier(); + if (tokenIsKeywordOrIdentifier(this.state.type)) { + hasTypeSpecifier = true; + leftOfAs = firstAs; + rightOfAs = isImport ? this.parseIdentifier() : this.parseModuleExportName(); + canParseAsKeyword = false; + } else { + rightOfAs = secondAs; + canParseAsKeyword = false; + } + } else if (tokenIsKeywordOrIdentifier(this.state.type)) { + canParseAsKeyword = false; + rightOfAs = isImport ? this.parseIdentifier() : this.parseModuleExportName(); + } else { + hasTypeSpecifier = true; + leftOfAs = firstAs; + } + } else if (tokenIsKeywordOrIdentifier(this.state.type)) { + hasTypeSpecifier = true; + if (isImport) { + leftOfAs = this.parseIdentifier(true); + if (!this.isContextual(93)) { + this.checkReservedWord(leftOfAs.name, leftOfAs.loc.start, true, true); + } + } else { + leftOfAs = this.parseModuleExportName(); + } + } + if (hasTypeSpecifier && isInTypeOnlyImportExport) { + this.raise(isImport ? TSErrors.TypeModifierIsUsedInTypeImports : TSErrors.TypeModifierIsUsedInTypeExports, loc); + } + node[leftOfAsKey] = leftOfAs; + node[rightOfAsKey] = rightOfAs; + const kindKey = isImport ? "importKind" : "exportKind"; + node[kindKey] = hasTypeSpecifier ? "type" : "value"; + if (canParseAsKeyword && this.eatContextual(93)) { + node[rightOfAsKey] = isImport ? this.parseIdentifier() : this.parseModuleExportName(); + } + if (!node[rightOfAsKey]) { + node[rightOfAsKey] = this.cloneIdentifier(node[leftOfAsKey]); + } + if (isImport) { + this.checkIdentifier(node[rightOfAsKey], hasTypeSpecifier ? 4098 : 4096); + } + } + fillOptionalPropertiesForTSESLint(node) { + var _node$directive, _node$decorators, _node$optional, _node$typeAnnotation, _node$accessibility, _node$decorators2, _node$override, _node$readonly, _node$static, _node$declare, _node$returnType, _node$typeParameters, _node$optional2, _node$optional3, _node$accessibility2, _node$readonly2, _node$static2, _node$declare2, _node$definite, _node$readonly3, _node$typeAnnotation2, _node$accessibility3, _node$decorators3, _node$override2, _node$optional4, _node$id, _node$abstract, _node$declare3, _node$decorators4, _node$implements, _node$superTypeArgume, _node$typeParameters2, _node$declare4, _node$definite2, _node$const, _node$declare5, _node$computed, _node$qualifier, _node$options, _node$declare6, _node$extends, _node$optional5, _node$readonly4, _node$declare7, _node$global, _node$const2, _node$in, _node$out; + switch (node.type) { + case "ExpressionStatement": + (_node$directive = node.directive) != null ? _node$directive : node.directive = undefined; + return; + case "RestElement": + node.value = undefined; + case "Identifier": + case "ArrayPattern": + case "AssignmentPattern": + case "ObjectPattern": + (_node$decorators = node.decorators) != null ? _node$decorators : node.decorators = []; + (_node$optional = node.optional) != null ? _node$optional : node.optional = false; + (_node$typeAnnotation = node.typeAnnotation) != null ? _node$typeAnnotation : node.typeAnnotation = undefined; + return; + case "TSParameterProperty": + (_node$accessibility = node.accessibility) != null ? _node$accessibility : node.accessibility = undefined; + (_node$decorators2 = node.decorators) != null ? _node$decorators2 : node.decorators = []; + (_node$override = node.override) != null ? _node$override : node.override = false; + (_node$readonly = node.readonly) != null ? _node$readonly : node.readonly = false; + (_node$static = node.static) != null ? _node$static : node.static = false; + return; + case "TSEmptyBodyFunctionExpression": + node.body = null; + case "TSDeclareFunction": + case "FunctionDeclaration": + case "FunctionExpression": + case "ClassMethod": + case "ClassPrivateMethod": + (_node$declare = node.declare) != null ? _node$declare : node.declare = false; + (_node$returnType = node.returnType) != null ? _node$returnType : node.returnType = undefined; + (_node$typeParameters = node.typeParameters) != null ? _node$typeParameters : node.typeParameters = undefined; + return; + case "Property": + (_node$optional2 = node.optional) != null ? _node$optional2 : node.optional = false; + return; + case "TSMethodSignature": + case "TSPropertySignature": + (_node$optional3 = node.optional) != null ? _node$optional3 : node.optional = false; + case "TSIndexSignature": + (_node$accessibility2 = node.accessibility) != null ? _node$accessibility2 : node.accessibility = undefined; + (_node$readonly2 = node.readonly) != null ? _node$readonly2 : node.readonly = false; + (_node$static2 = node.static) != null ? _node$static2 : node.static = false; + return; + case "TSAbstractPropertyDefinition": + case "PropertyDefinition": + case "TSAbstractAccessorProperty": + case "AccessorProperty": + (_node$declare2 = node.declare) != null ? _node$declare2 : node.declare = false; + (_node$definite = node.definite) != null ? _node$definite : node.definite = false; + (_node$readonly3 = node.readonly) != null ? _node$readonly3 : node.readonly = false; + (_node$typeAnnotation2 = node.typeAnnotation) != null ? _node$typeAnnotation2 : node.typeAnnotation = undefined; + case "TSAbstractMethodDefinition": + case "MethodDefinition": + (_node$accessibility3 = node.accessibility) != null ? _node$accessibility3 : node.accessibility = undefined; + (_node$decorators3 = node.decorators) != null ? _node$decorators3 : node.decorators = []; + (_node$override2 = node.override) != null ? _node$override2 : node.override = false; + (_node$optional4 = node.optional) != null ? _node$optional4 : node.optional = false; + return; + case "ClassExpression": + (_node$id = node.id) != null ? _node$id : node.id = null; + case "ClassDeclaration": + (_node$abstract = node.abstract) != null ? _node$abstract : node.abstract = false; + (_node$declare3 = node.declare) != null ? _node$declare3 : node.declare = false; + (_node$decorators4 = node.decorators) != null ? _node$decorators4 : node.decorators = []; + (_node$implements = node.implements) != null ? _node$implements : node.implements = []; + (_node$superTypeArgume = node.superTypeArguments) != null ? _node$superTypeArgume : node.superTypeArguments = undefined; + (_node$typeParameters2 = node.typeParameters) != null ? _node$typeParameters2 : node.typeParameters = undefined; + return; + case "TSTypeAliasDeclaration": + case "VariableDeclaration": + (_node$declare4 = node.declare) != null ? _node$declare4 : node.declare = false; + return; + case "VariableDeclarator": + (_node$definite2 = node.definite) != null ? _node$definite2 : node.definite = false; + return; + case "TSEnumDeclaration": + (_node$const = node.const) != null ? _node$const : node.const = false; + (_node$declare5 = node.declare) != null ? _node$declare5 : node.declare = false; + return; + case "TSEnumMember": + (_node$computed = node.computed) != null ? _node$computed : node.computed = false; + return; + case "TSImportType": + (_node$qualifier = node.qualifier) != null ? _node$qualifier : node.qualifier = null; + (_node$options = node.options) != null ? _node$options : node.options = null; + return; + case "TSInterfaceDeclaration": + (_node$declare6 = node.declare) != null ? _node$declare6 : node.declare = false; + (_node$extends = node.extends) != null ? _node$extends : node.extends = []; + return; + case "TSMappedType": + (_node$optional5 = node.optional) != null ? _node$optional5 : node.optional = false; + (_node$readonly4 = node.readonly) != null ? _node$readonly4 : node.readonly = undefined; + return; + case "TSModuleDeclaration": + (_node$declare7 = node.declare) != null ? _node$declare7 : node.declare = false; + (_node$global = node.global) != null ? _node$global : node.global = node.kind === "global"; + return; + case "TSTypeParameter": + (_node$const2 = node.const) != null ? _node$const2 : node.const = false; + (_node$in = node.in) != null ? _node$in : node.in = false; + (_node$out = node.out) != null ? _node$out : node.out = false; + return; + } + } + chStartsBindingIdentifierAndNotRelationalOperator(ch, pos) { + if (isIdentifierStart(ch)) { + keywordAndTSRelationalOperator.lastIndex = pos; + if (keywordAndTSRelationalOperator.test(this.input)) { + const endCh = this.codePointAtPos(keywordAndTSRelationalOperator.lastIndex); + if (!isIdentifierChar(endCh) && endCh !== 92) { + return false; + } + } + return true; + } else if (ch === 92) { + return true; + } else { + return false; + } + } + nextTokenIsIdentifierAndNotTSRelationalOperatorOnSameLine() { + const next = this.nextTokenInLineStart(); + const nextCh = this.codePointAtPos(next); + return this.chStartsBindingIdentifierAndNotRelationalOperator(nextCh, next); + } + nextTokenIsIdentifierOrStringLiteralOnSameLine() { + const next = this.nextTokenInLineStart(); + const nextCh = this.codePointAtPos(next); + return this.chStartsBindingIdentifier(nextCh, next) || nextCh === 34 || nextCh === 39; + } +}; +function isPossiblyLiteralEnum(expression) { + if (expression.type !== "MemberExpression") return false; + const { + computed, + property + } = expression; + if (computed && property.type !== "StringLiteral" && (property.type !== "TemplateLiteral" || property.expressions.length > 0)) { + return false; + } + return isUncomputedMemberExpressionChain(expression.object); +} +function isValidAmbientConstInitializer(expression, estree) { + var _expression$extra; + const { + type + } = expression; + if ((_expression$extra = expression.extra) != null && _expression$extra.parenthesized) { + return false; + } + if (estree) { + if (type === "Literal") { + const { + value + } = expression; + if (typeof value === "string" || typeof value === "boolean") { + return true; + } + } + } else { + if (type === "StringLiteral" || type === "BooleanLiteral") { + return true; + } + } + if (isNumber(expression, estree) || isNegativeNumber(expression, estree)) { + return true; + } + if (type === "TemplateLiteral" && expression.expressions.length === 0) { + return true; + } + if (isPossiblyLiteralEnum(expression)) { + return true; + } + return false; +} +function isNumber(expression, estree) { + if (estree) { + return expression.type === "Literal" && (typeof expression.value === "number" || "bigint" in expression); + } + return expression.type === "NumericLiteral" || expression.type === "BigIntLiteral"; +} +function isNegativeNumber(expression, estree) { + if (expression.type === "UnaryExpression") { + const { + operator, + argument + } = expression; + if (operator === "-" && isNumber(argument, estree)) { + return true; + } + } + return false; +} +function isUncomputedMemberExpressionChain(expression) { + if (expression.type === "Identifier") return true; + if (expression.type !== "MemberExpression" || expression.computed) { + return false; + } + return isUncomputedMemberExpressionChain(expression.object); +} +const PlaceholderErrors = ParseErrorEnum`placeholders`({ + ClassNameIsRequired: "A class name is required.", + UnexpectedSpace: "Unexpected space in placeholder." +}); +var placeholders = superClass => class PlaceholdersParserMixin extends superClass { + parsePlaceholder(expectedNode) { + if (this.match(133)) { + const node = this.startNode(); + this.next(); + this.assertNoSpace(); + node.name = super.parseIdentifier(true); + this.assertNoSpace(); + this.expect(133); + return this.finishPlaceholder(node, expectedNode); + } + } + finishPlaceholder(node, expectedNode) { + let placeholder = node; + if (!placeholder.expectedNode || !placeholder.type) { + placeholder = this.finishNode(placeholder, "Placeholder"); + } + placeholder.expectedNode = expectedNode; + return placeholder; + } + getTokenFromCode(code) { + if (code === 37 && this.input.charCodeAt(this.state.pos + 1) === 37) { + this.finishOp(133, 2); + } else { + super.getTokenFromCode(code); + } + } + parseExprAtom(refExpressionErrors) { + return this.parsePlaceholder("Expression") || super.parseExprAtom(refExpressionErrors); + } + parseIdentifier(liberal) { + return this.parsePlaceholder("Identifier") || super.parseIdentifier(liberal); + } + checkReservedWord(word, startLoc, checkKeywords, isBinding) { + if (word !== undefined) { + super.checkReservedWord(word, startLoc, checkKeywords, isBinding); + } + } + cloneIdentifier(node) { + const cloned = super.cloneIdentifier(node); + if (cloned.type === "Placeholder") { + cloned.expectedNode = node.expectedNode; + } + return cloned; + } + cloneStringLiteral(node) { + if (node.type === "Placeholder") { + return this.cloneIdentifier(node); + } + return super.cloneStringLiteral(node); + } + parseBindingAtom() { + return this.parsePlaceholder("Pattern") || super.parseBindingAtom(); + } + isValidLVal(type, disallowCallExpression, isParenthesized, binding) { + return type === "Placeholder" || super.isValidLVal(type, disallowCallExpression, isParenthesized, binding); + } + toAssignable(node, isLHS) { + if (node && node.type === "Placeholder" && node.expectedNode === "Expression") { + node.expectedNode = "Pattern"; + } else { + super.toAssignable(node, isLHS); + } + } + chStartsBindingIdentifier(ch, pos) { + if (super.chStartsBindingIdentifier(ch, pos)) { + return true; + } + const next = this.nextTokenStart(); + if (this.input.charCodeAt(next) === 37 && this.input.charCodeAt(next + 1) === 37) { + return true; + } + return false; + } + verifyBreakContinue(node, isBreak) { + var _node$label; + if (((_node$label = node.label) == null ? void 0 : _node$label.type) === "Placeholder") return; + super.verifyBreakContinue(node, isBreak); + } + parseExpressionStatement(node, expr) { + var _expr$extra; + if (expr.type !== "Placeholder" || (_expr$extra = expr.extra) != null && _expr$extra.parenthesized) { + return super.parseExpressionStatement(node, expr); + } + if (this.match(14)) { + const stmt = node; + stmt.label = this.finishPlaceholder(expr, "Identifier"); + this.next(); + stmt.body = super.parseStatementOrSloppyAnnexBFunctionDeclaration(); + return this.finishNode(stmt, "LabeledStatement"); + } + this.semicolon(); + const stmtPlaceholder = node; + stmtPlaceholder.name = expr.name; + return this.finishPlaceholder(stmtPlaceholder, "Statement"); + } + parseBlock(allowDirectives, createNewLexicalScope, afterBlockParse) { + return this.parsePlaceholder("BlockStatement") || super.parseBlock(allowDirectives, createNewLexicalScope, afterBlockParse); + } + parseFunctionId(requireId) { + return this.parsePlaceholder("Identifier") || super.parseFunctionId(requireId); + } + parseClass(node, isStatement, optionalId) { + const type = isStatement ? "ClassDeclaration" : "ClassExpression"; + this.next(); + const oldStrict = this.state.strict; + const placeholder = this.parsePlaceholder("Identifier"); + if (placeholder) { + if (this.match(81) || this.match(133) || this.match(5)) { + node.id = placeholder; + } else if (optionalId || !isStatement) { + node.id = null; + node.body = this.finishPlaceholder(placeholder, "ClassBody"); + return this.finishNode(node, type); + } else { + throw this.raise(PlaceholderErrors.ClassNameIsRequired, this.state.startLoc); + } + } else { + this.parseClassId(node, isStatement, optionalId); + } + super.parseClassSuper(node); + node.body = this.parsePlaceholder("ClassBody") || super.parseClassBody(!!node.superClass, oldStrict); + return this.finishNode(node, type); + } + parseExport(node, decorators) { + const placeholder = this.parsePlaceholder("Identifier"); + if (!placeholder) return super.parseExport(node, decorators); + const node2 = node; + if (!this.isContextual(98) && !this.match(12)) { + node2.specifiers = []; + node2.source = null; + node2.declaration = this.finishPlaceholder(placeholder, "Declaration"); + return this.finishNode(node2, "ExportNamedDeclaration"); + } + this.expectPlugin("exportDefaultFrom"); + const specifier = this.startNode(); + specifier.exported = placeholder; + node2.specifiers = [this.finishNode(specifier, "ExportDefaultSpecifier")]; + return super.parseExport(node2, decorators); + } + isExportDefaultSpecifier() { + if (this.match(65)) { + const next = this.nextTokenStart(); + if (this.isUnparsedContextual(next, "from")) { + if (this.input.startsWith(tokenLabelName(133), this.nextTokenStartSince(next + 4))) { + return true; + } + } + } + return super.isExportDefaultSpecifier(); + } + maybeParseExportDefaultSpecifier(node, maybeDefaultIdentifier) { + var _specifiers; + if ((_specifiers = node.specifiers) != null && _specifiers.length) { + return true; + } + return super.maybeParseExportDefaultSpecifier(node, maybeDefaultIdentifier); + } + checkExport(node) { + const { + specifiers + } = node; + if (specifiers != null && specifiers.length) { + node.specifiers = specifiers.filter(node => node.exported.type === "Placeholder"); + } + super.checkExport(node); + node.specifiers = specifiers; + } + parseImport(node) { + const placeholder = this.parsePlaceholder("Identifier"); + if (!placeholder) return super.parseImport(node); + node.specifiers = []; + if (!this.isContextual(98) && !this.match(12)) { + node.source = this.finishPlaceholder(placeholder, "StringLiteral"); + this.semicolon(); + return this.finishNode(node, "ImportDeclaration"); + } + const specifier = this.startNodeAtNode(placeholder); + specifier.local = placeholder; + node.specifiers.push(this.finishNode(specifier, "ImportDefaultSpecifier")); + if (this.eat(12)) { + const hasStarImport = this.maybeParseStarImportSpecifier(node); + if (!hasStarImport) this.parseNamedImportSpecifiers(node); + } + this.expectContextual(98); + node.source = this.parseImportSource(); + this.semicolon(); + return this.finishNode(node, "ImportDeclaration"); + } + parseImportSource() { + return this.parsePlaceholder("StringLiteral") || super.parseImportSource(); + } + assertNoSpace() { + if (this.state.start > this.offsetToSourcePos(this.state.lastTokEndLoc.index)) { + this.raise(PlaceholderErrors.UnexpectedSpace, this.state.lastTokEndLoc); + } + } +}; +var v8intrinsic = superClass => class V8IntrinsicMixin extends superClass { + parseV8Intrinsic() { + if (this.match(54)) { + const v8IntrinsicStartLoc = this.state.startLoc; + const node = this.startNode(); + this.next(); + if (tokenIsIdentifier(this.state.type)) { + const name = this.parseIdentifierName(); + const identifier = this.createIdentifier(node, name); + this.castNodeTo(identifier, "V8IntrinsicIdentifier"); + if (this.match(10)) { + return identifier; + } + } + this.unexpected(v8IntrinsicStartLoc); + } + } + parseExprAtom(refExpressionErrors) { + return this.parseV8Intrinsic() || super.parseExprAtom(refExpressionErrors); + } +}; +const PIPELINE_PROPOSALS = ["minimal", "fsharp", "hack", "smart"]; +const TOPIC_TOKENS = ["^^", "@@", "^", "%", "#"]; +function validatePlugins(pluginsMap) { + if (pluginsMap.has("decorators")) { + if (pluginsMap.has("decorators-legacy")) { + throw new Error("Cannot use the decorators and decorators-legacy plugin together"); + } + const decoratorsBeforeExport = pluginsMap.get("decorators").decoratorsBeforeExport; + if (decoratorsBeforeExport != null && typeof decoratorsBeforeExport !== "boolean") { + throw new Error("'decoratorsBeforeExport' must be a boolean, if specified."); + } + const allowCallParenthesized = pluginsMap.get("decorators").allowCallParenthesized; + if (allowCallParenthesized != null && typeof allowCallParenthesized !== "boolean") { + throw new Error("'allowCallParenthesized' must be a boolean."); + } + } + if (pluginsMap.has("flow") && pluginsMap.has("typescript")) { + throw new Error("Cannot combine flow and typescript plugins."); + } + if (pluginsMap.has("placeholders") && pluginsMap.has("v8intrinsic")) { + throw new Error("Cannot combine placeholders and v8intrinsic plugins."); + } + if (pluginsMap.has("pipelineOperator")) { + var _pluginsMap$get2; + const proposal = pluginsMap.get("pipelineOperator").proposal; + if (!PIPELINE_PROPOSALS.includes(proposal)) { + const proposalList = PIPELINE_PROPOSALS.map(p => `"${p}"`).join(", "); + throw new Error(`"pipelineOperator" requires "proposal" option whose value must be one of: ${proposalList}.`); + } + if (proposal === "hack") { + var _pluginsMap$get; + if (pluginsMap.has("placeholders")) { + throw new Error("Cannot combine placeholders plugin and Hack-style pipes."); + } + if (pluginsMap.has("v8intrinsic")) { + throw new Error("Cannot combine v8intrinsic plugin and Hack-style pipes."); + } + const topicToken = pluginsMap.get("pipelineOperator").topicToken; + if (!TOPIC_TOKENS.includes(topicToken)) { + const tokenList = TOPIC_TOKENS.map(t => `"${t}"`).join(", "); + throw new Error(`"pipelineOperator" in "proposal": "hack" mode also requires a "topicToken" option whose value must be one of: ${tokenList}.`); + } + if (topicToken === "#" && ((_pluginsMap$get = pluginsMap.get("recordAndTuple")) == null ? void 0 : _pluginsMap$get.syntaxType) === "hash") { + throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "hack", topicToken: "#" }]\` and \`${JSON.stringify(["recordAndTuple", pluginsMap.get("recordAndTuple")])}\`.`); + } + } else if (proposal === "smart" && ((_pluginsMap$get2 = pluginsMap.get("recordAndTuple")) == null ? void 0 : _pluginsMap$get2.syntaxType) === "hash") { + throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "smart" }]\` and \`${JSON.stringify(["recordAndTuple", pluginsMap.get("recordAndTuple")])}\`.`); + } + } + if (pluginsMap.has("moduleAttributes")) { + if (pluginsMap.has("deprecatedImportAssert") || pluginsMap.has("importAssertions")) { + throw new Error("Cannot combine importAssertions, deprecatedImportAssert and moduleAttributes plugins."); + } + const moduleAttributesVersionPluginOption = pluginsMap.get("moduleAttributes").version; + if (moduleAttributesVersionPluginOption !== "may-2020") { + throw new Error("The 'moduleAttributes' plugin requires a 'version' option," + " representing the last proposal update. Currently, the" + " only supported value is 'may-2020'."); + } + } + if (pluginsMap.has("importAssertions")) { + if (pluginsMap.has("deprecatedImportAssert")) { + throw new Error("Cannot combine importAssertions and deprecatedImportAssert plugins."); + } + } + if (pluginsMap.has("deprecatedImportAssert")) ;else if (pluginsMap.has("importAttributes") && pluginsMap.get("importAttributes").deprecatedAssertSyntax) { + pluginsMap.set("deprecatedImportAssert", {}); + } + if (pluginsMap.has("recordAndTuple")) { + const syntaxType = pluginsMap.get("recordAndTuple").syntaxType; + if (syntaxType != null) { + const RECORD_AND_TUPLE_SYNTAX_TYPES = ["hash", "bar"]; + if (!RECORD_AND_TUPLE_SYNTAX_TYPES.includes(syntaxType)) { + throw new Error("The 'syntaxType' option of the 'recordAndTuple' plugin must be one of: " + RECORD_AND_TUPLE_SYNTAX_TYPES.map(p => `'${p}'`).join(", ")); + } + } + } + if (pluginsMap.has("asyncDoExpressions") && !pluginsMap.has("doExpressions")) { + const error = new Error("'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins."); + error.missingPlugins = "doExpressions"; + throw error; + } + if (pluginsMap.has("optionalChainingAssign") && pluginsMap.get("optionalChainingAssign").version !== "2023-07") { + throw new Error("The 'optionalChainingAssign' plugin requires a 'version' option," + " representing the last proposal update. Currently, the" + " only supported value is '2023-07'."); + } + if (pluginsMap.has("discardBinding") && pluginsMap.get("discardBinding").syntaxType !== "void") { + throw new Error("The 'discardBinding' plugin requires a 'syntaxType' option. Currently the only supported value is 'void'."); + } +} +const mixinPlugins = { + estree, + jsx, + flow, + typescript, + v8intrinsic, + placeholders +}; +const mixinPluginNames = Object.keys(mixinPlugins); +class ExpressionParser extends LValParser { + checkProto(prop, isRecord, sawProto, refExpressionErrors) { + if (prop.type === "SpreadElement" || this.isObjectMethod(prop) || prop.computed || prop.shorthand) { + return sawProto; + } + const key = prop.key; + const name = key.type === "Identifier" ? key.name : key.value; + if (name === "__proto__") { + if (isRecord) { + this.raise(Errors.RecordNoProto, key); + return true; + } + if (sawProto) { + if (refExpressionErrors) { + if (refExpressionErrors.doubleProtoLoc === null) { + refExpressionErrors.doubleProtoLoc = key.loc.start; + } + } else { + this.raise(Errors.DuplicateProto, key); + } + } + return true; + } + return sawProto; + } + shouldExitDescending(expr, potentialArrowAt) { + return expr.type === "ArrowFunctionExpression" && this.offsetToSourcePos(expr.start) === potentialArrowAt; + } + getExpression() { + this.enterInitialScopes(); + this.nextToken(); + if (this.match(140)) { + throw this.raise(Errors.ParseExpressionEmptyInput, this.state.startLoc); + } + const expr = this.parseExpression(); + if (!this.match(140)) { + throw this.raise(Errors.ParseExpressionExpectsEOF, this.state.startLoc, { + unexpected: this.input.codePointAt(this.state.start) + }); + } + this.finalizeRemainingComments(); + expr.comments = this.comments; + expr.errors = this.state.errors; + if (this.optionFlags & 256) { + expr.tokens = this.tokens; + } + return expr; + } + parseExpression(disallowIn, refExpressionErrors) { + if (disallowIn) { + return this.disallowInAnd(() => this.parseExpressionBase(refExpressionErrors)); + } + return this.allowInAnd(() => this.parseExpressionBase(refExpressionErrors)); + } + parseExpressionBase(refExpressionErrors) { + const startLoc = this.state.startLoc; + const expr = this.parseMaybeAssign(refExpressionErrors); + if (this.match(12)) { + const node = this.startNodeAt(startLoc); + node.expressions = [expr]; + while (this.eat(12)) { + node.expressions.push(this.parseMaybeAssign(refExpressionErrors)); + } + this.toReferencedList(node.expressions); + return this.finishNode(node, "SequenceExpression"); + } + return expr; + } + parseMaybeAssignDisallowIn(refExpressionErrors, afterLeftParse) { + return this.disallowInAnd(() => this.parseMaybeAssign(refExpressionErrors, afterLeftParse)); + } + parseMaybeAssignAllowIn(refExpressionErrors, afterLeftParse) { + return this.allowInAnd(() => this.parseMaybeAssign(refExpressionErrors, afterLeftParse)); + } + setOptionalParametersError(refExpressionErrors) { + refExpressionErrors.optionalParametersLoc = this.state.startLoc; + } + parseMaybeAssign(refExpressionErrors, afterLeftParse) { + const startLoc = this.state.startLoc; + const isYield = this.isContextual(108); + if (isYield) { + if (this.prodParam.hasYield) { + this.next(); + let left = this.parseYield(startLoc); + if (afterLeftParse) { + left = afterLeftParse.call(this, left, startLoc); + } + return left; + } + } + let ownExpressionErrors; + if (refExpressionErrors) { + ownExpressionErrors = false; + } else { + refExpressionErrors = new ExpressionErrors(); + ownExpressionErrors = true; + } + const { + type + } = this.state; + if (type === 10 || tokenIsIdentifier(type)) { + this.state.potentialArrowAt = this.state.start; + } + let left = this.parseMaybeConditional(refExpressionErrors); + if (afterLeftParse) { + left = afterLeftParse.call(this, left, startLoc); + } + if (tokenIsAssignment(this.state.type)) { + const node = this.startNodeAt(startLoc); + const operator = this.state.value; + node.operator = operator; + if (this.match(29)) { + this.toAssignable(left, true); + node.left = left; + const startIndex = startLoc.index; + if (refExpressionErrors.doubleProtoLoc != null && refExpressionErrors.doubleProtoLoc.index >= startIndex) { + refExpressionErrors.doubleProtoLoc = null; + } + if (refExpressionErrors.shorthandAssignLoc != null && refExpressionErrors.shorthandAssignLoc.index >= startIndex) { + refExpressionErrors.shorthandAssignLoc = null; + } + if (refExpressionErrors.privateKeyLoc != null && refExpressionErrors.privateKeyLoc.index >= startIndex) { + this.checkDestructuringPrivate(refExpressionErrors); + refExpressionErrors.privateKeyLoc = null; + } + if (refExpressionErrors.voidPatternLoc != null && refExpressionErrors.voidPatternLoc.index >= startIndex) { + refExpressionErrors.voidPatternLoc = null; + } + } else { + node.left = left; + } + this.next(); + node.right = this.parseMaybeAssign(); + this.checkLVal(left, this.finishNode(node, "AssignmentExpression"), undefined, undefined, undefined, undefined, operator === "||=" || operator === "&&=" || operator === "??="); + return node; + } else if (ownExpressionErrors) { + this.checkExpressionErrors(refExpressionErrors, true); + } + if (isYield) { + const { + type + } = this.state; + const startsExpr = this.hasPlugin("v8intrinsic") ? tokenCanStartExpression(type) : tokenCanStartExpression(type) && !this.match(54); + if (startsExpr && !this.isAmbiguousPrefixOrIdentifier()) { + this.raiseOverwrite(Errors.YieldNotInGeneratorFunction, startLoc); + return this.parseYield(startLoc); + } + } + return left; + } + parseMaybeConditional(refExpressionErrors) { + const startLoc = this.state.startLoc; + const potentialArrowAt = this.state.potentialArrowAt; + const expr = this.parseExprOps(refExpressionErrors); + if (this.shouldExitDescending(expr, potentialArrowAt)) { + return expr; + } + return this.parseConditional(expr, startLoc, refExpressionErrors); + } + parseConditional(expr, startLoc, refExpressionErrors) { + if (this.eat(17)) { + const node = this.startNodeAt(startLoc); + node.test = expr; + node.consequent = this.parseMaybeAssignAllowIn(); + this.expect(14); + node.alternate = this.parseMaybeAssign(); + return this.finishNode(node, "ConditionalExpression"); + } + return expr; + } + parseMaybeUnaryOrPrivate(refExpressionErrors) { + return this.match(139) ? this.parsePrivateName() : this.parseMaybeUnary(refExpressionErrors); + } + parseExprOps(refExpressionErrors) { + const startLoc = this.state.startLoc; + const potentialArrowAt = this.state.potentialArrowAt; + const expr = this.parseMaybeUnaryOrPrivate(refExpressionErrors); + if (this.shouldExitDescending(expr, potentialArrowAt)) { + return expr; + } + return this.parseExprOp(expr, startLoc, -1); + } + parseExprOp(left, leftStartLoc, minPrec) { + if (this.isPrivateName(left)) { + const value = this.getPrivateNameSV(left); + if (minPrec >= tokenOperatorPrecedence(58) || !this.prodParam.hasIn || !this.match(58)) { + this.raise(Errors.PrivateInExpectedIn, left, { + identifierName: value + }); + } + this.classScope.usePrivateName(value, left.loc.start); + } + const op = this.state.type; + if (tokenIsOperator(op) && (this.prodParam.hasIn || !this.match(58))) { + let prec = tokenOperatorPrecedence(op); + if (prec > minPrec) { + if (op === 39) { + this.expectPlugin("pipelineOperator"); + if (this.state.inFSharpPipelineDirectBody) { + return left; + } + this.checkPipelineAtInfixOperator(left, leftStartLoc); + } + const node = this.startNodeAt(leftStartLoc); + node.left = left; + node.operator = this.state.value; + const logical = op === 41 || op === 42; + const coalesce = op === 40; + if (coalesce) { + prec = tokenOperatorPrecedence(42); + } + this.next(); + if (op === 39 && this.hasPlugin(["pipelineOperator", { + proposal: "minimal" + }])) { + if (this.state.type === 96 && this.prodParam.hasAwait) { + throw this.raise(Errors.UnexpectedAwaitAfterPipelineBody, this.state.startLoc); + } + } + node.right = this.parseExprOpRightExpr(op, prec); + const finishedNode = this.finishNode(node, logical || coalesce ? "LogicalExpression" : "BinaryExpression"); + const nextOp = this.state.type; + if (coalesce && (nextOp === 41 || nextOp === 42) || logical && nextOp === 40) { + throw this.raise(Errors.MixingCoalesceWithLogical, this.state.startLoc); + } + return this.parseExprOp(finishedNode, leftStartLoc, minPrec); + } + } + return left; + } + parseExprOpRightExpr(op, prec) { + const startLoc = this.state.startLoc; + switch (op) { + case 39: + switch (this.getPluginOption("pipelineOperator", "proposal")) { + case "hack": + return this.withTopicBindingContext(() => { + return this.parseHackPipeBody(); + }); + case "fsharp": + return this.withSoloAwaitPermittingContext(() => { + return this.parseFSharpPipelineBody(prec); + }); + } + if (this.getPluginOption("pipelineOperator", "proposal") === "smart") { + return this.withTopicBindingContext(() => { + if (this.prodParam.hasYield && this.isContextual(108)) { + throw this.raise(Errors.PipeBodyIsTighter, this.state.startLoc); + } + return this.parseSmartPipelineBodyInStyle(this.parseExprOpBaseRightExpr(op, prec), startLoc); + }); + } + default: + return this.parseExprOpBaseRightExpr(op, prec); + } + } + parseExprOpBaseRightExpr(op, prec) { + const startLoc = this.state.startLoc; + return this.parseExprOp(this.parseMaybeUnaryOrPrivate(), startLoc, tokenIsRightAssociative(op) ? prec - 1 : prec); + } + parseHackPipeBody() { + var _body$extra; + const { + startLoc + } = this.state; + const body = this.parseMaybeAssign(); + const requiredParentheses = UnparenthesizedPipeBodyDescriptions.has(body.type); + if (requiredParentheses && !((_body$extra = body.extra) != null && _body$extra.parenthesized)) { + this.raise(Errors.PipeUnparenthesizedBody, startLoc, { + type: body.type + }); + } + if (!this.topicReferenceWasUsedInCurrentContext()) { + this.raise(Errors.PipeTopicUnused, startLoc); + } + return body; + } + checkExponentialAfterUnary(node) { + if (this.match(57)) { + this.raise(Errors.UnexpectedTokenUnaryExponentiation, node.argument); + } + } + parseMaybeUnary(refExpressionErrors, sawUnary) { + const startLoc = this.state.startLoc; + const isAwait = this.isContextual(96); + if (isAwait && this.recordAwaitIfAllowed()) { + this.next(); + const expr = this.parseAwait(startLoc); + if (!sawUnary) this.checkExponentialAfterUnary(expr); + return expr; + } + const update = this.match(34); + const node = this.startNode(); + if (tokenIsPrefix(this.state.type)) { + node.operator = this.state.value; + node.prefix = true; + if (this.match(72)) { + this.expectPlugin("throwExpressions"); + } + const isDelete = this.match(89); + this.next(); + node.argument = this.parseMaybeUnary(null, true); + this.checkExpressionErrors(refExpressionErrors, true); + if (this.state.strict && isDelete) { + const arg = node.argument; + if (arg.type === "Identifier") { + this.raise(Errors.StrictDelete, node); + } else if (this.hasPropertyAsPrivateName(arg)) { + this.raise(Errors.DeletePrivateField, node); + } + } + if (!update) { + if (!sawUnary) { + this.checkExponentialAfterUnary(node); + } + return this.finishNode(node, "UnaryExpression"); + } + } + const expr = this.parseUpdate(node, update, refExpressionErrors); + if (isAwait) { + const { + type + } = this.state; + const startsExpr = this.hasPlugin("v8intrinsic") ? tokenCanStartExpression(type) : tokenCanStartExpression(type) && !this.match(54); + if (startsExpr && !this.isAmbiguousPrefixOrIdentifier()) { + this.raiseOverwrite(Errors.AwaitNotInAsyncContext, startLoc); + return this.parseAwait(startLoc); + } + } + return expr; + } + parseUpdate(node, update, refExpressionErrors) { + if (update) { + const updateExpressionNode = node; + this.checkLVal(updateExpressionNode.argument, this.finishNode(updateExpressionNode, "UpdateExpression")); + return node; + } + const startLoc = this.state.startLoc; + let expr = this.parseExprSubscripts(refExpressionErrors); + if (this.checkExpressionErrors(refExpressionErrors, false)) return expr; + while (tokenIsPostfix(this.state.type) && !this.canInsertSemicolon()) { + const node = this.startNodeAt(startLoc); + node.operator = this.state.value; + node.prefix = false; + node.argument = expr; + this.next(); + this.checkLVal(expr, expr = this.finishNode(node, "UpdateExpression")); + } + return expr; + } + parseExprSubscripts(refExpressionErrors) { + const startLoc = this.state.startLoc; + const potentialArrowAt = this.state.potentialArrowAt; + const expr = this.parseExprAtom(refExpressionErrors); + if (this.shouldExitDescending(expr, potentialArrowAt)) { + return expr; + } + return this.parseSubscripts(expr, startLoc); + } + parseSubscripts(base, startLoc, noCalls) { + const state = { + optionalChainMember: false, + maybeAsyncArrow: this.atPossibleAsyncArrow(base), + stop: false + }; + do { + base = this.parseSubscript(base, startLoc, noCalls, state); + state.maybeAsyncArrow = false; + } while (!state.stop); + return base; + } + parseSubscript(base, startLoc, noCalls, state) { + const { + type + } = this.state; + if (!noCalls && type === 15) { + return this.parseBind(base, startLoc, noCalls, state); + } else if (tokenIsTemplate(type)) { + return this.parseTaggedTemplateExpression(base, startLoc, state); + } + let optional = false; + if (type === 18) { + if (noCalls) { + this.raise(Errors.OptionalChainingNoNew, this.state.startLoc); + if (this.lookaheadCharCode() === 40) { + return this.stopParseSubscript(base, state); + } + } + state.optionalChainMember = optional = true; + this.next(); + } + if (!noCalls && this.match(10)) { + return this.parseCoverCallAndAsyncArrowHead(base, startLoc, state, optional); + } else { + const computed = this.eat(0); + if (computed || optional || this.eat(16)) { + return this.parseMember(base, startLoc, state, computed, optional); + } else { + return this.stopParseSubscript(base, state); + } + } + } + stopParseSubscript(base, state) { + state.stop = true; + return base; + } + parseMember(base, startLoc, state, computed, optional) { + const node = this.startNodeAt(startLoc); + node.object = base; + node.computed = computed; + if (computed) { + node.property = this.parseExpression(); + this.expect(3); + } else if (this.match(139)) { + if (base.type === "Super") { + this.raise(Errors.SuperPrivateField, startLoc); + } + this.classScope.usePrivateName(this.state.value, this.state.startLoc); + node.property = this.parsePrivateName(); + } else { + node.property = this.parseIdentifier(true); + } + if (state.optionalChainMember) { + node.optional = optional; + return this.finishNode(node, "OptionalMemberExpression"); + } else { + return this.finishNode(node, "MemberExpression"); + } + } + parseBind(base, startLoc, noCalls, state) { + const node = this.startNodeAt(startLoc); + node.object = base; + this.next(); + node.callee = this.parseNoCallExpr(); + state.stop = true; + return this.parseSubscripts(this.finishNode(node, "BindExpression"), startLoc, noCalls); + } + parseCoverCallAndAsyncArrowHead(base, startLoc, state, optional) { + const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; + let refExpressionErrors = null; + this.state.maybeInArrowParameters = true; + this.next(); + const node = this.startNodeAt(startLoc); + node.callee = base; + const { + maybeAsyncArrow, + optionalChainMember + } = state; + if (maybeAsyncArrow) { + this.expressionScope.enter(newAsyncArrowScope()); + refExpressionErrors = new ExpressionErrors(); + } + if (optionalChainMember) { + node.optional = optional; + } + if (optional) { + node.arguments = this.parseCallExpressionArguments(); + } else { + node.arguments = this.parseCallExpressionArguments(base.type !== "Super", node, refExpressionErrors); + } + let finishedNode = this.finishCallExpression(node, optionalChainMember); + if (maybeAsyncArrow && this.shouldParseAsyncArrow() && !optional) { + state.stop = true; + this.checkDestructuringPrivate(refExpressionErrors); + this.expressionScope.validateAsPattern(); + this.expressionScope.exit(); + finishedNode = this.parseAsyncArrowFromCallExpression(this.startNodeAt(startLoc), finishedNode); + } else { + if (maybeAsyncArrow) { + this.checkExpressionErrors(refExpressionErrors, true); + this.expressionScope.exit(); + } + this.toReferencedArguments(finishedNode); + } + this.state.maybeInArrowParameters = oldMaybeInArrowParameters; + return finishedNode; + } + toReferencedArguments(node, isParenthesizedExpr) { + this.toReferencedListDeep(node.arguments, isParenthesizedExpr); + } + parseTaggedTemplateExpression(base, startLoc, state) { + const node = this.startNodeAt(startLoc); + node.tag = base; + node.quasi = this.parseTemplate(true); + if (state.optionalChainMember) { + this.raise(Errors.OptionalChainingNoTemplate, startLoc); + } + return this.finishNode(node, "TaggedTemplateExpression"); + } + atPossibleAsyncArrow(base) { + return base.type === "Identifier" && base.name === "async" && this.state.lastTokEndLoc.index === base.end && !this.canInsertSemicolon() && base.end - base.start === 5 && this.offsetToSourcePos(base.start) === this.state.potentialArrowAt; + } + finishCallExpression(node, optional) { + if (node.callee.type === "Import") { + if (node.arguments.length === 0 || node.arguments.length > 2) { + this.raise(Errors.ImportCallArity, node); + } else { + for (const arg of node.arguments) { + if (arg.type === "SpreadElement") { + this.raise(Errors.ImportCallSpreadArgument, arg); + } + } + } + } + return this.finishNode(node, optional ? "OptionalCallExpression" : "CallExpression"); + } + parseCallExpressionArguments(allowPlaceholder, nodeForExtra, refExpressionErrors) { + const elts = []; + let first = true; + const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; + this.state.inFSharpPipelineDirectBody = false; + while (!this.eat(11)) { + if (first) { + first = false; + } else { + this.expect(12); + if (this.match(11)) { + if (nodeForExtra) { + this.addTrailingCommaExtraToNode(nodeForExtra); + } + this.next(); + break; + } + } + elts.push(this.parseExprListItem(11, false, refExpressionErrors, allowPlaceholder)); + } + this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; + return elts; + } + shouldParseAsyncArrow() { + return this.match(19) && !this.canInsertSemicolon(); + } + parseAsyncArrowFromCallExpression(node, call) { + var _call$extra; + this.resetPreviousNodeTrailingComments(call); + this.expect(19); + this.parseArrowExpression(node, call.arguments, true, (_call$extra = call.extra) == null ? void 0 : _call$extra.trailingCommaLoc); + if (call.innerComments) { + setInnerComments(node, call.innerComments); + } + if (call.callee.trailingComments) { + setInnerComments(node, call.callee.trailingComments); + } + return node; + } + parseNoCallExpr() { + const startLoc = this.state.startLoc; + return this.parseSubscripts(this.parseExprAtom(), startLoc, true); + } + parseExprAtom(refExpressionErrors) { + let node; + let decorators = null; + const { + type + } = this.state; + switch (type) { + case 79: + return this.parseSuper(); + case 83: + node = this.startNode(); + this.next(); + if (this.match(16)) { + return this.parseImportMetaPropertyOrPhaseCall(node); + } + if (this.match(10)) { + if (this.optionFlags & 512) { + return this.parseImportCall(node); + } else { + return this.finishNode(node, "Import"); + } + } else { + this.raise(Errors.UnsupportedImport, this.state.lastTokStartLoc); + return this.finishNode(node, "Import"); + } + case 78: + node = this.startNode(); + this.next(); + return this.finishNode(node, "ThisExpression"); + case 90: + { + return this.parseDo(this.startNode(), false); + } + case 56: + case 31: + { + this.readRegexp(); + return this.parseRegExpLiteral(this.state.value); + } + case 135: + return this.parseNumericLiteral(this.state.value); + case 136: + return this.parseBigIntLiteral(this.state.value); + case 134: + return this.parseStringLiteral(this.state.value); + case 84: + return this.parseNullLiteral(); + case 85: + return this.parseBooleanLiteral(true); + case 86: + return this.parseBooleanLiteral(false); + case 10: + { + const canBeArrow = this.state.potentialArrowAt === this.state.start; + return this.parseParenAndDistinguishExpression(canBeArrow); + } + case 0: + { + return this.parseArrayLike(3, false, refExpressionErrors); + } + case 5: + { + return this.parseObjectLike(8, false, false, refExpressionErrors); + } + case 68: + return this.parseFunctionOrFunctionSent(); + case 26: + decorators = this.parseDecorators(); + case 80: + return this.parseClass(this.maybeTakeDecorators(decorators, this.startNode()), false); + case 77: + return this.parseNewOrNewTarget(); + case 25: + case 24: + return this.parseTemplate(false); + case 15: + { + node = this.startNode(); + this.next(); + node.object = null; + const callee = node.callee = this.parseNoCallExpr(); + if (callee.type === "MemberExpression") { + return this.finishNode(node, "BindExpression"); + } else { + throw this.raise(Errors.UnsupportedBind, callee); + } + } + case 139: + { + this.raise(Errors.PrivateInExpectedIn, this.state.startLoc, { + identifierName: this.state.value + }); + return this.parsePrivateName(); + } + case 33: + { + return this.parseTopicReferenceThenEqualsSign(54, "%"); + } + case 32: + { + return this.parseTopicReferenceThenEqualsSign(44, "^"); + } + case 37: + case 38: + { + return this.parseTopicReference("hack"); + } + case 44: + case 54: + case 27: + { + const pipeProposal = this.getPluginOption("pipelineOperator", "proposal"); + if (pipeProposal) { + return this.parseTopicReference(pipeProposal); + } + throw this.unexpected(); + } + case 47: + { + const lookaheadCh = this.input.codePointAt(this.nextTokenStart()); + if (isIdentifierStart(lookaheadCh) || lookaheadCh === 62) { + throw this.expectOnePlugin(["jsx", "flow", "typescript"]); + } + throw this.unexpected(); + } + default: + if (type === 137) { + return this.parseDecimalLiteral(this.state.value); + } else if (type === 2 || type === 1) { + return this.parseArrayLike(this.state.type === 2 ? 4 : 3, true); + } else if (type === 6 || type === 7) { + return this.parseObjectLike(this.state.type === 6 ? 9 : 8, false, true); + } + if (tokenIsIdentifier(type)) { + if (this.isContextual(127) && this.lookaheadInLineCharCode() === 123) { + return this.parseModuleExpression(); + } + const canBeArrow = this.state.potentialArrowAt === this.state.start; + const containsEsc = this.state.containsEsc; + const id = this.parseIdentifier(); + if (!containsEsc && id.name === "async" && !this.canInsertSemicolon()) { + const { + type + } = this.state; + if (type === 68) { + this.resetPreviousNodeTrailingComments(id); + this.next(); + return this.parseAsyncFunctionExpression(this.startNodeAtNode(id)); + } else if (tokenIsIdentifier(type)) { + if (canBeArrow && this.lookaheadCharCode() === 61) { + return this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(id)); + } else { + return id; + } + } else if (type === 90) { + this.resetPreviousNodeTrailingComments(id); + return this.parseDo(this.startNodeAtNode(id), true); + } + } + if (canBeArrow && this.match(19) && !this.canInsertSemicolon()) { + this.next(); + return this.parseArrowExpression(this.startNodeAtNode(id), [id], false); + } + return id; + } else { + throw this.unexpected(); + } + } + } + parseTopicReferenceThenEqualsSign(topicTokenType, topicTokenValue) { + const pipeProposal = this.getPluginOption("pipelineOperator", "proposal"); + if (pipeProposal) { + this.state.type = topicTokenType; + this.state.value = topicTokenValue; + this.state.pos--; + this.state.end--; + this.state.endLoc = createPositionWithColumnOffset(this.state.endLoc, -1); + return this.parseTopicReference(pipeProposal); + } + throw this.unexpected(); + } + parseTopicReference(pipeProposal) { + const node = this.startNode(); + const startLoc = this.state.startLoc; + const tokenType = this.state.type; + this.next(); + return this.finishTopicReference(node, startLoc, pipeProposal, tokenType); + } + finishTopicReference(node, startLoc, pipeProposal, tokenType) { + if (this.testTopicReferenceConfiguration(pipeProposal, startLoc, tokenType)) { + if (pipeProposal === "hack") { + if (!this.topicReferenceIsAllowedInCurrentContext()) { + this.raise(Errors.PipeTopicUnbound, startLoc); + } + this.registerTopicReference(); + return this.finishNode(node, "TopicReference"); + } else { + if (!this.topicReferenceIsAllowedInCurrentContext()) { + this.raise(Errors.PrimaryTopicNotAllowed, startLoc); + } + this.registerTopicReference(); + return this.finishNode(node, "PipelinePrimaryTopicReference"); + } + } else { + throw this.raise(Errors.PipeTopicUnconfiguredToken, startLoc, { + token: tokenLabelName(tokenType) + }); + } + } + testTopicReferenceConfiguration(pipeProposal, startLoc, tokenType) { + switch (pipeProposal) { + case "hack": + { + return this.hasPlugin(["pipelineOperator", { + topicToken: tokenLabelName(tokenType) + }]); + } + case "smart": + return tokenType === 27; + default: + throw this.raise(Errors.PipeTopicRequiresHackPipes, startLoc); + } + } + parseAsyncArrowUnaryFunction(node) { + this.prodParam.enter(functionFlags(true, this.prodParam.hasYield)); + const params = [this.parseIdentifier()]; + this.prodParam.exit(); + if (this.hasPrecedingLineBreak()) { + this.raise(Errors.LineTerminatorBeforeArrow, this.state.curPosition()); + } + this.expect(19); + return this.parseArrowExpression(node, params, true); + } + parseDo(node, isAsync) { + this.expectPlugin("doExpressions"); + if (isAsync) { + this.expectPlugin("asyncDoExpressions"); + } + node.async = isAsync; + this.next(); + const oldLabels = this.state.labels; + this.state.labels = []; + if (isAsync) { + this.prodParam.enter(2); + node.body = this.parseBlock(); + this.prodParam.exit(); + } else { + node.body = this.parseBlock(); + } + this.state.labels = oldLabels; + return this.finishNode(node, "DoExpression"); + } + parseSuper() { + const node = this.startNode(); + this.next(); + if (this.match(10) && !this.scope.allowDirectSuper) { + if (!(this.optionFlags & 16)) { + this.raise(Errors.SuperNotAllowed, node); + } + } else if (!this.scope.allowSuper) { + if (!(this.optionFlags & 16)) { + this.raise(Errors.UnexpectedSuper, node); + } + } + if (!this.match(10) && !this.match(0) && !this.match(16)) { + this.raise(Errors.UnsupportedSuper, node); + } + return this.finishNode(node, "Super"); + } + parsePrivateName() { + const node = this.startNode(); + const id = this.startNodeAt(createPositionWithColumnOffset(this.state.startLoc, 1)); + const name = this.state.value; + this.next(); + node.id = this.createIdentifier(id, name); + return this.finishNode(node, "PrivateName"); + } + parseFunctionOrFunctionSent() { + const node = this.startNode(); + this.next(); + if (this.prodParam.hasYield && this.match(16)) { + const meta = this.createIdentifier(this.startNodeAtNode(node), "function"); + this.next(); + if (this.match(103)) { + this.expectPlugin("functionSent"); + } else if (!this.hasPlugin("functionSent")) { + this.unexpected(); + } + return this.parseMetaProperty(node, meta, "sent"); + } + return this.parseFunction(node); + } + parseMetaProperty(node, meta, propertyName) { + node.meta = meta; + const containsEsc = this.state.containsEsc; + node.property = this.parseIdentifier(true); + if (node.property.name !== propertyName || containsEsc) { + this.raise(Errors.UnsupportedMetaProperty, node.property, { + target: meta.name, + onlyValidPropertyName: propertyName + }); + } + return this.finishNode(node, "MetaProperty"); + } + parseImportMetaPropertyOrPhaseCall(node) { + this.next(); + if (this.isContextual(105) || this.isContextual(97)) { + const isSource = this.isContextual(105); + this.expectPlugin(isSource ? "sourcePhaseImports" : "deferredImportEvaluation"); + this.next(); + node.phase = isSource ? "source" : "defer"; + return this.parseImportCall(node); + } else { + const id = this.createIdentifierAt(this.startNodeAtNode(node), "import", this.state.lastTokStartLoc); + if (this.isContextual(101)) { + if (!this.inModule) { + this.raise(Errors.ImportMetaOutsideModule, id); + } + this.sawUnambiguousESM = true; + } + return this.parseMetaProperty(node, id, "meta"); + } + } + parseLiteralAtNode(value, type, node) { + this.addExtra(node, "rawValue", value); + this.addExtra(node, "raw", this.input.slice(this.offsetToSourcePos(node.start), this.state.end)); + node.value = value; + this.next(); + return this.finishNode(node, type); + } + parseLiteral(value, type) { + const node = this.startNode(); + return this.parseLiteralAtNode(value, type, node); + } + parseStringLiteral(value) { + return this.parseLiteral(value, "StringLiteral"); + } + parseNumericLiteral(value) { + return this.parseLiteral(value, "NumericLiteral"); + } + parseBigIntLiteral(value) { + return this.parseLiteral(value, "BigIntLiteral"); + } + parseDecimalLiteral(value) { + return this.parseLiteral(value, "DecimalLiteral"); + } + parseRegExpLiteral(value) { + const node = this.startNode(); + this.addExtra(node, "raw", this.input.slice(this.offsetToSourcePos(node.start), this.state.end)); + node.pattern = value.pattern; + node.flags = value.flags; + this.next(); + return this.finishNode(node, "RegExpLiteral"); + } + parseBooleanLiteral(value) { + const node = this.startNode(); + node.value = value; + this.next(); + return this.finishNode(node, "BooleanLiteral"); + } + parseNullLiteral() { + const node = this.startNode(); + this.next(); + return this.finishNode(node, "NullLiteral"); + } + parseParenAndDistinguishExpression(canBeArrow) { + const startLoc = this.state.startLoc; + let val; + this.next(); + this.expressionScope.enter(newArrowHeadScope()); + const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; + const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; + this.state.maybeInArrowParameters = true; + this.state.inFSharpPipelineDirectBody = false; + const innerStartLoc = this.state.startLoc; + const exprList = []; + const refExpressionErrors = new ExpressionErrors(); + let first = true; + let spreadStartLoc; + let optionalCommaStartLoc; + while (!this.match(11)) { + if (first) { + first = false; + } else { + this.expect(12, refExpressionErrors.optionalParametersLoc === null ? null : refExpressionErrors.optionalParametersLoc); + if (this.match(11)) { + optionalCommaStartLoc = this.state.startLoc; + break; + } + } + if (this.match(21)) { + const spreadNodeStartLoc = this.state.startLoc; + spreadStartLoc = this.state.startLoc; + exprList.push(this.parseParenItem(this.parseRestBinding(), spreadNodeStartLoc)); + if (!this.checkCommaAfterRest(41)) { + break; + } + } else { + exprList.push(this.parseMaybeAssignAllowInOrVoidPattern(11, refExpressionErrors, this.parseParenItem)); + } + } + const innerEndLoc = this.state.lastTokEndLoc; + this.expect(11); + this.state.maybeInArrowParameters = oldMaybeInArrowParameters; + this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; + let arrowNode = this.startNodeAt(startLoc); + if (canBeArrow && this.shouldParseArrow(exprList) && (arrowNode = this.parseArrow(arrowNode))) { + this.checkDestructuringPrivate(refExpressionErrors); + this.expressionScope.validateAsPattern(); + this.expressionScope.exit(); + this.parseArrowExpression(arrowNode, exprList, false); + return arrowNode; + } + this.expressionScope.exit(); + if (!exprList.length) { + this.unexpected(this.state.lastTokStartLoc); + } + if (optionalCommaStartLoc) this.unexpected(optionalCommaStartLoc); + if (spreadStartLoc) this.unexpected(spreadStartLoc); + this.checkExpressionErrors(refExpressionErrors, true); + this.toReferencedListDeep(exprList, true); + if (exprList.length > 1) { + val = this.startNodeAt(innerStartLoc); + val.expressions = exprList; + this.finishNode(val, "SequenceExpression"); + this.resetEndLocation(val, innerEndLoc); + } else { + val = exprList[0]; + } + return this.wrapParenthesis(startLoc, val); + } + wrapParenthesis(startLoc, expression) { + if (!(this.optionFlags & 1024)) { + this.addExtra(expression, "parenthesized", true); + this.addExtra(expression, "parenStart", startLoc.index); + this.takeSurroundingComments(expression, startLoc.index, this.state.lastTokEndLoc.index); + return expression; + } + const parenExpression = this.startNodeAt(startLoc); + parenExpression.expression = expression; + return this.finishNode(parenExpression, "ParenthesizedExpression"); + } + shouldParseArrow(params) { + return !this.canInsertSemicolon(); + } + parseArrow(node) { + if (this.eat(19)) { + return node; + } + } + parseParenItem(node, startLoc) { + return node; + } + parseNewOrNewTarget() { + const node = this.startNode(); + this.next(); + if (this.match(16)) { + const meta = this.createIdentifier(this.startNodeAtNode(node), "new"); + this.next(); + const metaProp = this.parseMetaProperty(node, meta, "target"); + if (!this.scope.allowNewTarget) { + this.raise(Errors.UnexpectedNewTarget, metaProp); + } + return metaProp; + } + return this.parseNew(node); + } + parseNew(node) { + this.parseNewCallee(node); + if (this.eat(10)) { + const args = this.parseExprList(11); + this.toReferencedList(args); + node.arguments = args; + } else { + node.arguments = []; + } + return this.finishNode(node, "NewExpression"); + } + parseNewCallee(node) { + const isImport = this.match(83); + const callee = this.parseNoCallExpr(); + node.callee = callee; + if (isImport && (callee.type === "Import" || callee.type === "ImportExpression")) { + this.raise(Errors.ImportCallNotNewExpression, callee); + } + } + parseTemplateElement(isTagged) { + const { + start, + startLoc, + end, + value + } = this.state; + const elemStart = start + 1; + const elem = this.startNodeAt(createPositionWithColumnOffset(startLoc, 1)); + if (value === null) { + if (!isTagged) { + this.raise(Errors.InvalidEscapeSequenceTemplate, createPositionWithColumnOffset(this.state.firstInvalidTemplateEscapePos, 1)); + } + } + const isTail = this.match(24); + const endOffset = isTail ? -1 : -2; + const elemEnd = end + endOffset; + elem.value = { + raw: this.input.slice(elemStart, elemEnd).replace(/\r\n?/g, "\n"), + cooked: value === null ? null : value.slice(1, endOffset) + }; + elem.tail = isTail; + this.next(); + const finishedNode = this.finishNode(elem, "TemplateElement"); + this.resetEndLocation(finishedNode, createPositionWithColumnOffset(this.state.lastTokEndLoc, endOffset)); + return finishedNode; + } + parseTemplate(isTagged) { + const node = this.startNode(); + let curElt = this.parseTemplateElement(isTagged); + const quasis = [curElt]; + const substitutions = []; + while (!curElt.tail) { + substitutions.push(this.parseTemplateSubstitution()); + this.readTemplateContinuation(); + quasis.push(curElt = this.parseTemplateElement(isTagged)); + } + node.expressions = substitutions; + node.quasis = quasis; + return this.finishNode(node, "TemplateLiteral"); + } + parseTemplateSubstitution() { + return this.parseExpression(); + } + parseObjectLike(close, isPattern, isRecord, refExpressionErrors) { + if (isRecord) { + this.expectPlugin("recordAndTuple"); + } + const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; + this.state.inFSharpPipelineDirectBody = false; + let sawProto = false; + let first = true; + const node = this.startNode(); + node.properties = []; + this.next(); + while (!this.match(close)) { + if (first) { + first = false; + } else { + this.expect(12); + if (this.match(close)) { + this.addTrailingCommaExtraToNode(node); + break; + } + } + let prop; + if (isPattern) { + prop = this.parseBindingProperty(); + } else { + prop = this.parsePropertyDefinition(refExpressionErrors); + sawProto = this.checkProto(prop, isRecord, sawProto, refExpressionErrors); + } + if (isRecord && !this.isObjectProperty(prop) && prop.type !== "SpreadElement") { + this.raise(Errors.InvalidRecordProperty, prop); + } + if (prop.shorthand) { + this.addExtra(prop, "shorthand", true); + } + node.properties.push(prop); + } + this.next(); + this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; + let type = "ObjectExpression"; + if (isPattern) { + type = "ObjectPattern"; + } else if (isRecord) { + type = "RecordExpression"; + } + return this.finishNode(node, type); + } + addTrailingCommaExtraToNode(node) { + this.addExtra(node, "trailingComma", this.state.lastTokStartLoc.index); + this.addExtra(node, "trailingCommaLoc", this.state.lastTokStartLoc, false); + } + maybeAsyncOrAccessorProp(prop) { + return !prop.computed && prop.key.type === "Identifier" && (this.isLiteralPropertyName() || this.match(0) || this.match(55)); + } + parsePropertyDefinition(refExpressionErrors) { + let decorators = []; + if (this.match(26)) { + if (this.hasPlugin("decorators")) { + this.raise(Errors.UnsupportedPropertyDecorator, this.state.startLoc); + } + while (this.match(26)) { + decorators.push(this.parseDecorator()); + } + } + const prop = this.startNode(); + let isAsync = false; + let isAccessor = false; + let startLoc; + if (this.match(21)) { + if (decorators.length) this.unexpected(); + return this.parseSpread(); + } + if (decorators.length) { + prop.decorators = decorators; + decorators = []; + } + prop.method = false; + if (refExpressionErrors) { + startLoc = this.state.startLoc; + } + let isGenerator = this.eat(55); + this.parsePropertyNamePrefixOperator(prop); + const containsEsc = this.state.containsEsc; + this.parsePropertyName(prop, refExpressionErrors); + if (!isGenerator && !containsEsc && this.maybeAsyncOrAccessorProp(prop)) { + const { + key + } = prop; + const keyName = key.name; + if (keyName === "async" && !this.hasPrecedingLineBreak()) { + isAsync = true; + this.resetPreviousNodeTrailingComments(key); + isGenerator = this.eat(55); + this.parsePropertyName(prop); + } + if (keyName === "get" || keyName === "set") { + isAccessor = true; + this.resetPreviousNodeTrailingComments(key); + prop.kind = keyName; + if (this.match(55)) { + isGenerator = true; + this.raise(Errors.AccessorIsGenerator, this.state.curPosition(), { + kind: keyName + }); + this.next(); + } + this.parsePropertyName(prop); + } + } + return this.parseObjPropValue(prop, startLoc, isGenerator, isAsync, false, isAccessor, refExpressionErrors); + } + getGetterSetterExpectedParamCount(method) { + return method.kind === "get" ? 0 : 1; + } + getObjectOrClassMethodParams(method) { + return method.params; + } + checkGetterSetterParams(method) { + var _params; + const paramCount = this.getGetterSetterExpectedParamCount(method); + const params = this.getObjectOrClassMethodParams(method); + if (params.length !== paramCount) { + this.raise(method.kind === "get" ? Errors.BadGetterArity : Errors.BadSetterArity, method); + } + if (method.kind === "set" && ((_params = params[params.length - 1]) == null ? void 0 : _params.type) === "RestElement") { + this.raise(Errors.BadSetterRestParameter, method); + } + } + parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor) { + if (isAccessor) { + const finishedProp = this.parseMethod(prop, isGenerator, false, false, false, "ObjectMethod"); + this.checkGetterSetterParams(finishedProp); + return finishedProp; + } + if (isAsync || isGenerator || this.match(10)) { + if (isPattern) this.unexpected(); + prop.kind = "method"; + prop.method = true; + return this.parseMethod(prop, isGenerator, isAsync, false, false, "ObjectMethod"); + } + } + parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors) { + prop.shorthand = false; + if (this.eat(14)) { + prop.value = isPattern ? this.parseMaybeDefault(this.state.startLoc) : this.parseMaybeAssignAllowInOrVoidPattern(8, refExpressionErrors); + return this.finishObjectProperty(prop); + } + if (!prop.computed && prop.key.type === "Identifier") { + this.checkReservedWord(prop.key.name, prop.key.loc.start, true, false); + if (isPattern) { + prop.value = this.parseMaybeDefault(startLoc, this.cloneIdentifier(prop.key)); + } else if (this.match(29)) { + const shorthandAssignLoc = this.state.startLoc; + if (refExpressionErrors != null) { + if (refExpressionErrors.shorthandAssignLoc === null) { + refExpressionErrors.shorthandAssignLoc = shorthandAssignLoc; + } + } else { + this.raise(Errors.InvalidCoverInitializedName, shorthandAssignLoc); + } + prop.value = this.parseMaybeDefault(startLoc, this.cloneIdentifier(prop.key)); + } else { + prop.value = this.cloneIdentifier(prop.key); + } + prop.shorthand = true; + return this.finishObjectProperty(prop); + } + } + finishObjectProperty(node) { + return this.finishNode(node, "ObjectProperty"); + } + parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) { + const node = this.parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor) || this.parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors); + if (!node) this.unexpected(); + return node; + } + parsePropertyName(prop, refExpressionErrors) { + if (this.eat(0)) { + prop.computed = true; + prop.key = this.parseMaybeAssignAllowIn(); + this.expect(3); + } else { + const { + type, + value + } = this.state; + let key; + if (tokenIsKeywordOrIdentifier(type)) { + key = this.parseIdentifier(true); + } else { + switch (type) { + case 135: + key = this.parseNumericLiteral(value); + break; + case 134: + key = this.parseStringLiteral(value); + break; + case 136: + key = this.parseBigIntLiteral(value); + break; + case 139: + { + const privateKeyLoc = this.state.startLoc; + if (refExpressionErrors != null) { + if (refExpressionErrors.privateKeyLoc === null) { + refExpressionErrors.privateKeyLoc = privateKeyLoc; + } + } else { + this.raise(Errors.UnexpectedPrivateField, privateKeyLoc); + } + key = this.parsePrivateName(); + break; + } + default: + if (type === 137) { + key = this.parseDecimalLiteral(value); + break; + } + this.unexpected(); + } + } + prop.key = key; + if (type !== 139) { + prop.computed = false; + } + } + } + initFunction(node, isAsync) { + node.id = null; + node.generator = false; + node.async = isAsync; + } + parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope = false) { + this.initFunction(node, isAsync); + node.generator = isGenerator; + this.scope.enter(514 | 16 | (inClassScope ? 576 : 0) | (allowDirectSuper ? 32 : 0)); + this.prodParam.enter(functionFlags(isAsync, node.generator)); + this.parseFunctionParams(node, isConstructor); + const finishedNode = this.parseFunctionBodyAndFinish(node, type, true); + this.prodParam.exit(); + this.scope.exit(); + return finishedNode; + } + parseArrayLike(close, isTuple, refExpressionErrors) { + if (isTuple) { + this.expectPlugin("recordAndTuple"); + } + const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; + this.state.inFSharpPipelineDirectBody = false; + const node = this.startNode(); + this.next(); + node.elements = this.parseExprList(close, !isTuple, refExpressionErrors, node); + this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; + return this.finishNode(node, isTuple ? "TupleExpression" : "ArrayExpression"); + } + parseArrowExpression(node, params, isAsync, trailingCommaLoc) { + this.scope.enter(514 | 4); + let flags = functionFlags(isAsync, false); + if (!this.match(5) && this.prodParam.hasIn) { + flags |= 8; + } + this.prodParam.enter(flags); + this.initFunction(node, isAsync); + const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; + if (params) { + this.state.maybeInArrowParameters = true; + this.setArrowFunctionParameters(node, params, trailingCommaLoc); + } + this.state.maybeInArrowParameters = false; + this.parseFunctionBody(node, true); + this.prodParam.exit(); + this.scope.exit(); + this.state.maybeInArrowParameters = oldMaybeInArrowParameters; + return this.finishNode(node, "ArrowFunctionExpression"); + } + setArrowFunctionParameters(node, params, trailingCommaLoc) { + this.toAssignableList(params, trailingCommaLoc, false); + node.params = params; + } + parseFunctionBodyAndFinish(node, type, isMethod = false) { + this.parseFunctionBody(node, false, isMethod); + return this.finishNode(node, type); + } + parseFunctionBody(node, allowExpression, isMethod = false) { + const isExpression = allowExpression && !this.match(5); + this.expressionScope.enter(newExpressionScope()); + if (isExpression) { + node.body = this.parseMaybeAssign(); + this.checkParams(node, false, allowExpression, false); + } else { + const oldStrict = this.state.strict; + const oldLabels = this.state.labels; + this.state.labels = []; + this.prodParam.enter(this.prodParam.currentFlags() | 4); + node.body = this.parseBlock(true, false, hasStrictModeDirective => { + const nonSimple = !this.isSimpleParamList(node.params); + if (hasStrictModeDirective && nonSimple) { + this.raise(Errors.IllegalLanguageModeDirective, (node.kind === "method" || node.kind === "constructor") && !!node.key ? node.key.loc.end : node); + } + const strictModeChanged = !oldStrict && this.state.strict; + this.checkParams(node, !this.state.strict && !allowExpression && !isMethod && !nonSimple, allowExpression, strictModeChanged); + if (this.state.strict && node.id) { + this.checkIdentifier(node.id, 65, strictModeChanged); + } + }); + this.prodParam.exit(); + this.state.labels = oldLabels; + } + this.expressionScope.exit(); + } + isSimpleParameter(node) { + return node.type === "Identifier"; + } + isSimpleParamList(params) { + for (let i = 0, len = params.length; i < len; i++) { + if (!this.isSimpleParameter(params[i])) return false; + } + return true; + } + checkParams(node, allowDuplicates, isArrowFunction, strictModeChanged = true) { + const checkClashes = !allowDuplicates && new Set(); + const formalParameters = { + type: "FormalParameters" + }; + for (const param of node.params) { + this.checkLVal(param, formalParameters, 5, checkClashes, strictModeChanged); + } + } + parseExprList(close, allowEmpty, refExpressionErrors, nodeForExtra) { + const elts = []; + let first = true; + while (!this.eat(close)) { + if (first) { + first = false; + } else { + this.expect(12); + if (this.match(close)) { + if (nodeForExtra) { + this.addTrailingCommaExtraToNode(nodeForExtra); + } + this.next(); + break; + } + } + elts.push(this.parseExprListItem(close, allowEmpty, refExpressionErrors)); + } + return elts; + } + parseExprListItem(close, allowEmpty, refExpressionErrors, allowPlaceholder) { + let elt; + if (this.match(12)) { + if (!allowEmpty) { + this.raise(Errors.UnexpectedToken, this.state.curPosition(), { + unexpected: "," + }); + } + elt = null; + } else if (this.match(21)) { + const spreadNodeStartLoc = this.state.startLoc; + elt = this.parseParenItem(this.parseSpread(refExpressionErrors), spreadNodeStartLoc); + } else if (this.match(17)) { + this.expectPlugin("partialApplication"); + if (!allowPlaceholder) { + this.raise(Errors.UnexpectedArgumentPlaceholder, this.state.startLoc); + } + const node = this.startNode(); + this.next(); + elt = this.finishNode(node, "ArgumentPlaceholder"); + } else { + elt = this.parseMaybeAssignAllowInOrVoidPattern(close, refExpressionErrors, this.parseParenItem); + } + return elt; + } + parseIdentifier(liberal) { + const node = this.startNode(); + const name = this.parseIdentifierName(liberal); + return this.createIdentifier(node, name); + } + createIdentifier(node, name) { + node.name = name; + node.loc.identifierName = name; + return this.finishNode(node, "Identifier"); + } + createIdentifierAt(node, name, endLoc) { + node.name = name; + node.loc.identifierName = name; + return this.finishNodeAt(node, "Identifier", endLoc); + } + parseIdentifierName(liberal) { + let name; + const { + startLoc, + type + } = this.state; + if (tokenIsKeywordOrIdentifier(type)) { + name = this.state.value; + } else { + this.unexpected(); + } + const tokenIsKeyword = tokenKeywordOrIdentifierIsKeyword(type); + if (liberal) { + if (tokenIsKeyword) { + this.replaceToken(132); + } + } else { + this.checkReservedWord(name, startLoc, tokenIsKeyword, false); + } + this.next(); + return name; + } + checkReservedWord(word, startLoc, checkKeywords, isBinding) { + if (word.length > 10) { + return; + } + if (!canBeReservedWord(word)) { + return; + } + if (checkKeywords && isKeyword(word)) { + this.raise(Errors.UnexpectedKeyword, startLoc, { + keyword: word + }); + return; + } + const reservedTest = !this.state.strict ? isReservedWord : isBinding ? isStrictBindReservedWord : isStrictReservedWord; + if (reservedTest(word, this.inModule)) { + this.raise(Errors.UnexpectedReservedWord, startLoc, { + reservedWord: word + }); + return; + } else if (word === "yield") { + if (this.prodParam.hasYield) { + this.raise(Errors.YieldBindingIdentifier, startLoc); + return; + } + } else if (word === "await") { + if (this.prodParam.hasAwait) { + this.raise(Errors.AwaitBindingIdentifier, startLoc); + return; + } + if (this.scope.inStaticBlock) { + this.raise(Errors.AwaitBindingIdentifierInStaticBlock, startLoc); + return; + } + this.expressionScope.recordAsyncArrowParametersError(startLoc); + } else if (word === "arguments") { + if (this.scope.inClassAndNotInNonArrowFunction) { + this.raise(Errors.ArgumentsInClass, startLoc); + return; + } + } + } + recordAwaitIfAllowed() { + const isAwaitAllowed = this.prodParam.hasAwait; + if (isAwaitAllowed && !this.scope.inFunction) { + this.state.hasTopLevelAwait = true; + } + return isAwaitAllowed; + } + parseAwait(startLoc) { + const node = this.startNodeAt(startLoc); + this.expressionScope.recordParameterInitializerError(Errors.AwaitExpressionFormalParameter, node); + if (this.eat(55)) { + this.raise(Errors.ObsoleteAwaitStar, node); + } + if (!this.scope.inFunction && !(this.optionFlags & 1)) { + if (this.isAmbiguousPrefixOrIdentifier()) { + this.ambiguousScriptDifferentAst = true; + } else { + this.sawUnambiguousESM = true; + } + } + if (!this.state.soloAwait) { + node.argument = this.parseMaybeUnary(null, true); + } + return this.finishNode(node, "AwaitExpression"); + } + isAmbiguousPrefixOrIdentifier() { + if (this.hasPrecedingLineBreak()) return true; + const { + type + } = this.state; + return type === 53 || type === 10 || type === 0 || tokenIsTemplate(type) || type === 102 && !this.state.containsEsc || type === 138 || type === 56 || this.hasPlugin("v8intrinsic") && type === 54; + } + parseYield(startLoc) { + const node = this.startNodeAt(startLoc); + this.expressionScope.recordParameterInitializerError(Errors.YieldInParameter, node); + let delegating = false; + let argument = null; + if (!this.hasPrecedingLineBreak()) { + delegating = this.eat(55); + switch (this.state.type) { + case 13: + case 140: + case 8: + case 11: + case 3: + case 9: + case 14: + case 12: + if (!delegating) break; + default: + argument = this.parseMaybeAssign(); + } + } + node.delegate = delegating; + node.argument = argument; + return this.finishNode(node, "YieldExpression"); + } + parseImportCall(node) { + this.next(); + node.source = this.parseMaybeAssignAllowIn(); + node.options = null; + if (this.eat(12)) { + if (!this.match(11)) { + node.options = this.parseMaybeAssignAllowIn(); + if (this.eat(12)) { + this.addTrailingCommaExtraToNode(node.options); + if (!this.match(11)) { + do { + this.parseMaybeAssignAllowIn(); + } while (this.eat(12) && !this.match(11)); + this.raise(Errors.ImportCallArity, node); + } + } + } else { + this.addTrailingCommaExtraToNode(node.source); + } + } + this.expect(11); + return this.finishNode(node, "ImportExpression"); + } + checkPipelineAtInfixOperator(left, leftStartLoc) { + if (this.hasPlugin(["pipelineOperator", { + proposal: "smart" + }])) { + if (left.type === "SequenceExpression") { + this.raise(Errors.PipelineHeadSequenceExpression, leftStartLoc); + } + } + } + parseSmartPipelineBodyInStyle(childExpr, startLoc) { + if (this.isSimpleReference(childExpr)) { + const bodyNode = this.startNodeAt(startLoc); + bodyNode.callee = childExpr; + return this.finishNode(bodyNode, "PipelineBareFunction"); + } else { + const bodyNode = this.startNodeAt(startLoc); + this.checkSmartPipeTopicBodyEarlyErrors(startLoc); + bodyNode.expression = childExpr; + return this.finishNode(bodyNode, "PipelineTopicExpression"); + } + } + isSimpleReference(expression) { + switch (expression.type) { + case "MemberExpression": + return !expression.computed && this.isSimpleReference(expression.object); + case "Identifier": + return true; + default: + return false; + } + } + checkSmartPipeTopicBodyEarlyErrors(startLoc) { + if (this.match(19)) { + throw this.raise(Errors.PipelineBodyNoArrow, this.state.startLoc); + } + if (!this.topicReferenceWasUsedInCurrentContext()) { + this.raise(Errors.PipelineTopicUnused, startLoc); + } + } + withTopicBindingContext(callback) { + const outerContextTopicState = this.state.topicContext; + this.state.topicContext = { + maxNumOfResolvableTopics: 1, + maxTopicIndex: null + }; + try { + return callback(); + } finally { + this.state.topicContext = outerContextTopicState; + } + } + withSmartMixTopicForbiddingContext(callback) { + if (this.hasPlugin(["pipelineOperator", { + proposal: "smart" + }])) { + const outerContextTopicState = this.state.topicContext; + this.state.topicContext = { + maxNumOfResolvableTopics: 0, + maxTopicIndex: null + }; + try { + return callback(); + } finally { + this.state.topicContext = outerContextTopicState; + } + } else { + return callback(); + } + } + withSoloAwaitPermittingContext(callback) { + const outerContextSoloAwaitState = this.state.soloAwait; + this.state.soloAwait = true; + try { + return callback(); + } finally { + this.state.soloAwait = outerContextSoloAwaitState; + } + } + allowInAnd(callback) { + const flags = this.prodParam.currentFlags(); + const prodParamToSet = 8 & ~flags; + if (prodParamToSet) { + this.prodParam.enter(flags | 8); + try { + return callback(); + } finally { + this.prodParam.exit(); + } + } + return callback(); + } + disallowInAnd(callback) { + const flags = this.prodParam.currentFlags(); + const prodParamToClear = 8 & flags; + if (prodParamToClear) { + this.prodParam.enter(flags & ~8); + try { + return callback(); + } finally { + this.prodParam.exit(); + } + } + return callback(); + } + registerTopicReference() { + this.state.topicContext.maxTopicIndex = 0; + } + topicReferenceIsAllowedInCurrentContext() { + return this.state.topicContext.maxNumOfResolvableTopics >= 1; + } + topicReferenceWasUsedInCurrentContext() { + return this.state.topicContext.maxTopicIndex != null && this.state.topicContext.maxTopicIndex >= 0; + } + parseFSharpPipelineBody(prec) { + const startLoc = this.state.startLoc; + this.state.potentialArrowAt = this.state.start; + const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; + this.state.inFSharpPipelineDirectBody = true; + const ret = this.parseExprOp(this.parseMaybeUnaryOrPrivate(), startLoc, prec); + this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; + return ret; + } + parseModuleExpression() { + this.expectPlugin("moduleBlocks"); + const node = this.startNode(); + this.next(); + if (!this.match(5)) { + this.unexpected(null, 5); + } + const program = this.startNodeAt(this.state.endLoc); + this.next(); + const revertScopes = this.initializeScopes(true); + this.enterInitialScopes(); + try { + node.body = this.parseProgram(program, 8, "module"); + } finally { + revertScopes(); + } + return this.finishNode(node, "ModuleExpression"); + } + parseVoidPattern(refExpressionErrors) { + this.expectPlugin("discardBinding"); + const node = this.startNode(); + if (refExpressionErrors != null) { + refExpressionErrors.voidPatternLoc = this.state.startLoc; + } + this.next(); + return this.finishNode(node, "VoidPattern"); + } + parseMaybeAssignAllowInOrVoidPattern(close, refExpressionErrors, afterLeftParse) { + if (refExpressionErrors != null && this.match(88)) { + const nextCode = this.lookaheadCharCode(); + if (nextCode === 44 || nextCode === (close === 3 ? 93 : close === 8 ? 125 : 41) || nextCode === 61) { + return this.parseMaybeDefault(this.state.startLoc, this.parseVoidPattern(refExpressionErrors)); + } + } + return this.parseMaybeAssignAllowIn(refExpressionErrors, afterLeftParse); + } + parsePropertyNamePrefixOperator(prop) {} +} +const loopLabel = { + kind: 1 + }, + switchLabel = { + kind: 2 + }; +const loneSurrogate = /[\uD800-\uDFFF]/u; +const keywordRelationalOperator = /in(?:stanceof)?/y; +function babel7CompatTokens(tokens, input, startIndex) { + for (let i = 0; i < tokens.length; i++) { + const token = tokens[i]; + const { + type + } = token; + if (typeof type === "number") { + if (type === 139) { + const { + loc, + start, + value, + end + } = token; + const hashEndPos = start + 1; + const hashEndLoc = createPositionWithColumnOffset(loc.start, 1); + tokens.splice(i, 1, new Token({ + type: getExportedToken(27), + value: "#", + start: start, + end: hashEndPos, + startLoc: loc.start, + endLoc: hashEndLoc + }), new Token({ + type: getExportedToken(132), + value: value, + start: hashEndPos, + end: end, + startLoc: hashEndLoc, + endLoc: loc.end + })); + i++; + continue; + } + if (tokenIsTemplate(type)) { + const { + loc, + start, + value, + end + } = token; + const backquoteEnd = start + 1; + const backquoteEndLoc = createPositionWithColumnOffset(loc.start, 1); + let startToken; + if (input.charCodeAt(start - startIndex) === 96) { + startToken = new Token({ + type: getExportedToken(22), + value: "`", + start: start, + end: backquoteEnd, + startLoc: loc.start, + endLoc: backquoteEndLoc + }); + } else { + startToken = new Token({ + type: getExportedToken(8), + value: "}", + start: start, + end: backquoteEnd, + startLoc: loc.start, + endLoc: backquoteEndLoc + }); + } + let templateValue, templateElementEnd, templateElementEndLoc, endToken; + if (type === 24) { + templateElementEnd = end - 1; + templateElementEndLoc = createPositionWithColumnOffset(loc.end, -1); + templateValue = value === null ? null : value.slice(1, -1); + endToken = new Token({ + type: getExportedToken(22), + value: "`", + start: templateElementEnd, + end: end, + startLoc: templateElementEndLoc, + endLoc: loc.end + }); + } else { + templateElementEnd = end - 2; + templateElementEndLoc = createPositionWithColumnOffset(loc.end, -2); + templateValue = value === null ? null : value.slice(1, -2); + endToken = new Token({ + type: getExportedToken(23), + value: "${", + start: templateElementEnd, + end: end, + startLoc: templateElementEndLoc, + endLoc: loc.end + }); + } + tokens.splice(i, 1, startToken, new Token({ + type: getExportedToken(20), + value: templateValue, + start: backquoteEnd, + end: templateElementEnd, + startLoc: backquoteEndLoc, + endLoc: templateElementEndLoc + }), endToken); + i += 2; + continue; + } + token.type = getExportedToken(type); + } + } + return tokens; +} +class StatementParser extends ExpressionParser { + parseTopLevel(file, program) { + file.program = this.parseProgram(program, 140, this.options.sourceType === "module" ? "module" : "script"); + file.comments = this.comments; + if (this.optionFlags & 256) { + file.tokens = babel7CompatTokens(this.tokens, this.input, this.startIndex); + } + return this.finishNode(file, "File"); + } + parseProgram(program, end, sourceType) { + program.sourceType = sourceType; + program.interpreter = this.parseInterpreterDirective(); + this.parseBlockBody(program, true, true, end); + if (this.inModule) { + if (!(this.optionFlags & 64) && this.scope.undefinedExports.size > 0) { + for (const [localName, at] of Array.from(this.scope.undefinedExports)) { + this.raise(Errors.ModuleExportUndefined, at, { + localName + }); + } + } + this.addExtra(program, "topLevelAwait", this.state.hasTopLevelAwait); + } + let finishedProgram; + if (end === 140) { + finishedProgram = this.finishNode(program, "Program"); + } else { + finishedProgram = this.finishNodeAt(program, "Program", createPositionWithColumnOffset(this.state.startLoc, -1)); + } + return finishedProgram; + } + stmtToDirective(stmt) { + const directive = this.castNodeTo(stmt, "Directive"); + const directiveLiteral = this.castNodeTo(stmt.expression, "DirectiveLiteral"); + const expressionValue = directiveLiteral.value; + const raw = this.input.slice(this.offsetToSourcePos(directiveLiteral.start), this.offsetToSourcePos(directiveLiteral.end)); + const val = directiveLiteral.value = raw.slice(1, -1); + this.addExtra(directiveLiteral, "raw", raw); + this.addExtra(directiveLiteral, "rawValue", val); + this.addExtra(directiveLiteral, "expressionValue", expressionValue); + directive.value = directiveLiteral; + delete stmt.expression; + return directive; + } + parseInterpreterDirective() { + if (!this.match(28)) { + return null; + } + const node = this.startNode(); + node.value = this.state.value; + this.next(); + return this.finishNode(node, "InterpreterDirective"); + } + isLet() { + if (!this.isContextual(100)) { + return false; + } + return this.hasFollowingBindingAtom(); + } + isUsing() { + if (!this.isContextual(107)) { + return false; + } + return this.nextTokenIsIdentifierOnSameLine(); + } + isForUsing() { + if (!this.isContextual(107)) { + return false; + } + const next = this.nextTokenInLineStart(); + const nextCh = this.codePointAtPos(next); + if (this.isUnparsedContextual(next, "of")) { + const nextCharAfterOf = this.lookaheadCharCodeSince(next + 2); + if (nextCharAfterOf !== 61 && nextCharAfterOf !== 58 && nextCharAfterOf !== 59) { + return false; + } + } + if (this.chStartsBindingIdentifier(nextCh, next) || this.isUnparsedContextual(next, "void")) { + return true; + } + return false; + } + nextTokenIsIdentifierOnSameLine() { + const next = this.nextTokenInLineStart(); + const nextCh = this.codePointAtPos(next); + return this.chStartsBindingIdentifier(nextCh, next); + } + isAwaitUsing() { + if (!this.isContextual(96)) { + return false; + } + let next = this.nextTokenInLineStart(); + if (this.isUnparsedContextual(next, "using")) { + next = this.nextTokenInLineStartSince(next + 5); + const nextCh = this.codePointAtPos(next); + if (this.chStartsBindingIdentifier(nextCh, next)) { + return true; + } + } + return false; + } + chStartsBindingIdentifier(ch, pos) { + if (isIdentifierStart(ch)) { + keywordRelationalOperator.lastIndex = pos; + if (keywordRelationalOperator.test(this.input)) { + const endCh = this.codePointAtPos(keywordRelationalOperator.lastIndex); + if (!isIdentifierChar(endCh) && endCh !== 92) { + return false; + } + } + return true; + } else if (ch === 92) { + return true; + } else { + return false; + } + } + chStartsBindingPattern(ch) { + return ch === 91 || ch === 123; + } + hasFollowingBindingAtom() { + const next = this.nextTokenStart(); + const nextCh = this.codePointAtPos(next); + return this.chStartsBindingPattern(nextCh) || this.chStartsBindingIdentifier(nextCh, next); + } + hasInLineFollowingBindingIdentifierOrBrace() { + const next = this.nextTokenInLineStart(); + const nextCh = this.codePointAtPos(next); + return nextCh === 123 || this.chStartsBindingIdentifier(nextCh, next); + } + allowsUsing() { + return (this.scope.inModule || !this.scope.inTopLevel) && !this.scope.inBareCaseStatement; + } + parseModuleItem() { + return this.parseStatementLike(1 | 2 | 4 | 8); + } + parseStatementListItem() { + return this.parseStatementLike(2 | 4 | (!this.options.annexB || this.state.strict ? 0 : 8)); + } + parseStatementOrSloppyAnnexBFunctionDeclaration(allowLabeledFunction = false) { + let flags = 0; + if (this.options.annexB && !this.state.strict) { + flags |= 4; + if (allowLabeledFunction) { + flags |= 8; + } + } + return this.parseStatementLike(flags); + } + parseStatement() { + return this.parseStatementLike(0); + } + parseStatementLike(flags) { + let decorators = null; + if (this.match(26)) { + decorators = this.parseDecorators(true); + } + return this.parseStatementContent(flags, decorators); + } + parseStatementContent(flags, decorators) { + const startType = this.state.type; + const node = this.startNode(); + const allowDeclaration = !!(flags & 2); + const allowFunctionDeclaration = !!(flags & 4); + const topLevel = flags & 1; + switch (startType) { + case 60: + return this.parseBreakContinueStatement(node, true); + case 63: + return this.parseBreakContinueStatement(node, false); + case 64: + return this.parseDebuggerStatement(node); + case 90: + return this.parseDoWhileStatement(node); + case 91: + return this.parseForStatement(node); + case 68: + if (this.lookaheadCharCode() === 46) break; + if (!allowFunctionDeclaration) { + this.raise(this.state.strict ? Errors.StrictFunction : this.options.annexB ? Errors.SloppyFunctionAnnexB : Errors.SloppyFunction, this.state.startLoc); + } + return this.parseFunctionStatement(node, false, !allowDeclaration && allowFunctionDeclaration); + case 80: + if (!allowDeclaration) this.unexpected(); + return this.parseClass(this.maybeTakeDecorators(decorators, node), true); + case 69: + return this.parseIfStatement(node); + case 70: + return this.parseReturnStatement(node); + case 71: + return this.parseSwitchStatement(node); + case 72: + return this.parseThrowStatement(node); + case 73: + return this.parseTryStatement(node); + case 96: + if (this.isAwaitUsing()) { + if (!this.allowsUsing()) { + this.raise(Errors.UnexpectedUsingDeclaration, node); + } else if (!allowDeclaration) { + this.raise(Errors.UnexpectedLexicalDeclaration, node); + } else if (!this.recordAwaitIfAllowed()) { + this.raise(Errors.AwaitUsingNotInAsyncContext, node); + } + this.next(); + return this.parseVarStatement(node, "await using"); + } + break; + case 107: + if (this.state.containsEsc || !this.hasInLineFollowingBindingIdentifierOrBrace()) { + break; + } + if (!this.allowsUsing()) { + this.raise(Errors.UnexpectedUsingDeclaration, this.state.startLoc); + } else if (!allowDeclaration) { + this.raise(Errors.UnexpectedLexicalDeclaration, this.state.startLoc); + } + return this.parseVarStatement(node, "using"); + case 100: + { + if (this.state.containsEsc) { + break; + } + const next = this.nextTokenStart(); + const nextCh = this.codePointAtPos(next); + if (nextCh !== 91) { + if (!allowDeclaration && this.hasFollowingLineBreak()) break; + if (!this.chStartsBindingIdentifier(nextCh, next) && nextCh !== 123) { + break; + } + } + } + case 75: + { + if (!allowDeclaration) { + this.raise(Errors.UnexpectedLexicalDeclaration, this.state.startLoc); + } + } + case 74: + { + const kind = this.state.value; + return this.parseVarStatement(node, kind); + } + case 92: + return this.parseWhileStatement(node); + case 76: + return this.parseWithStatement(node); + case 5: + return this.parseBlock(); + case 13: + return this.parseEmptyStatement(node); + case 83: + { + const nextTokenCharCode = this.lookaheadCharCode(); + if (nextTokenCharCode === 40 || nextTokenCharCode === 46) { + break; + } + } + case 82: + { + if (!(this.optionFlags & 8) && !topLevel) { + this.raise(Errors.UnexpectedImportExport, this.state.startLoc); + } + this.next(); + let result; + if (startType === 83) { + result = this.parseImport(node); + } else { + result = this.parseExport(node, decorators); + } + this.assertModuleNodeAllowed(result); + return result; + } + default: + { + if (this.isAsyncFunction()) { + if (!allowDeclaration) { + this.raise(Errors.AsyncFunctionInSingleStatementContext, this.state.startLoc); + } + this.next(); + return this.parseFunctionStatement(node, true, !allowDeclaration && allowFunctionDeclaration); + } + } + } + const maybeName = this.state.value; + const expr = this.parseExpression(); + if (tokenIsIdentifier(startType) && expr.type === "Identifier" && this.eat(14)) { + return this.parseLabeledStatement(node, maybeName, expr, flags); + } else { + return this.parseExpressionStatement(node, expr, decorators); + } + } + assertModuleNodeAllowed(node) { + if (!(this.optionFlags & 8) && !this.inModule) { + this.raise(Errors.ImportOutsideModule, node); + } + } + decoratorsEnabledBeforeExport() { + if (this.hasPlugin("decorators-legacy")) return true; + return this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBeforeExport") !== false; + } + maybeTakeDecorators(maybeDecorators, classNode, exportNode) { + if (maybeDecorators) { + var _classNode$decorators; + if ((_classNode$decorators = classNode.decorators) != null && _classNode$decorators.length) { + if (typeof this.getPluginOption("decorators", "decoratorsBeforeExport") !== "boolean") { + this.raise(Errors.DecoratorsBeforeAfterExport, classNode.decorators[0]); + } + classNode.decorators.unshift(...maybeDecorators); + } else { + classNode.decorators = maybeDecorators; + } + this.resetStartLocationFromNode(classNode, maybeDecorators[0]); + if (exportNode) this.resetStartLocationFromNode(exportNode, classNode); + } + return classNode; + } + canHaveLeadingDecorator() { + return this.match(80); + } + parseDecorators(allowExport) { + const decorators = []; + do { + decorators.push(this.parseDecorator()); + } while (this.match(26)); + if (this.match(82)) { + if (!allowExport) { + this.unexpected(); + } + if (!this.decoratorsEnabledBeforeExport()) { + this.raise(Errors.DecoratorExportClass, this.state.startLoc); + } + } else if (!this.canHaveLeadingDecorator()) { + throw this.raise(Errors.UnexpectedLeadingDecorator, this.state.startLoc); + } + return decorators; + } + parseDecorator() { + this.expectOnePlugin(["decorators", "decorators-legacy"]); + const node = this.startNode(); + this.next(); + if (this.hasPlugin("decorators")) { + const startLoc = this.state.startLoc; + let expr; + if (this.match(10)) { + const startLoc = this.state.startLoc; + this.next(); + expr = this.parseExpression(); + this.expect(11); + expr = this.wrapParenthesis(startLoc, expr); + const paramsStartLoc = this.state.startLoc; + node.expression = this.parseMaybeDecoratorArguments(expr, startLoc); + if (this.getPluginOption("decorators", "allowCallParenthesized") === false && node.expression !== expr) { + this.raise(Errors.DecoratorArgumentsOutsideParentheses, paramsStartLoc); + } + } else { + expr = this.parseIdentifier(false); + while (this.eat(16)) { + const node = this.startNodeAt(startLoc); + node.object = expr; + if (this.match(139)) { + this.classScope.usePrivateName(this.state.value, this.state.startLoc); + node.property = this.parsePrivateName(); + } else { + node.property = this.parseIdentifier(true); + } + node.computed = false; + expr = this.finishNode(node, "MemberExpression"); + } + node.expression = this.parseMaybeDecoratorArguments(expr, startLoc); + } + } else { + node.expression = this.parseExprSubscripts(); + } + return this.finishNode(node, "Decorator"); + } + parseMaybeDecoratorArguments(expr, startLoc) { + if (this.eat(10)) { + const node = this.startNodeAt(startLoc); + node.callee = expr; + node.arguments = this.parseCallExpressionArguments(); + this.toReferencedList(node.arguments); + return this.finishNode(node, "CallExpression"); + } + return expr; + } + parseBreakContinueStatement(node, isBreak) { + this.next(); + if (this.isLineTerminator()) { + node.label = null; + } else { + node.label = this.parseIdentifier(); + this.semicolon(); + } + this.verifyBreakContinue(node, isBreak); + return this.finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement"); + } + verifyBreakContinue(node, isBreak) { + let i; + for (i = 0; i < this.state.labels.length; ++i) { + const lab = this.state.labels[i]; + if (node.label == null || lab.name === node.label.name) { + if (lab.kind != null && (isBreak || lab.kind === 1)) { + break; + } + if (node.label && isBreak) break; + } + } + if (i === this.state.labels.length) { + const type = isBreak ? "BreakStatement" : "ContinueStatement"; + this.raise(Errors.IllegalBreakContinue, node, { + type + }); + } + } + parseDebuggerStatement(node) { + this.next(); + this.semicolon(); + return this.finishNode(node, "DebuggerStatement"); + } + parseHeaderExpression() { + this.expect(10); + const val = this.parseExpression(); + this.expect(11); + return val; + } + parseDoWhileStatement(node) { + this.next(); + this.state.labels.push(loopLabel); + node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()); + this.state.labels.pop(); + this.expect(92); + node.test = this.parseHeaderExpression(); + this.eat(13); + return this.finishNode(node, "DoWhileStatement"); + } + parseForStatement(node) { + this.next(); + this.state.labels.push(loopLabel); + let awaitAt = null; + if (this.isContextual(96) && this.recordAwaitIfAllowed()) { + awaitAt = this.state.startLoc; + this.next(); + } + this.scope.enter(0); + this.expect(10); + if (this.match(13)) { + if (awaitAt !== null) { + this.unexpected(awaitAt); + } + return this.parseFor(node, null); + } + const startsWithLet = this.isContextual(100); + { + const startsWithAwaitUsing = this.isAwaitUsing(); + const starsWithUsingDeclaration = startsWithAwaitUsing || this.isForUsing(); + const isLetOrUsing = startsWithLet && this.hasFollowingBindingAtom() || starsWithUsingDeclaration; + if (this.match(74) || this.match(75) || isLetOrUsing) { + const initNode = this.startNode(); + let kind; + if (startsWithAwaitUsing) { + kind = "await using"; + if (!this.recordAwaitIfAllowed()) { + this.raise(Errors.AwaitUsingNotInAsyncContext, this.state.startLoc); + } + this.next(); + } else { + kind = this.state.value; + } + this.next(); + this.parseVar(initNode, true, kind); + const init = this.finishNode(initNode, "VariableDeclaration"); + const isForIn = this.match(58); + if (isForIn && starsWithUsingDeclaration) { + this.raise(Errors.ForInUsing, init); + } + if ((isForIn || this.isContextual(102)) && init.declarations.length === 1) { + return this.parseForIn(node, init, awaitAt); + } + if (awaitAt !== null) { + this.unexpected(awaitAt); + } + return this.parseFor(node, init); + } + } + const startsWithAsync = this.isContextual(95); + const refExpressionErrors = new ExpressionErrors(); + const init = this.parseExpression(true, refExpressionErrors); + const isForOf = this.isContextual(102); + if (isForOf) { + if (startsWithLet) { + this.raise(Errors.ForOfLet, init); + } + if (awaitAt === null && startsWithAsync && init.type === "Identifier") { + this.raise(Errors.ForOfAsync, init); + } + } + if (isForOf || this.match(58)) { + this.checkDestructuringPrivate(refExpressionErrors); + this.toAssignable(init, true); + const type = isForOf ? "ForOfStatement" : "ForInStatement"; + this.checkLVal(init, { + type + }); + return this.parseForIn(node, init, awaitAt); + } else { + this.checkExpressionErrors(refExpressionErrors, true); + } + if (awaitAt !== null) { + this.unexpected(awaitAt); + } + return this.parseFor(node, init); + } + parseFunctionStatement(node, isAsync, isHangingDeclaration) { + this.next(); + return this.parseFunction(node, 1 | (isHangingDeclaration ? 2 : 0) | (isAsync ? 8 : 0)); + } + parseIfStatement(node) { + this.next(); + node.test = this.parseHeaderExpression(); + node.consequent = this.parseStatementOrSloppyAnnexBFunctionDeclaration(); + node.alternate = this.eat(66) ? this.parseStatementOrSloppyAnnexBFunctionDeclaration() : null; + return this.finishNode(node, "IfStatement"); + } + parseReturnStatement(node) { + if (!this.prodParam.hasReturn) { + this.raise(Errors.IllegalReturn, this.state.startLoc); + } + this.next(); + if (this.isLineTerminator()) { + node.argument = null; + } else { + node.argument = this.parseExpression(); + this.semicolon(); + } + return this.finishNode(node, "ReturnStatement"); + } + parseSwitchStatement(node) { + this.next(); + node.discriminant = this.parseHeaderExpression(); + const cases = node.cases = []; + this.expect(5); + this.state.labels.push(switchLabel); + this.scope.enter(256); + let cur; + for (let sawDefault; !this.match(8);) { + if (this.match(61) || this.match(65)) { + const isCase = this.match(61); + if (cur) this.finishNode(cur, "SwitchCase"); + cases.push(cur = this.startNode()); + cur.consequent = []; + this.next(); + if (isCase) { + cur.test = this.parseExpression(); + } else { + if (sawDefault) { + this.raise(Errors.MultipleDefaultsInSwitch, this.state.lastTokStartLoc); + } + sawDefault = true; + cur.test = null; + } + this.expect(14); + } else { + if (cur) { + cur.consequent.push(this.parseStatementListItem()); + } else { + this.unexpected(); + } + } + } + this.scope.exit(); + if (cur) this.finishNode(cur, "SwitchCase"); + this.next(); + this.state.labels.pop(); + return this.finishNode(node, "SwitchStatement"); + } + parseThrowStatement(node) { + this.next(); + if (this.hasPrecedingLineBreak()) { + this.raise(Errors.NewlineAfterThrow, this.state.lastTokEndLoc); + } + node.argument = this.parseExpression(); + this.semicolon(); + return this.finishNode(node, "ThrowStatement"); + } + parseCatchClauseParam() { + const param = this.parseBindingAtom(); + this.scope.enter(this.options.annexB && param.type === "Identifier" ? 8 : 0); + this.checkLVal(param, { + type: "CatchClause" + }, 9); + return param; + } + parseTryStatement(node) { + this.next(); + node.block = this.parseBlock(); + node.handler = null; + if (this.match(62)) { + const clause = this.startNode(); + this.next(); + if (this.match(10)) { + this.expect(10); + clause.param = this.parseCatchClauseParam(); + this.expect(11); + } else { + clause.param = null; + this.scope.enter(0); + } + clause.body = this.withSmartMixTopicForbiddingContext(() => this.parseBlock(false, false)); + this.scope.exit(); + node.handler = this.finishNode(clause, "CatchClause"); + } + node.finalizer = this.eat(67) ? this.parseBlock() : null; + if (!node.handler && !node.finalizer) { + this.raise(Errors.NoCatchOrFinally, node); + } + return this.finishNode(node, "TryStatement"); + } + parseVarStatement(node, kind, allowMissingInitializer = false) { + this.next(); + this.parseVar(node, false, kind, allowMissingInitializer); + this.semicolon(); + return this.finishNode(node, "VariableDeclaration"); + } + parseWhileStatement(node) { + this.next(); + node.test = this.parseHeaderExpression(); + this.state.labels.push(loopLabel); + node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()); + this.state.labels.pop(); + return this.finishNode(node, "WhileStatement"); + } + parseWithStatement(node) { + if (this.state.strict) { + this.raise(Errors.StrictWith, this.state.startLoc); + } + this.next(); + node.object = this.parseHeaderExpression(); + node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()); + return this.finishNode(node, "WithStatement"); + } + parseEmptyStatement(node) { + this.next(); + return this.finishNode(node, "EmptyStatement"); + } + parseLabeledStatement(node, maybeName, expr, flags) { + for (const label of this.state.labels) { + if (label.name === maybeName) { + this.raise(Errors.LabelRedeclaration, expr, { + labelName: maybeName + }); + } + } + const kind = tokenIsLoop(this.state.type) ? 1 : this.match(71) ? 2 : null; + for (let i = this.state.labels.length - 1; i >= 0; i--) { + const label = this.state.labels[i]; + if (label.statementStart === node.start) { + label.statementStart = this.sourceToOffsetPos(this.state.start); + label.kind = kind; + } else { + break; + } + } + this.state.labels.push({ + name: maybeName, + kind: kind, + statementStart: this.sourceToOffsetPos(this.state.start) + }); + node.body = flags & 8 ? this.parseStatementOrSloppyAnnexBFunctionDeclaration(true) : this.parseStatement(); + this.state.labels.pop(); + node.label = expr; + return this.finishNode(node, "LabeledStatement"); + } + parseExpressionStatement(node, expr, decorators) { + node.expression = expr; + this.semicolon(); + return this.finishNode(node, "ExpressionStatement"); + } + parseBlock(allowDirectives = false, createNewLexicalScope = true, afterBlockParse) { + const node = this.startNode(); + if (allowDirectives) { + this.state.strictErrors.clear(); + } + this.expect(5); + if (createNewLexicalScope) { + this.scope.enter(0); + } + this.parseBlockBody(node, allowDirectives, false, 8, afterBlockParse); + if (createNewLexicalScope) { + this.scope.exit(); + } + return this.finishNode(node, "BlockStatement"); + } + isValidDirective(stmt) { + return stmt.type === "ExpressionStatement" && stmt.expression.type === "StringLiteral" && !stmt.expression.extra.parenthesized; + } + parseBlockBody(node, allowDirectives, topLevel, end, afterBlockParse) { + const body = node.body = []; + const directives = node.directives = []; + this.parseBlockOrModuleBlockBody(body, allowDirectives ? directives : undefined, topLevel, end, afterBlockParse); + } + parseBlockOrModuleBlockBody(body, directives, topLevel, end, afterBlockParse) { + const oldStrict = this.state.strict; + let hasStrictModeDirective = false; + let parsedNonDirective = false; + while (!this.match(end)) { + const stmt = topLevel ? this.parseModuleItem() : this.parseStatementListItem(); + if (directives && !parsedNonDirective) { + if (this.isValidDirective(stmt)) { + const directive = this.stmtToDirective(stmt); + directives.push(directive); + if (!hasStrictModeDirective && directive.value.value === "use strict") { + hasStrictModeDirective = true; + this.setStrict(true); + } + continue; + } + parsedNonDirective = true; + this.state.strictErrors.clear(); + } + body.push(stmt); + } + afterBlockParse == null || afterBlockParse.call(this, hasStrictModeDirective); + if (!oldStrict) { + this.setStrict(false); + } + this.next(); + } + parseFor(node, init) { + node.init = init; + this.semicolon(false); + node.test = this.match(13) ? null : this.parseExpression(); + this.semicolon(false); + node.update = this.match(11) ? null : this.parseExpression(); + this.expect(11); + node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()); + this.scope.exit(); + this.state.labels.pop(); + return this.finishNode(node, "ForStatement"); + } + parseForIn(node, init, awaitAt) { + const isForIn = this.match(58); + this.next(); + if (isForIn) { + if (awaitAt !== null) this.unexpected(awaitAt); + } else { + node.await = awaitAt !== null; + } + if (init.type === "VariableDeclaration" && init.declarations[0].init != null && (!isForIn || !this.options.annexB || this.state.strict || init.kind !== "var" || init.declarations[0].id.type !== "Identifier")) { + this.raise(Errors.ForInOfLoopInitializer, init, { + type: isForIn ? "ForInStatement" : "ForOfStatement" + }); + } + if (init.type === "AssignmentPattern") { + this.raise(Errors.InvalidLhs, init, { + ancestor: { + type: "ForStatement" + } + }); + } + node.left = init; + node.right = isForIn ? this.parseExpression() : this.parseMaybeAssignAllowIn(); + this.expect(11); + node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()); + this.scope.exit(); + this.state.labels.pop(); + return this.finishNode(node, isForIn ? "ForInStatement" : "ForOfStatement"); + } + parseVar(node, isFor, kind, allowMissingInitializer = false) { + const declarations = node.declarations = []; + node.kind = kind; + for (;;) { + const decl = this.startNode(); + this.parseVarId(decl, kind); + decl.init = !this.eat(29) ? null : isFor ? this.parseMaybeAssignDisallowIn() : this.parseMaybeAssignAllowIn(); + if (decl.init === null && !allowMissingInitializer) { + if (decl.id.type !== "Identifier" && !(isFor && (this.match(58) || this.isContextual(102)))) { + this.raise(Errors.DeclarationMissingInitializer, this.state.lastTokEndLoc, { + kind: "destructuring" + }); + } else if ((kind === "const" || kind === "using" || kind === "await using") && !(this.match(58) || this.isContextual(102))) { + this.raise(Errors.DeclarationMissingInitializer, this.state.lastTokEndLoc, { + kind + }); + } + } + declarations.push(this.finishNode(decl, "VariableDeclarator")); + if (!this.eat(12)) break; + } + return node; + } + parseVarId(decl, kind) { + const id = this.parseBindingAtom(); + if (kind === "using" || kind === "await using") { + if (id.type === "ArrayPattern" || id.type === "ObjectPattern") { + this.raise(Errors.UsingDeclarationHasBindingPattern, id.loc.start); + } + } else { + if (id.type === "VoidPattern") { + this.raise(Errors.UnexpectedVoidPattern, id.loc.start); + } + } + this.checkLVal(id, { + type: "VariableDeclarator" + }, kind === "var" ? 5 : 8201); + decl.id = id; + } + parseAsyncFunctionExpression(node) { + return this.parseFunction(node, 8); + } + parseFunction(node, flags = 0) { + const hangingDeclaration = flags & 2; + const isDeclaration = !!(flags & 1); + const requireId = isDeclaration && !(flags & 4); + const isAsync = !!(flags & 8); + this.initFunction(node, isAsync); + if (this.match(55)) { + if (hangingDeclaration) { + this.raise(Errors.GeneratorInSingleStatementContext, this.state.startLoc); + } + this.next(); + node.generator = true; + } + if (isDeclaration) { + node.id = this.parseFunctionId(requireId); + } + const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; + this.state.maybeInArrowParameters = false; + this.scope.enter(514); + this.prodParam.enter(functionFlags(isAsync, node.generator)); + if (!isDeclaration) { + node.id = this.parseFunctionId(); + } + this.parseFunctionParams(node, false); + this.withSmartMixTopicForbiddingContext(() => { + this.parseFunctionBodyAndFinish(node, isDeclaration ? "FunctionDeclaration" : "FunctionExpression"); + }); + this.prodParam.exit(); + this.scope.exit(); + if (isDeclaration && !hangingDeclaration) { + this.registerFunctionStatementId(node); + } + this.state.maybeInArrowParameters = oldMaybeInArrowParameters; + return node; + } + parseFunctionId(requireId) { + return requireId || tokenIsIdentifier(this.state.type) ? this.parseIdentifier() : null; + } + parseFunctionParams(node, isConstructor) { + this.expect(10); + this.expressionScope.enter(newParameterDeclarationScope()); + node.params = this.parseBindingList(11, 41, 2 | (isConstructor ? 4 : 0)); + this.expressionScope.exit(); + } + registerFunctionStatementId(node) { + if (!node.id) return; + this.scope.declareName(node.id.name, !this.options.annexB || this.state.strict || node.generator || node.async ? this.scope.treatFunctionsAsVar ? 5 : 8201 : 17, node.id.loc.start); + } + parseClass(node, isStatement, optionalId) { + this.next(); + const oldStrict = this.state.strict; + this.state.strict = true; + this.parseClassId(node, isStatement, optionalId); + this.parseClassSuper(node); + node.body = this.parseClassBody(!!node.superClass, oldStrict); + return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression"); + } + isClassProperty() { + return this.match(29) || this.match(13) || this.match(8); + } + isClassMethod() { + return this.match(10); + } + nameIsConstructor(key) { + return key.type === "Identifier" && key.name === "constructor" || key.type === "StringLiteral" && key.value === "constructor"; + } + isNonstaticConstructor(method) { + return !method.computed && !method.static && this.nameIsConstructor(method.key); + } + parseClassBody(hadSuperClass, oldStrict) { + this.classScope.enter(); + const state = { + hadConstructor: false, + hadSuperClass + }; + let decorators = []; + const classBody = this.startNode(); + classBody.body = []; + this.expect(5); + this.withSmartMixTopicForbiddingContext(() => { + while (!this.match(8)) { + if (this.eat(13)) { + if (decorators.length > 0) { + throw this.raise(Errors.DecoratorSemicolon, this.state.lastTokEndLoc); + } + continue; + } + if (this.match(26)) { + decorators.push(this.parseDecorator()); + continue; + } + const member = this.startNode(); + if (decorators.length) { + member.decorators = decorators; + this.resetStartLocationFromNode(member, decorators[0]); + decorators = []; + } + this.parseClassMember(classBody, member, state); + if (member.kind === "constructor" && member.decorators && member.decorators.length > 0) { + this.raise(Errors.DecoratorConstructor, member); + } + } + }); + this.state.strict = oldStrict; + this.next(); + if (decorators.length) { + throw this.raise(Errors.TrailingDecorator, this.state.startLoc); + } + this.classScope.exit(); + return this.finishNode(classBody, "ClassBody"); + } + parseClassMemberFromModifier(classBody, member) { + const key = this.parseIdentifier(true); + if (this.isClassMethod()) { + const method = member; + method.kind = "method"; + method.computed = false; + method.key = key; + method.static = false; + this.pushClassMethod(classBody, method, false, false, false, false); + return true; + } else if (this.isClassProperty()) { + const prop = member; + prop.computed = false; + prop.key = key; + prop.static = false; + classBody.body.push(this.parseClassProperty(prop)); + return true; + } + this.resetPreviousNodeTrailingComments(key); + return false; + } + parseClassMember(classBody, member, state) { + const isStatic = this.isContextual(106); + if (isStatic) { + if (this.parseClassMemberFromModifier(classBody, member)) { + return; + } + if (this.eat(5)) { + this.parseClassStaticBlock(classBody, member); + return; + } + } + this.parseClassMemberWithIsStatic(classBody, member, state, isStatic); + } + parseClassMemberWithIsStatic(classBody, member, state, isStatic) { + const publicMethod = member; + const privateMethod = member; + const publicProp = member; + const privateProp = member; + const accessorProp = member; + const method = publicMethod; + const publicMember = publicMethod; + member.static = isStatic; + this.parsePropertyNamePrefixOperator(member); + if (this.eat(55)) { + method.kind = "method"; + const isPrivateName = this.match(139); + this.parseClassElementName(method); + this.parsePostMemberNameModifiers(method); + if (isPrivateName) { + this.pushClassPrivateMethod(classBody, privateMethod, true, false); + return; + } + if (this.isNonstaticConstructor(publicMethod)) { + this.raise(Errors.ConstructorIsGenerator, publicMethod.key); + } + this.pushClassMethod(classBody, publicMethod, true, false, false, false); + return; + } + const isContextual = !this.state.containsEsc && tokenIsIdentifier(this.state.type); + const key = this.parseClassElementName(member); + const maybeContextualKw = isContextual ? key.name : null; + const isPrivate = this.isPrivateName(key); + const maybeQuestionTokenStartLoc = this.state.startLoc; + this.parsePostMemberNameModifiers(publicMember); + if (this.isClassMethod()) { + method.kind = "method"; + if (isPrivate) { + this.pushClassPrivateMethod(classBody, privateMethod, false, false); + return; + } + const isConstructor = this.isNonstaticConstructor(publicMethod); + let allowsDirectSuper = false; + if (isConstructor) { + publicMethod.kind = "constructor"; + if (state.hadConstructor && !this.hasPlugin("typescript")) { + this.raise(Errors.DuplicateConstructor, key); + } + if (isConstructor && this.hasPlugin("typescript") && member.override) { + this.raise(Errors.OverrideOnConstructor, key); + } + state.hadConstructor = true; + allowsDirectSuper = state.hadSuperClass; + } + this.pushClassMethod(classBody, publicMethod, false, false, isConstructor, allowsDirectSuper); + } else if (this.isClassProperty()) { + if (isPrivate) { + this.pushClassPrivateProperty(classBody, privateProp); + } else { + this.pushClassProperty(classBody, publicProp); + } + } else if (maybeContextualKw === "async" && !this.isLineTerminator()) { + this.resetPreviousNodeTrailingComments(key); + const isGenerator = this.eat(55); + if (publicMember.optional) { + this.unexpected(maybeQuestionTokenStartLoc); + } + method.kind = "method"; + const isPrivate = this.match(139); + this.parseClassElementName(method); + this.parsePostMemberNameModifiers(publicMember); + if (isPrivate) { + this.pushClassPrivateMethod(classBody, privateMethod, isGenerator, true); + } else { + if (this.isNonstaticConstructor(publicMethod)) { + this.raise(Errors.ConstructorIsAsync, publicMethod.key); + } + this.pushClassMethod(classBody, publicMethod, isGenerator, true, false, false); + } + } else if ((maybeContextualKw === "get" || maybeContextualKw === "set") && !(this.match(55) && this.isLineTerminator())) { + this.resetPreviousNodeTrailingComments(key); + method.kind = maybeContextualKw; + const isPrivate = this.match(139); + this.parseClassElementName(publicMethod); + if (isPrivate) { + this.pushClassPrivateMethod(classBody, privateMethod, false, false); + } else { + if (this.isNonstaticConstructor(publicMethod)) { + this.raise(Errors.ConstructorIsAccessor, publicMethod.key); + } + this.pushClassMethod(classBody, publicMethod, false, false, false, false); + } + this.checkGetterSetterParams(publicMethod); + } else if (maybeContextualKw === "accessor" && !this.isLineTerminator()) { + this.expectPlugin("decoratorAutoAccessors"); + this.resetPreviousNodeTrailingComments(key); + const isPrivate = this.match(139); + this.parseClassElementName(publicProp); + this.pushClassAccessorProperty(classBody, accessorProp, isPrivate); + } else if (this.isLineTerminator()) { + if (isPrivate) { + this.pushClassPrivateProperty(classBody, privateProp); + } else { + this.pushClassProperty(classBody, publicProp); + } + } else { + this.unexpected(); + } + } + parseClassElementName(member) { + const { + type, + value + } = this.state; + if ((type === 132 || type === 134) && member.static && value === "prototype") { + this.raise(Errors.StaticPrototype, this.state.startLoc); + } + if (type === 139) { + if (value === "constructor") { + this.raise(Errors.ConstructorClassPrivateField, this.state.startLoc); + } + const key = this.parsePrivateName(); + member.key = key; + return key; + } + this.parsePropertyName(member); + return member.key; + } + parseClassStaticBlock(classBody, member) { + var _member$decorators; + this.scope.enter(576 | 128 | 16); + const oldLabels = this.state.labels; + this.state.labels = []; + this.prodParam.enter(0); + const body = member.body = []; + this.parseBlockOrModuleBlockBody(body, undefined, false, 8); + this.prodParam.exit(); + this.scope.exit(); + this.state.labels = oldLabels; + classBody.body.push(this.finishNode(member, "StaticBlock")); + if ((_member$decorators = member.decorators) != null && _member$decorators.length) { + this.raise(Errors.DecoratorStaticBlock, member); + } + } + pushClassProperty(classBody, prop) { + if (!prop.computed && this.nameIsConstructor(prop.key)) { + this.raise(Errors.ConstructorClassField, prop.key); + } + classBody.body.push(this.parseClassProperty(prop)); + } + pushClassPrivateProperty(classBody, prop) { + const node = this.parseClassPrivateProperty(prop); + classBody.body.push(node); + this.classScope.declarePrivateName(this.getPrivateNameSV(node.key), 0, node.key.loc.start); + } + pushClassAccessorProperty(classBody, prop, isPrivate) { + if (!isPrivate && !prop.computed && this.nameIsConstructor(prop.key)) { + this.raise(Errors.ConstructorClassField, prop.key); + } + const node = this.parseClassAccessorProperty(prop); + classBody.body.push(node); + if (isPrivate) { + this.classScope.declarePrivateName(this.getPrivateNameSV(node.key), 0, node.key.loc.start); + } + } + pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) { + classBody.body.push(this.parseMethod(method, isGenerator, isAsync, isConstructor, allowsDirectSuper, "ClassMethod", true)); + } + pushClassPrivateMethod(classBody, method, isGenerator, isAsync) { + const node = this.parseMethod(method, isGenerator, isAsync, false, false, "ClassPrivateMethod", true); + classBody.body.push(node); + const kind = node.kind === "get" ? node.static ? 6 : 2 : node.kind === "set" ? node.static ? 5 : 1 : 0; + this.declareClassPrivateMethodInScope(node, kind); + } + declareClassPrivateMethodInScope(node, kind) { + this.classScope.declarePrivateName(this.getPrivateNameSV(node.key), kind, node.key.loc.start); + } + parsePostMemberNameModifiers(methodOrProp) {} + parseClassPrivateProperty(node) { + this.parseInitializer(node); + this.semicolon(); + return this.finishNode(node, "ClassPrivateProperty"); + } + parseClassProperty(node) { + this.parseInitializer(node); + this.semicolon(); + return this.finishNode(node, "ClassProperty"); + } + parseClassAccessorProperty(node) { + this.parseInitializer(node); + this.semicolon(); + return this.finishNode(node, "ClassAccessorProperty"); + } + parseInitializer(node) { + this.scope.enter(576 | 16); + this.expressionScope.enter(newExpressionScope()); + this.prodParam.enter(0); + node.value = this.eat(29) ? this.parseMaybeAssignAllowIn() : null; + this.expressionScope.exit(); + this.prodParam.exit(); + this.scope.exit(); + } + parseClassId(node, isStatement, optionalId, bindingType = 8331) { + if (tokenIsIdentifier(this.state.type)) { + node.id = this.parseIdentifier(); + if (isStatement) { + this.declareNameFromIdentifier(node.id, bindingType); + } + } else { + if (optionalId || !isStatement) { + node.id = null; + } else { + throw this.raise(Errors.MissingClassName, this.state.startLoc); + } + } + } + parseClassSuper(node) { + node.superClass = this.eat(81) ? this.parseExprSubscripts() : null; + } + parseExport(node, decorators) { + const maybeDefaultIdentifier = this.parseMaybeImportPhase(node, true); + const hasDefault = this.maybeParseExportDefaultSpecifier(node, maybeDefaultIdentifier); + const parseAfterDefault = !hasDefault || this.eat(12); + const hasStar = parseAfterDefault && this.eatExportStar(node); + const hasNamespace = hasStar && this.maybeParseExportNamespaceSpecifier(node); + const parseAfterNamespace = parseAfterDefault && (!hasNamespace || this.eat(12)); + const isFromRequired = hasDefault || hasStar; + if (hasStar && !hasNamespace) { + if (hasDefault) this.unexpected(); + if (decorators) { + throw this.raise(Errors.UnsupportedDecoratorExport, node); + } + this.parseExportFrom(node, true); + this.sawUnambiguousESM = true; + return this.finishNode(node, "ExportAllDeclaration"); + } + const hasSpecifiers = this.maybeParseExportNamedSpecifiers(node); + if (hasDefault && parseAfterDefault && !hasStar && !hasSpecifiers) { + this.unexpected(null, 5); + } + if (hasNamespace && parseAfterNamespace) { + this.unexpected(null, 98); + } + let hasDeclaration; + if (isFromRequired || hasSpecifiers) { + hasDeclaration = false; + if (decorators) { + throw this.raise(Errors.UnsupportedDecoratorExport, node); + } + this.parseExportFrom(node, isFromRequired); + } else { + hasDeclaration = this.maybeParseExportDeclaration(node); + } + if (isFromRequired || hasSpecifiers || hasDeclaration) { + var _node2$declaration; + const node2 = node; + this.checkExport(node2, true, false, !!node2.source); + if (((_node2$declaration = node2.declaration) == null ? void 0 : _node2$declaration.type) === "ClassDeclaration") { + this.maybeTakeDecorators(decorators, node2.declaration, node2); + } else if (decorators) { + throw this.raise(Errors.UnsupportedDecoratorExport, node); + } + this.sawUnambiguousESM = true; + return this.finishNode(node2, "ExportNamedDeclaration"); + } + if (this.eat(65)) { + const node2 = node; + const decl = this.parseExportDefaultExpression(); + node2.declaration = decl; + if (decl.type === "ClassDeclaration") { + this.maybeTakeDecorators(decorators, decl, node2); + } else if (decorators) { + throw this.raise(Errors.UnsupportedDecoratorExport, node); + } + this.checkExport(node2, true, true); + this.sawUnambiguousESM = true; + return this.finishNode(node2, "ExportDefaultDeclaration"); + } + throw this.unexpected(null, 5); + } + eatExportStar(node) { + return this.eat(55); + } + maybeParseExportDefaultSpecifier(node, maybeDefaultIdentifier) { + if (maybeDefaultIdentifier || this.isExportDefaultSpecifier()) { + this.expectPlugin("exportDefaultFrom", maybeDefaultIdentifier == null ? void 0 : maybeDefaultIdentifier.loc.start); + const id = maybeDefaultIdentifier || this.parseIdentifier(true); + const specifier = this.startNodeAtNode(id); + specifier.exported = id; + node.specifiers = [this.finishNode(specifier, "ExportDefaultSpecifier")]; + return true; + } + return false; + } + maybeParseExportNamespaceSpecifier(node) { + if (this.isContextual(93)) { + var _ref, _ref$specifiers; + (_ref$specifiers = (_ref = node).specifiers) != null ? _ref$specifiers : _ref.specifiers = []; + const specifier = this.startNodeAt(this.state.lastTokStartLoc); + this.next(); + specifier.exported = this.parseModuleExportName(); + node.specifiers.push(this.finishNode(specifier, "ExportNamespaceSpecifier")); + return true; + } + return false; + } + maybeParseExportNamedSpecifiers(node) { + if (this.match(5)) { + const node2 = node; + if (!node2.specifiers) node2.specifiers = []; + const isTypeExport = node2.exportKind === "type"; + node2.specifiers.push(...this.parseExportSpecifiers(isTypeExport)); + node2.source = null; + if (this.hasPlugin("importAssertions")) { + node2.assertions = []; + } else { + node2.attributes = []; + } + node2.declaration = null; + return true; + } + return false; + } + maybeParseExportDeclaration(node) { + if (this.shouldParseExportDeclaration()) { + node.specifiers = []; + node.source = null; + if (this.hasPlugin("importAssertions")) { + node.assertions = []; + } else { + node.attributes = []; + } + node.declaration = this.parseExportDeclaration(node); + return true; + } + return false; + } + isAsyncFunction() { + if (!this.isContextual(95)) return false; + const next = this.nextTokenInLineStart(); + return this.isUnparsedContextual(next, "function"); + } + parseExportDefaultExpression() { + const expr = this.startNode(); + if (this.match(68)) { + this.next(); + return this.parseFunction(expr, 1 | 4); + } else if (this.isAsyncFunction()) { + this.next(); + this.next(); + return this.parseFunction(expr, 1 | 4 | 8); + } + if (this.match(80)) { + return this.parseClass(expr, true, true); + } + if (this.match(26)) { + if (this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBeforeExport") === true) { + this.raise(Errors.DecoratorBeforeExport, this.state.startLoc); + } + return this.parseClass(this.maybeTakeDecorators(this.parseDecorators(false), this.startNode()), true, true); + } + if (this.match(75) || this.match(74) || this.isLet() || this.isUsing() || this.isAwaitUsing()) { + throw this.raise(Errors.UnsupportedDefaultExport, this.state.startLoc); + } + const res = this.parseMaybeAssignAllowIn(); + this.semicolon(); + return res; + } + parseExportDeclaration(node) { + if (this.match(80)) { + const node = this.parseClass(this.startNode(), true, false); + return node; + } + return this.parseStatementListItem(); + } + isExportDefaultSpecifier() { + const { + type + } = this.state; + if (tokenIsIdentifier(type)) { + if (type === 95 && !this.state.containsEsc || type === 100) { + return false; + } + if ((type === 130 || type === 129) && !this.state.containsEsc) { + const next = this.nextTokenStart(); + const nextChar = this.input.charCodeAt(next); + if (nextChar === 123 || this.chStartsBindingIdentifier(nextChar, next) && !this.input.startsWith("from", next)) { + this.expectOnePlugin(["flow", "typescript"]); + return false; + } + } + } else if (!this.match(65)) { + return false; + } + const next = this.nextTokenStart(); + const hasFrom = this.isUnparsedContextual(next, "from"); + if (this.input.charCodeAt(next) === 44 || tokenIsIdentifier(this.state.type) && hasFrom) { + return true; + } + if (this.match(65) && hasFrom) { + const nextAfterFrom = this.input.charCodeAt(this.nextTokenStartSince(next + 4)); + return nextAfterFrom === 34 || nextAfterFrom === 39; + } + return false; + } + parseExportFrom(node, expect) { + if (this.eatContextual(98)) { + node.source = this.parseImportSource(); + this.checkExport(node); + this.maybeParseImportAttributes(node); + this.checkJSONModuleImport(node); + } else if (expect) { + this.unexpected(); + } + this.semicolon(); + } + shouldParseExportDeclaration() { + const { + type + } = this.state; + if (type === 26) { + this.expectOnePlugin(["decorators", "decorators-legacy"]); + if (this.hasPlugin("decorators")) { + if (this.getPluginOption("decorators", "decoratorsBeforeExport") === true) { + this.raise(Errors.DecoratorBeforeExport, this.state.startLoc); + } + return true; + } + } + if (this.isUsing()) { + this.raise(Errors.UsingDeclarationExport, this.state.startLoc); + return true; + } + if (this.isAwaitUsing()) { + this.raise(Errors.UsingDeclarationExport, this.state.startLoc); + return true; + } + return type === 74 || type === 75 || type === 68 || type === 80 || this.isLet() || this.isAsyncFunction(); + } + checkExport(node, checkNames, isDefault, isFrom) { + if (checkNames) { + var _node$specifiers; + if (isDefault) { + this.checkDuplicateExports(node, "default"); + if (this.hasPlugin("exportDefaultFrom")) { + var _declaration$extra; + const declaration = node.declaration; + if (declaration.type === "Identifier" && declaration.name === "from" && declaration.end - declaration.start === 4 && !((_declaration$extra = declaration.extra) != null && _declaration$extra.parenthesized)) { + this.raise(Errors.ExportDefaultFromAsIdentifier, declaration); + } + } + } else if ((_node$specifiers = node.specifiers) != null && _node$specifiers.length) { + for (const specifier of node.specifiers) { + const { + exported + } = specifier; + const exportName = exported.type === "Identifier" ? exported.name : exported.value; + this.checkDuplicateExports(specifier, exportName); + if (!isFrom && specifier.local) { + const { + local + } = specifier; + if (local.type !== "Identifier") { + this.raise(Errors.ExportBindingIsString, specifier, { + localName: local.value, + exportName + }); + } else { + this.checkReservedWord(local.name, local.loc.start, true, false); + this.scope.checkLocalExport(local); + } + } + } + } else if (node.declaration) { + const decl = node.declaration; + if (decl.type === "FunctionDeclaration" || decl.type === "ClassDeclaration") { + const { + id + } = decl; + if (!id) throw new Error("Assertion failure"); + this.checkDuplicateExports(node, id.name); + } else if (decl.type === "VariableDeclaration") { + for (const declaration of decl.declarations) { + this.checkDeclaration(declaration.id); + } + } + } + } + } + checkDeclaration(node) { + if (node.type === "Identifier") { + this.checkDuplicateExports(node, node.name); + } else if (node.type === "ObjectPattern") { + for (const prop of node.properties) { + this.checkDeclaration(prop); + } + } else if (node.type === "ArrayPattern") { + for (const elem of node.elements) { + if (elem) { + this.checkDeclaration(elem); + } + } + } else if (node.type === "ObjectProperty") { + this.checkDeclaration(node.value); + } else if (node.type === "RestElement") { + this.checkDeclaration(node.argument); + } else if (node.type === "AssignmentPattern") { + this.checkDeclaration(node.left); + } + } + checkDuplicateExports(node, exportName) { + if (this.exportedIdentifiers.has(exportName)) { + if (exportName === "default") { + this.raise(Errors.DuplicateDefaultExport, node); + } else { + this.raise(Errors.DuplicateExport, node, { + exportName + }); + } + } + this.exportedIdentifiers.add(exportName); + } + parseExportSpecifiers(isInTypeExport) { + const nodes = []; + let first = true; + this.expect(5); + while (!this.eat(8)) { + if (first) { + first = false; + } else { + this.expect(12); + if (this.eat(8)) break; + } + const isMaybeTypeOnly = this.isContextual(130); + const isString = this.match(134); + const node = this.startNode(); + node.local = this.parseModuleExportName(); + nodes.push(this.parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly)); + } + return nodes; + } + parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly) { + if (this.eatContextual(93)) { + node.exported = this.parseModuleExportName(); + } else if (isString) { + node.exported = this.cloneStringLiteral(node.local); + } else if (!node.exported) { + node.exported = this.cloneIdentifier(node.local); + } + return this.finishNode(node, "ExportSpecifier"); + } + parseModuleExportName() { + if (this.match(134)) { + const result = this.parseStringLiteral(this.state.value); + const surrogate = loneSurrogate.exec(result.value); + if (surrogate) { + this.raise(Errors.ModuleExportNameHasLoneSurrogate, result, { + surrogateCharCode: surrogate[0].charCodeAt(0) + }); + } + return result; + } + return this.parseIdentifier(true); + } + isJSONModuleImport(node) { + if (node.assertions != null) { + return node.assertions.some(({ + key, + value + }) => { + return value.value === "json" && (key.type === "Identifier" ? key.name === "type" : key.value === "type"); + }); + } + return false; + } + checkImportReflection(node) { + const { + specifiers + } = node; + const singleBindingType = specifiers.length === 1 ? specifiers[0].type : null; + if (node.phase === "source") { + if (singleBindingType !== "ImportDefaultSpecifier") { + this.raise(Errors.SourcePhaseImportRequiresDefault, specifiers[0].loc.start); + } + } else if (node.phase === "defer") { + if (singleBindingType !== "ImportNamespaceSpecifier") { + this.raise(Errors.DeferImportRequiresNamespace, specifiers[0].loc.start); + } + } else if (node.module) { + var _node$assertions; + if (singleBindingType !== "ImportDefaultSpecifier") { + this.raise(Errors.ImportReflectionNotBinding, specifiers[0].loc.start); + } + if (((_node$assertions = node.assertions) == null ? void 0 : _node$assertions.length) > 0) { + this.raise(Errors.ImportReflectionHasAssertion, specifiers[0].loc.start); + } + } + } + checkJSONModuleImport(node) { + if (this.isJSONModuleImport(node) && node.type !== "ExportAllDeclaration") { + const { + specifiers + } = node; + if (specifiers != null) { + const nonDefaultNamedSpecifier = specifiers.find(specifier => { + let imported; + if (specifier.type === "ExportSpecifier") { + imported = specifier.local; + } else if (specifier.type === "ImportSpecifier") { + imported = specifier.imported; + } + if (imported !== undefined) { + return imported.type === "Identifier" ? imported.name !== "default" : imported.value !== "default"; + } + }); + if (nonDefaultNamedSpecifier !== undefined) { + this.raise(Errors.ImportJSONBindingNotDefault, nonDefaultNamedSpecifier.loc.start); + } + } + } + } + isPotentialImportPhase(isExport) { + if (isExport) return false; + return this.isContextual(105) || this.isContextual(97) || this.isContextual(127); + } + applyImportPhase(node, isExport, phase, loc) { + if (isExport) { + return; + } + if (phase === "module") { + this.expectPlugin("importReflection", loc); + node.module = true; + } else if (this.hasPlugin("importReflection")) { + node.module = false; + } + if (phase === "source") { + this.expectPlugin("sourcePhaseImports", loc); + node.phase = "source"; + } else if (phase === "defer") { + this.expectPlugin("deferredImportEvaluation", loc); + node.phase = "defer"; + } else if (this.hasPlugin("sourcePhaseImports")) { + node.phase = null; + } + } + parseMaybeImportPhase(node, isExport) { + if (!this.isPotentialImportPhase(isExport)) { + this.applyImportPhase(node, isExport, null); + return null; + } + const phaseIdentifier = this.startNode(); + const phaseIdentifierName = this.parseIdentifierName(true); + const { + type + } = this.state; + const isImportPhase = tokenIsKeywordOrIdentifier(type) ? type !== 98 || this.lookaheadCharCode() === 102 : type !== 12; + if (isImportPhase) { + this.applyImportPhase(node, isExport, phaseIdentifierName, phaseIdentifier.loc.start); + return null; + } else { + this.applyImportPhase(node, isExport, null); + return this.createIdentifier(phaseIdentifier, phaseIdentifierName); + } + } + isPrecedingIdImportPhase(phase) { + const { + type + } = this.state; + return tokenIsIdentifier(type) ? type !== 98 || this.lookaheadCharCode() === 102 : type !== 12; + } + parseImport(node) { + if (this.match(134)) { + return this.parseImportSourceAndAttributes(node); + } + return this.parseImportSpecifiersAndAfter(node, this.parseMaybeImportPhase(node, false)); + } + parseImportSpecifiersAndAfter(node, maybeDefaultIdentifier) { + node.specifiers = []; + const hasDefault = this.maybeParseDefaultImportSpecifier(node, maybeDefaultIdentifier); + const parseNext = !hasDefault || this.eat(12); + const hasStar = parseNext && this.maybeParseStarImportSpecifier(node); + if (parseNext && !hasStar) this.parseNamedImportSpecifiers(node); + this.expectContextual(98); + return this.parseImportSourceAndAttributes(node); + } + parseImportSourceAndAttributes(node) { + var _node$specifiers2; + (_node$specifiers2 = node.specifiers) != null ? _node$specifiers2 : node.specifiers = []; + node.source = this.parseImportSource(); + this.maybeParseImportAttributes(node); + this.checkImportReflection(node); + this.checkJSONModuleImport(node); + this.semicolon(); + this.sawUnambiguousESM = true; + return this.finishNode(node, "ImportDeclaration"); + } + parseImportSource() { + if (!this.match(134)) this.unexpected(); + return this.parseExprAtom(); + } + parseImportSpecifierLocal(node, specifier, type) { + specifier.local = this.parseIdentifier(); + node.specifiers.push(this.finishImportSpecifier(specifier, type)); + } + finishImportSpecifier(specifier, type, bindingType = 8201) { + this.checkLVal(specifier.local, { + type + }, bindingType); + return this.finishNode(specifier, type); + } + parseImportAttributes() { + this.expect(5); + const attrs = []; + const attrNames = new Set(); + do { + if (this.match(8)) { + break; + } + const node = this.startNode(); + const keyName = this.state.value; + if (attrNames.has(keyName)) { + this.raise(Errors.ModuleAttributesWithDuplicateKeys, this.state.startLoc, { + key: keyName + }); + } + attrNames.add(keyName); + if (this.match(134)) { + node.key = this.parseStringLiteral(keyName); + } else { + node.key = this.parseIdentifier(true); + } + this.expect(14); + if (!this.match(134)) { + throw this.raise(Errors.ModuleAttributeInvalidValue, this.state.startLoc); + } + node.value = this.parseStringLiteral(this.state.value); + attrs.push(this.finishNode(node, "ImportAttribute")); + } while (this.eat(12)); + this.expect(8); + return attrs; + } + parseModuleAttributes() { + const attrs = []; + const attributes = new Set(); + do { + const node = this.startNode(); + node.key = this.parseIdentifier(true); + if (node.key.name !== "type") { + this.raise(Errors.ModuleAttributeDifferentFromType, node.key); + } + if (attributes.has(node.key.name)) { + this.raise(Errors.ModuleAttributesWithDuplicateKeys, node.key, { + key: node.key.name + }); + } + attributes.add(node.key.name); + this.expect(14); + if (!this.match(134)) { + throw this.raise(Errors.ModuleAttributeInvalidValue, this.state.startLoc); + } + node.value = this.parseStringLiteral(this.state.value); + attrs.push(this.finishNode(node, "ImportAttribute")); + } while (this.eat(12)); + return attrs; + } + maybeParseImportAttributes(node) { + let attributes; + var useWith = false; + if (this.match(76)) { + if (this.hasPrecedingLineBreak() && this.lookaheadCharCode() === 40) { + return; + } + this.next(); + if (this.hasPlugin("moduleAttributes")) { + attributes = this.parseModuleAttributes(); + this.addExtra(node, "deprecatedWithLegacySyntax", true); + } else { + attributes = this.parseImportAttributes(); + } + useWith = true; + } else if (this.isContextual(94) && !this.hasPrecedingLineBreak()) { + if (!this.hasPlugin("deprecatedImportAssert") && !this.hasPlugin("importAssertions")) { + this.raise(Errors.ImportAttributesUseAssert, this.state.startLoc); + } + if (!this.hasPlugin("importAssertions")) { + this.addExtra(node, "deprecatedAssertSyntax", true); + } + this.next(); + attributes = this.parseImportAttributes(); + } else { + attributes = []; + } + if (!useWith && this.hasPlugin("importAssertions")) { + node.assertions = attributes; + } else { + node.attributes = attributes; + } + } + maybeParseDefaultImportSpecifier(node, maybeDefaultIdentifier) { + if (maybeDefaultIdentifier) { + const specifier = this.startNodeAtNode(maybeDefaultIdentifier); + specifier.local = maybeDefaultIdentifier; + node.specifiers.push(this.finishImportSpecifier(specifier, "ImportDefaultSpecifier")); + return true; + } else if (tokenIsKeywordOrIdentifier(this.state.type)) { + this.parseImportSpecifierLocal(node, this.startNode(), "ImportDefaultSpecifier"); + return true; + } + return false; + } + maybeParseStarImportSpecifier(node) { + if (this.match(55)) { + const specifier = this.startNode(); + this.next(); + this.expectContextual(93); + this.parseImportSpecifierLocal(node, specifier, "ImportNamespaceSpecifier"); + return true; + } + return false; + } + parseNamedImportSpecifiers(node) { + let first = true; + this.expect(5); + while (!this.eat(8)) { + if (first) { + first = false; + } else { + if (this.eat(14)) { + throw this.raise(Errors.DestructureNamedImport, this.state.startLoc); + } + this.expect(12); + if (this.eat(8)) break; + } + const specifier = this.startNode(); + const importedIsString = this.match(134); + const isMaybeTypeOnly = this.isContextual(130); + specifier.imported = this.parseModuleExportName(); + const importSpecifier = this.parseImportSpecifier(specifier, importedIsString, node.importKind === "type" || node.importKind === "typeof", isMaybeTypeOnly, undefined); + node.specifiers.push(importSpecifier); + } + } + parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, bindingType) { + if (this.eatContextual(93)) { + specifier.local = this.parseIdentifier(); + } else { + const { + imported + } = specifier; + if (importedIsString) { + throw this.raise(Errors.ImportBindingIsString, specifier, { + importName: imported.value + }); + } + this.checkReservedWord(imported.name, specifier.loc.start, true, true); + if (!specifier.local) { + specifier.local = this.cloneIdentifier(imported); + } + } + return this.finishImportSpecifier(specifier, "ImportSpecifier", bindingType); + } + isThisParam(param) { + return param.type === "Identifier" && param.name === "this"; + } +} +class Parser extends StatementParser { + constructor(options, input, pluginsMap) { + const normalizedOptions = getOptions(options); + super(normalizedOptions, input); + this.options = normalizedOptions; + this.initializeScopes(); + this.plugins = pluginsMap; + this.filename = normalizedOptions.sourceFilename; + this.startIndex = normalizedOptions.startIndex; + let optionFlags = 0; + if (normalizedOptions.allowAwaitOutsideFunction) { + optionFlags |= 1; + } + if (normalizedOptions.allowReturnOutsideFunction) { + optionFlags |= 2; + } + if (normalizedOptions.allowImportExportEverywhere) { + optionFlags |= 8; + } + if (normalizedOptions.allowSuperOutsideMethod) { + optionFlags |= 16; + } + if (normalizedOptions.allowUndeclaredExports) { + optionFlags |= 64; + } + if (normalizedOptions.allowNewTargetOutsideFunction) { + optionFlags |= 4; + } + if (normalizedOptions.allowYieldOutsideFunction) { + optionFlags |= 32; + } + if (normalizedOptions.ranges) { + optionFlags |= 128; + } + if (normalizedOptions.tokens) { + optionFlags |= 256; + } + if (normalizedOptions.createImportExpressions) { + optionFlags |= 512; + } + if (normalizedOptions.createParenthesizedExpressions) { + optionFlags |= 1024; + } + if (normalizedOptions.errorRecovery) { + optionFlags |= 2048; + } + if (normalizedOptions.attachComment) { + optionFlags |= 4096; + } + if (normalizedOptions.annexB) { + optionFlags |= 8192; + } + this.optionFlags = optionFlags; + } + getScopeHandler() { + return ScopeHandler; + } + parse() { + this.enterInitialScopes(); + const file = this.startNode(); + const program = this.startNode(); + this.nextToken(); + file.errors = null; + const result = this.parseTopLevel(file, program); + result.errors = this.state.errors; + result.comments.length = this.state.commentsLen; + return result; + } +} +function parse(input, options) { + var _options; + if (((_options = options) == null ? void 0 : _options.sourceType) === "unambiguous") { + options = Object.assign({}, options); + try { + options.sourceType = "module"; + const parser = getParser(options, input); + const ast = parser.parse(); + if (parser.sawUnambiguousESM) { + return ast; + } + if (parser.ambiguousScriptDifferentAst) { + try { + options.sourceType = "script"; + return getParser(options, input).parse(); + } catch (_unused) {} + } else { + ast.program.sourceType = "script"; + } + return ast; + } catch (moduleError) { + try { + options.sourceType = "script"; + return getParser(options, input).parse(); + } catch (_unused2) {} + throw moduleError; + } + } else { + return getParser(options, input).parse(); + } +} +function parseExpression(input, options) { + const parser = getParser(options, input); + if (parser.options.strictMode) { + parser.state.strict = true; + } + return parser.getExpression(); +} +function generateExportedTokenTypes(internalTokenTypes) { + const tokenTypes = {}; + for (const typeName of Object.keys(internalTokenTypes)) { + tokenTypes[typeName] = getExportedToken(internalTokenTypes[typeName]); + } + return tokenTypes; +} +const tokTypes = generateExportedTokenTypes(tt); +function getParser(options, input) { + let cls = Parser; + const pluginsMap = new Map(); + if (options != null && options.plugins) { + for (const plugin of options.plugins) { + let name, opts; + if (typeof plugin === "string") { + name = plugin; + } else { + [name, opts] = plugin; + } + if (!pluginsMap.has(name)) { + pluginsMap.set(name, opts || {}); + } + } + validatePlugins(pluginsMap); + cls = getParserClass(pluginsMap); + } + return new cls(options, input, pluginsMap); +} +const parserClassCache = new Map(); +function getParserClass(pluginsMap) { + const pluginList = []; + for (const name of mixinPluginNames) { + if (pluginsMap.has(name)) { + pluginList.push(name); + } + } + const key = pluginList.join("|"); + let cls = parserClassCache.get(key); + if (!cls) { + cls = Parser; + for (const plugin of pluginList) { + cls = mixinPlugins[plugin](cls); + } + parserClassCache.set(key, cls); + } + return cls; +} +exports.parse = parse; +exports.parseExpression = parseExpression; +exports.tokTypes = tokTypes; +//# sourceMappingURL=index.js.map diff --git a/frontend/node_modules/@babel/parser/lib/index.js.map b/frontend/node_modules/@babel/parser/lib/index.js.map new file mode 100644 index 0000000..b3d5225 --- /dev/null +++ b/frontend/node_modules/@babel/parser/lib/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../src/util/location.ts","../src/parse-error/module-errors.ts","../src/parse-error/to-node-description.ts","../src/parse-error/standard-errors.ts","../src/parse-error/strict-mode-errors.ts","../src/parse-error/parse-expression-errors.ts","../src/parse-error/pipeline-operator-errors.ts","../src/parse-error.ts","../src/options.ts","../src/plugins/estree.ts","../src/tokenizer/context.ts","../src/tokenizer/types.ts","../../babel-helper-validator-identifier/src/identifier.ts","../../babel-helper-validator-identifier/src/keyword.ts","../src/util/identifier.ts","../src/util/scope.ts","../src/plugins/flow/scope.ts","../src/plugins/flow/index.ts","../src/plugins/jsx/xhtml.ts","../src/util/whitespace.ts","../src/plugins/jsx/index.ts","../src/plugins/typescript/scope.ts","../src/util/production-parameter.ts","../src/parser/base.ts","../src/parser/comments.ts","../src/tokenizer/state.ts","../../babel-helper-string-parser/src/index.ts","../src/tokenizer/index.ts","../src/util/class-scope.ts","../src/util/expression-scope.ts","../src/parser/util.ts","../src/parser/node.ts","../src/parser/lval.ts","../src/plugins/typescript/index.ts","../src/plugins/placeholders.ts","../src/plugins/v8intrinsic.ts","../src/plugin-utils.ts","../src/parser/expression.ts","../src/parser/statement.ts","../src/parser/index.ts","../src/index.ts"],"sourcesContent":["export type Pos = {\n start: number;\n};\n\n// These are used when `options.locations` is on, for the\n// `startLoc` and `endLoc` properties.\n\nexport class Position {\n line: number;\n column: number;\n index: number;\n\n constructor(line: number, col: number, index: number) {\n this.line = line;\n this.column = col;\n this.index = index;\n }\n}\n\nexport class SourceLocation {\n start: Position;\n end: Position;\n filename: string | undefined;\n identifierName: string | undefined | null;\n\n constructor(start: Position, end?: Position) {\n this.start = start;\n // (may start as null, but initialized later)\n this.end = end!;\n }\n}\n\n/**\n * creates a new position with a non-zero column offset from the given position.\n * This function should be only be used when we create AST node out of the token\n * boundaries, such as TemplateElement ends before tt.templateNonTail. This\n * function does not skip whitespaces.\n */\nexport function createPositionWithColumnOffset(\n position: Position,\n columnOffset: number,\n) {\n const { line, column, index } = position;\n return new Position(line, column + columnOffset, index + columnOffset);\n}\n","import type { ParseErrorTemplates } from \"../parse-error.ts\";\n\nconst code = \"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED\";\n\nexport default {\n ImportMetaOutsideModule: {\n message: `import.meta may appear only with 'sourceType: \"module\"'`,\n code,\n },\n ImportOutsideModule: {\n message: `'import' and 'export' may appear only with 'sourceType: \"module\"'`,\n code,\n },\n} satisfies ParseErrorTemplates;\n","const NodeDescriptions = {\n ArrayPattern: \"array destructuring pattern\",\n AssignmentExpression: \"assignment expression\",\n AssignmentPattern: \"assignment expression\",\n ArrowFunctionExpression: \"arrow function expression\",\n ConditionalExpression: \"conditional expression\",\n CatchClause: \"catch clause\",\n ForOfStatement: \"for-of statement\",\n ForInStatement: \"for-in statement\",\n ForStatement: \"for-loop\",\n FormalParameters: \"function parameter list\",\n Identifier: \"identifier\",\n ImportSpecifier: \"import specifier\",\n ImportDefaultSpecifier: \"import default specifier\",\n ImportNamespaceSpecifier: \"import namespace specifier\",\n ObjectPattern: \"object destructuring pattern\",\n ParenthesizedExpression: \"parenthesized expression\",\n RestElement: \"rest element\",\n UpdateExpression: {\n true: \"prefix operation\",\n false: \"postfix operation\",\n },\n VariableDeclarator: \"variable declaration\",\n YieldExpression: \"yield expression\",\n};\n\ntype NodeTypesWithDescriptions = keyof Omit<\n typeof NodeDescriptions,\n \"UpdateExpression\"\n>;\n\ntype NodeWithDescription =\n | {\n type: \"UpdateExpression\";\n prefix: boolean;\n }\n | {\n type: NodeTypesWithDescriptions;\n };\n\nconst toNodeDescription = (node: NodeWithDescription) =>\n node.type === \"UpdateExpression\"\n ? NodeDescriptions.UpdateExpression[`${node.prefix}`]\n : NodeDescriptions[node.type];\n\nexport default toNodeDescription;\n","import type { ParseErrorTemplates } from \"../parse-error.ts\";\nimport toNodeDescription from \"./to-node-description.ts\";\n\nexport type LValAncestor =\n | { type: \"UpdateExpression\"; prefix: boolean }\n | {\n type:\n | \"ArrayPattern\"\n | \"AssignmentExpression\"\n | \"CatchClause\"\n | \"ForOfStatement\"\n | \"FormalParameters\"\n | \"ForInStatement\"\n | \"ForStatement\"\n | \"ImportSpecifier\"\n | \"ImportNamespaceSpecifier\"\n | \"ImportDefaultSpecifier\"\n | \"ParenthesizedExpression\"\n | \"ObjectPattern\"\n | \"RestElement\"\n | \"VariableDeclarator\";\n };\n\nexport default {\n AccessorIsGenerator: ({ kind }: { kind: \"get\" | \"set\" }) =>\n `A ${kind}ter cannot be a generator.`,\n ArgumentsInClass:\n \"'arguments' is only allowed in functions and class methods.\",\n AsyncFunctionInSingleStatementContext:\n \"Async functions can only be declared at the top level or inside a block.\",\n AwaitBindingIdentifier:\n \"Can not use 'await' as identifier inside an async function.\",\n AwaitBindingIdentifierInStaticBlock:\n \"Can not use 'await' as identifier inside a static block.\",\n AwaitExpressionFormalParameter:\n \"'await' is not allowed in async function parameters.\",\n AwaitUsingNotInAsyncContext:\n \"'await using' is only allowed within async functions and at the top levels of modules.\",\n AwaitNotInAsyncContext:\n \"'await' is only allowed within async functions and at the top levels of modules.\",\n BadGetterArity: \"A 'get' accessor must not have any formal parameters.\",\n BadSetterArity: \"A 'set' accessor must have exactly one formal parameter.\",\n BadSetterRestParameter:\n \"A 'set' accessor function argument must not be a rest parameter.\",\n ConstructorClassField: \"Classes may not have a field named 'constructor'.\",\n ConstructorClassPrivateField:\n \"Classes may not have a private field named '#constructor'.\",\n ConstructorIsAccessor: \"Class constructor may not be an accessor.\",\n ConstructorIsAsync: \"Constructor can't be an async function.\",\n ConstructorIsGenerator: \"Constructor can't be a generator.\",\n DeclarationMissingInitializer: ({\n kind,\n }: {\n kind: \"await using\" | \"const\" | \"destructuring\" | \"using\";\n }) => `Missing initializer in ${kind} declaration.`,\n DecoratorArgumentsOutsideParentheses:\n \"Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(decorator)(args)'.\",\n DecoratorBeforeExport:\n \"Decorators must be placed *before* the 'export' keyword. Remove the 'decoratorsBeforeExport: true' option to use the 'export @decorator class {}' syntax.\",\n DecoratorsBeforeAfterExport:\n \"Decorators can be placed *either* before or after the 'export' keyword, but not in both locations at the same time.\",\n DecoratorConstructor:\n \"Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?\",\n DecoratorExportClass:\n \"Decorators must be placed *after* the 'export' keyword. Remove the 'decoratorsBeforeExport: false' option to use the '@decorator export class {}' syntax.\",\n DecoratorSemicolon: \"Decorators must not be followed by a semicolon.\",\n DecoratorStaticBlock: \"Decorators can't be used with a static block.\",\n DeferImportRequiresNamespace:\n 'Only `import defer * as x from \"./module\"` is valid.',\n DeletePrivateField: \"Deleting a private field is not allowed.\",\n DestructureNamedImport:\n \"ES2015 named imports do not destructure. Use another statement for destructuring after the import.\",\n DuplicateConstructor: \"Duplicate constructor in the same class.\",\n DuplicateDefaultExport: \"Only one default export allowed per module.\",\n DuplicateExport: ({ exportName }: { exportName: string }) =>\n `\\`${exportName}\\` has already been exported. Exported identifiers must be unique.`,\n DuplicateProto: \"Redefinition of __proto__ property.\",\n DuplicateRegExpFlags: \"Duplicate regular expression flag.\",\n ElementAfterRest: \"Rest element must be last element.\",\n EscapedCharNotAnIdentifier: \"Invalid Unicode escape.\",\n ExportBindingIsString: ({\n localName,\n exportName,\n }: {\n localName: string;\n exportName: string;\n }) =>\n `A string literal cannot be used as an exported binding without \\`from\\`.\\n- Did you mean \\`export { '${localName}' as '${exportName}' } from 'some-module'\\`?`,\n ExportDefaultFromAsIdentifier:\n \"'from' is not allowed as an identifier after 'export default'.\",\n\n ForInOfLoopInitializer: ({\n type,\n }: {\n type: \"ForInStatement\" | \"ForOfStatement\";\n }) =>\n `'${\n type === \"ForInStatement\" ? \"for-in\" : \"for-of\"\n }' loop variable declaration may not have an initializer.`,\n ForInUsing: \"For-in loop may not start with 'using' declaration.\",\n\n ForOfAsync: \"The left-hand side of a for-of loop may not be 'async'.\",\n ForOfLet: \"The left-hand side of a for-of loop may not start with 'let'.\",\n GeneratorInSingleStatementContext:\n \"Generators can only be declared at the top level or inside a block.\",\n\n IllegalBreakContinue: ({\n type,\n }: {\n type: \"BreakStatement\" | \"ContinueStatement\";\n }) => `Unsyntactic ${type === \"BreakStatement\" ? \"break\" : \"continue\"}.`,\n\n IllegalLanguageModeDirective:\n \"Illegal 'use strict' directive in function with non-simple parameter list.\",\n IllegalReturn: \"'return' outside of function.\",\n ImportAttributesUseAssert:\n \"The `assert` keyword in import attributes is deprecated and it has been replaced by the `with` keyword. You can enable the `deprecatedImportAssert` parser plugin to suppress this error.\",\n ImportBindingIsString: ({ importName }: { importName: string }) =>\n `A string literal cannot be used as an imported binding.\\n- Did you mean \\`import { \"${importName}\" as foo }\\`?`,\n ImportCallArity: `\\`import()\\` requires exactly one or two arguments.`,\n ImportCallNotNewExpression: \"Cannot use new with import(...).\",\n ImportCallSpreadArgument: \"`...` is not allowed in `import()`.\",\n ImportJSONBindingNotDefault:\n \"A JSON module can only be imported with `default`.\",\n ImportReflectionHasAssertion: \"`import module x` cannot have assertions.\",\n ImportReflectionNotBinding:\n 'Only `import module x from \"./module\"` is valid.',\n IncompatibleRegExpUVFlags:\n \"The 'u' and 'v' regular expression flags cannot be enabled at the same time.\",\n InvalidBigIntLiteral: \"Invalid BigIntLiteral.\",\n InvalidCodePoint: \"Code point out of bounds.\",\n InvalidCoverDiscardElement:\n \"'void' must be followed by an expression when not used in a binding position.\",\n InvalidCoverInitializedName: \"Invalid shorthand property initializer.\",\n InvalidDecimal: \"Invalid decimal.\",\n InvalidDigit: ({ radix }: { radix: number }) =>\n `Expected number in radix ${radix}.`,\n InvalidEscapeSequence: \"Bad character escape sequence.\",\n InvalidEscapeSequenceTemplate: \"Invalid escape sequence in template.\",\n InvalidEscapedReservedWord: ({ reservedWord }: { reservedWord: string }) =>\n `Escape sequence in keyword ${reservedWord}.`,\n InvalidIdentifier: ({ identifierName }: { identifierName: string }) =>\n `Invalid identifier ${identifierName}.`,\n InvalidLhs: ({ ancestor }: { ancestor: LValAncestor }) =>\n `Invalid left-hand side in ${toNodeDescription(ancestor)}.`,\n InvalidLhsBinding: ({ ancestor }: { ancestor: LValAncestor }) =>\n `Binding invalid left-hand side in ${toNodeDescription(ancestor)}.`,\n InvalidLhsOptionalChaining: ({ ancestor }: { ancestor: LValAncestor }) =>\n `Invalid optional chaining in the left-hand side of ${toNodeDescription(\n ancestor,\n )}.`,\n InvalidNumber: \"Invalid number.\",\n InvalidOrMissingExponent:\n \"Floating-point numbers require a valid exponent after the 'e'.\",\n InvalidOrUnexpectedToken: ({ unexpected }: { unexpected: string }) =>\n `Unexpected character '${unexpected}'.`,\n InvalidParenthesizedAssignment: \"Invalid parenthesized assignment pattern.\",\n InvalidPrivateFieldResolution: ({\n identifierName,\n }: {\n identifierName: string;\n }) => `Private name #${identifierName} is not defined.`,\n InvalidPropertyBindingPattern: \"Binding member expression.\",\n InvalidRecordProperty:\n \"Only properties and spread elements are allowed in record definitions.\",\n InvalidRestAssignmentPattern: \"Invalid rest operator's argument.\",\n LabelRedeclaration: ({ labelName }: { labelName: string }) =>\n `Label '${labelName}' is already declared.`,\n LetInLexicalBinding: \"'let' is disallowed as a lexically bound name.\",\n LineTerminatorBeforeArrow: \"No line break is allowed before '=>'.\",\n MalformedRegExpFlags: \"Invalid regular expression flag.\",\n MissingClassName: \"A class name is required.\",\n MissingEqInAssignment:\n \"Only '=' operator can be used for specifying default value.\",\n MissingSemicolon: \"Missing semicolon.\",\n MissingPlugin: ({ missingPlugin }: { missingPlugin: [string] }) =>\n `This experimental syntax requires enabling the parser plugin: ${missingPlugin\n .map(name => JSON.stringify(name))\n .join(\", \")}.`,\n // FIXME: Would be nice to make this \"missingPlugins\" instead.\n // Also, seems like we can drop the \"(s)\" from the message and just make it \"s\".\n MissingOneOfPlugins: ({ missingPlugin }: { missingPlugin: string[] }) =>\n `This experimental syntax requires enabling one of the following parser plugin(s): ${missingPlugin\n .map(name => JSON.stringify(name))\n .join(\", \")}.`,\n MissingUnicodeEscape: \"Expecting Unicode escape sequence \\\\uXXXX.\",\n MixingCoalesceWithLogical:\n \"Nullish coalescing operator(??) requires parens when mixing with logical operators.\",\n ModuleAttributeDifferentFromType:\n \"The only accepted module attribute is `type`.\",\n ModuleAttributeInvalidValue:\n \"Only string literals are allowed as module attribute values.\",\n ModuleAttributesWithDuplicateKeys: ({ key }: { key: string }) =>\n `Duplicate key \"${key}\" is not allowed in module attributes.`,\n ModuleExportNameHasLoneSurrogate: ({\n surrogateCharCode,\n }: {\n surrogateCharCode: number;\n }) =>\n `An export name cannot include a lone surrogate, found '\\\\u${surrogateCharCode.toString(\n 16,\n )}'.`,\n ModuleExportUndefined: ({ localName }: { localName: string }) =>\n `Export '${localName}' is not defined.`,\n MultipleDefaultsInSwitch: \"Multiple default clauses.\",\n NewlineAfterThrow: \"Illegal newline after throw.\",\n NoCatchOrFinally: \"Missing catch or finally clause.\",\n NumberIdentifier: \"Identifier directly after number.\",\n NumericSeparatorInEscapeSequence:\n \"Numeric separators are not allowed inside unicode escape sequences or hex escape sequences.\",\n ObsoleteAwaitStar:\n \"'await*' has been removed from the async functions proposal. Use Promise.all() instead.\",\n OptionalChainingNoNew:\n \"Constructors in/after an Optional Chain are not allowed.\",\n OptionalChainingNoTemplate:\n \"Tagged Template Literals are not allowed in optionalChain.\",\n OverrideOnConstructor:\n \"'override' modifier cannot appear on a constructor declaration.\",\n ParamDupe: \"Argument name clash.\",\n PatternHasAccessor: \"Object pattern can't contain getter or setter.\",\n PatternHasMethod: \"Object pattern can't contain methods.\",\n PrivateInExpectedIn: ({ identifierName }: { identifierName: string }) =>\n `Private names are only allowed in property accesses (\\`obj.#${identifierName}\\`) or in \\`in\\` expressions (\\`#${identifierName} in obj\\`).`,\n PrivateNameRedeclaration: ({ identifierName }: { identifierName: string }) =>\n `Duplicate private name #${identifierName}.`,\n RecordExpressionBarIncorrectEndSyntaxType:\n \"Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\",\n RecordExpressionBarIncorrectStartSyntaxType:\n \"Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\",\n RecordExpressionHashIncorrectStartSyntaxType:\n \"Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.\",\n RecordNoProto: \"'__proto__' is not allowed in Record expressions.\",\n RestTrailingComma: \"Unexpected trailing comma after rest element.\",\n SloppyFunction:\n \"In non-strict mode code, functions can only be declared at top level or inside a block.\",\n SloppyFunctionAnnexB:\n \"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement.\",\n SourcePhaseImportRequiresDefault:\n 'Only `import source x from \"./module\"` is valid.',\n StaticPrototype: \"Classes may not have static property named prototype.\",\n SuperNotAllowed:\n \"`super()` is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?\",\n SuperPrivateField: \"Private fields can't be accessed on super.\",\n TrailingDecorator: \"Decorators must be attached to a class element.\",\n TupleExpressionBarIncorrectEndSyntaxType:\n \"Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\",\n TupleExpressionBarIncorrectStartSyntaxType:\n \"Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\",\n TupleExpressionHashIncorrectStartSyntaxType:\n \"Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.\",\n UnexpectedArgumentPlaceholder: \"Unexpected argument placeholder.\",\n UnexpectedAwaitAfterPipelineBody:\n 'Unexpected \"await\" after pipeline body; await must have parentheses in minimal proposal.',\n UnexpectedDigitAfterHash: \"Unexpected digit after hash token.\",\n UnexpectedImportExport:\n \"'import' and 'export' may only appear at the top level.\",\n UnexpectedKeyword: ({ keyword }: { keyword: string }) =>\n `Unexpected keyword '${keyword}'.`,\n UnexpectedLeadingDecorator:\n \"Leading decorators must be attached to a class declaration.\",\n UnexpectedLexicalDeclaration:\n \"Lexical declaration cannot appear in a single-statement context.\",\n UnexpectedNewTarget:\n \"`new.target` can only be used in functions or class properties.\",\n UnexpectedNumericSeparator:\n \"A numeric separator is only allowed between two digits.\",\n UnexpectedPrivateField: \"Unexpected private name.\",\n UnexpectedReservedWord: ({ reservedWord }: { reservedWord: string }) =>\n `Unexpected reserved word '${reservedWord}'.`,\n UnexpectedSuper: \"'super' is only allowed in object methods and classes.\",\n UnexpectedToken: ({\n expected,\n unexpected,\n }: {\n expected?: string | null;\n unexpected?: string | null;\n }) =>\n `Unexpected token${unexpected ? ` '${unexpected}'.` : \"\"}${\n expected ? `, expected \"${expected}\"` : \"\"\n }`,\n UnexpectedTokenUnaryExponentiation:\n \"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.\",\n UnexpectedUsingDeclaration:\n \"Using declaration cannot appear in the top level when source type is `script` or in the bare case statement.\",\n UnexpectedVoidPattern: \"Unexpected void binding.\",\n UnsupportedBind: \"Binding should be performed on object property.\",\n UnsupportedDecoratorExport:\n \"A decorated export must export a class declaration.\",\n UnsupportedDefaultExport:\n \"Only expressions, functions or classes are allowed as the `default` export.\",\n UnsupportedImport:\n \"`import` can only be used in `import()` or `import.meta`.\",\n UnsupportedMetaProperty: ({\n target,\n onlyValidPropertyName,\n }: {\n target: string;\n onlyValidPropertyName: string;\n }) =>\n `The only valid meta property for ${target} is ${target}.${onlyValidPropertyName}.`,\n UnsupportedParameterDecorator:\n \"Decorators cannot be used to decorate parameters.\",\n UnsupportedPropertyDecorator:\n \"Decorators cannot be used to decorate object literal properties.\",\n UnsupportedSuper:\n \"'super' can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop]).\",\n UnterminatedComment: \"Unterminated comment.\",\n UnterminatedRegExp: \"Unterminated regular expression.\",\n UnterminatedString: \"Unterminated string constant.\",\n UnterminatedTemplate: \"Unterminated template.\",\n UsingDeclarationExport: \"Using declaration cannot be exported.\",\n UsingDeclarationHasBindingPattern:\n \"Using declaration cannot have destructuring patterns.\",\n VarRedeclaration: ({ identifierName }: { identifierName: string }) =>\n `Identifier '${identifierName}' has already been declared.`,\n VoidPatternCatchClauseParam:\n \"A void binding can not be the catch clause parameter. Use `try { ... } catch { ... }` if you want to discard the caught error.\",\n VoidPatternInitializer: \"A void binding may not have an initializer.\",\n YieldBindingIdentifier:\n \"Can not use 'yield' as identifier inside a generator.\",\n YieldInParameter: \"Yield expression is not allowed in formal parameters.\",\n YieldNotInGeneratorFunction:\n \"'yield' is only allowed within generator functions.\",\n ZeroDigitNumericSeparator:\n \"Numeric separator can not be used after leading 0.\",\n} satisfies ParseErrorTemplates;\n","import type { ParseErrorTemplates } from \"../parse-error\";\n\nexport default {\n StrictDelete: \"Deleting local variable in strict mode.\",\n\n // `referenceName` is the StringValue[1] of an IdentifierReference[2], which\n // is represented as just an `Identifier`[3] in the Babel AST.\n // 1. https://tc39.es/ecma262/#sec-static-semantics-stringvalue\n // 2. https://tc39.es/ecma262/#prod-IdentifierReference\n // 3. https://github.com/babel/babel/blob/main/packages/babel-parser/ast/spec.md#identifier\n StrictEvalArguments: ({ referenceName }: { referenceName: string }) =>\n `Assigning to '${referenceName}' in strict mode.`,\n\n // `bindingName` is the StringValue[1] of a BindingIdentifier[2], which is\n // represented as just an `Identifier`[3] in the Babel AST.\n // 1. https://tc39.es/ecma262/#sec-static-semantics-stringvalue\n // 2. https://tc39.es/ecma262/#prod-BindingIdentifier\n // 3. https://github.com/babel/babel/blob/main/packages/babel-parser/ast/spec.md#identifier\n StrictEvalArgumentsBinding: ({ bindingName }: { bindingName: string }) =>\n `Binding '${bindingName}' in strict mode.`,\n\n StrictFunction:\n \"In strict mode code, functions can only be declared at top level or inside a block.\",\n\n StrictNumericEscape: \"The only valid numeric escape in strict mode is '\\\\0'.\",\n\n StrictOctalLiteral: \"Legacy octal literals are not allowed in strict mode.\",\n\n StrictWith: \"'with' in strict mode.\",\n} satisfies ParseErrorTemplates;\n","import type { ParseErrorTemplates } from \"../parse-error.ts\";\n\nexport default {\n ParseExpressionEmptyInput:\n \"Unexpected parseExpression() input: The input is empty or contains only comments.\",\n ParseExpressionExpectsEOF: ({ unexpected }: { unexpected: number }) =>\n `Unexpected parseExpression() input: The input should contain exactly one expression, but the first expression is followed by the unexpected character \\`${String.fromCodePoint(unexpected)}\\`.`,\n} satisfies ParseErrorTemplates;\n","import type { ParseErrorTemplates } from \"../parse-error.ts\";\nimport toNodeDescription from \"./to-node-description.ts\";\n\nexport const UnparenthesizedPipeBodyDescriptions = new Set([\n \"ArrowFunctionExpression\",\n \"AssignmentExpression\",\n \"ConditionalExpression\",\n \"YieldExpression\",\n] as const);\n\ntype GetSetMemberType> =\n T extends Set ? M : unknown;\n\nexport type UnparenthesizedPipeBodyTypes = GetSetMemberType<\n typeof UnparenthesizedPipeBodyDescriptions\n>;\n\nexport default {\n // This error is only used by the smart-mix proposal\n PipeBodyIsTighter:\n \"Unexpected yield after pipeline body; any yield expression acting as Hack-style pipe body must be parenthesized due to its loose operator precedence.\",\n PipeTopicRequiresHackPipes: process.env.BABEL_8_BREAKING\n ? 'Topic references are only supported when using the `\"proposal\": \"hack\"` version of the pipeline proposal.'\n : 'Topic reference is used, but the pipelineOperator plugin was not passed a \"proposal\": \"hack\" or \"smart\" option.',\n PipeTopicUnbound:\n \"Topic reference is unbound; it must be inside a pipe body.\",\n PipeTopicUnconfiguredToken: ({ token }: { token: string }) =>\n `Invalid topic token ${token}. In order to use ${token} as a topic reference, the pipelineOperator plugin must be configured with { \"proposal\": \"hack\", \"topicToken\": \"${token}\" }.`,\n PipeTopicUnused:\n \"Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.\",\n PipeUnparenthesizedBody: ({ type }: { type: UnparenthesizedPipeBodyTypes }) =>\n `Hack-style pipe body cannot be an unparenthesized ${toNodeDescription({\n type,\n })}; please wrap it in parentheses.`,\n\n ...(process.env.BABEL_8_BREAKING\n ? {}\n : {\n // Messages whose codes start with “Pipeline” or “PrimaryTopic”\n // are retained for backwards compatibility\n // with the deprecated smart-mix pipe operator proposal plugin.\n // They are subject to removal in a future major version.\n PipelineBodyNoArrow:\n 'Unexpected arrow \"=>\" after pipeline body; arrow function in pipeline body must be parenthesized.',\n PipelineBodySequenceExpression:\n \"Pipeline body may not be a comma-separated sequence expression.\",\n PipelineHeadSequenceExpression:\n \"Pipeline head should not be a comma-separated sequence expression.\",\n PipelineTopicUnused:\n \"Pipeline is in topic style but does not use topic reference.\",\n PrimaryTopicNotAllowed:\n \"Topic reference was used in a lexical context without topic binding.\",\n PrimaryTopicRequiresSmartPipeline:\n 'Topic reference is used, but the pipelineOperator plugin was not passed a \"proposal\": \"hack\" or \"smart\" option.',\n }),\n} satisfies ParseErrorTemplates;\n","import { Position } from \"./util/location.ts\";\n\ntype SyntaxPlugin =\n | \"flow\"\n | \"typescript\"\n | \"jsx\"\n | \"pipelineOperator\"\n | \"placeholders\";\n\ntype ParseErrorCode =\n | \"BABEL_PARSER_SYNTAX_ERROR\"\n | \"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED\";\n\n// Babel uses \"normal\" SyntaxErrors for it's errors, but adds some extra\n// functionality. This functionality is defined in the\n// `ParseErrorSpecification` interface below. We may choose to change to someday\n// give our errors their own full-blown class, but until then this allow us to\n// keep all the desirable properties of SyntaxErrors (like their name in stack\n// traces, etc.), and also allows us to punt on any publicly facing\n// class-hierarchy decisions until Babel 8.\ninterface ParseErrorSpecification {\n // Look, these *could* be readonly, but then Flow complains when we initially\n // set them. We could do a whole dance and make a special interface that's not\n // readonly for when we create the error, then cast it to the readonly\n // interface for public use, but the previous implementation didn't have them\n // as readonly, so let's just not worry about it for now.\n code: ParseErrorCode;\n reasonCode: string;\n syntaxPlugin?: SyntaxPlugin;\n missingPlugin?: string | string[];\n loc: Position;\n details: ErrorDetails;\n\n // We should consider removing this as it now just contains the same\n // information as `loc.index`.\n pos: number;\n}\n\nexport type ParseError = SyntaxError &\n ParseErrorSpecification;\n\n// By `ParseErrorConstructor`, we mean something like the new-less style\n// `ErrorConstructor`[1], since `ParseError`'s are not themselves actually\n// separate classes from `SyntaxError`'s.\n//\n// 1. https://github.com/microsoft/TypeScript/blob/v4.5.5/lib/lib.es5.d.ts#L1027\nexport type ParseErrorConstructor = (\n loc: Position,\n details: ErrorDetails,\n) => ParseError;\n\ntype ToMessage = (self: ErrorDetails) => string;\n\ntype ParseErrorCredentials = {\n code: string;\n reasonCode: string;\n syntaxPlugin?: SyntaxPlugin;\n toMessage: ToMessage;\n};\n\nfunction defineHidden(obj: object, key: string, value: unknown) {\n Object.defineProperty(obj, key, {\n enumerable: false,\n configurable: true,\n value,\n });\n}\n\nfunction toParseErrorConstructor({\n toMessage,\n code,\n reasonCode,\n syntaxPlugin,\n}: ParseErrorCredentials): ParseErrorConstructor {\n const hasMissingPlugin =\n reasonCode === \"MissingPlugin\" || reasonCode === \"MissingOneOfPlugins\";\n\n if (!process.env.BABEL_8_BREAKING) {\n const oldReasonCodes: Record = {\n AccessorCannotDeclareThisParameter: \"AccesorCannotDeclareThisParameter\",\n AccessorCannotHaveTypeParameters: \"AccesorCannotHaveTypeParameters\",\n ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference:\n \"ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference\",\n SetAccessorCannotHaveOptionalParameter:\n \"SetAccesorCannotHaveOptionalParameter\",\n SetAccessorCannotHaveRestParameter: \"SetAccesorCannotHaveRestParameter\",\n SetAccessorCannotHaveReturnType: \"SetAccesorCannotHaveReturnType\",\n };\n if (oldReasonCodes[reasonCode]) {\n reasonCode = oldReasonCodes[reasonCode];\n }\n }\n\n return function constructor(loc: Position, details: ErrorDetails) {\n const error: ParseError = new SyntaxError() as any;\n\n error.code = code as ParseErrorCode;\n error.reasonCode = reasonCode;\n error.loc = loc;\n error.pos = loc.index;\n\n error.syntaxPlugin = syntaxPlugin;\n if (hasMissingPlugin) {\n error.missingPlugin = (details as any).missingPlugin;\n }\n\n type Overrides = {\n loc?: Position;\n details?: ErrorDetails;\n };\n defineHidden(error, \"clone\", function clone(overrides: Overrides = {}) {\n const { line, column, index } = overrides.loc ?? loc;\n return constructor(new Position(line, column, index), {\n ...details,\n ...overrides.details,\n });\n });\n\n defineHidden(error, \"details\", details);\n\n Object.defineProperty(error, \"message\", {\n configurable: true,\n get(this: ParseError): string {\n const message = `${toMessage(details)} (${loc.line}:${loc.column})`;\n this.message = message;\n return message;\n },\n set(value: string) {\n Object.defineProperty(this, \"message\", { value, writable: true });\n },\n });\n\n return error;\n };\n}\n\ntype ParseErrorTemplate =\n | string\n | ToMessage\n | { message: string | ToMessage; code?: ParseErrorCode };\n\nexport type ParseErrorTemplates = Record;\n\n// This is the templated form of `ParseErrorEnum`.\n//\n// Note: We could factor out the return type calculation into something like\n// `ParseErrorConstructor`, and then we could\n// reuse it in the non-templated form of `ParseErrorEnum`, but TypeScript\n// doesn't seem to drill down that far when showing you the computed type of\n// an object in an editor, so we'll leave it inlined for now.\nexport function ParseErrorEnum(a: TemplateStringsArray): <\n T extends ParseErrorTemplates,\n>(\n parseErrorTemplates: T,\n) => {\n [K in keyof T]: ParseErrorConstructor<\n T[K] extends { message: string | ToMessage }\n ? T[K][\"message\"] extends ToMessage\n ? Parameters[0]\n : object\n : T[K] extends ToMessage\n ? Parameters[0]\n : object\n >;\n};\n\nexport function ParseErrorEnum(\n parseErrorTemplates: T,\n syntaxPlugin?: SyntaxPlugin,\n): {\n [K in keyof T]: ParseErrorConstructor<\n T[K] extends { message: string | ToMessage }\n ? T[K][\"message\"] extends ToMessage\n ? Parameters[0]\n : object\n : T[K] extends ToMessage\n ? Parameters[0]\n : object\n >;\n};\n\n// You call `ParseErrorEnum` with a mapping from `ReasonCode`'s to either:\n//\n// 1. a static error message,\n// 2. `toMessage` functions that define additional necessary `details` needed by\n// the `ParseError`, or\n// 3. Objects that contain a `message` of one of the above and overridden `code`\n// and/or `reasonCode`:\n//\n// ParseErrorEnum `optionalSyntaxPlugin` ({\n// ErrorWithStaticMessage: \"message\",\n// ErrorWithDynamicMessage: ({ type } : { type: string }) => `${type}`),\n// ErrorWithOverriddenCodeAndOrReasonCode: {\n// message: ({ type }: { type: string }) => `${type}`),\n// code: \"AN_ERROR_CODE\",\n// ...(BABEL_8_BREAKING ? { } : { reasonCode: \"CustomErrorReasonCode\" })\n// }\n// });\n//\nexport function ParseErrorEnum(\n argument: TemplateStringsArray | ParseErrorTemplates,\n syntaxPlugin?: SyntaxPlugin,\n) {\n // If the first parameter is an array, that means we were called with a tagged\n // template literal. Extract the syntaxPlugin from this, and call again in\n // the \"normalized\" form.\n if (Array.isArray(argument)) {\n return (parseErrorTemplates: ParseErrorTemplates) =>\n ParseErrorEnum(parseErrorTemplates, argument[0]);\n }\n\n const ParseErrorConstructors = {} as Record<\n string,\n ParseErrorConstructor\n >;\n\n for (const reasonCode of Object.keys(argument)) {\n const template = (argument as ParseErrorTemplates)[reasonCode];\n const { message, ...rest } =\n typeof template === \"string\"\n ? { message: () => template }\n : typeof template === \"function\"\n ? { message: template }\n : template;\n const toMessage = typeof message === \"string\" ? () => message : message;\n\n ParseErrorConstructors[reasonCode] = toParseErrorConstructor({\n code: \"BABEL_PARSER_SYNTAX_ERROR\",\n reasonCode,\n toMessage,\n ...(syntaxPlugin ? { syntaxPlugin } : {}),\n ...rest,\n });\n }\n\n return ParseErrorConstructors;\n}\n\nimport ModuleErrors from \"./parse-error/module-errors.ts\";\nimport StandardErrors from \"./parse-error/standard-errors.ts\";\nimport StrictModeErrors from \"./parse-error/strict-mode-errors.ts\";\nimport ParseExpressionErrors from \"./parse-error/parse-expression-errors.ts\";\nimport PipelineOperatorErrors from \"./parse-error/pipeline-operator-errors.ts\";\n\nexport const Errors = {\n ...ParseErrorEnum(ModuleErrors),\n ...ParseErrorEnum(StandardErrors),\n ...ParseErrorEnum(StrictModeErrors),\n ...ParseErrorEnum(ParseExpressionErrors),\n ...ParseErrorEnum`pipelineOperator`(PipelineOperatorErrors),\n};\n\nexport type { LValAncestor } from \"./parse-error/standard-errors.ts\";\n","import type { Plugin } from \"./plugin-utils.ts\";\n\n// A second optional argument can be given to further configure\n// the parser process. These options are recognized:\n\nexport type SourceType = \"script\" | \"commonjs\" | \"module\" | \"unambiguous\";\n\nexport interface Options {\n /**\n * By default, import and export declarations can only appear at a program's top level.\n * Setting this option to true allows them anywhere where a statement is allowed.\n */\n allowImportExportEverywhere?: boolean;\n\n /**\n * By default, await use is not allowed outside of an async function.\n * Set this to true to accept such code.\n */\n allowAwaitOutsideFunction?: boolean;\n\n /**\n * By default, a return statement at the top level raises an error.\n * Set this to true to accept such code.\n */\n allowReturnOutsideFunction?: boolean;\n\n /**\n * By default, new.target use is not allowed outside of a function or class.\n * Set this to true to accept such code.\n */\n allowNewTargetOutsideFunction?: boolean;\n\n /**\n * By default, super calls are not allowed outside of a method.\n * Set this to true to accept such code.\n */\n allowSuperOutsideMethod?: boolean;\n\n /**\n * By default, exported identifiers must refer to a declared variable.\n * Set this to true to allow export statements to reference undeclared variables.\n */\n allowUndeclaredExports?: boolean;\n\n /**\n * By default, yield use is not allowed outside of a generator function.\n * Set this to true to accept such code.\n */\n\n allowYieldOutsideFunction?: boolean;\n\n /**\n * By default, Babel parser JavaScript code according to Annex B syntax.\n * Set this to `false` to disable such behavior.\n */\n annexB?: boolean;\n\n /**\n * By default, Babel attaches comments to adjacent AST nodes.\n * When this option is set to false, comments are not attached.\n * It can provide up to 30% performance improvement when the input code has many comments.\n * @babel/eslint-parser will set it for you.\n * It is not recommended to use attachComment: false with Babel transform,\n * as doing so removes all the comments in output code, and renders annotations such as\n * /* istanbul ignore next *\\/ nonfunctional.\n */\n attachComment?: boolean;\n\n /**\n * By default, Babel always throws an error when it finds some invalid code.\n * When this option is set to true, it will store the parsing error and\n * try to continue parsing the invalid input file.\n */\n errorRecovery?: boolean;\n\n /**\n * Indicate the mode the code should be parsed in.\n * Can be one of \"script\", \"commonjs\", \"module\", or \"unambiguous\". Defaults to \"script\".\n * \"unambiguous\" will make @babel/parser attempt to guess, based on the presence\n * of ES6 import or export statements.\n * Files with ES6 imports and exports are considered \"module\" and are otherwise \"script\".\n *\n * Use \"commonjs\" to parse code that is intended to be run in a CommonJS environment such as Node.js.\n */\n sourceType?: SourceType;\n\n /**\n * Correlate output AST nodes with their source filename.\n * Useful when generating code and source maps from the ASTs of multiple input files.\n */\n sourceFilename?: string;\n\n /**\n * By default, all source indexes start from 0.\n * You can provide a start index to alternatively start with.\n * Useful for integration with other source tools.\n */\n startIndex?: number;\n\n /**\n * By default, the first line of code parsed is treated as line 1.\n * You can provide a line number to alternatively start with.\n * Useful for integration with other source tools.\n */\n startLine?: number;\n\n /**\n * By default, the parsed code is treated as if it starts from line 1, column 0.\n * You can provide a column number to alternatively start with.\n * Useful for integration with other source tools.\n */\n startColumn?: number;\n\n /**\n * Array containing the plugins that you want to enable.\n */\n plugins?: Plugin[];\n\n /**\n * Should the parser work in strict mode.\n * Defaults to true if sourceType === 'module'. Otherwise, false.\n */\n strictMode?: boolean;\n\n /**\n * Adds a ranges property to each node: [node.start, node.end]\n */\n ranges?: boolean;\n\n /**\n * Adds all parsed tokens to a tokens property on the File node.\n */\n tokens?: boolean;\n\n /**\n * By default, the parser adds information about parentheses by setting\n * `extra.parenthesized` to `true` as needed.\n * When this option is `true` the parser creates `ParenthesizedExpression`\n * AST nodes instead of using the `extra` property.\n */\n createParenthesizedExpressions?: boolean;\n\n /**\n * The default is false in Babel 7 and true in Babel 8\n * Set this to true to parse it as an `ImportExpression` node.\n * Otherwise `import(foo)` is parsed as `CallExpression(Import, [Identifier(foo)])`.\n */\n createImportExpressions?: boolean;\n}\n\nexport const enum OptionFlags {\n AllowAwaitOutsideFunction = 1 << 0,\n AllowReturnOutsideFunction = 1 << 1,\n AllowNewTargetOutsideFunction = 1 << 2,\n AllowImportExportEverywhere = 1 << 3,\n AllowSuperOutsideMethod = 1 << 4,\n AllowYieldOutsideFunction = 1 << 5,\n AllowUndeclaredExports = 1 << 6,\n Ranges = 1 << 7,\n Tokens = 1 << 8,\n CreateImportExpressions = 1 << 9,\n CreateParenthesizedExpressions = 1 << 10,\n ErrorRecovery = 1 << 11,\n AttachComment = 1 << 12,\n AnnexB = 1 << 13,\n}\n\ntype KeepOptionalKeys = \"sourceFilename\" | \"strictMode\";\nexport type OptionsWithDefaults = Omit, KeepOptionalKeys> &\n Pick;\n\nfunction createDefaultOptions(): OptionsWithDefaults {\n return {\n // Source type (\"script\" or \"module\") for different semantics\n sourceType: \"script\",\n // Source filename.\n sourceFilename: undefined,\n // Index (0-based) from which to start counting source. Useful for\n // integration with other tools.\n startIndex: 0,\n // Column (0-based) from which to start counting source. Useful for\n // integration with other tools.\n startColumn: 0,\n // Line (1-based) from which to start counting source. Useful for\n // integration with other tools.\n startLine: 1,\n // When enabled, await at the top level is not considered an\n // error.\n allowAwaitOutsideFunction: false,\n // When enabled, a return at the top level is not considered an\n // error.\n allowReturnOutsideFunction: false,\n // When enabled, new.target outside a function or class is not\n // considered an error.\n allowNewTargetOutsideFunction: false,\n // When enabled, import/export statements are not constrained to\n // appearing at the top of the program.\n allowImportExportEverywhere: false,\n // When enabled, super outside a method is not considered an error.\n allowSuperOutsideMethod: false,\n // When enabled, export statements can reference undeclared variables.\n allowUndeclaredExports: false,\n allowYieldOutsideFunction: false,\n // An array of plugins to enable\n plugins: [],\n // TODO\n strictMode: undefined,\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 // Adds all parsed tokens to a `tokens` property on the `File` node\n tokens: false,\n // Whether to create ImportExpression AST nodes (if false\n // `import(foo)` will be parsed as CallExpression(Import, [Identifier(foo)])\n createImportExpressions: process.env.BABEL_8_BREAKING ? true : false,\n // Whether to create ParenthesizedExpression AST nodes (if false\n // the parser sets extra.parenthesized on the expression nodes instead).\n createParenthesizedExpressions: false,\n // When enabled, errors are attached to the AST instead of being directly thrown.\n // Some errors will still throw, because @babel/parser can't always recover.\n errorRecovery: false,\n // When enabled, comments will be attached to adjacent AST nodes as one of\n // `leadingComments`, `trailingComments` and `innerComments`. The comment attachment\n // is vital to preserve comments after transform. If you don't print AST back,\n // consider set this option to `false` for performance\n attachComment: true,\n // When enabled, the parser will support Annex B syntax.\n // https://tc39.es/ecma262/#sec-additional-ecmascript-features-for-web-browsers\n annexB: true,\n };\n}\n\n// Interpret and default an options object\n\nexport function getOptions(opts?: Options | null): OptionsWithDefaults {\n // https://github.com/babel/babel/pull/16918\n // `options` is accessed frequently, please make sure it is a fast object.\n // `%ToFastProperties` can make it a fast object, but the performance is the same as the slow object.\n const options: any = createDefaultOptions();\n\n if (opts == null) {\n return options;\n }\n if (opts.annexB != null && opts.annexB !== false) {\n throw new Error(\"The `annexB` option can only be set to `false`.\");\n }\n\n for (const key of Object.keys(options) as (keyof Options)[]) {\n if (opts[key] != null) options[key] = opts[key];\n }\n\n if (options.startLine === 1) {\n if (opts.startIndex == null && options.startColumn > 0) {\n options.startIndex = options.startColumn;\n } else if (opts.startColumn == null && options.startIndex > 0) {\n options.startColumn = options.startIndex;\n }\n } else if (opts.startColumn == null || opts.startIndex == null) {\n if (opts.startIndex != null || process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"With a `startLine > 1` you must also specify `startIndex` and `startColumn`.\",\n );\n }\n }\n\n if (options.sourceType === \"commonjs\") {\n if (opts.allowAwaitOutsideFunction != null) {\n throw new Error(\n \"The `allowAwaitOutsideFunction` option cannot be used with `sourceType: 'commonjs'`.\",\n );\n }\n if (opts.allowReturnOutsideFunction != null) {\n throw new Error(\n \"`sourceType: 'commonjs'` implies `allowReturnOutsideFunction: true`, please remove the `allowReturnOutsideFunction` option or use `sourceType: 'script'`.\",\n );\n }\n if (opts.allowNewTargetOutsideFunction != null) {\n throw new Error(\n \"`sourceType: 'commonjs'` implies `allowNewTargetOutsideFunction: true`, please remove the `allowNewTargetOutsideFunction` option or use `sourceType: 'script'`.\",\n );\n }\n }\n\n return options;\n}\n","import type { TokenType } from \"../tokenizer/types.ts\";\nimport type Parser from \"../parser/index.ts\";\nimport type * as N from \"../types.ts\";\nimport type { Node as NodeType, NodeBase } from \"../types.ts\";\nimport type { Position } from \"../util/location.ts\";\nimport { Errors } from \"../parse-error.ts\";\nimport type { Undone } from \"../parser/node.ts\";\nimport type { BindingFlag } from \"../util/scopeflags.ts\";\nimport { OptionFlags } from \"../options.ts\";\nimport type { ExpressionErrors } from \"../parser/util.ts\";\nimport type { ParseResult, File } from \"../index.ts\";\n\nconst { defineProperty } = Object;\nconst toUnenumerable = (object: any, key: string) => {\n if (object) {\n defineProperty(object, key, { enumerable: false, value: object[key] });\n }\n};\n\nfunction toESTreeLocation(node: any) {\n toUnenumerable(node.loc.start, \"index\");\n toUnenumerable(node.loc.end, \"index\");\n\n return node;\n}\n\nexport default (superClass: typeof Parser) =>\n class ESTreeParserMixin extends superClass implements Parser {\n parse(): ParseResult {\n const file = toESTreeLocation(super.parse());\n\n if (this.optionFlags & OptionFlags.Tokens) {\n file.tokens = file.tokens.map(toESTreeLocation);\n }\n\n return file;\n }\n\n // @ts-expect-error ESTree plugin changes node types\n parseRegExpLiteral({ pattern, flags }): N.EstreeRegExpLiteral {\n let regex: RegExp | null = null;\n try {\n regex = new RegExp(pattern, flags);\n } catch (_) {\n // In environments that don't support these flags value will\n // be null as the regex can't be represented natively.\n }\n const node = this.estreeParseLiteral(regex);\n node.regex = { pattern, flags };\n\n return node;\n }\n\n // @ts-expect-error ESTree plugin changes node types\n parseBigIntLiteral(value: any): N.Node {\n // https://github.com/estree/estree/blob/master/es2020.md#bigintliteral\n let bigInt: bigint | null;\n try {\n bigInt = BigInt(value);\n } catch {\n bigInt = null;\n }\n const node = this.estreeParseLiteral(bigInt);\n node.bigint = String(node.value || value);\n\n return node;\n }\n\n // @ts-expect-error ESTree plugin changes node types\n parseDecimalLiteral(value: any): N.Node {\n // https://github.com/estree/estree/blob/master/experimental/decimal.md\n // todo: use BigDecimal when node supports it.\n const decimal: null = null;\n const node = this.estreeParseLiteral(decimal);\n node.decimal = String(node.value || value);\n\n return node;\n }\n\n estreeParseLiteral(value: any) {\n // @ts-expect-error ESTree plugin changes node types\n return this.parseLiteral(value, \"Literal\");\n }\n\n // @ts-expect-error ESTree plugin changes node types\n parseStringLiteral(value: any): N.Node {\n return this.estreeParseLiteral(value);\n }\n\n parseNumericLiteral(value: any): any {\n return this.estreeParseLiteral(value);\n }\n\n // @ts-expect-error ESTree plugin changes node types\n parseNullLiteral(): N.Node {\n return this.estreeParseLiteral(null);\n }\n\n parseBooleanLiteral(value: boolean): N.BooleanLiteral {\n // @ts-expect-error ESTree plugin changes node types\n return this.estreeParseLiteral(value);\n }\n\n // https://github.com/estree/estree/blob/master/es2020.md#chainexpression\n estreeParseChainExpression(\n node: N.Expression,\n endLoc: Position,\n ): N.EstreeChainExpression {\n const chain = this.startNodeAtNode(node);\n chain.expression = node;\n return this.finishNodeAt(chain, \"ChainExpression\", endLoc);\n }\n\n // Cast a Directive to an ExpressionStatement. Mutates the input Directive.\n directiveToStmt(directive: N.Directive): N.ExpressionStatement {\n const expression = directive.value as any as N.EstreeLiteral;\n // @ts-expect-error delete non-optional properties\n delete directive.value;\n\n this.castNodeTo(expression, \"Literal\");\n expression.raw = expression.extra!.raw;\n expression.value = expression.extra!.expressionValue;\n\n const stmt = this.castNodeTo(directive, \"ExpressionStatement\");\n stmt.expression = expression;\n stmt.directive = expression.extra!.rawValue;\n\n delete expression.extra;\n\n return stmt;\n }\n\n /**\n * The TS-ESLint always define optional AST properties, here we provide the\n * default value for such properties immediately after `finishNode` was invoked.\n * This hook will be implemented by the typescript plugin.\n *\n * Note: This hook should be manually invoked when we change the `type` of a given AST\n * node, to ensure that the optional properties are correctly filled.\n * @param node The AST node finished by finishNode\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n fillOptionalPropertiesForTSESLint(node: NodeType) {}\n\n cloneEstreeStringLiteral(node: N.EstreeLiteral): N.EstreeLiteral {\n const { start, end, loc, range, raw, value } = node;\n const cloned = Object.create(node.constructor.prototype);\n cloned.type = \"Literal\";\n cloned.start = start;\n cloned.end = end;\n cloned.loc = loc;\n cloned.range = range;\n cloned.raw = raw;\n cloned.value = value;\n return cloned;\n }\n\n // ==================================\n // Overrides\n // ==================================\n\n initFunction(node: N.BodilessFunctionOrMethodBase, isAsync: boolean): void {\n super.initFunction(node, isAsync);\n node.expression = false;\n }\n\n checkDeclaration(node: N.Pattern | N.ObjectProperty): void {\n if (node != null && this.isObjectProperty(node)) {\n // @ts-expect-error plugin typings\n this.checkDeclaration((node as unknown as N.EstreeProperty).value);\n } else {\n super.checkDeclaration(node);\n }\n }\n\n getObjectOrClassMethodParams(method: N.ObjectMethod | N.ClassMethod) {\n return (method as unknown as N.EstreeMethodDefinition).value.params;\n }\n\n isValidDirective(stmt: N.Statement): stmt is N.ExpressionStatement {\n return (\n stmt.type === \"ExpressionStatement\" &&\n stmt.expression.type === \"Literal\" &&\n typeof stmt.expression.value === \"string\" &&\n !stmt.expression.extra?.parenthesized\n );\n }\n\n parseBlockBody(\n node: N.BlockStatementLike,\n allowDirectives: boolean | undefined | null,\n topLevel: boolean,\n end: TokenType,\n afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n ): void {\n super.parseBlockBody(\n node,\n allowDirectives,\n topLevel,\n end,\n afterBlockParse,\n );\n\n const directiveStatements = node.directives.map(d =>\n this.directiveToStmt(d),\n );\n // @ts-expect-error estree plugin typings\n node.body = directiveStatements.concat(node.body);\n // @ts-expect-error delete non-optional properties\n delete node.directives;\n }\n\n parsePrivateName(): any {\n const node = super.parsePrivateName();\n if (!process.env.BABEL_8_BREAKING) {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return node;\n }\n }\n return this.convertPrivateNameToPrivateIdentifier(node);\n }\n\n convertPrivateNameToPrivateIdentifier(\n node: N.PrivateName,\n ): N.EstreePrivateIdentifier {\n const name = super.getPrivateNameSV(node);\n // @ts-expect-error delete non-optional properties\n delete node.id;\n // @ts-expect-error mutate AST types\n node.name = name;\n return this.castNodeTo(node, \"PrivateIdentifier\");\n }\n\n // @ts-expect-error ESTree plugin changes node types\n isPrivateName(node: N.Node): node is N.EstreePrivateIdentifier {\n if (!process.env.BABEL_8_BREAKING) {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return super.isPrivateName(node);\n }\n }\n return node.type === \"PrivateIdentifier\";\n }\n\n // @ts-expect-error ESTree plugin changes node types\n getPrivateNameSV(node: N.EstreePrivateIdentifier): string {\n if (!process.env.BABEL_8_BREAKING) {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return super.getPrivateNameSV(node as unknown as N.PrivateName);\n }\n }\n return node.name;\n }\n\n // @ts-expect-error plugin may override interfaces\n parseLiteral(value: any, type: T[\"type\"]): T {\n const node = super.parseLiteral(value, type);\n // @ts-expect-error mutating AST types\n node.raw = node.extra.raw;\n delete node.extra;\n\n return node;\n }\n\n parseFunctionBody(\n node: N.Function,\n allowExpression?: boolean | null,\n isMethod: boolean = false,\n ): void {\n super.parseFunctionBody(node, allowExpression, isMethod);\n node.expression = node.body.type !== \"BlockStatement\";\n }\n\n // @ts-expect-error plugin may override interfaces\n parseMethod<\n T extends N.ClassPrivateMethod | N.ObjectMethod | N.ClassMethod,\n >(\n node: Undone,\n isGenerator: boolean,\n isAsync: boolean,\n isConstructor: boolean,\n allowDirectSuper: boolean,\n type: T[\"type\"],\n inClassScope: boolean = false,\n ):\n | N.EstreeProperty\n | N.EstreeMethodDefinition\n | N.EstreeTSAbstractMethodDefinition {\n let funcNode = this.startNode();\n funcNode.kind = node.kind; // provide kind, so super method correctly sets state\n funcNode = super.parseMethod(\n funcNode,\n isGenerator,\n isAsync,\n isConstructor,\n allowDirectSuper,\n type,\n inClassScope,\n );\n // @ts-expect-error delete non-optional properties\n delete funcNode.kind;\n const { typeParameters } = node;\n if (typeParameters) {\n delete node.typeParameters;\n funcNode.typeParameters = typeParameters;\n this.resetStartLocationFromNode(funcNode, typeParameters);\n }\n const valueNode = this.castNodeTo(\n funcNode as N.MethodLike,\n process.env.BABEL_8_BREAKING &&\n this.hasPlugin(\"typescript\") &&\n !funcNode.body\n ? \"TSEmptyBodyFunctionExpression\"\n : \"FunctionExpression\",\n );\n (\n node as unknown as Undone<\n | N.EstreeProperty\n | N.EstreeMethodDefinition\n | N.EstreeTSAbstractMethodDefinition\n >\n ).value = valueNode;\n if (type === \"ClassPrivateMethod\") {\n node.computed = false;\n }\n if (process.env.BABEL_8_BREAKING && this.hasPlugin(\"typescript\")) {\n // @ts-expect-error todo(flow->ts) property not defined for all types in union\n if (node.abstract) {\n // @ts-expect-error remove abstract from TSAbstractMethodDefinition\n delete node.abstract;\n return this.finishNode(\n // @ts-expect-error cast methods to estree types\n node as Undone,\n \"TSAbstractMethodDefinition\",\n );\n }\n }\n if (type === \"ObjectMethod\") {\n if ((node as any as N.ObjectMethod).kind === \"method\") {\n (node as any as N.EstreeProperty).kind = \"init\";\n }\n (node as any as N.EstreeProperty).shorthand = false;\n return this.finishNode(\n // @ts-expect-error cast methods to estree types\n node as Undone,\n \"Property\",\n );\n } else {\n return this.finishNode(\n // @ts-expect-error cast methods to estree types\n node as Undone,\n \"MethodDefinition\",\n );\n }\n }\n\n nameIsConstructor(key: N.Expression | N.PrivateName): boolean {\n if (key.type === \"Literal\") return key.value === \"constructor\";\n return super.nameIsConstructor(key);\n }\n\n parseClassProperty(...args: [N.ClassProperty]): any {\n const propertyNode = super.parseClassProperty(...args);\n if (!process.env.BABEL_8_BREAKING) {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return propertyNode as unknown as N.EstreePropertyDefinition;\n }\n }\n if (\n process.env.BABEL_8_BREAKING &&\n propertyNode.abstract &&\n this.hasPlugin(\"typescript\")\n ) {\n delete propertyNode.abstract;\n this.castNodeTo(propertyNode, \"TSAbstractPropertyDefinition\");\n } else {\n this.castNodeTo(propertyNode, \"PropertyDefinition\");\n }\n return propertyNode;\n }\n\n parseClassPrivateProperty(...args: [N.ClassPrivateProperty]): any {\n const propertyNode = super.parseClassPrivateProperty(...args);\n if (!process.env.BABEL_8_BREAKING) {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return propertyNode as unknown as N.EstreePropertyDefinition;\n }\n }\n if (\n process.env.BABEL_8_BREAKING &&\n propertyNode.abstract &&\n this.hasPlugin(\"typescript\")\n ) {\n this.castNodeTo(propertyNode, \"TSAbstractPropertyDefinition\");\n } else {\n this.castNodeTo(propertyNode, \"PropertyDefinition\");\n }\n propertyNode.computed = false;\n return propertyNode;\n }\n\n parseClassAccessorProperty(\n this: Parser,\n node: N.ClassAccessorProperty,\n ): any {\n const accessorPropertyNode = super.parseClassAccessorProperty(node);\n if (!process.env.BABEL_8_BREAKING) {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return accessorPropertyNode;\n }\n }\n if (accessorPropertyNode.abstract && this.hasPlugin(\"typescript\")) {\n delete accessorPropertyNode.abstract;\n this.castNodeTo(accessorPropertyNode, \"TSAbstractAccessorProperty\");\n } else {\n this.castNodeTo(accessorPropertyNode, \"AccessorProperty\");\n }\n return accessorPropertyNode;\n }\n\n parseObjectProperty(\n prop: N.ObjectProperty,\n startLoc: Position | undefined | null,\n isPattern: boolean,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.ObjectProperty | undefined | null {\n const node: N.EstreeProperty = super.parseObjectProperty(\n prop,\n startLoc,\n isPattern,\n refExpressionErrors,\n ) as any;\n\n if (node) {\n node.kind = \"init\";\n this.castNodeTo(node, \"Property\");\n }\n\n return node as any;\n }\n\n finishObjectProperty(node: Undone): N.ObjectProperty {\n (node as unknown as Undone).kind = \"init\";\n return this.finishNode(\n node as unknown as Undone,\n \"Property\",\n ) as any;\n }\n\n isValidLVal(\n type: string,\n disallowCallExpression: boolean,\n isUnparenthesizedInAssign: boolean,\n binding: BindingFlag,\n ) {\n return type === \"Property\"\n ? \"value\"\n : super.isValidLVal(\n type,\n disallowCallExpression,\n isUnparenthesizedInAssign,\n binding,\n );\n }\n\n isAssignable(node: N.Node, isBinding?: boolean): boolean {\n if (node != null && this.isObjectProperty(node)) {\n return this.isAssignable(node.value, isBinding);\n }\n return super.isAssignable(node, isBinding);\n }\n\n toAssignable(node: N.Node, isLHS: boolean = false): void {\n if (node != null && this.isObjectProperty(node)) {\n const { key, value } = node;\n if (this.isPrivateName(key)) {\n this.classScope.usePrivateName(\n this.getPrivateNameSV(key),\n key.loc.start,\n );\n }\n this.toAssignable(value, isLHS);\n } else {\n super.toAssignable(node, isLHS);\n }\n }\n\n toAssignableObjectExpressionProp(\n prop: N.Node,\n isLast: boolean,\n isLHS: boolean,\n ) {\n if (\n prop.type === \"Property\" &&\n (prop.kind === \"get\" || prop.kind === \"set\")\n ) {\n this.raise(Errors.PatternHasAccessor, prop.key);\n } else if (prop.type === \"Property\" && prop.method) {\n this.raise(Errors.PatternHasMethod, prop.key);\n } else {\n super.toAssignableObjectExpressionProp(prop, isLast, isLHS);\n }\n }\n\n finishCallExpression(\n unfinished: Undone,\n optional: boolean,\n ): T {\n const node = super.finishCallExpression(unfinished, optional);\n\n if (node.callee.type === \"Import\") {\n this.castNodeTo(node, \"ImportExpression\");\n (node as N.Node as N.EstreeImportExpression).source = node\n .arguments[0] as N.Expression;\n (node as N.Node as N.EstreeImportExpression).options =\n (node.arguments[1] as N.Expression) ?? null;\n if (!process.env.BABEL_8_BREAKING) {\n // compatibility with previous ESTree AST\n (node as N.Node as N.EstreeImportExpression).attributes =\n (node.arguments[1] as N.Expression) ?? null;\n }\n // arguments isn't optional in the type definition\n // @ts-expect-error delete non-optional properties\n delete node.arguments;\n // callee isn't optional in the type definition\n // @ts-expect-error delete non-optional properties\n delete node.callee;\n } else if (node.type === \"OptionalCallExpression\") {\n this.castNodeTo(node, \"CallExpression\");\n } else {\n node.optional = false;\n }\n\n return node;\n }\n\n toReferencedArguments(\n node:\n | N.CallExpression\n | N.OptionalCallExpression\n | N.EstreeImportExpression,\n /* isParenthesizedExpr?: boolean, */\n ) {\n // ImportExpressions do not have an arguments array.\n if (node.type === \"ImportExpression\") {\n return;\n }\n\n super.toReferencedArguments(node);\n }\n\n parseExport(\n unfinished: Undone,\n decorators: N.Decorator[] | null,\n ) {\n const exportStartLoc = this.state.lastTokStartLoc!;\n const node = super.parseExport(unfinished, decorators);\n\n switch (node.type) {\n case \"ExportAllDeclaration\":\n // @ts-expect-error mutating AST types\n node.exported = null;\n break;\n\n case \"ExportNamedDeclaration\":\n if (\n node.specifiers.length === 1 &&\n node.specifiers[0].type === \"ExportNamespaceSpecifier\"\n ) {\n this.castNodeTo(node, \"ExportAllDeclaration\");\n // @ts-expect-error mutating AST types\n node.exported = node.specifiers[0].exported;\n // @ts-expect-error The ESTree AST shape differs from the Babel AST\n delete node.specifiers;\n }\n\n // fallthrough\n case \"ExportDefaultDeclaration\":\n {\n const { declaration } = node;\n if (\n declaration?.type === \"ClassDeclaration\" &&\n // @ts-expect-error comparing undefined and number\n declaration.decorators?.length > 0 &&\n // decorator comes before export\n declaration.start === node.start\n ) {\n this.resetStartLocation(\n node,\n // For compatibility with ESLint's keyword-spacing rule, which assumes that an\n // export declaration must start with export.\n // https://github.com/babel/babel/issues/15085\n // Here we reset export declaration's start to be the start of the export token\n exportStartLoc,\n );\n }\n }\n\n break;\n }\n\n return node;\n }\n\n stopParseSubscript(base: N.Expression, state: N.ParseSubscriptState) {\n const node = super.stopParseSubscript(base, state);\n if (state.optionalChainMember) {\n return this.estreeParseChainExpression(node, base.loc.end);\n }\n return node;\n }\n\n parseMember(\n base: N.Expression,\n startLoc: Position,\n state: N.ParseSubscriptState,\n computed: boolean,\n optional: boolean,\n ) {\n const node = super.parseMember(base, startLoc, state, computed, optional);\n if (node.type === \"OptionalMemberExpression\") {\n this.castNodeTo(node, \"MemberExpression\");\n } else {\n node.optional = false;\n }\n return node;\n }\n\n isOptionalMemberExpression(node: N.Node) {\n if (node.type === \"ChainExpression\") {\n return node.expression.type === \"MemberExpression\";\n }\n return super.isOptionalMemberExpression(node);\n }\n\n hasPropertyAsPrivateName(node: N.Node): boolean {\n if (node.type === \"ChainExpression\") {\n node = node.expression;\n }\n return super.hasPropertyAsPrivateName(node);\n }\n\n // @ts-expect-error ESTree plugin changes node types\n isObjectProperty(node: N.Node): node is N.EstreeProperty {\n return node.type === \"Property\" && node.kind === \"init\" && !node.method;\n }\n\n // @ts-expect-error ESTree plugin changes node types\n isObjectMethod(node: N.Node): node is N.EstreeProperty {\n return (\n node.type === \"Property\" &&\n (node.method || node.kind === \"get\" || node.kind === \"set\")\n );\n }\n\n /* ============================================================ *\n * parser/node.ts *\n * ============================================================ */\n\n castNodeTo(\n node: N.Node,\n type: T,\n ): Extract {\n const result = super.castNodeTo(node, type);\n this.fillOptionalPropertiesForTSESLint(result);\n return result;\n }\n\n cloneIdentifier(node: T): T {\n const cloned = super.cloneIdentifier(node);\n this.fillOptionalPropertiesForTSESLint(cloned);\n return cloned;\n }\n\n cloneStringLiteral<\n T extends N.EstreeLiteral | N.StringLiteral | N.Placeholder,\n >(node: T): T {\n if (node.type === \"Literal\") {\n return this.cloneEstreeStringLiteral(node) as T;\n }\n return super.cloneStringLiteral(node);\n }\n\n finishNodeAt(\n node: Undone,\n type: T[\"type\"],\n endLoc: Position,\n ): T {\n return toESTreeLocation(super.finishNodeAt(node, type, endLoc));\n }\n\n // Override for TS-ESLint that does not allow optional AST properties\n finishNode(node: Undone, type: T[\"type\"]): T {\n const result = super.finishNode(node, type);\n this.fillOptionalPropertiesForTSESLint(result);\n return result;\n }\n\n resetStartLocation(node: N.Node, startLoc: Position) {\n super.resetStartLocation(node, startLoc);\n toESTreeLocation(node);\n }\n\n resetEndLocation(\n node: NodeBase,\n endLoc: Position = this.state.lastTokEndLoc!,\n ): void {\n super.resetEndLocation(node, endLoc);\n toESTreeLocation(node);\n }\n };\n","// The token context is used in JSX plugin to track\n// jsx tag / jsx text / normal JavaScript expression\n\nexport class TokContext {\n constructor(token: string, preserveSpace?: boolean) {\n this.token = token;\n this.preserveSpace = !!preserveSpace;\n }\n\n token: string;\n preserveSpace: boolean;\n}\n\nconst types: Record = {\n brace: new TokContext(\"{\"), // normal JavaScript expression\n j_oTag: new TokContext(\"...\", true), // JSX expressions\n};\n\nif (!process.env.BABEL_8_BREAKING) {\n types.template = new TokContext(\"`\", true);\n}\n\nexport { types };\n","import { types as tc, type TokContext } from \"./context.ts\";\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 1) binary\n// expression (<) and JSX Tag start (); 2) object literal and JSX\n// texts. It is set on the `updateContext` function in the JSX plugin.\n\n// The `startsExpr` property is used to determine whether an expression\n// may be the “argument” subexpression of a `yield` expression or\n// `yield` statement. It is set on all token types that may be at the\n// start of a subexpression.\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\nconst beforeExpr = true;\nconst startsExpr = true;\nconst isLoop = true;\nconst isAssign = true;\nconst prefix = true;\nconst postfix = true;\n\ntype TokenOptions = {\n keyword?: string;\n beforeExpr?: boolean;\n startsExpr?: boolean;\n rightAssociative?: boolean;\n isLoop?: boolean;\n isAssign?: boolean;\n prefix?: boolean;\n postfix?: boolean;\n binop?: number | null;\n};\n\n// Internally the tokenizer stores token as a number\nexport type TokenType = number;\n\n// The `ExportedTokenType` is exported via `tokTypes` and accessible\n// when `tokens: true` is enabled. Unlike internal token type, it provides\n// metadata of the tokens.\nexport class ExportedTokenType {\n label: string;\n keyword: string | undefined | null;\n beforeExpr: boolean;\n startsExpr: boolean;\n rightAssociative: boolean;\n isLoop: boolean;\n isAssign: boolean;\n prefix: boolean;\n postfix: boolean;\n binop: number | undefined | null;\n // todo(Babel 8): remove updateContext from exposed token layout\n declare updateContext: ((context: TokContext[]) => void) | undefined | null;\n\n constructor(label: string, conf: TokenOptions = {}) {\n this.label = label;\n this.keyword = conf.keyword;\n this.beforeExpr = !!conf.beforeExpr;\n this.startsExpr = !!conf.startsExpr;\n this.rightAssociative = !!conf.rightAssociative;\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 ? conf.binop : null;\n if (!process.env.BABEL_8_BREAKING) {\n this.updateContext = null;\n }\n }\n}\n\n// A map from keyword/keyword-like string value to the token type\nexport const keywords = new Map();\n\nfunction createKeyword(name: string, options: TokenOptions = {}): TokenType {\n options.keyword = name;\n const token = createToken(name, options);\n keywords.set(name, token);\n return token;\n}\n\nfunction createBinop(name: string, binop: number) {\n return createToken(name, { beforeExpr, binop });\n}\n\nlet tokenTypeCounter = -1;\nexport const tokenTypes: ExportedTokenType[] = [];\nconst tokenLabels: string[] = [];\nconst tokenBinops: number[] = [];\nconst tokenBeforeExprs: boolean[] = [];\nconst tokenStartsExprs: boolean[] = [];\nconst tokenPrefixes: boolean[] = [];\n\nfunction createToken(name: string, options: TokenOptions = {}): TokenType {\n ++tokenTypeCounter;\n tokenLabels.push(name);\n tokenBinops.push(options.binop ?? -1);\n tokenBeforeExprs.push(options.beforeExpr ?? false);\n tokenStartsExprs.push(options.startsExpr ?? false);\n tokenPrefixes.push(options.prefix ?? false);\n tokenTypes.push(new ExportedTokenType(name, options));\n\n return tokenTypeCounter;\n}\n\nfunction createKeywordLike(\n name: string,\n options: TokenOptions = {},\n): TokenType {\n ++tokenTypeCounter;\n keywords.set(name, tokenTypeCounter);\n tokenLabels.push(name);\n tokenBinops.push(options.binop ?? -1);\n tokenBeforeExprs.push(options.beforeExpr ?? false);\n tokenStartsExprs.push(options.startsExpr ?? false);\n tokenPrefixes.push(options.prefix ?? false);\n // In the exported token type, we set the label as \"name\" for backward compatibility with Babel 7\n tokenTypes.push(new ExportedTokenType(\"name\", options));\n\n return tokenTypeCounter;\n}\n\n// For performance the token type helpers depend on the following declarations order.\n// When adding new token types, please also check if the token helpers need update.\n\nexport type InternalTokenTypes = typeof tt;\n\nexport const tt = {\n // Punctuation token types.\n bracketL: createToken(\"[\", { beforeExpr, startsExpr }),\n // TODO: Remove this in Babel 8\n bracketHashL: createToken(\"#[\", { beforeExpr, startsExpr }),\n // TODO: Remove this in Babel 8\n bracketBarL: createToken(\"[|\", { beforeExpr, startsExpr }),\n bracketR: createToken(\"]\"),\n // TODO: Remove this in Babel 8\n bracketBarR: createToken(\"|]\"),\n braceL: createToken(\"{\", { beforeExpr, startsExpr }),\n // TODO: Remove this in Babel 8\n braceBarL: createToken(\"{|\", { beforeExpr, startsExpr }),\n // TODO: Remove this in Babel 8\n braceHashL: createToken(\"#{\", { beforeExpr, startsExpr }),\n braceR: createToken(\"}\"),\n braceBarR: createToken(\"|}\"),\n parenL: createToken(\"(\", { beforeExpr, startsExpr }),\n parenR: createToken(\")\"),\n comma: createToken(\",\", { beforeExpr }),\n semi: createToken(\";\", { beforeExpr }),\n colon: createToken(\":\", { beforeExpr }),\n doubleColon: createToken(\"::\", { beforeExpr }),\n dot: createToken(\".\"),\n question: createToken(\"?\", { beforeExpr }),\n questionDot: createToken(\"?.\"),\n arrow: createToken(\"=>\", { beforeExpr }),\n template: createToken(\"template\"),\n ellipsis: createToken(\"...\", { beforeExpr }),\n backQuote: createToken(\"`\", { startsExpr }),\n dollarBraceL: createToken(\"${\", { beforeExpr, startsExpr }),\n // start: isTemplate\n templateTail: createToken(\"...`\", { startsExpr }),\n templateNonTail: createToken(\"...${\", { beforeExpr, startsExpr }),\n // end: isTemplate\n at: createToken(\"@\"),\n hash: createToken(\"#\", { startsExpr }),\n\n // Special hashbang token.\n interpreterDirective: createToken(\"#!...\"),\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 // start: isAssign\n eq: createToken(\"=\", { beforeExpr, isAssign }),\n assign: createToken(\"_=\", { beforeExpr, isAssign }),\n slashAssign: createToken(\"_=\", { beforeExpr, isAssign }),\n // These are only needed to support % and ^ as a Hack-pipe topic token.\n // When the proposal settles on a token, the others can be merged with\n // tt.assign.\n xorAssign: createToken(\"_=\", { beforeExpr, isAssign }),\n moduloAssign: createToken(\"_=\", { beforeExpr, isAssign }),\n // end: isAssign\n\n incDec: createToken(\"++/--\", { prefix, postfix, startsExpr }),\n bang: createToken(\"!\", { beforeExpr, prefix, startsExpr }),\n tilde: createToken(\"~\", { beforeExpr, prefix, startsExpr }),\n\n // More possible topic tokens.\n // When the proposal settles on a token, at least one of these may be removed.\n doubleCaret: createToken(\"^^\", { startsExpr }),\n doubleAt: createToken(\"@@\", { startsExpr }),\n\n // start: isBinop\n pipeline: createBinop(\"|>\", 0),\n nullishCoalescing: createBinop(\"??\", 1),\n logicalOR: createBinop(\"||\", 1),\n logicalAND: createBinop(\"&&\", 2),\n bitwiseOR: createBinop(\"|\", 3),\n bitwiseXOR: createBinop(\"^\", 4),\n bitwiseAND: createBinop(\"&\", 5),\n equality: createBinop(\"==/!=/===/!==\", 6),\n lt: createBinop(\"/<=/>=\", 7),\n gt: createBinop(\"/<=/>=\", 7),\n relational: createBinop(\"/<=/>=\", 7),\n bitShift: createBinop(\"<>/>>>\", 8),\n bitShiftL: createBinop(\"<>/>>>\", 8),\n bitShiftR: createBinop(\"<>/>>>\", 8),\n plusMin: createToken(\"+/-\", { beforeExpr, binop: 9, prefix, startsExpr }),\n // startsExpr: required by v8intrinsic plugin\n modulo: createToken(\"%\", { binop: 10, startsExpr }),\n // unset `beforeExpr` as it can be `function *`\n star: createToken(\"*\", { binop: 10 }),\n slash: createBinop(\"/\", 10),\n exponent: createToken(\"**\", {\n beforeExpr,\n binop: 11,\n rightAssociative: true,\n }),\n\n // Keywords\n // Don't forget to update packages/babel-helper-validator-identifier/src/keyword.js\n // when new keywords are added\n // start: isLiteralPropertyName\n // start: isKeyword\n _in: createKeyword(\"in\", { beforeExpr, binop: 7 }),\n _instanceof: createKeyword(\"instanceof\", { beforeExpr, binop: 7 }),\n // end: isBinop\n _break: createKeyword(\"break\"),\n _case: createKeyword(\"case\", { beforeExpr }),\n _catch: createKeyword(\"catch\"),\n _continue: createKeyword(\"continue\"),\n _debugger: createKeyword(\"debugger\"),\n _default: createKeyword(\"default\", { beforeExpr }),\n _else: createKeyword(\"else\", { beforeExpr }),\n _finally: createKeyword(\"finally\"),\n _function: createKeyword(\"function\", { startsExpr }),\n _if: createKeyword(\"if\"),\n _return: createKeyword(\"return\", { beforeExpr }),\n _switch: createKeyword(\"switch\"),\n _throw: createKeyword(\"throw\", { beforeExpr, prefix, startsExpr }),\n _try: createKeyword(\"try\"),\n _var: createKeyword(\"var\"),\n _const: createKeyword(\"const\"),\n _with: createKeyword(\"with\"),\n _new: createKeyword(\"new\", { beforeExpr, startsExpr }),\n _this: createKeyword(\"this\", { startsExpr }),\n _super: createKeyword(\"super\", { startsExpr }),\n _class: createKeyword(\"class\", { startsExpr }),\n _extends: createKeyword(\"extends\", { beforeExpr }),\n _export: createKeyword(\"export\"),\n _import: createKeyword(\"import\", { startsExpr }),\n _null: createKeyword(\"null\", { startsExpr }),\n _true: createKeyword(\"true\", { startsExpr }),\n _false: createKeyword(\"false\", { startsExpr }),\n _typeof: createKeyword(\"typeof\", { beforeExpr, prefix, startsExpr }),\n _void: createKeyword(\"void\", { beforeExpr, prefix, startsExpr }),\n _delete: createKeyword(\"delete\", { beforeExpr, prefix, startsExpr }),\n // start: isLoop\n _do: createKeyword(\"do\", { isLoop, beforeExpr }),\n _for: createKeyword(\"for\", { isLoop }),\n _while: createKeyword(\"while\", { isLoop }),\n // end: isLoop\n // end: isKeyword\n\n // Primary literals\n // start: isIdentifier\n _as: createKeywordLike(\"as\", { startsExpr }),\n _assert: createKeywordLike(\"assert\", { startsExpr }),\n _async: createKeywordLike(\"async\", { startsExpr }),\n _await: createKeywordLike(\"await\", { startsExpr }),\n _defer: createKeywordLike(\"defer\", { startsExpr }),\n _from: createKeywordLike(\"from\", { startsExpr }),\n _get: createKeywordLike(\"get\", { startsExpr }),\n _let: createKeywordLike(\"let\", { startsExpr }),\n _meta: createKeywordLike(\"meta\", { startsExpr }),\n _of: createKeywordLike(\"of\", { startsExpr }),\n _sent: createKeywordLike(\"sent\", { startsExpr }),\n _set: createKeywordLike(\"set\", { startsExpr }),\n _source: createKeywordLike(\"source\", { startsExpr }),\n _static: createKeywordLike(\"static\", { startsExpr }),\n _using: createKeywordLike(\"using\", { startsExpr }),\n _yield: createKeywordLike(\"yield\", { startsExpr }),\n\n // Flow and TypeScript Keywordlike\n _asserts: createKeywordLike(\"asserts\", { startsExpr }),\n _checks: createKeywordLike(\"checks\", { startsExpr }),\n _exports: createKeywordLike(\"exports\", { startsExpr }),\n _global: createKeywordLike(\"global\", { startsExpr }),\n _implements: createKeywordLike(\"implements\", { startsExpr }),\n _intrinsic: createKeywordLike(\"intrinsic\", { startsExpr }),\n _infer: createKeywordLike(\"infer\", { startsExpr }),\n _is: createKeywordLike(\"is\", { startsExpr }),\n _mixins: createKeywordLike(\"mixins\", { startsExpr }),\n _proto: createKeywordLike(\"proto\", { startsExpr }),\n _require: createKeywordLike(\"require\", { startsExpr }),\n _satisfies: createKeywordLike(\"satisfies\", { startsExpr }),\n // start: isTSTypeOperator\n _keyof: createKeywordLike(\"keyof\", { startsExpr }),\n _readonly: createKeywordLike(\"readonly\", { startsExpr }),\n _unique: createKeywordLike(\"unique\", { startsExpr }),\n // end: isTSTypeOperator\n // start: isTSDeclarationStart\n _abstract: createKeywordLike(\"abstract\", { startsExpr }),\n _declare: createKeywordLike(\"declare\", { startsExpr }),\n _enum: createKeywordLike(\"enum\", { startsExpr }),\n _module: createKeywordLike(\"module\", { startsExpr }),\n _namespace: createKeywordLike(\"namespace\", { startsExpr }),\n // start: isFlowInterfaceOrTypeOrOpaque\n _interface: createKeywordLike(\"interface\", { startsExpr }),\n _type: createKeywordLike(\"type\", { startsExpr }),\n // end: isTSDeclarationStart\n _opaque: createKeywordLike(\"opaque\", { startsExpr }),\n // end: isFlowInterfaceOrTypeOrOpaque\n name: createToken(\"name\", { startsExpr }),\n\n // placeholder plugin\n placeholder: createToken(\"%%\", { startsExpr }),\n // end: isIdentifier\n\n string: createToken(\"string\", { startsExpr }),\n num: createToken(\"num\", { startsExpr }),\n bigint: createToken(\"bigint\", { startsExpr }),\n // TODO: Remove this in Babel 8\n decimal: createToken(\"decimal\", { startsExpr }),\n // end: isLiteralPropertyName\n regexp: createToken(\"regexp\", { startsExpr }),\n privateName: createToken(\"#name\", { startsExpr }),\n eof: createToken(\"eof\"),\n\n // jsx plugin\n jsxName: createToken(\"jsxName\"),\n jsxText: createToken(\"jsxText\", { beforeExpr }),\n jsxTagStart: createToken(\"jsxTagStart\", { startsExpr }),\n jsxTagEnd: createToken(\"jsxTagEnd\"),\n} as const;\n\nexport function tokenIsIdentifier(token: TokenType): boolean {\n return token >= tt._as && token <= tt.placeholder;\n}\n\nexport function tokenKeywordOrIdentifierIsKeyword(token: TokenType): boolean {\n // we can remove the token >= tt._in check when we\n // know a token is either keyword or identifier\n return token <= tt._while;\n}\n\nexport function tokenIsKeywordOrIdentifier(token: TokenType): boolean {\n return token >= tt._in && token <= tt.placeholder;\n}\n\nexport function tokenIsLiteralPropertyName(token: TokenType): boolean {\n return token >= tt._in && token <= tt.decimal;\n}\n\nexport function tokenComesBeforeExpression(token: TokenType): boolean {\n return tokenBeforeExprs[token];\n}\n\nexport function tokenCanStartExpression(token: TokenType): boolean {\n return tokenStartsExprs[token];\n}\n\nexport function tokenIsAssignment(token: TokenType): boolean {\n return token >= tt.eq && token <= tt.moduloAssign;\n}\n\nexport function tokenIsFlowInterfaceOrTypeOrOpaque(token: TokenType): boolean {\n return token >= tt._interface && token <= tt._opaque;\n}\n\nexport function tokenIsLoop(token: TokenType): boolean {\n return token >= tt._do && token <= tt._while;\n}\n\nexport function tokenIsKeyword(token: TokenType): boolean {\n return token >= tt._in && token <= tt._while;\n}\n\nexport function tokenIsOperator(token: TokenType): boolean {\n return token >= tt.pipeline && token <= tt._instanceof;\n}\n\nexport function tokenIsPostfix(token: TokenType): boolean {\n return token === tt.incDec;\n}\n\nexport function tokenIsPrefix(token: TokenType): boolean {\n return tokenPrefixes[token];\n}\n\nexport function tokenIsTSTypeOperator(token: TokenType): boolean {\n return token >= tt._keyof && token <= tt._unique;\n}\n\nexport function tokenIsTSDeclarationStart(token: TokenType): boolean {\n return token >= tt._abstract && token <= tt._type;\n}\n\nexport function tokenLabelName(token: TokenType): string {\n return tokenLabels[token];\n}\n\nexport function tokenOperatorPrecedence(token: TokenType): number {\n return tokenBinops[token];\n}\n\nexport function tokenIsBinaryOperator(token: TokenType): boolean {\n return tokenBinops[token] !== -1;\n}\n\nexport function tokenIsRightAssociative(token: TokenType): boolean {\n return token === tt.exponent;\n}\n\nexport function tokenIsTemplate(token: TokenType): boolean {\n return token >= tt.templateTail && token <= tt.templateNonTail;\n}\n\nexport function getExportedToken(token: TokenType): ExportedTokenType {\n return tokenTypes[token];\n}\n\nexport function isTokenType(obj: any): boolean {\n return typeof obj === \"number\";\n}\n\nif (!process.env.BABEL_8_BREAKING) {\n tokenTypes[tt.braceR].updateContext = context => {\n context.pop();\n };\n\n tokenTypes[tt.braceL].updateContext =\n tokenTypes[tt.braceHashL].updateContext =\n tokenTypes[tt.dollarBraceL].updateContext =\n context => {\n context.push(tc.brace);\n };\n\n tokenTypes[tt.backQuote].updateContext = context => {\n if (context[context.length - 1] === tc.template) {\n context.pop();\n } else {\n context.push(tc.template);\n }\n };\n\n tokenTypes[tt.jsxTagStart].updateContext = context => {\n context.push(tc.j_expr, tc.j_oTag);\n };\n}\n","// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\n\n// ## Character categories\n\n// Big ugly regular expressions that match characters in the\n// whitespace, identifier, and identifier-start categories. These\n// are only applied when a character is found to actually have a\n// code point between 0x80 and 0xffff.\n// Generated by `scripts/generate-identifier-regex.cjs`.\n\n/* prettier-ignore */\nlet 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-\\u088f\\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\\u0c5c\\u0c5d\\u0c60\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cdc-\\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-\\u1c8a\\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-\\ua7dc\\ua7f1-\\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/* prettier-ignore */\nlet nonASCIIidentifierChars = \"\\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\\u0897-\\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\\u0cf3\\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-\\u0ece\\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-\\u1add\\u1ae0-\\u1aeb\\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\\u200c\\u200d\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\u30fb\\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\\uff65\";\n\nconst nonASCIIidentifierStart = new RegExp(\n \"[\" + nonASCIIidentifierStartChars + \"]\",\n);\nconst nonASCIIidentifier = new RegExp(\n \"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\",\n);\n\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\n\n// These are a run-length and offset-encoded representation of the\n// >0xffff code points that are a valid part of identifiers. The\n// offset starts at 0x10000, and each pair of numbers represents an\n// offset to the next range, and then a size of the range. They were\n// generated by `scripts/generate-identifier-regex.cjs`.\n/* prettier-ignore */\nconst 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,4,51,13,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,7,25,39,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,39,27,10,22,251,41,7,1,17,5,57,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,20,1,64,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,31,9,2,0,3,0,2,37,2,0,26,0,2,0,45,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,200,32,32,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,24,43,261,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,26,3994,6,582,6842,29,1763,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,433,44,212,63,33,24,3,24,45,74,6,0,67,12,65,1,2,0,15,4,10,7381,42,31,98,114,8702,3,2,6,2,1,2,290,16,0,30,2,3,0,15,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,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,229,29,3,0,208,30,2,2,2,1,2,6,3,4,10,1,225,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,4381,3,5773,3,7472,16,621,2467,541,1507,4938,6,8489];\n/* prettier-ignore */\nconst 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,7,9,32,4,318,1,78,5,71,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,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,68,8,2,0,3,0,2,3,2,4,2,0,15,1,83,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,7,19,58,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,199,7,137,9,54,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,55,9,266,3,10,1,2,0,49,6,4,4,14,10,5350,0,7,14,11465,27,2343,9,87,9,39,4,60,6,26,9,535,9,470,0,2,54,8,3,82,0,12,1,19628,1,4178,9,519,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,101,0,161,6,10,9,357,0,62,13,499,13,245,1,2,9,233,0,3,0,8,1,6,0,475,6,110,6,6,9,4759,9,787719,239];\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: number, set: readonly number[]): boolean {\n let pos = 0x10000;\n for (let i = 0, length = set.length; i < length; i += 2) {\n pos += set[i];\n if (pos > code) return false;\n\n pos += set[i + 1];\n if (pos >= code) return true;\n }\n return false;\n}\n\n// Test whether a given character code starts an identifier.\n\nexport function isIdentifierStart(code: number): boolean {\n if (code < charCodes.uppercaseA) return code === charCodes.dollarSign;\n if (code <= charCodes.uppercaseZ) return true;\n if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n if (code <= charCodes.lowercaseZ) return true;\n if (code <= 0xffff) {\n return (\n code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code))\n );\n }\n return isInAstralSet(code, astralIdentifierStartCodes);\n}\n\n// Test whether a given character is part of an identifier.\n\nexport function isIdentifierChar(code: number): boolean {\n if (code < charCodes.digit0) return code === charCodes.dollarSign;\n if (code < charCodes.colon) return true;\n if (code < charCodes.uppercaseA) return false;\n if (code <= charCodes.uppercaseZ) return true;\n if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n if (code <= charCodes.lowercaseZ) return true;\n if (code <= 0xffff) {\n return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));\n }\n return (\n isInAstralSet(code, astralIdentifierStartCodes) ||\n isInAstralSet(code, astralIdentifierCodes)\n );\n}\n\n// Test whether a given string is a valid identifier name\n\nexport function isIdentifierName(name: string): boolean {\n let isFirst = true;\n for (let i = 0; i < name.length; i++) {\n // The implementation is based on\n // https://source.chromium.org/chromium/chromium/src/+/master:v8/src/builtins/builtins-string-gen.cc;l=1455;drc=221e331b49dfefadbc6fa40b0c68e6f97606d0b3;bpv=0;bpt=1\n // We reimplement `codePointAt` because `codePointAt` is a V8 builtin which is not inlined by TurboFan (as of M91)\n // since `name` is mostly ASCII, an inlined `charCodeAt` wins here\n let cp = name.charCodeAt(i);\n if ((cp & 0xfc00) === 0xd800 && i + 1 < name.length) {\n const trail = name.charCodeAt(++i);\n if ((trail & 0xfc00) === 0xdc00) {\n cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff);\n }\n }\n if (isFirst) {\n isFirst = false;\n if (!isIdentifierStart(cp)) {\n return false;\n }\n } else if (!isIdentifierChar(cp)) {\n return false;\n }\n }\n return !isFirst;\n}\n","const reservedWords = {\n keyword: [\n \"break\",\n \"case\",\n \"catch\",\n \"continue\",\n \"debugger\",\n \"default\",\n \"do\",\n \"else\",\n \"finally\",\n \"for\",\n \"function\",\n \"if\",\n \"return\",\n \"switch\",\n \"throw\",\n \"try\",\n \"var\",\n \"const\",\n \"while\",\n \"with\",\n \"new\",\n \"this\",\n \"super\",\n \"class\",\n \"extends\",\n \"export\",\n \"import\",\n \"null\",\n \"true\",\n \"false\",\n \"in\",\n \"instanceof\",\n \"typeof\",\n \"void\",\n \"delete\",\n ],\n strict: [\n \"implements\",\n \"interface\",\n \"let\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"static\",\n \"yield\",\n ],\n strictBind: [\"eval\", \"arguments\"],\n};\nconst keywords = new Set(reservedWords.keyword);\nconst reservedWordsStrictSet = new Set(reservedWords.strict);\nconst reservedWordsStrictBindSet = new Set(reservedWords.strictBind);\n\n/**\n * Checks if word is a reserved word in non-strict mode\n */\nexport function isReservedWord(word: string, inModule: boolean): boolean {\n return (inModule && word === \"await\") || word === \"enum\";\n}\n\n/**\n * Checks if word is a reserved word in non-binding strict mode\n *\n * Includes non-strict reserved words\n */\nexport function isStrictReservedWord(word: string, inModule: boolean): boolean {\n return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode, but it is allowed as\n * a normal identifier.\n */\nexport function isStrictBindOnlyReservedWord(word: string): boolean {\n return reservedWordsStrictBindSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode\n *\n * Includes non-strict reserved words and non-binding strict reserved words\n */\nexport function isStrictBindReservedWord(\n word: string,\n inModule: boolean,\n): boolean {\n return (\n isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word)\n );\n}\n\nexport function isKeyword(word: string): boolean {\n return keywords.has(word);\n}\n","import * as charCodes from \"charcodes\";\nimport { isIdentifierStart } from \"@babel/helper-validator-identifier\";\n\nexport {\n isIdentifierStart,\n isIdentifierChar,\n isReservedWord,\n isStrictBindOnlyReservedWord,\n isStrictBindReservedWord,\n isStrictReservedWord,\n isKeyword,\n} from \"@babel/helper-validator-identifier\";\n\nexport const keywordRelationalOperator = /^in(stanceof)?$/;\n\n// Test whether a current state character code and next character code is @\n\nexport function isIteratorStart(\n current: number,\n next: number,\n next2: number,\n): boolean {\n return (\n current === charCodes.atSign &&\n next === charCodes.atSign &&\n isIdentifierStart(next2)\n );\n}\n\n// This is the comprehensive set of JavaScript reserved words\n// If a word is in this set, it could be a reserved word,\n// depending on sourceType/strictMode/binding info. In other words\n// if a word is not in this set, it is not a reserved word under\n// any circumstance.\nconst reservedWordLikeSet = new Set([\n \"break\",\n \"case\",\n \"catch\",\n \"continue\",\n \"debugger\",\n \"default\",\n \"do\",\n \"else\",\n \"finally\",\n \"for\",\n \"function\",\n \"if\",\n \"return\",\n \"switch\",\n \"throw\",\n \"try\",\n \"var\",\n \"const\",\n \"while\",\n \"with\",\n \"new\",\n \"this\",\n \"super\",\n \"class\",\n \"extends\",\n \"export\",\n \"import\",\n \"null\",\n \"true\",\n \"false\",\n \"in\",\n \"instanceof\",\n \"typeof\",\n \"void\",\n \"delete\",\n // strict\n \"implements\",\n \"interface\",\n \"let\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"static\",\n \"yield\",\n // strictBind\n \"eval\",\n \"arguments\",\n // reservedWorkLike\n \"enum\",\n \"await\",\n]);\n\nexport function canBeReservedWord(word: string): boolean {\n return reservedWordLikeSet.has(word);\n}\n","import { ScopeFlag, BindingFlag } from \"./scopeflags.ts\";\nimport type { Position } from \"./location.ts\";\nimport type * as N from \"../types.ts\";\nimport { Errors } from \"../parse-error.ts\";\nimport type Tokenizer from \"../tokenizer/index.ts\";\n\nexport const enum NameType {\n // var-declared names in the current lexical scope\n Var = 1 << 0,\n // lexically-declared names in the current lexical scope\n Lexical = 1 << 1,\n // lexically-declared FunctionDeclaration names in the current lexical scope\n Function = 1 << 2,\n}\n\n// Start an AST node, attaching a start offset.\nexport class Scope {\n flags: ScopeFlag = 0;\n names = new Map();\n firstLexicalName = \"\";\n\n constructor(flags: ScopeFlag) {\n this.flags = flags;\n }\n}\n\n// The functions in this module keep track of declared variables in the\n// current scope in order to detect duplicate variable names.\nexport default class ScopeHandler {\n parser: Tokenizer;\n scopeStack: IScope[] = [];\n inModule: boolean;\n undefinedExports = new Map();\n\n constructor(parser: Tokenizer, inModule: boolean) {\n this.parser = parser;\n this.inModule = inModule;\n }\n\n get inTopLevel() {\n return (this.currentScope().flags & ScopeFlag.PROGRAM) > 0;\n }\n get inFunction() {\n return (this.currentVarScopeFlags() & ScopeFlag.FUNCTION_BASE) > 0;\n }\n get allowSuper() {\n return (this.currentThisScopeFlags() & ScopeFlag.SUPER) > 0;\n }\n get allowDirectSuper() {\n return (this.currentThisScopeFlags() & ScopeFlag.DIRECT_SUPER) > 0;\n }\n get allowNewTarget() {\n return (this.currentThisScopeFlags() & ScopeFlag.NEW_TARGET) > 0;\n }\n get inClass() {\n return (this.currentThisScopeFlags() & ScopeFlag.CLASS_BASE) > 0;\n }\n get inClassAndNotInNonArrowFunction() {\n const flags = this.currentThisScopeFlags();\n return (\n (flags & ScopeFlag.CLASS_BASE) > 0 &&\n (flags & ScopeFlag.FUNCTION_BASE) === 0\n );\n }\n get inStaticBlock() {\n for (let i = this.scopeStack.length - 1; ; i--) {\n const { flags } = this.scopeStack[i];\n if (flags & ScopeFlag.STATIC_BLOCK) {\n return true;\n }\n if (flags & (ScopeFlag.VAR | ScopeFlag.CLASS_BASE)) {\n // function body, module body, class property initializers\n return false;\n }\n }\n }\n get inNonArrowFunction() {\n return (this.currentThisScopeFlags() & ScopeFlag.FUNCTION_BASE) > 0;\n }\n get inBareCaseStatement() {\n return (this.currentScope().flags & ScopeFlag.SWITCH) > 0;\n }\n get treatFunctionsAsVar() {\n return this.treatFunctionsAsVarInScope(this.currentScope());\n }\n\n createScope(flags: ScopeFlag): Scope {\n return new Scope(flags);\n }\n\n enter(flags: ScopeFlag) {\n /*:: +createScope: (flags:ScopeFlag) => IScope; */\n // @ts-expect-error This method will be overwritten by subclasses\n this.scopeStack.push(this.createScope(flags));\n }\n\n exit(): ScopeFlag {\n const scope = this.scopeStack.pop()!;\n return scope.flags;\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.\n treatFunctionsAsVarInScope(scope: IScope): boolean {\n return !!(\n scope.flags & (ScopeFlag.FUNCTION_BASE | ScopeFlag.STATIC_BLOCK) ||\n (!this.parser.inModule && scope.flags & ScopeFlag.PROGRAM)\n );\n }\n\n declareName(name: string, bindingType: BindingFlag, loc: Position) {\n let scope = this.currentScope();\n if (\n bindingType & BindingFlag.SCOPE_LEXICAL ||\n bindingType & BindingFlag.SCOPE_FUNCTION\n ) {\n this.checkRedeclarationInScope(scope, name, bindingType, loc);\n\n let type = scope.names.get(name) || 0;\n\n if (bindingType & BindingFlag.SCOPE_FUNCTION) {\n type = type | NameType.Function;\n } else {\n if (!scope.firstLexicalName) {\n scope.firstLexicalName = name;\n }\n type = type | NameType.Lexical;\n }\n\n scope.names.set(name, type);\n\n if (bindingType & BindingFlag.SCOPE_LEXICAL) {\n this.maybeExportDefined(scope, name);\n }\n } else if (bindingType & BindingFlag.SCOPE_VAR) {\n for (let i = this.scopeStack.length - 1; i >= 0; --i) {\n scope = this.scopeStack[i];\n this.checkRedeclarationInScope(scope, name, bindingType, loc);\n scope.names.set(name, (scope.names.get(name) || 0) | NameType.Var);\n this.maybeExportDefined(scope, name);\n\n if (scope.flags & ScopeFlag.VAR) break;\n }\n }\n if (this.parser.inModule && scope.flags & ScopeFlag.PROGRAM) {\n this.undefinedExports.delete(name);\n }\n }\n\n maybeExportDefined(scope: IScope, name: string) {\n if (this.parser.inModule && scope.flags & ScopeFlag.PROGRAM) {\n this.undefinedExports.delete(name);\n }\n }\n\n checkRedeclarationInScope(\n scope: IScope,\n name: string,\n bindingType: BindingFlag,\n loc: Position,\n ) {\n if (this.isRedeclaredInScope(scope, name, bindingType)) {\n this.parser.raise(Errors.VarRedeclaration, loc, {\n identifierName: name,\n });\n }\n }\n\n isRedeclaredInScope(\n scope: IScope,\n name: string,\n bindingType: BindingFlag,\n ): boolean {\n if (!(bindingType & BindingFlag.KIND_VALUE)) return false;\n\n if (bindingType & BindingFlag.SCOPE_LEXICAL) {\n return scope.names.has(name);\n }\n\n const type = scope.names.get(name) || 0;\n\n if (bindingType & BindingFlag.SCOPE_FUNCTION) {\n return (\n (type & NameType.Lexical) > 0 ||\n (!this.treatFunctionsAsVarInScope(scope) && (type & NameType.Var) > 0)\n );\n }\n\n return (\n ((type & NameType.Lexical) > 0 &&\n // Annex B.3.4\n // https://tc39.es/ecma262/#sec-variablestatements-in-catch-blocks\n !(\n scope.flags & ScopeFlag.SIMPLE_CATCH &&\n scope.firstLexicalName === name\n )) ||\n (!this.treatFunctionsAsVarInScope(scope) &&\n (type & NameType.Function) > 0)\n );\n }\n\n checkLocalExport(id: N.Identifier) {\n const { name } = id;\n const topLevelScope = this.scopeStack[0];\n if (!topLevelScope.names.has(name)) {\n this.undefinedExports.set(name, id.loc.start);\n }\n }\n\n currentScope(): IScope {\n return this.scopeStack[this.scopeStack.length - 1];\n }\n\n currentVarScopeFlags(): ScopeFlag {\n for (let i = this.scopeStack.length - 1; ; i--) {\n const { flags } = this.scopeStack[i];\n if (flags & ScopeFlag.VAR) {\n return flags;\n }\n }\n }\n\n // Could be useful for `arguments`, `this`, `new.target`, `super()`, `super.property`, and `super[property]`.\n currentThisScopeFlags(): ScopeFlag {\n for (let i = this.scopeStack.length - 1; ; i--) {\n const { flags } = this.scopeStack[i];\n if (\n flags & (ScopeFlag.VAR | ScopeFlag.CLASS_BASE) &&\n !(flags & ScopeFlag.ARROW)\n ) {\n return flags;\n }\n }\n }\n}\n","import type { Position } from \"../../util/location.ts\";\nimport ScopeHandler, { NameType, Scope } from \"../../util/scope.ts\";\nimport { BindingFlag, type ScopeFlag } from \"../../util/scopeflags.ts\";\nimport type * as N from \"../../types.ts\";\n\n// Reference implementation: https://github.com/facebook/flow/blob/23aeb2a2ef6eb4241ce178fde5d8f17c5f747fb5/src/typing/env.ml#L536-L584\nclass FlowScope extends Scope {\n // declare function foo(): type;\n declareFunctions = new Set();\n}\n\nexport default class FlowScopeHandler extends ScopeHandler {\n createScope(flags: ScopeFlag): FlowScope {\n return new FlowScope(flags);\n }\n\n declareName(name: string, bindingType: BindingFlag, loc: Position) {\n const scope = this.currentScope();\n if (bindingType & BindingFlag.FLAG_FLOW_DECLARE_FN) {\n this.checkRedeclarationInScope(scope, name, bindingType, loc);\n this.maybeExportDefined(scope, name);\n scope.declareFunctions.add(name);\n return;\n }\n\n super.declareName(name, bindingType, loc);\n }\n\n isRedeclaredInScope(\n scope: FlowScope,\n name: string,\n bindingType: BindingFlag,\n ): boolean {\n if (super.isRedeclaredInScope(scope, name, bindingType)) return true;\n\n if (\n bindingType & BindingFlag.FLAG_FLOW_DECLARE_FN &&\n !scope.declareFunctions.has(name)\n ) {\n const type = scope.names.get(name)!;\n return (type & NameType.Function) > 0 || (type & NameType.Lexical) > 0;\n }\n\n return false;\n }\n\n checkLocalExport(id: N.Identifier) {\n if (!this.scopeStack[0].declareFunctions.has(id.name)) {\n super.checkLocalExport(id);\n }\n }\n}\n","/*:: declare var invariant; */\n\nimport type Parser from \"../../parser/index.ts\";\nimport {\n tokenIsIdentifier,\n tokenIsKeyword,\n tokenIsKeywordOrIdentifier,\n tokenIsLiteralPropertyName,\n tokenLabelName,\n tt,\n type TokenType,\n tokenIsFlowInterfaceOrTypeOrOpaque,\n} from \"../../tokenizer/types.ts\";\nimport type * as N from \"../../types.ts\";\nimport type { Position } from \"../../util/location.ts\";\nimport { types as tc } from \"../../tokenizer/context.ts\";\nimport * as charCodes from \"charcodes\";\nimport { isIteratorStart } from \"../../util/identifier.ts\";\nimport FlowScopeHandler from \"./scope.ts\";\nimport { BindingFlag, ScopeFlag } from \"../../util/scopeflags.ts\";\nimport type { ExpressionErrors } from \"../../parser/util.ts\";\nimport type { ParseStatementFlag } from \"../../parser/statement.ts\";\nimport { Errors, ParseErrorEnum } from \"../../parse-error.ts\";\nimport type { Undone } from \"../../parser/node.ts\";\nimport type { ClassWithMixin, IJSXParserMixin } from \"../jsx/index.ts\";\n\nconst reservedTypes = new Set([\n \"_\",\n \"any\",\n \"bool\",\n \"boolean\",\n \"empty\",\n \"extends\",\n \"false\",\n \"interface\",\n \"mixed\",\n \"null\",\n \"number\",\n \"static\",\n \"string\",\n \"true\",\n \"typeof\",\n \"void\",\n]);\n\n/* eslint sort-keys: \"error\" */\n// The Errors key follows https://github.com/facebook/flow/blob/master/src/parser/parse_error.ml unless it does not exist\nconst FlowErrors = ParseErrorEnum`flow`({\n AmbiguousConditionalArrow:\n \"Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.\",\n AmbiguousDeclareModuleKind:\n \"Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module.\",\n // TODO: When we get proper string enums in typescript make this ReservedType.\n // Not really worth it to do the whole $Values dance with reservedTypes set.\n AssignReservedType: ({ reservedType }: { reservedType: string }) =>\n `Cannot overwrite reserved type ${reservedType}.`,\n DeclareClassElement:\n \"The `declare` modifier can only appear on class fields.\",\n DeclareClassFieldInitializer:\n \"Initializers are not allowed in fields with the `declare` modifier.\",\n DuplicateDeclareModuleExports:\n \"Duplicate `declare module.exports` statement.\",\n EnumBooleanMemberNotInitialized: ({\n memberName,\n enumName,\n }: {\n memberName: string;\n enumName: string;\n }) =>\n `Boolean enum members need to be initialized. Use either \\`${memberName} = true,\\` or \\`${memberName} = false,\\` in enum \\`${enumName}\\`.`,\n EnumDuplicateMemberName: ({\n memberName,\n enumName,\n }: {\n memberName: string;\n enumName: string;\n }) =>\n `Enum member names need to be unique, but the name \\`${memberName}\\` has already been used before in enum \\`${enumName}\\`.`,\n EnumInconsistentMemberValues: ({ enumName }: { enumName: string }) =>\n `Enum \\`${enumName}\\` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.`,\n EnumInvalidExplicitType: ({\n invalidEnumType,\n enumName,\n }: {\n invalidEnumType: string;\n enumName: string;\n }) =>\n `Enum type \\`${invalidEnumType}\\` is not valid. Use one of \\`boolean\\`, \\`number\\`, \\`string\\`, or \\`symbol\\` in enum \\`${enumName}\\`.`,\n EnumInvalidExplicitTypeUnknownSupplied: ({\n enumName,\n }: {\n enumName: string;\n }) =>\n `Supplied enum type is not valid. Use one of \\`boolean\\`, \\`number\\`, \\`string\\`, or \\`symbol\\` in enum \\`${enumName}\\`.`,\n\n // TODO: When moving to typescript, we should either have each of the\n // following errors only accept the specific strings they want:\n //\n // ...PrimaryType: explicitType: \"string\" | \"number\" | \"boolean\"\n // ...SymbolType: explicitType: \"symbol\"\n // ...UnknownType: explicitType: null\n //\n // Or, alternatively, merge these three errors together into one\n // `EnumInvalidMemberInitializer` error that can accept `EnumExplicitType`\n // without alteration, and then just have its message change based on the\n // explicitType.\n EnumInvalidMemberInitializerPrimaryType: ({\n enumName,\n memberName,\n explicitType,\n }: {\n enumName: string;\n memberName: string;\n explicitType: EnumExplicitType;\n }) =>\n `Enum \\`${enumName}\\` has type \\`${explicitType}\\`, so the initializer of \\`${memberName}\\` needs to be a ${explicitType} literal.`,\n EnumInvalidMemberInitializerSymbolType: ({\n enumName,\n memberName,\n }: {\n enumName: string;\n memberName: string;\n explicitType: EnumExplicitType;\n }) =>\n `Symbol enum members cannot be initialized. Use \\`${memberName},\\` in enum \\`${enumName}\\`.`,\n EnumInvalidMemberInitializerUnknownType: ({\n enumName,\n memberName,\n }: {\n enumName: string;\n memberName: string;\n explicitType: EnumExplicitType;\n }) =>\n `The enum member initializer for \\`${memberName}\\` needs to be a literal (either a boolean, number, or string) in enum \\`${enumName}\\`.`,\n EnumInvalidMemberName: ({\n enumName,\n memberName,\n suggestion,\n }: {\n enumName: string;\n memberName: string;\n suggestion: string;\n }) =>\n `Enum member names cannot start with lowercase 'a' through 'z'. Instead of using \\`${memberName}\\`, consider using \\`${suggestion}\\`, in enum \\`${enumName}\\`.`,\n EnumNumberMemberNotInitialized: ({\n enumName,\n memberName,\n }: {\n enumName: string;\n memberName: string;\n }) =>\n `Number enum members need to be initialized, e.g. \\`${memberName} = 1\\` in enum \\`${enumName}\\`.`,\n EnumStringMemberInconsistentlyInitialized: ({\n enumName,\n }: {\n enumName: string;\n }) =>\n `String enum members need to consistently either all use initializers, or use no initializers, in enum \\`${enumName}\\`.`,\n GetterMayNotHaveThisParam: \"A getter cannot have a `this` parameter.\",\n ImportReflectionHasImportType:\n \"An `import module` declaration can not use `type` or `typeof` keyword.\",\n ImportTypeShorthandOnlyInPureImport:\n \"The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements.\",\n InexactInsideExact:\n \"Explicit inexact syntax cannot appear inside an explicit exact object type.\",\n InexactInsideNonObject:\n \"Explicit inexact syntax cannot appear in class or interface definitions.\",\n InexactVariance: \"Explicit inexact syntax cannot have variance.\",\n InvalidNonTypeImportInDeclareModule:\n \"Imports within a `declare module` body must always be `import type` or `import typeof`.\",\n MissingTypeParamDefault:\n \"Type parameter declaration needs a default, since a preceding type parameter declaration has a default.\",\n NestedDeclareModule:\n \"`declare module` cannot be used inside another `declare module`.\",\n NestedFlowComment: \"Cannot have a flow comment inside another flow comment.\",\n PatternIsOptional: {\n message:\n \"A binding pattern parameter cannot be optional in an implementation signature.\",\n // For consistency in TypeScript and Flow error codes\n ...(!process.env.BABEL_8_BREAKING\n ? { reasonCode: \"OptionalBindingPattern\" }\n : {}),\n },\n SetterMayNotHaveThisParam: \"A setter cannot have a `this` parameter.\",\n SpreadVariance: \"Spread properties cannot have variance.\",\n ThisParamAnnotationRequired:\n \"A type annotation is required for the `this` parameter.\",\n ThisParamBannedInConstructor:\n \"Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.\",\n ThisParamMayNotBeOptional: \"The `this` parameter cannot be optional.\",\n ThisParamMustBeFirst:\n \"The `this` parameter must be the first function parameter.\",\n ThisParamNoDefault: \"The `this` parameter may not have a default value.\",\n TypeBeforeInitializer:\n \"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.\",\n TypeCastInPattern:\n \"The type cast expression is expected to be wrapped with parenthesis.\",\n UnexpectedExplicitInexactInObject:\n \"Explicit inexact syntax must appear at the end of an inexact object.\",\n UnexpectedReservedType: ({ reservedType }: { reservedType: string }) =>\n `Unexpected reserved type ${reservedType}.`,\n UnexpectedReservedUnderscore:\n \"`_` is only allowed as a type argument to call or new.\",\n UnexpectedSpaceBetweenModuloChecks:\n \"Spaces between `%` and `checks` are not allowed here.\",\n UnexpectedSpreadType:\n \"Spread operator cannot appear in class or interface definitions.\",\n UnexpectedSubtractionOperand:\n 'Unexpected token, expected \"number\" or \"bigint\".',\n UnexpectedTokenAfterTypeParameter:\n \"Expected an arrow function after this type parameter declaration.\",\n UnexpectedTypeParameterBeforeAsyncArrowFunction:\n \"Type parameters must come after the async keyword, e.g. instead of ` async () => {}`, use `async () => {}`.\",\n UnsupportedDeclareExportKind: ({\n unsupportedExportKind,\n suggestion,\n }: {\n unsupportedExportKind: string;\n suggestion: string;\n }) =>\n `\\`declare export ${unsupportedExportKind}\\` is not supported. Use \\`${suggestion}\\` instead.`,\n UnsupportedStatementInDeclareModule:\n \"Only declares and type imports are allowed inside declare module.\",\n UnterminatedFlowComment: \"Unterminated flow-comment.\",\n});\n/* eslint-disable sort-keys */\n\nfunction isEsModuleType(bodyElement: N.Node): boolean {\n return (\n bodyElement.type === \"DeclareExportAllDeclaration\" ||\n (bodyElement.type === \"DeclareExportDeclaration\" &&\n (!bodyElement.declaration ||\n (bodyElement.declaration.type !== \"TypeAlias\" &&\n bodyElement.declaration.type !== \"InterfaceDeclaration\")))\n );\n}\n\nfunction hasTypeImportKind(\n node: Undone,\n): boolean {\n return node.importKind === \"type\" || node.importKind === \"typeof\";\n}\n\nconst exportSuggestions = {\n const: \"declare export var\",\n let: \"declare export var\",\n type: \"export type\",\n interface: \"export interface\",\n};\n\n// Like Array#filter, but returns a tuple [ acceptedElements, discardedElements ]\nfunction partition(\n list: T[],\n test: (c: T, b: number, a: T[]) => boolean | undefined | null,\n): [T[], T[]] {\n const list1: T[] = [];\n const list2: T[] = [];\n for (let i = 0; i < list.length; i++) {\n (test(list[i], i, list) ? list1 : list2).push(list[i]);\n }\n return [list1, list2];\n}\n\nconst FLOW_PRAGMA_REGEX = /\\*?\\s*@((?:no)?flow)\\b/;\n\n// Flow enums types\ntype EnumExplicitType = null | \"boolean\" | \"number\" | \"string\" | \"symbol\";\n\ntype EnumContext = {\n enumName: string;\n explicitType: EnumExplicitType;\n memberName: string;\n};\n\ntype EnumMemberInit =\n | {\n type: \"number\";\n loc: Position;\n value: N.Node;\n }\n | {\n type: \"string\";\n loc: Position;\n value: N.Node;\n }\n | {\n type: \"boolean\";\n loc: Position;\n value: N.Node;\n }\n | {\n type: \"invalid\";\n loc: Position;\n }\n | {\n type: \"none\";\n loc: Position;\n };\n\nexport default (superClass: ClassWithMixin) =>\n class FlowParserMixin extends superClass implements Parser {\n // The value of the @flow/@noflow pragma. Initially undefined, transitions\n // to \"@flow\" or \"@noflow\" if we see a pragma. Transitions to null if we are\n // past the initial comment.\n flowPragma: void | null | \"flow\" | \"noflow\" = undefined;\n\n getScopeHandler(): new (...args: any) => FlowScopeHandler {\n return FlowScopeHandler;\n }\n\n shouldParseTypes(): boolean {\n return this.getPluginOption(\"flow\", \"all\") || this.flowPragma === \"flow\";\n }\n\n finishToken(type: TokenType, val: any): void {\n if (\n type !== tt.string &&\n type !== tt.semi &&\n type !== tt.interpreterDirective\n ) {\n if (this.flowPragma === undefined) {\n this.flowPragma = null;\n }\n }\n super.finishToken(type, val);\n }\n\n addComment(comment: N.Comment): void {\n if (this.flowPragma === undefined) {\n // Try to parse a flow pragma.\n const matches = FLOW_PRAGMA_REGEX.exec(comment.value);\n if (!matches) {\n // do nothing\n } else if (matches[1] === \"flow\") {\n this.flowPragma = \"flow\";\n } else if (matches[1] === \"noflow\") {\n this.flowPragma = \"noflow\";\n } else {\n throw new Error(\"Unexpected flow pragma\");\n }\n }\n super.addComment(comment);\n }\n\n flowParseTypeInitialiser(tok?: TokenType): N.FlowType {\n const oldInType = this.state.inType;\n this.state.inType = true;\n this.expect(tok || tt.colon);\n\n const type = this.flowParseType();\n this.state.inType = oldInType;\n return type;\n }\n\n flowParsePredicate(): N.FlowPredicate {\n const node = this.startNode();\n const moduloLoc = this.state.startLoc;\n this.next(); // eat `%`\n this.expectContextual(tt._checks);\n // Force '%' and 'checks' to be adjacent\n if (this.state.lastTokStartLoc!.index > moduloLoc.index + 1) {\n this.raise(FlowErrors.UnexpectedSpaceBetweenModuloChecks, moduloLoc);\n }\n if (this.eat(tt.parenL)) {\n node.value = super.parseExpression();\n this.expect(tt.parenR);\n return this.finishNode(node, \"DeclaredPredicate\");\n } else {\n return this.finishNode(node, \"InferredPredicate\");\n }\n }\n\n flowParseTypeAndPredicateInitialiser(): [\n N.FlowType | null,\n N.FlowPredicate | null,\n ] {\n const oldInType = this.state.inType;\n this.state.inType = true;\n this.expect(tt.colon);\n let type = null;\n let predicate = null;\n if (this.match(tt.modulo)) {\n this.state.inType = oldInType;\n predicate = this.flowParsePredicate();\n } else {\n type = this.flowParseType();\n this.state.inType = oldInType;\n if (this.match(tt.modulo)) {\n predicate = this.flowParsePredicate();\n }\n }\n return [type, predicate];\n }\n\n flowParseDeclareClass(\n node: Undone,\n ): N.FlowDeclareClass {\n this.next();\n this.flowParseInterfaceish(node, /*isClass*/ true);\n return this.finishNode(node, \"DeclareClass\");\n }\n\n flowParseDeclareFunction(\n node: Undone,\n ): N.FlowDeclareFunction {\n this.next();\n\n const id = (node.id = this.parseIdentifier());\n\n const typeNode = this.startNode();\n const typeContainer = this.startNode();\n\n if (this.match(tt.lt)) {\n typeNode.typeParameters = this.flowParseTypeParameterDeclaration();\n } else {\n typeNode.typeParameters = null;\n }\n\n this.expect(tt.parenL);\n const tmp = this.flowParseFunctionTypeParams();\n typeNode.params = tmp.params;\n typeNode.rest = tmp.rest;\n typeNode.this = tmp._this;\n this.expect(tt.parenR);\n\n [typeNode.returnType, node.predicate] =\n this.flowParseTypeAndPredicateInitialiser();\n\n typeContainer.typeAnnotation = this.finishNode(\n typeNode,\n \"FunctionTypeAnnotation\",\n );\n\n id.typeAnnotation = this.finishNode(typeContainer, \"TypeAnnotation\");\n\n this.resetEndLocation(id);\n this.semicolon();\n\n this.scope.declareName(\n node.id.name,\n BindingFlag.TYPE_FLOW_DECLARE_FN,\n node.id.loc.start,\n );\n\n return this.finishNode(node, \"DeclareFunction\");\n }\n\n flowParseDeclare(\n node: Undone,\n insideModule?: boolean,\n ): N.FlowDeclare {\n if (this.match(tt._class)) {\n return this.flowParseDeclareClass(node);\n } else if (this.match(tt._function)) {\n return this.flowParseDeclareFunction(node);\n } else if (this.match(tt._var)) {\n return this.flowParseDeclareVariable(node);\n } else if (this.eatContextual(tt._module)) {\n if (this.match(tt.dot)) {\n return this.flowParseDeclareModuleExports(node);\n } else {\n if (insideModule) {\n this.raise(\n FlowErrors.NestedDeclareModule,\n this.state.lastTokStartLoc!,\n );\n }\n return this.flowParseDeclareModule(node);\n }\n } else if (this.isContextual(tt._type)) {\n return this.flowParseDeclareTypeAlias(node);\n } else if (this.isContextual(tt._opaque)) {\n return this.flowParseDeclareOpaqueType(node);\n } else if (this.isContextual(tt._interface)) {\n return this.flowParseDeclareInterface(node);\n } else if (this.match(tt._export)) {\n return this.flowParseDeclareExportDeclaration(node, insideModule);\n }\n throw this.unexpected();\n }\n\n flowParseDeclareVariable(\n node: Undone,\n ): N.FlowDeclareVariable {\n this.next();\n node.id = this.flowParseTypeAnnotatableIdentifier();\n this.scope.declareName(\n node.id.name,\n BindingFlag.TYPE_VAR,\n node.id.loc.start,\n );\n this.semicolon();\n return this.finishNode(node, \"DeclareVariable\");\n }\n\n flowParseDeclareModule(\n node: Undone,\n ): N.FlowDeclareModule {\n this.scope.enter(ScopeFlag.OTHER);\n\n if (this.match(tt.string)) {\n node.id = super.parseExprAtom();\n } else {\n node.id = this.parseIdentifier();\n }\n\n const bodyNode = (node.body = this.startNode());\n const body: N.Statement[] = (bodyNode.body = []);\n this.expect(tt.braceL);\n while (!this.match(tt.braceR)) {\n const bodyNode = this.startNode();\n\n if (this.match(tt._import)) {\n this.next();\n if (!this.isContextual(tt._type) && !this.match(tt._typeof)) {\n this.raise(\n FlowErrors.InvalidNonTypeImportInDeclareModule,\n this.state.lastTokStartLoc!,\n );\n }\n body.push(super.parseImport(bodyNode));\n } else {\n this.expectContextual(\n tt._declare,\n FlowErrors.UnsupportedStatementInDeclareModule,\n );\n body.push(this.flowParseDeclare(bodyNode, true));\n }\n }\n\n this.scope.exit();\n\n this.expect(tt.braceR);\n\n this.finishNode(bodyNode, \"BlockStatement\");\n\n let kind: \"CommonJS\" | \"ES\" | null = null;\n let hasModuleExport = false;\n body.forEach(bodyElement => {\n if (isEsModuleType(bodyElement)) {\n if (kind === \"CommonJS\") {\n this.raise(FlowErrors.AmbiguousDeclareModuleKind, bodyElement);\n }\n kind = \"ES\";\n } else if (bodyElement.type === \"DeclareModuleExports\") {\n if (hasModuleExport) {\n this.raise(FlowErrors.DuplicateDeclareModuleExports, bodyElement);\n }\n if (kind === \"ES\") {\n this.raise(FlowErrors.AmbiguousDeclareModuleKind, bodyElement);\n }\n kind = \"CommonJS\";\n hasModuleExport = true;\n }\n });\n\n node.kind = kind || \"CommonJS\";\n return this.finishNode(node, \"DeclareModule\");\n }\n\n flowParseDeclareExportDeclaration(\n node: Undone,\n insideModule?: boolean | null,\n ): N.FlowDeclareExportDeclaration {\n this.expect(tt._export);\n\n if (this.eat(tt._default)) {\n if (this.match(tt._function) || this.match(tt._class)) {\n // declare export default class ...\n // declare export default function ...\n node.declaration = this.flowParseDeclare(this.startNode());\n } else {\n // declare export default [type];\n node.declaration = this.flowParseType();\n this.semicolon();\n }\n node.default = true;\n\n return this.finishNode(node, \"DeclareExportDeclaration\");\n } else {\n if (\n this.match(tt._const) ||\n this.isLet() ||\n ((this.isContextual(tt._type) || this.isContextual(tt._interface)) &&\n !insideModule)\n ) {\n const label = this.state.value as\n | \"const\"\n | \"let\"\n | \"type\"\n | \"interface\";\n throw this.raise(\n FlowErrors.UnsupportedDeclareExportKind,\n this.state.startLoc,\n {\n unsupportedExportKind: label,\n suggestion: exportSuggestions[label],\n },\n );\n }\n\n if (\n this.match(tt._var) || // declare export var ...\n this.match(tt._function) || // declare export function ...\n this.match(tt._class) || // declare export class ...\n this.isContextual(tt._opaque) // declare export opaque ..\n ) {\n node.declaration = this.flowParseDeclare(this.startNode());\n node.default = false;\n\n return this.finishNode(node, \"DeclareExportDeclaration\");\n } else if (\n this.match(tt.star) || // declare export * from ''\n this.match(tt.braceL) || // declare export {} ...\n this.isContextual(tt._interface) || // declare export interface ...\n this.isContextual(tt._type) || // declare export type ...\n this.isContextual(tt._opaque) // declare export opaque type ...\n ) {\n node = this.parseExport(\n node as Undone,\n /* decorators */ null,\n );\n if (node.type === \"ExportNamedDeclaration\") {\n node.default = false;\n delete node.exportKind;\n return this.castNodeTo(\n node as N.ExportNamedDeclaration,\n \"DeclareExportDeclaration\",\n );\n } else {\n return this.castNodeTo(\n node as N.ExportAllDeclaration,\n \"DeclareExportAllDeclaration\",\n );\n }\n }\n }\n\n throw this.unexpected();\n }\n\n flowParseDeclareModuleExports(\n node: Undone,\n ): N.FlowDeclareModuleExports {\n this.next();\n this.expectContextual(tt._exports);\n node.typeAnnotation = this.flowParseTypeAnnotation();\n this.semicolon();\n\n return this.finishNode(node, \"DeclareModuleExports\");\n }\n\n flowParseDeclareTypeAlias(\n node: Undone,\n ): N.FlowDeclareTypeAlias {\n this.next();\n const finished = this.flowParseTypeAlias(\n node,\n ) as unknown as N.FlowDeclareTypeAlias;\n // Don't do finishNode as we don't want to process comments twice\n this.castNodeTo(finished, \"DeclareTypeAlias\");\n return finished;\n }\n\n flowParseDeclareOpaqueType(\n node: Undone,\n ): N.FlowDeclareOpaqueType {\n this.next();\n const finished = this.flowParseOpaqueType(\n node,\n true,\n ) as unknown as N.FlowDeclareOpaqueType;\n // Don't do finishNode as we don't want to process comments twice\n this.castNodeTo(finished, \"DeclareOpaqueType\");\n return finished;\n }\n\n flowParseDeclareInterface(\n node: Undone,\n ): N.FlowDeclareInterface {\n this.next();\n this.flowParseInterfaceish(node, /* isClass */ false);\n return this.finishNode(node, \"DeclareInterface\");\n }\n\n // Interfaces\n\n flowParseInterfaceish(node: Undone, isClass: boolean): void {\n node.id = this.flowParseRestrictedIdentifier(\n /* liberal */ !isClass,\n /* declaration */ true,\n );\n\n this.scope.declareName(\n node.id.name,\n isClass ? BindingFlag.TYPE_FUNCTION : BindingFlag.TYPE_LEXICAL,\n node.id.loc.start,\n );\n\n if (this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n } else {\n node.typeParameters = null;\n }\n\n node.extends = [];\n\n if (this.eat(tt._extends)) {\n do {\n node.extends.push(this.flowParseInterfaceExtends());\n } while (!isClass && this.eat(tt.comma));\n }\n\n if (isClass) {\n node.implements = [];\n node.mixins = [];\n\n if (this.eatContextual(tt._mixins)) {\n do {\n node.mixins.push(this.flowParseInterfaceExtends());\n } while (this.eat(tt.comma));\n }\n\n if (this.eatContextual(tt._implements)) {\n do {\n node.implements.push(this.flowParseInterfaceExtends());\n } while (this.eat(tt.comma));\n }\n }\n\n node.body = this.flowParseObjectType({\n allowStatic: isClass,\n allowExact: false,\n allowSpread: false,\n allowProto: isClass,\n allowInexact: false,\n });\n }\n\n flowParseInterfaceExtends(): N.FlowInterfaceExtends {\n const node = this.startNode();\n\n node.id = this.flowParseQualifiedTypeIdentifier();\n if (this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterInstantiation();\n } else {\n node.typeParameters = null;\n }\n\n return this.finishNode(node, \"InterfaceExtends\");\n }\n\n flowParseInterface(node: Undone): N.FlowInterface {\n this.flowParseInterfaceish(node, /* isClass */ false);\n return this.finishNode(node, \"InterfaceDeclaration\");\n }\n\n checkNotUnderscore(word: string) {\n if (word === \"_\") {\n this.raise(\n FlowErrors.UnexpectedReservedUnderscore,\n this.state.startLoc,\n );\n }\n }\n\n checkReservedType(word: string, startLoc: Position, declaration?: boolean) {\n if (!reservedTypes.has(word)) return;\n\n this.raise(\n declaration\n ? FlowErrors.AssignReservedType\n : FlowErrors.UnexpectedReservedType,\n startLoc,\n {\n reservedType: word,\n },\n );\n }\n\n flowParseRestrictedIdentifierName(\n liberal?: boolean,\n declaration?: boolean,\n ): string {\n this.checkReservedType(\n this.state.value,\n this.state.startLoc,\n declaration,\n );\n return this.parseIdentifierName(liberal);\n }\n\n flowParseRestrictedIdentifier(\n liberal?: boolean,\n declaration?: boolean,\n ): N.Identifier {\n const node = this.startNode();\n const name = this.flowParseRestrictedIdentifierName(liberal, declaration);\n return this.createIdentifier(node, name);\n }\n\n // Type aliases\n\n flowParseTypeAlias(node: Undone): N.FlowTypeAlias {\n node.id = this.flowParseRestrictedIdentifier(\n /* liberal */ false,\n /* declaration */ true,\n );\n this.scope.declareName(\n node.id.name,\n BindingFlag.TYPE_LEXICAL,\n node.id.loc.start,\n );\n\n if (this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n } else {\n node.typeParameters = null;\n }\n\n node.right = this.flowParseTypeInitialiser(tt.eq);\n this.semicolon();\n\n return this.finishNode(node, \"TypeAlias\");\n }\n\n flowParseOpaqueType(\n node: Undone,\n declare: boolean,\n ): N.FlowOpaqueType {\n this.expectContextual(tt._type);\n node.id = this.flowParseRestrictedIdentifier(\n /* liberal */ true,\n /* declaration */ true,\n );\n this.scope.declareName(\n node.id.name,\n BindingFlag.TYPE_LEXICAL,\n node.id.loc.start,\n );\n\n if (this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n } else {\n node.typeParameters = null;\n }\n\n // Parse the supertype\n node.supertype = null;\n if (this.match(tt.colon)) {\n node.supertype = this.flowParseTypeInitialiser(tt.colon);\n }\n\n node.impltype = null;\n if (!declare) {\n node.impltype = this.flowParseTypeInitialiser(tt.eq);\n }\n this.semicolon();\n\n return this.finishNode(node, \"OpaqueType\");\n }\n\n // Type annotations\n\n flowParseTypeParameterBound(): N.TypeAnnotation | undefined {\n if (this.match(tt.colon) || this.isContextual(tt._extends)) {\n const node = this.startNode();\n this.next();\n node.typeAnnotation = this.flowParseType();\n return this.finishNode(node, \"TypeAnnotation\");\n }\n }\n\n flowParseTypeParameter(requireDefault: boolean = false): N.TypeParameter {\n const nodeStartLoc = this.state.startLoc;\n\n const node = this.startNode();\n const variance = this.flowParseVariance();\n\n node.name = this.flowParseRestrictedIdentifierName();\n // @ts-expect-error migrate to Babel types\n node.variance = variance;\n // @ts-expect-error migrate to Babel types\n node.bound = this.flowParseTypeParameterBound();\n\n if (this.match(tt.eq)) {\n this.eat(tt.eq);\n // @ts-expect-error migrate to Babel types\n node.default = this.flowParseType();\n } else {\n if (requireDefault) {\n this.raise(FlowErrors.MissingTypeParamDefault, nodeStartLoc);\n }\n }\n\n return this.finishNode(node, \"TypeParameter\");\n }\n\n flowParseTypeParameterDeclaration(): N.TypeParameterDeclaration {\n const oldInType = this.state.inType;\n const node = this.startNode();\n node.params = [];\n\n this.state.inType = true;\n\n // istanbul ignore else: this condition is already checked at all call sites\n if (this.match(tt.lt) || this.match(tt.jsxTagStart)) {\n this.next();\n } else {\n this.unexpected();\n }\n\n let defaultRequired = false;\n\n do {\n const typeParameter = this.flowParseTypeParameter(defaultRequired);\n\n node.params.push(typeParameter);\n\n if (typeParameter.default) {\n defaultRequired = true;\n }\n\n if (!this.match(tt.gt)) {\n this.expect(tt.comma);\n }\n } while (!this.match(tt.gt));\n this.expect(tt.gt);\n\n this.state.inType = oldInType;\n\n return this.finishNode(node, \"TypeParameterDeclaration\");\n }\n\n // Parse in top level normal context if we are in a JSX context\n flowInTopLevelContext(cb: () => T): T {\n if (this.curContext() !== tc.brace) {\n const oldContext = this.state.context;\n this.state.context = [oldContext[0]];\n try {\n return cb();\n } finally {\n this.state.context = oldContext;\n }\n } else {\n return cb();\n }\n }\n\n // Used when parsing type arguments from ES or JSX productions, where the first token\n // has been created without state.inType. Thus we need to re-scan the lt token.\n flowParseTypeParameterInstantiationInExpression():\n | N.TypeParameterInstantiation\n | undefined {\n if (this.reScan_lt() !== tt.lt) return;\n return this.flowParseTypeParameterInstantiation();\n }\n\n flowParseTypeParameterInstantiation(): N.TypeParameterInstantiation {\n const node = this.startNode();\n const oldInType = this.state.inType;\n\n this.state.inType = true;\n node.params = [];\n this.flowInTopLevelContext(() => {\n this.expect(tt.lt);\n const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n this.state.noAnonFunctionType = false;\n while (!this.match(tt.gt)) {\n node.params.push(this.flowParseType());\n if (!this.match(tt.gt)) {\n this.expect(tt.comma);\n }\n }\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n });\n\n this.state.inType = oldInType;\n if (!this.state.inType && this.curContext() === tc.brace) {\n // rescan `>` when we are no longer in type context and JSX parsing context\n // since it was tokenized when `inType` is `true`.\n this.reScan_lt_gt();\n }\n this.expect(tt.gt);\n\n return this.finishNode(node, \"TypeParameterInstantiation\");\n }\n\n flowParseTypeParameterInstantiationCallOrNew(): N.TypeParameterInstantiation | null {\n if (this.reScan_lt() !== tt.lt) return null;\n const node = this.startNode();\n const oldInType = this.state.inType;\n node.params = [];\n\n this.state.inType = true;\n\n this.expect(tt.lt);\n while (!this.match(tt.gt)) {\n node.params.push(this.flowParseTypeOrImplicitInstantiation());\n if (!this.match(tt.gt)) {\n this.expect(tt.comma);\n }\n }\n this.expect(tt.gt);\n\n this.state.inType = oldInType;\n\n return this.finishNode(node, \"TypeParameterInstantiation\");\n }\n\n flowParseInterfaceType(): N.FlowInterfaceType {\n const node = this.startNode();\n this.expectContextual(tt._interface);\n\n node.extends = [];\n if (this.eat(tt._extends)) {\n do {\n node.extends.push(this.flowParseInterfaceExtends());\n } while (this.eat(tt.comma));\n }\n\n node.body = this.flowParseObjectType({\n allowStatic: false,\n allowExact: false,\n allowSpread: false,\n allowProto: false,\n allowInexact: false,\n });\n\n return this.finishNode(node, \"InterfaceTypeAnnotation\");\n }\n\n flowParseObjectPropertyKey(): N.Expression {\n return this.match(tt.num) || this.match(tt.string)\n ? super.parseExprAtom()\n : this.parseIdentifier(true);\n }\n\n flowParseObjectTypeIndexer(\n node: Undone,\n isStatic: boolean,\n variance?: N.FlowVariance | null,\n ): N.FlowObjectTypeIndexer {\n node.static = isStatic;\n\n // Note: bracketL has already been consumed\n if (this.lookahead().type === tt.colon) {\n node.id = this.flowParseObjectPropertyKey();\n node.key = this.flowParseTypeInitialiser();\n } else {\n node.id = null;\n node.key = this.flowParseType();\n }\n this.expect(tt.bracketR);\n node.value = this.flowParseTypeInitialiser();\n node.variance = variance;\n\n return this.finishNode(node, \"ObjectTypeIndexer\");\n }\n\n flowParseObjectTypeInternalSlot(\n node: Undone,\n isStatic: boolean,\n ): N.FlowObjectTypeInternalSlot {\n node.static = isStatic;\n // Note: both bracketL have already been consumed\n node.id = this.flowParseObjectPropertyKey();\n this.expect(tt.bracketR);\n this.expect(tt.bracketR);\n if (this.match(tt.lt) || this.match(tt.parenL)) {\n node.method = true;\n node.optional = false;\n node.value = this.flowParseObjectTypeMethodish(\n this.startNodeAt(node.loc.start),\n );\n } else {\n node.method = false;\n if (this.eat(tt.question)) {\n node.optional = true;\n }\n node.value = this.flowParseTypeInitialiser();\n }\n return this.finishNode(node, \"ObjectTypeInternalSlot\");\n }\n\n flowParseObjectTypeMethodish(\n node: Undone,\n ): N.FlowFunctionTypeAnnotation {\n node.params = [];\n node.rest = null;\n node.typeParameters = null;\n node.this = null;\n\n if (this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n\n this.expect(tt.parenL);\n if (this.match(tt._this)) {\n node.this = this.flowParseFunctionTypeParam(/* first */ true);\n // match Flow parser behavior\n node.this.name = null;\n if (!this.match(tt.parenR)) {\n this.expect(tt.comma);\n }\n }\n while (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n node.params.push(this.flowParseFunctionTypeParam(false));\n if (!this.match(tt.parenR)) {\n this.expect(tt.comma);\n }\n }\n\n if (this.eat(tt.ellipsis)) {\n node.rest = this.flowParseFunctionTypeParam(false);\n }\n this.expect(tt.parenR);\n node.returnType = this.flowParseTypeInitialiser();\n\n return this.finishNode(node, \"FunctionTypeAnnotation\");\n }\n\n flowParseObjectTypeCallProperty(\n node: Undone,\n isStatic: boolean,\n ): N.FlowObjectTypeCallProperty {\n const valueNode = this.startNode();\n node.static = isStatic;\n node.value = this.flowParseObjectTypeMethodish(valueNode);\n return this.finishNode(node, \"ObjectTypeCallProperty\");\n }\n\n flowParseObjectType({\n allowStatic,\n allowExact,\n allowSpread,\n allowProto,\n allowInexact,\n }: {\n allowStatic: boolean;\n allowExact: boolean;\n allowSpread: boolean;\n allowProto: boolean;\n allowInexact: boolean;\n }): N.FlowObjectTypeAnnotation {\n const oldInType = this.state.inType;\n this.state.inType = true;\n\n const nodeStart = this.startNode();\n\n nodeStart.callProperties = [];\n nodeStart.properties = [];\n nodeStart.indexers = [];\n nodeStart.internalSlots = [];\n\n let endDelim;\n let exact;\n let inexact = false;\n if (allowExact && this.match(tt.braceBarL)) {\n this.expect(tt.braceBarL);\n endDelim = tt.braceBarR;\n exact = true;\n } else {\n this.expect(tt.braceL);\n endDelim = tt.braceR;\n exact = false;\n }\n\n nodeStart.exact = exact;\n\n while (!this.match(endDelim)) {\n let isStatic = false;\n let protoStartLoc: Position | undefined | null = null;\n let inexactStartLoc: Position | undefined | null = null;\n const node = this.startNode();\n\n if (allowProto && this.isContextual(tt._proto)) {\n const lookahead = this.lookahead();\n\n if (lookahead.type !== tt.colon && lookahead.type !== tt.question) {\n this.next();\n protoStartLoc = this.state.startLoc;\n allowStatic = false;\n }\n }\n\n if (allowStatic && this.isContextual(tt._static)) {\n const lookahead = this.lookahead();\n\n // static is a valid identifier name\n if (lookahead.type !== tt.colon && lookahead.type !== tt.question) {\n this.next();\n isStatic = true;\n }\n }\n\n const variance = this.flowParseVariance();\n\n if (this.eat(tt.bracketL)) {\n if (protoStartLoc != null) {\n this.unexpected(protoStartLoc);\n }\n if (this.eat(tt.bracketL)) {\n if (variance) {\n this.unexpected(variance.loc.start);\n }\n nodeStart.internalSlots.push(\n this.flowParseObjectTypeInternalSlot(node, isStatic),\n );\n } else {\n nodeStart.indexers.push(\n this.flowParseObjectTypeIndexer(node, isStatic, variance),\n );\n }\n } else if (this.match(tt.parenL) || this.match(tt.lt)) {\n if (protoStartLoc != null) {\n this.unexpected(protoStartLoc);\n }\n if (variance) {\n this.unexpected(variance.loc.start);\n }\n nodeStart.callProperties.push(\n this.flowParseObjectTypeCallProperty(node, isStatic),\n );\n } else {\n let kind = \"init\";\n\n if (this.isContextual(tt._get) || this.isContextual(tt._set)) {\n const lookahead = this.lookahead();\n if (tokenIsLiteralPropertyName(lookahead.type)) {\n kind = this.state.value;\n this.next();\n }\n }\n\n const propOrInexact = this.flowParseObjectTypeProperty(\n node,\n isStatic,\n protoStartLoc,\n variance,\n kind,\n allowSpread,\n allowInexact ?? !exact,\n );\n\n if (propOrInexact === null) {\n inexact = true;\n inexactStartLoc = this.state.lastTokStartLoc;\n } else {\n nodeStart.properties.push(propOrInexact);\n }\n }\n\n this.flowObjectTypeSemicolon();\n\n if (\n inexactStartLoc &&\n !this.match(tt.braceR) &&\n !this.match(tt.braceBarR)\n ) {\n this.raise(\n FlowErrors.UnexpectedExplicitInexactInObject,\n inexactStartLoc,\n );\n }\n }\n\n this.expect(endDelim);\n\n /* The inexact flag should only be added on ObjectTypeAnnotations that\n * are not the body of an interface, declare interface, or declare class.\n * Since spreads are only allowed in object types, checking that is\n * sufficient here.\n */\n if (allowSpread) {\n nodeStart.inexact = inexact;\n }\n\n const out = this.finishNode(nodeStart, \"ObjectTypeAnnotation\");\n\n this.state.inType = oldInType;\n\n return out;\n }\n\n flowParseObjectTypeProperty(\n node: Undone,\n isStatic: boolean,\n protoStartLoc: Position | undefined | null,\n variance: N.FlowVariance | undefined | null,\n kind: string,\n allowSpread: boolean,\n allowInexact: boolean,\n ): N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty | null {\n if (this.eat(tt.ellipsis)) {\n const isInexactToken =\n this.match(tt.comma) ||\n this.match(tt.semi) ||\n this.match(tt.braceR) ||\n this.match(tt.braceBarR);\n\n if (isInexactToken) {\n if (!allowSpread) {\n this.raise(\n FlowErrors.InexactInsideNonObject,\n this.state.lastTokStartLoc!,\n );\n } else if (!allowInexact) {\n this.raise(\n FlowErrors.InexactInsideExact,\n this.state.lastTokStartLoc!,\n );\n }\n if (variance) {\n this.raise(FlowErrors.InexactVariance, variance);\n }\n\n return null;\n }\n\n if (!allowSpread) {\n this.raise(\n FlowErrors.UnexpectedSpreadType,\n this.state.lastTokStartLoc!,\n );\n }\n if (protoStartLoc != null) {\n this.unexpected(protoStartLoc);\n }\n if (variance) {\n this.raise(FlowErrors.SpreadVariance, variance);\n }\n\n node.argument = this.flowParseType();\n return this.finishNode(node, \"ObjectTypeSpreadProperty\");\n } else {\n node.key = this.flowParseObjectPropertyKey();\n node.static = isStatic;\n node.proto = protoStartLoc != null;\n node.kind = kind;\n\n let optional = false;\n if (this.match(tt.lt) || this.match(tt.parenL)) {\n // This is a method property\n node.method = true;\n\n if (protoStartLoc != null) {\n this.unexpected(protoStartLoc);\n }\n if (variance) {\n this.unexpected(variance.loc.start);\n }\n\n node.value = this.flowParseObjectTypeMethodish(\n this.startNodeAt(node.loc.start),\n );\n if (kind === \"get\" || kind === \"set\") {\n this.flowCheckGetterSetterParams(node);\n }\n /** Declared classes/interfaces do not allow spread */\n if (\n !allowSpread &&\n node.key.name === \"constructor\" &&\n node.value.this\n ) {\n this.raise(\n FlowErrors.ThisParamBannedInConstructor,\n node.value.this,\n );\n }\n } else {\n if (kind !== \"init\") this.unexpected();\n\n node.method = false;\n\n if (this.eat(tt.question)) {\n optional = true;\n }\n node.value = this.flowParseTypeInitialiser();\n node.variance = variance;\n }\n\n node.optional = optional;\n\n return this.finishNode(node, \"ObjectTypeProperty\");\n }\n }\n\n // This is similar to checkGetterSetterParams, but as\n // @babel/parser uses non estree properties we cannot reuse it here\n flowCheckGetterSetterParams(\n property: Undone<\n N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty\n >,\n ): void {\n const paramCount = property.kind === \"get\" ? 0 : 1;\n const length =\n property.value.params.length + (property.value.rest ? 1 : 0);\n\n if (property.value.this) {\n this.raise(\n property.kind === \"get\"\n ? FlowErrors.GetterMayNotHaveThisParam\n : FlowErrors.SetterMayNotHaveThisParam,\n property.value.this,\n );\n }\n\n if (length !== paramCount) {\n this.raise(\n property.kind === \"get\"\n ? Errors.BadGetterArity\n : Errors.BadSetterArity,\n property,\n );\n }\n\n if (property.kind === \"set\" && property.value.rest) {\n this.raise(Errors.BadSetterRestParameter, property);\n }\n }\n\n flowObjectTypeSemicolon(): void {\n if (\n !this.eat(tt.semi) &&\n !this.eat(tt.comma) &&\n !this.match(tt.braceR) &&\n !this.match(tt.braceBarR)\n ) {\n this.unexpected();\n }\n }\n\n flowParseQualifiedTypeIdentifier(\n startLoc?: Position,\n id?: N.Identifier,\n ): N.FlowQualifiedTypeIdentifier | N.Identifier {\n startLoc ??= this.state.startLoc;\n let node: N.Identifier | N.FlowQualifiedTypeIdentifier =\n id || this.flowParseRestrictedIdentifier(true);\n\n while (this.eat(tt.dot)) {\n const node2 = this.startNodeAt(startLoc);\n node2.qualification = node;\n node2.id = this.flowParseRestrictedIdentifier(true);\n node = this.finishNode(node2, \"QualifiedTypeIdentifier\");\n }\n\n return node;\n }\n\n flowParseGenericType(\n startLoc: Position,\n id: N.Identifier,\n ): N.FlowGenericTypeAnnotation {\n const node = this.startNodeAt(startLoc);\n\n node.typeParameters = null;\n node.id = this.flowParseQualifiedTypeIdentifier(startLoc, id);\n\n if (this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterInstantiation();\n }\n\n return this.finishNode(node, \"GenericTypeAnnotation\");\n }\n\n flowParseTypeofType(): N.FlowTypeofTypeAnnotation {\n const node = this.startNode();\n this.expect(tt._typeof);\n node.argument = this.flowParsePrimaryType();\n return this.finishNode(node, \"TypeofTypeAnnotation\");\n }\n\n flowParseTupleType(): N.FlowTupleTypeAnnotation {\n const node = this.startNode();\n node.types = [];\n this.expect(tt.bracketL);\n // We allow trailing commas\n while (this.state.pos < this.length && !this.match(tt.bracketR)) {\n node.types.push(this.flowParseType());\n if (this.match(tt.bracketR)) break;\n this.expect(tt.comma);\n }\n this.expect(tt.bracketR);\n return this.finishNode(node, \"TupleTypeAnnotation\");\n }\n\n flowParseFunctionTypeParam(first: boolean): N.FlowFunctionTypeParam {\n let name = null;\n let optional = false;\n let typeAnnotation = null;\n const node = this.startNode();\n const lh = this.lookahead();\n const isThis = this.state.type === tt._this;\n\n if (lh.type === tt.colon || lh.type === tt.question) {\n if (isThis && !first) {\n this.raise(FlowErrors.ThisParamMustBeFirst, node);\n }\n name = this.parseIdentifier(isThis);\n if (this.eat(tt.question)) {\n optional = true;\n if (isThis) {\n this.raise(FlowErrors.ThisParamMayNotBeOptional, node);\n }\n }\n typeAnnotation = this.flowParseTypeInitialiser();\n } else {\n typeAnnotation = this.flowParseType();\n }\n node.name = name;\n node.optional = optional;\n node.typeAnnotation = typeAnnotation;\n return this.finishNode(node, \"FunctionTypeParam\");\n }\n\n reinterpretTypeAsFunctionTypeParam(\n type: N.FlowType,\n ): N.FlowFunctionTypeParam {\n const node = this.startNodeAt(type.loc.start);\n node.name = null;\n node.optional = false;\n node.typeAnnotation = type;\n return this.finishNode(node, \"FunctionTypeParam\");\n }\n\n flowParseFunctionTypeParams(params: N.FlowFunctionTypeParam[] = []): {\n params: N.FlowFunctionTypeParam[];\n rest: N.FlowFunctionTypeParam | undefined | null;\n _this: N.FlowFunctionTypeParam | undefined | null;\n } {\n let rest: N.FlowFunctionTypeParam | undefined | null = null;\n let _this: N.FlowFunctionTypeParam | undefined | null = null;\n if (this.match(tt._this)) {\n _this = this.flowParseFunctionTypeParam(/* first */ true);\n // match Flow parser behavior\n _this.name = null;\n if (!this.match(tt.parenR)) {\n this.expect(tt.comma);\n }\n }\n while (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n params.push(this.flowParseFunctionTypeParam(false));\n if (!this.match(tt.parenR)) {\n this.expect(tt.comma);\n }\n }\n if (this.eat(tt.ellipsis)) {\n rest = this.flowParseFunctionTypeParam(false);\n }\n return { params, rest, _this };\n }\n\n flowIdentToTypeAnnotation(\n startLoc: Position,\n node: Undone,\n id: N.Identifier,\n ): N.FlowType {\n switch (id.name) {\n case \"any\":\n return this.finishNode(node, \"AnyTypeAnnotation\");\n\n case \"bool\":\n case \"boolean\":\n return this.finishNode(node, \"BooleanTypeAnnotation\");\n\n case \"mixed\":\n return this.finishNode(node, \"MixedTypeAnnotation\");\n\n case \"empty\":\n return this.finishNode(node, \"EmptyTypeAnnotation\");\n\n case \"number\":\n return this.finishNode(node, \"NumberTypeAnnotation\");\n\n case \"string\":\n return this.finishNode(node, \"StringTypeAnnotation\");\n\n case \"symbol\":\n return this.finishNode(node, \"SymbolTypeAnnotation\");\n\n default:\n this.checkNotUnderscore(id.name);\n return this.flowParseGenericType(startLoc, id);\n }\n }\n\n // The parsing of types roughly parallels the parsing of expressions, and\n // primary types are kind of like primary expressions...they're the\n // primitives with which other types are constructed.\n flowParsePrimaryType(): N.FlowType {\n const startLoc = this.state.startLoc;\n const node = this.startNode();\n let tmp;\n let type;\n let isGroupedType = false;\n const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n\n switch (this.state.type) {\n case tt.braceL:\n return this.flowParseObjectType({\n allowStatic: false,\n allowExact: false,\n allowSpread: true,\n allowProto: false,\n allowInexact: true,\n });\n\n case tt.braceBarL:\n return this.flowParseObjectType({\n allowStatic: false,\n allowExact: true,\n allowSpread: true,\n allowProto: false,\n allowInexact: false,\n });\n\n case tt.bracketL:\n this.state.noAnonFunctionType = false;\n type = this.flowParseTupleType();\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n return type;\n\n case tt.lt: {\n const node = this.startNode();\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n this.expect(tt.parenL);\n tmp = this.flowParseFunctionTypeParams();\n node.params = tmp.params;\n node.rest = tmp.rest;\n node.this = tmp._this;\n this.expect(tt.parenR);\n\n this.expect(tt.arrow);\n\n node.returnType = this.flowParseType();\n\n return this.finishNode(node, \"FunctionTypeAnnotation\");\n }\n\n case tt.parenL: {\n const node = this.startNode();\n this.next();\n\n // Check to see if this is actually a grouped type\n if (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n if (tokenIsIdentifier(this.state.type) || this.match(tt._this)) {\n const token = this.lookahead().type;\n isGroupedType = token !== tt.question && token !== tt.colon;\n } else {\n isGroupedType = true;\n }\n }\n\n if (isGroupedType) {\n this.state.noAnonFunctionType = false;\n type = this.flowParseType();\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n\n // A `,` or a `) =>` means this is an anonymous function type\n if (\n this.state.noAnonFunctionType ||\n !(\n this.match(tt.comma) ||\n (this.match(tt.parenR) && this.lookahead().type === tt.arrow)\n )\n ) {\n this.expect(tt.parenR);\n return type;\n } else {\n // Eat a comma if there is one\n this.eat(tt.comma);\n }\n }\n\n if (type) {\n tmp = this.flowParseFunctionTypeParams([\n this.reinterpretTypeAsFunctionTypeParam(type),\n ]);\n } else {\n tmp = this.flowParseFunctionTypeParams();\n }\n\n node.params = tmp.params;\n node.rest = tmp.rest;\n node.this = tmp._this;\n\n this.expect(tt.parenR);\n\n this.expect(tt.arrow);\n\n node.returnType = this.flowParseType();\n\n node.typeParameters = null;\n\n return this.finishNode(node, \"FunctionTypeAnnotation\");\n }\n\n case tt.string:\n return this.parseLiteral(\n this.state.value,\n \"StringLiteralTypeAnnotation\",\n );\n\n case tt._true:\n case tt._false:\n node.value = this.match(tt._true);\n this.next();\n return this.finishNode(\n node as Undone,\n \"BooleanLiteralTypeAnnotation\",\n );\n\n case tt.plusMin:\n if (this.state.value === \"-\") {\n this.next();\n if (this.match(tt.num)) {\n return this.parseLiteralAtNode(\n -this.state.value,\n \"NumberLiteralTypeAnnotation\",\n node,\n );\n }\n\n if (this.match(tt.bigint)) {\n return this.parseLiteralAtNode(\n -this.state.value,\n \"BigIntLiteralTypeAnnotation\",\n node,\n );\n }\n\n throw this.raise(\n FlowErrors.UnexpectedSubtractionOperand,\n this.state.startLoc,\n );\n }\n throw this.unexpected();\n case tt.num:\n return this.parseLiteral(\n this.state.value,\n \"NumberLiteralTypeAnnotation\",\n );\n\n case tt.bigint:\n return this.parseLiteral(\n this.state.value,\n \"BigIntLiteralTypeAnnotation\",\n );\n\n case tt._void:\n this.next();\n return this.finishNode(node, \"VoidTypeAnnotation\");\n\n case tt._null:\n this.next();\n return this.finishNode(node, \"NullLiteralTypeAnnotation\");\n\n case tt._this:\n this.next();\n return this.finishNode(node, \"ThisTypeAnnotation\");\n\n case tt.star:\n this.next();\n return this.finishNode(node, \"ExistsTypeAnnotation\");\n\n case tt._typeof:\n return this.flowParseTypeofType();\n\n default:\n if (tokenIsKeyword(this.state.type)) {\n const label = tokenLabelName(this.state.type);\n this.next();\n return super.createIdentifier(node as Undone, label);\n } else if (tokenIsIdentifier(this.state.type)) {\n if (this.isContextual(tt._interface)) {\n return this.flowParseInterfaceType();\n }\n\n return this.flowIdentToTypeAnnotation(\n startLoc,\n node,\n this.parseIdentifier(),\n );\n }\n }\n\n throw this.unexpected();\n }\n\n flowParsePostfixType(): N.FlowType {\n const startLoc = this.state.startLoc;\n let type = this.flowParsePrimaryType();\n let seenOptionalIndexedAccess = false;\n while (\n (this.match(tt.bracketL) || this.match(tt.questionDot)) &&\n !this.canInsertSemicolon()\n ) {\n const node = this.startNodeAt(startLoc);\n const optional = this.eat(tt.questionDot);\n seenOptionalIndexedAccess = seenOptionalIndexedAccess || optional;\n this.expect(tt.bracketL);\n if (!optional && this.match(tt.bracketR)) {\n node.elementType = type;\n this.next(); // eat `]`\n type = this.finishNode(node, \"ArrayTypeAnnotation\");\n } else {\n node.objectType = type;\n node.indexType = this.flowParseType();\n this.expect(tt.bracketR);\n if (seenOptionalIndexedAccess) {\n node.optional = optional;\n type = this.finishNode(\n // @ts-expect-error todo(flow->ts)\n node,\n \"OptionalIndexedAccessType\",\n );\n } else {\n type = this.finishNode(\n // @ts-expect-error todo(flow->ts)\n node,\n \"IndexedAccessType\",\n );\n }\n }\n }\n return type;\n }\n\n flowParsePrefixType(): N.FlowType {\n const node = this.startNode();\n if (this.eat(tt.question)) {\n node.typeAnnotation = this.flowParsePrefixType();\n return this.finishNode(node, \"NullableTypeAnnotation\");\n } else {\n return this.flowParsePostfixType();\n }\n }\n\n flowParseAnonFunctionWithoutParens(): N.FlowType {\n const param = this.flowParsePrefixType();\n if (!this.state.noAnonFunctionType && this.eat(tt.arrow)) {\n // TODO: This should be a type error. Passing in a SourceLocation, and it expects a Position.\n const node = this.startNodeAt(\n param.loc.start,\n );\n node.params = [this.reinterpretTypeAsFunctionTypeParam(param)];\n node.rest = null;\n node.this = null;\n node.returnType = this.flowParseType();\n node.typeParameters = null;\n return this.finishNode(node, \"FunctionTypeAnnotation\");\n }\n return param;\n }\n\n flowParseIntersectionType(): N.FlowType {\n const node = this.startNode();\n this.eat(tt.bitwiseAND);\n const type = this.flowParseAnonFunctionWithoutParens();\n node.types = [type];\n while (this.eat(tt.bitwiseAND)) {\n node.types.push(this.flowParseAnonFunctionWithoutParens());\n }\n return node.types.length === 1\n ? type\n : this.finishNode(node, \"IntersectionTypeAnnotation\");\n }\n\n flowParseUnionType(): N.FlowType {\n const node = this.startNode();\n this.eat(tt.bitwiseOR);\n const type = this.flowParseIntersectionType();\n node.types = [type];\n while (this.eat(tt.bitwiseOR)) {\n node.types.push(this.flowParseIntersectionType());\n }\n return node.types.length === 1\n ? type\n : this.finishNode(node, \"UnionTypeAnnotation\");\n }\n\n flowParseType(): N.FlowType {\n const oldInType = this.state.inType;\n this.state.inType = true;\n const type = this.flowParseUnionType();\n this.state.inType = oldInType;\n return type;\n }\n\n flowParseTypeOrImplicitInstantiation(): N.FlowType {\n if (this.state.type === tt.name && this.state.value === \"_\") {\n const startLoc = this.state.startLoc;\n const node = this.parseIdentifier();\n return this.flowParseGenericType(startLoc, node);\n } else {\n return this.flowParseType();\n }\n }\n\n flowParseTypeAnnotation(): N.TypeAnnotation {\n const node = this.startNode();\n node.typeAnnotation = this.flowParseTypeInitialiser();\n return this.finishNode(node, \"TypeAnnotation\");\n }\n\n flowParseTypeAnnotatableIdentifier(): N.Identifier {\n const node = this.startNode();\n const name = this.parseIdentifierName();\n if (this.match(tt.colon)) {\n node.typeAnnotation = this.flowParseTypeAnnotation();\n }\n return this.createIdentifier(node, name);\n }\n\n typeCastToParameter(node: N.TypeCastExpression): N.Expression {\n (node.expression as N.Identifier).typeAnnotation = node.typeAnnotation;\n\n this.resetEndLocation(node.expression, node.typeAnnotation.loc.end);\n\n return node.expression;\n }\n\n flowParseVariance(): N.FlowVariance | undefined | null {\n let variance = null;\n if (this.match(tt.plusMin)) {\n variance = this.startNode();\n if (this.state.value === \"+\") {\n variance.kind = \"plus\";\n } else {\n variance.kind = \"minus\";\n }\n this.next();\n return this.finishNode(variance, \"Variance\");\n }\n return variance;\n }\n\n // ==================================\n // Overrides\n // ==================================\n\n parseFunctionBody(\n node: N.Function,\n allowExpressionBody?: boolean | null,\n isMethod: boolean = false,\n ): void {\n if (allowExpressionBody) {\n this.forwardNoArrowParamsConversionAt(node, () =>\n super.parseFunctionBody(node, true, isMethod),\n );\n return;\n }\n\n super.parseFunctionBody(node, false, isMethod);\n }\n\n parseFunctionBodyAndFinish<\n T extends\n | N.Function\n | N.TSDeclareMethod\n | N.TSDeclareFunction\n | N.ClassPrivateMethod,\n >(node: Undone, type: T[\"type\"], isMethod: boolean = false): T {\n if (this.match(tt.colon)) {\n const typeNode = this.startNode();\n\n [\n typeNode.typeAnnotation,\n // @ts-expect-error predicate may not exist\n node.predicate,\n ] = this.flowParseTypeAndPredicateInitialiser() as [\n N.FlowType,\n N.FlowPredicate,\n ];\n\n node.returnType = typeNode.typeAnnotation\n ? this.finishNode(typeNode, \"TypeAnnotation\")\n : null;\n }\n\n return super.parseFunctionBodyAndFinish(node, type, isMethod);\n }\n\n // interfaces and enums\n parseStatementLike(flags: ParseStatementFlag): N.Statement {\n // strict mode handling of `interface` since it's a reserved word\n if (this.state.strict && this.isContextual(tt._interface)) {\n const lookahead = this.lookahead();\n if (tokenIsKeywordOrIdentifier(lookahead.type)) {\n const node = this.startNode();\n this.next();\n return this.flowParseInterface(node);\n }\n } else if (this.isContextual(tt._enum)) {\n const node = this.startNode();\n this.next();\n return this.flowParseEnumDeclaration(node);\n }\n const stmt = super.parseStatementLike(flags);\n // We will parse a flow pragma in any comment before the first statement.\n if (this.flowPragma === undefined && !this.isValidDirective(stmt)) {\n this.flowPragma = null;\n }\n return stmt;\n }\n\n // declares, interfaces and type aliases\n parseExpressionStatement(\n node: N.ExpressionStatement,\n expr: N.Expression,\n decorators: N.Decorator[] | null,\n ): N.ExpressionStatement {\n if (expr.type === \"Identifier\") {\n if (expr.name === \"declare\") {\n if (\n this.match(tt._class) ||\n tokenIsIdentifier(this.state.type) ||\n this.match(tt._function) ||\n this.match(tt._var) ||\n this.match(tt._export)\n ) {\n // @ts-expect-error: refine typings\n return this.flowParseDeclare(node);\n }\n } else if (tokenIsIdentifier(this.state.type)) {\n if (expr.name === \"interface\") {\n // @ts-expect-error: refine typings\n return this.flowParseInterface(node);\n } else if (expr.name === \"type\") {\n // @ts-expect-error: refine typings\n return this.flowParseTypeAlias(node);\n } else if (expr.name === \"opaque\") {\n // @ts-expect-error: refine typings\n return this.flowParseOpaqueType(node, false);\n }\n }\n }\n\n return super.parseExpressionStatement(node, expr, decorators);\n }\n\n // export type\n shouldParseExportDeclaration(): boolean {\n const { type } = this.state;\n if (type === tt._enum || tokenIsFlowInterfaceOrTypeOrOpaque(type)) {\n return !this.state.containsEsc;\n }\n return super.shouldParseExportDeclaration();\n }\n\n isExportDefaultSpecifier(): boolean {\n const { type } = this.state;\n if (type === tt._enum || tokenIsFlowInterfaceOrTypeOrOpaque(type)) {\n return this.state.containsEsc;\n }\n\n return super.isExportDefaultSpecifier();\n }\n\n parseExportDefaultExpression() {\n if (this.isContextual(tt._enum)) {\n const node = this.startNode();\n this.next();\n return this.flowParseEnumDeclaration(node);\n }\n return super.parseExportDefaultExpression();\n }\n\n parseConditional(\n expr: N.Expression,\n\n startLoc: Position,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.Expression {\n if (!this.match(tt.question)) return expr;\n\n if (this.state.maybeInArrowParameters) {\n const nextCh = this.lookaheadCharCode();\n // These tokens cannot start an expression, so if one of them follows\n // ? then we are probably in an arrow function parameters list and we\n // don't parse the conditional expression.\n if (\n nextCh === charCodes.comma || // (a?, b) => c\n nextCh === charCodes.equalsTo || // (a? = b) => c\n nextCh === charCodes.colon || // (a?: b) => c\n nextCh === charCodes.rightParenthesis // (a?) => c\n ) {\n /*:: invariant(refExpressionErrors != null) */\n this.setOptionalParametersError(refExpressionErrors!);\n return expr;\n }\n }\n\n this.expect(tt.question);\n const state = this.state.clone();\n const originalNoArrowAt = this.state.noArrowAt;\n const node = this.startNodeAt(startLoc);\n let { consequent, failed } = this.tryParseConditionalConsequent();\n let [valid, invalid] = this.getArrowLikeExpressions(consequent);\n\n if (failed || invalid.length > 0) {\n const noArrowAt = [...originalNoArrowAt];\n\n if (invalid.length > 0) {\n this.state = state;\n this.state.noArrowAt = noArrowAt;\n\n for (let i = 0; i < invalid.length; i++) {\n noArrowAt.push(invalid[i].start);\n }\n\n ({ consequent, failed } = this.tryParseConditionalConsequent());\n [valid, invalid] = this.getArrowLikeExpressions(consequent);\n }\n\n if (failed && valid.length > 1) {\n // if there are two or more possible correct ways of parsing, throw an\n // error.\n // e.g. Source: a ? (b): c => (d): e => f\n // Result 1: a ? b : (c => ((d): e => f))\n // Result 2: a ? ((b): c => d) : (e => f)\n this.raise(FlowErrors.AmbiguousConditionalArrow, state.startLoc);\n }\n\n if (failed && valid.length === 1) {\n this.state = state;\n noArrowAt.push(valid[0].start);\n this.state.noArrowAt = noArrowAt;\n ({ consequent, failed } = this.tryParseConditionalConsequent());\n }\n }\n\n this.getArrowLikeExpressions(consequent, true);\n\n this.state.noArrowAt = originalNoArrowAt;\n this.expect(tt.colon);\n\n node.test = expr;\n node.consequent = consequent;\n node.alternate = this.forwardNoArrowParamsConversionAt(node, () =>\n this.parseMaybeAssign(undefined, undefined),\n );\n\n return this.finishNode(node, \"ConditionalExpression\");\n }\n\n tryParseConditionalConsequent(): {\n consequent: N.Expression;\n failed: boolean;\n } {\n this.state.noArrowParamsConversionAt.push(this.state.start);\n\n const consequent = this.parseMaybeAssignAllowIn();\n const failed = !this.match(tt.colon);\n\n this.state.noArrowParamsConversionAt.pop();\n\n return { consequent, failed };\n }\n\n // Given an expression, walks through out its arrow functions whose body is\n // an expression and through out conditional expressions. It returns every\n // function which has been parsed with a return type but could have been\n // parenthesized expressions.\n // These functions are separated into two arrays: one containing the ones\n // whose parameters can be converted to assignable lists, one containing the\n // others.\n getArrowLikeExpressions(\n node: N.Expression,\n disallowInvalid?: boolean,\n ): [N.ArrowFunctionExpression[], N.ArrowFunctionExpression[]] {\n const stack = [node];\n const arrows: N.ArrowFunctionExpression[] = [];\n\n while (stack.length !== 0) {\n const node = stack.pop()!;\n if (\n node.type === \"ArrowFunctionExpression\" &&\n node.body.type !== \"BlockStatement\"\n ) {\n if (node.typeParameters || !node.returnType) {\n // This is an arrow expression without ambiguity, so check its parameters\n this.finishArrowValidation(node);\n } else {\n arrows.push(node);\n }\n stack.push(node.body);\n } else if (node.type === \"ConditionalExpression\") {\n stack.push(node.consequent);\n stack.push(node.alternate);\n }\n }\n\n if (disallowInvalid) {\n arrows.forEach(node => this.finishArrowValidation(node));\n return [arrows, []];\n }\n\n return partition(arrows, node =>\n node.params.every(param => this.isAssignable(param, true)),\n );\n }\n\n finishArrowValidation(node: N.ArrowFunctionExpression) {\n this.toAssignableList(\n // node.params is Expression[] instead of $ReadOnlyArray because it\n // has not been converted yet.\n node.params as any as N.Expression[],\n node.extra?.trailingCommaLoc,\n /* isLHS */ false,\n );\n // Enter scope, as checkParams defines bindings\n this.scope.enter(ScopeFlag.FUNCTION | ScopeFlag.ARROW);\n // Use super's method to force the parameters to be checked\n super.checkParams(node, false, true);\n this.scope.exit();\n }\n\n forwardNoArrowParamsConversionAt(\n node: Undone,\n parse: () => T,\n ): T {\n let result: T;\n if (\n this.state.noArrowParamsConversionAt.includes(\n this.offsetToSourcePos(node.start),\n )\n ) {\n this.state.noArrowParamsConversionAt.push(this.state.start);\n result = parse();\n this.state.noArrowParamsConversionAt.pop();\n } else {\n result = parse();\n }\n\n return result;\n }\n\n parseParenItem(\n node: T,\n startLoc: Position,\n ): T | N.TypeCastExpression | N.TsTypeCastExpression {\n const newNode = super.parseParenItem(node, startLoc);\n if (this.eat(tt.question)) {\n (newNode as N.Identifier).optional = true;\n // Include questionmark in location of node\n // Don't use this.finishNode() as otherwise we might process comments twice and\n // include already consumed parens\n this.resetEndLocation(node);\n }\n\n if (this.match(tt.colon)) {\n const typeCastNode = this.startNodeAt(startLoc);\n typeCastNode.expression = newNode as N.Expression;\n typeCastNode.typeAnnotation = this.flowParseTypeAnnotation();\n\n return this.finishNode(typeCastNode, \"TypeCastExpression\");\n }\n\n return newNode;\n }\n\n assertModuleNodeAllowed(node: N.Node) {\n if (\n (node.type === \"ImportDeclaration\" &&\n (node.importKind === \"type\" || node.importKind === \"typeof\")) ||\n (node.type === \"ExportNamedDeclaration\" &&\n node.exportKind === \"type\") ||\n (node.type === \"ExportAllDeclaration\" && node.exportKind === \"type\")\n ) {\n // Allow Flowtype imports and exports in all conditions because\n // Flow itself does not care about 'sourceType'.\n return;\n }\n\n super.assertModuleNodeAllowed(node);\n }\n\n parseExportDeclaration(\n node: N.ExportNamedDeclaration,\n ): N.Declaration | undefined | null {\n if (this.isContextual(tt._type)) {\n node.exportKind = \"type\";\n\n const declarationNode = this.startNode();\n this.next();\n\n if (this.match(tt.braceL)) {\n // export type { foo, bar };\n node.specifiers = this.parseExportSpecifiers(\n /* isInTypeExport */ true,\n );\n super.parseExportFrom(node);\n return null;\n } else {\n // export type Foo = Bar;\n // @ts-expect-error: refine typings\n return this.flowParseTypeAlias(declarationNode);\n }\n } else if (this.isContextual(tt._opaque)) {\n node.exportKind = \"type\";\n\n const declarationNode = this.startNode();\n this.next();\n // export opaque type Foo = Bar;\n // @ts-expect-error: refine typings\n return this.flowParseOpaqueType(declarationNode, false);\n } else if (this.isContextual(tt._interface)) {\n node.exportKind = \"type\";\n const declarationNode = this.startNode();\n this.next();\n // @ts-expect-error: refine typings\n return this.flowParseInterface(declarationNode);\n } else if (this.isContextual(tt._enum)) {\n node.exportKind = \"value\";\n const declarationNode = this.startNode();\n this.next();\n // @ts-expect-error: refine typings\n return this.flowParseEnumDeclaration(declarationNode);\n } else {\n return super.parseExportDeclaration(node);\n }\n }\n\n eatExportStar(\n node: Undone,\n ): node is Undone {\n if (super.eatExportStar(node)) return true;\n\n if (this.isContextual(tt._type) && this.lookahead().type === tt.star) {\n (\n node as Undone\n ).exportKind = \"type\";\n this.next();\n this.next();\n return true;\n }\n\n return false;\n }\n\n maybeParseExportNamespaceSpecifier(\n node: Undone,\n ): node is Undone {\n const { startLoc } = this.state;\n const hasNamespace = super.maybeParseExportNamespaceSpecifier(node);\n if (hasNamespace && node.exportKind === \"type\") {\n this.unexpected(startLoc);\n }\n return hasNamespace;\n }\n\n parseClassId(\n node: N.Class,\n isStatement: boolean,\n optionalId?: boolean | null,\n ) {\n super.parseClassId(node, isStatement, optionalId);\n if (this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n }\n\n parseClassMember(\n classBody: N.ClassBody,\n member: any,\n state: N.ParseClassMemberState,\n ): void {\n const { startLoc } = this.state;\n if (this.isContextual(tt._declare)) {\n if (super.parseClassMemberFromModifier(classBody, member)) {\n // 'declare' is a class element name\n return;\n }\n\n member.declare = true;\n }\n\n super.parseClassMember(classBody, member, state);\n\n if (member.declare) {\n if (\n member.type !== \"ClassProperty\" &&\n member.type !== \"ClassPrivateProperty\" &&\n member.type !== \"PropertyDefinition\" // Used by estree plugin\n ) {\n this.raise(FlowErrors.DeclareClassElement, startLoc);\n } else if (member.value) {\n this.raise(FlowErrors.DeclareClassFieldInitializer, member.value);\n }\n }\n }\n\n isIterator(word: string): boolean {\n return word === \"iterator\" || word === \"asyncIterator\";\n }\n\n readIterator(): void {\n const word = super.readWord1();\n const fullWord = \"@@\" + word;\n\n // Allow @@iterator and @@asyncIterator as a identifier only inside type\n if (!this.isIterator(word) || !this.state.inType) {\n this.raise(Errors.InvalidIdentifier, this.state.curPosition(), {\n identifierName: fullWord,\n });\n }\n\n this.finishToken(tt.name, fullWord);\n }\n\n // ensure that inside flow types, we bypass the jsx parser plugin\n getTokenFromCode(code: number): void {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (code === charCodes.leftCurlyBrace && next === charCodes.verticalBar) {\n this.finishOp(tt.braceBarL, 2);\n } else if (\n this.state.inType &&\n (code === charCodes.greaterThan || code === charCodes.lessThan)\n ) {\n this.finishOp(code === charCodes.greaterThan ? tt.gt : tt.lt, 1);\n } else if (this.state.inType && code === charCodes.questionMark) {\n if (next === charCodes.dot) {\n this.finishOp(tt.questionDot, 2);\n } else {\n // allow double nullable types in Flow: ??string\n this.finishOp(tt.question, 1);\n }\n } else if (\n isIteratorStart(code, next, this.input.charCodeAt(this.state.pos + 2))\n ) {\n this.state.pos += 2; // eat \"@@\"\n this.readIterator();\n } else {\n super.getTokenFromCode(code);\n }\n }\n\n isAssignable(node: N.Node, isBinding?: boolean): boolean {\n if (node.type === \"TypeCastExpression\") {\n return this.isAssignable(node.expression, isBinding);\n } else {\n return super.isAssignable(node, isBinding);\n }\n }\n\n toAssignable(node: N.Node, isLHS: boolean = false): void {\n if (\n !isLHS &&\n node.type === \"AssignmentExpression\" &&\n node.left.type === \"TypeCastExpression\"\n ) {\n node.left = this.typeCastToParameter(node.left) as N.Assignable;\n }\n super.toAssignable(node, isLHS);\n }\n\n // turn type casts that we found in function parameter head into type annotated params\n toAssignableList(\n exprList: N.Expression[],\n trailingCommaLoc: Position | undefined | null,\n isLHS: boolean,\n ): void {\n for (let i = 0; i < exprList.length; i++) {\n const expr = exprList[i];\n if (expr?.type === \"TypeCastExpression\") {\n exprList[i] = this.typeCastToParameter(expr);\n }\n }\n super.toAssignableList(exprList, trailingCommaLoc, isLHS);\n }\n\n // this is a list of nodes, from something like a call expression, we need to filter the\n // type casts that we've found that are illegal in this context\n toReferencedList(\n exprList:\n | readonly (N.Expression | N.SpreadElement | null)[]\n | readonly (N.Expression | N.RestElement)[],\n isParenthesizedExpr?: boolean,\n ):\n | readonly (N.Expression | N.SpreadElement | null)[]\n | readonly (N.Expression | N.RestElement)[] {\n for (let i = 0; i < exprList.length; i++) {\n const expr = exprList[i];\n if (\n expr &&\n expr.type === \"TypeCastExpression\" &&\n !expr.extra?.parenthesized &&\n (exprList.length > 1 || !isParenthesizedExpr)\n ) {\n this.raise(FlowErrors.TypeCastInPattern, expr.typeAnnotation);\n }\n }\n\n return exprList;\n }\n\n parseArrayLike(\n close: TokenType,\n isTuple: boolean,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.ArrayExpression | N.TupleExpression {\n const node = super.parseArrayLike(close, isTuple, refExpressionErrors);\n\n // This could be an array pattern:\n // ([a: string, b: string]) => {}\n // In this case, we don't have to call toReferencedList. We will\n // call it, if needed, when we are sure that it is a parenthesized\n // expression by calling toReferencedListDeep.\n if (refExpressionErrors != null && !this.state.maybeInArrowParameters) {\n this.toReferencedList(node.elements);\n }\n\n return node;\n }\n\n isValidLVal(\n type: string,\n disallowCallExpression: boolean,\n isParenthesized: boolean,\n binding: BindingFlag,\n ) {\n return (\n type === \"TypeCastExpression\" ||\n super.isValidLVal(\n type,\n disallowCallExpression,\n isParenthesized,\n binding,\n )\n );\n }\n\n // parse class property type annotations\n parseClassProperty(node: N.ClassProperty): N.ClassProperty {\n if (this.match(tt.colon)) {\n node.typeAnnotation = this.flowParseTypeAnnotation();\n }\n return super.parseClassProperty(node);\n }\n\n parseClassPrivateProperty(\n node: N.ClassPrivateProperty,\n ): N.ClassPrivateProperty {\n if (this.match(tt.colon)) {\n node.typeAnnotation = this.flowParseTypeAnnotation();\n }\n return super.parseClassPrivateProperty(node);\n }\n\n // determine whether or not we're currently in the position where a class method would appear\n isClassMethod(): boolean {\n return this.match(tt.lt) || super.isClassMethod();\n }\n\n // determine whether or not we're currently in the position where a class property would appear\n isClassProperty(): boolean {\n return this.match(tt.colon) || super.isClassProperty();\n }\n\n isNonstaticConstructor(method: N.ClassMethod | N.ClassProperty): boolean {\n return !this.match(tt.colon) && super.isNonstaticConstructor(method);\n }\n\n // parse type parameters for class methods\n pushClassMethod(\n classBody: N.ClassBody,\n method: N.ClassMethod,\n isGenerator: boolean,\n isAsync: boolean,\n isConstructor: boolean,\n allowsDirectSuper: boolean,\n ): void {\n if ((method as any).variance) {\n this.unexpected((method as any).variance.loc.start);\n }\n delete (method as any).variance;\n if (this.match(tt.lt)) {\n method.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n\n super.pushClassMethod(\n classBody,\n method,\n isGenerator,\n isAsync,\n isConstructor,\n allowsDirectSuper,\n );\n\n if (method.params && isConstructor) {\n const params = method.params;\n if (params.length > 0 && this.isThisParam(params[0])) {\n this.raise(FlowErrors.ThisParamBannedInConstructor, method);\n }\n // estree support\n } else if (\n // @ts-expect-error TS does not know about the fact that estree can replace ClassMethod with MethodDefinition\n method.type === \"MethodDefinition\" &&\n isConstructor &&\n // @ts-expect-error estree\n method.value.params\n ) {\n // @ts-expect-error estree\n const params = method.value.params;\n if (params.length > 0 && this.isThisParam(params[0])) {\n this.raise(FlowErrors.ThisParamBannedInConstructor, method);\n }\n }\n }\n\n pushClassPrivateMethod(\n classBody: N.ClassBody,\n method: N.ClassPrivateMethod,\n isGenerator: boolean,\n isAsync: boolean,\n ): void {\n if ((method as any).variance) {\n this.unexpected((method as any).variance.loc.start);\n }\n delete (method as any).variance;\n if (this.match(tt.lt)) {\n method.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n\n super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync);\n }\n\n // parse a the super class type parameters and implements\n parseClassSuper(node: N.Class): void {\n super.parseClassSuper(node);\n if (\n node.superClass &&\n (this.match(tt.lt) ||\n // handles `class extends C<`\n this.match(tt.bitShiftL))\n ) {\n if (process.env.BABEL_8_BREAKING) {\n node.superTypeArguments =\n this.flowParseTypeParameterInstantiationInExpression();\n } else {\n node.superTypeParameters =\n this.flowParseTypeParameterInstantiationInExpression();\n }\n }\n if (this.isContextual(tt._implements)) {\n this.next();\n const implemented: N.FlowClassImplements[] = (node.implements = []);\n do {\n const node = this.startNode();\n node.id = this.flowParseRestrictedIdentifier(/*liberal*/ true);\n if (this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterInstantiation();\n } else {\n node.typeParameters = null;\n }\n implemented.push(this.finishNode(node, \"ClassImplements\"));\n } while (this.eat(tt.comma));\n }\n }\n\n checkGetterSetterParams(method: N.ObjectMethod | N.ClassMethod): void {\n super.checkGetterSetterParams(method);\n const params = this.getObjectOrClassMethodParams(method);\n if (params.length > 0) {\n const param = params[0];\n if (this.isThisParam(param) && method.kind === \"get\") {\n this.raise(FlowErrors.GetterMayNotHaveThisParam, param);\n } else if (this.isThisParam(param)) {\n this.raise(FlowErrors.SetterMayNotHaveThisParam, param);\n }\n }\n }\n\n parsePropertyNamePrefixOperator(\n node: N.ObjectOrClassMember | N.ClassMember,\n ): void {\n node.variance = this.flowParseVariance();\n }\n\n // parse type parameters for object method shorthand\n parseObjPropValue(\n prop: Undone,\n startLoc: Position | undefined | null,\n isGenerator: boolean,\n isAsync: boolean,\n isPattern: boolean,\n isAccessor: boolean,\n refExpressionErrors?: ExpressionErrors | null,\n ): T {\n if ((prop as any).variance) {\n this.unexpected((prop as any).variance.loc.start);\n }\n delete (prop as any).variance;\n\n let typeParameters;\n\n // method shorthand\n if (this.match(tt.lt) && !isAccessor) {\n typeParameters = this.flowParseTypeParameterDeclaration();\n if (!this.match(tt.parenL)) this.unexpected();\n }\n\n const result = super.parseObjPropValue(\n prop,\n startLoc,\n isGenerator,\n isAsync,\n isPattern,\n isAccessor,\n refExpressionErrors,\n );\n\n // add typeParameters if we found them\n if (typeParameters) {\n // @ts-expect-error: refine typings\n (result.value || result).typeParameters = typeParameters;\n }\n return result;\n }\n\n parseFunctionParamType(param: N.Pattern): N.Pattern {\n if (this.eat(tt.question)) {\n if (param.type !== \"Identifier\") {\n this.raise(FlowErrors.PatternIsOptional, param);\n }\n if (this.isThisParam(param)) {\n this.raise(FlowErrors.ThisParamMayNotBeOptional, param);\n }\n\n (param as any as N.Identifier).optional = true;\n }\n if (this.match(tt.colon)) {\n param.typeAnnotation = this.flowParseTypeAnnotation();\n } else if (this.isThisParam(param)) {\n this.raise(FlowErrors.ThisParamAnnotationRequired, param);\n }\n\n if (this.match(tt.eq) && this.isThisParam(param)) {\n this.raise(FlowErrors.ThisParamNoDefault, param);\n }\n\n this.resetEndLocation(param);\n return param;\n }\n\n parseMaybeDefault

    (\n startLoc?: Position | null,\n left?: P | null,\n ): P | N.AssignmentPattern {\n const node = super.parseMaybeDefault(startLoc, left);\n\n if (\n node.type === \"AssignmentPattern\" &&\n node.typeAnnotation &&\n node.right.start < node.typeAnnotation.start\n ) {\n this.raise(FlowErrors.TypeBeforeInitializer, node.typeAnnotation);\n }\n\n return node;\n }\n\n checkImportReflection(node: Undone) {\n super.checkImportReflection(node);\n if (node.module && node.importKind !== \"value\") {\n this.raise(\n FlowErrors.ImportReflectionHasImportType,\n node.specifiers[0].loc.start,\n );\n }\n }\n\n parseImportSpecifierLocal<\n T extends\n | N.ImportSpecifier\n | N.ImportDefaultSpecifier\n | N.ImportNamespaceSpecifier,\n >(node: N.ImportDeclaration, specifier: Undone, type: T[\"type\"]): void {\n specifier.local = hasTypeImportKind(node)\n ? this.flowParseRestrictedIdentifier(\n /* liberal */ true,\n /* declaration */ true,\n )\n : this.parseIdentifier();\n\n node.specifiers.push(this.finishImportSpecifier(specifier, type));\n }\n\n isPotentialImportPhase(isExport: boolean): boolean {\n if (super.isPotentialImportPhase(isExport)) return true;\n if (this.isContextual(tt._type)) {\n if (!isExport) return true;\n const ch = this.lookaheadCharCode();\n return ch === charCodes.leftCurlyBrace || ch === charCodes.asterisk;\n }\n return !isExport && this.isContextual(tt._typeof);\n }\n\n applyImportPhase(\n node: Undone,\n isExport: boolean,\n phase: string | null,\n loc?: Position,\n ): void {\n super.applyImportPhase(node, isExport, phase, loc);\n if (isExport) {\n if (!phase && this.match(tt._default)) {\n // TODO: Align with our TS AST and always add .exportKind\n return;\n }\n (node as N.ExportNamedDeclaration).exportKind =\n phase === \"type\" ? phase : \"value\";\n } else {\n if (phase === \"type\" && this.match(tt.star)) this.unexpected();\n (node as N.ImportDeclaration).importKind =\n phase === \"type\" || phase === \"typeof\" ? phase : \"value\";\n }\n }\n\n // parse import-type/typeof shorthand\n parseImportSpecifier(\n specifier: any,\n importedIsString: boolean,\n isInTypeOnlyImport: boolean,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isMaybeTypeOnly: boolean,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n bindingType: BindingFlag | undefined,\n ): N.ImportSpecifier {\n const firstIdent = specifier.imported;\n\n let specifierTypeKind = null;\n if (firstIdent.type === \"Identifier\") {\n if (firstIdent.name === \"type\") {\n specifierTypeKind = \"type\";\n } else if (firstIdent.name === \"typeof\") {\n specifierTypeKind = \"typeof\";\n }\n }\n\n let isBinding = false;\n if (this.isContextual(tt._as) && !this.isLookaheadContextual(\"as\")) {\n const as_ident = this.parseIdentifier(true);\n if (\n specifierTypeKind !== null &&\n !tokenIsKeywordOrIdentifier(this.state.type)\n ) {\n // `import {type as ,` or `import {type as }`\n specifier.imported = as_ident;\n specifier.importKind = specifierTypeKind;\n specifier.local = this.cloneIdentifier(as_ident);\n } else {\n // `import {type as foo`\n specifier.imported = firstIdent;\n specifier.importKind = null;\n specifier.local = this.parseIdentifier();\n }\n } else {\n if (\n specifierTypeKind !== null &&\n tokenIsKeywordOrIdentifier(this.state.type)\n ) {\n // `import {type foo`\n specifier.imported = this.parseIdentifier(true);\n specifier.importKind = specifierTypeKind;\n } else {\n if (importedIsString) {\n /*:: invariant(firstIdent instanceof N.StringLiteral) */\n throw this.raise(Errors.ImportBindingIsString, specifier, {\n importName: firstIdent.value,\n });\n }\n /*:: invariant(firstIdent instanceof N.Node) */\n specifier.imported = firstIdent;\n specifier.importKind = null;\n }\n\n if (this.eatContextual(tt._as)) {\n specifier.local = this.parseIdentifier();\n } else {\n isBinding = true;\n specifier.local = this.cloneIdentifier(specifier.imported);\n }\n }\n\n const specifierIsTypeImport = hasTypeImportKind(specifier);\n\n if (isInTypeOnlyImport && specifierIsTypeImport) {\n this.raise(FlowErrors.ImportTypeShorthandOnlyInPureImport, specifier);\n }\n\n if (isInTypeOnlyImport || specifierIsTypeImport) {\n this.checkReservedType(\n specifier.local.name,\n specifier.local.loc.start,\n /* declaration */ true,\n );\n }\n\n if (isBinding && !isInTypeOnlyImport && !specifierIsTypeImport) {\n this.checkReservedWord(\n specifier.local.name,\n specifier.loc.start,\n true,\n true,\n );\n }\n\n return this.finishImportSpecifier(specifier, \"ImportSpecifier\");\n }\n\n parseBindingAtom(): N.Pattern {\n switch (this.state.type) {\n case tt._this:\n // \"this\" may be the name of a parameter, so allow it.\n return this.parseIdentifier(/* liberal */ true);\n default:\n return super.parseBindingAtom();\n }\n }\n\n // parse function type parameters - function foo() {}\n parseFunctionParams(\n node: Undone,\n isConstructor: boolean,\n ): void {\n // @ts-expect-error kind may not index node\n const kind = node.kind;\n if (kind !== \"get\" && kind !== \"set\" && this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n super.parseFunctionParams(node, isConstructor);\n }\n\n // parse flow type annotations on variable declarator heads - let foo: string = bar\n parseVarId(\n decl: N.VariableDeclarator,\n kind: \"var\" | \"let\" | \"const\" | \"using\" | \"await using\",\n ): void {\n super.parseVarId(decl, kind);\n if (this.match(tt.colon)) {\n decl.id.typeAnnotation = this.flowParseTypeAnnotation();\n this.resetEndLocation(decl.id); // set end position to end of type\n }\n }\n\n // parse the return type of an async arrow function - let foo = (async (): number => {});\n parseAsyncArrowFromCallExpression(\n node: N.ArrowFunctionExpression,\n call: N.CallExpression,\n ): N.ArrowFunctionExpression {\n if (this.match(tt.colon)) {\n const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n this.state.noAnonFunctionType = true;\n node.returnType = this.flowParseTypeAnnotation();\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n }\n\n return super.parseAsyncArrowFromCallExpression(node, call);\n }\n\n // todo description\n shouldParseAsyncArrow(): boolean {\n return this.match(tt.colon) || super.shouldParseAsyncArrow();\n }\n\n // We need to support type parameter declarations for arrow functions. This\n // is tricky. There are three situations we need to handle\n //\n // 1. This is either JSX or an arrow function. We'll try JSX first. If that\n // fails, we'll try an arrow function. If that fails, we'll throw the JSX\n // error.\n // 2. This is an arrow function. We'll parse the type parameter declaration,\n // parse the rest, make sure the rest is an arrow function, and go from\n // there\n // 3. This is neither. Just call the super method\n parseMaybeAssign(\n refExpressionErrors?: ExpressionErrors | null,\n afterLeftParse?: Function,\n ): N.Expression {\n let state = null;\n\n let jsx;\n\n if (\n this.hasPlugin(\"jsx\") &&\n (this.match(tt.jsxTagStart) || this.match(tt.lt))\n ) {\n state = this.state.clone();\n\n jsx = this.tryParse(\n () => super.parseMaybeAssign(refExpressionErrors, afterLeftParse),\n state,\n );\n\n /*:: invariant(!jsx.aborted) */\n /*:: invariant(jsx.node != null) */\n if (!jsx.error) return jsx.node!;\n\n // Remove `tc.j_expr` and `tc.j_oTag` from context added\n // by parsing `jsxTagStart` to stop the JSX plugin from\n // messing with the tokens\n const { context } = this.state;\n const currentContext = context[context.length - 1];\n if (currentContext === tc.j_oTag || currentContext === tc.j_expr) {\n context.pop();\n }\n }\n\n if (jsx?.error || this.match(tt.lt)) {\n state = state || this.state.clone();\n\n let typeParameters: N.TypeParameterDeclaration;\n\n const arrow = this.tryParse((abort: () => never) => {\n typeParameters = this.flowParseTypeParameterDeclaration();\n\n const arrowExpression = this.forwardNoArrowParamsConversionAt(\n typeParameters,\n () => {\n const result = super.parseMaybeAssign(\n refExpressionErrors,\n afterLeftParse,\n );\n\n this.resetStartLocationFromNode(result, typeParameters);\n\n return result;\n },\n );\n\n // (() => {});\n // (() => {}: any);\n if (arrowExpression.extra?.parenthesized) abort();\n\n // The above can return a TypeCastExpression when the arrow\n // expression is not wrapped in parens. See also `this.parseParenItem`.\n // (() => {}: any);\n const expr = this.maybeUnwrapTypeCastExpression(arrowExpression);\n\n if (expr.type !== \"ArrowFunctionExpression\") abort();\n\n expr.typeParameters = typeParameters;\n this.resetStartLocationFromNode(expr, typeParameters);\n\n return arrowExpression;\n }, state);\n\n let arrowExpression:\n | N.ArrowFunctionExpression\n | N.TypeCastExpression\n | undefined\n | null = null;\n\n if (\n arrow.node &&\n this.maybeUnwrapTypeCastExpression(arrow.node).type ===\n \"ArrowFunctionExpression\"\n ) {\n if (!arrow.error && !arrow.aborted) {\n // async () => {}\n // @ts-expect-error: refine tryParse typings\n if (arrow.node.async) {\n /*:: invariant(typeParameters) */\n this.raise(\n FlowErrors.UnexpectedTypeParameterBeforeAsyncArrowFunction,\n typeParameters!,\n );\n }\n return arrow.node;\n }\n\n // @ts-expect-error: refine typings\n arrowExpression = arrow.node;\n }\n\n // If we are here, both JSX and Flow parsing attempts failed.\n // Give the precedence to the JSX error, except if JSX had an\n // unrecoverable error while Flow didn't.\n // If the error is recoverable, we can only re-report it if there is\n // a node we can return.\n\n if (jsx?.node) {\n /*:: invariant(jsx.failState) */\n this.state = jsx.failState;\n return jsx.node;\n }\n\n if (arrowExpression) {\n /*:: invariant(arrow.failState) */\n this.state = arrow.failState!;\n return arrowExpression;\n }\n\n if (jsx?.thrown) throw jsx.error;\n if (arrow.thrown) throw arrow.error;\n\n /*:: invariant(typeParameters) */\n throw this.raise(\n FlowErrors.UnexpectedTokenAfterTypeParameter,\n typeParameters!,\n );\n }\n\n return super.parseMaybeAssign(refExpressionErrors, afterLeftParse);\n }\n\n // handle return types for arrow functions\n parseArrow(\n node: Undone,\n ): Undone | undefined | null {\n if (this.match(tt.colon)) {\n // @ts-expect-error todo(flow->ts)\n const result = this.tryParse(() => {\n const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n this.state.noAnonFunctionType = true;\n\n const typeNode = this.startNode();\n\n [\n typeNode.typeAnnotation,\n // @ts-expect-error (destructuring not supported yet)\n node.predicate,\n ] = this.flowParseTypeAndPredicateInitialiser() as [\n N.FlowType,\n N.FlowPredicate,\n ];\n\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n\n if (this.canInsertSemicolon()) this.unexpected();\n if (!this.match(tt.arrow)) this.unexpected();\n\n return typeNode;\n });\n\n if (result.thrown) return null;\n /*:: invariant(result.node) */\n\n if (result.error) this.state = result.failState;\n\n // assign after it is clear it is an arrow\n // @ts-expect-error todo(flow->ts)\n node.returnType = result.node.typeAnnotation\n ? this.finishNode(result.node!, \"TypeAnnotation\")\n : null;\n }\n\n return super.parseArrow(node);\n }\n\n shouldParseArrow(params: N.Node[]): boolean {\n return this.match(tt.colon) || super.shouldParseArrow(params);\n }\n\n setArrowFunctionParameters(\n node: Undone,\n params:\n | (N.Expression | N.SpreadElement)[]\n | (N.Expression | N.RestElement)[],\n ): void {\n if (\n this.state.noArrowParamsConversionAt.includes(\n this.offsetToSourcePos(node.start),\n )\n ) {\n node.params = params as N.ArrowFunctionExpression[\"params\"];\n } else {\n super.setArrowFunctionParameters(node, params);\n }\n }\n\n checkParams(\n node: N.Function,\n allowDuplicates: boolean,\n isArrowFunction?: boolean | null,\n strictModeChanged: boolean = true,\n ): void {\n if (\n isArrowFunction &&\n this.state.noArrowParamsConversionAt.includes(\n this.offsetToSourcePos(node.start),\n )\n ) {\n return;\n }\n\n // ensure the `this` param is first, if it exists\n for (let i = 0; i < node.params.length; i++) {\n if (this.isThisParam(node.params[i]) && i > 0) {\n this.raise(FlowErrors.ThisParamMustBeFirst, node.params[i]);\n }\n }\n\n super.checkParams(\n node,\n allowDuplicates,\n isArrowFunction,\n strictModeChanged,\n );\n }\n\n parseParenAndDistinguishExpression(canBeArrow: boolean): N.Expression {\n return super.parseParenAndDistinguishExpression(\n canBeArrow &&\n !this.state.noArrowAt.includes(\n this.sourceToOffsetPos(this.state.start),\n ),\n );\n }\n\n parseSubscripts(\n base: N.Expression,\n startLoc: Position,\n noCalls?: boolean | null,\n ): N.Expression {\n if (\n base.type === \"Identifier\" &&\n base.name === \"async\" &&\n this.state.noArrowAt.includes(startLoc.index)\n ) {\n this.next();\n\n const node = this.startNodeAt(startLoc);\n node.callee = base;\n node.arguments = super.parseCallExpressionArguments();\n base = this.finishNode(node, \"CallExpression\");\n } else if (\n base.type === \"Identifier\" &&\n base.name === \"async\" &&\n this.match(tt.lt)\n ) {\n const state = this.state.clone();\n const arrow = this.tryParse(\n abort => this.parseAsyncArrowWithTypeParameters(startLoc) || abort(),\n state,\n );\n\n /*:: invariant(arrow.node != null) */\n // @ts-expect-error: refine tryParse typings\n if (!arrow.error && !arrow.aborted) return arrow.node;\n\n const result = this.tryParse(\n () => super.parseSubscripts(base, startLoc, noCalls),\n state,\n );\n\n if (result.node && !result.error) return result.node;\n\n if (arrow.node) {\n this.state = arrow.failState;\n // @ts-expect-error: refine tryParse typings\n return arrow.node;\n }\n\n if (result.node) {\n this.state = result.failState!;\n return result.node;\n }\n\n throw arrow.error || result.error!;\n }\n\n return super.parseSubscripts(base, startLoc, noCalls);\n }\n\n parseSubscript(\n base: N.Expression,\n startLoc: Position,\n noCalls: boolean | undefined | null,\n subscriptState: N.ParseSubscriptState,\n ): N.Expression {\n if (this.match(tt.questionDot) && this.isLookaheadToken_lt()) {\n subscriptState.optionalChainMember = true;\n if (noCalls) {\n subscriptState.stop = true;\n return base;\n }\n this.next();\n const node = this.startNodeAt(startLoc);\n node.callee = base;\n node.typeArguments =\n this.flowParseTypeParameterInstantiationInExpression();\n this.expect(tt.parenL);\n node.arguments = this.parseCallExpressionArguments();\n node.optional = true;\n return this.finishCallExpression(node, /* optional */ true);\n } else if (\n !noCalls &&\n this.shouldParseTypes() &&\n (this.match(tt.lt) ||\n // also handles `new C<`\n this.match(tt.bitShiftL))\n ) {\n const node = this.startNodeAt<\n N.OptionalCallExpression | N.CallExpression\n >(startLoc);\n node.callee = base;\n\n const result = this.tryParse(() => {\n node.typeArguments =\n this.flowParseTypeParameterInstantiationCallOrNew();\n this.expect(tt.parenL);\n node.arguments = super.parseCallExpressionArguments();\n if (subscriptState.optionalChainMember) {\n (node as Undone).optional = false;\n }\n return this.finishCallExpression(\n node,\n subscriptState.optionalChainMember,\n );\n });\n\n if (result.node) {\n if (result.error) this.state = result.failState;\n return result.node;\n }\n }\n\n return super.parseSubscript(base, startLoc, noCalls, subscriptState);\n }\n\n parseNewCallee(node: N.NewExpression): void {\n super.parseNewCallee(node);\n\n let targs = null;\n if (this.shouldParseTypes() && this.match(tt.lt)) {\n targs = this.tryParse(() =>\n this.flowParseTypeParameterInstantiationCallOrNew(),\n ).node;\n }\n node.typeArguments = targs;\n }\n\n parseAsyncArrowWithTypeParameters(\n startLoc: Position,\n ): N.ArrowFunctionExpression | undefined | null {\n const node = this.startNodeAt(startLoc);\n this.parseFunctionParams(node, false);\n if (!this.parseArrow(node)) return;\n return super.parseArrowExpression(\n node,\n /* params */ undefined,\n /* isAsync */ true,\n );\n }\n\n readToken_mult_modulo(code: number): void {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (\n code === charCodes.asterisk &&\n next === charCodes.slash &&\n this.state.hasFlowComment\n ) {\n this.state.hasFlowComment = false;\n this.state.pos += 2;\n this.nextToken();\n return;\n }\n\n super.readToken_mult_modulo(code);\n }\n\n readToken_pipe_amp(code: number): void {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (\n code === charCodes.verticalBar &&\n next === charCodes.rightCurlyBrace\n ) {\n // '|}'\n this.finishOp(tt.braceBarR, 2);\n return;\n }\n\n super.readToken_pipe_amp(code);\n }\n\n parseTopLevel(file: N.File, program: N.Program): N.File {\n const fileNode = super.parseTopLevel(file, program);\n if (this.state.hasFlowComment) {\n this.raise(\n FlowErrors.UnterminatedFlowComment,\n this.state.curPosition(),\n );\n }\n return fileNode;\n }\n\n skipBlockComment(): N.CommentBlock | undefined {\n if (this.hasPlugin(\"flowComments\") && this.skipFlowComment()) {\n if (this.state.hasFlowComment) {\n throw this.raise(FlowErrors.NestedFlowComment, this.state.startLoc);\n }\n this.hasFlowCommentCompletion();\n const commentSkip = this.skipFlowComment();\n if (commentSkip) {\n this.state.pos += commentSkip;\n this.state.hasFlowComment = true;\n }\n return;\n }\n\n return super.skipBlockComment(this.state.hasFlowComment ? \"*-/\" : \"*/\");\n }\n\n skipFlowComment(): number | false {\n const { pos } = this.state;\n let shiftToFirstNonWhiteSpace = 2;\n while (\n [charCodes.space, charCodes.tab].includes(\n // @ts-expect-error testing whether a number is included\n this.input.charCodeAt(pos + shiftToFirstNonWhiteSpace),\n )\n ) {\n shiftToFirstNonWhiteSpace++;\n }\n\n const ch2 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos);\n const ch3 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos + 1);\n\n if (ch2 === charCodes.colon && ch3 === charCodes.colon) {\n return shiftToFirstNonWhiteSpace + 2; // check for /*::\n }\n if (\n this.input.slice(\n shiftToFirstNonWhiteSpace + pos,\n shiftToFirstNonWhiteSpace + pos + 12,\n ) === \"flow-include\"\n ) {\n return shiftToFirstNonWhiteSpace + 12; // check for /*flow-include\n }\n if (ch2 === charCodes.colon && ch3 !== charCodes.colon) {\n return shiftToFirstNonWhiteSpace; // check for /*:, advance up to :\n }\n return false;\n }\n\n hasFlowCommentCompletion(): void {\n const end = this.input.indexOf(\"*/\", this.state.pos);\n if (end === -1) {\n throw this.raise(Errors.UnterminatedComment, this.state.curPosition());\n }\n }\n\n // Flow enum parsing\n\n flowEnumErrorBooleanMemberNotInitialized(\n loc: Position,\n {\n enumName,\n memberName,\n }: {\n enumName: string;\n memberName: string;\n },\n ): void {\n this.raise(FlowErrors.EnumBooleanMemberNotInitialized, loc, {\n memberName,\n enumName,\n });\n }\n\n flowEnumErrorInvalidMemberInitializer(\n loc: Position,\n enumContext: EnumContext,\n ) {\n return this.raise(\n !enumContext.explicitType\n ? FlowErrors.EnumInvalidMemberInitializerUnknownType\n : enumContext.explicitType === \"symbol\"\n ? FlowErrors.EnumInvalidMemberInitializerSymbolType\n : FlowErrors.EnumInvalidMemberInitializerPrimaryType,\n loc,\n enumContext,\n );\n }\n\n flowEnumErrorNumberMemberNotInitialized(\n loc: Position,\n details: {\n enumName: string;\n memberName: string;\n },\n ): void {\n this.raise(FlowErrors.EnumNumberMemberNotInitialized, loc, details);\n }\n\n flowEnumErrorStringMemberInconsistentlyInitialized(\n node: N.Node,\n details: {\n enumName: string;\n },\n ): void {\n this.raise(\n FlowErrors.EnumStringMemberInconsistentlyInitialized,\n node,\n details,\n );\n }\n\n flowEnumMemberInit(): EnumMemberInit {\n const startLoc = this.state.startLoc;\n const endOfInit = () => this.match(tt.comma) || this.match(tt.braceR);\n switch (this.state.type) {\n case tt.num: {\n const literal = this.parseNumericLiteral(this.state.value);\n if (endOfInit()) {\n return { type: \"number\", loc: literal.loc.start, value: literal };\n }\n return { type: \"invalid\", loc: startLoc };\n }\n case tt.string: {\n const literal = this.parseStringLiteral(this.state.value);\n if (endOfInit()) {\n return { type: \"string\", loc: literal.loc.start, value: literal };\n }\n return { type: \"invalid\", loc: startLoc };\n }\n case tt._true:\n case tt._false: {\n const literal = this.parseBooleanLiteral(this.match(tt._true));\n if (endOfInit()) {\n return {\n type: \"boolean\",\n loc: literal.loc.start,\n value: literal,\n };\n }\n return { type: \"invalid\", loc: startLoc };\n }\n default:\n return { type: \"invalid\", loc: startLoc };\n }\n }\n\n flowEnumMemberRaw(): {\n id: N.Identifier;\n init: EnumMemberInit;\n } {\n const loc = this.state.startLoc;\n const id = this.parseIdentifier(true);\n const init = this.eat(tt.eq)\n ? this.flowEnumMemberInit()\n : { type: \"none\" as const, loc };\n return { id, init };\n }\n\n flowEnumCheckExplicitTypeMismatch(\n loc: Position,\n context: EnumContext,\n expectedType: EnumExplicitType,\n ): void {\n const { explicitType } = context;\n if (explicitType === null) {\n return;\n }\n if (explicitType !== expectedType) {\n this.flowEnumErrorInvalidMemberInitializer(loc, context);\n }\n }\n\n flowEnumMembers({\n enumName,\n explicitType,\n }: {\n enumName: string;\n explicitType: EnumExplicitType;\n }): {\n members: {\n booleanMembers: Extract<\n N.FlowEnumMember,\n { type: \"EnumBooleanMember\" }\n >[];\n numberMembers: Extract<\n N.FlowEnumMember,\n { type: \"EnumNumberMember\" }\n >[];\n stringMembers: Extract<\n N.FlowEnumMember,\n { type: \"EnumStringMember\" }\n >[];\n defaultedMembers: Extract<\n N.FlowEnumMember,\n { type: \"EnumDefaultedMember\" }\n >[];\n };\n hasUnknownMembers: boolean;\n } {\n const seenNames = new Set();\n const members = {\n booleanMembers: [],\n numberMembers: [],\n stringMembers: [],\n defaultedMembers: [],\n };\n let hasUnknownMembers = false;\n while (!this.match(tt.braceR)) {\n if (this.eat(tt.ellipsis)) {\n hasUnknownMembers = true;\n break;\n }\n const memberNode = this.startNode();\n const { id, init } = this.flowEnumMemberRaw();\n const memberName = id.name;\n if (memberName === \"\") {\n continue;\n }\n if (/^[a-z]/.test(memberName)) {\n this.raise(FlowErrors.EnumInvalidMemberName, id, {\n memberName,\n suggestion: memberName[0].toUpperCase() + memberName.slice(1),\n enumName,\n });\n }\n if (seenNames.has(memberName)) {\n this.raise(FlowErrors.EnumDuplicateMemberName, id, {\n memberName,\n enumName,\n });\n }\n seenNames.add(memberName);\n const context = { enumName, explicitType, memberName };\n memberNode.id = id;\n switch (init.type) {\n case \"boolean\": {\n this.flowEnumCheckExplicitTypeMismatch(\n init.loc,\n context,\n \"boolean\",\n );\n memberNode.init = init.value;\n members.booleanMembers.push(\n // @ts-expect-error NodeAny not supported\n this.finishNode(memberNode, \"EnumBooleanMember\"),\n );\n break;\n }\n case \"number\": {\n this.flowEnumCheckExplicitTypeMismatch(init.loc, context, \"number\");\n memberNode.init = init.value;\n members.numberMembers.push(\n // @ts-expect-error NodeAny not supported\n this.finishNode(memberNode, \"EnumNumberMember\"),\n );\n break;\n }\n case \"string\": {\n this.flowEnumCheckExplicitTypeMismatch(init.loc, context, \"string\");\n memberNode.init = init.value;\n members.stringMembers.push(\n // @ts-expect-error NodeAny not supported\n this.finishNode(memberNode, \"EnumStringMember\"),\n );\n break;\n }\n case \"invalid\": {\n throw this.flowEnumErrorInvalidMemberInitializer(init.loc, context);\n }\n case \"none\": {\n switch (explicitType) {\n case \"boolean\":\n this.flowEnumErrorBooleanMemberNotInitialized(\n init.loc,\n context,\n );\n break;\n case \"number\":\n this.flowEnumErrorNumberMemberNotInitialized(init.loc, context);\n break;\n default:\n members.defaultedMembers.push(\n // @ts-expect-error NodeAny not supported\n this.finishNode(memberNode, \"EnumDefaultedMember\"),\n );\n }\n }\n }\n\n if (!this.match(tt.braceR)) {\n this.expect(tt.comma);\n }\n }\n return { members, hasUnknownMembers };\n }\n\n flowEnumStringMembers(\n initializedMembers: N.Node[],\n defaultedMembers: N.Node[],\n {\n enumName,\n }: {\n enumName: string;\n },\n ): N.Node[] {\n if (initializedMembers.length === 0) {\n return defaultedMembers;\n } else if (defaultedMembers.length === 0) {\n return initializedMembers;\n } else if (defaultedMembers.length > initializedMembers.length) {\n for (const member of initializedMembers) {\n this.flowEnumErrorStringMemberInconsistentlyInitialized(member, {\n enumName,\n });\n }\n return defaultedMembers;\n } else {\n for (const member of defaultedMembers) {\n this.flowEnumErrorStringMemberInconsistentlyInitialized(member, {\n enumName,\n });\n }\n return initializedMembers;\n }\n }\n\n flowEnumParseExplicitType({\n enumName,\n }: {\n enumName: string;\n }): EnumExplicitType {\n if (!this.eatContextual(tt._of)) return null;\n\n if (!tokenIsIdentifier(this.state.type)) {\n throw this.raise(\n FlowErrors.EnumInvalidExplicitTypeUnknownSupplied,\n this.state.startLoc,\n {\n enumName,\n },\n );\n }\n\n const { value } = this.state;\n this.next();\n\n if (\n value !== \"boolean\" &&\n value !== \"number\" &&\n value !== \"string\" &&\n value !== \"symbol\"\n ) {\n this.raise(FlowErrors.EnumInvalidExplicitType, this.state.startLoc, {\n enumName,\n invalidEnumType: value,\n });\n }\n\n return value;\n }\n\n flowEnumBody(node: Undone, id: N.Identifier): N.Node {\n const enumName = id.name;\n const nameLoc = id.loc.start;\n const explicitType = this.flowEnumParseExplicitType({ enumName });\n this.expect(tt.braceL);\n const { members, hasUnknownMembers } = this.flowEnumMembers({\n enumName,\n explicitType,\n });\n node.hasUnknownMembers = hasUnknownMembers;\n\n switch (explicitType) {\n case \"boolean\":\n node.explicitType = true;\n node.members = members.booleanMembers;\n this.expect(tt.braceR);\n return this.finishNode(node, \"EnumBooleanBody\");\n case \"number\":\n node.explicitType = true;\n node.members = members.numberMembers;\n this.expect(tt.braceR);\n return this.finishNode(node, \"EnumNumberBody\");\n case \"string\":\n node.explicitType = true;\n node.members = this.flowEnumStringMembers(\n members.stringMembers,\n members.defaultedMembers,\n { enumName },\n );\n this.expect(tt.braceR);\n return this.finishNode(node, \"EnumStringBody\");\n case \"symbol\":\n node.members = members.defaultedMembers;\n this.expect(tt.braceR);\n return this.finishNode(node, \"EnumSymbolBody\");\n default: {\n // `explicitType` is `null`\n const empty = () => {\n node.members = [];\n this.expect(tt.braceR);\n return this.finishNode(node, \"EnumStringBody\");\n };\n node.explicitType = false;\n\n const boolsLen = members.booleanMembers.length;\n const numsLen = members.numberMembers.length;\n const strsLen = members.stringMembers.length;\n const defaultedLen = members.defaultedMembers.length;\n\n if (!boolsLen && !numsLen && !strsLen && !defaultedLen) {\n return empty();\n } else if (!boolsLen && !numsLen) {\n node.members = this.flowEnumStringMembers(\n members.stringMembers,\n members.defaultedMembers,\n { enumName },\n );\n this.expect(tt.braceR);\n return this.finishNode(node, \"EnumStringBody\");\n } else if (!numsLen && !strsLen && boolsLen >= defaultedLen) {\n for (const member of members.defaultedMembers) {\n this.flowEnumErrorBooleanMemberNotInitialized(member.loc.start, {\n enumName,\n memberName: member.id.name,\n });\n }\n node.members = members.booleanMembers;\n this.expect(tt.braceR);\n return this.finishNode(node, \"EnumBooleanBody\");\n } else if (!boolsLen && !strsLen && numsLen >= defaultedLen) {\n for (const member of members.defaultedMembers) {\n this.flowEnumErrorNumberMemberNotInitialized(member.loc.start, {\n enumName,\n memberName: member.id.name,\n });\n }\n node.members = members.numberMembers;\n this.expect(tt.braceR);\n return this.finishNode(node, \"EnumNumberBody\");\n } else {\n this.raise(FlowErrors.EnumInconsistentMemberValues, nameLoc, {\n enumName,\n });\n return empty();\n }\n }\n }\n }\n\n flowParseEnumDeclaration(\n node: Undone,\n ): N.FlowEnumDeclaration {\n const id = this.parseIdentifier();\n node.id = id;\n node.body = this.flowEnumBody(this.startNode(), id);\n return this.finishNode(node, \"EnumDeclaration\");\n }\n\n jsxParseOpeningElementAfterName(\n node: N.JSXOpeningElement,\n ): N.JSXOpeningElement {\n if (this.shouldParseTypes()) {\n if (this.match(tt.lt) || this.match(tt.bitShiftL)) {\n node.typeArguments =\n this.flowParseTypeParameterInstantiationInExpression();\n }\n }\n\n return super.jsxParseOpeningElementAfterName(node);\n }\n\n // check if the next token is a tt.lt\n isLookaheadToken_lt(): boolean {\n const next = this.nextTokenStart();\n if (this.input.charCodeAt(next) === charCodes.lessThan) {\n const afterNext = this.input.charCodeAt(next + 1);\n return (\n afterNext !== charCodes.lessThan && afterNext !== charCodes.equalsTo\n );\n }\n return false;\n }\n\n // used after we have finished parsing types\n reScan_lt_gt() {\n const { type } = this.state;\n if (type === tt.lt) {\n this.state.pos -= 1;\n this.readToken_lt();\n } else if (type === tt.gt) {\n this.state.pos -= 1;\n this.readToken_gt();\n }\n }\n\n reScan_lt() {\n const { type } = this.state;\n if (type === tt.bitShiftL) {\n this.state.pos -= 2;\n this.finishOp(tt.lt, 1);\n return tt.lt;\n }\n return type;\n }\n\n maybeUnwrapTypeCastExpression(node: N.Node) {\n return node.type === \"TypeCastExpression\" ? node.expression : node;\n }\n };\n","const entities: Record = {\n // @ts-expect-error __proto__ is not an actual property: https://github.com/microsoft/TypeScript/issues/38385\n __proto__: null,\n quot: \"\\u0022\",\n amp: \"&\",\n apos: \"\\u0027\",\n lt: \"<\",\n gt: \">\",\n nbsp: \"\\u00A0\",\n iexcl: \"\\u00A1\",\n cent: \"\\u00A2\",\n pound: \"\\u00A3\",\n curren: \"\\u00A4\",\n yen: \"\\u00A5\",\n brvbar: \"\\u00A6\",\n sect: \"\\u00A7\",\n uml: \"\\u00A8\",\n copy: \"\\u00A9\",\n ordf: \"\\u00AA\",\n laquo: \"\\u00AB\",\n not: \"\\u00AC\",\n shy: \"\\u00AD\",\n reg: \"\\u00AE\",\n macr: \"\\u00AF\",\n deg: \"\\u00B0\",\n plusmn: \"\\u00B1\",\n sup2: \"\\u00B2\",\n sup3: \"\\u00B3\",\n acute: \"\\u00B4\",\n micro: \"\\u00B5\",\n para: \"\\u00B6\",\n middot: \"\\u00B7\",\n cedil: \"\\u00B8\",\n sup1: \"\\u00B9\",\n ordm: \"\\u00BA\",\n raquo: \"\\u00BB\",\n frac14: \"\\u00BC\",\n frac12: \"\\u00BD\",\n frac34: \"\\u00BE\",\n iquest: \"\\u00BF\",\n Agrave: \"\\u00C0\",\n Aacute: \"\\u00C1\",\n Acirc: \"\\u00C2\",\n Atilde: \"\\u00C3\",\n Auml: \"\\u00C4\",\n Aring: \"\\u00C5\",\n AElig: \"\\u00C6\",\n Ccedil: \"\\u00C7\",\n Egrave: \"\\u00C8\",\n Eacute: \"\\u00C9\",\n Ecirc: \"\\u00CA\",\n Euml: \"\\u00CB\",\n Igrave: \"\\u00CC\",\n Iacute: \"\\u00CD\",\n Icirc: \"\\u00CE\",\n Iuml: \"\\u00CF\",\n ETH: \"\\u00D0\",\n Ntilde: \"\\u00D1\",\n Ograve: \"\\u00D2\",\n Oacute: \"\\u00D3\",\n Ocirc: \"\\u00D4\",\n Otilde: \"\\u00D5\",\n Ouml: \"\\u00D6\",\n times: \"\\u00D7\",\n Oslash: \"\\u00D8\",\n Ugrave: \"\\u00D9\",\n Uacute: \"\\u00DA\",\n Ucirc: \"\\u00DB\",\n Uuml: \"\\u00DC\",\n Yacute: \"\\u00DD\",\n THORN: \"\\u00DE\",\n szlig: \"\\u00DF\",\n agrave: \"\\u00E0\",\n aacute: \"\\u00E1\",\n acirc: \"\\u00E2\",\n atilde: \"\\u00E3\",\n auml: \"\\u00E4\",\n aring: \"\\u00E5\",\n aelig: \"\\u00E6\",\n ccedil: \"\\u00E7\",\n egrave: \"\\u00E8\",\n eacute: \"\\u00E9\",\n ecirc: \"\\u00EA\",\n euml: \"\\u00EB\",\n igrave: \"\\u00EC\",\n iacute: \"\\u00ED\",\n icirc: \"\\u00EE\",\n iuml: \"\\u00EF\",\n eth: \"\\u00F0\",\n ntilde: \"\\u00F1\",\n ograve: \"\\u00F2\",\n oacute: \"\\u00F3\",\n ocirc: \"\\u00F4\",\n otilde: \"\\u00F5\",\n ouml: \"\\u00F6\",\n divide: \"\\u00F7\",\n oslash: \"\\u00F8\",\n ugrave: \"\\u00F9\",\n uacute: \"\\u00FA\",\n ucirc: \"\\u00FB\",\n uuml: \"\\u00FC\",\n yacute: \"\\u00FD\",\n thorn: \"\\u00FE\",\n yuml: \"\\u00FF\",\n OElig: \"\\u0152\",\n oelig: \"\\u0153\",\n Scaron: \"\\u0160\",\n scaron: \"\\u0161\",\n Yuml: \"\\u0178\",\n fnof: \"\\u0192\",\n circ: \"\\u02C6\",\n tilde: \"\\u02DC\",\n Alpha: \"\\u0391\",\n Beta: \"\\u0392\",\n Gamma: \"\\u0393\",\n Delta: \"\\u0394\",\n Epsilon: \"\\u0395\",\n Zeta: \"\\u0396\",\n Eta: \"\\u0397\",\n Theta: \"\\u0398\",\n Iota: \"\\u0399\",\n Kappa: \"\\u039A\",\n Lambda: \"\\u039B\",\n Mu: \"\\u039C\",\n Nu: \"\\u039D\",\n Xi: \"\\u039E\",\n Omicron: \"\\u039F\",\n Pi: \"\\u03A0\",\n Rho: \"\\u03A1\",\n Sigma: \"\\u03A3\",\n Tau: \"\\u03A4\",\n Upsilon: \"\\u03A5\",\n Phi: \"\\u03A6\",\n Chi: \"\\u03A7\",\n Psi: \"\\u03A8\",\n Omega: \"\\u03A9\",\n alpha: \"\\u03B1\",\n beta: \"\\u03B2\",\n gamma: \"\\u03B3\",\n delta: \"\\u03B4\",\n epsilon: \"\\u03B5\",\n zeta: \"\\u03B6\",\n eta: \"\\u03B7\",\n theta: \"\\u03B8\",\n iota: \"\\u03B9\",\n kappa: \"\\u03BA\",\n lambda: \"\\u03BB\",\n mu: \"\\u03BC\",\n nu: \"\\u03BD\",\n xi: \"\\u03BE\",\n omicron: \"\\u03BF\",\n pi: \"\\u03C0\",\n rho: \"\\u03C1\",\n sigmaf: \"\\u03C2\",\n sigma: \"\\u03C3\",\n tau: \"\\u03C4\",\n upsilon: \"\\u03C5\",\n phi: \"\\u03C6\",\n chi: \"\\u03C7\",\n psi: \"\\u03C8\",\n omega: \"\\u03C9\",\n thetasym: \"\\u03D1\",\n upsih: \"\\u03D2\",\n piv: \"\\u03D6\",\n ensp: \"\\u2002\",\n emsp: \"\\u2003\",\n thinsp: \"\\u2009\",\n zwnj: \"\\u200C\",\n zwj: \"\\u200D\",\n lrm: \"\\u200E\",\n rlm: \"\\u200F\",\n ndash: \"\\u2013\",\n mdash: \"\\u2014\",\n lsquo: \"\\u2018\",\n rsquo: \"\\u2019\",\n sbquo: \"\\u201A\",\n ldquo: \"\\u201C\",\n rdquo: \"\\u201D\",\n bdquo: \"\\u201E\",\n dagger: \"\\u2020\",\n Dagger: \"\\u2021\",\n bull: \"\\u2022\",\n hellip: \"\\u2026\",\n permil: \"\\u2030\",\n prime: \"\\u2032\",\n Prime: \"\\u2033\",\n lsaquo: \"\\u2039\",\n rsaquo: \"\\u203A\",\n oline: \"\\u203E\",\n frasl: \"\\u2044\",\n euro: \"\\u20AC\",\n image: \"\\u2111\",\n weierp: \"\\u2118\",\n real: \"\\u211C\",\n trade: \"\\u2122\",\n alefsym: \"\\u2135\",\n larr: \"\\u2190\",\n uarr: \"\\u2191\",\n rarr: \"\\u2192\",\n darr: \"\\u2193\",\n harr: \"\\u2194\",\n crarr: \"\\u21B5\",\n lArr: \"\\u21D0\",\n uArr: \"\\u21D1\",\n rArr: \"\\u21D2\",\n dArr: \"\\u21D3\",\n hArr: \"\\u21D4\",\n forall: \"\\u2200\",\n part: \"\\u2202\",\n exist: \"\\u2203\",\n empty: \"\\u2205\",\n nabla: \"\\u2207\",\n isin: \"\\u2208\",\n notin: \"\\u2209\",\n ni: \"\\u220B\",\n prod: \"\\u220F\",\n sum: \"\\u2211\",\n minus: \"\\u2212\",\n lowast: \"\\u2217\",\n radic: \"\\u221A\",\n prop: \"\\u221D\",\n infin: \"\\u221E\",\n ang: \"\\u2220\",\n and: \"\\u2227\",\n or: \"\\u2228\",\n cap: \"\\u2229\",\n cup: \"\\u222A\",\n int: \"\\u222B\",\n there4: \"\\u2234\",\n sim: \"\\u223C\",\n cong: \"\\u2245\",\n asymp: \"\\u2248\",\n ne: \"\\u2260\",\n equiv: \"\\u2261\",\n le: \"\\u2264\",\n ge: \"\\u2265\",\n sub: \"\\u2282\",\n sup: \"\\u2283\",\n nsub: \"\\u2284\",\n sube: \"\\u2286\",\n supe: \"\\u2287\",\n oplus: \"\\u2295\",\n otimes: \"\\u2297\",\n perp: \"\\u22A5\",\n sdot: \"\\u22C5\",\n lceil: \"\\u2308\",\n rceil: \"\\u2309\",\n lfloor: \"\\u230A\",\n rfloor: \"\\u230B\",\n lang: \"\\u2329\",\n rang: \"\\u232A\",\n loz: \"\\u25CA\",\n spades: \"\\u2660\",\n clubs: \"\\u2663\",\n hearts: \"\\u2665\",\n diams: \"\\u2666\",\n} as const;\nexport default entities;\n","import * as charCodes from \"charcodes\";\n\n// Matches a whole line break (where CRLF is considered a single\n// line break). Used to count lines.\nexport const lineBreak = /\\r\\n|[\\r\\n\\u2028\\u2029]/;\nexport const lineBreakG = new RegExp(lineBreak.source, \"g\");\n\n// https://tc39.github.io/ecma262/#sec-line-terminators\nexport function isNewLine(code: number): boolean {\n switch (code) {\n case charCodes.lineFeed:\n case charCodes.carriageReturn:\n case charCodes.lineSeparator:\n case charCodes.paragraphSeparator:\n return true;\n\n default:\n return false;\n }\n}\n\nexport function hasNewLine(input: string, start: number, end: number): boolean {\n for (let i = start; i < end; i++) {\n if (isNewLine(input.charCodeAt(i))) {\n return true;\n }\n }\n return false;\n}\n\nexport const skipWhiteSpace = /(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g;\n\nexport const skipWhiteSpaceInLine =\n /(?:[^\\S\\n\\r\\u2028\\u2029]|\\/\\/.*|\\/\\*.*?\\*\\/)*/g;\n\n// https://tc39.github.io/ecma262/#sec-white-space\nexport function isWhitespace(code: number): boolean {\n switch (code) {\n case 0x0009: // CHARACTER TABULATION\n case 0x000b: // LINE TABULATION\n case 0x000c: // FORM FEED\n case charCodes.space:\n case charCodes.nonBreakingSpace:\n case charCodes.oghamSpaceMark:\n case 0x2000: // EN QUAD\n case 0x2001: // EM QUAD\n case 0x2002: // EN SPACE\n case 0x2003: // EM SPACE\n case 0x2004: // THREE-PER-EM SPACE\n case 0x2005: // FOUR-PER-EM SPACE\n case 0x2006: // SIX-PER-EM SPACE\n case 0x2007: // FIGURE SPACE\n case 0x2008: // PUNCTUATION SPACE\n case 0x2009: // THIN SPACE\n case 0x200a: // HAIR SPACE\n case 0x202f: // NARROW NO-BREAK SPACE\n case 0x205f: // MEDIUM MATHEMATICAL SPACE\n case 0x3000: // IDEOGRAPHIC SPACE\n case 0xfeff: // ZERO WIDTH NO-BREAK SPACE\n return true;\n\n default:\n return false;\n }\n}\n","import * as charCodes from \"charcodes\";\n\nimport XHTMLEntities from \"./xhtml.ts\";\nimport type Parser from \"../../parser/index.ts\";\nimport type { ExpressionErrors } from \"../../parser/util.ts\";\nimport {\n tokenComesBeforeExpression,\n tokenIsKeyword,\n tokenLabelName,\n type TokenType,\n tt,\n} from \"../../tokenizer/types.ts\";\nimport type { TokContext } from \"../../tokenizer/context.ts\";\nimport { types as tc } from \"../../tokenizer/context.ts\";\nimport type * as N from \"../../types.ts\";\nimport { isIdentifierChar, isIdentifierStart } from \"../../util/identifier.ts\";\nimport type { Position } from \"../../util/location.ts\";\nimport { isNewLine } from \"../../util/whitespace.ts\";\nimport { Errors, ParseErrorEnum } from \"../../parse-error.ts\";\nimport type { Undone } from \"../../parser/node.ts\";\n\n/* eslint sort-keys: \"error\" */\nconst JsxErrors = ParseErrorEnum`jsx`({\n AttributeIsEmpty:\n \"JSX attributes must only be assigned a non-empty expression.\",\n MissingClosingTagElement: ({ openingTagName }: { openingTagName: string }) =>\n `Expected corresponding JSX closing tag for <${openingTagName}>.`,\n MissingClosingTagFragment: \"Expected corresponding JSX closing tag for <>.\",\n UnexpectedSequenceExpression:\n \"Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?\",\n // FIXME: Unify with Errors.UnexpectedToken\n UnexpectedToken: ({\n unexpected,\n HTMLEntity,\n }: {\n unexpected: string;\n HTMLEntity: string;\n }) =>\n `Unexpected token \\`${unexpected}\\`. Did you mean \\`${HTMLEntity}\\` or \\`{'${unexpected}'}\\`?`,\n UnsupportedJsxValue:\n \"JSX value should be either an expression or a quoted JSX text.\",\n UnterminatedJsxContent: \"Unterminated JSX contents.\",\n UnwrappedAdjacentJSXElements:\n \"Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...?\",\n});\n\n/* eslint-disable sort-keys */\n\nfunction isFragment(object?: N.JSXTag | null): object is N.JSXFragmentTag {\n return object\n ? object.type === \"JSXOpeningFragment\" ||\n object.type === \"JSXClosingFragment\"\n : false;\n}\n\n// Transforms JSX element name to string.\n\nfunction getQualifiedJSXName(\n object: N.JSXIdentifier | N.JSXNamespacedName | N.JSXMemberExpression,\n): string {\n if (object.type === \"JSXIdentifier\") {\n return object.name;\n }\n\n if (object.type === \"JSXNamespacedName\") {\n return object.namespace.name + \":\" + object.name.name;\n }\n\n if (object.type === \"JSXMemberExpression\") {\n return (\n getQualifiedJSXName(object.object) +\n \".\" +\n getQualifiedJSXName(object.property)\n );\n }\n\n // istanbul ignore next\n // @ts-expect-error - object is 'never'\n throw new Error(\"Node had unexpected type: \" + object.type);\n}\n\nexport interface IJSXParserMixin {\n jsxParseOpeningElementAfterName(\n node: N.JSXOpeningElement,\n ): N.JSXOpeningElement;\n}\n\nexport type ClassWithMixin<\n T extends new (...args: any) => any,\n M extends object,\n> = T extends new (...args: infer P) => infer I\n ? new (...args: P) => I & M\n : never;\n\nexport default (superClass: typeof Parser) =>\n class JSXParserMixin extends superClass implements Parser, IJSXParserMixin {\n // Reads inline JSX contents token.\n\n jsxReadToken(): void {\n let out = \"\";\n let chunkStart = this.state.pos;\n for (;;) {\n if (this.state.pos >= this.length) {\n throw this.raise(\n JsxErrors.UnterminatedJsxContent,\n this.state.startLoc,\n );\n }\n\n const ch = this.input.charCodeAt(this.state.pos);\n\n switch (ch) {\n case charCodes.lessThan:\n case charCodes.leftCurlyBrace:\n if (this.state.pos === this.state.start) {\n if (ch === charCodes.lessThan && this.state.canStartJSXElement) {\n ++this.state.pos;\n this.finishToken(tt.jsxTagStart);\n } else {\n super.getTokenFromCode(ch);\n }\n return;\n }\n out += this.input.slice(chunkStart, this.state.pos);\n this.finishToken(tt.jsxText, out);\n return;\n\n case charCodes.ampersand:\n out += this.input.slice(chunkStart, this.state.pos);\n out += this.jsxReadEntity();\n chunkStart = this.state.pos;\n break;\n\n case charCodes.greaterThan:\n case charCodes.rightCurlyBrace:\n if (process.env.BABEL_8_BREAKING) {\n this.raise(JsxErrors.UnexpectedToken, this.state.curPosition(), {\n unexpected: this.input[this.state.pos],\n HTMLEntity:\n ch === charCodes.rightCurlyBrace ? \"}\" : \">\",\n });\n }\n /* falls through */\n\n default:\n if (isNewLine(ch)) {\n out += this.input.slice(chunkStart, this.state.pos);\n out += this.jsxReadNewLine(true);\n chunkStart = this.state.pos;\n } else {\n ++this.state.pos;\n }\n }\n }\n }\n\n jsxReadNewLine(normalizeCRLF: boolean): string {\n const ch = this.input.charCodeAt(this.state.pos);\n let out;\n ++this.state.pos;\n if (\n ch === charCodes.carriageReturn &&\n this.input.charCodeAt(this.state.pos) === charCodes.lineFeed\n ) {\n ++this.state.pos;\n out = normalizeCRLF ? \"\\n\" : \"\\r\\n\";\n } else {\n out = String.fromCharCode(ch);\n }\n ++this.state.curLine;\n this.state.lineStart = this.state.pos;\n\n return out;\n }\n\n jsxReadString(quote: number): void {\n let out = \"\";\n let chunkStart = ++this.state.pos;\n for (;;) {\n if (this.state.pos >= this.length) {\n throw this.raise(Errors.UnterminatedString, this.state.startLoc);\n }\n\n const ch = this.input.charCodeAt(this.state.pos);\n if (ch === quote) break;\n if (ch === charCodes.ampersand) {\n out += this.input.slice(chunkStart, this.state.pos);\n out += this.jsxReadEntity();\n chunkStart = this.state.pos;\n } else if (isNewLine(ch)) {\n out += this.input.slice(chunkStart, this.state.pos);\n out += this.jsxReadNewLine(false);\n chunkStart = this.state.pos;\n } else {\n ++this.state.pos;\n }\n }\n out += this.input.slice(chunkStart, this.state.pos++);\n this.finishToken(tt.string, out);\n }\n\n jsxReadEntity(): string {\n const startPos = ++this.state.pos;\n if (this.codePointAtPos(this.state.pos) === charCodes.numberSign) {\n ++this.state.pos;\n\n let radix = 10;\n if (this.codePointAtPos(this.state.pos) === charCodes.lowercaseX) {\n radix = 16;\n ++this.state.pos;\n }\n\n const codePoint = this.readInt(\n radix,\n /* len */ undefined,\n /* forceLen */ false,\n /* allowNumSeparator */ \"bail\",\n );\n if (\n codePoint !== null &&\n this.codePointAtPos(this.state.pos) === charCodes.semicolon\n ) {\n ++this.state.pos;\n return String.fromCodePoint(codePoint);\n }\n } else {\n let count = 0;\n let semi = false;\n while (\n count++ < 10 &&\n this.state.pos < this.length &&\n !(semi = this.codePointAtPos(this.state.pos) === charCodes.semicolon)\n ) {\n ++this.state.pos;\n }\n\n if (semi) {\n const desc = this.input.slice(startPos, this.state.pos);\n const entity = XHTMLEntities[desc];\n ++this.state.pos;\n\n if (entity) {\n return entity;\n }\n }\n }\n\n // Not a valid entity\n this.state.pos = startPos;\n return \"&\";\n }\n\n // Read a JSX identifier (valid tag or attribute name).\n //\n // Optimized version since JSX identifiers can\"t contain\n // escape characters and so can be read as single slice.\n // Also assumes that first character was already checked\n // by isIdentifierStart in readToken.\n\n jsxReadWord(): void {\n let ch;\n const start = this.state.pos;\n do {\n ch = this.input.charCodeAt(++this.state.pos);\n } while (isIdentifierChar(ch) || ch === charCodes.dash);\n this.finishToken(tt.jsxName, this.input.slice(start, this.state.pos));\n }\n\n // Parse next token as JSX identifier\n\n jsxParseIdentifier(): N.JSXIdentifier {\n const node = this.startNode();\n if (this.match(tt.jsxName)) {\n node.name = this.state.value;\n } else if (tokenIsKeyword(this.state.type)) {\n node.name = tokenLabelName(this.state.type);\n } else {\n this.unexpected();\n }\n this.next();\n return this.finishNode(node, \"JSXIdentifier\");\n }\n\n // Parse namespaced identifier.\n\n jsxParseNamespacedName(): N.JSXNamespacedName | N.JSXIdentifier {\n const startLoc = this.state.startLoc;\n const name = this.jsxParseIdentifier();\n if (!this.eat(tt.colon)) return name;\n\n const node = this.startNodeAt(startLoc);\n node.namespace = name;\n node.name = this.jsxParseIdentifier();\n return this.finishNode(node, \"JSXNamespacedName\");\n }\n\n // Parses element name in any form - namespaced, member\n // or single identifier.\n\n jsxParseElementName():\n | N.JSXIdentifier\n | N.JSXNamespacedName\n | N.JSXMemberExpression {\n const startLoc = this.state.startLoc;\n let node: N.JSXIdentifier | N.JSXNamespacedName | N.JSXMemberExpression =\n this.jsxParseNamespacedName();\n if (node.type === \"JSXNamespacedName\") {\n return node;\n }\n while (this.eat(tt.dot)) {\n const newNode = this.startNodeAt(startLoc);\n newNode.object = node;\n newNode.property = this.jsxParseIdentifier();\n node = this.finishNode(newNode, \"JSXMemberExpression\");\n }\n return node;\n }\n\n // Parses any type of JSX attribute value.\n\n jsxParseAttributeValue():\n | N.JSXExpressionContainer\n | N.JSXElement\n | N.StringLiteral {\n let node;\n switch (this.state.type) {\n case tt.braceL:\n node = this.startNode();\n this.setContext(tc.brace);\n this.next();\n node = this.jsxParseExpressionContainer(node, tc.j_oTag);\n if (node.expression.type === \"JSXEmptyExpression\") {\n this.raise(JsxErrors.AttributeIsEmpty, node);\n }\n return node;\n\n case tt.jsxTagStart:\n case tt.string:\n return this.parseExprAtom() as N.JSXElement | N.StringLiteral;\n\n default:\n throw this.raise(JsxErrors.UnsupportedJsxValue, this.state.startLoc);\n }\n }\n\n // JSXEmptyExpression is unique type since it doesn't actually parse anything,\n // and so it should start at the end of last read token (left brace) and finish\n // at the beginning of the next one (right brace).\n\n jsxParseEmptyExpression(): N.JSXEmptyExpression {\n const node = this.startNodeAt(this.state.lastTokEndLoc!);\n return this.finishNodeAt(node, \"JSXEmptyExpression\", this.state.startLoc);\n }\n\n // Parse JSX spread child\n\n jsxParseSpreadChild(node: Undone): N.JSXSpreadChild {\n this.next(); // ellipsis\n node.expression = this.parseExpression();\n this.setContext(tc.j_expr);\n this.state.canStartJSXElement = true;\n this.expect(tt.braceR);\n\n return this.finishNode(node, \"JSXSpreadChild\");\n }\n\n // Parses JSX expression enclosed into curly brackets.\n\n jsxParseExpressionContainer(\n node: Undone,\n previousContext: TokContext,\n ): N.JSXExpressionContainer {\n if (this.match(tt.braceR)) {\n node.expression = this.jsxParseEmptyExpression();\n } else {\n const expression = this.parseExpression();\n\n if (process.env.BABEL_8_BREAKING) {\n if (\n expression.type === \"SequenceExpression\" &&\n !expression.extra?.parenthesized\n ) {\n this.raise(\n JsxErrors.UnexpectedSequenceExpression,\n expression.expressions[1],\n );\n }\n }\n\n node.expression = expression;\n }\n this.setContext(previousContext);\n this.state.canStartJSXElement = true;\n this.expect(tt.braceR);\n\n return this.finishNode(node, \"JSXExpressionContainer\");\n }\n\n // Parses following JSX attribute name-value pair.\n\n jsxParseAttribute(): N.JSXAttribute | N.JSXSpreadAttribute {\n const node = this.startNode();\n if (this.match(tt.braceL)) {\n this.setContext(tc.brace);\n this.next();\n this.expect(tt.ellipsis);\n node.argument = this.parseMaybeAssignAllowIn();\n this.setContext(tc.j_oTag);\n this.state.canStartJSXElement = true;\n this.expect(tt.braceR);\n return this.finishNode(node, \"JSXSpreadAttribute\");\n }\n node.name = this.jsxParseNamespacedName();\n node.value = this.eat(tt.eq) ? this.jsxParseAttributeValue() : null;\n return this.finishNode(node, \"JSXAttribute\");\n }\n\n // Parses JSX opening tag starting after \"<\".\n\n jsxParseOpeningElementAt(\n startLoc: Position,\n ): N.JSXOpeningElement | N.JSXOpeningFragment {\n const node = this.startNodeAt(\n startLoc,\n );\n if (this.eat(tt.jsxTagEnd)) {\n return this.finishNode(node, \"JSXOpeningFragment\");\n }\n node.name = this.jsxParseElementName();\n return this.jsxParseOpeningElementAfterName(\n node as Undone,\n );\n }\n\n jsxParseOpeningElementAfterName(\n node: Undone,\n ): N.JSXOpeningElement {\n const attributes: (N.JSXAttribute | N.JSXSpreadAttribute)[] = [];\n while (!this.match(tt.slash) && !this.match(tt.jsxTagEnd)) {\n attributes.push(this.jsxParseAttribute());\n }\n node.attributes = attributes;\n node.selfClosing = this.eat(tt.slash);\n this.expect(tt.jsxTagEnd);\n return this.finishNode(node, \"JSXOpeningElement\");\n }\n\n // Parses JSX closing tag starting after \"(\n startLoc,\n );\n if (this.eat(tt.jsxTagEnd)) {\n return this.finishNode(node, \"JSXClosingFragment\");\n }\n node.name = this.jsxParseElementName();\n this.expect(tt.jsxTagEnd);\n return this.finishNode(node, \"JSXClosingElement\");\n }\n\n // Parses entire JSX element, including it\"s opening tag\n // (starting after \"<\"), attributes, contents and closing tag.\n\n jsxParseElementAt(startLoc: Position): N.JSXElement | N.JSXFragment {\n const node = this.startNodeAt(startLoc);\n const children = [];\n const openingElement = this.jsxParseOpeningElementAt(startLoc);\n let closingElement = null;\n\n if (!openingElement.selfClosing) {\n contents: for (;;) {\n switch (this.state.type) {\n case tt.jsxTagStart:\n startLoc = this.state.startLoc;\n this.next();\n if (this.eat(tt.slash)) {\n closingElement = this.jsxParseClosingElementAt(startLoc);\n break contents;\n }\n children.push(this.jsxParseElementAt(startLoc));\n break;\n\n case tt.jsxText:\n children.push(this.parseLiteral(this.state.value, \"JSXText\"));\n break;\n\n case tt.braceL: {\n const node = this.startNode<\n N.JSXSpreadChild | N.JSXExpressionContainer\n >();\n this.setContext(tc.brace);\n this.next();\n if (this.match(tt.ellipsis)) {\n children.push(this.jsxParseSpreadChild(node));\n } else {\n children.push(\n this.jsxParseExpressionContainer(node, tc.j_expr),\n );\n }\n\n break;\n }\n // istanbul ignore next - should never happen\n default:\n this.unexpected();\n }\n }\n\n if (\n isFragment(openingElement) &&\n !isFragment(closingElement) &&\n closingElement !== null\n ) {\n this.raise(JsxErrors.MissingClosingTagFragment, closingElement);\n } else if (!isFragment(openingElement) && isFragment(closingElement)) {\n this.raise(JsxErrors.MissingClosingTagElement, closingElement, {\n openingTagName: getQualifiedJSXName(openingElement.name),\n });\n } else if (!isFragment(openingElement) && !isFragment(closingElement)) {\n if (\n getQualifiedJSXName(closingElement.name) !==\n getQualifiedJSXName(openingElement.name)\n ) {\n this.raise(JsxErrors.MissingClosingTagElement, closingElement, {\n openingTagName: getQualifiedJSXName(openingElement.name),\n });\n }\n }\n }\n\n if (isFragment(openingElement)) {\n node.openingFragment = openingElement;\n node.closingFragment = closingElement;\n } else {\n node.openingElement = openingElement;\n node.closingElement = closingElement;\n }\n node.children = children;\n if (this.match(tt.lt)) {\n throw this.raise(\n JsxErrors.UnwrappedAdjacentJSXElements,\n this.state.startLoc,\n );\n }\n\n return isFragment(openingElement)\n ? this.finishNode(node, \"JSXFragment\")\n : this.finishNode(node, \"JSXElement\");\n }\n\n // Parses entire JSX element from current position.\n\n jsxParseElement(): N.JSXElement | N.JSXFragment {\n const startLoc = this.state.startLoc;\n this.next();\n return this.jsxParseElementAt(startLoc);\n }\n\n setContext(newContext: TokContext) {\n const { context } = this.state;\n context[context.length - 1] = newContext;\n }\n\n // ==================================\n // Overrides\n // ==================================\n\n parseExprAtom(refExpressionErrors?: ExpressionErrors | null): N.Expression {\n if (this.match(tt.jsxTagStart)) {\n return this.jsxParseElement();\n } else if (\n this.match(tt.lt) &&\n this.input.charCodeAt(this.state.pos) !== charCodes.exclamationMark\n ) {\n // In case we encounter an lt token here it will always be the start of\n // jsx as the lt sign is not allowed in places that expect an expression\n this.replaceToken(tt.jsxTagStart);\n return this.jsxParseElement();\n } else {\n return super.parseExprAtom(refExpressionErrors);\n }\n }\n\n skipSpace() {\n const curContext = this.curContext();\n if (!curContext.preserveSpace) super.skipSpace();\n }\n\n getTokenFromCode(code: number): void {\n const context = this.curContext();\n\n if (context === tc.j_expr) {\n this.jsxReadToken();\n return;\n }\n\n if (context === tc.j_oTag || context === tc.j_cTag) {\n if (isIdentifierStart(code)) {\n this.jsxReadWord();\n return;\n }\n\n if (code === charCodes.greaterThan) {\n ++this.state.pos;\n this.finishToken(tt.jsxTagEnd);\n return;\n }\n\n if (\n (code === charCodes.quotationMark || code === charCodes.apostrophe) &&\n context === tc.j_oTag\n ) {\n this.jsxReadString(code);\n return;\n }\n }\n\n if (\n code === charCodes.lessThan &&\n this.state.canStartJSXElement &&\n this.input.charCodeAt(this.state.pos + 1) !== charCodes.exclamationMark\n ) {\n ++this.state.pos;\n this.finishToken(tt.jsxTagStart);\n return;\n }\n\n super.getTokenFromCode(code);\n }\n\n updateContext(prevType: TokenType): void {\n const { context, type } = this.state;\n if (type === tt.slash && prevType === tt.jsxTagStart) {\n // do not consider JSX expr -> JSX open tag -> ... anymore\n // reconsider as closing tag context\n context.splice(-2, 2, tc.j_cTag);\n this.state.canStartJSXElement = false;\n } else if (type === tt.jsxTagStart) {\n // start opening tag context\n context.push(tc.j_oTag);\n } else if (type === tt.jsxTagEnd) {\n const out = context[context.length - 1];\n if ((out === tc.j_oTag && prevType === tt.slash) || out === tc.j_cTag) {\n context.pop();\n this.state.canStartJSXElement =\n context[context.length - 1] === tc.j_expr;\n } else {\n this.setContext(tc.j_expr);\n this.state.canStartJSXElement = true;\n }\n } else {\n this.state.canStartJSXElement = tokenComesBeforeExpression(type);\n }\n }\n };\n","import type { Position } from \"../../util/location.ts\";\nimport ScopeHandler, { NameType, Scope } from \"../../util/scope.ts\";\nimport { BindingFlag, ScopeFlag } from \"../../util/scopeflags.ts\";\nimport type * as N from \"../../types.ts\";\nimport { Errors } from \"../../parse-error.ts\";\n\nconst enum TsNameType {\n Types = 1 << 0,\n // enums (which are also in .types)\n Enums = 1 << 1,\n // const enums (which are also in .enums and .types)\n ConstEnums = 1 << 2,\n // classes (which are also in .lexical) and interface (which are also in .types)\n Classes = 1 << 3,\n // namespaces and ambient functions (or classes) are too difficult to track,\n // especially without type analysis.\n // We need to track them anyway, to avoid \"X is not defined\" errors\n // when exporting them.\n ExportOnlyBindings = 1 << 4,\n}\n\nclass TypeScriptScope extends Scope {\n tsNames = new Map();\n}\n\n// See https://github.com/babel/babel/pull/9766#discussion_r268920730 for an\n// explanation of how typescript handles scope.\n\nexport default class TypeScriptScopeHandler extends ScopeHandler {\n importsStack: Set[] = [];\n\n createScope(flags: ScopeFlag): TypeScriptScope {\n this.importsStack.push(new Set()); // Always keep the top-level scope for export checks.\n\n return new TypeScriptScope(flags);\n }\n\n enter(flags: ScopeFlag): void {\n if (flags === ScopeFlag.TS_MODULE) {\n this.importsStack.push(new Set());\n }\n\n super.enter(flags);\n }\n\n exit() {\n const flags = super.exit();\n\n if (flags === ScopeFlag.TS_MODULE) {\n this.importsStack.pop();\n }\n\n return flags;\n }\n\n hasImport(name: string, allowShadow?: boolean) {\n const len = this.importsStack.length;\n if (this.importsStack[len - 1].has(name)) {\n return true;\n }\n if (!allowShadow && len > 1) {\n for (let i = 0; i < len - 1; i++) {\n if (this.importsStack[i].has(name)) return true;\n }\n }\n return false;\n }\n\n declareName(name: string, bindingType: BindingFlag, loc: Position) {\n if (bindingType & BindingFlag.FLAG_TS_IMPORT) {\n if (this.hasImport(name, true)) {\n this.parser.raise(Errors.VarRedeclaration, loc, {\n identifierName: name,\n });\n }\n this.importsStack[this.importsStack.length - 1].add(name);\n return;\n }\n\n const scope = this.currentScope();\n let type = scope.tsNames.get(name) || 0;\n\n if (bindingType & BindingFlag.FLAG_TS_EXPORT_ONLY) {\n this.maybeExportDefined(scope, name);\n scope.tsNames.set(name, type | TsNameType.ExportOnlyBindings);\n return;\n }\n\n super.declareName(name, bindingType, loc);\n\n if (bindingType & BindingFlag.KIND_TYPE) {\n if (!(bindingType & BindingFlag.KIND_VALUE)) {\n // \"Value\" bindings have already been registered by the superclass.\n this.checkRedeclarationInScope(scope, name, bindingType, loc);\n this.maybeExportDefined(scope, name);\n }\n type = type | TsNameType.Types;\n }\n if (bindingType & BindingFlag.FLAG_TS_ENUM) {\n type = type | TsNameType.Enums;\n }\n if (bindingType & BindingFlag.FLAG_TS_CONST_ENUM) {\n type = type | TsNameType.ConstEnums;\n }\n if (bindingType & BindingFlag.FLAG_CLASS) {\n type = type | TsNameType.Classes;\n }\n if (type) scope.tsNames.set(name, type);\n }\n\n isRedeclaredInScope(\n scope: TypeScriptScope,\n name: string,\n bindingType: BindingFlag,\n ): boolean {\n const type = scope.tsNames.get(name)!;\n if ((type & TsNameType.Enums) > 0) {\n if (bindingType & BindingFlag.FLAG_TS_ENUM) {\n // Enums can be merged with other enums if they are both\n // const or both non-const.\n const isConst = !!(bindingType & BindingFlag.FLAG_TS_CONST_ENUM);\n const wasConst = (type & TsNameType.ConstEnums) > 0;\n return isConst !== wasConst;\n }\n return true;\n }\n if (\n bindingType & BindingFlag.FLAG_CLASS &&\n (type & TsNameType.Classes) > 0\n ) {\n if (scope.names.get(name)! & NameType.Lexical) {\n // Classes can be merged with interfaces\n return !!(bindingType & BindingFlag.KIND_VALUE);\n } else {\n // Interface can be merged with other classes or interfaces\n return false;\n }\n }\n if (bindingType & BindingFlag.KIND_TYPE && (type & TsNameType.Types) > 0) {\n return true;\n }\n\n return super.isRedeclaredInScope(scope, name, bindingType);\n }\n\n checkLocalExport(id: N.Identifier) {\n const { name } = id;\n\n if (this.hasImport(name)) return;\n\n const len = this.scopeStack.length;\n for (let i = len - 1; i >= 0; i--) {\n const scope = this.scopeStack[i];\n const type = scope.tsNames.get(name)!;\n if (\n (type & TsNameType.Types) > 0 ||\n (type & TsNameType.ExportOnlyBindings) > 0\n ) {\n return;\n }\n }\n\n super.checkLocalExport(id);\n }\n}\n","// ProductionParameterHandler is a stack fashioned production parameter tracker\n// https://tc39.es/ecma262/#sec-grammar-notation\n// The tracked parameters are defined above.\n//\n// Whenever [+Await]/[+Yield] appears in the right-hand sides of a production,\n// we must enter a new tracking stack. For example when parsing\n//\n// AsyncFunctionDeclaration [Yield, Await]:\n// async [no LineTerminator here] function BindingIdentifier[?Yield, ?Await]\n// ( FormalParameters[~Yield, +Await] ) { AsyncFunctionBody }\n//\n// we must follow such process:\n//\n// 1. parse async keyword\n// 2. parse function keyword\n// 3. parse bindingIdentifier <= inherit current parameters: [?Await]\n// 4. enter new stack with (PARAM_AWAIT)\n// 5. parse formal parameters <= must have [Await] parameter [+Await]\n// 6. parse function body\n// 7. exit current stack\n\nexport const enum ParamKind {\n // Initial Parameter flags\n PARAM = 0b0000,\n // track [Yield] production parameter\n PARAM_YIELD = 0b0001,\n // track [Await] production parameter\n PARAM_AWAIT = 0b0010,\n // track [Return] production parameter\n PARAM_RETURN = 0b0100,\n // track [In] production parameter\n PARAM_IN = 0b1000,\n}\n\n// todo(flow->ts) - check if more granular type can be used,\n// type below is not good because things like PARAM_AWAIT|PARAM_YIELD are not included\n// export type ParamKind =\n// | typeof PARAM\n// | typeof PARAM_AWAIT\n// | typeof PARAM_IN\n// | typeof PARAM_RETURN\n// | typeof PARAM_YIELD;\n\nexport default class ProductionParameterHandler {\n stacks: ParamKind[] = [];\n enter(flags: ParamKind) {\n this.stacks.push(flags);\n }\n\n exit() {\n this.stacks.pop();\n }\n\n currentFlags(): ParamKind {\n return this.stacks[this.stacks.length - 1];\n }\n\n get hasAwait(): boolean {\n return (this.currentFlags() & ParamKind.PARAM_AWAIT) > 0;\n }\n\n get hasYield(): boolean {\n return (this.currentFlags() & ParamKind.PARAM_YIELD) > 0;\n }\n\n get hasReturn(): boolean {\n return (this.currentFlags() & ParamKind.PARAM_RETURN) > 0;\n }\n\n get hasIn(): boolean {\n return (this.currentFlags() & ParamKind.PARAM_IN) > 0;\n }\n}\n\nexport function functionFlags(\n isAsync: boolean,\n isGenerator: boolean,\n): ParamKind {\n return (\n (isAsync ? ParamKind.PARAM_AWAIT : 0) |\n (isGenerator ? ParamKind.PARAM_YIELD : 0)\n );\n}\n","import type { OptionFlags, Options } from \"../options.ts\";\nimport type State from \"../tokenizer/state.ts\";\nimport type { PluginsMap } from \"./index.ts\";\nimport type ScopeHandler from \"../util/scope.ts\";\nimport type ExpressionScopeHandler from \"../util/expression-scope.ts\";\nimport type ClassScopeHandler from \"../util/class-scope.ts\";\nimport type ProductionParameterHandler from \"../util/production-parameter.ts\";\nimport type {\n ParserPluginWithOptions,\n PluginConfig,\n PluginOptions,\n} from \"../typings.ts\";\nimport type * as N from \"../types.ts\";\n\nexport default class BaseParser {\n // Properties set by constructor in index.js\n declare options: Options;\n declare optionFlags: OptionFlags;\n declare inModule: boolean;\n declare scope: ScopeHandler;\n declare classScope: ClassScopeHandler;\n declare prodParam: ProductionParameterHandler;\n declare expressionScope: ExpressionScopeHandler;\n declare plugins: PluginsMap;\n declare filename: string | undefined | null;\n declare startIndex: number;\n // Names of exports store. `default` is stored as a name for both\n // `export default foo;` and `export { foo as default };`.\n declare exportedIdentifiers: Set;\n sawUnambiguousESM: boolean = false;\n ambiguousScriptDifferentAst: boolean = false;\n\n // Initialized by Tokenizer\n declare state: State;\n // input and length are not in state as they are constant and we do\n // not want to ever copy them, which happens if state gets cloned\n declare input: string;\n declare length: number;\n // Comment store for Program.comments\n declare comments: N.Comment[];\n\n sourceToOffsetPos(sourcePos: number) {\n return sourcePos + this.startIndex;\n }\n\n offsetToSourcePos(offsetPos: number) {\n return offsetPos - this.startIndex;\n }\n\n // This method accepts either a string (plugin name) or an array pair\n // (plugin name and options object). If an options object is given,\n // then each value is non-recursively checked for identity with that\n // plugin’s actual option value.\n hasPlugin(pluginConfig: PluginConfig): boolean {\n if (typeof pluginConfig === \"string\") {\n return this.plugins.has(pluginConfig);\n } else {\n const [pluginName, pluginOptions] = pluginConfig;\n if (!this.hasPlugin(pluginName)) {\n return false;\n }\n const actualOptions = this.plugins.get(pluginName);\n for (const key of Object.keys(\n pluginOptions,\n ) as (keyof typeof pluginOptions)[]) {\n if (actualOptions?.[key] !== pluginOptions[key]) {\n return false;\n }\n }\n return true;\n }\n }\n\n getPluginOption<\n PluginName extends ParserPluginWithOptions[0],\n OptionName extends keyof PluginOptions,\n >(plugin: PluginName, name: OptionName) {\n return (this.plugins.get(plugin) as null | PluginOptions)?.[\n name\n ];\n }\n}\n","/*:: declare var invariant; */\n\nimport BaseParser from \"./base.ts\";\nimport type { Comment, Node } from \"../types.ts\";\nimport * as charCodes from \"charcodes\";\nimport type { Undone } from \"./node.ts\";\n\n/**\n * A whitespace token containing comments\n */\nexport type CommentWhitespace = {\n /**\n * the start of the whitespace token.\n */\n start: number;\n /**\n * the end of the whitespace token.\n */\n end: number;\n /**\n * the containing comments\n */\n comments: Comment[];\n /**\n * the immediately preceding AST node of the whitespace token\n */\n leadingNode: Node | null;\n /**\n * the immediately following AST node of the whitespace token\n */\n trailingNode: Node | null;\n /**\n * the innermost AST node containing the whitespace with minimal size (|end - start|)\n */\n containingNode: Node | null;\n};\n\n/**\n * Merge comments with node's trailingComments or assign comments to be\n * trailingComments. New comments will be placed before old comments\n * because the commentStack is enumerated reversely.\n */\nfunction setTrailingComments(node: Undone, comments: Comment[]) {\n if (node.trailingComments === undefined) {\n node.trailingComments = comments;\n } else {\n node.trailingComments.unshift(...comments);\n }\n}\n\n/**\n * Merge comments with node's leadingComments or assign comments to be\n * leadingComments. New comments will be placed before old comments\n * because the commentStack is enumerated reversely.\n */\nfunction setLeadingComments(node: Undone, comments: Comment[]) {\n if (node.leadingComments === undefined) {\n node.leadingComments = comments;\n } else {\n node.leadingComments.unshift(...comments);\n }\n}\n\n/**\n * Merge comments with node's innerComments or assign comments to be\n * innerComments. New comments will be placed before old comments\n * because the commentStack is enumerated reversely.\n */\nexport function setInnerComments(node: Undone, comments: Comment[]) {\n if (node.innerComments === undefined) {\n node.innerComments = comments;\n } else {\n node.innerComments.unshift(...comments);\n }\n}\n\n/**\n * Given node and elements array, if elements has non-null element,\n * merge comments to its trailingComments, otherwise merge comments\n * to node's innerComments\n */\nfunction adjustInnerComments(\n node: Undone,\n elements: (Node | null)[],\n commentWS: CommentWhitespace,\n) {\n let lastElement = null;\n let i = elements.length;\n while (lastElement === null && i > 0) {\n lastElement = elements[--i];\n }\n if (lastElement === null || lastElement.start > commentWS.start) {\n setInnerComments(node, commentWS.comments);\n } else {\n setTrailingComments(lastElement, commentWS.comments);\n }\n}\n\nexport default class CommentsParser extends BaseParser {\n addComment(comment: Comment): void {\n if (this.filename) comment.loc.filename = this.filename;\n const { commentsLen } = this.state;\n if (this.comments.length !== commentsLen) {\n this.comments.length = commentsLen;\n }\n this.comments.push(comment);\n this.state.commentsLen++;\n }\n\n /**\n * Given a newly created AST node _n_, attach _n_ to a comment whitespace _w_ if applicable\n * {@see {@link CommentWhitespace}}\n */\n processComment(node: Node): void {\n const { commentStack } = this.state;\n const commentStackLength = commentStack.length;\n if (commentStackLength === 0) return;\n let i = commentStackLength - 1;\n const lastCommentWS = commentStack[i];\n\n if (lastCommentWS.start === node.end) {\n lastCommentWS.leadingNode = node;\n i--;\n }\n\n const { start: nodeStart } = node;\n // invariant: for all 0 <= j <= i, let c = commentStack[j], c must satisfy c.end < node.end\n for (; i >= 0; i--) {\n const commentWS = commentStack[i];\n const commentEnd = commentWS.end;\n if (commentEnd > nodeStart) {\n // by definition of commentWhiteSpace, this implies commentWS.start > nodeStart\n // so node can be a containingNode candidate. At this time we can finalize the comment\n // whitespace, because\n // 1) its leadingNode or trailingNode, if exists, will not change\n // 2) its containingNode have been assigned and will not change because it is the\n // innermost minimal-sized AST node\n commentWS.containingNode = node;\n this.finalizeComment(commentWS);\n commentStack.splice(i, 1);\n } else {\n if (commentEnd === nodeStart) {\n commentWS.trailingNode = node;\n }\n // stop the loop when commentEnd <= nodeStart\n break;\n }\n }\n }\n\n /**\n * Assign the comments of comment whitespaces to related AST nodes.\n * Also adjust innerComments following trailing comma.\n */\n finalizeComment(commentWS: CommentWhitespace) {\n const { comments } = commentWS;\n if (commentWS.leadingNode !== null || commentWS.trailingNode !== null) {\n if (commentWS.leadingNode !== null) {\n setTrailingComments(commentWS.leadingNode, comments);\n }\n if (commentWS.trailingNode !== null) {\n setLeadingComments(commentWS.trailingNode, comments);\n }\n } else {\n /*:: invariant(commentWS.containingNode !== null) */\n const node = commentWS.containingNode!;\n const commentStart = commentWS.start;\n if (\n this.input.charCodeAt(this.offsetToSourcePos(commentStart) - 1) ===\n charCodes.comma\n ) {\n // If a commentWhitespace follows a comma and the containingNode allows\n // list structures with trailing comma, merge it to the trailingComment\n // of the last non-null list element\n switch (node.type) {\n case \"ObjectExpression\":\n case \"ObjectPattern\":\n adjustInnerComments(node, node.properties, commentWS);\n break;\n case \"CallExpression\":\n case \"NewExpression\":\n case \"OptionalCallExpression\":\n adjustInnerComments(node, node.arguments, commentWS);\n break;\n case \"ImportExpression\":\n adjustInnerComments(\n node,\n [node.source, node.options ?? null],\n commentWS,\n );\n break;\n case \"FunctionDeclaration\":\n case \"FunctionExpression\":\n case \"ArrowFunctionExpression\":\n case \"ObjectMethod\":\n case \"ClassMethod\":\n case \"ClassPrivateMethod\":\n case \"TSTypeParameterDeclaration\":\n adjustInnerComments(node, node.params, commentWS);\n break;\n case \"ArrayExpression\":\n case \"ArrayPattern\":\n adjustInnerComments(node, node.elements, commentWS);\n break;\n case \"ExportNamedDeclaration\":\n case \"ImportDeclaration\":\n adjustInnerComments(node, node.specifiers, commentWS);\n break;\n case \"TSEnumDeclaration\":\n if (!process.env.BABEL_8_BREAKING) {\n adjustInnerComments(node, node.members!, commentWS);\n } else {\n setInnerComments(node, comments);\n }\n break;\n case \"TSEnumBody\":\n adjustInnerComments(node, node.members, commentWS);\n break;\n case \"TSInterfaceBody\":\n adjustInnerComments(node, node.body, commentWS);\n break;\n default: {\n if (!process.env.BABEL_8_BREAKING) {\n if (node.type === \"RecordExpression\") {\n adjustInnerComments(node, node.properties, commentWS);\n break;\n }\n if (node.type === \"TupleExpression\") {\n adjustInnerComments(node, node.elements, commentWS);\n break;\n }\n }\n setInnerComments(node, comments);\n }\n }\n } else {\n setInnerComments(node, comments);\n }\n }\n }\n\n /**\n * Drains remaining commentStack and applies finalizeComment\n * to each comment whitespace. Used only in parseExpression\n * where the top level AST node is _not_ Program\n * {@see {@link CommentsParser#finalizeComment}}\n */\n finalizeRemainingComments() {\n const { commentStack } = this.state;\n for (let i = commentStack.length - 1; i >= 0; i--) {\n this.finalizeComment(commentStack[i]);\n }\n this.state.commentStack = [];\n }\n\n /* eslint-disable no-irregular-whitespace */\n /**\n * Reset previous node trailing comments. Used in object / class\n * property parsing. We parse `async`, `static`, `set` and `get`\n * as an identifier but may reinterpret it into an async/static/accessor\n * method later. In this case the identifier is not part of the AST and we\n * should sync the knowledge to commentStacks\n *\n * For example, when parsing\n * ```\n * async /* 1 *​/ function f() {}\n * ```\n * the comment whitespace `/* 1 *​/` has leading node Identifier(async). When\n * we see the function token, we create a Function node and mark `/* 1 *​/` as\n * inner comments. So `/* 1 *​/` should be detached from the Identifier node.\n *\n * @param node the last finished AST node _before_ current token\n */\n /* eslint-enable no-irregular-whitespace */\n resetPreviousNodeTrailingComments(node: Node) {\n const { commentStack } = this.state;\n const { length } = commentStack;\n if (length === 0) return;\n const commentWS = commentStack[length - 1];\n if (commentWS.leadingNode === node) {\n commentWS.leadingNode = null;\n }\n }\n\n /**\n * Attach a node to the comment whitespaces right before/after\n * the given range.\n *\n * This is used to properly attach comments around parenthesized\n * expressions as leading/trailing comments of the inner expression.\n */\n takeSurroundingComments(node: Node, start: number, end: number) {\n const { commentStack } = this.state;\n const commentStackLength = commentStack.length;\n if (commentStackLength === 0) return;\n let i = commentStackLength - 1;\n\n for (; i >= 0; i--) {\n const commentWS = commentStack[i];\n const commentEnd = commentWS.end;\n const commentStart = commentWS.start;\n\n if (commentStart === end) {\n commentWS.leadingNode = node;\n } else if (commentEnd === start) {\n commentWS.trailingNode = node;\n } else if (commentEnd < start) {\n break;\n }\n }\n }\n}\n","import type { OptionsWithDefaults } from \"../options.ts\";\nimport type { CommentWhitespace } from \"../parser/comments\";\nimport { Position } from \"../util/location.ts\";\n\nimport { types as ct, type TokContext } from \"./context.ts\";\nimport { tt, type TokenType } from \"./types.ts\";\nimport type { Errors } from \"../parse-error.ts\";\nimport type { ParseError } from \"../parse-error.ts\";\n\nexport type DeferredStrictError =\n | typeof Errors.StrictNumericEscape\n | typeof Errors.StrictOctalLiteral;\n\ntype TopicContextState = {\n // When a topic binding has been currently established,\n // then this is 1. Otherwise, it is 0. This is forwards compatible\n // with a future plugin for multiple lexical topics.\n maxNumOfResolvableTopics: number;\n // When a topic binding has been currently established, and if that binding\n // has been used as a topic reference `#`, then this is 0. Otherwise, it is\n // `null`. This is forwards compatible with a future plugin for multiple\n // lexical topics.\n maxTopicIndex: null | 0;\n};\n\nexport const enum LoopLabelKind {\n Loop = 1,\n Switch = 2,\n}\n\ndeclare const bit: import(\"../../../../scripts/babel-plugin-bit-decorator/types.d.ts\").BitDecorator;\n\nexport default class State {\n @bit.storage flags: number = 0;\n\n @bit accessor strict = false;\n\n startIndex!: number;\n curLine!: number;\n lineStart!: number;\n\n // And, if locations are used, the {line, column} object\n // corresponding to those offsets\n startLoc!: Position;\n endLoc!: Position;\n\n init({\n strictMode,\n sourceType,\n startIndex,\n startLine,\n startColumn,\n }: OptionsWithDefaults): void {\n this.strict =\n strictMode === false\n ? false\n : strictMode === true\n ? true\n : sourceType === \"module\";\n\n this.startIndex = startIndex;\n this.curLine = startLine;\n this.lineStart = -startColumn;\n this.startLoc = this.endLoc = new Position(\n startLine,\n startColumn,\n startIndex,\n );\n }\n\n errors: ParseError[] = [];\n\n // Used to signify the start of a potential arrow function\n potentialArrowAt: number = -1;\n\n // Used to signify the start of an expression which looks like a\n // typed arrow function, but it isn't\n // e.g. a ? (b) : c => d\n // ^\n noArrowAt: number[] = [];\n\n // Used to signify the start of an expression whose params, if it looks like\n // an arrow function, shouldn't be converted to assignable nodes.\n // This is used to defer the validation of typed arrow functions inside\n // conditional expressions.\n // e.g. a ? (b) : c => d\n // ^\n noArrowParamsConversionAt: number[] = [];\n\n // Flags to track\n @bit accessor maybeInArrowParameters = false;\n @bit accessor inType = false;\n @bit accessor noAnonFunctionType = false;\n @bit accessor hasFlowComment = false;\n @bit accessor isAmbientContext = false;\n @bit accessor inAbstractClass = false;\n @bit accessor inDisallowConditionalTypesContext = false;\n\n // For the Hack-style pipelines plugin\n topicContext: TopicContextState = {\n maxNumOfResolvableTopics: 0,\n maxTopicIndex: null,\n };\n\n // For the F#-style pipelines plugin\n @bit accessor soloAwait = false;\n @bit accessor inFSharpPipelineDirectBody = false;\n\n // Labels in scope.\n labels: {\n kind: LoopLabelKind | null;\n name?: string | null;\n statementStart?: number;\n }[] = [];\n\n commentsLen = 0;\n // Comment attachment store\n commentStack: CommentWhitespace[] = [];\n\n // The current position of the tokenizer in the input.\n pos: number = 0;\n\n // Properties of the current token:\n // Its type\n type: TokenType = tt.eof;\n\n // For tokens that include more information than their type, the value\n value: any = null;\n\n // Its start and end offset\n start: number = 0;\n end: number = 0;\n\n // Position information for the previous token\n // this is initialized when generating the second token.\n lastTokEndLoc: Position | null = null;\n // this is initialized when generating the second token.\n lastTokStartLoc: Position | null = null;\n\n // The context stack is used to track whether the apostrophe \"`\" starts\n // or ends a string template\n context: TokContext[] = [ct.brace];\n\n // Used to track whether a JSX element is allowed to form\n @bit accessor canStartJSXElement = true;\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 @bit accessor containsEsc = false;\n\n // Used to track invalid escape sequences in template literals,\n // that must be reported if the template is not tagged.\n firstInvalidTemplateEscapePos: null | Position = null;\n\n @bit accessor hasTopLevelAwait = false;\n\n // This property is used to track the following errors\n // - StrictNumericEscape\n // - StrictOctalLiteral\n //\n // in a literal that occurs prior to/immediately after a \"use strict\" directive.\n\n // todo(JLHwung): set strictErrors to null and avoid recording string errors\n // after a non-directive is parsed\n strictErrors = new Map();\n\n // Tokens length in token store\n tokensLength: number = 0;\n\n /**\n * When we add a new property, we must manually update the `clone` method\n * @see State#clone\n */\n\n curPosition(): Position {\n return new Position(\n this.curLine,\n this.pos - this.lineStart,\n this.pos + this.startIndex,\n );\n }\n\n clone(): State {\n const state = new State();\n state.flags = this.flags;\n state.startIndex = this.startIndex;\n state.curLine = this.curLine;\n state.lineStart = this.lineStart;\n state.startLoc = this.startLoc;\n state.endLoc = this.endLoc;\n state.errors = this.errors.slice();\n state.potentialArrowAt = this.potentialArrowAt;\n state.noArrowAt = this.noArrowAt.slice();\n state.noArrowParamsConversionAt = this.noArrowParamsConversionAt.slice();\n state.topicContext = this.topicContext;\n state.labels = this.labels.slice();\n state.commentsLen = this.commentsLen;\n state.commentStack = this.commentStack.slice();\n state.pos = this.pos;\n state.type = this.type;\n state.value = this.value;\n state.start = this.start;\n state.end = this.end;\n state.lastTokEndLoc = this.lastTokEndLoc;\n state.lastTokStartLoc = this.lastTokStartLoc;\n state.context = this.context.slice();\n state.firstInvalidTemplateEscapePos = this.firstInvalidTemplateEscapePos;\n state.strictErrors = this.strictErrors;\n state.tokensLength = this.tokensLength;\n\n return state;\n }\n}\n\nexport type LookaheadState = {\n pos: number;\n value: any;\n type: TokenType;\n start: number;\n end: number;\n context: TokContext[];\n startLoc: Position;\n lastTokEndLoc: Position | null;\n curLine: number;\n lineStart: number;\n curPosition: State[\"curPosition\"];\n /* Used only in readToken_mult_modulo */\n inType: boolean;\n // These boolean properties are not initialized in createLookaheadState()\n // instead they will only be set by the tokenizer\n containsEsc?: boolean;\n};\n","// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\n\n// The following character codes are forbidden from being\n// an immediate sibling of NumericLiteralSeparator _\nconst forbiddenNumericSeparatorSiblings = {\n decBinOct: new Set([\n charCodes.dot,\n charCodes.uppercaseB,\n charCodes.uppercaseE,\n charCodes.uppercaseO,\n charCodes.underscore, // multiple separators are not allowed\n charCodes.lowercaseB,\n charCodes.lowercaseE,\n charCodes.lowercaseO,\n ]),\n hex: new Set([\n charCodes.dot,\n charCodes.uppercaseX,\n charCodes.underscore, // multiple separators are not allowed\n charCodes.lowercaseX,\n ]),\n};\n\nconst isAllowedNumericSeparatorSibling = {\n // 0 - 1\n bin: (ch: number) => ch === charCodes.digit0 || ch === charCodes.digit1,\n\n // 0 - 7\n oct: (ch: number) => ch >= charCodes.digit0 && ch <= charCodes.digit7,\n\n // 0 - 9\n dec: (ch: number) => ch >= charCodes.digit0 && ch <= charCodes.digit9,\n\n // 0 - 9, A - F, a - f,\n hex: (ch: number) =>\n (ch >= charCodes.digit0 && ch <= charCodes.digit9) ||\n (ch >= charCodes.uppercaseA && ch <= charCodes.uppercaseF) ||\n (ch >= charCodes.lowercaseA && ch <= charCodes.lowercaseF),\n};\n\nexport type StringContentsErrorHandlers = EscapedCharErrorHandlers & {\n unterminated(\n initialPos: number,\n initialLineStart: number,\n initialCurLine: number,\n ): void;\n};\n\nexport function readStringContents(\n type: \"single\" | \"double\" | \"template\",\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n errors: StringContentsErrorHandlers,\n) {\n const initialPos = pos;\n const initialLineStart = lineStart;\n const initialCurLine = curLine;\n\n let out = \"\";\n let firstInvalidLoc = null;\n let chunkStart = pos;\n const { length } = input;\n for (;;) {\n if (pos >= length) {\n errors.unterminated(initialPos, initialLineStart, initialCurLine);\n out += input.slice(chunkStart, pos);\n break;\n }\n const ch = input.charCodeAt(pos);\n if (isStringEnd(type, ch, input, pos)) {\n out += input.slice(chunkStart, pos);\n break;\n }\n if (ch === charCodes.backslash) {\n out += input.slice(chunkStart, pos);\n const res = readEscapedChar(\n input,\n pos,\n lineStart,\n curLine,\n type === \"template\",\n errors,\n );\n if (res.ch === null && !firstInvalidLoc) {\n firstInvalidLoc = { pos, lineStart, curLine };\n } else {\n out += res.ch;\n }\n ({ pos, lineStart, curLine } = res);\n chunkStart = pos;\n } else if (\n ch === charCodes.lineSeparator ||\n ch === charCodes.paragraphSeparator\n ) {\n ++pos;\n ++curLine;\n lineStart = pos;\n } else if (ch === charCodes.lineFeed || ch === charCodes.carriageReturn) {\n if (type === \"template\") {\n out += input.slice(chunkStart, pos) + \"\\n\";\n ++pos;\n if (\n ch === charCodes.carriageReturn &&\n input.charCodeAt(pos) === charCodes.lineFeed\n ) {\n ++pos;\n }\n ++curLine;\n chunkStart = lineStart = pos;\n } else {\n errors.unterminated(initialPos, initialLineStart, initialCurLine);\n }\n } else {\n ++pos;\n }\n }\n return process.env.BABEL_8_BREAKING\n ? { pos, str: out, firstInvalidLoc, lineStart, curLine }\n : {\n pos,\n str: out,\n firstInvalidLoc,\n lineStart,\n curLine,\n containsInvalid: !!firstInvalidLoc,\n };\n}\n\nfunction isStringEnd(\n type: \"single\" | \"double\" | \"template\",\n ch: number,\n input: string,\n pos: number,\n) {\n if (type === \"template\") {\n return (\n ch === charCodes.graveAccent ||\n (ch === charCodes.dollarSign &&\n input.charCodeAt(pos + 1) === charCodes.leftCurlyBrace)\n );\n }\n return (\n ch === (type === \"double\" ? charCodes.quotationMark : charCodes.apostrophe)\n );\n}\n\ntype EscapedCharErrorHandlers = HexCharErrorHandlers &\n CodePointErrorHandlers & {\n strictNumericEscape(pos: number, lineStart: number, curLine: number): void;\n };\n\nfunction readEscapedChar(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n inTemplate: boolean,\n errors: EscapedCharErrorHandlers,\n) {\n const throwOnInvalid = !inTemplate;\n pos++; // skip '\\'\n\n const res = (ch: string | null) => ({ pos, ch, lineStart, curLine });\n\n const ch = input.charCodeAt(pos++);\n switch (ch) {\n case charCodes.lowercaseN:\n return res(\"\\n\");\n case charCodes.lowercaseR:\n return res(\"\\r\");\n case charCodes.lowercaseX: {\n let code;\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n 2,\n false,\n throwOnInvalid,\n errors,\n ));\n return res(code === null ? null : String.fromCharCode(code));\n }\n case charCodes.lowercaseU: {\n let code;\n ({ code, pos } = readCodePoint(\n input,\n pos,\n lineStart,\n curLine,\n throwOnInvalid,\n errors,\n ));\n return res(code === null ? null : String.fromCodePoint(code));\n }\n case charCodes.lowercaseT:\n return res(\"\\t\");\n case charCodes.lowercaseB:\n return res(\"\\b\");\n case charCodes.lowercaseV:\n return res(\"\\u000b\");\n case charCodes.lowercaseF:\n return res(\"\\f\");\n case charCodes.carriageReturn:\n if (input.charCodeAt(pos) === charCodes.lineFeed) {\n ++pos;\n }\n // fall through\n case charCodes.lineFeed:\n lineStart = pos;\n ++curLine;\n // fall through\n case charCodes.lineSeparator:\n case charCodes.paragraphSeparator:\n return res(\"\");\n case charCodes.digit8:\n case charCodes.digit9:\n if (inTemplate) {\n return res(null);\n } else {\n errors.strictNumericEscape(pos - 1, lineStart, curLine);\n }\n // fall through\n default:\n if (ch >= charCodes.digit0 && ch <= charCodes.digit7) {\n const startPos = pos - 1;\n const match = /^[0-7]+/.exec(input.slice(startPos, pos + 2));\n\n let octalStr = match[0];\n\n let octal = parseInt(octalStr, 8);\n if (octal > 255) {\n octalStr = octalStr.slice(0, -1);\n octal = parseInt(octalStr, 8);\n }\n pos += octalStr.length - 1;\n const next = input.charCodeAt(pos);\n if (\n octalStr !== \"0\" ||\n next === charCodes.digit8 ||\n next === charCodes.digit9\n ) {\n if (inTemplate) {\n return res(null);\n } else {\n errors.strictNumericEscape(startPos, lineStart, curLine);\n }\n }\n\n return res(String.fromCharCode(octal));\n }\n\n return res(String.fromCharCode(ch));\n }\n}\n\ntype HexCharErrorHandlers = IntErrorHandlers & {\n invalidEscapeSequence(pos: number, lineStart: number, curLine: number): void;\n};\n\n// Used to read character escape sequences ('\\x', '\\u').\nfunction readHexChar(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n len: number,\n forceLen: boolean,\n throwOnInvalid: boolean,\n errors: HexCharErrorHandlers,\n) {\n const initialPos = pos;\n let n;\n ({ n, pos } = readInt(\n input,\n pos,\n lineStart,\n curLine,\n 16,\n len,\n forceLen,\n false,\n errors,\n /* bailOnError */ !throwOnInvalid,\n ));\n if (n === null) {\n if (throwOnInvalid) {\n errors.invalidEscapeSequence(initialPos, lineStart, curLine);\n } else {\n pos = initialPos - 1;\n }\n }\n return { code: n, pos };\n}\n\nexport type IntErrorHandlers = {\n numericSeparatorInEscapeSequence(\n pos: number,\n lineStart: number,\n curLine: number,\n ): void;\n unexpectedNumericSeparator(\n pos: number,\n lineStart: number,\n curLine: number,\n ): void;\n // It can return \"true\" to indicate that the error was handled\n // and the int parsing should continue.\n invalidDigit(\n pos: number,\n lineStart: number,\n curLine: number,\n radix: number,\n ): boolean;\n};\n\nexport function readInt(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n radix: number,\n len: number | undefined,\n forceLen: boolean,\n allowNumSeparator: boolean | \"bail\",\n errors: IntErrorHandlers,\n bailOnError: boolean,\n) {\n const start = pos;\n const forbiddenSiblings =\n radix === 16\n ? forbiddenNumericSeparatorSiblings.hex\n : forbiddenNumericSeparatorSiblings.decBinOct;\n const isAllowedSibling =\n radix === 16\n ? isAllowedNumericSeparatorSibling.hex\n : radix === 10\n ? isAllowedNumericSeparatorSibling.dec\n : radix === 8\n ? isAllowedNumericSeparatorSibling.oct\n : isAllowedNumericSeparatorSibling.bin;\n\n let invalid = false;\n let total = 0;\n\n for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) {\n const code = input.charCodeAt(pos);\n let val;\n\n if (code === charCodes.underscore && allowNumSeparator !== \"bail\") {\n const prev = input.charCodeAt(pos - 1);\n const next = input.charCodeAt(pos + 1);\n\n if (!allowNumSeparator) {\n if (bailOnError) return { n: null, pos };\n errors.numericSeparatorInEscapeSequence(pos, lineStart, curLine);\n } else if (\n Number.isNaN(next) ||\n !isAllowedSibling(next) ||\n forbiddenSiblings.has(prev) ||\n forbiddenSiblings.has(next)\n ) {\n if (bailOnError) return { n: null, pos };\n errors.unexpectedNumericSeparator(pos, lineStart, curLine);\n }\n\n // Ignore this _ character\n ++pos;\n continue;\n }\n\n if (code >= charCodes.lowercaseA) {\n val = code - charCodes.lowercaseA + charCodes.lineFeed;\n } else if (code >= charCodes.uppercaseA) {\n val = code - charCodes.uppercaseA + charCodes.lineFeed;\n } else if (charCodes.isDigit(code)) {\n val = code - charCodes.digit0; // 0-9\n } else {\n val = Infinity;\n }\n if (val >= radix) {\n // If we found a digit which is too big, errors.invalidDigit can return true to avoid\n // breaking the loop (this is used for error recovery).\n if (val <= 9 && bailOnError) {\n return { n: null, pos };\n } else if (\n val <= 9 &&\n errors.invalidDigit(pos, lineStart, curLine, radix)\n ) {\n val = 0;\n } else if (forceLen) {\n val = 0;\n invalid = true;\n } else {\n break;\n }\n }\n ++pos;\n total = total * radix + val;\n }\n if (pos === start || (len != null && pos - start !== len) || invalid) {\n return { n: null, pos };\n }\n\n return { n: total, pos };\n}\n\nexport type CodePointErrorHandlers = HexCharErrorHandlers & {\n invalidCodePoint(pos: number, lineStart: number, curLine: number): void;\n};\n\nexport function readCodePoint(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n throwOnInvalid: boolean,\n errors: CodePointErrorHandlers,\n) {\n const ch = input.charCodeAt(pos);\n let code;\n\n if (ch === charCodes.leftCurlyBrace) {\n ++pos;\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n input.indexOf(\"}\", pos) - pos,\n true,\n throwOnInvalid,\n errors,\n ));\n ++pos;\n if (code !== null && code > 0x10ffff) {\n if (throwOnInvalid) {\n errors.invalidCodePoint(pos, lineStart, curLine);\n } else {\n return { code: null, pos };\n }\n }\n } else {\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n 4,\n false,\n throwOnInvalid,\n errors,\n ));\n }\n return { code, pos };\n}\n","/*:: declare var invariant; */\n\nimport type { OptionsWithDefaults } from \"../options.ts\";\nimport { OptionFlags } from \"../options.ts\";\nimport {\n Position,\n SourceLocation,\n createPositionWithColumnOffset,\n} from \"../util/location.ts\";\nimport CommentsParser, { type CommentWhitespace } from \"../parser/comments.ts\";\nimport type * as N from \"../types.ts\";\nimport * as charCodes from \"charcodes\";\nimport { isIdentifierStart, isIdentifierChar } from \"../util/identifier.ts\";\nimport {\n tokenIsKeyword,\n tokenLabelName,\n tt,\n keywords as keywordTypes,\n type TokenType,\n} from \"./types.ts\";\nimport type { TokContext } from \"./context.ts\";\nimport {\n Errors,\n type ParseError,\n type ParseErrorConstructor,\n} from \"../parse-error.ts\";\nimport {\n lineBreakG,\n isNewLine,\n isWhitespace,\n skipWhiteSpace,\n skipWhiteSpaceInLine,\n} from \"../util/whitespace.ts\";\nimport State from \"./state.ts\";\nimport type { LookaheadState, DeferredStrictError } from \"./state.ts\";\nimport type { Undone } from \"../parser/node.ts\";\nimport type { Node } from \"../types.ts\";\n\nimport {\n readInt,\n readCodePoint,\n readStringContents,\n type IntErrorHandlers,\n type CodePointErrorHandlers,\n type StringContentsErrorHandlers,\n} from \"@babel/helper-string-parser\";\n\nimport type { Plugin } from \"../typings.ts\";\n\nfunction buildPosition(pos: number, lineStart: number, curLine: number) {\n return new Position(curLine, pos - lineStart, pos);\n}\n\nconst VALID_REGEX_FLAGS = new Set([\n charCodes.lowercaseG,\n charCodes.lowercaseM,\n charCodes.lowercaseS,\n charCodes.lowercaseI,\n charCodes.lowercaseY,\n charCodes.lowercaseU,\n charCodes.lowercaseD,\n charCodes.lowercaseV,\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\nexport class Token {\n constructor(state: State) {\n const startIndex = state.startIndex || 0;\n this.type = state.type;\n this.value = state.value;\n this.start = startIndex + state.start;\n this.end = startIndex + state.end;\n this.loc = new SourceLocation(state.startLoc, state.endLoc);\n }\n\n declare type: TokenType;\n declare value: any;\n declare start: number;\n declare end: number;\n declare loc: SourceLocation;\n}\n\n// ## Tokenizer\n\nexport default abstract class Tokenizer extends CommentsParser {\n isLookahead: boolean;\n\n // Token store.\n tokens: (Token | N.Comment)[] = [];\n\n constructor(options: OptionsWithDefaults, input: string) {\n super();\n this.state = new State();\n this.state.init(options);\n this.input = input;\n this.length = input.length;\n this.comments = [];\n this.isLookahead = false;\n }\n\n pushToken(token: Token | N.Comment) {\n // Pop out invalid tokens trapped by try-catch parsing.\n // Those parsing branches are mainly created by typescript and flow plugins.\n this.tokens.length = this.state.tokensLength;\n this.tokens.push(token);\n ++this.state.tokensLength;\n }\n\n // Move to the next token\n\n next(): void {\n this.checkKeywordEscapes();\n if (this.optionFlags & OptionFlags.Tokens) {\n this.pushToken(new Token(this.state));\n }\n\n this.state.lastTokEndLoc = this.state.endLoc;\n this.state.lastTokStartLoc = this.state.startLoc;\n this.nextToken();\n }\n\n eat(type: TokenType): boolean {\n if (this.match(type)) {\n this.next();\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * Whether current token matches given type\n */\n match(type: TokenType): boolean {\n return this.state.type === type;\n }\n\n /**\n * Create a LookaheadState from current parser state\n */\n createLookaheadState(state: State): LookaheadState {\n return {\n pos: state.pos,\n value: null,\n type: state.type,\n start: state.start,\n end: state.end,\n context: [this.curContext()],\n inType: state.inType,\n startLoc: state.startLoc,\n lastTokEndLoc: state.lastTokEndLoc,\n curLine: state.curLine,\n lineStart: state.lineStart,\n curPosition: state.curPosition,\n };\n }\n\n /**\n * lookahead peeks the next token, skipping changes to token context and\n * comment stack. For performance it returns a limited LookaheadState\n * instead of full parser state.\n *\n * The { column, line } Loc info is not included in lookahead since such usage\n * is rare. Although it may return other location properties e.g. `curLine` and\n * `lineStart`, these properties are not listed in the LookaheadState interface\n * and thus the returned value is _NOT_ reliable.\n *\n * The tokenizer should make best efforts to avoid using any parser state\n * other than those defined in LookaheadState\n */\n lookahead(): LookaheadState {\n const old = this.state;\n // @ts-expect-error For performance we use a simplified tokenizer state structure\n this.state = this.createLookaheadState(old);\n\n this.isLookahead = true;\n this.nextToken();\n this.isLookahead = false;\n\n const curr = this.state;\n this.state = old;\n return curr;\n }\n\n nextTokenStart(): number {\n return this.nextTokenStartSince(this.state.pos);\n }\n\n nextTokenStartSince(pos: number): number {\n skipWhiteSpace.lastIndex = pos;\n return skipWhiteSpace.test(this.input) ? skipWhiteSpace.lastIndex : pos;\n }\n\n lookaheadCharCode(): number {\n return this.lookaheadCharCodeSince(this.state.pos);\n }\n\n lookaheadCharCodeSince(pos: number): number {\n return this.input.charCodeAt(this.nextTokenStartSince(pos));\n }\n\n /**\n * Similar to nextToken, but it will stop at line break when it is seen before the next token\n *\n * @returns {number} position of the next token start or line break, whichever is seen first.\n * @memberof Tokenizer\n */\n nextTokenInLineStart(): number {\n return this.nextTokenInLineStartSince(this.state.pos);\n }\n\n nextTokenInLineStartSince(pos: number): number {\n skipWhiteSpaceInLine.lastIndex = pos;\n return skipWhiteSpaceInLine.test(this.input)\n ? skipWhiteSpaceInLine.lastIndex\n : pos;\n }\n\n /**\n * Similar to lookaheadCharCode, but it will return the char code of line break if it is\n * seen before the next token\n *\n * @returns {number} char code of the next token start or line break, whichever is seen first.\n * @memberof Tokenizer\n */\n lookaheadInLineCharCode(): number {\n return this.input.charCodeAt(this.nextTokenInLineStart());\n }\n\n codePointAtPos(pos: number): number {\n // The implementation is based on\n // https://source.chromium.org/chromium/chromium/src/+/master:v8/src/builtins/builtins-string-gen.cc;l=1455;drc=221e331b49dfefadbc6fa40b0c68e6f97606d0b3;bpv=0;bpt=1\n // We reimplement `codePointAt` because `codePointAt` is a V8 builtin which is not inlined by TurboFan (as of M91)\n // since `input` is mostly ASCII, an inlined `charCodeAt` wins here\n let cp = this.input.charCodeAt(pos);\n if ((cp & 0xfc00) === 0xd800 && ++pos < this.input.length) {\n const trail = this.input.charCodeAt(pos);\n if ((trail & 0xfc00) === 0xdc00) {\n cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff);\n }\n }\n return cp;\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 setStrict(strict: boolean): void {\n this.state.strict = strict;\n if (strict) {\n // Throw an error for any string decimal escape found before/immediately\n // after a \"use strict\" directive. Strict mode will be set at parse\n // time for any literals that occur after the next node of the strict\n // directive.\n this.state.strictErrors.forEach(([toParseError, at]) =>\n this.raise(toParseError, at),\n );\n this.state.strictErrors.clear();\n }\n }\n\n curContext(): TokContext {\n return this.state.context[this.state.context.length - 1];\n }\n\n // Read a single token, updating the parser object's token-related properties.\n nextToken(): void {\n this.skipSpace();\n this.state.start = this.state.pos;\n if (!this.isLookahead) this.state.startLoc = this.state.curPosition();\n if (this.state.pos >= this.length) {\n this.finishToken(tt.eof);\n return;\n }\n\n this.getTokenFromCode(this.codePointAtPos(this.state.pos));\n }\n\n // Skips a block comment, whose end is marked by commentEnd.\n // *-/ is used by the Flow plugin, when parsing block comments nested\n // inside Flow comments.\n skipBlockComment(commentEnd: \"*/\" | \"*-/\"): N.CommentBlock | undefined {\n let startLoc;\n if (!this.isLookahead) startLoc = this.state.curPosition();\n const start = this.state.pos;\n const end = this.input.indexOf(commentEnd, start + 2);\n if (end === -1) {\n // We have to call this again here because startLoc may not be set...\n // This seems to be for performance reasons:\n // https://github.com/babel/babel/commit/acf2a10899f696a8aaf34df78bf9725b5ea7f2da\n throw this.raise(Errors.UnterminatedComment, this.state.curPosition());\n }\n\n this.state.pos = end + commentEnd.length;\n lineBreakG.lastIndex = start + 2;\n while (lineBreakG.test(this.input) && lineBreakG.lastIndex <= end) {\n ++this.state.curLine;\n this.state.lineStart = lineBreakG.lastIndex;\n }\n\n // If we are doing a lookahead right now we need to advance the position (above code)\n // but we do not want to push the comment to the state.\n if (this.isLookahead) return;\n /*:: invariant(startLoc) */\n\n const comment: N.CommentBlock = {\n type: \"CommentBlock\",\n value: this.input.slice(start + 2, end),\n start: this.sourceToOffsetPos(start),\n end: this.sourceToOffsetPos(end + commentEnd.length),\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n loc: new SourceLocation(startLoc!, this.state.curPosition()),\n };\n if (this.optionFlags & OptionFlags.Tokens) this.pushToken(comment);\n return comment;\n }\n\n skipLineComment(startSkip: number): N.CommentLine | undefined {\n const start = this.state.pos;\n let startLoc;\n if (!this.isLookahead) startLoc = this.state.curPosition();\n let ch = this.input.charCodeAt((this.state.pos += startSkip));\n if (this.state.pos < this.length) {\n while (!isNewLine(ch) && ++this.state.pos < this.length) {\n ch = this.input.charCodeAt(this.state.pos);\n }\n }\n\n // If we are doing a lookahead right now we need to advance the position (above code)\n // but we do not want to push the comment to the state.\n if (this.isLookahead) return;\n\n const end = this.state.pos;\n const value = this.input.slice(start + startSkip, end);\n\n const comment: N.CommentLine = {\n type: \"CommentLine\",\n value,\n start: this.sourceToOffsetPos(start),\n end: this.sourceToOffsetPos(end),\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n loc: new SourceLocation(startLoc!, this.state.curPosition()),\n };\n if (this.optionFlags & OptionFlags.Tokens) this.pushToken(comment);\n return comment;\n }\n\n // Called at the start of the parse and after every token. Skips\n // whitespace and comments, and.\n\n skipSpace(): void {\n const spaceStart = this.state.pos;\n const comments: N.Comment[] | null =\n this.optionFlags & OptionFlags.AttachComment ? [] : null;\n loop: while (this.state.pos < this.length) {\n const ch = this.input.charCodeAt(this.state.pos);\n switch (ch) {\n case charCodes.space:\n case charCodes.nonBreakingSpace:\n case charCodes.tab:\n ++this.state.pos;\n break;\n case charCodes.carriageReturn:\n if (\n this.input.charCodeAt(this.state.pos + 1) === charCodes.lineFeed\n ) {\n ++this.state.pos;\n }\n // fall through\n case charCodes.lineFeed:\n case charCodes.lineSeparator:\n case charCodes.paragraphSeparator:\n ++this.state.pos;\n ++this.state.curLine;\n this.state.lineStart = this.state.pos;\n break;\n\n case charCodes.slash:\n switch (this.input.charCodeAt(this.state.pos + 1)) {\n case charCodes.asterisk: {\n const comment = this.skipBlockComment(\"*/\");\n if (comment !== undefined) {\n this.addComment(comment);\n comments?.push(comment);\n }\n break;\n }\n\n case charCodes.slash: {\n const comment = this.skipLineComment(2);\n if (comment !== undefined) {\n this.addComment(comment);\n comments?.push(comment);\n }\n break;\n }\n\n default:\n break loop;\n }\n break;\n\n default:\n if (isWhitespace(ch)) {\n ++this.state.pos;\n } else if (\n ch === charCodes.dash &&\n !this.inModule &&\n this.optionFlags & OptionFlags.AnnexB\n ) {\n const pos = this.state.pos;\n if (\n this.input.charCodeAt(pos + 1) === charCodes.dash &&\n this.input.charCodeAt(pos + 2) === charCodes.greaterThan &&\n (spaceStart === 0 || this.state.lineStart > spaceStart)\n ) {\n // A `-->` line comment\n const comment = this.skipLineComment(3);\n if (comment !== undefined) {\n this.addComment(comment);\n comments?.push(comment);\n }\n } else {\n break loop;\n }\n } else if (\n ch === charCodes.lessThan &&\n !this.inModule &&\n this.optionFlags & OptionFlags.AnnexB\n ) {\n const pos = this.state.pos;\n if (\n this.input.charCodeAt(pos + 1) === charCodes.exclamationMark &&\n this.input.charCodeAt(pos + 2) === charCodes.dash &&\n this.input.charCodeAt(pos + 3) === charCodes.dash\n ) {\n // `7yAOcgo_bv_P4UdG_9LgVAJ+t$xx6^hOclB z$H~Z(-+3W6s?1rmiQ&fT-JD#s)S}GhOQX^hezC;OzUk3##P8$(zvK6R=Jeo&zHgAhpH6aE$PRz~l^`OyvK=tRxgX(68 z4^+Q_Ij;3rS>|Ed&Odg4?$e2q^v6lkA7_kzuz(+>nPaB03PSUJWtPP7mnHT3oXa?k z*_^qXea>f>WMJY!;I}^yOBs6@t044cvnT^Qd5#aplF|L4vU-|3@h|sST*Jh|2}!kl zBJnFRdd#8TT-BSeRus4!ceZ*ltL1*0tI3NUbiPRbIuA^y(QC(BV_!-VtAcoijYQd( zicnEO4AwR3T~R@d;2BI7gg9B?y2i=QoTUVw`2I8k4D}a+o!UFdZ(?EV!ySB(4M?@= z5@x654%Xk06RaO{S@itV{Mwp~d=eb+S%9h@BM}ZZc#8NV@Ax)+qKpsoE>Qc4Km0Y! zZ@qPqFo}Pq4{~zY6)fC^mvYKUGf?;m>mh$3hf23O>I6_|Do3#J(;%oruH6=>f3&FD zy!yyr@{UuxN%ys%RUK*Ka-c5g|MRgKaoonNIg5_beV8Qv+I3aA&wDD6hkrSi{fBt3 zm;af}aky;CdY8=aav=`(jTtGe+!E_5oLD2uGaJ2)7570(_Rd1PkG?&^g`Z8}cqg~5+-qI+=SM_-VR5Zs2=x>uZ}!WJzwM2v!P^o-NszuZ(* z4bdYJR~YgWDTTQveplKuP4kl1-_ZnMcIdAG-O; zWUBe|v6O$t{Sr&(eY(*|r%x8G)0O$tT-lP`XWrKoZ8g`2id?RxbxvcAP+Liyt@n7kbTF-IgD@XJUMq>OWIG{*{_fh}dMkcO1UnZvsGcteTA=pyJ@o z0*~|+x?h~UXCO7`9qBC8Fp%}0S8O67aL}c`dxsA+Cx#fp`+w zZf5(6A+chS*a(qWspcA=NX)OfW{l7@&OLLpB`j?Am5#2UbRwMy%Wu|y0G))f6{%e| z%`Yzdn|6JsDE!PXzY@$?G&SfN^{z6l`JLztx%3&6;H9F)=E~wl*ZOPNhC&;o;4UT2 zb8suRq2*3}#;~(nzY35$P~SZ;q{;V#)sxWY%w;XyG9N=0Zd#DhnAuX!_qy%?fIX&kEs>q0+*1!j+V#Lm>o+frf z{8$oIw`7J0DE4(pC`b0QiQ=kkle%X8^ujXLQ^^)`=JXs(C4^K1sKJs~%ADUes;#{I{yO2ufsU`83S7f4MH}@JBzQjC{O#DwN75h0YqTCKGv)%C3n|!D-=M40TSKAHL z%HtrF9OCB@u(0Y)DLI!=gNoH({I6(-%}x&f5Bn)Qvd`}8yukzNXZz4(9=zS*XL)Go zY#Mftc}tDc{LClDRj*Vk0r7rH-`QXg zxi2o(r-ZSuRxtO0lHDJ9J?{R4$ELU_$LO)xJNRV!0%!nwCAwRo=7B?4FQ->boktjv}$vKT4e+g68Jfg0X&g< ztQ1_bhNTX4qDj@1ydf84Y9x4FCaX_a9cS_h(^F#I)Mx>a{jD^7II8da)TgK=l5pxw z1poVO;0QQ&5<_JMDSoGX9Rq82Pt5UNKAq%*AS5mZG%*%4#y0#EXdX`C=ZSZyB-`s0 z9_DfOV?w7U6AJj~TYSVjk4zoe^PNW|NZZ;{4KUk4ySxTKj%zAzUHt&(a~O!vgU0_ zP~}6`To&!cp7plC5RN$6R5{G}g&2B3WE-spYT!crX%D6vJY#QCKg zn{Y&gDL?DrAx)NmHWdx_%w;0%V&stI{uAogg?qH+D%+h+m0JZEUvgNqzD0f4QlAJA zDzYRMe^K_f+c8YSj}CGh$DQFV`6A>35#(UWUx;Hk>!}~5W*~@W$4JB<=l)@xWjg4| zl>_o5G^27LE+En?2k(56@W)8P9~Z0aT*9~f=@!v*czLy?1@vb6fgd#(TKr$|r^K6d z|GGg*{zUi1%3vaMPdDUU&O`e6S*!Hl^3rqq4c}ufIg)(DU$W2d1om}g7i@Jp_dF;% zh923)$U7eSuo5M&S+Hxp8bMhw{0^1=+CU+LWJVfSkbR(IcmO{hOF&043>^@{A|l~_ z_fBI@u5SQ$sxq?x2DtGfR+OJ5T41+$v#(^K>D-)eW4ywC;|G=7g~u_rj3hmLzJVtA z)dVOXLq3Wb6MtS?g4VbSJ}9;UQy>yuioc||?9w$d3G3qLB1y+*}AS$2Ga5`HE##;^v&BnK~@Y!-a__Vws zHE-{1rnCzvO&Ou6mn_zSqDu3fdM-m`);Z*o{m-UpsH76{6GhymN%;SP5^VVg23UeF zC6S6d6*Xt0X^3rwdz~5pd5mFzkAtS$X%Yl}7!G;?jTV#$L>Y5^uN@-Mh`GRKln&;C zC{H>&J|9Hv>{N4LUt0K=YCUiWe-Q}%^+yxjd$|nKO$ae!1QVH*4=mZs-!w5y*(ci; zEZl^D1nfSsh6GhTI8b%l`IVmopK!vdtkMW-+D7zX6NNMoy>_{O?-q`fWwZXXU}UYa zd1_9bqUZz)*GR={w%=IIml2#U(4)m~)Iijn!=74YP7oss^haGyeqxyIqRyQoE06Ry z@A4-w4&XiWKL!`$LafMoe~0)Ym?TDfSC~K}FBLsZNm7nJ##Iz;m<)PN<{aeps*CLS z_Lsa{c{V$GNyNUk7ScE+Uo(`=D(X;CBJe5FN=y_`fd5oWbxfnFGQ3%?PG#)q{~wld z5R0p-t^{Cf@i*-{U$Cf%j@C4Y*eBx*!xd{2v(bsJuPUY0s_u-mCJ#_`RaB=*Zep_C zroHJ+JtOuW?So3^NVZ9}nUSfP`OP;d6#4C5>6! z*%o&!={S{iXJ;iP*I(@VPI97mt2xr_v@^Ne`$-^^^MqRkcCj%3C-v1e2sZjDEMvn03fImtb|Shav0Le0GtU zD+NCoZ4Qh5+h4nc{b%>QzLu$uF%zq(1{qyl!8xj1^lEkEpb;I_t1C>eVv1)E zIH64}7&~->Gpv|_mR8)_XeC7#NinOsta)oWZB6y@f89l)YzX>g^|RD;Q9?Sh=B!jd zS@Q{3Ew6&BtMW7&m4Fe9M8+Z_y{n7=YuBGvTyjpN%)i$KL;cRiYwL3r;fIw zF^ZOs+=p!9`V-rYYxv_lQ+?A`>Rt+maB6;(tQ+EKSNGehd!ns7#qZu-L$&90tX2SO zUsL>79cC^;+ANGrAjd;=;5DxtGKUHD1wz7Mbl|u*96FQP`D==ikJHarNRDs#nX_=X z`J7;LJfFMTEg=WB+)QNiAEG4K9`hhsaM9b7&a`=Zwn*uUl2 zxjle=ne!W~Arjj#U^x*Xsz`1>I5RZ6&kz6t&5RSh9-bi1Q5=X~&;z4@o|OgVK)k3T z(ukPo)W{u2$R6z9yJ_fGv4cDcZYOG+f+)A)1GJa}6|nQMda|+&+bas!lyQJTWZ4F{ zyl_=T;bujv^!uZ}OdTFctQ-1h1(LE2+bRm1DoUEC4G10AAd#yN522%VcVuK)cq_(< zX4@=&s=}p4nj#zHh3yNfz&d8bCl!Unes0OcU6LR(6--WDh9<&$Gm+boQxMhxTx3mT zf8-tamzsF!FBE)1fjU+!2AgOML@q$6Ng~MvDmOLT^AZv(BKu&0>?RO+cJ?+j3Mux% zs?)!BEA&kqhJimr>0i|x*+)VHr5Fk!JXo?bSC~!RoC*0@f|#Y>36_3+l7CAj z|CXlcH=Mv`Vz9oqquWyG*0&65-H?9Nkt|ljt>?_fLVwyCOT4m&w8ZP%up^M7UbNF% zCqcbq+NgI?c3C?0j_|1WoWoG>DOx5JqXqQncb((WuknWfpCh2(zR+*KN;F=GrG|L- zw2?CP`T4^UyHMOu*;S@CMB$ z^qI-S((s7(G;9%;M#H^WfGK=(IuUP`QvMsLm?51c<5OaQ9)sDi8MF@*4V>ntUDlyz&Az?HCn;Xp3NclV2f@z5igw5JNaz}nV=YqNk{aUrI zm&A9^dZ7!oL(?Y(aOTjl%mB@wEcuS~TsjA+>64Snf3Rj!`H)xRCoB3$bG%KEu`SOI z@LdY6$N`%zn#E33X{K-FDzW46JQU|b z>9{jxF_o3F#UTBS*PJ)>m3H{*ug&q*mta2m(Rwwf*X2RB&uC2#ALk0r|1HVbOZ-kk zu+#ZRK&$7pa|Nm9?da~+w@UOcDDvy?@Ctf}f@sgRw1;Dcr;o0iFd`x6uRAz0rx71_ zk`3_Hm*xASQ+1TW^kY%(ESJi$&`Jd;7d< zc0V@{o6L9fhW!CvNr|z6t4*}pd()J9^Bi|{=lML9@nas^`~lMZV|OADviVs@qC@;+ zwfT9PVZy8Dmie5QHi)I}-K6#ZnptPrb#218A?_>u0D@rRH3OZI;cii>^-mU6t60zf zQ<>`>Z#8VEXt-qPh$u*U$|CjX$K7J#H7mSulMRvv@m0x*zoK(&sVx z`P`3l%(r2D!&JumR%*Yk;hSWe$a+}lu*g>tVu+U)ooUokXT%YClNHRP0!>hg;(AC8 zle~{pI;&!|K2pa-%ca}ZU<51|R7%e9HL%}t&YbS}1vY{#$<8AH;s8_=`ITdlu8hWt z%}=LhKOn>?FeXI+_zgrpNTOJ$^!!V-(E-bzjM*Ob0w_ybIp^rNm5j zD?elp^uA^BZ1c==A`rbL!Du%}JvkLS8_;xIfd3y|1rkhrSdn8SjsM5a^k`1Ok~b@R zf^^g6cv&cidjey`&*6%Cv$)d|-Z2yCW=)_rW`;a6$|G-3wiGORhCc;s4~BZ0&D*S+ z#yCE8OZn7;sa9FEoytf_YPvUY!Y}#VI-$T*#s%sxMq(7&hBPxE0+EXgI^sd+Vntk& z$ghd1C0O#>?9BLhiOhy3EMcdYXs01i67d}+$n~r=N9VK2JqP>S%a{)P`=aA?#*OA@ zP6nR;6I#inm}@3Qb{(!E@%lLveD%ls!gF&nrcbFpuQ(JmCMA4ITn33>Lovtu>Sr)* zwq#B_&wj(#^lBzLrjOJ4&VY!rjS%d790Dar^aLn{p!7)e6b&O99%GZ4yh%v{>LYmDD=>Ptz+$vD?)Dl6*6`hG@r{9N3->ZgLT5ma4S7;Y-QpstsL zSDw&-@QH9c8$B^gPehgRE>vAUyyd7!u?PW)Dg|BIAcQ^&8 zTN${uX*e!@=y4syYkDxAjsET3fntfT2fknH*i=aoSJT#RXk1&2dZg_wy#Lt08{R*5 z9=w0oo$!7bGt+l+Dd-;fOKYM%smF+`no_h`{vNmeOXKe;{e;BJ-|2I^zB&sY)jQ)n zI(%jW{msPcy^AbtbLsJHCVJyZCR;&mwc-nkAIvPB^4Z9u(byV%?91GzU<|kJ7Z`j^ z36MGPc))-ro9+u#JsN;j2wFD)i=$wo${s-IoOB3TK1cE#K(sFfBJXuHd*9y-h{~z~ z(Q7jgogUqHo;idc#CF(yH47gT@TSB0f%_&^PSO6?fu49qqQjewe=ORzl2y)v1qNQd z-+1yW;L>Cma2%)LUI5YG#Ut|>$mL5}403$dH1^DgpZ&_!eC~DiVkRI2P&Nuz3D3+! z9Px*ggyJCbK5U@E1kl6`vWt{z0%h7!fNl`o*9(S_m%Z7Fg$ee9ykVM75``OoI=!zA zv18MSAvx)%U2XrH)TaNu|K|LKXzw@v`kX|5_iUcif$;HD=|G4PQY1AX()zAj+yC=bNeBCDwh+wvIWfrz zZ#M90?djC6Gk1xevk{Z7VgC}(XJ^4~y^QvK`3b?J#R}QO0@18dgaGN1*tR3s8eO2a07|{p-}(6x!vwlLZeP!2on0WLRW0O3i2BAseG_r4P6+zmezvub z_rA%$mT9-ieRI9oY?GzE(L9)fn}I*~X`pXYs;Uc|k23zx>8NPat*Y&VncwfWPPp|L|!F@eZQ*I`Mt~u%kr8dj`O~wMjt0tL5hEeTljuF-!E8Ep7)*8B|xk< zN4CfaO#F-Q3$)=NIvIkNZdn<=8cTEvTvK9{4ib%y%^St~QIC(_ln4 z=o3~s@U8c6q7|D#k#CYuQr*(vpn~*mOO}O~M9`}rMagX+RrQr~V6oK7o8D+Ue zGT=%+^iO}dc&#YeCe!{Xk2cFt?m*!4Mao~!!$ozogkw~M=#oFh1_IeE7>NtnC$pLf z6uu+)CWlkK!P|vT2R+VSd6@2BLlcVBhEUR}U-uTvRu9pfJfw zsv&l|w7|)RKJ|v$=GylBj)zoxp5;OL*z*<50bXzY5r#kA^9P!&a0#rhm{;4jY_$y2 z5({PL_DR7Z+b{7{izy9dLsGwZAr$11=fan-&bTak+Sp+9HYpY{(hu*0#&oVci->{W z5xpxoQ8ksO^pl^c1;orIF4|Z!9o0sk`slJc?spOJU3Xd&e^OV)N0k9cg?s>9*0_$c{y_AO}ZMcQrgZVOy2aA@Tx-)H- z{Oul_`mhJH9$QRz-XXe8{BI+dJU;`uWZ2Y0f!V7=-vbSPvab7wSo^0y1_#6LERsNq86AlL5YbXnV^d!7+=(LFu`c3J(Y(*bbJ@=uQyj>OMqI> zJBBzqya#0EPBJk6H+8Y)W)2QPP@t~KE3@(^%=DvqHeG6rXE9c`Fdu!ncB~d_0|yGq zLFSpFiZoC^@C4QU>kC2o8>^#GGE&^56elv0ewM;8b4n~THHLRMs^&yhgWY@kYR*zM z_x`8Vv@1V;9?dO}e84I36_HhJUc1JA{F|GbECDwrXZ|NB1LCs1Qqv03I{%x;Mc;eA zma%?v=vXo$(V>$M>ZU#J4)&*m+QY441viy?l*kN1S*|4-<|Q&V z5+dd3=r1z}20pJPaeQvZ^z0>~RN`}~>JIjox2VviyH)7eqAF{ouQr93kLhS2Nvn*N z366^8Me?>QI@ulk$RQv}nwAuq)}3Tpce3;+u>;>MKU(?z6JsCw=}f_g-7o!kED8oF z!Eq(V3|ulwokedW(bvcV%J7$PVuDkn*jw^!t20+?lbS3*5?N?oqMA>$vQQkIffxEI z{YmfHu8J`#A6!lqF?D;gke$C3_V`5xy9dI7NxT&ONer%(_?o-EPI!4SCbhnZQ-S16 zERh!${g;Z|=Pu&3Y(|zp{A6Q(`A6{i#pkJp$TD&QE!O;t)R;>5Bc)r@maapCeNmt+7e%VwAeFl+7iXQFptoxKjJQbS}v^4|eTS)`rf?QkH zX2UW}QhbbXqI*?UIFVCzzFyTf@yZvy5_i+)%Ht7+lg5R9TJ1ji8Leeo&@036=Bn6g zv;H_VOFw0~qmwK*#(t5O<%G0ac04KqLO;++t{Y+#$>m6X2`7$l?%f5>!--y;G-hsk zJ2f-8@xB*03!gTfo9op4ksFU4%sMii9n2UFlOXWJtny@!*>+F$_!`>c{`J!o{dDa3 zRWA;t;F!E53|E0E1XPZpuja}V(~9b)qHa-9O49*=p%;6poX2Rq&0Y$9Hdm%M<+Vr1 zf6C#TGSi29L8PU$aaR^hW+nUVZ>=)3V-^9-HdTJhaM0wqn5)7zV+_cmNQ2ujr_tp3 z9eGG;rar6#FTgyor?MX_IV+jFjNI@~vKvuHY%=y1rKss0X{N7gno81+U7i;Ed0Ljj zG)Qg#y|w@BB-7;hO-Rw9;?8RNZ?d`FI>~f<{EW`h->vj-e{yKcrqh=6k+eDfIqba) zg7LLqmunR65r1Q|bJq8a+cD8Kk&X6kNQ8Gffbe@O$I73sR|z%=m1r0lmzo_$tJKJz zBn%J!j@rjjyX@-%W?CS{X00C)KN$M2#(zwXcy))WRqYL(Rl9RVTD2Hibzbd!Rl6;w zYOP${Y0dT29P0}2MR5Z5=bYt7=ZA3J%fKGxRdBd*i)O48Xt(m?H;c9oG5%Vps%IM=}|^W$qVC+JVmf{R8PB zGA4_uUbo%Y{?{={(EohN7rBxza)pBe@h^2g2%StU+a(7U zvS*Ur$OYGLPUS}bO`CFQdj2viA5^zgJK?j)U)?gnsZEHp0TJikx5S`1vnmk1q!rsX z?f(P0vhcPp{>&y$v2qqHrHAS4W3`75grQ z(6v)r3{Fntawtw-IKo!wm`Tw}*0HAn1c$e8xrmjrNnOw|$8ettwXS zH&v|Wa%dHNf6RV=yz}qTyV=IwFU2MLJNEn7R2UIiH*^b%x}jgOfzU=lh6Xj{2D`(r zx1(*aMq9v)wzcV_Z7ky@vsr>@M#nDGTd|FR%sGby`px z_h-7ycengJosDT#mmeG5=Bq0HHGK@ct3bSqO-lX1y9OIg2lDZF(JcGo16epYROqW8 znd{Xn9J7DFynsdB9(jbPJtt=%cYM40<3DL*o#syZt7oi!e~GNV=6$+O6-J)4vDTvA zmDQRVJmCXfoP|#?mRb9_CgDRxTg}xb;EVx!eUUFZhTUQtA<`GgE3!vjRM};KQslZf zjoHWU^EHW^1NFmBDpnCpM%Znvb{3jYSXRMRhNi3B=zu7dSUD#+HPWd8_(Sa1FkVwu zKqd}|t^%M52~fos1rTuV`L5D1aoY)*FuL+*RnY_s=z**ei)lse<@KpcCz2zTD6%HD z$|M;6?mrF9zsE&1pXxJ>QnkK%55e=63-4&gY;#foHf2wxtj@tT!F}-3&cP*XtaHee zJQ*kp+ns>?u8D^vK=*WS=sc%$eC^q{=_{ z-<2P@mhz*Quz02p$sgFC4zN;Fj@{skvkP$mi@u*X#e3`Yf*g~SJ432}pgA4rx9Y+a zwJ6BRf~OdMDg0P+iSp{3$R&KyBED-SG5b9 zk^KXkuLJ2v@DW{CAq%Z_$il1{?D`0;bTLv_`G}*O8Y6x&`Ww|Gc%m9A#ZlN&~==vi4c zTSB)HLLD1f zSU9tCBaf}HuKegkOzJiiase(GNp+F*J-l)kUPpI~y2x7c+1*IiPDWj1;DNe`V}@*4 zg$AoHnqu`uYwxrAB7w<0!8FIqZ}mka^L8=lzlE*0v5>AfLhZ2MU5?0;Y;^lhC1E3Q z{fdeNoW)$@SP^;v^uU!&2|Olfb~$j0Q~Q-P(N{oakL)ru^C*}9gvu(k(AujpDBJO+ zai_xz`O($#K^5#vje8~X1kDbkpnmw{pPQaP!R0^cIW@S8FoI%a zSzX=ZJQ%5MDE9U4v47Q;-fH*0wzqC~-g){5_wKa!yG${A+*{1mj6Zig_cHOF$xh6) zvt`#Gy$c(;7LQkPcFQF!=8Zv*m3=$mRoJJ27Pr9`>*jFv8p!z)Dxda!DH|n57ISid zGm7p=t^eP5=HCmnAd+5+pxL`>lRWE6R#u|u!0f{)MT~vO{^V$L8yIaDZaP#RpbRu9 zG6Y~#+sX!%fM<3_A|5vEmV?gR)g}ysWDV$aD^(}iwlQ$n82jApSW^ZH9PD$RHlTOU zqWx)_2g#n|U+(yNzB9y`X0Tba@@Mz2QhONfSIr|O?9RDrq*RHs31Qp&l{by5dXBja z`jNQ|e~b%NarRDQL+nxUtoq(B*@PjR@Q*g(^=%2`qoTg8;r-v6e$vR_QOB&KM*f)# z2R5}WRMMAD20d+`KoDj*bB5vgq3Czb`!9{=S^pg3-#hbX@}`|#FQISn5#t7o93ae4q% zQ?H9qHEoiriP;rGi(~q^GX5G1vsvEGX0OVAB)fDnR?R0l zPV5nb-vfUZ{qlwQBj%PNzu*1H+%ggEcQ>0`1Ha*ifuAdgIL{5dn&zcLa1{`Y6Ut!U z?2+jJlw}Lavo3=E$k90C_!I!ev@dX;8%7USOv?dY&6v+RhXCk{IcFFEePIFgZ3PGP z2|yQ8UQ=Z+WC&!2>55Om*6_;s8aBk+gQ#*cj$0i;wA=mcNkOC0{m5JmR5sgJ0>xT$ zYoM~6TiKyn{gD*x?MDJ4%CMYZgHb-`5bhVzvzzQy=(&F{7H8xCrVYyRHwNB7f zsq#Ok%8wG=#5j=h$Hd(Z`2U&tm3^ht#bjffX*_#nKK3Q}4=3|DJ9NdH8N3k3?sz8W zSIs0@7-NsiAdxxJe%4%zxs&m^nbgOy5DA#|{ zH%YUe{-sk+P_P-QV96}l1@VFv#|pNfgM!&*{QseRU9WSMZ~Y2k+%L*dzE!>$;~uTi zjQfuAZFcaoqs#yFUdh)Ac4CSCw~&bzH5_Nxu@#i%7Ky8B zoAK-jZZ*JL#Gnr}StfLiyf%Z#tQMOQjCG5V>!rvQZhMSrgjkSi?|;TzkEmQ%e<8VI zoB$)EGIt<%B*2hF9@1h%Y0vX(Dc}wGbmcX&*glxPRzF`m`E0+9e2 zc++My7z10Lnk`uv!XEiwhCcoW(TfFwF{GnQ5%Z6cj3ycK@fb8k}R9ZR91Yt`f&` z!1ClcgK1g+MmCuGG-`PitX+q*I_;zdRrQbpmS9Kxd3*awJ_BU6UMmJ&JmuSBDd+2=8MVpyh_>We7_VHx zL}yteFv*UB?7VntlJ(>}IBUD`B9?#!fWImF%m{=V1;CB^soTqF!(i!&Ya zo2(rRs{Qdu;R-otXc3Xhy21bHp#$SbsJR!gG(10Sl{*?XgcSTTn9YRhLM|> zK}{TRaUZ9EOSCgIBl`+aa8WlKiak=Q1g~c^~4`hXmW!`1z>7nX1dIWbJ)bp+2bn3;d~-&;yF&3L_+@3 ze_GiWOPiSpAz+!Lu;LM z&|fwG_x%rhf_)#yw3lh!86lIM{SO9n(*LkiP{D7$yZ>nviIuM7bo~!|yl_o9a3q*lDM`462B$Jg15POU~)|1*18{rR$g2!{1OmJ&i0mq8XV2SU#Eb1qBA z??uS071*@F)YG|tfdz zyHphH3u3>l5$kor7#DM;;ZE!vO$SxS6Cj45=e6ZQp%159^&n|8=>Zh>nr;U<7S}o zH;I-aGt|zWc=f4!yWP#{*k&kAR}vd5k;CqD+YBFm;3(nmKDJ9})Z8mfLXC>u@S``x zZs_+zZ8u=wQDlrwwb%_0GaWR`3hQ39V0MDPX^HjPP~qtgv!U$)RAr!{jSz`C%!-@((mureONAs7!??K`1i;G{=2N`*?} zaGHuOZH;JRHJsj^;pmq-JXRTuoeg+5j z+bloU;+HN=Pcmv40gH6xKrlBAuh(sBILB0ob95AkYr!+?2$#rW`3PHXh5qF5svCw( z6G7*t@JXQu$M}_Fk>Rb(u#P#7V2=B&Y0UAq^rXu9h~1O1b!-p3UzmYiDReIfwbDjn)M6R(DS@!JR%{qy zcVn;qQ#uJ)8+}@+Isfnv5-sB=1sR(WflR)n5)k>@XLY-eoLB@~Ike;;np8}F7KuZi z$j@vh47~u$9zBZn;^&Z|0jypr^s+6a0lhA|AuC%ZCb-`fJNls{F~L@X)&aYW8YiDs zQe+0W=QBNhUdIRUV4w+LKa-sQajTtk<@&|XY473r_kc6qB zo|w(V1SUx38~>IJ43rzKbMVsngu-=eERVJEJd}NP3stlKQ&!Xytik)hJqo!}%<|DiNoU4T$2m1*=@xR7Odzlb#9BWRxsXqXS8 zM!XBqO(q{?dB;E=;t>Ga0U~=8uVdDdviW`o1ngDxX5UXNG3c>*)o<>`7OgPd6FEwZF z9AnoCwIfR%%mB@<>S;X_)MCTWV9pR6+Y0L&ix+_}8oupRd$ejWSbXy(HjAy6QKS!_ zf;6-Qlpf;%qv1p+_$eW@AY#h4N7B~A$)O!R6NWI9Ek8qRQtoNL-K^>-z4g|ZQjd$L z8lT{37pHF5{TvLNI#@Po)@8P|+e%ehlwYSCdC8I7DVIwA*E4~HHXgb%nUYpF7j_ex zI0hQ|Ap8E2n(SPVEsY;qE+6r=QsxbVb>^>6mBEixz3SiBnEX(;c0}q6GzJbdL_4A2 zUdZRMP3WJKs`5i~kNe+*Gg||M&v^c(WKh>^#I9eG=qE56`bZaWjBIZjW1MxoUJDC|Bk1XDZs##z3uY7@w z)UlT6?=I=dOdv2h!ZB)hxiXnavfq=W15I8md6S*=ci_kQqDzRt6^8OebTWgT;NZ~S zw4T!UR7&MQ|G{q{l4s&SdR&<}=r+5qeK&>g%%_qodt&`ozcVpfZf_!w)a;k_RUQI& z#%_gWq$&gclQ-E+6Fau`b*=bqNtqIyor6>Ks?c=DDpO`fI-CHYYt{Pi6wd{@RfwIH zn;ZG(DZ+&ZqQB1r?;ZMEr->eMY`TTjd?}hz-q!iQLjSa#Imr6Fq`yzn-+j9DRe-BR z`6YEWTOnz46odK9nj~ZCf~2YoL>tM_=7~4hU1F+@{cylck6;mvv!?8z2f#r9zA^rK z)H&1SH`Z&I08iJN@mskpqMTV>+H#+$&;=}RH_gkObpxP%0iq9{iY%)Gz*A+xr zVfJjpXV@uKxc7C{`)@14h#8(eI5lozI;`gZp|3;jb{xJ7P6$cRKkyL8SgJ~_xB@X+ zRD3I1rU%pn6dFN>^_)i$fWE%IvI{@Vp-n@M1*hfE0I(mz^0I}`UiuS#bmRt`{?=i( zX(!dG+UFA0KHc=Om_@K;(c?>NgAAdY!blL#zC0EW(QR2p!c4L8S*jxJm|Z-U4H1@b zDt3b-W-6Qw{3j4Q%Y4v0b^lTgKB@s)Yo#M9yrY%NA)y&c`<|ZIzNucatZOf0DpGHpL+EdMn&$O`u9XN>$@}4K z$^ykrwh?5b;|YpG`3_%i7bdbgA!GZ-F}|LE`tfziw%1roJ`5X{;@8BOfR;G)?BzHI z7ppV4kqeU-);6poaVjd*fWEJ$(>SJi^8$QY4!b(@tWu8$K^vu z1K0HBTUc}u0)-3VRa~}?_g9io%3+I)fUx~-#U#lxRTou@M&XA#0MD zgHp9*uPWKP1+zdb{Va}SRuZg3v}pNi`oG10VQoiaMdd61Rx6CVI_rOju>X_{C2M!C z9AEVOKenW{ULUvQzDNHDXS2B6Tj#?&;lJ+x#w-1a_Im*a0QetF+x$8zHP~Ydez5EN z40GG%S>O`{Y7_jgZpX^==%$)3{=&aNRyk1IcDWk8?=wR`&oBe;t`8@&?$K!NA6TZ2J?z9m?Z zfslnGeC+EGGJL#eQ{`eG!fB5mg6i5ke=#H7m4rrOasa1_AFa9yYbG*-Y#I~3fSNkm z$A|N)C+sWxS$l=Y)Rn$5`G7povXzW-t|s;hGWYi2L@Z-agJBfW0yPiNul@9OP*JW#>8g zN3+byKe>>%pmny+H}Y^?+n;)+FESp}9MLyDUqihkMD2~}yWLAoR`J@Ue- zrL*TBPBVWtBZCV?w|6{$HZGR#f1E#?e{Ev<$-q2+w7nAZGs{p2awPadN`EU}+{DoT?yS_33)P>)K2BQ3A2-cCEEDZGtK9-_O6H3gv^;&}jmF z2ZZR9`E#5K!S0;m@rfJ*j+;6vh@E3q(VaJsHb3;fo@)(SgfO z@@f%A+i6=a219djYyI{dl?kWX2V(yH2c!nXmWtf4y=2;e{njzN#@objdaHUl-i?92I3w1I=Co7KX^`7jUzMiF=MeJBQlI4q4%LEXtNFB_owo0`&1AT;zrxVfET&VpZoAsf z1LMzEI%?JNXQDrDL;7Gf+X`eSi?-2z&WQzfm<_EtP>fzv!gNCHZ{IQ<73Tkw%i+;EMfw3Zy$|qxo ziKllJ=G@rT zpUJ0`Z|guQAB=Gpoa^_o@?rh36y>`z3o;4=3h{DtHq2sujX2{wwvSYmC6sb@tj>bz zo-?Y>3!15($*EOCG5q9imjOYuyJvFus$M}e!!tRfs$0;^^i0lVEe>~8q^duDLFB1l zNc}8Glz-Vpx8QQ&A0p)}F+%1s|B2N318`H>Co;5<(?OLgeoo;dxUMo{3&~1NI0vej zo;i7h^M_MzDx8UCdPc^m}Wm7=8V4P6_>%+_w`5}0q=d2|$goX9|IG_#+!GUIjlRhG?)YdmN zQd_T%she26>kCzWnKpKnA44MP$8gkCQGN*yCb|lHkK277%rbKt4ykTl6(raSRb{QCl!C3 z)WRbK{c|}yvl!XzzIl4aK^Txa)yaUqr)2$00Cx;(}d}gj^NHM1e zF=tRc$Berk0~h4j&Y4KU(hrQ+h z;9DHh+I90-s5h6Zb11cc;*+|~f&GbPZ^W)cYc?E>lmtuvFfEY_h?BOYZ^-;(s1!S* z`x_InP{9#_pW6t7JwACL2o+x#k)KOG#SahJw4S%cQhi53RQj)aicB67DPLU5B#oA-vk5?vPzwxwq&*!*;6CM^sVFT?lhv9^@MwrB7 zN|GB(b|1&-jQQBhulgrQ#+?(47kiEOG%fCqspfopfAOn`+ZEYpdfvT#C>EYV-JdgF z?CNQR&nPY#Y1?=)Ii4B2PwQ#0fiq2>M&*^Ix@!!LmprfL>WakMy~mhi zS0>rZXK4fQne~r$7+esmK95fgVw&#$ztS9!JJViDCy7wnzhA*LJ2YAmc>W-hNI~k> zgBrV1us?BOPr{)A*ykPCpKC1jhel5qbaosK6|fEaqZPc;0UxU2=)bLOjUOfWmSL8y{BqN(VmAiO<&fQIdblU)=O7{747>ldqige`C|1BKS3KyjS7Bd?`-< zGfw;(jo%~uD|h3gHz@iY_?w;ha*cmT)xR4bR`^N>-v6b8|JfQpSJnSoH~k7f(t&Ry zo}w%D|FuoO!mn}Ty$b(jI8Og_PW&2;SMpcx#z*N)fckgfE1mdqjUS=tcjLnfU+KXA z{ljbH@|UggLlyl`yXjZ>kq-RvBTo9GHvK2Bp!}|J`=xjy51AnIzU#{_M75#2}Sm7%jc%KuWt?_dO-|}ZS z{R%(Qfj`rUZ#iMpKS}Uw+<33Tf4M$Rf72IE`Zd0nqTh{={vSoZ1Ang*U#{_orcnN} z-T1J=S32;uZO;1F_ydA(dD2b4!jE*|`#SS)Id0ScoZ#2E@m_`h^2Ip)`&sFrh@nMCpbl|UX;x08O2-=XMt8w#^0;xcjLnfU+KWlcjB`(ex{=T zang@1RG2cNk7%IJoxjC|BD~eNSrw90;cxIjUdsG#xk^71>4zUy#!~uPWh@maW9eTf zKyDgdfsD`o7sk?4M{SmUJb@xRN3x6?OA@~#l(q?<(pV~hvGf8pPAZbHZqnH21$%)D z`v$!Uu)gZR_ID4~O=48IkSKEYW!NkM<0t3t?+9UzRZE2e%!7w;-lCfESBwD!H3=Wa)r-y;GYQyEzIVFKJ)vLYcZ?(dqK~@i zSNJjq{`3Bh@<%1y11$S{1s`_f%N0J;fzQYQo;5G@Yy7o>uXf|J6~6hoIQ{2;3;HQ_ zLchkJCwQ+L-$M5U(C@$x>Efhc;}4G&`X6!Aukd9K{0zfU{;0%m0R0;UA9mx*6+Y8} zA4vOJ*I!uU?+|>o8=tN4&CkZ^?{gRO@2%3nb-1IAanFIfM4)Bcg&HTB4QRwfb=y&7G z6+Y8}zdP#Se^}!W6_J0{ZhW@FH~&wZ{&FY2TI1IW-s{G<(9Zz$JMh!{qWoI_cs2eu z!AF1ZreER99QZR*fv5Hr`Vo{x=pQTiup3{l@R<(0+1&^t0^JyQ)+P}t+6@0ZDpRMrCe~r^$dWM64)f(ST(eK8$(47JFJMfSH4tT^* zlJa{se$S6Y|E+P;ukd9K{0~!rkJbNYHvJC?KJ3PqD}1H{|8=qhAJ+J51z+vPXDfX3 zGjaN7baT?L@#hKN>&CaxuK@Hr@UxtFug0G&6#5@>)35Ml4*UaykiV9n=%+UQn*<+r z5I9{Ru$71OHFzPc465 zjUS-sf6z_8!k0Pl`Lw=t{~eXE4e0+4jVAxXZhX1IXFBj1MZhCklgM9KzRZCi=EO%^ZTTN6_^=yauJD--d^+tfU4LPXKRin4 zcjL1azWJ#*{hNOQJl*M~|JV2fg7>=dE%YA%{SN%wwBKU=pT<8X_~>ul^ecRs1Ha&5 z;5lNF{twYvME~C?_^=yauJD--{Dvoi$BAu9{xyDtqTh`d{|CfZ`*WQBwlv^1|Ee|q zq=)?Ty74XaOaT23{4$OfWA(4`I|LuS-%Y>5mpSlH(00 z3!LQ-Yy3>XSG)1q3g7%>oc<&yzFOmlD*D~{7Pu#neg}R;7Wk+2w^!poDIou%tKIY~ ze3=8^vj%u=e@78NM(BS|@L@N;T;Vev`1zlJe_H>BHU2iiSG)1q3g7%hoc?W`U()qg zt?^?8?{(u_rYrg#_|CL{WAd-@-4y-zx#?HJ>;+TXY^k-{Rb{1|H5v3xx!~U z@Jm~r^lSWMg0FVtvlYJi@i_hOaegXBzsBDvc&{7Z!d>vFe+NFznZH-#M+iQ8ubX~_ zFLU5m(*DuyFDelsp#M)^D)hVY=dEv1Tn2mUYY|26--8h?l2qxZP!SNJjq{#GYGikQM8|C1E`ZhX1IXFBk6X#Z*c zg*ASFqTh|rR`}+};`EQ={EOB<)f#{3648HddA=tA_z4?= zRsW~)HwwPmjn7v2=11c6|NK%%`KvX4gy6kyd<*;&SpN?E2R{K`+YeriKY6jxf0vtn zg)ej9vx30u@l*7mP5&mrhu!#ch0k>0x4!FWzhRBPQ}ESpe73?j|1nPgolbnU#?KVI z*Ntz1e+21w;AQ?RCjS~gRM8)D)35Ml4t(YTls~5b-?QoeWQ6EHH@;lqGadN5xjw1e zPgvuh6MVHBpRMrCe~8n6l@njB@wW-y>&CZCR`fgY7k5Ve#pu`gNrI2Aa?`KyWe$8> zHt;d|f7hnJm!jW|FIV_X2R`h?hc*7taPqI(jn7v2=HJKZ|Lr>t`Ki|UwSxD$@hy`S z{SN$3_dDv(tMPLM9}T+cSNJjqzWIINwfz$Pr%nHK!H3=Wa)r-y;BTP)9J7Blet@Fi zjn7v2=7;0-U+2ufTH_DplYd?}zNJLb@4)A9{!I5jUX5QX_~@N(`W3#+f$uy5<=6T% z`i@QiT)~Ik_;Q8Mbl_9Y1U{z!HGY)ftKIl)g>POHr~h@1e-M^ejej&gMbYoZx0s54 z2YwapKb^l<<9A#n`Y+(7U*XFf_|BaFkI8?FP5-@u54-W@3ZLn~@235&@nMahDfntP zK3n0NABxle&sk3THGZhzy>5KV<%)g>{wZ^X%yw{Cy8LQ}b;<^42YyTQQSMX84 zn|_5abKq}q<{$lsP5&rGzZ+k!@R<&L-Zu{U3u}CeqTh|rR`}-Car!4Z%U`YWJI*8j zy>5I_JEQt2O?UVM4zf-%_OLci^Am`jgJztMShXKDx|JzrvR} z@D)yc^evnI+XNqWZV`e%N+PZCqBBzrvD+qhu!#ch0k>0J2~-TjlWUw)oy&Y z!Z+U&r~kPols`8AqwymI?{(u_ex&Gk;9vh3crCwPjX!y=(7(h@zrvR}@Jl)WrsXHP z+ope$;KOcwxx!~U@K-wX4{Q9Lg0FVtvlYI%E>3@rGyiIhpDuW>8{bl>=y%}%xD(~q z<5#c74^{LpcGIu$We)tW{|UU7pJuf|UoeDroV{R&^^!2f9y%CF~7qPuMR zhbsC7ul?iT;nwHQTeN>%sU%hS8$6(Y9K!1r+3{0DXhG1v7uqQ?dz0WzYKVlEf7K;538r)03*>SMF|3RTE9q2#koVmW0t?`ot z-%=eT+TQ=5@FN{~<89=w+egbAHsJ#Vzs8OCD*TtL;*^iM5w)e)SJr6!A*rx(H$LhS z>R)i+GZz4_=jX~bey!lM-T1J=S32bU;n|_5K>A+9wV@n(P*Ydhe z|Fwc&xyT{-^H;z8`9j_%#~8L(%WXM++4F4*cJo_;QV3tLop44=a471K()^ z^4IM-O8S-KM{rqTh}8D*Tr#76`tK0@8aLjn@L#To)BogD;I;g&(fHd0U+%_7M=JUq`1{ynY5Tfd<3}m_-T1J= zS32&=;VL7#!pi8yYXR#uXNx&3G{3HP(^9LGy(1^2sV}tt~97qZG2spl7;DEy3=fFSBjlfIgGZNFA)e2U<`g4gu} zey1J&rLLc*;pAfB`*QK8qw44LUC4k240v9SjIF+QCOv+dO&0H+ zOC~w$=PF4#?IOF7IjEn7G_u(Ut+%(>9Lf{$g947%&nSgG;#UL`TR`)TrXT8OjYc0H zz^uy!t?5H~(+0%oYXd2uud7X8j?fpr2oJHp8{6Kuly0_OHxPjH+%2&^ziNMPgW4ax zko$WpxWBgo5sh!Z2yvVl*|@Jn;TzW(eyd`9-FU@sLY&O#i~F^>m6bk8%}w=;B(|9H2#INM>9x&94%8!}=jn8yww zf@LRcn!nfF{gFBB2x3iV&fOB3MEZC=?_x7ln!mCP$%LkTYBJ#E$uZ^-M7O^NkB+^I zpaKZ5dHDB;smG9w`&+9JE&%1&Kpka`Vyo3R7fKTz^zGBvqO7~jz}DgQ5*ozHe25YG z$QWn2M?1kFo{yV423JY9 zB0X5&xN053o!yMz{C9P}OCy>L&Ua}7(LCR!k-s7P7v~}!l;<_M`}vFL76=QG!;|KD z&<&zhAkfOZpEHV|iD(QsZ(c`7_NL>o`MopAotG3gFg4F#`1~z)6S+K#A!@J2)_WXQ zv(LKVLKYhlw2%;jx!@=XhGGn=?0tcvoXLT*hU2E+o22638#QlJHW8^JusU}sie_XK zr5inKBq}kkvv|#z$GFbp^;7D)fYI$Y=1m@Nm@;n)B0Lb}vWe4B#D^96p;fs{@zxrPfrCz* znH|JKoJeG>o8D(iurwd>0D2)(M7w$HfN#j2l0a#`G@DZSJ4^mnFm!e)3XQ=(^^ACIXsQs(|8XV%LzMiphAIC``3w1% zU&Iiv<2?jjLbSARg7{}ixM0ujdDrvYFbV_N4EcvXc}p|fn@0J+S}|MFQ1XA%Y2^Pr zk$>{tMEw5}rX}*vg{@P@&CY5-7jpAHeKqX@EizTnvW5`TS{692*DzQEY;k~)gtEapoLBm2%lbZ}f_ z>*GucAoVZfrH@(Z%e~wYFg^Wl$lvCx5?BKHd*oLR`O6)~V_kql92PTxvx>kESOG)^mx1W%p0M(Bruap_i42mBVO&iY3D-VhjXL z5mN`CUfIuoXs|Cdw!OrEyuY!c6~=)XSe2V2AJ^n&$j5yqUvXX1*!EmR7v34Kb5!fa zOd7;Un#;B@3q)(_jn5G9MFayMo!Rk6kmVw(a!=Znz>1_reQ-p!4;OR0i#{LT()u7Y z};(SfK$ZJF@wy?v}1tS;~c#})ZJTjxz;TN9pLNq(N4o%S%D{Cp;)Z zi>%3A3KroRI$xzf*(KuGkfI`ltXKUvsyW37J&*5HmxjMD2}~|TUqZ`NfJulrmAac+ zW}&%FrL0s>QIXF+PQq0Eo-YW6WM-)JOFVBIexDddI2sD783CxYYF>IL^pJPD(nG@H zz*Oj=tm|#n+$GW(_H{1lw^A9BM-O+#EWno(YHA)V1P}3U=j>CL5s`LzsYY zhA6opge>A4vVvN5zx-;eOR?rSpCzzncAYS%6wFEF%Y>EFF#9(i>LfbV&7A$ebjnZp z&_wRQs;x(tF6X%^`8h=SftDz;F8cH&hw(SVeenLq4(F@G3vGpqG_1QWCSCpEtNg38LjWhuvZ z3(XMzX#2qQx8r=2m+_t_-F3szB;BZ8!_R}I1!nR|sPtiesPqd=$QFB0nnHE*`;y3H z(aIN;EQ0B@VGzHulxm0>`9EE{88&@7R7Mex511Ot&6)y(Oq7WUDM-!5D?Fk$!C5JI z0vUjvfeR6U0_YJmXw$RLxa$}*^`Fd{(7(O}j{>`kC60CRTZbkL*)+apZ}EDn|Kg2Q z@l%Wmn;;qphc16-$lp0sE@p}GKREp=^$gxXUmzShddC8>Zg7z_F=H9#4;8_hi)?& zeF2$__*^e(JrrjtL@2G3h{odAAsTNZoI4&JPLW5Gci_=hJaU*acI;^!8_F~K@~my` z-?(K)4i)A3iFvKtorVtWnyPcaR^6gv@|9J z({VK97!=Q_y%O`kJfEdCgp0b4zIYI}7L1yg@v|Om0pU3BP$gsrUl3mKT;I&%qxCqb zaHEM&B54~7@Plxm6Z2=|K*g$boB_l0EPJ9a8Bwwf3JS-pt{8zNZSh={OQnT2h0yb> zRr|vMGj{TFC?v&*-#D{}RL`;Pw-Qg2aaU(@1LJ4PXi0G3Zq|`9H*JRO{kJg0s9n#L zkUZbA^nEx`nS-F8$x|>oD>=4*%8*81C!D*BK`s-;r(}LiZas~L|7I9qzF_yQzRS;@eO+y!DENw3#fK9TwMdJga)jC{+w^1Q(8Ad zjMXp*+0;>@px;H1vhYAIa`Z*Mz9`ZcrMQ6cZjYO4a!q-$?h4dz1L`-d>Ni{f2BLni z7*V|J{q`lGVgjOFcbULbP9r#&@Wre0CnWDiv~q+3#2Bq8X$m4qu9ya$HD%atl6dUx zl7>T_NZynoyM4)Tvg4RVVL->tlaT^1T!1}oZU3yjJ>EWRF>xaL9#vkzFOV>~LrzO7 ztnwh5nJ<`%DrW@IMxONdf(&fxSmh?F98pDo#$BaSygwOjSCo^ zMNuA?$H9$FsQaF(w#y{{#M&km*3Cb~+~kL-XWuYgLohej^Yf0h5bSe@ z{z;Oa9Qp@*6-fl22&Hj5hrgIns<-bK+V@TN{Yv}(pnd;eP3kX=h^qA_C2}8mTcme)?O*^{SBBWc>g%-a)!J|tHv*)(dJH^jgRKo zH{*G8Bfo&X{}fWhsa}7_&t{DGFzB9~j6jw~=n1HQiC(HqdLv_O221t`BnHMMRlqwr*`C{DS-x7RY`+YI3>ApN?;T2I$^MzGH=2}8~~d-zQlj%IOV){`=TF~ z_)nlK-vfa|2VeXWijh?O)`t^@G*9UI!NisLxRpV)@w)YA__fOZdXgsE29!R@S}{nD z`@{4o)-TRNuYq~eBl4`#`W1ey+4wV_hq!IGTKL{c-#tjdrmtQu6@5+WTIf57YtmPb zU!iYRE+0(^>|nzzX=nv~(pqs0E$B#@HwEi*?g8q_a`z6#H(?Ks$ct7gi~#BB|*@YLg-M zX*J$k^YI7g^oH4gSU2D`Ck7FZq`~TBdK%_;D{g03H4|o`H5s2`!Y^a&*70YwLwD3; z(mnn5T~iQX9H1=BEn)z-nUjhL-;a?Q3ZutUbze_PvLfS^y^{or%)nF}O4Ilg+upf6 zovr-MBpj##+wUp!rT7dpy&FpBbePbqJflozGE9P<+iCBD0_tHcZIB7T}6^{72I z-$wjefuppZ?1yOEeAwEIQ|4@wJK;y--~IxYa1J$%IzNF%_5u$Nlo@HFk2Gs{RGkkO zVt=&jJe*@Pa6g6**7&!X2@!HeLSX*}aRmwuKnX)>oli`HMjLcXJ#4)LFQ3NNQ}WUB zRmZko>$TvoeSXV-RlZb|FKRu$zr*r<)?dmu`?!>E*Q+SssP8VH_q)qS`!fe6RrcrV zEY!oYPiKkjJ(D|wzpy{$mx@lFKP>iy8F)#VDCjY%oq2p>O&(U&ajvLQGY}X2f_j&I zY94;6PpQUy(4*AP)Td9`6|eNSnyA5H;9WU&w#gUj^Tg%XB}K+rzr_J7w29>N;A(q5 zM-is|_rhj32l2Nk)mpCrF%RHPOp=Zf1j^xB{0`KA&EO)^I?;@v{q)MTK z{2vcC{o9yRd-8%G=}IyEV~|rH$!Q65>V`|!1+rpAk&-FFo{^l`O<)JJ(p74IfsP?? zWJ;j9#B)ftb&s{PB^_lO30@*M1i6NE9)o$pw^50Q3>^DLE zhRc*Qv;d=; z40!e6qd#}_QLkSfZ{M1PVAHP3fz9myHp^IXbq|%{BPcp4LptwWa$Qn8hHsE~HV|W7 zFQVCo%)pzdTH04UragCMS?(Ctk2E)wj%-Cw#`)2fSp>>^#moX6L|9J?#VLG9rqhCp z@i&DBDcfdauq*WUOujN|`(rIvm%}t(=@uEQ#t(R#iu2&?5}L-V-Ej7_|3n(kAyK6^ zuj>}+gGZf>+Geb6#~ufHgxPAL2J`kbx`Z(Q$xaI{;H;fWK`06Kiu@RlP>dOpf=!_D zO7FVJXuOaT=!dWNW(iJ83G8Rr^=1i9q6Aq^JZASXI_QuYT^CG@(bt6~iLoSdJ!naf zlV_~!7D4>=6J2q*9(P+igvRD&w2RMv8@MGoz1EvMn>`xV`e>$2lSsf)2Kb1!6GO&9>zP6r$m`5 z%73BV@<=5#tuZ;sLIw^sbXZ5q_QlM zYBrM0FlsF$u{=n&1jp^f3#IvY!l=R-L$RXuM2bIQYJ2d%r7mJ8ca@!-UBaG7?k6~6 z{)d}%F>$@qSiOlw-ocYU6WbrG$Fre3j5``s>laO|Wv)M*lu$2J0hntsYJZP!VkN~P zQRE;rm1;gGG8bfL0XDX72I7C!tw^mWZ_)qj*&`lnXQ1yGFUloo)SM-^F zPm*zeLu3?)uR$*I{Q#rZ3#4eP#?fH+^IWP9I=A&GJE}jC=onGK zi*YC{tOtAqx)Qn+*bvhD`P(xWoaGBm{T$o1T1?E-|>ri-SBV&ij@@Uhx;z`(oAp+XWN{h1t<`RdBN@u z^y)n5LB$|U)|^X8nq8M@ae(ofgYP1nB4hQ|4g}&6WX^hDFf=9*cC}C7by%=SUj8{VO1VADbanoc1W(I#?3y6l%Tsb3l6WD>#C{rmeIBeAR zrVuy<1pfW=`Dk^nD)h;I>|eFwo(uoOi#ZCMaZ2ZHOA5{xtx|YtZh@^F=i$upHly}_ zazW>%*``J2H4GUkmFZF-rRBA5(|H-{{5F1x63LgIrpgOWo945>VVcTO15<+6V&b;L zW__w@d+L)@GQlEi&+k!Y>(jg9#TEU9`OiKb7UPsGG;g;5TJh$;YO$*Y^nF|GlZP?2 z@}1hwp}%+8`ddi|^|von3_W*Tn(N1L{e3UzbZz~O#}55XEkFS&@fT2}rQPCmEX=>+ zdo@ zQq}ccqHO(xAH}8Es2L!sCyVHoX62mSO~D(X<&+$knkTDx>v6$SI=~ zYyV1qEgxy_@KYtfo*hCErjw3XMhB$m>WHx$n&f&MSVy%w2Wm=q#GPX5t(TW|j5d-9rn<^5<|^~U|13OXEv zfFBk1S+8?UtO4Bh47mqZR-8&P+&yhm;f)&=O~>Wqhm}@`HS!4Wak#30DS9ljswHJO zTK5UE0|h5Z;cM0YR8rP!Si_L|q2DK$_fHj-4rPqp*FsK;B0;tmobNd<-MH&dQe3{W z2|+x3O{UfVSKmz&K#5hQJ36t?TK+4#KKoRiMqc(`kQ7Q=a2u9W?=8e~>b9bEj4&|= z&?De2Lv^8%*vt>WlN2g3l=ev`9Nuf6rdNX9Kl|&m_*or+IN=bic>tGMzw9*bIx6h3 zzlinf1)N}0wS&Vr?S(6>v1iZ%e1s62$uXwd&A__+7R6CZ($%iXtJL}@)UrxcFL3F^ zI%cwU(ry=M#2B9JsT{?LS7@&eL`m{Pp$tTgpV)VpiL;rS>CTxdC)ls<*WMhb;y5M@Y=S z@VIf;<4nT-$SoAs#_RDC5+jukH7M;orZQAw1b3u0FuztU@D3_l36V>0gj!W?pZ#C7 zFFmvkr5Ovr#Pdd}dh0`?LOrhWou=OI=;`DBj_fC;=9=dN`fpDHbVwZf2osAn(aQm~ z4m|;2Jn#FMz~Afy>^8mx8v$)$ORT`oOyE%_5K5a#U{xY;VjP&5^BWle&QZW20Al^k zMsmL!$nAr@cO7PVACW&)$d9X#WlAFOonbLxVwN)r{OWNj>)#06UZA*yIUnXY7tshi z%y9^S@ZVI(N+R!0L>9!6iCKPZAj>-xaLs$Nl+pZWEM?rH9<5Z58t@47w|Lf}s|~Hq zJg(eh;@6j3U`>CgmLt5^{Dla4^u$$vQI5`kb!4% z5Aql5AM%SP(k9Oz&OI)_t7NsAN|>w6@OLq4{BnVrg4=LWx3uu5V_}z8o{wEb*Wk)u z_)Q_kI6NkMP#NyAaRbiTp+Xba*7IMZ_ zw2$aX=8N|0L+=Y(ma^8tvV|BaR1T((O1}w#O`KSu!+^2TLY|v)rWoV*OP=t%fUSh1 z+-K2Vg%gFCao51@7S&TqpNayEAS!!f5Uo~qnjliUF2sEOMX;T?fV>f29L%tk_Q@>S zFhPF`^lq4>KcL3DxJQCzFkg_qIi2}E9gU$89%jd)2J-B8BtRE%}g`mJ1@yNkSKbwycSmAB&#ZRH@IE;~e8jdd@{ zH(Z$Nx(@+_e{ueG@Gwf7&L0oV)_u~7^`@$ab1gvYAe|-mGT~KHc~Y(Q{1CO-D8CLb zJC5Jt{&hLx^#}hJ9vN$myO;&)p39UH6R6C^#IQZRTIay`OR*&bwxA$@l+GAgXGqpB zND*RSng59AzfU|>#lP>#8B>$2)iS@(La1bDQG8-$9{&b@85qdebq?!>vH<(SWQl5|b{Gdt zxr+GTpJn>D%Yuh0vMprGwovvk^Y9ibGUuY{*dLGvE`-uXzAfF%H;Hm0%xaTyOZ++|=vJ2kM z=sK2Gh0(}TvGJ`ag(@DtJm;9l-ZnkEx#s^?JSP@`{Zqv^?bfBY;?EbndS<1rJL?zC zc0ILT25Zuxlbn}|K5@`=&}Xd6IJzmNvNK8iZz(iZJqK?6M=D=5lMf*I7FIHN78;5D zce3>=#mO;Y*{p=bO6buPV_8&K_7Yi^50+t`9V}~Egl)HPi~ffr5thJX)dQxbS&g@V zQJugo=qD@8oB1o?^?obZVjjeH`u?=pCs+aDN9M?6D>*e+}3Vc9(rTsgXj$Qe1cVbK08+?JcN&*M`A1oeNz+9**ue8j6Ov04)2Rz0*FpwU2 zK5WMwTqJHy%ionw%$^6KM;UA}DE!56=-gL=89>9g54t*cOwq~$xNy@)6ZSG?3l;dV zRD$V=R^klH9>5h(Db}X{crf*w3GJ@ z*<>cePaO`l;I8R;i$37Ab8GkTsLUp-R`O6!;(5UcHflZ~0;!s|{y1jb5y2yxmUDc= zwwa-+-}1V23i_rJ&-N1d-Wa~^Qy>P%4nPLr7QWX^hWdXvmo;m8j#Q;h@w^?GW}E(t za^WH<=K2dVjm5@yjAI+5SwyySHq$oB?Jr-hsr>_0MtnecDACK*L(qMpSn{FeO9vK7lZGO)dU16V@> zvFx%keY<=2qPW!@6Baw1r zT}5Wm(XGjq({R-f^8}`U>%ZY%mcC#V?BV>@YvE4zg&C?aBiO!OQ3S7_P(?xH2l!hG zZ@*B*jK~0ak|}@Bl;`LlEAk^L!;f-8U^sSIbe>(ir>ZmN8jePc;No;M`CD_@$s}0u z3ozJeli@Q~L^R{XD&P`{egG%xx1=rw2?1gvbLm!iCJIs)2Vo@$+7GdThWEMn*;csbOWGH@SL7x+E;Frnga?2&Tchq-$pPY|J-d2@tib6ox7qKR0ThWYHLT1M>s+ z_wNko@O!4;M^Y}(Uq09Im-w)6Rjw`qq$@3e59>NEL%*sYxbnZI<5XdvVpqh5vl4l^ z0|&5JcVJ^T#$RhrXl{P79o&5Vt{6Ap->R$g#f~gn#bMgF4=DTg3^Ey$tCANcRrwoI zzcS4t19{AK9G4eM4l4TuTA__vq0M>+lEj%aTRhbG0c`1Cb-VRr`0l9L7EWU#k)@Id zrdlXgb^>2R=g8C>dIFe>tJG{qEXNlF6f>>u^yBcCV{p6hm<&WNo2`Y|_u&@D`(G$i z{ks>Nzpbl|YbHL^2qvxw*-WfppS{rf-D`@In5V>TYomjmNG&1>FyBpkLjR!JPpoCm?bi_@o2@;t0o+CYJtARR4`K(p^}}nE%Xp{SIO*yn4$LRoFYT-&YDKcTGGVq-e=WA&Gs zTf4WQw9jCQtxoma4GmgwuI@l^Y#CSWTgGIkEx+0zYOE{GJh};6VO>q!L6|biE-+rK z$WK0uX^nIt@682MIG7Az^z=4@_jJMpBcivx3A>H`6Z8N&wzwX+IJ3j%W2=E*|LdD} z4Cp@k2s&UHEE#vt@p>&dWBO2w*B#M(*{~UWSsk0VQ##=B`UD;Dl|$t@TEDUnjpg^8 zQoq<$mt1*0{eO?ARKmgec&92@UuloKVT`7B~*RKVV>fFfd=oQ{yi zvq)zj%m`S|@b9j<5FI6g02Sj0{xJuP6$1$$hGnUD?V*Y}PnJ#BqmYz2Y%fM2 z-*UAQA@>@-<>Y}6lLww{M(r737ng6bhFg}K#o2=#t{K7(Y~<+t>?(Wx&8XeX+|g%a zdY$hvT_DSZIc%S;TOc_!X<>+=zTn@zr3g0dCcVHy{)Mh&2csv zGq6iFGo^UxNqpBPX%vBfC$Fh`o5pi9t$2)`ugT4_J~~&nfOC8UN3hz_K+AM~oCIuY z^#yi7zjzNpzSK%-+xwiJsONImzi^3Pyl;`KCQe+{;Zvo1TvGwor7t^M8+n;UHs&Dy zLb)>(|P&ROfu`c`Q=5*tJ9d^!sl3axfP^+hAu$cC_75zx1Qp8kD zXDX>X_&&^BF!$JvS>`MH~ zH3T*X0-Hy-u=`$-1*%mmut0Ua-|j>znBPKcL0DCvZ6D5oZ0VX(^;0bRWy?}l1I%Ci z3C_4c1V!x7p{ZSCIkyvd^l)a>ahi^g;;F(#_W0 z_mU2Ms}||Js}SGssD;h~fj2yFEuLrwM>d(BEAp#8M+pm2Lgd|-MGh5CMZ(r6m!U#J zea7J$`6C~rb_BTT$_vvS%Lap^sGB(^BVd6tQ6h7c(ha3OR(1vbA6oiwN{&@a4O5fs zFPt%u%cD7FkWpZbjAE?hFq zry=%3wuM!JtAubY;0Gq=ZJT(3DvRP-a9Rfab#K^nUvg5i|L}P-(Zt?u(Wil{5bb71 zHcNw8xL4$Jt#)y~RdN7a45bY{TUZmV7uJk?1+3YHsswBDa83RjZl1`h=#D$V@Y;{r zJ9CjV%-i|6ts@uGtur<#Sxawyl$rq>M6<9ZsQz^GP#oVis`1@3Y2fg(PuG*tfoGIo za7g{eW~08%G-}yfA=x4s9~m|K<$HT37gAb}dt==^&R(&8{eaZ`O`cU_Zfjd| zEeKnW@LqdTYn~ZFe8PD}5eVzNg2;LJTZ;J?%+Jh|`58Qeg@C^qe8c&fd1`(}CbkMO zv6ZR^OYM<9GO=|G_Jx|-GFEJcRUut9RZ$ML5WI^KUZ!;!+MaS;3TxZE3#cb8<~h_GW6s-kZLnn0nN6s2!7p$U%4fTgN=>}g*A=fz`fSd zyI5&zZO9Bx1LW2sD)=JU562Au<4g&xeS~Raqa`(Oa3JDBHe&owDBjiKnf3YmRED;u zKntIt=i;qqzF`Y7Jv-rBvORJmsNfhBZ6Z}%TUxDE9PsaDl)-^Pt0=8g9iC%oi$i6y=KcQGex5Vr1oYn9`+47&&xf3I z_Vetu*IIk+wbx#I?X@L3f-gAQfr=>~MM_+hZWgnvKHjfKJkp~J`m|q*2o(2#@6A;G zKz@Gz7SwkrKX>X$ru=aHJ}p0|UYC-eF#&K?X+P*6=fj^vdjh}|-GR`YVpJ?Fx3^4a zeEU_hv&5=q$tlP+Czft#mS@b3HkiBYL8veK6P9&#iFA9bywV#*Ii-wijbAJe z9i$*Nf$Dr$aDdDpR0r7mms%Oi^S3PLrwSR+W_@5kdwnIW*c4$5sXDw>!A6)j;?XRc zPR7O#jHZlFN1yLMFB5&GqOUYuwX)%6x8&~9(2ab-ti8KL528eFg^c;B>eYtsQva%B zsYGJC4~()0D_b8TDm*Pdh$2Lb_~w6wvBMj|ypgWvYlr|!yPp|kUH6AfvRaZuJEkij z(b4wsWldRh&ut5s}#fu=m2pLL3(}LW)-1fp2vj&K6#{cl?tFcy;HBT@$Z+Tifo+Up&3Lk)KM3}r2)*K zynaH9gGzU;wX?@jRuQhQmtEH+Duq<=u->olurj7|F3iWu>}T(u2|Lg_Z$17TGku*P9U<`M|bdpNU`1ryqN>JkVJ zM52QJ&B(ufH0}-TuLWwOd2#t1eJ1?Rs+FO}$QqBD zlypg+xCvDkoD}V4-su*;S45Ta_!6u~XGR&~emZF>m)GBSN&&X|x_FIB#AxB~LS2Wa z9vURW}=(R zJ14(OS$}BoWFzK1V8tDy<*gwW0F_lRcv(y9nJE%CDbhF>($iMlF(l}p39Jt2>l2#y zj8EUep{AdU@5)>)%c|*n_KUqX*{9=P%V?FZ2v+as@pvQfhw8cOljozS`eS#7_udt9 zA2GiyYdB06gXVD3s#i-V1I0z2Kwt809^~@w>y-HXl}VY)l?SZ2W3G7DFu%6vNyzmbbDfL{}zh4Uv-@Yug}GsyB_jMBesuBqY&uqCv_ouhBu z+)$rtePTG?Wxdz?)qSJ(Sq5qiU7e;cPD#s>dSA(FE6qQvk79s2Gq`8HSuAwxYvYkE z#WhvCu<+tT-XzoKme7(@iMJ@M4*lr4z~!{Ey7JRd<9E=}xxJTD(&FFQu~l3^o>m?1N`>tqyixeKirntm#4<{Pdb!fdr{+eAA&6X#gSa;ibO7s zn01Ac%nC^+(o~UZ@f;r!*55*9eCom9JJj7mrNZ01F9lxWuxQD}qC-vzokFRC;ss2t zUZ00Dr(0c{P@4P&JDg0i8T;3Dn)*84zt)VnUE>ya=1xAnf>}VM@F6Q4FH;$}rJMqO zMp`mTt|`@$j{K{)%lwSQFJ>eR(8!thhD<|^x-bWFwipOjk~Si>f_qZ08tlWEJ#@Co0gqu!zq{;`D=RiETFvA=yV9!1|h8)3&BP zt;T>XF0#*NVT@Y>(tLKn?b@n;gc4m)458S&Y6UerS^X(yM^ZMG>z>hx?n?u*BuHy{ z#|!!7iLBK65lyS*qkjy2yWab7oF>0Hd}aO%HGXDc&;EHba!U>{Z8RiW zjYUEyNJ;s##kdv6ezFI*;^|v(^zY>Uv#xSTl3M3ZLkf4;mYvBz3j@EzTT3`Yay=yx zF2HF{dX)-cQfBX@cf5UNZTh-*IA2@R1JV1z1DS&`8N)8J@%KRaTE03L<3#r5&?jPU=_zCw1(TlR7kz3jdg6@p_6Mu{E3@-(i;NR=F;5^7qxnFs$!V=C9db z1c>Q5gKdsE0UOI_@M#TJYC5BP+~>W1*0@GLYuvql*0_c4ccNfSk@;-r55sAE#Q?33 z<)8Qxh8r|b<390B`F1{o{!QcmjD@%9d{4=K<>vCZL zNrCV?50@x45J|^V`L@Jk@BRBFPu<<=sVtb8r>B^IGVput1qqO&PghcfJ1;D^8&|+f z!w2i)yFC!+bJy%`A+~k+1^7~rRM5@NSam^B&7vWS1xq_yhforue9J`4e;`1&6 zso1dNyJ#%1Pf%ATXeJ&_>sk-vXj7TD+@clIr6e~>{gBL*B0DV&)3I{BQ_ZkybZ4xQ zGY!FjC*Hw&m?*mKbXi8Qgxw4s3(I@z0DJ2h|77-KPLCuCE~!=IF^rdjt!dsGPWXqr z*+;pX9q&OWe$m!il>-0tD{S{D`Kb%#A#}NnmfZ0oRo$XTiT-Q8N7Ww3f6ovO*q)&_@I;6 zXlKX76vuZzNmBEOGLo}%Morw)Q?F*Z8hgfvcyXDX0DR3mNf8CjZ{!T53<EX1Z5#EL zHdII4H%j|^eJ5}r=haQrIWoJ>gTJ{@&+k#KC8=87spWlmwe7$9zE{Sh&AuQ1O#BNR zvaXQ*bJiz;Gp2)2`QN4;i|>uaMiAeuTeZ9+z9s5}=)u2WpAtg~)uQ0$kM8|fTkF~Y zl8XyzH$*5wuZlWxSYMKf=pfJ6F9i z^@x@oE6xBKzNU4_5BWkoLUFuU_g+?Qn!Yh9XN3QTcCo6to&}A=E2YhE0s%8=+Q9_Q z^oo7ZHT2t$7j!?Q&Dl>D`;Sy!Xxe9N@pB`4wOJMy!pCoUnky5E?fL+_?y*#txsl<> zyr&yMHL$XNya=KD#KX#hcH@C1{@(B}&R}WlSBby5uqcKFv7QbGJ9*M8KC_G>pNk zIAH(% zUK0GzB95mx$d`Whg5I6t#ceB^i+%ZE{}|a|>X^f;$ja#*$V%^avXZQWOvL2)XI&qW z9lmo~PM-DUL>J`fK2Y@y+2L`d5bl%FH#htr`eywHk`uSR8g3p%g7^pbNKQ!krOW!B zF|=AqS?j)ehuDU`?Hcb^hA@Aa*(I$bo0oY%Rcug(*f@!CmvUuDOtnextHLU5@klA@ zef?)(HN>#Wl-{1gs-*+*ZGJK(F+h@}BxljFNN}hfD(XLzU+z$Y<_v5ckBEqqGuEP` zg0VDO*!=4K_G2lwJ3W@NJW%Mk|sX39qg;P(`OJ#a# zp!eArp{YF(?M`T;k@m|NKU>dpxRePOp5oqVEioW0>o5t}*=^-AWZS4SAB?^++f*~# zgf;yf@>2^uI{8Y%d;b0(LG-F>FlC9_U3cYDdn8;jG97)pjJ{QKM4yX4VoVg<`k`ra zs8Qrc;zw@WdK=@hWD_6LLb?pKHa@90*A?{c-Fk*hM4LF8H@bk$l^=YWd0s4>P)dwM z|C>i+hJJY17sMg{MZ!amS+zJsP3FqDBlo-T0(5`5Gm{m@iAyNa|LxZ<$a_i&Z7^^9 zo+JAhD}QCV4Oa$mdcriLj0D0AI(kS=V&sWyUhYMn-}{QZ17poLf#v1^v5z_*m-WDr=McVN1JYV68)9uP0pu@ z*v^8`e7kRqm+I-ir~6@ImZ%nDQE#^Mn(AUzj15cdkklgxico7VL@N-|r5|3GCBRx! zUB+v~q*ZGjhhZ76hz+~M>M-ksOD#D>skh~E-lesPCaUzW(=50HHiBeoaX0)Kao~DR zA4oR!a*zPUcVh8=#@ez`O+#F&e!gGdd*~#w*Dd~RB}9X66_UC5^X=bs{bMZ>*RB7o z8q%AAtV>prfxw)0?YBxd`}VPuDc@xh+tXwA8R4g=Ts>jZ)mJv05U%POJ#Fqyg%@2u zDcTaPm@xOI?pL2cU?HzH93EP7V-Lbihfh(6E$bt`Upl=zId@Xkl`(HCBBJDhYh}U= z)RZ-Mm4rg$@tH@6G?tj)Jy1YJix%ApG!^3lV+U+%_sE5@hXl9`J?YC%l=f1A}|hj}YI* zm+Jhx=5z$6+UcD{!9~a7@VN2sPDU#wqp@Khe}-(f=OG%o#1H70sW+@*9ko9I1BNnx>>-|@ zb&F$Z=njnlv2=By!)*Oh5AOzQq?T#!D$~mq*0nZG9iwTYSieiX>-}w(;+Q39Imk^) zFtZHVvN+e@{?MkISH@rA`v=B$Fy+i^@e#?GV5fB0%TB%*ssppmPY6c@4X>-qFQ4y3 zoKeb&WJB1yT)S|*20fZN69tb9L`t7;b^K&1m6VSDMEqoOjp#ild?PhT@ptG-82Z%3 zDTbDLiywiVcC$~Rz`_OV0?S$KgNT$tO&m#LNzl;dX$(z|gd1dFL2n!w5{G zKIE^5WR1U}Yh)T_=c)}gJuZf@ssiy&cAIp36n2W>I{L{`qZUf(|L1b+M<=LmF&VlG zr-t>l)HV${CVGmQ9h!J|Y%%%f`Xf%yC|J#oP5baULAsx}{8*`}J^b~S@CODze24XY z;W$i<*hM<`UU07~djC?2CcC0$SG0m6}7%v$TlopNDM`ylsa1XR`WdvYZ`S;cACQOO^=s z%R~0tCgH~NIrigTvraPB-k~OCk5P=Kn;#-o!>dE{h6+C00b{jNsv8mShgH1R$Ny>$ zA}uN8cyg%md5H<#F_t^I1OKq>s~fC*3e-3xQj;A1qhX8Y<>!TBBlHTu!&;G7ON{H{ zKSUSTkw6^LQy+mP=IJYbpJy{VH=G5GWYGu&@hl zoE~o|EToyrct2250~gVNBckDII{oM$FjHKim~Z-JB3*#-rq>?kwb-yNf7g&Rqh(^a zIiE<~IQ!Aw`HQt*p!cY7x_74GY@5%-<7v`RD5QEOwrYlURTKS}U60Xco=tx(r2QSu z>==QKpU9dk;fGgMirRhbSz)7@XaDbm-20gGeE;%x6WIAN=!+m*ViIe!js4FD%4eV`o&EX^W@zl!LT$rfzvk&P z;XZ5Q6Uu6v-U~H_^$w$<*j~D~ywpAymY3NlZd-lE>ngN@UWVMW-~}gk1T_W}?wrnK z%XCw4);IkVU95x2kLX>;bS&^KHe?uI_PMb95kAf2G?zaXV|5oH_r2{I7Upb=ox?)3 z3~l!*GAG`fJ%&5oK0&GyW@bvh)Ar@`$HX$(m;U?ITdUTox6wWyvqn>+uigI1H~jiv zh2<8+%eBMWMsVXU7n---B5m-JsSvN^B73-30_GrlyqB`CpRgd$Z2ae#m;0IW1-`di zOxqj&(}Vi>F^)VG-X%)@LsF+5s2)8WAGSNDr|tZV_Wx`_ZP(M`xK7j_Hvp<#c2iat z>FR~zP9ZKoT!5zHySp{;ZvTf}8~6}ER9SBX{X^2APNDDr3n+Zc4>i5Ow-&u5al(&t zKG`c@9**Oa$GxK`Hg?uCiCry8+GE2eeI#9jL$X&gY+QXymvnvjARCyK{MO6cfk?7R zu05$7{`tzXhLbX392grmC=H?@4dMYnsQ;5%sx@|w4eMmDao?*i_07F({3bW?+`l$V zXnEJEZC%&s<_Dv%X=Znai-^(|v~Y^VA233aI-JLA+>Z1a-)s&r2F>9YOx{U)#c>(+ zVala2<%e94VAVG z|9o{>L(f`h59a`ri%cr#vXCZYvh5^9}2}z;890HA^H&uC`k*2 z+Np&8*3+_kzpwRvssn4|2d3VH=Ac(yUH#V36|cF#b|t5FpA3UdYr&J1d~iAKr4_D! zxxaR+t|{KClvy~)SJWt>mu@M(o-9PPP(DX}&SF;`=`CH+SkD!*?}X-UW45e~ zU$q)9TLiu8mC*cUdZFrz(5;L45@~)bk{Fv`JLrqr=AE^JUem3z?mpQz z?vv%`g~N~{Pp}p-&TF{=PyTIvRaD1+7zlSGn+Tm@BwVkH|-Hb`}9$1?=U$9K|jZK#cmX%GUOtAERenTIH`K&e6 z*llGdplF|R;T|9^VECT==`+(_j^jjCEr$? zyGo|p%9_~93bx(!JVN|;;@1d1ooO<@lWykwnRY30A^g@4n|@2h{6zV*n&t0xIX7|K z(L6XSPon%J4^&W_xL%^{3fEd;IfYl1O9Hx->(woSf!@|!vAeX3~C3&fcC18*(MYj)Eja=Mmm$o8KDuy zsxc;U`Vq(q(fB7%Q#20(ZcrP}r&pR46`;Tcp?uZt< zg_-L?Bh78KivL<9Hmym@C2sTqm8rX%A+p%QrKHe>WdOgeOO#~E;(aLg3h>9oCwbws zfo=7Z`vIvY*2XQP5AZN}G0yi-Mudt-dSO0#b~z$x8(J(aJf2wGq{d79UKg3gfKihm z>HT)T(<*M6LcorVtCEITrdD)d(%R9@B+^XFcs(gsLP||tNFZrSOpd?bdh=IvOfr5R zrt5A#%SncbQIUH-&pkh56wfd9pPR7!jYGLC8`9|OcD~nU5Ouz4U`LRL zvzLuO1^{}2u zB?^gffg$vCl_B_!cYW~gX76zKuJ==(dOzaN$mTaVvcm=E z3wUCR%>4U20rAgnF~l!Bhql*_z!M^I)bnvXcl4geH;3;zs$-Emmql=pmi{_8U7mJ{ znm@wkx0`tvuTF+5&KwcRTmJzsaW2S@P+N6eIce1>sbOm``7^%wUOMNWyBB%G|68rq zW~Kadco9a**JWqaeD8Ew%85#x%Pd2`np(RK3N=aL+Y)cEPO1~pUq-4mAm9M&>{Xrm zFFS$YF@S_4wAa=#6jr?e-lG?=9SJ%YWl~GU_37xgRrG@+}E#c1Nzbv-E_elstY*m>&gx<}@nN1^g zKgrTF(yY0m7}nhOa+ZHOys0DBy#JfPKRuKB?fGMa!<#!jhe>W^cp02>{F&wC9|;$l z$bYFg-i|*#qoc#{CN%F9lT0#l?O0I{W9=HiXUoLm&{;2q;}wMHeAzPhT@&DLoBVL; zFhZTbM-t-mK^Ol;IKMHoFf>o=D2;(kh)??v*N5Z9LH>ts9|r?NQ9zxC%4p7nSQ;H8 zfYVOd3!q+9Utnz&T(Az4A0zp+3;>CO+MBFvE;G*%FZP2O$zg4p$x(uz<*mXr7;q}|ypHFG{{W}_Hdfvi^sfhH_Acq3g3kR$)1 zxij@%qTrS3#;U)GRS%tR+`GI;_ZQ7nXeHYfLRk<|-u zNqaLIau}&}+hyioTbjYlT=nrnTJzW~n`_(WG12&$M*gsE`yM-eq@>R@Civp7)Aj2A zp`t4-!*m-w3^xAQzgjvq2l>|9(ulh8d#mez`ezc83jGf@cV9-xCtCN-U*vgET|Ypa=8SCbiC*rf}NU4HPN@ZhNtQPF??(@{n=?ykNX& z&;(-uU^HK3ff;ms78oYbhTh;*8s$itW04OM5=y;$ej`cA+Mn#HJf=Le_32Fae39C8 z_im;TOcczHnpEu|Al*CvG?S_W4qzl7^^y}RMf4z4Z~w8Qkv#X8qmjS9uG$a>>H1+n zDs)AMxuQ!|^v|kX;dA}F=f<4=ODgq;--WLKPLXLD+cr`CSFir7SN}~`|IN@2q3J9Z zA1&Y;!4SXOsP(sWOF~U|s@Is?t5svH>ei9JL;0y9RVA0Nis#AkW4Alk#CDcOFC-hh z-~W*+JdHq$o*9Xct*n_lbPhkJpBj!MujFR7{yZWr6Q!9lVf^1S2!HcJDk;Of@{fF~ zfZN2dYd^Xm@7aSWuWjDQwE*4^4;PBK=PA)GkEQ(Flb(l@e1bIIraASC@%t2gV=N#?aNj$y@Ahr4|l-tk;L zkT6#B@`8EmP2G*9gxB3Zl@i2>|1Nf;q`e+#pU8$_kRs0gW*R?istMPnL)HJ^FyZRq ziq28dyDDPix!S9IL#oubCowMz<`*J^_dkyeqCzWOpupjqwdgHVN!Z_yrZan41~&5fs3a&pIhfyvKPlD^f2xeXwV|_?V_A(c z%c{29S|@VfO^e)>nIb1EHmn`Ufl3UbNb3O-c{s(su5{E3rlYK6xs(Kj5t%gX04vX2 zYT+0xAT{E)Ys78$p0NnL>miB_Vec15!#AR-TFHflsa~ohXAeJ3SST%V5VIAS>^&1d zsrTr#GRv={AVb71ogYyNaS}1;6dq+($MaML3B62!(b zQ5;Eh*%3)}-%*>WVZ&+928ju=x?Ofa_>Mvg!^I=wO-*RMw!!-?p$W-)R=*A@Ap;I# z#n|ZwDaryD{aY@(^7oMq^wQtSdlz z-&^aXmpMjZE>{^^CcV7JJm=)P*lme_V-eE3d59pI^wxQ+!8S*Fy$zGZ%dE9ra^^mS z6B%{-^DZ$sdk&7x7?{^^y$~lLCQSFO^(G(X_&!ox#&Ti3G>z5J`K)YK)C0j3LSS~j z5n6JQ9eC(QlrRcmySGX5k3vY<@nts{zn(f3etmYbDS#qZbeD?Wp{PX&6ndXu=M$EU z&@-8X?7xEl#v^m_N4b4n{Cl>?zy7<1|G`3bh{M0u6@7jRMTe#FKlLl{H(ih&kN%kTyZw_`{tHHvhA0S&|((HnP0fJBl-Nl8iEqDKtqzv=d{hMWK+4 z9E4S4s`v#Bb&GH0JsVSur(j0->%Ce5qTdInhET6AK!TEcLEB=?t=o!-?XWW z9rTb4CvYcAjEg0&vFS@FGDj)s*_rFPQbigVf(=cO?7ckEM^{ygjScGm4=~MW7po{rO zzWLEBdM=8g+my-{XB$|?E;9&aA2xQ+vJdd4`OB3IQA-p&UgmVSFOIa+FxtjvveAYv zcOx8UMrL#fE;}Jt?9Dx#fH9)28-J`9M)4)=wRv zSOtK->x$;PqGc)?M^TFi${cJH2nrNMD3xHaCC^VUN-|WOo1e}yb8OpWjWO&f{Q=?( znR|1DCrcD(&%3-hlFdq4Y1OjV>SdLVRbSVsR@iqzME6tl@06pY+VA2_rtk?nH3Cv~ zvQO*H3X+jpt&8p&y4CDhR!@5kN8u#*E|=u*vyvM+y@#8JDiRv0i}7@X$?mUh9xu** z`YfRx*zd4gtB|Rr04#@&G>$%LB#!1W2ELC$Qmfu$k-NG=g(ie@}ou73xA37s~mqm_#g3S%S-#@Pq*nuLU32dpVRnS z80{whoapnXTl7Tn2R`iD-}rM7-wucpUNV&YsA5+4TxN~jRg3vkjedJ3OJ6?mQb!D1 z@48HRpO>ZnaSnacd>_}9A6@n_o4^q`h|&H)=Ol=kEP>BCaP@D7bA zGygOU)A~8=z9#~*2k44*?FMMioyga5OS1;( zVuMwtX3KmVvotMd-}?bVqVd=JLaT$8=uH>MUooApK%A!;8B)W`bbe;fQ<5+GmsjA@WUU=1DgpFox!6Bp z#}97>Zy3DB{qz*=w4xp)Y%U8Hsq5L#FzW;w*@Qy^s!`G5l_~P1pGrebieG^Vv!=s< zSyRGQQwwKJ@{KQcwiHBKC}#HhaxRT^ zS(ub{B6=+60Z2+0W^YpAyh;b|U3rp|#zet=za#Mt)G)#52pND8Du%eT-}c-dOkP#b zPx~fmd%DEO7qXSbTQO{6|Lx`+HjtGlBhVyp`WVxwqC8 z&Hbbn{c_LaPW1hq@GF1iL_cePYlrSQ_yM)r%QW(H&m}qXlYB6(XPtii`ujtv_1DAV zxWE3Y%UXXOW}Ri*J6eAo$j|hWr=#^(3yd1V(9Y-tEx<6Kkq_rOVg02frG(RLJ4!DFsh z`l{(f(Pw$Oo7LC%DKo4-PPgnCV6}QXK$i)S=Zf-O(P=9B6GiPi&&l7`i*x%gXMgAm zp%Gg(NA~>;+4nPotrMMgc}P!@=*gNTnJU|FvOH71h&LjXKcY9QULq5$Hf#2<9P);i zS$=V5AVJkN8~!xcYzl+OC{=cund{XzWBn;2^;|&pybB>Ok4K8ftL zPv^rR2u#1U!P+}5pP{C!1)5SVl%KTsNmwJ?=`z1pQvJxe9NvhY+v4Qg&H7p_zgswk z!LiZ%&Pr)4znbFCcwIC04Do%D{qSXiC^NMto|6uME&6W05z%l4fSmmGUGd+7R_nGC zMZ?6J*v_5}Gx*!5VG@5!8wzw7fz#oPPjBl&!Oz;iEhKk)nt-oBe4>P9@^Ee+^GQ9c zk$C&$)_jgZ4BpKB-TWQ7;KK4VbmzJ}1k39oxuG{XCry73wL^!FTizHU1Ih^Uy>91` zT%Bh$u4`bo^Um@)RAfHs*%}dc;vD+5ui>vlnQ-%Nz0v%f(gGz4zCD&nkzj~C?_!H2 zPj|j%58ii8D0(VL3CoVd&1jMHIep;st#w38niWC!k$1p5!Y-ANtqDc}EM3>Y+1cjT z6y?20$XHA4{EpR_sFOC(h-)}ey%8-D&!in9@%%`4}Q67)kTVg=9x;E?`+(V<+A82z|tp$dr)+<_T#s8VVcbZs?MiYN@QOYz#(*+CS zSDVnpHy&b|_!#PWXJyxVEU4x8QL5t4RI!qZEqk>Vor)Q9{#UA)KXAxCOSkBUn}7H1 z|1|%Dk{HBWoPfc()cz#>7;3T|c$ihKV4j7Y#9jt`So1UIcNe}X-mua5{T0Tff@@ab z0v_=@DN`9cRKylPFDzlHRHqc(^#CSOqGY~4xajA5=BXS{UnIJTOvAJUD5k}1N&(8dLzmk8NKW^Dcun;5nmkKN$$1E9hx>)72n{w`TxhAz+>(Qf~>p2d@kK5y(Rs-j8839rXJ~%Q)#kj{uI5*&O00Rk>;1Yu2IGJ2URQ! zn+5uqJ+Q*A=zH0_{~pWlO12k8!)ubT7NBRc_uQR4v+<+-iSax~fg2p(IntZm2;Rh? z8=9wRDOY*$)~C#`h_W@UJa?6d#o*JMaBDIs4sP=vvK{}xiX1P0fIFaovWXT4z`Xmq zsQ(a8f9CWX@xF5_Ge*-gB{_GoMVbZX&``L!S8Uj64@-%V%T!Za^96;i+$=wnZsMo6 z;d-1RARdq!n33j^c*bCO$97iF`T+empSn}fbEpzSoH_6`&r_j3ug-nP4^0hP3f7W@ zs5(}(=MSv$Hh)jHLz*k~L2d6zdy-}Tx~X)b2?N1U=S{=>Ed~em`U3mJqQC-vahoh) ztunmLuVVpUuMun(@X9f=fSG@LWl6TLFo<51u|LozCr!VV-Va7+ioC>u0j2kF+zixo zTcPQ;GP!@Id&8ffzAe$u%5S4_icK+Irjn))epcIvW|T?B((}`nw+UkiH1)dp8W{@4?((v96`{JF=VQY3ycjFHFJRA9AoyhIR~+hi-nmhs^`;E><7X zZmu~YAA}2mn1$rq44`6od1kjq~x}H0}kQa3*dW`xV%w=I)2+C0djnr1q|>wKK-8K|A1=t zZ-fiUz&PR%y<=aP&~Tw7sMti<`)fEyT$6;VwO7;5e)^UAH#@#ZbO;=xIZL8RSco6# znz(5jV$+sC?RfD|*WR-~BiBNIho1A!rQ=_*uXMszXcepX36o0P^mhkA{?pzKJ(Jt? z0-&b#JZ61~cWLF`Y+HGhbMU_#Q1zg?%|3e?FCyHlv)3XTF;@TEp;F_t+^)FkTu zuJsAleg3o~RMya=^#VQ*npVQ!K5QYzzM02DsdWH94~bUVl%jyQ5Z|nUQ+0Rmoy%h% z=eKqmyp9Duz3ynsq?55w`ZgBv$-h9etVyN4Ip)5U9ZiP>cJ%ExV-61rnZ5PyTV{Xn zxj(DkCyP3&caiFS+~X@XmG`%^b9%j2ok#bXjug8x+a zOC?I~?25U-I*6fdvdp*Gu$LavT*GE;$+vzI&ui_DCXVpMyGDTwiGupksv|kVKXvi~ z`;MVZL2TF$gQ^9`1XT}H)$S9l>X9|Bsyx`cdNPmzQ>Ln<(;SjVK00RoB?F}9*S<@8$${jytAp}0QR#E^V^)eN+_(krk#apr*vF1sY=e39OW&m`7y2KyZrPh&mnG{knSN3Z9e&rwnh zH~AX(QY;x}#&G;>zKkjLKG|)LFV$m8N6?*iTl5%yT#EiXyDa)muc*kpWu&pPvkzP% z#JmCuTtao2k}~nFGTO&d8dqIV&9)_z90-OrklPJXaoQp z>w@?)^}F;3hv}m?E68bFI1U4f7B9GsIiuird?-ie+jz1s%!gCm^IHeG#F)SNVOC;H zbVZ{7RXfRRzv(4Kw~}9&*?FzM;uy&MSh3PO^|Iguo_B13Yw~i?jL;XA?sVOBe%k4} z?`EKH_QkYspu5pBLH_DMW(V8)by)-RPo8&ytVT3gAuW={de!(;i%*U4xzqZnnkzN2 zTV-PRtbgxve|Lq!*6dtc%n!@9y>Hv?g%m4pQ`)jqnN%P^7bo*oed+lG@ zasOQA_YXN4a{H&0d5QeGaaKTP827T|OxdH)@2DrafX45r-<=UKXr6VHlg}SpPu-F3 zmGrkjCNU@ciD^lxEkNp&Bz z4U==wy?--yf0$b*v*auLcic_6{d=@e2JtIj)xTc}f9BL&_-ju0rTpIjzi$WlU-NH- zKl8?1{JZ`y!+&t-*XBysz!?zvi^B&A8(@$7FESxdfWm~X{uw_0$f@g&;ZcDAry;C`GCnWG6 zahfD^eoegtAQso!-~dpWnzi{|>$eJl<&S)T*dEpLh=j8nc-&4ot9FbSCh2iM|DPFh z|7q&$sA+!l z-+2R1@!2bsi(Bsv+Un>tOxiL$0A<#u+9Ev(tFWrk#nJAeCq|b}s0x?v%Lm}suS?ZG zJ5~Smpnmiu%F2LQMizat!SZcj^kBZ({h*^Ov<%1RTQ#~ewG2=B9E?Bbw&xEB_KM=} zFY+RjhN0CUwR#bcVUTES7=@=x@;Jk^dZdib2*n;iE=G~zdoP5jXK-g&~f&FTJ)6*=9{{&bc*xSjOse%%K$?nmjz?mA0I<)f3MRC(ya ztgY;mtvhp^vW4p$seYhKYHL>kbc7Jezus*MyH+I=W9(WT;9a6S3EVb({5EZvwrxtS z0@)wf$@%skY6x+i?7Lr(=85U}FXjFSBC=)|w)WM=;UeH@8&kW<^3V) zm7bp`2lp;-=q!2VT*?P+`)htk6dcKOCtrPe-XfpnM79!28i*($x3vLhnJN9TT2qrN zvz7BBddNE1wkWgnTR(1bbh0oPIs{n++v|Q9kru^nXVXaaw>O2-;LVo6-@g`}O_X$7W?`XC5M!ai0*zfL~uu!!fU3lNfSn4$TmKAiBQw^|5%(|-5&ty}%V zJr>`k04Ux6rBfDFuTH_Q;*w^xw4N`9EHW+!+!pe1MEkIEb2fh*-2JrSx41!n!;SOS z6Zm3YN_Ul23Lpd-IV|pqHc>9;Gmh5mBrWP165o4c_~gL;_SmpdEgEUvM>UUJ(wb7shw3mqm_t?fD&WBj|}PrK4p?o zC^G(f^H-6v52SzeeIXr6Bc1#v!;mzLLcN6;olZ*7%xa0JC_MG!zI+9EJWil=p z=c2k(dnt3b6-xk{7uz+e(l3SfyV0%}RftHL{eH&3j`cA=H)J4jK@8esA2{^dl} z+i1TVU7$y1H2;c7qUep;XrrOt^BXmugQ!pc4rSDf!9wb{03(Pp;38?;Xir1dXjZsD zosLuXB1!h!oEE5QCdG08n+5+oJ5Zz)F5VUUXeekv5e0RY;2F3zGEUwS>z&SUt=3k( z9%{OV{LyB+>>@1FTl?wfZ9)8i#&eCH1|*sPI+CbqbMdb=Y{ZA=zfz?7=D;iX=!Pru zMzoc$Z9(g~u$0geb`S!=ddZ!Z%5OM~pin|k{KO=vTH_FNPq&{c9?2dqw8F}s4Hb=> z8%q4WbH6|5u2MIz46j*6_rvn+VyEA%0BJGZ%SjZD zDKrwfPv_rBK z*lsZRGpA)WZ5c1)lMOMF+K)QaIV)3#&{b54qv$$hk`up?U zremM)?&_d8!Vhe{h9X1E@glUOSL=loftZtKzxat>t*X4gf?8ZrycgFI$95Z1DL#@- zCbk=-iVUe#vGxzDHcc5c?SIbSA{PuSq5L#dod0R)(q*j&3w~@@k5JRMN&Xfv{u3S} zS#CVJ!BiAQ<+`y#--%$U}LRVkhp?A~7%Ga%C?-hOM?y4;2>#cw0LY@m zha)_J)06*~2+n5yZ^bY(I6vVqR6s5;dh-90!uAxMK*8o{=ax*8HfEEwB9kQI;m)Os zn2@4dFt(<-!maTqyq*S8%+KdrGGVk+LAfd^*~4;H`4b2NXF5m;fBZSdpCa%D-46=!V6bD=l^sCofZ5OssB@f%^|fN zVtc2_8-*B%psN(qwl{(b@TWNan>o$OhL}2?X|S7j6{lxy{4-DDo2n+m;j)GsTjmT~ ze_NdRdSW{Z*71$?-#nR0#F+G7&Toq`d6F;Q5f+Kz-<;0eo+q0CmA+H_C8VsM5{@%>h}T@QwJFrhu%E_-$mp!xt|y(ivTz$bhWv z`h+a|4Os)oil-1I|c6KzFsc~hUU&ssr2D0Q*LCqPX z(l2|S64tim8O&?GspgaDy{_5!h?^~t%~lnZoQ@0x?#lK8x6B&x>uZ5y`pKL5 zDfsA;$ypm58+C~EmgZx(>px7;)Ov)+x!n|-J)8hs+Dec-4bfQr?A6xIOXHh_tNa?0`S`V)@+L^ z{x-Yfte|36v-_#meXiD}sulHX`KN@>y>>6ny;w)ZiLT;dR3tt*yJksHGpoJ3RBf=U z_R-_CSK!z36QutBKlakzWvaOIJtOZAs`$bT#}~h1G^m)>+|jDFLbbGh49D9YCADky zoH9lL68-1RCm-?24-pDtc6dq6f@l3$9NXj$T^>QSYrQ_qh>HTun_!{D6 z>CpIOZ{pH(oQo95KTpPM7atEyZHFZEhZYCQlTeY4KL!nV3^byRAOeX?Qh~&*s4R~7 zaajS1BR-hF7UXMj#6cACT|BlZ;yyW1#GyteXs#y9h$I&MHHs!aMA5{oAo8c_++Xj8 zgOa)o#q zdiR~L6im&JTMzz9+1yutRwtjzdcYnIvM5J9@`-5LaZvN9jaPiU8ICJp*|n!dK>1DQ zG9-V%7zo0?B1p0hsmAn@O`&nAlY)XIzrGZ4Q0|3)gKLoqyAoT4DjO`dAE$^2yw0rC z(V+CUm3B;S@?_M12LsU2XBU+2E&l~`?bt}wnpwxnI-V@T>oqXz)IQdcIU^g&Cl20B z8e$F$C*4Y?|0g$E!0e}dh&tj}p|pBsBwk$_9`tH>&}%i#pN4n58D9S78R5fT4d=fk z=1{~fWX*34Z`&vi3=HQxr?WP7!t#cVjhH2ac44hV(o{Rl^`#jUBtoufCg_us%)$wN z)^Yzy)yCO3$b=in@ny~xRJ|685wXe%?;-hsx#|JhNBh6$)V|5tNZX24r zyaj|Wq09EEQp@{v+>aS5bvS-uUw=OD+OAcq0usiP(1f{U@aHV0 zIJ9n^;+-uutT*vrZEP5DOD|;;#tYZ~cQ=?&{N6r}`(Vr7 z@^4MUbF}xnN5=XRjR@<~jskgZLtdk=i=EKIuOF6jA|cWLi>=Dv@|UkvJ$7bH{2f=a z4~#R8ja{&>@%fCKA7`k4C#!$y0(W>%CnX;N*GRAw^6xvAJ!R{@lmp*iz>r_~R4FJD z74H&$dumKSg_=GT#fgI74&f1VdW-ieZTR{AjqgD=r>ByxDdkM( zM%MXnt6>nY&}Q8nevsCxRD%ji*j0E_$0Wu#(xC7i#zvXz0ZWi9SJ3Q}aq@nzvq_8bn}eG8o8r^xK~4-WYkSo(b$cbw;kh;enF+q>LnV8uOMh+MeU%qk*eor9Rfo4ea8^GpN}kr z@?WYM^hu;@)9h2IAE|n6%1CH57opL(2?G7u}bU-IVb+`AzkiF1p zipKk0sAFPn+D(RXbu^JrW#MDBoXxqq#DvtJ=E*29cwI+vLSOaVHSk?b%z7r_tjPYvk?pJj( zO%ZK+OhW@zvs#=8qYUcI^d19g`nwL$ zf#iTDt8aude`+!f>Jy_@@IkWH>JQ|8oK*cgvg-SSD}rZq&mwqGrm$$8+mYM{4Ed_( zCjaBw$-fDSn`UQe31X>K)MG>uB?^+q%f5NpySy68<6KQZkMhS>X|^^9JH4*kUMH0igAA04~lNkO%tj%9T zqc93rdPB$Nwqz+Yo)=l+;m?iCYhyq@AG-BLH3=^n#n?WPIP(YL27@-}?z$asg_pOn zPTN4JBAKUIl5S^BgbC>{)UY{hp@wbq>Xcb#Wt)x9dO?Qu-5iyk#qFEI>T+%;0I813mwV_ntIb z^BbIB=1WV4us&}Yc!GEo@~iK2c>4YOl(WBKh+>ejG5Aw3{D%?w|E@;La8w>3?j?%4 zcXAGkM9~#*YGG8g=L&82JaC=A-Ba)>zqP0u_7Pv$f9X32M7h852Mq3iT;*W-$%((X zE`W8AgSEk6jZMK?BUn0h{VZR+O#=+Te+K7u9sdho^T=^%a70;Kn^aP;+e^j)+(z^c206s;H6$D|-#&u@ct z6<@qHN5LsZ1YT0z#js^Rrf?#cJDP?}zg~uZEt72fzE_!BnszO|w^y`6!)KsW1K&0( zBzwXJ8?MB)+ssj8!A_Iqt3O~N?lcO& zF%%x~QRt}uI^u6b|Npo6ySvl>cli6=z2LHU{yO_fxBce!vHTCnVW_D|kJDnvz#QoW z(#qo4W(31(+%u839)bFta4PCE)AU1t&Ghpf=uTz@-&@+Z1NHH%{2ZPp&(9RpP!q?# zTsnp;`I45`_TNl?Z-ln?`jsT#=veHxUQvi?r(gG5Z~B!m1=FwRp*JY#Y_-_&4SvnX_UVfYGn{i}skbP6^W}-DG1vAmDf3lf& z+$A>uUlGiY7x3HW$5DLI{9i`%`0oJbg?w24=4He10M@Av)`9MBkSeYyKCc^sIe& z+ZV)-B*%Rn`}A9G{ZS_!?$+Pl5fgT_#fBZ1YHR8Fep`?7#rq|{LhtfH}QWY}llF@qPdB znl4!2tc?Z_-t2XQPXzJC`+MhEYd5Ji21=z(E8ew_YV2$8sJU1x134sxC;rNcQd_5|!C0_FUf83r&+Q0s=Z5dy2UEEl8 zah~_U_vN*)7#dZU+g4dfTb`z;dFhniFlKvb`9WO&I}V$XoePzoIDp5r7u;@R+gEofS*2=%JV@r7X&NIS^Df!{U zo(m_s3{ERmu{ytF9ISb%){b!KxQe}Mb9j;&*w6(62Ib-?t z&8lLn75j8kM-rTxpBOHI{kOmjKAa|aB(&`Fp6Eya;%)4K5xr9`y7tVDlcto7+~uKxsQhp{D3($ampP(;3Gx0gcW^pLB7;Q8Qi<|Up4UY zbtzric-i~GnaTRvy6ZP8kGx1Q5jA3i& z1bc-q#rgvGO7py;Kep!{qKh@Tv+XH+Taq8!l|PHrTMm)%++BJweLPzn$mu}ux_Nur z2Co|oCO+OA-{S=$KsbGvC|dlUct5P<4)MPI8!i?^rxdfFJgp|YKlGIrYW*DPd@eO# zh38hbwdLha>*d3bIQWmZT%Nab!kX&t#htXdvV3>pf;x8ciWk&{IFzmJ{X|{&(2}v- zbh1&{?$w3c9{#q!8vft%;rHuDc6J}WzAdO5VDN{8imSVadRDXUt|L-=EXOK4Zih7| zda{DxtBJR;<+-_mgSI0&k6ch){9JXs$ z?qELlTTpihA6*yJaeAVzPL5cjxTRkDd)uu@zs=**$Uk0EXbte@n#F({-AhnUz9I4hYAVe@O&RHN(Vb%lLP# zKUUu^c?#4vFr%0$1#jI!9`l>6enj=p>l9wjjZaH1=^V}{4!SsA(?!P&n^&5^CJI8Y zXF@Um$DG{*eRp<^Ioov~^x7@g||-;f08WF4*zg zT)L$lppOQSqI$Ig715+1-E%=PnCCC3%MU$qp8Ba1Kk26~e9%t?e9%w(@j*YajecGs zS^DXxLYI}(Z>D#4GqN+*-_l#>qjpc6dR=HqL$6NNjh{z9XtjN03a8hoi|}x*)QK8) z%ztpJ^dGu3-281KX&(I+mg|I;XhFESYiofwq?avTiquT=9&0q!9n^k$B0cQ=LqR{y z8=tZt_w%F0%m%N|r@q!qzS!PaQ2v}{PC0(VDaU2fV<<<9lSVn}(`L&dx~021>y~cl zOY6sehdBL+#_KmpK+spziIn&Ars-Ill%#IQV!r5?7ix5ia_LKy<`7T*MGi$oEl^=# zE4~?unsjP^~F|T%2B;mzqnuGpRy00 z_ue>N<3j5Uu2Pt{OAl$KUSi@|S7P41);=4~+*n!KR^8afZDA~DD-|viajn#A{YQ?Hm!@B%;rg-n*V(~5 zEN;Z??ocgz9PfiNU#xVJIw;EQqM*zwu}#*zBlA7&O?fkWYfNwVK1Bhj<>lTwzPW+z z)&o`l$h3))qf)Y$o*#Z80(0|+tN)hjQBzy=Ms-#-c7WvTbUx^VS>>mTsnw3D-Xljj zRt}NLSKX!I5ZNUCPt%S3BCw8wf~Qs0JDwmXy}8_5NyJd56rB9G zEQY=3OM&=f`y++n=HqOaA~x*ebLAAlL@O9G=wiqz_^=w^PA`<-n|z`88x(shY*(H- zG3{HtvW;coqnVs{-yQ$&6I-&^4~dfH$B0+V!=`*UdN;lXh8%mlQoT?HV>(Um)e=1& zr@=Xg6LS$iCCo=_4G#{|IpLDSTa~2i8bh(9>Ntbs3gy^Nhbo|k@hW4_fC5g0&v;h5Fa*#-gSHX8bN|hu( z@4n&yp;OjH_hUxhtm{IM0wJ{;cRqvSP(zBHZ7Wt_T)IOI9TRr9awIOg%)7odvlk^r ze&E1`dl>-Mzu#%c``FHFryeamBcDp5WX2}3Y49h_3|vm;?Mv z0X{GV*lRMVQU6Z+04s-lC-P~DqkgG4nid1^x@3+7B%jDq=_%go3roi?4c+-$+OQvg z`vlnc=Eo7i4|ufmbR#8a9rjhPnS3e!Ik)dDU`8fv`~vzJqy6>;k#O=KFsrn;-#&LaxxU(dE7EDa z4(+#-1N4(Q_S>|x=)X#hy$X%J3J^GskuF5!0YT%>DnCy8ZlHHPzr$Bv$WPaAvX)gX zW=X=bC3X1+xeRN`5>9?t|Ba@7Mm#P>wa=Po=b_PobA~0(WFBf55M=O3^#8}pW=d?C z>r4r^{qOCPg$WkzqXA59dP6(F;0A7K2lTBu*yvl!M+SZOxzhVpnx=22 zE1jiMqwkFpqwnNRU!T7DfBi4g_n?zsur3=(KgZKHI@G(klJ@j zO={oeBSUJJy3%J^5}GDy8e62 z(N`z>u($LFbEw)DVNm*w!*smCHVX-r*{%g%^Xn1q%`r$edSm@QB@D@i=x}zIKI>y$ z`cFQ5VmW0}^pY#xpwg3VeVCHlU${pP=#lknC!@G%+=dSOHOvqtus3`17Sd%xdZ72f zJ2_;hqgImpr5NDoU+n0I>Pb)y{g7@pXvz38C2n#gXL&KaE7og&S7X)DT@pP53conW z=>8WUtu+f9Y?^TNPV6E4^mr3*0FB#R?SMA1YHFWF5Rn}CH zLHFXf_eFPZvh*zaGv+8MgMpGDDXHmPpluQKS^D`Mx;>Zv5=TED?dW$8UeSXL`d#Vo zRqE(J(9!?mUg+<5DqQkb4%NxSt&hJJeNPjquO-$e`~< zSNf7ljlSc08huSK{Fmr^_04_LcaM`_IxJ=1qn|{T_Hz7TI`}z&q{P)`(xO_2-x%SS zTKN?n?Mer#G^LY@@?B{sl}aZ$|IWB#Bj~Z`I~=CW+Wwv5g*Lr--LoiR{v4VbifN-E zIr6d~UuIx(GRHN7y zL=jYI3R%D!AYl{C8dlPZtqQGJZL3yW+oJMTNq|BCUkF%vvjW=cUDqnU5`vQd=X2)X zy>~YWQR?^i{COU7@6Mf7mAdhZ=v;*rl8P8x2$eK*+G< zsV1HP4F6VolzZXcRBQ7ykw4x)E(i;9Y^-lw$;Qvd#f`6J! zPoY3l|Fm6WFGe)rVfP~Sah3X8riOcwdap_?W2(%|gWY6iUM3yraAq1c2drK=&cC%U zzpgrmgJ3h!56u}AA)lWmFr_9ECR;u~+C#?X9XuTJ>jss&k*Ol*oGb7r&E3}K07MIQ z#xB!62+Ab*TYN+Q*?#}tN{j4Y_qO`?Jq7b%!ff|1R;9)<)t1i>B}uQ}!bA0MR97Le z2mkTS`WK>>lKR1K)4w+7|A45jWp7gS7cu`8wATMjF11P{mh5U)}bm};*N zZ+DZthw%uR>%(Z=CIN4JvgbQ**6_HuWKu`b(w`;=bVX&cfw9n~6r@a)Z@ja;&ui zm!)f08zZi*k+vPR+9ts*$$?GTB2sWLN=>sLMT6J_6` zIgjUuX;Q{{&dcbsNNZsr)qraiHqMqRUyertaXtU85GU&cM24{bBlQnm1anW}Vb9Xk z3YEHqso`0gI$5RO!cTK`%senGzpsoJ^nAW4jGk8Jn>P1cB5%?^d{5iB3C4x@U-J;U)~WxD*jx5xXF`=c4azcFTFDx`!> zXW+1e4bujLsKA*C&Jw5rriwt)mMjjS*qLa0g#8?`$hd~(G2q|}Yt;x&XBH<@c%`$9 z;H!9quE$U*)7$S=>K~XoHavjkDz$>CFfU;PmIwPuoQ&V_m&4=dWDMX)-;6PQ{&{Q0 z5bp3`;|IH2VcanTe%1aAQ21|W{i6Nn{tsiaf?~dZgzLPav`7 z9}k=7B~4JNI#a`aO&Xw52Qt;(-`$H_vC02mY?D2-+TRV`;T+Cyy1z5+4|$RLKP=w1 z5 zMu*>hq0J71n%XdpUf$sBwPNy4{W~{Pn7>olzhde)i%FR?ME*U*{Xs(I_muclNTCCC z4zD*A%sY^f%flB~a0@AM=p+!}32WY7CI39HMm?hcU#tG(;q1Rky^g7l{;SlXOjZ3q zq58k3&HkgAty8uT`b1mFYYR$3+$tW{!0oMYVv9_Uz;WLszD!&E52B_6e+3sR{Bi#< zxJ%^3$oZ2((M*vGOgh1(%c+yTBA!MR;t?uDdT+SU)TCyr)Qj+d{RsnZ?jK@RdK_~* z_+OJSgf)K)GlW)xL7V)~h@&|oybvgwY0o~@zI<>?Vq{<4&#Asf=;!V@DfBP{4+lNu ztJEu)YSTksmD-P~LJvPXF7&YXuWiypEBRmujS%5(eM9-6liHs+`8y~Ka{swok?Mu`$7PqfR1_aN}8=L2&rWZZU>Ds}S^~X!$TH zzge(!1sMcAR_6DF4|4fEMsp*Ad zlkhL%oxtaCVH`|(GmGI6a9H>Dx%8U$#v|YZV(^Meu@0*>Gx)Y7ue%d`*vLm7>QK`l zvZgykR->90itv&UWH{|;wi^De*U0_E`2dNK3fQy!_tXW`W_+4#eiq{d z1STC#YL&-Cq`HM76_aoV7U!MdYCYom6!By)z{7im<#7Iqky0sc>;u#Wo*wdD#f?3v zwyxqLA6(8#A(){)sf^XvjA-m7HEzbk`+d8{%|6~g1Fw6WO@#+0M6a-GJf#b|#)q({ zkFMI2H^LL2mdEVDQZJqIC;R9as6F*WJn@PiZyor5o12J3n0#?G1EaUyGjQ8)OsH^SxVA*UR2M)~kPuC3g*OBd5bY(S! z{$ZC85jg;dn!DiKvMFC9GUEeZKvTmr&515w(`DN7YKTYH`8%XstS$cs2oP^WwaRM7-cFWmjrT{sKiP;sn0E@c1u&zv zB5Uw!!TG4d{*KBLM1RB@higmThb~g8+KU%LXZ6p5FIg&!SKt&Ya0nmEU#>0rxmA8) zo8?D&&vy1ttGrUx(5V*XwPg>0>a-;ztvUv=4(%lZ5krIw%hIauLKXob4j_!wsu-4s z`-|X(>=y^2>ZSxD$%ROq7_#orA@aMnbSK_WvM4q-zq}c^jK^=_o+2~ixgaeU+yVm} zJb*u_DO+3K8~ZI2zeqsq%nX#pvA09nMz{htwseJ}4>y}Qkv*p?{$8#vtyl1LLYA_T z?!dJGY_GO7Pvr$Tf`7u~J%?CW+E;xkh(#BhF4ZayM#z68glH)A26dWp6z{(W;iJ-WCzn&9l8f!{~Iz z=#*WoE$NB82!5^I_cgRI1vUL*^D9nzelq(uq2ODjhbO0^OP>M%R+nx-m-f1jA9U3> zqf497rDO|!)iq{D*HV)6eVZRcljzbBHGTro^1C_X3ORmwulxlXckRQ+~puRh}1#zw=O|jlY|( z_)Vq&?A=UeHBe1v&M(3bhNa-|4EQm_-UIxotqZ?%#$2W?DMbxJc~kfztO_-?!>aa5 z|E=$+DS@?MY|^Y+;!S|2*IFP&@TW}*00)0+z_gI|*We|JzpcIM_bGpDzm`Rg__!$Ce0W^4YEdoCf`^8?qu&hSdo@l!51<*K`L ztd8^gVBcJ1bO#ddo4ho}Rg!jgAlfMt?Pz)9*MyK zLW6)mO~L>&(zLd8KZY12Q@|ysX@vK3eASk$MPeAhW8uqvK1D1y$iKVRb>}pv_mKsS z$_!1Bg>2Su^#}z-FXtRe@S#h?%VE6G=a#Yw+LFsiv6ODk#|xH+isnnRvM%=yQw@A& zH{hteSF2tMZrg|EtZ!Q&3H^=4V{5VvBR#fN?La^r5_wQ23S$uz_bK^3(VNg#4V|Ti zx1(!_82Iqifk$5?z`S2QFqZCf$ZDnp7|L}N@%nZ(p#b<9BF5tranuxLV9Nw@WG*-~r=i zd6iU66?5Z6dc3?MRQy5X9=nE%@d|5%8}S+5l~kOqKWG%&sju3pSJ>D3MRntKZSfhk!Ji@C&4`TdDO%LAV-Yot3)7ApCAWPS+hY zp0HBujWj!Nz)p>`Q|C*nVCzG?n&1qOR{`fuJC*)NZaUc=FyW_v4q_HzNr^E&!Vj}F z+c(E$KT;j*clsw-&Rgn1LyMBeBa&n6_?*3^AMt0Jw)E$yMiTRVTXuuL=a--CGH)|? zN$UsVQ~r9Kca3pr1$!vOXYO#d>;Q+l*xM_=;%EzYp|1L)$?h&YF&?gl3*d(eoeruNhs?jRS4x0JM~FB z^&C6(0Xwymow~qI{V%U&~`2A1)~~o zJ#yD1^7@_sK<{@kOtp);^4hwD#duh!xRu+le_!M}-BRbyty_2zR{WH+=DNe9_I|!^ zXL`PGS2~8!TWf7D=Istux-)TIg|({7qTBB*bPT~D#3#~P&uX`DuDt}Go_6}j^ZQ3s z{G~^+$wK_4)gS=Iw|bb*fcdoIOI5Wj%-37C;8u*e**dO5tCP%YcV#_P6-*%pZZ#En_I>xU%;Tg_Ei)6T-A@iuh)Oj z$sLIQg{$$1J9E3)Xc?UoR;UO~{$rcK(%5Jb8~yX=Y}EV)X9Q&2=G&ZAU3A&0z>R!h z?2qX+W}hmyu147{fF@q6>J8xaik9T>VQ1v)!XLgZ@wm`PZ~U14+-tk-d!l4)*L_d8 zFf|3R1RGcv!j>F=hrsHAlwatL@3=A>9bb{bIlIxFBt62x|;??N6runFn`c6sU_U5FpO;WPHx%nLPO9>eVv@-(n6fR8ymDe$Y= zXZsY?i3%NGLE0rgzRnL^C+Nu!6t;_>s+N32%BXwYW`CTlPA0p`sKwg0loh=&a!h)F6d)&@LlMiEpR)Q#%^q07Q^Fn$QiJnuN{ zFQ3dQR^CT|4MuO|DI}O!f*5Q?&NC_y>4k?2Cc<@rA@@sql7b7K9+{oFHOkJ^I)L!@T1&A$d(X?{UT#F?n-RhaQij1oWUv_8X#JTgYp$0>dFq z(N799izjw=oiQPcF`Fbl&vw)e50{!%8Rclm2n^+yHsb#|3@*Xdt;RbzqPy_0S7tne=k4TZ2n`mf zl;jOimd32R3V)2faw`lS`~o)ulUNd8y4pXd^Z1J)_W&rYfi79-lJ%K;%CC)$ab@n- z*Cv#GcIP`cHR`V824diL#r=ff6XV>On`x~pcF)|L3{!vyKiB%J)jyD&>-Y!m*geRf zz=aViS9c}?qF`FP@7goQleyPTOQ5B{arsVk)9$1HwmWb=^qY-bIT5yw_qKBR1WUz5 zTAMIIxMW`ZB*?@6A^8mJ1K_ytSY>ppqafQ{{)4pB&e$G*-q7^YncEA_>qK0+YcBW; zZeDiR4Erk{p4?ZprEbtHL?*mx5`0@O1sUPtC081d{A zfZ!~FK(Ro!FL?nG@3em{xumib6y>Y?~NTME(0_EB+l8)KoGf5F#`@g_>W=I zWPJ%54_psTQsdkKW)*ua0qHU}{6L6{it6C>?eS?t(_yUUESZAhpL}te;-CK(#V55_ zycos*db;8-uy}HN#S2kE2vDaC28uS?^7poFJ*2*ut8iBI+5gwKBKeKbhwC z$0viMCnrw5J9s;4K*1g?cp>{^pzJ10K30&%3g%iB5DWb3Bt%7L`pZ_;x_@}G{_;;k6-;aa&_waK(O!8i>BeUvpy+<|yaF?(#5jeEr9 zoAU*Wg~)Wd2MCHec>tbzv(}Iv7o?5M+sCRbyaN3rQ>`=U9G8l%ToABR!(tjVy5bmgw6tM(A8oznJdP#p70M6$ z)#CCQp{w}tDM7`v8LI_Y^9hDjC+QnytELBT=&JNn5S8*4eovPFV)?5?fd#U9RHMlH zJp6G7z$rtw62o~!cZ1ZWE`H{kRA{b5Ych88OCaGNzj5KV42C8g{T}gTW(C)RZ-to) zv>^2WiFqyt?ngbi3(@8O6k>e#mskm)pD^x~rVj8RO`Y+;V1>5TOsv?-t~wlNNU<>X zmzjRHN`Er?kyeugq2Sq=XB_Qn+IuC@8O-hr$GP2`>&5#M;(kYaFX&b;lU7Y{6M*dWcz|ZjtnPL zIi6uQW@6cm9q?+TOaFs4crz=IvQmpG$dO=0Rt5Ru5o0|4W0tT4dj-~s3jr22zDCV8 z;@Nc783JYeQQ)y^|Avq;D)QM8V70p)vOWB{`sNvtWYYVRX1fVRaL z@(%f(s?P;^*S~|e!J>IpO4Y(Xun`VE!6A_d0FZmb$3^SKGu-SHaKBn0H9OZ%e{l2? z-YyLJjv8fgK?{X~ja8-$gC)y@O<{?){%GR#+BtnV`vtG)xEd88Jv5yllho91BXt3Q z4BQdRo=J64@JLVhqq8g~?V>gr4U9Eqr%-B}?T{2Wm>$GU3UDX@RTs_o5Z+u+&p7rN ziVR);f4W5dmJAKDTkSMFnYe!kTL^oz@i8|WZhw;tcj~$`VK-W#8i8_Z<{oZ2+?l(j zNO;$QErY9?0@jq2aZ|Xv;>MW4AcLE>J;t1#huh7XdoDvja3igMaqlk9~=@- z^o5(J@5DLc3wSPL>7MB4ErGP-$~`pqhi<>&wy#ER_$6eXL5I~mkSe37r8Oxi43Lqq z$1eXrT-fk{lsGA_*j6y4<>uf|=qBUeYHt;F4q6@SVjFH;kc=%Ok(kUX)IO8?4=wOZ zc1wXei&HHT86rVWCCDXj6XeK=#_A<|cy?HzKB;DGE08&tDDXUmr+_|;EQK&pTY^_Y z3;(F#5*sR<{DQV75~L*$xgZ}HhyF#N@U=B$)_nce5DkHBWkEuG5IAekYU3B1c9?E( zxlBuf!X_l}jSk$s47P&!`0s=Dg81285L4gMUih0{nuNdoO3#9Rzj=W7LQ^U}#}cuB zzXIrvm7b}R6tzbo@A;*d;P1JmnXHm{*RkiPphFP#%zdiO36X7{Q;LI6xFQ9I#F__? zG@JW*Z%31semSfix`fT%|CW;MM~T6~;s9);iCv)K;bT3vnZ$(q801=Run>SjjRv&| z+Z7O--%}muaJC+sXr5|~kwxIUK;ssH2UpMm$M@C1h49N(JRtZ6xDSio)IrQ`1QK;5&o%J<$X$lcgN<3kyy?P~Z+^ zbo1oCJ2zXX_+6fV4UBmC7hDt%7`+cQWA0*7za{fpmF50Tw$-MX;0E7Ql(<@J)s|kz%qR|ZV)~?-g7n1T z+lZthfK^%$R^vtE`W^*lJ%ZW*%wO4H#-OYv7gQ~R%19A}Y_Yk&J_%jcna-yu+`jsm z;Fcay+VWmtNT?r8$MbjP$3p(jg=PS0Fw`50pzS^-am_k>r8;n0HwEnmW(R6%^`d zQeND6p?##TwCj2qVumsS?j|EWYb}SE>qoF!7;)-~y&U5U9>T+wyH#5{lgYR~!d;Vr z8{UfI5`&B3cW(6wekC5WPc9lztUkHKJa{$*SMCV~#c@SJI#5&oYdBtt3zjnG9|t6Ytb zVfqnjt9qAP(6xVjM*R!h06V$;`z#w^AmuvTpBRU20GtojgMr29S^;HT5CrBy_IKBd zPUwY2!{(l2@4@d3N5A`!wYRw7302kN(%db!dr^4r(K%x8aU1p?0*~5zP^7-{yMrec z@L*_?IW!MsVI0B(i1nr7tFtBjdNu#)BCNcn%<=OzcQ0Gy4or)q@PC&8`7YqI%#ItE zf_D47{y);L+BR6izuGoT&)<&yL7^v9)_&{XXX}r=_J7uTzQ{-lC=( z+)FT%@7QN&{PxSdleyLgbI?w>ZnYLCerMIgezf0^LGQsquM{Ds;w!rAd#9MKLa}fJ ztP0(#Whlk(W*NK{twz?bx;E^)YodipmNRF_0uS_8EC2bOb$XVleU##!x|1v{Da5BJ z^ywe8o31b@1Bt!pa zr(74a4stNnKse{qCv9qsX%tK8Ld&DFJakNwN<&Qh29@QuTJsa1VW>zuCeAwjuK_rBaJo+=1(q>cw*X zbshh=^7|bF7s~fNnO}j0rp)<$h^_^}VKC4^^Dhm`{?|D482#Xn8hiPK{l=5KWiBl7 zPiCZ%4xj21t=Z90tVWe}8=7)+~^hyXLlx1y@zC z$e1AgRCQuRqsU?m?N$#HER5U&ci>jAAd4_)THz{mx<}mVh7*_1Ev?i=z0~ry{E>F_aB9g3BSM=ZX;W8lPxF`r}^L*>-KMP z`5S_JphYs-!e*m-6;SSPP-JitKl0%|eO0y6o>@J&fD=>1lcvM9LMe1w^KxjULMfQhX2-X>hFPL`%Qo6$pp$Rp$YkG1rxB3 z?bibZ8E#{3A_?6Bq&Lz|zk6dyDrfsEzd8!*g>B zkf8uxyOz=OFZ02-yJL)^@lgO$DzK`D;f%)6TjqZ}#h-)cTB|H?sthNE=vCIF1I zPgF#A=vx+C6UgZ4&V5H)+8xcg0+VAA)uZ2q`E{XqtcZu)fnncUd0or|?ZsPQnFI{C zQ_w62tN=CRN=GmM;pOT9`;5`|8$km)MFkW_SsU8f^yqaMp4SCF!2?jKVDY`H0f2r( z)cyfbXuiE*Wzi5^DGZ3B*t7!R6xFz~$dA)M#hEMx-9 zl1#JBOohyp*Q^zq3vO}x{C?Qm;WM2NrqcpTy3Z*_8U?J1% z0);qVV7`(<0NxT!i_i)DsN)wj(ZDBi@5WP_09yCUw^bQO@Werw063c|{Jt*xo6*Nf zKjtu0Y~|>{i`vHhXgR54ondfcLzSPmPI^qHqAp5rDZ@qSdrq`b5e6;MczBjcF~N_( zGa?B@t;z5Xdte1x)?Q5ZZQfl@m!&HHWPGxdv5Pd2Z(b~9h~41yUFLniaz|+&y=H98 z>k>^pmJf<`jB&>hAAyP3aW?4359swL#`%uM>VbZw5)d=b&Z;aazu3V@!`(- zgz}tp@5tKFZ2tIuPO^8DE(dMkj&cybDC2zZ#Okp-u{*$~s@`>cKW*yyz9X@&*t*c~ z5eK-Jz%Vui4~$Pzy!x5IpFHKiMQ_3S-ptdtaEkN2kIFE;_rdSfZ$ejkMB>=*#Ig-{?cl}mF|p1MVqL~aMBX7I$8YI!jClZ(qzkj} zIbt$14H}AKk_9y*x^TzAOH`a$`(PUS$hnaInQFIAERsBTLqd zcoq+161!P*H-k9hzHjTGwfbcaH08mt8#?z78}4+nL)Nck#o%V}*jM1c|71oUSfpZs zMHi!iiVyP=@Bj9l|m@!43%QA}P2`5{5uF5FHlRm&ZT-!He zl;9A2$hCc|dZR~h_MYk@9L7{1$sh{JQ0<@O54?nWMFy?L>a9BbRtwgFx+$%tBhh^2 z4#<41Lk4L+G=b8l82KrFAldET$yJz4C$G9JV*=MtHtzNxrp=r>qE#8y$msEZNcC9` zzU6b;KxoA)rJ5$GM%BTs7jx6Agi;-u+%fzvK;1Y8wnDg?FREvL>VmkjoB;{M9Py zqC&b*D8i~h6lgDj!eMf2R{j{V@Cd*T2+p8EID>{QJV+X#Ex#N#TfFr#msWJO7QjmX zeJ4AW-9Eh{=LbdJAC)hNyV6^X+3=gYIGyhO8pk!l9Ho;UyPX1z3@3(8Pz@;6`n@KD zWaFVT4#s$y42BK00n#fT?0A3 zHMXj4jxqCodl(>y!W}u-2@|~|GjXt+6;&a>5*E^dlUfB=Jb8f~+ z;BYz@6&0z<_Z}GbHg`=@%$@XAX?r9%YdI1w|4AOSX+08dUW?^x>07F4lwa|hu2sFr z5%HbuypXq7JiYz?Z-HO4Z(qO-seD1FQKhWmjx(v@Z>RxkPpsAp;@yFX&32T*eBaT| zuGo5<7DbvnkhHYtbuq#7v1b+epyhnJgtnaPEkzGHNe|xNb_PATEZlx;x(8jO-5zKc zpOXtbl|uDI0Gbp#2^A{5TV1<6VUL9 zh=$KX!#I54JDDJjj6IV^{1J^@e=?$h1T=uLx>dUlQ+`>-^Oy@{;k(I4uwbawMKNpW zF*bmTV$`vyIXqzsW>Jn|rPPFrsBp~&cmRt!@?9UDg<2RblOO z_^W`dHd^j5~ z`M+uWW=cjC&Elr|Kqeq}Adnx#WmQmyA0kXuT@Dcn@E(3z;5~u|;62KR176{u#)cO- zw=D`e11ZHqohgV|^ziDuu)__7|tYoIa#SLrg3qSuFiKLdW8L*C%uvJOlR z!T7pK?qP=4uw~=$sS@6j5M;JFn+ejX2If>SZWWb>ZQ%*g3mcO zFKT}y{)JV!7$EXjS#>&}NiVPCq((2f(PTP~Iv%K9MJ-L9rC_!3OFCJU>t$OhZm~Ka1wUJ^&%DrA*Alq zrnBniyMhN)5C_47E?4uALwW?D9PkZtDSfv}E*Po!u+`{ywger3hV;a z9ehLlHXLMv7{;r}Tsd_uu0+z%6DFOQ>w zSRHWAN{eRMVD&NImSs-?qW=e$9Ud7TE6<^Fi6=(?E#AKc7`^AHihzBmDj%CZgyze* z3M%_lmf~6g{Yi88g*|lN=I*>mNhLz4xg}%5_{u}2UF5qrE*raJJCMM#dF0ekfE_`1 zUB|a#He&%;hQACR7Y^kKA5Yiu58bhd*x1||_Dvl9ALq_|2S`A&}U_VoAW@F6 z?CG_OI(q`ww}d+3L-wBRme6_DODZj@pkvuN`rkB@J%O8@$0zbYnkVlD9<=+eLoaaB z)O)8KTkbNTGWm+c0hKUgxQ>Ue4#c0W2l86<`lfij`D9Ih@|3eg}O3NQs?Ru*Itu4C| zAgT40#_~#CMk-LL!iZob#2|sr(LiAwU_=blEM~lNgg@ZBE1c(+jFMU+K?#u%56J6K zo=7nsca~dWmK$uALtv?d)elXAef>F_e_+BuQ@Xz}(Kq(tzXc$x%Ta1&5J|>f1Dhgb z;%_5!4lOc8^sXpO^NpP;*?aJ_0;(_>OLSm?>`$0tH2w4|+)dMSK{`v#K&c$x*vsrv z3Z%j;DV4=~m||>3DSdmMK9F=5NKMJPp77;mAIjbV4dIg`Xo=d!(1WIZr(!G3K2T~a zD}@=KLD2mk(1KCZD*uI-TKX&VI5-g%f#{N>4n$95`~}KbCc>sfAX+!e3!-zJ<%XE$ z(#&#DGAE2&0Yv}xkI{&}8N8>RsW@mv;m&KH+6uHX+#(w_W{cwzx^zoDXd(uj2gDQ^Ek@S0DW!E1cYvD&gV zNCV@K^LlIbCu3b$Jg@=L z5JVg`Nun@D2cP6 zmT*vRF!+Lm-HI@9rSk6tODZB1vs7Ly390dupbw)TBLey#rz}MAg<>gXe~P6!cp?I~ zu_XspVqPZ7x&aSfc|xw_6HQ4v!|BdVMO1E_NH|}AxqR_o_9aO-`t{b=$8?!pjT6n# zhmOHrkfv20^j|H&Dg$+`adL_nHLEnV%cX9=bm2s&MTq03@=mW9J;CG6FTXdg$U9oc zDG)vI)2}hGKR=hKK`i}Gj5i-e;hA*|T@pBNUNG1?W zSkXG0aQjIZOpbwZ+4ogFGR1Ja;J7fMRqgPewHD+=7o6N(uzS^ohLV?=WM|xS>I=wI zCS{`$)_{<-W=eJ)uC-k380tHDO?|FC)EG}E^zG7{zz%w2M-{zUh%pfcc$lY+QP`rE zd6|J~&KU*!9SnKooA?2E3AypiC?Fz`x`p@5M@ZA!J7C-^C^{nWS z=E%JghPT~O{|{V<+LzyFPNzg^#`ln=>-SPZgdhc@bLnD=F#=^wAqW}^K@V52S$07M zA675yq!whcex`tb->zCCzOdx!zOgxWA%)DsJQ4l#Scoacc9b#Y{EeCItZ#}W9XKZv zI2Oj!f^NmJvHtH>_$xQ@R~L=^1}E}oIm&7xe@`~cFEGomRrtTH+Qk2%$D$>N;@_Vh z|H0c7MhJ-#9WIm-f`0|36aP#xUNFlHR#+VD8~f?+&R*740#H2}dj@t{)qEDGcb+c%-8nVAEg`hX| zH_^lO^pmF_u2Iv}aMgx~Yrd2a#4G5W!^IS%vstDtJX}}WWu6kSFj(9r%V06Z*mJ9D zN1&B~((E#-D;OvQ=~1(bDa7we6myPM&4ulbl^qB4VHBpba{uT4du@y|*kCJBCxG$H z-ku59;oxo(dTdPQ>2~m+{qk{D#*ApbH^VWM#xREUFqxN{KYe$r@>9(6t5KXa(=HJOFsx^UIhBe1-O?ApS|CnNIH_H&$if6{# zW%dgqoIH~$#)Bwh^33Xt_DBFM@(6l;Itvr!{75sgct%R2N*msh@>-P9Vb_E)AxQWw zb$V|7BA7%{I+;3loFc{0OaE}?Ou`pEU=pnbM#;OVn&#F+KIeWqXC$3UdFhWha_a-$ z^5OCb%_O$ubt#r@EvK*}`K z+iBssuG|9)laYigaeZ50F~-GU`*6R`j#3RR(n#)2VMatntLgu{$L@!>?;hwU&O@>J zKXPZH@wd#z-2-;Pa~x-+;dk7gB>;!SZKXdBT`FsjJv7P)g7^v>C4NH#CZ+K_ISgI5 z5$=#E4%`!q`(I8j>Z2`v4^)BrVq^2lPi4*NjK8__pk#n+E;Gu6#wbln!YF-E!_hGf z*BB+qLBFA231wAE-7feNW^Qq{?DF8a?(st|++^k+@HRVh4C8i9AVnq{CrNu9j41JsGJ_~k-mEu6lkkal{Yg@-8c-+Q0aBxy?z=@PEL!I>&+;(yT7eg$Zsl7NR zs~|7|T&Jna{9@NylhnH7{^R=jxF5N@A8{ln>4C+&T{M65U%9NW?%dbsy#$Z+jFmil za~KScEUqq;i?rmZv&J=nLLO& zSf&lHVoS&Nj5DnAV{Urg>M#e+{NfAtxjmg77x*wdeda~rgZCj}4%_%qvv}_hvHsO@ zWV+zZIWqU;M2yUx=Ex`%xnZ$+UL79!fPzTHhup;S@JIun0rN?9iloD~i)TT#I?Uh( z6N=&3f+?v59@baMw^2^_^H4(*ejERUEM*?#DdW8dO+wq0-%dg$!_#ub{9J-vr-XbH zuEvV6(y;<=ZrG5qY&n-xxj--+miOT?IJNm%r8*Kij3=p!C3=j^&&h2RxPt{YI}4Pk z@HZE?k$Ds|KV)Vu0%8#=JmTsiu>Aq0A`hd83b2fFy2>1n%-V}8<|+)XZiuwz z;XN-MVRMopMkxK%0~kQvUt$3HLwF;m4)wLi4{2wm?ns~yb+z8WPtTIF~; za8-bognm{oA->Ff7!j3EP&W+mXhWBol?@`^^BgtAp$7VYNqPAsg@$0rIWTz+P{RSE zEmH(=Mz~O0m_Qy})|&7i%LO``E5f5=mXeUyY{80meIv`ZLKfF+OuXc_mh=K#-5y|Jvq3U9Ru*CW7~)t)Uru0ROA%7WXhJP1?_kx`oxZAU&ouMfcSu z)*AN?WKGt}4I%I9%U$4m{e7LL%KozN$tIJV8d>2+pAI*m(Qww+?;dp0^ z(_gz{qlS(Srlgc+yemhf(Qh>Q(g$wbFZIBeExxgRAL8b%8}W=qBe6D=BoO*4iLZDrBQSevP7XCoUtkl2XNMl#Hg6Y0`w1DAkFm97Z9BBP)xS(}R z97O2tCoG%_0UGV>-n&PO1@cm-Fa z6RvA%f79HWkz8rFuRSPWjT=>oM^*NG|Tv2 z1=s=c-M|`P2kJWK0#7wCbTO4FJ z@G?MTY@Uorr;H!H2)<#QJh=_?R)>DT4LNWT)odVP?%Ihl#_an+JKOUTCB$4H$=jE< zP>eGVwfq7M%LddE;T71%3t$2OpdFTP+;DNLL9zqV1Rsu&7$eaCie8h5OG9BtLpY6{ zmMJYT{2YA~=&S|90^&J7w{NY}yav-MI8jA9GK>rLHU)tC_s-M1yotI#8mIfSfM{gl z-EX;#+A84lP@eYKw!ECz$l3}MLxYgADA}<@pvF)ST~1n|&2qM|g^;$}XW6+D@i1%^ zalY=-2Q*4o=KKtgcgM{=hx`7gGYkX_>ISN+*z)BITQdTMAK3%8w}v?J<9Q?+KO6c9eu@M?@RkT$pKWi6 z*iVU{BH-s`hv~UD^z=V^8 zTxM$ozSatX3V&1`Mz6slfWv;oFi3Pewf3C)anMhAuc`B@c%|>${g9)cB1Lqj=cd%Y@iWfi6{V6Vz9yym3 ze=U*>jK|z$Bwao`yKWs$RmFscVg0N)m3M^}Gq)G-o*uFJ1<_Bf!<>r=Y0NuoEq#_H zI~FM3YF8Izh-xgDf7pAiIz-FP=3o-!ZIK4CbnaLW62TEOXm}8+<;?=zOXlCq^D@4s zE(>qudTWP^19LzAo{Bgsm$thzUqk$uE-LP8EsoVzeVMO4R6ibxX)Ze1`kKzyd=J9i z$hR%)it5t%KB0$Eb?8B4fcZpRYLQ_EGHfeI>2on>?QRrG*Y3NDK1!s8@FrJUPH^9~ z89V=NXbG3A2l88BY|xgbNCn;dWQ8z08bZAb0yp3e`l9ZAM7Y2W*suufg#7X4yi43H z6WJ-yh}kI#l<3ZU)1A9z{)XV+MB9V?*`9gV=>Z+RIgzgUYLU9FAimEmsU-}ZAHiqn z`s4(#j~=-46l5LEcY_q_*E=it5|B+8@4?B8gmp&h1U#>o4 z5%++d5b0CWAc9fr^@;JfHQc9L14)Z(I%=&oHe3yQHGdf&xnL}83lHBM4X)h%b2bK- zD~Kt-?U@IhD@4qlO^9c(D}B)w?w^B0F*ovkbwGWAiTY1i=3+Q$MdKWVL~P+;yAYBm zvjO$zzCEWd)D5+v*5G0A4^avnFb1J3NRnO}z43$O3B`Ulyc(UIA5ZAvk00UH2;vW@ zXuZNuUu0cJYBw5@uHLpY2b63WKT-)K+C6&imW4Mk@Ti0EVUaRvq#uH5zU$6>dpvZQ zh?7UL&m#OfreVNp}%fQ zpT8Kx!zHyI+7=Q=?(TVD1o3^c1TDLR4JMED?>4#v^n$=OK)1UeC>>;8$FUtM7({$rlOa-0 z#qDhM`Xl=BlaLY?4kuP&$;Ar=OP zpRMP9HXr-5_;Yw4O>X@{<^yf<-(uv0P~EU4EH;L@u;Rbxan?rJSIWqQu`l5!X)xuB zEPd@O*WJ8w^(AWyc#S}Pb3ba=P3PE|pOPgL9PD(`vG=LKd6AZJ1%d8}-gtuF%6jN6 zoAEQ?kGcHzt)c#b;XMK`^27M59bllE`!ziT|iz0BOtKs zHJ-sOK$M2kmAvHP%8xy~?61c3#$YbQZOYAMm=a$u8iM)Jyy$}3He@Q8MOm)mwhXn; z0Qqof!SF!u!5)ji1%{z)MQ!a9l>W=qmSCGeT^UM2{70|+W0gh*%DqQb801}l?|LouO4{(4eERo%itv`^)}R+fMt2(A?#ZJW*E zdPd1sHpb+uc+%@ef8Ei-4#d+*Cy{7NEBN$hf)Z z8p{yRP#=;ISQMZmrTSM6lX?&1Y*^>GhbFT2a~%b$vV`u5D%8?IyU{X1A{+5-Ed+;- z6xts+&*VThu?BC(u!Pw`tCw#J|10MT{I4!-1^;!F@xt(9_`qJE?SOB>ZgVhz3*!~4 z!!YaGhX1wxX9B;r)ZCv<;TRNi3^3s~W|RZHv_M%Zei~DVF^mlk4snzg)QWAy_|p86 z$1gH|g`5+hLf!@s^e@1iP?T(3{W*Jp=;HhcozfmJBB!LjlFm2^hzv>Jl5$k%iG7!^ z(l-0+iA6xNyGhd<#j4|p{aUe5_cV1m{oAq!+2i)p^MMz+Pn8G_?2B*fl<1)*LrHg- z;8*l(g*jnU4hn8;i-KkRF9ZD!Chow6`3IQEV|camF+WctFayuaoo`%AB%urGfXAs} zWcD;>Pd9qBhJt67(?bupB0Mu8dR1y;qqBBR&Cx-ho%`&6xGxb2si!{kQ;M9p+wCu- z;&87g7Qff^#-P4-$IU%rnk$g?_)*eb{Rcf<^+qzRVi1vUb0eC-%stOOfP$I(^tC^4 ztQ>gBS%;?UxDXikbvDAg<^ycHhyN0pUf^V8rjd{RwD*+H&bcF;NmZMOYP-_dh9EFA z_b|3BbFa_;`A45_zEaB`e*Ga^RRpGwp-U(;v4DP7Oq?7f8RgRf=uqRu)(J%$ERL~0K8Q-OiF1==*) z95QQ-!$CYWZy)~KOA}cjzLy;QgYysER49lrz>@D&(%h-oVz1oJ{yB5EO-l zzmfcbTN1~H6coJ^q>IYJN{G9f$LP7I5XCI>lxW^VU8Sz$ARb3pX(gs%-VyntYlwMto%?tCTRTlyiOiQjVhU%JWiPeQ? zRToQbg{Jb`zgMz$K~~Ax6*(nix9Z~V+Dqt*fA4fjNUARGQGOz>wEH?7xs6%RKcQh8 zlJSrP%hX@h*NPu~Xj(JiFUlBSU8t>RK2)uaI9LdarY~3T*7WrP#Ev#*r{&)>lNuG@ zhmiN~hGdO3WH1-fJdQ6O=@-^EyW;HKj^d)-M}T7_CB)WpN+RR0;6TO}G{ zuTI2jOQ+xy%6?{-jh~>s)UWIG{Q5149&OVh&s~Sc06s4+uSTSWrGt?FN>EK#g!kB0 z3D_1S`^M(Yr%kUb>^FozCe$T+2jT$TJ(eJkIrNDNmlj2!B~_Kie)nD5BB2%1<3~@8CGLA#wJbbo?gq-Y0>)V zz;Nh=6F%(&F5o=tlWj~AiKGaHalq#`@YUCtCy=_Y0guQdIkbA!T#82C8#niSy%BnX zkIr`<0o$hg=fDOu5bR`}Z|nsEJLbpL$)UL-w-`^r?;v!Cn6V)C{(y070;#j5A^WUZ zEvIDbhIGftC7|hQyP=IqA{UK#kbLSoH7V*~kDt zBMbr7*M+0uX-hv{xm~+Lp3no=bz?Aw zGMxQ_=E5#Y83bYT&qerzPOd+Ik^-^f zD84{XVMbnnqm-+q0rD7krI1;AdZ3HID>aB)T&9-dJVynhF7M}x-EEd}Wj4ZLxo+Vo z7emycx$wHC+M>YMBCDGf>ml<^z2!At?hXkk*%Qbc<3b3HGPGgoKwZZTniRMoLR3_@ zz*FhE5G&jbZM8uad{i6z7<-#eJ%Qnf8-_4kzEcrxP@NCSQQFui88hER8!c?(M%9Lm zZowJ+prnoXa6cOL7K9bR1(|^{xa4XvY(gz*WdrST3STT44T2W0Y{#A$0T zi<~xtVa(aNu_|U#p!*{bW)ZTYr|URlxy5*~9|Uc6+oxi3xEL4XzwTI)7h-!DuKKSL z+v5Wux6Rldf45_Mpaf!j{N0Z2@y|I>`(F=%y17$X4-mJ;AQ`bjlZ;JSi^g4n?%j2) zR{G2xasl&r11SCS7<4#6ZHg5t;v|AW4i!+Zl70SYNZ>on+~O94(NH-v5u zer`MA=4xiWnptxXFHV3ec`;(3D5pZhheF)hrrSAPnGF*W%AUqHQFWz$+!K5qo|l9X z*2rU<$>u+K8NYba_chsD>eFDtDTStDQ&{GXJxrd2wFX{qvWQ^~_#O>SY8h}C&SMb{ z4T?Q$6%&mSH70;7i$H+2-)*W2urF3Sg^TE=1o^qe+PoRKD80zM8=ilyD2hrWR+r2l{){MA+7BKUr z7X(5lDRKg!$BRUu=SMD}C-*lBJ=mJ?V@*<4Dezj;e*hlP|2Aq%@8tBZDcCZ_78X&* z<8M#G{$cbTSic477}Pwc*5{74}5ZCk(aM+7wNxM*mRS2{J zQ7!D4mt!;y;iwQx@aWo>mj+lMSm@g)qya9(#h;MQr*G^ysR6>rgk+pG2uwn6UpF?; z&K^i8VvEbCqs6dR5RFWSuMf;2d0oR*W|>vys473a+mvS}4CcYp8zFa}q^|XL){5}) z{z-+p?AbsOi*^5v#d^(+*n=-li5$oB^B zTSKM1FQhOH@`qNr7r1oS=&B93}HL!jh|H0y_=NxK%Z0R_J8E@{|CYN zLoZ;F(0s1|1_mdse~;G|-F8``Txs+aQ|teo;HpXK?y0%EJKQPCx+i;T`dx-h1>Mu! zfoUzC+@pvvRa30%HF?)v6dSly)OAk8-;;njl5DKjh|_u2Z-I!v4VESjs+kQfT=YO{2%~ ziZS5pfAH#{U+gcOq#K+bCfX>@UQ>t}hTBX_vTy+CEKIm$p6<#0WZ|Wlb>%-xjPZs* ztf03-9P+s`k@nmAc~JU6<8&ke2h5Vw@+!ZCr%=nT&;&J{rhW`JMCo)k$Zc47UQ~AP zdo&23&sJ9Z9SS!(E|%3XNBz5K;g()$m503V+gXfeu!6QUYij=S{*WwCm^uP-0h}dp z1f-Az?|)VuKn$2q_{bMa`bIhX&+}-M3ye`HgHCCc8^nMi9+&3PG~)WCaT8b=Zb;E8 zAC(N7#qVQB=~?BYhvNL`Xflgp>LpFZcm%;KFA54RWO#aw2}{LRf(V_scQ^6bPpvm6F3lYPe$o39gM%D zO9!eg?SX9Y(Nmbxa3Rr>t#P)^uUi%rSkwMZN>h* z#!cM`Or=Dy;X$1=8O3F0^wf>!Z6s^V>yVe3`IZR;S~7yNAivgA9sJ>MDi-*g@YIg4 z1WR5BrUgc-RhHr8A-+l~Vs8SPbiP_;JN|%|2xO zi~$T+#?$lY_y>|qp+4kMxEzcXYcCz<+>U}j-AwTc+h@;P2j;=z~#<7 z>0!P(T~KkTZ17yG`$?%3BoGha9NefrE6 zvBkigV?v5DIeP91ZTV6nF!!s)*s1qRac#7AM-#CNh2{Isv)%`E<*vZ+UUH9Xqs4e4 zXC_gVQ1*Y_LZE)1n3xOS30mp0xhjdEYmDq(`jQoT>Y6q=$%rX97<)E(W znT&{~)81?u$uZ7Flo&`;I;daajyH3^68%v6rzRjjdjA1!rRa|jmBK$pRF}78J@KQIc;Z6`2F0I%#=PEsO z7p^wKck8k=_kjP8w{wAyvO4;If{BJp+^9q&f(Atmf(j~aBA|(a?BWK|VvAxm-m%h( zk^m}TAc?XrYvZ+6eJicnT5YYiyxwcWMK0PR;1%($Xl;GgwHCZ_v*!Q(&3T@^gaGQN z{nMJ~+2?uAIdf*_%$b=pXUy`vL1MH5vfCyNt^%a7Oo}{<(<^D?n zMzJ@&OSuwMVfvN&cO$R0r+D_(M()(Rn*0=M1TF(_+ug2r<%DxcjR-n7A~E_^@LQuz z$81Jk)wH$iw1?^5ZZr4o93u4#6)QMBiB9&!ucj5V4js}C(Z)NN7k|5+P~^KqhdZs=_u zO_sT`sR)snlT-cJsX85v2@@dK38q;{f@ePsflmlQrP{vEcUL=O#f1nipOilo!a^4K`g@A1m zb{Q;LRQ_Bi)k>qp1Zl%{8xDwxi{kYb&Nc|ub*Snauw@n215Oijp7 zg~g|JA~1KffTa5#AZPY_PypV&+$WJ-QGUeGKV96nmPkE*ct1 z)ZlW+4EDcXbvp1@WR^yz5w}m)h=al-MPba5dg+5%6kc#gn!!Y zJQ>`y1veUypeEF8SwMUP1|e?nH*Ou>P#x|hMFg`@em(Y2U?I8#fI-UV$w!Oe(>8~n znIkE%K~dM7;%yznlJL1yMk zrkzMk*>yBU7{X>R5gwT$-Vwvz^c%y6vg^#=*2ul4i1YI~kexw@NWypSg>G|9TBrE| znM3BDx71XLW~I2Z{6;1&XL9&=*J+2k$zdIn!*~42LAvv-A7hi!U5@{JFZDg_TLp$7 z;K@Oeeq1ep=9D3IPzwC@K!pzVUCSC!_N&tHa`)0?}(}k0{)+eUc3~y@yZpYjGqltkCT#{4uzPvUuVHK-@Jwi7rNGd&&Q*|ak z#NQlB@nyc|M}Lqr2>|L1dupglng0&TJgd~E>}!)Krmxd{`ba+H7G-K(XDsw5<&kD z!c{MX5-S~1`gP%$mPYO+T7Hn9I#E)E`5jZp*K;2Ev4|14FZ2>UXS^J=Oo2;S;ni3X zxMn|%Ow8zqtZDB$jomIi@2yb1F`XHT z6G98RMVh|IuRlB*yGW`$;WBo-t2zcf)^nAJ7k?&K>xY|6+W%wX3)VS0kdJiLxS`Fi z_c+%Q&M}E7_%agvBDp8qP5wh%L3Oy(qg87|2`#iRR0lHQ{JW8RamCg7shYG+f)cpS zyF1~=r`aUf&BhPTHx-S8y_(qb5qahv+Qb*&^8JyCi?j4!^ds3Re-GFLrr14n)0Hqq zfZ5~+rq=j#Q7Cwfex#^oz?~Ki_kSsh3$!+tVF)4whq>tpH8C1{H+jF+vSz08T}e@G zZ%y9JBjXG{(UWAOzR{j17k_hYPw7XiyeW1?KU(cgskH>$A zB3Z)o6&f<(nJYD`B`g{Z2sT#8<-7YlH%{$gmfRehk(-b`>VYViF3-*P04TjPjxl$86+otmg{Qjuzn*cD*hcL$7rRg`Pu=(a+Ay%EiaCe z@WsvvH6O>Fg#EsxciuPXWQYhoX5R3qL#|noqnPkPCPkqeNm5 zXOy@qKm6pOkz4xd|CV9$qwwmj6eS9rx5u49V^>A`W0#(R@1A(QmNht_UsJq&;&e8) zYAe?ZMyce3uoHecd0G7^mekDfWvk6woVcs;kuTf*2>A157p8H513ewR#A%2AUgVDz zXA`MX0;u#EI?>SY)`XwV#MywjMZ?0+1#vc{X1hvU^CSxI1aUId^ed1lij`J*Ue5cmVRTRUvY3>U;O0#bqZ-|M8QSywQoCcfpAi z*;~;kqtiu7=O31Ho{@}fo5Wa6 z=nvy}vS#Kwn~uEtw503A!vZ)0L?-#@j2T< zO*2$IT*C?~AyF)M$9o(bWrM}@Y6W>gh?1Hrm&<_(tPbC+xA@-Apiv%M*Y=h8pJzZeoaU1^M z3A95a1a58Li2P#*!UcNgC!4|t9wyd@tzq%WR8rqh3)KaYL>LrooOv}}CrqKbjGeAi zu3^Jbc;P#AIa)=RdseZxqv2Jx&XT;Mkt8DRG-&Jc3UAfV43wb1{{ASI=J_~vPrAPq zfYYrcoxIY4!wi9cBn_PAS9dk;5?`I2nbJp9+0`vba z{KFO>buzreB&qlVcn4Y{@th1bEF%xJOZd#He4@{|^{3}~=TFJqQJ(gP zROCRDx~EgewExiYuWWZXU=vwC%cT_?^^omW3g_E_@E6 zd(1tjAL-2WWCKz_TPeEZ(mR;b*A8Ta^dPmu!gtEqrQJ1vAqaF3nah{f(C^%Is#IF! z-T(IhtZO<0D-EaoQ;*WFTOt^t^W#WyY2*Dj{g&&Bf6A^hz3n;c&HnX4yFTk5HMpRk zrn;r>^hN~90{^%}_ukfp^?g%&!OTNU_j^=7aXhFR{qu{8j-Mk}o0dU8S2&WGZue>+ zya_=>Q2hJQbCW($@ih5DEjq<<_6g(8z6=AYnsez6Rhb?`Bg5GG;6_%xJ&}8ebrpD;PWCx>q$2-{&*P%#8J}{bf8;A9UY`@(`xAHc{y_Ks zpibYTm!K*yS4*)4udLUVjcgb$#uiw;je3O2Y~W*}%seTK3&{#39F;vnOWTRRSpY1* zA7QZmfy?%=rVU^%D28rYVl}&5sqz(T#a}(gej!cIakIj^1;G%0Ue&~LU+S5e+FaMG ze1dJ@bU;KCGm87P;4k)xRBfJl&`x6~Yq@Mc%(sTzPpx3Roqxm*8KBxpjXaeUIVE_rL{cVA{hrUHUYwMVM9%shOjkZCmu zw@q7$b$lS)Tr3E;L@{}+Jn9_L?9jn6tM8=QTAS!eY&4-8YKxxCS}uS)fUXD71t*oxGg=dq9$}k(22nonFq}GCTlL~h z0^*1a(yz|Min&%TKYJxJd1%ga#QoIve^H(bhpCsfH!~Mg~yYRs*#IPtw_zMF||FANA3bhAjAc{CNvK`1y!-hd1q?5VYojlX2_J*BYuK*( zZ04am#l+yx@kzDnOe9+0%EC#c|7X#dD=qV@W9uK+CI%9u>bfN`%lvMxHx>>CzMC(! z^;}@I)>eJE3php&{^v*z7CkOn^+9OP#lTV9pRw;_ku49oa76oJFxYq#b{jb~gA20| zT0Y|o_k$dj6SZJFUc;~49?y`<>;lIW1saYr5KDN|Dyq4W=3_l;woD@rS6r9SO>=3c z@%U~HGgwia(X+j#vAtV;Na0SZ$gNiVFq}9WJ2l$xOO9N;Z<4gPKxoS^LMTw31Y-pS zv?z<;(g7&{D>al27`?>EUHEQc_(I~V9AuH$jFJ*aUsA^+>viNw7NiMbRI&Z`1HD!)X@NAXcz%vH*qFo3nKr`9qVNiI0I#Mhr7P8p&mQ zJ_>rlcfH+reLDS)_g@UPdj8F2`+78<%x{<|yy&-MfR6R6yAN|bJzn4j?_oTR*THLA zIV*&{bY?jF%LZC-xWxJvBnrQ$U!(err=M&#Xi{@|>)l6Q7}?kB8u}z()$8EJL&^jL z6Wf@(uuUj?l=q6qTKH~(*j1oJVr)Ty8g&t+8oPwhATe+SZ$`2DgbjRuzxk9xKE4&Y z>2~f$&OK)@tYEUv)KH)n_&hG1A-vD!?){`4 zy+75xk9PWA@yRP1$ZfYJe@ahhk>ln_4Eg25WAeO(heA0^h)eeyF&LLt7v-_zq$~T% z0WeR2PUs6R%v&5Tl1h9H;w^%$=3(uxS$8aZRzUiEdnw;bxV&ljxZ}mG9C9+x=i_kt zP-OSSTWmoE!6H|9km%TIb?9KVokKn|tD&Nm*~hQrVpI{6J}k z59eSy7w^i;p@is)KLI}yd|0r*>@%`c&UibT7(;B}3-$Ylu3wGlRS3tzcM8VDdvtA$ zkn!tJI^O#Qi8+B5jg1B6b!twLMYyhfOpvk4uWX4*1OdhyF zR(Ts7(TMbjb+S!XxS=f=jlb&|)FxXX181K1HkE3AIGHA6e;zTB^BWYuB=6TzNZ!#+usO z>rV`WAK@uXZMZp(;qfb4>cb?ztUzF? zU-)4#zdVK%E*xS~cy}(HNMXchvafcD;G`Tt`>mZhDW&~Zcs*Vgx`O4XjHglyqZP>? z{j;MB&HQKAcH*Cu_mli+%!&oG4v3H2?Tgu4kGkfv$qgaT!YR>K5$mKZ)mT2%LTW94 z6cPW*i}KkI>%fhU9>4os&ChRZgN;_uwt3z50c}C?*2SH5#XDt9=evg0>SOeEYjvP>&3NVnhkoa!_`%`bKK`91#jqGscNGO?mIqg|Hs zQvb{x(EM#TlC<&*Am2zpBOK^h*#Z+Xgo?GSk$gmoH3lV@bHfTtu>gb>>?iM?jvoAW zgGNo~KeMk22$zLbuZ8ox1$~^FQ)I9%e#*UmDZFgy2lQT&p^*aK4}Z>&mNsIC8CCjr zM7&F6_U5st7VaKuPVoiYmFQEm=NWlV?Zq!iJ;`9{d*iu!wdc5IOv}RfwvnDFoO(8S zC9WK((T~BTf;fPihJSR7Kl+2MGew+_sL}6!Tl~y~joaKxv=AwT4&thR>{mMPfjVjm zcKo=VJ`V9TV-rBUOZzGTDSWGwR!RIGw`T~T%j|hDCHfSfy+jPKxV5!4^u$%&E@51Z ziI469KaY!_Q9?+`SdjYOE8)D@i(234or72e@3`1Y43@EJobEs0;dKAd6V#-~LaaVS zzf6wi-jMoXj~yX(^VzP64eB*Woo~G_?0c5-3mq`PVbvZQR_`2~#;Pk(xLa;wD|u2CPq6Q59*PT2SPe>I6YV9oM@dUn}h)AWr+H*9cR^g=aULYr=mWXj&VjL zF4P7%Efo|nop*^>a(v&|Q}bB{AMIXr3(Yy9h))t%e=h%W7yEACwBNd0=!s!$-SF4f znzodM<`nXIG*RP4nl=~AWY%uOEZFph&Mm5GT3>cbyg=>s4$XO)2G~gP9&zAZX6}v| z*_tZJ}20^U}(<&*q5ijOGt7T)wm{A8rk%wRxoRt-aU{Hd%E~gzAneD zVPBuMUaOP(dY!7ZQ~7F|{#MS{y-9en<%rOnW9-B8U&H5MfW9X{-_p8zP1AcvoD%O> zUYoe=sAyF(H0KM9IN~Fk{(V$v&fmC?CN5hO+4O%}Zm((j`%#hn=WFv{IE@`XWEtA0 zHgN`}R)^+1rY~_{CeB);JxmUW+P-f_@)yZeoCs0y^s#@=W?J7uVj*t2mgFW&$HKXC zk^CvRUf@PKS@I~vt|h6jb#}YLJG9A`>W+}Sc$Cj<=*R-HZ~ca3u&9pYzs-hJT(cq| z3aG{ACRqI$iq*jw*UC(mE%~MI3({!#x;qT8x zhW++%H`?r(jkY6>N{=>IAT!$Z+q?V29gntq=hyug<(DS!iQ&XqY^341O?4(wc;qUb z(6ZKhV80xxC5dZa5Xy_}staV7*D8ZB*F13G(OUauSPPE_6kWq)rJh0 zjxA|4Y1+~&H0N_71*oC`{j<~Zy|T(zEv)xXcc0)!=I>OP{V3`2ec1PW)YgkZMx4%Plunng9YR4-zYJ4az_VV7P9a9RJ%h$NvM;{O<~6_+P)hyOTTN|Np7`ukyc} zX{AS%8;2r+^rJ#QxN3GuYhydp8+N2G1oh_X4TjzW3wMOxBfjI%yWU4{t3&U1P6xeX z4sqzUXNKMv`=`D{iyv!;V;f}KQ*^^ zMDiuA+3MNXL-Ui8?D+3e+uENzkX!F&-SyJl4Z17hPWB`BN-{J>&yM1mQqx|-51d1~ zJwVToP^r^(SFXEJx>KE$AF6vb@VxDx#;|cp-k4HFMa>VB|JQzQ(xnyzb})CdQ3!V{yD5f;X!C}r2c4s zP2iOSp0e^TGBfY5=KmpU)F$sP8Ln9$$Tnq-hW$G`T7yZ$#FHkUhVx* zY85LON192zGN@A4F`~YWkG&WEPoLmmMsQG%lxEGT8dO?ICEXm%@d z0|hQL!|3cKLNxY!ytH*+I76D-i-I`bt$nq;zQbj`GLgtk>at61?bzD94Rrb4 zv+44yH~L)`!>ekFpReN7*GhdvxOLB}9-K#%IzF4U7~-?ZkAwc4=lyaK?mV(e;j%4! z`e2QVKF{dFqaJdvqDFuJ5pm730EHY5vA}n; zTX-@k5ZBy$7AU+W=A%$`QO8_C3EY(qcjm7tgqR&3J*9mDf z%GyX4hk|UAMH{z!?mL8YzU|~$XX4#_ZKl6^cmJt#*<}tl*2gBWHzHSL<@}1o-iyrs za8L;*(wy6+xmv#DICqG$M|mt!_MonaGF`L$So7^QNk8n$ZZ@vW&_|n_WiCJT&lIFq ze%Q@)ZsfP}MkK$)y<07o&2e2dAS;*|_*fj7C>#6)w`pgAVPN(WA%r;w zSK=qy9qX6`t5qd|uUaF&vbFV3dG=scIB|}4uW#{QWBUefvFrBJEK{j+)nZ|lOKPZw zhpR;BhUGS7?BomrP^=ObDJUB4%Eg^ERIYJxoMHKeJl-% zdhc{|L%h;Lt+nw@trL785Ey6rNCtJa3;+iy9b4ta&`8u|m=UY_$l%bz;P${@(i&=> zFZktiwAkz6d3p2ME%Aot82}MWNO*`vyjGq0-6>TP#q|%>8BrW@usSH zx$x;c+Vq}UFAZ{`FOCN5H? z^}C0k{s#Kp#Tuo#@#&oEd#QiEm^bZ@U$$$b{eBvznrFvy(^z?YL#d^h$j;f6{|4(v zu{SgEftuI*+UIO#z0Y`!Cn27g{9}L0ZVh`~GQ0B3aSh!Xr*}Cy)clDCQM~wqLgkMf zexY54T%-#-gQB0i*{S6(eAP@+!iRcGymM-LQ8-roNPi~L#AHGahCj@$=6^KS4boUQ zc>jJ+sQ+OeN6{quH0w(QL89>Z#A$inXV+-XAc6)h)E!I0?7{46a;(z*RS--9`QY~J z$Ix)`KX}g&lVZbXm=DnY2GB4EP@fDyy|_)IC4G|x-}kfOd#@sZ@2+{kcc#HNg6Y0# z^PUaohMzk6;`$4Zo^-{9PKH%=YdCH8HAUx7s=ut^luKq`)8mI1H=Gb&R`?5QDFo+D z!^UJ zBz_z|iW~3UwL)irG9N{W(u;qf>JfNh4z#OArB>xL?}U|Dm*+kQfz_N3sN+bOL`DMc zCx_pd2Pe|#E4>16PlF2q_Z42HIEHKZi`-CSC68@=U??DGzz|2=X=TaFCXTqrJ~xi| zDYt37r~SJb{`kLlv-sm8l{5b66$k&XPKQ616`sLUhtFfv0QR1203ORLan|r7RFVwb zJcj?gyI;?S&-=|2+uD;iWX8O+uTo<9-2A19!t?(xn)l2BLK?20Pj_Q7SXQ|4pd0h- z(Xzsi{M)ACzuI5Ofp9`11g@zpM=`w-XT2-X;bL{n%~MW!D9eR^3Pk zU)h@uGP9KXvHLvl`%W19`Wd}g1{A=7SE-CmQI_17$o-w93hikirBj8HW{^x{t*-$} zqOd>pdKal$WsT9l#;=kpbYYo#sVZ|*g&wb3W#(+3D)hV(OBEWrzL7?nhF=%daGs?L zomOXN%_gr>D3V6l=cWUpU3|!o?E-e9iRvEFs-;sa@vUKrOs#7ge!NwJB0OVpo$SkB zYo=7v(oNn5AW8nzX3k6|r#3APf9uU{Yz2j%yn)=cdcXW%zRc%K|NQNLBM!Htf6a+n z-x<1>@LyfjlP;i2ztziSV^0)caARE_489HHscHEA`volU3BPeBCWe2&jr0xB3;U=^@qhfL{~yqiP!bfyMx0 zxA@O7gX(sxY0q>`iJ+!t)pP?jdG8(oFvf8*@{0fO{L}OP1R6AU-anBexw~8@VCC=E zqgQw&KWI6ht_(ia_*ys7KGW%%eD>R{&)&R<8YND=Cvv`tWqtEh`kPyGzPUK-o2sBW z?+W*g4(z0@nyhb1zf+fI^MZG(`$l=&`KC|SH@BS!JnD{jxW0KRZ~Q0)gFD0(esV&l zgO>$gLceXw;`>zI{3i#UqAtc*HhrR0#Kv~iaE%q7zlT5Q$8%#3y~9|=_uly(B7=PL zvBJ0aP6*%)!=PMhPvNV&$fO9Tw|_t2fxYL}QGIc$r}$}{H6fAmH+~xryvdFC7cHzO z3V*4Ze(u+FkWr}kmd2o_BG1!HT`S-$m_==1tVrw4%s84uyxcvqY& zDg7)yyyxEH{UN1XY`YaxH&`ooPQ~`6;Y2}Wc=dXA+0NMLYR|2~*0I>CRx4?#sKG7X zB8fXTo~f_i|MJ5L@XNVt6|bOOGIugl+Xjjavsa9Kc=ZwnaMTfK~8KYn7k8>7D#={)c4XPDyDif z{J(MLg+z09ACVZf3d(k!c1Gk$pHF%~U*h|w4T^F;*675r(+F5zMLK==uhH7aB{-Gc zKtq<4SY%ObBlN+qJY+%EZ_@K`oHm*SYedN5xKolZavsL})bS09{Q2%v$iZ~HqzwC8 ziM2wHuaSKk8p&AO5D+8y0HL+fTZj;Am4CL)IW_iYZ5yXX8{o;QVPiVsU$FyM@f`ba z6eksI*=NS?a>=F+7caO(eLq76USZX5?Zl|k<*(W@4e5+#D(DL zi>_1OQe}BmQoq`6V(|!=;7N^anXSd{? z67M~yHc{73Bmpnx@ZyvK=gj#ca^cHzb+1wPm(u-Phz_9pF`*rGHJ*SQ|L zaNK>Ber-k}`{HN$J-6pZC?T^0LAuP`-;mk8Lv2u`n8xfag3!?tJ>(n<5AO%qLbo3#jV(8SO;Hldmv6oSH*!`y^E}F?Y@0 zd(=w0AY^Ej&+%$FW>hca_3s)_IGbEa>{M*n-Gth>9f2fQ)qJZk2#IwKq*LqVj{UZ1 zq98Up(c>fzErGV1yUgqb`Ud5XNSp*|H>bxw=Ua)_wxoG&1ppZ9Q$vqiI2I_ZY(Q3n zn03VN1tSw-s@T$Xs$+e=rh=_Q17=<0^M+1*puq0XZ}XA$-S|5o)N&>d8)xkXBb=%! z^70iNpRzi9`C5WMm4sTKhC?HmL!(-eA>j|X6kNZ(A=iRsoM(oF+=Jqt4vxyDvJ~3F zJV%1enSDB61^lfCf8LSzsvh|cIU(zOc~|vV>nGpG|5EkwbNtfTDX+D*ib(VAm(Iwl z==_W^-?#Ehw zbgGd!|H!X)pq2b$vouEYFP@aETL6V_^MOw4t!+b3 zHI2wy`AfgC)UUL{jQ(xw%TL()@?)K-r{Ac3FOk#!S(*07{C{abyjxEDYyXt#{{!Es z|7>3GZ2f+)kAIf;^1LZCU8DXo{zaKa&q_D?dt25wl#|SiCH?0de!olo)zUKYWAG=S z?^wV7!C_(~zsfVHM)esVl30!f|I}K39u;a)E>*&X$q|Wt zwYYvUXLC}3`97MTk8*Hy{bOlAv@7twl&~tkJA?1|f;v|6h-$l#;HQ4y(DnUY1tapi zpay{JUz^&d38ZS#%wmoWG!-v-KYF?mquH{FV~JN2_Yt~jxiH@Z`Pk}wi|#?nSnU!D zlSyY*8T3*FFFwnWv+a45P` zL@M+)t`w1cwu=W`W)uQUBa@3Fp@GSPe?C&RBGmLaNI!XLL6IX@(2w~5Xe7<;OnK<~ zS$uC@l7779sH{%il+~%eey4u=;aBVw``mj|b5^Hz$G`e@dS$&?1$U@7M;Y@4z4_Jl zz0v&5_RpE+p{Cm?qaGDme?kF~SU8u!@Pej#4UWpA^_H*PcP285gC>*30B`2u;Ksu7)JQd=*MnFQ&CM;U=-Bqbf-|$ zQoey1wL>AVrgCdTchdjl8>UmgR6qh+M&Xj53(Y{a)~iZ>MGU_-?b0mlb~FC*o_Qe` zzk}5E3dJP2Sqk|x`@z*&rM z*&TGYGIY~tK8KH&{6U7CgjvT*bu`{hyjv&FbV#w1FB<=8?2QPwFXjZ&Dc^=coJS!s zW5BBncFB9%$E47}JZOtpp+ zQ^@b2HRqMkbw)R2%^=g3J_@s)9C}~HPTv(D-{?+2&Pzy3r)OVvgDiR>&h_6}C54z?|(#i`9P*1Im+I?rE1{~Nz;{q#+4Sbtl` zf_(-)@57%EA(5q@JN>TSh)~xUG(8 z<9Dhv=+*5pTnWr7NXHha6+|8YXD`-&&ww6yh z%OFL+`4NEHljE0;=sD=f>s!BqgCwhb-QC*yTo0xuedz)^!kHBx9q|`yb{`@4NqbaLVLJ?A%~Gm z?>TNU9)XOj6#FK-MxoqSk_e!tBx)}T`f0q$^j3JRZ=){3!hQ zKRDL4@&!dJw>4;sa#vo^pEuMWecH5SkORhBbDIxH>ftOX-1zvN8y^%*%ZPY!?4P(4 z~~S@y;Y*f~BOXuE?dXNUIh3b-KvhpvZM9an2P8$UF_dRdW^(?#}Hkzxqdl^fz?T$y|HalAC) z$~;aDO~XU!GLP`vI`aTG-dq(SzNe4kJ0@6AWp$AslW_!Pu zJA;_N)zn_N_ZFaB3i-Z!uSG4{Aos4Z10;Yv^@ogmkDT;0{U3Gyl2i^tw?4*IvY+t1KcUU;4O2y*HE zla2H2p2fP`z&KvpOR#Bv;W~BX5LL7f{3b* z>xn%X@-01g6Lmc~gm*X0Q9zR(E~|3lf0vMy zBk13LS^fL2o`0qOy|QHI{bR)Mtbar5=--BCJL%uGH{}f6Z`Qx--_P{#+o=rwrt0}u z>ffh}ciz82JMZ6_=h45C&id!hpV%q=rv9iC-o!AOda4aW7S6tliU0sQlNT0R<^7`` zq+v?-X4?18VyVD3QWgI0nmQ(_fVrHZl=-Fb!~{`APVQvP0B^IM#t?w$On{4gK6Cul z=*G`P$+$YnxH>_GBBWghXtQB?2da@GirV%a8#3q^D7?}!!tA)#y4r6W3~<(ar7r`% z?R8l0-OhRg!{DQ<>3|X$*<-v5riGyYE}7`GkPOsnk@4pZ-5z)uN9DK{q{<*Fay%pd;@c3(dH z*5#MsC@XAgTr6(Yui1;JfO|exNOxm$o`9Z+v-1 z{=6_R`B%i9g+BoIbs8(kiKsN$db$mwO4QME+4##@PYpf&e%@8HG{3*zP^P`0U0)|d zIoMw&>^JO}oJEzYr$XPY3yc76dvdv zeOr${9uuH+F4cOw-Qc5@h%OZ71)bnlxOVt`i_YZApbq#I4jo?z$9bv4x5uxr>hKGu zQ^dL9twqvTg2DQUKHlojvtx_bg!^udCPr^on&GBJo5L+{M?)hC+GOwe<_*!%W8FC3 zb`iPS>YoPxZ`YF^T1*H2#$14tR2*0{`<*S&f$Sjp$cKzz1Sj2MhNfeqb&9|6)}gh! z8PU-4VM{hz@K4CI){*J5ew%#08r)>rzRi}JQlk_8aKo{lP^8m0+X!5)5x9>Vfoo^K zD=_hY61efM|$X0)fjQusf8({Q~wea}D-sr$Wzz(|~*54uDSnu!DN&;sX?a zkOiNZyS&+%2;Kqo59^E&As%|aMUG|KcQeM?W*;S~-)D8)zqS5%UjN{A!tXQ0=Va=y z?WF#zcU6Dr`ae1TV?-)Kf$?4G-FK)QK!~CChCKvlS*oWS50#*5W&`p{c*zaD<^jQj}$kMDZuR!RgAVr6n>2q+Ftmfha>3C-Fe5(d+TxmkJb4 z^cipgaTIcfN!!4zt=G4LPObYvsifLWKXSNCH2Jtp9^xqF#@CCke;sKQFRp!WULGO0 zoN23#;)%lH{HF2mK6NJfQA=eQ>3RI*67Q25Y6i|9l98{=w7uCL7B4>NiMfDRTFxbf z4zX=t?IbVW^0+(GATuj9W*+auXtf{4s>l%`)%O+1WT#kIIrScP@t<{tj{TAC!;=C>^nL z{5^8gF7W4e31{OlwbpR>A(zxJa5&%xhQnd&!QnvUTY$f&1%|(7E;KKciS<2(Mx$Fauu0aF4r z?{y^@o-~O+H@NT0n+(nUPXW!Jj@k~*PJiBZ-S)WtRR-54-})mz2MM82elj zc(FgW32Z>ja+Mk(r93d6mA>T8oF>e^G7}~B3x9p1)B3M+_20eg`YXRt{nK3iLw8;O z8?&-ev_1Tx>-)(*ZTfJsa5Pakny4^mtq5lMsp{|_9i%h^GlW8g{(z#fLJ>>4L>fh~ zT27pDfV*G4KC;j|DDqSg+*+HzJf*|0Q~<||gurz9$63j1D77Lrv)3bAP8?~D>=mj0 zzGP?3_sR26L^*qX*&;q@4~Iq|->nV;F{#E)*Q)}hj-C9Yiqi2rkxgw<=*UTL7G0o$ zbU_1YQ~M*C+ZIU~ltR8}%3+Py9Fr&6GyD&)#qy%@!UbH|P>~q^$t86PxhwcT#!WXn zkHeR5#8dqYL>XR~+lC)u4Ow~(r6C}HLZxtI*vrR1S|(RLyI%{>r)q}S1-gI^a2oA5 z$Z#yRz0Q1eZu+8^HaSgXa+-|ciDAw9_=%QS3SwlJIY!xfH05q_vqpQB%y@&-;PjUS#CUzURAWjp-3ofeD)b;$Euup-UCvyMv@`Vg` zNk+O>LzeJjf0!kTQOs#nnhfIx+sN*iA_X+;bV`X=b&oV8)Flx{PT&1tD{b(OcO$<7 z_M2Y86Xhbhs~yq2c%~8kt!jw=laoaB!QXa7-|piy(Y>3l$)>W#Px9`JtnG}#yQc3o z+F%Z3zGppt_1C8F)X5$7V<}bSIc(@Ld*~&XO}eAiM$s108-@wLJ*51z(jj<#K^c^mbAdpb`D=N>thG}%j|>kt-i!@ z5MvB2ck}Zz(rYD*yqh^#!C-2-dSISZ;xwR%nhI~q89M+>U2eSEA69)<+ps#2ix%06 zzkhz6hSiT=*W$bEKg}Q6l0#s%I||<`;KB z+cz&Sga8BSr<`O_N~kT{wdVI!YDP866_Ssohos>Mp@SME6*W>lwL9um1&E@e6v&=5)QXO}|BD7JYHlSA8$U62aUv6Y(Pqz-#Yx|@FS(E9m<;&9? z#E_+547l=Z$rsfhy8b>lKTMQ;R44n$1_zc0@pI-+E(tyTZr)WKZ+=oy+Tu_S7u&qM zYC~=4v3yw^vNli`-$h;I&6LAyf{Cqk#0zF_jO0S}aH6#NY%@1*U&VZ2=Yh2;66{zC zFr@bk&)x!6t7jF;CtocrLNgdkj#T*PS+{ir3{OuTg}2L3vnH^cv=XN&RcM~>4;%Nr zMY*z#uEe|4G|KeaV4`$iNiTeEhuZK;bK!Me88K&983R7#v$smMth2QOHjlGtXrqwD zM(<`$GSEl3J^=Hms+k!?zdwdR`bgnZhl$LVgvKbgP>gd+vn@b z{Gw~t{Nje6+ux{tv~BtfiY&LQOZ45z`~ojAL4Wj*%;X}WV0*7^a?!6~aw*+!xiB=O zjEg3h((jG01C${XS88%u6KZ*$kC|M2HsHM=XJ6-BgTW8=O$5K)T;V1fe_k1H^NKtS znpes+f}j~8KAh3XLuK=8vukFbu=>Z*V|Q>#PXVIGbj1rd@-#gY7>3-z5B^L7AI`IH zB;M!qE$0RZ&6&wWlN~j=IZ;dmzgs+BhXP6#F9;=79mcmtV_3wj2Dzcrx0a*#`nP5L z1G6{tdG#y;Y=oWa)Si66-soU|3*q~rIX~}0jqFRBbE|IXRCTQa1i67RUk~@UZ48y+ z{%|`ce1wRQO?Jj^xG(X;y;QhSDlW1Bd&{cLcDt(PK zU0s$}e>rE)MQrjK|BMLk{UBx3uJ2D}2U=wkEFCHCqD53Eo|;7IXJ@G|oqU+oK?6aH zntWRp(+C|6wT$IWtENS8COp)cdq{h2D_dD)i^krTe{iTxi$WV%oNSX4?X}RJ^S@|* ze1@9R82O+8j68pw38nj5lQF%E7dAg{LZw9)Nd%uY9oy}YH3P0RQQ3htT`hXUC~u@w zJFLY@2UYzyYVp2Bke0WRNTXKo^24*{-yILEP9&xG=npy$RRXG z*Iz`SAt4a4hjvfktLP&QD6shuYX-GsO*z42 zfR^^k@)^;e46+gZsM^QO9nz$wg{loUfeVsq5|^t}VXC;4cUk3&4yXJdT=~&K`IC22 z{&3!fT4sWcGz5i-Z!)570!{onam8%G6*NG!jZhxIg%|LgDE+-N{*s$6G^g^ zqwNFBfK-P#imr2xgwg@enXWgGiyTFzmydz(6GLV!F-H+Gs)`H6C+G_~DN0OkauwS^ z^|ho)NC<7cFxs+8QMyFZgl{XwRn_5y-QiGh;wV0<#9MT`a~2tAP-XVw1gvTc4ZbLV zX>ASqc!DO46t1ZQCTclqK3-6LoF0Z&lngbs=h3FC8H?I z@^iPlrhl)$=F2x$V;T-3vNciq`PM0nGR%1F0Pq68vp&a9|u9*-lKJakUflQGvkZ=td9R-wMppU z^lx$&|I10#QO$D6C@NcR(;DJxDdyFY7A+Yj*JH6;#jmWeqmOqXoe{# z;?A`5ZA^-3nbu9h^1jKG5u#aHS~A_(uA=oBjK4hdsC&PhO{4fFAUJDxZtOV$kY;&m z&xpvKRqj1?K$c((OV-i8mDmo5BCp4J0gWy&j^8zZpS@eo{)++Uegpo#)zQCB^oJt+ z$)f*Q`pl9em@WfBPR(|NBuGu`qRZ2>V2*#Ri;-CSWEB(G(LYACJF}p_?o)c`6XqT} zjElL)E*@nAXX+ob-DCBZ)4EJ!!iX`*s3S$DLXx6P^c^Jp!U(TNb;zrFqwRY3c{PLW zFUBe+9VIxK7OPc>brCl_Dr|Sl_oUk3C|a=ESml$rt#Ftyhm{?Z;#$?)Ow&%u^ILZE zug=N8LnQwWHTk!{V~K2#VF{`+4KV;)EMDYoIVWI=)3z6ayXKFrujR@=YWv#q?@`Ae zj7_Nk@Wxlm~1!w>lrOqz> z!AK^g#E@&Bna2zye^QA%<*>hwaom|qsngdi$leDM{JwDnzE#+n+ zIQwp!-#*&l*J$72a63Q^Mq_s$oYuwO+50(O+P({c%H=(Aw$DN8Wl6Fki;Z^8KWD$1 z!#^*c^|km%_Wden-~Yqe_wsbwp(wg0IH-YZnwxy@2_Bc__Sv)ku}_?YVZYNWR!E}? zo=6%wbKLx^H?7Y2S5+Y3H&;B(a!>r;Snf$KX6J7@$yl!FDc{c5La$Y9c6Oq4ns4XZ z&tOe45u7*gQshA^7V>-+oSfrdeNrP3|0)!6{#8q13_FBnJg=fLE$FGkgV(vGt)O>u zbTsNcKGwNh)rfsOUk~H{`5ML$_w;MDXY-sFBJL22qgD9McC-fW2~PB|0>+hruk}Ga z3d%5IfzWpevp)#tsUut=bkn^y3^idp87T!&D;CvxtTI-UpD?;bQq?A0e3pn%@3={t z#@l8cAQ8tD({p#-3<~Ejm2Fsu%Qn@EJWg7@`xdp^Lyf8N?lan{mIS6no|)|`(L9|K zug*qZM5|sTTVmidUB2PGJnz2p&t#voAVZUWJ-!DrQG6I>lD(x{(KvEsNU4O5ybWfy z>T|_V(Vnwh6UCp7z~yjtx{2HO4c6y|(hdTEHI9yrETo8VR&BKsoC%S|l!26(?EJBB zYJ4G}Y=f4#%~)s4+sfrnm>%+9z- zX8?W$9`ZKqot8Aa;5N-$;tgl*$pkI;j`?o35E4$9{dkdFn``msnt;2OPrVrP63>2o z(SS3*mV8qEq3cf*L+9iWNJ}IHEu(ILulA(vKWFw2%u#sW)Zmf*X9~~mS`cj2ir`AO zBA63ER(k9srtuudMe&EFQ%*3Ar+EPyPdCeO?EK$Y|LD`>@F#&(6q{9kbYBO><`rw( z)S3DYip>BNn^Q`l!9WEo4t%bFPrZIq7?0G5hJ)g4JrrY&jmEpwIDSBr;!Q?}LhZid zd#1?D?S&$9a&HtF;%nEHIHuU{^UiqSC_g%>$R?sJ9%#s#l5!Z}E6{&sF8#mr4d`F& z=#M6&2s-o|#%$@;-<`|&)u~Bz#neI2ua#A{G*lT+Yjh3Dwi|v#KO`|Y{;|zhN&Tf* z5XrYBoN1Wp^r8#L>i{pUl+@F#Ocax)@zQRtSu1Ywea;HB(VQ4Q`_$9(o@0}SNyu`! z`#^j;?2o1yR7N)19o%lGB1RNek^Ur88#|sNmhoahPwL!V43zmy)HD0*T0d^9D7m^b z8oBX{ zCgtJ1xDkJ`o=;^9)^Q}o@BF$BadjOU4)QC!c9_-muZL7uS-P(G`EB_X{>qJav#aR` zs_A0CCbshks-9;CP|b5S{jb%u@(%%2zYS`-Up0+VP2j2oU9oJjH~w_C(Cfg(9L{w= zzzULZU`~F6auJ;%fWqAd`a2)PalU9$ih~}PW3F3@1GoRd5*@HDjcfxeI;mdy>$j_a zU)A58xPWx6kN+U3)#`iO>RYS&zFPUIJ1lSG^I&R$e<#6w(7x=cW5KHT?(SN&)U&4C zlN0)n&7KHSf9$MV>1S5|Wz?U`TMw)q?fa+hCR2m9C-{^+@Qi?xi~1Q)YVJ>H|`+jgnvcV4BPX2 z>^OEQ3*+@WUcz3%rfb4^4QDX>c->!+xf z-;B!he(ygkGoa=EeUZWOVmLI09f&gOgKY$3-jw2F8ZDZaRgW^ODlNQ!bGab6dYk;R{@9H@(kT z>ZrEUgMvuxg$Vl%Fc&O-VfGU7#^PxF9z$3(e!n3w3MX>J?6ZcwNNimsMtSdDMeySw|mAf>WJ4F{5xP^pf)xyMDRz4_6@{m4%hK8FNr zN7))7c${20J{liYDMs30M7fS3M5L(2rJOq9eCo>kkDXKN{b=Hhy+xBtE*DN$!Qeo#*nU zkqnQZ$H8sU*gEgxSCo~pbmgg>OA+6@hMYQCD1TH9WTCvx8Z14Z37P1N3%I0F9wjHq z)$lzi{|^nOzF3<9zMX$D)bbZGHX_f)x5K)SApJKSU|wV1VP1Cu=D)uR%s+YC4l&=w zVZPvo@&;KW_T)F&iMBnZnH= z^~_#;)ClOBbHqRjWE8t;rWLPsoPouT5888oilqE}``(`_Dc@+nH8sYW3!}{8s!7wd zF>=egS<%+omiHRS>{iONNK*mAldD6^monvxlvM&=In zm!ON{v$pLk3-q4=;$0F0j>P^rM@D*-XyZ$@%{{QS%cas(ByVM#TbAA(+?xGT*};CH zrV6w9(I2<{Uh+uxKQh0SJ`kAXR&kBXe$|B1GS^Bwv!eznxE{04Se|J}Lu58P4x zx9+6=4(C@0sxaw&O31H?yCEyTCQtX`K@ro!tsjledrm8=#BCAlWKrtgn3WPylW;3F zDF=jl=k*F2PTd+HE$ix<84vcqR{l&tW1|}R7%s=y-#nG^j{kk<`7>|vH?kFVl0UNz zu7`%m7Qv2x2r9^i7n0EPK>{iqB?3 zrG@)^;Xj3}Cj;~ZI;xtelk9{eXtio#!%^Y@V;J6U@m6$|$2ru}TR=H3G%t|8!J%45 zTc;f5+A8FT##Eu%rlFR<+Cb1=)cBC!{xs(7=Wtc=Pq}YkUT|8@M(;AKzrL^dx?JgU z8@k!5c=BFVU>RE$x}zlcfSy>5YBxUQFsh=){Z!+yOpW`w8gazC8ux10!)i>iq_*WG zQmv#$=~ZrBTkn*8PHjnUNHLX$Z$**%uZ=BgnN#0X0SU|8F&r88dJ_DApd4fi5cbbh3xK$37HOL_kKBi2Sh)zqZd!|HFW)}2r}w#6n&?QzSE^f*}Tn| z-^1MX4Ci?1%>Oa3{wywj{t~J5Za(wlgUQ8Bf#hzYd7|*Gr3k3k?*wUDk6#F zSch;p!26Znf5CcU^Et-<7DONhLjp2>%;RC<5H=<>Bu+Em)4B#*(Hk4ihpqK})$-8w z(=ZU-77PY=o#@SoEj{dZ|D16s%A>U_r;t3S_*~kJ_g3iBM4w+A0PQF-mV5;3G%gg0lcAdTE<+AM6DSxN zp=fJ{UeocN4-qL~70JH`oAylqI1A1w*Vri2*Z|4Cz^c^#ueN$8|B%r?Pb_Z@i(M zKzwNiVkckDHu;j9!yISDcJs%9nqT8X4&oBXf614wDh?$l3Q5z$nMp+cNlhbZ|8$fg zqn%b&izMAkPq@YEJCO@qqF`fcsT2c%E@L)d%!gZ1={6h+M{yid0Xw3POfQ8$y@}QK zA^C1Jg&mJFq>$Fs;`Sv~YG2ZEhP-He4;)vg=hYwKE!^L67y~uRfH&q&7qpL4=r17L zq5`y`8i>c;48&D^MslfV-(;&IUV|b1XkHo!Ul*F_X1+>IdA2$mFJ0Vf6)fN)#VROU zPgw@_-rAq2Nikl0BNzNvHt7MKkBDk9cR8eA{Oc$*AivSAZe$lavF&B%y@}h+d$WF; z8P?rpl!`v%-N0u2NGeaTPi$b*RJKsA_BMRa2KI{mAcLFvDqEGP&joJ;L1WotYCMCe zE-R`wGswOBzSa5oPW~V#my6@i$AtV`{WoV^Uw?=3(G9wYA+Iojj+KCZwI4;%TlNrv z!;niCVkg5*v%=t)G|tq-^xo%|L+BO@grA+K??cUf{7C`Cm})rWtREZYMsqP?PKF6b zy^Y@EUw(>o^fgE$R(T-Nmzg{n^5>hZ@E^Hk$i5N$UrSM6nzw4Uh!@|?#gQF_G_d(Z zcBEV3pMQlkKm2A#b6?jPol5IEwB13J-}sXZ&7C8nzXd`lMYU1y3+_;Q`tjAuZwqXS zOGds!5Y4VQhBmE3KVLho)LMSY8)U9EebA)nWd!{0g~6;FVzKW3kg%sg1~e1U|tI zycwi76|i5AzTlZ~ctSFY8~==CoA8DBqk*+LePv<*Q}QgBZ8~{@dQL&>li=mWWbemn zjJJCR*<^z8XIx}!^XYFdEah8@mN_1Sj{e7q!if*SV~cOfkt-`Pr+s~Tvh#2azCF<2 z+~QM-DalB6etHiO1>punER0ks)VEUgP{b&m)~DsnxJI8czats^B6}nDX>!6>;Geo&{UAQNEVgp?JMCaA#%}p!_f1P#9LNie+!EUodir18 z^s}0uFWK9!`dOm4lvx`UUIjkLOxvo+;mJD<_I#@1-&h?}RdHNr_g>E_N3=0kc za{p}_B9r$tSMDufaArUgBa~5p`7YOw4SucfgNw}gM?v?x6ge#Tqdm7x>G0(iKQeUt zhSjt3)B`rucU=ETU# zUs?TlgWu_>vfuP;<0oNPqi|}wO{x5LL8p%fH*>jZC6`#c_c(L1CdHQPc_fCJY|hv_ z^(#^Qq^WAYlzrfV1}G@g@3XCSuE<@l<dC>)`O46o z0X7X-jTS_@Dcql+nvAiEZ@)LIiQ2L!7u#VUX*4RJQ#PhbRJ|6OvrdppHBrn35gW^| zH=W`sE)5(7ptx}Q-Keh^*kc3rWQ(`o=Yfu4vE$UI0ZS5BnqcZs{fv4hrC{a901Z&& z&g)J`9&|vlt`V_GyGH!ypcCZEr-A9tP~P^3e)6(Q+M7JH`-_y+NP3q_M${gpw4{H+(w z#8}9yx~KAYX9&iYd861551|`o+9V;`j2AyaC9DxIqBKlU4)v@WepsXQw582)>5fBM zxTFqNl}s?_pb5phcx$_<1NMaUl%yQibCjcyE5A;0F{Z*hb@u=9_Ac;IR!9GM0tpG1 z@PvD~Nsu5xP=kUdBD#TKc3}fitVYlp6%Z8_Aq!Cu0-HeAbulVh6YhY zawPJHd1HfpBhXvuN2Y}*@8?MSua-Zd_Z0tXvIRom1xt@(`^NH2(lEvbhxtwP7EyQ0 z1bxg1Tl})|7j(CDnY4hOLR6Z_rPkXT16F6s@5|{L#h@a5s+Q|u9%R*@P#foON4 zZPBz=hl{2~Yg%b4l|@C0l63{1tu~bqxAetuN24V4E!PQgWIe?W>aU;P7A!2 z#Jwu-MNYC-G#X)jbp$ZQs5HXx{#jx7iq^k=0eo9m2z+nj&(FcfbZqL`7k(DL-2Y4X zGBkXHe*t`w79#5goJ!a7gN)k*6D?G3;TcY=%_UkvQ8DTZ^tL3$JjGaY}iK(UGn^ zZFu+aM(J1VFSQ|$LZy)b9>>_R`&2wG3veR@s}rAdWfu(5gzi&qc_4xBTse8TE({^b zi#TDI?BUEk#+iFeeKCsMtAU;1er6Jo+k(39)a%%zQSWhF`cV-uVv@`|<${!VqZ zApuN=3c;@Foa?C;`b++$@RAYM4AkZ`TbbV5E!~ULNUzWJdVR*Eo{dQjPQc8Dz5_Wv zi)|NjvKPVK(SF`U;^f(iGN2s79Qyh{_<#Xra~xT4_n&2uX8Yjf(K?qeWz`#?*j-;y zS1>AWr+)8CJp2fhgVFbC<$#PxYQG;+4yX!1Ie5`+DhIM*g&j@$@1PRmC;fM$CA=ZD zakDU78qh@gce7P0i~9Qe;{lwt>1Ko0Yu_RQ0UY0#)W|gP1ys?0jQqTOfwxydqpIIb zK*cP2gOV8G=a3CzTtLlL??SV+oCUh+7~Y}Xu2!TsV;!38{@qcoVUfa`f7WRJ0iRH( z0sq*;`+HEfZWW0u``dOqoh_595GW%2!^QRt(gqy2M|GCy6#l416+n-H6}iV;zKkgD zfc;N9-$JbTN@0YGez(Df)L0k(L8g>ZzD+8nd{P?Tzf0VXAGr4qqzA@bq1X%B-+PY~5Pxqo4(QCHzLYP6H^iYbz$t?HUrng9h@*4_F8LDulO4=6ank?_ zD^sb>3Tu-nk>3d%;+I=Iq9TBZhrpNXYyc8UG>UJ07* zE%`NQc0O+iM^+N(-U1Jinnv0Dt8r8pop>E49I8_-7M0tZ&0_$I%S<}vYdUu1QGgM9 zRWFIbz&0;=;I?&S=-C*tduz6tABg>=vd1(P=--St{TH>aBk1ux+Jbzu#F}jJhyVh* zkzWmI>o|DOhIX1SrIETitcrnnzH=?4gyV~_MFD3-$^lX4#i*+;X!qt zDqdfPkzgCF?hD3!fJcC~#JAINQqi*$_!&KmajY=*19CJUViM~B((?m5Hm5JKA5xr( zXYDcK1EzA8J*Q^zUjsK1hjy023JAaNB7E?i;>%*S%|R-P`pY#XVsjM@?o2M0TrV%N zQ($Gk&f_@pH4xYMOo;oe-2ScOLyToFO2^oj5Sg!rz0?q-&yQ2U%sAjnyxIrKy~;2) zgn%Tof-j}dcOl9FM6N^w?lURJg@A#tjG9T6bwRx*8Cc|eD7P7ZSQIJ>Mvq>GJSd8L zt$ZoPNCE`iUGF)WumBhE4b8-at>OTaiHB5mb)P8O<%bPac+mkt>+yTIE)aS}>sNeh z`d`(I{#L3`(0dNe!BRqlQIlT2#CAst;?z8&PESxR~S95hEt~+Ifa1Y%xQu1ei=fc)9W*sv80rlftm+{@jRR|8xnUd`qfhcjCJ!guI$!=wZgVa0?hL~StfR@>r1RV4g z0$>9KYUH5=kT|D~SCwtk_XHQbf@z+4Sf)Ajeo@O<0emJ1r1oRphxKa=|BS!DmOL;w zO11c^E;O$(HSMYHG5Pm|CMyVCm?ruUnggM6KK3F~ip~2{{?f<^E5Uw%_Jc6@slWHc z5mhE+6{RiWAI`7&a6E-ik*f9zH{E;sceszLd`d_BagW(rN)X!HJ&A!uP?f-GV?M_J$ioWIPWIZ^|Eau!qU1fmIR13O&mBZbARxqS-_e|G}X{D52r7 zq*|94FWdOXbWWK$U-b4O0mi}+UmjN;uf7ufgsKj<`oRqlZ*0>Y6|JQ5EU-wMRKKe= z4MpICzc(5`=AxYr{H$KC^?OWxyj8QI-bbJXfF+YJQ`Nriku&y}$A^!OZvO$qv9#F! zyw=+{mgluWtro`MyCMi}#5WiG#JvR|cX4-STy}Rr1!L{VZahDBUdhMy;0`2`3hqFG zMdwL@PasiPfZtu8+lSWKgGgqv%U*xLzNz6dJC3&u++mO3hy3iahcpKQK3ybmB4s;p zQmc+gd_m>oB1X6h*=HeOeU2Tb^^PY;&z(f=WZgSgPF=m`ymfhYWRb4_%D$HJ;o>WJTI_zn0v^UYyb65jN| z8v;4=#kho$4qp6tL-h>5OSaziGT(`RwAIV#LXdkbp{D9j32>w=aqG^7X z^+@7hx*z|UR>ESCv^*t)^GS?wg5}OERAh^U3NUU>12^-FuP{L?sL*g#14GC*B6BGLL z;5-rUY>-ls^CDPnYPOxH z@VL;ZyLpn(mv|G;{Zdv~%bHauELT0&&@jM>h`vB%_ZK17|FvHh zP6@L}XU#Omj~eAbBaod~xC{jNBN8M;5TNnx5CH%V)wkYriFHA$O;8`wf^F*05{$rO z0}^`m?cJfGpmHSs)07)U1^-i#O(>)VTeuX~vHaVL`Lh9^8rCxAiCrzE&ov^Mne*e9 z+^_Ys_*U;>!&j-7YJ z;{S;`A*43L|G5%O5yJnS;iAp(-xftR|9|_l_+P;DW4^>$Xa5}j|D5u_!TW64Eus@`5#5`#E^bD&+$I$o^kM+SdnGoD@>Y{#_8PG`X()t9< z8Jg?y&rRg{$5|TR$gE9)(`l|5_)o<{w8Noyh44)zriuR%au!mC@^iyECLSM-MM!gK|lD zLQ0LU^17~aSgLFfRoQP<+080rb(NcSm8*1>JEY2Ep(-=1D%Y`!p{o??D!IDKZBpgt zP?eilB?SuhwRnJjk9Y^@6JJl4!F^qi@g z6yZf=(la({CiSI^ImF4E^1QUP#A+$=cUDV}vZa$lImE;#Zbh~fU;mznbXt zVQwru8VtI}vu?oYdoFk z1EH37;p;J?=S)m?IqY8ep>h_cx-RpUrsXV5 zbK!y$E}>8aFsqLt{zd)mO|CuI3!v&?cUNQ9^P_u9`uZ10&qwfGZ!24{unBWreLsmD z#Gj~?>ThuVi?=jAXJNYQhGr0U(GcP^HFt9mhboaZ zlFQLMDNTL%4;cXb3iOV9$KwB~C?;hmz^gbmQ=-<}tM+?NGm=hGBft*>MLDIsuKp)DjQCY0#fF;pRt0mM2q+>@Z(PSX#a%8o96t^~kY=`2 zpjOs=3}pfsd2Fg6wFCSI@3s!G*k1`zh@Bk+uD~}I@L{r2QGjigUf`XH1b3ggW)UpR zU)fj_JBqiQ?3V*}$eU1)tREref<^UY70XUMjryQjpC|ytzzfH%>G%)kL(7uPWj@JV zwjzu`f$xHr;X_QOZ0G?wwq#^kO8Ys0)XKJz$Oyv{csvZkO9H~PCJ2l_S*PQFKcZ`9 z>DSw2F6jVYyU+ZKu#&^_-i*>ff+Hor%|J?opXjiWa-EB1@Y$S@`m|(C*=s0@KoT=q zO(-Hjhk-EigKaUx1S3F{10Ga{98|IcFSx>A9hEah&QfpExu- z3iTl!J|sOLu>%`Hht>Q8fAgG(gk1jn*_kiVojnm60QA@EW%)`)QM@jNftNj33kxi8*l~nkRmAz_$WgWJF;-~)KJ@8v2>aPNv`;BT; zh%=U-U_I}J#1gTK$YW!4}B+$VGr0^Rv|M z84EA&(whl3ya7|w;6FtS&kJZ4{!_x?OC0$=wtO##$(*?3e$;*YI@Xn4aqeA=m%13w z0~uum#*-XKmBHxWYAv$b(D94&N&n=cuCILKoGZ3CLCwwNfaJ|n`a&SD$(&2KZbPGR zUma5^gJCUHV<$?r#gjdVEOpp{=fyyUOwv`w&U5Mw-vkiJ>Fw7D`#iY#T&MS$YJ72e zUnCBlz9qpB{}kl>Xe?ig(goh>KbodXY>_dFc?*W`VbRlp;cYvEv0I`L10|H413pZ2T5I!W@#cW!`GJt&+$1h-q^V?*y zwYCME4>gkCMv7U z=_ADU!tNZ9XD{-sG0kRZCRp4Lwg-RvABR((^uG{00lTM0QGK%X8bx&+wE_!ks+;=b z0MH4L6w>>lL6W`MuB;6G5Ugg>jeEJsI>{YD{YK&^7P7vuPTjs6;{4TctvNmWot`5q zeh{|Bc$@qYbplL^8Q+=+zvh(o+C#`f{UQ*6WD!;i*)BQ&??_l+$2|R23y}h z{Q3HYx;{1F99NR`Mi$^fvWIm10eo|d9XZ<; zOu@Z}@M1eQoxH4I;O0rbgq}FX+l33XjyBJ&?4FJJj`O`sez1G9?VicWPS0e>t?j=i z@58NrQ6N#hEYTNM9h}Wjt08)vo*ilm{zkBf8uw!)Pxx20u=hk(;QDPWzen#MK%tlo ziG|g^IPxS#X<2Ds^-3u80wbz+rU`UrINe7%1sVs>C zAo1LC3vDXF0FRDMp5*Hk@AO^?_}UcY?3i~x=>RnEl%!gt(f}f^iIM z2P`>fqSjo8Pz{^CKsm7j`t*$iv@izHl$HTqAt%p6fC89U)l`)?M6$0r;~>)f6T^EC z|7ZNG-ruH$IEZ_#Fz-DbLibNg%n$jOxs`xW8xd;J5r|ESK_`tf|7oWCFESg0WlS;k8p+$MWxqYg^>sIlV}Q5Lko zyS|E7iI7MtLBvs%E2fg$&`zs!V=aDS|L}L=zFKSL9X7mX$Rh=t1d zAn{V@Fp1(oPpK<$=7A33XSM?A$aR|XrmVD6T*)Z=(xzZAHEuo=U?ApWKiB8JxBVz> zgMPB8n;m3RPlK`zUqKMrFSy-X?;nH}%;~#4=*+1xmS2oDuO_c&a7e|$``X)UYhic? z1J}EomMrNg;k$t=sGp%n#Jwy@dJCoF0+;6b+;O;_GI!}ozFrWjH<*w~Ibbp_&{G47 zYOqORA(_o{YkTM^r*BfEe!k6E_AFOc4A{oJK0}Y&gGl7F!`y0j4BS4!m(YO%#dC-X z%vW!b`D8P-5CL&m5utt?%Zu0sQBaeYdJ5+x=KLhXt`!@knc(bgglFcq%on|Az7ob7H`P0g_RS8VvvFewHFn7 z05#5%-W&}QRCX#W?I_cE7{@s(f_{4u!dx#A^}f$ zqxH8k{knrL)Jy+LMf!A1XcP)`A6t1IK{Vm3TF?O1{pOuXhD8LoR7skn^>%{8xB$dF7&Bm;>W#@_Gcb9Kmz74KoV8Z|yJmj4N#$5JAn6UZUOBR=uiy?h!L zIHRl-Y#_CSzj8j9Uo4-}8H)5Bl45rjHp^*TkZr3h$rx-OicOoa)M!LTH0Kbb3m^>;v1U|kT*`x3)g$M6i?aB|R_uoSuJiMJUvB+}+f{ST-Dbh0}Le(7x_nQ(W2WkJ>kV z)fUpzH}YXdc@O;_EWY6HPLDt`O}dAF*x@c@xc*8#Rr^)|+`ha;-*($%^CA4Ggog#4w5OS4tNQh=PxpmfU= zgGF8NO{84r+LvamMKKT`cSEokmqY*T7-xyrkNhAR zyCqhn1kM~Reh7ZAKV;t&yv#nZ)*gQd$^N+CNE7b3s(%&4#u%`^i($$tTAM}kXuuU% zZqKQmt39x=G6B~mr}~s;p}bDL zU8%u^!6F!82~Zj(4hcpy1@3zZ`bXVd_*Uuy7&fLTl&sBa8={0_v7o;Hsu=<(fBb!8 zHf&-RdC~7LX@Pfyy5RrSROI0Y*Vl}Zh-#K(zX%V!1@m}Db7+Jdfd^aY-&p?V1mWK~ zUrlzYFw|&y#(_`xf}_Fu%Wz(#)sv zxO8mg*U$ht0U{I?4HZdSL`*?X(eQCb+eJILhT1_@LC*gB3d%}5#JTbdhHhc%`3O$YJqo9fp=Q6UYb|p zqr=^Z74mB87Va%=utMI06%t;n1M_C(LEhv$J%`b~*aU!$%Wc<1|+`} z0$>d7>1#gBk?28S@f>t2E5CBlpdhYG3BW3XmV}^3XjHF##Zi;6?yYmSV6h%_YFy=2 zgMtpY6p06lID0|PzYJejDk~IJq+XR#&fE|MxKL(gA3QjMTR5U$n}fj{EFYulzlIOs z%2EIEK%5jpa#zX0X5$E^6Se67cOl$T385aJTdfknDb)ozn~mk)V4zgY;jC?Bi7z4B>A4{pZfE#NueQ@a zgL`m>R0Wc$SiIk^DJaYaFK1Dj19Pr3=Uhp$bLbY8qas-kx)Oacc^yP;;bV?Go`i5! z=UR`))gU~Ys!*Nk8Tq3-%%EvjBkC2pBCMCU-YAyA8=Y}TEh`l2Jd3Bw5CvYs2wz#bNYP{n| z?LX#m<~1O1ct@6nAe1WkQmi*aMk$DH2REoS+g}FugehRdo^yFa;nSc4-tRVF2pn=U}1pV(K6r#CRNnKd2hV zG^-=znhrHU zpC%|b12`5zTL5{WAA?DSE}q>&4~$3f+W?BVo8pb-6=>gBTNq!~cuq-TS>rIosN+lv zuEn57p(bt^*Aj)!%kG7NIV2)~!SYRNU$91)#r;?hI=>$>S~C;)c1#Y2I2 z80F8Q6|+8GOft$>NwYNakK!p0%+5g&Ke_IcHyP#c;w_$TS(1u>^Gka2xg<4^F|!I! z^Gn*{-%?jk3bJAt>cQMMczU?N$lC$`0mw?p1KCwBN(>S>O~BWbB4O~~tuSQqEpHZI7hkH8%4FLbja{9g=T&{nun=H2YX=W29IZ=u7<1?Z^Lb3nYf&|Y#r z!-BbLIF*HsQcN#$cjsb}tK!CL5;j(UkS%o007y)Sj?ffjk9fEML4l_@Ilt1`9gQHq zYv=(W0^$q$`{*N_3ucfCw+5}$Yz#cXiK_Y!aj5As_os*-dQHdO&}#|B2sCjoX zE{M7aVGhtXa#OK^=*T%a&tYlDl$W!(7QKMs;fNz0#0Wz5jhcSc)Gs&S@)k-hs$U&pU9g zkfOTwbVdY0dF6F|YtY9;UtWI<_W-b_9)R*hBGH_o?F%c&%zp&-D8oxj_+V>>X2#_} zhAg!jNnCQVW6T~v&owCT{~xTB82g-(A^0~d*LbuxuRR=r_XKUm+7EDG5cVFn5_Bj2 z`CN_vD@1q?YeXE){O=IqZvTIch$rb91Io7nE92poo=*OR{KsW`5S>}Bwhk^QTab}? z-i2g3PBTje{rwPRP%4IGVTvXR3z!JktukNcxq(jn1BbEXS1G92zSw5A`lZFnR;xF# z)i;Jjw@O}*YBlhe0$)O3XU?X1xMBpN3~b^Qo=a!-g{U4?9Lp$G5y;%|_JGMxzV2!8 zkIVc#pw5JK8#^(|FQ}jE=r>0TAOQn8?e-ab> zO~&#I)mj}KiI^{mo;?2aWK0=;ck@=^Hs~1si#H=%YyPbLTZ@5n^Z}T;Ba1$GerVIE zO2ij7-2wFp`Hk2(GKb{PtaWpf3>$K8hLy%uxyO8Yv6x$S&orAHN42Tv5&ckQuN`M+ z3H)`)UlN8*yXC0!PPBUJMWkI_kBfe*)Rg^=LI0i2lr0V4k8CCyzNMw92x^U6JQ$g5 zOA%sslK_DYO?HJHOdh%0i}kJPWFxI#oH*lqyL%nkKY8(RR9jb#NB5XashMK0E#uO` z|9C!q9e*G)bOY*Jp`tkdlf$8Q!i#hk1b&%^AGVZwM3>9vYxkJ0jI4r{dRGTQTv0OCPkb!g`B6wIHr}1 zb*6(8u~bedNSN%nh*gRpv_VuNtff@Y`>en*zaH(hw?zV^hR| z?(ijaRToH@xJ0{S>9OK`vhV=yU~o3cicl)VwAekp7+;Ggnco}CfCNdoON!XQzxD_t zi11@_!k4Tb{HIAEv4sdvn%MIG6CrxV&cOe3{B-7|#20dy&~0-&gMN?8bhu4iiEbzoJ@p;UEXAQip>F3vANh@mc`{*8!YI-E*X{xppP6afk( z{Qtch!A^ogw28r?zFvQ(NnDnRTYO;OZrr5B!pQ^xNV6u0j8)yb_cSB)4~t#`^!R!~ ze}(*rqQ4N@RQn_7FYFN3oJB`5`9T>x=W7ieETH3{$qHlvvVvA=%0*Gt;~PCSgo{$} z0C9;csq6^uBEGQy^2uC8(1Bk97l?C+n9kM=gs5%bsDP&B9X6@|%euis31WL!0_;&uP#e z>u9X7W~IjeZ#91bNXkF(myP|*B4xo}BE&^j10(7sC^USRNpQhh#2C#*Rd<`lWT7>) zP$G6_fx_m@N+<7Rvj>b8t*P(WE}qh((a^d$*4);#`!vIb{`E`tzZQb`Fyh&O2V)0N zLN8bv1g}V~JE2DmK+QRiAud9~OX%0?;H`Sp_-M_g%3tfbl*u7tIP_t4H%BK}!#j54 z-fC+`Up1`xc>LEy&zZeqC<=ujqF^vGkwQZ}hJJo_>=-KOmb9KhO`H zWeRTGFQ%p;w6O|XhVCN+5J}SA)zj`C9mo9AaL-b|o`%3_xm&r8L`erxB0ZpC*`^*w zZcL6ZnOu-cz6ZUz!+cNc)OqI}`VUWP{~@Dr;6D^m1T(FSbIxb}H7##?XV&n&=>EZ!g&@a0?`?dj$rheoTHdf;#(8Dsaj$twp-@c;W~(>(S0bItnEtfo}`^; zs`E*KcG%zjn!}P6Q(F6w(#u>dInp`E8IX(smNvo5klMBVT;!uk`OARfIK+FJ9`XkD zo4biaq~-9O6ySMhglRv@%IX{0hpVfT(dYH^E+c)4IX7&SsBjYiZpg$#jK=hhI-5{e z^wt6u?ge~=pZXJ`zL)@^k|=m3aKNLXSxyF~!{3D!X^%Rmk)x4WY7H5iMi?HZGRNNU zT&>@uF-W&0==V?x@vK%MexS;bF z!oSBf{|*AE;9oAG^nVKm?Ozyau0Z%KnCbeadjs0Ao+qV=p27xCe5H!&eA4 ztD84mq9{X`mhanzPR?Z~9~cd-%|5yf^5ElAza3qan16l!jk>3kc25x}TE`&P zh{806HHd#2=PR%0{0H7josbJ<1cnn<mV zn!_X9kXU5ihtCEUasEtcw`Aw*;(yZuPsEl;J>mW+ROh^dA+74(5}LKZ z6Xcr0p16(>c<}Fwebzdj&mKz5w1nkNK$9i%B2oO}PQa5O@I<2cNM;0zXME8DijjfE zTM7lXDDzFC89Q`be>20l4$Oy0h!Tg4Z<+_i8ro&FJj?(PqF*iS7AX@omQlJjnK)WQ zNtuYfj#}VHM#)~``lMEm^MWxvwQdIn+ztJ3oea;@V?!baT*7VqD4rUsr5qT^lz~gP zQZ#DAi1OCdFWxpqEhKrW|K->Xe(G=YFNFS*M*T(m|J)5FC5i5a`K}b~^t!8UYQZjS zfF>cf{!TH*EEgbWaB?M@g$mGJeYe%@NKRH@qID1aUi)X}PisNH#ZIFWn++FL+MNi} zwyjSE>?49gIAp0!{IL+5{9W)4z8O_tr+3sYVw8eCxAID7NP&&811q5sso5436cEUZ zfOr1V(CN7InBR>wKj@!K6NDsj%NatCiJ>CHweXk(g%{(zkG{@l=S&+a#G;z)gootvy-uZOY* z2E_e}dr+2_i|V>4Tcpd@HHOL(cWN&SevK!0@UA7r?%?#2^HCo^jEbl5)~t@x6^So| zYGNxmnROpy-B-e;cE33tKT!0(P*F*FqwZkA75L^3-d(al+Mn+lT~=BMm9~7ltCP6( zR1&Paz;v<>z~xj#OBcknGzcvPY`{-xNqg+;bcYcd7!ev{sjhSiiElI;2!E(=ccWBC z6N~YZxt|1cGv{1L&mbRQVd!V_|7Mdd!wdnfxu3snq<`a0bO-upk^Y&af2O;kXvu{f zU&G}~&U817FBy#|*Il~n^)pfaEp8PaGi!Ct*|qi=|`AHNmV2^fLRsg>dSlIO@|w zw0EMSAY*n2M1D=%WR5>(f56{HW`*Ye$H8A1KbA(z{{{G$^zvP?0oT{hAIgDca6|+A zR0Vujtmf;k7X0l2zfmy`Utm6z5k%0U7{I`5hG{+#(>%Wl`ULi)tDW9tr?(Ie*v<2% zQ|y)s%y6kuAwx8jwaz~KwzdAJP%bW_!p?>E;F%PP5Uojp_IiAW8-u2!MMgMFVsW53 zog~4bvDlIk7MKjB25aV~z-36vX|HP%y+i6ZNpKh7t+7pvmlo!TZeg~m4&pmj4FceW zD({;DZE`ZicoJ8RvrPSEpQTEEvlXJ;9tIi9G!&efP@r!eDn4NuL{Aw6H8AADQ%@Xf zM7#jP@GA2sij+;Jg$&9@IQ2AT1*H(wu<9Xl<$f=<@U1BNVgzCsq6kEACj1YUrzJ|Q z4*k&df15;W?mw6LefN?vlx00I<6Xbje5k%S05Px}mGtis!4W4Mo?}j5$|WZ-Vc($K zR=-EWWY{-1yMyye3f;l^u6`mWkW(Kk%5!KS07o7k8~5T7U1&Mb2`66y=fyUA;@_cW zC!*OvXI%jBsST)3WZ57Enz_v(2GZ5FZ$?T0s(^B}q(7b$fcEizZC_l62@U(=1z}*l zxoh{Ce_>dx!+R(6-~ITDt@AxnOmFg{WCQB+1cw5}5oB7d2~4GJb`zQ&;Rm$zdqzJ~huM=SdyX z=hS?o;w)PBn0wU%lLnQ@#&@H9Ip!r8xDbb&yJP>O2v%TvLC(H;6S-S@SZW|2yEQV2 zrNqGpY?gC3r2l5{b7=>y8y0ipox|tmENe>W>P{RuXJi4I5Z&@wvB(_0gzhqJ1ke8mlCOIi-^aa7s(Ggtq09xIdy@?AYJ@h}1JL#zFGqDIt~75*7Ds0*vpq z*XomQpOWI$Gtg`(er052Gp4b;a71;LpQ-s^J;6ZM^EqS@pNVEcpM_Bk%X}`vbk2l5 zOmjG5R@>O2Wdm$INU%-rS-O=>wMD2PJ`~WPNb6?~P~uwXI55Q{LUNw3#*pHpdghQm z=^xR*z3OnjNm?n$c(?sm;Dl6*r4wH7HP1` z#_S#FLEfBmVag3%l#hx%cHo73%Vxp0CNcy>B)4^C3)jj; z^mnoWDXJdrhh5Y2W2VUA`+2gmsKtCo7REOcAk`QgKcb1SU;*vKg zm=65=J3z{T@lI!dWD|r(+Qot}ClZ7o_Jg0J><=7Yg#Xh2B-R%!wp#J)4CzgOmYrdP z)}%FOJ%vX#5ar0h=?Dh3Q%kTLYx^Oft$OiBCyHv&;Vhh>s)^V(ZE*En2KjbSNNBW6)40JXnScXO62)=r}yx$z&0-4zKJ(BquvP z1N=EalhgBwnhjL@hijZcO3`LZk_8_&Tb4z$BzAw3bZ<#CPS4AvIWu5x3pdkEL35wK zgjz;OLk)X%u_=>D^Eyi+w$-0sr_^ZfVxrOgTuE+nS!Kbd$BEn~dBE z2UvHyYUU!SBc(_CVn70{KvIHUrJR#xXjc6&wM7@TbQ$fnF@7KLQs0Ne#_1c^hK^L^7ubUZ-kOm= ztOrPw2@=C4_EUK3v2otjCiEE!Hn)7Iy`%^DubF=VQ?XX9mB0o%sc;;+xXR%xYD*`{ zP)-dPC41fiH_%JHlD+ujbs7tN5FyQeW{#~*XmjVS+$U%=TReT@>uj{~r)!U|I;2FNd{$+)w-8*N_zOzYBSxAIo3p$6TkWMQTOlH3We~?8PHgl=FI1MZsB)9_Ql8 zJ!W@zQnw3b{yLO!dJ@mTdmKCPjp>00>%CeB(%_tqS&YgG^-RJ_C53&7-U&^mKN4y7 z%JtN_KOKO~Xt=NME9fbk(w#=$UfeVwG2+#McKUCX)3Z011>KE3jS8MXFy8pIy|Ik3 z5_n3Qmr&r1tKwO}ibc|mnUYUik=Tz3S&`5osU3$mWB#xf{MIITQus~F>yYBfjTmzu z##+W|yG2N=iFG8bNtUHs*Pv@KlJ2|gEeWkNDkf68qEq<2WpTWQF~9kR6z;e1Sk+w! zuG4p*;jaYOVTN3T2rBNSOosMqPz1nfE3#=@gdF(#?*Kjj6hX%~t7B_V#axN!gtk-i z&6PMo55eg%FqJY9z)=ONR0DQ*J10|l7oT4y0+&7m3bc{Gc`&~Z$YT6(_?{jcUNE)_Jf9L70?Q~R48VD4&{;!?U80U z+Cb6t{c9NbBmiTz%=H?lbMzig2$b4{_{_rGN#kns;@eJgjKhH+O+|7iXAX?CHtsS1 z?jjV`UH4|!REN$9;~U08EjnGyP7nNOV%us%uq{cz;M5kK6T3Aq$dFC#DVdf`(&7G? zd}1yGn#Z6cVnqWZa(`qlL9q5mN+b72N>vg!R33o}Ed|oP zboOTY9WzR1-8CK2cO(1M8T53dWsRFjYOUW}~oYBk~!YRbsBI3XY#tMDqxHj4Q@ zSx;ehQL{|=+gkIH&C6QzFR+-#N#Op_6eg2i@XM{PDaw->5`fIsSm?RV4<#qvLRa!# z$dqZXoKP4$ztsCK>%Je(s#MYM=z9nU%BX#Cy~n6_+`SJU!}C8B>zk(tcKV*p$cBoo zMesZ=g6*Q+{3*l6zYxLvTa%YDEUs)FH$LNxiYyj{fGflochdsbXjlMg+<-#-=l0DG z*l$OFzyUlP>@$emIuW_LblExyyEV$U;^hW9Z!x0b@E=&!J8W^F>3!<=XhGIDqvH3b zvc}#-|EjnFPf%KiSJ5?M&^0muPbGc)`~d$&Nh%x{B^}`(he28~0WWoe;0ftG-BO;z z7f>?AFNyvO0d`k{eGWPmka@a5Ru>qx6k^#NKRDz888UYL0q(Wwh>zWvu?hWj>Fy zC)@6IpzHFCGL*#5oaX?jjJR@H%!wa$|JT8w8b7OEe114oWs-5}R#J6~8rIqupx{BE zz?`!hH}FsN{nW%rq6u25{DrO1I!4x@h+yOe>tP)$`9@8Wb>X!P79d9WofvsV{=&S( zUlSwMdcU%EK?lay+NTi1_!8@@ z!5UqU2qIhqWG1MiGh1nrTvI9IfqZTqN5@b^aCFjo;NdLb=xh^5EI=IbJ8={zJo{7z ziDIl(F7T*vwy`xKRvAZ|fM61M7^NBb}j;rne z0LBtp8=m@V#%Ts#CBR}eYJK2o=vD@vZarklFh;$~KbS5oz=88S2c9W^pUPk{bKu#0 z1?JF2pUSYC1JA-=HS`8yk@3_Jz$aJAbP>RO{d>HA12|kyVosc@;9k|cwE=1W{q)v` zi%CcnZdgEUzxHu3C}UPTTC1R5Y3++>(G=_|y#FWt7r<+syADe_#*h3%bnNTxJ@x%_|1ZY> z?2Hipng1xF|9Str{%Jocy?8$eO%eVXZ7=;v+a6fF#Rh>)q5{Kd^@{w(YVG4isDUKv zMA#~_rw2OWG$7R1TWcDFo_ZV+$wo<-LEEH=c@`uCo9UUJQ%=tZxaw`hUhGezw0S6` z5RXpJX4K^xyN%l&P!ZO!k>FLX+ais%O1$JeEaP7@#3$z@Qh>*V_+Wmr*cujVE~+Ts z`>rP%&0#Lx%F%Ce2j>_SK0Lvwo7#~^9X8VXUyCRAn8tP-a0lEYas_@@$(1Decv5p2 z$bd-*n?<4p5vUX4Umgqp@}^w(VfdFf!@sP=ZYwbI_K1IZuLLI1#s0yYbI`AP8;fu( zRHhZCDF6$VYdq{vplT-+g*@++)ZC?wkIr7^GgfqjT+#k9yt?k>+$)V0yy5~s-b)&E z>4Mwvud3D?9OoK@YFSU4J@u9HZ<^(Mv-}RcLRo>e zqKQkGuSeMnX8C~VZ@qD8_cx!Q?C+%Qa(2%;jhB3L`+}KxxFqGL=`QXNB>f>8zCVWQ zzs&l-ZeAZ(c<4SmVQ7Ml1^j)p3F3TK8=^t%^j+nAT!-%K@yr6)cT$$-DmFG9JmVI> zp$uRl5!hH9d+L%QyM3$RN6`rW#!{ppUc z7%Lj_4Zy5A=h{aW%n5*8-^aNP*&85P&-{?82e zKM`+a=r-MVJ}G(+{Q#zwqaCUqx-vVwOKu%zbzOq zCye!Y!|^|odGi4o|0~a$WtnWoc-n}_lJxM-jaX~*3JD3fj?&s`U>!k z*8w)U7VOdmXG)E7?&*NOj`~f-e5!y{g19uTX)NY2MdjQB_U>?8Ow3C)`D{3O;fz=# zWyj(!h~aHa@jW%2k-m#E3e{KDlw*6mdb39LMHVmIFPl!ALFz%XpbLT0C!Coj0NA2s zC@c%lDQuBpR|H$NsstnSe~vmB=Fx^Bepesh{?PvjLR_86YpM(Bv>8PZZu1iMK@#stq$IvXJ8rQ5ho9L0i{}8~W7A^M=}CD5?*kAwV_wCB^% zwu-s0F^jK@t)0LtA*uJ#aaQ1Y50aW5wk_NV{1m?6@gqKC9tOman#kbbwj%>1HoS-s zj91-{zp==``h|!!#2EBqNC8}}ZLYRltxeCucbbGD{}tQkvGroyqY^G~_U}v;kCqnD zZiNe+j|inm%}PJhK7S!(pKm$?ur2+1KZrpW=^p;Y5-)$T#4CCKfY<|0EWI=ppipbe zp6#A+SL&%dG z&BpV=laB}CPi4a28`7aacD4H^r%R~nZZ(;a5^yYePJ%lL73C9r&*0AyB*|d{1nLT4 zC_=zM8G#>N5N`UQI4sSuGVrBaiH|MeL$1990A7%i4xr-#xL>m{-NE4B53qWZ#_a$I zxVnJ*;-%T{F`u6z$WRJ!(VoYiB{h&-l{M6p{{YZ9^{TGG11eR)b%Wh3YyITT)rz1& zIneZqVyzFr&e!*nsy{W@soc$Q5!uf~el>~usy|%_+Mf-F8s$(4R{Ga$)&T{Tx+Xemc zZyTIm@OBAY4EXTMs3_=*kH(u_0-5-o074sYbqOGV&&Dc=h^e@_3xtb1*v_aplSP?n zexGPVo_dw@KAIn_n{U71Tog+Jccc07)DPXkWLKiGwhMAVxr6PEiWmC;tk=<#Ie*;2 z4z2_g#n<=rHz;U(y1AKT6AHqxYarG=-ihcNi zuF(an-nCfzrf$anJN2@69Pp`yjQ_dCtSw58R&b818}X&e@5Co-Ue~E}24FVxruxp9 zV;1X_E#a0Y*H=zX&O)l}y!R6E<4B91xa4bE)q1{iW3pUkF5hq_tD;LOA}TpK(35sP z9G2FaMeScriy@ugz*1FG!Q%Pq$ngEoe@hK94~>uhg1%N=C}OA5Yy}|bRyNAap?iTd z#+pHqq2{WNmJBMefHia-N(6~2pl}oZjYiHIi6+u>&`iX_AL`t7m@;-V*k=fM$U6Qq z3h=6`&$U}v#?HV2-B-)eK3B3I_{Skfll*_^h{o%%dGG%%o-hj~QZRCl2WM_9Arb1d z8d{j@+q_c_#yoNpv(xi&0|(cUU5-RYnwi;$ zBn?6^AIvuF4H71NOtv7tltIRoOjU_iSU<4c2 zHfy`#<0nDl?4yxcgAKo#h#+!Y^1Z=U_@|b{Vm~%D)i7sJLq|7#JU}l79}RXtnXE#1Cju*P>Qq!H<+u zCRZTeyixugcIyM4Jr;DuG0!fzAj#d(qoik*|0B)-cSEld1kp6~HY(o1 zZwQE0qD(ox6A&e~$?5INjVfo(_IWPOnqm$GLn75Jg;4B_ofcnJJZ{O?gNGx@PUc$o zZ(@wm#XR3Nnj8Jt%rf;e+*lwfyP}r>r)L5~#<~R0vPLXY!7Dj)( z=qG(%4W4!srhQTB@H*_~%2oL|@y%7tTHjA1<2_3f=OVw{jlHx6ZLOAAD3j-2+H6@| zdWL4KGHDSQIDn{5M=CV8jwUFRJ<6a#( zpC^NJ5})|2Qq(+L2|oqGYFeuQPBf_6v|;zy#zhM2P5x<-edHw0U>!KlEu3R(_gd6- zr202^A~4bYs!VQlzURm5QoIf&0M6}QmYkB>)) z?Hi@%sOg9>H{G{hhvv4kgV_UDSyE#%dQ~rd6e}=RNUONI4@!A>js%dN(1!Cze~uns zs0S;E+Tv$xHqn-f^B+wn>)5q)L%;|U66WljH(yJ!h)Cy+j{u}z%|QC$Sj0d}1q6%L zqZXK0E)9z}E!FkP>GasOc$)^_f?wkNnHj>747I)qXWRT=f?S%xN0SZ10tnjB*dx&l ze)a{NOQ+L@`k2~~*e{yDb!xh>W>lV$iH>44qE{XUE;=4;g}+&W6I%xB6} z=cKW6lZaU48~=ihffD3oMpcw7f!;6`L0IE-Sc|s}@XPp{(Uxry5r;LsiUJ1ncf)?o zPkKJ+ek4FsE6O~Y#E@w0K6)lVd06<3NrEsLl&&mMMpfh-tFwbzKt1kZ+=HVQl4J7uI$i))x0(kA`?-?xVaI!+gO^ddS>b1GSVd*m3Wh&Z&ck% z;Ar>rmU5WU*wka$`L_e$~qF`^xgm!Y6ws5A(yk3 z5Mdh}>jmApbMFV@-rcLEy=H1XF|EE@G{PxFLtG9a#KG{KOecL#26rAnjL-a%$cI5b z#Qy|2%=3lH0}04~{z^^KR?o^D^Z=|21+2)Gp_?>m%9P(c8vsO#|8ZE zm%pnrYyv7$%-Owb_4wdiz&m8h13{z|v5V3so5I})4T0-}rs7l5glb7m!3}bGN`FcoYwHw?HKx+q*6|Uhn3=7vwkPM?(i!lDC_G7T(}{N4l=M`KLyF z@8p8}t(!le1>^{w|6D%$665;e&hEa45EfT!OYTZQeJTImT?n`#v`uIb>&xIoU*f#A zNR`@oVtsI;ultn_Z@)T+*IAeB@Gh!LHPJ~vQfNgbOM3fN+O&0V7Bh4YnP(0YSrLf^i@>= zWu(A&bDIM1ZOCTW$ZbnhBI%I-MnLHB6& z1`JOx@Z5xZ-fqKOx%e~Am6QU{#X>)SjkI!7 z0&=jK*{F8>p4(J7GFvP2=XreRSa4XdzIQu0dwXV^zhNp*BfY@h!hL8s*EN7K==4oYE+ZB5EJ2c<+sINa232#lg zSV<36HIzzcQw8^*`ZgQV$xk_?(E7h7R@Pt4b(r2h@DF%zLOKEDkR6zq%f|c!du}6s zSt^LA&c71XIa+xQ#e`=A5cSBrv8bIRaF`K8M-=^jq^<~Ul%`moL#O& zTx<|%m-`0Bf%)b1yuS|RWR#l)6-Xyr%IgGcm z0-f=U-Au>LS%J1FA_EA_!QgDhsv5S{fTj``T#I7u7Yr8pfk!M94sUkgTs$Vb+TjkQ z?7*41#_QSKAcd3Z#}2N&vqxQz3+)lQ?}gS_@NNY3DSKaePY?7lZ` zV+|{Q0C&ZepTR4GPvE#U?~9WsED79QKgIyabTcR6NvOc;0f?9uIYfQ8sAb0RH(*AF z_#yT|Gn>1q?IJTJbmtM(a!bjG?OU*(VEx#+co0riCzmx|@A?)CVEp2aBlhYNCjtdn zw|NOrphLJ8u7K@{TLWF#_?&`yP=s@%dt|E^t6Wk1h-ztgi_@2|)?K^DW~>cP@Quuu z`wh_7edprtgESiw`OnP|{NpiaL2tY7F`~@Av{8`tmeuVemfrAvpfYx3`nTr)-JE>U z`NiS4MgnO1KNlOu^53HXMmeIaaasv(-`tNaGDgA726O6c=EzV=UM)1wmmv9IP1!4` z6mK62CA2AY_hG#~9(3ELo`qV*^`(4!$ywOySTv9^IED6{J@+BLfpORIdjCA454_H- zS@tR#h3wQtIMGuhiqH&dP?eZHE%HFbahK2TZJ8S)&bu4|h-Uuo8Jzl2`De%%#R#&R z#mp7@+!>=XB!^!XBa0AywJpNmQL+Rwe0MEnIKIgVsQrY#7*c9h=(w460`<|4WYr91 z?_0YXBVzWx3uSR*CJ6I%7iA2T>mF==4x2Z#_n9s0ynSgXtWA%1FUQfcaFKAX#6dAV z=CMb+Z)yh`;D~<3p?);-7Pe;D-SdmlUA#FOn-~e`(EeuT*xWqFq`dJC&&VzqR9=_l zA{-vXA}dF>-Z~f>RSGvbo8R;H&(i0d@vYFu9n<5pPiXqIkEV}##H}5>yOG_2 z+al>x;FvPSF$s4Qj_iVLnO%}2s53C8hq36PCBnS4Ac8R1zif>%np%u6uhQ}5;h%si zBLC`)Wq(V>S6uYB>}fo3E)+S3?sa(HGcN~n4%};x|B!wST$9<|=`DpIfaBv|^R94u zo;Cg9`XI3r#zhrj@>I)3)qwX)Os8uWf?R*yLUNhq@K?%tb$ziEcjG>5CkDPw8qk^e zc%KOiPV^}K)}Ba`5WBqZ^D+} zc;D2gbIY1~8!J|jP&vDdm5YVSfF!r9aXw7@oL&A?sDfV$j0&w>KVFR&lEY+;pv3#a zHoQP8letoS3x4prpmEJil^5;;y2ouMy0vG_?s(X0!Uu)ueS;l>r#p;n{Nbvo?ea5LZxTRJDDbB$J~N5(nX7k@&8qPm|!@pr|>$wk7=d$N``KeN1zq^E=Ij7 z!+i((w3@+PncaJXMrW6FqT)>dOFto`x$Oy7(fE46oaSIKeXdx|ljA%VJ@ShxZ?KDg za8QRf!<4xJ>+Hl%PVY5f)g<^8c_GsS8D+#3#KPnF3ox0Y4IITqD!!EV+qCL1ogJPX z;&3r*0UFkFY#2O{3)eLcr>9?9ZC+Y(-c|OYPS0dGlz2Ht@;^n`GhQK4J@7EBWAEf5 zxHIoF9Q6lKtf(e`LVQjBB*8)@8>FAX!mq|FT&z_s;DiedlVhr49*iwS8B4)T{RaUfLKhhG-G5y2Fq_hmd;Gbe`FfR4oOjxc_8 z*PG30%^ER;F1(V2c5DF63$GkM4y3*=t!zVn;qDg;%agrYTy8wuH_&U(i&B zZ}*wjiBlgE8hVI^s&(J^A%`y^2djgce34Ep&~h&aaK&wfRtrzVxq2MtApF;dDyrvAdC(FgMpdfv4?(T6b+3SAkPMCZSJZ>! zct8%2XmtWI1Ez*=N_!n4FXvwwUw%zkWIz=G?3fFjjg%W7-3_8&^ak0s6}6G-i)5`s z?2D;QMaq-$MOR&!Tj1%}2l_O!MT9M?x?SLW#NRqS2%Os$=q?V6S|nvrvwRRKIlG`f z&8#w(F?W#Dv!h@r(z@@lZ~8RBv8mxQ=fEBI_(tc@8fwC10W29Xj7@EM>DFU-g=?oa zr_!fQ7j|#7Lh)G07!Gnf5=zk^pG7COwc{s_?3eISFy%z9(1_^C>xm^%I(ZQ~RLKLD zcX}PpRH<(3i6h-MaYdl$PeTXR#@|*4a_2EF*+LV+0j}66P27Imv$5hP|N1V_gZO0R zFG&wT;{s-OGI(<51I+h+z*@f~Kg}~?kjEt=gai6DHV!w<`&AfZOk^%;R=ji~KsE*- zeoIYT*Bow;)4DRN1yBKLAM-kaJ_$(1Wdr`0aU_lq3qAeIVDtcFoc~ZwUc@)g#c!(S z`-v1NC5Q2sBj;~ymoWqVm?!^%I2{Cfj=){&R-p3CDjm&!Qpz`rW}isWzlPsTyTLrx zRV};(8PEG5`cRv7y{<<|R7XXzOKr#$JHe}#rZx&e$XHZXqC%8AKTgqQDQlMPfJp@! zvuSO|*Y6}Eu+O7Y;4t?}s%a~*2UU4LZPW1nJ=UI(Q+@WGfVOrmp|#Wj24XxbO`6L@ zrUy_&ZJ#1Py|`L5r|Bg1W4BPPjiO&PcMAReA3&AWf}z#?=KJpeOcykRDK!$NRh6+Y zA$=V9%YO^n7hlYAwFmQ>IyUXgzsLbL8`kP_Y%W1p@7E2g*kIQo|D*VVQr7t&7Jdja z)L4G8F4!Ff8wV{oOUrLOr@PwK*b3qUJNVwH*bUhU{XahN2IVi_4deHT@qw4{e2%Mg zjSbqUZBks|N%MOalD(o1U?`lB>;5i2ud;BGY~X=JPG7&Zx$ez-piJzY=o>lJ^fN-y zSOSHR`rqU-?%iiOlCGZ()USK(BvdTR0KsPwArvr{^l+?)iau%b)#I-$@N`O}XDKat z>`;g2%4CN`1S|14@oF}xiF|Aw zF^h-IpAy2x+%s_hY-7%XUNLBRtGNPSjFs6@zSpQ|0D>H~V~f#!99C*ay#GtQF+1Od znPWa~2|un2KfWA({5>8`#`}%D-J>3qS6JTaRGy4zn^>fq)mpQ_o%mbT(*8+=XLQF5 zzyQG>yMYqn86ARDaHca(``=yykH8UJ#{H90?w^!eZ%NgTU7g&N#VL4%QfqO^wM?v0?27(X%EDr&7m7RF&Q9+{5FW{)uwInh zB3EMT)lV!2?4Qiy{z-eMuSd6a5W|T`kv1ae@ZPUMI|(W5KAC2$lKo-bFMA+V27Bg0 zhd$80-a2QsK${Uk-btK~a7<(6+1S$l|CoCl_^Ru=|9^u`CW2=u;to$_inT8+2`u*RoRj zszqpN-q%Fvqo(?{T|7nK*eKUps8N&YzwOOZKf#-tXA=;X{4$(>mp{w}ZL1sM9CQQrg%5QH@U_A_+78>J8>rv>9H5^3 zut43Yg`_mksZW{ca8UlqVh3gQZmv@S*c0L@V`~6*W!tG+mWFL9cUEV=fjTg&js<@n-?(>$`;U= ze^JoZ2-ntv4}@*ab8Y?lakcf>I!#?|{er(O==l>a{LyNOX%{kW&hNe8N}b=E91D1R za{PCaKXzIm5k7<~~#ej-S2Q*y3#lYbCz=kpWb!^3@$2OeCMWo`=NW%xYaP3!ITG%j{P2I%7 z))hTIm2voGC;qhq;n1eJWWr;_2?%8Pvu0!??)}Yg-i=*ibEI;SQRB6gYyCT=prKkE zU8)Ys6%%Ep|DQwt%C6}8QV}u#T!3J`9GGyHtm^rAl@}DU=cp~!ztw-DwD-}XAN?mj zn?2y z2w5JqR27Pcs|@}MdYxaJ@N$*FdWJ;4E!xu?jfP(XZ_R&D285L}#9PU-ndT(Bt5-}P z)IkPre2a^IJ%8GfZtuyq$E+=4{e}P628ZjXu7Gj~i3J6~hw-6iDFJTrPR<0-;hu^7 zd#{`Xzl@mv(a+NVN5ZrO!|{sG1R!G!g~{DrII=S_YpKe4kn&43>g-^ztn)d=dbY0f zC!PLs@PE+JKO~UJU$C<>>k7Tfx`Kt*vs9Kog1;09fCv`w;Dz}&cx8u?uwLY%%|R@~ z8~K8l82mBHZq%PFv_McXs8|u-?f#oGDgZ9u>t?PXmxfF+kl|>+mJ!L-D-fOo-{8kF zLGT38iDB{pvaYp94RrCRvnkDWq0Eh>M&4=CS%0|stFQz-(slmOFPRsSm6i-=Gq3O} zcib||D|<_`raormqP6LX?_lERYT_T%oU1fOCQf}!oBP``p_n@~s)v00a!JuUAlA28Yya7Zo%YheUHo(cNFx6Oe?)2yeauPVk7yE!f$ehwsX3x* zv?TDFPTw#nCrJXl03Wm6{Ntzh3_Ua3lE3SX2)k&744E)HNttp0wQ$6|vm>j=43T~& zcog3sGJ})U%8XE)ectijm|4n{6O$_>q@AvOq z81j@qAe>_IgT^&(eiFUF7-rUaJj~CO1tcCrQm1=CShOr~IDg?*1E7<66g^m9zHZK! z1jGuj>;+ZtE{?*^p@aFbmy3H7HX+EdmBc~+kLN4Jcxp*;E295aib&S;VeUi#x22x* z2lg~@fX0Yio72EP_M;)G7myyEZj$xY($89c*hsR)BWiAh9^@CZMp$Jx*7*O8_4YXdY$JmBXI)U zPrn@f{ldL&^<%FjzLry@zTHUx&Ew;b3yh~w^6`8xp<=`wjsyul_qb~DVFgB>p*Ly!ISmcXSSOc#7j#fd=hYQS41b2f^l>c(sDjq~u9~Vnh zVa5Rc74{-4ohT@{uw_8M3tMXX5#1b2U}|c~%nK94alg9YUz{!UUCt-Ggwa`5NAHNVT26^$tu3-mM)m3s={*4VHRJ_(N%Qa{1+tNO6 zeRFI>ho(F^KK-bI$%%1CHIIM5T0ClUJntx?tEcn13^}XOq?xLI6fxa3{!}Z|0dNHI z$9RGW*a0!bcCd!K&KhAwk+&mxF`7=p`4;cUe%(`#e|DU1Ch{YfbY~t?G5pJ5FQ7;_ zwOp+jpltfkKewn|#%<#pSybUpS5FPV4@8DR9tz{KcUg@#o+rY@fzJ$v2>Ccy(Def6R9QPUB+3>p-PVA9kgPZT zfK6K^3M=x@_@i`{9>4~k+#^-elkPn8ONvx$F)hbC8!CSNrQO7|+4spSGP1ghX<&ak z{q;H}ftUjvItvOwf6bJCsmaJ7aA%XFzhrg5SIEzhQJgdo;~1L;(UfjqBmZ$F6vYzM zwPeMjLSMe`5(KjHpj302?7v+p*1cpXCFM!tJmtLi5Iai-i|D@+Hr|-Z#9p<`%y6%g{1P{ z3eJxkHb)$_QCdU{A&+R2{knN8j=YM$6@}3ZqfRD?`WZV(%5~*l$EIlf*}&{*-ka;? zJ`>ZZmH9uVC67%1z5X3ANb&)FL?KV=f7mcs2Td!IL-l3|J;wxEnQiB6+kQ0)G=K-mKrtGjftEf7@^>FGLpKDCO8vRT?YXtCP>2 zy%rt$Y%KRRb#p!W!l}iQ)HBQ}W#TyxjVG+*%{rV*@<2;nX=*wU8~1e}cJ70Y0`PEc z5`aYwGmtUO;~)H)rV60FBF*tMuD|3?MT-{LEK8FuKd1cefVE0fnd-g&`__5gdL|RrC0dgq=((PYpqul{+OX z``5qg3+nD=j#q#YF2kR3YcWBA^O-K<@3@b1FyNp%Gbv6H1QLVSHjjVdr=V9f^VT+SQK;q3!H>yPkR_ybwbD|80)Ts1$HfwiL6956o$HPLs%{rtg z|1$PACU3Nyu`T{)6Id(*wi*45HNJgCjPo#;ehTvS|0wa$hQeikIhSPU`M2@Vsj!T3 zZwrk~XhKfi3jfqv4gbC36IPZoxz-M$a{A-%AO!t^*68A&#s;fe@uW#s4sVOE9sQ2& zp4enZsO&)tq>hUTz}pEKqknaXWc)8G&9mfY;h3Y-VwHcnU(1)`IlQf{I#{4!qKaZt06?s_6su3Ik+2T;N5P z4C2+=$_J*_*&kKqKe;Ver zDQjr!Eed<27Mh?CEUPTJM@qg}F!u!MikcPEOHP*mtvqInMG4U(lB1VUa9e^2=_Okk zl0}U0L1eXqpX@f~LbFUlZM0k?I}U@O+PUQFQhfzhGT5Y+ietGukiVQ8GA9-j{XHMh zUu@)7#K=$xMncqpz6CLytVdDsm-JCvil`6#$Vz2Rjfnph>4F((g_*>aw)m3}F}wxl z@K3`PUFk|;n__?O9ws~=}b^26yyhGz8{qSo)BHXFn;g8z2yUdW_T5JE``6q1A;|$sXYYRit0L^PHoeyt2DY6 z4>F>fK>lmZp4s0=?r^F{Popgtv-RQP3jUAQdH4a7bqoKd}D1H6tIyr6@RA!sAiTnw~^7Z#9%Dp!VW_#z~`d%Li0NRJjA7cHvgcZh7aWgucEqK1&AxR zH~ty_{TMARoc&SAOI=CLzuD_XWy$+81m@(^b1*3K3DC`w-Kc-emN1nLf6jmvSRdw5 z>@A)A!fHeAe7$GPfG0>Nq8?MrcC`2=|7zeaPAzA;VX})gWbbqMg?JqH0~_$tNpk-Sle)n| zs;xNr4nXY5`giBEN0$8$!Y4Jw!RO<*|7-Ah+qk0_`26AiUg2}|=iU!|{HYVWfyS+m zj`Rwe^!jMtWzY_I(OCr04mcwe5=eBpEBMm{e5q6}GPB)3%BpL#F6XV@NaUY4nfpKgy08V+dK;<>XbeH4ME3X>S^dwvPrxU4D3@X%)Z0j2;|55h zBgU6$MXj>dm)b`b06U2oSi$JFz&_lrmNla0^;PgtC;vL}%_nNQO*eT;W~N!^CtRjw zLvQCNJX+GG0kF@-IWL^usCBA*fm)Ah^~Q9kT#L(l*_QwVN3Tq>gHD?C1aW3>@J0By z`!cYP6Zu=GPo@E9x%nma0;K$R=UEiN&Lyyw`${(w#Oo?+*SS+hcXTy;P_b{iMNVaV zWMwwOpq1-5%VijE}l#$5T!>0Khhzus{*?UQI)?ShQ4`fijT6 z!W@;^Cg4c_N;KJm-N?wRd^fWE0vj715WH{HO|6kPLZMg5M9S{KC+)cU5xQxM`Z=v~ zg!svc;X^c>*@)=sjxG8G!+(oPYAju*(b3urCuUpb6xo}yv}PLZtB^$c{f5c(7`o5hYXlXet_WV|OA^x;f|K;{7+E#pmlya$0Sv8V=c#{ULeOCC; zjjau_{9!x|Dpyz&Axf86O0PwqE-A2?DdHkGlKnpF5=~j0YEX(l#*h38BE>($`i`0d zxX;*<7Goey_QLZ-aa5i>4B)%~&c@cZ6xFuOpwPp!wsvJ}n&@K_Tlg! zkSV8f7BtoZjh%WiU>S)416n}FI9>*Ig@!izepEOIbBcrT59pK0UsMeg=EemD-2>m~ zGJAz9K`SkSyj=W-=uW~*oBWZV7ozQHV14ir?}tLjNiA{BDh-uY)4`oy<+}NJ^Gv8` z&s6iv_ai&oJN(J~19vumY!cHOF|I%PF_-nViXXGxtuo!JakoD0ZVl0`(YmG4t?`#B zODeuumq(O;l*k|BUi_|JEO6hBbhmaN&8@%nIf#?@S+4{4mu$JE9gQD|DE|wz&OHZ| zjvLJKZPeHa75}JzA=wX|r*am#=!aAA+?ms`-LIo7+bp`tpOCpcPXoZI@D{&a6%qEw zUFQjko!n8$`^@!}w$CHW)(C)I;_ouXz)h9JnJ2YD4d}iueSG0%iq5RgJ04qV050k^ z^?#DlG+H<>*7>(5a|Xo)&j{fXcc87K-xW zaIFHQt_?o^k&S956Smo@B|_HUTeMy{hm5AKbNBD5>^}2>8OzuyU1$H_CMD9v|ArAH z^S8-pi~WQ6-&$HNLfP_gPLTwrcEex|Ze@>Pe6!$_{Fuqd8cFQUvRF5@rcM{BPm5|R z44jUK9nZ4!C<_7zKHjFbNVV#e%kIL9mRMTO_OUb7-r!rt+E*ra7)fm2B>*qF9- z0vy}@6SaSe#A0eNYXOK$ZCN9NK!4TY1osHsN*T}Q1~JKw&0gdo>`L5WlM@5_JjRK)l+rH~ZOfebk5qQv0ng)P%xAow`=1;-yS?#q~+iEM<)=v=0+E4*11ZG~g?f#A+ zXPmJH1j&Fc0WE955=_WwzPd1xH#9kwiC@=B*K2d@?(NioRkLtDl5i- zq6*x4ZT`bom|M@ENve~1kFihuySOP{IqRZCUKO$QHf)jV$Q^44skar-QEqLbsv{bi zuo3TQ&C$=ZOZ(O>)$w+#3)jW0^q)VcJ4KJp_-cAGBOQGYN5Mnibz0vNchNtFIY2Z+ zYis1!Xk_%8iyca7C2}Ao`V;7f z06$UgwUNdDfatBw!)mh@|GD#2*N$8p&3&u3a#!PLjnT}}ESf4}IpB7k`N`DV%3UoE z#F%-UjX7m%K|?b{TICQv^Q#cS@n*N@MX{D9K`PeLDxi>3aZI%Ah`4`o6(p9tm;sL7 zLwvEXVqF}vl`#FAxEWXA;mG1sd2IZF&6^up+~20N(>u7wTXW?6=GTa!zO9lIUnZX;Ir{@X*z>EZ|kvdcVW7qVJpi(cjCg>l)(Ya)qxyut`# z!rd#}$Ne_aIp;V-x<;~&k~HW=;xZ~M43x*50u8p)>J*a%`big2OXb&d!3pA8S* zaI53N3gxz`CT0Gnnlye!kKzq~$S& z1v0s0{n?+?&0YTe{AQs3a3Rc9(ji3F;w{fyx)^TmDWz2`mGms3ObN-t-AX)p9 z!#jdkv23O?(sVPKl^cb=axZtkrhynWq@j+@e)7vcrokTSs2?mniu>h|UITw?<~~G* z9@s;m1UN-VJVQwmA7JMyB&$&pQLylnOS*(hbF;O2&fUN%rG- zM#FmeyEd(2FhvqIFCehV9yi=rZ~mFRbdb?+t3E-Wr-r=D_E@EKNrLyu?L`((}Jpp*LP-~ zQZcKe=KAMu%gs?b&EP>FPmCGF(XW_Rx4cg2g6hZgq}o#2Qo|?2H&2K>w9z}b0Wm<@ z!Gx{eRtV*xwh8dg(vDkSmf2gjUD;&{a2C}jrgcoX{#7-B#2b|}DKYiKI23kL0HCoy zDq#Lg$p<7*u%@9{mWP5jWCAd1#0!{$l&)JsU*!8#z7<(|GZ(79u=sk@1Bbk_m!oKn z(0lT-m%9PsZl}0Z8@1KQP**a6mejla6aVlwa1*Sd*D6VzQV4Xo6m&(6IITu>EIrRS zTr3%JoCc*_2Z@_)b@05Y+8;BXz`qcsB>OU@_fEKeTL8`B{U%V2C^6j5FF~0^mffxA zk<}%A0ovXPWv|v$?r3-?Ymfe|Ylmw=(NIX4*9*6-=!6t9)w@XaJ3C0!jeZ?~kek5s2q6u7v2AO%RI7a9F=Ow~gsHr3M_S-RxJ> zr2rUYi)8>9+`#qK3Lw&*xE}8=5p)nE9~KZ6$P2SVZ?(7wnOqn+*7W=Kh0`TTir67h zxaeJde9KXYw_L5vwvr#dL4XY#ab3orCe|<07a4&7Jwm?q?JP4;1C3u%uSMx$li%NU z+|}{@Rc(LCuZpaG2ifsx>4eAwBtdXtzJnJQ!Wm=wS2excH0O7${3C_903(A?#=5G| z)wIaha^M!sSKJK*#h+QocDBK}@f~e%&(cv}Ez3r{ z=!vOF8J^G!`h)t4cBF9g`X=Fjf$$INL-$j#=M@ql-gG3l-jTpH4*B*k-jn2i8VM9S z+WwUzfgJ&KxBBP6-GXkQp~z9xHrNbgd%J;~-;qc#7->n0u#R?k{l|f%rdo3rHePisiR(uF}w% z?a!3UO1$dKpE8tSTjN~;x_X_;F8|?}uoDg?AVq+rkT4Obg`;pW&Oyepy7EiZKYf&Y zWxG&L!z;Hmtp8^{;C0{SPoa}8Bw7)YXhlGx$3vonT>gm>DywoM)POu8R8NFD6aI>P zZNAtzF~!v1CRz8Q)`IxOL;jyKg*9Z)T7Jb7bKH6bH=i(0-j}3Jh2rD&d@l<&HCftoo7L3O(3;mz!-2vZ z&iZ#ZyfV^2wxm`37W|+2B=}vPYl}cz3ssP+rd3Sh37ddSXi=c1Qf0;r+a0W&7E|+I zJ5x4@OxMPFX}?rr0GY3fv8&ScR$7sXQ>;aMX{{DQk8q14bhUJmBgmT)kM%8>k{HK^ zZiSX}Uuhoyo#o~LksG(_qWGx3DGoH0ALF)(hgr@(MUq{lxg7D8njuLUK!vu7oy`wC zst{>&$&T5rY%2VEMVPQ-I9IsJS|-vgN4)q!?C&E=X8;TmxdEi&JN*e!?%MkG z2v@8OYTV5V(~beMKC7m5RQy z)(C6|+h%b*T*Ifv64kPm2NcvC%`*Rlt4A$SsA53>T8i!*+!|v$S?)pTAcpp?eCF1z zO^2K25}Y<~oh>&Sk;RGpeIJ?+1N;$KVFMlDLXH8rO;@o8v$L-Ix~UMk;RICjp(UfH`*Y}EDcA91Y)OX{C}TqI%ZX$Kec7wqy+Qc{yl{R95MhI$E@Efqvo-mdw^~BKSoiwc35k``9lbF?-%98I{f=yw~#8$RZ?P znu91hI(}UY$Ya>4Gv)Cr6U9uEpomi*5|=Fi2^vC^SqE53t^>l;#GkiEzWR4skkpzX zQBr4-+!*?OCf$o33ON(LiC1JdU7kw@I)0}0zj9`iS|opz+L$i8zGY|)QY^l?V>=7Z zg(eyhtBs!)<$20=MApIY4A%ja$n>Q^~&p^RRbwO4deVXlixtUUpr!CZCo1TKZ1o#ZgEdJvaAk zL;QAhZaAI_jpvaY#f^Z>$~RdB979hC&BT{GRC%7ty>cH_6etB2g-Z%Z2uis7*bj-j zX?vI7JWK7}Za~(!kd$a9AspjF_#sWSKo!KK1CSWET&xqLVl7%A&$$|DJ?BzNUPy%2 zmTg3=6_I~P(Zqv0T|i*Xg^9dlo5$~4WQ-S!=M|-XhFsBJkz|!9`sLL3Wm&WY)VFB8 zh?2+zZLRTt2z&C&O5Y#GWfrlUJoP7@oK5i>eo>NBYkElJQ2xe7NBkr5ncSj%&I)t! zauL5pl%cjZBf=-sHM!0<{ck2^p}Za{b{cu;EfIOO*HU05JzP4dwXkTt8g_b>NoC*T z7}{J_T_v(oP!P*~sg_N!h+rS%)EQZJv5L=IV+ojq3uQ#;S0@8RR$i3n_+zHj2TT&4 zL=p@(96Y3;MwCl*Kfm&-m+g*K?w~3pf10dsCF1lM!B8QF9H_y+`SXqr>=gjX4*2Zs zh;Ql3Fgrpvs^7npm564LN#njYe@T#N!JzD07@|#W!2Mh7SAl0pY$tz+L1v_4 zT9x*osVnW_82s1IkoPc__(=#7JzvFh@*X&Wh+qW%a7=|5tmHQ)!*||cf4E19 z2|sWsseFyhojdhn!XZi9P=&1U4ax3OhBoZP2LJS#b&T3 zzs2^RjK`+)RaXAo8&3YVX-44gF@x~Go6Q-YF7<)n$+exH1p6nHU-u`I-_PKKmha333B8d-bAp6CZUB-Avs`Vd?(fhBY$1QkSgjA%}IT%Cb1}o zttr)u4(ay%qr;Cr%zL=Ncn>J$q=x8E>S^?QoKfb;S88onE86u8g24G7ddT2=S3((m zC5o4DwqICAzv3*RCYG3-$ET5%zcP%7$suyb{y#9{u8sepw(LdHa2nYqu4qi<=HySU z#pxw8q^>^iC88|TcaQ(n)lO@vC4Dxdv({Rr+m$;Tjtj>THk~?EVpYuS zU!a9uFwF3=C_xWJ*E6!S{?NQ#v;LTiVI<7%i!A;faPI`L0gAtFMStDLlT6;86BdM= zkB(8l-#DCpHRjsN7w4WDaFUGk1y@T<1@UuaS>CxJl^cC( zYv;5)yB72Tnh!H%`CvXI(g5Ts}L)lv4MYN z|D9;s%liG?7{QyLB(r)a4+|H_epoFL2b0^ z76Bojx4SA6|F+{rhjNQRW7t8M?80AiPbL?xv*vJrNq@ZJ?Dz4KqKo#q89(U2j{R=n z2Yfbn?VCIkW=n5?(}_!wCFVbo82W>Wp_eh_+0a5H16{Dg`?hzm-6Kx6^ie(4Nx3@j zE0EvpZ!6BpSvd4D{pi&WKHh*^%Zt>ozd-pRJI%|yz^wQcK)lsU7>n@__WPd5%87yS z!yZx=m=?LxwYYj5*GkAr?9^JBXVwOhuPUWL)_#RV;H6>}S?m{rF-#r*>CZUvr``n0 zE=GHkZez4lQ@W;Praw&!Eve^EHjYxC>_hAVZ%yZ|e^?4XI`ZUz%LbXk1C8fK(Q(U&SpP z0iFNu=^e9517n<(iV0UGpsw@t|DCZ&c)4*qU_1GRKlMolgi`}oIty)&)HK5Z0h2!jX3DqX< zkzcnb(mWVjLhl3jz-wLZl+R0pMQ^+Ob3W~yAv4r5W;pA1T>r+uJI%~B0hA?pj44A% zo7sB&g9x4r`3Evyew+!Is+SNNSG*vhvD-gu3?4bCE8kB(z?&uR%}={Ghv?1GdK3S* zyY&dS@Gtwr+}$zm?tkmW0(WbqyY(I2`rD4~_N~FsKXPn0xs+T^03{GcS^fjx$sd!c z@xU@i{yYpA#XfEP$|0MMn#JT0EvQ!Yuanu-+|Oz!r(Wg8m2>*@@0TOrT-%!3#usdn zvHf+4{0TAKs~d>`bhZ5{4ZK7pexw;TX7$*E55dC*b37d^TLOh7I=G)tos>!MKS0=g zox4JPU0T>^W8GfhCtCj$2inR|TBUA<|IW6Sp}LcYz#l7+hH<2N3A>Dk02$behaem_ zB&rz#%Xg5k$9IK41FGUW?zGd<#LC_Bl|t;=#ax?c{U7KGnJxzQb& zC0{6l^VQuvi!3hFAj{s?sx4ecy~Gk+7<8t)WJp9B>bQv3Psu;1i?oh#R2)m>bz8HO z$Tt_MXOL}_Cc)n#uR`MNT@j`>W}2A5d{;cxR(udRJFPY$Jn$#s>AW@gB3_lv#1}Lb z^3Fd&n}I8B%Lx|RpJf{=%$hSvljRE_z(W1iA0jQ^;U75mjDaRs{hdg>zS|^M_si8g z?F>ee$RFgMZr0O3Y&BW>?g0DX7rM1gwqq7BMGSzvp|Gy$1t4%&$ z-h+G`F$wv2|C|3Onf#09Ev*qJ2^WIB7 zy7>KzBDgO5yF`8{nJS4|lGIWsXo*(g$P(RBC1@5aKDw|@YN=EHn7J~KXUV|&TvHP* z$IX?=+OpVd87jd~4D`BI!teJ54O^QmyD6FGTzt0vXm0PQ|1c|yIj4JNB>L=5tJPgz z?ncE5TV}B$Y^L;TSXkEmWw}$k$d4%P1P+;CMg9-_X2V3oD@wkFBJaM!5AyqZfRBJ7 z_>AuGPn0Q!ljbtDR7J}C+?#DF%eK9vIN-Qx4v@5DIb5v70WxzyeUBr}4!7$ef6iu& zDF%3QiAmc+_<3tj)k@T?-AgPW*x5d(&{XG<%;W*50t|^$Nb&IaCyN5ylppESZOXPj z8phhH`?S+{H2-;L^^*Txr2P?uH8s8>f2+BC(peYGxIh46sCs%<_x@Ag59_0RqX+oD zfBKvFUi3Hid;f&~>W%)2AJ8T4F1! zBKK~cLlSW~3f|RwNAq6aj*6}IZ>Arqesw1zk@KwBpV%Ry>*P$dcvSK?U4@L3FXmwB zB7XxX96|<8(BWw&eeJH%gNwgtT(d+4#h|+{so8?}E&VL(Dm4WD9JWdL6En$8=CY&l z@)enUJVMlX_f{Af;YBjMgb(D$GZL5%1n}KFcL|5Tx!&nUQ+MoP&;4N^>P|Wi2-WZQ z0)&Drk>lpC!#a^M#iAdwyz~!XE!FiWa(m)rgQN-w&WyR8}0^MCjEY*;6Mm?kr=f3`UP^c$`|i1PUMShb*TX zIWD=ak#wTAw1?X+v|J@&C2(OgvlZM>hp+G(hJSE2Ma$Y_+MdIcHl9RtH(5mRzI@GB zOJ?Svw&Y+~#V@5jqGi;!YvP)S7+Wvz=EB6d>U&%%hLtnCI!EXCJ~7FyzSM#^tcxq$ z9ATk%s)={}$z@_#=l%@rfJcM=k!ixvDmBHgeG6kU!mu`wLsxpzxJF*#WldV>(+mV- zcI)p+ZstP$=!T})X1|?buBp^%W}vqQpL>w%5gZH{Z%4k|g?%NB!yBQ4r%MLPf{c4Z zIWIaK%ffZ(_!|*Bmvthfx^c$vQ89RpO*QS<))?Y3J(X~3K@D{BY7<|R9fmDht|6C3 z#6M`AhMUQsSU8KMy2#?qeYu4joAN4Q_0nC@MBXuwu799SGf{jY7w>xrQEQEo1YIE; zLbS^;gpL$5eknEA^{-xIz4S^_t~#D3#sq`}HilCkFdLynf8KY`8mW5Q4ivKdi!Vi% zujWoP{vv)Uj$lt4&@WM?<1GAAq|*WBTGTUDTsGintLJsmnehwGzG-3l(nW~@XM|i3 zBQz`ml)H_Trdf_oa7kgYSP=^C9HRsm4yuZOOw93bo1o=0uf@Z`ehWt|Z93Lhjl@KP51!AODn7S)A?r@WER z#B%qvs^4(92jz4A-lEHALiQn?IG)C{8M~*KObf(N6os(Op;8ByP`=ITL1WW{ViK_ z1_rb(Qo~$##graV=4%KPc zF*7)7iFKo`9kO$FWcXn5T7j(02`4%fsglgl6LqZp?QJrKtdUmL+ORBl&frx|0Z}*n zE5mv9xPt3i7j-l-W@R=Y4yg}1uzMGtyB~lEss;48cwEL)Ny3V-}yoSW`o=6 z<2YclY3`6{$41iRgY4Vt=2vn#wl#GTl*`5=3s}}aAqv!f9Te(vwE)9VB{eOkv3cw1 zGclNSX!?b$*?&qOG#l3Et)}w9l2I6!6F3$+5__RK5<3*8W)H1NO!{?o^P!>hKheCQ z*xu~Jo2{vd3WyYI+Ev;|TBI?t8vnr$k95%da3)%mx}4oZaFW2v-&MiH>0D8g;^gC4 zTiJ-ox^7)3h-3kLoj*CN*!X_smd0f2?yRp^RP6LGDC%V5WvJNq-|CrUlV9kb zV(jSii_$R7>zhQM3q+sB&L(=W?2O@+Rxnirpn?%ghH@3?uOpEqFM^K9%BO^sZrj5G zH*t_>=~a%upsppS@don5suqrBtC`NSJOe^t^9O;ikIMT|#`X8p^)k7!cK_^X`L}m%>TFC4K|LFbM zJHdmeU0?6E@&8~?BV-*Oj?kgjwN@K{qgFXV1&9pRzf?MpEUPhviw%uPn5}sEFRAD+Qe14s`0hFkG%{T#>D@jFDW+iHJL5(;ec;yNr9lw_G0AQ6+MnE zqn{wpl{X0Qa8;FJjkSqO*i00l6|LjcL72n<-gKhq>C$$q7$ZQhDH$bBEVmR`4Ktf zNlfD+R<_Nf7)b`g(UHH8<@&5D{rkVm0*AeDgSrzEaG2>O@(MiLAQ$3aqGM);9J+tj zmBK81i2(%u#tzn2gQWim`AI4i&f;&TyF_wpeQ(bAA=A+W4!+zeZ~%A{i0d zrvpNpW`w5pjo9u3rbcLIXA|0pfY7{7gccq7B8eKsohi-#+mCwSQ4*-I#Go%W_8Wb9 z(AQD#i@wh2L|-2@6)fCMOVd|56&dj#d$cD^6_>Unqp zePJ#K^p*Jhpy--^oF85D=kXUMW}N`-->4gXYb$>rNn9Qf8R_?UDqIGBbmVW@MA(xM z9DH9704^r}%K8`IP|sx7m8||vI`n@r$kE^#_G>iwdZCdcH0XcZ?r!o2*{@OH(>(3b z0`o`h>qU26+H; z%7>em6lrbal7xU)ry|^bW!_)A5rbdSX&`2HCud`j#TYyVzG^cOCl$9;4wXO%o}Z;{MCsTlgpAufgK$izL%I8blRI_URtzr7<_AB?@&#=cBr zPc<=28((c#{B=41b|gm3uU$KYYMWavwv6j@= zGN7?5$3IIQ|G+S_a6kcK{>i`R&l7W=$jO68SXK=_`%uT@`Xe>m+qzfQ7v6~cg}j1@ z^xqjHRO=oOiUrbgZjYw^oqt!1RT__qb#UMM`NzqYax9}>nyn@|5^jxu=0IeEKT5#* zTn49Ze2d-qXkL8B_`*Jn?LZM76e+PveCV3zl*3!9wI*can%6Rh>5n7zsV0|;*iZ^+ z9c(yR6bokeD+%J!hpY(9YS$7UbJ}3@;Xb{TE%KNCDI2OuRX^+k*x=93lqbj_H;&}a z8yNWoDleoFt2ibw|M(byklj+R-(MGJqTRl~@%??@ciw=O?C!Cw4a=u@{ruUU`{(;k z-G|@*1^(zX{9eBAH;>H{*#lsMhYjGzT^oSN`n`5h&JzQ8VO=(0Lii@~hn-iK^ThGJ zJ@3T%8TbzZ{@1N(gBrTQuq=BFJq0*8l+Asmxa z>pTC6enjNY343+wVU6|ognD_u?TaI`n-@K~^_|+^@%La>J+T%bH@l;gr%s<27d%o%HY=r(v|`#p*(dm}dxuR0HVc!8CE(1$L(p8xtC;4L5g zi{IT{e=g&2OG3Z&rNFpKE#goQx;f2bjvISY|IbQw&=5Ymsv`Y9T~*x4PH^_4j%HyF z7^Smhx9T4jDxC6A6f1k05(Nz>Ded}%)}C5xbu+CiTv%aKQapkSaXxRZ(Quw5^>f0lWujIK7R-rsh z-)@<KtxUDpXkT~lM{InQt<0p zcG+5ItA7mUom?7l)Ryo_GYk}~%DP|viZ{qja0B-L7t+dC&aOYa|xB z)K{0w4nmkALYO8>B2ajgZTbXFxTK!QL8#&1wcI6bJa4%eQrHq%eykdcS3@3OLNpK3 z&d}v<>y;LtxbaDym{{bMZIDyr;LDONfvlF3201d5lbb^NMAk=E-XZelL;Cn6O@d=8 z!cs?k&U`P5!+E6LyH*Do1SKr@?e6v`hd;Q-C*iI&Z39iU*2ZsZ-QfsZf^@ zTvSuu6In6@c_jhiL6>#rE+`F2HMm7gy3aoZR&h`eU}j-A#Zcy5TAQg?nd}%;d!SGf+f?0d>pL z6{mT*FUw!T`CpNXINR%llB1`B96Z5#ne#a$&R3fFAVTH>Zm!|^1=@^9VdB%pZRLcB z;zuayojAMyi^T7*Es>n$zD2!BMGQY)BY=DAfkYzGIjH#)ds`m4s%Y6Eq(Lst`28%` z_U@7YZE2^e}K(RP8V=Ys#4~SidL8s_Q zKsX#G+=!s$z-Pu+t)yBxJ}bA}dYuJ+y7IrQL;o_Bh1nDp-`}HkL0chd2kNk8 z#KzM_(gQcyPg+f8E6k&I;&)4oIO7ho8Ft_O4)Ul?p7t{icc*cG_iwuaF!^+vz#aVJ zns+BpiG!L<0{M|VhdhrDXsbT@Ecm-=+I|11L>N}jE#o@Rx zJH9v*HxBTXTjvg1G5pvt1>bo_9UT3~4~awZufFA<-X2bXHeGyjSU7yOTbPU?8k}Zv z|Gp3X(h2pr_;0Q0852q>)BsgDUuxWRV#|obqYN8I_;GPs_himz6)33O3SV=M&sw-k zg~MVa*XqPFHejAC(7>LiE|GlO{jZy4V$lNK%=KLSYtzC!fDHuFgy1>|!UtCXoz|Y1 z!_VE`4Y7_hvh{CgtY(aM4E6&HKXhH|ybCE%cP6I;a5R09#*wiK9Fls5Rm+IiPBXB) z&W{62h|~SP{|-YAkmT^Q)zKH^B6}bCS(F)xaU|(V3mYQKR`DM3x&eLI@6|N-gV6*> z(Z=gEuH2gVMx!xBS%jZpF#(WEW$wfe2IUT8BcCR~dM3xbn6{z5_MJ|lleTwx(TdB9 zJ2lX{u9x`@>}&HIpJ($^HPWz4@Zuk(85&ajo3{p7NDk^kng)TU1;sh_Lj!I?E^J!J z$-`vzc|{^MbX$J^Qv}En$MDm`3dh0k7N>uZ>qI{UKSUdH6#3)wZz7BD7KD*`h-OJ( z_p~O5=T_gkA0>oe;1%+9tWtMj;?5i@b(6p2YIR?P)*8ceqzV^LVCmDE)h{1*H{feN zlsA7~mVi$*mY@xuu71p3lt}mA#se!LRlzqLkDCcC1~=l_i5uEG0QECI|B05K0+(4W z#n=2&z4+VyDnOIk<8pjVgP1PSeA#7mzGRYA74?G4wr8gXao+ZT0!%hCMg3WK9PSuz zAbCUr3d`d?hP*{C`Q7x}l>wdo`+PV4GxIl^7Oqf$@~ii|{ObFd2K7HISup;f)2)f% z7i+@uC`g~N1O}?+EqT_E;EoYhUX48(_#Xmzq)IIn!qJHs~*z z#0rh9KHt${P@DX)Kfx9)UD^q0qRVYEjP9pqFRV-u4Ob!a9VCbyU z%lxgEWr&j;{FvPeK%|PCKZ0S5z9P#;YV8kURFR63*N19SO}rdgX;w0%l9h7_osgNK zteJK(dG&2jJ}gyX^b%RJ#yW9H$CB{%f-lzY7f-{Nzw!Y+y?Uqkr`$iv$~%RnaRyL> zEBK6YVC2*&b%`xHvTv?f-UEJ$spO-i3)x_9Zjfs7FA!GH#TftIt7HKNk1L-c+N;2t zEAr$oYc>nJG5vx_J^2%TAB==CaNxnCMpUCWCC$PQX-A1zh5iLAdKg$y&Mo7@M%}?* zpRz_lQ#Wc7?%vnGiH~6`u=v31J_iy`T3+JwM}f9y2N8k(dLP9F08os zj)ljHj!vwmEXJJQvh>y_BF|Ox=4zU*7DT>w3Tmw5f#UC^|DSjI3+1FdaP(K5m|zC@Gk4bSj3d9Pm&g%_JVdGh zIT#y*+D2@=*%?`SwVrBmXnO$}+Dr||<2Z_(;!gFAj?ln5maSf-hV=(1P(v~71$r!& zO_0dn@El913x>cz+=DDwj%ne7O++MG1#CE2l>}DD-&>G@8B%e3YSf^w`gWn=}oj3 z=o^rt^!qZ%K2r?dY;rRQ&2h8Ezb=us38_R(BdMe9$CJTH^K}^Z!5-S}!e%+xtRQ<5 zNLY7k)Xi%m9dTEtYVm-nJ?ETMB{`mOd(*uy;j2twq#8C)A82QC&I5a89H~`CErO z*e8p}qhe!Z>9tHXSk&KKy>hX-q8nq zu6~f8r6PzBe&*>g_!%U3Q|R7-OlTL#DB9`v2$QU}XW`5kha0jEo;O?UD~Pe1u`9?5 z{k6s;^a4l#OjoD~4aH6ZmhIBod|JiMhUH=r_$6>+;e;s}%IsDWKKc4Vo3=iwq3rUS7vr|J^u%qYX z&U8?Sj@%f_g#kJIWl#MaQEEk?6JpwX!s4b05C-cXINhw#)Q9|*XgP0gD)mcm_^w!k5F&*Hbz27>2VOaw_o>cL|hC$}6a@yR3803i7z;#uNl;FsS z4frYsN5U;6WG;UyH&tajTTG+AEuY+;&j@~u2O&&GW;iB^IFxd%q|{aa&kV1+a$Cdq zlGjPrEZx)U5(g!TcKLOG?1gWfX?CFPJusD=+cTaVeuDk^@5Mjt&+n0c?gds|_{a9= z|8sT;?4M3N!$~=2QTMy7sPdw%_1@LcEM>EM^==(|evjVY*qAZ-&uP`Z`llGmKEUTOB4leyAgq1+9s z>y`LZRyg{dCR&*(`ki5=jImRYB4*IlFl1~}w4I9ij}RsH*RqvDt#_wpYicgB5-O#B z<#P-7_CTi9UC4CIbVsIiOS_rARU+7Jq{`5#8^wgmwGH2GO)U!c-OVNOsz;&jh;!<% z-V2zkdnV4be80rOw^Z;g7JQ2(3#bKQ`~PvnZeJMFmN~coKbFY<@Ve%lYVMS~{r~5f z0T2pCZ{$`9SS|DqkVv-Z$fY@cJ)UbpF7Ul3@?TrqoTF{J>>HOB65EMCrQ&KH%vn|QMVW!7zfx<$So`CE3!^&bU` zb82W{&Y0dmPLDH7M7e)4OH3bfsR$US>?NuRs?LhicV(*6YQcEy(e@RQwe^iSn` zmVavjDNp~3e@pAVRw?Aj5ZeQfk0lAfX2=?Jf#DL805I z@@#)7JIfZ@&ayFZSVRY(pU=f*Y%QBwGG0}uRe8_Fy<&;0*HP3Qv1WJGVvoZ+tos3v2sF zzi1wv6MK2J`^p|0$BSpr2M`qbwexzI1nl0q-Mo=gD7OUJFS^P;or+R&D<)0$Ub;iAf7mKv5X0L>s zo?|21y<8j_14@iFZIfSPNujV<tio-uKTYmIxvI>!h}*Eq z{_gA@kz28i`;0qQB9u)n8JF3>ehnMmV6_=;=tm;U7Dx;+bV?->^QZn1UDLrfwhe4!dp`2Da)fPqe;+4~L=qq1j>Cp>k3#$F zH&M=<&Gn;+E07wS{Nt{1yV`mqK^Zv<2)z`zy=|Q-O3I6wbh#O>54zmej^9oGRlheG zrppt#w34K|{FN^TmwWx{@P)npJKP1ND)oDVy>OT_v_j+>u{J_=MypSY7NOOdMystx ztm^=;5$b>FVMwUU_(Ry9)|F7BBcEqK5GuY$N_}Hak1VDW{h6k*P)6 z1LynuB2%%7N#UM{?1*$iZY*mrTy5vQa8E@Nr=%zD8`uTQg1pj4T=&H(Pa~7N7Wn10t9b4Mv7sZq3tT{$C4ff&Su7sI`F zC1SC*Y)g!^#PrVp+L3FuIkJi)69=2_dyd)z&WYppw#q~coN>{_nZcSs~(QOo6=$xmjXFY^Zzua!3trMRy~?_Rg>y)yBwQ;?u~Rm~b=dc7=iJnLCIa!3o>CExl2ItM3wD-@ zfa9iH=0nZ^3-RajS zaK=NmPvQYXJYn!Ln(Nso@ROom75g~ZbSqD3xFjG%zrVl1;{ZR|@W4BM&e$mR-3Pjz zEF~IkV&Isc*5!C{wBd+p%e0eaO{Z_NWR)&6FojuS zEgy$sH#!c9#h)i#)Oiiafg|Lq6bXCmr$Ee#Se0v!AqsIFUc@rxO)y zy5lC|N`>>3vbhDe^RG=$KTzl}iC_4WZmiLoJkmuVhlCOQ8hysP&}RbQo8RY_cgTN1 zQ<0mWp}>}bm-p33M_j>=$)Bv`@h>zG`10dFW{cT)tj@QiS;+&hb`t%t0wiga7|sjUIHIR1kR|EI2{uc)P^K}!=|OT%soTYAv7)LvkNZPZSaIMd z-QCM{_e}17$nKWAyQ6g%|Kmomppeijm9fml$dmpn z8_H%NB+u$@8;Hdm{XFF6=ZU{Svi@l~VJP#fjk8y2zZZYE(?t8-<|g_%C&@J16C0}e z)y9(jSRD(g1cy$G)4P@5@QC z?6{7>!}=A};=bW)4oaU1_CIA<;fs3=R&)4CO-{pVin|-r-7z6u4E(UW`w`uxK=(%f z_FV?1Ki}@agi48Nc{Np<*fb@~5E8~ArR=2t#w=uc^5`?6zRxH;2^1BBUxSb-p^0@C(kFmcl(b1*E;@(i$eW6uFrfJxGINJvdhQi zHVi@FUpt#!h1zzTQBB;8u@y&iEYHw|>mHy!w;I2? zc=sQd_0-3e_fJGkjW~4{rp?(mVmXjjSKv?i&vsJexk`@A@b?cK{b$XOcZ&`GN_xgW zxI`jQu9V^?q*>jPP4(v(e>Szd$$$G33;`c@=gG%=yu1H`&*WGxbp}vP?S1RdYiiG{ zKe?$rKe9AO<4NS#_4xU@J>EU8``z?#r!d^n;Yi<{+S5p1?D6il?sqlPu^K7hsmaM< zxQ4C=y1&T;R`z)Jb3NYu*$)j}H-8>A+;SL<-y2|1_(_h<@M4B5 zGFOg%1OG{R#y-#5H&l$_6UpJ9V{=*&28n@(`nEXy?2r6(Xyo=aOExuN#O3ehw*TPh zBOMlQm4$h$@Qt9<^*WyFn&pqBmqI^kH@9j0!#v4p==XH~eO%;5R_EWtFZ6Y+_3JG6 zmOgCxf+{i9L*v{Z`Pp}jQnT+RzK^NLp{(g;yvd(akw1l+8>?OZ39BGbtNwxl|2t_nL6Yf`5>tqd->%1>NEIdrLhH;Qw{kNYs#+7{fkgHp8XSmcGcw-*?0B$re_4 zN`B9o6r`mlD2-WV(v#F`%Vhi}eWEQ!pV3OMAhL9q%?V|0c_aQQpM0CxZxc67H2+jj zP1U!|Az}pQ)wXz54u8?g1Cgb-*bA3<(U#dHF79afbY%7IB|bMJtKC_a%1Jmra%Y=R zXmDG!USPC@?k)ClP*NMKVzzLyz;C_;gM*;L-Q7NleDD3-vH{y*nXK1xc|o*=|1Bu+ zPwll~74OwvxuXQDJJvv6U5D!^&R5EiQ5@^nJ^ax-&2c{Of4m3LVL#s0Tjr>f5u(5Q z9sLbg2zSxGoq`wiXK;i6?HBrcMfb_T7^X#`oKLQVrN8_1LmhJXjqXUD8LlyzmwmQq zy;_5lC|2DDb+YG=cvLLDJ56A+N0*$TNKtcpUS#oCxT6Ht?=l&;`Xfha z2LO2`kRBNWoYS2$@|7nZ=Z#Vx!%b20iUx_{2(2O1aAhnH^LERaAq+OMlxGZaI6bnZUUC7w{6{lqeR%HWIEl<(f>}VOG zP#peif>OT(L=~pfRHM0D>}0`c2e;qvCp1?ITMm~Vv z)$rQ*Rm8`*TZa#(kN5js;p7~@Jb923L$N)Fp?CxV7MOlVY+)r%(Pba-q2 zn6HRL9jO9mVq#A}6M;MK%vhr2%vvaq5(u0B@fEb|5Y?k}@EUg}686l(K{N4kodgaw5>p>^e(-6S12YhC z~sGKCTE&f9H)0JFNrjdEjsWE}*PS;kZ}xXnPPn zjT_WF{)WTC;nA`9fI-QL;K6Ts91a@Cm8gQx!cA6~Qbaefc((eb&!8GDyzqe^V7Y&r z@+g?hPnvkJi!BU;4Ua4zG+lR+JkEvdMQsS<>FC%{&R`!hQXsy_a+1ID)&bcub>swqdlc1ll;)Qd2-`Kbj%=;?z%B8B8z`uN*fzR-od**mb|o)2E5EzX1CE&9BMNY8)Fj z!>Gazf};i&)bK`4O?)ssyd+T3K?nRT`K?1<-54Q3ojkFT(+^a~M*_c1qvEkfhvKQ| zIy$974ikkgU{t%l!>GpCs5B5b1ax&pv^E(Am^MgLIb!cR@!R{wv;kiTt8vFnXo%*Y z+E#yD8rpW!gpQ~261NBNcE8~pLah;1;?iy)N0ZK_7z7|^;ShrS@84!}m%S>GHxgI> zf4sd7d{o8NKb}AW5d(J-&fHXU?2CbLNchRvMHsg@MWeQkln%)}MsR3roEcO)TP0B)K}9fqI4Y3N=!k^bl0<5)4L zUV9j?Y6#8kRr`9>5Phu0teQxu`8A!YYb*Z>xHky@94Ie>yL;%^;PTYau}MKH;8()O zvE8z~P(|{k!3&KoW$obiI=CEH34S{%c#bvqH@p;LZl}tfPfo859XoSD$Hy^jl3+Vk z*Cz5NyLt#vbeVSF$c#eNU@n#Qc-@I&m(v!?)UpfPj^j`WU*#Zoe8NgT^7m%Y; zToS=wy%RS3=5LP-M+ON&b3T4J`tM7|%5=U*v;@RU=S2|e;$wf`HyE+oSD5?;%&ivU zAz-X!;Rv3w@^y}o*6_F!MKDB+aP&ok#RKyKryxAKCB6DU8Ct?~b>I zck)+$lM);{x+c9-{)(f6rp%icJg?9Scw^Da)J6vm-C>92H5@k&gqs3X=Vn1+sl;h9 zf8Hw#PDNz)!tlF+@UiGCf$+O_mn}zQ{uqLKJ&P-(mUy6`0>QIznfmcT!9&q*Nc&aS z#Mc*c)fCSo;Ero!)$jQOiY>eeVLMPU!2^BaH}pcGm3|ty;?&?zfly&h`e|^S@oyV+ z>zt{CMG4O+o@#JX)OqY)+|}Utq(JjTo`Wb!j2^W=G=C1pPA11^26a<#2mE!T zoiWFD&qin*B*LHL+!K!V6lGxtJky*4kM3vYUWoGHWpo&;JG;jX$6}SundQ$`HlI?y zr?RP%~ThV$qda{2b{t-FE4+046Q_-L)>vWaEI+I5UFroWN1!+XB$9ZTv{AT_${t#tLqNBnD=j`OLnJX7XWs z%RLI;9vF*WxYmCk*8A+LlVN@SNwB`gjdg;=EhRJjJ3!PTBJJ3Z=8{ zfO^?Zn-sB?AP*fY33gP+jJme`LX9r(@X`RCc3=9zybF-&i~?(9 zBU*6E{15Q!H~4kt{5SFIN%@8F627F+u|ef~L&ttzzB~FiO`7m#G^hZrVuMbKKLb+U z(pIO##?fv`ccQGypM*~3L>KMe7QV3BERATS-<{WmNUN64e=iCHOCv{MGaPj6M}Sou z6n5FCHt~|3w(V00N|i~0P++B>>YuV#Cc$|G=iqBFR^7zka)4PoznXpPA@Onl5;cJ( z*%0mBDcO$=?$1CF`aVJ^%5`X102=isJfS$`Q8KqOI5UBD_%j!vRApoB*}HxpZ6 zRjgMp66j^hd6a%qm#jqyt8Fw~0^kx3Rkd@hNw2;f#PoedwfU9DI+b_A-_AyL9@P@~ zORtNf!nk~CGFCl;^$$O+`VD^gV>m>-+stnCho7RRE1^(#7GgCU$lEh-0WXm%2!xf( zdjQxgrMMZ(DDaZAkUn?Km8e1H$Je-iR=CQdiN>*7wz%d#Z%CfHEVNFQ#poA2bJT*; z;if{XIOeZ^FJ)YKR-d$S)_^{hBRWU9y6!M8JiJe|56nuqkFOBA2^K$Ix@d%7#}Tq< z2Q&xDO`$c(o2&@It4VbG19=CGwPTpR{Z1&cP-iBjC*x35C!=~O-ZE3WNPqmwU$Ikh z#<65$)xUwa(hu3wtFET{OZr`gA40#KLciT^`VA2J!Q^nCEKW(nHc9v49aw;jdNn~c zUKFVal_1<|O}LX2tk9|ewGM$=Q!fX#yq8ywcqgK%HQ;hwlom#p9irBV%Xhw_*8`)D z?DJb!gMpi%q(z3p%%^{5)8d!+23iW9Mgwuc1y;xSO^a^?lAj@Sm;o%))bdlC4_Jwt zFFLbvrLS;xr6AZimBZcZg_emMexCK??t^jR2?p@*Zd8uwqwpUS?rua4!T)uvf9PKT z)G=a>m46_Iw;WLzHvuhBOzYZM+!*bFo9&Ptwb3p(IN>+OLlDEl5!(^SYg&rXPXEKQdc z;B3u;nIJ3eL;h^o-~%3nK=FFCy6*40w=j8M<%nUn^id$3?ukAk9DT?xmL|R){XMcr zf2{}#r???~ewHK`y4ZK(v~6p#$R$R2FZM4m5d5*-e)OKj2wz-LU@h0f2g_(jWMEKa_p$0yA&LEG^}WL?_1#pH zk(K)OrP`lE)~xgg!y+x0^V7D?-^QX-+%=(R?SKDW>REQOdPb>wetmnZdYbZ44<=)^ zHg@W~-q9UEK<6;~HR{#`;MWheX0(_B{_1 zbz1br9*=5eXnGP02^E#$mn$_7uqqGdmJC@=FcL@B_r-VdEB>h98mNqGpfcPuxlEsV z?f_NI*tnB6hN>h2!e#gz6&^hNVi;Qh^)R#CHyrd?CtE7aU5VhLt0#B|JNiM~mTaZ| z{HpQbo&Dk0#23h(D4Q(>+%1w56?)qTlO+clu^)`$N1=GB(mr3q`v|Xkph)@wgP5hD z^|^MxN69`tmRFI`Vulv8yYMP<*&WpPpX=`>?9EbCbMFnP<`mr#MNUW9XCN{c`#`k| zaQ76oXv3XiKZ}2FqmS$_LTz`?_r+(ReyZ>PUYH8nulR`C6gM|E37Yx|fliUNdZTv- zA8Wkzc=%Rt_wK~g*}fDq;cO&K?VMlb2L&7&^y(n&zj^2?3gnCMqUvm300RHf<8-LR z%VP6sfC_L{P5|~j{T{5{`JIK7$=F^Le@=@;mIJ%Qm|2kd_^ zq$NQfF9+Pva{)J4!<8l4vSe*xl6{7Lp9#a-vt3Cr>`wjSUCdOq!ATrSU``&^5L+|i zt&+zOPaXrzIs06eX?T=1-014d;`Tuf0(Rzd1ePKatB)#e7D9-dw1)WtVY4XmYawQZ z6l>bA{097C!R;Se%j^zyl0u9fY}eTtk}3vvx^-4+^&bO{{>l4UXg9!iFOX`6QYh8i zJ5`C0&Iq4nm#Y-&=UM4JDurz%U}HBiC9RYeO6!O?~jhcC1}6 z1;3L|#!kkTHNtk_Lg6m-iBjW~l8nyy!xtd>@03U8FvvZjci)553>FZPB8S|?I1~bs z=qtiOaTk>{*$tp_F*tA%7aGMNw*+-4Lz^M=&;ekGa&}%>5r6pbqnJNHr?L|MD8rA^ z$UoQ&|hMkxB@<8{C$LI07e2p}~9PO@Lz zD+LN>rFK8{P0-7-GgL}&H0@3*C5Za4|EDqvy1DkpDpe}TOZ^A<2FO={uH$E76pv|= zsq^=g7Ubi-Zwz?;w$H3Y>+r@HD=b;0dH4^M?FnE%5Z*UFg2nKk%&BZB^L2dG1q14xp)FaRCC*#vpWdk#%#xXz*-e z$znoadx{1juoq^|##W51-WC4)sRtyv+uvV&RkGxW+hkA452oL<|u61{f%VfGrw z8+WyL%*hwO zAY(B|H3c2RK|49(=Bz>}>MA&Zr3-ZMT>G;N6(gZMIuNu8^OyNxrfjU<;saFd@88Kk zH>9=TpP4A)NAQmt|J%{?82=y|V*_FQ=f*h(+f`_+!SV0mx*Q4dLza~>2K$BJk3Ec{ zgTbEIUud$=NhMmc3czcbtDz#K&SFjIpG-nS=aOF-+N=Y<$H^`Hj&o#y#{G_SF)V$% z>_1-M@;lb=fqra3dNow zl0{7JU`}kz)!dTHWRoO6K@uw7L*9du{11{QlXXZIN>Rm3Zj~g9f&u3tF_PB$!#juU zC=5sQ|A7`H9Uf);b$~bDSpU?hs*i)H|2|Qquv=%3YR}$XBlytNq!cZs{ZlI?CN!rW z#FJ~@I(aJfktV54lHRCHvoKUPNLn>l)&+<8!WwuZ*3!gIlBmB~Uf&l_b3Ld@m|R$M za~dr%H606U<~Z@+7{80Z)^a=i8-pIZ2~J~BC&GuE*2XhB_VYyRzo8~2{%s?%BX>h4 zO6Y5BS#&lgvMgLzZr?VTH16@zZY~DJg_rRi4pi}N>;6+cLc94^pw^lrBa6{=Wq$_# zDRKPU;f{BF`9I=6;(PG_D-OT||I=FH-|PQ^|28x#jz7-p{7KP2*;w~m{Q5uQzx1B( zrvIk{1^=sewV?mR${$bvK+QRE|BLGPjVk(wfF&OimV_)as;gClQfrNM&!9*AvE=V+ zlxqlW70*^WNw&>I15_idovudMcdld`w7oXgDRLdE)cgtGkz}KqE?a644972s)Qm!F zX|limKbMcU1`Niv?aBUq-xTJ3WULcYcFpx^W(@u`$$^@D55h{$yBLvO9MSaQK3F&I z->#&Rjdm)jv~nNCgT6|w1Dy(ZCCc@%ai>gFhfIcJMY9}&q*x#^*`6Rjwuu+(tw|9E zq=E=pj;iQo?1+$u2Y(TZF7?OSe-|-bBNX;$7in+QrJszn`_3m7dt6ZOA}#!rSMY6| zw$6OWS7Pi_D!QIaSM280y6Xo4*(>@};cA)F4%`YwVRRyv&G+jE$G&B-hFOk&a4HJ; zk@`WxKe#*guTJJ4426KII}`y-{LYN1=Jh&xzbJzWfy|sTi~Be+?%*d;2xN}mAW13& zq91IQBo%@*XUdOWP9aaJ=Z_T%(|NSBVbEuQtmQB2Sy!6i&{B>X%-|DT;n(I*0c>z%m zAXo99Slm~ZpfP3)PE*&V`K_N~XkF)tZ)BAOlK)jXqWudTeraa-jL3HA=k|STaL5n# z7r8V6zUH{_euuG^Vo8Sesn}72d!i36wT(;Xnl)YgHJ2k$q}@3ZQ@+NHfE4?{@q204 z=rLh7O~sBAW|dN)tkk*9xZyRIrDBXSkCGDMZ|(LQXcO-7{y$u;wLd}EL?Cb>jQY1< zj`-)jXe{qwR^}y@&oOIG2Npn&KG0RR3lV$1LgK|++eBh|2CUNH+!K(H_1B$($D|f` zOa~qudOp%sdu%!zQV&9Q@qkLbT3;W4KToaw_Zb+LjjepQsKRr7Tc?z3*B`UXz)CeH0l<;Gw#RD|f@`El;y80J-CIi7a5@?{_fhV2ms_w-PCqFkN zl@7K>R8P829F`2aKKOU8gJJjDr_hNQG78qrtQ_(3v*Z^Xja;u0fz_xhtVXa5sWRNOuhOTyg2Zfm7xL_fB82C}q~1V0~y&hq>ivM<1VFi|^^d zv;AB7eb$`0BLaEtg1=j_D6M>Ma9Z##RLQdo?V{^gZZMpHbMz0u8`ZPXK;)S|dDc9m zdNLBBMd{O2{YLdwNb7QvBLzs%@=!v0^ZX0S?P{$19V)>uPq2VB%$jraz**CXNk9MN z^QX-kF=O`hIf1+}I7pbH3ZsX0d+A@f7BT@9c@MOgGOPFF7Y&70?{j`VKIw668zk9( z>CGs7<$Zt;i@|TPd9Yu8CVP6VKSU15>-EaSLfZ^2 z^JE{nV1*@>(I8qugXlsUL>F-i3$fztf3s=MsRDg)5(E7pK5`S9V~*R?9BUK=9D6Li zk13!!v-hlWK88aTK4{;y>K;TW|4Xy%kpmHZnT}6S7N6 z51|#iIkIFdm(qSxMpmn^Gp4C=>#{6GrfONL>^uMF0BT|1<%TFnA9n0Qc(C2Ic#1S2 z?`rd`*lm0;&iInyebLdZtjDlKJmuGowG7&7)(i>Y;#_~_(ay^k;cv&_nJX@nq4?_b z70WObYlF{)mSHSrMt9?Lda#fG@x(~%5`1{YGBpw(Ko$AzqQ7BD!MhSbh+o$w7zPx_ zUN96|mOjm>p3gx7cm!BY5^q(SIO!_?097P#2%L zDa?oS15_GQU#~&A7LKvlouyc35Xj+#{q}}Rbcu@KVBu%2rum7Z!2aZCy7Su7@FHbx zbR+feCdK?m*b6H@+Qcyc=C9)u%r8$c|7NDyTlIZp6G1k~$@fX1M$^j?`xlenBR zL(Ho{NMOFAyp;Y&r%ja-*=gN7=n^vd+f`zYPOB2R|C8u1_CC%?DJwOC@b?H|lS=E4 zMm6_+t6nNUQ(gx3wTE>?XvJ=}6?Pi6GN&3`#QP`KJc!rEI%-(#;t~?GR7?FO=%lo+ zSPdY;?a$l%`k_a@E^D(Us4XlFTq8TJ*wM0|Q1CjCLmeyCh;0Q~fPwA;{gS7rTfS)% ztj(92pKxcI<|oc?NSvIbU>~3K9V~_Ua~p(bYoXvui~VH=#y)n~crwc39}FyPG>RVv zdP;PV3=`YUS!gf#q{k{gWX`u_OH%gdxzk+J{Q0$=!wR zC9L7w7#Xij)IodN92wU_32-6p`pNmh7oQ)N8tk2qd|U=$h~)B#AtKKjh!hNyCh0SJ zCasa>v3=~ZSPW>5mUWPcE|nj}WO*$7WCdNhkXDu_C1>hqe@2Y1r?8L45<+|zK4!ww z2#H2dSj;xv@e-%`_8o`wf9eyd1Tg~G+Z4W9uZrXbK32Vr{K)to*xbXpqAqK}o3fcc zVcO4>ePZzo>|fc?)Ygf-eM@_BBY~(Pkco#;?N=@80+kC+N>LbCoKLXr7p3udIfG|J z=)_&ivBWm=G^reWWdhESICg9ZvGivw%;k$!rNFUz5sJ`ix?Y`b2XQ#x@+dDHiW?pC z>8U@*dVKmHU_J$T1OP-YVl7Tt;ho%39Lo(kMK*>uqQx3kayG@V9U!q98Lldx9mcBq2e zxF$3$s53xA9XEzqYF72P5Er_aDZg8HbdN|kqHVS8Xy#yNU=r_1wr9t2cSbr6N6AN# zdy9oItW_Jz zvZiF1{%}WhqZxjOvG;JkA?0?mz2jxCkaJ3A^}<>B&g@JRQPw3-c%-T$%xseT1hWW& z6}u@Pa0TVwa_lc2_`Er0pZ*0RqQHOZ22k7Toz@R75$E)Q^&0VS)vGVh#VZe9`77&v zaHEeeAOnb>Zc!dW?MXH;Z*D@B_?_=zVyjMMGSQ$DIZQMmK?n0jJpGls+6D67_8WoE z`DzD0wa4BppLy@#_3;o4xkx1iL*|O@k~b*{YF8g0E@Qa`vQZS=NC|$i(?Wp6VkJ5M zi6Z6<{{BQ6(NfT1 zzAtm6S^SWQt~wz-+Q&NS*cT34p_Nm;qlfGe`!KiS$ak`w$CD}r@h0O0l3!}gcWbE2 z)g*#M2nQj}>?h+pk}n6v32%T0cMukbNU#J2Rg~3(CXmr=4EesTW@=X!-Mswp*UG*X z$lGC9-(U{m*ki%$16JnnTdDf3_^m=Ggx^-{gz(!2B)IWVCQr3^!H6YBA-)Q~$W}1F zKl`)s)}&OepB3_4#T>jYtp3=j+ARnu$C|?M%Z0ecvvTJ*et6A40g$AC5qPOE`&IVU zY9y8Y{X=8rlW@!6Ar;jJ&dtzk#4=l${b2y-vyZ&t$NejXeP6}Z0)xfl{ujwu?qZ-O z*}3mfs<@{>at1dQNC-Az11ksq9!aa-Qd}UXo)J~XF$-;!4v+>KwBJhm)*(CaU|R~S zU&<%TaMCGjib$ zJRwKwkSVFW2Tt|`puw5)T<<-Im(fxR7cvTk%aYO9gnS=o@$-jrNrc-sHLwcOAJObxqQ!`5n8(w(prA@(i>dzOaXpkeDYY>UbKP6d1T8a0`3 z(y*H~Y_Z0nggDGpu)8(vRt>vD!;%+>19?OCuZAi3^%}lG!_#!Y_O-ynP_U&Mwn@Vt z)UZNvlwHU6y|+?mF&%n>ApPGzz;Z8euZ4y;i{{>M zgh6L`H0(iCOhv)8rzyaHYQPK)n5h9e82#8bW=%GK>RQY+4eV58bJhJg)|{ zXgStJ{{q3dC3)#ar8Ds({J$801N|oXK#J1HOrQP#)HyU?_Ry2*_RT^KNgIAc|5I)3iF5?MB8!7wN z+fcKW+D`$#(-VNlx)Jah`!sy2wP%gRM)J*vtA#D{c%4Y@uK=2Ahri z)h7*6euqyGFKxviz+o`&!Sn!%N!JcKhPx4F==UA~-rEzJWU+pc=`M@*3W^DA>B9OX z`N6Ga%B+F-u0DN!qZczDt}0z^;uOOF{28`FoNthur?5CTJ=EtidHjGP zDg)fU;9(Nh(u7?K7C-rVcRvQyvaeJn(>28cUH%D@UBm z%7StrpH*SytB*X?CJt$M>{?ZYLd5)lDNAsip16s&rc|Kdl;#dySm! z7sOtZDUoCYu?oDPA{$w`yA&rR5Wg{1xwQ*%O%3G$zN3S*(q+W~tMg!BKvxSGBHBD5!T7rF(+`h5fYT2HoYN0~M9Mk+@Koab-FixO7>X4) zL!{+$RQf1rau86M=O1Vx%zlx#W?J2^mWaqW|6uk#hUnJ*8V34_7zuh6qzY5B~3YYvV zgE$$DMcT;B0M3vFAZ|j7(vpLHpb>2J9z@3@yjf~_2mDP@S1naQl!g#L24fGBF<(?V zo<-=1fwpT@)q!ANSvtx{3P3<^ed(Bl5G|s6QZeJzm@?!_0#Nx_u-J;}*_9xaRQ^4BE!Vb!Kxd5B{$y7mG19~ z9=YXH5C$UL><<^mJ#zh)B z-96K3%amUaW=Z9c$uk0eiwML_ozJ3xE+{T z5Z+b5NZp9n{dRu1aa0(g{XQ%VAGf2>iNHPEWw9hb8i1qxXd<#$YGg?*_bKZSTy@z& zL-s~qm$o?mG%83E>$LHnyN`mkMv7WD@eriaG=}hM1zBj-5VF8#vH@U-d6X}9C<%sg zAdGt$CVA)BS5S9@$teU7QC}D*!Z8lq{@jsRylUEk0mQVbRv7`ARy8}DQYz3b0=48Q z@f@oU)Tq|+@>{DH(B!OA!R5wgDN%N6rG1`}VsMrUJR`;a$HFnf*lg@x{R`~KGx43| z;8^57L0epylt&d8SxtP2HZ{t}bi}*Eb{)9h)5(72_-C!IX63bCNwrI|nXyhX5;b%W zQIko=!Cq>NUSw7(FW@BOe{subi%h`70Y*RxU52c0ak9;*>POtMF1AMW-jCHJ8w7=l z243ht&mKWgLjX8UEk9F%e%9m$wLgD`(nF7l6}ve^lp_~hE6Ok&ZsVcexm3g|3Rc5D zggOc^6jtELfkGbR5F%&T=V47wRjib(06#b6rhONF#>~wT5&{^0==^Aq>c%IS|VSJ)pcf;+(|X;l{Ne+un#pK4Z?B8!!Jvm@>BZ@uK91obd`_y-F-&h?~3Zk^O^Eg)pKkdBGoWyRA3BoP&WcS z!~o}!;mAn9Qa+X88zvN5R8Z2t@c=F19L~ilB@A0ulkda&5*Js4w(Bou|Ey5}C_9aS zR_Z?vY5sOP$g~uUT?sE}nuj@%DNS}riEF$K@`OD`o-k0$^HJ|XJY{Iw>c<+vtzdP! zSH`Je2r+=u5No7i)NZhsu3AEs#Ul#(vvA%ogdt>i7V+Ee-643={Rpgin5=o&eo*{D zZx!0matZ0%US`SGwb%%L7In)`(GZ6 zU59GX0x^C9`CKXlJgWb)eVQWl%n^#vEQly%@QJE@fV5}NlFsOOk%Gz8Fj*Rg_7r=J zf_ZPKg2~Y^xf-U73<*J3fhXnjJqrAb;R@WR!A$|jZj3Mlx(`o#j)HB_utgfSSQlNV zi)Nrk`w9iSQNxyK*isGKDCNSrnB|_KV9PXYnTD;-y!-~3Tn!@we1?K)r(t{=#?&xw4uO4X zn}Y7HYc0~y#RA=Ge6LfmcCM-n_ zZj9|y73@?ETdQF=XxJ0R_ko)g|7-X<4Zlglw;10KE7&v*yII3-71-ANuVCN2MA2f0 zhHcR0wxGpz3U;%GZPc($8n(swK3~CBY1o4r*4D5m^8a+j{~G?VhHuvJE%{%;W@*?Y zJ-*ZUL=2Cc!2dV{nDnG*gKFO;6Xn>imwby;cTkHD;j2uyqFP{nqDDiX7pfRk=P(gf z=ov3do@>Mn22s%48MjA}8^78IuMu6sg8?N!GWEz(Q$1`Nobs*CpFVe^I<7b5EC16w zuttvAe@W-OtB-M^de#M{r9DEvq2QF@#aw$R(m(3uG{eQ92gPx9k|EEByqWUc?#;rp zHuAYbDm8d1^X`y5k9r$)-Xfj1Sm!O#c}ww>@gI2v`Qe}U(x@Tt4~dQ9{~t@dO&T;| zAI7p(7r8+fc^FTk(=1P%OwmQA;TbJOGm=%lgF2tB^VJI6eclc7go~=qw~6_n<745b zb8OW)a&(Sdox`Vdn0&$yAs5t>GqBQASlmhaKIPyD9k5Z}KPuJ$xFr}>9q~eXEaY@u zt@ESK`LS7dW{Dtyi3Lyl+Nr{%4{M!+*(tVGYuH8&+eFy@3bsL=tl z>L`+te^_mt%S8wpDV{|fJdtwXFTevMAd%%Mi>A4 z!w0aSEEkR#9TSEKY#N4unU!qqB2^8V5b!F*jFXSvwHJ>MROh!^CmE{~(< z`RZ=$FGm9^Mkf3&|Ao|L9GG35S2cWfKIqF)6))*|U>ofrH<(_9!kyAap)~6LHVX$m zLPVKs8_cvo zZ|YgLR>N-4ux=#m>lEx}4O^#SHwmoLW!T6f^62>rwo1cp*05W3x$a@5^q&&N{~CUW zhHubiA4HF{>?SPr}Jq`MrYuI!ATLK@DqbSn@n!D@eBm3bs+h z9@enU8g`S0B@5eQ73_T)Hc8J{X?nietYNe8l=k&f@Z}obqv137v{DCsi80$pm>SNm zsP9QJ3BZJM4uWXYUbLA6Sh0I69`JqED_5RVo`@Qz^L~zYjL(AcLe-puhNcWWnJ7pDF&= zz${Y+iv}iNuph}M_QMJ`O~XpHD7b>KR_aqdLF-e60-!bCJqdcFuy5_hich398r*Kd z#kFqAcK+>qAjK4Xfhf{s=xlt2cjGkyJ3sOkQu%;L5VdoR?*`&sO0cUYYUe9h(wUG? zcn!MV3q+g(ANz8gB3}+r6gv8dKQ?d?;q>_%g&O?^Dbf*y)X3#ikCHeweyd=Q4OFnI z6z%w8rH=j#l3Q^Hmg~qLx19a)x)Z4Z^8JnFSiKj2dL!;X{tWvKR_brmt5Uw2r(Ug5 zuYQVG!e918z6WYHd$kg$y1~Pgf^wIi(twEZVRi*B&RzSKG)cptY0MX>fh7c6{gubs zEgKFyt4+LvT{*t+ZtAj*|D1{!v>UyKD<;2{P}?utlW`=0%2p{#fRc4OcpRR_8^zxp z>HyCl+@}(G@8SHxW8en*9(#ZQXGeKz2vHI7zR;T4j{6H)L=qZH2H)lVXWli;z`qr@t|hK)553IJpbr@n(m(3##RL3iX&6+X z+OEKuR}j#yW^6l=CKA(eK6mdt-2JjqJDRDz8Hxi%4a}YI!0cKnx7=iU!$|GQHKCf)Iq#&!&Q2+%*EOjA7Dh1$SNvgn?|RZofr|}7L))3V1bOc zfxKtneYKWwt%yLhq+A|6fw4-8)Lv}ZAnfaG5dQA~bnD@Aw9e(@CeR=a3)oWtKk>-t zFubel-&61|$Cb(+xNR#lFKK;;m z!c+!Ml>6Hb?Bw}}UF!TpwuqRtFCkCP`9ws_aP{iTFYwBvUS+FS|H3Qc_p!irS1+F@ zoXuBmx{GLJi?sYH;cvPP>LEwDQ+ymMDPv5SX^;|X2tYo=ADe7Zy6YGFz2{zB^}2#$w@S`;8;4WSR>)6KhvomNL^Jd5S2UC9{>PQum! zoLxGoKiDihSM{jm01tR{Jk2l+hls72qa$=S+hmObFe4;Ie!_sS2$Ek90+PH9bn?+_kw7XY{!7?tB; zY#v)iyn1yez zr?*83@7gPk{1tIE5{^6iSHOzF5_k{wn^#7mkpNRlepK0R4+EI^h@PzE}>8x_C9w>!??9#bv_6c)V^krYNAoK zQvmN+l2m#ZH zP>$e>%UI-halU}2hSVJ&m#W#wG?jB;hoXWs&JNxBxE%9zo*OnwHSx+ zn&l0!-6Nlh7KcxCAA-LRK9IuV9am9^_yJVq6!CG^8u{~Ho;QH7I5NTu!69V#dNBgM zw^GuesjSD88w_!p1$EPz2(Z$j*nsxSy|9SH*J$r6`~f}9*&mKbRK$QbQN-cb?h!Bh z%;E=>47BlqaNrls^*r1QSs%xo?nyr(Fv1*MbOte=JBt|eg_DPv#yQl*oN9y}mHEf+ zrLhL2=1*|yiTueue-tjAyXrQ~31opBj8F2{B&KoCWi}?CX7k8946khVeOlbHaQ$u` zIt#7hREjo3RN&AP+T0bn0&Fv>i8kW{;VKXt)x)_m-d4_$xS0%1V@Cl!?7gdbF#x|^ z>!OTv(ENEb)jiTamVplAB*+c}Jj zT+SBpo{M+djwHT5vD1vo1}Yl5<9>EFFn|0OSI045@SF!{#?!0grp97u}IGBo@WpR=o>9;QAFAE7}NMv4L-q_y@5KWuu1dErb}1F!U(Sw;HR)%WxXao3ZAN#B3q= zSnYGviZ6PD1ICwfj9|9ngpEGjBNxFv!+B2Xg@6&+fUjkR5a)i}r8O=bI6ZBQHT?8I zHtfdE<-CEu2Ljev2x$^sLf6Jq#)MN&k6g$tj+vLj_b?m3%oz1Y+LO~c2ejuLkXarH zSPI39q!lON86cj2xS8tD3D^l%Ca`)pWlVTd7h=_=a>NY5paU@I5>2%~%0n+Yjc?78 zygH6I2R;OME!-HGuIy)-<%c47Mb2-rJO@y<-;Xmx~$gyAhncp07?Z; z&jHh=4=k9arZ|WaA41#nN^f;>a-c7K{fC0TUj`xUi3gAJ=Gx$z$R%hRDG=K!E$xit z^xAnI5aKLMv&S>b{}nk39C48p9N6qD;3kD5(yz7 z^Lc+P=9gIzCl>#JlfixETF=tX(V}zZ*fXIx$j=t9Ngo-G$VcIYF`i z*JHe3+|v=(XIAbuK@$vT4tVq>Zt`8iL0|68v=5!35k{#Vj0c=i;WreT85s+*B!;)# z&uiSyd*#sv)HaKvmVZ!mE{gWyT22U+3CxbqD50hz6H##1C1G4H!HF8eR_@LLE{EZB z3Tq?g$tf?o^ncuET@RK3c0lnkFB{(U?$H>r%HBV{7FTBmuOw!<)1SUFCn-5RZUCGp zp@m6}5Kqx_tc5Xi3XT}_P2Nsic1)>-A(zq-;}3(bb9sJjoHsh07jT|xZEkue7OVU= zc>xX5W+>k7mswBXXuwO!fc~%kYFVy1ZjbuRBRA}bSTvOA8* z#v}N5$;$HfPd+6Mcm_jLz60I7x0jmc zls(W7=9Z#bkIAloJASEUlbPJem@`itP{?#U5taKLR6Kj~hX9oU=9GM|Ipr#;q=@HP zrYywq7`as4adzBq`(+B)Z`bEK{X$}T>`%MtjvWXZXGzlLJi@FE=Wf|a_RnRmok^#;JSe`DT@#>yQ?va299 zcmOS~eNceIoiz2jmvOw{G&*^rn^DkJ9<#;|S;d2R5=)RIh5u~$h4|79mnKssPu^cS zqBO`UIMob$up$dTZJ#of?POPAUI`cZ_#2g?+zAjdQxI~Z2%J@xRXJjirned?E8X@{=Cr&TsMJJ8FM)2>=**{4;wpe%8kMo>Z~do~B9c2-e!jJwj%eL~Z$# z`cp_bpMCl;XX?N(VM?z8l7tWr@l(0gTEl&S7b zce|^f`+S=#=xPv@hd_={46N(yz?V}y(9ObHmW9x2k$sfF%&UO;>v2rXN%j$v4ILqn z;PPUcAXfb{mHA{1?C4dR1mR~TpU`KUkQ~F({uJ=y{HpxA&wf$X9}~akZrFOYL4}KE zF^nEn69XQlbGKQ9cw>93DoUYPuzAJM|LKCj0nRmUTr z;P%`L{PkbA<6R^OBIVEiqA>h)VfMkoyj_Ue)5Jg@TY(TGl{7(33}i?Bc?SZ<_ygmu zslCy+A$|%XUeWo!U{Y6>Jz8n9Hs>6@_5L?!e_pPz=B`TB{zc5T_qYh~y zdv?d|Qc%goh0dCkVE&VsFDHw^T}v4@l{c0Jy@&^+xSpgGWmCj8a? z;a$JI==?AOpTTZ5~PbHO(g?~Vx6d9qC_WrOqA+ujliA*s7YF}UiRDB z`U?GBBt76mI&%p#ua<ukYvELYvi>k z2B!RkMdMxCza{ameIcIqApXhbA20sYlA@ahN5^9BOs1I5<^7{_7EGpdwux#0o_4=Z zoWONv@Db%ud?v<}A(=4@NC>Qi6eVQ%;6-Hhk;D>Doqwug{u9@CL-y82hj4UxOlxlP zh}gG)GDf|2qAG?37luS1i5<6(CXY<&MfgL-4TH;LztTvIWxew3{D)x7hUFf*m9sW% zvVS?q(WaQoV_$I!GdSj`$b^>5(zp_(@PCAT*CPG^XVVZ{B}0vx%Hwb{O|l2PiRlcn zNpb1~TO2<5iz!X9EbD_>fWbLr?~t$9bSF(*OR$bDmH3NNu(^kX?ytG5W%1@5=wLiWehQN4jfZ={+Q=%Txh$~~K1V=dWj~S5h1t}3?>M(DY zt&GLWJDPWyM`D;fk2DQ=$&ZS&A!V0%Ghi^2ND&s6tKs9&FYJk%IDZGI4cA952NhYF z$tj*8`nbq~{nF_U-9$uY>1dCEyyhiaaA#%Y324N2%64qXiSjJnO(w~($9Hu1xv)#5*Z1qstCjwI zI+m+J#_cPNgiO*IGd|{c-dc_c z7u_kAz5=wOr~n`n?7gX~7c$5mnTmJNn>mabBKt@_vGNr_E)*32WI|-Y$@_>tMv40| z^D;~sl(CS z#=RK}%G>Y6fqPh+EF|qS=Y5X7To1yA--x@Dm!Hkcl+(8&SCV+xMknz`<>BfDjBiQN zv7uw_9SF?vNzqF~$5NaZ%ooiL9ZL{(`v_iX%!tAB4C;O^hUEXO5((5sVRutER&*uN(G7kiU% zq@esMq5LVO{F!C@lU4tsSD6F->tp|#ls~e|P)zw#Litll`7C+S&l}-xzQzY-V%MhacDUnQ7qI^2?r^7E@^5?GE|BvMlo8gu}Ly$hH z{5c-|e9wZpYJD3{W5ljh=Fo!+d|KBimCD;E#nrN>s=G79X= z9S`s;6e#RSk%z&)n8w-hn6)N&XOMr&?CNi+=h3v2Y47!_?ZJApiMwV!O;dX zY6fLgS>&p=WR%ixFCyA4;uCO&Oq0er%N(_ulvt@Cui(7gAR?U`^xxQ(0#=NTajOlAVV-9XTWB#PYjOmdXvy+}NF*U+MH-_sJ zHVL-NeMC;j!N4rjge0T1^F9yk2F8U?%lYN4^AhrB7PiMKafdlIpHlW(8GEgQ*ZhP~ z7^$)vPg128Pg0YD(0=}F)o-QjH)yiVgY{Gh-*{QQ}Zh(I{7 zhL|2$U-IDCB>PURbtF*qGZ;A&Xp}(j zl$h8BqrXl4p_Bp+u!3;J%vrol_kK0HdwaKdfVZO-A?6wqCK6LxVk`RbKVq$ z-x+0HpFCtowDU+Sz1yhpv*89v6B+@DluFTZsgUkl3OtaGLj!2G1O0*N;@~M*eilb|<12m?RPITQJdEFBzpQMo zz-QoJxwCz=msKl$bS!y62fmATBD~f8C)U-;;GjvZ+lcZbcVi=8?2_<~gU7TUuPb)f z0SB;tGxCARdf4hQMgcElkaB_pvW(nl${gVQtW8)Nz?@({8mz#gh);9iD<$#M zIDY61k->>NlNJp)kS0Zj;r)A-ko0nR~Uc&!IUd&3X;AGu=7Ei7_%3#V@F+u&0Had z)%kkaVFG+gG5wAGng z+!9~4r<4kh82W$c_^RkvL~V`7SIw{=h!+XlsJ($HO~-`krU3jCUok@yWP+4r*fS6f zpUH7pBZ>6t%>8NG*9R^+fDK59_Ot_^qNa)SSlYCPdzX09-9kaF0AyAbX0s zI;0^HFuUMKehl01RobYrQ5!SXXdBOVZR2@VY&ty!lV_{4YW+78hiB5*L5usrZn3H3kvH&^}| zIRaL9AN?W6T4!~w9P!099JoVR%vLG3J$5O(7FvD@=*JpxNnA2NH>uzGo(R1TF`z&E z%~Ov6A|HJ-9w-3}7StB!p7*mz1|ERVB&T>2uj#K!@El4KuT(O(Xy31aVF<5KQ zKHLoFOE;e@`L~pyE#x2j4|pOa{$uMQ~gQrod3>Mb%oq)F5a@z7NhWCj6I qe$?w;Kgt`9fC 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

    qO2+?vTJk}=+*$d_qho+$xCgl5AMmB7-!dWr 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 z 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%0AQOAPLquY$xiqK5 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ⅆ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

    4f0V>Px?kY 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ⅈ+`>q?TLs3QV`|!qe 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%0DhnA4ErfW2&B~LhC1lgL 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�ajOx|& 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

    ^_9WQ?)faZVRK8pMm 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 `@4`en}X&!5@pvmuAl2-fu0qTK&Dx&?uqWBM} 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 {eQT7 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�Dxe&Hg_NY)d znddl4>)vVo340N)lc5`SS`KB0GEWr0IxXK^cgI|vRzTP~?L={H6X71`rkCro-{9-n zWnXI-*{RE3JjZugnnb?K))N<0{6Yd8>yuhOgiF5~{DwT<5Sol1#p^T-HsK4K#WPG7 z611K$`7fCCH+2VtDqQ=G?TT2^tl_|V@QW7LwI1BdFb>y)f%6;D%CZzJst;^th!!?* zYGTBmI&gFACW+sU4_A!qTuu|8TAbgcCmAlHlwCMO>IzkgzN!=%C(5nMr7OWcWBXo-t^fCz7yQKAoNl7lv^>b+j!t zvc#$WL-aOI()cHe@?_b#6+eA5PmR@oOi(&99g2De}9m&ntrL6*x;cD z;U#;B^et=emu=!x#D-1$9e$d~J7T}Z*R6dk2--5sO;wjzomym_eTnLuRw~uWeiB{DzJ#_=S!Zb2%%mZ=j+k<2Tve^gg3P>!vGQYusT zyJf_3yQat@W??7Mk{^m;LJEh=h!SH`%k4g>#A|&Q8npYBrO`O&TNbMMrpTM<LymEu3&Apyr_mq z6=ck1mJb+rsV6`|dWv=k^V^9kN(ofdJY0JP`g|=cHnbnhp`7;5=m%MUw`Bd@lJ$4< zL~!jCP~A)mRa+VPgxZyah3c3Ot49>BCQO}I;S6y#DursS!tGvTL{;?HPaZ$oALW2{ ziehX`Amc$L?9#>?Hhff>d^x^vcYOW+FPATPU7cQ;y9@ibe^xIrV1|4hDUK~&28?c# zTqc?B%oUsp$kG*DY)4jYl)MHm_NOef?RT=ChSYW3l;r}h#C^uOW^sVfrbN}(FtaC`TZ&QGeZJWWIv{Y9_T zNJ;d6=&4z+hduS^W!-yf6`^1ehaWzzr_Q#_)>E^oQ$01VN0!VaqT}moXHUIh&djN` z@S8|ujHvo~`3R~P;0w7Af?Wk8ILk!s`Sys8ZZ*^7kb$mre(T?L_@&ZOoc63&E9@Tu zU-%M5!z{XjTC~YCMLkafRV23bV6n z`2FV*2Aq-XC*gOt@T)e1-?e)@NgREygSI-e-Qm~m5(&S@^F{c5;J@yXIOS*IFYy6`KSn?ZE;DzzU0D)>s|Xu{Pj_v|t?NQ?caRS;kcHrd#fIQ&LvR6jbt__w#WDFit`F%dBbZ}mATt^|K?BExjFRcJvHJ<6Wkn{ zw~bJ+m4gype6>frY~%e0miY*pr1~>2ptK0qk|(p()ECHgAy3x#N_KY}|C>%kFwUQj zin_@<7;)dNf7z;oKi^AMgB%z7`(g-R-nm~Fd=iSa^KdGm;56#$#>=@&V#07S1RrwB z;m&V(Eb{}RL<0h$Sl<%xaxecTcpr7)Mpf@wdWrZ?i}(*4`}~YybM4DLIp+6Y7WyQm zA9ISpyEs4dESfkk5%(c3XyhbCMCZ>kYxv^%`p@xtXiY}-qI(pK0J%Y1XxKrQYOcHN zuVGM3*hKe%4peY9iPBuZkHgm!!hh@zA*?;wL-=_Tc?hQv7rf3{2*z(_5b@SYS5t*` z61yXMP}J5eO|F05hTOX0{HwkdIp8wHdA{>oD+=(72}N;DT_87{Kfi2%IA(t^WcQjs zPs=vt=S99LQ*98~lI*+01qC!ElMsk*{w&AqA>0c+g%AeLZxBj!7i6}UU|iWZ@SGFk z`P-DyHGjU%V$I?D&-i-cI=L&vb$$q73yD0g-#-ZeZ~6fMK18G;`p0+-(YM(Ab05KO z>%&C^v#9>8*1z`MXgsDBjHj9^=eO2O!LQa-o69tzZ?vWc*Qn+(%5ajv$@pAL^lo;~ zmOQajEwS}4P>Zg${zVY=Z7Eh;9$H3Q_7E9gH*5OrIkTo;?PRY%f>E{V+PRU&_4s+Q zdAhZ4jiK5t1R>iMWbM(u`-t$;&PuQ!wr{obTl-q@OWIjyu6sdA?b|}wq@8CCNbMYs z!ROj{KE9sq+tcRTH{i+>)xOKrzCo7Ngs~X0LHqY<-vJ1=i;vm*^ev*S*U&xf#ZUXD zS^Kt&xM8+hxT1dANHAQu-hyy6*{>#A=nFW#TlsDA0c%|w0SV%Y)Tn7yI6c+zk3{LK zk%eziX2_rX%B{OtF8OG*VqQfL7AR=qV1t-`x=+c#wlO6p*fP0*4U%(Ftd zK;_LmSA#P#N`Ff+%3xQVbq zoB@~a{8Tr!%ah~=(F;|X!}Tx&oY{8B%FhY#`-KWqyT}u&UGh?V436v#z8`$U#r49$ zSKthr)ZHq0^;sfT8E$S<@3p)hyUO;E4zgr>sE`09ordFeAo{G53UIrx ztUpET5?QoJjnWFcKb}w*^3NW+kY>J^F677;)Th#g4E=@}n%9No9YrYUbD!k6a8&n{ z@ad$P;610u2TKSE07+Siyd=p=`?gkBk4j2llx$?ZF_b8uk(aR!$7#( zrRl+~JTSIXTjN`h(k@FE?bO4&`A|sTB8`Yviychtqyi!jQQThQM0Ls`OvB; zhrjO3zI|x*!zHLhcR=ca+w*||h_ZZiH$@iAlp790i3z^j#MrEE;VYUP<=3IZ! zpZuB6>4blm9*?CWlkLAlb!)@xRoou?EcX8_uNX}6$dJKkA$A<0;79iWNcs`=7W>dg z6`Yy#2&|ov|7@`7ENwz-(=F8`D75`w04s<@>valDSSxhF5+58+P-nuYFo)&MIp#5> zvh2eU>yE|pz}b(!#BTXu1L!R6nW;PsIW&_{y<_DKtY7JaDlamyUXxM#xw`UMkI&s< zO)qPfKh3tKib&^GtNgFnvnoCvfYkWCeScuutC9tlGcom@XRkvbwD(o|v3Wk|?(V&k z`8`%!9yx);!2?Z>KW+E!)85_S-N(H9Tkk&P-Jf_j%zvMSTlHE=3~!T;dLzyCxMCLk z&-F~-;2o~r!;Vbm=xv{HieKm7+ZeCz{QF|K4Cmi9z;yn-*}B%dFel01I{)5c?i&9_ zgu63`ahz%TCXCyA-Ou3BG3K^ziKTSiYhh|u7{w|eo%ed% z={eZ@Lhn2AVcDE;mRn;f4nHs{aaLWjlHLwO!obH$JtN_d5~ogeB@U%T?$M1Ku0gES zXtH&VX~f^gj5v@v#3f!jr7Lj(i3<;!I3Jkf>8ji~Pp^MTR}^%i@Tu_HYRPZ7wt62> za*_ZXY~q$$JPBkT89>-V?TK{X@ne&dHwB}U^EY+!1l}f2;CD2Pia!G()%6>jOl<0a zkeqT{q)>Y~faXcXjBUn7%5$C!Q2_%K}ZilX0-aSXNO7do~buGr^7eB2g z@UY3$g3ODmK0U5L_MKj;Om3~@;^p^gQ*tvp{LI6A{l7F~y4{NU|F03*{Xc8Xb*?oK z%C%UlS+`ZKIh@uMvp&po?J4fwp3O<$9=`t>NNo}l?m#ye(+?cS~ z@i^H#`6byDU8@eo1nEYyKq|REcu0q_ttxhNsl% zLoZ48ZEZiwo(A3%G5P2GJ4KJrv1xk>MUQxj9S+RF-Ca~qiBem@;$e{lG9RdK6~krk zFa`Sk^|SkjN!q_AhQ(Qd`MQeE0*!2TR!LBEiyGB`EDFRRb2;Dz-(1Y(S80H{V*)7Qd5qkf z1qz2k>9*Me)MxaghD$pqI*`clVZ<#Q^cVimFsJ|iZFlap#yZ}xAb1_`+l+0wu$dvh z0_)?oDcwTTv2(U3s7OsKnsyPs&P&rpdn7o*8_uu>z#As)>1gMD491pGqHLUM}-trB}Ghhm~I8DY!9r zwX6_UT&#u}n@F#*yumLt-%IqTWn9%NWV(b!T)o-oi_2PiZ=zvyLGaoly|1UKqEX}{ zig9HlaZ!i(Q;pT-rw|m$cmCGOe3onN@nJ2A^buw8^{;lj^}>F=Pw zTm2n)yD!e=_{yQ{dBz0;RCWjcmQ~q1@R3v99e7u-hllI_+<_mi@#)}0&t`DBT_C~j z()VQ5!HF;l))$j-g0JzT0+t#4&YDmp+DG`@D?oLpAAg7Q7s{VwI9OrdRY$-#y)ULT z8c&_Lx=*5X6@2e2S4JQ6ooBgOtW2awy|(OZ2w@~oH=DpPzbL9fSb(9?LJD%7mq@;z zNWLAMb-c><#*P}E94-PC$ngUhMr7(x)l3YsukmUEdd0q;)F*cjg@0xi>rPF>rs0?l zQDk}>VgIOm6p$j(i>!@>&TnlTj$i#;VD3`0ZKdtzNM(AAZuWY>ug(2-L~@jJBrx}`6YqMRKLp99r^Kw1Bc#mF8VDzd3B#DUr;i2 zM(y;v2f3@;cXnNK`y3^xTSoj<(`VdRckhgH&I8V#Ubnb?B47H~6~~{Laqa9mwP(z{ zwz9M&(s(^BRGR!7*j&DnK>LVr|Kh+Ak;Viu*&Nd?M=4RtP+L2l``o7!3R`2>$1`h? z5PQb_*q(LS5?sspZt5l8!7&*~vI{^jGEXJA;=6w8$AmrjWTDQ0A@(R4Vr)s~IIOvS z@&!(JzcoS!aK9Dhm2AawzqQIuJrD|vnwx$CCnf;O;Js|hvfs@`Q(aST*ub?GE?o1R zuq4kI#u)@bnOzX9gi*7>a!)-yqYH`#d9moPB$hf#23S+KLXO*m7nOiVVJ{NkvjliC zy7IX={munkj7PrKqDS(zZocS#sksOUF^gx@6E{4c1%F(W%VvZG zh*|0;E;dc^>BM({YbImj@vk{K7P|@XaDDgU^jAZ8v zmcX)1W8AVFlSo~Jyl`pM=9C=b%o7bg;aW~#G`ZxP%SI0_=Hr+Q#to09ZZ1J=k1-!8 zS#ZCJa*sPEnf%6Z<^!%!U(TFx+4^u!C~iN}+g^F*b`v+U@|i6qR$9ARSIbT3t^Da} zIYGmtG6oG#wyH7hhsn9rw;(1glO|`O-+HHo(tEsrd54M)xwqTPXC?#a*$kD@06nXa zr!xU;t+MK7akV{;G_N42Q(o@h-;Nc;!>AbooyoOD5P#uUL41<>7FZ@Ta%l4d))385 zAz--~Er_ZRq;bPy`YT-SMmH$%^#*1?d!V*`l=@kHrX@}l?d|pkX6sKiQ*955ACk!7 zKI<(^Uj3z1muabYIiqDrbHZdIeNngPFbjANGp6S-(|Na1B+?1O7xGRJDRlFn%gPd4 zzyW<&v;j`I&EQ*Fq_w=hTfYF1=u!M!=_LLrzhq;j(?jx$v`NIi5^Ugd1ntY7Ff_9f zWBuRBf+3h`{lD2twbHLBv}fH$!)3-6%i3%rl)%=n7{>j;R80xtVN?x> zrRNn0Kf&?JpU!*#7Dm>u)^;CRnQ?w(ooX3BZDg%gvls)0LO-$s!_Oyz9F0s^qKIVs%>vJ1YAKs!q|Fj`h84jr%euO6Dsh{;8 zQ9pB~n(%&1*LZUMceA6Y|IcG;oCousJnfFP9%2`Wr#u9A8^nk}Yb31__1JUj+WgAWAky$ON76J1Thzm7 z^o!{R8K0T1m+NL!ESXSr4OYa;G+spn@l@Xz;;G3m?om(Q^E>HZb2H!Yc$wWXcX6UfeFsU(Um6r#CNl6ahx8nJ!5 zVw@Oicx`x03##;`8l$T(I0J(INX848EMDU|o3M>y`YJ+%DUd6Z72A*_STqx<0Q2M2 zM?{)Oie^U_b8vEMi%{X`%U5@t z?WT~ByAtwt$ZPt0okuKhcsEyP5_zJ_>GfE2O)HwtX`%Cb05ZSd7@qg5wlj=j(#po& zb$MfwFSH|HDHH3HF(oh5_TdFcT8bFGBR|&od}Q%yv^50344AUuSNVW}KZO9`$;qjm zsWrUPMp!$p24aPkT;UcUR#Jsq36oP!PGpg+{m}R}3pM^yI|F=F8O$${#^pXjg|Ns< z6GR!b7$@>@lWLf;@5!9p+5vjZJok34rLsEU0QvK^r%41&U`$v|+K*Zf6Sghf8DnC&cFy{$Q{$dk6qsFFNtRU=lJ*nqYzG~(muNX1*}z@x1BFJ<){&gVG}oQw5DZErNp2l(g_LXN-ffScG2&L)5gR;@ z7r7TM`l1w>TtvIsETQqCQY5*3O!BW|lKaE%ACuf04C*hWIRG*Fz$(Y9Nwn{MhnzTX4->I3T3F46Nv%k#ZBLF;BDl zi*v5|LYY(KCDKmEZ>n|syxhit!b&a{zf$q6k`%X>LUpfuwm4HgA2Lh%xhy&JB0WW;z$^C|!w1e30odD0N9qouylTD0opy^At7-(C$Kb9r(2LQWjyWUM?+D3f5eq zfK>T=RMRW1BA*7q%4v741aPAg66rzg_0+y3h4f1(bO*o0o`29V>g&JJ(2_#>r699h z<4G#rJ;9C}HRbKeB#F9YbH&Rd6=ul&Gn(j*$UWDKH0S}bHlbZTR++w4=Qk@$|24Pl zvJ@Q`Kk$b{=?(d}Kan}dD5)HLjbk`xeyuv`_QNt4z_gLmlFtQs-(m;jCGuxZBQ7D+ zKbfFoj-c?u2k6yc^pof;dMKPj>z&_5ViSHrrtgwl=9&ArKlHQ84gpC^sdUm(>Wym# zAZCG`XSqG=mq@c=qP8WoYRcN)YD$rqsVV;+*p59NE%>l&YHCXHK&dH{uY~GJEIX(t zq@O$$^-ty_ZPe%q;}3&=G_-v4=t91eX+67ow{etWphia}_YoR~QZNeo_+_bSyYeqf z4cb-N_{L4oW^#zGfI@3xDV}Izw=#7z`i5=6vd^gTc-N!6g3Px==?Atu{h;(0i+@Kw zUF-S~!A{zO9&04@rSnF76G?E@&)ouSuVsl*N0?kjl7_5SUvlH#(|$6FSv)7&OQs6` z=LUK(oV+%diyJYF!)p_Jex=;3-EvufC7+Af{?4RtD$Bu#utsg>Ud+naYivO)MB{v$ z@R_n~XYg1y^4D44gZOM8%t_zE@67J_-5KIHU9=0@6^=*lx+GP*D;jV3S8inCFZmun z@JIO3E}ofr_L3xD{B_obzYI_0{<~q+QPvjrtIpZgzO-CI>6<|ZO{qw})V}Coo%CMx zV4W1oyxHDK=k=dSH=Mi@ft>e(l2wJ-^`F+2rm1nl_lZu@MjxI&_j_lbAubWz^8?M` z-Ik2ZP1cdjRpxrVe!9GyI%YWPn1s|ZFeLS&iRK$1h%!pme*e59k+jo!1Fr|LyB`#N zgvC{va>-Ru1%3SMms$D{v7(pC(ucyqJu^RzKAy1Lz3Ah7J5ul|^l>Bl<#iO!-e7RU ztSnvp1eWHA_yHOZJR^Bc20pm5p35eGen7hjE zf3gxd*41)0Wml%J!B#T1GCyMCO_XMC`%a~vZrxpp1{rSn66(50s>3UKr-G{e^Rt@S=|Og1n33(6BAP8Inbh8%)4+Y?gTl1*xVkH) z&_j_I*OVXAlwYL{jk0i#{rQE^dByiMnal2@*~2P&$g{3~X!=*y2u||GnYZAdWpOEe zH&?XTv>8kFp(biG`>`=hkCw$!=Wy6!9*@YK7f%i3@zeZR={s`=qu-kwOZ9!1jSQI{ zO}xv_q2O=WI0fU89gaWlX2=9P_-P7OUyKxdICu^lk1PHDGUi*S-#|`)DGD$48 zw?8vMIo1+p(e$|&oOwo0P`Xs4;68`dnA&@j=B=3O^6MMPgj>{F1h_KdWtVN(7VRO$ z*T2?R=FcmKKA9M{l^4g3!D2i-^-pJrac{Go_2&}FSAruB>(Xk(km4|_-dB~XnoHA1 z^r=k8TVYSR5th;QU2%KEIEgVdwGSs_JG|`FOq4_(akl!8a_f$wUse#Of4nraQeO3{ z;*gD)GUTCST=(-}CmGe$RuT#pYa%_bCT80B$znyFGTtwr1YNj#5>)t&jdllTMiT&W z6q3&e0ZRNUQ^U6`eyLnE3_G0}j2_^i5@tkqA|G|GpbVy;ivp|{ZDmVI=bds7y5{xG zOl71gp@2+t%xMh$pDUh%tiYrbfmCSB>_i^-pr7L0L#DAL_7Y44a^WB~UCiNe zD>c0QjT@yB4nw~DGv)3d!{AMSFaJzKXwX|s!q>;C9-tl(P=f$U%}!RM4I6OESgEG- z8%Eu2<(X<)&EUzZZks-e362*$v~r0)gJg9D|J~}!`?LKAe%)}!4vx~3Pgu~(*kQmo z8vTsGm40TCd)o&!ng(ax;Uk`BN8*FbDrN89UH73=5>}OL5en0R8Z6bM3NP$Vaeh09 zJIiw4?G8F%ll^Gki-vGts+?#m8S;JpoUTRT48839SyU0D6?Scd8YYP=OZ5kw*tCSxc=K}_2`TsQQ?Tu z2$JShU8=>ex(ItOyXndgjPWTxeZ&b;+K7x2rCaBWwUbm@{}&S@?&%m`hiz}OL3Hlu zyM}3hX#YKqd+M_aQ1ZB5$;CJ_P)yc(Tc^yl{1)Hbt8}~09&~1qf=J)Y5~GRpX0kkzaZ5)XLi( zdubmj!Y=F%zyAXG4OAigop11~aLROz2=h3#kwo_v)k#?e!cO{#@jR3f8@4quY`e|} zNs*lxx;2)|qm%zec@6xh82lhX4Ganl{%}bJiVRw;@>r=$T}wcn!!V>}-~Dt>zqx*7 znpR8TgyB$i3@i-0?;$qS-zLz~-zs;+2krgPDC-!bNghf}zGM6zOKfL=kB~w7N-I)rIvI z4pmR?0GH`}Nz<%voO$*F4ZV6gEudE`?ozM1&0E)vN($qj2XOjOPtf#To*sIuyig1( z1qClN*Q>zjItO1?<#okFsJ#BysteQhR(Yu;c!pG7o2ByFjLPeX&4@~7;bh3~5TIHs@Jh^fI0VJ=7uh;7TW^NJs5n>2wrpRN*y;ETPg#F!xqE z87@Ml6Z-R6)?}FNhe4DBTekWd?oL2y(W7%kF&(U`l2Be6)t<22}V_xT!l zoaS=Jt+d?Hx+tbqS(PTE>I&i}(>`U=Yh%+g*Swcqqqy~%u-Ef_H$hMhf7O-2+B0?9 zYYN15!_QBLB%Tiba;HXPg-&TrU_nF$QzTVzzPR4HX}(SKIfpY%?*AU+Cq3YOMiUcu zY;#$Zy66_vS_o_$L%8;bB7nmcQ%y`(J|ZaozI&3|HY9yXsPkR^cC~~^{RD6 zk+ro&Cvfb7i(VDU=U6=6euuvapmiqq(;|yy07Q){wsU5wuN5(&6@iaSi?wY_<_^=f zt`D}JroGt-But;f!QS~aGC6r4TraVYONM>-HH>_)4MrXt6Jm!sH_!T1A z=Q5WQMYk1}EvYT~99SzUMBI7ryM~9m4UBw%E~Ks6pZwgC*b&wep@YA|hEZR$3JfJw z9*c53BRwywL?yw~sw9gKr`x#v%8xJG?LeCLUrHT)uz>A(<)aUT_l$p^K`({U|5aL_ z$Fx3I=kf-`*r zfrzFj&v>QuCGr1iGC@u&L|YA3 z>B8AOp?XU+XD)`!4~?a+1hPws)u)Dy1shyOC(h!k)hu;$IV9A22M?U8 z=WAyLXKbc6n|~}Z@&borl zEBP3<6}$#OB1z9Ig(^(0&xtSCVDo=+3rdahM^59LI}Q;nJ!dat!&B9QjeGgRrev=$ zg^CeGgBj;)BoPu%$yBp*(u?e~LFvC*d7sRY@b|f00twrV(d4S4mF(5WAYpSsuPj1K zTpw=k-Day=OP4ajWlPqW1?mLps`NemxV<7EDNqBfLj$ZMI8tIm>YE_Y7YAakIPg@W zY#><0!TFKp@JJX{c|_b@GyxKbCEwK9)O9*X!2H)$^iUIVDLVO51?O89uKtLcydZ@{ zS#N{OU7%0_OF$v_7rOHQ3ob3tjII&T%RWAR)Y7pu^yv$I`qe)DI-kD9r!V&DWg$@Im-zJR7S+GRht)F*uT+?BTaAl? z^{X_aPh{z$q93UpbXuTv5Sw*g7pXmOLIR|k1|=l1sVliNII_SMH{6Ox(QK|eh|&}$ z9>t``!rM9&|^t#1#|d70}A}Piol}}7yIvKD~tBY z&Xv;Xpt$%OcrcswK9? z=iWk4xm$57pn^7YSD5&3*!QK###aTUtTT5-(c?b9I~2%*-`8%(94LQ_&(~@$<@)q7 z58YlLuJYl)hwZ#H`8#}gwUx_^;LC6E={xyuRLUqbD#aD{w)pg|K7E@{AGLH~)u%7C z^q%kXkSN5&hK6Gq;=lFa!KPJn-QK(SuZ;rIH4`6Pb(Xr@X99Va2`;-tnV7zsa5a5d zCekU>$KM~9eADD6hpR+l3*PF0Z|d?xAeYHOZv8sZUry~*LD^{^@_u~#sal^uaF-aH zt$$F8>QicB6}#`%Zo7!>_tHtP0ciN~+gp?dnYApI`hliYP42~7Ee+?4-c?9o%z9S$ zf{g;j-ajj>9EN#^r{eoib$!St!4|H+AHtI12^%PFSEvH!TD|jSD+iUPiAC_(4iwi$ zw9IF^+`cPwMnK8bf`wS>+Zxk=sG%Q%*iS2AKooov zZPi{;6mv^<7N&R#?Ws-nOy?d~$FYbma3-^}hcr{2Vkx^L#eB9&K$A+4Qw^+l>1Yrmo zg-FwGpSfwZp>4@JIi=ffKWXk)W9$o!Ne%wanAEiI^o^$neTSDP#^)noT*s-@@rSoZ z5~=EHu9@rLA^+bI zVFRuJ`yYopjFJ46&%(qFv2&&5U+~sEjWmYXEV&FZb5pC;pjc|18k9(xX@nU~@zRdl z3nGg<`V*HvVlH}{d(qqU=j`fXX3?~w9P*4_?o<{ECwsz>PQ))5~_J}CQOQ=drV8=MDiimZJv zkvjU4Yi9u6kOYpt$4lRfEFP&M(F%@DO*kfhZ0ek2bPi+wVf7cBm_3#&#!(Lx+Ba(k zxC&McD{ygE;cy-`vgl4c%6S{6ho5i1V+qrSFro=VUr>c<_?0bryy(9bPWMI4ScdF0 z#z#kgsRzyaJ^r;QsjL5(b%Y&#@~awZu~xdKCP&~Oq1{=uon<9|Mbt3 zBaJ^Kbyk`+Rm%3@wMmjI2b}+Tw?wM~5_Lkg+;rZ{pFJz*F{lwg_t}W^?E2rqU%$$N z3mgg&a1|rU^lYLYafG=*pgFRn|09b}$X6kQ#;0n(|9)!1_dDBJSAVOTy%C7Wj`d20 zs^5QT?V$So{c0oi`!OcIoU&;{1xx=A4@4HJdlFZ_Dim;teqJ@#xD%D!UJ zZ{mCU=G@rT2jZm%A`6?DenSK#O5cnuT;%8D812xh#2jm@Q}7yErVwGCS@xwvXMvu) z!tita=?*_iBK*|IWjgH?ZXh8mYZ$zd+bfFV0NcLZ+H8ppph5 zHLmEE(_GQ6Qa@9t^GgB7x^tCw=vPxtq`YG0C0jN$aS?` z;cMyD!M|NkEtu8+cn2TmYbi8nF>RzoVTY%`Jd6opXseDU^K!tLXqCh3DuwOX z_i+1pl8^$y&hcF^sC*Fi(=twQ%A52p_$pBxz*sU`)N0AM+EqUEUVIS`vb8EHGjE6v zliS<-^W)Etmo0)mUnNmR`tpC5Yd8MRrwElr)-qU+zF^u6au4{j91c<}evjo#Z2g;k zi?RjOu1$sAA3 zFSTZg9eh%=q`$k|8n))tgEve?sbMN5ILoD7;?wqO*bi2HQp3J9?iJm6IDxX7m_Ws{ z5~-eo!H2gW8(D1YgY?Kd#-xfKEluF$bB<*^>b#?xIfZ+ z{OW(kN}r3|`2j_$2L>{@Qlz(ytnr z;eZJ_(&I&YNuw=r4J_v4l@|0{Qt1U^9m)3)`TugH=NGGqG5oZIo>n~KtHpAeA-DLj z8=7t{Cptu;%VS~NveW+~f$q0HUg)%v#03EvT|#xb5{UAC&I zSuVo2xjlsMSjtutHh$R|zWt=g;;kSlk?uS9qSO(0UX+?}XWvWHeeXmdtCl2Qc6d8# z=NL;0>{sbBQ&v2i(Ns~oM5vCW$MakMK?}mPXiF4s^8xLtwl_BF0jGkc;N&ss3z=v- zb8ou7JhFCsEOqYAuNz0+B?n^-i@&J+9D9qU5P(yYzrf07;QXQ~!8_xO(~Lb)oQ9n_ zt+Z;G5#JsLV;EqqB{nPP^+~`L*qO`>qD#u__n*uwiLSyLSK+ldO;+RMq&P^8*8jJ< zT3;C2tJa$jUhCbL7^@c2o80{J&h3LDi^r)3zbHx7KHOJqnRN)qYpU4ZoCjOp6ubIa z4824a>hOR3>ekTy0#SD!N|ZxFY#2u-pN{R@8ADGH<4{Su@3BE!l_6$CZxEltT7FZ=|7^C>Bq!8Z7)0H2Cmx}VA;t%li(l6GKksgwQY5ZDc9OUbU<~@ zgc-o1Yg?rzM{^>!FFz~<*gq*uhwqHkGV_%&Fz@UDFiW_InAV?QFF+Y3}>I1YoH? zsx_Uivw$l@JDe9owkLkqcFBTW&#=`PP0i|Ckt)mQ9wHYzkt)ex<1=%vVZj}^uSl7- zTkX`x5~;g1OK3Ny%F%}X&f@p+qI$B!QzsN%tmC`3gG8aO1=<*=^BhR?)vZJJEWe6^ zvCUxk{*gN2&G5~=$&CB#d2&$%&?-022a`rMy!<0%+=t&V^^UeruwvE;o<*Dz}T zZJNZmymzOvGk+Z&OMhQpx8WJg)Nul~JG0)}5gaj}7$WSe<2kC(aZL||DN)0yt@DMj!$6qwwjT?+f8IiAWFY!vZt2(Gyx96K7jVz%rtvmGBi`&mDddhPYE{n)q)N14XgN;kfy zqgY^mYBO?K<<=^UuU3UQn5vTt`e%n!ofrDifS93UtHk7LyJ@LB%#;@{NfeFNG_#io zJDB!+JUM2O3Hukz=Utam+iz371e+Yrvy^B0YZ0AVCP@Yzg~&gVTB#wyjlkQFi7ftA zzAjyjoOD@w{_k>__3r2|HOYbUdR}H+d^9Trj2n(g-}uk+`hVr#bOLaVgTY(oBQX_~ zNLtB@cDE<_Yb4j9wZ(kLb8_9OO{!yH_hgxGpjKP7yU7l7=nbl^fX5EZw*e@(u0-iE z&n^AH%aO&08EAtiU7Q;H14?J^sIFeLTRR3qT8N%LecJnIr+pvY9jy4J7)V*pNRC(A zWlBk4B!)e;;D87<-79Obe;K(`mz)!&uSXVYFT-}E6T@DMC3hxbZuU%>9SI?iOqe!MY zGqBTxCneG+=MA_(X7hGoHg9H8#YJ2cli9yrh~ym&qxM02W>K?Zmn>@D{6(F>g}a(X zG1m>ATy(DJ!m>pln5BPlhGs^dE z$mv@;O27cXgvhVGA z<_Hs28VN`f)!Z*Fec4@wRVD40OAXbGPm;qFh$j~I3b&{*`WE)hMPG-V{^%;PQ`Z(N znx3axDwpg$1z5@Lin}cR`AM7rd>h-RiMKf%IP&fP$J)DqM_FC_{{a&W2u@Ith^P?; zB?uZ?twf+E8e~Rilp?LDv?2lpMMcdB^@4#Um~j|P>!nmZJ!owYt@e~!j-q&!TLtfk zR#98P`#T-1sOQK{&HwXV`+X;q5UKs0f1W4v-u7kfwbxpE?X}llJ8nG{pRJz4IdI~~ zJLm=`Tk`R0@w(7u)-8A%x;{yMW*tJ9Q}a9Cn)!Eym(%&z*iQ~dI#83CQLFrtRkFg0 zm!%*5j4Pu@L-=-g!!}fIytj|@F+)wEhF!cO0$HfxQQZ)iwwnU@Fp6x{i5N%r9E zBFNq$0dKnTM)B`9CloqDb#_XG&{G5ja#AlkSBv!vGGa7{b`UvYmD>_md~N!i02&&p zzoE3CR)Zc@W)E`L(G4Hf{@AY~PwI^KQ^f!~)|EQaM_yrmDzKjoPItWqI&mo z`A+8I-qtixvDCqB0AEcZj#wv;4n6vW1(tC3RcLlSG9;1Fh8NfgJ@oQm|T3!VS? z-ix8qbnlaj=}xgp&?ES&mR+D{Z8u&L;1OS6ErHgJw7mU#t%d z3EQZfvC-oKfBr4B=+EQ}E%*hr#IEFv&P@&Z>$#~L|60s|IEJ0yC1X+(|JutRN=7qY z&A*fMiMwJbzI7^!ephp9n8-sSMbTd((QB@7ikK3}g|B|p>T7edT&eT-j_TPP_pNq< z+~kj>IS&0!nrDZoPgW^+J7M1Y0tCjaALT^3(!`u7pL}4RD37%h4nH@;w%-t-9)veHc82+q1+%&nJ3U{;C`%kGrit0p{uVM{RuHeZ}qrGWr4&eG#OjAzIt%TK_@)dj0^(fG@hRy8}_n zUH?QEip+Mi^`S&>?wjW>zz;r_w8}HH(XNa>yn7xfC>V)V;@9+tx^5ZpI<>HqO_d7t z+z{@{1&3d!ItP|e32%MC_qe4xxw$&|Ms@N{@3(hSQo8rEMUuag&ur(}qJ2VJY)7x# zpBN*&Wc>}rXkRx|0LOqt>#x_-)jYWgH%=+;-ns78`44W+%>yFuUM>Z-m&$Obv>|5W zCA#vg*8VxX`rQNEM#;_WlB9Tc%&>2|Xgq~#ugrGlXF)fLmd^-=_{Y^E z)i_CN5!JeCGFO=XG?CZRImU;lM=Rfy{^xAm&Drk(LXFm5w^?g~T~R@UUJg`_SH{z- z6D~Ai{?Y;X1EUzZEGQj#Ubu{i?;6P!1jbe=8*QQ~Z@tpj3u_fk*;I`Wy_G}7+Ur*c z{ETKVLF>Hxpj;VVfE@Kx+)??O8;h(9#yY@*EhhdBFTW?y#t|$5?0p3LH5W+w+13dK zY;@@buQ0foienZugy9Cbb3sEGYX${iGuHTEZ}r}jgF|w?qF|jKO@6BS(!C$;tU-=W zQS_|W7<7WRXj>b#EKwW(isCf7;k{5pADSGgUol96a;`sB>!jIV126Qa`zCiQ7EN*6 zscB*OR<0DLROqxXRvYSA(8n^n=%`kdS!d%put_*uZW1MXo+Osq8sN^vZY$2%Efe7E zU1sc>Ka7|lv^~v+-*(-s1}VD;m+syov~AHWV2hgtd@_^XCcYfX0mAMgaRtc&v_>jMT5pKUi%V~cc+fkJ#OPlE!*#2!g?5};@UbLa*V$`Q>D z7wskm(@u-tW5kjwt4U2~!@{UF1==3=MG(+{vm!|vPmPF5{1LzFV&z0_Y6e&F)X~xU zn~OUoE(l~`6<>39$Fcr{$-qfGAjx!bl5D!}Ty!+$@+Fz_NRqA9aVB{u1$(@f{f#lj zsRS~2Iv6f3i>HT-B+>%$IpdX?YpY_(DH20&l`fXt7)xf&r3XjdliwN(?|kP6PMR?T z@)I$8nM4@7X!38I#3L~_A%=Q`GUYT8!r4U1>BBv-@|Wa1fOVODfGwD8UnfHNsR*=s z$|dv;6AG{NIVaOr31m1DGo0W?{lqxudQJR~?MKruH{WyBFuzhT`G}lUI)eyk@w#)9 z;mu=`GdB}hpOpayS#+zZmr3&A7sOysCFdrmY%b3BbMf4XYpq)J-aDsU`o-3G(qkWB zNb7rw2CLg`2qEBAFtV z`V%P`&Z8tNw>EZSq6lIQ6%V4R`*c8fphYj>PpOHBkYI~*6c8iMg*ruJe9WC6zJ$*; zsmUcZPUFJ+Eg^QRnF*u^yaJS4zDFnNO@$ii;CX{$amzKnu>_`g{=b1>siQQ4$Fc) zPu_VT`z^+ebKPR!Q3Nd?YJ&1blYh3kBI`|7Aj>Qr{?C?Mgf-PCFq6OTx$G$@cGI>q-l(+szI z=_>0ZGuK8Hqi64wff|h0=)1$ng{AS-S=t&lFUSI_oqL+f}M%g@qY>K&nrR4ap|1kEMRL%r1AY(8Z^cVXK-m z$6?u|Y4-{fYWiNj)ATamKP=QxLNykg`gOjkYW9ICT@O)>{ zJwtj_4Tr7-qwjl}w@Kln48TjIKka2@wqaG`!l1POGt@&X9k>^Aq0X$?mjxPucL=9m ztX+j(BenkDYkKK(L(C2?)k%(^aQJ{YYENKB2YZ>wb%G*5&qopok{Qt0ZDh<$M0grM zzzEq2NZ}LSLJA2&IY=-kx4L!pY_H%M|E%=T^OTCAm~e<);>oqdy^W`5bc$8}ExU;VXVdH9a+pAPS%@L(tGbdyciVjfDh?W5B;y2gZ$)7rVP!i z$j zZ6eJKG{H6z`<(2Y{f@sSEN!TWO|a3x=4zH9L?%)~Q@OeonETv&++c0%fa zEGPG6zCb|}IdR-3I2!vuMt)c8LYIrEqRg{M9(1cCJvTbrfV6-*0}>@RYNY<3HSSEILnKMwg;YF>6`R~2QfC;+J4B``%zUEVyegw*-Hu!HQW3+xf;#+8S z=TfQe6 zKD_cBdu;rgh+5m6>8ts}KE3>nMieJV(nFVi0)f)lCBTIAv2GB6U8Q z>JlXzGJ?U=SE>|?Zx&FATa`vsZ~0QhO}mDcu-BfV#Do#MzmVe2D)V+et`^lUZvA+D zg)Nk0LOPHLaEze-!XKspe^9H`P$&KoUu@JhKtlTD4^Kygo*r=`)O~Yltx(NpP{=1r zHTUsfzE($oVZ}oC^UYUl&Pf-RFp&|Zq>JvP#2^;`%ieMSEt%6w#bW1x65#s@JB;st zqKlNRfVPd$%|jx9mHFSx#99#BuJ-Gm7uhx(a`O_csk6Ga+KWj8on74g{;p`z}ZB2ew*|RezA$df3Laq8Ou;i*ArEN+b zFHl=Cx9zZW3mq}1#)2we`<0O)HK{a~zN{1aL%ec(s9xPAIG_|u_Wee8XJAB86W>5CC2Uu5I{qNuF`scftde({!;_17}{MpQ-mwa)H!_>KICG&ylwlmp_GjUhm)pcGP7wj{KWta#amPXwHh zjq8Q!2Pe=F@rvu1fL_LjBboJ*TrQl?_kuAbeFmJ{R3no3zf~{fELM|f4$LlhL*bBP zSjmoH1K~7xHVbM{i}&k3L>f)?h4YVCV4(@Byq_%)-o~pmg-w-R zH>sGZ&rDE$^I>omw#H1=vv(myiEks3^jK~jCUPE_=D%pM71AeF3CB%_Q->!`KKKL= zg_>~9Xzq4#=-emHHu-(4lcCK`>7vOSKiQF)ZI*KOP^;E3wHp2};cc|?i)&7flz#;Z zZjP3JA=Bi}Ev=@TPb2BVp1Agj%jmsT2>U;NU`eCNal^B{qUmdf!}g$2`e$#6f)7E?W-6{uj+;I@ zdDcvllnG&i&PMmBT-hB-n_Ch=@Dc7H7pxQEsinGQqvoVPhbJ;GFr$P6ZT$7_LFU!y zz@V4CW^S9MI21$FFl{hC$ijr7fIY4#7~@qe`bi=vxH^IOQ#?(>GvoN?vlp#~jsmwAPx?BC>jsBt~_e4T#PbsSG9 zXFM=jc#ZOh8ip$|ZbvGrOX6sfU2oYJ9Wy_%^e%w_BDYJ|b*Agq8%(B=n=YJ$(~bd5^4x z%#D0Maam zm=tWSto*4encGc^m`U4h$=5;1{|dKD4SsOvAbOvyX_r^@6ZyvZ-BD<^ES4*iX=k+Z z`I~x&>XQ&T`WU-Shx`twgDbja*@XMiH2ep?99X+qiTZ@)n{otGM5s3yQ{@u23 zW)I+;gJ|UoH}!M=N1^(oEz^xx$a(Z}if;8A9a#Gc>yIzobXchVV{m|DX?`N=hd%KS zElw0sf3~|^$r`@{Bk)uMp`D}^rK+0-h3bE6xx-V&q(o)Ho|9Svdvk&%^PQKCmjH?@*yy+kLti|_?P6ukoQ~8hLuj^*QTU8ocIM`7?G^fIw zPsVA@_=P3T(2GH8Ul~N(4~&#rm@x>Ige$`|%|#?RakXpTAeu&WGSX{u)Q3hgRZ_wA z>#9&`7(l&s+kF@_*VAM95VgJ6`q2c2M>mD~uXEwVdD{nJ6W01snXYO7%79qGGvncK zE=>!=Be`fZ_$a$B4}X_yO;bboG`lVgS8-+k!&AmJ3oUcNbg4f&27k;k`0H~I4J{a| zy0wpae>=9?&poqs4M(!TM^%NyYlV1hY^2y!6eGZ zb$Uu9-S1DKM=t7??L6!)?RGj0_w*|KJ>OQlVrrL#PVklGRuNjJ~2^4KQHSF|UQzE(Ikdi8(V>b7Jrra1G|S{mG}Pz9Xsb7}>ku;isj zTt)Pn;tf2d1+FI#W?}D*8X1izpDhjCc3`VSe+RbGvFqA)U@O1vz&=i`*k$x?JFk_V z!oK%&?33<%6#p{{x*F+kfK=?IU<0J$E(IGPBiswO`YsJov6+M)7n_ObV@ivsnM+43 zDxPcL1+igGa!9xa;#p<)oa%t$a?qP6LM|+XMhLrBGQe8gVKg=*arI;U`R=w_X{IeS zd&M7aMT`e5+HvP=O*|p_dwfVO0WoY66`=lkSkv8oncmOgUXvAlR|6;6bzxX(G!>e~ zRSi@+O;PK(YP#BK={YGX9KS^7HUZH;Tcl2&>_txK=xfem} zyZU>TU0DOM>l5LPT-Dz$9p17$?~kBAs8D|g1U>Yh5cDx^2wJH2PI>Q}(!dXK;8;13 z5^TVy|GW|0wK9V*`kgkOS|*vVpgYL?Ipx9|o;>MZcbUvD8n%i2(tj&giV3YmZ~Kb; z;yUInCs;QTorL-S-bcwm7cH?aLITntRQYfHTd>@`=O0^Su5VP>CUKb)tER|DQV$!1 zshlFuIR7jR6JeKEYUH9+Y>|!g*H6GZ&IM>dl*^~WXs}qMK-XK<^rNcwQinkg=^pQW zFc3jXga@SoJPVPKE_!5YMZwDN2rFs#%^BW^V|jbY7VP{;H&`Wb?rNgrbIx6h{RbnV zr94OmDuo)=Y}e&sC6dTk!j-Br{l>D)sG!VHg zMYmpw`+DPd#WgHnsJF1^;r}vPENNyu*OjeiJUx52A0Rz?%=9tZj^#@k_6)-3J%M7V(OVmzgjpe^CLKS6uN(0oBF#>)xX zRxZ#7x?Tn4m18CJwi48)L^nHLsr%GxYk!ar$1dxe26ql+`p9?soLKM} zs#Ae?>d!aXa+?Jq^$E^!Wpoc70t^NEFJ!r_RCJYE;Z#p&BB0R6R1#XyHJ$!4nC1jGP3l3? zx$+i<>-=Yrd>Y8?I|ErRgNKioxY&giH$cXoBH@q~7!NvqVV z^b_H+k_yCW$@5S7UkwEKC~5snY&$N#@t`O`swXE1yot zFQ3`$90zEAMamosEx2Es8#pr{b<(5SA$|1(R?#02ILQqw`Q%Hb%m0&o<*RBB4bZ}N zU`}MpoN8x;28i7srcU+SZ8KZV0^1A2V9-{m0XLg!cqY{Nzd(RrFHr#B<1Uu`d-T7r z)QCOnl1t;2Cx#j~^Ol)aF_Wwpxb-!iU4^=JM=Td354kr@r_?kW7cW_zQDDyylwF?) zmnbcoj?zifDdW07P3MNqnlsPzr<7qq7)&V#2{5;N2u)|^E3KMNZj{~(N?Nht+N>aI zf0uoj3)944@NNQO*}>lXSi^%J$Q9Gk$ihZ^f2?06p#1oV>_13Zh(ztb)VMqgYYC=n zf)fn+1LHF0Yl1O;Wb@B2yUgy(#@tXt63W3+-6b(Edt`0^=EYH=hAZ8t{-MUnSSw>J zkj_7p63H*0)cId9$B&hNh?l^Wc=@~0v&~7Al6E=VP#sUl? zN za#Z)e7R1|A-3Yt`SsTx%y4VOub!9%)O|VW}Xwm2cEEBXwwaE{17FY98POxdTbLbXr zov?uS)bV0Dr!x>dwZ8c zm;Mlh0{D#gyLC>X+eHPE^X9DvUknG*JVJQb`Z4vm>W`)7t9~if)L%*cQmCs_CoOBO zzex$Go(4!ATFAxhH#bm!=#h;aeP%&Wd>?_(=+_uao>v~;7?SG0V&lZEypg;V?-~5j z`dvK|v!g36y()2K?bK_AYOXCg6|d}+m{dLQC&ky+{$yt22i0{y={_}au8CT{vc%fI zU!tn|>8k$6R;MQ5sqQb3`-t#<{fMxF(U-)@v-)wD4@*!CI{L^N7*$U>u{{khKY9N& zJoQb@V+WZ$7^Gx+ zv;E=O?<^i^Am^A`Qap;g@% z%n$YyCHe`W>NOVEub4VzM&eL9sPGbY#jVaB6nw+=QzsE!H=5D9!L(w(vsh4Ap{8qp zZ1XbRrJ7c8G5XMMuW2j*1`bx;rw+vb;b`Y`XS1l}ZAx4}s?$m8G6gbH85Z}+3UjV^ zwVz06;ChFj3!ej^;7vec3mv{Jk)(qI){`M=0?FdZiJ$J!$UDa#rhFmaUM1}nTf>8- zh=B^FW!NkRWQm7jo*|06oH%&WiGu|a2R{B^pUZ5$NX21&tWNbZk??~Fuy-Aah=CS} z1ksB(^MUr_K&hNK*r4>jI0*blA`%M=-Is;dHJr$W68DJGK6dFyl@F&NRNfifUZ`9= zOcV;iu(oN~S9~zsIdDUBZ@hneyg#vWbZdTrj^3f8dJ)LXCHIJeVD#`MowRVJ*7o%v9km zGW482p;_w2Vtd{FB4#YN*^H(0uofmOM}-=H2JAH~a^J`TqK%0MMbp=!dAJcPxiR2| zW0t#tZihe66E$m2| zP1kn6l&(FnTy~D};n|@_HsuDs+VC96T=eZ!p;@RxSDYw>W0YO)_jrXLAId#Te;V-* zb-6!ACTF1;vQT9$nT2LJ#0sFtoKPVkTuw9e#mruFR#@))HP52Qm;3ucXVK%^Pw;yj zFJ42_tlUWA-gqm?-@dDlUb}Bs+epwKx^Tv)h9w|BUG(K8pkvo@?bYFgRcpp*pVHgX zc^3nk6+1_!rVhJCkEPM41VB5Y7M-`M!=ileX?Z{7tHW0?8)&Z%n|y#i3quXsmXgz* zq``RWX7MIB09i~j%$}wNrEHx#7yt6*&@F!jb&}fB=3?xCoxesmorUe;3#U0d#{WBjyP_nB=C6WAxtZl9ors{Lx=kG zlam-e{kUh*&&urnM8@_ZIgSrRMmtpA;ODOsAil&fpe!cvL#_E8wi||V(Ym^k`7w`*_U$&!XJ$&f zR-7T!rLzHtP*vjyn0T+oya~9z-5b7Fqw4bTIxfv~yR}9OvT56Anz0}t3Vb-re4>nS z{pX_@bw1lolEh8haytBC>dFme3k?GAnY-JoXi8;cmt#pkcvS6Rn*HqXi4QsR(YWxX~2Pqaf|ZQBpnc00KQLhn{!&&x8DD zVMX6nPz)>$xAzUUOI*(?R|k#=w>knP!ZR9bj7tt~#b5M64}x|H{%lyHNO!>;!<)dM zw)PO_7%uLjY1x;5HXH-%Vexd;2K*n6lPq8tI!A5`l4Q+c1Q4>X8)ZFLGpg~5pg#`F z9o5V`KRm3URd`tBcjg#;b|Zkg4FIH%uM&!B=?Y!bMH7LAPysS#t0wQEM#-hXj_N0) zCoDTXr0nK^Z)eu@ME_DuEnvHDOsa66Xt4@fbWwyM!d7x7??WI@C~_9zC(J_ZT}0G6 z(*KojK=-OH3*DxibkS)SfT%r3x0jT&kKMndEPmgVOe=D13BX&aV|#J8QRTbow9#5} ztj&2H6OU!j!x2`t$x+AAW6NwnE0e;fH{S2wv(lGXN%&&s8O?5fY+s4kyz&@QI;G|h zKW`nEvWJ*_@b3AskP;x=t<$^s<$=E7{4=Ine~rXHW8{;j&lbr7FZ+9!+M|6Rj!H|D z=fi>DUc;uuJ;4m>0U+@P=K&FM(Ncq&=$knzLSec+_)^1Qv#uHhU)0Sv9|Y?Msa=7R z{P-%W#%?7AD3-cklR>8++xaikt*(cxa&3s4ALE6DRfQ3)e;)pFdX3TA)A$@wBD|3a<2u*4!w6@rgR&;GwM&(6Ewx_j&!u!w~ zK{RtSD$Y-P#|^6j4gJPc%_et`s`>l?WjAtiZOK}r z9KObYhN+%7cS9a>=6bo2Yg=R>Se?Md&kO8gqwja!cbujE)ZHyD+#OSUhUt}%(TU+Z@Ft35rSOF!CFsNoaRXeHWh9GN$KSVhG^fBx3^7ryxmens7{ zIH4f3PKhDT%|<}?hPUZC-J`4)k0t;p@CH3AkEYt;0b7S2X;xG#W^x)Ul>BiX3nHP> zZ%V?eoLIWYqRUSxh=)e6#v{Og8KkE0+hZYjMwrxFEx!Oe&Q@3Ra!bJpq?$lZje5-7IVZaE+vU^u!FWY&L z>}5W$C!da@-YKQ!a3#dk5q6NiT}ZI7gNvDxA6!4`k7ck%bE3;x$-;vPANK7no3)Pc zc&X~EG_$dW55g55drSXUfm(W1PHmG6Z!3%`>5K3Y&?w{MdO+wGrFjJNi;G&{k8Qmj z?ULx!lT%x7Pqf>Onu~;6Zx83z>*Z1jg08t+&7b#f6OMD~{&t1>GxgXiF8+e*(I|5++WW{SV2IXDJN;{q z#liQe+9Lw_i~i6J-`~W1a%Owzr&vD+s33go7d&f*G+Ua@ll7A3EPQ^wOOZK&vj6P4 zxBUg#*_0C{)ZY9b$skt#dW`WST8@Q)e8M^Y{wh20~6X>3@T8u^6t zzfWGwj>&V`UVK?Ujj(?BjDNfVvK0yJdy*oliU{(*3YpBZdvOTwl8C!6)%^tBv&24` zD_&gvYP;~;H-X*Tr4!AM;vQ3=aU95Fac z+18KI6bo57W)SDUA0a651esl$?G;OpDP=u?*fG%GJ#UIWP$*{OZornbb2-T#llA;E zmC-^d-Py&_^wlJpU1FP(zdEh{gF&%QPuGu{Wo6RxQxKoyRZQxX2+;=%LJjY!;uNv4 zm_JZXsN_s*zRKj@nqR>^D+8x;>04XKaj4~LxYbI-2l1MQFKDLW==TNQ__eJKSDWXz zZ}SvM`}Jdn`)#hOAGNV>(B=w@Qb2F)Qj~(^D&7V)^uoOX#Qa;p@m3y=hI@g zf+x?X#cwJafBidyBAq_1A2ruXq{V$`aeoz~$Wiq-mlf0=6nf;E0rekzQPp(K0Nz&c zmJO_J-;SZaKExoe9qtl;R|2x9UImva0D@ z>^lJ_+9u7Ny({+s7G^(Z5t z9H$5cdKBw5MWXfL!U>hGQf{6XTd7Q)c;?ZjI8TI&NzT(|N+oS~o;c{l0MMLteu*-r zZnYUd%U$DwvAb^55bSG(ZPvP!sD4!M!_{?K>r!4@>#{=JT36F+>cE%8xyXNOVA86K zUA}e}1CrX=O#hdvkZ())rI%a#^V{x_(45!)(A%#4+2fd(zW4GF8opQaQen>PHQUWg ztu`Oab&p>NatjiPr|0X2@W!`pv!>qd+2!FKx+L%3XqSgKbEzM7szHU@)vX(NZstIn z^y9ko9;Q_o6CPLI`ca2kvL2E3^Hrq&2o0NlTo0^)FAxUOMJ-?8Dt%#3LFOFPEYSDn zK5Dlar$sCIfxh+Z%`o)kO&iM|+*e}KZ&{So-5mfO&Qx!N(4beG^w&IO&w^J>S@ktib9PaLJbFokpgvmP3VmHs-8eYdJZFxGr6*99IfYO~x9q_= zMw5LJ&2%nZ)2f;J&N((27rZEhzwQm_D1@vmtTgAG1Bbn3^utcOP~-d9kW^D>(Oa@6 zwfgBWzCWWkzBE+-O;Rs(=w7_~jl7i7h%D5X^qgiKM5Om~=94rTAC*=={VaSA20jd) zdHB>}y{6w|KP_SIxLOv^Rk5UBPzUAtMZMaqeNm|Qo4`}gL|-eXq_rHqm3F^}IloUR zGNC~zB76}L@qZ0DsScI_o&Tk|wU4LLwr=gfzslfeduG08d$0=Wtsx8N1Hou_iLOAc z)vH+94iv)=mLE4`6ENA+1y-}@8ZZZm9|Jn)Fmj-#k5B&lpTwVEy#}+x`M*`+orSr2lX>;!$+&g20-b#B3#{sPvle6@Y^AXzIFK#(+N2BW@pSiRMZd|9ZpxL&Z?_x513uRQGk zoi^d0x2H>O|GGU#B@SEJpBGNm`EWi_Dkd2G-bIVJkLB+pdWNrPmfF6}{C*fc>nla| zkNb$y9s@FB8z4IGMlWYH?NntBY=TYlERZVNYxle}`Wwq8`^%=pG z?&<1AD%Z~uR7BUu?f|ClCAm>cz-lZ%#5e!xS^E2n8aDGr^ZS3b?`R&aSLByf3aDMV zW^RMHREmt~YqM}bOt5&WEUtj#smBZWk`v(ZM$X^SISJZDK8v&#{gCIg)7>$35@U_j zw58Xwfr`DH-VI*|_;y7_QV;JUz1n4ID_@$82E7+gA}Dx;ax=hhw8o)so&4M%5D&-h zQ8B^mt(pqCl<2XRV_|ryT?rLtIoANfPsu6Mk2aut0@os`YmdcpLQ3wsozE4D{s=H9l2N}%*)YEM2~^{n+AEQx`eh$?a5;@r9%iN@ zqKWPR=kPE7Wuf{daDqZrS{~n~rv9|DlDh)QTrvaHKe$V%f5N$5C2vzP^`jblm;^>2 zmpWwnxNZ#3uY0?m6$wfo|9Ze3pzRw#*vMSllhy{sg->_C=-lMQmxvfS^CcoijwFP% z9MTF5h;9T|f62=XX4H!(-==?`XDsMvYC+M*AHz^*b=e<7t?a%JLzUz)loxxh9Xp-3 zWPj|06kjv9@t^aPvC+SQGO>?PC-hIJD+4yF5;>)dUU5#FwP7S%bTr;f zpS0W#{MiSlt@;-{qF_QOf1Mgquqkt?Q za`mS==A%3&@-x6p0=NSvdQJ|U)Bd*uCaUVTKPLLq`u`Uu5)l6q6RqqjAPzPr5`APU z93y$JY=Dmjh>tXRd)ZqnM&O*s?Xc9&&iiAj=~kr8Hzlm{=bL)=c3aExMyP^++n1#x z^-n7{S+sJ)+@#21m5~E`+$kZJ`T@47qhhIP3{OkdWCG-e8tyYTy2BlG4JFMXDeN>@ z*~cn-x@hiijh%LWx<7WZv;jMP&8T!T1$oV%shEF}mG&;(mz8dr-j9`1nVEP@yXAKU{pp4N;f{SbhtYh zqOO>%_FH$h8=~InvOn(n{yN8945&s~|FkthD}q)zpg5<%jEL4ICIgI9A^6TkF)mg1O=H@zJO#G9Ft9GA)d58n~m!c-(I9vh6_n?>Y`>bgWU zo?5K0LP(XmE7eqN9gPmeYqR(^o+1iL&Bbup@6=f8Sb3G78VDz|-&uK^85l1A4H$fS zhm%jjg|uH+jZ+AS!rID!PVZ{%i%rq;XCoNRSHDvjwPQ**v8m}$D5w|3BA)Fy3ZIUg zetyqXN9(4)1w@s!21?zr-bgm9MfIbODpDUFuJ<-{Bpq5HaiJy4+P1q35}@CB_pAkf zbgOXTTLeX?(nOXCYkbm_skN03iwgRp=@U^ATk1q_IWP6HRxfpxKjLSaWTE@%wL$pzN4JPO`ea)E33z(O^g{7hTa#mOhtDU++tw4xjHrSF)dBc zoq+b;te340?!t$cO5}WjmwbTi-}}X;eSLwKTUOs4*f5hMf+VdMs^!F6KWf|oG>Q1$ zj0_bbb%8Voddq*rJZCXQyMm0T0I_ zIvrjp{*{e7^S1AA)KOZ~&-Xtadg6ZAwa-WY4+GD9a<;JD3i zQ84gWcG@kf3v@S8u+*OzS>jO`~ z$Q=zp2G>3VQ1T_Bjkz(X3ie=rWb8tx3T{bF~H+}%YTb+Ei$%AJOoPqXevHmA&SaLt$oKI0Tnb>;}A(50RCX4Nz?cjG#I_G>)iDC z7l`wwIQ!4G%s{kgFnYnubheR)V^ldM;teOC-+EGzZOwd0*s=)6qs?L^+^K->`%3uB zR|%JK>piHS-{|K)`+^;Hw|5t}^620I!Bp^1SGy0^-EA-ByI zVTJ&LIzFmbRnv{(-ijc2SPi=p`e;{GsrRRQfrEI0#fq0JSDId-M@Xgsf`_roN$K>q zH1qdA|GL0@KEBKa6<)G>ghm>Fv9!5u41H-=|*(>LUux90 zpqeCV(Zf3x62YHJXDsLtKH(=|1cC=!uvE?>ffhU7ZC z-r?d9BeQL|fzlWAp3ZVkni`;&>IFeD@!VA8p(){sI#a7n*r8v|5gu6Xmvtu>c4z<@ z-QMze@?Edw&aEveogE;(f-lKiE9i0;w^W-atjFiAQ{S>I3Bqlir~Q|&Nso8hGFZh? zsyFa%pBgjwz*22PQnq0(YN&V<11XDrrRI!?Yx5+f8_sG`vkxJYFTp0NClAOv#vt2dq5)oBQiVl3 z>c`J^tb*D=!c#(z#wakUkf%gI^=2GG#MAn{op0>Mj+6qlEtx?qc{(WqH>>_qD$I6NAe^pC#=ifLGqBF-{bdRq7k^{m1 z9__R#ntXvhE3xziEyJFHf4*Y*N-elx*jpfsV8!q3oWZ7*kFuvw7yg1&Jv#X^_aM(s zH(y5qIbf5YBwwjv#KN?dT<<`XA*~MJoP9mg$O6e@hpPXA!@~%fZmKtF$Z^ZHv{+;g9D>jfT)@f5L{XOTOQ#1UlP(!tqkA9+$ zBx>Sn)>FH(7a^fQWqkgJMzUy}pk;=E!Bt7rxl07c?qx3EF zV2=bhk~fM^OEtPR#9Ua@bVqnHPm*^^DPkS#zN*Hid&8FoPd^;3zEYF{lb@_z9a&q# z?=iLA_&wa6z9q>w$H~{mw`yx+>F_;5`9^Y`lMZjwK}dU8GYN-TKm6jzTEbd=aSW%` z)qQbz;tI_y1%r&Bfrv1JBTjdAZxdqnWxSRQBqym!)hX0)4R6eQ>U^Mz zrF-3TPP!L|K#bc{U3Y3XxPZ6J(nM*U5@nju8M8nR1-u#q2lo<*4GcAutCgXiSP1wa zNR4Jwj%K~C>#b`h|GdMl*)!_vx~AvqeY<7?HRZZyy8mEZGe?a9<4U2fnPk`H{?-y! z19-NsQ9^Z1on8c8qZ^p`8^zvJ=d_8vSG=gTe}cZDS2Blyjju<`r++rIoPAe^XjwYq z>(H|2seRGXL|bxbS?oU;THMqDk9uATEzNc%Fri%uOvu&HqJ%=rGQIf!1udT}><}$R zxEE;1al?~41VWm)6a{gS#B1iZ?gH#lhE4`hx)WTA1dUH~e%u4B6~Q!ix!K6IUq>w+W15y=h~Bn7BqU)02aA$3tbB$esx60h?w4rh`ezmAQgxWPW)yh zXZ2_LbOY3M(f{;k;(1jT76ti()Qtq>_z5+9s3h%VJdKK;9&Cp=oR(?I^`s@l{AcJ2 zu;IpXW+x&ZZL!lK1#kvoTI`0S6Q%jkT&LuyDna2*#w|vjQ6Zj39~y2~Omkd;Jfh3; zaEuEA17{s>YMK^?1-jI!^SBB-F1u@?Xj;XD5Dn^7qjCRP;C0ZC0jI$G)?(L8 zZ665G9!njf18@mUBbKVJyS_icB7e;-KAvh-IH&t5G@THmzkpcd&WTf7JB1X*+w%l< zz87hp|K#lDniHA-=nsGhU*f+0>AT;;yF^DMawK?(_;(kjXqHhxGJ$IPY~!ZTf))`w zFWkUR0;=U);zO0Gip0{=Csrq4ssFSSp$Wuk<9Qp+Ih#hEvuV^hn@T^EC46kKdJtNQ z!|AhcIO~l%F_OHkj4J9!J@5}v<<~i!_Ibz%lyeCogNfmZQRi+Nx%`z`*i<`%5Zp~K zu_D6qH5HZu`Gq3x$JG17BMv{=li}xv|H%25Dz&#f_6jp>H=ejkvIn<)=I!`!n{i4^ zl0Qy~Su!8WyWKA+IL*GMJ>hsoj3`Ve>5cZHJP=wAlsxsp)o%x6e$5a$Q&p#nqDLXB z)_veaRjCLk5LJN~abhATPVlew#R+vFfUKq;<{0g<9Zrr|Q8_vC>2`Vy`*Isea^>%= zqa3IvAK3p~+btN}v*Uxi>bjL;K>UNM(Ku^Il4H_<>iXw9)ih1QfBSUS8~ex7(_7eo z?}Zlp5P^p)R~_*Xwrg&(m$}K1aCQ9)okuqf2^(?J%*;$gs@i{~+W)?5f5|s!zZ{hS zAejE{)BcZL`>m+f_Gde4|8K4R0YnZDL7Owri{jHozwHNnVIMw`|3B*=TE9Q|4)@`+ zqH^$!>j=IVm+lX~A;1^Ve05Hzx}Vzfm5O39SKi=X;y+73h7g=(JlhI^U47$p`X_kT z?+(p(u`$u4_IjOrh<;##a*gTfQJ?l7Rp5?VvGINFp&gCy0e5JQpU5#7v*eDT9gk^M?E)*soGG8O4<1!vK zli+qax4!s%wN-qs<83tcGh;2z!Akv3M3xhuHDI#xe)efZS zk23p{qA&l(IzN!2LfMq?L=0NKHG89VG?>-VI3ml-H_bx#9PGqvXDfT4#H+9r>|)5n z&$)ke_{nlgO;H#iegAzW_r{NLOAEP5_US%g$&H3>8AsHlAu3vdnCl*w)IXoptLt^z@SK6&iMSsL?0^OYOQayhPV@(Ss)rrI2@J z5K(#FJv#LS*ey8?vScWvmhBq>JZw{@=XQl~Fs6OLKNZs%@$huPteQBGb7W*U4>kM) zD0IMQc$(X!DOM={To>QOgk1qA~Ovge4!xA96W zzL+ccx`B!eUp?Nwb`3Qp9sa{*1{6tym$ifOyEV(9H`B`Yu(clXs%_Hpcdo{u)=>B+Z;SBI9EHHra@hXPX z_rI!X8cg~ixBR-&Kj_3Ryu<*uZoe8&U!kP&g6jIWzZ~5Z*C@mIA0+pa^slbFsenxc zzoGuTTsKp}hhL3ux(S=n=W`Di7#tY7wzmKqHcu^_O++9sm$~P?Fd|S z1UtR2o66o@N{F6KqMn#zDY_^2;}+b^{cO)L+{bMX;i3$0uN%}h$FrTtk$H(PRB5ND zLRy*M2F@ODc(Y6Z+7{5McFRte-QL}HyBZnmoy)B|Yj||-ZiIbi#A5#@x8CLau+-+g z%T@jf7jX^tkl(sGpsqJ&+m>;6-xp)9Uf1eNQJIPzC$jm42=MrIE=24`_3kPnXe*!^JN-Bi)Gq%+xjU??-#Vc%zq zVB@M#x&X?Q$gq@bw;LsfSV1;AwrEW$0zzl(i50Z8dxE44N3L8TNE5GrcBJ0Yr@mBF*^^=;$3W(x{|K$6scU};%}*rL9Cxg($@gz zr~c;4$T3d~@6(xg93@hD&FgEM-<39yhMiu_p4hsIW%!%7PH0^lX?afKskO2BkYagIX2EVk;!gMkb#a#YS?h^vOl6Zr+crR zCp+YL1~SHqI#ocDSxPe28{?8Ju_XTVkyOooDi#2#$~(rTy53J^)sSk5Ql*O?A4wc_ z%{(IMSa^lE;*w=TM32Yoga}~V2N4nR{|J}r4ol@vta7+e z-=Y6S+X}X_cHOb?nh`n!V{{jga(Z-F$v?ned9iYB=Zsb_}i?Xy7N7Y#L@NJ2T9v2i=_2K zVHG|vau};htg_`{oS%EFFUKeXKWTr&5w}<{jJU|B!YC}Vel;?=#ha&?0qFlj(c(Jk zAlczWiRc_yORZi9!SP7XwSs+gK!9 zt$&or5VeEejJYnMBFS4hhRhtcsil4gTWR?u!E4EINZg><=D8yx5o3s??iy`I5YA;+ zMeX(&vNKk>HgP4#8;9m=z0Twh>$8Zi`rVxpXV;x}eC?9Ps+B+O0Mer2#b_XP~7eGG2l*$0|MO;Y#K58H)y zv#7~Wv3?HVCz3?*pn)KKcjgl4LkxT9FWa!Fcg9chi7NBz*SI;zzhMqVxFNj0D|9q( zyQb)Ju_>@I&0SfV9wP~+>AG}iP1AMy<{-N+58IkuQ$u(#&$5#qZ`V7*L%0&aMkm&w zew>LjY$>-f2$Hq!2do%5Y^s>#PL87*o!r2BJ{qxi$bxaxIcO%69u-E;_U z*yq`}rdeldbQe@jR*CwbvC8)3$w5GHx#0|*W{lTeEo5l0rp;TYmU2Y4c2}{P(RXpF z{A})FkrZclR}~YuB~yv?B=#$Su$i~$xhHX|{LL$fT!2~u-PDgd?oFxxWef?!`JYp) zpHlrWq~GBKUXsPHoiJ%dDdj(QgtUBo#zdPaH)@=B^8has?~!n?w_c|{lWSf7*whUR8*kJdlT3X zw7TE;4!N1eb4W85Odm$yzaz9@9Pe__E}^1UXqN>~2JI@Igc7CElF3rLy45V}ES^!( zl*~f;=_=CQ;BE-v&W)G4(s#{}(f|?Q9TVIX@ExMD%e}UAFZvM50lv0-BsH#7mcL?> z1%#tX?+u8y4Uqi(HXvsJ~Ov8S?>ofbopodN&k6S@z-w^hIKe@ue;=ZJaz(_UBrcji-lv} zVNp9&rKibWP$%L{o>w6UYWLtXDt^B-py@72gGg$Tl0{N?iH0SsC$L5Qx}zfLld4kP zABI($E_ZIg`Mm07jY~Fq@9J8=2F7J5UK?6;6&RAyH+5ODc9$&p9wT?I+h_5ywcG20 zC+qfRo*>P|TncIjn1?2}+McV9U|B`pSo%ohv&?o~!M_R&9gTgBjbXJ{^Cg}-PLump ze5ax@7A|Fj|6uV_Hd{`YBHs93ZQs%O$(5)&eW^LX1>+c9{$ZAv54e|nRD=#$7zK-9 z5-`~r$|ks{HIJtL((0YBcK~npG?^KiC_tjB&aRjgxeC&yx>C#>iUEGfV&Mh*Pk7F- zx3Zkw_B^j)RMp7l**c_|2@&< zXYu6o@#LRlmG9p4>sWG2Jf-+MuSZjT;)Iq<4}E_&XUZu%8|NAW=AKpTf+;u%@DgE>$JTywt7|$Kc9v2ivIh7#fb*keBdK1DlSo zL0FH)ZO@-@*705n6%{)$&rII<&aN|)6W{qF^A0GCrif4DvpbEU1)1k~9V)4=knG$D zg1N8K{Wf<$R`)v$@$S1V?AkM)L3VZfW06uyCMoqlx=KpzayNH`zu?Auf5sj~%@kE( z!c!OL1gv^AR{3V8+(w984`&YN*%>#cBS7rV>=(g<_dV`p*@#NM)UU6Iwyd6}fC!=V zlf>8xl^iJWtEdY8u)$)iyEiVJ#Jx;2ja=U z#8cN7qkD(08wK%o!?WxufG$Y9$^lA)aGCu*4{=BiF^4ndFr&Q61Q`9A)lruZq5GC&5!xs4b#|D(`Hetn2euf({KY^Z>TCzg)kXkC*2mLyLMIoUST6|1u z%C8F)vUL)n6wv1c=ihi%kjJL5%O=Vc2E%(dO~@p6Zc* z>=#`U^YOT8)H(E-7kSGo!Y8lGedpAtAMp(ZFVygTZX|N%_oD{ae}4JpI>pki1Id36WbU=|@N21?$J zWqj1ciU9KUquzc=!!>sP@lyFpr1LX_;lZ1;NCWm-y7nXr`Q4=&71dAm+v}R8QqK7k zD&?V8Y_Kx>(^WJtlKO?P7fJomP+IwEX#Tetcn#Ts{>1qzq4_;E97A)s4!s$}4rC2f zf>UTTS$Vewl5F4|3BRPf&=Oe)hWibu3A_104#7wM^su&6cAQN1^6?GPhT2uwlK; z7OVetS6eP-D#w+`o%_+MPRl+~CHAG+8J+tfjl06)Wv{(R@71E5Le}y^#|qh;l={~c zGS{}RiQ;?Eb?3F$!G;7nScUhq(@X~|0hS?#R1`4$%Zuz@hSGFVXfmXee8mVUpdg0l zjow|i34$HoBLBL8Ys`YIdn20l=@aiW_X;}q2Jwok=|A3E_TIw7jt!E$?TzNPIVZ-D z2|Xno4)K0}nL0L*R+0lfC9Mw0)V4Pq`DP9$pB9Qh>$k%fGetQ3u%=Q2z99sk0-8nY zu~gkEyZA>WR56l06PjNW&^O_fqVeQ&@$%K?caDEt{FrCuu3gS_8Xl$RKDQXGu{7ng zw-C>CX)u^1(%YdQkucQD3=?U3RyUI`yZg?*kN})r5(BWmh8pTf#`Hhd#rc2hOQ`X3 zHo(*MQ6U(k%>k2m1gO}Bc?G$e*#A;>?=Er9v||(vHWW= z{|XNI(70>!uh4=Ul?_!fP)>I#KcS4Yrda~iHL1cU<)fwm>8aW$3o&FY<+eHRFy7h` zZr=Z}-fJGMGUBOUX=I3|QmQPTdeC^N^6j~Yabf|kT&&4WIX6A?zgf}Lk&24ZtofX+@N#^9#Q0N_-+EBW_kup57`x(U)4~TBkF*9KdLV zO$}j17OH7_AiTr@ttM!uBjB^c5L@0Y=7xrQE??w5uM9yEFs{p~iG;E=$5Sg^5g8u? zHOY5qki&nx@(aQLW>>?;%|s42Y!D9>_!&R6Q-SRb1VLqcLreceokAaN#uB5EO8phB zTo+n!JJ~gXQD;@BYVMR7Ks{8Qns{d+3ity`m>z#8-m_<+$X(x!0FwvBQ)i5gr_P?> zZQimQN_K8{k<{a>NE}3qOS$6?D_;uDKaM)oNY{r1Tt8SZ*hy2q)rRq;&JWaJE`QnB zF-bP#I5$Z;vP0A;Kk%+NOOU+PbtU zbHA107Wx9hmXl#Ab;Ka_0>fS5?cnV8!s^hYk>cvmBV!?rGug;=&V;A>k)P$X2mc1L z(miJ26Z;ehDDd9AQjtgfa>0*a)KZ&>Lz6o7iSVX+AP(0U&5Tu{TRT)U71HZNg~P9% z5@qL)yhc#K=XrfR@_*ZJxS8CP3L?H>kQo`f4LRfz(sbc9c0mWP@Yx|*z z1I-Mqb90_$xw5;vU@hjUX<_(2!^#d;_;UyLBs0XD!`5#2^)7k_F-KPn0!DSg2Frk_ zE!Pmvuj(3N_@5wyJDX-471cfN7Swx$9+^edQv#XJ8jvN}DGx7p(u1g1t=0@v2=h+5 zK+9zQ1{kXGR86W!?>|kW)~)7vy&4Up$ChJ>U(O-Xp+}3SF`ZVYPGgHz<8H&YpPxdN z-{voSuinGj3Ou6(RGkK=cmjU0UQdffImYet!6@E4;Y4kLyRPSqA;dZp(Cr)rbSV44%$G^rf&yYlb= z@}F0cPk`BXTBQuarCJq9PT;_tPuI>c`zQP37y6BkRAA>!#rBP4Y5J1y5ISGS^q zG3dZMto4(oblCdp3@d)60>E!|fCVqK$hBS*Z{b*^A4wCER=DRBZd8s2@&Q+H!$_C& zf1TK*ksw~?WfT!N+xOs4hAc%f&tQ_rjXXSH9?8?A<-a~2FFe(4jM01@s)wcCl@ zAFKfv?vw)u+SuHQ+;^BIz)Khw(EU{oHo0c5WVidp!M#u1p_0z3a+j(uIo&J`#U$b0 zEDfb9Lc&?q(PIcI67BSeL29iIDq}HA%L&e{U-K7A zRcr4fSJT*UX`Z>zowSlJy6yYU0P6_@^VUgiSu0QcUs9NilmexOVN`m@8R>}w3#u#c zsUT4(-9U=!q&-B_^`Z*G&u%=+=cC2SFWz1n+^paRr-71---f*v{+V0xb9KMN2&&r)$9Px8X2vkm&>)7fTsZ*=ByFFMnA(b-13BAB_#(zT5% zbcQIj7rtfB(V3uj`hOmMjq>@AO{Z)Ft$wTwM9_a1Z?&!6f+*;VY;kZGP2IkVWT-RC zxS;46^=nU(MrdOLUA2Em$Ky&T5?fk0^>Ws9W$AFiAO3Q7y5EpUIet!?^DF?I-@L|+ zKNVz?OtEs2eA`rRy66iJ)qeI0aXdj`^vj_g%NmcDv1M za#!PT?*<+;MZT7+)B8Q|A`y@#vCMCd_@6fRw6?4B&p+?xuh!W5?X1Ae#74*b6%PEG zNj}!C-wHKS@6#te$>~fegWn-W=jRG9Kl?;&XgX52wO!CXnzP?t*_Y&x74zfW#!vQA zuNYlFJJHb(DUYhH=J)8@!Tgrh9;#e(zZ*%P#aR|MC&~_6S(YmzrXtE#vh-T;82SqS zDS8odCJ(vWc!T-T^r?h-RVnr-aC1J)=Hur13w_*VIy3(Y+Hd~RZTvql2~_5A;7@s0 ztWeRFuPb1KtTkrr7Gxs|Uh0C0-hDz#3$xr()=Yb)yC0U0 z>g<#fX7g+eCb2AxmD&D+xD1E~t@UPTvgkem1jdklmZlXN1H+v(k74LF8IR@zSu9;R z4&%`+b{fKgIz0*bUp0KM&Qc*&s5KTWFS7^mQ=9CtP^B)pjwt1J($dfKf~GcJ4AQ&} zLj_;}F9-Kk`~(4<6=P!~E<|c3l`=uB*g+X>e1< zO}=>52i)NYalvK8>EK$duyicmAEWdH8tBgzS=kUC;BFR%!`!$X&E5q^P`!+|_h6<~ zjC~y-R<5G;eg3B}!2lz7s0 zqf_0NjZTeUhE{*lvd|;fb<1{*rOuilVYms-!ofApN^^}1S|Om9Q5Ey6ueyeA>7p_~ zpc|T<^K%U(I!jxGYo#bIp=x|t;@6KVXbJCpQk=%)3w=+(OZ`cJ)zhg5@-*v71ihZ_ zDm(%EKz7oT)T-wlhwyb=koE$lt$C7q_3htJ;psb1vTIULgRkLf(32(Z>A!B}sqd4R z81(Hs=kU}$D04xt6I>7O&{z2;eCFMnH0AT%3!L)lzPPzA@_yoRD4!BWfzl}@RB61Q z)jQ>LnH7aEw~>Z@I>i;)+;NeW+kAbteUYXgkMN7#XvI1=1uJ=*UNHVzeVDuEcpIAx z@^Zf#OF*Z1N|-LXZW=qJjrD<8--7DA&GQ}P8sKzUDU^F@c|)e8t&eOW0~bYm?BZfgJ@ML#3a-0y3id5>aXC6 z-jq%*|4m%AmI85wEgDO$)?l!MKj2*FdHDa>dmHd5i>v=XyhMTmyC`TB(4bL+0tQ7* z1Tc&wcj5^=BJcqA{s+eFwuQh0DqwY=YPHh z{6@f8v}chVBAHxM3AS_5?{G^?hg){E?-lun6B@TX!bKL_0k7?8!u-O3dM9%YJ!I<_ z`m0-lF$(S*o*`aU2kr&<{T4a`w@Wt~llbNVA6xmwYB#P63?0do)g3&9Rizqs2a4JH;sebOl?VdMpe}U3Xk{Py@x^_r84dKHQ3-r zir)w&A5u299n}hX|1E+7Ro%u@6a}wp;+QVl#6s$pI-POC-q>4;M?%?f^Q92LYc<)NY}K+5^b?l!lLum^PbEqNIWX+`q`I)%|Tt80b~F$hsk zg&U9HcvAB9wr@$;Xo=j^%?$HOK-I2qcZ>}C>bb-;`!z(KvPfcJ11M^sjlm7IJlz^v z=m`8UvB5%0@x+kr+DlyAm|z8Qj8PP1#g=2QGfpw=$FKz!DOO;ea(;wPYL~~`LcMiQ>IeZzwzpyT+T%ssQao0D$nN% zNQ8rkaco{r4+`m-Pb-8ihj)=Hgt<6{;$s`g*w!+3WN;f&FM}ShEqS<~QkQ|MSF3{i zBiZTLo~h06v^>GDnu06o4nA5iit{g`VZ6wQ*QuAmQslE;O+!b@ZaRwbYaRsnDJ%Y0 z=W5Ga0Ktab8*CHm-aR3u6T7b-NHXU0v1OfYYm9H=i7(rOw^W!I2(^dE1Ks zvWp_04oZJ`g+y6sAGrj{A=&G;?n4+qZ|2c|1ivUaH+W&vohYkwHp#NNIyF32whzb2 z_MwMtA9{L~qeOD-zjTUa@~xRX9II2><6v{jsH4T6wm-v*L2H7q|64RUF@LKQe$N#r zo4dpDnaA>%3Y$qkgbxZS;zM;7KJP19@g~f-4qvufxY${2;UHkUz85{1{})0AL&;eA zb*!15mlbP=dPY1}>zmk!)r|q;{8ypsNKFwE>Z6J!4%e~dbkqxGP*zQL;$}}~@&=oi z>9UaSo+#5hwfe2y67!4N=f%b@J}HnOw_r$`5;;p4fs60MVBno)2rjJrQ`VIfVUwIa zW-_|D-}^sS^20;?!28?!g_;Cn&5*%Q*c^$(a~c6n?~kqerUpZ1sxMrud5rvUu~r!} zhl0!T1le~V>EuC+RMS;*M6lDIYN_coFTCb23<@yKD`(12;ZL}yGgx3#6ht(^;#urb$aYu`tTxuv= zU_0i)UWFYmX;Fn5B}s8s62ol^*#cWg!3~tfc98?hR2yoIBroA~9{m97jH#FE-51rM zn(nunR`@3YTNw~&Ga%=?pXCwZ)O{LpmqT+vB}6HzL3SLBXM7DeH^+>Mmu_wv6_0M- zIV#zHGcSMRF7$z4YUFrms%o<*2Q6F)eZjk3Lxwd``f&}3N`f3Aod8j3g`IZcShr9r zK($!5&s>xW0h<2SQ8@_-Ow z-EqY0S`CG5N8SoycRxUKw6#07zV6LoPr3~p*4{;k|(_Q$madcEY;C14I5TPo^f z714j9Z0MNmR+lqT)qIKw;_c+nysE&?`d4&IqP78pIO0SQ-vX2G3Mx>#fC~A$Hsp^9 zY6vf&L{%ayc9f#ZoE2kU>`DEQRX&pZ23KcapW4gJHPS9=clYNy{=b1-jDnZNlHJD3 zJvYa*;qv5o#KQHDXh;hKuz0t<9VfD=5yx!TZ|Y>It6k7`Pz?*GPNz8$TbMMFt=On= zZ);mJ`!1T)o#CW=2+I4UgV=$e4UDLmC{Ec^Z)tYvMz!`oCaz6Yi|&x6(D3CBSxQ{o ziEG4FW08f6&8d#aCc-zwRzV=^)UgV+g&F4}OY*NGB3Z^N#{SA1bb)VApJiFlCWV7Y z9+6KP=%ym5k#yC>ZXQ+WmXNzLznv~Lo}d~P^KbpV1#_+G*B2ou%bR)c7VOt1E)$MV z7CzNZsH=^#S_*Y73F~LIK|HVVTv6CgDw8l^tFZ2MIGWGdm7Saj>mGC(>>( zD6@apM;r{2^*Pwt?Zm+{Az*k_Ccv@~th$6?)zPvC$+5lY`1gx`@^C)+xd|vZ=!uL*4r5E zvk`m5F<2tvUwscIIh&(xWX_u^kn0mY#UTFFqrDT=Ca^G!(ZZmf2>0d5PT;nz0U~ds zac*e-ZF}(Bc7DTYJL3JACZA(B@zZ{o3V4Ir1v)7;SQl$kwQwFdLF3{2lO5kopaobp zqgfFewb~BnZ9TA|^|h?{wNTAs>pf@a{2<$`m3-?yhW?dAy$E zc(@!~;>$Hlfi941mb z2*ffchJ_?wa@%G0x69*iIrnTmSg5PE;w1Usr9+&4ue|u(*ahsHP za`IbI>Z6ZZ-5^Ah6Z1W{zu!w|bhxDelC(8B>4(tUQvF_oyO_Jz5DSH2o>-~#@;ACD zcF9EC+F^-G>B>UG`Z7hyCL&ZTiH|&1FrJjY(-x{2cKUu_OdyfRK zy#8c4y~aDroSvbDGqR<7*DLe+kC|a1Cad}RPXDfJAt#%W>Faa4HS6|uJJB@|=N4rH z^cG=zdXcHzg;k3zC89-Z5paayvMvEpKtRh6K^g!Uqnt=f7Q2Y<X9oJBA6K0ro36cs(D{fUBpcUTEfdSlwMT)c%AdwU*2L4K0)-i%;%@>- zHla<0go`ZBmz-ddwQ*xkF8B|FHc@|>NMaXn0B+zsisF3MUWZ{zh!GwY+ ztPpY+htRi*>$}eXR(X9l@NHxEdm>B+X}{$#LUeR7(_t%dX_+UOJ2ufWzSue#9Y zfDs5(H)ovyS@&On4CBkb93&xkO+)tW@I%d-GX#gh)Aca&NG98^pX$_{+rJB%P*?Wv z{cJSS<9hdrt^!aXf33N>{cj}rs zWzvUcnLnbo_u`m0Ir-oA$LTL`N^|u3=IE6c-Rg}YtZiOl4yL`A9x%`Q**Teuj@G?{ zsPG{U@~2|FYSWtf&+MzF=_*`-Y^(BQTa_0HY^&@I=-`GB7uk=Qh64`w2uxL?J<&wy znX<#R4(Kr$)C#1 zQn#>Dwggl9$)dD=GRCnh>t_TWr1euSakYM02=AAtLx_0-f!57yEL@R)Euq%U>nvQH zKheS^<}A|Y;dZFmB27Ugi)qA_NpV5H|Na$DU9{ki+`HYylm<_{IKh1e-I1Fg!1WSy6<|q4L zl*a#-hGf^A?z|rzp-Eo2ko~;7PN4qI1}*R%1a2qxMS zHG>m@CGVBt_=w#2jGiTnZo@41lkbTibcn=<<9^MhCgs7-$#q> z0Tn$a!E!!is82j1fTM}$1Tb5IImd<;ZsI&R8h;18GMedIvRwCi2PL(E zdupxTPy6GX9?|4YZKClfN0~3;r%VC$mRCg!+5L-EKfitj$Z9oL7Vs z-^xwg(Gy-UG!N_f93H5PPw!T`sDz`6N0$hhC|SdicpKiAL){$#nP|xke_oFl^-SVf!}4a-4s&Y-yR+b%h9WDY$jA_>h%$N&Nm1ypvp)SPpzf1!nUb=CZP->y^hYW>BDzP}hA_byIM{zZGyO?iA513D}J za3lI78oA>;h3nq`-HRWHDXGsqhJMnZ zh1=&GM$kSwLwA?MKDh+u)49Qy(%t!J@&+y>zCEW$XyL}N2+gkAJR~{4Q^s6`Ry&5~ zhp}=i#fRGlH+~NsD-8KhG++t>pdR2!!6EG8#%tNhdB%3wibt&zG^RA%jYz@ZK$wg2p7vR|CyAGC^y0HN?u=J${1n@jjc%w;tM!?A=|&CJW97|5 zl`+Bp-Ns$Ntg%(baifEbWCYK|+3kVJ#Eu*Tf2RKVim!X!jBAia10w zr$KbT&S&Zve)8KK!@J?dY0BH2#6NF$O!T2y^0q_$6LpbAj5YV zWzvKb>@PFwKf*7JC$ePr!}X^bOLE;pS3_a%pS({3;b;Oe4+U#22Y>TreJ$;tCWP2C zi;Sl>p&3m~IP=s&QQY{%-wh_*q^V4}-qQ~pd0d6#A*W>pkzncUT)WW`VAZP43MveR}=OwBV5Q%flJX|HfMT zzfq_5hg#Z0+R7^ATd2}^o&T+sRNoDJbIzk6t17#CPp8IHbO^0t{x^OUIk3=oXnr}G zJn;|m;kE`Hlm=K$;hQQn{{s7=S^^Cran- zY{aE~WZdupb;H}N*IJ|{W_Y}QXrCs1Nop)-i;YPcb|Pg`ib_8+|0RCcJ>RVs!s`ib zGcy5bEHZ_Nh)v){5*;H64o|Ph@!E`MW+ppddHTuBLUv6`rJYL46`Z}gdc8khX?gqm zd96nBPFLP!_RzQbWv!yi&grNg3Sx_``m{e7`{#W=$MDx$Nn+}ZP6pLQdv!3)aoG;x z4kuArQFa{?2=c|tp?PIO=XLKZe%ING@7LXEpSN{`Hh8h=EH->a(hDFcee( z496y3XV;HOr@21sXZ3lU>&LbKq#wGq7604nrI(gYuT?;c!geMK{Aqid z{iY)s{I{ox26lh8h@owx$*iU|d2{$d->OjGx&F5r(su#h5Nel^Cuezm=DHOr&l>M_ z>Ao|vp1agKjBSK|lZeYVa?6%;3$unkSI-A7jW2l;ehlBVayX@_8FI^AVx}^aYw02I zucfR+GBfgfhAE9l52@R3Wi|zIDiffR(6%cremNJLkF`qe(y2=DVz%d{Qbx)2MM`j&C^aaV z>+5G`Hp==OclUGi0GauH@>~Ba%K^Lj%o~0PB+G>&v`}0pD-dFI_M7asB)I-nn!FY@ z#iwni;Z3$@> z%wRrBjtngvOxBU8&W1{LhJPvTk;;>$`Rq{Z=NuPW*v+cygwiFNWc4i54izOMrvn?L zss15UfYX|eu^zQrf7Lz~|F+cXXL&u@)iJcBKEB7`^S0?qo5asKa`{o~EfG6#9H zc(I}VZB^GdPIdnACJ&uEJIfs8UCW^{N!M4EHC}G;nSZ>VX`gra$D5rM8?0P7$E!N2 zwy{v2@nWZ?b6jsZj#CD?!;6L2U09GMW8yb~{(PVp4H@ll3CEW-CGAPlEGvF%YE0{0 z5g)K&x6@l;1_1tM-Q>`;VZob~$e};@=7Dl3^l62C#ENC+QYY<5>IIS&Cu0c}Hxo!T z7VHP3+&~%`FZ~SRH2N9B>8#HroPH+ek8pbYJn_>`BjZ({HKlGv1Bm>vr-b_(*AYjh z?)8VUijGflq3E}V|I<+xdfpL)kUUpD-T3dhF!=VGh*DZExZVqXecgM*e%8cRoR^IXG?qT)jN^7kZ@jS9!NkfV=z8?;(_+qc7BI zSRfree`eu^J$WY`O>dyGG=*&gmB~4A^%ihW9MRsRnz$RC82DRFy(y@zQEza=$BOL7 zbkTMMMbU4Jrf5qYC3CV)KBF62U=)`h+zGMx@1HSIU-Q1j zK|CD@jF^^dtwVpaT*8Vvi8jf8Gyh|&beGdzfd0V;dv!JA%Aly{@nVO-n4r_6N)C^v zV2@p;TNE6(y6Q7j6IZ(8_?>V`sm1htKpkhcoOcvNYStF=9zy1qx9CgNzq?7`h2~$2 z;2X3Ntc}Ur5asuG;fL;eiG*Zdos38sgoan@bE zuL}qM%rE7{lcFI`zc#klU%hFbtr5gE4)=yZB}2IJ+YI5$w=;ws`%KW7RkBl=f}Kf~ z6rh}CSLASEAU=fwoX!9i&e3d#(dIad|0f4)rpjX8$E4|J#=rMv2IKetbjUijeKWES zAnNpdIC>K2C*zdW_ZDE+lAWu7lVe8({m+;n0pbIsr>jCJ>9BuA?FM{|f5g27u^8#AUpOHBYL_00sr0J)2|9F?4 z8|zN_$^**FDyJk16?f3P;@V)Q2JC1RK2QBg`mev+B(-O}#2Fg9w479~w$S`K(3P$+ z7$tX(=|sm%=)2ufO!j=*%nsTP*jBwq#tS0#Lkx9hCH7u~E;=R$QVCbt9nG9nRp|4( zZ5lO>O8Mu`NZStBP`#^XRoMIG&b>?!$11dbjo-mHR38zusmS18=34@wYh6<%R2JLeY}pnZW3X4aycul`9>22u5lP4s@*2)vki#V!dw6W03Z+AKv4K-}b|KemKJqZ?mw;yUG8))(@}r!!d*=XN>b+INC`O=i@RZclKp59YOH^ghnsUBMml+e&}zf4xDAd{0q>Xb|d2KZ@N>bzm_a) zUPmC-u}I_QW&{a9`({@D<3bB^k+;2tybq>5jN4B8hr;eOIPsijxxAFH0F_|h^C)+Y zbQ|ZQM9=#!GG8UUS9-;`p*D0EC%YXr9K+&3O0lZs^r6DH>~JSGvMm=VtVRn?%Q4yh z2lA00O@UTDEX$~rw~B9{e-x%yfCvr>!Gd2gN6 zuZp~}J7^;3jw!XVDb>>tzdm-8%M5C>8n1P=PQGSpmCgt9V&!C2Be7Bnb(%aeHrVAx z!I{-KusOH#_AYzApW3)%3hup28KL3{Ik8SIKQbb=6azliVB z|Nfj#Wyz|1j((h*XN(VC=&bpJ>X>@8bMY(;)LHDM`1a2)4APZS#9(LBzj}AJc;I2N znc`)lepJ6s=dwuS5lz@C5`~xbpbPXLi5#TLj-7w^0^bTbfxZO^LqI5a$8a%Vqp z;QP#|WamBq)z2wey$gH236G;q+1B)PCvR%dDf1Q62`=`pq4_dZM6GIoM1%Q{m37n? z`VR`D;qPw@3r7pU*Yl^q=Nsx_cXx8EtMJF7*<4riOErCEj5=VSjqK1krs5xX4J)~m z56IX(`>s3}-J@A*-9XtI_(6=u8yXLz@U{W_s#og0aJ1ZQ4VP%|4U6ub0nvY1&93&b zGl$MCx_;XAx5WC$>6u20+)V!LF25R#+Sd)FX(&}Z^^DcQZ8i&?j@|C-eNergo^&uZPE-wzhuh!w`Wri!nhIkBnoDzf zpwd|}WIR`q59SlkXH?X~n(j{1g|QI#i@4vD2HmL5REF?h1ZrIyW*;wlXPYNNizcd# z`rV=_`;-rKHhmm(31P*Y@C;2;VzpMgk! z^%Y!n-gPrx_ZYS_cyc^rNsY3kiuU^B@3KhN4+!1jyLG7&)q#HTjvTOcpWfc|b)o#+#Lv=6x^Z%29*vje;XR;`{ol8! zu@;B#@rqm;ENH|GrzDqq6j-nahLeG3x zl#Q+4>7|QoDZ=U-T@Vmk!A0}ae=H57=m~dbQ zW?#4^joGDwxW(MlFW!Cqg1J|18JJNJm37Y?VJ@&5>`cN)MvgFXwOSG80Xfat74Af6 zw5svv+S6SR93Y?6u41OOAT=|S*#wytLT)8q!VGCdE-j6~kPv=8SKdtQ-3V!o*>gW+FPQP8Zw2^fI)U7D4m zMP2~aeQTEar=}wDOYtx|$C?8TT!FVA&#G+u|W+zvSqoT1wDvsj;nJFY^66%2K!G`vj^GR~OZ` zl7nm3HCx{JIfBZ|Ep=vuh4f-HnW)v6loh|I_0C=#N%ky5X!$`4q2;*HU2(D@zU16~ zBmCWr*Dq%z_~o$Byi@SZ37kdm`I=58?VXJ8C{xXltv6{>bd1FBQrX7t(WFHf zd@YS53q%U|;{lOny127561V;iTUUC-zQa=a4iwCIjw5y`P%h5^<=2k`%9H~@DQ^kN zaVFd-(!P6nN#En*7Y|f!z$wW&Z!Sa`}`=h1)#zUcH;32`tX$&(^Cn9XrtTc+O zIu%jDQK3`Ngzlci83j)^MV(X7)a86aUwAIR?IupPZu@!^->-dEkK}bWu}ocae%~Iz ziS*urOfdjAG_g~3Q-Ne|ubGmX^4?4d{!I50=Y)ZgCXG4B4cJ}MFi$|kT#382I&b6Y zcyL|JAJ#P9b@$pdM?XF-n4{j!hxv0eHCHY{n02tr1H7s_T~M>;g>$(_M2P4~S;FwD zI`FqrE}_3cjx1pzL!;R(c9QAPP*tUUqn5_&R-JDY>^nSNL&l?HeOk?UdW(#1e?<1& zgVZ~xMRvQ|1U}5Is@*VXqfWc?lLxh-tJyI@Jsqd>6Lid(`!YyNtG1MP81Y}H+`jTI zk}Si2Y)2G)+~z9HuY|w#^?tEc`XyrMzjk2}|6eN0gQl^rZXZ%rklvs2Gk5cUOa_z+ zx3crTmnez@V&X$=T2YfDEf_;9HlacLsk&&~euBy@OyAl2wn-P9l&1HOzd}C)3o2oc zD>mdGm2wK|@6Uo8S*{+<__u6R79eaK1Tt*{bT|b>(VN~0f#d`-Hh-y0?Bo{oMAD*_7`^XjG*bMD+uxr+wrH}`v;+3{ zM{`6Boqd9@2A%ypB^0ymKUzn`JCBZ)M_QmZlK7z`fqKbnzw2luP?D*?W$61c^}I*6 zXhs5;NT8p&6P5l~>fMv7cO6@GyfUptM0U6BgmCwSvBR|XaE58)e*xzDm4ue8Gc_{) ziO)!r5B^VuKfO&6NseS@2UbosZ?}oGS?~PPT@+MudS)fOu7G~QmEV?Q_?K9l`S!Wq zp}?ilOQ;#z>e=e6^rSTF0zEw=5^vx9?C~w$AO3S=D{s1Ef4N}8tZ#ACR{KNV<%xA! z36_Di`^k^@!x8FA))0N2ja5{z>TkY* zQvYc~4{!tOFu-K>s&wnecx2_)5silr;45A~y9?8z6GOkNu&R-7-227X4>i=;AG}xf z{}sSqjo1iA@C!njzJYxzu6Js_g9^meQB&U_`+{j;ZG8Y*s8=&oyZ#7V#U@L13W z-xe*>`=#<^w_IyRnwS^q1a=2k<)6WF(k6D6uwB9#YO+_~2M0SZgLo(Bi5{#=>+}lZfg^BGm1i+n43~L7H!P8 zQSjbCY;Ju3q@R)KwBRLZ!f`rgnWkZ+_=lRxI&Ohg+fSssBzHTRIj`x+_;Kerv@p*8 zo5g2*u<$f?@cn19KDeWe*E1_aj9)O)2rH9&ww&SvtV&kn76(DyW5?1a?*T`WQ`pQK z)2QCly|EpCVwWF^W&FuD&>8i$AFz$}!PI1`k!5ilHCiWaS{VJN9;TNEtybrIckW-W z9atS5>t*&Y2f})^VEr8Sc1o*tYQZ=FQcY+0QXTvK{;dv?KSJv@toVZC-`%zfv0}nU zxW?Sz-M-PSm#5n*BlVl9{6rtp*v}UVw1Tu;cKRsY@vm=K<(J~(sUhtk2L89&@Ypye zD13VJnsrJre~o|Ywl3>W1g94J^FREJAWf}?s~n-_DZX0%5BuY%sjB0E4e+N6AtQLu zCf;=A7@MTVJV*EM{OMqH&(t~{a)w2%>P6R_mBCryp!I2@oE6eY6w!`Tm`bp-)uMI{ z&LW-|+$MISEG^!O#9x6|WZm!c3dx5(xLEGg6>f(40z+WG9&JUY@X3vwZap=bqO7=X zPSHZ-kE5=uV;4I3BT{5d74=0#~X7rN3?Y9XTRu|mEz*4idcD-%j3_~h$|d0;J4hE)TS5(UYuNWd#|!S zTWQpnOrpKl@Zh4=n)(enBJ!+R?>#PHBpug#?_#NA>}OE1e2)Jr0SDfiHK@wCnxW`yHplZ$f$8-fpigb9-6x zD5>08Hu4DboNm)F;O`6m^B-fm;ZC``pXvNBbVZl6Mnf>JjbD*193Op8b_1_L8HPyj zh=rnuw3OFOT$y9@y7!mkH7s@L@9SoF;TgSr7K%>`t9J0Maj9=S*1BYMvVM2|Ipe}T z7?n|x6ZkXrQdh2KEo^NW$P$LlXfue>l+J@DbI-+~_q4W^nHjdMEKm<1?Pn&+NUL5ntn{@9CvNO;UX{ z5!EUzmdms{(REIg<8g9zn%{B1v(9BJZ( zR%CL=XJ)Y3Xq|De>EnKo`lms0a!xnooZW?0%&+xs9FNZ&$6mu9W*o6VP!WHAt=Ifo zKeY^sqj1e?26K1EX>ZwJZmYF7m3aj6_T$U?Y+%D*_Q~sIJo^~!y@6L-a}0y2Wx)_` z@XCQks-y)yn@6RX-+~e9XX$m`^`x^h$i9nMt>mB_ui=x|ka>uuF8VMy^p^jb?e1{< zL^1KXJC-tfI^4crVbTxL7A~{jofEzY%2~~=2v&`Cg#N8I8QSZ(bW$nl4MgOCWRryt z=5JOQ>Wb?b`&(dt;b`v3??~dzNP;(16C=VtTr4gVYE?4A2XS(x#gZ;b8>SIE{|4qN8UvZ{$Q(o-2b*1??9mj+|?NMj% zQz3IBnLx?M?s@_=uoK91b2~|&7^Pr&rzXt7PJv<*R6lqzGrg;@a08S=)DlHH@hJ^G zi;N1Zj^+>J@7Vkcb>3n_HFxb&sz<5rBh=OGlEf3JR#l2FPxVGANTo@eDEa(z`kZC~qeFZ)m(=PgvI zu4qyuG^ftnaSH0{War^8=R>^6>9#{a&-=_T{VO(+B)0N^M2F>yl z=c4nP7&-H7zNLlu)i_P%+sziOpDI!*5V(b`<1anbFUyGEd*IQHwvj2&5jBbUDLPk; zhUS^JA$c3;z8^+Dc{5VK_ktQUV#&dW88hzj9bd@dsYLIbJGbo9W|ga%Zz7_ZYh1Ng z2oJ%d$8#mX=RNs8JY_*$EDVnE10{Up-@NV2@BzpX92)Kdw*sWG=Ju|vGz)W^S=J2V z*39eP6UV@-Y|L`JlRkQF9}S6H?QAB8mc}`J$v!7Sx?^GML*Q}ljv|TQu&_cC!~Kw% zuB+#e<%JLg7tiREMa0M~qUi}Kq!#37c@syua}Z5!oo?B!^#r&5H@+jpRC1R+nf;9) z$>GUH@00VjnRJ{*Zl)&Z;w~ytFVoF>L6{YqFB==n`!dG0kp%u-#xVcZYtCE<=c9w>D3TMM zDPrYtyy=8+ylMq2%uS?mJaZEX$NM(Fi$y1told&q6r&+=3sn>1mP@t&t$OrbtM3!4 z1(or?IwCseamd2;zivk}*CR6edwps#!yD+-`#y*pnqOq%%TP4`(hL;kbQMKFg*)X; zft$Avj7au;Cz2e$wPwh8%Q!%m_kwa%eDXV6@gPX5^HyV^I&U=wW!GWh)St=7Xg&D= zqm^{M^B%TmQ5?vr=gDv=nxJc<7M&7lD71}mhnc22@%3%9xUQ^ z3F6#nQ)PY(^Mt(Rz6ZLirgEG{%HeXK4ajBp;54$G23AiYBhji6+oq zjR^>SSInaY=oK!sZd$kkp-D7gNfCwVU+U3#WX`oIMg)@Mm)~l z@O|dRJH;7H-`+a5-+N4AQTE;X4KC-hxY6+LP+EYPWcPO#4$eyDQWsPvPnhE* zEljZySV>hDsS6?vihyv1vb`ZV8h!AbM_J+cS@|>$>k0jF*hZ9butg-AD8TbmxQuI6 zQ(In~dhdJkj$I1mTEd|thSc<7px5V>XAQG>a#|w zu^h|}1Yj*bD&?K}%M6SflQ;mjm)|znzUE-NPhUQ4+<|_L&$8m35)eKT1Ni8-3@N6n zcYs57Pc}QfccgP>Vm8^2584Ga&HgMPfC_RHtjL#x9-Ek9BAS>-TDTiJ0Sms~&yl@@)&xJ#2QgUZ}wS3lHmfsCnTr{UcNBOy3VN{_Zt79r2yrc1d5| zPnvm7%jG9xuJFYiE42Jj;)^doPu!ca{CL;cC}csTVn z`joNwNIx>OBlqXD0kF3}+|Kht?L47s%Z-7Vh3;ilFu$EoF#i_^9(`-`V3@xi7MAXdn?b%9w!aki^Lt=mz0cl%=IkxYU|{n) z99#SzKo^C&s$$kwQ{z;s51wwFM>8$U(})W`XXcGehU^4FL4+@#1@UxwAXu~w7b**~}SrN4g5SYOnDcdXKaDVXd&uNpd7`7!RI4zWuk z`ozzd-8z0}bZiL`s#)<=0!ut; z_)yxwkSv0`H&gM+_)j`M+w%`Khq%&BWp0af#!~NXfU#(s!ahp;Jty!_{v^M<9KRq| zYdTAI>tQeVU0;PHb`VZ=Y)Wf~-2Q(l`cb$4AD9Ecb9aa{YX84gAu3D@VaVdNi`?yP z=mDE9`|BS1Tm(RHs2wpj|2LcuMIzc%igTz?qARf{4%x%2Z zk8?71@sk$Apx#dR+&Wu-VMb?%w>kLYald7>#lxey0~QahXTHN(!DWlbu?)=z3CB=W z$otDfVj2c0;yl?h_I_^97nb~!@!&S}uHn|!0Bxofx6ASw>+ zT5I&o9eQGapI2dKNw#+rN+Gw> z(1Kp9I*~*ulDN1PVkn|jP0b? z-V2jRcE5^Nof9tv_@Jq1d_oReq=!e#PZxWxc*w zPPW~b;P=T_&p~LKy`LR^-bB z$S9+bh$!Ps3zy`dMJUQ}#TVN-f_kB9L!GYR6CN>ZO&AqY%RJ-Kl63F6(m-1|u5PisLFgDwzF zV4T~bv7`1E-l|WHF1pe9m!gXg&!-~v+t+EZ)y)GbLmlxcLtPCh<9_;dAZ097PaS0l zjmj+eQqRcct4|#v`s7oGS~U3gJZSXsuZ0=(p%%P%l+c1cZlY1SWRWS_HAf4(ud$=)`V6v12PW z@O<2M0^CDL>=?7}wLt9f4$JaI4c`Cc=L}inu{Sbh4eV1M_`LhU6NC3TPZ#e#*!!Gr z@)&a6$tNdXNFXJV1dLt^&oZWUgJyH74l8{X3@g5R&s0{YnaZ-(wy7)<&{USY9_i7{ zM+EB-W!V{P(pHmV$6xwTaeY+U^p(xcfuL|IIfB9H{797sgEKiDT^89$@IK>YWA``3?(P9azp;9|v zl_^X#e}o-Lj$|2$zt$|yE>*SutC9zzQ1j8%+Pe6VSy~;*G5NM=YbMR59)Zoj9Q>#A zdH?;_|F6(j*=?=RSJh3>*FVo}rmyR|Ir`eB-&&1%C~YWC?X^6~#$^tJVm2d6K0zWx!o+|Pa=>Z~*ZcZ^E+ztGQdDo_&k zZrHB77u8G!yZ<~}rI|sj+IIe8E;=Psz#mK&U!bh`?8-VhcE^ErYDGW`2m2Y*TZV4Q zAurtO`*_4+7{`G3Phg1$o+2#~CG54N#f{ojt+1&&#-{3}f}xNa{MpJSHBPTNjB$41 zDxArB{T?Bo=Sujt_K%Gu&WrG>v@`e{P$&7UMdMN(7r=mJn+NkK67$G_2)2=ig){Jg zZ3G}3vhTfGcF}b#=#qcjxT*E79aygz5u6POTVq54Jk2cV*PC0A$opv)1XYZa)difE zKQuI$Z3>i-V}En!Gw@-FFIbn9@CG!k65#>p()XUwK2D#y3_`219^{R200i>EsFy*vG&8o2ykxO=kmvh_M; zv8nCLUp_`tdzlaD47j{thPHz-lP}{OqKOU;Y~l#%c$F;PQgxU+x{Yzgz{EI?oz%r; zf-dU2x4grfn2O2l9#kp)nUU|@wOgqI zjRQ&BWqMA~2vj!HxC&}^2w^-A>N*K3j(TA* zet7M%L%$(7@RXr(-duS&e<=+IW8B!?9%o>TFj5de$?mVM8_fQ4U)2d8@<8NJjyNB* z6u!n?80K%+q2W|W?=2Lso_aN|4tZg^@6LPO)8mkh*pf<$ zW5J^W=Fuu|y7YI0wZ6B;o_?Y#T4hhQq%@AwL|typ1kck2z@*tz_Az2lI^UgX{r5Ab z`I8k-c7A2;=kTY#XJqiF*TkP*`aAsT_n*t34AKjPi0PWaORY-*m_Bowa5Uqy?btMP zQeGy4^1_y2PX2WuV+BFk`beLROwTcJr-SjN9M!u<&&(t{?^q)?z|PobOm1mO>BU`{ zRc~nQP?j9ZW6SkCk}>;SE*wYMO>&yOm~!Ip(c)aVlKFay{jp3s=h!RJWEr;%Fb@I0 zshMpVteSmoZ!hMGmxQm>KSugJ!p_rdiRQZR8s}&?Ui7w?fG~ zMVs6Nk0v^8VHw$yQ^xIvpjTT&sG1I1*fF#5?ONa<0t+!?iuddvdEH`z{OEPAQZq~j zjW6pf}EQQL?y@e~-; z&PeL2U#n8D?c*u9Wak;m zlWz0u9{NmXPqbfU%SBRyb`D6rjc=TGLp49;FIw8NQHja#vv3W5|Dwdi_gT2!l4Vp% zmQksp|4E*#7%qHfL&)8@ z7%<$+pzbgt9{qV3UZ$ApTn_U?me=!QcV zLS~Ml?TGq|!SwaPV$g**I$Ev(Zh!SNphl90^d}?iCiMr#i~I{>O!<@Nls^)I(NWY4 zsX9&Q#fIe@IgLj~lB3BF1-$C@Ggxuz6JqR^{TD-6Tp!DW_E;Y=*g6d2^$oTz3~TGd zo4RYma?LZ=&)YSU;1qg1?WPk^M`wJXl<g5M$ZUxPqN%PzI}a{Uvl_)`5_(x>(Q zm3u<8-@o<0b^U88{>DziPc)<7lMZM99isu}se0dazaF1QX|3<|G5XxrT`o98pPybA z3}TMfN)u zTo$qu&i*XKQgHu~EHSK^xnhHG50|_}7RM^VB5;y^){dL)39gGr;kDMKiCAGLR-*XT z(A`~g)N-)OyE3vyq;``Y!^7Cb%{Q$d{F8kgmJ(FUYY$@xj*DF)=}pQzv5OLg$k_`V%!1_1l51rP?{_z<$gn{Sm5t=^dz>tN@`jpO(@t}1)Lwpunb z2e$b8>9ojhPv<8Oyej$h&~2azpc0{P{n(Q4~ATNiqS`s#d zm1TrdpsLTp#&Z8#SkZSKp>VO1Q00^!!{VwU?0Q34l${YOgV zlqpRKYbWb?tc3Hgd5#)(TBkbiP=h~bwnFZ5fVizO+R6l*b}thQRzd#~QQSqnDInI1`A(I!&- z)|^{28OG7bp4B_M$F8&=F9n#PAJ?^s^+rI%3Xdx6;kKWhKMwu4zHPwO`jV|} z3}O1M(890b>?4xw8Ry@dn3j$VJ=5dkHEnQNhiArZ+y~#b2qy**#e;`K6tDFVQA{}T z%dv+hb)p4PJaH53;n8YG5K5MR!86RYS+et{XQ2!^Yo*o0j(|g4L#vS&$i=}sXXletOm>mAlzZiH%JpfjoEGb?v$a@j>aefD9k=K+B`-)SdasK9qf9Q`A&yD zOHOwF5wJ8~X{%9V{}0j$wg*A)|M6>z*`jSMEf7yeguRzJZq(9nA(AKO{8|gD zfh3x2KTYDl*07QBPW3$SQSUYlBl6U*!+G?fJ}32WN_!jr%nrAanB8hc>NfFW?pjG5 zsMFmmoSDDbjtgN}H^4qHJrzz}ZefeV{!sg`njbMwfdI+8Q{AY<*g9=6e@YjS-^+_% zPw&L)A^H&~a{s)uCdjU1V#}o&F43;8NL;Fpjs%)dt*yp2<1eK;v97pXUnT(4{q|oC zE&MYKa{u;EIsf5p%ys0#~x{Jty%B7%%FKbf2oDOewZ5=1GUw` zhe@-pEfZI*;ZIm&?>Pa~wUa-bi;1)i{38^95?Xkq!QTn|ja^?jDiK{@R9^fBIC48| zZie3h*j)j;OxQcR>Ty9`wG4v#dQ|Tp9s|vRuRI3dSH<~TNG&<9MCwx)MB021*|;lG zQ{OgY0jtX{0N*cp<8q{;2v)1-{Rft`r;w3a$Kypn{?S!(o220262uCJ92U6kAPK&N z0(6a>u_R^F!H8f*--*X%%FxKY5?UzR(b38FCG>E06MbFnp?X}sGr}8vcOP#BdXjnk z-e~cgp@kmQIEv)0qY|a78={GmujJMyFD#BEC@=Ox3v>f&==^r&iFO*j2FkPByU@hb zt^S9}ryd`AI!qyp!iNOiLkmP(I;O$#BX1-GS^=qYwraeS+3iN0D*E+i9<2%OHrA}p zZ0-lb*lLD+*b}s1|6xuUtqf<3yx*Ig&fdvAyl(63Ov6}!+`zdiZEET+Ra*$U8o5#w zr32~UP25#Q*SY3N8KiJ$(;>U@aFRxog!j>C;)H182DGotzi9Ehp_&IN&NaC4qvPG) zy*OU_ZWt`T%excoXh#an*x{q&(RXuFSF_P5)28+XZz5pf>ZUd|g5Pi}!3eDjEi6?< zv?%Ogl=dtzjEYBBd!v%wR+lHoG}R2*(?j*KL!Py|sqqLlx>Vxbj!}fv_Y=yKSGLvY z*@e|;pDnCjg{)qC(XfvZ5;dpF;x9*~;<{vS*(YyE#Z^|brm(DjH+R8My$?PvQnPMv zS@EByR_K_;1SpjM4MLPuu5Y8~K%tS{F0KDNOvLNw1eMAebb+RHPcWcYM7cVpa;pob zbCsCR>ybX30BkR--;VZwC)euhpjs}$W+REn9He)W?%#o{M0me9hEhh!va4$`^mIq~1Br|IYe z7sEmBJIZm80>)n)q*5eoT|G1hnbXE`kfYnT~+EOJ=Z-)c)+F#}mdrIuRKA_;m~Rv6BYV>?2D_@DgJmGE))zPzd`t zj^LQk0&`&vJ=GdLaTh~m0ZDNek0VadS~^_p1NnN;k&b^Tr{f=m#y_6Q&EOxdcqaeQ zFRr}dtC@e)sU9hOb;u3!oE4v#Mdrn)wGu z>0gw2V3u=m=COV+B!6MsFUmJ`FeQd4tE=S}a$k*5%Je?l;UUpJ8xCY3*U< zJn)Ytk7e?Y;N-;JG8Y$7g{dELtHI|Y^Is3Ri1(b#e;fySoM@VZ)c^Yw?LXg5^N(6f zHU6={${7EcVNv5Bw_0?oSjj}9MqfQ>NPR$y>B@6p{f4LVwRZe3st!wh$@P{$t*MIw zQ1r+Cmfz6-{rwB*|77=%{;yE_%>wB+3z#O|m?r@9C#nTxJ(l0jP3+E0 zwUGVBCM+&3Mgw9v`qfNpOZ%OWSR~F=HNu8+ST`6GB z@qYN!Yx{(h6px1=s0o$+b6S7;o~OQJn8u%4Z_>4&?(-hH{?mQv-=jpI8SyEQDZOTG z9_Jw(D&+7NqX+&9^s{NibTItP*@Kk1{M`7E`R|?9r)B-#FUqL%#F3xs{kBy!b;zpU zc(T>1f9`acPJjE58^4S`n70h=K|;T2x`2;c8UU%+sLAG8WAn7Hi(Fn5(DAt3=pi>BxTPgV5aQ z*2$|^*Q(4Pgo;xqa(~6OAoP8)E{i6-e#?WwN)0n|Gy3{QOW6IYq0Vr6c_1%2Ld6L8&g?N`7{ zxbsXK=_@jbz)fFo-s1tbQkS>J88YYBx4$6#dn+CN-DdQcLvNT#8BMq7)g|TXC*dpdhiwNS#~+u!Jr;E9 zf1W=~x*?N4j582g9WMPG&k`Ii zIYIO>C*CK6F#D__r(~@<0XoDV-(9vHz`&EEBRp%!)Eff=7P-nu&8`z>^Mt8>ioY1C zf4e=Kv1Q%l1Aj2*rL(YSN@nN1iKLn6RLhpI3&+9cmS{~WPFa)LzaNZm@XA3FiS6eK zwy4WGn~14jCdhrq-FCpohm(I_Mq8y9wmAQ=jGSF(|9sE&IJd+7r2lOa>5`Yc z`_k!)Gtxu1kj`ONmNzY(J~<=(`s;)8m!;FA8R>)5?VpoQ@0*bx4!YqTolftRkzTr( z`a7!qkG~%DZ%1Bp|4#j80N<8$`pX&V=j#~H_1~q}44HL=aE{JJW=ZkvIlDl7SLh%{ z#D4S|Ic)bX3cKNtID9YH38X3l!8g-@H!0oTRepOB@I5cc=3SIdADofiJ&o^E(&;@j z(x+4f@E(><|MUdcU)BG!bbsH!D!|8|GSYwh80FFXXL;*fdd-liSG3$?BH<>?aF`$s2ItrM%WzezT)GTr*se(NPbH*N{pM6X^X zoqm2s`n0J*?+ViC$7iJfKAoPEPTzaH>%Hp#*xE)r_aeqKW-N3IZCfgr(d0szI#rP9!aO4pOJpWv!n~d zUO_tj_>A2*(#ZuA{Vr=OpZ{`3ygu}^{i z)9J@&q+kAh(($8}<>jQ)_a4^_f8U*?AEk8f@}PfjW~7h%De1=j)~C~do00yF9|ZL; zOQ-)hBYi|VeNj4nPDc81TFu=2Pp4mn)PCq{*y(pbtkWN27BfZCb${YT3 z(&>ATZSMbL-yz-2|I5<-&q)8xi=<=b!1$-rf18nh-VD+W{$=U(A7`Y`evS07$}dW% z&&fzXBMo0=I{oU5^f^~k-uP=Ioqm2sdYAP06{ORT&q$woC*@uLU3$%sSK4V(*lG=} zXRrJq;BQ2{M=B5r)=R(7lDO4d`7ZUu>?!u;tM<)=I^Eja^Fv+%PL;){x zs3GpPuFcgI({#MKQJpW1Z`tm5f{k@%`{VcTKP-C+fR4n+L?gFZSi?4cpfzcR#%uVG7ATl65Ul^#9I}0TCiBb#V7L|- zCe?m@TA*w4e#2?wcj4#2r&hzX8cw(RyGsw=s+ZHE$;Jo$snlwq z_CpJQD(2IY$E2r}cg52-!>5TmpuCP0h(mD3b1749z4%Iz%kVXu`FN-vr=yud%$h5> zv{ex)9yKmj9C~KPgp#5;6Jlq09f6&}J;hDVODe6p;!7)I-C!S+i$+fNIfqjQAB0`y zKiC4TXYYsBbYBg>w;Zf*$V5j93|{E5{k`8c-gKRf-I#vAc_XsNz_yV#Z}?2~CC+>1 z*Tptu!nM+r>8-F7_~Xn6S^(PG_=gtO918!hKWX^CEI==qb?61!VFjSKFm@j3Edsqo zu|n_BOANiI`sgk3(OVMh4th(AMwVuxx7O#(4%ZpHaP1FUfc>>Y;`i3CfZx6jzsYW> zMFuu-dja3dwo3iYA$a{4LNND_S_0Y{ey8yQV&?jp2(xJPWEEvyxHKn{D9K?J4eKS> z&EDjSLrknEevpZj#-BoEMqgSVSrE0P=zQaV^||+c>vPu`A=g>xW6$V=Hz@uwsAZe2 zt&gFFx_NRi7$hNt7RWn93nkzX>$V&1(W$%L{0YP7TY2*79P*sb*LK ze@5}j7{bQcGtTnPam7yaX$}g7Lpb^4(!$tLiL!ykBL`;E-NDGN{QgV~)BjYDgHfKF z;)efT^gTm9@qY36E<5vavPTA0|Kt0a)i4BfQtk4!%OL{^{u= zi~Xn91L$FgKXS`?9=pMUHEDUteP%G|@_RC|DgHm`^Z9>h;jdi(=ulu^p*oAyzY_Y# z4xG)YWIXvISVQ01&ql0M-(cN|!E~#%A;u3+P;w;XM%;?@38Rs{3(Pbi&o_0-4dIe`T5oQ zJ;{sjR?p=8CXqywH{)4B@=fRZ$T_eGn;Q$9P2kc3!roE?@E9>)DE=>RWz%=FN%iDOGVm{WBRW3aP zzM(Hl*J_}dN?6~ie~hdg<_dJ-MNT0K2sN_8i$+$jD|k8I5fFZ%gkOjbSRonA zkty_yUx<7vl)5+V(j>iiQshg~UxnxjC>rJiW)1Nu`>^c~QjdZO38?uvp8Y>Vy=QojDzKJB(be{vV5k#%&q*r!7bxA|QoE0WU43P0YW#g6{05cFq- zpg$vC=+BS}{aGRCPlf*5^d}ScMU0AO%YTy&Z^PK^{|X%n- z-tJ}eD*h@y43I?-d6w%QllK=u^efvLNz_{Y#Qj!nVv(wqraTcCa+)~eH7pW-WXgF; zS_pCd>nXTfzF&@fh3D1#ze!5E!;M@SJ0YS3;R!+Czj{AP7AC^@{YZD zlnKpSEeMjAwL$;;T4>%Q`s(um*KodpBOV|5MX7xE;Xjj@T(ekc?9h zAqq^t;jPNuvX9qUKgMkfs6!=Zwc1`oF{H)HNaBZv1HCo;0#9-CBJJ<40#wGD3<7|G z;Eac7&`TB##?)pV*2p}ZHm7J(?X=rM&kV*v@~}1~)%!ZfPT;B0Io+p?2|Y8bZ5zoK z{Cao{Q=VaM?QAVl{L$^J8c_;K zbE_{z+CW(w+3Rg;G}Y}m3IDXvqzB0E8?3!vRQ^Z!QCDJUxUt=UO||nk#V#{>11i|6 z%V0OJBx|zs+C}aGJbu=oC$oP&fCun^1PWv9otv=uUi7<9{RuSkf+lz9snjzslooqC zPrXoIYu1)96u?{WJ@%+jUGL=+IJTZ38$}mxoHsa}i^jM9_V0@hrf-7-v++?L@Z|u)uaI)7s z?^b4c!=rz2u6PT*-M==3-}`@f`xfx1s;lh;6G?!00tN*^4H6{CEg)(l1QSf)3``^_ z)d*=#6=`hIBF+Sq+k{Dg<8UBaZE5wZwDw|KTW#y7D14vcQV7y&z{=GNUb~M&+ju1j zmi+I#_Bk_?1g!m^|M`6|bI#efwbx#2?X}lhd+(JR;dz7{G?KdSMIgMdRE%gl58FcSD)#LOO zwmPI<+I%mm(WoP4A{)!`5{JNV5x8QDvuN!o47dC%BCh31KN8PcVFVOYa z7Op!ZS7>#29{lQ1lswY3~-&h1xn5s zU=?U2Dep4)x2GWf1~_QKx9E1$UV`Q`@&Sn|{wYL&^IejTH)Wnl^1Y4$5y{siBePEK z$e}(?iV)N^qk0jEJ6w_I8-im9Q_fb8{88BJ(=gc!i&%mNJRQ;?zBS5~Y94=?w$7s- z|1G!#1Ia#`kq2Y~D|mpE^a6uiOrzuohQf!CK|BH**xAXPVO-a_PT!66j6fHfd`Xe< z&~5^|(QUgCzux&3(0Yuz*S(VV{dgMJAs>VMXy2!&_A1HIfvf7c#R{KK@yMqWZ<*UV zt_lAw*-Sp+N2k_G1A0@DKVr%Jfj&Qh&;G~*GLL|4HsMupmWit5A=`V%W98Znb=w~V zZ(CPsyfH8FHh{nAtVYYKMtS`a8CH$cCGK}iuu_)Dl`QV=ZYYn$f=bnSzv1T9?P4X) zymso!0b`Q3T!4HW4Yn-D$KXsxmGPt=750H(uxoO#1`zxv`R{3b;6`{sh0A*MYkm4H zskv-~aNjrHgbdy`^{=r5zx)3TypL^B_TvXTaGvM54(CadwVg8F#NJp)?X89Gb*O6k z6+ldkFx+8x`^6oiBuSo7kn~;D8^vjUcvaU5hFKdemLkDXWv2Sgau*)CY^C9=#6RE;6OL>6_(H;1 zO&FmQx>|A~%VUm~`MTgGJsV?w;`surhO;<2#hX~TJ{W<$S$kt@GLGp?nXLZ!l+bIR zke)`NU}5bKTKZRRHx36j)Xra#ka!-t%iA#4<(ZM+Ykh$_sb+SGXak481wmhVw=nx| zfx?u(6>6ex_aS%EgbE^xhukICi9P!1jNfrHLO;V@&H(U(9|J(feQ}sfeSHBaeW(i{ z6c<9qeYm7?4$cye)mig|pqE`L1Z^J$LAP9ssl;kkCZea*4#X8{a#F2J-63=C0u^@G zpK5TVL8AXKUsg4s3qY8yene75tJx}(S2;$!kS3<42}x}9>KBrTKAG5p(5J6+{l>Fv zsq)JF6KWe5=oi{tgZHH1`JuLcfqrmAoU>&d-o<`6SLTOKjjG{ZgNXn9abj!TpS6A{ zR~>iiqYFbrs4Zvl6`{7F!SlcgJyiw{{)yhKE`<&gy`JqOJ$TKo5aFF@c7!NWl?if; zP6)LP3ufw+p>9g_;!xXU?_-YlvDcQN=#09a$HkondvoqfWGH6_`kT-V4L_%y)8Y{D z4_Q1t)ONAJ-%FJtfYS-Fx!a)lMejv=cA!5p1?Oo{FZQ7NMwd?AgF;bXsO=ID{vlpY z^mLN<5l#fb0ef2LeVpWd>?IpWR5k4Nr|ap$dpq@X2zx5@aU1%UN!gG_*^m}lI}d0M zw-pAm8p1&6)f&`6YGxH+gyR|VNq-s$`G{{KvGh8sFxW>YU7&_Y3M&osj60I6`uh?W zgy?FGWR2fbT0RvK26uf1*|1QrUT zlk^{@LkeVu+bend0oGqyD4=k5bOH}-iLJ71tiiAX$x>&1$WxPI-*q86F)SR2*=`oR zy!=(tx3T6U3_Mr=m^SvBBR=6_uqTe1+fH6%4*3L-U4XlY)Omm`+*%pDiS1_NE27jV z;QyK)8XDAg1rN?z{TM65x;_tfqm-WLe{rZa7`y?#Cgi>zmWh|{S&XRj{Nzyk(!h); z4pT>7oSqHT4Nwiz)c_)r*a$i|z)b$wDF&H9{A96P_!{exwVm)gmry=*>|%$`x#wKt z*{sQ-_T|C9^OMyA`EU?Fs)j*G(5>&nuew8CTGSARP$6+3ej8lvN&UG7yLq)HCGyER z8e7UIaAo|F`>T{*ycCc?YL9Cz?@3t!n6~@t=|Ru}wXU;H>pE~@6tNg~t5d4@k*^%T zCD7U`D39D&8nziT9+{vlrd zYef=vE@`4c_9(6=yNBumL!#ul`}v6>N<(6(QGOrFpvMi4ybFJ zkjT>#q%tUCT2XW>LwY09OQ2CoWxPI#wPF1_sN0koAACHC{QA=Qa}GB3>-jTJK-{uIZEt_ zX>~ROhhD2rGy~(Po#!@6HfVz<)F45RLDyo5V0HR`IFvx33@v{tZo1OCZsY0~Xb_<0_Onq;h} zp*;LN$$hd>UnW^(Wsg1z@*=gu9`+Jw(6H984#1g!Su3w2)Ly8M0FC^x2&E$rl;AI= zO$hbE&icDb7a5Is7aTNu56AETgF*QIvFMXNABwgce*S_8I9-S7yslr z&wIv&+9E%hC$g3t0IqJ}k9A9axUhX6LBf`bnFw&i{429wcz2#!)POx3BasiP#=LOb zax^|{G!{&D#!&tkC9qlQ+ZzNiMD!L~sZ`rfgnX}GbXxMgr2*udi+o+lS0z8HDR&bR zsX#12i@(KbovP_2E^+0qD>FM>XbQxLf$?S(a{%{@E*ao`QO_}80Kk1YUT~Q(v9NoZ zYg}t-CMHm??iJ1s$;0_yK!x{(_)&A$lWMhW4s8yAUXp@oxY}$9>Vo=LUS;BL4{d8? z^D**watJ2mMM-{2FN!QpuSOwcGx|p|>E0+LIR>Y6wzog9N)xrMjhV;}*bM)Au>&Q)kB-7;8&?qZ*KzBqM^jFUn3nkOoJV10Fl%>HcGJFLgKR8*(!Q98 z$nnGKEcwNxuupA9giwRl-$&m`Y|=&dE^dPUO7riLfBd`o_s{~j($mhrG5zjC>>&OU z{caPm5}SOr9m877^`bYwx~rNo#)gNHHQbi5vS2>eH|dc7ZJ0k=fDgO{u5u`mJo{j{ z4KoT4$3uRju0I}}G5CYU!6ZF@v|X}tM7S+Gc%B+}1KR!Tw{eVa87pVyeFzHc%dl2)7vk-G_aHlc@sIXZ9PdS^6JP;zWGN?vF`kc3OE!tK3k3iPMII9-2F z|v{V~+7Hq446&N+yMg-aSvCMr>POX|9uO~|@S zG?nwAe}2Y-HzElF4eoJ0yl}W49rwA&-@7n3sVln`?eA=5HDb6J?@-vPzTGlSME#^i z^?5k~OKf^*bfxr99qpEs8=a^A)a~oV(d(d!l)b>!YCvX?O{f|1p~xAP1Ah6Au^%9G zAPl0xOO9r#V7L0P3Vc#)4(*50tYgdKfKl_q?RZo>Y9c&4!E@neJc z>-GmFBssT>38BB z;oibIl;2^jScu8uavL-6bvvlF9Na@heVw6&Rid&Who`TwD!P#b8*q5pg;l?Y`)o8m z`>e)dnXlkC^LmW^(`0Nr^`X9E=luCD*g4b2(#}}|Z#GpOIaoFIq5jZw{yCg_4ibQp zq1U0D%PyXf>b0`Jh}ud_HxR7BBcT6sd4_DAhKJg1g8a7R#VX=T;Cm%)(fkxmxWHHQCo{ve!0ldxgvo5;#H`X4>UCaO9taWyCHyh7(iri8sw{ zr(g@hS)P+Fr?zl4LIy^wtz!lp)0(H52w>SI7U!8I%ytdQeRB- z_*Ft(JL<@xNzTLkhFBmte=_eUBe$uwh?CO#2K19H^IYY?`3OfQcUt@Nh3j+P3ZmEN zm%?cU6=8rd)029Q0}~L%drZF!%i251ct{rNyF!aGdJxp&&E^4kc!QEzlr6szmsf>N zJw-xfh_^m(A8TwFCNgE%%A3ON*~W%*p;d?5(^sA^^LIN`i_b7A<4YjNnITV5DMsKy zr-Sqd%hzn9eiR;*GaUec=&6o2h#~>OWUT)>)SqzsC}aH*F6?9aN&9G{{wm~De@G~% z8BXeNL;CqBp&m>~*D`7{@Nd-r9pJhS0Hf|0UQ{)5@@_8z;EO~^wZ6#rD71>LNF{#E z5ib>6->Z`Eosw~ACnSzuRq+H*h#l<`$4fW_jPgAR)v|xb@Xo6ll>9!UUFVoPTJbI? zw=*MsiCni@2$34`5`-TPJj&?Rmy0+*EX%k7H?s)&efIY#L5p9&A0&NLV(luknu?$A z$28bAKEuM$!>N-DT_ldbF-Bc6LJ8C&p9YJ)4sBkF&LI=VPn-opwVPM5+ifMr&5-k6Y0~dwr$do(WBj+ z?KCI-3%yY}39YH~6JL7a<*QQ{sSdNOm*Y@ntiK%N0R3Xw%It9a zea8Apcn!D1h-U%Y_#B+V@pC?vv4=(-mCq}Tx;=QX@8?7a`U_(&9Ho)4w^2yV$314lyt6#Tw*RR{Pe*G5?`q%_8okq;xo_;-6`hJPAp0^2v+lL0q z;{2Cm)C~bR>f_RQAGLfc47k3ekt_^o(!d~F(6uD>XH>`8RiuG+OSv_(B3wANu^Q7V4yT!BIy*rgape{B8~yp# zLFY*!8!+QoV)A_qjn_yQWDIuRW{w?a&T*l`!?x5Z>1l{@J&X4en^>1Oo z_3vF8+Pna429Xy+ibey{As-jwJ-n?M3pZo+JUpvkfH<8wEUzYZYvmfJi1|^mJAC6E z=~LfsIj@EOmxa6~p zc1sxT{E`V)w}kVY^+*V}4>vYE00e~FFE#3)NF@VdeRCQ}E)9%M=w2_UoYju+R_zs} zuL(>$FQJky!`a*E#~hzdVTTjDF+up#`4n)3+jEV&M+LGG!GWr&Tiz_^FUY2zk_1hf zvGKbsa9IMdeVoUcv%XsuS2_1HVL?I_T_DYHs+nVYx1v`%Gnp{1Tf$`+-w8}QuUpax zXAlzTUxk3}-0^dqBqYW3E0~BWs?~nUnAkayZ*7G}-4BSGw#gp7UF`6jCH0eT1&D_m znDHD2vRS4_LYp3m zj|tA!kd47gRTk>rth`agTERYJ{kvxYIjfys`1@?1bHSD&vgKd!RXtVI6_;b3XOIwX zyT-%K80T^3te2b`nO!=Z=hQOCZQbgc;#4zXdbfoB&P*nJ1PSJp;z@U5sK(C(e1LT+ zFgAe*hdLMGtE8)w*K~zB$4O#!??^&t5c}$?hdFQd@XBxLR(`V6h*b5{gz_GK3kk+# zPySCNe?G*#HQg#1Bo}XD{N^T9<6+93KL)ZqSApuvZsjjxfL{&jR{!M=Cr8zzTS7mF3*m74 z*NyeROmfFJ-2RQg?cw%Ya5<>Q3Z8<>MjM<*z)M&bR6^wnq-*j>jSdQJz7MJBpZ6`@ zb1$Bytim|#So2qo+wc4edDYzs-`$apm+u?BOO;E8L>yn;5XG9WGB|nMQMDf`J3}J% z%s;2xnvR*@znL>XY*tguXr^gTM=%FXR=eONx85pR`vOf?Fu#31iDeUO#_2%ry0vyE zm$N%~!$76=Qi-)~?d+VnC6N#fS@Ro;!>zqmUW~t3X5I|8;d}7g;kGKQI?<^H=Y0J! zBM8$=l~I2brDT!h91#2CSaE_IcO;38ztUcNxR`bu1FBGzfjn2Y$3>s8ytu1#hHuX2kw z1V*dF-O_snGt`cRuiDFU1eRuLoCs2nC!}lGUqHHAm+;vo5|2dEJQC^oJZUF-9_JS| zH=%&E1IbL?5*tG(lKm0!F<`yKm5MoHuUT-!SVc3r&z_ac_0y}yDqcb6N0LMz#RDhz zO}Dd>u@))GnOlkwqswTWhi`Va*z?Y+pgZocnz%_@bg-U8!nmViSB7nH^Ct32Vf4RA zU>WA_5dAs)kG?h8`-M1K@b^&!Hvm?O9A8JH-wLG>PHQ7=Ug5$gr8qRxhNtn)!yGsB zL6xEu+N;F+Ww=ql5THdb^8P9A;ehMS4vo-_A10zx_05RQkWBm0uJ@|)ug`( z$j4x$3+9(tDW0q9A8{4Av%zSv2an!rh8Tmyt!5h*QCG&+j#lRu5Tclk4y(h9`Sq}x z#a}%RV%R+X`RJto9YjcO0wgelHGeS-KNr6Jd)P2bE`SX)A@hr|%$MoRkL%3OF!T9c zGC$~L27XT#NZkRQy`I_CK-Ar_L*yrJV_JTt5k3N>!f1A`z2Y(Km>O7f%wF-Lq|4iW zdqp!I(rfl$3)?M$9r&9Q_#X@sMVvaEj~3h|MXlJ>L+F%Y-_8+~_e!JA!Kb*L{W;MV zB31>{WH9Gv{HX8q zPhb4;<}@|$syNakYsAxW_fKRc__{Y1GJei|kSZp&qkK<-h}=2yQYo$Fx$7snyh~|! zqCwHQy%|iOw~G*fTgwUV^jaT-^T*LiCoLIKK<`L+>`#%dy?@3e*Mpu{f7ZXPnJr~uT>WAY7_5TJ~(cYZV zF>lWJc&!7}16Rc1bB!pNe}1FxP52&tRDC<)RnLH9gR9l-gs zluC$iIUzFDeiCx8B}@B-5W^rLFdJ z@D@DmoQu$zMS(9|CU1ypUX5;)+d}OHN>9?Di5<%>}5= zQ+$JW^>+ku1pa9E64xhlr&F#lqUHDRpT@tW-e1~OFBPO?8sp#771ozj;Edcw)b`@q%PNNI3h!`Q&F|LKop z8HSscP)_YaQuKa#c2Vc5qn#xZ>c^gBV~yMzOGExr4m1t<@frBAKY5!z1mO3OTG;s( z9Lr7t$=txi01@4cyRW~G3wwFYr=G7`Z#@R=BJiDMa*byn5;Qao4ri&0az2fJ)9a(5PuK=3`b@t`eG(wl5?qTv6+Pd7q0u~RdeAkHw$pw(sE zVUPWppYH1jbu37pg(Z(;wfC$(D-&Q~Sx`VMT}U4S=R zodp1ZXxKXt0QI2Y%+2#OwXG6+Dhv=sT+gQ0tO%bP6PyD|Kdnh@MUk=keuMgTpL0WP zV}j!pP7259=<3vu6}8s@frl+79QQIaN=3&Ej@5OaT&gWe+t5(X+7HELmHUQ^L?F=P8(nP~%#;v~jawFL;T{92FlH z4n2b^W&mv6FxnfpUz{l8xCJyilQ9leMQfMk;Ib$zebv5^@#3*kq7u@UP)hz=7^@bw zL9jr{eHP_;N?KKy>Pj>%7Khskj17MDrW6cV%*f4QsJwxY^OiK@rlTJh8P2`xqE1PaN>Oh>iz$vh<6DZU6sYV^fwMrtPg;d6^uXy z_}%C>eJHX~VwH9PhW9=;E_)Xsybcf~-FXYsuI7)nd}G~}fHtJ@957f{8R`;Y7@fw~ z$r`ringTWB{{pg(j)`9#vQj_>g`|{&W01a0V#$#PI_h z_1#4LIWIyEy7;-psHa!QMAXg{vjYd4NK8lYO6>iZ3i;Os5{kX4Uouj4M}xgRRD=K2 z$*rAx@+C!Gl^HuOM?b$h9ey5zSSNn4 z>vEjB>OX8vt1@>5(;+*Gjfc09`}dUA?FpvK&iS*zO%1qx%C(b;>%t$|L=%)h@&xT< zWd*MpYlg!z*-%#SzOkwwo=OlGJ*}Z^#QT2iIH)MIKJ=Y&^mHN#(ZI6R;;_f1VxuOA;AtJQHu_;LE_BbEQ2T<6xB6di7h{4pm zen^4`gOey^O=#wrt|d@J{r-i{oggJ%OL8(rekB6w4ZsBrMRlJCv-JFRwtDK)xP)}4 z+9q{%gJ_Q8z-}e7d#8fn^u^Ey7{qKVe(-6)fM^{{+f7@2~M&6{gbyp+I%qZyivnsG5YTIG_Rt$bfJ}akd!7M(a>^LPeUZ z=~ckaW39}(Dr|bqpQ&{+K9Ie*42~<{SELm7Kck;dpk9^SrBQy24_wsJbO*d8Qk*O` zIXQ#~BfKXB5mSYp9K?xIRcduPTwPz5 ze7N|;er`Wp-vguJhZ&4y?S}wwmfvl%@O4inu~TomhT!-tbJl1carh*9o>Qy=hPZ7ao@ORmN#bj*pTn%zH!hTRDRhi_uO$N|1N3;Rb3+I_Hk zEzd;pQfTfi$c#LJ;eM+LF~uT>)lH+i%V6grm_yEaq#6dDv;CH7MlbT)MP{+pP7lQJIR`sR ztb>V#fCKBK6TzmWGc}r+JK8+W9`(pHd+>r%dv0@CLGy|Q(~M_x`WDxI5duidQ+*xV zqpz1>Sj#mYpbe(TRS1$I}J=UY}~Z}W1n$Zd_iGC$oZ{i zKfGAIzfN(_`@r@1FReV-0o7xcXPEU-E4Gayp%?4RPX>7VDLRG zUPBeis3XaDt{w9Ej+K4GZSxpd@-0SM-4PfTtqix_vl24|_&3~kX8^1Bdjdvusy!=$ z^<@oK{r3h7>{+nHWDh)Qy=?6h#pBh#4S5UWxS+m000V{VSkM|HwgiUQwTbEN(V@zE zS`K7bAoa_6CDg<6iL=_BMBNTB;sW*4!9W3e=KpA^#s)g%?ouS>24#E2aPo9My6ns%9a6L8etx_#BHL18PU&$-T)?S zp*13V{JdXslCW(NGxzY8lH$%i9+&~{o z)%U9*tz@$>>vVlA%;))7SeBb_^k(6WtU-H9m>-qRd|cv5A+ zK$E7QC9IylTqAQ;Nb1ykiMgI(7IJQ;{Nm7K`Q0iWRUW#Xi+66R$&=qFb2g#8-x`HE zVL{FkuD#M|3(RC>J&VG(R3c@O>6mx0mmgq-kXEc?Ui0&G_%k6T1v|^Ix`o^n{c7n= zWd5%F=5djpm%bi+Lwzz3%vp?8shA?w&hehiID$CmxV^FKleW*(F9Q2~9(U{Jnl}GL zrljf0D}(MqN)Mm~8ga7|Hi5za(*dr9+oxZ2DBXq^#XN>J=L-CDr4(xn@63axS5y@7 zk3IA+#1~wQmemR7u~Qem4&$+XVeJF(g}vAIYDWX~12uOX{0}#R1G_@5-!=S~Q7DCX zh6q2lQS%Q-Y%O~Q-rpp@&xpvv@uIluPJiPtJ|SuQ;M~C89?k=%S#ZEu|1-H+t~Hn;gs9QJK%yQUcD|CHH-)1m()ugFE#ob=+* z7fXWYUWbom_S|G-KlOYj%0>GfRT#@m)PP9{LfEA%b@XD3Ojt zXK^rKX@DyQa3S`~mmDob5X2*)+es@sp9QU0Ct!a%wyz_S2{TL<^P&Jw?VVxw!F2^F z&`T16yJ->vJe^s4p6-M%d9J;46UBMnL;Ayn0%}bqAX-hm3l4 z8Prgai1iXuu|`Ba^R1F^oN|5#X4O@Nci=c7x2|-l3-;l7Z5VPue#N(0TYdN1?9E9@ zFlt$?+d6vH{*6;}?d~K9w)xhwZ+uZ)dyHR-k?D2)>6CMYG)!6#9}n?DCLF?7b_2X4 zX|wSsj3;r_>{G4s*o+mr`a2#QL_$!|XA&I)OdRHs&Ed{f>&LiKgB{9bCoz>W6^O}o z8X#S|a-rtGWnaR7k811A9&lmsm^~>!$*t4aTZZTvh^qF2nd^l&k#c7Wk7xfv7R~sk{TB z5JENy{l!Txt*XaoL=c)~1fT&oNnik;0wsF$c56o9YRWGJ-v!ZqRs|f0*RG1lfe8ad zg7{|;Q%8v%qBj<6*<@o)UosC8%SC>e5?S~LhaT93yQ{4uh@+s~I1F8j^B3tcs27&A zz)cJ@V+JW-hMm2jODr;@6QoIforz~^xo{kaDgVCLI-tK}->(ms)U#>b7I8X%%I=aW zr?Qixy`)a5iPH~}%l`Q&jh-OL2t-`-BVqiPv3=5KeH`05+2W0g&z^LaNi`d$p#!*7 zh4OhR^i_RVN&;Rq!glZCfXfL)g|f?Lc(}C>HVy;TGsCUDmrsx0jPr-H15*k&0h+)> z$rP9ny|!>{HW)O^Zt(W3XUmtsz-VsaEl3Jv7RpAN^!W{i+&&ZROWrr*!^FeXIa=XU zh}}bq&nRg@u;5u;5D)mB<>VsdGwN0X2#C|b4AZ_T*;mkfPd?^g2xlB_>7n~~V}b5H zOSm9q_0|zkCg_v1u}n6gULtmW@$QmYL^`mAqsl&6bTv*7;xfjg!#6>PSeCi91DR?9 zf`OulBRq-Lm_Thp_!=`4gYzbogQv&h5A9gLoayrRVfe@Kts&0QYVT!B(&05q2n635v={cR&^2< z#L;2Ym~?@IeqxKP3`F=XMFp`HRr;-WdEWc_HxT}7tQt=kU;q*sfGK>F@T59M5HNLR^(_uj zi81Z0-aP0nira+Tu3=0!B9lxM`h)@O>05-EMXT>P0}k*uF^BubBbM6HIXpk0Mw>5~ z!-K)Ad;ac{ic`Hr*b%#a*Bp!umsq|!jj&+?{>s2eFF&PXmyE?$BWHQ`%(*6wK&+D& zFaCz{3#)dYL##@0tTuW=N$G|{cju_qVLnms{!^o}kv+4sfL=W+;nw-ahLKojYX4NY z^(te-ZiryWPNR;Skp$!SyS-KTEq0CMI42kYvM+iZ_N^E;zrk32F@U2)az|otzv9rz zE+e56p+0yBD6{?qB(blX2%a}Y?f`fQp?q`h1Am8G^Ne*bpN)3xl-^}_(J2C_r z*{ZuE0e6D4PzH1ch*C}{m`naGzW(@+gB`Zn9B%7bGl8+@<;CH~<`Ua%g55QFaX&Zo zS<49rb2v}S2E1$WB=R33z8v>Z*$wszG1wMgLD>9L?LLjAwyzoS?>O@Vw6pvi(k5%1Zl|0T?Olq9 z688h{-x^(F7oi`m$&0f}Ff;jMone8fA>VX&_@UHlf`@m_L~VL`yfmi+R1JUp${DPZe0H6k z)k~MwyR1vC@3FK8yw|c+eVLHXznM+CQNTpDe`DA7)4zKA_e%RU#)fe+06~57CfQwqp5nrJ!&jk?5nT!N z(Mti|bKi}l$E#Qfwf7mpgar3!)H#TQDdJKN^VKm-Bb=|QzJlDH=p;<}Ty8H7r1L%( z=hu+;j=wyTs&qEMFdskj#817&F2qZ%?Zw+#dwC0Qd^`l{OTe%ge}{|lQhSvw#syfXAK>JGaNd~C8^=eyNrHgx zJ`V7^YIN<+V@Tfd|2iMZobBRJW9X&yWsErR|E=+_+!;E=Vv8wUqtpc{9KjGf!R2pU z_a@Q6=u!ehFTV24BYU9_tgm|*_70Y#ru!-%pc{qo3jtC=t@Ua7)=hzfqSKpehW7Wg z0Fi9ThwXBPkuL5_Laiv?b}Xehz1gY4I@T^{Tq!jmH^DC7!!(|kWtU4>==lk0zd{<< zm&1^pFg|_1oG!H1qSf1CF6m!#?hu=9vl>6;U`H)!;*s@uKse1b@V7}<@KhQ`sZj9XqY>Ct88>5|WR2b{U+ZMe1ASjVc}&%hH>isNYN8%y{V5^|-; z^5D&G%tsIr(6e)Uy9cMB%dZQO@3X)lF!;p zz3vb_bZFYcaSH(R*@H8A$AK%6aV*&TS7KAea3raLkQK04KKLhCEbR*)zYo^!v)_Fc zwx?EJn=!Wt$VEs~xIM+NX$XR@jX28I^u=jFX-WF7=qP-75noal_u&`2Xb-=hhlj^x z|7z;uyY=^9;XCR%Yxz?YnCuDnPwq8V)uURP!PLDk$K4f#A*o@w(?<@!-IO@^)G zTAfEt)W5vKcOkx`n9B7&A^u&>)gR^jD|}Bdg~W}UB=}tQ`+@8b;yj%7cR}ps+ zeU6c(cX@Z{V70nunBR~5wX)Ni2A_oM?p2BhtaBgG?LpK1SKD77Wjmc=?6TYYX$k$t zE|BjC^xZE4NExqM-U5Q^k3NqEJ8;~s=5K6=#u2dq)a8{iIrGd0#HKkQGf+WzzkJAuQ&`C~nq6XGxIPx9+}aSAq8 z0|f0zw&Xdqc^PN?V9>}cf{PF9Zal!h2P?3V8Dd#JFC_Jr`y=z{AXoqcF^t;PK2RVe z&B9_Bl}X&DHA!D1$SVf)jaGiE(Qm=F+ER=NGajD@3$#;Wz3f9c!<0;V?Ogb9)Ha&J z6xHP&l#+&dC=&*0+^;}?4OlN*U3$KY37Xk~PFRGQ2KLH!J_Mh{$C>z9tMT&-Ff{NZ zk{S4+*dc!87xK zf9E9ZS8;Oa_C)$Pr0IiU!=R5R*fG$@CjNpxL`WtPGQba- z$@bf8o6!ex^&kQ?kn>%zXd>sSbNXtY+r(OGce1O3{7&!x4*6^=Up;>AR~P~Mrt+PQ zoj9`d5NP@P--IW8Je$;lAWHt>SaSx-Hw)fckpd&yNUmt}CF51~!W^yZ)vTKjX`HyPQJlXMe(Pm%{1kI+yJG1q+srW0r zgRvwi9-M^VxylpF1PqfJhCy6`YHdFkHC-l3$B2pT7!q{){U#ksX5l8}2^2&B);^`HqCV|Y8i=(yok~!rdesbJ zI$cdT!FGgpES;krOFgw)2`*(I#brnU=Hz3p;lgU%9_tmZVA#>{&V0}yCrA)WE@k+D zXx3>np>IMGAQNOlXe7kG6p_NqFa|8#p!-(Hp5grH)^wxp7K|;rw`{rdHF?T5>bT>E z@Yq)QmcY-pA#GAi}77 z10PLBHz0suJr`NVDoQ>QGAKvepyU1+>|UOPdv`torKv{_g3NT6irA%r9IU0W2GA{I z-DhC1=(jj>x9X9b8%vjxMmOD1v-=M)jk9>TE8tD5CcjiEYOI8dS__2X_T>Cza27-DmxY)QLG_q2FG53i~i{ z(#>I?QG$b95GLTas`95<{`Xt2wJP8LLawqt3kyoFc}ltdJ7U-e#h!|A8i5$SO6lh* zh^TF-QTP2+T7p}Pg1Cq3u(9T|G$0Wn_n`dS_tTpZq$T)I{sNi9=_-<%IpP!u^s z$jKgKgHOhR1EZ37AS2G7KXY9@y4Uri)716YH%2GDcrNR@7ImS2X8`RvVnP(DN$&_AxnQ-eO@G@ze%(ChO-7^~y) zzyBWe*S!(%40;1FK+p@lwgGycz`QnJem3*av~c111YH2guO`z=qw zc43^D=#s2`;S&GoBsuz-{eQ7p$IwXOXiq6Pt`X;L_49^7lfb0{h&Q+ok}g4#y-1SK zK5>f$;fZJwvuJ5a z`pdFc{Hw6Z<+$8OaOHs|9aK30i~1Eoo8om8^j0M>t*w@y%?t1oF8t*k9%vPKj}F3! z@j>@*P$&2VRU+@GCR9;PKnxfqJ4Jpm1FIUH$uKZ_@>%5Z*T7wr$0Cf2$ZAx%JYigZ zT4B7Fn2rnMM~{q3QZqjhAvMhF&uL__7Q-t5KIuU!0eIyYznS|yc23jPj5tj-o*0&D zh(G7@(^NI^W>*S>zP5aPMwmPytYP}F69MOQn961UOalE1y!M5geR2AoyH(RKtUn-r zO~2)*qu=|5G|x=Gx1rJ){jwoFz9#|ySE1ik->P1N z%UFKgoez;MdM}##;Msj0yKw!No%%XnDZnTpe)=}Du?Dp(mcBJ1J?9Td2PSa-bu9hS zg!H#x@g&UZSo*Sr^!H-v^JD3i3F)KW_1d2rOP`dG{$IP0j;Menb!jYpa6C@z%T0_qeA&6rO+sap&Jo)Y2>qNiZ6UEUrjD5e z*HfRqGEAvY--e+Xc@MY0h^3)CEnL`J02Hrqk!fW{AK>{tNG?)89m4bbqM>l%-){8? zW2y&#As)1Ro0~1vF?$W*rF9z!@mCn)LGNXtft= zQa^tNQTwxVa;#3Ins3&&u?KHjY;(9f-i%;Zeje9HGtz?nac5w`(oEh8*urJ}@MoJlqCGm>%)B+P`Zn4V z#wXcl{=56TJKwLefs^5x?pN9BUa7l`%c}qnk9yR#mTPmkUS5ynCND^eBJ71&ITKW7 zFC+7yy-M6oUyAePO_odIdqPKg1i?I}nvA?ZC2 z9;fxSqmlWk`XkD4<^OWffVC&JlR_U0+<@3gZ)8cxm{q*Z5Q1);@BFXC;U=?ULi4sn zaMsCl2EeM+RqlK5v~N7E?emXurBQpl83a!Id=r0d_ZLHbOuoC032h~2->}-QA~`@! zEXUR?_^mkDG5c7;s87Natw%le?4`gzVm~qd)#~0QdN@%7%&`PH9~L)`?d*dH}-C&O=||?Z9rA zvWO3+ZHP_u1!Bmhf!duUjU9}CDQH@*$|8fe7l)Rj;NOMz;TC~DkB|Xz6u?KR zrS+emkq5)aA=egw1tBep*rjri^g@562!5lrA#~k(%X(RFZ=s*D$0axwPh)b*LNhWQ ztD|jtuPrK@VNdY+B9mHt5r0b>Y*D!2e)VN+#GX*YP!t-|t{MaS=GhtNlo-$Xuj0sV z!^rl09)_Hx=oO{5*^2lHoc_PqJ+S%`n85l4GbFk>+F$F}_%tBc^Lc75m=X4b+ER?V zpW_9QK3CypVg@y_<1-Ig7(Si{ip9Pi&XAEg;M~+vH$fCnd)VEx zR@87}KOGyxi)m;E)fmryBwdIs`xsM{|KrT!6U|ul)%dWb4YDic6)@;4NFfHpJ56ys z%P&S9GL^9n81+o%&Nd59*4$}s`&&vRt0&OdGX?SEJ=1WE zLC-$eD^oLt;}_|Z7pcrcN@X5W=H>OV`s7=c`6)P3ARo((dHH>;tURnZkj3&Ni#0nB zn+MrKc;^7fbWG!iHT)9?v#+i6c;(@-;VZ#stgglQX&CbXV}4p>S-wE`%{X*vkw9Lb zf)k6cSu_quY+h8;M=J~(gks302QmM6An6rF>@_iKmn3(?Pk2xa?j?Ba3b)q{&0kwN zwS{Ys=+a+{-uPV$E#{IXpjW?UzH%_%#t=KpeO<2>Td&~ogc7R* zQ-xpXW9dbj4KZ*NPF>($_>0^G&H-h~P0`-ogn*Z_NLpF_ zp1=**Uc3+-vBZqr&&G=*cV`tx?#)ygXKD?c+pRUihZYwd9ZuW%4Z`pjA+Z#z*iwLg zqw(xv(;hq*GvpEQmj4J?bf5H_XM)2N?!(U8UD$n^39ekyVr=VMY&>UE`}?^2`v`uu+>v>QIvA*PFsL+JuW~p~vXA+y<&(rYh?*GsH5indO;o|g;LdpY z&IhsO0QIjHt$#@zUhQ$Q13>>GPnfp*>mK4kFNXF%=|eHFh3#U-(h=uocn8ENbtFXV zVXU6uHwYRG*ZMUe`N%yfk);q;*Y@#8OiXL#ONd`z!N9d4b&^;nnE2vY6Jb*Nn@F&m_R}GlN zKq;8S5G;=YS-?rG+Kg0i68ly;Cb3oPJ+;!#x}L^UL7Y7au~RG4B0Lzc9CUYpJaQnD ze&f}569A};jFL4=l1mO|a@-(*&>nhSlFTW(u?Kw6Yw4%8vkqb_Ue<0NN0j6Q@u_Qe z%z3Q867{1O&|v)s2Ken6u#@h&=Qd8t3mLGTgY$)`kXd^@-dJ-ZOiVqlA!CT9rU%_; z`I`rX3lHBQ9OAP|n$sX3uv|htYIa|e@h)f*sE-E_fki4bxH!SD5jZ=LIm6EK0dLJM z#2Yt7;Yc5UGtReqmT~pXU%)Hg4CJVAVNlxW&CH6Kqdmv%SA7|F;h`OX@jRev{BoFp z{%-*L90EI4T?h2<@X*gCv_`%&OLRe(q-%GQ(s!t<5o(09aYXA;qwzvd?jALiPc3xs z4#ZOe2ga8{T0XQSG95t}K#XKNKNTM1`j*krn#I1Eh7qnk&LtX`I0IzB-CwYlEX6>4 zdH7xjQdpQ~+FRXyY_VnJfeU~JS-d_ZNwA1r!X7@2-r!PKv`%e`wk@wh>~Z^8pWaKJ zag8VL@-Z?URx&@;qw%KojO$cRT|Iv|^6eG*IEiGSgOnKfhrZ>aNid0bI0S>E)ialX z+Gz|+ozp%sNe#P=Kt3crAs|n%VE~rPd#$7S)aj-3wL6ImTs|`;)9TX%DribE!`lZC z{DQV+3iR~@T1h!1A7UFYqjhaY*_1?54vGFklmF^uct2;_DMfzt#vi$UfIo79KXPj( z#|N`1_EmDL3(sY4@ma5#KlGhw^W#J}DPIOjv+7Bt`wQBQH5(| z4gC+!RuZk<_8EB;KY&rauB3Mq~p?r%WM0|vm!lTXmRuu~o}KoB|5 zro?@r{wTY~J@Olw4Fhz4d(r7_D4cH86tgl3~ zWelVGBZk22z$WWgNd@hsf-;QzstAV$536qhZOMgfrhRuZHq>&PKd@FrC6V%5CR%cv zuxjKY(EELhhv73KDh{ewHsYL~{3N5UzX;^*NLFc`GGejLg- zAI1XgI6cmG5k|6x76Lf$lE<^lYU;>7h zVoGClIxza@MOlP>^wnn9Wzeqf;(c=ocw)#GW~Zv(0!dLIZi(eD-ikAg`6QDg`)eAzDUTe zM2)LUdITLKWI04x3n7n#JMnvh91(%t&EF#Y>Tr)~ExydyBp4#Ddkg?cEd{26KUKiAKie=^DeApoftoF#2X5eus zIJ7(i3!L4+>aN9aG~m`kXe`GFL+wtI9(~WiiF!Ppg7zcz2!By7+=~5Q4}uCJv+K$u z&(yUbFX+4Az&&qU56N5fkeGl!Qq{Vs=AXHE5te|NtrEsHQFgKP$y3|j)0{DYYn5!u z0%*ZVa8zt{O#VpJ-*2M+a3=lz(VTJ&9$Cbc->o@S^1CjlLVh0=6OX74n1@W2NvSdTbg6(j+0rmB1+5@iSUGyd$^U^^=ov98XSyqj2DL3bOJIpLz)wy zO>BdF;T5>~Jb*4si;Mq>rNv7(vWEm1*m#Eo6xu?ij37%v^K^<*hgRy5&gd*YTzwq($g0Fz}l&ic^ANX5B;pP{yn2UsNsKmYUIhEY4~58YAv{c z@XNb18yR2#tS%|YxZ&2Sq+mb1ERgc}Qi?BuQN@v>1rWl<>QB)ZKLk6?IwcswQRt0E zNUz+EI(g-B`D{mIAn*a1t7rMLND;&?Xa{0<7|FR@#BOIg5aROm0)Ii{avw<>4ziSO z@rqLtWG~s2vNsca@5){+4w*d!aAk`en#^XZY@N~!+<6fjlTx<<8<0{9BZ0aq$fv(q zv+Js&Z&R4PoI>T`5FdBQVr!j zg2dT1tleUMtdx5rvS0j^DyVo zkg$gJ*b|Ckt~1DIoZpF^=5#X6qsX|9&Y0}fNg+XPRPE~lR90X6O^{2?L!k}p5SAEAmg5QR9Ll<}sk%YhWc z*98CRNlb|xh%@|0{m$M0_9$$gn7p1~AEDoElD>NT-*jjJ=?@xA9BZfO@4(s?OQRjC zA(dFu%+>{QSF>&)t_(vhK1X85#hbC(Kq_%JGg6Wa|3)M5hDl!la5t&>BRycaf!%kz zvHCDXEkd|j$|5B#X~ovjGPsIX(;We+4K3{$ebVzNwITCh7F{4xn?C8DTSRK-B}lw2 zBDUeffW+%52ba)?0fCpk1u!vwxW~AoFva$VfuuWBB%%r$fXm5~MWXr90%XpN%647}qA!tW+?Las9H6znM4tJa+( zh2NJc*PGp4qrIJaY~83NL6S^oJml2Vz8^}{7n&u^s_3VyyaEC4J`2v<+;@R+6&i@F zx2?DQR#Y8GBW$o1QJsNB7|4=4uRUrJo`8iBf~x|CJ!ADjb_R%roP!;mMNO1~v6^^> z3N%dM-;4OdM~3Ugo1W$Og$s_Xrh|BXFdosN^ zb(|bmM@?A2Ed;H9$@;BTQ0}gguzpJeiK3wrj=&Q2X%Uqy?m>qBIdgcDy6p;{IemO0 zyN}Z%^+6LRjp-a__`ae;Bvei(==cY_9C$xSTrO0P3##0MG9nna`p>E8UI~W#T=>cz zKb)t#{$_yUt((l(SV*81$U$n`1IxwzEyMexte#Og|7gb@q;JeBcs&mnT-t3#92N5e>oTipdO zorN!7P3*W4z}HJ401ClV=!mfi?XYq)(gU4I0}o^>yEoBHGx-hgA$S$@`^g#XjF%He z_yDQ#dUhd)tEe$VmT5*N;oK6qR6qbYT$dwui5#=RG{$iuGx3gddYhO1g&8VXsf>AK zk;z)CP%GpZYuyt?J8-{5vR;lXdl}@8c?(s-*YOt|1V*kvr7)yQEpE+KaO5q+k$jyO zYXlCUx-?6r1v75|he^yk*p+O_{Mm#t*O?X%htczQ69>7|{g3jaDs&fLOM|$D!|Nk?Eqi6H97D* zq5>kFY68GE#~qDc$qHboOTos#9qLwSajYX>!n9FbSISiiIsx>e5LL}Qf5DDrf1(P2 z(`$KI%f_{CxkKFU(63&j?r`3DBn}V-_ic< zN5+BTU?h{zn3TbTeZhlRY|>}}v*nML;c#ih&0*!45I5)fR}<_DUwlFM?*zZ4?!uCi zD}LP;$VE+<1>Q5%Uv9(|y*7waJ$?h*B_+`VgCnv~Ku8JG6cpJ=ItF*J8CeACfrA>f znaKgcvNrXOT@XL-<&jb7@~|_Ou;Uhjb-!^H`3?6dYR?y?5Jw2zsK|sP+FpWJouuCT z48Yn;Ag++EK9{%Df8q{2bw6viGjLip`_{0LepQcn`wU?Lg4+MOKC z1d36k|C&f6X#d}xZ$SR3Dd?>GmPO`gLkkIB2Co_<4?vj?knhVCu@V{I0VkfPuVVkw zs|Pxw&-=am(V$_eiESvfh;KY8k;=FeXfS)JqaUCjhT1QvzX2!#;KG}08qXTeeV zCVaIf3R1mU2C1_@I*mh|SBE`PDX-$9tN~d4+t4yhI*FiX?oj`r5toQV3<1yu9(MH~ zjN%e<9JrHB6zp61Oal!?yLW&~VL!c>SoK1l0RIu5v}+K1o4Mgg8A#n~4J3*9kDE>sgE8!Mszl$Ay+z#Nkvn3yDbEc>vK zeJE1-7oO~h;!L7LQ~*bwsWiM5Fe5ShY0G;@~ zHzfG|HSvo~8o$vE+-)=x^mVF7aI}lCf6hrnnAR`n*2zwSQPkYLVUVRUT&t8XyCIrn z9I$cWpPzP8Lxp{KGg-EJ_?1MtM6?Xxj!Dnj)gG zoG8TXOeZhgror**t}Cf@E*@76nTllu`)l@Z zrouQyG+(4C0z)6Chziwqv!;lAmm**B3>ZersY$){GxNd6)Lu1PLj`GhM^{dQG+ zwA@k3cW6%{zQBE+P*W){cN-9=;WRpg#=kh|!pDKl1)zN3ALQTvjtl0&Dw?`Tell*5 zpZ=BdQ;`;%|LGr=>$T;M0Xq1!YjutnKk+)w&j!Evv5|hwAIVS{Ppwypv)q@wPdkPY zWmJ-r3&(%IM7QZ)^+E;JYRG(wcF1=z!=nngqP3gP_3EQAoN+5Kvo!{MaYtOMA2w&0 z2o_xm2x=a|nIRp;*#FZ+g1}H>$I#Alj4KQnhn4X$*J8Z;O4WUIK=!YyxwWoq?yzdX zH%Wd+-7d+nf2xT{ZxHOOhCjPFcYYDWG^iTGGAhTkN9B0)E-oEu41j2h(#!}_!aLJ; zsM#MhcQkO8&6HX84Vh&RcD0|mH5m1j!LEMWXw)%$gp?jZKv2Oa_slcls)|fH7Y4j@ z)BX=>Zv!7yb?tvAkif``6BINmYHXuT3TkM5AtG%8iJid-M5P*q*0gYy-r6gbj7CKn zn1GoMqtV(*)q3fzZRxG;rM*@WYz;yYu+>nkg0zKdZO<5NL2Y@n=KuYzea>VOp!PnG zAIUjq&OUpuz4qGcZLhs{dgk#2-tL`Or-icgdE{k`jR^5?SoQOPx9!wa5@V3|ch+>+|O^JTMz4!GueCW#reR%Qbph)!q|I?NKTz-O| zQc)eYxccrilknoN_UWIUEYRD(Ij(;v)4!7y{Cu*4pHH@468uari-x3IhA8-Xh=QMo z3`-TAoNA$HY9>WfvritDx_AgKOp2sp6iH1VGEB4(I5Vw}lm8m@(HqaL_rHJa+r`iN zUCe&^pLXzH9{-^Fe`WmRpBDvPl{e%y>5E@Y&wLek?cRBn>GL+HW1EY52Y6_FaP>Zh z@^ELWb+ySD=QfRO1GnDB*MqJqz5|`_UZckJ5!iP>|879x*9yMrdGJjHK8DKySe7o@ zoNn1%lqz~P)$(dl>SD5!)@|svDx9DOgF>Hi!3NiTU*(tS@qB++t} zTE=kEpL8RPd@jFqjf1_wKTwA5{EVV%*1q}4SmCpgEd(76yGVK5muMrFLcgbChKp5} zOw9~?p&=6u)rLz7wd7E$7|D{l>gN}P;!jqywP3-IaY|i;omLpF?22X@wLkF@Jk)oN z;Yf}iO#hqD!O6S;ZSn!dvri#z96OKMkPUd~5-I8YNg37d99a@XmR zt-B&;pd-jeI|d)0Op%`F!mIyO9A2c!tdLc`vlooamiDZ^^d_BoW zHUX4lTyCOX03G^$^`;RpwR*bWjfKtv`nfump7@s{8;-x)W%wR0;U&&*(85+6^c{`I z`0$e>Bazg_`9m?iywn@9@JJ)UK)?w6f%ta@qAVDPt-H?Xk`8qYV=+@>u+EJ^BV&+y zcFX?MhJD){%ER@0QhQAI@9k0l9`=9sCf%wbVVt&mw`30=67RM3hmA(|?!yMc(f25a z{~FC?JP!JUss$cpP!RRh&E8_dT=!{F8X|W-jZH?xgu^<$56r=XK$J7YNM2<8p*q4 zOHs#@>ub=Lwt264ha=U|dHcGY6usVfqOla91k&J)E zgx+PpbC!f%mzM9b>(k}??fQ6m0cK;2av{4eE!SDyF~W3}RaIeSWn5+DbWz^l-$K6M z!f@Mp{NPqwf}8f>W?68vf*bjR)wouV1&of_5D?NiS!;S?W?@fV`@`jr^OITSc4e!B zU5U%owTEbCLOr)Xsu~SC>8ja?>ip1S0*f5!mp8nf-dNh zfLlQ=0!|+aIIES}g%{s7AIr?@Vc%x))KpzrXliPDS;-}-nPsH}#g!!|o~A7e@j+8l z!^&99sD1tAp1ML7{;aOH@{L@XWt$YD%~A6w`N;JA*A5?UP!y4=!H5=aW#iq+QMNT@ zz7A+&A9Iycyi0Hbes!ZErOv=4yZWi?`rFKiG|1@DO|X$5PU} z>sXcZ&q|iZ!T$urY_nF{%3D=2P*?+)R_CF^2{HEG|5ONb<(@WZBbm{pmBK5|w^7Cg zCik@4E)B$1Fb8?3Ry{N4Kk^HpIbcu+CpY_FP>sGIZ(US5a9zW>9y1uiz!XdTMJ(S| z?|$iEbloKY_A3J(TlO$a`>+RRC#hrIp9mmSY`*JCfYb8_0Gs@aeV_|UIVeR*4q*=wXsZuR7W`4R|$}fHj@5+b)M(afT%cOzsre(6LF5M zT(~%KtZrh9y?-ZyQQx;)xrbdGq7R0!DX;{;z%h8~WtVrJzM_{Jdy&>*rM7w_KDfwV z$Wo=Rt!>&eSPNg)=hEtrYe5G)plfME^_wlH*^%OVEc@ZB z4XIsP0cn<0pOek9mJ?Hc8F$E611tD<#i&pGxWt-fgT78#ziW(IseHAelEqNBToK*3 zExL9;XBMrSM&d;x^o_~JN?@`}jmaw3yve7FkX1$;kX;`(rmKF5>5_hs_E&P(Q2ly1 z`9mR%xxC!2ZRIt*Kr+L6VFcXAQjfW%G3Lh}%7~miE4$HBSZ@z_^83T#$p?-(5>Iwt zf@GHCg3+HZjJxK94{JW{no`PNHEnwce=7n}gW_P;FZ!u|G-PI$!@gfHo|c+^5^*b! z+N#d9)a;W=Ci6=vJE%@dPQ2>0Ik54;(^5qzb#x!gneN(qaK-QBym+y$(BUEQ-^8lD z@Zv`p^Jpb|qaEeO3J=QHLW1utvC3z$Q0^GkP`NR>Wmh!0v5@oVx4b6bi)J4#b_S?e z;%}Jrd`_>+K3YspFSP9R@D&GV(SuRn&_&TRi+F=-Qqn%Xd~$G146!3SVWgk#gpsZc z{l*gTOl~hRmyqZ;TMx51Ds|ysNUpI zOwq>_Y$EYIJp|?4|H0xpK#}Y-{r8%WSDzGFk(QTrMg_E~j=#E|VOD zx-?{_-B7n_JJek!#-_PKfXQ^tm4CU%>TI(nUzMt+vmFA{%?y`}BF^bfy_^uCWY}6lDCx>#7k`bFnt@> z!*@;MgD3&4l?PCMqTv{7z=2rhE0MK5=nGgih>D&BMu^PvvW*?_c6fB(U3H-X%3=>eQ#=ETjj>GSbEgE@6O`eQ{UiX^PBME zdAD(*E}GiNQi2?BQt9r?<$xg@E{q)I35pGnkXa2M_XdCjm>av6e%(j-Ay60qKJw3x z*k<;!6LIzJ@T%})x0XSb&t@;hEY$wmr?x`~nc|PFBHk@?>Wtfn@g8)C_OqZTZ1HAT zZ`e=vtXIOVMOArA^ht^xpq#JkZoPS2MMGcY+9AWeOlCQ@xm**r98H`-jl4?{b*@n! zwwG#dOu`T{z`lcz6a?`u_}Q5sc~Hd!`j&)OR-8f$+*2{iBQ+mRg9 zhM&9_(pEe64-|m>39Zapaq!=irV(Z^IVQvJ+ZNiO@WaL zcC|3~NE6gl73dEQY~N4bFY5C-Sshp96B0KqRfE9WWLE~2<=LW-$Ua$9AY#FQ zvog~NnOHVT1Ro;Lb1D8yj+DKs6gxyZOqf^%E$2b_s+vG5nbNK`HaN2JG$4A%DoMdm z)<6md&8;aZRs*Ks@0YB3A{3Q%uE?g$S9}V}#*L?%wFPR?VXZm34-$xpI5Vrc@>h&!-TnXr)69K~DLPD5) zfUeybxQb?OGLaljkv2x`rIRlkB%15_r4*@!Xg+Yf8XO!YflT)x{I4LbAI^lo1Yhbu zcM!1ZF^h61AqbjkZkYe@1QQLha8ALp*1A1@u@!X+jydlfDGPyM6?EN+?_qg*ZJ#puGk<`d??F-n& z?{dLHmdo%k!u~MhMQ4NTh%=7viJSw?|?#^zlYuvMdGla z#z<-k^LN__5eOd9Nu?rHHKiqbcjsODqL`_x6Eh;3I#h=l({~P!S6z^T;5phHo*m5L zFIaQI9Nx{kx8^X-ZKRft#T-no4bvU_UV)KXM`02x{RSMZIim8${n;7s%k^@M?*hOR zf=boNPrz)SV{0tBNO=IL#}i_3Y1~z=A1c`%y~oae-(&T^gjf$`Ldp~3cT2%{=-#Sa`HKguKFH~T5AwmVz`@oTUDh3H zKtQdw5p7^02Rl^W@GY-JlA8+&`Q!#K)!Ku_QtgJy{=_Z012fQ>pOw4K{5)9~nV(Pa z#>~(A%O9W<{VdR}KSpyo=ip0NpzghIgk~Kv2KKlU0XF6*(;dcKND&eum6lNwX}%ry@=aUz^tWJ8M&$A-?KRE9wfwFlD@l_wa_ zh5tB<_^jIx^dHcsV}(KF=OoF`-kG=Mc{h@(UIu(_(ERBKylRQ~XrOwYHFiuhj8U|q zQcSbir83PhMh^^E^@HJarN;jWdZ;aopb`0c%)<3^sb!t_Y}d=IKWb=3N(>G#_iGog z>f39LoZn4G=J4_5_n_|^_V-6e z)Zp#Qj`HYx&1Q!cYX=lqz2Z;6mM1JV+pG8~n!36ymbn7@eNF0miPZHH)b*JqQrC(3 zes!2(A9cN?d$9bk)L&b88Te`QtxHEjIr|araU2!*r=+gj!p~7D=`twkNXVPFK!_`# zQYnj?m_k^DYkk zq`o9nClZ<&kkAuDg(E75go?eZ4MWkxC@5_Hh1;3_-V-n(d6iSI9NB95glAUExw^0) zGAV;Lmbt1BUOO7AWs9>~W{XdnAENzXV*zHnV*q zecj95(4!C&j&;|!&pZx0#twOuY4q#tJ|f^`sqAH@c#nylrr!2u+jSfJKls(`k!IN= zbNm$&JcV*QB-9Vau-&dM^im4H1d(^f3Jr!L4drOH^%9vSn1KF=43K>YHFxjx)?;&dZWDL(w1pu5Z0O9~3%koq07%|-(F9R>`qRzlOiFv!ZjG9MT1EU6Uar(Pb zek(#jvu(okBGajUIN)}jnRiVf_Er_}o{dad4Ti2l{y zU*US+`iAxX3tRxMjS8qj{jcnW?+E=DRPlHI#r|6pqXxMqus^K-KSweix&L$e^#8xr ze_B%i=j8XFVnP460krzRT)_Wx2Xb!ogZ}@~^`A@M{vY29-x2yRsN!$`i~YAIMh$XJ z1pQxuf_UWqH}~oP_tk$|QvaLt`%kf;|GWJDulWDa|JPmrx%BP-Kj1(|r++~e-}^82 z-pZ>2<|7l76mvbja{}faI6E438E(rM^Iy4w*5h1jM}72_2zlg z4;qaJLwMoLgdqa&Fm`#zYB{D!X)@g%PW0 zq)hScLo2lO|I%B+k$)670?bMw%{b6u+zytN>c?$TGDhA1v3}fJ_2YWFM@ay?Y4$tL za{)>{$d}ioc2@DAy|j&W{31tQT?Af#ca!EiZO=sOz{tUt}k#XXh^*mz+oMeYNviv zzU9O^`WuN6KST%TnEsUgU;0apLt4(_@9>tg+RWFs?d&}tN8vAbjne!F`Km{y;upm- zUnmTQgUn2Kjteijii*J54dV()7BM7#dgh8kZL?4qls|6SFXFKc9^4x#3p?kbcm)c( zGoppojWmW|FA(GNjv=Syk9HqU1wyFG3ZcvF8Yt<0!W7{WuV8Ovi&>Qx*)qSZRN*b7 ziJT<7<&%YToM~B9)*Ys4mP0$d37wj0FZ$#KkwI!uSWos57Ov@IU1r7rh(tkAb>XQD zm!r`-wiKxET0z&aW^bg3jUW7k^N2JY!()ozLR4gxjy9V447pEs&b#bz+H#bVhm7k& zAmdxzFPT5K(>mRsnrOqQNd8dlkqGt(mRbqs+Vm21?fE68DBL9^6*v#0q`ts<&T?9b zLe+4l?(-%+V;$EM^T=lD!u6WG>o^Fn{XLedjwn0D@r3xzFo>gEbh)+B)6*#^w;2v_k(Kfl60ah{{)SHOWt2j%Q{^TOYd z$vhEtRWB2Z2rvGckWih_Pw~NS+r*cNKWxUU%)a?oT8ap@Z3bFSDq{73QZgb`u_m0x z){^g$9$<@?yjw8)6Tx2%r2f~;W%J8kf1~)vz%X9uv@`pUCIEA zr3|!4stL?X{EHS-cYm5bduE^H@dF!_1LV}r>4gqH#I%~IFd}f)lxnsGZMHiFOAGP zj_i30Mn)@NYN-Bmc!@I3T$-8wor2h`4~g8H5zfTkz%IPA2hwLB4~bRl=sL>IV*Vyp zJ*$WK{77<@Fj8>mO^H>Vx@q}>?Qfi8e~~&QK}+zn-E?pR9&X&`*pH!Jh^(sgO0`e*7nfU;A^Tfue=8!Xk>v`Rf`FyM(JVe% zDYM*_N#J){3rmdzH2=MaWP8E%L~|P!sgnqXzJqVaA{_8W{9NOT&a&MbWVicud+29D zn5brv1XHOxStckdq%T!zxoy06#W(z^rJ1D(2w*CPs>Gs+it*d{>|_15lR5kKB1Q~- zj_$DrEc=z}SxHb|{28Q;VHtK%X zI|juv*B2_pl0CFYNpIYF!a@-E==>bLRZ@uK2T6kxum@8QI%<=LhP0f_-{Iud&-_5D z7aA5im%K`>-{?&o+J103O-{{>J$-6s^yv+p`53F-ekcCh@RD^DB$8+5`RHAThH!E< z0!mydl34BYAMKV%tk%>-L_BH_o%X=|4Y$dWYLnk3U`)72r^@rY8@(8(Ye;WF>A$U2 zQmCC`k@QbgT6{=k5lb)9ui`^S9ZXb;b_J}+yG;7O&l?ZNlZ}Hfj8K6|AORIWH)$?4 z7DS#i3e_!ultdMs`0vcQ+e+d8JLlbG#{=&m;4n}Y&w3EKzwkAw8-c)_hHLt>`w%&j zIG+mHT4=~romae9w1Dr{jkl>ec!5s}(oZ7M)DE2yoC95IUFw>W$s6j%^h|I(uORyy z^gAd+dfxou#ueNJ07 zzi+=e{+=rX-*+SGcBKo%y64^boou8Dx1Fx)XDNA$3kl#?qUq86ixq`Bx?%JFA}mwO&C&q!E?eIuJH%D` z4E_fbG*2g+s2I&)Q}0Qqv8lIZvfI=fURS3r($?{ws7*iKDj zrToQr19B`gaxC-7G4d0i9Ie)a3JBr|9zbgrXf=@(P;d?ptMGeBNFLj>pM`g1loH?1 zwToQiHs8 z+%H^`NKmmJg%%z={6|Om?h6bq3kDD-C8;eKz{>Mr!2l|)H|RLdH6oSBf&o1LjRga! z6DnrG03i^ehh}X!>hh{Rm<|-YjWQAV7OU{^!pq-=_&EPhOE{tKl1OGsNL!R%^fv#` z%RO3;H6202zRSLwf;!`QErq2Z9!}X!H_L)n zV#A_Nel|_f#wR$Ni_V4m@w|SDpn}S3y!v~N%m@3agHR)-v#%VThQuFl{t&#eOuUgL zO#VDI4%oa!^)i6;8xe)*Kmlalrn~do?*7>ksIvDb#djqz0iB9-pG4ro-35vUfJFC8 zcZNiDjXw7aT7?oHE8oK-^YB9SA&Q|^S#i`VyP|v96~WB4rv35q60EHBI`E z|4e!}^FU=6=r{jbXfGoC!Xc=)3nV7Ld%WKY>bcQg`@i#?2b3`f0}8=lKtUx26jUal zKs($(P)TMADs-sKlb$XN2f6tKgbNY2%>ILt=-hZF4zNgFQ8X#`TD*xj) z>tp`+@D-;&KU}U}<9-zv6E;M~bL1PesK#kaW4}ANg zSK-?fu!)?R3(fLS~;l+QZVDOdq-ydN*`&B6ZX#gRcCwx~zYH1EO z*Vo5=G;AP+$UJ1@!#=F+FtE;UL`q@m2ff{UH@%H*KSFPnWfuYDf5)J^KKu1&u9SC) zEMPN7sLvyk6aW5}-{+zc^!e5wO1CPq35GBrmBJP0|@}XEl3E)pID|NjekbtzwHPZfzX9R(f5(Z zzb-fayZelP9xjajy&Y%Lze6yn+>EDgO}0pSKu?!^>YBQ}gzR@MN6W%CKOV^c`Y*6T+>3^MWbGl>G z-muF^x8W^mCn?pV;=Nl8?$wo%SbeeR#@nl|0)B>f^IFC+KX?F~2sf(&5IXx9J=>z#4ES)ha8KvBr#s!#x$fyM_f+Mc+TGJQ_mp-|A9GJj-P6b2 zQ^q}M*KYWU#NB#oD?gv7NE%8=l20Wkpe3I>nSD+^7YwEhE(jZN>@yo;|4JV>+V2bp z*S3N-Tng_XI4wSCY2y_PXiCR{W^R0@1bJq7lBj1T|Th>GrSKSss16BmR+jv)sJ8@^*sB@ zcB(+?QGYp(zzeGQcO|Lt#|`@$Y+Krj5Bfz50v%KrwWH|T$`jlxg*rwOD;2JZ{wUF@ z3|C>oax%`CD0!W*UV*DY#%n{myolXB@$N};Q^!yevp_cv+Kidhi~;#+o#YHQfzJk`RBdu)m@qa zxpZ*xGla_$K9YQ>zTYB@$S&t_f%INfhpzbid8r&(Xc- zz_&8X+`X02Yz~)9wlbP^>WZtw*}2AV?Ds(0Jzc)bo*%b5>nOj6=b$TAU(gj*7<9$^ z2~digmuo{HYzli-}ff}dqY z(sm+!`BM`Ve;biPCf|)qv)f9Vop9!hT06vrqRAyH5VbOo=G}q&j-U27F^|te$=V?FaiQ3TPGSmiJ5W0UbcADXG3Nj_N^sc%h^}uem_{CA_#5 zxA5U)A7iEO)<=muY|)<^`P0#B>Dv0vjs=?RGJbK)lw^Oozpp#S`4??Dq+fnMpMApe z+J!h25n~ImLeZC;#>=@%by%Tix@fN_ z!IP-oT0u^7oQ^z!xVW11J;Qp8_wq#t#bh}$P8NL)DgZ}2bM$&6o(X?kgP-$@Q$a^ z9REiyzsmWHi-C|G!<~?i^U}P0=KTXkb5Pc4NWH0dy1^Ll9D#HcEl))Nu8I6vgc2ym zBB$NB{6II?q6Jgy4N4EAKhM>KKpOM92G(V4rKZB>VI;%Tnlj#bAO60YQt9OS@y`9> zy?BRD3*9S%CZs=UgQ?S>EKqXc?owz~{tZ)1GyW97s`4|7>Ah_#^dS*nEgjQfuof zH`S&#t<4T({*zEBoE*c)waGsWPCZ|j+T@OMt=;+>Jb&iNrS)yEwwxAAAIFK0p>coD zcB@flxxv10y}GilHvEI<>)I)6c`~*7FhC1*njhvrU~J|y-2y|p;tfKk2X1!mUcu^) z2Hy31S%So^4aO**tw@2Ce7lU=eB5$KN%I}Rb8w;n1RJPA+zKhR?Dj0-MBtFNSW$2R zeueu~8~!`eyt)~L&o>mxDikC5#pds!hsYl+(qb9B4CghCf}5NpC06~XaAve#r+!nf zozR3(r;lquA$0m(ZS|zm`1(3ufssvO^GwUQ;F8b~XCjK1Y1qW>1+n)>tWmWuj{Z%U zTl>uNc|p(E&;Q1!mA$+U)R5iuLjqVdpfgL`o48>*s}|BTc{ASnZBI9G!@VUs@=Iif zm!CVfz>eFIuk%;kzwKc(T9`qtYR-VooPRUT9kr!|-_qXQM{CJSWQMOkC$FVhw4@dU zcVcx1sW~`6;;AAo-NlxQsy$YIQzY|~ZM+Xw$WRYcdpHb)Jx!$Q_||p5<5V9O*rX@f zO=ob^#SOl>Z#SIHx9DVg#IdKJ%XAOZ?9`R~wEu~VV&8AjfF>q>EBZQ9I)Z8pk6?nk za^Vp*raI_*?#noGj2avpCYQW#k7kN*tRTPj=8Lo};Cr!gpU&feV}#-APxEo@(=+%R z4cEUE%ba=DmFEydfA;C0Ij5i@T>plm?Su@n&n?z9j8?Hr-|#%%f8OIiNBrjkuKG^p z#KS$iE_F#YAg%p8%aP#9wVC0o0G*b)6wwRZv?|68g?qN##-zX#|16D=I9k&VoWZJf zgTh_=)KG5BA$(Jy=Sw~wy5)Ctx9@yUZG5VX!Zv?qe6x>Clpg^3O5}m!6VSibwE8^J zjKO?gj9^E7!-6$Rn(}$T$5D-Vr6snhgkQwztqv*IR zPU3Si+Fub$UrLX+dQaM<*H=l7I;Y%{%Urn;{w5|d^4!Z~u5d3$t`cheWYBrxGYu>q_n!*sld@TT5;D=epu#VkEu#6(KsK`IWuMA)^pD z?R}ZB0ltuhGav&}B9Gg&8V?!+Sdje=ousnI{Z5_Ck#oft-G1RC$vuPmH)&!wGb-vA zy|yosFGsMp?FhH6reZCd)gTPY)LI4VA|$~c&CJT%s5!MS`S-ycwW&R8|1_xZ_qA)i z0h2Q44az)WUEP=5Hy9P>JE|lz>i2$AU+CM^pK(Ya>#m?rjI=eSy^`0I5%A${b}ui0 z(nc>_yG9Ly*U(Y$8tT_cT!MP}{aUE(kwy zUdh7u6TqyXhnm9f=QIKQRS8Spu(5yQqT6o z%G+A`tload$7w0#w=_7CxwWvPdozeF_kMGnWzjEBA-{G?17oZiXW}#dJJr>%nedb6 z)uNwuq;{@-odHN4TKm@lne#s3ckCS~YW{Ci+xmSZ`Z3yZfqZYYg?r5Tw!&ei;#qxm~W^|i{ODy&JV>9DI?G-c$A8YBRP-&f+NM$(^%q_4!Yb_vt@Wp9N) zo&ED5H2>ch$ukvB??Wi!UoIX|Ehcq%L}t`is98mc)PDsxjT`RV+hNoG+1tNNac@r- zSVO{33>|-L_9E!Q4z#|7|rE? z__Gh<`C5N@rKMQeB@5zA<4Z%9cl8sI>ZzglG2=SP-=njOnJ`1$rN~YFLBQ$s6M7n6 zY$w0wDhe;|(ww)-;F6?|zml9QTjCQnN2_wm^>__YllM@iwDFc<#tdEl_zOi~O=9Ka zMc7qN*-jo9Fuyo4zN%#;IRSM$p{fNC-6y!r#%(%dW50fW(nsgGyk3q<53N2nJ~Vx4 zQT5a!A$Jg|ljg0LIYvLCzue911OUvij)s-}rP^4@(yMmiNCeWTPZ$%bj z3UuW;=Duukc&uP#+T3ee(0AV7N%F`2Z-Y9P2RAE&n@(;b8Eh|cGHMO{M|rg$pI5sT zqegx2EpxR$rYcYzt(SN%)EDB7;ch+#7Ood!FuXfk$vGO#-!0+0hvIgRrP0!y6EKn? zPdTuR*JOvI?h!}b_$`(ho@U0xa1!d{mO-_v zpz?zF(wr7e6Q#hZt&ZQK1aTf;p@5y=)P%tvDe*S9@5C~5jyf@L)u7@k_xEQ9L^8Oc z3|TlZbPdOF0iDh(^CWc?;{ijYVmt9Ei{)Dky=L+!*||iTwkD z^DK_zVIU6-L2$SQg5zPH+K9|*0eAMTXr-Q6gle$VMXzubl+o4KUOV@u8(VI?wmTx% zk^PoDa10#FFPT^3tlsHpJXt2FM-pvem=6u2G+3WbZk3EJg-dUS(O#Z690E{c(^|NGUSo6s%#WRchuq zl^Wtoz4mEJ4QFpZTYvoBKUxl0uD8rV**qG?74}T-9IlLdNLt7)!=`7=Y35*rN99SX#qB!3ycyl z{^a?yU&>S^RSQ7bLIN23;?N^7?#%G%H{w$SJbfqXbdE!xN-3?e_Fi;lEBvzNR20Gc zH5)1@yIf_z?aIFQAFf_&ow5}wn<@UVcsvl zY3MpL=$1k0dXDqlcm3lue_0S zWac}52_qI$%`wv)ugvjJvFLV+pueJ%^yRWJur#mKyFFal^}#Uw#w#!Is!k=w)MYqH zan8{FR<6B~gA1I{QB5Y`DYQ|aW`_T6(u9I+H$HXlx9EN+_lF70ochx1eW+=7{snKs zoP6!2*Z-j7eeh3YXONXP=WRIr#@R0!4Nt%Q5hy;=l~I#piaDK+ZYN9RN)^qFDxVzK zFJ18~(XLyHpP@$uas1#zwHk9j+ks9eWU?lF|Aw0JFUQN}h%ZfFR#bgOQG6KdEv#dr z{gQtK_4gR3MCXq3EyI>!+d*d3X|y6+=F@pCkgDv6Em&&v6a5y3=34mY4ct-h8n`U4 zfoj=UbX8pl1Gc(go`v*+kh(I8m+@m(fd|pYaPL-5QVf>crJ?4aZ}uxcOV$Uu*3q@` zPf#Znd6V@O3-rBT+~hOn>_hYDMYIjS~( zLSj`Z9T?DotX}nyIWGr}>s;sm8Xu`L;l!#_)ybAY*4K4MJS1B2w+W~Go+X8p;6@P$ zg4b9r%CB8vSP~fR51V{|qS#N?VSr(i&GDZ2C0rXSpUYJGO2L={@65Gb78O^bk0SBp z#BV<*=7u7pjZmpZ*a4+ushWyzwlKQm_U3r!E&)NA)(U&+Ez}d0Hj_BwA8%aCOs&D0 zh9;%SkL5w)dp!A^I>+&LO5=DXE)O#|VsK~+L5am| z!-_2R-2H88>_u@O!R%c7vLl=E?aOVy4Xt{Aa^j8+>c=rS>$mN9`Cs@DPBf{7EO0I9 z%bQb;?2Y@Wl^P-cvd~7*tZ*e&n)P`7ka@r%kBHq@yi#lXRrX)(VhCdCuWaL@4W_3= zdp6pE$2vDzhk;D5uU@-gSoZH!VULP048vXUXDg(BOJD)?t~?Q5 zofZYkz$hO08Y(WLL#4c%cgnhSz-C|L7hn+(k@SNCDU$w*C&<_?OR|-DUldD_EC1> z3h|h`v~r&yh?3<`ftmFR%+w-Ea^hvGm-y$XOPslNk?Pqd-fI*~KpnW~fD8HR$Z>yA zAN}B~)Ml9+>bvl~K$_%o9@3X^s?f2~bOjs?DA^pGQA*hsX=&|ycGoj5mzJ@_4{^l;^%C-~iP_J031nO^0VM|~xGY6z!W@nnS zi0)eVvq@Ni@_;{TQ=$0Of3v0NKUI(vb8qF=9$CC~C>-*fYw1Bku8vifuYHxyWrm;g z8EHW=d9D!c>JY`fR`+s*z4W&M@LswsAU>HvMXI!WJ`D6EFM0P4R@gcJ>V9gLmQj4~ zY*dvS00N~Dd%T_HWSSc3-TFBZ6~E|UXgiiX`&}$*$Hkm{8YQw!u1|;*TV)Nl`s^cd z+m{PkrU+W~gh>t3{O~^CzT^wvew=g0h)x&@PTMesQDeA_3;n*eOBRTQh zbw1_UZ{5QpnN^x~-in2)NI)n>L?nYQ;=TKORTCg*vlf?23tE_2Gg%6lT$EUC>{e%w zK4>#Hc{}|0n8fP)#Czjw_*oRfL@_;@}+%q42sC*Y0~+<;v>J zEbm!ny~Ct;VY83H?63Mu0*AlZs{2Uzga6UdOP;lk#!?Bvrp*A>QL|qrSZCWEXKB~W zi={g>GXwjbQ%T;_@L(%d{ys{6c6Qb7dsQ3VIAtu#{=3*2TVsXKYyYige|V8LtmQ@w z_RnT2$Tyl{lRDoilGrxw{hEAPLm~<;&J}gvdZ!W)?ss5`Uhyx1f)D)!64?9)&P_}6B@%-|+I(mqU zcb3Hg=zHc3p=rRWzOYjbADPvCO=&}>e22C`BXq8_YS?gqQ!B*MSp_@?&`S4WQG?j_#0KjYJ+ zra(!y1&3n3UJ~3p`ZNOSvp+4CHd<`JBSR`YGQic8F*h9*E^}14+{Rv~;{1$? zY(?>cXzF*d%GVoGyQ6F0fT9ku4fJ;nh262rKZwEUG}*xx=EvbT)tm2NBia~}DTZRz zM)~nSMl;vY>ECyBUlvK*PqEZh(7~q|l+tH3C;x#O4JV5pE$~ zWx0_gTw*R0ua)h6fABgqmB^g8c*p!UPDKD<< zZ4%!5w#72H7qYi~AepK-=wN?C;l@~IK~J>$Z}XxSR-!!nH8z7pP~!4a zS@z{RnCY5CU%L6?jC{J`e9)s1j!!_+KmGG{-xU=s+--sY{nG$K|Fml^n#75%bVnD3 z!FnBZW)hki88NxoXn&jS?_6Zmogx>IGhdh+{?i@OBbjcI^fKerQX$(N>uz5uF3bGB zhCv8s_552tihce)r`MRoOx>e$CGU|vQgJPrayGNnaSw&8voP3+H53mM|0LL&X z8*j>*jb%p85U0E}Ga42-qboTvsoJ#ok0ucwF_3fNhHwjj&OO=6@_#e=nZ@64-xDl(m-*DB8bvL87){O=7pG(W5N#*a2%NvZ}2s!S*Hkxv>ua8&#DYYQ&nkjc_|vUe^%ixQ-o7&5vp zefCYfaq_didUts7P+rxh-r*EdC!D5biWuHqMSMJfkGF;wKSf6`Nlzazy1x3&@M109 zOiIlkQaUNsGGuheq;zaR*`$H7A!U(dSkN*}zYQ2`5AjJ; z(wu5JH9dVu2?sn4;Ml;C0~#`yqX&FqwT5Ugc~=L7x`*jh?N=J{-7;Ww9dhw2n*EG3GMO+9qMAxdYb_H^4#S#Yl#hX` z)DG{Of1&&~sk}eFUBYRjZokW|6GoCnR5z0OTMC04?G3%krwoZD*wIKhVJS;JqqBSa zk%n;?ZOPIe1Aj)egcAow;nwDtf_0(~k{%u(ADuXGe9H*C9g#RNGVT@=*O?=K9Y2qZ zmnRMs-7+k3U_i@A?png#$0rU9Y6)d7dn<9U@RmWjl7%h9C_kWO5Pyr}lVqP2whYmC z#e5eZ$6{MNad1$}X^DfOmXnyDiGzb_dHjp<6ZoRgzLVQM2VdgAkhm%v+A=hO55I)l zA--GQ;7=R~+xrr|FR}Mw-WLb`OB@&&7f6M1-wTj9P#izQ+8U+)>+v{y9H!k81%9XT zB^V4Hy*n)eiQo6C^|J~_*trm9$?3jucM~_{}`Ca3E))#QYp9wzPaM zSA~vQU|6uyQwy`qJnfchQu)#At1X}v8`kYflpx5na3A*H*2#S@`E-cAXTGtM?}e5I zD7I-Z;0hEB-n6^Sidu1%^CepuzTKv>nc`t{F_b>Sy^{@`aFJmr2+!VC3!N{yQw3>d zxvl`;DA+J9H`?zxLuS7z8@V1>sa`YZRsSu(2~plft^>OFRU@Poe zx(-+wI^d~nra0X}2gcaF+f@{F#QS=}bzr4l(uxdYSwkAIJZJa{do5?Upz*CG?;D@= zo#A`<(O{G1Z8s%`fL`afIR^O7>JJuc0ML9+nc^2)5k7DJNY3ziKlSBd5PojKa4Hu# z!&SFA!z*QstTNCr=9apZyiD=u3oGUSS#!LTk5&M?LtV;qhnK0AUUztvdyH7!tVwc} zv7%CP7+2WU4}`^+GhXFzhpU_%3i?i3Qzy{GQsw2kUvBra6`ewGZiJAwQc78Do2muh zU2^AG#B4yb7nACR47|{ z_KG8~flL3|=qB%DFbyWJ!{lRb!Gg&vn!xYpX!vnA8Ccfr;%6B1Od-Eh_hg;2ykkQK z78BM*PxNd0CtdVWUXj3+0uq!e>FM$WukFTq93(0+|G(PO5nw;!Dl$}CT03dC=cjWp z=t~kd?%E=yE{H#Wa0Mu`y~B%^bBFI{B^MHK&zncIe4y7o`lXMe9@P|hr##|xyH0Dv z*X{oHlR(!|75!DaISM$CWf(wq5DepbaDYiH(nB1H4rK;Upzxu9vjQ!J?>;p_{O>sm z@=VY;T3>^c2#*$I}i84lgcG0{_4j8p7c3qIA$Kujq|BG{yX8u z{}ZwV&~tUmOj}fb8r5e0%;L*`g(>u7US8)X#O)r^ewVNjtqOXd69wi+b!WG zo4J)z(u#uDBp2FrD6)|p9G7!I6&s&h!uLD? zC2L)w?J{n1@fFGah2h1g=@mK=PCQh7SxK$+sk#xUNVvP}Q`1L`)`+#og0v7?N2QK`$Nw7n~VRtCOL7&N?~07>nihKS2OE49&{*cY862A~kLB!@@9GYm%wEY^E3?a|>+ZeU#2Q;UF#F*G^%fo{ zgw!P7AJ8&{zeTRkpsQubIr+be!`I^S8iC8J+_stTlqKCYcZ`RcPUQu`5DS2)sBUs9DD_*=~wP?EBkz zSH$v_M#l!Gc0=8WbA}yWwwnOk{l$ls9C3t_X9d6Y_5s(CKf=Ag=@6-yd2FNUuR2OL zr*QjbyqCEt>$ryZzXj$buER+@6F+iO5uKiynj0bwR=>^?Ccgv@XcME!pC=Em3J)V25s=9?6VckiNKs z@$0};iggg7_s-29$LD!-dUSibrJWzAw}(=rJ5ntaNKNkur7ms<7raQt+F3A!mspWHnmSgQj)mv`%7bJ(nUk8)>>j6Im zvVW^4Uwa#_%5OO5pLn!kchO{5=c;2iAZ}!M%ooR=9;*@g_XC&?ePM# zDVn#qEV0VG#Vt6Iuc(To=Z)9Cg8k6%xJ}sv@i7!06i!|c(qy=zqR$34q+6%xJySg9 zM`w{wR~a4`ejUz$^ldff!;-XGHxD|RCp<=LKM+Yy?Y#KQq6;nlEcM?PzyBOO^;V(} zdS~BKs}J{Dqa?0W6)A*HDez|~&I<ha#a9l&jw8o4^4aou&>fYfdEA(p;AG%YihwWc?Ure)@z%1N>F%j3o2#RKf4 zO&oU_8>9871DtQYS06A;b9krC$|ZJv%v50sn2Jl&u~S2rrsto^JT4AxVAManA4xhl z)V3pjwFX}xfjvQ@emj~va=(Rb8yLztNd1Q4Q+o_@2SE2{Rg;0l7kUFIC9JD)poY;K zI0Thy()%d~ss&(tQ2W`tus7KUCJdZI!s;rmbAi=P%TyB4$* zgcs}3xoPRyr-r7bXP#P8m;RCT)4J4S7S|I?|J=q33<_M+PWR}&w9^7c(QZn(A=$@i zTnZJbw%?Hbuod8Fz004IHp-!Q8uj!es?ZYNeb-UL*H`Ly9S8F*ny}QGn#}=q51WO* z@vg7>x|U{i;BWlgia^&=Mg4Wsm;TMdOg(l z(a(RBZtpNljnBN32RQ?+4+VYz<$X|J5a%`eE6Rhwkk&7WyhV@i*TM#zK|ZSm?&r#Uiu+|Bgk36K>@w z^;t#0fKt{Ays2OH_2a7=txMOUa$etLUHRIPy7J0=7Uw_acf<*)X-&zAVe5r-$%yHa z5g-2cS$*L5+1|fQNJj(ys>b@%4O{our{-^cFOvNEHi#Sld82phf6L%s^c|s;-H=E+ zBl|@v(BWbx?3c^~`o)LwkDnKeu=kg9aQSo{Y_y|xlObJpZ7Y9?Yb5=M)e$IPnc~q8 z!3!VQ1uwkcSU?Ka#6gUdP0c0n>uI0k-(!3sZJvG<7BTZx@RS&9ymA(k%h-}?^`YT@ zTr_V=_LA?z{#1N4$5EHkw8W!8=pIy0^5hiTH+{bVvO}I1v3SQGJ4HxbfNslCZ{8q1AW({^L7!qjZJlo( zd(&}Hw;6(U4e2kS!8zh&C*%h)Y>kk>HlsLTK^^)5030iF{nsJc>Q`;zj(B05^NpXp zer#>>mxb5Wr>^I?mdDHw6HR}nBAT9t99bY?HsKit@XEb;W}!?%>lV$5aQd2rW)S|3 z$tpc#IY3~VU#_(n#L3Jd=hW-#oxqTjADlniw%&j`gkP5&twr$<%daEn4S8E{D36mb ze^9th`46}Y#fN9V$8AuA4+cs;9YS=s(;SFZ*E!C6L@AUeyiCSQ8f{`)11|&+$gcPk z^>4<{>EGAiH3HR#*az+_=u?PwxqS> zGMjv?KR!U8{_AyLRn(;REAJkM0t;zPDe)D9y3_{m8#>X^AIn@p3I!T(z$E+4H}H_J ztz|FcY}{Z_bZVs=L0~jcA2;{|{MV-DvZ&GM1|@GWUO)}-j(Nuh!}?nibQPb3+xAUd zPcStE;y+WQb+>OoE;Ttu|$e2XQss5T4_V|y6}>xQF6s&Y=VKj zd=++DZ)nual5^bp7=$0pns3NQr!K~rd7cOeD+k4tGuG1cQ3;7(UV~u_bGqv-H=XB( zIy4=7&C1Y}8HQcK>O zbMVzOJsgnNmL(^C>Jf=f$??+e6C;^vFn-0>g-@@e_!_OpD;s~C0haw9b$Vyj4|e_O zP-}$yF40+7k7AY{%-)V7w!wI&>>`MD8}paU`qGy_Gq&9pDwQw6G^?0LwoKf z&;DH~6nV z@rQ2q7n<_PL1nzNuXFtisUWScRR2JxQ}A-TE(+|m7McVd?**M#b*8`2)X8fbi>}~i zmp-7Js~69q|7`U`*7hC%^#K50rznSoL^dWT4tYq_XjvCjt-tF+<${GKeQOI%mUSVb z8ssPdXx(Ot5B!P4T&5oYAz;>C1GmvF@v`hSExcv0i;w@XU9@e)vZFsGPONK6Df+QHo2=RTG$y=NGyE7W=87w3arQ!e~D^!sMO+v z0>`P+`Kw*fME+`*dlbxJ_JY(Hk+tRWbye6it6g@bB^B3d7gtHjh+T0e@qH{cjMXl; ztSDDIvtg-Q7UO{sZRgCj$N)X4i+U*2Ljm8*DqYTx!BLam9 zt$b!^GX=tV(z4??yNW=3VhBDDGjVrK##Xw#My@tLw|n*6GWQ8ubU~2H@VuZ!C<(J?GpUYCfsW;_}AwNrgV4 zg8Aj+`J~44&Uc+DlLHvVLNDrH`*&cu?=+XAxjC$0(y?E*B0J3NLwxH?ota zrbiB$Lf}fMyQVh0`nA)q>zH=~#S=7-lA!^uPyMpKa!bRkO`O1XQ$**({PLCy8Y=$~ zOKpzs+a6tefFQbGPRoq^a9xU+Ji^9b_Nrf(enjrQQeN-h@J*ddwj__i~;yR?YMA9pzwXk$peUMct-rK0NC{wPvfC{rfDojt^ z31wO*uAo2xFDrOS2Az&FBXqU}(T%#hO;sY!&%5;nw51XVYIN=+M!FnQsF2H_D<3Od zF#VsdhM3hbfEv*M9@@g!eB1M^OkZdaa=}w={*xBOf5%1xd|9Ue-x#TW_U7R|MM+_~ z3L;cysV&|<#pEcsZHu>?+YXyp0Pf<$ul~3{w=}h=ePs5zUR*l-js7S2`?JuLJ_7z6 zdj#Uc@E7}F{1s(#_^bYv@CTocSN9@tItXNnf|)X|AW%r-2`oNnSY&S@oQw6>m%Dnp zIo~=T`-gp;_nlRgDQ@FqqrX$SeEe?~{(G@1Y-)Ytp(_tVXy{}85&A?gLIc9|uMWQp z4#Th5o?|uLgNV3-#}L-)Co9d2y5tybtJ+Fre&+mxA>F@2}8u_+UP%Z!gz0)I`c3$c}YbT-&AxLukS#7qemGKcUJW z%)T)j*~xB5W0~2(`C{{>q95&iF_$xnL7g5LE|O54Ztlzx>2qqB z!mZL!Ocz3jPw*q*8sk>FaE*4ANgq92;|qBq2!Fd2xA@%o&K2vFIzLon%DvLxa#6V0 zKY3BOivO7^-ekcVooW!%$OlPl&veY9gO3uV@m7Z_A7jC{{o*qcR2IZ%bhvxsGcE+p zQDBW^VjSBf`7+_J(!_$HaF{(Df?QmNN!5Q6mvMa_QW76Si=AJ8{GM^ zx_NOK-in5Q2_<6uK_~`MGzpB@XnInlA$?6#G<^-8X95t3tJyJ+sQ2j#ec$fX{ml8- zUx&Z>+1muze5p!uHviW>LgnGk=2Q9slOw)haCEAiKVs3;H3TiN^N!`mZSO%lK4Cxb z9p>Ln?C%m0;~;A(ufsd0KpY|)YC?Px?96h>+7i#0aMt*Q7e6hkNc#@nd&G+57|Gf1 za`lRxA)MLH^IB1DPu&RPM9uuD$fjmhKRZvjHbVp7St9l>`+LU*@goq_D0XBY0iVU3 zfE-2t&z3GNnvSM(>`ZlhjyhO>*ks*mlzdkA^s(^aW+)v?JmX|Fn+xx8vid(It1SSs z2DZBP<_Qwm?BDtocFIyh93lBgD#YJdDnj(jI__A{FTQLbjGi^T<$w~L`^WygM%+aw z@TXU*8v~QNS;qXjeN3J(l9)ti;7xY2+XCj~&n8uw++8F6i1-uz5hqb#@m%qgR^ej~ z+^ftR%6HNqP-;mK#XC~J7k~XvY;516;6_lu8)2e6)mW08cxgstMS3wy4b&LwK0cCh z+exc@{97~x382|=SEgdL)mV|7c$_{YKEOVOMjJ~xIWyA=^w6^R9erh(DWmx(3xyd$ zom^kzqVE8%q!$kYze2sKQg6n4*M0PeNU@YOB1?8tP)zh^MPb++Mj+!RGAY>{kDcwL>&LsmRFz4H9Ob@QzYdJqjL5T{IQ6L!6Fwi*ld-K zlhxQxV@Rf!2;o5 z;kKm|10lv*bRx?laTgFGNhAO3_IaNTQ1aI?2&By|eGuXV(xa&WA^N)ig6WB$`T&IV z6-EE$L=lm8il9Rn&4jtS2)Y>>!UPZpApQ1QMA3ylNP6L<(MW^maA}me#6f}->Wdyf zcrIW3z|QATA)J;QBvSbeplPL)G@!yuP~3bcVrjzquAU8?l$0sn`v|lStaJ4q#Rv;u z`pK)t-+RTDUNom#L-1GIPAuslSZZ_1^MCUcO`G!E;5IK|dr3}(rRMjSQwF24*ZJi) zNKQ#!%lGq!( zAhn(ioJB&tU}@$GBT_`X2FbjL`3xvryn)OYQ-PwQhG#Nwj= zWOt!6eiXpY4t#RHbiOvm{Fu#B?&e6qvdOTK8l?v?(T~2#@H2Uv?oRw9*3Er4I=(3g za)RWBwt#Og2f*%=`dBw+U+kzgj>QmR%ZMfZ^L>V=ScSIFkn;ih>@%E$z_5LWt=#zg z4Da}avt^pRd9P_4eFO!K`7{u2TOy#3vdOUj7Q;8Yr%cZ;D7bzLf<@nz{>vZ5h<8KNSJq_{c|6zuWD%^FK}1%l##uSQTDYf#OX|5Y~2 zUls|ToRpXraSLnS^#)1)X2%1{8}DN$n!37?jNh*k=~DOVd+B8YB%Kfeib)w+E?h4v zb(*ACUFK7F_T0mFusQzY`)8Y_KchD34{QVjvtV&gc=0QSeBbGsm98(zeBP1v5$o!nTtP`oOrM5wet%{e~g6c zSAbJ7@PzFURS%Qvo7e5zzVDUPMx0YH3HOWn7S)RqQ@>?}c>7NCG1%9KV*2%(d~T6r z>$w|;-(LuWeIlI$`)}bP!4#hWx3*rVR|>zWjlug!^@i}0JM=kTsz`bmDKTdbfWvJR z#4f@)y!!Ri=S`skxw&xx%gvp7v2uH4)+Xssn{TR=_}+NSsgX+jaL-5fZI9sQj-0VE zQn;tL7Vq-O7-GMgL{BrtgU&D~cKG#+3cOd}_%#Et*Sm>Vy*!f<9_jeQsXlHP4d;D5 zhFI8K|HVK3^EWTnsD9A-n{GE;l2ZqL{qSy`9@NIFQlf%>N#&fwy%wc(-^zWkykwLw z>ng@ZgFp#-x;(-6T2<0(=?t0~EGN{ZXB3e`@YRoxg_n*k7k>@8yn^l9ghx^D>(akR zxpks#e5Tc)U0l=ih6UrZ`0wGn&!&9(_K-gUZ2Z*-)MbWU7@f5V{D&7^tO{qnqWinb zxkn&Qhp^mM@}@}Tmi%Ga9L*G!c;(YzhneAboUR4XnC2tKJtH&fBP8B)rVqb5=8}5f zJ3qRE;1jn9Mnd(44p)ww>e=DT#ntLLz?o)*yhkP!P)e8E^Wzq?lJf#6+nEaLn2}Bu zNEKn=&nyo$WWM2WwUMPpXoP4Qe6iXd(b$mMUMJPcduZel@OS&j#XWZpC!A~zG{O1c z^N5RpcWqSVxuZTwA5lYm0rS?ofIp7*Y-W1bosvHxvkx53*8&36{?Sqh(uwe8a#Swd zJxAk#2yfOE5pGw6^IZF#olkZRveR`mg;d;`bsM>8@dUY ztz$L45-9RRK?I(g-qhGd3*G%!`GYD7trh1lfJ$}YqBh1rG zy~CzK2sx(tsS*L{gD5ZTM;DeQ-EeL*>@w#5K1`S{^F`aCP8UBISns zO70hLN;T_|R3l=}X9ZnUmCp)x`Og6>*u%3bQ8|ssHoLkNcd-JGXYo;$6Cd4gSLe`h zdr@c0`!V~d8&RVR*E(*|op&pveGMfy+tSH&vD8B((E~hZ8FvTZp_W^ z_7Jcy-0jBrF&Dzb{5HB^fk0i2LHHUb9g)_|RZ6*Nf!Q@5M%$`2ZW?|KgT?=>!ZF6Al`6ltkz#w;LZl@ke;s2n7yaw0*^d+jQm zUzaK`*G((i3zZl2QR8h!jCxo`eR@EpV|TPfy}m5ajX*1iE?l>bD>A>0drOO-2ePdke~i=19>yE*Q1D&`}qg7s6;7?&t>A0#Y=0vXMg=I{dfaMrY{chbAVMc zC6RLM;5-(+d}*jIkux#3UFIL7=u%TNCu{uXtxn@N<~BFMiB6Z5O7X_fOC=)Uu-c1upGW&#aNjU9!7LoK}--;%-Q@}aSrLjtBlO;>NZiDY38p6*HF zf&r&luGe%|kfPTG2JG7-K}Ey0)FwJ2pv?aQYSR~FMxzhAil(Gy4iXU!V*iK1KWIv- zXb=Y2edFNgwh3?hJkA~16V&^l>iyeit=?E>va95|x&|GX$+*dQUI z_!=I(H3Tb2+=DgGl%*D}uK=ax0h!W|X`SZH}bA7s&y@SWp zE<8Zxi8yC$w#!H(Y*|K{@rQ=$XTwX1c~ak}rAHP{Q!dT!%LqUE!|CwRGZudm$LFsqaI`hJn(`5UU&hwu8TZvG!}Zv!7yam9ZJBoGkXprBE(jT#jc6nv=! zO-(eZySkC6R8g@-5yaM)R1?K&>p~LEx~xWvib`ABYD=rN_=YI721SYZLIgn+tN4D` z*orSj1U1k1cjn&RO$Z47pa1jl`H;DDckaxYbIzP|=FH5Qq3bH+i~YTLmHRBwW~53s z5GBXJtIIAwO$!Wjg>Xm~Beh{jaD+6^Ms@?Ccc0^URwZOW=nETwutgUG@J#OadObow zzLVqS-%|k0!|O__E)&*~0Rz6*mWN&MRf&SW9XztVjVlGGcB@QYVC*HHiWGkpy72}z zSiC$`Covd74I)^gi2+Bk9&%J(G&$@jc3g$(bR&mkTr+89`~zEvNDMflGI7xndBhm| zAybQCM{xfC7Y0H&KH!IK-0RF~8OnQ8*wS!veEb1KB)ZQE^ajQQQWs+eMB^V5l+61P zB~s^*Pa{YET`#nLt(?D8bz3=iZTV~>5t!OjF_ztiuDJFSDY((I(%)B;vz=axy%7>R ziiWnryGLd4FZM^PC-?qfC5-ssYHjpt)<&-r__gCyS*w`^TAnJDmxQIfXwe9cx3ZLX z*DlnAn92+0&+?97&8aA_hiD~_Xap2Z<#!RPS@UZ@zQ&JX9*iG}eoby{_+tDh)qFa1 zqxQOLpf_9U_Jd~4tQ|Y0C)aMKoHf6mqt9Ta7^$?XNw7eiKpSaUY3DiiyR*VG6Yc2t zhC^|GqJ4mhB(o;kUQJJbJ0`zK^-CDlUEMe5*Oz5M$m#qvcua@Wu(8T3w{evw{^MjR zPB0gfLR?o1iBrqD9f}D*LSy*Y-Ll}=e+xK1%601Auos;Ehh(^1@Nank>FZO=JVEeB z>gw(B|NKd$>9juW`^m=HzNm5)NFMp$_mNZVg`yLj_mU)wXZG8BiwZSbobUyKm9*N>< z?L5V7LD%`98YSMG|3zmuu6v!|&AXQ9dl-m5EU)dv(BmH<-b#^gf7Oo(U%r{^Bffs< zH{ppdntU|>$21ke19hc&pq6DkP?2O`O@ir~9k*WT4gaCpvDfXQ4$>7FZ0g{Zk9OTb z*1tw|>|gF#xXc&k8Bjs5y(^Fh-Y19Jm_0~!C-*+QRU0&k-?U;ydwjh&lOMA@3>n|w z=04dJw`m9iv@o@wqr2uGVIG}-;pfi3ppDELf+LhN1TAIYmD+nYG+VmJj;M2?Q8cly z-6)G_729*14rzI}O#>oq2+(j4t^8wjRtdw-Dq%S46N$!gs+3r8Nu7X`t3lt$((y>K zx>>lz#FqU^hJ{<@N`qXXa&c3BVl29udJgcR1Q=Sy4P#pAqQ9_RI58RAv`gL-1pbQc8G z6y+{rgH-C1XM?lJJsXsBc=iumbf`IKK^|?t{b?5;>+T-M9Q&Bv z1Np&2ArFk_Uw=A`PRw-kAMSC~>wT$N!a7}cy`Z77gX6}J(@OC=V&HL6_J3facb7#mCv2>zNE>!(Y%GXXV2y*}Ag5U{G zE(p%d$%Qpmlbu{pc}DHA^I4#~vqclg;NBA7zYwpgsw?^ULN#E%3Q7wtZsLr4T~0g&BoHSB^qL#T?V#g$UCvu76Vq=pfGjH7S02lgwmhu+~B=T18CYu zb7)wDSL#fI*HQ>E*Yb^{aODKPJ;a{#4dQf0fO&`h3MN2eRZCffB}1yz6@3|+|KLCJ zK7|>XWi!c8%Gqb?JF76FUXP%~M0N1cs@BF2gOQwhb+D4-4v}@uftJjWq zd2j6xB3XISEws!TX(Sq-t_C9nN>=1)>0BTlo2L~QjIr-qb++M&-VDf7G-9kRZ`J`+ z#Qw0KumX0`xo`v6Yyys@{LhJ*zGkD?Go^XxJU67g_vV1fWbUuuKvyAqR9fYxhy#ou z)0WKP9ot15dJ{Lqz%B?c=c~EH*v++*8qy~KSzi2-n{-E+wu}{Jbcj-0=4_AG1s4bn z0BgIr@`-OP_2+i7<(JTym4F4dvIhPa!nzH)$K zf+fcDnuSQn5y?6_6drNTH9M(%eLubm>|BHL-8EUvx1Bvs;v-anF z^-mpFEZ|FFSRjWJH^)>YaYv&Kxp8pVKPQP&T#=mLM$qe}qR-j3+2Up!hl$4oVOa3A z*e%t}ioCPV*5U$sjJmz#@0^%c19I`HF?9n#R=ny+B^Xk3_f{9m`C_g13&LgkBKEk2 zt>Wsu4Q;vqqN$vb?Wtc;l+Sm&i+U< z?N%`vUh6O^ETn!i*ht?uRNrfmJq-=jUt1vT#^|KDqCC_v5kn%q*1wL|u?5mI-6nIs z)+|#ylX4DHSsL;E0nz-dV z;fwWDBac)t=)(tNRKk5PRxVG>YO>zVl?0GWLA+Ygu(oFBvM*jO`(kBk0C{AW6k9a0 zpjt_MH4Yi6%SiH!Zjs^@p}GgvYlK*{3d>2!#)Y&)Wn(uK=xI@>K;7{373lDDH7wH# zl=y^M3e?GuyR>&8{z`^P2ysax(#4KDf^NC~h%3bL)gHyLBwobW>VB*FCmCQtQ{3BC)(&o@$Tv`c0Cw+TEJZ zmR9<`gS65MUs_$I9Rz{2viHec;^Y~MoU}sa0*tr*0k_o=J`#!?eizQ#QVt1mbSLK( zCx_IN)apHi^m%Ti$HYSAiAJ%G`agmXn&6K0#!8JIi7%fji{A`QKOrjr+-srh59c8Y zBQ~l5q^H0NfAMB`aXZoPUx{{Omob-;^CM!d;_`uM_FoneIx-?V_vo} zZ&DM1Dd5s@UHeX^^^O&g>L9dp_`mwW<>{`ZVep#@KF49~kNwj64Watps@V)Onext)4B50L^t5a~f2L^V(3@sF0aOmdFPwz*0EhjN_0>)3uYAi48x{DT0^yf~@P6zr zaR}c@Pg^4VQ=_623x@FAksF%YxNhPe;J(B9|Gj33x%K~S?8}$|`-fr0ZWs1XNY~?2X{*@BKFh*?DE(bW{4)fIjdPor z*5}J!wHJ9( zFA6ohZ0hCe9_L;bYG~m(c6Cn#-@o+ahE+`{sBGkhR1%CqDkDtIRl#=e^8;JB_T-=} zH0otEBH*Kwg&J<%@7oa?we1_!#@vlazHUhKoF3jIHy|tBkemV$vxcIX%M3-C%eZ{j zF--9^h121F~U-(wX(n~ z&4zEe&z15v-RWpEOR_N3FrB}ef@vC?Q)3vDfN#52c+?YTFl@e7dvSWER&ySsLErb3 z!Dw(`Xm!@223JPKM12qzfZ8tk(3&OohijJ8DKVIpc@bG~?s?pd zeeT4XXfgKKy;~U)H`47ch6JxZmUycntaO@jCk4+8k31V5r)3Y1cjoTU@Yo}$jUlmf z=D8_7CdT$M`6f6}Q{O%aeET^|zU;B*xA4C|K05I~p;ET4o;vVGI1jz0A1xctpQ1(DBcl!(d5k+(7?2ZHs;l)l2^d43%cp4u;dHKko>unnkO{ zkZ+T{G0J4ix7&B$HvhHx{OR+b?F2*h{_?|ZF<=&d-xTn77XNjYcbYY9P5zEaf4_D8 z`y!~1EV%TFNta!A;rWx8e?X9$lOqc*n{@8^mtJzwRmvWl`XeY0#$Vm0-l2v#FCq)7 zFT1p6(!`ocfpn7nV+6fSB)mHB{7}ObJ^4D>-5_N!5^SMm>s9S z6w)^h!BXNOm_ujihjDzD{ov;Bfg$_{-uZ@b!>#%~?IUftjx6qkM!CeK&rJ29Ipj6* zZXmq1K#(d8CldLBh%)O)*_v6P1kb7GvP1mrM$&LHU3eB*?ms>G0%l4_g_qW;68&RH zE>sQS$CcxuTR8q3)!|+M7H$1TV6=S?2hFvOoc`iOO0wTMc*VWy`?O@^Ll$4N5UU>u z9r)fu4aAKM^*^SFKi4RZmNNks?n)tV_5AKs#0F9|g$!XwjXxJG0v_?7eRI5QcC&na97~496`T-tugno?MF=dB?Dx|rN9Uw|Ih+=gxxb-< z+*{zI%v*A#y6W&Jl)KiS)0$7}j|cOGbB6$hHf;T%ENhMELhhdosKw!1`QjR97PSG` zLOPe@UHE~z=tt57WK|8w!-Q~J6nV;GkJ*`I)-UQs0rIM5V5s2%a-sRII`tnfU#MX= zFVj-D{zh^v6z$tQ+Rndo`|LHm38qCZFdEx5rVUY54AmS=PvuAX`FuYg_Va}@P2n4r z6Xo(Ool&H6B1{3PRtZ#2{56EM^C|)G>>U|Sw+FaYf)OAhlC*e=5%4#Eom(W($o7VE z$8_46IdbjDXT96c>0=P+=Y_iohfn|9;n>~`)SHKR)A6fw`HD9VqoMgXJE!Q#nt`#$ zoR8*v=)c&eU2Ar)Ur|F~Zztatj#O=vsLkwyjtcnN^;ya{MnQU%_WE6EJMk{Y^50?x z%-a5MZiUJq2c%jTg7&;kKg&3vCBSv(fJyMi|z z!Pceg!OQo5^?`s}dO;_%J#^)W$ zvu*qQ(De5m^{b@aC^$=FvKnY{!51o-Vf$%H8y~hEQ0WLrzvj1KuxWh$7m~5YJzeaD zll>5XfWciTd+24QCpASa|Kj zb1FmSE3<;0u48_m74&qy%LdXnhlMUAN^E*}T^MI6Qz1*a|AJIq zP&svBs@`*O?7%GR4vTtQU1(XoU0pEwmXi0stA502H@hEAem>~O9Ki*ADyM!lTFT)i zOF3;os(z@P`Y~7UlLIe%EsGRI+w6zI=WSlKU7bm7fL>koV;=2h_oLa*2mNRjT)?Mt z>c;|0*=c1d!7EAC50z6t*64k5;B~KVcR##Q+u4P~-NZ zQQ-|9m6=5rm6l>d{9@CLisMBH}xkzyOP?0$D6gN(ADZ^}L&B(Pjzd!qtZuC9C z0nwn+eYf$KH9t6~hu?onHyOq_Y_2pjg&6G@fj0|LfPrJ@(RE^z_7|mH#IC6Ydy!B7 zobC4+&)$n|_h&ti6%>m-|SPd z<5b6HqUF?+>D(9XtI&_E&(E|;7sQ-E4PrIzF2n^f#m`EIlf96vSp)P~Okq1y_}I;b zW)|h~dxkOcRT{IPz|z@8g{0{0Au2Q@m@u7BPLoyY?KsC`%X+t(JX}AiK9c9je&r9k z_~y}KjyChYO+T7Xr6!N*MCx8u!o)1!Y=WJ*iUpS)*GDBwK6@^06Rc!?^XLr{H8s7g z*|sACtD?3C*B>6J?ztL>d*d$dp@tVY?PPLF`+qn8?+tl}#QuS4B*CJu#HwA*u_U;J zq>hG}+Zzy0WMGX8zP0P$aFgm*zVMR0;e+JB_g~%DP_B1E>KdiVTu7$fQMy|DcX3}lVug;9W(EP^3K|R9kT_}MAPY1ynF7J_hCZ?ZA z^sbw8=iRx|4KkG$ibbNv+f+_NPhU0OrsCoFr{9JRf^>1qp`cP1l6jxc|`$u-bD$}`TtVt)^7T#`eb&|V3JV7?)0`IaUrLVi_84ud51(3k55tAgq`|G z?@w$CU3U#i+wSp9j4#O+nW zR2H{|rthUf@Pi8J#r0nUK;_VXSH?e%eDUwd;;*?Dp{=spO0kbVW#wFZZA(=dK(DtH zX##way080kffsKgPwY4G(o0zOuB|LSI@EA6uga!foj0-O(#vZ4GU4gL_)VS5ThnqH zFQ|=Zyv;kXr$$-7*lLY3H3Wn^Gbpl0S?GvPWeh@JkV^mO~PqShL{WIL}5GgkLjH<=j% zkVvz6QVDYb5|0Rn6Ott#)FaAK-Z|cG99Rzocsd4eeNkUNOb3T|GhO4BQX>gx>8gT< z2|VB|y@X_txFyVkno|Ly!VfytMTH-yZ1R>l#%+XOASJA-V6yX-)Aa*W>v<%yUld&M ztY8sk`F}WAbmI3ifQI8%u&$)&@C#T(=^u{!-($g0fjhIVCvWEZRd$WA>yPV*B98~b zcn1@V_njUmCI=U|V7x02Q-z1fs8Ux6rO4H&1ze4~POsD_f++5!XZ4%s)&>>{L;uCib5NHt$OUq|zu}2`S!?G018S5o;pFXfC zXrG&~=!Uwbvnu|nm8u@PJuqO~fS<#OU1ccgwVeEp6;-S8Y_jB>=>a!3oRuMR;=xu` z{;(g0=5gZ{oXq;j+2>He9twkp5j?<)KO`|;EZ{-Br~=VM?oDIFi5!|nIqRqbfAJb;u4bEDFa{M-X(BT`3lFs!1xb|+gU z#%%e3WX#qBCt|5Fn}CMF@Nr`Dy64jTwu51|Cq8t{rjNV_Z_F@Sr-sw~b;GytS31&j z?uvlF*6!5>e?4-j-|H^moy2<+is%LzL(HR?KX7^GNbXK@>lC#U z$?jTnj=Y?N5XfE-8(X!-ngJDWThDY2KpF`<)xFr=*j_UmL>bdIn}TqxFg?f1p5N~A znVa9p{MMFNDXMvvV#g{)d4w^(WLQ*Lx~OOzseJZYg_4I}Ga^lAH5Jmzj?IA>NorWr zUCntYrpbH2#`5PjV}nn|cAW zB)RveH)(y=TX>7Yet6tY;Z^DP#7!}%MBoOFEABGfXH$FE79zT?{m5yY`nFZ=NQe}A zQ?a{OP2l8B)d7qkI@3r6btNwiqyyX} zI`^uBi2geuq0#B;Hd97(O6)JJ11>g~C9M4;b7+Lk5zB2{d-{0@7db-$uT;_l8&4pJ%!!VkKXhYOGEFk7b zkQG=K!wL8$!mG)9w=J^GA&YF%<$0Tz%X}<*zDx7*pATR@?n^&|$yqR2^Va|GH47!A zs%0*!sRD-$E**N99cRl4|Opa#Fb_bOP%!l8&Ltre=$t zIn#PBYg_vcb{j6*LXo9ZU{4vMR2mCRQygI9L!pD+s*8kLP3$p4E;T`@&7u>=6WzRB`YUZrv6IL=)zt^(POINCvrwiwF=R$u#dRE28vkOw+M=L1rSn~BhETe6PnF&`s|-Fk)d-Dq z7SdJKxUS}41pO&o^tWf39}}4guXC+dCjK-9hN?{5TdkycRp`2d;2&M8Jti@1-!X}? z`{uQs$%OZv?}zHXq7SyJ1O%06n3(W{+?YyQ9)G1`=xdb|SE!EZODWkDEq*0*{X;xO zhHk2iuZ(>0T4eDi9p*bZIqcZV_-mE%cXZG%M}rBTs}c%PA)_q4ugFua=%WwS3lvWw zp}QO2I=Pt+`J`(OodA}zIkei(2OJs`!!ayXPMkW$QWSutAdl2IR0YMMjrw5= z4*k{%@QsT!0d{>>HHJo?$}$IpPJ96ImB3P9&xG?@?LGPnXHp5f{w0j)1Aa$7+4S>$ zfureXr)j6^)3nn~H{k-KBSTPhH2LD)b#lh4&YE}jQ0u{^WNw0BL>gh3VBT38JXG<3 zCjSYE+4`e+5UZ#F^UgmV@8+Fhz21hcpPpp?>`iR__d*@4-g$JquH=cL!0Met-ey&L z@Q=|R_BP@>J*#r?2eWbC?jL~N|F-OY{IIh7FR=>E?pMFe?jMj}nLO3(esuu5pJ+Tx zINdWhkm*{5rEfU9UmtmoPtVx>n$KmooHqQg6Sr<-VwvuJ-)GpT_`xn6dhh0xi}wq9 z-yHN_4}R~DcxxNIZ=qZ;my{ybXf2I>vr}!j<1F!E|7u!}O#3s<#GM{}q|0OXWM;6O z@D6aTdf0Jh@S|_9XPv93uj;veEA@0R&;(>4wbQb*U*Lko_HN4yGHENklMUWc|K9#V zV4perTLWG8x2!1H-|DpNZ%vV_EM@hWl(8uDn_s)KzGbz``VLgEYLON0k6?27`Zd|_ zu-g^*f^n@Zdb`m7sMXay#C=ofa^GsA-~H~YcE#v>$-9#$(rElcFT^9X3O{KE`YH9J zS$`RHz3g*>xu?8&@2qNHK>e(5@+6tCnEOe23@736Uc5iKM7-?w4M><^-RONz4V$k( z29Js3d&C}>XzE_O2Miq(2ijHdywUZvYfad$*WM3|Kd#gw2(V9Jn z)xFqla=d2eVQr1ntlpA@!H$VxK zT32#ap+Ao7outU4_M;*ef8h;#Q{#y6H@ABB=&$3lTJ3vRRga_k;HwgUPqj zarwx5M8YYVdw;W0=1M5zO>fY>0z^|>y~)G?<@Ie>>svu01K5Je|$eFI|2V`Z;jRe19>*YIGl`K-7lhpT5?(Rc*Sc z0>)7TlYbO1ulgocs34We)4Qju;w#xdFM}EH-c=;)a$Zk2eGg&kpur9A5R~h^JshJu#D-a$3y>Y=(!0~YCl=|a zIgD@=jptZQq#*B|@NZGGU+HZc(ZpI69>HHV-9%EYN0#K&6r`spCd3%stO_c=P5Qm* zU-tKf8h*v=pj3sw)3+?PX<*Gn_U~;vsOEJ3?#GJYina;i#NNI8o-c{K@6ieo;dYXn zlb+VSzhBVW9vhVtnn|ErA25mtuynIQLu~^_uE0Ltg<3h$=*IlW6>QMrTC8OqVgpf= zY7iyW)l_0tdpkS2hlzAG1VnTM4%cnYt=&sPRh%$w^to4_dm;D#?Hl`LkD8hj+tR_59S z6$d?vsaQnaTTFI$`k-r5u~l;bCciSTLQH@{a><`_f6YgsI^Dmnb*yH-jY?UxMdNP;qx?&}1>V@69ZV8^T~~6*AYYVr z89(h0YZxWOPwNDH8t6#;OU-c9rY#))JHxV$qblQn6|j+Ht=(-CiH|=_p?SI6=8?VB zaL-75fUdR~_v)&4ExpGS(q$tLBp;D5NWMOk!M<@fJ3ygVc7Vc)aDW29Vp75l&(@qT z)XMMS)^U%n>CLh86(iR+wN+_^tGlQ*+mx7iP+Jt^Bf~>Ki=Sz0SR?q=JN&fF60BQT zE#p!|F6&XR^u1luNR={`HcCYBFJrG9d3*|YS|D}P583{$L!~9yACX32;0Tn|bq+#S zL+FF#lm@I^>@rQ19|Z);%QR7b4Zlm)%Q#^>!y`AcKHJGS(a*9aE+h5q+~eX{IA;F;H((>jU%PO}KXTo)iF8>gn@PRUGg&nTHs_MqEM zwFI2OCR7jNd8TE8ym#(uwdeFwJX|0?6yJ1>_rQXiaky(l);6-F+pso=AT9j~Seix+VGHcFc}dM8W+PG0KlY$9!0sxHPY+vUsi-ruOwn@@%BV z8>s}tB9d63m(lo7*+?~}u&(6k-EF)_<7ecz^$pi8&6ks4+A3;JG|5hj7JqnIS!I0g zy6v#in$|ipZfT{-M(zu^;r8d!15nY4XB>mkQkfX`T4nLqwQtMKF0mwf$i`vaI6U;t z%J>VBp|3{TpN)L+YBYIuH_p}X6ychw%6*oPN%kF0r2Y0t@&7JAHxp!wtya|na$8p zWGHd{KZy?I=7!fQhqe(g3-~s3?tkS;$-xBf%KdcNe)MH|lv`TFW)ix ztG#UctGzV+8Kq`Yyy~sDM;LIEH;G4d8*2m%chohOyLK#LtTV0%21x2nnoWx4{sXv^}ysTCM773>^&~0RU#mMH=&RQHu<}N;Af9CH;?+h(~Esqi!i~68bNX<2knuj=-xQZ4~ z#1E;-`7VVrNypSY*8BPHicnY6Ujxb_)Tu(2&*w2;auMq6MTdBrue?Z~g9vph7|z7g zY*zJ|c$y28g zCri+~CRufnp`XgF-OMY+o!eajR4eqmH|Q|gb!cI7y!B23&WvoFoxY<-m3#Li7}=Y9 z7#P^;!Qecu{c^-6jo}$CcrUmRXdL~v^SBS-H{q4w364GM8~@m|{2mgzBFi?9JzprV z>jIU|9D6RAhwVPg+GeZ0wdsd$yetF&zwav$(iD|MWqKWua68}EYP+gNsKuyOb2y*h`U?HDrZ^wH@ z&%7TRKfKZDhz>Nqv7e~0H41lo&L}JgGDFgu08y?9T`@`~ruGLN$k(pftFMjSIsB?&4er?s|QxcC74{L79j26_zb1GyD6Nde1HsY}<&)+|tdR zwm0tET)u_e3k!6xu7;6&VuUpYJ=+&Zh1VJdQa@eSE}lWq@9F?|w)xtdGCaeeBiDL& zT)_zh#YJq^`PNa*K^S}7`OAp>gXIQ@V4<91@|q2nd=~=Crj3%@ ztaksh*i^h`r$L{+g5M-R-Iu|e*yCNg&8S3vGgp78;rptW>TsV8;L(Uu$U`*V4F0`^ zubTgCz~7wzOuq>9Axe|EYyZ@R|4e1Pr&c=unYc>+GJO!jUpB(ekMi@Sem?Byt4KAP zR8Cx}a*{tPCv~B6=HXC5O(w?ahi~_viDUdt{mndj`~BYe&x{5>mjt7rGa|LaN?NW0 zPmsCIUaE*MGq)K_pl-Hxixbm#Ix&4-x4=_VS^Q3@F3z_yALd%x!o|64hYH+hkIzLs z5B#hP@%(YGZHedeo_69nfSoADK9>k9YKp7KwL6Blu9H4@#Q*5zbWKsX%b~SX#ulE<4>9VZL$8-P^x;9uE~0l zBka;83)FM$%qC0m6)P=%Ba~E#bC|ftVNF@kHGQ({} z<_uer`GM*|$usniJdS#pzn{GwHGQ`Q8Iymh``xO{=g;D(9rF#c2(&nSI)|CVu~uc8 zduX`eFT+nL5V-^)-~B^dE(4o>HF>Lo_on^q<`Q zqoiR)sQzS?5*= zJWdb*89NjLC&xHv|AIQT`o}g zzp31LqA{;3dTA`=v>lVxtisG-QCq_zb&LWM6RHjnyhnPM}*e4;Dy!HEgIoLhGmA(b(g4CFMH__t^6)5}&RjT)UgNhTOEJ%6ShpgJ-OP zWNxH@F2z6FqE{n-Y~jo0cL|!zezuE1be9V_j20Dm)8{zCu{Ni7DDr|78{aySFq%BS zXuZ1}WIw?@?IXuL_c;P3{S;9kmKWg+i%@rt@`+Oo#Q@m4psi$XkS5Iwb?7o<; z66`63IQAlWyM2Py9DhaoU!PFFm#Mc_Gvn22M%ZyfSrzzr%<#c_E>{n(^meX7w&o|Q zdpP~fasP(zG2*bW*fk1B={-2*Mdj%YIMJdo#J;9zoc*0*f2U&XUdIP^C5vkkn_6JH z9$ur1;0G2JYWvMtnTVYZc|;Sp%#%G|{F?6nOb7dK<0@=#@<&cxISkySa&;x8-2!zr zhkWPlHxKD)iv*#hLrh?LtKhUn~tycqDUg*jO*2KZEN zgp3M|>hi|f=G4>1I5AvoQ@7e(Vhi?{ki&oVEUCzSuhf>F)b~SU#`U^`YRa ziaGW`$%zThbK>;NQhf$r*ykPZjp}%1)Y$@NT-Lo&-G09>{-3i`j{dHB-+6N6HxU=3P&ck_J zl98N>pw(?v9|AoOW8-0h1NQssa!sSd1$8B5nQzdJ;X?bSP~S}P=JQS9n{5mqVf*iM z_tB@FSP-~QJOcqUsVk`7{7Pu(8mh6vDQ$r^-NF5^6$N9y<^;mv8hH1{+b`3N3}nL` zWY_|=shBxj-Z;J}>b-x58#4@0eE?jA=)xfy zt|N5e<|xfOOLc20a(g~sq#jO>sE#Ixvp?<>kJo*~z_#kgRPgz+?-Fb_1Avx z_-6>f4vy#Zw}7)g(CNw3jei#Eciz&Tek`;b!;ajXrqrm8{4>h?+hfK*MUHR*=+t9;$6Wvjx--ti!?$&-I6L!apVsAG3@dK10pIQ@`P+-;(4344#fVdFvA>h z%=AoYv3!BCuaR!5_r-z?$T~WbJNeQMP=K>M;XGdyC~y=Yl7m=-TWleUx9WDs5Lw0w z3{fbC;09Y21ME?$UAnMe?k;NKtutXPiZ)l+iXGyd4pNE3!}F z#`2=m>>~FmdW$`y1ZBn{7iv2e|&d}Wc*}#_6b`%Ntyo@ zC}H!g-cn(X|LYnMsY+Ekq^(4LUd5GPFGN$`v+vAd7{7T23LXwD>N^wxFZ=rwjlY0W zZcdaVO>AS}zArQeY)<6Jl;6e?Pqr^QjLANlzY43i-pU=IiUgGgfFLu7`j-~!ScAYB2*iYuZGeWU>SE~Q|&|7H{P#nBX zVWRW$(%nt5CpM)}7UPAa#8f20*t(MbYMJ$3`Rh0J@JVZ@C&pcCl92A54@vx3#|MpQ#=&981 zgM>wKkZAY$K%Fo1`j{9L8o#PteFh%AGJoX1|e#3d=ZKmn?rpMdq28a=+h7A|52hx zsV3{;RPxJC6KL5VR~&@xfo{79Er;!qSDBbxSlRHdHgg`A=iPaz1g(B!7td4PNlmNT z+n$Y5u0Z@(Sv;($_LT@-YI~`pW#e*Mf1k%jAgABX5|*ZYq)C+YTZ>Zko6;=3)@(mB zBuOFT_w;A)oO+7R8`V=^)}UFF*A$g@Tt6r?ozMQP*uxN1m(a*01JR?vGavWMSL+}N z0VmWX4PB_^aB{5P&9vJe)gT;PUR3Dh*VzX0n-0*_!(NDET5ZQsUdktE8^t2La*t1vBl({TiZ=8rAL_>+y>q3h2==ZVS<)ew*`dW5cT;tQ;`DZF5Z zg5JxTM2K4?^U7q{BANdbp^&wje`yoablGceLMm7|n4krTx{|v;7RI+WA>HHeAU^(z z4AE-5@Y?<#-v}q3AMF&td}(=~Jj_J~i`I3=Sf%~&1-Ja@VA?vO51a3j{T7n(mZ(bP zdm%Q#EN^+crr9|$QM1~npKc+Cpl_{N4Dfxa97YAD&c}!xrye8+UUivSUm>ed zc2d$w=qwoD!(I}M1m6M{Q@!pqxk>zF?!5=$sD38utRVfIWzm|*DPWd#KK3?B=_waD zT3#{N9k1W#eos2_o_)i}SBH`Vd-)hqA!9pIV_QiFbt;@VtbMgAwGs)p?E^&E_s9z| zJO-J@!BgVEhJB!FaKqH0v8hvYYV#iF$DF3N{k%Jd^s(i5F@!?*weW*msu5n>y6aFt zsQyj1UwHR_UvZG-9d-TDC#k3T<(TfFnTwHgX9T~5lTA)mw|aXXAPJiJK+|z+<4xql z1m?%(MQ3GKfoT;&S;q+L~CznOWQ66Yg;c%CbK>esxPPST-0*PhMshi z)6+ndcu-qVqKWD1GHztsg0g|AQ@F-f$3IIwV+ffp@q=Sn;wKzJ|yk-CzFDWRdz zmtEG6jDj61`&Y7SADIGE&7B*5nTPk5?uTSpXAZP7Q#z{i)IHCW^+sFHHN#` zo+&ML_xowIWNFWi60E|I=1+X!p9K_7OE7h9MgJmbLvSkU2wO*S{fbS+q zc32<3*$7=muk2zN4Ddvzt?A?I@3BF!qx$%X4^$~pRE`{VtkcJgFKOhVWWB@wOr^=( zoezY}J>TlAknz=G zpPy|)z+}zO?w!6v^RsWS|IUu}pR{B3%RVQZjX(dpvnLdr_R$FAllv^jp6v4>SSOfrk30*`jZOaBhJYFs^sg z-cEYxW5Q&*xm@4U(9ESW-2YA~twE_>jzRW`ec9K-y|*0;F!%E#tfuBAv`M_T{@c^a z>nHA|4nCC$rK;kK#UN^`_6Q>055lxJ{ghZ>X2HQJWUxVErk&^a(bUaNYbt7b5ncTuzzP5g%q;Fd zUw}2g>~%Smg3;wnusF_IKd^4%akHWl56Yxa{E2UR*AC=*$IC9Ly?D|kT<_ScwrA|x zyvu6}!MM9UVSvfq~%k`0Ee8l+089^fBF`6<3DiGCjggq z?=f6npN>Akt90}U_w28JM}Rk+bUWzq@0Pl$h!cj6NIDRh4NrRY`*wf>EiLL~JFc%= zn)Q^4Z}_t;v`nva`+uJAfS6W3VEtRbn|f0PX5(2+&J8#Bcc$L__=eelbVQ86C|g>7 z=T|_*ZqL#l<#tHU9}92qnHdY3LD6v19gI=j@vQ0H z?NYs%NXAUQ1+>Wg`1Ym{Ov9-ra~M73giDQjorWy%^BVrjyW_}2N0-R3DB~)iaOn~N zdZ9&ZsUWq4>1t~X`8=oB7}SJC4A)_RXSIXJ8+xXT7~afJ@+;w*O8b?HWj+JGdN;v- zf7thHr;F?!6mem!td>j#8~@^0;G@gj*xnTr)nx9N-8BB!$j&_NO;MOJY;$C5DpScr zekE>>+)7`4Q`3Qz+w0$qs6SdP33q(QaJ!yzSrQtO8k+s}l4QUBW1Rt_auPrrNdplt z@lgnpeMfGvcH)lvQd5p_fn6d^!o*h!#`hmB9OX2%)rtgHty}pZt*IN)#`sYSa5N6~ zHeD@@`FdJgkq5}z#ng4M{GX{oojs}@JyhSWUq|oNL4UXXa))LmYsif0a20A zuT?h3xUVRz6#c3c9dXn41YfBpZ>NFk7Au5gLi2CB6_?F3*Xu9NRXgA-^|hX_L;3E2FNWPl zmlY91Wb;VtN}hdPoM;=e)R=!fxUG<2g82dnAEFMKyTui6#$8Y={;4*l)2B6bhK@Iq zutRPG^8+q`A_Um)UY*R&dO~TxTQTxKZI^+CyD1_OA`bR080bWgK9{#b--`pSeZNnz zlD?tc1tfu#kOq*_(%!okOF1)5T2A!JSyt}8qS>T=i^z&6WQCN)+6RQ{XM(D743Qfs zpsk*sr9`7rMSQVN9})?XMABy_DM)Z`mYGf*ByM+eV9sFj5%XVaE~u?)3MU?QR>x{7 z%P_y;0rYRy$;l`4l8$5_`jWFn3<>8A5E2{#b=XrCDn^w)E|2@&iM#GVQneeuz1lo; z8{LvFI!a9Bt+_&IoN4{yyjJZmwQq8r!BB6Co4!gEz+08O!du~&-D*^+70C+(g*L7% zdQHq=J7ru2tZDUkdsi@eDDRzghqj`)#!M>ZUUe#Rg-X-`wOsADEQvtNb4Vnj#i(WJ zi(c>GEjbZqV9jn&Sy%@fLV8LBYT}}8hig|eCy@=qaJ8W~;H5#kIbKrrb{XIe|LJY* zxl#`sSdpRY#e9MYK&<3Du;)1N1qj=uycAaR6J#FOl}e8m}5|mBq_0!{0aC#$4OQo!LbQ znnE-9O+u6YTjJ^ZPa-_md-{*>Dj+=O+CnHKuXnPE zB^F9A96P375G^xhEV^Q z^hDc!;p8mS14tYDDw#W^KLKC&JJQ+3;$Z09LgQR@=dLqlEv8o2)ZA@4ub;GdtVznd?K#lt1UJczZVMmf!UWzU9Z@xL4>YN~(uU%%E(9Ihq3RnzIJO_izx z_8`#hLGz7Y9{^FBsU0WojCD=~XMvrrLQF2a6GuVXjPUWRS4fXFr+#6pN$!}KH*`1V ziqt4k)l@27-hH=FT{5>}w;`Zc^X<qOm+83c@AAZo)2#FK($`hyNvyL087YOi2WkYk# zA{jIDR0gYMh*d&dIZNI4jB*5uLbrjq`<_OJobbHqkRmZft93;i!H(s9Yo(Oi1I1ZL2B#^nS8^=yEcgc_3{XePK zac-5zS8|#z8hV7Kut+pjLa82ClH!+eXK%?6CCUtLZ@A#=< z*MZpyI$cze`}qps`-cKcC$v%62O>F`jzSNTLN=>njY}X#9O|?Fi|C4!8hZ(T8uor(W%8r;dX4XJOx2&u|77=ZURiHrrum z0A`&!Qr=s8qlTXw6fl0x4-pFomNSrwTQzKF+o*Zw_H7&>CMNc+;XuGLIuihfs!@THOX8iA+rMDJRtI;v?W_w-RjQZ3Jla(qj9s#|BR zBmW~rYrOF*`*pU@(XL?$%V=WP^2Aw$uN=OrLNTd7tnF8s=wF#QH;=oI^4oe=#JPaz zdHmDQn5{6C-rGZC@Gwhw!9FTb+TXdChS)Qk+4aLHKT~KS1Kui+f9!qOQ{S)wO1z;e zl_^z5)hbh^Oi;CzAYWiV`i00_Gqhmk$dBT8ZNtMcHOr`TZL8TA8L!bkrl{~;fiEk9 za-Ty{$wYmD5}0Qx^BGc2aqS>A{9x#9$Nq3zZt>tcK_hgx?J3geDRAiK^=1j|Pmdy9 zk^}A{&=I@Yk6{`0+Ie*)*TAJY?Ac=9hd}7C{@XTFBl+T-)H?R78IV5N3N4*s?mvXa zU-O0l>}I)ORfqT3LC(^grD8x>VCii09yXeW(6N(auPsy17Ol_|VUFb;AN8mxKCJ6Vj4`%h{VRRm>uV!-0^#Q4QM zx)L^{04H16g#CQby>aAKzsjk5rKECjsGR8^Qgu(|)V&Exlfw^rj|;Hl!<;`}&!s#s<`Ah{|Fv7lUR@9Hg zM>g{p{#ycI4DTC`*}@9uNC-=7YGC-gYQUeWu!)C(toMF^&EASUbn6DNuWG?5Yv_ z*K)Mz6fBFf!tz99Na8969eOH~*T%NMmvn>Uv&`Gu*e8|FX#eLFJE)`WOjV+C71c?L zuLsmXz31p1SInAv&-XKh-b^t%26s%o!Z2whm0=K$H^o8h z-BxeR%C+VrtLFFM{N{>KLmh317p;xAuIbsEOv!(2%B-JodISr#VN|VDsc}A+z*Ciu) z=Nqov$Xdn)n$jrmc;}v_!32I2hF?3#2LUn+QEw)O@{TDOr2?D0IxFyvVOgr0qBGc4 znoO*tG2A&C1nlK8jvKE{!8(xZxJP^}?(w>v>qgxaZCbC^uDGel>lik0Jm3M9B zV52_}wLUc^z5l%DIb$hYGT z(a&~DMEeNnr^sqlLWg)b>F5G4{0#R_-hFPss;tDEzSW>H6eI@@{lRFh zv^a0Ht3<(aY?N-FgU)>l<9`R~8dBs;tdjeiY_Gr9I8pufRcSOPHj0C!P`C2m& zMDlPuyEHJU{MN%t5j7DXaQIPDAGP7Wa8tK5bDde$ASV;WXwT;dhW#i*`s>Wt{r? z;uK#>Ny15AMCzJ}667|^MKm-5?sRM^?|A$v_6JF-%@xOCWz4aZi5w|6p@)(yR53$h zjb4zd;>tw6EDz0e2yn=DZa4YmmJ9Sp*4~ye4bnFj-<-fTl$QU1n-99x%W*dR8r)>s>AM%BD*jlt*>d-2{83p6cb8BqDXsl zwD`%()e#MYv_wFnA>7kKZQ~>;e)wOu97b{*#TQeV4I(ELRGI2NE?&NP<8krvi@y?M z&7pchVTk1eAv9$3zjNeYmJ%FCKkZ>k@GzB!Kv}2~bHPwaDVTxT!a||%6jHC!R-=TU zGKIltX4BEj985`jh168qE2QSqUZJ2#D}f5tC=du%h`hB!-pY|TIor@KYZxD!PqA^N zT6ffh-)4l$tBcJv#jOD1kQN?0ogRAYTAx3llBRB2HORA1nN^BkHayu47Re3GtS{>C zvY}gHK^~2nNyXnoNbRa`y{8H_D*jZ9x zbS^3*V&I|@CELCyOzSBS68lGVyc_$)+k7{C^YfMCqRAe_yeXYqSF+|Y%~XFVCUmfs zcb^-0u;jQBpy?(2EY3feow??}ItY_YJ;?KWU`8rkXc3d)zX}hf!^~+hQz_wnX?LOc z#bF;S20Q7qrqsV#C+4G<{|b-)<3VSu%uz*tK>NAw8Bckk!EK&$b(MG#>G)jAdk-gaJLdE;Z~l~NOR!@;(m;NO8eS$>nb@r&F_AjX&Wk2Xa)+nC-xR9XZbPwfv!%0bI-u3~ zCi3FE0#I7cMSjVC2ZnrO$eZ}g+V=Qj7rV0x_}pfoJihRT{5`WJIUtzii}ezTyWXmG zy$uj2V`Clfg}i13a1P}9g&`?wnDSnk;B+jzzBDds)FqunU2D6HT zKz}W6fl7gQ<0>awj0Ayb5gnZOTTg*#`Pn^;)O+TbR2k(MG{i)nQ@nD#x0jiRqE08 zTXSzcul=Q=>nt*1$M``mtUSOpGvV&_Z9`yC6o{uH6kSj1-yjgG|0AGeT_AAKeC-cE`~i`}cI67P4i^a6iw+kE+;#~_ z#9a=N5_ilqlHDBamTVEwi3i+X%7@J)0rDOX_-=h5@m^^bMNuqboO~Jm_K|;qfa_5> zIZeCGyn9pF^T~coG~|%9La7XE>pXcGtYn2La>BHCM;|Q*vtH+Z(mPX{mik1TwnQ{# z`a}HrA35vFYDNI+v!JSzttu3*ecP$Zj#Y7H*bdTw^)>V{;=;shQl-9ecvuLDBpx#~ z4dq&vmW727!b{xK)4($%=USH+cz*^p;X*PCy9^O+wHI4jxIMv9F6?Wi97<++xR5#Q(>ur z$N1o-ew?Zlva73!2V>v^?C8t|qm;Pj)85t-aQL5v{m-gM@g5c^o6NoI81`3f_zQ=C z9o4B%RTRHuwpJ+m8ZT57N6MJj)S5twS0Vej5KL9Xt48SAfQeU)sw)|FzYuC$vK+)! zLu>=l5EauKZ|Oyn8R;D*VLb~f>Z+|by5dtbZo@@mR1=CbP?mP8zJ9m}%0l@I8vbIJq}X-rApS z=kR#2XiIv?ztD5L#|QTy?k+Nf>Yw6oS?sE*ihubi&yqWzzTZ2C*b4*btfZF=Zebzi z&U85~;*LYLyxcn@BK)9k2T@CyTB0w2BC61*l6lmmiHuaz$oBX*WeWs=_vaV3F5`Zd zy8|7f3!w&y?R4K79<(O=HQh5A4#?qT9}C z+a9qmyYuRB_v%lN^QwmekV{5Pp*Cr*QIHRgc3Q;kg+`=09g|in%P(fz*@u5}>abY^ zPwsunF~f5nt5wx_C{&Boi)z&Zd@1`k{o~zMJpR+d?0b$RDu~=vSF-=##78b56#);< zC~%QrWk1|?fmGk}fLz&&OU($-?8T*4KOYu`mBiKy+Nv_7?qP< z?%?Zp zjiH7H5R@jR=C7gp1Kg`URAs1sF@MFafQR$&u}57h{c7JB2qS5 zn&?J0TITrq04?*#3oR-qw9K-UGX|Ct{+Lu~Q8}Syf!-$vmh>J@UkAAT8z%rsBzd#? z4*??tAN=fxucz%Sb>OMj)B#2u=W;0Q0-Ve!dY|WD{P-t~7rL?4>aBlvn_~-~N4`{!)xd6+daH8aAdBc5(5MMJ?vp>3Vyd^C%Y|lLP3%j<@xTi46LE~zD){gWRvOy z^9S_P*`I7B+KTYE-_P#0-SGPA-y5>@>n<%0FJyIfGMfU`(#d@4s7t(=uVnfY$Tjh& zxA{I{1b3ccCap*`0)!u-!@KfLeH>_rjM3({<-(id7a|IQFEgOJ5#TSo}-8Q(onQp3dZzEhB)A`8Xm;NSq?SFD1`ky{aDYW;Wg2G|tz&>b6SD)A zb)R(Ojsc={&C!CP&VxKOLgLLPMCpcZ*-Aqbg8Hk2hggS(-s;eh1g>O+9X~mP2Hly; zRAh+86J|2M*<}d~J6@bsXbY0Z6%bEuNJo*6+=YHRjDJPoe$QM%+#GnbW=HX6y^_Q$ zfqHfm<}pKv|NO^{!p)8VIedb&twL`HdPWXO>FGdkvxw=dws8Ec!V0ZlR>a4z`KmLz zCa!e{m1G&kzU&dYZleSUpGrYy$nbUsJ57?a9O3DGECsV9&H_I4O;;Ta(EaH82V4?D z*e-e#U(MV`_wz_&sR_>NIz;r$U9nF)rEr~)xu6}`&uPeh)dn+NTyY8q-D+?D`SrF<{PEP4tx@*6i zGUtduWbs@6`GA)=AHbqx?qSr~#rc4R+;!6l7a&0-;hS&%K(D?utUK?6xs-g4a;~L= z7z6(F+I1!~y;k14>nEBE`jQyu8+QW^>@@%xQv8yCtcOz19LM1Y(t7Zy} zduJan-nM;k^!B&XX$Xc)f3HQcccCrsKH3qzlUnaeTW02m|M-{b%DHc#E8n?2OK)VM zu7j?u{N0v%qtpCw;rQ)T9JlPgrQ$$;58AlhR0z~%%j%5E$f(O(MsFP>$=rwkO`ku$ zEvwHq$93rI(C0IMyJep{+6OIXZ)cZ(KXA(~dk1~7qa9AGu;r_|<&f z)!DmtfvfjF-)>wnTfGh0m{YSCPm+>3HTi+Z1N$TPWxvY?1Ow})$G=X`0dZ0~|Ev?; zxN94QPSmS9Tb8&(0TywFNnLglT;72zH9#FX+?8o(*ANZY%{CUE4GiA@!`|C~MOCK% zU@|G(?{UDwyEIP;wIyxs5j^L9UF zZw9hBJP&epOk4Y9k9qfDrrp2^+9<@D6#cgj{%z^_O^*_N!PD)`r0(k#EAD-SFU$*Q zhD@UuWKOrsdvEM(FJVI6vYw_rqW`?ikF%Bx%AvXoViF?j9$La`-b1?$ooaVF*CVHL zo!$uu8Trn$Ke+vo;;JJfTc^aMD-nbnXvT1j;_0+b&Y%^;em$++jI=WmR2L z2&T;OI@G~ji}&=YR-DMkq*9rkRm#n}ONA+;H!#E9+HQ397d#<^Tr`BK|8P6_di#Si zPs~?x3|F!^VnR*C0$)jh6&0k2o7VdwEUmW}YR>;1=rpTxMixw!>3M~`g}HxnTxG73 zU^AR3t`u{oZosSwh1-lf>P+9IEi649K4bbj+QQrLgZ)SoN?1azHrJ3s#Djzjz|-_O zgZMXvSh}&Ea-f2mV*x$qP$RF3w>;_GK_61)NomIa;+57XVAR6x&#XJMWL)xf^X|UY zJU?H)3dqcKFG!A=rIm962rE`7QI219b?Z=KlBZWm zM{Z@z*4F%kS9)fbeeW8Yxw+&O;2_$nEn6=sLps~@AQ76aKUjg3?-x?n{cE&Vehe*& zd=ne4vw7N3VPe4mG~OzgfW`wAa|ZwwzZPj_FA>Sp!BZ7^OSBr64x*0;;W2rJuO8ny>sP^2)JrB=;#({DOJNL1FN+<17X{FtfhkHju9)qC-xfPiLWYAnkPxl>d@v>~Fy}Y0 zBv21Q;%627=-2GKPRaJ(^9zC%b-D8_U?#h0fbT_QnNx|xmE8aN>owf}`72uZE9Egr z5|T{JS(1=urY%fmAWcj$A2F38Pi*v*C+7U|B&L{;m}0;SV5(tJkR*%Vlr23w(?l2}_jj5(?CpJoAL`;D>K09r+D22renVN12(Ey#xIru9 z+)FTu+yE(k6BMdDu! z3GkD}7?z&Eci(0zENtMEd6pxXXL+(+=kw55aOY>5X{+;vNVD_I$Ihz*g@}hG>GjD4 zc(U`%$Ich?=^gy)hM>-40MSv??LC`4x8ivz_sFt=rV@kwgBt6erB8{|C-;IHv-sdy zpd%a~q<+_VJ|O)Os=Pf;Rsn`!oYb0W3n%qR6DQ0^oYcq@N?V?oLcxcatTz_jA^#M3T!hdKa)I>_MRsi3#f=C*K~wO|GTl#{ zS;j@odomC0LTC-&2cS-liVFi5N&G*LUX1KcuL@Q^pMFgZ%E3{vCJrZzI8)|_m)#x0 z^K>nx9SG-n8kZ{1vz?X0&SVQP^A=q;nX5mjJkrU^BMo?>@zMw)mM3G(gCoL5rSs#~ zwSa}rCmnu_CHCV1=kuz!VYjYWEY2riiSsF0c$FXa2|{~IymIT>XOF|{Jo0<2M{dPX-HG7}`_9jB%iA4JHm6j%r>t%GaspsfK4fmCr*;n7 zX9YS_c>^Bh$|o$2QV3I8+#H|Z@olHY)|lA&yrEfs2XGjX<%>hGeBLmOwElT#2!1d3 zMB?`r$NvbwCrKlU-+P1KH5tDy%Ly?3&tz>gI*~W_x@|+af2d5j-mth{@^o^@)!Lda zY}$rS+rI8JouIHK%$2^w=+{5&9v7py^EC#Ir0T(;oZs6Ra?a}OvnfG1Un^{mMQl97 zc)7#K@2t)E;UAndP=z3s!7eeiJnO*Z`9Fx2^k!~H_@a`tEnlduPURnh$(^1FNltI? zZ@}R~A7}cdiACKqxxE%{*(=DA?Qz6pb8*4VcbO$rLvGgy+$B+f`Vljj>dw|b2$-iW z`k^~-_0MXO}V(({!l~ChL+#u4%&pE$Y#5!D;%eFYQm%>l=Sw35g{*|>lLDq!SN#D7$oOIkK^E)Y{s-^?cRJ_#(odI2^-oQ zpmeJ7KCosijg>OH z6MBGA|3#;}-%d{%uAnAWw3<__`J3OPd0PYJcF33Qn&t4U;%t<|Q`w9MuCr1z&K0uz zir3%#9m9SnCz^S=C8n=9H>swHa|YF62C18C;3b}Z-AaxWF^v34muPQH?PlJOKBwf! z>>^(4Y^uQh&jfIT231R|q@~nPyyMOT0~24VJFuu2#h#1qiw9d8SNvJ+oE24C_AgOUx!kKEQ~y!IRw2d_Afe){Bqq@J zJX8pqOKc;BtE?^+q{cStmEFG6995XW?$IMlH?@g$h9TbDEFCa7xyYbY?pM^F>ZATlPg!H8AIr#1i zSQ-3DDHLP^Rp37!-Q9U;-EZ<5WbDFRj=$#4N^{dqFeWn4^I%NmnQ03XGYJ_WWIkfT zAy0^^JaG~kPhx`kh=~He_a;2{Xb>hCAgk>L%ZCyI8!S!p!}+13Z*)@VP8%pfcg`WQ zL_4ATq@mMDvW#pg+J)|$@d^yUr+3L3SV+!nzs%!55P~JIlJ+e(rJeT@(rcl~5JPly zO~~=Vrqh5^B54t7r5I)=8q?H*IFV@(r$ z!@VsqC9?Zny%GA1g=+UEJWQ}*%OB1-wNq$%=D#7(G~(0WN+ugkAH5z5O^}ae*x~=1 z5%t`1LDUoLfv7#MpvC`~U{nPy9Aqsxo(X*IqE0Rx-2Zb3%p`n5%={JxGQM0ET5yc5 zA9otdIJ0M5eKBse`glBguQxgM4aQ`o@pS6DWPi^(e1V+&+#jPV?|@%FPmeO{;L>Js zM79(7pN{Vm{C1}iFC}*x6?kQIMS}b@pXI4e;mmR#u!g<|AdRPc0JZ8S=fUZ!MVc04 zFBAtxO_iJ|M0v~&o}`s=y@BUrDBoCw9e)Q1TQv()Vk%0ebE@ja{SJ5k+-1L^>HW$evXkg7~|GgN0wb z!(aGMI+i+{!6U*cpIRJZF}KAjKJGGTgHYq;lL!IA7ZN}fok+p@3B#Q#n)|P^7V!x) z^){HoA{aqe(+L&=#@!ACJaRn|fEeD0jx3zZVkXq=4sC#ju2`fKpD?VBWG^S=43ZR!ID}B4Q>-*1a6yNHd>YYW7!zsvx$R*;m216=)=s z+*qo_Dy-U|7#l0!u_a&~s38nhkA4{^RjF;4d(D>={tCIcz`j&qtgEL4Ht;P*9`})K zmkal^ZbgLGt^VS`;Fv>YrzMN#7#X{=J|qp&w`vPF@JH&_;4$*n+-MGyyGT{TdC=NB z;Fa2;QEwtE_NQ*$jz|s`E&RRRN2a@Cu_xT$b>vpGkJTgM7wn_&-5xpVyXIX=&QL1X+-HVW zlR{(={@#Ik&XO}2YG9}F=CvQn{GH0Y2Rmfg8!{Jrql&0qTa*~4B~}K$Pxg+gb8Oh# z6*0by-)B&~&3uq%wb%TrB)*fn^s6wG9altYkeM)5@nwmKz)IY*XK0phjpxt9>GX3Q z`sGOueHu!2lTw(Ey*AN*3NGC+HZub*5Lhl~H$MFdcf@#O3rAxde(5brS&9zeemYc2 z9>%B{F5CKfY+nxZrU@pwwZMZK<9LM-pC&-{&~JQ|{aBeIcBb!Vi9f zV^L>BLrGK`^Px5={Y{`T>9IoS0=X1~sSp@svqZdy-LFtP0uJ}p%7(=dYQ*Oi=&?{Q z&(#u0iV_@yG*rV^s5sMo7*_BRyfFN4*#bf{AFqEp=mg<{LKt#?3+ITC0@y9qQ7WNjPavv8v zHTrKspZA)dIrYjKNI*;L86Wk4x<^EZJWl<$ZKH^>F6>5paIc63!Xo*QzgY&b*c2tt z)zY_)>ys~=C3z(9J(HV%8)+{;7o_buy*+97-8KiLJ&!|a_M`)8rCR|AhM4{EUq?C? zP>w*y8eo~Quj11i`!%i=F@rp@PNUy;MMlXE&?Osqlf`iI0B?jfEpA0u$dgolB(OzG zi_r7fl1MUIu9lWnI4{a&BGT@)ve8H4n;-PYakhYRno+U3jVb5+#`6K$wCpi&D6I=N z=IbP3DiKCn{K6tUf|gLrvGU{T3afTy?OB53lXYuteIa|$Y^8B#r84+UtQz>}VDN=M z-A8Pz{~$8b>fZyKPY6n+pfx8>es62`6@O#>Y~iOswb=f5`6GhuAE|8r>ounBC;m3H zvHqHE{jpvS_#)c>QIH_Z{!^N4`#(;75c@wyK3Mjjcg>@Se92H>Ec>5_B-Ncmp73Jv z{B8C>AK?E6`+u@&|EC4)KaD@UT(EO3xe~phLAK79ao$MYgG>3ojr|v?GQYR8|4K)S z{hv!w4PpP;bvDatjpv89v;R^m*#0wv*ngtk_|z}{@ER<#T}1xQ60w5 zx#`1_U7zOY$;tkm9fJ4Zg^Hgf$S&Ov!#FoNgT^QWOSHpG#~yL+hv0r^*Jw+D#3IE_ zDh#Qt!YlB|^?6TIUpSHXFivmbo4yTEoQ4(UX=_%|smbzA{13J@$K2U1!+mU|D-P?2 zwIdJuCt9^yFGjBeOGI&XQO&ja)a8jZR|RBNWO52^5U}lhyPeUK?Ff=(wr(nD$F#3_WKu zF0qM?BXa=b8Nj#$fiOWspex>}?`BdI{fzfLCE=17AE_C?RD7f->C%<#ucU11D^*l9 zuX@6eaMqe8tqPybMM%WI7z%W_4<~4g4)U{iRXz*D{Kw(h=KhZ8k)~x=AwN5O-kY<4uR7?#mV#%-8_-1X%(!8u9muC)mo?W?DCNvY+t`FB%{KFK6u==pZ5{J*>L?23 zoZbOltGTc4bQOAFEWYJ>A8laM`X+Errv5p`G?;S3`hTvzJ6r!UTlX8YjxjoxLI&Jo zIrY0F`2iF*PyL$F2dLBP@z#z)@F(4zDJ5{??aHatdE!lD#sGO~DQoeB5wBtrJ!NLo zx);TdJSfMAW&Y_2$pA+hPvf#`WvnH44Y|6XF!HXEjs9CJ1C4cKV{L17O%N}IwSmMd z@I>nm2Uq^%6RL841CG@<)iWyc8Yzmnv^p0d^OIuVkuWZ)Q1+cDwfbtFqx8l;d-d7o{MNc_l|EK@i$lkVGLfPYb0|eH z2Cy2eq|N*}--v&aOs>P`JC%diS+a9-71@7g+ZC|?s36IY<=x^W7T_E7e?H11#r`uA zQE(v3j7G|#DMlrmC{@@m7l;KRRn{4gK2E%<1zEKLGuw3=&KxyUb9i16N8CCkrov67 zAJGL4y>>6;Sei*$c^??4M zlL_!Zz0?5zO|5zKdlVCm+BJ$+WKWOIoO)avj9s=T1jZ1G?y4am5}w=7wu}`OS_STU zHjYMNZb4wE37I5 zme2o&RbjiQ)IX?Q{XAvf^lh^$}9bEwX3jQGF1Jzg?y_qA$0w~Ngrchl!+4o zfJo`%U(>E)GpX$B5Tc`Pd_q_a49lF!8T1Bz2jt9zxqTTL1?Ki*L+bvC1+p~!kPR#2WR;i?%LpvUDl0D zqY_R;McilAZS#Z+qY*~UoA676dV{J*M@y~JQU6Ku8~20u47_9%pb!oGfenCHR47F; zr#7!BSLv?Sj}#9E7)D$r!oN(+Y-r@;E$wdwLToDg+dU6WmF#bUNu~X5<`ec;p0Ekr zvBr@dH>`1}mV_sjY6_m*FOnwT5%U<&k-MN~sgs@F>M;;!E?v7p8>~Q3hOLdtS?QJB z^rMyaN028Z)Mdjva#ces$QNih9#7zX1uaUh_nuz^^A|a#t$)xKFU_)86l= z?wB&Z8Guzkd?r9y`pkU(CJ@M)#@_@4zY#63XP_=Zi&Y^+Q3ee2j6j4q($`6X{E7?Rb<7U;{t9Y<@{u}$_o9Vk5>5{WF-en3 zT1?W6B$P4{sO)MeT-%O zJ8}{s1<{3*2rYhtlWJ$Mx_Gh|QG%B#(63xA#DaqI6OCN6wkA~rcqheV9^hQtt%RAl~}BEow_?3mOpG;|T)3kMES<%McXj%q!)R+%v<-@I%vq ztvQu0f!szv&RDDPEDHUgUw`zT5VIu!m&gmi*$ku_D;G}IqUvZ?8G^cQSHHkqeVkUjZ9T2zP?(M+RUxlOtitrnEMZAT{R)$nU zou;`pS;IIV9Krn)lydVNRhnxuc%qIKKs^}f4u!rzx>W~6JDxTXZ5(Xm9EtjdI;05n z8H-qT+E74y^75<(C{pTA-*_QiyjJ=^hOn)X^H30l;?cTr>`4bBQRw4KL7~DaLLr&G zikIHTp)VgQ4I&$Bc&;S~9<%3^*&U5I8ZXWg6?Y*0p6?M^3c&JP>kY z@yU^(tO=A41LY)??*L_ALfL_p?oS& zpd1ti%D(JnC-l#QhLl>T}2$zc7{ z*w9x0-28w!eIn+R;wbDr>ZeEuIp_dF9=u!-GB6k+K?*230E)%lI4Rjd0eSjGRzPd7 zBu0Ll0=f`&+BgbQK&@MWCW#;G9qC+-3WFPXPY1e|dSPFx-k63*h^+cIUrX`SXVwQTo@P>u~g*sQ6}R9qDfvkFl>%cED~YZlnI z78O-iI@Kf;*NpPnWa*nVbVKgF!;Z{zxpDS19%>yig@}}(JkqSb(1^vrYXE10{l$2w7(E;2&7`#Ep(xgdtqljK9vBp56ph2G zwAF7bK+k1Y5WsN9q&J*MfEa7h4A7(MUC3qw0eY}AfgtKdR)C(vd8`z(rs@tQhdwF} zOJRVHw#JwXEYTz28R^w{f@muV9OCya#th%^$rx?mT?6u>2tSE&m8?7~9ect`jBUFy z8@|U&({cD^dl`RL&C`Jk!~H$b1%4*==>=m%w+6gR=eTtISgZI->4Q@*2y%$oD`Okb z0uf&+lb2Z)1*0%bKY25F|6_u6BzvAjf(mf%+S`LU*S-{h*Z^ZxfHz4qB2mQ!!icXH zHDOxeO_?kOAG4=6ue^YH?aeW`T-Wp*IdBy`01Jc|L?$vU{F4b;Id?&_UM^b*I z9L?P;6-2U6y+eW7umNE1MOYqlsZuM?8qI_RtB1h^VXwS}3u@1(89<~5FXHBO%+Dl2 zAKUC=vz`eaSdSd(D@WamQM#gH*7r?$C=|Zzi-f}4e+LxynkXpj9|naBoX2C76HbVP z!Eu4|VHoATo*@|JZ?(YS6KNKdqelspGX6bU77EgLaiMj1E5G<+Kze4jKniOUl356b72se*hQ(7`3Vuh{9r7=EVx9#lwD^bz-(|FkC-=Nk4JbYs{-Z25OWC1cOd40 z^?>r|Fbm2bA+3aRdPyiK2Y(ZZnENgQlnXNjO5FM$l4TD}0+gMQ&-vI?5gyi+tR30rQFp_6+20< z26vcSCLZ%g*_eAT-vw+zze7Y`gH9k;W8FbmwMAsdSCO##U^=imEJLsgr#mE8mru0u z5k?W56B`MiGXmwq@Qyzw1U}cS1wP-#JrD}YZ=ezYrRewmvc7H3@7j=l^JOGRpC1EA zFZrE7+BXcOuV#0Sf5xJ};rVASYl+A|N4tiAck`QocSmXm{<+ol{|o;-1ik=fp?jW& z79#(=druJm*t+L|y^*kb#f8A?{_%p;(z4GsMS}Fk3jk>s1u6ETg_M*#CUlN}xc?zM{|sX- z5&35w%6EWw(HnsGfg$7{Ga%p*T=)YLpQM#G;}=Q%<$M6{jXk;$XEZMu7j#Awhps|G zRDB8i5_$e+c&OgAP3V!;1aY?Vm-A}lee zL|KBPtte>AioZ#qcAPhvuvGRXt;a|Epb^!l@xm;Dd&1wjz=rdAW5W(*U(U3VZ!>F$ z^|i6ss}Y`la|2a`;n$SfUCBHtM6P(El)4Z$sxStTwxKw^inXn27n2q_YyJ7D&&tAW{T zl0`Zh`pb(Drs*AWs@_jts(ATE` z7~fz60*z0 zCZiBpI?4yz7hwX@26luNW@R$Fig{>Sn3Vz}5~DFGo%vFFRHd(fHz55; zs#f+nv3~@ydw7|&h2u)WZxuALH4LN~2YyFSKxxRoBmF1YIy8#NOh1aPLl%BV4?+%X z9XbtP)YhSAh~JwrNkaVAq7~vdMV?FK_*oEspI7+(^+Diw%z0t)yK;<;pD_3xdr0Az z?O6EDP``oSxqB!1TkTCueCI1uBmk-I3gvImjC zk#Md{aRYw~T5@=5)MUR}9P+HVgEd}c1KkyWWmE=$#L^(e}9x$ywp zQc zVRXtxY{)l@F{Fl|DLv3be^cof|;!x^BR#Eb{%d zBP+pKKI8+Xt`Hvh&ca^@-~dtXr$pe2*_Tx77Kevk|}3(gTZG;nLHQ0) z9(Wc|9)%ALC}XtJU-~O3r~fGkN;q|jnuE7TqUOG{0Oi7=0_CVM)I5*|C_6E}oc}{4 zSXZ)^h~vw#DBl6rZiH0>tel?!utQ8>Z@noLuw%^Iuv@4^p!|tdj2$@T0M5G zssNi72H4m@H^a#D!~cl{=DQ<~2j*0i?*Qh&X8>jjPPQm0|8SZjX+=ROD5tz1iKP7q z<;y7oS2{X4y$efbz?;1$tEkL-`J{&Uq5B-qy#K&wVg5GXFC> z6tGoWBa!s#fdKZug9X?TVSt@I%qB?~lK%W%BrpdD%7;<8t5LoKnD>Uxzi=~1{_VWW@2r#Rj0GLl=x=w*P z8J3j9j1CFrds`xb=^X$tQ<8<4gTsJXHS~DI9D-hkpA*jyln+D9eMSf3nnA#Xh)ie6u+cl+T|IC@(onpd20s%2!i6C!b@{*YL2;Wi1iy=h1y3 zVBP$8z`6sgnWp`G9yW%+o_l>LU|SGXkRzke%4ltW0DI+`0_?eAfPFW`?q(SIoQiIS z2eUj-J`73wg#z=7*rk{p@2HIO5%Vy-e4dsFU|&B& zfW(9JONx%#U}V1AQ)JTQw;z5|%QdlXXA*L3xLHQFUl7 zH0l&UxnqDpd0rSOe>Oa zxLS_G<3C8El8K`3YcZo5<&Ry9Q5YABFM?b<(;Ho}Ir<0wIQ)4N?{SySqnvNOJF%-) z{s4YeJe>R_UL!n4KFZ;qFa%yv`*YG78S<8cIV^t2iqD4B-S%dB@2d^S&j68qS2m*4 z2o#us>f}eB^=?&WAad;&yMzNMu#FNxekOO!gUtR1_W2( z2@J~bYU?+cItqXW-4I#L+T%;cAS)YLrIHRaS&JlfB6G?5mpl=FMV=r8o?uq2Sl|bb zD%J6WzAr~dpy1W2F9`k7tYR2e!QCPfocgD7qfcGtoABz9f2VQ#+l}I)koJ_{=syI> zue~$uz4ejg*V`BJn{ukiFOGqPl;5g>ww4Jaze7OH@Xk_xpnMql-S>G2`F-^-kY9SZ zP{xqosj#%}n$RM<7@{6ZWS;|OmB=o~FNkcl&^}0Hjk&`*DXz0tnBp3bszi8_tRHFk z0gn1_krLMwCc#a7Jwa%Nn=$y#V;!goBd*jRBC?h6o!W`43$KnRvTA<$KO(jdzZFt! zpPw5}Y$q5>Y^A3nw$%ejcSM<+l!gN}kXohR8kOXxfii6*SDmj4lHUceJ(m0u@sQsN z6r%hRhZLQBGtEYsE-=$X9n;0qNbHSGkl%$TEBU=oXxRIeR|E1ZeF4VDAUlLXu%BW5 z?kK;7tUVyVZk4p;w-QOpFLP0TdEAMlV>WISsK8U?ml-L)Rs3Mfuk)Oh1Cg<|4k)18SC%hR+em^)7@>`G~@_TX^`EBTbJo&wGPbB%R3X~5cze7;IgZ(}5 z09H=)Z#(Skg>AvP&@BBs3szrOgv>P8_7R`WZ=3AB_+@YC`v?iF599vQY^_|al9-_| ztBh_W#0ti1smw|LSX-O{!=8&D3y1MX>c_eI4>^ZE&)M)R?tl9(H+m0(z%cgpF8>S! zy%tyX#7M;=XEbO%2%bPlX=2X3;D0JS}oHgcEm#WyH8 z4PZC@Fr%6^Qzs9I3~2g!w?xcvCeg71f5bE5oyPyMlIe?aOy6U$|x>wEw>%_y3ma zQE}IFiLln5>q0ZnMwm5W*56d-H}XZm5yp#)Egj{KeQMrq`PngQ(l1F@iuG zgwJSrF`RCp_+Z(!08iSst(OLbFtBa(FE1;@Vnb#)%4Br{w*V8>zdngdDlhHgmc9&?LNm3q16wQ0F5zTW>rSBKS z=d(h3vQNefsKWOx-~L8SI`syp?lWHa2+kj#XUY>d-};P4%vTzom>Vz_tEWRh0RQMi z^=_X1&M@$*QsNBqCfaz3$*d#taz;f_atfl)C#Pj0%;Ol@UuhhDi4Y_HrGo)5B}}si zc^TC(h2ac&3ILgX#D9n=gih}b$(1Vj;55ufBKTmlkaeYsZHM542GizdA&=aLl7l;O zQ-8D_uv%om{ewf^o1vPAy{Ib&UevpxNKWR@Ip&AaJVS3l&O+9L)RPu+-| z?=XYEC;w)yMMt7sBeFfG_ps+bGE0tLch_|{xlTnXCrceJa`krC48s^B8pSvG`()$# zmtN={8pI(xq_`z&1#05PziK?QDzcITV}DA=2$z7hRo9W9EsFAgFPYt$OvWeWh5qQfI!f9oC5ISuR zUVxYO!00w6)+cwz1NbSLX0f!#t;QBASfr8!_#eCS8xgX#sU>WxVFv`7kf9}>C zTnyyuGYPyNOL|S`xogrOo>2&Yi0J`RR9`g{8ie$% zMk-5p-+&};PB%Z>bbLc*5QI)P)q=?-#F~uZj}U7Nf3&;IfqFzMzYXm8!FA&J~K$NsXYiI6@l?;mNJV}5>}6K|9W{} zNt?&)VwtdnSvZ3b8yC#`t(;*zJwfqBEy`0AXVQ!mcVG&j8=nJAu|G$c;+xBcnD9-H z5zdGqXUtTbF(bKHvBmbDHe0Y6vIVX>-a@uun)=ab+!~5C$`>7%H7W~$V<=6TH-gfv zMvd6u%IPC3TFy0aOo9UCG{1mptxNyA3-)lm(#2MwoWau3aJ!MKw$KD)H}X3Sl!F`8 zAdqa$sk_;@9V=%`R?j%_43ycpo~7e=_5kpexa+|?`r8|Z0*Rw~!j5=*??%GNu0xgH z*fVkv2(Ygi2qTFPWYW&b0F$mS4hXBUNv*+IQD8E)Imz&5=%$uHr?*V-)jIx&c zzPIZ_nvGQ`O1B^%lyusB_2*Rb72cvsyfx3q00d@7;AE_$GGd_^HpWZ_&WuIRD`%`p zYDC~vW@V4OvHpv&S9(qtZhf`xbBPD(^K_oG`8ni#W%)W;?g@H z_8!s~Y_(pgTaUT z3<66Qkx)ua$Y%`N{81~{!rZ`o79`XG?0-KI3}Zy$zH`3gg%DU%LD-}Ls~1E@=;~*W zk5Ehai@M9jbeL1yidS(^IZ;JjOSi`0un!}P`<_02RZh4o8z9-Zp9_DPdJRwGT>QaW z97AM1E$=rN{qYoMHp$3)24BIcNxnr0(x{wK`k!^m|NJlIy<~q4y2Iet!tL-s_!HMJ~g?Rmbe-T zcH{O!C$!+znVqr00?EsfAgC)7y&|UvB5cm)mji<+$xwCTYg~ zpE06;dGqCV-v8N`eMBR*D5LD_$*|vASrmqHxRyx>iz{U<^o67psiUoVi^O7N_iRwZ zxF}Byywkp&Vg(v7o*Ars^(^W_HmR54joiqFu^E)K$<-yB$n4O_ zaHNg%o>bBi=Q9uw-WsY=KB|>`$W5~)`p} zAxBYiv8P7HB@2?L+9#K?;E^l0)(NT=NZdXSOYT0OOh?ZWq$%X`Heg|E>avOit-Lqb zzY-3Rx*YG`721~cxnh}jv7PUg=h#UFYc)m6; z3$2U|+y3732)6)}1&=57olNiP7+?bj3I(d710n zwi$q|!gYV3#G1D@@#F}6oD?>TvBQuM>g&Z>}kdI5(~Nu!}`Y(MFG$3l%gx- zJ+Dz+^b?#zszYKF(+zR-e=$tI?v9J__s@4B&|s|h$w5&g8;#9AdLa-1)+Pkd-{Yk| zK3P=Z2dkbeBxYpe%&c~3cjlp;Sy+9k^Sw<9c!I-7Iz46>$=^rkrth4Gaknx6*hm8- zVrknQPrw5j`dtVQD5iBb9J_EH&|T}P{y$Yc#?{v*j5)l?&1&Z%e%pY48|I1 z^nub!$G>olHFtCBF=DaDzhOjj$cdB-oG$9s&SWqd8dmi3$ypl1nFl8J3NkUQayl1*e9s9H52p;SSw z;87`NoP>?P(9}&9fD|XnpRs0$Qc_X?sCDC|is5L)IY}1am9i#a?4AntI%&As zfMV@ln9)W2e`$Sca@^*u0nJ*k3zwku*pnYny{Ib0ubio_L~Mt z<2ng>;yMXDIbF_tq;LzL-r@aM4TYyROx+&FSVyK#%<}d-$*F$@vKtpXBuen*38DmR zTc8Bbx^5@jlI_@sM4nX0S-=T1HC|!$#Ab08gf5>~H&@~f*Z)fpw>~QBzHFy=TC@|Y z16NpnXz7bDmP210`G)#J)k;ajT_UQqh(D^FGf~gVJLVe!EsaXL*p+l)o8Hlnv69!1 zS4n0`ZB$fiYqq{Ib3;qd%#xR?9{iR zL|*<$dAGo#x|ms^l@~Lgb%bgNgD({|!lB0_#sF_fS7~E)%}1@k&rIUc!e23Z|I6*^ zQD8BP=R&a>bP2{gKdrMS?Tvy*Op^xu`o|H@!+#SeER@ z3*#T4xXERxg^_v5f$=EJn9Itx!i@*dIgyRK=@@)@74rdGtirukLW>sVf&tATh;dR% zk0_hb%<9bSP*Tzg2M4H?P6b;LEz8=0a;d%iU{QZe1z^wUMTy&T z%Nt#Pa+J3g&Bn)pu4|p1hunf=*~99b^%O^(x#?eO3%|r!klfTS89$o}GUw2qoDD|+ z;YYMS@&*&u3piojZyYA9k6fI>Wfp%|QpSWy5?R>)cR$d|2!dsIqbAR*#b^U|W+l<@ zS-1cx-Z#8LaDRU-C&|G`d4iOO>LmHFx;wpfVIeX*J&(z_*z*)gk_E((#k2GmSZ{9X zXW7wTWvBYH^v9%TZuMC|CRr)*x>1mOJZ^B5IK0b-q+QL=DSG6-dtnR+)B4l~!F#L;;wRAI&~_ z7b+J??SWl45VaZ;&fw@pi9GABMcpHJ!3DqMz-+`*@!iC_0|isqwC8@}pDkA5tMX48 zG0$iMo3@2)lfn3h(7WtdfgWre-a*fm=(~lG_F7V3qW1eeI_ffxYtc7vUjw_hkCIBH_PYnuE@`jrs&m3&(;fd zDgTwM%p2P>1d}lH_AA24JHSc|(gmX>Rcl#}L2$^h1)r5f?=Br*4@Qb|#bPE2OELNu zhBS^DA>?6Rr#EK0 z)7!hgAU*0b-MJYvK~pz#CTO#o37RAw>4{0A&CR}(&~Ib&%UHwjA*hla6vV%(v(6aW z4ctn##7;n=3cx^4g+j&&-h!(|&-|36^R9U(kfy7NE_##z|u&MC2rrDIsk z&N|SHiw$LdV;%Pg=$}xig&Kf3g^)r|vmb1|mYtq=n$j1N3Drv`N*_M@24H9oPCQF1 zqvFD^lp;9eIG};}JMrPm(f|1pLvCa>UXx`CrH|U|Z|tj;^+Ox(!--n?cp+I08QBrI zl~1waj=;RAaW?iq+CBe6P|a%eXPoU->l=#UF+@cJKme65_`QPsUg{%>;r-zgyg~dD z)y!3nLqCwdqGnhSY9?rvgKvyQvgslms|Qn3pn_zu*gYgMH-8Jf3~Fdc zOco0wCTUC0MbrcosHHZjA;J-P{r(^#!z%1B=Kqt*&{Q%fMnX{y#wB*n8=!KSpxa>_ z!UYs2g`vJy5IF!Z!|a~}{ULth_{8mqnJgDCAF(rjr*U`2_Eu~yD0g738($Qkn8nRv zK(*8g(U988ce(n!)eG%_Er)rAM)~f=Z}A|SSg&3Ghlszl9(u&vyJ$&Bzw@O@@H;W+ z=;(KzwT6CY+ip-arG5S1oYqi%wfY8yUB?~)5vvGkd8_NhH`zzbTvgmZG|E3M&_T|| z;`&w2Z_i&R{rkuhvVSLr?O*BZ=pQBz^es|t9Q3~YNTjDk;eAil-(S^VWY*7o)GP6P z0s`qOKw#I6AJ$4=9A;is6(p8sWz1 z@!7o(HV_?P(0X~+qczeP-$_&B$UO6)Q4^{X5ID&yKcc`9q=Bjz8*SJTq+6tYyythc zYZtJn-v+8v6;yZJ9}>f7bOTg!#LOIVSR)W)kO@_bbX(mYipJGY8M9D$4Ny39gZ&>S z46CfJ*IGa7tv*XFn7lC4)L@hn`3@LZKu!q8@_ApA=^qB2FFIX}8qNn|e;0A3VR4`a zxtS&gn65L^#0=9seE`y(yb^OfBfs2^=yq$3*-)Z`S%{t0`bc@UuJy@?=WF%|zmxn! zh}#OGDK>s1xfyLme74nbzj3b3?h(`+X1f=Rnq4gVL!;Ue(C;@#EPDzer zM{vJpKw5F`DuL&&tT(bhW!bYzKM5~+DpQC?PfwgblEZ_nHE{T7x;S>XM76>Z4lyFC z1t@AnG_gChmp69c3xMRby>v7}j)<1-Ll@OmOLc;V!Z^8KUUoL|4ejG|?B8m0L{yl> z-)cluh!K%9P(z}s!5$Hz2;La|&GG`6UO2|~1@uA$F6|X4pQOsC$%qO#LNhGiDEL_| zrbsWuh-$Trs4^-FLl3D|t05I4t_d|qADuy~j!9FgUJa>O38xNV-!l$wjxI_p{q`6G zd~zy_nw%3{4o{a>470#`EC@kp!4qhdYTJ*#^cE)+ecC^`6=A1Sf5&)s1+lhVu>&TM z%NLWJU->9WokVOfU0|k(C8mp|=GY6Khkm=_bLzJ}U(Lp+@^0uF3$pX3 zj$>~u9mgJ0$5F#c?|7OLb)l3xO=Ur#0;iXSq(Ideb3V&rEsGMy zdoO|lP>6)YA?Hq0*kjkFJavOq*FaztSxMoF~MHb)pn5^#rveEFWfI6}? zB&auE9L9yx#J_1=Nsfb`BDb0lIA0QmoH&R8RRI0jANnf`LjEu@?_H>T1r-GpTL+!` zUSs#oCL_kfs7ddVtRHD~0K5rfip~Kp;Q=!VO7itt!i#WTB+L5bX5zaY4`$(20IBOm z6D#}5rpRB3@D0gEtcB?mGtCy5mU%ssXr8JiaS)%1O8mu0!cF1utSZLCJML7+tXBBG z+QM-t=$Q4PEdYGE_;kKZ{WJ$|+o3NU8(I;T;D|LpRNB%-EB~JC`bNK#=ad|oai&(j z63MmnTCo5UGakwklicMwq_GOm03H=|>U9{uH1BCGZ@f=-QH5kJK}-M(rS6oy;xf$)HAP=5JGw4sR$UPOwrdL~0>?SCHaODjw8f+GJHW!JnBaTQ zo*%1oM7J0{R|z-Ia);#RgXe>r(HV4DO+ed%+xG<}xYAV-+}pl@;A-Ws2@Dio7(sFw z=hk2s`I80_ghCYUJ8q&u;djoKXXL!_fDW!#PnOMD6Vpt|fG9fhyh-^)>?*$t=ycFT7=)&i*{ zxW8jLrY16xHXh^#C;foYL!QH*!m;5+yh>Xa$QKo zv5UZ^!`lnras-#`fYv9PU)e9MPiDNObA4}fCd?bVEmh%^rKz6~6WZTsq4Y(3G%D&s zp!82fskazCS5O#TfLN@5o`?525MtL^6y71OlPtl_P9KW;eHmyKn;;MRF0_7}YyJ@Z zDaukDi^E3q6C}`KqX19rn8U^q^siA8Tb=rsMjpSzFQgD*c}=ae@kO;zF!ZWk4tG_5 zn4`ash_v8ZiWs?8**YbV;A=Vv?zOTBz6dK#XdW{xsMV=s6-}O4`GNw<(pQS=$*Qnd z`4)0b0^2B4w6f2T6TfgM{7nwyJkw zAdP|i56rlfFGzAW$DI)a71GvA0-63*~FMBA&N|PXpbOA84 zO8|-v0PyGYAEo|5?180s;f;H(M3iyeDylmw*3{wg){i9oAd+k7!(h!K*gtpwo$BQl zyoadqJK$$QqvfOzIsMm*Wlgln*#fmpi2dC|t%dV!{kvTKD{GnBT6*_2d_i+mi|xuA z9qAux-aDXrogRP=|D81Q7Gkp+lmUL*hQH(d$mMW&*+1-=uSL#S;Sa6sRH+Pu5xm19 z)q9sSb`E$L$)awV)OS&?g_b-MreYv4$Aka!<8nNXc;nOuJ{MY#F=?G4f(Xar3y^62 z!86gn<;g^)aU0@?dg99(wX*ThZ(uy~pQVu<-lY^G86UAG05nFhxIKu6?-3P#3w2Zh zI%ssjE5PB8nP1U4qQ^LLL;w&`RW~LJ z0QIc1Jph+ICjdNurvgCopkEDw&)9W;1OR8Y1AuvqtEv?Mam)w+q6h$FM$~j*g0hLP z^`HsLQ5!=3#8|w3YZ_2ojGU-{ge4}d5W0ghpw3DqEeKnQbYu>3b~;KHeU)GcRw^Eey`>4 zd+{6aMeu&w`%%`eDDKKhVy&p1t%-6&ny8@;wjD9wp(7mjT006whA@4VhrA@PgFWSD z!gLnqWV#!GVBj`*V<($RiS6# z*3qL_)#aV5>i=x7p|4tviN5#4cF|X@X1Lp!I61fmIatL zhExK*-rm(YoEpV+0RVC_FIx)z!k+0g_IZ2VT)@-0b z5Mz2%4@W6)N}xhP^$|yhka=XINjRT@BDkZ=RRmwvJWOLE0)io4nbWLCEDL0h^%-w` z4F3iME0&hkIxrwy5!`{3P!N@o3axqLQEp$lgK};AR+#4pk2; zV45N&n+=g>zI;}U?=$5I=Lb)`F2ti^dGafK3uGn|e*s6G{N2`BPqO?^%UK_=1kQRx z&8}9Hg3g;a7Uz0|OR}RWW&>qK696bx8oSW2CcGPIzW0r8 zCM6HUz8`%6O=7$|56?ueLXm2QgLXk2yEN3H&c1G}mNznor7 zAi!p*{nc~eUtoW=AW~nc_E&n<6KtTw2V4OJ22PqzFi)Ct5@lp7&M{+wjQ4Tjyy6!` zmBOz&z`^yR3gDLuUUkBvSvc+&hzL?E-|CF#V$ASwENlwb9R*6bY9x<&eA}7qfGSY; zH#t17D$Tq)+08s?yB1I5?#p=;QHeAohb$(Wm>)5})bxv*awl_(cbR1UNV9%qSU>Xc zLu@hYhi@bTf#z44X%@x76qyS*v%2vKIrEtW&$23dzz%s@1`=HmnCMO^o5eX{dG7B-hPb^?Y1opogA4q@#5@05D-pBDI01oG=z%a%)aLCzL$p`|>B!1j11wz1*Va$jM zJ#V?=;KCdcf@EpVE$+AI>-5mdFXCJ*8pvmBRV;^w@_0BV%cfa$v^wHD!4g1q#FyWt z1X{{>pzS=*0+uq>Ny(-Hw5-nb;y7`cF8?z)r;B=p%kjO)hXB?T^brkDjcRUx+r$1GZQ>M?ajNYWjDGs7e3MY3@JP ze=tLA=B9t6Exsj|2Mm7I7XE=hQh&|W_uC;hf4Iy$?01+Y>WUbft^RbUZeSz&=zfT? z3BwX)e0myPKcOP}p{-F+N*{SdN5PJ81+B6@`cdhS?4)ygs>IWbcc-As8pflP5iQ<5 z#!S|#q{B?MktCS68hoZ3$84Ndtz&jMaLR>4?= zits;-`NMcVP@%xO-}f#>oYP&saKS4l%}WnNn-NmaLWrv0+ZG4wb7PPF0_)&R{(ae2 zs~T4iRX)LWu9tp*gOve0%IH1OApW-vNXarVUF@(hQ9CBfZduR;i zyufOhmK<;?e&YmY?Z`%r<4a#7vIP2Lto${o0ed3Wa9sy^1b*18d+nL{8&!0o-Gr|c zFYFX%_`#!;Z|bk|TCHpnexn;~58%9o%xX6d>}H8GnfOo(>RpAc0v2k(yIQXl%Jx^7``@wOc6?kNM?u{XLFDgXha__MFayEPu zgEKM<)d%;QAIQDzFp;{ zEdkd>vwUv)S8Y4z!a1TBRL9n;j$MV0eX1>bAAP>u+iyw^maEvYgh0m&w9@v_I;5CPhWu;t&TMUyh`2};6V)(C7<|c{e zCZ*E1?D*#o-I&-=CTKs@G5q5w@HkCS3vfykBu@}0QQkur;7L;?Nwq;3!JoT3N;jk- zB8UUrxRfJ(Ek2qmnb2tQneqHBIxjvmiN8rPN9lT*ERAwWXoqHG*DYub3G#2N9Af+pW!U-U(dr?T<`e2DMR_@hdGd+om%-` zwB&>dU4e`|Lr048++a1HWq@#1z5u#jMgT!80MK7SyGsb-*=nNm_OdB9Obx#uw@ z{|hPqL>J-8^kl~5q}OVT1~QAcSB7K5-Wags2^eh6I3XV6JE{2nYgNV4I4W*p#opLE zPQujo0Q?T#d&|a+`ML@#!Ipy$Q#$~6@L_7AkZHarbqny62`_m*tY*sKmkFw2YG>lT zhy^opl9LMEp_^ePa=ni>NE(Ay*jPKP#KVHlTzz*ItakJ}L9j%}B#jU}r{7>~bU$1pAW>k`9Kw0msO5u~}*V?@eEWR7MjN z1vXKIr??REUdg1)|J_JW7pkR&RhDd`XhXGZFecn*omZxpN>?xu?t5|){lOID*{g${ zRw}ea2i)8wn#mO3mVggS|FuRbj|6qjEc?9%$`UyNfXjWOWi7g?vW1j`dc?i^l zg-m1V5~2CN8KgNpbE?IBP_AJYD1NMPf{DPZO=P^Jx3H6DSg zPkX40zX7Uq*nBWl#@6z15XA=|!t5>z27pp(C>X9)tQgo}K8wT1#MP2kaoq$)W+aR? z{9p-ico>IXK@M(9MA9ja7P>tn2BO^>ee+G0b(1s<0Bi-H<97l%yX~s{wMDb^n zbkhvS1O6nnIaY3#r!rR#ZzV@#+L~2#c+Ch&h~!mxD@p&-o+!0m|}(| zH&BHHE5hM56;uP$%&gYBI(|WNfgKPQcO`6u|I&yP4lJwkVWbAY5NyNjmlaP4kU`T4rw543@kS1R;ANg{XJh7G_&;Rpy zMfq9atEq02D&K+Zoho|jUQqi}T}RHW?5*0F#| zcMB{iPvQ(|`XhlLUciA&$CJV%cPlQFy~!$kUFna}a;E#%)iM_V9c|4PEjJCVnuiRW zGsbDlUWf>pQL$d_wue_$OT=+8MxM*XQdcNqVeZjBu_iXkJK*$0jM^a^QO1)phXT$O z##$~@dk9q2_fX@ZotgSpeYe=34_GU@#a=sA%p$~G;3&%6^OWnoLIRK6$@zL(M%j91 z#~|rH4GVjBK1nBky}5ba-1d~WhF*KPZBHBLfiAM`N!9~UFOF2ndZO85a5!1ashg3D zCL?mu-k2PHMqC``=;KPqH^0vMyXELHafniK-xRmN({v;_AbOo$-~j9V)kwTAF|hltXE8kjnJs(P;!&kyOHSK z3107>O=Iu0F}F8+1%>WbKD%60ceGnW`xHota=S2Q)rz@Fw$faeLI%?sQn060qiGdd zP4QP`8Y|{Yg%1!l(dBX`_DqD++J56AvfK>R2))u5PAfVMsJZiz9#HeofBH7m9Q_M} znz%>B?YQ>X-Rv*6;1uUJDLpE-ZEKg>ytto1o6B?U*()jFhr0liDS z`TD`GgXW9$8K}CAkYX^67Wbjeeb|i$c2OxDti|Ms%3P1NntVP|WZmMKn*9O^K4vfQ zvO{yywdGj{kaGvmn%E@soHphi$s3)5mH@-1a(AffTq)k;{1}jtPdMf2S_O9P#zg{? z9>$yi?+wQI7W`v$!9Q#j=SLi(IVN53$=O>9t^2Q8AP}!z~jlY5~G~id! zJj6d-%ss8x{~vU)MewC}ItWxQW(goz5{A*07Q#OPEo@oY11g;**=X%b5X z`%~BTkr=ei-iYA>X~iXmf1%QEAqLgj-g`rVEjU-XHzk6wCQ6PK=gz%p_QLQF8Dd<2 z!7>HA27kh^iyLR(a8=~mxz~kd{zADpKJmZ!J$h@}je+WwGQTPWT!%b3velBcSg(7g z1@EEOXF7QAW@-}fe>7(g@eS5T3Dd$l_dT#a6YWU*&hR(=?rrs$AR*>j=}49CX##^d zNay<7L{)3PP*pW41DsyLvhW@&#&RMH6}ao8pbZhn?{2zp7S;m;NP0gUJVx z2B5k%Arc_Yig+|F`jea-ycTS0gx04!HaEX0&l2Q04qIm}|~ZP*65 zCT=aH%9aROQI2X7)6_m7@hqU31;EM!IlVkY@!$$OY9TDad=C4CJn@zJeB>$q-SU|x zU&V^>o~(}VYfQe*~pf`vd=l2%xpetCpmYparA39Q#-Z3 zoy<&jJ6W4kj(b_iqNF&6DaFuze%211b6HjsKXeD=F=dYd$B)LAz0qxIG-?zU?2zzV z2D!@QwExmfVN|K5ACWRuXH*-h=oYI~^Lasa3klx^9a1$PoYHw3jfm#+7$2zlyxvXo z`9?J#>J}Tmay6gJlBio~W2#$3e&8NZoyYr`i^7xLp5eoX58y+vT*mKC^ipL}4dCg# zLVqJO5@j^yScthTKveOuCxFF2OHH6*dwO>*O!qEvwt=w-j2ak<-Pe;E_(ovq3NBwE z-vuDIBhy_K3?;Y7d%rsP%$F`uiaIx=%gV>PcfZiMa7x%eObP2l zZ&@Fq(je(F@$Yao&9%b#xVDL;V?86X^Q^@ALI}>asH^w|S8$f(4pCWJ5WR&$vmS53 z9Un*4KAD*gVM7v52*9SYE&`GT{POWJ^BOy{{Xuc)>{F-_ojgb=24#rqV&hy^E<*87 z!5)R;trL0^idWpwvrrs^+4BpqDb{kv4WyZ9M)dF9ukaW#Oy%+sFj1cjOk3X8y{$*l?4iU2Q<_ zRZ_Sn!kB~H*3`-KF_C{}1%^?Q1-Z%qPX|ifu%3x^t71KkUN1Szz^mz3;vY>Jp-JJ9Zq<=icpV;L((a^ru0&|<%*Uk)}3l+N> zFd5vxtY>PQ6w}y8u~@yN5Uz45YwkfqG^5Mp1$0X6%afset$*4chMNN9zO(;e?> zv%9lah({eOV6l0e%R0!QRBaLyk@~WzeeMtPi*iBF zKDP=#!ai4g#$=?_Y*rxWgRYe}T%hk!A`EoM?{2Qkm!=%+&h@*m5wh7*!)#CtRez7_$0vgCeVhe1)Lm!WU1aLnZjD3qq z36L+XPKHuDV z@H8GGOh~XzjKQyRTK63h8A$ZtivC`a2JiHK*uB}`6J~e`FsIZ)PWy+ z;w8JKHs#~az*gg^+KjJ6#<#i;4(q|3Xnkh2jy&rX;bq>lKCn2qcp832b{7&9CIKV2 zTXRCy%d==HWX(aQc*`c4C%0g}P4Z^ksu&Ohb$#O=rbQWZm=;g&n)#n^LpjK?z|#&| zGY@$LOs!TI&CU3v+oG9$FuDLol2|n7AV+XIGHje>V``_~h?dNvnYB3=9N@B2&Hj{% zQVes)&$wvrc@|9=6JmFK82(^FhkxTv=$H@w4--26AAYIkB2+j8WC~A0^=rR&tAFGD z1noO1zR%cwrFgf~>KRV>$9Y|%;7N!3kcNKCFBu#FrqM+hmSEmR80t*S8-#I-r=b`o zeFWa(r9l|#W5^kVp&rREgRBu{*(CEW!cdX(K%77rV_?zVx8o#&l8%ck4Lg7=hc5-P zXfPS&F`l#7*{VWrU+Jlk9FW?M@lI{W?1`}*b3EeGd?C9yM!KqQ4^$yr6m8B!n?{9X zZO*`biZ;?V;4Z~5GWi@x(~8dwI}3>Y__t_<@|K`bqXB{7{$dzdpgNPyt87A~V9F-= z&g$NgkxeiftV_kux!VIv8u*ZnpgQi}QSqo(OOkhZvgu4XrvY~=K607Zu>X9UY^vH6 z!A%I$iZi)2qG%Wlw&#^j-0NUeL^3bnA)ip+B7K3+MF4``bGa|JtFIg&zqU`EN6n`A5aY~+Jiw(xoBa6E%ZsIp@| zhyg-$)A4h0HUj#+YBq_BN4+t{PDyi~m?t)y&L67HhUK_wn#I&kUC5A|nW%&t7<}h$ zXgGhIr8XM^%fFE^ABFrj8}^m?AkqMAHZ@2&B9^0^DU)=y*He3#ey{2)UtqQ zwCUxJELG0ApTQA3Lr#aq#!kKCpFD^@a^*d9h5zl}*8hZmJE%!5KN9M4Viw|yv@@1#xYiRJdHZ-qWLmjnj2)@bj^HDd31mpat z00I2P=#?NQEkTqOHORW0v=9;8kVWYBti^f}c~bbOVCDW)8c%cNvhqU z8K@3x)St2%6bV#M!4rzzvS98)ng2jF&-1hVoIv%N(wfS1!>@&oGVwbYhjaavLN?7m zP_p6AB%9GpvHy2Q52j9*ac=&Zk`3qAPd3DIKiSlod=M$grU5C*MyLT)u|o2&(n-2j zgrATN3zBRa`NAa|;{(iq2TgziBR&vyO0svs8_Mq%T*9a?+Y$K1d404RJp~cbFw2u( z+ay&{MEReAc6c|};#zux4BE33&LBnBEAfA#9PU7zFOyhXCdrC&BqjD0*ctdBP)Rcy zJxM6MWc%WSkhR@aAg@0g7L->Os|7{+;95`~2Tu0xt90~*Bv0J0*0slOPX#h)uh?2A zo1PtH=ai};tB!pvw!>MnSpesyv2=LDGB5E`Ot=P_eMVSl>d+O;dtuhq>ZDQ6t~HWP92uzkE#w;21M)&J# z7fv|bG@tjZE^r=yo5!M13Z3vm7~ojY&xt{?Vb_kCtsS|6E5D2fb?_OHRcnpCd};Z6^u;UUTbK1guD% zhE|MAiXg@{pXcD9B+s8TSLWS*7qJ6z%h#G-EbiZI-nQ^i3cI9An|COMqcBPv$016a z1oTgrVYo`0vFzHZU;OGMv@ZuJIZ)^EPgQA?;s%Z!ToXs(qL-cea6evuwF%?G-RD^g z;uhMX`zUUi4Ie5$wO{11>6VSE#&dvX;ZciwA`IvE7`)!&fXNp4%&b!WtK_myBDG+e zuK|s7ed(;(q37TD9v;#Qah!$iUQ@L-Jd`TD{H_PH?E+vCQ$%7=)CLfnJXf`})xQ+#qc z($|Ymg8id>tHR73Lg<fqiKl>za>b2-k$ZDrz#;lXB7;T$=QExLOrSF(kAY00dh(1Q--fk;=QRAK`qmAq&^ zwFa2h^^#bP8^X1NkePk44lBfi~k^e_^D?!PDrgar6Z)PHKikYI1{%eb>-*LZ*tIn7k>UyN$dgYVI{h-_6z%2GRNr^ zIYz5%7yF&|esGyaj_FwVl8nHh)>2WE#BOQ9UFo*-mwn&-CVJ^1&Zr(8rO8va}8 zRg{gW;fd{do;_?_t(1Insr0!FL=m|s%vHQ`zehit`5k)E#PphN(?fO^LjKLks;|tu z#3BadQZpKZzJ;tg{pukv81t_oh?sxu@WJuxe*Y8gU;9}g#6mQQ%PC2StioCTvC0Dl zr)d=fVJ~nrwE|_5!pFD_#HBpMha40?S0+?BvHK!2(MNV$+d+1Kw6JxT>i%b)Usxol z?nE3$RH{1$Ph95k(;lar&=Kf%o82Di?keXOZyLIT|GQvn8&YTIZ-wrbmxEDWU!imt zWdZlvCw&IpwE_1G-6;+wu6<(O`Nc$~yQ@HVJ-(nISh?J?Gm?0J5T3Ot-an+8E$ zN>XT%90~w?|FvmK4f-JR1 zW+~0w?nDmT5T)lszxG4*!Rr{`oZ-IVL()d60pJ5kEYF&UUe?r}$vTm{N^)l*M>kak zmf4?-?i-3@9?+xRfB_4l`>u%0VJVKqIpwb$gX$eBLx)AgnOfc+hPR>#aflKF;N}&K z0pKqWP5WtCPn#P5{+9!taYRx@m`#lmmlVDgo#8k^^+km-8Au_-UI=hljZP%Ha7bnTvO7-nOdvup}~N0r2AcCesES^>d@3anaw-hLSNouRz# zw>w@tR|E-33t!yi3A8-a~-`z*g%!gUjO)SZn3B%y?b@%IkFO(MDs!9 z1axl!yB8k9gM_$h7kUD084spnCccXQ1yhRTSxG3%l>6bZ7seN)Rx=SA=y_TAvzX`U z-W5F-(7+-MCvsrlF0@{EvOoE{(*;9qINik^Kx`{wsb1;k6+Gj^@FI~HaDr45jt3@y zC=K!Z%6;J34AY;7JDwKp+;=?fuM(kO=mtX7!6><*;v?X?NlL(kYZR|Zdl`TRp)iY? zOp}?<%xIHAXaVD_htCKQ=654y)R!R1xdRzl+2IR9Ee$C|M>-Os(nPqVj^QiHZKk@+ zE0>=jVVL3&2!dX;xB`3PU!kSFw~zwc6hJfbfp3s#iPeSdl$8v}j&(VmkQyrU?ysOA zffp*!Te{{&UQL^9MD+0x(eM4mv$M09^Vz#9q6tBroTKRfUk8+Tr!!D}334u-i~cnJ z1yJVOP+%ow?%h#&f7xi%pZxF%Nq>Wp4AU^E9a}C=`W9T2wKK91l-?wRR|=DRQ*p`E zMwIz0%R3ui`n&;hVKdc1Gn6IBvz~J|KBbp%#rkhz;ofW(<@(3o>ySu z!R_msp{#i7Zw?@K>CI8X2hkqP630+_&=PLT^+p{E2ZkuOMYch+Li}fP8WqWYEzH?Y zZG2%g#%Lh{PstO8 zE;bAxx_5LquQs}OZ1_l{^w&m)NB15PJ_@Ip<;_D$z(ViK41~7BT*AEx>-^+)Ib@cI)e3M8-L|wG6ka6@_W?7 z(v(UoOrFJ=uScG9ijTVX$~mgwO|p!u`7(T@3n9U;ozETUY)_0$rg3RqLcYjhNZ?-l zHdv8+=2_}ia%Kdk0wYdtN2Rn!mx1pGUEJct*08Hk{U_=-!+`%^NbC&rVTpXGcuUcR z`0saf!oIDl_$sO44&~b+p8Q;;23v`Y)B?W!m6PDx!kFcRH}2CAh5!bBhq?vrEedDg za_G_FBfR*h(Y@K`UdzgF`bUm}?Y1m(#lpxST&-N5vf#=<)j9&a@|!~=Bl+%z1vf>8 z%DdU&$l%()e49_jeO^?t{oHi#s74OpYj)USCZkRiJ z&h^(Vyan&WC-HneU#&z1#cQs=Y3>a-ESQ5&an&Z{(x9tF?U(a!;$?eC@?Jf@H)r?y zhJ!9jw4L|{>#yH1Y^s@9wG_^OgtMzsFkXq*iSq5I_Ebyz(4Kzf0sf@;Zw0M%`iWjE zFfQPF9h0@Ega zl_LW<4pd-mRsNHXkO?!uiq2zQN z?gEUD#=DAhWn-oKaMpKg${fnqPIMx=A9u)qg$Ey?=c7y)_>L0yRIdNK!Ivd{@ZAe$ zN;`qVcP5CTC-^p^H9vftP2PoXD|>^MSdQ>*LQ43u9O2u7l<;La!ncj7J@Vy;eenGe ze)}%?E(&l<#o&0wdZIpU{>~xeWfRibf3Dd@oR9TknX~XH4z7?<+>pik5DHIn+PeKj~9T!bC@aUOHz<+*1$A2?16b#pmgfhHWsgt@)KTs zy)&8v0)eblNU@lA&W|6NbADs>oS#%9=lo=AdX0NrA((q?p!#?e*CT$zq&3~ds)9Y< z+c77GW5?Vhz5w@Uee<52Z|KjQ??dq}`19WR`W}v&6}xIc=j6Yl z%mP0o1%8Om`H(qCA`v{O_U{(pc-zlPIPOx9ctlcB^>1?Im^Jwv&&${7qK4l(9e;$1 zGl&~qlbKy`?*S@950lx{hD#|?*s#`66v=TH-9HYRwP0l<)rkR-GlG9zaBbPbxi~x; z%so4D+`Nig)514Kj)JZER8)ZEL=Mc<2i4OHBGQJYP@8HcZpe!U-B8yE4BS=A*u2{$`>*bw&RMKlkuBKnd%XIo51rVc2e-XD}Im4 z>w@1b)&;+l-S_Avxs=d{GxGuEf9$GXzNDd1KmW@xd6)lV}% zs|^s{U%+(EDMkeIG1sd3kb|>elNmPYo}U3yr76IcM>q!&i7xBl$(>}m8<^c~lOI9o zNS&+x#$e&gWp!vxNU<)%S{@5!oRm{kBhzCoE~Xu;tf1^6U7HY;>?4cNQpC2g#{D1D zL@i(AL>zVyejJKTL`QE*Z$A`n4BRLSfs90?VExd<4?rIsNTmhTNiE6Q_&fBE^u_{E zq?Dv|`N6^H2v-|7JFSp1t_kIf#%_ha{E+F5j>kEQcEK1n0YI+g9lZR5yiBa_J{GzI z!iJ*L1?arm@QI)kcoJ|-vFF;rjDnrGnOwJns2{FkHC~DP$tr52xBen2jF7Ed2E)8B z4c*q}YiG!h3@Y2HJ1I`Ecw{MODkCvrV%S{#JsJI7!hB-I2pICWUvS+DtxA5ASk-*# zvB zE(uA8<^SQb{I`(e{>aY?ESo;1e)W`lQ6053lQ%?00#Cs zJQ21@;X^kp{WV67$YCSTPoK?+n7=EB>x#$mmNL-~W+y~XD?7C)9WFTb$iZ*sBss_Y zogQBBj%{`RIF=0~l-WAxfA9$Fc41Z~MCfQ|=par$auA%O~3D!i`#2=S$$-i32@n>55L*(X5OYJ9tYC#=A+4?BQ>>)MVi()LYKLQ%M0^MAv0c4IQ~FL>iHK z`Mh)^WRJi_mmk2gI^syZoH0*oKZ8atjuV$N7TZJdPU9eOK;}pX$IK%gwe90TjrX6d z210)0+<|*mT)geA8wNGOp959*;iF(|MKi%b%W-WJpD+y5+}v^Vl?6MR&O2h;KFWfEPU_)Iz?9Wa6V+tia8h&$lMjv zjd%waFU1jhdEt@xAv>PNDI(?Z1oiSgzol2POO!aqq(7?a@ue|~%3Pb`qyS+h))wlb zW6(2ppUj8KKt9rf7w`uvfm{LDghyu}esDE`1|lE?bfcu-x&Qtbabo5Ad#&MUK50M2 zmG-4l*==nH?~ji-i!2u3+o}JmR-wl^Ax~~CI z0k)l*{f>%v;rbQpGtq4k?=qNy)%*;xQV3@i@BBR}{8LWXbUgl_#5?vYdJymJH5Bff zDcs)#U5hw_D%*8Qcy51=7E8r$aUJ8M7`d41za%ey-fijVb;YhIBr(^29#gcu(A@j+KJ z=NBnzWM)6j<{lZI z5>0cEq(TlJ`nZ7#6?1|G%1?pyS}|5brk5y5Xre+wld+R)@F8KH&I%wch=(p)tlB9V z+Qf?j)fBk6GJwZoagTr_NxeudJr-M%yCtyXfx%GPa^ry|OZbo-FR`{5pZ}6kn_(F} zy|}V-KsdDsXCQt~zbkuW+P`rI0_z6ww-+|^u2FW7#KobSj=CczOJGOIe{_1gkGMcr zSArvOtKn$q5XVs#Q5-3x+S711Z96ZhEvo7aPx0o|*q{)k@imz9+5-ez13snw1V4C_ zExYO2x9E(?JU0?ZM}=SaRTagD5F@&}NBjq5y))`(ELFD5Z`~_umSug2-eR}?zQbgl z_W^SAHb&_lpPa0BO{4p)#u@yuF5D>M$pr|LU^SfP*J_vv`<%rm=O(nLuIrC$&QSa& zFcrOozfw0S12=Jz2ozRM=2E>WaBo%CV|XMwqCu2f&fIDx%+>0;xf2Udglm6l_FOIv z+sB&MZX?B3v$#F)AV~e)wzipSNwR4e2eq6eNi~)Uu=-KmmD!K;_%8zOK=U7=9|h6< zVPRvT;BIrneRzUQV!)2 zq*gj3L0Pa&Wv2q&?3-tq?-(lbcP#HhPyOHopsu$np{agwd~(&sEtyao?(Q%d6YvHo)+iJO%)(A4*xbC8ANwG@* zw>fCaIHGcF&hjP|r_yS->8GDv1_}X7KHZ*!h3HdKb!0+uEG4TL3o@)hLojpNdCz^0 zE%L*GK~BnX|3qV5(FouF0pF{OfIy(%*sZ)Z`f4Ho7TQDzXq11(UveDcgWn`Zne8`; z<(PaBkP2Y`Hpps#M_m1Iv+~@{w}+!E)q;rTpCR4eG@8^BDb)}S55uG zgItP>r$WZ#r)1wx|Ao_n6emd*5vxu^1!U>MeG&%A4pi6G$bFw75DY$3Udlcf%lQO& z6xHH84?kv`kHEz@RH;$2`wVoT1O6FE0|c3OXCQ+RMWZYyqR2p+1`4c~#VGl%&nWpG?l>;8_B$VZ`K{AY_*PDm_|nIJkKJt#%#ZjoLcj54 z_ytgYT;zUH)rW!VYuNb&HeQZwPuSSp4HiThKP((p1AJjQvVs;#v1pJK7Eh#v1M>ffDzSLh<1LsZ)!N>-vWUof$Xj`iI02-^^KxNiTx2nXsh2ayds2 zqo@4VK3E3-u2VH!22Y{*AttfrE~+EUeIPliDkus4XlFgVa;rq8l_Rx88Ij8qennMB zxnT5p_0l;$@NC6U^x!;jm#U`7!07Yb3{MW++thv-LK>$wA_o=&qlW12KE>Tf=i^4{ zI9WG}L$nY-kdyVovaGj}W5Z1xD&9&}$j>+VTJyfl!OPFQDkKW zDAPIMW?cbtI?W1@zZ(N@10EAAK=^m}V&ZK$*u;BT&uhTjIUK?Q{EqPMrr?qEIT*4S z4w`I{gJtxvdZh6?vHR!T3tB3%F3c#g=XT=k%|V58+h{I+n$R=!Zr1lDxw`_DPomip z>!adzAHumJ>y(lhydx2Pza%yZmg7s)OYC50NpAB^<#4)qv7;onExf!P)@~n?e>9^D zk{?lQ9SB+PivPjN4DN$}jN$_I+}4|MJ*3#JmA~Tlac}_yquk+?k|Efs#rrZreIt+f zYYx{3!~fPoFL#=J8$dI-vzk}^{4XAbmGC;9R|57@$ik9XdP(du_=`x#B5fu1&rtlG z_QQE5_zQl}`D#h^&cz$2#i4f!V&~lhm;2;v;SFatq*0lhV1gr;yv#c zcfJG@+9Ad3I>GSXoobI5Ut<5VvpDyQ8)s9Y&XKS6#uBoT6_S5SEt@z4Wqls9-V0e6 z);SjqJ|W53d;w0oVFu+p%%GHqem0ulfme?~T5P?hG013S%)}40FlR`L<4s6QvOft~ zTT8Ov$07aTy7$q!ediaC+KOOlq3m^&#h{n^;h+;REESC3IQKOwP6t^Fn&+Th(Le;_ z;E6M(lENS^@2fmREnAH*gPj84cjCu#8XQ0s{L$GdIrz@*b4u|jHVmGiEQibOVlIHA zKrW7;1}OnuE2(-L(%evoJk1S{A$3Z=+yb0EEATtS zgsFmSbJh`$!-?42E9d>Hf!l9E|8d7^8M)m2pp8Gqu3pQ#-t=(AKzbYUb>;dp*_$s1 zF8=a#*ayo?0X^(A%nG7M<*~apfaU|@4;OnzHk~z`X7$$az&-Em*@`nzaqh$*66bvI zi%?HNGy|2DD8YL&u;5q>FFq@rl~3Cbj)&niJ2qK2xoUsTp3EfY*9EkR;@%YOw3MUL z%Dl2m4ACuRBVrKc11`3Pf!O)rND7#@aCI#m^78pxB-=U0coKBWNX9#$}Lp8$9ato3f5cnj*D73R#{4+m7f-@SSOb=LNnZT zC#90q?T2NWbK~bavuW`Kz$0&dXurzw{1?6$i2hgX3W`qpR8~Gy+oV99QptO_Kg{Q> zCJX^dl9dY&xh|5$FnV;^f&-n--v?s3ff|&Y%po|Skgk}OqXv1Iw)+#}OQJE2P;p2^ z3>It-@!wo`PG-gR*J->-wPAiyWDeUR+S%2S0gWh=6u0olcig9`eUZdMyRler1;<%3 z8hwgmavMOg-Ui^=&v+}qTUatlps@9P$nJV)0Rq(`{6&Acv)}~q%|HLiiw;wW4zH|d z0&=n`y7%h9@^v^ZaJAZX+>c5l za)Mgj?H6D_9w({09-77~rvTpk_&|{X%Ns!ogF+SSiCHhr1JPaQb>&=iCGed5q858H z$e?_dh)kJ42G~mWF&r8&rI{lFrZq{bT$Od>@c3@$L=LKu3`}9~9l|aOR7UXuE|ibV z^g8k9d4LCiME=hz8>CA0UUM=A=vtYbKs6C*DiaU+X?Gx9T@kJo*y_!9Y9L9H&O z!@>X^4t&U21-LP^Ujg1EoC`v%UWz}X{=MoE0{cK}@)wyn-hv%X=SSy}_qYYM1b#<_ zo$(C<3|yQF;sJ-)pca+UG7i&0G@;{Jt%n~mK4}u;Wx4#C#aRn@2*XaD`im1F{>#TSb$L`Z(Whn?#QMD7lk?D{L_q*BaQSW0{pkII4GF;Mv7l zSL0?>)E|5;8|%r`laUk$3Y!G=qv(P>P{^%;-VOhfQDFG?pr+3 zlpdXFT9GnnrCeLdzrt+=c{KkGTVWZlACA>_GFTLlr_l7^X5ZZ^Kf95^T8!8YJ0EV} zp=P!^6p(&3xDQSI1d!JnF~=q^HG?eVJvzq^0D@zW#E#xM#jk@4sV5BepEmTOBzs$B z-tRA@5Iac@Eueg0hr*a;+le?R5l$f*IRr;1Kdv_CFx7J)TowY~}OOwp?)Q{O5Wf zSH9vwVPNp~H#~dD70RR1P@b4n!*O7~YnhrtDiEJUJ%Tf1K&>~e53}&VuVzVY z;CzyIIUi1IO5Wulx*ZDZ>|!tz{nYHZBOjEasvnZ**#@;*c8n04jy$88AWp!ttU1h3 z%q%FZS?1kb(1fDJo$H7)&3G)yeTDa^z$A#?wa;Kb`Gi1Ap~O`x$tkBGzSRC7DQ^_0 zbW>6#5W@CiY$Lh@#Y8oteqvJtQ|QM*saOLba!J9NDzRrk8T+9BR6FbV%Dkl^(#VfV z41|&wRe(T626%;a$?+xj%uE*H=<(|zd?uvud_j8q98gH?EIN~%Bhx6v z+G7hDHUf50-3RzOEL)BT2xK%eE`p-@TLCuyzfft;^6aDO|f9)rJ`+KRz zWsxR?LZE8np3ctr4*<6A65rJXJjtJZze;}3Tr(dt?EHG6-ZOnQg8dC8K9CgwzEq2x zqgbzt_KuyLcm7x!aZb7oWwH@SudJQT#(=f#7KW|1LmE9hv^~ft7}S62eer` z;u_#7Do;Fkz1S+v#EM&nSsQ=;E3Uua1!@O#Uk%t}VMW6?KKWo8NHy2J{t&@(cJPCdxkL9`Uub*Zl9{Zv5`yc&ZgwaHsTN?h@%= zxa}k1zgCVa^nA@BXann`G(p3sL`UNKD2e%4Z3jjcc;Wry0+l>pgQw$hK4S?7%;`!; z3a-r#*;e&SF>`M5XvYXy5VK4GYrE z`apNxSg4DC^CbP_aj0BY%$Dq<1@q^%}vonRgRv#NKu@@4-_v5MQ@i0nD6Z`!P`^d2lGOq^^XEMPYU_^A(bM7;}z?P`iYYh zv=4q@hz6=_dK~fT61D|W5bX;!o_*m|wJ&rKVXUXJb_?QYTC*%G3)BU)T8%+Li)di7 zR_@3k=()jZ!Uw=;^?SUG?i*MTSl(0!gYs{Y1z$g$Kha+@sU5MTcq{WpXVHbJ_|E%+ zCVsX9^kh50akhi0dkP6arga%_3$_`#9#{NEP6Cn2632hIJPGk7obl(Xt0~KRP7=+| zoL{Ocr`^^z-EMq)+vo(gWjR{%FWxUayP$I2H#otV99ViMdI`_o!FZh%83_Exh{Gu; zQ|_z+Oo$WTzs2_PPUQdmF?utIy$KI@5161k?dfoYfx85@X5;Sw->No+^soqJ40#?r zKe_s)zSSgIiS^3`MhmimYVM?Z9<%iPEUw%KKUwarAmY8AGdz@;=q)&BSbYE=`HsGo z0k4ew^x^j?!ygPCuuvENm~7tD(RuDwYEmLFxoPN@SV4t0O{?V|W zo;zOk83LB4J_h|{79D1TDK07W4K3m2!VWi~mc)WivCW%BOrK1yQ6yYn%;{?YYQ&$p zTK$T?KZ3gIMfVPXR2~;nDXe)s>vw3QAbOx5ov=P_Kib+pb|>|VHRWGpN9JXhGUyuC zjFN_)*T8y`Dw{C{_8R$gU22Cl5)OL3tpn1%QNm>3SZ_g1?KlIzhBMdV^% zLY784V|Tm*`Ro!i*lt!+8Z35JhqYzwS5C_FRLk6Nli4nT5R8@WQ>Eg&!& z4|XvYi4dTW1KS@M9xPd+3&p{q+>%YgW-_TNHULH#pjH!}F}H+pD;}No7El^MX+uVj zXrYcOLnIyj+?gQyuyJXC6x4o%_bBoQ?e~jZ3ZJnkTEmV#P9_Da$^pk>b2`bLG2cYp z*w4kE)VvwKiE6kcF;VelsDqJ@o;GOGAH%chG-bCyzKD0f;1p zXStIfec=RDk`%cR8el!1V4^h^KW(4gRJ>M z!a;+=kog{tVbqk)(lb!xA82sSbLu25DpJLIYD_OVXMICm%jewv>3H@f-JIy+T*cw8 z0IZ^ehs>WdbKka3zCeFv2hpRC-(1=YeTb)ZBjERcp^uyLdZvvU7a4oSy!Z)NDLSFA zw{<#`@W+4B>LS;r(Rb2n8#-uCT1}3P8{GY*mAii9d?mFKcJ-(AjSJ-TBS=e*@vIhQ3E0FB!}^(EF7ICqA+b6;P40S=tCfdzmlTbbm( z9;mzrH5OZ+@!T1paa1UF34H!0zaOil`p+n>__@aYq}3^PKUwD#;ZauQa=Hv#QKw^%c8nFy8t44(AE*dM2RUg* zL*nT%yuu#qxcFV4cUyhv`U9o|vwlAuIw$?}i2zUp$j8J#U-G)apjzzUK=mHX5?8sk zcOXq5le23)gCzeqeK2da4Jq}MZA)cJg8w5DrTeuYLk zA6e20^W|8}cJyWvy;auqm@O!3x~130ACI6Ep%w zkz*4LlER_L*m~{MJxj1PanZfXb>%exD#hIf0dRsQWIrey>2}^%b*Cl$bqZ?2#+WXJ zORQJ8GMMr=UD){{8GjYuV&+q@wJUJ+4)e=sVzq>$xHYqDcIwi-nMuxX&O(1+X1G>< z8?^340xg(9U6*zHR~;E9pMx|292sr$L6hh2ptSlP<3UT#BTJwM^d8OR8;$;D8(%qj;kd519*SJq*ucK?>l2#4#u(CIKi!;c|yJw z{{TZ9paKqsLvrxaM-&~JbqAP+QX~qN;sB|#aKJ3a0Vc5)43OnGKoTg3;veVxh~jLN z?Lrg*(yufA)q{H-v>T(MAk;EJ{OfUsL9SrFJ=K{=X9^f6>e)UpeFai%?e4@Ch$Cnt zM_2h1yT&5ev=FoT29LQgJTP&#Mk-jH6_wN&{LD!l*Rukft$?$0#I*^;b5~Yl3@<`- z#Lj4A8upQfq9Tn1c0~&##VTG0JMZAz_CZdF4VzyHDK=c(*#xEU4!YrRg~dLV{;(1&0%BLdT7mY@c@=On(qo z`_ATE44Q0Req0*XcX1o~j`Qqi+d3suQ)S)`c|Ra%$=uaqvTni4p!kB(j#W+oRIHC8 zQ9G8L_rjPmAYn!@Mq#EisYOMM9{ECFGazCRs~GR%zvrp1#6Q}%f}VZY8N|wW>R+kUOs&OVV@?+Z$iD$Imhxu18_Q7mtm&kA1@H^aUaC^Ol$OUlNF%AWwa`HkTRXFhM3p^L5^pPL!91&Rh zFka#5=s*<>O7dIvy(yrh7sPimP<P9Y0*YPb`&Oj!JahzI0!y2sPiF7tl2)0j2i2Z_hjb}>yYt^?jb7Qy+}gt`5qpi&b~?X@UdbtU^-9*x zKDM!E7|DlobtF1&&pk;8CL!d5+1rx0xu%os&k1?mY%UB`lceA^D#0EM5`pB~Wug%Tkn}!L(jd|LrVqyawt# z{pcR3v;XPeMxD3Bl{)EZs_ql+sEBaHOHwJPl8lM%;+7Wd)`UaWV@jTvXHfvBOtnH8 za6LUQqcU&#X>76oR4XL|^m+d$+dBDul-IK?gbqM&hWBTmDE>`ZVAz0BI@$q+&Jj9Y z$W!}v>fdh1e)?Ja5c@wS^j{%4#~zX2q2Hem zs~5(pJOM%k)jKyVe!X)8ZBizJ!34F@kFTSlM-SqOvJALgRRy>$Ik9)ReVJ_rZZ=H` zw;_JGIaQ8=P4Rz~hAmm57|cUKf07#d17sQPhvCZ%=N^6mKqV29=nzT83XWD)!tHd) z6p)pjdix{VX_h4>5ddahaoLQeC%+#9f!Fd_+?%GxCe$dUyKxW~u+}?tsJC8(+={m_ z=Bd>J{tvSdyXD|xs-Y_+g}_D%4Lpj3N*nk}YWfm@ZORF~ferJ?($==@S1|t327;@F zi2)8C1oanZ2`3i#q79Y_PSxRi6dhfecVpsv?HS<68Gy!wBV#D$Ou+Zn^fA;LugtG0 z`{9QCbNbmgVEz@0qJJZkKRQrNneOq&Ky{@wp+4FERfp=_w|t|Q!z;GUhqb^CD=qjid%lFafg=m3r;>M8tH_rnphx@j>E zVj(2YM8QcF`JVYhU5UZPu;6NOW;YlBm$8RDw8b9FLoL6yhqd0K0Ip#c0*OCQkT$Cl zWykO(pdp=sLQ;bQPW4x~7118{&W22M(1iC!hjXOf)X&1%NqR8eUM7ooSKW2&-L04n z?Mcx3c}`{CCnph+LCBNFfRN!`;4I*dyq$VNJd^x+{PE;z>!p;qd2%$ymcsG4wiNbV zY$>M@a=T>|VnbnhRQIP}z=kroip1rk+lbutb94==J-oCS@4*3(TBTp!lK zEUErO(<;#Iid}7VgRq{;YGsP`AydJtvQ$LJ0q!8-KP)`zo(7k|GLckY@YVX1a2hr@ z_MtowT-_%LjwG%-H%6yJ3*^6$UB|T|&o8AzB||m!8foC`ivzb`oh!O!m6XJe&euN= zEbV_PYL9+BJ#hPoVe&L1P*sU*NO(Wt*OvvVm!yL`)Z`xq?zv31D`T~V%;-KRq6;Z+ z67!+ez;Z!oR4Z79CzdX~T%<;A4*2u$M*xM;j9rk55$lXe~QCF^=#023T^c?RnD&$!}JaE#%%-ig5nhNBhDxhN~XGE zJ!k$U=}Pr;=$qHP2LO!^=5~Si18oObyygeZ)SJw#8&9p zs2a-qSR<_n&c%;%LlAlfI%E}OSTja|sE>mV=NvO!C8mBVsy#@cEcZmNA9i5Ks3%c~N=0#fPc2}LRntm<9Z#bJ)dhI+pgsamf_8zbdH~UddZ6k-!rV^nyfib( z*>{X0Y=+FF(wg(~d`d;^ISXJI|8g=w_Wv>gvdEC2h5c0+Bjw#CY3(PdrufD`2`T+O zWKYBi&yC>EI{`myOMcC-vRo))UZ>q)Uu&Va9F+F zbhrQs5phP~$pg~h1dyH^z{VfcgDMZ1m_2t8$;gam0TE*_=;6FoqNQL_J6#xfi}U6~ zawP*@A0V-*j03)pegX7*FoWoaRUJxN>3EPbr73t~F{rkcd8x+}u<*K7{0&;kh<9r+ z(YfXA1O__0E=|yZw`+3&sRfW{4-s%aB~U#F>r+<1Gtm|2hi@sH8>pVnHS4prWESwM z3RKNQ>DuVN(SfRG(U0gp0OlO|%nN%fC#n-RJ64Y+hF)8aQOej|#&NN)W9D=g=P$Z< ze4uJGk#BEmWHjNRo!plak%+F+!E@)`aQ(Fr*fd`R*^DGwnOcD=*<~(y4LK(p)!e);L z227w>-;HPSP9djc%bZaKlg@=ZOHK-d5J5}`{{$@A1KMBMku%Nsn6i@ zChE+eYM%^yUpEh(1(a}p$8-v=T)uVWL?&QAxS7uWwc^@>QsKX-;Xm_8ws4gyz8-Hh&db9SpSu&b_dx5qy2#W?1X ze?-Dyb*p~@QS$VWDoWCcCuozOIJaJ*qC|d_P|6e~M;<%3CsC5AqU83s4iY8KJ*}=F ziNA%Wz5eYJ%|OLY{4c&YVxM!?T+{`Rrp|Fu?!_?)`T$cqSffb3zXy%twdr8#8;|Hw zqd5NQl0!uNx2TTbf5QN&dC z6K?THolk!8y{MPORv38B+y!rKEr46pVOUW-BtXV->z#<{Fs~p`v{eG%fRPZ?m{S1` zW{sdGsS?z(xeZX`at!DFThJ+k3f6>7KqWmXJT-P%Mr`s37mlFc{r9RPn-cvE=`oyy z-^ln3hJN(q+~2QAl(HsdSeK26b6<&tWU3)<*uJxQ-&dW_Lxlo3Sc#l%_&SQarQSTB zXB%*``(3Z%;V6doryqpn=(Os}tD+*peuabm6LA;X)KVN_L!gd8WfeY!&=O5XO^-yf z4vaiV*DRc3Tjw6A*|`e@^TTAd`f7;_r-S~FnhT8JvOY+Q=!HSqEZE{K+eSo?tr&%f z>5KIZkMmd?F<@#<7%v+SSyM|VScO|UCRmqmIp92ftn!~scEr`CVnYNoX`_ryPK#Y8 z2NZ>w9bX8DEn1#{Y%q3q&)~mg_CeYmma(HLy6_K}$43C3e;k65&s)MBJ${+gc^!j^+qemBwyz{_{JW zY=ieMLK4Ei9!3eCz{S8sj$E`#cdSGy1*~@iHlTf0><#|kR1xjeNkieyc)}n+IX?q0 zF(1MpsC-L5N+E#mIT8qn_&QksEz^Kz2*1l97c|c6FTx-9zp<@PDuq30$ejmsqgrR? zwSAVqVymdW>tZO&jpK-0fPbLs0X&#M*ay3na5ds{E2-0L5HJZ~^S6O37Yth0EU+z0 z9=2sk;k&`&a4TUsvam*`_DOB8oC?ayQoor~*nF3G*zx)u*ouB!>;<%b%%IKO%#wEz z+t~2=Zs3zN*>c?4K8`oBjly9Q_lFb5?!@}A*uc>%uh%j3&o06FE zI`l|Ym9c^4(G`B{#lNW=+Nn=Y0na(%a23*-L=f!S7?U~=Io>yf%tvOvR_eygo9zYc zDNO~Q zGB>qU{RHuG569({di}dzUCA*x6N?kw@4Xvz>im{&Jl4)`?2!B3#YI8NgY7voXKTfc zjOPUSJH$@|tHb?6Z^4jz(qTqJ6T;`@3*mF}9|(ApPZq)>u!+g%FHYL))IJd*OkZc< zkz>bZQDxrD#McB1zRr}dGx-63abDT1U)KoU1;^lb_RI?ASLTgOe652B=E&DM(i{^L_J_iPWY+l%d*%_YgZ5J4vuht@Z> zp8zmIw||1m5cDm{nK^qiZkclVCqukbxt;{%fvKh2nLIr)mK?c0+DN~Pr0_tiW)}FL z)i_7EpnF31kU%A^syLxLB2c*nPp5e;gPQdF=QqgAXxN`b?26gc%v?YyUVQQ(}X0_Suz zXao+t>58rW65$N7)LNYDf3u@=Z0Fcb7zJAm#hzdw>zX5SWG!5YWBy}zcl;D!>n+TAya zc8-k<$2gS_%dtd+bl!gGT7XtdCJDvL)7F~0@T&MASa-GCLIt_oED zOGc{z75!%stleNe-lfJy(92?o^t)z)l6O$JA$Ax!BY?MT>LULBRB+?_4{=p7_(sV4 zAe1cZ?aMQ@v6KOTTVxP%g%yP?Iyztp0~})B`E&C&oN{|xHZ0(2iSP_BRU;BGIzxOd z1Zr_Sh4`G~W8G{=4)RHg2%_wt>3sY{{Ae(xdXsN-8z2jl@h6ZRcofo*XoqjNuM=>i<}l@qbMhh+NsYS27UCNehDC`;7LOlJh9a8FhT(5 zJRX-?L)I)$ECFj%0fW0YZW9+kRw^!dz7ZB!&8Unp0BC9|DFZfOumnbdwHcRdA)uc- zde~S$6d<{Guz?%&ga7z9DG5@l*6oUeW}TsioMv1oPmV650~ESVd3Fd>{y6*`p?zbc zK&OJPFSK#!l$T-3hooV^wLQ(b!p*7Jz&U@73jt2}R*b5*3GZ#9C87_&M3JDqgwiYd z)mfuu&a^FBM%H3zO8?2KEE)R$1izc``Gt&Jt0DlD#7RLgV9=?OYn_m5?#F>83ulwI zqWBPw#=8Pbeu8{S_O24^`)GW)o z3%@Gcc>5==^(t%TX3-P)&V@0EMGzBU=HO^};$Z1+$-&V$!6_@ml(1$OXuNvO5Jvl9 z7$O54XDV-O7YX`eIW!tA7iMlfB(CEo=5)uKsY z1_pf&Qdp>G^m97)`Z&vJ#;(sP5+UN`B7_Oqi89k37xuciX*em-RkNz76_9pa-Ow=Y zc^ghaRHjGa336>zJs4#*7_NkDZgNCj84gc)T$6an={c;oM2WPF-qecrX%-S8a@yB_~yhZDrbLU4VYqSL7 ztl#;bYXZOXeG*s|^De7PN1nrCIgYqPSO+j&eut$GDOnxMQKDxswMSmtL3Mb9vbwX- zfj&e_n07xopJHp=l>)*B6JTgnFnF-z{QCTd-h+fqg1J6#+i0()Dk?8(I zaFsGTB!C0lgG5VoOf+l&lsdk1;&^g-GbyI93W%{{0EX4DeIRIW{0i9o;aQ>$wQOgO z!f)zW8MNtsB5JZ46}1}@bKCjw7(ZA!;`soK^XXXvmV@jLM{rQM-4`$b4v^n~!eO-# zn5B!>r;v6IANMukeozzO2uJbWV;Y zou*oH*z*fW-rh!T{67Q*8uN(EdFyCDGB|0omBr@E{9>Mg`yd6?YPHje`x#Hwt*Bv< zQC^+Hh%A*|>--{3gL6rv!v3$20vh-iI|)a!m(UsxZ3GT*!ND2xF@6qUt#kzvPP<|- zZpP(`8aj8{T>!%Et~-jTObm80F)EDa3xR?ckV0VP0!2vp#iRT{Ax5)|^Xlo}LLvYD z89)mPX(pEdg_L44$W`VuHN41)kLj60atLnI1*eKuaXa;AXG5N~eyZ|})L;cgSa1-! zsmgK4qPXA-qMK~0>QMdrYW&4%Sf!$ktqkpi4jzisX7|J_)x`dSOWAqmt9U!;efT7lc1TCS=ypU^GaWum=re4qfBr84DE`FSY#Pq7)0_^ilHfb} z83kXC0iVuDhTCyx!4YFe z8QTGth<`;oi}4q=FEl7pkUz`h@BNH@KPEA27#k*7Ye-|@DH#W6Qtb2m-o}0cc3c1h zmUFJcZ+%leMqby0>QO(X&#DKNh8d?O2-TRS0#y?*7e15dEb8nDlW3V{Ie7v2X+)8g z36vD>Fp>gDlCI4vM@o&K<+u{4VQQaLh_L*gpGGE7ldFOGfMbz;MJo4tUgK|SCWUnr z!77Uo#^ltcQ26cCLrzovy+02Ay;b&Rll!c3Kv5cwYk^2UJ?Yynv)VI6Xk^T(ppnxs9wLmEPs5Wcu%L=Z z|HF~MKU0-euB27}6%5-=%o+5@z7FlBYkC;kb;W%inps~$f4VAAbvK9-PYc|gxUa7c zR4>IEj_9@T6d$`0=aBmJ1i}GAd++EKLf~iz@fXr930>HiNW$s9`ottl2(g&Z*U1S^ z+PfNsaTyAXG)$DaTV29M?A{l5=$rsBq<^KBEF>c_>Vb z-mJ(hzc{$dEFWq0I?LX7GMjh!zUzI$?(a5XW3d;1M`iKdYz-9UEeiF ztAD3+)YHTqn)uqCm~K8bH{oke3wvD?9MiXHshHoxw7gdIeWr!`8?rz09WF1rkZ9e`(Xp_gN2G)8JtHI|+1Iy=^n3w5DeH`*0)xgXNC3n6Sp=Qk2@{b@} zw!E(tpcUvmu@b5_m3jGbZ=STJ#5^(YJoBWVO=a|Lp5C6_!#o{&L0{*o_9bV>guWKW z3a3^H(1n4-1B1T}BkJDsG_V_SPU!oEotQ106F5OPVvhJvhSMYyrayB1p?T=+GNB04 zA@9F~n4EeZX;8UcixcgEDp7LnVd;cLZcF3>PG*@@)y196`AHb3lAD8WKK6AuNsY>zCu>inq_)o?5q5~51ciDH2nKmZ6se`)bHIU@9L*X zY1&PeV>ca1p+!jwn*&nnrz}VP6l-mgcUEqQ%zU*b=;NF^$l}ZoYjM zz=FVv9C>%J96?3I9u~WT1YypifoDirn^Y+EKrgcXTJz&RqYn7`*g(|+FuX4Ize#~AIthv-sD2|0XpSpbz$B8x zh}86|vky@w69Z5?U+;a#2iCQ{_ShNJ_ufLQ68q+egc{{cU8Ys183ap5>O7CT&%xnu z7!D5q>D!wTP2#2x=C~49N?Hj{&b;&SV|`sEPcqo zrrBHI_5p{oWH2xx4T5Z(&y4Oycf3I@F&9M^h{6Mu30epF6zky-XZ5MQ9&>a$#`hVX zy*4D5=sEvBM)9K*T_%5SHkv{kQ&KsHVjXgT!MP=dLT%(!7q{gS0M;)b!&WFC!&u0V zouQei*-jmF5*9l(J4EG!ZyY3}w4kblv?8j+mu+)g1k|o15RiFi-lP8qmGABza1rN6 z&;34l5eigq1g#S-ukcy$oiA$?a7hH50hHlC{ZxO-0CnB9oz#_)7@QRMQ5W-$^+;c- z>--r#P}e89eZ~e3V`YZ&2btPGCij)p*4{RYr1sD0K4}D3 zPY>M#IWH{zxz8NlCB8sWVCi!K0B!H!z|zmbvv8q6pn3-%+}J0h+;+nQ@bv$&_CD}k zRrMeL&<*Av{0w0_0c+?;@GqDoQ>GgZ{e1NEk%^cjl&EO<6%}PORMf#X-1T~MDHSRe zr6w5_nHh;Chzb5l2dJQ!qE_BD)1{_Eto@#^_qq484Ti4Y@5kf8?)}_*?m6%C{(s)* zea~j=STkIz%T{~tQF@Wx!v;E6=9)d)Sac9^nb1CcDBH?!Giz$>9XggpClHn zBo!f9x-PNcKHZFD_2nnYk6%x6u6J@+d$La(iB8J@TirUCY`pb{Mah4}mq$mVYJ4(n zCU%fD=3tZk+7U&YZFV6zI4I*wAYgyxXyY*F7CPUN7-+XebBte4Ja5-|Cf7f@6pwfm zd__Cm_98<1j~4+5A9b;bvfI7@r6gq~_f%1{y0Xcy&WIJ1Yrj)L>38_2yEN8`Fg&(P zz?{yXdvuhFX#U5EA9Qj-c;>I{$l$Jly>9|VePsX)`+u!d}!@kr2 z@a6_~E{EO*J811gt&q!rvWW_9IkX*$piQ24gttHT5&hWtlLD99NSBH1z zYU%9D96Z}Oi532pWwYKZoTJ1kKrA1wFHuc&*n}f$7#m;>(h~y!TcCy!A!W1au*iq3 zk)7aC0=arz(b-&u_o{^$Qr@2{Jq~>AsPx`Wd+%mgY)j>;)Rr&{hVcK&XrjL42~`d5 zjBotgYa!i}QxX2f(hen406 z9|hp`8~)n5c#{@gs5!W#H-1Xcf8FFB^!BmG^;$Pc*6Wuar1o3(8!VA0#xS?5$dBwn zifFwT{z~1G0t=q(I46T#l|D#NN_E0e6(b77eq!IG$k5NktFyJwpl=afo0&h z8Pc?WyHrBfK~9&xlvr@{QAz|SNqCNKMzYWPOR0}vNv-+hpuGO0MEy^#Xw=tLijDJDd=S37Kz(Is z8Og(3N^-0M2M?0*l;Y@|HC@(+^N#$kAtzElvsZ=%Y+6*eYB2eo`sl7J&i(PMIKNP9 zzIPUzU!1dhZR8n`R&?^H)j#ADS)=ilk__r z{XOGUo2j>st3Nl)9p<+ivexW(DExWi^A1~)8Hxc=K<-yB3RT@_4hD5! z;7$J9qTYI&8z%0GB;v!z^cqW9YM=J+9X*cd!lSLSUU`m@e^$F42W4+E9*EsZ8{vUD z2c_!*g`{-P`y+U(1q$1AqXi1*xk=v_9Na!soPpN!iY537#X1+2I*Lg@b}lS+csuEE`Y+!l+~csWRErjt zHVl`QbmI#fpC#&_q_dR`Ofxlvl6u$ox{bjo9}nPt@G4eFaO? z?fa%~u4F_U`L8GLBl^U}+%{<1pFc85@eI{4)-*0vJ|{=qji?@&wV(XNoxftZqG-3; zFaymTr-yM!!(Ob`+ow-B=D>UxfmTeV%MO#fQgh(d(?!k7GbPO3sTuz2h+fk&p8qgh zH7qdvTz=(@nnc4j!rT07b7x&F`XuWA12I}I;2}l(B^s9UbAIWJi!Ykx@ZWH1RQ`gi zS>C{X?X`W$s2jx{yNqd0rw><)r*-Z+wwnlgc*Sz(%k&WJ3pXC#dqq|ENj`^2KXSo^ zbE>bt;G*he>456emLC8)eb_6}pzO}%BbQ!Leeuq+n}2b2Ve*kHF1Y;S zIkVlvEA_DE(zqLNBKGThR(qvLat6bp=Wjr5aS3d<0~#%>HPB!}VU-tIBEVMMPP z;B%n~b064!Lo<8dP*d&pNr{_3hRcJq9Fne zjQ8{7r%G$wtdg;&zb>okSGqAmtqU8N@-+E3)72%WFEaKiwgbx=)h%!(?e& z^}hTVbSn0wv~BlulV=a_we;;gLx|FlQ%x&JN3F0h@yp4EkE#c94xWDvJ6dsW8c1mI zz=#xum^c|QKg6}8*<0tm#u5vjZ^0L$e^wiML_Txt6zYBW6oWp|aO}aVU`~-LFX&!* z>oGmn{IuJutcRMhuG@eI(Re|ZM@!xjbV1%;Pcz7=Uu$W@dgK;4SQ#6PZL?>^B7|yn zX{I)+kW>H4Q!`?x-nsl;(@gawOf~k_qkmo92D`I`E=1R&w+|fJYeGeFNH|AQf~+^n z1E=4k#F73A^Qq{6J5HBN5y@Qq8N(YFtcg;a6ZP*xb4?wpZZ`MD(|%Q4fUK+fczsgc zfAbR!YxUxfS#u3Ls7aHr(&G~i_wqV>l*;#2HW>3(nNBDa&oVb{@8x}+9&i5WOm!Du zOY(rP)t`O2n`0X!|8DD9NJUUsT_Fx?uE}G^9`>g8URedyhE&lc=3r2>9+K94A?Z&o za{7;>OAGut`To=_7q=eJBcnYB2ZhuLK3~QiY)kaJNiG#v@3U+j6Xsor~_b)B)0js&iy~b)+PtG|@*}+Pc$!Uc2@7R1qyk9R%ZuF9o3Xr(ZP?&N~ zR!LB%a45T^W>w_fy(g)P$#)tx#b%|82$}fsC%+E^m;F`R1!s41=p0aPYiZ6myUFBh zQ6yix&3*ac3%y1N(*L)Uqw`5+vp!d5S3)eEl{O^#KS^twlh(gFY2CsFzS`#rn04VF zjH#@EF_m6AX|>Y3mDX3+&WPDpKy_zdJqgcP&@(?toVt$dgZ^)z0e6wsk{5;dM{KhiC>-VaHm89&b&uuYa9t;8?4yyRpXq-7%!s1k+ff;WbHZG{M?ABk$`#f@q>hnUcq14 zxV%J1CSXb2KG8TIZ8%uCc+TTv2G7LN@?g@wjq-Hvy`1utw>_=t;79F@J!biFHU>yJ0D&OD<)+RHeZ-la5W-tyX+Dfts#5OkJ~a zmTf7_4tum8zB_mK6r5D_KQN!0&X&$rz3ln+QF!d1r6+f@IqaBe|Ha}iGAh-6GNF~_ zu)FC)c*}D1X+uY%;cSdKQOA4jBjSt`H2YU>R)q{!nnm}l2T_TJOBo)LFuLMcmc)=R z+TC6z8cx@1+LJYB!{{H&KZwVt)LWQn7%NwzGk12Re$v<|8cTcYvzbG(PvJj4jB-$l z&HX7nVTcN|Zcsnt30;1Vu-6Z{=QzcUs+1(@*{bAE1=`}U((P~fZTgax=bu{;oMV@0 z+aKVk+9^8WK1rl+U;*36D*;l_$RnjKd`J}qU( zioaYnBlZ@u&aTeS%dYoP{Ny?}UnVenJ@41|_#Rw`s|tI~;NgVcm#wJ%y`=*s>fdBu zL%S$S*Tnpls{0SI`j2?R9g+HH4cksV%|Fpa>>uDeYKc76CH%@N5b}>cMISZtY&Y?B z_%qzx(XW@$_1~U19VRUN`&WdYoucb!4eGVR?S#+z*AOC68u&`-&Ohm!v#z`_(ePJ# zddd77b1#^cXps9D8_7idBb4TsCHjyjz%P19hQLp(mdM+`$FfFtqa_WqD^g+e^xw)EI_$fasYUgTd;cmNi?9fEU89$NjZZiyUi!!&@1Dz9ttl{&!@uGX9+kV`lsxE7c)W`b6U9SN7J;tBD0q=w{@r8E;#5tGl-{ zeO_U5u`gl1t*v9ygb#v)2OUJ1kE+;Tao?O!?k6I;oL|Y^aWxn*!3r z-UU3*vOYJJDmE+Lm1_PC%Bi}XlDkR#mZ;9U-KoYDX{Q0lp|5R{h%&hocj@P64@SDLXC39VV_Q^-{X6f5wu_3v~v-kH(2jseIu<`6IcbRsl_ig^{@v-o3M&Z9P% zrTi^_>FMR|9Bv=}f)V68L6LLGy7D3&b3{5+RG)(h#?o(X>gi2kfLHmDFp6W8ui)Rh z@K0CwmI-zo(*qNHX}?~JQ_r&7{lJhQ?;K;bn5)=$SoFa`w}|h`{=IGubxXMQej%${ zxYb4j3bmdDp|iFY|0&U+Ga;})L{<-xxbIFyA-rNBa{+H2w|h5w9|Jb-$xg$U?((7W zB>*#Fy9{1S{UM&PO~dyBSno5XoMye2{#4Z7l#g*(X}8WeR38j~eu#6MQ!}uWQ>Rf^ z%kgmJXE+Rh|95X4hWbg<#l^opT3pcGVKDs{4%xTY#7X`!o_$V<6w+!@ua4fS6=#^J<4Q0%SsGij;s%9iZIeB71270A<%=s_UAyLa#5XDpI~a?qZ-^29arEjP}OYIQ-6;B~u% z9~V85LMKhF;S3j)3#FOS_uIJAm99ZK+q0DTRI}@?K6GByXl+5@>el!JSfTPmzkteD zF4L4}jEQ{ivO}4-ewn3ko3+_>nnF*)NterH;Q+bU-Il)J*ZH*|#cJ<-YQZ4B?pc*~ zcWZbQN?fJO68;-$J&)Wd+hpXNs_Ck z$W%`L?-V@`3V-_8NcuR)ZJ>Do1WnCfvxO?PKZY!^_O&fi6U<)?skH4d7X5n|Umkql z12Z`P0p~pJZDHSe=reUTyKZ}L=vdrlWXN`2dMcb?PqqK;Djq_=4>QI3{tpAjvOo6z z`hIn!zbF}g&wUy0rym|ax*}mVPIOl!)JDH!BsB3`NKiTRh`4HHgv!Z8?jY&lFr}3n@nr-+9f6Jz$lH@X4i*GW+F}mku2te)!08#e>M!( zly++?l*+HUBi@`@b7cL-M8lmD)x#97hf?wR6tXgPu@rJTUp2m28Q-kuMmAkV%qQkb6D#cJqa`Y* z80l*J{ZNS&M?i%yzG~KE_{k96!P4|w9qvnCzS>Ss7UEm&pk&>}TcP#8n|RUsMH{jk z)3O<4-23!pZ;j0aM-Ivam#=6315VQX#~F&K2*ivxYtZ`WeX|bpT*kwS#DEEGzgxmb zGfKAUsleuGuATQOnE6pzQqZ#cKe8>0N|phQdTVn$bT=tP2YJ2aN{NJdns7kip#<2^>!DPNhQ15 z75X=1k6v4r7+*2LLF>KZXV5A3PAPH0v34A#)%sS+ESoWQaFVo$@uUjjln~$vY;jVqJyKYTqViUm&CfRhSsl&NkZy^o+gwu zVYV4LwK7&`$-{u4Su zjNnk0jR97>pRw+5=BMCLDPeh~U769dD=T2RO82XrEYlWUgW(Td+-2XY5mGUMC*7YJ zNtZW--Z<0vd%SBJf8af6{A+NZ)9Cl-W=ffF3{SOdh#3o4*)8_@lW>%K8ZP4+9vc0) zTR#rqk4D!cprQV8pdM?};RVqY^0;C84<&s5wZ#xw5oVDj^Bd93OcOAz7_9*k#xaWq!l zx8r%MxmV$lLFLIcZ|2fJ3z%0QI6_B3R50U*PVGbzdximz0dq<<^oTxy1Mmf5t8|JX2pxT6Q{0^OpBM z)e1pFiQDQDh*aIq_=qd?HiZwr-^X$YWB%a_``&R79T!po+@1gUXv9xHaPRY6_Y8Annt3B-J>WE0#ZC;6jMe|Cg*x#8{Glgi_VFze$x5|=a z(wkONmGp@Y5gAg12zr&iJZDVOn_N;J>z>l@qI;?XZ7({nq&(?OB;GUmClUbSJ^fnq z!Y$`Zg?y6K;l9D3sp7e0Fm#V(Ftxd^>~Jf2Xrh4T5(D;32D!W_-=^PF5(A)ZWy#FM zfbs$*UFAKu=ui-qE=h*PD&t?Bx{b~HBFk?)5zocOPJB!7u z9?D3r%4U zVc>V>UK;pKE}1ENJR56+P#0GGahg4xoAR5irjExme&bT=%=k?!xTH!q&be6eH*XWe zgqZF3IPWn0!|?iB9OG9dz1vi{u58MW#QS?Cy_;2swzT}dZroYM;WN`D4D3Y-xU8te zSf{)-aBL+ETb}Y91i_$5l9DqSie-XHNJ*~Md6=YOIu7L?r}HKmOfoT<&2M?0wR9&j zV0=OAmynbhUpovD-Xvj}9-jLjbTds@qiQG3ud0e{+V*$(lFqLel-Bvx+|l`FF6#Wu zT{?eXc`+Kg61VPpue1LuPyc@y_g~dm|8*1hf9hxVUqDo>tNhNVz$Bn*`3?CwV)%6S zVVcAd!;fc5H_SO-WSnB7ZHV$zOq8G+T@*GtkfxxE*ynit4+KwkpW}1UYAlu799DFJ z1oe~>C056jNPCmm-gsIw+Z(5w+1@zf$N5i)J=cZ}Con6l{q>v*p!@T!FsxFjukU=8~sw}{+dY!!E`CHrK0u3BoG&4v8*m*-p{Z(==PgU%R{ ze?8|gH$J@kW+4+_&1%0*AJvuBESV9pxau+zTcr-M;nyM((+g0FCzdRc@?Ms?pCh85j#U=B!qZBoCmwG4E;I6tlS_`SD{Hw+v>^FD zVj*vZ%1I%Fs%3zyl%MVHrz*8stBM!FE#u8?JP(iCF5E_7+bM_4>O>1=V5C*~Ds<&W zOFfx~{tOD=6g!(PjXo0zW+ww_SGZ36qW(kdCJW0+UTrEC>VQoe^%B zI0K%fw=l+yVR*noL%2rmyiE*PXt)vI4SxaLped)@fSi}%Ku%!U9VrEcWN5M4;2x+e zDsXH1G)YG^LK)CR5;};PAEpT?6-?D`+Wc9kr%q#|1tlQe~}Id4R&;NI1#gf#r${5 zMP+1ZtgeWdUBQ>em55ESVv4;WMkEY%s*aPVJJk`L+O*T#VbNP}OSlmBQ#3#ob`7-( z(_KTY!nJ;@Tr8Iw1~?)vGLl$GRd7I}rCc?jUB*?x_ZyZpFFfx(>S->&*>|F%1R|EOV1 z&-lfj%%mx?=ya|)O;ud_D8ebjrPD)+@7;ID3{H20ULCE232PGj=N++dov`;`4w3p4$LSu(?%NcVDHr1o?nGsi<9LsZiBp&`%5YAFK7rtT{QFUyBMz zXh7!!(!7${X@3@VLon5i%AekH3|*pFhL31>27Q}Raz5h+jyX)!Kd(*(!>gzx%I|wk z)7Y=s8kR)EeR}O*mQUFF^8PAvVs(DSAE=r36Ag6+*bPH-*hhYAi>&fxeDE!FVy4S#) z0FnwSz5kmYJ+Hm4CckE+29DhItNCK>b=9ojDC+X1-c9gl=&K9Soc%k%hE$tiYduGI zu4`Sg4a$z|1AOwt!>g(cGJwwOyB{A0{g407jGWd4zaO@W2uBEDod&cf20!Jkg)$FQ z9_+uj&sevP3V|X(4`F9O(`zAH>mlS8eSsp+QiR)qd^F#E^axL&<>;+=4{!&Jk?Q!9 zafut>z2|~*s{yeUPl-UZA=7lN+xLXHZQ9!&drnVlIDGMqcuhg!e-lE0`y^&kTJERr zdFxW%Uvv(z)V4r1_BE<^aB0tgmWV zqF8tpU$wBAct<5936BT?VZ9VI4;3}n+Z*byCwrk;z7P0#ULdJlbBHv&3I zU*>bwZ|O4qE{c9jl=WNXV#6d$;nc$u+D*JoQ?o~X(E%E!e!goh1bXa)vzL7Fe8`g(Nfhg8*ec`$K z!v5d=D1R>He=nuilE1?uqs;dZeBD_~i^5C!D&?YDlCDaKJ6)EhmglkvTe#X$gPYm= zMn22=%BG!3(M;(xiQuD8&}OKIrB;k-B)hs@XKZ6CexKqGeFa-E;}k#r3W1cSDSV7@ zhokR#*)&0D-*C9LuACqDZTNA_EmAFu+%vLr>dGE$f}fb*AV^8Nn0-GxT>Gs@^A?H5k{#WX%yR8q?u?6GQKD4q5fFXawbe}$@KV12pG zY;TH5I5c$_=W}1{#(>NCHXG)+>e~>hX}58Xx6Y7WdY<7L04uBrovUn&jW^RSrgs=M zNG1~SND=Uu7?cc_zH6>4+h5hgpNCrn&}P&q#akEjn5!s=207|5_k=x;huJSrD(vx= z#)~rz|KU_S6UC8Hz+_v_0+kJeC?N>ctk0rmwL?v_L(SFs@I}i!71HE?7Daa+Q%wAG zZZ{O^le)4q1Ny*58Q#sRNv@RoT>Hr$t;Ga|tadkIe)x1HnP*>vw;pijZ8Btf2H+{{ zD(|omN$Z}*t=ig+{N0+qiMl(uWg$wtm`>yUrZ(OAjS7`(xIaDZHOJ)r`b9|S%5Qap zUFDenyw%}faV%9}gM6#WfxIUm_ds8KS&jD9c!f9lmG%i<`jt;xUQ@Ss^hwme=wMT% z-od7c1z;G-sHhWr+MkYLy1!mnz#u~*=UXJa|UG)YnmHKIE=%M9e>>o9*E$j z{PJYVPfkhsQ>vmU`Drnd+b;mgXI~>E6KQursV`fl*`UwhlTiQ{QTRxQ&_lyjWsjc}>ECnDN9wbx2xPhZrE9U3@%T^0I_;&n8?M{{zVqmHY zlX9jd%3XPkuLyrJ7w+UzPDxV!4@to{9wNv6`ecWEDrv9n(q5U;H?E#`3HzhJc};C= za`bAFTV_6ayj${<_ONa*x%RKO_L;b*!DPn*X+~>T%Yty@yym#cmceFQ>E9b+U(~%N z)jS6#1wC>)Bn%!`&6d$u0WTKs2=vmeuP>B0PWtRvVDVP1n%yZVKz=1iw!c~97- z|9y5T{H0wMTk3)g!9Z0ZL$D>~y&zP6nhwqbl_bW8L_E@^uOx1M!9pMCFAI35(fAmG z4Q2>h%hV}RdVdh^y=-KLAHoA3?19Ksk@7aW0JG6kv^*lCEbq(IhUmFTK;UKyh%Jc) z3cCQrHH%wDac4xmgdcc~upG!{6+bc+m=)Ye(CIC()qE*Su0jgp?VmS#>$#wV4Xllq=jb%ZPr!Sy{e!Js{y-KjUAW7E?F z#Lo1f&hy@{P&f^X8-{ie3URQ`rlL(7s&Al&vM;WOW&!+LWGuS%@U)RwltZrW?4dI! z9Sh?g>OjHqdw`{ zq1MX2r&9(+fq&7upHsHsmmwf}mi;qpu`MZP1X9chr2O+@b^BF`%9NN%>ZfUYf^zns znC*HJ>D^Tg!r`uZ_c-eShaPq#TT0Uc=T*Vuk@`i0Nti1=6s@V@r2v_n|HLvbs9`kJ z%V7!?&XtTnjn7t{hJO0q=170N93BzBeKWEjdVdY?n@nMa&m0n|sFwNY!>;;gw%BBM z`lm^20B~Qo*`+b$V)aYh7apN6@zGZRW!m3gh)Py6om+{QSy@^7ah?0IZYrfqRj z9mJ!os!UKpUusod>fG4bv%Wg`5LD@C|R4QPa1o6`^xdm6bS)?zU36&S3&u56W6&<_;6(%zbnw-KJ8k1(j+ zC>hK{Jp?y3LzL{q#E)f~wZ0}O?E8K(2%TI~m3Vk7yCr(92bFC6O1&UWfiJxDw}sRpZh*T3|}sY`zP z*47~GwHwVzn}uI-4L(0aMQ?Rer_kFCaq`}}nn^c#`3kO{;{*6bl2f`9y^dYHFFfOUSs}Y?$JYwT#=G z2@SN0X8t=l&`v|Jb`T&FYFFUR=Q%xl*J6}se9{3AHgpA zNFf8CN^th;OK!2+Tzs9tRiBE)qBRrtT2tA0tG%kd?&_RG{au2ju7jlzP28ncUU2m{ zYc9X|ifa6uK8c2TJY%oAIf;g=xzirH4LaqbOCWl#es;3T!}37ID&E^#Jhao>#nD@D z3-iZ2?%SbslY4b0A zailaCr@Yb8lN6K@Flu-=>S534nA0xsXXjSp_p$!3;RYEp+E`EBX@3tCUv)AKW>>2% zzliVJPB_H6<8bQg4_Ez}da4Q%56>P{zqNWlbx&VZjGbLnO#(;^&7^#dbNH23_caWIGinNKRJ z(`+yEn!l@TvJW~@5rJ4F5Y<(6GmpmIR2Yn&^}*a+Qq~P4iEdT8PV(r~B7XNI$?nIcn9FCmcUc6@ z{343>l$qTS)J#itWd|Gl8rQCl5OkYvqOoBUNe7s>-XUl`-(~&2An%1qcy-5Iqi(tF ztdo8U)2)5`9hW7&x%gj8<_Uq8xM)&B;^INZvYe^vI3+whCewx(Lu_;|dZzsa%k1Ka zHo%=AQs`m-FQIBG{q{`H#thDTlw7el{ALAldF z2=qt@c1F*MI8osN7k5LC6PC7XWAwzr(lw-Z(eb@UPd8cdAJhON>3>6}<_1)9xbhj} zK;gC<2d*p6*Q7wqh}vym&PI8CNA-!Zxn)VbWP?TBk_|S_W*g6iHJ~#c3@s-Fm3vy^ zcQXbbSyA_FpG!{jxWg%hqT*$8&wqcHW@i!&IeZXR5mo55Me$|TC(VrlUnBrsf`As+ zE#W6Ib#i>)&aLREJfT<_&MSGSe-zg(#UJI8^6xChu870+l#bWW9_GeRt5(SPP<**w zbg2O%M-A!|w8&yEcx|drtfwxd{KY%fdnEOS>waShRgE2wd&(A8O;o5VVl)b^>OzbT zu;C_m4+0aSSjP86c*E&6Ln=CQ=X=fG2bG!|j9kk3PvlTwZTK;oC466h{>dMleochF z$*uEm@m5fU={QJ~Dui?71I04>JFq70^Te?J`~QZ|w?2 zR@(DNOQe3}z^&(sp*2D||F)G~4xOt}{~|AOV8_=~)V34VebT;hLkOPiQFA4uJ+W3a z9Z=~{nnhwBGfvV9|WqCYu5f1+QRUyv$ow-Y2zOe)ua(Zlwz&oj@OH4qe1 z<5yXVn%||eE zu;B{-yjfr;@$l)hol68e8VAgOLX5#sE1SPELf~``8*UVI@=hBx zh*a>86qC7lCcD7xD2n~0`f%_B8#K%*EH<9AG9Y<1AA!yn2QxMtZud_1!2Y&dY|N)h~{{uNK{U2CEaEEfU8VXfyyyxD6;3y?flF^gLMFfzv_|hVPV73ITCX~k5WFS639TgVJs)Z;-5mW^Mf$CR%<`4o zuH@iFCEM)hcdTMfo6UEk=Q)eMVb1@hmFU z5neXRnJ$IaEGISYS3EE5z{n;E?@M$tg*|`$YSns-47U0!<4vA0>GYa1V|5MBqDeD# zUUO#5Z<8F8cRZjfo`p@avx(@?$}a(XEz&C&M+rLNe0Ln1|brIwC_0^ zzCk&|J0aw%L0Izi*Sn#^S@JI#;9cF`u9p1HV?GZZ0)m|3rcZ$>rzx_U&OSzGwfYWa z{;!2^d`wQ{S}4Xu4c+9_&;i}lP^^WPL|W)OPGh*tE--fSr5dVfswKSZXOS*iER1y5 zMZzH3XPMr>`b+imQL9oCA(rT3A+1!9w>MRX_boSNq$P=_PKxw(xm(SP+YbKV-89PtJFU+V@|X!) z$>G|j0*HJlM5Dyp>;sk-K1Vpd5{@ZRE(TG`s$|{cHn(4%>R?~`^<+|kRSMZmqvi+K zCvN4yR&f16%S5{hNs66DpvmAS3dZNlc8K4(FVekw$^8i3uT=9$jLOF8C_uTCpW$7E zWMW9hs#QS(7zRuh65yCuFBqPQl1M;>3u_kH)SyxhM~Hx*`;AIE+E-`za}l)`DzJ=+i!7DV^Vr4-KK-sW%NFHIK0AO^_% zCj=i1B906Se-K(#HD9T{zR0%S&NAZI(W^&4MQr;wm(E~+#geEzd))B2TNxP$X=y1=&+zV_DU5V%^ME z%aD(08ReNxw*^-pqs1z{r@{-E^A~aj;wUMOQKmSE$Ucw$VtU;OsuyFWJveIqDa6k^ z0~Wu&fcY;3gZVGAalfo&;Mc>mMr?9>H0+FrogbK(0Fo+A4HFDjn)uwsUmwFb;z zEEqEWQgva1e`)RnzZ82`>F-_Xy_fcnIwF6%>}#g*2C~JuXV9lg&yaW)*pX)c#n>CPK*D_v9_}=hMq{%ea8Ya(5X8f;B z$@mwrr0$7I|L98p#@tNlTZuXus5poz41uOua&Cy4yv4kBjG;ry4yFF^`m>xvpCf2( zz1ylVNw^`+u5ZsD3RdKgc1KK%40b}U^l3_XNHfwSA8A)STu^nI zH|x!Iy8Py+^d%XyM?N=#dWC2mSknK_Sc)Zm&L}NN`ge+#Y%=;g zj*Pz+bwxu}Qt6*Yj5(pX2l3_vJ}P}JQKxxD@o~F~puj4{KcI-b9A>a_s$%>+ewE>8 zYE=*XGv?yY;h+1I1>g~3k71#D@k+W9g;g1)(+Y&7XT69M+Te`CUpYSKOs{0{sid+M zkX|vE9E-}qL(dFyNuDf+Ggi(p`mhVc;C%8cm`)IFzHBWrcRpY2p>(!PXF6M@e_*A5 zey(D(m!;{vh^^!S`i*hw63p&@BChq!i955z1Z&b|T@-dQgylyJ%kqRsgoaiZ=`6LU zyeZ^fSnAufEiA%}v`3bGoNUDGqsVDiZKxBH-%M$v!ntl4M#^8QoRyTnVg#3j%g-gf z{hMmosg`uG?*V8TF+!|jN}rx{mb8aCZVcbr4DHe4AL$L2ys&A|$2d#RT}k&ZJ=0O# z9KI+7B|_>ulkTTe$_`m%6^dn5P!n#U6=+V6+z3WF4~glLyd;OfriL}25e#K%eBKqR zKgH2F(nzj;cEktzr1yPeW*$2*zwZ>)vloiiLxmXCo^}b78U;j}sulM)`y(zE{uH9f z3J6VgWj9+T{ZZ(`p8mBKr33rn1e;{Y@Q#>{pG_o0RjbO$S?CY;ZT zkAA7THN^xKY#ERcvzjL5rO!>5ZcGFR5~-fxUoaG4b#QPm-A51tKg{PTK6iysMU#g8&UE-%ZsDSo6L z@{B>5TN}nb+cJy=KgZK_6hG33;oE-{hq?v@gFzG=+`I{t&_}#7wNHWBl+GHYCJ8FX zAR~9>keF2zSog8qLAazYrGL3PpZ6^*L0N2|#6h+8dt2Ju%G$G7{hk6$(l1+2cgjdj zF%hkb>dJl#n`se@ceCmjBvuECMVgH*_FG4!1A7-)uEK-yZFVh&G0XOEmyV^pttsz` z7!S~)dE@aIa_bxc`l+lezxBgYyvet=^Xpbf@F}S&thU%$fMQ9HwVmTl*(Hg(X6#pU zZCR&7a* zGC8rJ8UeJyKiL%DN}xB=LE%|bwP)C0TSvo56S!yG#K=<yLLR>cUdT5HEB(WbxkJ3L~j(6Yp7U$-JgAdtf5_8n{Hhg%V|UXOuPPhzh8 z#rc4eOwu9e+o%kJ$cmW$`@bx^oqjxI683Spp}k@qXy(YRVBF)lbZvEI9n%Ebff(+` z+eEHqymbSd(siu|g;xz0WL+M+@&CHSf{#>ipfC^Tdjjo&n`bs?f34WqO3-)TnaX#BQb z*C4ur>uvm2u2Z|cCt}Z)wf>rAYn)ti3Uf_bfFTEL6mrB+PRlHW#9ENZXf6jymO^ag zr_8r40SQ*RRU1V8_^7Vz_vbkVUuTt35`)X}8Fw5cEHSBXFy-Zb{ZQ6P;@_{T6jhlI z(et`TR&vRy#{MzKU@$N>!lMil=ih4|vr>3#OT!nmWLWi$=u%4jrTWp-viEEhhz3CP zCyf5*1kUhaG4zsXjJCCvHM&cziB#R%BGtW~h8d}7uq0TtNwMm(MU)77ymeu;n^Lx= z=8X4BMq{dWrOw11@!n5+f6sW&rsQM0&ZRN-)739Gl3*Mh4;AH5Os5-Sf7u6Nyd7vn zh$(tr`a$B`mjH|Gy1*0-gq@5(IOAW)lGsTFnFh9~|GNqYh0CymsnSg~=Sn+RUz7mT zBH1ml>R)4f{0ZI$8-K2PfNua%4aQ>PW)Ty|`NpUN9wDeD&nk#JwN`Gd7j-6l|7TRLls5|y?*h4Ws>bCK zXJJ9Ou{u9gxG5+ci1D<}+{sG~JEox(zVHoA!)PsLIIu}RhmP*R+9iXb2PXYdn!KMG zX=X>))>0AC%owy<9f2#%VQmV|LyP@#6=$RffNpj>SRO+PUNCxF^ zpszkTIX&#@WFNG3-k-j9D4fYYd>En)DeqH;2QXat?cX`qT|_5UY^5$i-rOm}v|M*u zc-wrvW|Gog-?lARrM|Ch>a>5eaA-Gm;$SoT`zhPO*|*-Y*lr1RhV*U35y~hQU&_-%jv^kw zUWBdps~bJ@Ga-8ng$?_6!whe0jgWtf6kC-4qR`OWq8~!pCO!}HmL;XT!an6)G?)LN z(}E9`tTduOV!AQn1vC}hr>{{-tw(ACL_WB}fpLFe2KS+3hLpFZbI(_OC|wY$d9GEo z5TC!2EZv@9#~TNqD)k3F2lGzxr#+VoFHHvAI~Ov#Sahb1E~YTLNS93Zl5TXd7)G$s z#j^Ouu}uGl^%`B^{fJX&a;b5Q8$wz{!%f*Je*MbTI5Q3?OdvbIbpD9Fl5d>`<3D&Z z=<1vbV-i7AVg6)skBte`mYWUZotsh?SkaWS0MnFm%O9nI0BMC0g`G;H&f9>8^ZjVc zCdVA`;i?D4^HFgS@5V*$GxSr-m8Q`0KKwp@+m#vf+whTH@)`My$a_S0JAUHTvjwhs zZ=yn1?@hnM%lDU$#5TPmmGj<=>tpXtTGe@PP8T`_ALHr0bHLLrCxIvDy{Syvd2f@S z&w6iz@ZKijz45ZE_f}z`^)v5{P4U(i2$IO!;8vi=u|IJrP}WV_FQt&u^YWgusx}_) z+-}C7$FlZm?{*pgy0Wd4gn$9E2cra?cf0t$^-vrkX_jVt#-dQ?Ldd=kko?oc7K^g} zAR(;vZ0C#(q+AaqdW`7g)8!49x&S4_@g*h|Wq||IeHqN|6qxR#+NmDsUMWv)Q z>1t8bZyF7sO~YyUWOho!8qz|Z6|UA(QW9V|gRf=T(!r6FCVG|cg~W#6V{DoG9wT^$ z538%h8U>=g`lKRloL{2z=QIy)xYLU;nNT4AA8D;Zc4(B3!GL|ap|9m;lW>;~tjU38 z!X=2`0s%ArEw$89QG4xGAfTM36}D1>v0W)BXjx?a+h1_F+HGIHl*=_EyfVT0gjoZLAEwv64PIVVc{D01ZJd01ze$fsBX-L@z5t#Y<=FsQ^-J7+4 zL9-jEeRZNRP3V~64V9@}nA{h=BG)nOnfN4Tp{f~QGv6)BRVgOnY3*sD$tR_Do&*VuQsA11s zfgxeSHCws%_?(s%sG07q$JFaaZlKt!3l!)d2rkU16-DKPJnts#Vf|_Dv10(L;1qL@ zo!N-AjRktUNyax*#6bSB{#TH8J;axru|@{+AuB9vq==FfzcmwFZzjY#RJz@T*3{wF zuc%kLBPBg%f%D2?f$xrWzJ!4jjOlB&zn-m-2HaQpPi5q%V58Ex_mP=HzcDflImV?N&{D%V7&k|D8UZOX3|3`n6N8{27NIcJ9!S)@~{ zb}@L2k@#D{537zB5+nCE4#gdw7DnPwoH${uFbLfGp5u&KNptwV+LH-mnZPZ3$&Bn$ zOrbd7hc$_NwWnN|4UwGcOs)EgnrPS z>?$#UUIoXhAh&65RYewIel}}0s_G3W$^4s0Nllg}252!7I{WApSG?P2^bP@1-;X@A+&bXfcOJsmuM*~>3r)N?cT`U46r55Dw0byVe?LXs=d?xAPq3B*>C88w z%!g8TQxxBf5bgYgzn5^M`=I}me{k-r3X7I%NVc}Xejn)X&;2MXS~&GF6(vnnKY_{B zCM_gAE=5%Onv-B@qt-E5z0^4qw|E@Px9K>TFDTqs)y0sL{uJ~-0a)b3br;k-Qew+v z73&s|I}57%5eupyGC^%ohN@s}wC=>Q|7adQ$SVMjC`_(86PkYtSKTjEM&AVemp=-8 zLE*)J6qr#B$ij$-6QqA65dG_2xiTvk6T;N8DQKsgCCt)GGDJ>`FEah4(2DbpA|1|1 zWVR++Olg5^D@;f1W5~AJI!5(%W!EKzn7xzhv}YId|NWTxKd>Jn8RS)ocb=)xI=IPJ zs@MjWu(aVL>j*w%t}i=$9wubf+Dm8&cj%V&C8x3?=ANHAyx414#6XDpk>oJky7%@` zVYg8(8ww2+8F?>|GhXF@B26Pso8V0zFoOLO*gX2C;<~awoF?G+N%6k8buWvroR}wd z(z8j$NWY3*+}TK*VaxtUa0e3$2|HS zUP}-CNla+u{VFo@Q+S;A`g!N_^#k^`re^b7_fH1d6^e)Ef)~xzN08$s0)b>qDh6lJ z5D+=iQD1G73L;%Kwv18(tEQHJiE|~tTy3h9sn5;C8|zB?$p2!oOrri7!wD&I_vr=% zs<34hyQ$_>X|qK9A#-zEtK?*hbCz0fmz2!a6*$!`^RBa*o+l9r2wxtB^Yr@@LW6bcGQC6?YB)ZR_9EF=h|BK1ElawkkXPX;36Q!8tP{Z zT#GG*U>*Z48Oira@mzy##w6n5OKas_UD?srfKg6}73J70$mSaK+xTpprNtx^87$JhiR_+x6(m6h^i{^9o3HiCT;EKGh< zSa{N5!K)M&G;V#ejdANfduSg9qUn~SBBs{3U@3%)Ii6@-DwtO2;8XhTNus~;z3p?U z9HC&$J*T?)xf20M*wp)-YqE9-a=G!1##M%E6qS|MA{TFCdgSBjk(;_j;GRa1PNDv^ z$2jI)n|n}ZewesdauvZsWNNyL6FPKe2M!rh2 z8~Fw#!ta?{^C`0~FR*T)*kKQF+bb2a*%UT&e2liNJ4LVv+D4n2&|;2uewEk$w@*#( z=%-qb5WiYiVfE=20t^=&pJ%H+R8V7kSHUGs^@Q)fO}Co5?r&Br78bdug9>vdw(!7i z!uY108&)y*rM@9>?~osl;0qF$c`T<&~hcZ)LH^vYkXy73*DJy~iGZ09qG zKj%`i{$hW1_@`frY6nY&hG9&Gj6icIyG^~+2Rvjx0ck*Pk(5s_1(?sLzI%u!J2njK$) zuP_)q4KMwXvz($3s+##JN1qsmXbF>xpC;<>085}{J)b(Xtk#|1*vv)o! zo6M=-d_*^#sAOH)1?4eLRDt2dYI0ut3;+3ioCpM#aolOkIH2K75T<`xId)J`d9; z=H*}qA(wk0*@laW&N+_7jXqe7SDzV=7^>OPDAoY6WT9P2Y3a~@q0h(YS3)V1uHNb} z)KD3vxgG*Bo37bF+@GC)M=ps1T&OHDk5Xa;i)JB_45Z_G%zfd2*k`*G3wau^- z`!w1;me7awld0@Q7P}yt<;-YvSh_)Jw~6{wDWPtb(-ac5;1T6NlM8{f$5VaZnkTP= zWUAj%q;_r*?-LETt2hv<(F_Tk-_{-(nczI6MiW!)F0*hP-%bpMPLhu#v`+MAz1lX> zpZ01<{m)eQb(`fT8s_jN6H`UBAR5BCQx2Li_Ui{F8ngwmrsInFI^~~(5oM+)72eEABir@`SAAg_TI;2J z^i-I0-xE5pw;QlGOq-`nWj>{Squj*L#&jRHn8`bm`fZ*X4X_FSCcOIxPP@l#sRv09 zHw%=x7UYGMlu3B-1PB9Jf#Ve~azDcM9h!a?GK2o_tdu|M&?vPethYRG8QCfjz0tvE z_S2Ci`)*v;7 zC)&-H@XMxDo5LfxhF{X3Vf`1NwJ!O-7@r<|DY!8Ebe4KAF(Msc(MuXveSU3=)_u!?dL5kk$iY&?zmwnH=?l5 zgu%t)mV%_V74heCby_Fst#CE1v{^v6!;*M?Ce759{rv>d26JRPG2x^wBw>NL`BUb= zKjb7jl3|Nih8Htbm9koGom~=X4*V?fe318Kx!Zujb;{u;9ALXg#9Bs4GcgA%Z{|XS z!F*X)X_vei8VNsW7Zb<1OmVlG+#F||wb-QYvHz>pWjRV?4M5i~6rt;}>d_06FRM4! zbq-X$m-UkbZR0BSB(g&CXMf}5C$!g&Y%R}gML>R1c`AoqH9dab|BuZ)_4;|`1b3}HcK>$d8Le)@lvZvL+pi!(!Ca4P5XyS zQgZmL5<#nkJD0=e6Y5#W!=z2?jdIU&sKEsFEg0U7Z=UYxsB5!$thEfORI^OCfe8t% z2NC#|Z8Kg&QLBp50!j)_!AT7u900EI3Qa@1u1p}%y)XG_KmRqs>i$|$K{mU8zi^o@ zy0tO2cuLP3 zmh;lo5M5yxmde?8GlHo^vyYE3Ek_hC}}go8B|$qzgJtT{suSF zx^pBZ?}cHG8|*!}Re51c-*ZMw$|EWHRjDR>K}D|Od!q{9NRHf~VKTYN+E*aTbzsLt z1?VlHVfi3a*t@F4FV_V6zNWL-u(h@Y56Lf!V_cd1L^S(UQ9H+ z1>TJI+GOK1Xup`(DIYq2)3jbb?M?7+GF7KNEi(QQj?UK?Waq$*;D=cK|8xY`SK>l_ z!K`ab9xp}UWn85+%~gQVOZhEE$e}z0-!z<)Yp*!6lh`Wnh^?B8*smR%CAM1WPHa61 zFaMV#wkqefh^_XF*h}qe3>(Qg?(1UaPsJ=oZaoW+vhV-jP+Ku)@taZI^*$XO^@pE! zQa$4xF~L^W9cX~`%Xk;DKBX`foDI4E6Ons)o5=lMs)Nko;g2nsF?T8-f{ywnsvwf@ zF8uI&@xz6KgvG+6xHpo2gW!PV$H=}KY_J+2b*4Y7z3ohYUVF$QfzDw`9j`O~4g9~j z3*9e=?#mq&{eiK3XBr4+4i|D8Hg+YqE65?FEz(f>@K(?+`4&%!{7qa%?sjR+An&h- zM)H0A;hiLRWhLKPlDCffJd$7co+G&$h)AxsjpV=R{My>>Cf|C3|81ZDf2O!Y02FxU z-cE|Aynz$E%aHHk21j2}d}o5MdN(FGA7Alv2p$Yy_dqAzV}e70qKtoiF$Xs$>VJ5M zL+&yuk)Uidx+PQkY4zFMAMrE0ui1z+!b z(Fr$81sUV$l%L73@NXzc`CrcXr(m+qC|Ie}*TdtE_y{nV(lE`?&kp&#@@VlMQwQf~ zrw#~hZ4O8L6OLmO0H78i$ZDrz&vxV<=cD8EvOVypsYQzeQ?6nq zQ+4A?=%V|Y68}VB;cd8vr9UQU{^FWL#BQWv(_7#emGaLXizcW!U^MAU9i!QU8^;WM zXBEEevsrgNVScz(;{SQhv>@M^VY2;<5pUBwI|s#)Lkw0 zE>A%RPmrWL@)NfVLW}KKeYYk(@?}EcETzrcag>}}DtK2R@IU+VZ(SWW1#+uZGkSH) z*<`%Oh-&!)Kj4;|j2Uq-ZUH7!6yM|~C3A6ozKg$_e=we>>Zd3yNJY7<8^V&J% zEC@d^PJfHpyQx|mKO9Iqaoe#zZ28o>>m2!ve@x2%7UFzU!32LQ$>{&AAr$nG<3ezy zhHY7uLKhNoohPY$j(8LokL*Cm=?CM8{O!WIXugkPGRigb^bMUR!J>K zR!QxdRXVWq>xiq1JKYdH34f}uy(cSJdKnyb?GMo;O7#H_!MV-goH@$VE`NAMM8s(8UA#9X7XOC4J3lInQRz3x`uMA^T&_&=qvW*z*i-ddGOi zcdt|LE_~NdxP+O7TaAb+{BJR6Jvrkanu6;c`=K*m0vh5sX0DZTBaW-*3L$H`D7Y0; zlUyQMSBb?;yFy^K5ag{HT!Ma^I;@iuRlvE#s=|$b4$E?)eb#OKqbK2c5i!(C#EAxn zjek177BIZ-GXBvM=+EaV?@w%u!}()(<4^2`vs$T)_qWB2qbMZUrT3L%1>8To0G_l>^nInJmCE+E@kz@Y)KXK$G zOFx$*ANVI6iI|ATk&NTu;fMt{=Zk!W<9{Uo3jVVr%NFsA`Dx3P#b=Cvk0uwz_;&y|;@_D6EdCN}RL*v54vEFIchR4b*-bPAfXVm`%bjl_pA?w1 z@d3Kl<@zQXmS}lZWLcy=b0~AVR~?4jYrs98dnV403rU@Ct1GJ-ZYVy}n-;dU9%Mrp z7J+OH_cB~Ni>#rHf4sy*x;g2epi|aaF4SfG_)(l65hqH(P1E63#ir*m&rdD^v;UE3 zYyl+MxMp30ydNHjt}gvTr-Z1SQ-SkLJeHSa#lwBtRZ;6nc;Z`*Gt{Js2Q8YGzDl1q zIp@QglW?#hzZ)&;iNz;&ylL`Lf!o0P_{B~@{!*cBj9JaM+{Ml5K{E(cm$V|{{u1o^ zf`bKi5u6YOb>pQG_&xtVGz<0!>v31G^(3sPSy<@@vJF|cl}!xpHRq|)`zE#g%4%_` zFMB2H*5!vszwtkb!TCSc1I%i*5= z1)TQpV9K8C;eFr~<}Si_1YwZZaHz5;D(UFdp(v7dAdl^y%L{Zdq^&DQRG=8hn<)(W zXW!)&Js#`y5S zl#)y~XV{f<_BIVw**HPb$PBZT8Rm!bCkDAhj5653%h50;C7IGS3f;yL)<>fV>%CFr zH8cm8b#st;%xeSX|L?1$j;K5g>_WHhJ1mc_ie?uI=glaDyE;+^E|j}5Lq3WoUr9X} zxj|bFr&y_$8TJa9B!yBE*U|`X4F|Y}@7BUhLEg z7A9=UM@=bxsW47o;n~#^87(KR( zi;jTJjpt9a+eYpHg-1%*ZR4-x!jC(I?PL2T*w(K~MmHEYC==XN5I>vFvs5r>5KGL8 zZC@{vK6q63s9kbuW`LHN#$B~EoKsr3VBEBvnlpJii>IZ9-_p;M0jL&8YOiB<>{vRI zbgQvA|K(s&X`ke}@unY}NVv0b@~2>&OxDb+!u8uA^dfNF0|sY-V3r-xT;$kH)q{R~ zFo~N?a6zAR=^Jw{)GXO4Ov1$ZM8Ewaf?SpFMymQ!{=+WwTBl^4eukJDIPFYI+xx(I z4kVi4>5!Tu6XMP5YC1L#HBNMfgM>o%_j!-01u^60TTMl!wO;BCfd0YvV2F;lP`7Mu zcBzgaEYAgPpX^a{l=)G9b#tist2VMn|Mgvw{>jK4syQ)PcLMhRIKn%v$JBnZXU*Ze zd~p*v?D7TX;)I-MM;!s^5%LmdX%fIM36a zIuXy&bsKzdsVf^CgTiKM)XBluIzc5MA3{?;A1gsg&%-^{9p-(4F<*lcY}W8JbgMV& z(Eiig>dKlA5=v}{vxPzTB&P56wdk1YSl_alSwW%)L*VL6=|2(;5AmB>^-<`4?ZBAv ztBRp-s%xe768=2;RDkn(6d8^)ysGlL zvNsOQN&2nlA7kT*)*4Ya^2WBQktUf|HPhlNA2!FA8->J@k)F z`{OktBWFKRZ?>*sH7COJ1>C;WfFNPRM2@5u`h%)i!eimC*d8;sQ8!utu{XH-c|oTf z+jE<*RYk@XLppomzV14*(Ub6j7ai`@RwT!2&(Qam1F|@9AazBbo`kdbny!*$6^tqO z5o5S+i&Czh6u|k0IMU8kp*ET${#k_(f0T#_%yTEil?LtQ)}AHmxKFF{Th6x5Mj>dS zeftX=J6g&d3jVwoC|DNNCJU#5iT^c5zN1;*=S{&eI>_qm$}KCYKm^%^Tiz|qb~no{ z#BALNR8O=&Vf67X{PJsk9Qj{ahSB&n%P=;6Ju&*e8`A) z8HWx2AJ)zVKFZ?i|KSpe3T{-QQJ}6GY`hkzVxp!^Fvtcs5|BznD_9h<>RZG_5v&H2 zVAf@6w5U{Qi8riq(LW0Nx^6Md<}?tIrx+@rG2a`G0?Bo@cWg0^<8GAI(0O zd1lU>Ik!1;=FCE2E0O)g7%;eeKVi@7Dr1XMC9I4FEyhc88YV&-l&5NWqFPGY6HR)1S=c`V6 zu1#h7Dij+s2lWx;M_^gb#m!Vmf8t`5zC4=mE8+tJf1z|L!FQpCbwCju5Fu53ub@JR ziI613r03-NaVl=H+3XC!!o486Z};ouyDa+b{Di8(DEXcPg)0+0MwS_apeNoiAAQ~F z&xQI8 zBV;7t51a3?W~BddfDiq0zs{YNrrPpe1PZ4#|31HarMbvzB9yRv!>0B=@^80EZ94M@ z%PsjwQ=27!N256Z7~^;CHmT0pQl0<9rB>4_-5Q)t5<-pDDi9x7P=TKl&3RD)V_hVj z=?`t~0VCs6ki`9d{KzCIe9+pP(N`>>k;kCl4|!BZqNzm5GM>soht_W7(&m?y#m5E) z>1B1Z(6tvw<3D7cIt-Cr5&O2AYpva1=t0w7mV>q=p1{=Xzl^^Z(Z7^|7^vLD@dY$M zwiLqR2oycH(1sKd0F%jTtma-j>l}%?gQApH zaJr17X^Nj#*tJuw=H`$Mr8*MXclDNkd-gt#6zt*7y0tymx@JPdIdN`&$+5X0F#SM| zGgA&NRun2Cz{jAh3a7_+=$TjPe=Lp2$I`CTOuN?G$HpJk?&CD=swdt7{-+s&a%b&& z=4(#7u23zR+EvyuIkrO$FI(%(bBv!k;E=BP+E!Z1sWvt?>#@_epzD#IaCzn4om{Th zj?0%&pK`pkCjq zC%!0Czvdh2mKU@Lpz+#AoIRide!o4(4YHm)evcZw{j5dPukO<>`c)6TpS{qjU#}1n zB7SWq$b84&l|=qKYwU^rx>8Iv6{u4?QOtZRYJ|&;3e~wOzTHZNt zn$IZ_+GZws2+akahUAkUASn~)6I$HSBK$-+KOylQkfrcUO*dw{^@%$G6;Xs#eA8sm ze`*N!CfQ-$b90@Ol)U60wf~L>6Vo5u%Yzu&M{ZP1tdE-8Z{^9sO=;iE;lW(L2!isX zq@CW7$h$TD*||E&A(8is^k*a8vt#`B_TgLnZ{KoH`_oA^YBdgU&%)`?`nYEg`k?gX zYxO_*f#v_n8}C22?>D<=;q+&%?pd_!_Yb@0uQsH$zsUa{%%xzmq$b3V_|H=9yZl3W zC#LuGJoo)%|Jgtb2W3CQN69kx<_z92G~cDsz-mgFSLA=Q$Igw@tsltZo9i^faAnwj zod(${B*V0BOCHW_#CeMzOgq5gB(|0C7nRfw@s62pNBGN1<4jbVYn+`z+koKJWkhWjxi@y}I(g>Nehg ze(x0T`-WMXz&FF}ymgLiUHvBTRkvx(`JG?;>LN}4>51f@ea{XGVGqDHZ0eRwX@6Z% zQ%fKJUi1vT&U9C4l!as%DsiJkPv)S@y`n*_jQt}u{-h>ThR$ouwBVh}cz~@Hw8?nH z0>5L)zW5zCecUEy9ZKE1BDb^_sV&uv{Et?xHpp2PDo3?Ab1Tk@UB1OTBX->uoZ!c8 zaf?>p&k?%i1K+Y$KJYJW)#^=e+ggyE$a{E>?A~`33ThpSPZ?4fzpQ9ve0FI?>*+&) zpZ$NQm+H5^WPjDwT)Pi%iu9y?5Sbv0aD?Ngz0cJ*iTVQDO&Aao@xnwBd>uUeg&v~u@;>z+9>#S{ zH7JTt^ciaW4lK_GibUSal#x|m#mL)E_jiSD!89_q-8=g`^hWHY*UWNoTqXv8hpMzQ z;8;xBTkZP28UhYW&QMjwpVu5nnOS!IcI}Z|??)Mn!fHR9yUBW!IR0FHm?$~G?gqEt zfMv`kUBclrJ`_+LNLHEn0msLbgJ}G(b5Ej3By}7b`y^PAX=6cwgML|MSjGt0?g^f5 zNj+`hDIs3Ru+Fg6UuS6Jkw$0*zo7T~`Vc zgfBvK@8K1lBjwNEdyh$6H<&#hZk?l!3J4E9E`6P&*`5{f?4p8j3aTYMWvN3yJ*;}&fz)*5^;Ig-^)^jbsZWW)Gq341 zplm7T5*}zE&A{@>Fgfh`jt=h%1P3|T@TGch|3Q~qbo|-tTt-MUs|~hfsh-%->7+&HrHGi%zxjiSpyCCw|B{!6>y@*yUOB!*F1+-h-ru2bvoAMu(Y(t|pUA(T%Rb!2 zu21GS1J-uC?=#2&UUBNw+|XQY8jIAwPpH=AB(6&651iX%ydIqY5u`+C;eqFYf7JY* zx2a$vuMLG1A#Ze_h91cV_vrgDkskGK=+Rz7k$!3S7ja+0xCZZutjc(gcR%mv{(BPa z?H{SXHYY1I*Bs^bv+}cQNEJMI;0*E45lj}@A=D zZ??0!nn=n}rS0e>rn4*z<2mw??YB|yS(;&euC%VBM=d8}T&FV_-L`~H|Cs_wA|@y0 z;NNmFO1C|=F*ut`$gf{B^Vy*-k$BoQG|~3V&ZK}n9i}6N>d|rP;}G?xNc}1``Wdij zC;9-GFmM+NZjuS>8~RryxJ#4mkYhj`{6-UmmLS+%e)y$%4D_7$Z4QAwJ5ywn@P8qg zg}O)UFX2~0Y=!+g(J6uw;Q%mO(mRQ13C~nk%MC_MXOrtqQyz}8?XN0ea`#m zl}0b2#*2BY{uK`mH6G3v<;7*aLyZS>)$C`=bNVaP=#td=hd*1syz*FUXZ#}hkLRxI zuYR1yNvrSn?ufdB$VL46hceTp-1<($rcMku_DE!Z{xMScq!X1fum1BMwWE~XCHNS$ zjz@LqRusggtAmXvJdz2ZUPj_~hLJGHoZqOf^(8NKw2wFU+a6SvSp{;*2WtvdL4V$k z;g)|d+OZ*KW{~hK^|gdwjd&HwQxJ3I!NFOWBQ~sa)@YQQpM}TrC9*hqtMNVq`VdD$2{RD=8v~ftg$vz+(|38V(}F^eJ?LZnI54h5 zM7;CZyf36zb_M>*e}i<3UjyrD&>!<(hyE_I5d-}#Al%SxJ4WNXB$Ef&`YMQbLiaP< zJIN#s;A19U4iNVM3nu?AfcFvX3M=CVYL8spy}v2RZN`dsh6CEG|TQ(GK-C279L z^z{hGUFZX&R}{PI7SRqxO=OZSNV#shkCYXZ3OzP9zkc=Sb)WYR&Ar@e*(H)1K6mGj zc8jRnKkF7zRgdifqP|X7ksrx5IX1W_Uhenf?%ng!^Bh{)EjhlutrKRv+rA8F_7?r_ zzYKKp0E77Wo|ifPZx1!*LIvP{NZsdyYx_9=#J*Sed6K7DG8Y;)h8i^mBmj9=qU}?> zY`quDwThV(sUtysk)PQ@IbUPK7cOuLg_q8d9ZEQ3yXT5|~j4=lEb#k)` zCbXymxsfS8%FcP0q`b1_v5`dGegjGw6yCg~@~Ial|~5 zsjNBg4<7D@y_$!+25#nZ$_%g_O5kie7W3o$`%G#jsFNA!-xXEhhcoNBM3o-;4snR8 zDj7f6BBYN{z@UKgv0CTRUj(O!gC|dgEaH)ndaV7xUCRHkORJGnTMSRLC zV9aAhzMLYg%7Y)(a$O#y3u4tOL$1nD3C}1L`v3k%IfuP59z1AG$XSKNhdZ->rkMR1 z|6$`wfQT+&rlbL5Wsd8SKf5tsH4B*E`--J$aYQDoj=UgB-TOk&1A5j*DYA%T+=%h^ zA^?dkLtMK{MON1uUi};;KImOy0GOQ>JieR0LN$<*W>~=^O_wpB3jAk>GVmXVt0Ax( zFLkl=NUdz9qdS;n+n28)rWf|*_-R{ZWL7+}iMg2DXQYhBwVhc%o|ANO*tf}K|4g_D zPls?%=q4Cj`>_5Yuy!0BF50v&Y61=Oo(r+qOOH4Z{bWOy)PIMdn%olAox!7{dd+XB zDcZshaRP$h*=^zX$y~v&`bOB#+*N5&!59p@JjFkp16#A`JK%*iVT3AucStveeW&m` zUjS;ePzaqY&K@4#*^F;xCiK1@-Y-lJvCAao;cb?o%UZGz zu9nCg;cu+*bb3u+S*S})#koIe(6(#1SkWXJy7#KLYwr^>PpBOCgY#;&G5AQ zKSJLlj4ebLr=y|f0`bwS;I$8!0i&zp$$MFe4&QMYKE8X^(DDd1p>X&?+zqMC+l4dh z33Cw5A!zL&rwoK>N1cD!9hFBPNDw^IAm+8oh1Gm zo{W)*JSew76;ut+W4H8%|8yu4Hx=fc3rWMOJI1?3mS-Nq`rPj=VYLDpxWcadx4?%r zgMWLWcZmN!02?mHbRcc3$hw{xD!3_LUfP5)E9J9E52m2}o?#rR4Nq4xLZUDi&;uscA4#5bQuO;9y=f5(F5nX>YY=5Q*0Geyoi(EEG5Br?_V25%jJSx75W{S^U z{6{~EKfD^nQMlSa!&()a18mpqRvT4 zBb!p@)Y&M*Kcm&YM!H2_RcMPbL?1&Cshl79ygRgcNhnAgr3yHw$8mO)H`d;PKa_U@ z>cas$;_FsgxMMnI4RFA@$im%H`gXS@luwrOOI{M>D_TK5xG#>pg|}8yBsUHGiMRtR z!5t(cIzI1u+-sMflr*9#Wq!0b^BJDrh%7aG1lpGI`rkmZ4)|3DOR`4Y1YZ6GX(CvP zgV7l)2oDFr%c?D|Y?GJ&gXjV>Mh{mQv_pJFL7s+u9$IZKs*fqFf!{$i~67 z7U#YK>@Xa%3-!oaaxQs6hf=NM)m`)YX~#J{1Qca-?YO6!vrI7Wb!DGvXu%)3{c*B&)-Hbs^wH9AdZTsxOw5o-XndDt&c#9cY9SDr92LLp%sT8{b)%(ytQ-^am zkEPqqbMI_bvCn4BvyM{p(4VdO{n@H!S`b8UHGg403_Dr$yM>m;+S6_XYqv)lSR0!f z?L8fFJ$*-&!`o6(f}UoI+2MSb#x*h)e?zIT^!2cKX=yNA?&xd9_2%~TsO3GM{jRs@ zAG7)vfu)Z%P>}c4*atcLdX@u=jDv*58oyK=9mbz()(8E+SFq0TedU7YIlH{_4C>)Z zXZ%trwBJykM7=D!_6%rdrN*6+|`fL+RV;Je2!f@~gP zssGFIs{?f1uN=Q--vse}={ZaKk9qtmVDa70i}bfPe!cQ#T$q1${5l`YP#nLw8>Hp% z{Tis%eE2R@6rk~|#_tbPMWG$z_&sMD z$M5>(7VbyW{H>1P!=?NloYv5)>NheP%sBGS_+2B$Q=8*=d!QoY_XK67PxuG)WhzV?I#dw2%~Cw} zbs3e;8n;R@a|XG@7W$uj4)-Q3=upA=@zP2OLhW#ljM48=F`LcL2U1mdKDrKI+%YXt z0U8;)Ktug^tE2yDAw#RU^dD2G|D>vniZ2L&rG;17<&=%wiq%}pQkK?%y`lQoHXCbS z1{o7gMo!aUZ*22<-_zz*VoA>qA!yxVq${Mkx!C1*5S6mOwasmol}W!bt)G&}!)`m{ z?Hf@1rf1t^wsD`gU^X5kWf{ryXl^7Ru>b}Hgsm>-kz~haZUuQ8?_v}=cDzp_;Ftcj zZM<8$M%;MsnTp~wDWt90S4PJ8|HSbYOzar~F12?{SuysK&_E7Avr@p=`zzSbhUd^@ za18CgLCIJiNDs513O^8tg*mhNpfj3#Y#!W0uOpj1R2v!p{*+t?PA!_@a4IVhPPN=Z zi^SJtzJ0dhxShgV%D{y+NCDB-e%el(Ta9wTwQ6Qx^M;jc0V@mP4({6ZlJaOykSUSd z;14ZWN}=-(bpmRZG7FZ-m+=?#!A}xTwTTQ9qe>ia83^Y$_aq6L&IR{^Xpb=zWS{GyVcTh+Qv$QM=HsmdW2x z!DPEmd!HIS3C{AEfc7@%0OSE$p$oKJ7if8*f-Jil2Q)`BsuXiM$!TPqCX6K^lh6hV zyw00JHy^uzBh+MB3+3}_a;`Ra6s3#ANu)!{;>m}OGE=lFBL%E_$CNIMA>a62k) zw=1#k%caxAL3ITyG0y~y;0=MH#g-Valvi6~I)PEJC1!{DVt=CLd2Tvlc*0XQHet^J zYD%IHQxOdwp^Tj$Ther3nuCY5k$?wN%vu4#b!dsT1mpeSRvZ|owrn6=8H8#;b}}bB z5EhNPmhZ_U@_QDAz>PHi-o zk+nLqzi8o|cal{MC4um8x7WzvOYIiDjtSIfd|m=!{wSaWKR=4N%{7 z`d6A;Q&Ab_hmZ{x0J$N|C_oP)LU&jKY2|e0SJ0VX8NK}THrH^te$&8k(4kY(wRsoP z^El_L2I=eNYIic$Z&u4YY!Cbv!HHS}p5Qu0Hw=od(%>?JEdC7Ah_VTM0&SMk8lknQ^^6Oy9;N)rH;Gr(S#Qt|V$ zI<*4dTVI``nr^W=^)M2ftxhdNQX8vNtfIy06su^tI>lO?)v2X;nNsJ?_{)5Ied-CM zV14QVB=}F^`VLd6SfGtU@u2cw6v;A$(B|?_%Z( z53EmiWw2fbS>Cjbt@=oyE@MBc+t(0Wh9I%%4opVu4D7rHtY*x=ZUQpxih-Lc))HS( z4b8@N;Tfo)B(xrb3=XzIMeRR0-+M`ZWnfi97!r&*g>t@BgtA) z_|makdHxg?3kH)CEN7q|DPW}Cz6WbXMkg#AWn7H0_Tq5Go8}1o;Y!$>YQ@MSpmIEU zlPgB^vD|O70Q<5|syW`^KQYCe z#z+Yx>pwtJll}WoGoRu4z6!>Zroc-@leF#9`5P)&AeD;IDM-4EP64j*R9JR4a2TpA zQ^T@5m$ELI_7+M#;@`G_!~WH{pmGEN9=w~qqE5D9moH$o zhUd2rfU1?hb#*llbK#ox47FxG>~Sc*^Q{bIb4XP}hCOEh@$OcJLS#U#*I$NtcRQqE z`rjvkIo=R3U`pP0twU+nDiZ|9lw^w8j;H|Qe7q=Ef87Vfp&ScmL*k{S$%KAlin#$% z8i1tWWk6RoLE)Fjh5(M>E|aeys32PEvq=s(rXsjwl;T`4q?os<3J2uCvONP8CZKiR zdlt_>8n1_NC!)m^^GwzQ9WKDMFm5ME`Go!6M|fV%Kl_jvA8|vOiCPwn;ZbdSPX#PX z#wWs(_P2i$76fXg$6+bAVX@>-#cnA5lnw5~4<=IWSXhJ+4WIfx{(Ff~eZ=+^iEepb3KpTRN${AQ(Vfzv-!~hCR{1G4Y zNlH^u53H-G2?$DZ&+{|{KyATe5t?~jYO~h4tXM+B)BOre;>SJ$N^pppolxG7@++l0 zjKCQf-&h6JFadR(AWl`=D^b;yM^P0jve#RPoJAy#*$PFq2pb1jy|aic~=LyU%^ zfdHStALt7K>fC)w(~$TV)->UW^sU%t_Om!=rYQC$DbV|$Tq^sg#y@PwvxMKmzQU{V zCG`o&Z0HJWOl~m=K6Ev^RbnBDSBnsi@W~9}sK~k6ir)}(RmE?J1*_sW)O@lomJr_% zM1A(S)lS6+FBzQ}-+;c%lveHIt*jZZihC&ISf=70YI1@=6mDmC=)*99y`u_!zz!h9 z|Mdp{wN5+HVldB0FH0xFBhrkFODgF9!3ho$glNsk5G#7iIcz_2)g*!@kJrzQ|3fMUmg9m(@0CHAj$RN*%WT z`5PEoE$vxWR}oi(X`D}GIjpsbQDu0vvCyl3yIk}tqAKkPG>xsvqQjr=mYeDYhTC|iZ*at(bgUpw7CV(sDM0eTbPuI8S<_SU7D4| zhx4q-h-T@r>l_50N{mYtvPEBqeN`N8EDP@~3x64XmD8)*hCo-;A_k68@DvI}>rex@ z`J{3n{o-Y9Bb^(EybYvZ>II~YjB?b<@dMC_xl##dPHcjs;|N-!E0-zeS`^0dY(~M@ zw^&?7vd~U$0DPE)P6Uh(K8RtoGhpQRN}+_c#|*;^oG8*cL1{|H?{sM@@%%ofnP~#4 z=l54kNUFy>4p@cOhf;p=Dj0#~qaaE~#tmu=MbAwXJ2cluVUcP&!J9!~%$H6A{$e&t zrO~7V42b0%8}=Kdy@<{hWGo6}n=+o+x8y-Y)l6g9V?|E7FFYBy;GF#)3}d(;RwDyk z5K0&@3uWh*gf?JuVl5OlHIO|;bD%z|4a~gNgt*8WIXVBX;{1DdNqA!k56@XClTlhH z53}nn6)oJ#_RwuX{DMn@`0VVz`%=4ynwa9U7wJCq%rg14zykf9Da>%RDU+CzNN+5S zJF}RX<3ZlB6_&;XfJ!{#vzQH6HkS^UeIU{?t|tY{0$t5w2!=C@IfR$QSqxKLvzT2I z0K@d+)@Ly}u;FFKvGn5TMR7IQ6UF_2Ue zlhc2;R~G(HS@?(O3HT)a)wFJS_{S2k7>J)rB4e(%mvA|~mq2tHF6>Mac{Q>Xfj_1) zuaxm_)9&emN=RIUV&$X`$A}AM*W|xn$K}FZi^AXdc%!IlDq4+cHkBKhN5WqK14-%X zmy>;v{WX`wWuJ{IXW~?msR0laYj&x?cPl)mnDrn9hqM^zZb1o}R zlsUWmkAi0PgAb3TfY}6UlZnw1_lamKe*FuwP3S8$$NM`F zzmC=?sH0md+5A+10XTdLv|LyqJXTFN1`|3=1E!Lj^a)vra{dvzCCK zV*efKhTJ@f+H=e6;H3y*5AgyL$HU1+UFm=w`VO(_#3vJoWfMceDbIX%zoI5UVGb0{ z1Tn$!%t0zgw}V4naqNnIpF`#o8Kk=Ox9Y^0e3<-WDTmtsw$!Dk8I{?PV2q!O6anY?eCkAEtSxD zwD8PC@=IcmhZ=h3QibjaZeHDz!Mm5anCe7$c`8Dj&zEnz2U=*?Az89 zJsz4$2?4ks(lj7PHwNUCMW$rKUJqnK2jB*qNFk&MUqTyF*P9g`H#XJzpjpz(yaRFq zAC`o3a$@hj{yNHMQtQAo#&1>)H?xMxx;n=|_wK(<*NxueBf}O)CM-_Tz2Dw;mTq*y z9<940zPnSr@6T*6r=7%32(8b7a7q7$ZBDA@sv)kxRi^k*v-dcJZkh$ne`nk zz_JCfc>-9_k?_{xn@RX?bir3)!H4&cn zczPFyY?JWF`0(}?V&&{#t@a|Da0Nm*&<6w1G=hmg4t`4#@SC5A-wZc?U|b+-+y&^{ z3-t019EY;=^++cKV0J!EB8nld#EMrNs1aD!z5rc7`Xqms~!PA zl%@u*)+1GDx;i~@X{0LCTb&swi&XW-`0lOl9T=gls>&|Rug(tSTO+D0bnXL?*dO_q z4Y(8$w{6LIA8N?uV1&(S>vPwfgI3LIe7A4bYmS8YM`CU~qP}JX)FY7O6SUeVP*+4x z1+40VEp3(FiT#sb+DWS=e;^?(zcfv&y+gg6m|uEg;1;B6`K4L_S6b=m`K9TBtMSk| zzqE7UGCXvdQkP%aB~XgTuKA^1iKyN!zqDJxi-!#9-~7^yz?pdKo?qHMa4H^pJ+(y*>jyThPv{Bh|5FobzvgrjX3}FDM6Wj|iuu3;0p}Kw`_dN4)jM-uA*OVAPX=3@=N;#y5XUJ zerbQf=*;}mGh4$b5dy*Q65y8^A4SL{V0TzlkpEseyT~7XDRSA7a1f}ARph;!k7yvS zdeu#r_K@Ll`XkWi5)0hyAzv>%+p^GriI{9)s2PV z;hT3{dfwH|6jPFjZSMuOo8v_R^Xcf_^kdN(E`4U6nyNU@>xoK!bs09!)St2NkM+Zs_|se zChQTEIc=!1-JKZZvEULJyc34Z+nD<8#6fhvx1r+>2F7yc2nADtp;QVmL}%P{!jk=| zTrim8nAFJZcd;F=D5tQ*=(ZC(jnlms_#ad)p@A6A`C~17#O=S0?X*9NDzXg#NBx|X zfK&9$LDH=}ZVYaxC&OS9?s&Qrb!K3rDjJ8a zId@Wisy}m+yjA(p<{dNrk2_}izrFmJ=zmKUZk86wmi$6_3uoe3M3j9)z8NdC{ z920&iar{yQzm&G{Tl>lX1N=P4j9=Gd!_O1PPj1g{^t6TF2Os|&elwfvmr;dn=$CsE z>WV?Xi2mwkjh`5FbTxij!}og8KQpgsuAedB$HzChnRif&F{It!Hemh&(iDtw!bJMpx~H}AV`w6Ht<%4NF8I(_Q)%N*5yAI-GP29KrD}f)DB>J=6x`EG(@1;{g#rHl0=Pu%V^M%sORn&`N{bIFHm-HGr zKA0=OveJtcvvNtFz!Ua%D@vPBU=GUpAG%4a)!@@5B2`>KDU{4TaQ^p&mTPjQRl%&( zSe9bfDO_^!V}0G1DZa??^b(xTbO-udpLQ~?Dnp1N`>$6n)`tMwM4adY4Q#=;8Q18r zW5ctsLb17kfHEjaF2@`L1&N@f9b*5QLyxd)K9bmUQUI%agqr6hkUZG+!J{eO25`C@ z{ta5+>08+3X=2Zd?t)ws+4S zLQgtp(@Foj;44j0@WrkGRw+Q212FW5S}ivRA%;d&1{P9|CwzpfE(SXshfi(SBbFG= z*+A)1{!FX|H%m1UXsM-0wu859mfeXoKBNByT%60V>eIs~=ti}0E2{+vSl@89|BNL+(N$b$ zHayqd4HgA=29eoZ^bomIp()f+xEg8W2@<&>N=UzNWpZ7E`{xf}w z@mk`2@3*}8fHo~D?+U0Uh8O`puP1trQ~ty@%WJitF*jBlYPaKo&{gu#X+9q}y09!P zkGQ}S=gMO3cLa3P=xp#WuR|@hL+)e4%^l)z?s?mtc)d!KidH zvRqmK@y9)WyL(8^lg*s+*RjBc^QE`?v9zBN$V3(1o&Jm;O13cpHSt!tyLKr zT}eJHL_n!vuZD>i6!H8tpw})XQeacE*o$F|YWvP2N?7f4J)9pZC=gJw^gJ7bQn-ru|4Lv9<#DQ+Ct$-M(GlW<{}7T&0Ad|@ z9J!Z0s=b6GX>ly%XOLHApJILU0~xktLXEOm$nzAxa843Te{_3Lu$aJIx2huTrCUy) za&Qx`JjK-~2cldm)g$*RDu`G=qNp%|lKA{mDeo65{Cxqa@a2F+Dqw<90XiDJ5!BHM z|KSH%`;AQ&?+0-!QP;|3G6J+<=?yv;y@vC%5o6<{Q4D^tVr=kgKKU(~q7qc7M0V`p zC00Xjex7ENMBX6YMUQwMJmm`PKbrpq@)ps25PQax>xCK}DPXG6LmFH+h-@MuJ(Z}^ zX%6RtnU}FSpn)oQyupK#75Bqd(8fYP*fN4h+gM*j0wD#TWc=;LqDB>egVKt=airO5ydD8AdTR4!IcJ*1<`P%zoKNzg^z#EMz6i`WjTR;U zpf4usk@7;UlIYOKxXyuj&`lsd;`pua(1Bd2xC9-%uW6T11!`EEKh(;c$9$lqNUA@l z5@+7RzPcD^-WH-}xn~Eu@;!`P!*O3L#Hvz{T%Ju_^Ymn_Z1Z_muI{~TqBfVYvn-QK z1z7VZc~knyn??QP$If816TOOGFcC!7Lg;sRk$6VlV975Hj6r8#o^9DL-mw#LC8NmD zC@6-jF`I7)j0@fFlL;|flSDR9>R$J^V0S5;j5{|OL?NIXG7QK1BHR8R{+ zttJYZ*dXV?i9|~^RobSlQmWP>CQ1QqAPI09wx-JM)#~-qYFlk>tJbS1Rue!$w8%@V zAhm*T-N&O9wO0_7{6F6{d!KU>65slJ{yYykv-h4^Gqcv3HEY(aStCT13cp4EjGvmR zhPv{;XySL+Xns<3Peuc}RqE`dhquJ1 z;vR}p((-2>hyB1cVkSRXb;uaOL`h)eOi@lXFJK(D8vhG5g&D2GpYcpE9MlgwmsUA+ zmvm?LcJ|R@_MgAac_=odRdnn;L-!A%r!;Qd_!uqbX?(LfdwkfECGW#NXchl;EFu-s z8LvQ!pO^q{xy8-Px+liO@WWp)S^R7)L5H{C+}N?H)h6>*#x3SwCx1oa%#~VJ66Kaa z+LW}MXdjMHUVX5HH;33?^NLI6@2j5NyHDK_5VC)f5%NHOvXLD1W*s3%LBc|j%o8Tb8}xwnZAe3CM?Sy~nH|1QhB)J0ZhC0{~rD^FUhW=oS# zt9p^cZT6$b$VjfQJVJE z4jFb-ua*{SOW=RcUR!Qt;R*sA#=VMtm63-Iih~3z(70xwjAY6j-Stwmz2nTrf3OM1 zO9zRYktgA}+7tKyKL&rw=Y@aFr-T1m;pc2WBkt3*f9~gnAN_Rj3qLRXNuL6K@5sVm z5dabTepuO(P2LapBX6H9@Q0jL7uYKy9g?b;G+-+g99(qyOrrHIx)yj83zcE(-x89xDGUyO}wf;A@zbjjh ztA1;&{R4pR=u?%O)LVz(8yh5r0wxhkttzCC3OW76_~VHIsx@4U*i|-lT;J_|?ZXKz zBh(vL;Y#r3%4YSVDtBX8VLb7RWmFjV20*2F@eIOO=4xKAVa0RPQ->j^pY{(Ni1~!7 zlu^dgT3Vt7wP`e+tF_pVTKb{9=KD)VaXPuO_{)o@6<3O| z2EcT~D~HG^f^*pS$f8SvzZ}?4O4$QGSqDxln>N+!W?Z6%yZMLdL{5| zG4qZ*OzO_Cq4v||Yqw=86DucZwG|js(NkFL)D>5Qv9lLXEuNsmlSOJt3pWSY?>*L{ zSmQ^1B1;rrthJTE-ZAg1`#3{60g1uM6?dq1LSj#qH+P@LsUTE&^NM@vL15UVFj4b$ zoZHmd25pJy7eNd-H9lfbTn;%d+^4|prbTLPjxsTZX6s`<57R3e_w zM4DcuuIUx?_k49~r1=@r0sOpc``MAO)S0$EuVAPT>h=E0Tt;1$_gy;z=;(3DUX4D{ zEw<}#vGxy{FJ8?JrYn)72`j*3*sYj^gM-$P+vpUK8xChO+6Fhqy-VTaEfZRf)C6Xo zX?LDXUVz+APNGihS52h(4AS5Xnw+eb zWTUIfy99pPuLdNM!WXF>R*S|VtsJRVCf=y>ez1FD%TW8QX2!kRe{};Smiw2Uo4L5% znt2Dd83fXg4>p0+Vn1C3QcK?D?(6rv|9X!5I;EShk%uZKVLXiblSXKGhEoGJiv%_c z?*bO&|1&&XkeB1VltBA=9{Y#9zpbrT9h<3}?KYKC#teMv4+e+zl#1w|wzBn3LdC!)E+~m7zKc2b_g_$l z`$yMIELXA(T?^9KU>fJ zO~akgV=i!4R0(0Io=fbUtyCk|li*mnPNk?V>?{0iCf6pFt$mm$E@-H1Z`CagXL5pw zsc+-U?EMdqJ{Dpboj~xHlXd~eS6m^$WvY1=wtM#PKHZhETz03{@rIkS-WVZ^xcBm3#hjWP}HH=%lY{U1XS^M-w= zMGx4mCT{evz?mui@GbLf>RvLZ7XZjl0)oYi$kZM~$@!8h)1- zGhg0gQU{^IycP~qXP;xNOFu{cYWy`=J6wRCD(|unfjP&D^eka|;T_A4^?5eM?xuWI z+1rsDcI`rVRE^r}=G$=6ahH%s!S`zO)Mg!nIP8#HxDr1=d}t=zFV z_fHpSo7lB=Qp?n%XaLsvMci(`gAD=8ygLdY*y<{LG8KbvAG^SpKK8 z=DhaTrH?-+8D1;i+VuuI7%_Ar6nj+9!=j_s#lQD*!%uHU6?laf+*!OG01VJq&%A0# zY~!o3_BV&e{uFZJWN+HhSOPOIsxI4hF&?_e-~+B${0_WX<&7J}{5OAZ&bptSK5J@p z`7`HTc-xLiBr^ls!6X1N#Q~4p1!jub4fn zBJq#n-d*;!xh)onKLPuu^8hLOownGDtO?+BCVxUR_P?}TVnwB9gl&u`*2ELf z`M>>dYft@^TAk4rq_lw62&fXZYKy*Aw+yro`QZo4LA9<-AkoXtjn`qH&0F2yv5;A-WmmobqS7z^!`|ba`Kjo^r+Cbyp#l>yT`1u_qgMwSCy+}b5|6cG5 zHMiLN+iVJyn9!7HCfV8Q=Ik7hE!$!PuXFn35Y{cPB=6_I9KZ3em(93yY) zwW~WCcjjt-T&zZ8`M3Q$+;GoOEv`k=sGTUN{rZ!mx$W9o@oTx(U3Di(6dMZBYHFfo z??#$mk)%!?fngwP^KH3+6Iq2HT3_&|e6hv&$M^}S%g#B}U)cnf3H_tk%UU1Zwbev2 zD}Ac8c6s9ln(D1Bt&kdY#5Ko}gd;ke*t^FT6ax}N;KPj30IL&s&J8ld)G`_-t>muY z_g;Qkq{s-|+X|kuCop1l&Qq0G8`~8cfv{l>?XRVmpiz1^r6mukb~h$0h9LaqYH*R1 zsuC-^v491oWk9>sN}vCJ+5qNCJ5{PmUXYldYkfuWFIe$!{EOm)_{g1J zG)%whURC06ndKqH#~rU#sukDz>_e3KjpzsB-s-qFedolMX~QUdX8`2R0LW{ZMNJ=q zosE+sW=1+5%6-NcU$j;{GQAUooq%VMvEd3#fwKzSJXa6ygC^z za}`FGXeyQXXyxtLHs+^tXKB*2mJ*HQYYvfynUA|^NpOEKFd4tk`_FFBTH@L0{2y_p zA~%a3PHKpyBIa8fExVv7(!5xZ(rg|GELv7g{0_b__H8G#I)wqshAEaSoF-EAfS*uC znawY_7cBthPk~M3)JaSUmC*WD;D&$P5H^rONXO&PLQ>5tQh8iGn%m~#$?}_KlicmzMh|M$9rOf`MF?*>LdodyrpG0xZH3c^D6P)juZyGf(;jrpt%u$Lrc4qP3tZPm#)<1ecCQ$D? zejNb)AMmHOi-zGJ@rV7Vsp%ht3Wn1!ZWQ4f-$b}x4u#M!ss*K18?&ez=e{Wifh9G@ zSyQz=tk;%-_#1!3H*%1*Vyi!T?^+nB5+*e*wuP^{_HhJuCsVQnx=^UZ}kKV2NOVv{c)0efve4ujgxPi+15qUqY23Y6))+EYHAY z!FxW&x|Xx@Et4To@GRlsqm8k!w6$?gVXn=-<@U@Wnl)`G%^l&6Xf+B%&8p5%-Ddf? zm(o2Ppzd>lN!qMEaHP%9X`O`$E0zAs{-ntKJ zmO5%W{qUj>x+AH}(ut%-$=Agros~$-Dg;|1i;^dYl(a-AO7@L3HwjWm4x`k_FuxKI zxzOGghi@&>xN?wFU#Vwy;zSA1a`9cM_7~X2)@E2UkkgxOunDdWnB??1+(mWUY?NY) z%A~QuV6PDN0Y<;bLK#SbfxR=LU`FL}?|f`i_#9;>!u%?4=xMU)GF42<*DOrAcWEu< zcE(!9@y!aJ!;w+hZql=N{uFP}fdW<6 zvxcyHR4J-=^t+n#;t-Ok|<( z8F{d-S1#`-*Kgu|FMGczc;AcndG(L*zBli$CjLTQuim`tTmLKG4br<9iNQ*gL>{W^ zg$?3ld?v0wlsEGh1pcXoND0EnIMJce9=y;o*{!aBd;hFCSI_>=O!Bo%@`X(DS(2@t z$2X%I87sg@?Lz0Rg^SbsbrCJ4&*-RV*gdAcceGKpH5cK4%tMlv_3Iw!NB6ci!>; zMbjX7H1V$gz3f)@=(rYiWBK=Ua~eLzfz9T{kNHmji`4%i>OZqTj+va+`Yvh!Lw*k9 z_Pmm4Vh}qxgv%3G6(ai0es>J_xrX+;$3v@0G#C5g)Z+a4Tv#CE-O0t0F`8)@0DW+# zm{y$cj!3zqXc{Zo&z)(bCntaJ7Jx42$MIehyJFkT+cgk3$@|AWgQH@>kfLN|`T`~c~C z=EDh_WczRq@pr5d=gE6_(arK|yqp=JadnAvWVUI?^p9U))Ru&&?6St(dTi7CQR*r3ZjIud9Bln$H9$ETidDHv#Xzr#8gd2EE ziW|tG2F;dd?Heb9CstSX(xw`)Fk35BDW*1OW%0AyyqR_Mydi@1fE?}0bLVqIk5waoOynQR1l(SK@^Alyu542fa=+~PA$ZV1{q!O zhaE+<*0c-jE3bY!N7|tYSY&=S{Qh!K>jA#Tr@!r6YmDY-PTjNsif3sECN}+1zs#nX zIA@5HnAP2=3ZmcD$3Z)E4Ef11in!s|#o=N*_^f>Yh*N~`(1*@H{?2tBsizc)ivTj^ zSX+t4^}GeW+L+B3VcPM>7{?#As-s4A)MT+nwfJ@hNEz;^$AE1g+h#UY*n+4utD3ec z@WfjG?Gx1$7Ds_*<_-HuD2H(6ZbI`c#VJTZgUS`6a(!Qh=~JnTTm8t(j@Csg0z$RS z(v?bHUcD?8-mvvQX7FK+IJ@*22G5wj8axrvXNJ^%>dHys2`cCC#x?llYJA+f%3-@m z;9w#tzoNADN2(Ajo?h~OHR_paEF3hhu3csH-TO^P-;y9l_)(DXKld-XBcNuoTmQOG zrr(7&Uefft>=&Pdes2rSUHl`>xz{;K?izsndiPX_;}&mT-V?7K&h7&GhkyE3P9!kY z&JM_A_|ec=aIeMJ-us+REGT{yBSSc-8QU@TeYx{-q7jtV%G*_B<$H+^?W;;&)cUzo zLbB(>tsAXF6)yPfDGMBJh}H*%TAC0};5NefE>b&kC@28Siizr#i6pJGlMF`_k>3$(RT- zj&K?0xQv%Mh;f(kt@UC37m+)o+xY|Ne)8Ci5@-BRjLq!%-(Lf}MjqKdJaS`OX6Cnn z=09^=K!?;5HpN@{t0)gYp%OSPd_~U4(MvXhGv=>bf5@)q!#NGVj!rrjB<8k9AIT|i zd$;JTJd~{qcGb^f;lQ!_^bX{%q_!W;%sy(JEl8P^-?;%uC?Z)=Ab@{**r4QcGfDdn*#}O>h5aUgPUnhF=+8vGEn$xez%7d)SBzg698=60TL{%o@>E(Ue~3pNJnWyms=L+&?Hkn@|B;8HxPsK6@u+{4>q>-)fYwB)^J$M|`r2IzSVz&X z{OOoJt~q!*K`jnfvhLhu1R_sw<>A1(zWhC?{^XX$4bW^?yTB#l6T1FP!A|RT>@KR*AA0GRAbl0{h8}QK)PjhgQx$V7ZVz+;Ht>Oe|O3U5q zRc~+H^Yv@;8h1~tKWTi>w}=av)#OL_@q1W!3yae1uAW68@PYqwnjLRZ>~7q1k@(jg7%buBUeIDg>*=0!%K`zwz-TPmi+J8By$R0=5zArL9!G7AxlAb>4|B*YvozBLByU@DB z$V|h(wG;f*AF_dycKma=v(IMN;pJ824b}Z$?>V&!4}NBVf*EZ^Fp2vAf$Kj(Gx8pP ztw!#;-uMSe_y@?NfctBTj*$G__O2^`xGVqOXxp;@Qm@OUjTNj&)eyO$QqbxJ>yJF^ zr04kGkPv+zG-ykK=HC#&BKC^fQgLqx>%q$m))a%adv^$HqF||AXOQr(bdV+q(u4rg zAr8_X-nCu<^Ku7iutEBL8d5mcO_(%yGm{|s5n*U_Z-fZU1F5DB$ALn$Qe_IL( zdO5nKx)1za_LV;M|AAQysWzEq&&O}R8{{tj!q z#>dw>*YAWV3uX2fEq>$|qhWO3{~!|B5F$wqQ3%@Ehfi-MeRw*mWMp#BP4Um`+>nK? zA#VI2_oSa?>mUg6AVwM?KqJj&KWE$`q9szS>(0J1&7B`j2n5UZky;mN%bSl0{gzQt#Vr%tjOfHA(Xwlb6ti{~hgh!}S${UADR^ONv}Fnl%yM*`i6!+V ze!VMvY*<5iSVNS|QEDhRnjGNA$=Fl4VSma^*|f0vH@UZq!0nDcCEy0BDIGZ5zB4AH zX!w8O%9<`}MzB7Zdnu{l17r_3a5T^8( z3{MnJJ_4NdJ+aWD_N`))a+Dwz^wbz4% zcT)H5o9vnX)|NU_tSnaNzZ*3qCYAb=$s)9MoooFYTeI<$>NI|DLtO+1wW5);52|M9 z^FVO}_2TO~F^*5eV$$I|-DuTs?53n0+=hhZDp9>SUOc9J@jN^*S_c1o{RKF!75qX! zvdHP?*YjgI!_3QXIActwAc)Q$r;cF!S;+}@x)$renMYm-_#%!8Oi->lkq4~A2^Wt|Kwy>sH|bbT|KjP zmD@0|zo1w!=o1t)p@1bhbnz8o$q;ya@lcypk9HR-mP08W1@ogryVR0pr0NcTv%OEm z-(P#eA6R3QcF|1Pxem|AH4*(q5#{0gUh~++JT&s)H*y>Ho>qU1H|Kw#Z+Sz<;a4Bv z&3RmjYX({$!~jl}mH*Z5ym`@vJ=5y)8upB-KciuoUErK25fF|WFVa1z)0kp~Brr0d|;t?FE2>0Nyq7%mYf*R6qt>sB^= zFuFc3wIbTFlCRfAVDl4O^)=7-Fg2&A8_ol}k>cN5@7-_DG$VZ#pYY=1yPSV!11Goe z&oo^E2eA!eI4}5x0k`WJuP_NAs2GSDICM8J#G&$0m*>@5p8bmbj*Dl)|O9k+RRQ>u<0FOxpA+TYGI))TDM;Xj-8!;zM& z$@$YUPtW$By6V}EjQv9)_f7|$p~IzE204psV`57O7MtxyMiwkIcyYatjZ`<6@xne1 zzbYcX^je)EYT#uG{AE3I|0m47GE^fuQ5k4n`~Ty?Lor1g5$MfU0}7(NWKd?xEub=ak(z;7UVW zfH;=*q--N?reDlG*tvYSsW9TLfnUvRL1O@`whA3gg-*DM*fwTa-}rNJB}6~DjzgT< z>qMHP8ac0539?)hWc>_c3Xu(9w7DTB#SUf)NEO(-ut>CQWn_V;{>V(W8FzAve`SZY zh|XAdc9;>^1J(X+!5?klhsU8niK#Rdb{I!YqRynER;L;~JMK;D(0fO7@+a3Jn5)XR zrigA*X{mYr<7MlvIykwV4|WJb`CEabqulE_+ZNdNoURc{E$(AQ*cuzfaBxoipRji` zrA(C!DIzBnno*Lxa*vp+Gky_-*~51%3>12&ZV;gPtGDp83Pm-B6!OjjM5OU{kcVU$ z*WbyfiiVCcbuS`WB27o}oyTc)>yw9(q?qxyl^t$nFLY&#RkjJxxY<=Sd^m=?bRn{4 zpQm}8R{uouRi17A>rqJ-}Q6Q$6sa0M258g5V z!i;~hPOVS&Q!dWt-+h-{nbu(t!dDlAp#><|IEc}qh z!jR)mGi(5A;N`;Bhj?M?Dw!zR?l5y;qHRiK79%Bh893 z%m%~IGc)){*6$rXI?_B(_&}uM`k)yqTK3#^sNfvn_`3xQ1}px32WcepEEFk%@H@~Y zI;JS+G02+Z->A=w%m#x5&jljRiH1(1E~e;)YdSM5x`RYZaxLrmI46h_?-+jly}uT= zHt_71SQ0-3#y=H#+g#d4>2-*7(BF9H&%InY3~Q|ncWTJN9- zy^>b-aDT{iR@j43m#YN}7Jx5So8@SI;}D?NwFwLftWug(vd`v|e1&%jT!LLx37-ijzr@2_m5E zkV}M(m+iQ=FxK&m#(}ZT+9k<1{M zADvTC`eHpmEwq6Fyu|um>5ktSjLEgv9u;Z)4@yJN;v&&RW3iU87$EhJ z+5Mj%^#7@Ur~kiWDb>0EID-E>{a+htoC?f}C;Rjn-35D>qb^p z+25`kfza<`s_W&$!tsST3uOKOF>}f?Az2^$(P5-tVId>^Y{irRCVr9o2T*Y*{2n8v z&y0au@AbfSZosKeZ9$*Z-*}+d2J*40EEQRJJNWqW;-M#mY?nNS?jZhnd-;fEKPbkud%uhi4myQXXFGl^J*G`7#Ix!YRKxiL`sI zv(6x+PH)k3**lR%>Y*~&uf~L%{euI9uE!Xdq=v@&X>Jn^bd$>8$F^zCZ>79{L+_`; zW@~A+GDY}8w^&^@$-8Iq;T zN*>ju0{EXd(;`jx%3PLFu>P)|ph6wtWEaOXM0)@sIa%3NQ?Yg5P3pM>| z)p+cL(wFKFR_LaTo^=`eg{;^yb^^a!>hk;taVpn% z!^H5hQXEH~4Rp zV5+1tH&vz;-?H{=e=X94LZeM>Z+^9IK&?$c^Wvj0~hHn?=1@=eg zVmRU=NF>HJ} zxmFu}hr@dJN5;6oDzfsIMjKa`WBJf&rn*52c~xRY%ePq1o3-*)E35sf60PLMu!0-y zKg+QmGq+d_>)(NJi|$9Pl}vCyYE%>-?@E*nw)r^l#3`ue_vgi7ygn!DI91)D<)GSk z^D{4|)&GqQWF*&!sCPE!r`l(o6CL$VwBxDH@d9$!VJS_l*C8swln;a%+P1QKKjZ*O zt*~d#K_T<(FO{1WW{3g&egY9jUG<4XSjd2It7M1&DGvYD!hclw2lbd?g}&K_K4EjF za2V{CGnu>dh5p>v98PB&PCo*t&ZMUJ>GTc+Vv32Et^Lt(EHIqpCj)|JC~I6TE3jYI zy(Ae{zqQKy8U~UVA`5;_mh}2MUbZE&Xptx-QpQHLS9ukPrZ8MVY(yK8t$LXSPV~aw z%`OnF^Lyi$1^>(8t$tKP>1f?jty2NqMtL29lWeXa-k`eL7zDE}N#(gb>3M^IeEx+W zNzR4&Bqj23>EbtH`rX{0>S3);jg*iSjb`xs2{dZH@)K#KEr8HJ>?B8@+8*}DId!Ma z?S3)uDpn;ctC%yc*GbbD4ug%?<>%DB4w_4%MImi}xsO7!RE=0S$vgSr zs!`jk=$IYTp{s6_IL?xJv0)y=uB;HH+ThVdDwa4&oWOu(n8Ftv-g@w*s8?BhvOlS> zvok5923u)#6b|PWHiIyh)a#;W*x`=qXfD>%rLG#n7z**A(wVh3n|=E9b2l&&sX^qW zQe011;z~FmVif=VpW?r;&CV1UKB;vKxbCe<@(Czu_4oeZlPDpZZ%Oj1^pMFmFWLU# z24`GaDXn+@oA(;ZT!4wF7yO3S2eu1sjv~I;!bRjaD--xTL#<@L+u2%#=j{gO0k`tx zy=g)%hl-xP>I)m@H07_Hi_DK%@m}+PPUE(S-!ce`Sip z>lwo9nIT?X{X*?*znv&VYLVjsR+u6~&)H|~AUnIvk?VghZiT9@z7yj*Y)AFWta>14 z;4uGO6x3quLJw*)U%PA6fUuSuzMxv@ZKYZ})8CA4CyjBtYLVa#4RMV-3Z*z&V{+e7 zQvJ8Ht&ZE^PRyOS);{O2Kj)K>a!*R^W=5xTO}?=(bEflp}SU>Rw02AlVa}A`4_H zF&kwl0^DozRbbg2vAHNoD&54k|Vc0^1$Q~>EwCt%8A@&Q8$gC$jZjJpeG2^nN zbky=cV4-s*Q6?i%Cdt5SoKA*9GPL>|UKA3RTJ~^#VYBu$Rg0{wY1KGY=1@$CjVDP$ zOcwoQ%oYQxet$s#O%Dd;fB*_g{Ko+)4}hrA8vj0xqKUhW|6Mejo@?z28u=fT-x-V_ zw2rC8lh{^0Gh8%B%bv!$^8M5|S+%HNs>#2zNN#G*_G~3=#IZ3-+XX5$R$r}Atd*9j z$dz@D3H8uj5za10nu`&}+DoYk*8j1xXCjOKf#obdYDX;b=fHCzK4OQKU;>X(%W32Iy!+e@SC`?5X2F_fz2x9SeI zbbAQqSZ5^16P+Y)vR1xDqvmRI!GZ3-RF&uPSdy62Azjc08@WFra|CrnRQN zoQA@HCyxO6eXnw;{*+K~Q8+*|fASdsGnTz!IX^ARdAQKp_^4|e>}$iu%lpF>ML87@ zvlB#{mRbj7!x20B|NIxi87%lJi7=KK7U;jnW$jrG5sv1s*67v&*d4us1x>iAoBiFP2ML$dBoFN5W`5&k zZIMMkz&@AOkE3O4B8$%BO)RlGI%;<;@kDgjmMEd@qa$`lbJw=U%QiNw5%zT%= zmA!4;Ap(mla@1xPpQjA#!WH@`V3I0r_UkI|iCaV=YcvaHH9D-YHO1B#hRF{?FCPEt znO#`t|5a5m*{rIv&DS0f^DbhSV|A)8f7na8wtvj4EY3|%G9$zG(D$^gKYT*zhxIQeM_Rr%k<>fZGW?tj(7iZc8D33Bc!_^g2e*spm|O+X#SWi7 ze~)&9@8;R~e8^2b^ZA;~dgSxI?>au;4jl2hOgs1g6F&c4o8$9Z$LC*Mljd`mRp+N2 zpX*ung%!;KtKVPN1FLI`ys0;wAhA9<@*ta0mBn%Ys6A4IoS97nrwxFar2=b{=m^#b zfedDuka)>d0^CAaA#C*TI1xHCR2x*x8&J;0X1$``pmK4P*jNm)MZabH>JE&K+C`qz z$ivb*j-u`5_5R*rbp2_6?!68b`5I>ES+li5d;}@ZS9SuYtV5dgE-V7hmO6{;wwO&QZHR0Z`fZWq&MeB*j|=0a-X(`f2h!loye&GtT$a z{UF@Gpw$u;M8FMNJ?eQT5p^OG-{snEu><2Q?5jp>h~>5gahReb_6UQT1ESv0!{TMD z>W0M=ZJK2knlHI)v^3$_(nVP{vSIKPwv>tQtPRd&1-erxbZv3zFJ7p1I$ZRQ>|ge< zQx?sVMS72W)F%Iz_LftryZs~VZ96sx{|4SlWt?bVWlO_;Yiax;h~HzMxBI@m!uzxm zPPxcE_+R1oQz)0V&i1E&>r-i%qC#o%;s5&>4b$0ojuQ^M#Q(AwZd|946^SD%C9syr z6=QPvGnx@Ve3pvk6wcXM8M*JQ64ZvasCQNgPJ#6!mAOR2X{Jq;{<&}KT%z7Vk(rt; zYo%1VU>(GP&C{$Plad+t2w+7@k5N^a+c2jrr|#@0&nknr8pWg>Ex-|9cbU#9vhy{% z{q(8e8o63R88Q!hDk!k51v(u&*^CEi5h~jfEXMah8zqCBUU;3 z%pJOhwL_;58MA?UH^kra&1`C@cSDkQBAlhk3%?&9Kjnp;LQDGmdFmUViT_nxrgfgRm;)V!BeH zxE531j8*1i>9Fdn{@?k)vMJ*!p_jFIYSG&q8C{#P_v8V)U}6oL(F zUEbq=CaQpp1O8VJAcRp1$gyKk8Za#K=VXF2%_>rKCWd~Iz?3LVQzVdYDRtk5*b#s{ z;V%Li7d_^23oz@mfr6|sy?8+VXHM%1<_lib6-ReQ+P_iM@ibe11R4UUUuc*lt8Ri{ z7t9~>n|e_lYne2X!*xZP->su%>+vsd33m4Wda#}1YyO3DdU<{C=DhHZhosBIg^4H} z_N~XnVI0gc1mzQ*T#5`2{+4-Sfxx;zl-0)ZU$VSh`0Hjn3mn7MsR|t9-uQP~8N=4O zwCPGJnK`m?{D*&1C4JGJitPH_BL7xp>b5TRH~r!lxF}L>b*)gZbLEfc8h4ZUmB+70dXoYJod0%#F2F7jZ-BNbL`lZMlles%#{o(u6mC zzcx+UVW?}Ks@}oFvxQxT9AWVoK|3{CW@?!6O7(kJbwt}=C+vCUSPoi_;})p5R)`(o z=0Rg^PtNz|aFn+~BY+Z7ohd38lv)e55>|KD5_)7IiEh7S4EN^}Pfv=FVZIqhr`v^_ zHZ%SbAd8T^OSyb^ViC*p!vuDQzvdrKgwIG9GeMa6Cj1*$wNv2nbJe!s{5oZ$`n`2&|AuJ4}NfL-kW7M5v;yi+X(6#J?KE;SmM`09qeq8;gALx86Fw>{B zTJi?pRg*Jzo7PWr&k*~DmH3xm!1S>$(?6%b-3rBlQ7RZE8ciia7;K05LNJ^lvcpIc z_+DNT_apz+`%Pc;vGEaF~XyJh9^j5;( ziPv93wwz#MOB9a!m#9Isn*FrZr3knEi79!d{@r?h_cWET;(PK)cq-G~{Zg*~|0|i* zgZ>)!A0D2kEtIwRKKpqU&tjcN|JKoqCf{0X>^ZAMyHIm-jQK-IV5XTuwhuOr>D&OY%o{B4RhBp6+U+_+_0uRAM+0a zuwaMQvqUIV|KSgWLFGf@4~r8y(`Gx}^=;B(rvGp~6!Z$tJ4@^PXc5W723c~X6H>Q) ziKiY~*%N2@O;dYj3-iPeI6?OD8gT2Tu)%T)od4!Xu>(_>ENM|M_+^f=H7HY8xqW}s zYa-8|->9Xyyw^&Ty5Grat0d)lm)PGrqr-Dv)N}sO{>vLR0t35-w3z3pL>9-jstmoB#xz*+LKB45v6h21A=s`EE=Jj@IaVuFnkZ`e;d7=S0Z zSwTcw3OT6L>`}LW$8yK7rt5|plMPrDYl-=@C@uMsr*bx{3sH0bDCFbd5Ny9Dh>~5N z4?yrxr_nyMFogs&Q?)?*d*zAXamjmP7bipg_$)nY=#yLW`$)ZDBfzyoDC0{l#;AG@ z#fO-5#$10&Kc|K74o=FEH!P?!=nQD=A;RA?{!9MW#&F(WQlkU!9>ip+kcEu4Es=fP zogNkf4-M)HCZJdPu13P=aP@n$IbVlTz108S+0HWP=<1A{|GR2fj=$lz4yDTg@nm@^ z@j%iglBIDZ>ni&jS92$$%}AuNofzZU(@;$>(?qY=Lta_^me2;Otl^m1v05CP$nD z-9U1_9Oi8<8)ECEiT=@)3h4YP}K>rbYJEzbM%G@2AH6Z*c{NdUZE zEjsE%tm<_o`#mxZvZwMM8N-k10E?%}-$F~r#83iL$BXlMQ|KRj!0L_(kqbI5iMO15 zbcr$pgBFuf4r3hVx)Q%llrqqZZvj3(siUH6o@8$14E=NU#}c*sx}zAES8Y!ISfxAG zOFqjfZ7aJDgGwfpuB(3|^%rqVZL~#e^_-_*4$dfI(fq1KO$A8^f|e-1vxjhq?MUZ_ zHuilxGyV>@#B`qL&2sI1sr0llIDO^a@|uwGPTU)O1F1|-xneM2&qL5SI%U*; zo-;Jqht2-v4>fHYCWJp7xeu_QAYVG5zFS>$4v40bc?G9x>%$v=^Q$tM5@|i}dZp62 zj5#x%_7_jyzsrLl<9^C7FP#26xO@K0^uIQ%|F38DA70JU5vJhYlIcHO;QIg9PW|5- z^gqh+C+mMbJ54xQyt~a!Vo~)3-jx{g@;=K>>c(*M`0uTvY1>6st!Z|r?-AGVf`6ZnC(RN=Q>tF8$O`|N_yZ4IFv%YX5sg^ilzPw!45Asmq&BANYda8wVBQx zmo<*ghM%+es9zjDO83FV4AK6__dAVnn;-mJquCVcHh#Rt=gh)?(20T#kUEsKx53p} zEoh#Mqn54j@b8>AyrFbj{SjTY-<$q59H*CCH_LVt;yc4Hey`3A`?&a=6Tm%_N_zbc zrbpV?8|Y>Q|9n_17+4%q&u=)rb9kZ9fY51`?9ZQ=jTs60A*r-oA>>py{>}K-h5jM6 zJ2m9bHcM&->dd}_n_kucn#zR2g$7cGc~T5?hA{>OCYlv)?XcDFe-GEC{_+k*HN~pi zFo)SM&;KeNbe4f`P$?io{QJ+|uRHK(^7I~A+q!7uPw}U^;#ZU^>eRP)Of9k5)#hTy zUl;vOEsc}+ht|^Hnrao=Q!?~+jV#!|k;xx^Tniok-*@A$Ya6Y3Op+E&d5d^R^~7^nepUlIBiV*fbioZCgL_o$pFUz%izceL-og##s%g0 zXVg2_G_7@*)8~DOi%kyUQj#(C|I{PS=ephGommyyN6+?wjE-0z&3#YK=j$}WRk(g& zSn>C0Rq_&$z_vQ0KY5`gclskP?KGSn0-veekIKm{A0uFmzO%ZaZzs|oij!P0ezN;_ zOxVA=q4aWey}zG-fH&Zf6uw>D!6Ca34n%3pK@_?hYJ~ov{o8H)lf3BTs2|GTw;laU zv+ZxTlEds~9XVduLHg>Ym-p+l&9^}Fr+;Ltn>I(DPs;+9XH2%g9 zI_mIIlb%gadrA+_KeeZWwP(&Abgg;9ma-bQ1t+4ou#+(WbA>&U& zP?P(u6W^Nfy7#|j`$(H9Sae$sv6{bB-w?CJs(iZsIMJhAS!V`oo!S0ZcC8`~Tm7X% z+)S5~g5@UY(55l5a$K>#5NvKrnMR0p!P#f)4nPiSdy%-8@9Vz50~$*8yoTqF^3r{E zlci?snw=dhV?2lUR{qjNPJ&m)2D0? zj{R(BMo~T~I$PWj^(Wi>Vtlr_ew0QYFr^}Dj}K2~?Y~TXe-+w^sxkXSodl||s6hPX zp-n_XeR^x%00V0kxZ5p)dS2nMSr5Gm=)z4iF9Zsb|DOeDWL`8^8u^>Ub5=<8GyM81 zj+d^+cB>8?;Q=+7)#B5$F3WBOc3=8FiwaEyJl%b@vWT039YeG~VV$%pXWR*7)`>kf zIPrr2)$eo~ErGz2Skpd%fAtyJgU1Oj6M7O`$>mI{p+400*Re*oq9vnW9Mxt1@$&L2 zkkH<+zvF`GZ_Qi7J<{)uM+WYHg^kT$``Qy^h3w4?E^XmQCa^+LR-Q_DVktlw`SFek z0#)Vv{qJNABzrQ33D)m>@6aRG4w^RQeynVl-Yg^Vd$$KmKN~`s-S%4lQXC{i;S%jU zOkY!8lryGr{A$b2wuduhA~4K8g1LBTxDgTcOH|UE%?gu`{!x0OVmp>HdU3SWpBXfT zo!Gp}mLr|~+xB0!WGe)_pt~S`HS0;m&puBz5LICNt`^=C|9F~J zI>f&Ef7VkvuJ{cChE!@0?D?xjS*Lf;bXXVu{nM_X0bapPXGkZo4P(g?FR$vh5jiVL zRMO+ETjwP9`3IIlZ!_1s{hrRy)!}>*B@-XVFFTz!A$RBi?`0esB9HyUZTu(aBCom* znyhE-uQZ^)ITl@vrC2Tk;#634x0nbP)i3LbM~i*EkZ*uxXe!RP-`k1{`DJ=O*5zuW zQQh zkiqvhdkz>K#}aV2O7)6Fu|^`r;6I|6IfmhTmDwBIUwe?WMUOG>D~Pec`PBq#P$4!JKRl@EbNjUM%W}?oOvY*pQb4HV4PX zqy6UFoz#^e+1kVo@4s%8)V=nWK$C863TMY4P^po8xA-F!AsFqc$4?77RM$ADLoLh|Q6gZ&uR?Mu4VE(RgBr z29YX{3@p!ATJ@8*_i6&^k$SIIkS^sC4Q=YNPr(bStJrAwBkTebT`CPRD2O>0O+Agu z0ScGV#%ui}%#uXW&1B2mL8YxP}yf2Sz6}ccW(+o!XWBl*0cAhmgVU+tyj6RC~sdI>uJkF}z;G{_P&!$d=vXeALInh=MJ zG#U}&Y>fyTK~$##k{XNcm)%zTMPUodi?Pxpg#4;f`DX;*8-nkP`Bn4P5`CY|Z>;4= z(7)h5+kZSg>FC?*zeL{?MKHmN3^XCBV$iNouhk^dMM|qVq)S>;xGWh_RS2lhEP$CO z{vUgL4^|c*Grje$UUkD7w|@lFAH)A+O*klL3l}F^mbSpb8}0YZ)YEPWxw19{ZX7cR#`Zdu1p1 zsglnGU+ae;KD9Xs_Y|M{Hk&ikj^Ov0U$U@ zaPl1~smH#W76DKJb;M1%(g=J==1+gziNTQ?1Uq@-77VbIK3grY)0h57gOLSZsi2fc zJxe{1ZkjGwcW#ZA(5SS;U14ImK|UD99Q?cNJ*r<5Bs5Zp071TyB~plhAuRx;iR;&*?E}Fe)2Jf!t@*%UI(i^SU$Q%J)FpNfFpng z9bp2of7qE6Ntgzz)(S!5IgHop=fA1ZV#_SE+I&L!u&&Nfx(<(%#&k107@vxd-*r%A zJ%94}IHIi+{~ka3GxG19S@Ac2p~t1u$3$+?EXr%`IM_4Td$oY4y&wfzvrideQ< zJMQE!wHEF5|20Ug9LQ`!ng?rZyvzNqkIELZ#AR*#VLk!S2BELn(%BfFuE}uX4Sv>M zOE>e*Wn=~H!LUGCd%%=qwX-)$W9HCJg&n%lftx~Ujc=|HHC$zeGI5qAwuA{kOzaL5 z`RYUqmqFs6{~PIOk2=>X;FR;pzu-kpJ-~NIa~U`J8aIMSdWg~jN_wQyf=jwoX$RVs zQ+XR>3?eJbcj*}#R92qnWx=z-;Q8L*S#Siejpt}1LMo@O|C3I=$x9u|E`0xnM@?|_ zs?QJJW7M`SXSaAUd#=!UGZ3WNh;p%(8g=^AyPaaH&W4@$7a&BWn8vOT6jQgfiYH7N zwRQ)J=`tXqte9eI?F|&uHut_Xt;4AERCm{t_`)^5DV$2|F@KiWUTiAQS=L~q8gWN0 z^Vj?BQgC*BgyrWL{+ohhqre?l;_dtGxpe~?ckI(w|96{ZO0*eUCOzOIdVnPPgVZrE z_|8#1{h$5ANt-ZZFx_LK07AD#x{8)9$L%LtlEr~d?vv%m3&yeO`874_Gs%xn^6yst zk%b3{u$}IBR38|_^35N`mZ468czKaAvcWvP5#Hrq_JM6RUH2HJn8&+Rk9tEzW(s*$ZF@>+bGj(E5l~M@}H(|9kbWwNh@vp$; zskJNl4hQ4vOuh=CzM?oKp9r_?jDD5ij?pg~dHTaaAhs>ZT2PQcvbGF9h#$PPT5|o% z^8@n~ropvx6i91MR;_=}$e^;+FKw2Q{<7T}mmZMxoB!rA4HDM+8mBTY={HMn(ZCZZ zMo74xUSd;nDE}WVZXk=v)S31d-iNE$A1d{@t>1XJX9h}e>E^g97>7U_flk1m|$4Fri^Fbj|FD51;kWU-ztrc%43k8!*@h z#ac5|10};lH~|jluU-adcC4bzVfc@$15)PO>yE(xVcP;31};uW$g%HY_SK9zHtKIP zF9f(8b1dX9IR1+=kOpfeEg*rNjcnJ*qce?^Ni*Hjto8*h?$Ss%$;!A(hib4N-&)Wk ze$YDu{FEyd;O95%g`X_c1jq`pLKC{J+W*PRZjsVJk1|NK=3BEtdA9|Pu_a0vB8(mX zsiXHFPlJ2XvSeS)XaC0yfg0Jz=D#`H*z6u#RBH%mm27jkErLOMgJqyc_Ul&fA^)=- zW%O`vN>c3Io*`^G__6wM6b!{<$K=b3efa-)1rJ>4M#2mr+DH%z4Lt0m)wsVYDkcx` z%Gk5X3`TGR(jBN`dR-=dAlsdW#gI=>VKvLEOa#@rRu3B3dVoF1rk*(EXeM$%p+)ZE zy8`Nrv@W#qgo<>znM(q%`9MorYo8u)x&ciPmedC+N*2+YQ&3l?jcZV8ga5?+PEAs^ z23~WjC5pmCNth@P6V)UFH7W1s(ipJ6*()>ye*Kcaq}3#W3)Lh+4Amq74b>#U4b>zE zdTH7Kx`8eUM^+ZKXG`#G<$3mlXM@4>?%-K)LbVH}Xb?(KA+P$>PeUnEs(0!<#P;v! zN^CQK5nnU!79KD;LT6#ze0*X-Vx8q`Z_AErTf$g*q=-E|jIIm@Xm88x!WlmvZ1PAWwQ5c#sL z-%AOx=5l_!u{_mU=dvtM0|LvFKX{#l60^Uo8iJy^wp5J}D2d&232%w2>PqrW)uM2w zz|CJRX|T$F??tDkl~~DcN`#OzKs!U|DyEJavA>wQ0?Sm^;*aDf>u*QcP)h4>#}|Dj z{mtO({zc}_%cX?r4X1TwTK6 zx)hj<5U!*dLU@)^le(#M*X+sa$JOz(*Z=LGP(QQ(Qv4=+Xoc)=D~9jikRN9n^7;G! zZFX{dtl6*ZrrI9+|GDu0?caP{{j0yQf494<-$*7B%Y7Z+GZ#!1$F*@MnSNyF2ae&6 zgTADu$dcYOLF#wI_Ct%teNj^912bHaNjY!(kN1zd`ZD^53Us;DI{l%4)vB-74Wb(L zuU7q=p;6@eM}U<|0)QpnrpIdhP4^i)*A<4&Gy>E}5Z%DrBYf;K(5zd|Nn_*C?)xU8 zHZu8@?mKAo`NroOf2|$5pA7fMtR_2QkZyAKvSH-@4Nb}iCxi7&O6wEfDQ7=)>yw)$ zuvwq9>KElqzot1f*au|1)MJzJXi1u5Of!q(S383T8V zKl=YnEBnH^PAgj+Krs`QKx(#D6}CJXq9r2SW`Yyy2ikLq>30{Y)qI5E#T5jHXg+}n z#cHlW@!O_Jh9Wg?f+uHf)YD_2yX%_s71Ch zui(yoPQQ$nJ*yK>=M+X;zA;1vf_5s63DTY-}J>HLN{fW&~;}zuO zYwvlj-F$o)&$SPLnaQshW?t<##`IS-6`ZUE*2`PARX)tD>jMQgG_SJTVh2 zW7rX9@PBK&$;7Q#2L<&oDbIQu?)omjOhE10B^ryjlL1-d|B{}^zibgU zEb+^bLYHN)(9qSgX&Jw8&Z)u3BYBET&ak04Tm5BN#Wk$7++-coKoLpsXiE(fPSj~Z zSc7L&*nWSNynr_NdwvO1i|YlUycJop<-4IQIpsOfwsogQ%-~IN$r5LQRYQ;^W)7r~ ze||4>B8xPiENPH^x#Cqnkk-D8me_P>cb~iIFU_#!{_{V!xx@K-s2QauaZLW~%?&_X zknU{Iv!;k<$O98TaTUTDj2j(?U)4|O$xY?yr zzxlKo=YQIaHJ>))m`~2=AHONv+#2+#b3eL_^{grO3f2)__}A12H^p{0{$*d-urIVP zd{MDO2|;Z#pJ=!GWeT%jcyu|>{-k-VV&NymAci&Nu$_TN-If3`TheFW&Hjbfu~S;d zPJi4uHIDP|#DDq;OFM6g74d)A8lHQP3jP~-q6oAeZ2pck&6mpzY*x*yCQh*CrtJ)> z8h$F$joC~{T17?*&$8Wze3!P}2e;fl%XS||y7#vGP)b^L+3J(>8k<^HTUl16ZNamZ z=Xpc$Y%qA<9y|+9gy)?+v!ve5Pak)_HPZY95B~q2N=4xytT9Fw*=8^s&aC8pomia_ z8Yid)E6N(JC~cKFL#c9>@Kb+WX06F;XS097-%Rjn<*lmwrY44qy;fa% z8NSa;jR|t}R&^tVG1ntiM)S8&Sk;&7!RH}kCj-Yi$u95>AM}bW8i=qHeL2=1X;M&r zy=^`fPJ+CPKHw(CUpT+TTkUQ;941H9r@axD3+;GJ+7WzKV61X^1)W_wtE}n4iFKwi;VZbW^Ph!tddb@icRa(4Ao|@Fr zQLm;*qfHR#RqP&mRlG@~ESy8sRxhtGk%hB6o^Uw3)LOtClR4jgt{qask;A?6x8U-S z9LLLs4|+$MRzu2$5Aq^SN0Q)v?Y@!bA{7AsZrGybazp2Vhn{92t0R=@_Xkt*M(Nvy= zrfLpAdMu+dXgcb*Ly7l|5%hp)JA{KYKN!_YXk1UOWf83`+)Lq zDK=*wL)OiJ@PCW{Mlzz8US7vboC%$C85KbAR#o5?Of~~%He&oM(*wsE(Gz0s19E^E z_&>Xe&l7!ETa~vPB;$XpEg}BbQK3vk4gWy3?+1G6<$d#g2=>CIMlgjB#_>6eVAY?p zU597dMK`7IG>#u+WzYDx2qwPHCfJpC!`E?wsB|S)>B1~>J-yQ5;>MX^75{DHY&D9` zC9l!3Cx;BZl6__`{tC%&+HokG^Mcus$on9~nU(xq1)A9~CMAEjyUQ}s^y|4@?F&;8 zzPi-_$zP;6m72qb_|<<$=_Pi-ak7_^VOA0IU)hBt@!zB_ZJul{s+9Suez+6VjjKwc9^H9( zBsKeAUZpcIoPVje=zdgcoebI&ILmkE;_g3nARP|RPZ|DoK9t$+a!EP;2|B`>z@fg- zAG}Mbf2vayrMiPcOcsGxcchCVwg)OGdPn>jYD?XcF$i=?Nx#ZT>sJ;(d;XgZCj9Ox zo~>U{tlz99fi^g@H1T7RJFcD81Th?9NOPiT5d4#nu#F|WMHfBF{fd`R0iqdna%$p%r;q*ckI z#mfZJEBHDaQc_0r7;9`RiU-qo+;b}$J*zvY-pA&u2~{o8d_w0HhW7_R|45UyuWVI4 zf%I5jw`$e$>Uc>-ozZ%M8`Au*645ieLAboQ`^S?5B`+BT)oB^Z1H^VygX-n;QfovI z@zX^Dmuh1|kj1>wVg727MdvTv-Gr9dPQNU%lLW`!^M5op>OE>ZNQ5Wc!1&DQw?j2C zq2H?Svh=I(Do-B{U5W%^YT3Y}pSV(8v$a3lBAn>_a+mho)_mB?&aF#}w#Jo(ZeS7U znGVm8hF`*^XxGgUDH(6!j76L%nQU5Ikf?IMr6bsYe~ETocaxKhGyDhsB)KUw2iv%f zss4dDbC@_$Q%qL0oL6M=Kpu5!boL6M6Mn{N9&q~q*$oaK z(!2d1Hii1XJ-)F}EqTCzQNH>8NYh`0MXEEk{K114o69ts!gXvo=RI;`*oO@YdE`QG zV9Ufk5&2PBx~lF@qu{*&u|yjQ8B(~D$nE9pVWb|M?htGqvcO(z^=b#wbLO-lM8LED z6S@zC62?I+?lrY{;k6SL87}0p?x|_b5r{5D&Heb}i*{xNiC=jX+hCPDSlO!Ueqn)c zTTW9zoc8T~up0HvkGBl!8!LONeyAc=W|$XxU@VKeR7QwGpMGi}d_7`%91fS113%r}I9ued_A!F1D#a+``sQ+#>bQ%J&Dp zVFETYEdaZZ21jn09o%PaWB9itINYy2DYo!2<4Pi>!h z1uGsMp7VGf<^5|8=2PSDj=Bk)0d;P1p?u~vbY#I{lCj>*JZ@f$Ecj5f)2Nlv#+BSL zvLSu--Mf-NHC%m{`c~w@zz7+c`xTg=%M%q$nH_GkxIWg*$e~7_u z(t`vX0YTUoR$z`&X4~JR`1O+$s-@eh!ZRJ*bSSZ%=HPpzwgRe%85JZmk;v$7RY_avNcCPS z54)NOWBRqij;C8WZX7WI?BDpG0&c=0%KWp|uec|8G4`qC>okr!)*mwr`TtFz3nIuS zBQu^mzC)4gf1@J7O3gKEZoS0YJlO!SgZTrHaZ=?sUlIstGYDoJa%TFIit*uEA#=QB zgs?(eFQl!Rrv788!$U@U!2WkXvRKoG8>rIvc(Bpx1uuDC1~_q{83)lVWE|Y8g6g>2 zR%x8gg>lvUbE*6g2RT2)Gu1MIO3%m*_Mlmu-n&^P7#Zm+uIwW|HW|yOJQ$JE$}ZrC z?hl;!qZ_mp^2y-$8&oC*!(-z%R?{un2_O1jKGxmex#Aem?bko%tah|NtgYvMfmy`-m0ZD6aX+b;dGX2i`wQ~fM-(t2c6n#r%f@+i0ewynNe-z4_@gJy{Jom%AQ1`iwf zBC;z-wB=kB+@*ng@z;vNGlYcb;1*OYQ@RC%!{?7W=LZY@zV_Q13dCWUQb^3~#x;fh zL~~sT+BJW*nu~jzJ3bQa;EpC&fjl9M!4uCiN$Sop=IiX%Fe^$UE!W*Q-gq+r1wgcw zC5>SjZDvw^S56;WNLQg}Rka)yBdXA~x?QO?HCqlNs2X>gz@O~(`41!>i|b)0-a0zR zMvPzcpd?<1fUxu7R2kIhwxz-vX_Q*8D&>{J#*l+wk$58P#Du1|>JF;%F6-b5>8tXS zzt5+2i5IK9ud}=-9dlcDw6vpcif)-+G+#Nqx!g_jQDnjQ^f2nhSjV4ruCjr8V!K|9 zwSUBokN+Qa?*blYQTG3*hd_XqO`$*p3aJJNr_yrJM2I9U$|9h=H_e z+O-)_Fc$AK{T@7eq1$l2ksJbDKT5Am3ts()Jk<{8g@MGWZd)^I^hei8C%WyO!HYjf zBkHUpfXKJPSn8w%5AFjBjuXCo4;Xk5WV3 z?h+`20XG|^U^ST|d=E8gqd>SFN`cqOnl1Cj66-ZY z1?mesuv~mqEMCO^ulUOFUHA#^61;}G0c1o&2hO!-|Cd8ycR!eLkKsvLI~Q?0^rffJ zc6eSnnrkX1c|6|uapT)-s;t#fYDK+{#fOhi-J%&lBv2oM5}Hh1ZD0It+05uOlOMeO zuA_LBNCKmD32DjV#rt73&uVhyD(AQMnm>NUdM2z(1~fzoai{m-QpHgui(kIRVI>r5 zs~F{>ii4$Cc@d&3tZRIa=gh4Mn*L~ZhRx%9w!j}s&sFef_s281Z z;24zo%gKV?ah0+Jr|Lafe96@rei486SR>5a1V8zOL(5myj^|GUAq&TP4~9^a<4;#u zCp9E%CjUpspBK)~;?I9vm1!?H**CGPb;Yhh3tJF>3VOXe{@iEV{5dwCKd=1vp2TmT zOxwPiY(AZm#i!lp3z55uPt^hODW?^~q5tMiK=FR~+6qh1}kVyRo0K(rfn+j~l*1IxI|_~v~>|4MeGmg4n^@eQ1)nEIV6 z_ZF^WN7g?k3r*wGndyBv`%7Z$E0K{Jjs`UYV z-6-BlTSHxm{a@x=&T%`BXtCSM|4f}gAl-Odu5znz9Lmr_!N8C6NQFCrZXpS}k_qf- zklvv4s!MSj>Nz$k^@JK;xzb$H_JM)sak1*>BVS*ua>)xYH{99W!%O|ao9hRj(B;A( z*o96FW1p?((6OB-4Cq_@Jr4K5g5Z|AHe^YvR0rlofU_Y2OawpuyVD_y?UVLzgtGb7 zE3#Pdz6By3b_}XO%b`)ij#p|bL01^)w$k_R&;6RjyRMX$Sq*hEotbIf< zygyCvntz=^-A)Q!aV?f7YyR}DPzu-GmL-MPX0;eBtm@nR7TOV~%CtFX$TXmQ<>OcWwoX;TRuc3WxZ(HEH>+A6VVcxh^uNi@mm7-hJF> zxP6jRW}j#9Ev5;GRIm||<6i7o{LSD}drZaRF9zrF*sbwWmfIY3zOP$tb3EqM8HMh# zlK)zp_Fu=i^=+}NhTvi!4Z)RW4ZR%^JDd}WJKJR0?=}Hq@NG`DeOpZOY z@sk^WbAJsR|Fj(zz0u)B5QDB7MM=)jWWcE~7tTbQFiVv3^S0=Z&=EY68?0ci8}NTD zASS*^mn!&eCQvqtz2tF4shrXO-eu;E~k|!&;FpbsnX3hJr@&v#r!tORLSh z)aLAT>3vd+AiO5WXw8_Jhl1OL@6miBloNoqCT#Ur!O`cT*oTL zn|~9;bRD>ENU}K#xUSI=GC1o^^a}YH;nkyZU-28UlEr&p%AWVLb*Pc7Jje7Kx8SU0 zZ7wL&c@WWLU70um6UU5faM5jUdSHrbRgjOHRA(+{fhLL|;C#Ui0T(DuhVM>?h!4@x zUoF=JY3DNQ;VA7XDvl<01Kn%TFXfk@U*gYBSQYF!S>R35R6Z^!7Nn}Z=8m(`E#12E z1zWQ6so=K>LH`a_p$n-v-kJc z#CV^9niT_*H9vlw*&)S$xQTEe+z&4~xQRf4)Er?gQAfpJV&$Q}QvEl&A%Bj+ot2hb zCA6?tgqu2{vm;K&U!yjmkQuZi=RFBzlrb7QIu`ND1z%(2f|vS^Gi zCW+BFkiuUS!fUW_6s!beRk@=mHlFFT+RR_}Q4~$V@0FFt?6&4{U5)Sz8@yQMC|6tf zD>HH2;I9keuNRO_*}3^vAI8*8nWaWx7R)O19*m|!cS40mGZx~OXo4H3QFASV5USgd z8~x!IaOwY?8@E@p<#J;%6*oe0SX*HT#sc>47nVw?&u+Q6rE$xpo ztK1(y|Fm~o&ivD%e_!=U?zhwY`9e4O^lRp-nSAP#++nZK`$}iI-)`pu|D}*YubPhtrT}l#vH#&H<-Zci-&v5pxQ7|+a z6}p9p7Vs|0S}OOUqgKuTjgy%_G6*_9Da9NM-Xuq&{7mz z=gyykVyo%@47)I$HiCCvdC~#^I__0jhly4&v7kYE6g*5z;{mh2GMGhR2$nmsldnWZ9o5z=--}{0DO2Zy*^29=X81vws98Tx9 z?(CJlNs?i&jV>DCQ~uAuOR#jLB^dcw=8$AW*+rs>bsVbHY37OlcUUGo0W!HqIYI4m zE!0_JEpEC^u0`19B-BT;_)`03`XHY-L*#EoDGcV`!6eKjSkQgHTjW5+7;(b_p(X-? ztx!70s06*iV3RVs(Bd!49A;mRV12e!o+LAj{AoyBR^HJ0y5feo+SNkN>&w`;o=7ip zJiY-Vvm!?3vWDuzDq5bak5^Rm_hpt%(oY|6zs|cU$9`RHD?8D7EpvAHF)BWn@m;9bm{EKue^-`YX8XV>Wx6&)Tdb8{x0zX8s3qryJL8*F8x zVQ@B3ixDVc@k=_xfr^?NPngu*rG-uh>xK<&We?x6z!Ldsq>Y>Pb;)&8?+ttm^TLF=T+u3GW%Q0g&Wq1^#{ntTcAlT_&hT@utpVg zhWLu|{ED$pe;rhF|4-8Fw>|ZjZL|Iv+fn~T^f?E9i|G)KtS9dD?(4Bc@E^;eUy9=y-_XZNL@0{`#P9r>2SF^8TgeF9*IH{FZN{9qixWhCU&FYqwed zKHFJ8-i3k!;SYLZo)+fA_@mL)?*az%9BkXW5j^~tLC6yKmiOP|_~XD_{l`RutGd3j zJ6r8p-NBV%W&PUan%1A=1t0Up`U8BmYPm7P#H|iUAJT&Sl_(cVHzt0!Anj((su~$q zp3x%)sfKNp{ol$XZrHx|mu;QCRole>U9Szo%^><7N&VaI-?wC_x37zb3~n&1i{H%a zqTv^;W!tATed29uHOnwL3iZC~yVSqb=o6XUjPj(8R?&#C5dA^lI_ILJLbb5$y%TGu zOy_Xj7ALSrZaZ3KAWv=dU`~s9*-kxXh_!De7`lQfS+ga$en*rNMYpbOL(oP*$>u6mu}*qqK)a`mVna*n+CIEG()k{m*`JRe zt6mnlZCBvaSgJ|*Xw<1fpkyEmE3vW5>yyLx4zU7CX3p8)&+jh^(K6Depk!QZP>^wa9J$DO|CK1zDAw|b>2(TktLvlo!LI|b;lqX0p zt$&n&AQ#edw}o9@BJrWw5j#Ya^+TgWEJ8uVApTM0sGwbWR#h=Uu`6%73d&I%6oScoU+A0e`%=y$dJ30A#| zyG^iAO=zUmbW@sSY0_kfm%50hfeg)3XYm>WrO{q(|A7`t4GZZ;E7_K5Sj$$%rrHiY z(3{Q-s!&hbjq=o33F(Rt+69!y4AiEnI^pQ>o>QX!1*3eego$wp-y7Cs&{Q1`%{Nn7-3< zQ8PPMxJ5xGGnAhvBJF#?zo{=8du2f=THwd7V*m1*{`2iNLTzPzE$%Cg*!fS#{>n|O zHA&;5zeg?$e-9@Pf-*HulTFMSMDC>D`HcYnr(#@;6RUnEa+^k$tkbB#6z)gASz+(H z`yKIOhh%YAD>L?&I{1;xAu|cJyN1C1PAW-^H(>vzcGYhLEr26GqL#77S)j94e0{ZUhtxVqvB6!Y3Xzx zgHzl)?xLH2=9OB42ld-H{rR!`LXei$$L`{drNQ9a`e|2t>7{JY&SQ7R8V5)HIor;p zF7e|L%|H3`Q+I>X%s<&&3iD5WV#=gX@s`)~ZhkSRDc~KKJ0Cfkw3*0T(cI~ckYk4d zk_AE|8o}3&BKT6iLmI0{4E;>eqfoIJGInnkA3Sc+h}g?QP$j@ zB-?DR5WqIotEn+Y+t>uwS$PO^9yIO z(8d>XSZFC)(A#&v{~fb@H9i&goj=91F8&nr<1>z7Hf?2XNx2Y{99jCaa`1zG8+q@~ zHToa9&yh{cUB7;;CPj9N#*267U6bZDJM*CUjt^-xS$y=5_bhr;bp(g}lJ&Zp2h#=K zJeUF_DDWx|!C}gd{w+oSmMy3Ju>hSqr+{bf93A;Lk=d&RT&@qtK8|Q&_h^Dm2d9=q zI`2}B#Ei0Nb!(Zsfta^S*{{~hNaxM`nrIzgJ!5=JOQQAY>KRA3T*H|?RhMxth_$Nj#iZ#{9JVog0hY@5WgC zegY4tRI-2X_T>Y1ggc$iAEHS=9J@A$Xj&A=cJW;QZEkTJ{cpJVZ;5|SEom7Ge{f#xjMA39cw(>Xj8OzdIR4n@W7?mb(|&&;|2;DM#|8MCElLyN z>FV7hoioM0jV0A*m9#V`8b?&0HKK)WZBbBh76@b`a`mZYE$8JU&)M%8b22pdYMI$!Oi@|OLBJHKza_B2fwd8nQrVUem+#B%XnaID+ z%1dDzA0@Rhf+uTWNTRN+y{DAd5!Rk(a;B4EEL@7KnT=@YIHBN>J02g%{iHfdf^YrN zcQmDVC!Yd{Xq@50~^Uk zNB0+E%Xvn*drttz%K5hPU$WhTE$ZMks8M(HoJ^u^QI^N1&5}{=SMKpIc3z@<5dAVW zv#Xf}*sgHs2qoQy2pud%8vefe1fkT{XLPYCskC$OAAzeWcR>xh3XFedb=^v;6~|CV;2*P!57y! zc52i~>`kfBn(Qm^@8kLF^Ck=FspnIl`9%Ds`XjTCG1u>{CUFDfK>nmT>S~QFi5JP` zrJQ5;OBG!be8N^a~OgVdTbUoD`HE3|~&s1y~VG)?daDx&r?!5GZ&aA3y| zU=Fh1U9r|?eCAZFw{%HGVCkZYjieL1IQxTC3q(cQsgPtlrhaFaYL<@qrp3*nV>q`i zxu{}_wUi#1ykgGbHATT2f)gdSR(#pn)1nKaIbrK=D-c9?dS-y3JX0L{y@R#a$;y}L zYPE#*bE=Ic+NSBX8r{Ncr1MbTCPp6aY9mdn!0yW?l0nx#g*SRV)OA~ShKW^kDmL5C z{a}HR!>;!1pS$(@7W;j*|Gi_-@Bgyjf9ikl9Q6CY?e_$~YasbVhneCV6*Xl2PketW zMKmK)97_!AAI26mh19I4)Ma+QN^wJCCw*SkP`$KyN3OBD(h$F-qD=Ee?1#-Fz~}zy zl|26c5mIt_;)|PO<2XP+qi{YZNL~!%(Hnq7(y0l!kW}$ zK%!L_(VaNLD`qj)gLsu1uaaxLrE@B(EL~DjOIq8ts3J-lBVQw_?1%D4IQV4~wd!5@ z^{yM5^sfARFC!I{%4f~m`y78SnZH@)A?_pKyJlm`^?Q6n9YcT5a%uA8-(`ly7k=PS zW425rp)GY-@5VyBn?;E~KQaD?;DqmNWZ<);qScV>qT@0Zhc-5={zpUJPx$+A5<9a$ zjN`65DtgrwP_@8PcH&sNY{L89DTixNioGLStHt@!GohFdRFL)l+bYIS$B*9I zI9Q^fvD(v?%d3s#Vyzpt*Boph9VU20s%#QXRIxN#_VJ?8Pb6XSC8zAiZ(AfEDit(m zR}ESW9r13X4zG@2-C~dSnuiY)5=O}b=@p>yZm|(NS(1zO5Po;|=h*&L7C+6FRU|Du z4*L2M7qNLliI!x?2*G_+75uD8Hq^bS9+km}qKge9$25o;38Ao83T?E{;X5)1ro2kW zi;_89H_mB+Zhi@NJNY?vjed#@v6<{7{BIFZo*4Z^z%9EnxiZvZo2T$Y)er zzRvcg@V9SgfEh~9BXE?lJX-+f*e$oog|^u2yO!JjmUq4C%)AF zR+TWUvH`LUnJRBwLbXc39@lG-sdfc|*=o_9_Tey>{b ziSV0y{>>F`|3#armj||e{tXTZQi=+D7LdUjj*O%ko~yDHN5)c=Dyev~kyJd{q<1Oh zD%gv-yC{kNQI}4tqYl$rT|klTf4oX$s>a{J0znDlN+=h4zx%PS!_b(KwZYySeDR|` z?*uEGoZx$?T7p|b^Jyy=t8QD!_m=B%UD+ij$f~*)>&qnkxn3*M-DAn!rk3ifSF<3r zs{gB6?M0SMCw%s6%S|V!>U2fAEmDfix#EJN|G4lQ6~J}A#jKC}ga8)!5g&7}SfZB2 zg=o3ZxDlv0x?q1yoB$D4@h*3{(Rr6nL4Xe-iQG;>EHN3Ecj*)a0ge1F4@3DQcyNvW zUHSDs#lI`R-lvg@QI*e{wRDc#TaN0Us(g5t%BRk>>i4vFDe9zgpEtiUN%Zl^Ws+|KnX1K0*BR5wWFc3$Az&bMB|8(g`s^Epcl$X53JPW+4< zmV@Nv<&Yp-zGmTRNxsa#>v(HlU^D+t1%kP=q~^TL(Y_;4_d>wYaUv3&uI|MiIB`8* zousF|X4R+D-kzw&_a46MqRYj42;G3-OpCg}_8Ue^F-Ia5he@{A%(g0QC#a~%DU1GS zO0&a!30f#@A|tX+?CRv3O&-p4YqQ%J!Piy80A>X?TpcmTCChS~fAhN<&9| z3{IfRy7(&X-CJU+&L3VfG4jiEOSFI*O`cq$^;745772`Tr#bgiFJUp$bd~y$+~amr zPILWk^$x$8F?@HYV0n#-`zb$r-vgYvkqZ}m6I-L55;u%ZyPrnlc*gzId$8eUQIe6J zT7_AqXZ0@R>AjYeSHrJUzcTtl9a>r{IIYz|n~O#<$JEs%c~mAzztuFy9|z$LhCirF zN+%$jhOnWul+p{108I-)&iHbSoMu12YNjL+`mZXMB`E)}_|$8Pw1ddiU2lTow-o5a zEyt*$rDP{oy(%(CD;pM1HLYYK2b{^RHoPFz>V@vSiIPShS}f*~iYVC05SzK34Mu;> zZT4`e&OuBDU%6#Oi3P$V3P*AzgqZ}f1);~@{pJ;jV*JeS;^(09F-Kl23=ym_UA4k6 zs})9mB!38nFHHuOPVJo89D)n?@&3i;h8+K5mnEObzxY4$-+q6}f7^c>o9n+ls`2^u z`ETP}x9-2qebmvUODO(C{@ZtBIr#nQZ$1%z<-aY4qHg}O-T805<{&*#(W8|4OQl)! zmy7LZ2EW7GT+wtY{adODak%T~tv@D*vsFRE|fv-sQiw?xgycRJ2)o z>&A>+htoUR_GN}C_-oYU*{(@*^ZE>$v=!W9@tk;h_j)M1WHkI7=PB~=R3NzIAAN+F z)$0677N_u=$%RvOaQGZecFj|_$lq9^?(_!l9QmI22$i|;jNLRuVe5!}9 zaX!^rfr7NIw-j|_>5__#r1GgYkxJbaF<6yPrTh_mrUgoQSAM-O_V3EC_g+#%Xsw?a zj#>&rv+;NA`cOZ*8l`_1Qc{C>)hJ8aqZ;wPRHKw*pT4KPFJUg5Micd88uPO(c2w(I zi#*Pp|0N2Gt>rv4fy;CadH&n4EihAa*XDl>y>;^dOmmJw=7y4DuG}uNiPUUT8VDEN zDIk1SiuBsppUtb5GM)fCA%kVX|F-9^5D%O=9?l=O8XBCBEFh-Xd(Ql!C@+oNt&|>@ zsIhpqV|R1dKk#g#l6LG|-gF-(`HaqyvkJWV&Oo3h0}Ves8at`6*fc3;g_Hp6K*sA;2+xx08Xz^9z$Nm;V3s{FRXP0M#Yb}?P#`c=0%LMFEqKA^ za7M~Jmo+4Q@juq>R}@6Ds+ZR(-sVjiMrzJQ2kgZ>SVP4}k=np5g2(R>X+Co4^vmBbFR381PDJruv zvsTFH*kt8YeMiVbNt$X9{UJ+Ik9sB4WT7O5o}Tiify>h`|Mu{?X-g+oZrajXbkmlG z8~9X`X5}??d6~I>UB*%X=1{ZHaiONfz`WY28p#af%qSjJBqoURu`5-U1i8Qs5qdM{@>OS7T+uIm8y?%P= zuRf9g@qgss{k8VL>)$2z%JuKojoEJhuJPKf`*(|e=_n)Z^2z+W-<*)+->qKwiSVoV zmU+&(+a%)8dMl8=ia$`XUMbF<(k$mrKEC*FlcnL+88~rfXR&LRrsH1@a*oFWa+}s# z96p$a*U3fi1XW(8sP9tdR(0a~CfNh44hFR9aX5;oe&9K~_EVt>L`0W8xLGQK%D0J z+`e6@H%_Jg`DL~?e3_sWv@uLH+wg26+_JC|MOvVzbU|G=pUTp380E%j6W(W4Svp|7 zew?);AR&Sx#KoD@1hM*_j}!K^p!650RC<`lL_6FjOmbRMdrj#mS)5{`UHeP4ANdXsJ}q6GO`>``N>XvdW;x=F} zgOI5H7}#sA6`Q39De2HG!nnSL17$~9dB^juP%creYAb-HP+J-a^;pKR!mt5XVWy(6 zq1+0C53g`j1G!LymE=~QsVuh=$r3~$Y{p0V%_Lw8VX6%F`I!`xeog4tgkk^_`Zd9? z#3%fZ&nMk%?3T6_e;5AR-t0`FYd1o-j3j?iUOPG%)Am>a4Oda!})v8TZpfVaw+7r8aoJ4SJ zT(WrlzL*Yw;M23gr*)vAn;59{Y^J?O;ld74dFn>{iYd#3y{0kF>U`d040otO0uidepr z(%;&bf^fd|x}#J_+7DL`iu4X90d|IsQ>D}N{d~}(38*`*T;1BGu z9f?R^|n598fXVodu$lM;aUJ479alBaOIm0>@KavAX!T9JK*gEwV z4XP`&48Y@s;XcfqwTb$nJOlePRD1v+t3@&RKs|_ok|$DJEgL zJI>p;6tfj^}DIH_7B+{*=w(pDyA|_z<$~OyMO6hJ9ir0_7|RF$@(n~@h9p( zc%gpjhsW2oze-pbPDsNLPObwTF*zM92@mn**`Ij7${+khEO`+}8UD5YgFn|V{nzpJ zV^=f``HM~mu8M)$+WPj*JKEXkpOM-rKP5SQCw960gD$STjxI9#VgCOsZjV~Iqc{!4 zlBaygX_D91sBHyWv-^yG^bglx+YBb2qg@MqUW4cOtvkav!45ylresRjeidR~&%cq`HIBYj;vsOOKadv5wSAK@ z)E>@TQ*Bo>z8t{u0}u*o7z7|aZ|S7OA05>@pqp*8eu8U&0x`5JI)dLH^)l19l3(^$0*{XD+mwc9 z!*d2tZ9Y7|dKP#NR^M{qSvKu!%%UZL&(yt6bmH$TdE-Y^P%$bBaFa1{pWOv07-0CC7Xj zfVFOJxqxJi$6}Zu--#K5WcAT4$!<)OaW*mF0 zH~G6Xf^+WICS2F5##ydLa3RK@s%g3P)WKSqN0V<{gEh;_aqumNv>iW=i)JOu`=o52CC4x`s0YdSMeHR^$uaMqhTV~73LZLFc88yw zX>DqMhs#$dtipd_nd8$GAJS6XRyD49FSQkJxE`S<$6jbt21HV{!SKV}Au>XfHflbXK~w5!p>BKd4E!1$ zcTA#ysj6viU*T8Ef)#5_MU44@Q(4o5lU7vLpMHsoI8YQoMNCVptUo=8ig3JeMj1y& zl`86RAIvEOTOilw(f0r{XgE}0!!tCu#Fppnq1FMg#6`WpXi;?mMr$Nxg0zW*+1t8u z?nl6yf2lIcVeQo~POqZ{2Sf6hcN>^Sf9kE3)Nf~eo=#ZC&xUBwyMvDS{$4(8;(_L>$ecbL|c#?y3U)UarB1i#g<*C#<6 z88t+Yf-f?vu2eJK#nXTwnw(=rg5^3-d3%VkeVGimqSb5^RohHdm-Eje9iM_jwOzWA z>6`lj#}L{Eh3r9NdkxX03qo-WHuO3De~*akPq6~&PKDSYjB_8(bJAA2zCTsUAzwC!}!1CX$ci zi1nw!5s$u^!x484oL7(|Mr+M~8ys=5l{-Q-7mRrvvEDuzM+iP~MCv68b+ULeK!_<+ zD){-A+2yc;AD|7hb%O|V+S5juAN^OJ)P44N(7X>d58(N|dWUC~3Qjs7JfF|gR`C4BQ-}F+&&y%cVIS- z=Tnc#;KJ~shX>)|On)FF62AA`Sgd5AU+o@^F;u>Jll$1*pMmVK$7R?@sn+byj{&8gI9 zb?qx=bV@8S)Hx|<>M}$elP}?z;G-s5OW9A1ui95P(1&Tgq?_aSZ9{%Iq74z-+BBuWD zbG9IHW~I)!@AydKh!^E7{6?~w447D6_k@XE?{}Tu(T@@b>2k3Jj^uYuG!k}5iyMC* z>&ndaWmJ#KlqgLWKk+1r@es;~c1NmK^#)&DA({0Di0W1)@09E}*eO~3Y0=hYHDKpc zxs%-Rp~p8X_f&p~-X*ytg(UZ+EWhMDU7~%=>yli5!g*Y-$!;GayzYF~Jm)0-(6+^Q z?WVMf6rd))qj65oH0NZYeHto5B_JcCPQVvi)&FUb)i=>gFyDjE=ynwtdcKg)LW54k zaV(**>2hNY&nkGPB8%qE7g!pyMaU8%J2+P0zIqxk{PmDMxT)8uzGj}Iy1t2m(s}^3 za+R#{qj5tP75Ju3m>|9P_tc@a+o726r4v=h=LQdC^+wnP;mNd z`4nvYps@N~wP@S)E3we`|kth%`MTqVp?iyBWtFMjkhO)O_q?wc(&~Ry}-=hOc#l#%UTfa+HNe+{e>R zKffyb#=v!4q+<*p)m+Oc8#spk{f7dY{u(|t%-v0bsNUDP@$S<8UBWLq83?nxi#%G?6=#keOmX;(>|pk5E2iAW;_qlJ`xn! z551#(sz?fHpKSZF_wi_-f4-Ejeb&6YHTzLd1jM%7zj-RzV){pb=II}S?Dda;OzWR- zf5GV=6$##G%+@~=1~Eult=+AtokakhuXYZ%9S5P>xkzz1 zPVL;`)K1)~9j0EH=D9YC&r~ZLn^8DFe@8tfM1iRaT^Hq^f=b#dsAyosJk=vr*G(_# z+n3>)YFcQZN6y)lSat8sed4*MaGOj$R}CkwFHs$=iyAcIzsY;U9OP>imqtUbMYubt z)&wNd(F{)0OdHfMHIBXaj)ENfofTW-*fSm-%(29GtYK|z&^*lVKb6O_eIW?z!-tJL zh-Cvy-9#QNyNTCAESqgGFFy{JJz-rw%kIBXJiXGwgNN?p7Ff*v|(sY^38UT@eL) zK<8{eJkTmK?t={?{g^-&(Vc&L7o9K2jM{ePSZ{fn_0j?nn&4OhqZ_MUA4xt>khWwGcCA>(3XfVa8vt&1c4M{SBrn z=zs5|P=al+W0Oic{V726*ij&Rb`;QQc03C(qDg|T`5650)NFS2lz<}}(;PYcqrEaJ z^n=fPj(q7YHN6#%{3>wgs8G!h>3)h|d9G~C<;reXnK17-A>y1dy#&LltRP#8$J{bc z7YlKmzZVBv>A@_A)N-==I%dzoL;bd5uO_+RM=c&8e zg4Hf>h0kmC0r*tq<;KUcjJNj&VcFwt)fYUw$jQ6)z>l|WeW9TJIdOL<^2%*+w=u14 z4>||J9_I5PDCb$q5R(*Fmhi*}le7f2E;EU6sV!ngmBq8xljU-+2$U zVhQi

    mbnzOxygA9y?S!JeR+I4pFk%4?H9+~a0)^th5FCZWSf?1giUH2{kv+=dy(kH?*d5grG~VS15T*z;8%{gQ%P0;c`mn7 zR?7+Ftpv}u=BE`x(5nD}S54Hr3(MycP#c#bn zrYN}lCHJirO%)zm#8gfZS=wt}_>0(rjfjp$S*%+g0!SaNI^C~#6wI*K&tL{(?ZJV_ z8XRkQcyK;(qj(d()vdNL@^fJe7t#Xw!~U!0hutJ-z@zKTcOk1u%8I>$eogou^3tm?V7t_i5ZX68#Ii6r=+fI<$PmN{pDk|}Nux{hi1MwFK z4`tp_A|JeYWgq8L?{2;PjF2uUQAWq}|JG9dDF@c!Ckxio%lc0iMK`MMWO3whr_@v; z80wkWI+;|!+0%HjPo6Xu`S~x$!&c0tlZ0-yAG@8Ju;_l$^h0q~6a&}um7bo#M zywk(TH^{{~<|od@sf1M{rFEt@dtfS_O>OqMXH%Q&#cVKxewSM4wUq6#q+<8Aq&5&& zM(NW)AG|0{jPF~aXX^%I>*1O4l2opUrI6P$MSYYDEqc&A7TE10NQRUB>K^$#udyVu z3Hoq!V)2y?@jjY#_zSvb5NGJ6HMKxR0mAjn8H8>C3Jt=1_iQ~|$g{Ao-=*8;S<1qf zr7QrDYIn2psiz9doS3-Jbi~AXMFpUWpul!OQ%5-+xrCu0A4?D5qXWCngdqf8{@D!~ zVAXbEz51uK(0V1*5?uA{5IeM$*%GHJ`)h-}{$%R)i0~5^<#B;;-%H|Sx%1<-LUJx# zNjT5*LH%9g;-|BfEpC_8SK^K;;Xg5}mIM!17fO!V?a6bItveJ4h=?8bXU5$`0T16G zfhU|!R~UuG9Y7k9mQcZj9^^Z<#hx^8XrtI!D>S$zf-NkA&--e<<4k{K zbfrC4iF(dk99^O3A_2z=Du>|j5jjF)H;I@^&@9!;`SwI>NhcU05tt@rmjGI-MRe|J z<=KrCWxiw^8u>zVOYF2udzfMv$q+>K1W!F+@^#?Ng-4238;qmcf_q%v%`;tIs}H!Q zs@`Pro$oW;*b9I)%xL6WIARQb{KLVr*htqxS)AgYjbo>YDs)c23pY)cE^-IA!XQ(5 zHy1`3H9_2}4DsO=n%6?b_3AR5_&XEhk2l17wK_6k&51099e918Z9~o{8nR5!xEg|4 z06*C@(37F1r$0Z5{t?C3)>m^sOG@3O>qZKkL8~P3c`ZLJP<`gCFS1Ght%yL-+-Gbb z>9~>I5R{Wf)uTw+Sl1uBwDS1-t(z_awZikBL2Y zeE1xYU0kBXcbge_geez);u7Y|3*k?gGW^BBUviXzX7Wp zQVbEe7;~!KbR6mYh{{Br^?VOD;J-5deNNrw?jaW@9;Lhed*t;N`$~o4{p{{u{zifB zt~r2dg^~33@!Iks?KR(0?aY5~z0YGoWXAeWq0jgEK2M>~XZrGy7@tLsdM1Xa_A@gP z_W5$x=MBN)Z>!Hw#;}p<5={Tc3jGLsRr}0_^Wk~=pomAk$l~y zvuX0!a%;LKSu>C2a}&+r2Tz3K!$`-2B6eQ)`e3WDd+Xh^b#J5C&yQ{Eh{NEl#>^DQ z7rrNAv$KHyssf>Ot)P@UKl zcUZCHAQdTql4+)u}FZ zkqU*XSIj?;v?2Z~4*N~V?GN_ut5B`k#D^b5`$2^7h4AA4b%eu0`{twDYc5!muYX&+ zvoU!(i<>r%T=`95@)=<=)Lp &!w5129$JzS3OQw6owWfY%pI2%kE-M$>@2xIrbu+4N9g&Hyox4*`bnV$+ zbsK>CgaG;!B{lyoScmGC>vW%xHSQ?T7}7j(Mk7I&QyBjcHNkd`m#3d6G_18M80)^{ zM(N38%DOpwX!l3moWDefiH|ARzo*qdjqe(5^G2hW(<_qVF1L9jbChKv7^ccnX1Fb-8B)oq@<~pcNaLf^ zMhay;@!oRqpi!WVltNq!St$IM%cSc(pg+=08}aq2$sfv3PkZC70>KFwBU8Umjxv%i z-KCl|^#NHek9WWoqb-RjCQp*p29^q@@tmF<=3yc~W%Sc8@R4kOm==^%jkc1~P#Z~b z#_yezy(3tRwxg@~$exu=MsT;?O{`U}_hj)8uHDo8+sP}D6yO-IQdFf2s5QYK zX`beusvB37x(M&ygFcw6roagqu9_CU8CSLOCi*FlAem|@YfYA7&`8Bq$|tVsBF*Kh zw_YvJ;;N$ovF?%2>2Hn=4Ssk@pP=1e&@PhDB#WoNw2j{1u%GLF&6C2oDKSTej2o@@ z;1Az0EUaXwVd{JdRq}vG^(+BvuNhda()jmjLtWdQaVW9WwO#{Uu9$=P6Ur!&OkMJx z#;UA%?(oqYU&D^o%CE@*77vU=ryf7bh zDR^O?(xgve&;|D0ompZNJFPa&A}0&wI!OUw{4uidsa|npKJY@k#3wGdoqmGt&0HR8 z#_wN)t@!ZQvLh~!B%zJGR$+a7t!^cT(AG8#u~5~JMU8&(@rfk^Uty2#`~AbB1534e z`6LPZ?Z=BtW_Q_|453O)pA0XV*u`$xy0%S+-gpjw55AGhi8`nQ#%SAA5$TXj@>CgV z-;<}*mq5DTKhD=fBArDNh0ayCFuV28#32LyJJzr4VFW#3*GZ&OG)TVVBVX4rlqZ5+ z|G<;%lYQ?jp~CKNZGC9ff&Y>E>b~YkMEWK5Z3=GPqcA#*a>%=1n?TN|g{oKGj?1tTW>NNOx9UA$%tcKu^3I0`r|Ctbe zIkO&qcaw7cz*5281_HtmuZHT?)6e0&^O#)k7ee^&xk~VFd2n0sYnS^;LVCr?_3;;U zEAk+2aIL}(qXy2;fH*=Rj$nMf%YPfbAqL;%{~h>F?gGBlB=kTA#*z4+0(0loS>i7z zKHEg%*@KXH{*_43!@v4p!J&h3AvV_YD)5P2cNV+uoVp8&8jw=Wl0bPqkfTkHUdFjV zdHR7NfqSk1wtWh~W>l3eR4tEB95%pk#n%Icx%b*PK>N|^)r$6b_z~h{w!Ra7FV%4i}In>$D$ZTC342Mn{GNi6;^C8VI z=*L|nvo}Ig_gUIvnY2Z;{i7j~+ux_p_3fLEXx>%&fv15;=WF(D^AVuBeKYSmN;^wm zcmjMQ%_VLlzte*a$wub2yov>JZItCA=;;S(Th^3Vd@Xw;e&_c59W!n!6p1ffiMPjZ z_3`C)?QKliI8IFqH`7i{4rep)n0fz++pki==QV6(_fnIF)<$+-rszdVUB58E^n>nD zIL#aYi}bZ@(Nx>ip4Fp~Vkz-|>Rx5Zwj2$~C_h%ciyh7CVN8^P4GFw|Ka zz}k3sn(@EnY$l7}y~LR7r{iIV#}789dBuI2r%w;^2^FoYr=zp+0_+j~I+hokr+*V< zJ8HRnnKIU+vdZ1+%V{`Md~Yw8N7?E`@Eyh*?KMSKFy z?^{MN>`$nN?JJ`GTq*awm|hlTe#(2@&QcaK`a*C(dzxr_^SBM7&G^bTh=zTijNdYt zZ0RqG&+Q?L6OlLN49t3~NAyBO)CGx%Qt5zhewGfdsfttImXhC_8_BW58_&TSZs(~WHUH&m}M)pwM#`*pP4x(IeG;bzxVmy=lkDP z5s^tfBnrY>rc{$6DzAEaNflb9dLoSE`~17g>3zL_7aV%uNUHI#xw)M6k{JU-nDqSI zg%UJH&LxjINgbvkSHJwY2UK2u zXEYfu8HYy3wQK(HvlHVl=%S>f5hP|CEc+5S?nlFvus)N4|KHNYz~8pS){oI{=wE`5 z)K;?isO5VzetTF86X*U`y6y8as#c?}Yj5TMBC9x!94nty|Mz_T{RfG6x~vO?#rR5+ z#djPtrYM-Bt5qPW{j3HIlhJAIHLpIVR&6;X>OM~GCs3z#s^HLM~(A zCPLdQMLsPBNCgPk6bdODwWG1bMGSSXSIhx4wafrx>8Z!S`Tux@fZ=Sw`N8`f88JHFho=NPKUiQcS1jkNavz_qW-RAm_ z#wZ1_AyjPb%rS6zQ**F@K}{zNp+I2>&Fh6`+MD1yva60*vgW8G)R|2!b=c zEOK?%ksR?(&yKoZV-#X#C8O|!>(h}sURUm;Gzphc&CqHrueH2}=Sorep7`LZyj4;@ z)oO5!7$+u+KieZ;V|DO{`wBI3ioqjh6iuAK&0QCj#}ZdoMiXBfA9?8dD)w*G;uGMubGFYOiT-ks5YDLD zYG3yHQJk{~Q^5mg^c7~8EJ2xmOAez92RZ{}u45GEnnR?5?2Q>RE#CfkD>DJ=nMlig zHd7G{pCS+4U6G(yVg*?P=^|4Tyi09xv|l87jm_Q6F}>0i=6ChR61z%GRhsyoX0x{A z^&HPWAHLX2qGq6~Eaw4p@zFI8s?5#0%eOu;gkw2MIF_R{_~1IXI#Ox?xee#r_95Z3D~Uyrh4!Fw&m@`dwT zS!Dh9tzQ3;ubieLvVU2>PshBt`E6&oC2PtjS+G7ss!D+fFzS+)RpcBF3a2<8W3y0Db&m#~XAN-17DJ@th&S5fA=z@a%Xf5g<5sv~wCPJJ4A+09LVnRu>(-=`MH}C3|8w(L;JN zR=q6J{torA@+nZoj!^(OC3)O#?KKzuS|C@3AQ#}Ddv138kt)Mp3)(=?0{wbRoi_*c zKmJWF^#8fLgT7Lo1y(Bt^eUEyjqeUt2UBVhN9i;qPk|xb(c-#-Yxbc6ektQnJ__>s zCot9Jpklwt3xsc+Y$&tPNLDBR8 zdElxxGRmBB<>P>Lj$C(vlsuO^pS4^yD3qI_kgM$GfqjaCwWAyX?Pq|m+4SF?jpU3=|K98KZSwDZ{=KMxtH}t7^?~W&L{slegN1s` z*yplXvUZ5(sQ^@1A&XgGMXQOgdMx$kJh4MG@s*OqY51Rhe3jrb(V^X(W3>$%R7*wa z@#D=mIqHb-t!{XFt=g#WjkIs#A$C>IRGDmv_NmEz3F3Ncp&0mRX{sJRo*o}P>hDUoZWKRSn3UC2nrH8+rK-%C5O9) z0%?~2oXuSbV~^2?XaIGP_g=k|_SyGb?hE$1-cNx{(*j>BxNoCa#O4Rr#nh@lf})i+ z^;7Ei@A^TM<~M5Tt{XpXD4~^EZ`B%J9`M6ypVGK&rWCdiA__bFaiomB$2jf23-!!P zT4CBlSNLUK_^^NnH@?zxQS+tz9o~Eae~X*HBzB7OySTfJRBEPCDdT(9Wb*<3T@~tm zntxZl_{E4LH)%>ptMp;k3Uz3?{E79J!9fgdl+$)D2aDFdL>LQk8VAW1Xj0mb|Fo_2 z=PDJR5iH+es_@+CItM!KLCQ+3X~>Xyq7d`9cim#P;vc6u{okcr0Mc!_RTEQdjX{gc z^#`BJ>LS;C9NcsCCmMCDCyT!KoCYkSkp{aZ0A~+n z;X@@40<7H9yKQQPk=}S-nH#Dr-^R(J^FBn$PoJmyb!emQB|htClDxrtiJ!a@cJ#q1 zg-#aT$I2Zhq6)^my~Kjn?o!i|aqSL`B5{U0(>9wF^`^?ZgBCp3u@ zYV+xib8!C$`xX5TVJ!-(&vg+}qkf}TX1~6{PpO~jIj|(nY*bGBcb)8C{2^%96!{ccXco+2FmdTt#UhwJ!-V3MQws~l6bVJt>95Hy>mr{u zPcrVg3dyLXt$fJ{E^gUAxmag=sYAJtx;3za@L`iGM=s1~_O3Q^QAC$NPA=NsM=mDc znIjj+{-m&6EV_K#axu)xnOq3QJh>3GUM>W0S}s2Nr;`g63C<|_e(YK$;)~^ew$@pk-_|U7mX|KmpH&}#^7oqgK;3C?nc@jI#8wH?B%Zn8GmC-67qmZL_tAKamNbjmZ z6$w@1#c3)(YlW!6qz+>!8Zs4gJzoq zuNFm9p>p^u`YqHo!7s0srU_?foHNJ%pn~Va9PpI1fy--<$n&v>vhbl&?TKkD{aA-? zA_3{)tklZ4Q8@SBt|pdv!>1!zZ~Z}GowG^n;)Q&=q3*Q!ldW8yPseZWKvn@<$fr92 zAkseFokRS|6r!c|Q$)0f91a(m)>?=C0hoEjc|?1#3eh&Z&;)K3d8DLJM$jo)mJBYm z)Xh3cZS>f?TRW8`_3^Hm=C!23`^Ss*!#EOO81gOVM`?~8QjM&8Nj0Tqh522DQ!g-; z6{?Ftsg2(>*JbNpKORXvjNb@rk^a#6BU=Bm6qxK>5n$hFzr%i(E~?OZB7#-tmY7}% zal4QVhUCTJLvQ%7mIw670+Qiu3}pI1%YNlqHCaL7)gIP|4>^Prz2;Me#8iYNd}&Ce zbAY^cZPnvgpNe$88x~y1@6t6a(ecC>e!b!+GV=rflIcUgFe!eY!R6v7|23p#m%7KO zq$u?R{?xVoYiP@^?gQmh-*n&5i8Fapym1tGv_551D72=jllnLpEwMn%Pif_5{zq2( zFHQCO4b`CqGR1J)mgMGrwWX`R{pOM(Gk31znh)msf8W3Ji4*?D{4;9_f2(W%=aBv# zXoKfi{EZVk{ub$c3}`%lf$c70Yqg#wp%!=P#2M*tQLbxl#Q>Sblup*&WOH^`+NAF3 zN>^@Ia`89D!*Ar0CR2$@4fzA6{sSKwfSL6nK&Ua+ZWa+dCsm+Vx3)|q+9P{eG+OJs_}f+beU9) zrsJe2B%i5U_`xP##M%r~W%s^RirH(~_0ch6>tu0qBgfEdHxcU&$(mbv`>lR4`3v@W z+*v|3U_@CEJ}eF&dU=o~?6DNrn^dkhNg>xe+Y&w&U_sX9P_u* z-ppSvb>562Eo*A3z+tOREAmJf4S{J2AEx?dr&vlv6)7Z~MpB4`*(auLeghKzsWYF1 zzxpmDEO@@-RuS^H=-tFH*B{tu`OK1H5PKl)+V>J`I zk?I7`_3eLa6J3i$S1yE)Kc_=!WSwKxA4QTU8o3wwp#Xl2c};)MLh#KNVtP#x;j~nv z-(|jfNQboCs}13$Rz)AH+C!f?yvQwSSG~22(}Y^SEDy6xzk7YF5lK1k+VW&D@Vgv` zd_Alv=}Pj+Vw)={2gcr=K~Ei^^$_6c6+9S~sJJ5S94xBnv+rp`_s0vIq05IS#6<{~ zJYHc+9`E+S<>2YBG)y3hUTP#E{Z-OfR?~N|yi&fRfQTasjCVl1%vkb)S?E-+M_lW_E{qIGd>9OD&WVR;oxf z%IUFsxLrl{XjNfK_%JnmXbm5_cramIOkvC1XtimHFW8d{eOX+&?kMNPxL?>+tQ<_q ze25dXKb;Sq7jcd9ApgNWUv_?s>~{7NTLC|&+qP)C?id6MDPs>k;X|Klp=Z68-fcc8 zvbvVnLVirPD|+P1$mhtLoqQTJw$S$G9fjrd;?qObQaH!s}zG(dD3T^E1AzPJiF3Y>V*@bM~ z-J{h44ftiu+$6|ccOn*cp-s}v7=IH?ogU+7uiyV$exc1Tz=>Z7FRQO*fH-Tj{yvc~gL-=1odl$WXs?T&SM zV(};JjHrKT>_|EL8Cg>iDWxeUtJ%AAKIQwN%IsGfm}s4=uCa}6SfXCM(v4eLDyfjwJo|G_KuO9zgRjooxga^K4Oc4m1#Md*);sf~vC z^L0z8t|;{ju~qe&$ecTQ(DuiJ*T<4mx!kmackK*&GjiKcm=&Z%{lPlWr6G9{4ZPuR z;cgiFR=Un1Z$+!0g9F#}A0tec2;BI3c0UCVy_Vf02ZE+WL}s_=RGGO8XV+Nu66;@G z;0p0!RFJ69j`|^$B41Ou}M0&#Bf7&`Xvof{Q3U#g~@C}Y#r~VKpFlT z_8+`=9xdV*to^d?NXJa}oM!ZCnr9e;QH=PYFPmx|J+7c?y?+s^wG2GxtJYxox!bK* zs~&Qmlu%)iq(?I4Aj!Ur7q*~@h7__SdPlEnL{UhuW{(eFT#H`)^^N&@^;>hCejFUa zu+u5q)~rn`>F~* zD6^Ip+)f-BE1%vhh+^ij@jySDzk zPW!Wc*Nl~>K>&Mb3m>|95SU$-5>8JFbIl_u#9Y}%`{w6huBMiJ<~rsZg^l*lPu@0b z{X4F5Hh&~A^H@s&d)5+&Vy$kw8|{NXIo?v4;1nGw9nuo1m!Xl35%R6y^T}lo3&MxR z;X^MEX3pTVSiB-LPhgCfadp?6;aJV4;$_$;c3q;Y!`bwKM%1~ege&Fx3Zai+%OJ|c z@A3^en#->Y-XY@>&MgSY?70QOs`qeiK_KgWK8;5-&&j)VoXUxDMLFr?S4k_xnbZ12IdG!QU z-!_6bGd>xaTP9@5lAWF$!4ZC0qQ`lL)}ql3TU#E|ZQG)^dy|RY)s=-sPqoNxQ?0=U zUFV$~S?lxWiQdDX*_!CReMVu?E8r_%!Y1;tTgGg)Ale=p!-pw6NbH&{#mgW??52`@ zoY?K~EMoWSSM$a0x3de2-RHEbzl~|z*;dXxWr3L|b^_Rooj^=$^jT}1)Tv1D$JYx> zU7C9H$@MW(Cmzd@I%Bqs)SZ9Y|EAQjGGXH%?Wp>nNSy*ai;3@SDYm1+|1X5lnWgOe zKN^jloxdrzmLnFFo^5P>#Q_Cfm9I|4Rnh$);pi`PS%R|Dx0|h#Kg(n5^`Ufb3?GUh zwAgx+K*UwiJ8WG-lF!zff8rMRY;WbTJ~(^F>+(7K_4W*B=iUENw{713iIp_o7OZ)^ zEvP+j3r^#0tw`MewBv0R2{ygzS0toVjfbU8?LlhP9-RKfgXM$trQU4@n_A(oT*b=C z48gFI1b43vpWAez&O>+=uRplP9yyinncy||HF%LUIGaDw_BY!!Fw$*bIsiis(R#*R zxn~pXb1FF*#Yy=D8kMPS<*HuY@|fsSYIJb}C{2>VJ<`L$n&)hml`9v09<0fD<@M|( zg)QxwYWB0G8?9|7`RSs;VkrYmzNZJ6S@z+3@+%FpumQ)nVa0yhGq<{&k>_UN%xdth zf@oWb1`}n12G?*sP^4SWiO(71+cyMW!8A~)pKV&Dg{~PT8?Dbyw1|&;^b8ZK(Vs3T zR5d^H{{JAMT7K$w3su!m@`S1_grz%tm@l9p-aJd0fg(ky7Leo%RlY>M_@w;*tMVo4 zTWv^G!S$h?z5tfDVJ(_e()s@aG*6-gvX>|UnYI>Z0fvyIBEb(|&R7dW`h2Kn5As*+ zL5_+&$U~7*HA2TnXM8eIJbV74ChE8&oQ&?8r0Dax=8`FJce`D(^m32v!xn4aulNW| zc~NbMpS&hPtM~t>UKwn#P~wknReX)+BYH?R;n-{MELf0gl11?~8osQzlt?jBO;~Ou z4eIt4zQWCczB05%4?oIVwaS=@vdYM3mGS#}e%CPDD$@o{)s}kj&4N)p?tGA$5S{Zu zs-z8=`qCd3*P@D1ti=&~dnK{tpt2}v*of3{RON5{S!O*B)(kazp{lCq5^RCD`^Dt0Tq>&Azi&*Tmp)BIVv*q}11-9Bt$ z8rhm|_PMuxvsH2h%5^C9*Z)7-z6CzY;%YyE1mXoYC}0FH0iy;`NE9Ry&;*0-!lJ2K zNx=(Rq_m<&NHhZ4g#^jEtgaPn3fiV>Tl#6+sE8nb8ZJTrF99z_X*J$w4Xub4BUtl) zo-;GM@4ndtY`;H0&CI+zmosxNbLPyMnWq4cH(Z|TE!^i>w48|{8@%n?e0Zke>vz0Z zIC=+R(}DG+zQq?E5yNTd{QW$Pl8rv_+4^&bS4=>(TV>Cg3(p-syrKY!qbpDGt-a~y z8P{Kfw^<_o!XrJ4c@_D>c^Q?nub=B#T#Q7kC!QsmM|sNwSk3YNxqG`8i$B#sFD#s6 z%9XI$Bj;mQAOS9c@sLBFsU{5|)|rG;a^_*(57L6eG}`~_jdL*!xB`zhy&$feVi-0d z$gK=st|ZIp62feQkk6z!@JzoEwbozbO3kd?sQfc9l{TJVE*VW9u^ zB$=No2I~2VzY!cI;G|!XinYvO!hy#4TTJOYWrCic1Q%WVFVsD%=O<)yON1J` zL`o51vsz=vA#9|9z%m4fnxD?yjQOb_M-c`^O&N5?+;@9t^V3g9lg#z~ugQ+stYJw# zKM_!wpVBg6aBrcgCdlTXCxPTaPw_!{`XxO-v54xi%V>N}R=?9`e2`{~{jwJkqAP`{ zMAw;?v8cx|8R9*H8CVB1kcJ5XtK#HAQf8VpGEItRniVlk!Uld{f2o~5*5n1&#@b0i zoO-BN3J>DSH?ZPH*-J+x#Z&VUewOt)Dd!R-1T<2BrX2MlpZ5;;8hdYx5s%aU^zV%z zo?X|uiRYQyNCF*Ao5M$SO*(f-Ik7(xOqXg?FQ3GJi6F-9PqzUIG8oIKZEtGbh8>2# z7ks_IU2yISk9)51q?8x%6`kFoE~s|`eGRS*ONjxUneZyp?IQ{FUuDc1P#jq6aSkgn zH>YE3e2sjzX}u-v4Qr2YwRYP}?U)4@*Ry3%5apu92q}qjkyfcH(jVr1%1c_OD3xhA ztCdhoaoNeL!v}#T0!o!gosF!t5iThxNi}!C)x)IMfIO-2H!_4!ErU>lbK->j_ULVc zFnVV+A3nLq==;Wwk`e1Gq3}3G{tb(f6b8`M-A2cO!^E2Bq0XS`Z<9 z?~)KFClP|a6@o+2_lfI4-)+}8Nrl4k&5Gpoeeqdc)Az$tPUxFpxlAVhO|-=st{^Kl5p0pue0Wct>)-SiT1ulDx50D{?am78E5n-eFPMEl9W zysk;+XHrt^Cxp~RGKATX455zArq=@ujuMNgHF$JHddSx%B$8nxSvHc3h?8QNMxXN# zq$Z^t*5#xeR_UZ1*6gGlR%j_lZQg$PL?gs<6R1YO$V7)El8uO&O6!V+YQE^BsfJky zSr$XmI7A)gYy(0yTjzbr6urVkQ#F#;$8-U>Ou!#EMtDQ}{6V^H=-B;xhw^cJa>4t8$FegsB zX#%sJbekzM!o7Ylf&+%TWSGRHyGuUXG!AD=S|7hsB^yCu*dO7<+XFHqKH-{W&!HyR z2{pUL8RQn+hEySk1V}%eI)$Eaj^vJX`cF*sh10;%;!X12AFMY?`bNEBPbI|8?T4Jx ztM{h1cFPwhk{_d-$XB8MTb!b@14;ktJR$#my^{*fvM^>^s4If2gqilY1szGcljC6h zA9Rs(3Xrb((MGZn5w4REK6eN~&bbH^GvxvHDyOEfgSRYD1vuq^SMhdue1Qpr!hor;lBe(L< z5G<_x8JBLb;7J_*m?VOlNQs0zoQ+A*TuWfAxWvHSL8dHzw<{Lb;gqd}!6{qWbWFDX zY_n6g+J%Z;xVRQ9F`%?~#QErM3yz$*uweKI&$105#+{t9cVa=$6@DfrefXFZBUg8E zxj73SRFj`QDP=7rWQyw37^nG8_0|}TR}7|ls(A^H1sIXk1sQ>JZM)U`Qd_&{?~I`R znmy^zQETw@-oJ&L5+ynWL&0Nb>UA}4S>s8UE$d;iX;*`e*7us+Zf-{h6Hk++t4!|5XifPqgl49qs=)(5;Ful29pBM+O4OXY~SV=35-ft7x9 z*I6RkX)W<2A1ISPYlq_Eeb0c4U%A}P#sBlu0NX29G0{Gg9OyY#{}7EJ_K6$ z_&5yL4FH3DEJa{HUdQ)KfJx_wOILSc<573sM)ulB3iyc=hGuPqOamjDUo}e^e#Nyz zSXiJSf4BVFg0z!gS+SE}SznA_pWEQ%SIeiCZ{7Tg?-U*Yjx0mR@YitASykT0amS5T zq$|>TJ7}9mH|`h_v{L*ay(I-nqyw!d&~HhB(B#7z$!R@-FS2yrTTEUzt+Q$J5J6FU zMoYaDOkNkQ-}V6Xuj7-@y80@=Bbj%he_bDOO<47y5$Se=jWi;{ky#@lw!#nssZ9tD zMe04D2C0AW12?I^I5Rn^7vywJ>Pw`YOjrcdMd$?B5IRAOO<0Sb(uB?;>dj4>%AI2^ z-L1DYz0yY3*hmv1PAZpl7gWxwoK(&lom9?>om9^HVpRUdi{FFFxjekx3g;FfpG2Xr ze#iH~!@a&sPpb1w{WV197(+%ZAG5mtX+%dd>O|)mEa%f5(y|-_En^z6kq9Cjky;5c zOCSUZ)geemLK9(k(vXBlZE6@O_CdAc5;qxD%^(?JyWpa1{XY1VY@^73KB#L#I!{W< zVFm*0A|!%s2#J7_kWfE&+eZT!%1jngcW*Gd&n)0iO9~qa*hmBs3O=j*NIIOpXrI=7 zSdzL=Il@zj24r=LEsmL%r3t!^SZk#$ez&rebvUVvFgU4d!qgoX1myPrk#}5Egjtnvs3CquTx6INpCAc$`Q0S^%(clS;qa5YCg3}yoY=<*rV#Ma*gEjF&@fMcJ$+IcCCHvW z#l}8%8=xTlvW(jHq85eD(U$&F5UAPtGVCvtVnW|rff0SsaM zX1R6vA0OXV71zBY+jM0tjIqcjhe0ePC=!>vkDXS&v8@$-2SdJM7_vx0?W8AAcVI|o zh4deoKSB`xMms!=vD9+&Yivk30c7%V8%YSS3|9~Mc^0^r@=ju2^CfXlY4D6aE zKf8)0ML8j;E|w(Fh9wCmSyE<{kN>DSl0{U(^O_@_V=Y}4j(q1#LD1RXX$0{bd#@OV z(>M0*j3Yld-Ed?ZmZwr(3g}-Gg^gq*;^at4qjDA@6|w|>7oq`m$fSfcmwO!-=D5&A z%EdX7<;iimhC?$=+M3JRUW_Amtafswos{e(l{h(Zxy@}JS^q}CP}s?WfHuS`%me?~ z2h6&c7AAIq7AAsjR>0Jc)xdv)Hqqq*8CP^!7*DSh=>NyXf_@^(dH$`#;=svP>hv=N zWr1%s%DALp6I=*$qwT~k%g)5G;wY@Zi#w*#ransiO3jvbyk8~7i%oIodO?cUn&JX7 zx<-(7@q1YOkGgm_Q{1(LNI41wbD9z1gv>6N)sv@oKSDz!j5_o{lPa8@Btow{ zO>H1;_L}Z?LQ6=4O*0U<+0<>n-ST@d=_3=|O#1VwaVB-zZ`+RRnnf>?a>AnYG!z!? zi&;~jU?srT#S*Z^Tr9@}2u_+Tq8?bISyT^soJxe!XzNVN-`YBcbS5|rr@{0iCeP=8 zVNIUL{F&w-+`J(KrmN7eBeK$(t(85+Ow>9vM#;gn9Jz8?KQFZNsSfACpartB_9ky( zNlsQJo~Ji-3?)j40-&exO?KC3@QcP#qZJKJHnPh`6j>SIY84jVR7?Y%A_5>9I2qT* zxBXcYf3|ZmD|B)`>t)(bFrF=xforqV`1_?-(n^SXL7Vr%4?e^{|G=`%Y)-`g`vyaI*|v@MmmuP z^zX!paP`*dQo#sQK?jL&tEqs1kq8N>NCezZ%ksa}*aQ+r)2!&k;4kZ+xdIUltTfe_Ev_gC2TKBhu$uP`E@QHd1dR4Tw0W zT}fk9oV;Ze-R@*wR^?)Jb>tY z?Q*d|MCkB8blu<{65TF};X`Gnn8}47d&1|TQeMHqc1miW&-pheG4OnV-$R4xt&4XcYlBr&^GgX-!`TB<>MrAf0IHb=*oXg=;v!L5xr zCX!lt486HHwo-qzKYnu7U(S7MNBvbMZR@W!Xq`|UnE^=tXh7OUaneWp(sZzS2a*i5z>l& zGl&2P{dfzv@%@!m0!k}9s(>x^Q zFt_V+Faxk2bdqiQ!^Q2s^(|==gID&*z{4m#s>k_CIYAsTF__jPx(>vww)WcE9(@uq zxE;Ul#qn^yL%Bm8!`{>HIz8jSnJKDTu39qCp;bME`jRd9%5C_S*|t~nUN!418N)NO zIfnff@8uZcY7gmaY_)dTcbI8U18>=}vty}74&WFXog*|6m$1#r)b{(W6$2BG&8n4E zoCI}V!Cn9pltdynQjZA7x=uoz$3Tb~h1Vcpo*kc!XFu}r{0DBN*~lku0NbMO~yZb0{X}+*S1~EqGEF;n3!cR4yWOA z8SU*#fN`gc7H~Qae^;Kz-nd-Pvn-_g<2e-DW32S1!e?=!_F3#vXYue0bA(*9wjg~c zE|I3`Wtr$Z(R36+*1i*sL{PZbGse^;N$819@)>6h1b+xgW8gj>Xi*uDfMw171@xb| zn+T<7VP-R9kx*+T{XHEQ_4SHbfJgIB+&}yNV*qvt_xEB_YR2!Jb9XTeJ|R4j-wrRu z)(che4~H*NeARmb)Q?NqzxFM-JqN5>C3Ba#GNkZxPxx+;nK~Dz*?^1=+*EKPIB{|v z*H6Q!FX-X#ti7ILb$ids6BnL438nT%aMy<%+0tq*Y)Tczeh?*!7rh8;g@h5{1Va_e$xR4$)813*&qH7@GHY~2z8xP#7fGVpgD%8 zZv$(PPqA|@&tz&DC6^;O^zi8jWajT-0gKEY0|58_nUVQ}gYR}>TrwN_}L0KHj%_;Z%<@_FE8XadgLY6r{srl0x> zt^_)LdkhjFMr;4sc?PJiSbQYN(42HeL)N?jwN-NA|xY6TSN*fD2j zK}{_PQ!4nRn74W!?%6(~7;kFQN3I91YchUv>1bv`4c@DH0eNvtYAu?>>9z)>SVfrz z=C@1&m|O#l*8o#$fXT!6*z()SKYynt3jK(M%MDmnoq^R8U}^uk%CnuV$q=CHvS|k< zWor%|y*<_jE{B(&^u;Y0>9eLBkDS}pk;935T&%{Qp-o9PC_%aCJzmIt5#19SYq1MT zWg~4il0jC2@}X_7AVZ|33|S9!DCZ8Dfps`}j#YUaJjWWDwrfvT#I*3-wGV#}o|Civ z>-}7hz2`0b!V~@l(ZmZLA4=MiN2};{bY=WyDwcF* zh{-5r+2P8zkvtnILWHV@9$D;&GYv-1mGJo-W~A?Q0YdkPgYzK*OaUw9*o1S$S%GuJ z*+6W>KVRV-al5l+B&z$Y99N}p!~P5T04j%}Mg|;ySQ0LkzQ&$99v+) z_joFuovz;G#UaseK%&g(?f^hkG!elPUD_gg9{X{CkF^VLOx% z+N6Z$kywb1dZaNQS0U(LDHk1PNe*1sg|2Cf#7e}>6GPef(b_*8^8KoGE8lU&KZgW! zI^{_U-`_aJS3MtU!BNG5u{nHyV`FPyTyO;cIz0WbTR;7<4>6u9Ddm0G1i&9WA%2?% z8;#8>u?U7Mrk4CYO}8&k8>x+G82khB7(hG_>%s4MAXx@u;UY%OzQtRe{g5XW^A!X*Ns`sLdiN##UR6$NSlpD9qK7zC;mgFuyH_`ROL zQ+|$t#leYCSDg3_AdANDT~O_S-xP|A;1l`^BjC3U-QW~aF5e$A7FGa(G^YYeZGjzW z_Jul#^g;4#=}wKlMe^yJG<>)r0=wEfTQBp4)AG!2_CM#^-RzQk^e`6tb20d2cGbs5#h}bjjRY^Gs0p`=v9Er7yOcU#{)kO`ntB8rSHdtgJ?-& zX5I=(&Puo%EP@ZN^5blIzQ0vMDt#AML4xQf2cv3acZ>?I0_h1}j!~uHb>SwWTQ0lf z9wWO^%Fr=XQ~y5=75GO+>tE74_h^ak*M@=PZSFAm#W`^_)G@8;VaHv{enPM%Z*@D# zs=amgq;T3;Lsk#oV#(?sOPyq;@!}*eB9MBCldLRlh+d-U?g^p8;1)|OMO=0Knz#nR zQ22A+s4ozuY!@nm+-#8VtHh!qQUPho%{2(=X;y_0 zSGQEmrykuTne_}sp-XD9LY0-0yl{<61zyjBekJ#}Ttl%9N-JW$U<5Bi@NWx{g3AS> z8`Aafx#o8fiH_gjMtRJPm2<>2j!bd<`wL-l!57cs1CSu{qVjt6hu{V%7Xj2RIB&r( zkWuBx1_@n(z#toUDj`8Z+9;tJDNK$?ZWQ>70|!$*HBX`@#JYJFFJmhxz&0&3zQQIs z?v{(@)iAWpW$#L4Ai;BNIRUUG;Z%eq#7R<-2HscL=vh>Q556Idc#X;T^)BD~He7t$ z$Q?YM;n|K0=OAL#pK)+Ju_w@*uxS?~-VD@^>p=y6S*|f{!3|Pv_S;*^7lo6m&A=dq z4ACWnqMf@MTl3i|8Lqf<*L$PyN#?L zT5cs=y+B6>L=Kd

    BeY|0#P4ZaROe0W$NhUvqJ`T!kU$!mv&xXG)4Yc%Sgb-GEc zx{) z4UV+09m;TslHgcNgUS;l+L7aS9C6IT8BMq&D!Y$$1~0+$Xhu zI(s!)2I^$r$}5KsmxB>OM8ak(bkuCfS^2#M&7E2H^bNGu**!4scN zb}kEj+49*O{5J+gf8uC8%v(c-DzC9!yzA9eL(2-UB+k)BH6kU4922~hLb_vfQ190t zA<|)B@&i8bnx^85N}(9>m3YCY#(Q)=Is0O`Ead5+`xEY&lJ;^)bAnDk-u*Ll5fQ8w z-KpzeYO2{(x0U^U8j9d)V?>BvL#8-BxhuyoD)z8T5O<(HCC;ekf3SF?#QJR)9L|ey z_`j~xz5G|<#r~N8d12?y;4bM4?ycF5?0zpxBXLLYzkJj47xu)R^g{3xlA6PB4wjH| z{dXCu;9~w^cW7`SPp0_69G+T8+JgLt$!CI7Ng=ljv}--_Zbf3d_^(oD3U@uSlj=F3 zMQ6(={+V3dX8cd_Pt3@q64r;b#`FX^t$wV>ShI{N8HQ|JBGjKb=#xnhl`>iNdzrfx zn=9R)q>e|~*i;M$%`eW!M11}Z*@Q3DUlPUF#g=G0t^`}!N7A~SZXw$4$Om|(10@<# zuq)MDh>U)gB5F}~_^6Hdh*`zW0s}W(NJZU!8h&sqCmyAJ-LIQUMdN);2mJX%I-q-R zGle4iXNV)^Gr=fQq8&`4>IBwi&fLikCef!x)x@P~{z6!p?VoYO%yvfT;NPZg;_!Ko zFF2WOvD)Z=UUNP4DGoPb4yjx-(yQ#`Bu(t@$OoyZb&x*6T5Om zE;{Vjw~KyTVoS~;)5)>BD)(nfwS7qaF()z~**~0*46~_7-Q^*T)9UL;y-dw%_1`0! z@%$mB8<*Hrw&!fcgVs+BGY+jErk{uQlnu-^#rmJDd((snQH_&JT#(YSId*rYD9E9c8nko#g=~81{FN>cDCuR=G;n-wc zbf;y9M^fi<{{8V%1jA+|W(~>iIS4gWr87cHh`;+-x87kusoz6b)42dQAHre){n5(p ztuMLy!T}M?@)De3|M;ZGWM3agd5%C4kLQE-No1U>jG858&R_gsn$#e3&LJF$6-^en z6@l8g{vo>r42vo_NxqPnoQ0>V@kT3X)+Hul-c<`!Oao3=K!w2cn1;hHAwuquFS*gm z^3iye(_BXRE4V*RM|D3SuCyOQ(^YoqRs+1H^3d&7iN2~sUn9(W&x*A>zgBfH2guLL zV0_8=?Zu<$x2L&fE%?~Z1L>Do4Ih$NH8xdZBl@)o4L|GFKWk7Kcds7sN`#!V!W<69 zf8F21i$MN5GIpOs+WDo1)E7!9r5@yF3!|eStK&91-TQ1a;*ftovKc2{hLIajJbwu1 z(S+ry5)Vp0jN62%uXDhk39|pKt|Ivos-o#VcRt|iVWzHi{%G$G4NO}#Cwhfsg5lRgM0Qy4Kqd`8XIuVSr6Lx}Kb0MY3;74-504zFSLW2WNp8a^LS5@#TAtM#b) zJ)`iQnSwAZ-L^j4e5MJ@UTK|Wz2f_&x# zC&=zMmp6hftJ^@r9jZ$P@Jh;79{LdcU2*7Ub|fRb+Y#O^6+_s@{0U-<0Kan4D3rjn zO#Cn+f@4}`Bkn50(n7nF;R0$B2FvyI$MyYT_d+a0x}QR3#iw({ry~aNsr0MyYRO38 zd`@1SM`iuI%KitL=t*5am`i7hOUJ^c()AISe)!ehbE$NG(DSd)Su-`+rl5#hG+f}*W zmbcshg#!%HG`lMIO(^$bDfi6_BIT~}>j2%X^MB`!H7j<{8^Wh&7|e5{GWg@}K$U3{ER~m%i?jh*uROvoc&!c8B3Br)~mOzO=f7B;q+FIY^!L{~XSw%9R=ur*phWJ=16nZYCIscZ@!V zNk#_CPQRr(VBABGtTc9Y!-M?QlJvnNV0U9XCzdy@&5_?K@z2Vl_LyIQPOk9ws`5_d z{E;)qmV4*2NOU3A_2s#CXy-dZnl-GdAsD)A^1679C*H%_Podrg8ooGzIU=N8`V?beTLp$Uzr|NPzi)wg|PM26R&Pa^+Rk=AI`yJdF=N^t_BUefTgtbIt zlxT?(%Z=s(p(6mpTa1=>4mVK+8-dVzz92xi;SjHGc!Tg<7XBiTxM^1K7{c=pdNvi$ zpCncMRmqeCk)s1V1cgAhOr=$hw0##gr1LonXH-rP#~3i!so6TZjhzqtO56U>OWS_) z6A3)}(5M4d)Fmt57W)rw%&g%#HUZUi!x=OjSjM6=tM|x9iu4@3J=8sk*W&)2mI42E ze|+nZ@OPBK%aA8H_q$!%M5i=#c#g-XbHm@#j2lL7*)5ly)i*9}^`QV5%w?>9to}&+ zfL)@NQqKbMMUu;Lp{VC~;fMW0erR<3aPiyF?9@X;ekg&EhH5-Y)I^E7BnCs@9X|+! z_(2c`@5u-Gz<)O8m%FBp-Km0KP0IB?; zJX#;?bNsPFO`)D_dLH&rbyf?X5xy>7gOztb;1t4&j1ZT$DA7Se{qCR;K@`3Vnjxfj z5K;jU+Bk$e`G$N+=QCe*qLDl4$`7zhFU8<_ z!lIGFpBYA-`m3&PDn8UIu$^C~3lr6G+xZnYZy(TtwjL3luFay->=W&#pw1%2rrz&)ZD=DicTKX-Jm{>WJ`69oc1P z-R3}Lg0RZ+a+T2Oh0t<2Y3)FLnNM2cl7VPTRIv=ons1wHLZ68~1m1 zJNZo=|B~|C0*MDG_0N*u()R|)Z?*EK%J0G9?~#6Ad~T|K?@}*nGz~z@5`AjMU_pNP zBNOC_4>>_rW;MCj^19i&v7K1RD;tB$x@-*d{q@05UBNdVbOjAK1=F02JbW!0fDKz| z(e>aO5CuHA@qOeUZgb4#N+Z>X${0P_N+6w&^N;5oEPk^%>7~J~6eLH*BRr(x)8|CEkUEtod92yZNe!ISN#~c?MBqgvUSilN6&tZLmx2>TqH6I;`WZc?fBsB z!IwredjwFX73O9O)x)_WvU_x{g(h9Q?%#RtjZi*dEtf0fpC{r^->+1*R#ZK4=?2wp z?Ptz(y2gh-_(7vjuRY;&p~~z`aDtkX1i*!*3Xo-jc`Or#x+|PKk#P+*nL zlem#hhE@1aZEiG{^Cav#nAt;fSuK0-2F+)We3^&l9~N*o%PwRk>QmeeH9FOL=A5dH zz?&l^P7o&z!d22OeU=T(ctVasa)IXt@$}oyWZB=2~+g2=3k2O&8LL^BuXkK zX!>UQNP5!}4N<~uMhLGgVO)9TczX1A-%^LbUx+w)BjTuB6jSbsy5G&G2<{rpEsw_3 z@Ll<0yvvf}#QJ?{&rKw0h=xB}pdWh1@!k&J{A$f~Euvw|`ABPT(t~9J9%`DpOe#h6 z6FqalU;0P_K$LJ+4%7%=qirKvjhEb%g~vqvo-KE@Ld?`ca0*3bWN0~jS>r@L?a2+5g69V4IRg{7;UdU#%K&- z1VXeG1V*A`7BHDS#zHRUhQA0TSTExt?61;Oz2i!{p-I>Zg0Rb!oyWV%={+ZW7e;!| z=iRU`ge5EyC!x{8x3iW1Yc#kTQeJL9A2l zhZkNSU|;Cx0rth(@OK)#oce=f~BpA~TE>cZNJ$wvR}%PebrkSL!EWDT7R@0+sSJo_hh~BA@zGNg~Mde;xORqe`nF zgXdQAK@_1Y1uqt+=hTRx`j6rKq64|LCTxuo0SU>JgL1VkZs}dnr0MNJIR+qf7yo-{X2gj(!Vt# z`-&*h7Sh#0VPP$N7c|k|euw@l07ty~9`|J*ydR^4`h=RBivRbZ>S&(VL8fq?r~ZoO zdFn&bxmsQ|hmG<9?1p*F@818RhMWl4Hw@SpP4~G{1*Z30xW~PV_UR=DqUeP|w2X7qqp6<~>Ro>8DqVFriPC!j!)dMCf>Enw8;7|7)%GYpX@(dtOXico_#9)e`+tqbaLK((=UP$Upa*$Cl1yPi0l&xzJbq z(uu6d?k`=B%$?kO52;R8uzMb9s@dZ^v+)ZzA)thJlF?dEJ zyWE10k0h#uDqU}4o66QsoKc`}hIZnN!lvTcRt-)Jd^;dOh*Z8#PMU$M(*mLNG3b3( z1BmM?@h6ZtAHOuzrG3!Wlxijn8)z9SC$)ia*9MPUuAQy)YChq#+I@e=i*HpYjwIk z$jD)m)X)RRzn2_N+-P;U`Zo}4^{?}n^&=4lfrYVIMeAd}J5VPqbN+j+hL#)VFkTq> zsd+0LrzAG`eFG_E5op1Th62e@m#XwLeg?k< zTc9TzUKkyqJ``n*+^hhpb5lhl$zUn+@!WI$@-Z3y1^jX=?+%>`Mom&sGDxVuy3dln zfOjL%DS&?359r>bcLS)SfR1;2l3KdAs0AslgpStvL}aM*9n*zuwR-{TXREhILWZm8 zYKlp7C9+$(vxy89zvn=L;E|&ov+D&Clu@-<{yW4lh~*VSyc?D;^Y)CkA9@$3!Y1~%wU(& zezF(1o>}!@Gs6l|I7PRv4BsPWXy+YfC`_fI)ZYfar>Z|S3!Z#hXgpTw!U$H;MyS%R zha*KQlyFcTgyF@P@HhJGc^f;_;L-J|sB$1H4EK5Pb<5DwL>x3jJEbpEBs( zJ`AW=bC*>JRl{fpV9dQnR(z@7Oht9q2JhB<$k?vdkDZAT@PgO_4%OtuwnRnConb}V zzV$Wzh7wR7Z^V_@h1UrO-|Y*b@rRWH?tx;dC)xMg>JF8b3dmISRQ-WOo|~o=6o|Hh zXXJY8X{PiWC9-@RFgi@IgPgB9Miq>N={!dnSDbO?m_~jvQ?Tq9Rz$8oW*P4cmB(lo zkTxC6k}t&W)crkz63lr-LmdZNt6o|s zdDZf))d+PELLzPO62ug7A0Dvgsp$}k6z!0KQ!pd zxDL|clUTMH8V%&fEo;k~0z%s6wt_?2=C%T50;Q+sz2Up%=RF?2TN&PK!gnjj`&`~- zIQ&{WS)roxi~p2QI92P3txjJY67|8_+xOP}bRR)~xX5zSOI8v;k(CHZoS50VV*t^d zT!ykZSbmaLV(p$O1oAJ(MKA_*P)ch6%9d7tZ+8xhK$OV?*|&2|DupNdP`lRhG<#@`y1i zgH^{*&F!(~XSot;K#vX7c>k4Ec4h_&<^8w~Xx6su?#l!|(X08#WsgGgi}^?1k4*GC zTU_#OA_GDwvB>W)7lL$FSz;Xo(1HQ#XE_goI_;3l``FW2<>hFhC61MxT=J2JLoc@E zQ_D-0cNT})Ok>IC*1Y+=R~Eg%-Q0k#>Ob3o?HS|Q-m+*ss2rHqs3WF|-?@SyHpeYVmv&2LJH zZ(lOwRbx1HTG6|)=F#ZT?&J8TlO!(tyZWDh2!ka8=8g5V<4arHcDUBJ^k>BNYAzJ zH|2@QVjvMe?wz`T6CPPNs>{pe_?IqYu0@~#?}&<=9N|=x<&_V)$Qd20K zuvJd^Y&t2b0Y?RFh%#alCv3kv6)f5bj&4$0Zuy;o5cg;19ibl$HazWmBHYA**cuinqXV{n-pQW1u%~oQI~fV<-6Rd>x;N~0w3}7N^@F+b zq7P$N?<-3JPqHz|;tk>%{EHDg>qrVic>1H5l2jz-lILBo^l0Y4M}VHTGim(9IBYB=xcFK9 zm{J^~3NtEHG5W&Lz0-iH-$P)lcK}R72bcsuKG7}{{|qqKIWX4^1Vdd$n4S~UsXV?hIzIcOr125;m_ll-=MSr*0 z(4_&T+^ZQ|;Ssb@%MPY_#C>0uEBUh6@1GLbrr2*bn)|D7H*CdamFtvV6map8X5G1l?Sfc$sq)&PkTK$*G-%BVs5J0I1q)B z#%AJ?qy*zeAB;bwOp4Ll2YI_0dcg{hZ%*L8^sG7(sMZm7sI!^}X zQqiG?%vIhp^5kmbW|?xox*5)I-@PtWcXcRh;Jz5 zVNs5HHWlA7v|9Fk{S@gM2g2gj1%(-frB#x&#XkxM(k$qloYPY(Mr&0|!Z1gEq)~6L zCCu^lT6JqQyq&=~-={rW^s5R4hp&Y>5*wvcM0Iw@Re00M{DrpGp<_f$zEjxh z+y@<7l_FJc30%2SGL(cFg5MQdWTWgcgjRGidbUxYB|3yT%;30-dr8OJ zSy-QFr=t!gBGce?Mu4|Qi6Bb!kx>3??aTw0%>kz8sSc`gL3QE8Vpm7{PI0-7T-J5R!vg>?e;Jiv_=SEM|G= zr_q8wbGHMld3_QMrh1gh7&RPLv=oGvXQBSb0CAkQOS%fnw`3k_kW--3^iHvZ8E zdRC%uy=J^In15#c-S}t4FL%p7-VN|i9sryJ%kAYd{yBs7Qjs7#215q6%YNNyg61#}Uf`_en zn{RT>Q*mJ(5AzPtz-2D)FT=d5L3wL-2RFy%{eGBNNGR{z-NAk1A;Y0O%xid(w?TRR zjMBS^WEw@g?@zZz+jcqO8NC01Bk^1jg^rZHB=e}t3Jx%jX0|&ffwdKyV^=;G8oM@I z41?Si@$fx|40^8#-z~Ps&zSQx!64_p531l+OO;KkXL2FNqHjB#U2C&yp??M(SM>^uc=Dg6d!sa9YlK9&BWA9e z7luVOxU{*Bm#LMsOux$}TwqVue0jBR)fYi2c(#?WCqLusIsMkCq$IAEp;tPU=i=$+9b8VDi=CQ^r)*bejfijJ1768) zb_K)}nF$*e(qsZS7De82*g(VNKZ{;7i+eF{z$?926W z&|FP!sweKjP4y`Mgu4?qkPLSxtRhLAMl^HR#67VnZ+x)$dQl^qxohH%Z(w})wBF?8 zojJVxM_XBbcJue&5@^NzeTBL;;Wl+^{=QuAgk~v3t5ohzEbxmgCTlH+cd&mqy+ixV z^H1?+4$ZCf4xBMhG3pabcvNwi?2^gK>tcJVyc=4eNz#W?rTxJ}^!xeSTKU1^jb>sPg9LF;mTBH&pR=7E%`nIrzn=lH#Vt*b<*Cnvk>^ z^D=&ez8nV{$2A35Vc(s7tJ#?bSdH42jr9*+%f0is1$B1bEFHXDUW(gSQ z_tyQeg>!Okd@$$jXeumAybvCe`!J`Uo#K@pl3V4?=1_9ZFF0S0+s^)d%yN_1hGZe) zXY}2JL>{dWO^|8Vw`saDgGo~aY0gK$^e4$K2-9q# zzdc)3;@C3zb1}alrrhSD(bFF{{Q~vE)AbpgXwtJ6|G0ZEV@u}oJ7)`BH?$Yf$^I{G z{Afh1c?Q2#dEemwZ!$@9T@c>?oPmagMq{TyquASyMy(-@tRuZ^jAShA`5BMQz+&ir zt8FLTJ}VLD)40{&!+DR-O+n&QnB()toqsjQ#z#eZ>x<`9q&$29W8#*!RR%^C@(p<0s2T+k2DY7;UX zh1P(R+MQ(45`27zL44vaMy$Umw9wDW{GWkPzSIvzbq%DPz65s(2p~<9 z4f);D4Pm;e`04jVB2Jxc9xeHH=N`5R&MCJGj+5AUQ#%UBEjhb;KRvtllOaNq+J9%z zGr@<8`%Gz?o?5&?>TCTp@1~)RR6WhRdgwBqIw-JsMD-5rV0{UmT;TxvC^uYJqAiV;r32u;}@L$)AQWZz!iH%HZYzp)UUUX}c{Pe4c9k ztjhmXU3p?tgk8^`kffYT1eys#iqkWLTVDp}T=qMbw3;|G>F~vcv(KAzZvBKgiyPAG z=hq+5*sy0^OFdD@S$AV7M55lk#Tx3Sxr%-0pkv}(NUrdRM$!;0D}j^Bxke>qw=4m*%JOEGB}%wIHKY7!u8KDQ`sy%eEjdGbZ)3@R+&P``!e1=D zfZw&CC^RU{sihe!zAcjjLwV%eNzqnC+<~6SsZyq1S#{xy)))RHu4B1C&7dDUdD4wt z)+z>-n*65XjcJ8`sMWHXjJAxA`+=16Hmm%cw^2B3ySKp67p~^}6 z^i5@%hME$F8|EA4^9OHQd!{GSb>ZNpe-zwMssESUfA4v_a=&qX_f{fBDzzzhbI^t= zk)n`@aH^ni@CJwu&_IEb<4|9fs?oCTa!PnqrmaZq3tuC(` z(%$_NEOqUxj-_g-1>vq?m^F=@Zl+VA*kczjpnYip4K^};&G)7u|%9>F-8j^ z)+bD(IQ*+i?0(}CDG_~f>nDUoz&n%CnLRNQUafRJ9uuP(rlLALx@i3#!539(qWIU! zqD`@-zatNtrNo6I*Aa@mC~qbsJ>yHf=#$ve9~#pzBQY{o=GDgiv0UT+VmhO6HVZwK zd2@CA8LL#`%DbOY=4rFK^z-A2-_w5HGLM-U z7m7oNMs*MxwyAh{w>lj^LGRVPQ?!PM5NH=dS~Alv7nVAw*3(pwwVyo>hWrd#R2Zm5*lELh_T>B@t^af6sGl)OJ(oBuvvS@;4V*d15P9}8 z+Hbk1$V5>Kt2k+N8F$a}>lG~$Sci9Vk$9RJk{6_PPglsBpD`XB#C<9o%s5$IDTg-| zwttJ2)CtO$GJ41?Lc}x$Ae3R21fmVpBSTSmthD#gRPu{goue`2wvZam>Z(X|bpH)U zNSu?#5)X+lT#vH!YIInX*AVd+NAdoPcn4fi>0c;a+^2j$+_Tc3KBT9J5VAP85(vPS z;HX11%)x4EfkBHH3T|yEO|%{Uwt8xwiYd-1zGP5aw3{3(-)S>Q_GX&(K{{*CTaXZl@ zT)MEXbZy`8(#2gnp|L)0MbK5jj?%?1>RY*gW!iJ$w@>NnfIbGSNBE!~$%V!YEhrLRRpYL(Y2{lr1Qv85G2l2`_O(49~U z4iOtcD;=Ss7<~;}`6&=N=8gmBXFrRFg9!*3Of3|M9b`BdUnn8fiSPLw9vnFD!V)y> zDg(DJ9kquJoWIQ+m|XYpEZaMtm4wgmjwfCDtYkda^h@9?SEoH)q>wx-ZT8+5vDZI- zg$k&7RP5yfGBwtvQBipA{1GpkF0gaw(Q%=>^mjLlo}{@=2*N{ zBsKxis6hoHjw%q*IG7$v_+!uJ1kv>A{`h0v!St(NQiXOfy(q)M^qf$9Y?XhS4Pzn! zhtUt!I3_ZYJ~6vzI;=C6hDeX7P%w-zoI%wNMmItuLOVjZ3O6T5&DZviKbvDqPZiVm z9}!J(=5S(EDu?G2ocW#8(JubDnLMhBp5)Xd@>Y3?b~WBRQ>WK+q#~!+SJ>(GrnUP- zhD2x72bZqGx_sjA>Vxns6+6KG_7|Z<%K7y(;;3P^YX*ldmqz9U=1f`tnTa$=MW4$b0N)V#m`Mcu559P@&6VS#?9N9OSlRWIU4lTrbIk_V@c)^ z87(UW51Vl%PyVyCRI$?VZ?BSKt6CEA#MtQWU_w#(5Yabfac;~X!umrFF$WO!bOA4@ zo5y{@)TMerMV#cVY6p;ayKWr~@hnyScmkerdvCjVK{IdtpFRsF?%-8_A*Uiz`eFkP zPlWejz4{sXf1vfZJd2j1#$H!I6(<<_9TPLCmWZRQyq|H#Q!=#Q34Su3@oN+05u8mW z*?Kk=2VG)mvk(Lfw@uPQ(0g#{uR{w#<*dh4&=R>Ms8W3ldU{i>?Rvd4FHgBbHkUP; z&pWxI{f{D1cxCC&i6#@(B&T9BX{F#w_M$1Ey~5C&sHO=4(35lt1(uI&4OjJ&&cR{~ z!%39S&uH8a)9A(%OxA>=Okd$fO(K`PJEmb5Z;-;}D%L>uUn{D7<84f;6CLu8e2gv$ z&&Td1*&k4A5s28idASNr%@6KaloDU7Q4gNfk5~cu-Q%zlqLA1D&q{xG-U_Guk5uay zzahFv`FHAx^0#NmW}N1N@m5E8svUWRA%-(6uYjCsj5P%ql9N?)LELL?wc;5&9_J*w zr*mYtu=BBQLOj7#nXw}b(5uWNl1^agr!GoN+6)n)i&eUKgK$~zLh;t>k_`U~P*#z6 zRbFnDHnj?a)+>31J}K__)6)uaR~2wRYdmpx6Q`akW%gQs+})WnENFc$JJ<8rbv-Muq{92@GQh$HXTC4) z=ivOe391bCJ_3HIPWR#pwi~P7ftV*~fG**baGRNhv=AlfKBJeQ^6H2M1`ky0cq8ol z?te0P^WjcDbU#Kq?j2>j4PcD?Nt;`G3JouHT8(#3x_1gPI#X31%M_5xxw&4kbE?T* zd(|bRVVr!f0$Q}brTao)hHGjI5JX#3+a8=pvfsv_Qz~xkp3TXY2q!jkG0uZG{tO-fVfL$q)sNjw*QVp~6s)NV&b*=$& zQsHQ$GuZH333EBEKw~72tG^ux53nw7{d}05=*Qg!KC-c zr)dgdOCDuRru>X=-ioR%1mK)aX}SF50{1nlET;qwuu(;&Elq_`W$=WiAR0;Eo`6ES zYNJNdMPy89HuJr0(!Lp*&13{`wbF+gMFHWD#j+gViP^#Qy3BG-6;&2M*iPowBlxL; zxiyH!Mp+PmniU&WnjQDk`ORIGqZWpHfP^J#GFwYF8M8qp?gK6OL6MY0*x!pcw3Exl zS<{Ev##vi08N^xL8_1Vtk`s}=YA;{u4R$^m_g;wYZ3)wSVpT*y!E!~C6nfQ<$ z-L!Nv8+aG(laFNVlZ(l+vWi~tr`*hg`_tZyE!nY;GUIYKxNB_a4i0(V4S)quUV}%k zJx>M7nFTUSr9dWqU{}cErat2785}b580U;2tOxPZgRg?P0u^dnhZXH&+2xW$J*lh) zqDF|JxlBIqX1s8!{08aD)JnzU4YHX_$R(Hja+LxD(O&DkjrMMt94Pbetz<1nCb&39 zmbsy#eM(`dsu-M~YxT2tCY_qGz!cd#L41O#a~0Bv$=;pJ7<<$-YDW8b%=HDAZl!Ad zsjZPaOy7*@%~vD~OnxFK7$lU{2<=^js86eFTxO9zD1zc*zvyg?6eg?wvz{jJF?QFq$?xiM=_6LhOY@g#EG*4gIcGYLwQX zZ+U2`hHJempIWYYk#^@j8Mbt6SWYdbHRE{z#acn9saxyob7VO5{)bRE_pEcX69Wf$%c~(od9mRPWRe@AvST}w*JvYc+k=_6 zNXDF65!DHQJ`AQKDAJasERqYW({ydh#&S@vH*$J{bbWW;Tpid>$7qKI@D52QLG- za1(6l{c4{4X6c$JofH|a+__OsuGl><4P7{&niuUw`#yZ6jgx>It-ddc^$Zw`r8Z9l z2x>WBX`xHHko^%<*(t328Yqq@jb8wFWGCP{IM75K;eO9L6L&<sm}tj)d1?Sy2JVkTzws`zMPc$?tPT{YQp;5?^)e(*Nt&yhruy_an+&FEP9g!;(lCe;QY zoA?0dz0^DYn{C&Io!@E{V$Y*JcjLd@_XdfW)-T5G38zZ2SY9Z-f-+JAYKr8%EqqrK z_1-R+SQ=XO6|#*&Fj5owWa=5O4pAx^>tDJ?0s728L{Q}q%D2Rjjk;%<|V&`x;Ums{iedf?>LD>yt)-M z^(T}I)dZ^6H~Q-32W3}rh!SW8myBGsbCcuhBq#5x{43OJ{mP$VPkP@*fCK+s4nh4X zZ|T7<`X!^tE5a=YJRns$X4Nc4St%qL!>Rbu6GDs84!50Qt5+t6C1CoCO$-|2Mz}%4 z9X3#zS{R#aRtSJ(4M_*YIa0Y!BUhA%0%6Oi3EsrvNqEkbrC3gwua&yh4<+{QwBn>~ z-J7z~(i$)QURwRQNsr-x|Db%*n*?<|@yHBrTvJXzBYO{oWp4$5ie*A*z4pAOO%IC! z`or~b{VNZ;T=v<|IDH)7wuIkSD(fbYFrXh_gX+3VKlxdYmWgdqT~oG*TWo2=>KU+D zsxQHYpTHpgxNn-QR_8Po4|PSr|DYoqF<* z@8hVO)xcrKh>x1CAM-ek|MP0c?1gFq%%;%@EG{u|%TB8Fiw%~cZ~!dM{;a&aD^q&X);40ez}${W8N z92L0Wy4_iEQdovN-_@4;_#XrC@3;#k=LNiqqlBGZ@S$eHz3l>p`BuaCGA}Ftt*JbY zoXDe!1IwGAWnfUv8nLUq^J^-aF0DM`m5fchKahPdQ=}w(3(`&S{EY98 zgx$W~;aIR0ASOfEnvNzGDE#1LWhf0Zw5V1HqSmq!Ci=${1?1|wmRtvfx$HA=&~Me) z7vU0vMHu}E88IauTEB_R(81*1gTAZ9s~OjP319ESn;cflREwYW%acNmKgnPi%Lw6t zAwc>PJm#QyHzO}g1;x+$R#ck6yGUNFH3Jw()SR9XaoZm7bdc#;dxtzSlK$DY zv2AB47-5jyq4c~-`3x&;Z8qq_nsAi<=s1lp+XM_YZCAbi*X;ya@dp8&7qM5*1?}`q zl}c(9;b33KMw*OAgVpI8=HIzn!b?a37vps(pXK+nZYTwxs0O&aP+;IfS)9`G5|m1R z#A$e$FPu6d?UcmKM}kxQ@sCvbXZMwEg4cER^YMhnT+!Q9eA&Yy$X?SDWsmgs3}gKM zI061CW0kR@8xM>h2aXA%w75R*eX9hPxqL0Ue0xSxmp5;#|J1QT%pC!XfFzHg3CD&n z3*KJoNqA~zwl%ko1Kt^ul%DMK6pXXOKQ_SG7<*9C@C;p- z{(+TGYJ?fM(jE;ySZbAiWexMH2iGNIcfUoaqY0AZ<_Z0E8yOYP6=LtAi-JG>$WhsK zd)7aT1t6ZYsU)AuseMOBvY(7J2_m}83ea$-FTp%Pz(2HE0i-4DZ!&Z&dbir3^`rBb z2-tOQ?Ph>}5(d&w#|a*i(?$KE^&BV}omSdFK29r5QBV33DW-cLL^0L;Rf=g{q>?b2 z&&H!O6y<(OqH-O&X2iNGzXDxDLDMzsoUVx(e#6i;>w0mnU9&`(M58wm1!OLR$8b{a z-U?74SG8`Hs{ybAmE<61LE8=dJ;Z46J9FY#^AyX#&SOAInPnq1`s42AI4fH@k|BRe z!Oau;1Iu@f|NN`jJj_p!VgV>i^e8OAsoC2GY{xZ0B8volnLRm@!JhE7Jwe)@%qe+F zkUPLf`fRSfuQF7d>;O}gPcuI@75{UixZ}$rk`TZr8E@Le%${&2dreM1GDB47v@mn@ zGxpuc;--tzQMuqt+`NyYM}j$8S~si04vzygX6%+zt*4s7P#M^6|qn%DnU| zEBv#Eh<_`HSLhVEGU+0jkY&1krayjRhZZ+KTnU3gqHJ{|qfV`Y7|JRV8!FV@u58a$ zQHwS%euaFXK9H4?i~^uk+fie%h%Ij6@L+UW_Y>O{8yHj)nBiybul9Z8+NgaV@}kIJ zwmf4%w^^rQliM>4#47q{%)gi55QTgkRoWl&af*d}(Asx`@-*>!SRRCGtz`~Qf2c>b zeI*`D=s}yA3i;^c1)vu45wG;m7*biZW#MG5*NtTI_j9nYHvGkrOn^nLnKEoulv_0= z?gGi(pk>uA>H|1K1!s!jn2F?1ITtv@H+>F3$;glOyNUczB}9I_{LfZEwN6}LHD!ZP0$`Coth?`|mQjrc{Sf9eps-2${Ki#iuRCizoKG?2%&>@f?Z zGVQvOJs5E&V|zPu8lxqac&- z2FcY%`R7X@fm`CSGawhgQ9@JYpEsX?A3g{A=l8NrV5$E3qw*1rqnM#&WPepAN!Ab^ zoX_z{Y)OZiKcSC|`A-@Yfr#d5y6ckjOBz36W7Nlxl%*q}oR(Wz^k8gBqm?3rk{`Sl z@gmwu>$G0mOueizcZ}3&J0JDO@9lcHGk3+`dd0acTkxX0vEAPM81f7}lu%jphZKbC z)a~wV1rH!@;344`8Y$j_cD)k+C8!^6PeRo+&j}-;(k{!Yzm0^N@3F)fJn~1!67~z| zDJQOj7oj&qz~=k6iiAWk{xnM5#P0&^D523NNr_qi2TIJn3!GoleM$d6DKT15-|S05 z6~b+54!GLb!ue`N5~!S?D6zA4Bo^R&fkM0oNvoK!x{!O zB%7)qcqaJk&5|L;UlhC5MV+!@;DVOqYV4dXN7MQz=JF15r&; zD;oKr8XW0Z!_Yh5Tf*;#U?ROg8pSZ}Uq$!Lo^n_^r!e~-X?hp%Q8tn}ZBuzUPCUxm z4?D%#!Xa^Dt!h;XZ>5;ZYcs2cZz&~Rd`dYRNz1DG?0oF*=~~matF2H$7hZx2`n|{c z>VNFDrqBZ4s&;?gUONRIqt}905xA62TQ1trX)ElR5}`ie{Pe>t(9TiDYK5w4A_sn= z8|c69-#wuJ+5{}&`Y+m}S3P25$yi4A|HsC0R$ug=lPu4rOpx1}}Hc9|-9J52I{8f!%OY>(99M#&XaDeu7EAyB={gJVPNSzN^5qjg!Bu_gqpE&)(lTq zh|WX&ttLmsjs-swPI|}|NpN2~i-Q_ARJx?}MDR8pR0YbR{SB_$(%qS_nMn-?Pih8S zcG$1TK~b@vzy=(zt)GWI?3l--67D@n9kiO9A1Et^k3)ZUc*bbI0k+laO`$etrY7x* z1}L$mMLpA>W7u@dB85?;IEs`Jp_GPq^49e8GbVR3hCKVO`{=D|&Krvr3T9*ElbwW} zlB*ge%-yA`Qld1*DYB{)LX};`x|!%Yl(Q22z9URqA<{vZRymd5qx3y+VnPmATdfbx z?+lJz|0o@5#Q}8>ytMfp9BDtnZ)(aY(#yTBDD;Vpqw?lWYM!pW`%^08-n2J3AAJLD zg>xjN4G-^+Ow;cWkK=ml-N^;_Yi?q1bG59QA+{HR3RM7>4xGs;PV?%KG^rLBNdDL} zbuB^FS8Ck-DPvlucdgT|aD>iy(?iE(obUWC!6~u|N$(D(F2pUs0a_*CkKNX3hJ^uU zScFCEsvBd5`YDn&oE_9}5ph6^IEEbY$Vl6b5Jd*|P_FK#Tc23!M@55lL=Ng7xgZPp^#c4l zE|Z5Ijw?lBp@-ud7cY)Madj?kZYmmxt8?Oc!be~@m^L2X)DU-Shz=9DH)m;6`{Nw8 zRduanTTo!VDswI@T%qjFe?pikXnFQ!8N9Bd87OZh0T-HfF({}!w^E#xCIqRwL&!wz zSRR^DiA)nTpzI&8U;btc)|GxFvEk47Y8dgvY;Wu!+0m3D6XMd3s~QVYLU1#MbPn*% z)Se6fC{`$~ow;qiNgLM0P?~_7tBHg^Vk^%}u&!f2!!~DDP7|f1bD9`{pI=^+#gF=# z^Ndyw65k6m1s6SI_*nsr;HRB{E(;@JxprEDesYR#2#cn>f@56a<*x8D^%H#R`9|#K zdX?nq^+xm0e9JFFcS_Rp*gTSg$0CcOh*U(H7wf1%G}5V%MaNV_V8N+`P~C>VcZ9z; zs2snmA}prc3FJ`ey9!&Tuf1D*VX`W86`5hK>WXHR%4tTKt&WSAx>t^yZ3^0nwUzbr z-&la!_U~pJ6bi{umwGIYs1TkcWYP^GGZ^x@(9zHyszX*C_;{DxxM;LceQ} z_4~^3_ww*}RRkhy353w|6t+yi@K;%cx{3^;sw+aM%0&nj48%)&k5z{j^&`~E`uRV> z0}ArnEu*B1i!xvsWFWZ^l#0XvR3sLxofe|BD?;gxC=#f8f84i@9%udQQ4*Bub1_8) zf$~C@k8(#QH~{-;eJkf%%k=B-Qoqc#&>lX7=7<^s;I}?%Xo&Z_7E(Sc`}X_r-JON5 z2d=WIR++gL5}1@K6M5}$@k+%772k7Q3n?en9k1$c$f*vzh=G9zF|gkNg$OE-k z*2&x3dxt6zLv?HQZ-uF(w^TGJmDespv!PnaDei24XyOcS?3P*H;w{)lx7xmVM!M4s zur48kXk@J#fkp~wM3)9-Ts0$hPxaK}tD5(qCs_s*Rhvl;HsWg+=$Zn?MUi$0gQZKr zuRrqnFG!Ay4kAL2id-Hq#>><=$vlz#H_kOJ2kiZEmCj3V7pq=(49gSIMss`l>T!kXwzRj7W|FpvVf!e3M+lot?) z0{^D4W%`|WW+_lrgcPV+A_`Qwhyn!-@mvb5w+n}s6Y{6@n z?4JS+NwBbWbcQYR{wT1PmW}3&0_&rcQQ#s{qCn-*8ActU$VItCfenO4fyxNk>9=P6 zCN&1yadri!Wh$_)%;Cky99rXa6M}=#q+xg1e#j{A3CIo)HhPRuL>x?+3CVT7_HT*L zkE}Q8V?^hl|CJ+D9OEJ1W-g`9=686|agE^nsIs{ceg`EivO0>avp#;n z7G=HLqM)2sE->e|D7<12rt2)^VW56+|0r?S@=x%=_=jvJ@6qqfi5)gKvYW{#o7qerciaE#X7cLW)yIRw&E&=H znaBR2&DNISje4k??PTxQ*iPQ7j~{ic`gec-%zP&8s9QsZv=R(D0*WGQqe!Qa zyU!}JFGErlVn`j9KX*x79sZ&!VMJX7Vn~lDY?(gczl|Yj1MjM^rBAg)3`yl8h9qeE z8B#(^;xg-)GbQC$`gUGDeLH)YV@TFtu%m1->6e1@8LxeMq+`<%bzX8jOu(HD#{CKG zN6*LZ8_d~elr#10)^bCGYQnz&TYn9L+kd)z*-Wd#OsIGU{ci6aXwGtljcquP%dD<0 z-Tj)q$QG^D?AP}rHu)E`Xq7_s`z%^t{FYm^Bm%|?t87s(g#{8f`YCsDqo24~BN)=} z5&_FB4DD}W3YE&MS9I+=jwlFoSt-g_mg9&oMr@OHIyzttwoZpte*YC_2wdA#r})qZ zGVT%V2$J*h!#I|#2* z^N&(XFSmtOqb5c#3<}>4i$)d?XEnM zD@oZlxbq=Ft1s;TGcu5);`NkdzH1HVc=K+8q~EOSgqLDyB+<7iS@FVx#o-Pjncl<2 zOVqcKPWQxHu^l?D-JQA#74h^9YQ1H8!B52#aH)8m>eIrc`kYrg#ezj&;pVEt5%?1b zJ7R3 zA5GepNbZoWjNn=yGIw+1?4uAB%(Q`a2T{>tLcm$B0MT5*s*+}cq<0$kLC?TWWQ8FH z4|9o%Ct^#J6NR)Vz)is{f9xY?c*((~vz*h>{Ab47sl}rTDxSfSKY7*JPIZR0PGX$? zs8YC>;zH1eG;w#ySmk4w^p%_Ym9XY(SF*mn^PJXXq^<^Tv^JgjAyuKLa230%&;wbO zSp#|1Os&VN)}dUk4{J5Sn1Y%I4P?>vBBKVVM60AmXorRFa0GkE>kr?jPpb#?Ndy78 zJ3!Wl13eSf;B0W}95uN6*G^=ix&-$dHuMx=Si0kMuX+e~fvbn0&7IgX&d}PZpkha? z?PugQ<)I*A)I)1w+PBw8LWOz4TN zaH5B#mt`Q3h(kcc09-m%(G&AaQ3b1A)ic9O@ifHQ1v9)0MpRW?kk|BI)fHQtejxd@ z8ds$4)fIng^8O9lL_zPoV5mcDtz*%oSQV<2*())%k+1H+_p8<;V+r0}%QTSQ4ebQs zBbO42(sRNp#=FeCjeI*&?w+~N;9 zamk@$a9;>$;V385f70{l34h8PXh+5upW)5bh0lqb#%TCH{%Zvle~qg$RK(4K84)> z`ma!)#fHwRFlC==iR9T(wlz67lx=f2*yV;1lV`00{EJ^e-`aRJMOd-^0=KdS?Q=D_ zdv!*ROuCp4!%T{822a*;iEkFERRfTNNKRsR5n=H1WmNBv{QT#fpsCDS`%TuPH5(>I z-i^)N@r#h8#y13OU8w`ZQdTpi>Qox@=mNBQNzo6-%Bs=X(WT!H)_u+Sj$f&vhRC|f zL^m9*wU!8G022iUzdI&W@pe*y!QUN4dejWXTrDiZVOq6`knDHBQ2`0?yQD}Sc<_DS zm)-1O{Nm88T}oF&G1Oi~e2{uh#g*3Kj?$`D>2eXd4tcCv9O@AcJRf;ro~wPIA@W*> zyS}a(u2m+eFWn-SrUihpj9Qpv4&@T;9RH{;EXE6JAq;5TsWCC2{3!}5*xCIRQA91c z@x*r5#??uen(Klu*nFrmxfvPxkKd(^6rNJ7&g6+e3s12PL80iDmi4;`WRHbRHTw=^ zgy>hGAR=07iu8lq{1`I&xzGIRU014h!0 zOAJ-ln1n`t>Hh2hDl47;Kl35mh=t>P((O8ywD31E?R4aUmSxQ*C*| zHI;vuoR-Ni$kSE`HRTcv<$MfwkelN^ z9tSX@0ugg$$vg4%;X=eo(-i2&?grg4^qg6fP$4k<{D1lgR(rTo9tu`9U?LK%>Rh~7 zW7FW`#_*bnH={SEOM}{*PGg!XIs_nBLm*6rMv|m#55UAACA_L?i9@vt$)&x&n1Qzb zz4b87?9sxGI#n9TC`hBJy~F@RLIX+Bb;`a%YWB3@x zj+8gIocm?-%0&pL6lekb^oaziir!e;k6DN-m)%|RLz~SkfJ`Mx-nG<`fIHNQGWsdx zSq}<%`mrp9v;%rXAssGm6tdREjY2w!1KoOpigAN~#ifujB=xmo-0r((Vl&b~;}H!t zO^rxM$WJmTpNDR)KKOW?qVBzH?j`J8eWVFH!`88F$m`8t$LQz* z?OO=iRanC&z%-2LUx%ZAl^%Ok5oRvcP=&PF^6I7KV3$Hazy3_t^;4IJ>v|_WGcoC8NBHKf1c~sH75ExBS_mH?v-grn925sC*QO8{?L#e2PBKw+RivSI)^1# zwNhu>_yt#g*~EsYCht#dh&af3bux;|(X3=`oZ=N5V@p>VayPhjVg$RL>Ol>&yt#uG zVLx)XtG_XJL$NI7W}k(E&*a$FzCs69<}dTfc}9Tp#W1g_!3Wc9UNX_<;v*z}MZN5dHumGT19 zM`X>tUxLpMi?y8-jn7A0lkz`m{gOs){ei{Ri`JkykEJ^HO>LwU5d z51&-Fq9DVHW|_4s8pl<&uMW$@l(7Zv>Xi0S4s!tpq%t~YC7TB~A#O&pg)VM3vc<&X zSR^ZN+y^v9H(2?T!FjE)k$IR5M@&1`*28#^Dxd^fjqRkcw`wLo?0u6<>2)$v_we6n zy+gILr0EO}M(93@u{r)jgsz!VmUY0TR3Wf;y3|+#Qkz^#)syNX5LH?2qy@9&OdT@C zkXdy&|=A^T5@ePxKy8@mXwo)T9w$ZA5z-fGh@*) zuud58u;ZA_{>1Lrj^=*<>-TZ~vNKpPoAa4(=-+()Vd5B9{l*z~ zrWEvs;a?Pngvg@?80R~xOY}V?3mB>JnYp(SNS!Bo#C4ipYsJnp{d^+*FcVIDQ>s|4 zz$qwfB?oovZB@By`LJUc&5X$5hLo*4lnwz2*EiJiH|BF6F5#7n?(3PiSVB0DX$@h* z$h?_Et~{lg)v9lyA~WuN8#!#D>8F?T-PN!AZ%e-gPv*|1GcKL-8b%mdw`kM<^8V3? zSL2={u>1Q{EH8Qwn|Pt1?YWa{Ki|I&X{wY9Pm%q%^wO7*)o5u46lsy3D6%VxQ1;h%j71)R5J0UtU` z7Wn2XIVlF%Ehu1oaSNSiX{N=liMnQtpKb_4MJ2xk_C5+AS{X>DQe~hfE6WfT(^qkN ztwY+E%O5&E{+vc%8J&RSEC@57l<7CMDL2P=d!RqD#tte?dMoo309TL5((4eiM4bUi z8~x&FN%h{j@S!z`i_*^wEG zRvSt<;tdnVq}7&2UD;Kv%zlJHDTJYwhiL()bUaL}oYJ*~D(|`(q3(O?y*{hEiS+l> z`FDohgnKS_FX2UDT&hUmezO?TCxC+VN}F zk%^IGO+=0?>^Tlhet$SbS++o@p96<{fI}14LfA5+p_Y@EJc2HK>||VcL&eWsukOs$ z5D06$7BIOh{MD#fsFQY_eRha3~y8x1T)hh;}oKV}SGNt|e z5&*Vi_T|=4@a9VrNh2ggAi83rQbQ6XW7TE*=&FmzJ98;*avA=QIM+`8(cOrDUYmQr z;YGXa%&qtf2kAyUbHLqg)MiokSI#CYn&N-G3R|BSE_Y|i4K^&;#*rw%T!&r}7g6wB4yyW*!}R$S zKHHbA!4>?-U1@VMF!FDox=~`!l2>dD zS#GRrei(vLjWMf54T038br!mvv)EZB>F7wt!PkikfZ*Iq^#T`{N5V;>T5=S)sx90+ zzN#E_s!oK}4F1gt?rCvuKr=6HtOvT_lG|PYZPjuUJ6FDX=P38nI+2e1V_z40wu0`U zE61W~yaBgZ{+m?9&;Lrb*^i(6?QkC`3N+@X32u=Biddw`AO?M!<5vBCl)G-4yGzak zH-Sbm^houwh7}WN6L_>j{6Dsan?TM4Xc^a2nsfpp+61axvNr#2b=EnAE$|(75oqk9UjqF4R?8Y?TaGAi% zP;!}26TDueU067omTb}-+bH-jG;(%F&Z-&w>-pGXCQykcIEKv0lCt2bBi-CC5Izbu zih519nAy!VS1!JkWsc)ee&9V-&F^{^eK)`BwVPk^N|B~{dW~~}!u&3@G@RN(DAYop z7PXM80Sa5LF3yX!-EKX0TUO0=E8?A17;oF&$R==f?_h2dupAibus=9j*GzQ_^Lv-T zZW-7;hRbLVd>$T`@Y(?`q(IN^+Ov^d{r9xfgaY*6e#m_N{LigIoV@afZfS9&<(8Jo z+cSd@x#Heg#d>*1FT}hZtet`?X=|+YP8Kl@uXW423c2~h@|Nivnl%sQxTvi6VEn?A z#Y{dq`E#@i+}+l3O!o%Be`cXwCw(3wyz3U-?S3-2;SqtucWz%9&4u2JUEHJ@(V_q_ zJV!@axFObODbXefK-zTV<@kclyh1A&0>dN{Fu}PsHsS6nb~DKGP*|J-uv+t(8%GOh z(5Bxa>%ZX3vo<;dcuhsCUh~)@^(vdC??=$q>Ad|3-O=I~Tto^w&33VUWzMWN*4=-< z*QPu4VO^lByC|lqGh7iaf(&gOW%wm}Ab#$f_Z-}G7UFbP?_`H2*casJo|Z_ia<&P^ zMBEXgGUjBO8)gbN{`&d8-Y?}=SxC+-VMY6ooT5kVw|-@1+7&_ z{ld|M%q!fgMD%(Ctq_yw=oOz zXuooC$SCZ6uEVE_KSVC=&$sKv{si`b=XbYEzs#~uGASAWcugmcM_d+L6Rd0P6DyIE zRl#PV{2%7m)3|1)sfgCZ^=OeQWUc%>(&gr@Bnn+X=PFSW7h` z!`2`1A?5LKcO|nq=l=Yu66SU&H&nTnFv7xx6U0)Y3-Q0a*xjR7j!1cty-%;TppzfO z5Y(_3gfV3QEHkBKDH}zr(?+#Suf1CMJ1ChRF$(*wlMp_Gg&;BWDPsLx&%v*1d#t*g zoB0JvIxImt|NRnf=3nU?V{ShNq5iT){S*o5At+fgW0y`{LH(pHxT}8RD!^!OV*l?9 zE#qkpBQPt|T9-bjn0uUTL-I5P<>jK)aLMw&RjljASn?mG&k!lqyM>dx>uzDpwBj!! z=cba@^qiMe3W`)8+uZ)OJg&u@YhgU4G7D?s{xw|hSL|?$_cwus#e21(V@*kiLKbfe zL+29Fdj4nM$7^MqGTVe>HpE1X&ArFAJm(#fF;$DO2SKvOcUOBY6$E$3~q3a6~!80yev%RIF;Tj-Ljzp zM>zO5sd(}le0wkEO_%iJS?-*T6-1CJ1QNpdpDwX|w?cXfJW zuvypjMfzluti(B>?u8*b74^361530mYnaT=>y8;t-S`(slGYg|DlZJ?j1R|5;#cNk z>UU$5uy@Vmfj{2zO05=(nz*ljHX;pm_zu}WO%+U2i*bni<6aw( z?<&w}{DQnyv3uI}0Af4t6dLon-_sOZN0QE{?v_op@WV#ojLj18)k{*0OLngmos}{* zF1l?*p1qBS?DfT;tkaVuO=s}^biNA_dQ_xd^5;+OE|Cxv$NO!A0ote+T<&wL0E8(C zvrhRXWg=?MDJjDhMhqL|esFMy!K(=V;{aLhO<0=rej5ut!X6zmWI`Yrp?V8I|UJ>_3Z)s;jl5QH>_H1uK zRr9+;n!X5qCU!qrv9oC?v{oe~6zMtuz*Pp9Ff;-+?2z>&>Ow#Ga1Z)ag#KpmxGAe8(r&Mp>UAsh1@q;a@1B;NN> zyyEF^ABy|8o2#(I{f9{2GA-GpvJg)w$TEvNt&(%ln{+Rzg57p2E$|2EpAO;H^V&Lz z@aR^sn(xx|Qc<{{l?bKLbn@o+Fx5ue5U;CBKZ5@n%*J2j*dUdDf|usx|KO37H)nEb z!fTu?>c2G*^-o-(0Jn8*Khp^@ed&N6#7-88v>T*j*K(4GC=~M;k}2^qr#VBOHURom%P|8)0_8+c^9|OXnV17YkShG2jWF_ zRlA?!-KE&lgUB=^{nx~X7Xi5BJ#4WjmGX4pBmn;O>wlG|`?*-#6KpW5n%9YD1~m=W z9BIg0ZEF}?>}sZAGU2VP=T~iU1jc|Z&c6OJ=Tf$0vB{CY8~HsjOQz!iZPD{gG${saX(Hhr znDDN|pnLcX?>ua~&n$?y^bKnozof$65I^|hC0FVV@dKK#JfN{LEuK@OrCQ=!HG^hu z1*_#?uo7$eW7y7^v{p*Z7AcD&l|<<8!W+eu!u?EQgJ3Vz21*5@!wi)nZW|~orWIMm z$tON9G0O6w;nl7~Y2}NNmQ<)&zL+$aO!luY6)VhTORRMRlgwa~AY_rAD6)$Pjl8Ec zqg<)S-rfuobkgl<^$Xp0-fh$u!C($yqh%-*ka&>z%?KRwMJof@kt4Mruxdo&q zsa4`nxh3vT*o8>Bqh&hI{xJzBDYj?WJJ}m1Ag1B&F^J z7k7hVKfiBzKiVb6X!sKM?$5 zLhxU02*Hm?rLdn$9Qckx0H3EmO@(G8h5p*WujG6Y_;qa7Oh5G(!r82-gR_;Wbu3RX z>UoxeC{jd(PEAm7x2Xe!3ci%^MbmjDW$p1G5ZtV|pMU$s=rkU_!{L8Y)B)^iRm9<6 z^@DR83pFtS|CZ0s|5%9st1)gf{P%GCLnpG~G=n+t0`3+BSmRv5_aw50JYAflE@U~8 z#=|jONw^)rX=SvWA`&>x3=i*q;pn`~mG)k6HL6)T$TF@a=8&bXfh8v@6+4>Hg~VL3oxxZz|ZUeKyH_@S~q`!)%yOECGYhl(GTq^)3Q#qmme?UM_a%7 zz1scW9sQmO9wus@wP0F^?>s;K_tYR4=jmo%pgI1r={W`?=n0}E4>=3O*m+WXb#j8GSp7yTW zkg(gem>G=Td9`}FYj-#M2Xep2kIoD<>6di#JnV#0?odrArnl8S*4vX5==#*1WJM3< zE)mdwBuifEqgnjczX&XOP1jVlJaC)E7U-Z~9g-)V4#Htg6RMU>E3qYT^u<+67MExd zL?~Tc!ZKJ*6)#!Asl;AZjQ!Jb-pD*}W}Y|w{TpWHrMo9T`&)*Qr`keaZd$=@1ea{; z;rm8Pnm`e2{U0h|1WHogSBoSMPfH=He6|YWD5-)+PpA^rR55FcQ{GT=B}>@ZEzeVo-V4MjhyjZg}y-lyyd;ns-`{bs;J+I;l{1zJf&`K`_ zr*)uu9#F#PSl`9*@R&ZQq;|hp_C}6NYpBQY--a4u``{L`okQ6C;9T&R9Y@1o#(b7j z#4{#gACur88xekZP(Qr$8Mk3QfzOWXXv4}Z9*a~~#FU*7+&nC2zd;wq(y1a=uL`Elp+Pw3YZ?TOT86dv<_9}Vw3haxer%*f z<>3Y?QA;hipc{e%GqMpxp^=RMHzOO#yF+MK@~(;m3m+B}%i`P-=#lC^XsQqH z{ac8mb!0Xibw!aKM8HwoAr42~N`fPO=C%>#qf?s5jnwk+q_bKoh<@BS0zGvgfnInv zxH<0&4mb4F!jX$6_f5nT7npI2t}LxY`&7#M!nI2%0pbC1%9h)J&!rOZzA z=k_S8A6AIYC*{x$r^W7BK6nuMX6S@e#uBG_%LnfPxT=b`7Z#k7UT+D!zYXSU^WcI+ z`my+i%#ij(#iP8hNnNPwCJaxdU#e<(aTuyxbYoS<0;-<;>x|ZS8^=-26$lz3FiSQG z#*OV&u{$1}v24N#{TgapJAO{P5?SJ!U%SZJw}r*5gnNvaJ}p7+p{DZ~^gaAw<}X#= zcT^om(8uoHF1=MIcoCe40#%sZfU>d(a8}Nep7f|0jkU0y@|FnO5_lo-%x~2&`j_9k zR*p`1UqHO7;t<|`@BQRnJ!m)0w&6GI60hx|+1`+To=fG|yukKK?}jXf8T1>`Z~ml) zREq57Ch^X|M{}2E7SjvSqH6aO^dS9wb^1}}hqMDMZFTxjRlA=I&o`ynov&Kb&*=jEY=6REq{cl`tBI4Z8^=^v{3X_QE>c8q z0cCrK@Nf6i={M*l00-udcHbU`;|uB2Nk&b(MEcCoWe%n)#!pj+@zdOo#-}j8+!abBr3?Ng|ZO@sx02#D0Rc89d9SOWpsrw z$Sp%l%ta~wmQ;|NrN{Ia03*BD*Xes>uh#d{Y95kTkGBOg{ABL` z*YaOczx)SLApg}1b;y5p3gIsn?zIJ-V*Dk01T}!awB5xJowB*r7|tM@`&`u@T&%15 ztv}Q7G3^_KRe$2u+qJWQrs=Di=`|YXGR+b({YB)M;imo!&Hbv~+p96aNC2*|s|qw( zr14Nz+gFM8roFV(O=@{uQw=2e|XnvP0%iDKq|shTU}pn(Iyu&YZp z2?I9ut?NqX6Z1i8m^=x3WG&G7t6{zYQ4FVXoGN*Ex}U{!|aS4%_g<+{Lk z^`lI>g3{g}B(fxK^u5#3nu-^SBr8+i(X!g@qKO3bE#mGroMtKc*a#9iUaU3LtTE9} zJhxm<^78Z%mRk%-FP_o*V&n0!fphto*VG&`h~;7s?XkAYKsTd%+hCO;YpnHrz62MM z>K_GQ+y79AyqVv0EK{O!)BEHMnSD;A-^G9O`!WA&eo5j0-JAPsCcN?O@W7GZpNTDf zKwZ7$$p+S-xud_q8PTAod&oT6^!v{?UenIvSC@o9VOv&UiQ%KMq^O#QY~Wfcf5MY+ ztvQF)&uHD=I4bECRyE(}se`fB`7{nyy%EmYXh;e}s?u~tC||72EVLQ!5Dkr>uf2Cv zRqWn5qc6R9_d|JHqnkiwICRR4C1fJYFzTu!>@Z2uZ(6i7_!?pVEDm#`>uwM{CL{Lu=yecQHC z$nkC#ca3}ZYKEk@*&(Lv2jcU$iNE6EYxs8w+wpbOG{a_yZ_e2TmYn{m=IRH9Ej7!SJaz|NG4RvA@j z{}!+4TD&c{=pH=}b<9Mj8e3!;(~tbY7+x(6Z4wt;5c_rr8sSxI;kok-M_|Ps3jad!fB+SACOr#YOEz%K1)c>SbcDx;HYZF+0emx%rbUpHw>I`mPnmywN8KLWl74{oMA`Rj* zWYddQ=7DKwCri=+IJT-j0IHoh=rNlguRp5!fgSUY$twXuI79q!!FPmhvEMpqnOD-o z&hZKmxi==3bULY|lNY$IxzLo<>QJ*)LEqfrT*7ZKcDoEZ*pO-omj@HpAyjRel1P6pQMXp{cd+rxRE`4nw}a8^YX zZXfiEFKQnYzKMLoIJ~G)hByBbs7MgB=d9$YcVI`6yKteJtoU=xFA%HqCV46EH#LT_ z?IG(%PrvZ&)FrQS1Uu)G^R#kr6%&X{3u!dVbv^GeTge9-?O1;VOe>qg_Jvxg23>jM*%k^Gd0FuGpNCbChTZe{_YzOn!dL zfqLK*|4g&R_*%`c2Rrz4#aEm(goPFG&+sPPpzXWBO?pQI*0d7wnL@$Nnb?Dhm|m3w z1zWP-uIhVAW2IWceSR4**g+5#B0F9CL;YT9&?m)=@_+q}QP=?oH-3J7AIkD`@){?p zP4!RXshpY)RwE-_kCt56o7~r)Ik|{d^i7>;R+G?*bC)2SQ$yprDAGkl^3EdJN$?); zfcKNOiY$=7;$YS?fIO89YVj&a<#$K5EQ%t_qR2`js#jMjskeK-`-9uetV{J{&!>#k zsTzVkH(C95NiFPcysxWwDF51}4_U63MbG7GCd6Dc|0}v;El1$mPqlS{ljQtvO;8;o z3SG0k3G8OLT$pcfNyvWIScqri2>p#aI%S)$6An(@+&W4IVMB~3K!Pdn zT+RR!Y#CX6fJ6Lf>1Qc{ej>E#c*RbMW_xq(l;}?ni^YF@8$n8Y)jj45ZqfrCZMcn3aPoAxvTQJUYDPE<_dPM51pnN0s(JGwf( z66oK`q}6s>vp~z5YDT_)A=dIJKK_#PUl85T_9jixP1quc5?#Xt9^pn8^`0hYF`p9Y z|HTtuc6tt&|0jm?pPkGavJPoFM6IbJ?RZpr@>`h^useN@ho5T{qRyhHwM4_RgPP{2 zyjis=?>uO1eaUKmNmaZXTY7s;H1=)+|8xNN{A_RWLD&r?4=PT26R+9`jiI0M$JG;y z?9c7a?3Y!{`;jBBn>*=d%DYLUihbGvlu60H7^MSW)OU@Xc6fCmJ*>2JXg~m6)Y|t} za}p$x1QROOEI!Vd+?V+ggBNT25-DSyJ3z8Uf+(_whzjTzahV5{A9_XRK@QW zu(jQR$s78Nh+r3d3G>?-AHiP9Dgn8--)gYs9BR; zaL@L~Ca@D5%8u+X#uoMev9m>;C+KWNAaVO}2sak_(dqvM7T*TzcY#j)l)_9KZD^|G z@gKA=C56yoZR`qw)wmHxBlcS`OH zuc!NhW)B?{G;RQ$GJy_Xs}2j*HT;ftb&L}TEirElx<_{f_Y80Gm}1=q@1_$x3Oz(<7vMiiAhjv9b{$I&6) z`fVL`=$4aI&9GE@o0=9%GDlc>5EV6K=a1oxgM*KcX2Zi@9mNy}f5FwC#cF>3qe41l zJ1FIUw;sW`W%`*($Qt_q)Gau#p}(p0ib47*;ZNg5s0SN}$_tpGq<<0rhMA6DmdDi= z1cE^DKv<;~E_Y|7e*R2a4=>-U=HLn*GZDm=9i$aoH(W7YV73m0y$CTFVNG3kvloGY zVi8t^MUk;4G6N^XW{%{50y>02JhtF6$JawH@#hFHzxxXtjr!00OD+)&i5miZh^`!(-`ViqBvfE^V3q<}5LdVP~Y7OudIDQ1QZeY@VbaVciMxhfC@5 zhm;@Z`RA<*J`XR8KpZ}A6!upqeHe%lRN1bl=0BkU#(8gH%D=@8@Z|!bz3HrIkx8Xj z4c0Gb_+!cRU5zhWDS*IfL^RO-6DL|9a`cA_M!Wgb+n}NE(O@v)iwGqQ6e{%dlNV{| zjk9U!IX_tbhEE_L_A;kVYk5QY%2NfZ~*00GurRxS;$Gc)eL9h#G5QhA8P{E_GQGuQ!@Q@ zE{d36IrupXsVd|zW9j-3n}4ykuZV}VVf=ZnBGg-KK&}e8@N&DqmYn~j093PeK$7xq z8?CVtgR7w!Zhc3`{d?S;TyGvABl*04YCdUVlJPe^MkxOFR(o%wXjXM-n$%jjJbbf$ zedxpgZtI?AnmiN)iKCP`L=DI`cqy#u7A~S8(EKQ9HC)1<{607gng{avLZyFEpCsDW zAK%A1 zbNIFsG(p0ARAu?_fvgMj_~pGjtiYYCn84;Ldh92|frA5)*HA~I(+zInnH!OmtAJ5A z6s-t_81|)Mx(0wWdhM2W-TXJPG*@=y4povbUCp>B1L-M$(lo8zs$ByiD70p-)o&I5 zSa60-H6xq|H&BM*sFUtsJqTiU{TRe}lXDTne9|b;nlhtdN~He?f`kx<;Rr$4xhP}$ zh19X{C3&V2$tr%VEarzKHoW)w)KM>-4sT%~meYn|Zd>r>pE=BlJ_NH>2+T&nT(|1b zM>U%wv6^LtGwEwrwoKnKL%cC&>kdWn0WoT2uSx#`A^6)+C+%w{MhG^t69G4<%d}B% zp~Ge7NU6qAF0lY&{L#%OC*q~Q{Sv(N$}-&>GvUt_U^~O^C!*DC8*U1w{F2crlroNq zPBK_OF9eDmq|$C)(i!Gsc8wHw$YBJtMmk1d`>X4ue}--f)g4AZF34d#m4x7P0ubt< z0VF{+5F~GP>@v6aB2Oz00<5^}jH@G>e3?VThRVZ+#0%Asc%k~L@1RB+Gt(z6*(5d7 z#zfy1A+%ZCho20=%s&aqPJaAr%un)E)ogzfa^g!vabNzaGrUVbRgkLqePcck!uC#6 zE1h&FmHwlcaRE{HJit0CQPcX8(IKvYZ6~by4gaiuJMLcutIPD*?@mli^x5zf2xN+M z*iVe0#!6%sNe9u=|G_fVKv_ytOwuc_633Q5fsYKH!hAGU(Y^2j^`TtNFjO4|wv&p~ zLatPpn*WGn)LgnF`z&u-!7Q(_px_Lzx&VztcW}uOnEGR5GMPT`v;oAlzMMs%lv}}q}0tFG?QrAQYe(HC2xq5 zTI;QW@c#pdpd;qX5qiyjDH-v5$F-0=trL4f^mIR}b>9;vE*fdgBlhDG>;O)Ui3vtdK z5fs&Z3B2L@Zs(8x4WP;Nwv@-ERebNVHsE6GRP$0)7$)pmN^zJlFGXcxqCAHAb0rC3 zzSKh2bi&w?)tU+08?Q^Wyp0Pv&B8>>RCedzP}h|kF-8u!u73~!w5ZxlK({RIg#K*j zE)_)%;4)U$C)4P-$&=`NwDxSpSivc=j)kmOCCl=ky4o2^A=&fkTwZ0SV$ zwN%@)i#g(Sb%Yub+qP7^yP#;cKkZrc9B*@izqN5o?+`f)OTX5;+{W$g;AYt{rC&>? z9|=Z)Y+ED#94s-*rtq9zmj#^TDUtqKqc>-6$P3>w{~4YGN_rz6(&!i?C9@bT^Xt)t zmx=2&gd{3OsH$3LArpi!;l%TVH*GZ6&PGFU)uRi8s>3KRR&fRB&fM6`q4nSM+*zzY za^CLH{`r=J?0!J-BtHd@+wW#{v5}~FtF`N(-vM$3{pt|8_I+SLh@O`#cEb_i`50zRpcOi8)bfcOB7X{I4#Yq->qhvcXsCq9ixv#u18 z<|C>gSyJa$?MHvym~z6(BI_zbJ$N$InFeykbcrM%tbsh|J)JDN&Sb9CNLBYe;AZsB zpn_;Hg@0MwpN$w8F<-@>llcGi7tm;E_0uDDus;i(p_xVnB&)Qq$Tid$&f;K(8d8)u zqLoBFKBOsMmr#d0P5FV=3nvaqxDfZPUN*Pniz$DWZ75I5*--xGY=of3Pq+=GtpM~y zct8h>GN4ba)#|W@@o8T=nk}79(n`BhA*@~{fNW&&RGoKuRs2O9lozm)$mQ#@Wp}Y z1BOps%jwE8aYl>%P$Y2>F&&#cw;l`RlEMA z^SUCt{}jaj5E=+b|4L?k--548w%a3yE4|md_#BEhLf?M|KHBgx5m5wQ zSQEpfnzXQ4%R;eQhF)qdbT#5rR2LM}+n9lB@|1M-{qM2uOnKLE3~^aqGW|>yFY8tO zF}Ad$P-OPU&>FLsgRUbvgqV9IXqf)Lx7$J2%LL4!YBK7$Yc3_UH>#vTjioJQp`uw` z5*?+y3(C2QRB46=iIxYnL4iJFttUVL!dDMzlShgHFTs->sBKD#>bx|EwC5Qszbp?c z?YsFEQ328Ufes3DvZhK?-klN*rRc69gH$lJ7Op9&Q*{!9ER7DpLUsZQL0FfiZ!-sw z5?i}1y~f^_HWAm->&>HK%KJ(IZ_cH>Po})93U%wdMbeaH7LT*mPcdEu-Uu~hnDA;}S7wYH3$UK#bZmNWy2 z(vDi83LEGkvw}T=O(3nj7O9USi=xP~D6*1>!Qa+-#nCe+zl#3u*vYejdW~s#^@Zp% znj(ry&(9xjKW{{Z2P^SUx@cUC3b-G1#J)^P=W+~8A#I2)s20`MPDn+^Qc?tJKSRy> znG@Y)dUNpj_p|^(@N`v*#gV9h{rvW_*=U1%k0RPeG}0sf_?1!Ur_Z-RVwA3SIiYr%nYw8(^OPVQbI8j zu8m;uZO;SiSS*R1ODd6Pfw&u4F4fuAnh+Lui9m?hW8iQV+txhpd0XgSIFoQwWUP>R zWT9Jkjjoht#CHh@@@atWyiy^%Lyfc2s!wSRx6-OlX^pzl62+9(;A;d7^UkrcjZNg( zSR>PWoFoCoqBZF9G2C={Wr7oA96qeGuAfPN?6aI-baUvsu4Ve&5KCUu7o=Gbu$-fG zuM2b`a_%d$L(w?E@N_PMKkp?E82d}XKwgk$5mO`=%{BAyCq7CEXN< zJ0Ftr=W%H_Ryedo^K0`vGwtBRyLOHiNBw*MViU#yU_;!E1;{>%b3QhM4A9tI;wrS9d2k zueSDV+q%~p@Kwt6uK{1AIh&=cL9a#DMv=}a(j7&5h=`BmS@?kqhT7JGQEPkM;Hm%Y zUoG5E;cCI}wpv`O&2_Xbf*@ek{o5iWM@w@oMrccbg&d?<=&U%kR4h^&LMspRsYhb6 zs!vm19aCEMDXsn~T^FX+O{E*cwCgRl&}ONSWYkzBMrdi!n6bb7R1}YviCH5df``Yu zWg_aT^|Ef@8qp46g=>VM+-HptsL>iBF!xy_1Z%WL2+o`}qKKr{h}A{`&JrH7`NfFr z8exb*ez_&>_Pkbt`P88j46h&;X{rV-6RrpPC9b+9q}VUf8nM?}u=gU+i|%uc6X94! zOs>n>a5ywY-w#9WneqRq@dY?keitZ7zm{_>f~O|9`0~k^ZNa zyJpCUJp||OIa{~`UUv%}8iT*{`vI}G`_+2-@718_MZO>+H{PmcuhYJ-2$$c{DetiU zZJMsOg%~rukZ=<6JmKf})#<>P2|I`F9}PurJXsZu_b$&aFlCIl1Q~~-5GeX9EkS!` z56TWe&+H;J*0GBYsOx(y9I$s?ZA+T%U0Y$YdP2LIP+L-!(!5qFEx~#E4zW406{#gm zn`F$YTNtL*Wl5k#VY6pD2-u%*>g*W{Y!y}79YH??(adSu- z+NJFLgz`=kfm>J8%T1q%Z_ZqOqWYozMb5Cl@eeob=A-n*%28m+RS_J*{R*9Hu2W~S zsuYMj(;nQCk)qbrA^ymNdpLSYym_ztlF|O-YJQh#esT5^T$z+b<+?IiDI=n|UHl79 z++>FP#Znz1)yw;gr)*rmsuZ7&+s&)YW3LX>BqjZMC2O7XC|?7*fi6!g=IRy-hF4?3SxeO?f+_m>edbH9|nyd2B*o~KI zbkT>E#r?6oi!lNex!p+8AA#tcC_u6sB(}bcD#LFQ7wy~1{%;Z%?c3`9ZxR*l+d6&o zM*Kl|E2k2yoT7@W!Ik?E)>_Su+N*KU^v^B)qOE6YGF zr9fpB;F4eFXYTSyct32lqp#07`f_xH@=5SQUlu|-JxW7gdlXi@u^9T=>mzI=50v%O zmla*INi`aMm520YRY^t^IYD2p%Ex0j{!AYj zo%$BiS42)>#hQkD(O2!>^u=|M0ra&<^wmL~{j0Ux?1{c=h4eZh9nq56vQ_l8toix= z_k%e4`Y$USI^uvxJ1xE3&1{$i6x`@kFwOiDBq+YDx&$KQq}Q@?a2ys{Y2jjBxNQ_m zVSdnVFkUU*GpFRU+zuVdX;8b(c(FV_^Pjzf25PSW_r+ zSyK{M2&pPeY*iBM%<7P{L_#fuu^eFrxb~+U|Ft;+%I(ALv}>h(cu5Lr1vf z&;cd?GH(@YiHrQpT=^%hhyAWovi@bbEF%N+F3UYhQnP?@{yX^1`R@=sF^qZnRbXeG zbl~g~ODPWSzGyfIsfA!-eD(19t=zw4dp)uq^BjvO?W35sUOhkw_kK zH#>6f9>t`;&t0EibnCOAvdmPjT7pIA+x?^Gq8dA*$l55RZ?s6N5$^g((mdya%g0&W+%N;MH05OtB~iU_IBD^MAgIOlSDZR)RbKE z=HIe`lb7)auGif~dF$Tb9*Us^?@mx3Hn{N({}>|ptWd?aSj%D79t_25aa+aMJ!8wO zT6%_6$L@G&*;vGrjgvdI{+xe0)CVku>OC+P2_qMC=}`FW7|BQfq@N$cBgFmc_rWiR z0|f($npmftp`KFmWT(=EU4*bOEgS(;Mq5Kct={*LwlN@!GznS_r1cS2Fvb{O?DWG- zSBV|mJ1P5)wBb+0+Va&eKfi7*!sN+^04lZB*|(9G-f}dRa@)h&XP2nZUuDnQQ{>ar zbhghdrI$v3!7ZP5o+_`Ks5$p>oCC-GyRGAU)8|2wOLgjifq}W&blAy1_bMIdz0KffRyuKo!om&QaTR-G#RxM_ve-*&0dbvx8SjdU8CAmsL^I} z3t#OPKEw^8L%9q_y)D!W&es!U`eY#KwQJzS3Dz1+Yu8yayXFtk;$HDu%s)=EVA>6u z0rH}p&<&D1N3%V4PukD&r)|U0!HRO->2H^PS8FdZ9B2$H#$U$iG$?-=zZ6sw4CI9u z8QRSj(a|nG&hnDOFr1q(Y;tGtgSeyMypV!Ts}1q)5`7Iky!%Q|#A5P4Hq}{qbgPv3 zAYpKZZrMjg)0>$eIb?s(U!uaOLvS!AI5Q6QAQI6e?2m!X=^2a(VfuwSz`s-$mJ^?eXk7jcepHPSM1vxN8k5< z($V)%4$Gx)!M`_se<}n%OW&@O`Bz>6eZRSg<~_9OuDyp(89y^V|9ZDdUA&G*IG`Q#{FD@16a$JA1h~j_qP+&QweM| zrFuAdKT>yMl_^M`l=Ew`4ecBWcaQB`F*Xo+Z5}IG|CvCj2M-PbE3-qacmYc(}`*+ zqa1r5t2NS2=DbVMkhzy!dY9tjhj`ia&&U4OX%re55?j-oqe#033G{Yq!^}P99Q028 zV}xEfd8iyvx!^7w8G?nyDhhEpD4y1qhrwn9SLIZR_D10$FPJ_vPjtFB4%gI_f?ptR8aiND)Ua@D2-hcbJjky>rlw~@n;53 z9sL~Si~Z8UJiGa}Ij4X5&xid3vbcT)+8PTd?peXy^iRqVWcBoV-mmRe7NO>=8oAJ; zEm?zfmhRS@ZGIdWzxuobL&y$}nJ+3MYq}`ZdoGgRbGZ14`s!Z&R4gK-rxq|tw+({& z=Ra9vHBQ6a{=u~f?=91RHeOUQNeoLJ$^ti#zkMp47@4anB>Z)#9(YraI2VMoLm}sv zG-Xfy!8EBY*r_*50L-$}G0O(4P_g#RajGn5CT1HaGEn}T@N7gm`AerbWEfL`Ios6x z!tt)1Kw!|$YQP&XH`h*9hH&N<3wUIvfpha_%I3^Xz29N86N!`jnx!4&h>&{ZJ-M^< z@;o;?l|%B1O8k4X^N4X8hY>bAPh(0-{yO<7=4VCj{9I}E=FH0-FGch6@!v8p6XyL0 zod)?deIl2lnhWgu7D-s${|u6qAUBvgwI_=vk1O3jdG4{+KXCH&*v|-a3jO>)o-lBr z^mEWPk#S(i*B&SYEw+2 z=dvh^o#+mGH1;hGqp1V^-uw5nV2vBAn&)p+%Lp)(38&WSV>G0bHMP{;EOqbaeD2X_ z9DQdl2>$pvF~3v{$gXN(D=#CGStIDKj0dE70bFYfQPOqn`+2L^ZyKw)5H>FTxNFIZhYF zZ!1~NH(6XQy^F%B^k1Aaf(g&zd*DgQixp(ym!?B7+TyOSKmD3ENpt^O^9R8|(p{_(y*y3bERx6WDI#u;{Ps zbcohwqK*v68)qAIt4eA~Hr=jc<7I|?N9UUNU6$^aRG>-&@odc_mrp)>X0bD$J4(Zi z+0_5o>M*HPF3Q(hZdXt6S(m4Kwaa5Qkw<5L(CZ~l zWAg3?WqA*hrttf5IJWAs`tN_{A^IF@Oy@sgB*{u%DlpP>$8$S!+W3~~LkophG#*38 z<5Bne-=TBo;j}pSPq<%j5tvwkz^HA(L=CEXia_F@ zWVy=bzCo3-?{AKC!7t?veG;ebPqLM14ehgKc8Hx^5ZwH>$q&MqKqRXiwZ)(Cj z1?U$tRgA#n-c9OmABTU=fsmjn7Zf28;Y_O%u~20y!`*p$580tt%f|bC$L@^d+~c~R zYlp!6h)Nqg(6Qh{%otyc;8)WOa22mN6-L#Izj>A+n&a3}Utg!L(1QAl{Bct~>BeEU z?)0KciVTZ5Be#qWAy_#CWnaEm2Mkf!s1@OEom%lvdi>g>^H5-bM3vS2t8DFSI!KzN z5V6^*7?O{qYT+pEPyg`@vEclf^Txn`9Kg(m!*4*ppj)xei7BxXVEID+-kFs6CM6_( z+d$`x2DJ=QEfLoFNqA!xK!w9`s8vTQ<)uZUEk3BK`I@}rs$wfTdxzj>MFXxz zM7qL~nF5lYfwmeVes56hx`R}MUtPjN(V5u2Be7x6=c`(J2BiiC@;K6yN(VYVg7{lQ zw=*1&QA5H{4AL;#u;JhQ)sfm@-uu7z!=n~UTOa;ZvF!@H0KWtOM%nW&n4Lq;;G1tL z-y9itJfE!vSOa07mKM>1Hc+VPxSv1?EfFEYf^S`-Wqg&(?2O(Fib$?kVJFus7KtIx zy+XUY1)o3md<~1k$DHn67&FLPZBNza!HnKCR<3IUWzc-E8+C-3Y~f{No?`+Hd}x{e z!{Oqz+@8hiNIBD&b_cy9MN3KsleV%%A-ma-BGhQkYD8e^-TM8Ni9BDOZDobgP9i;b zbX_8y99`cs{bZ~D;6%E5wCO)Hr`fwK>+SkQ@QW=7yHoTf{Ue98dxZn|zZJu+{Y^cj zSzDKEQAGEHx*q5YmG|hN3qi0qxUXABVy5-S*)-oat^+m>o`O3c<1S4p|LnBo3Ch3w zsLpS922WbpqiB~!yIA!;_b?m&E1$l%FSwg;eE76J)bqivSxWx9ML*=Pr22$^`5+Fy zVmEe>NP3_yv{>`?9wmO~U=dCh$x49({D&-ff|^h~AX}BdOb0csPC|(qF42y9Ao5s? z+yNC9YwPUiUvLuetmK7+&GH8x<%$jyoneAXH5*8-woFR92|xd+(?(*SdiY?G-Ezwj zPjmi3yq(;{k!O|{h#GA8%M6f0d>n~`xT@v9nIVJmzKLKa#ye22n*YaR2Fm}1kV_CR zaw@0et@0CcRI2@miPpy)vF(m+4nJA_Q>b5kdmdZc#*4M5829Q`@F?)GR{izI9dR}C z(U$|doAoIh=Mp~-wrvIO!s^0|zwEHs{dh8Bov#Y4xU-BANnuWQE~B*}}+>EVmjk_)^IG zIwkudkWY+v1ah$TZgNN<(xqkzWIy!bAr%hLzdHqQ{?4yJA9LmjjmY~zwfU4rJkX5W zuxJ3SyiPK6(#zsKdxDpsYTlB4x%@8!O*8C- zQvPcfeg@yQ#lm!vD5)srUCc$&7n^XlehNf4ar`}F@_s|-@`7*Nv6;%0uVqv5MjQXb zfAT@F_lHWD=yDtB?b;@yRF zST3&hrnU3_So=`?aJLu0xfY%n_eU)BCM@$Bm+^7VvV!!4_H-i|(sSAi($khzr>prP zom>W&P;D)nidf7*)6QVUX3!x2vpa({(e?<84`@GS?JsU0>QS?rF0-cRE*t7mI{+SN zClai$2Q>}j^y20XJY=~QE$CkD!hiZ3F3fE>1R#l}Y&#nycP`wh*}deIT}I7oLe)YT zB3R|YolHj7?+7KD+xj!H-lhN_wJzz;KJFsIBkX%U4=)J-{@Qmi!h`g-SG>yl4DEMW zZkAxR!|NxSm&?@FKn?VXENM;yjd8C1oZoaje7<3Vqv1XJhFs>VLyBSdcb+ttZVJxT zfg@i*@%aqaf4s@C{Rf+XIsbthIVUX!KRv>66<3wnxrE1$XowJB9x(?de-dGHrNtF8 z<@I;y!VK0nUZ>K=ANy(4E(f!+&FFuQcc#~Bk0~U*?{<@&-H9MgAto=~sh)E@I@25L zIsRI)Gu9#px;n<;B|I!F^uS^@WEF`xJO7F2wXvYkJwb?+nUt@5vTWvkpP}NH6r;~~ zmvqvO30S*=joTxo*rET8Qf$hYP+46B@@(izqe!`nEG}u_JC+Xi>oRJxi1Au~j`YY* znh6fXV>4q>Z_>^|dIWbV_=J0nxsI--XxRjpU z*{;nFih2q|WG4#I^~%-72VF*SmQr!=P)J6uY~3$t<}txlR#Xv2LKU5Q9>tx_DVHJ1 zpD%7lROK7wyS2z2l|3uS2jtpY zuznVVK;M^a5=Y^ZZx@P}Aid!MsJRnk9?6GSlWGsS^xTrdpm$ZcUPz%+*q%9`%byXm z+)p@=e_e%s?F0CiU^Wb-6S+JGsktALUU&tfE?hhWQ-YF85kNRS}1}2cXV9prGCO z2eMq_P-(w{6V7D9Gq%kXh5!VVEUX%+`Vgw-Ncoic)!0Ry$}Tb1rt#GJO1yO_abDV8 zM!`hOeeDE!v88=ztaut+PT=!mt$*gfboxST%H!#Ta|-~dFzH{?muh=;@yC+>r1NKb zi`TqaRngZpPO zqn@N1wAl4x7Dd$v?T|zIQsYWRnpOPS9AT zc^N#B-jGT^1O9LR=FuF}cUGl$B`Y#9e=@6Z%9FjgyK$QE8%qkbi$+fgu5x6&N?1}> z{yuAyTNc^me~K561zXDdp&(6SLeO$5n$6_=w*>;)vsEW+tiz&H6Z zsA3T8cB#0Zz_41J8`Nd?Nvo>)*ZC>H>Uw?ag<9l9I-eqgjKoAjLRpO!K=h|_^`TQC zQW3jjbtk6>-`VJTpi-6_eVcOQ9OW(o-1_QL=YKEMM5tgQ$n2bnaD)A3Pf3O^JTYMH#9n%k5u50@z{S(jbAWV9w9xj9wuPsdZr}m-W z?Oc4~Y=0=TYtE84ai-o>tk`>1ykIiE+W*3!nQ2lf46t<^nz_-cVAfN3kmfhtS@0!u zjr0HU_BQZU6~`ZUKq65IHz2VQ)JBaOd<|ME5n>Yzc!M_>6*UTNqf#0aTa?g7r5Z>; zu9suuOIxb8e`{^UcdV!gY6GI6)*5^R#3~53=Nek^9mUG?{mq_p?@b84^m#r{KFT>~ z@9ymE?Ck99?Ck858Hb*C|BOMmY;$_hMILS_Iw_5V2_45S#>;Rrr*Rbdjd@BkK>I;j zx=G4Z$6w;$S~)}gx)1p&>!f(>x^0!-WKf%O9cS22&WXjZVi=Zxs$s}SB&k`&KW{NJ zLsE^8C1`Lh|2JBr)#fABW}HE-*%cVJ4@fn8KxVV6;~gC{$fx$It!M4j)`6eW)>k&| z)K>Hz9Z;|#uJQV%ZL|i)CtUZTHI7O%+E-4K8fjnMHWM=nuiQ^wXYrLb|2-o63KoN~ zf9a-!GWK5oRzX@Q{ z)=?A6)!lAVfNAzG-crk*FPuBtzW5X2$$b{RoYz+WA2A5E9Y(lI775@?&ry?b^S1YT*2&+(SI?W@474 zQ+25ynNy&bi=IMAOexeM?}o*Q$;w__C$p^wA-vc~y+a2RQ1=hYydSHU-*=mSdL?qW z5+$OJcoSSR^Gdk>Hqa7YqvAf{+XxFi;DCdX`TXjj5$l^xmk zkX9vO9SyES(21BGFR5K4ZFHsPLpRFIy~DB_je*>dJbrSU z?n7}|y8IEeu~iIyf2*n)U?+u)m~rV6;~VOUBN4x=ls5eH~%62aThEk zt`9C)IR9fQZaRO_?iQDqpfRAF8FR+(abm&?o_0B1O1aSqGiSvjMqQkROq4t=UGdV8u)Y1NKSOgU(xzCS6NAJ>LeoGzOEN zGgpX8=IW?g#0snI>F`D)k0pdQ+IUpA$O(67a_Wy|v5~ntQOp1JbzGl((8N#Lt4g1W z%xPm1tcXA5Hqnmsnd0`>Ey??frU$4XcW=-Br7}ex{^8`1e>JoJhMAo^l_D)4f@;%t zZVH%9%1QVj9w8q@c_8WrKrz)Q|9KkH zakgr;?(ni-FT(zRwlMK>7xH5?o)gs8T=v5IsX8pT>fmZdSBFw0AIGa2?6;FtR)zq0 zhILo=!5_H$!MArjvg7IU0{SSXAJfn;5%g9zj~Iq^3c8O~-eB|TX9viuS7V8umAGJC>MIAKljOMP@D$QZm{e+lk4Sjulg z*!BPO6T|*Dbc}e7or%}zuL3dKMv~>_R^U}|wRvs4rkH;En=w#LL37!AThsKP3W!3Z zKirN~^k*9goj+Q6vXl)h5+_SvWh>=Tm7C7)Rqu}8*oTMT=h)2Xt)3bg_EfOGTC3>M z%fdd|@;;QfdVSYEnrJ|SKJxEP^-+{z%z8c5J4ewwtSsAobq+Heol`~U91`L*qkSvN zfs}_A{67F@7hGn*;(=gWYHo|&^lH<;_;pb5 zYo}hFa~!?eBlsnwSC3wZ4{6fR?9uJ#2R(Y;yP|9NJ^C?C*;S8zW+P8M`t3A?ojP=p zLFl$a{r{-qfc8`F*;RK|;mI~KqbCn~FIW2mOV@Sn%lQUR+DXUm*jE7<47jeHS$AQ# zomp$;F(A;H*l&a0eCh68^`@7*=Fd#j{g>+4WYQnAPzodS@kXc ziSicCUkdCryC?8v+BjJo;f;WZGT%=%Bp2BcXY4xKOPAQK<4IM&z!oy2Xf*CAprWC~ ztmlJ=T~;qFT3(#K=a3f_T=Z3vWk#~rdD-tA!Pt1)Tn;%Wqsownf*N%<7rMFc_R+c^ zpq%+nIlbH)&l9iYG?$&QMcir=pB3&j@hQcB<}P|{WqBbw64cG#aHbAd)fA{2wTV@i zwFMhxlhx`lGmZFUsB`!ar6f2ykVqo|@(Ltlfus3CsCHyq(_{qOYONcmm=P}$!l!wq zf--5W)&uK}A9RHkD}6O`?Fi1#$VaR#piDhzYt@=KJ1>?vjIEtWOOFC&!5>~fVR?|6 z!}L0i_5Cvp_>_&Ky7cqNY*Dx(F|A-!;-vjXB~B^CYwULJ>=OMjcGQGee+dPIK|le> zq&8`*zfDi?sBKI-)O*Q~*x(u@b9q38DEA#DuCJlL)L7OmVa?*fFNm68bNfl8XlwAQ?dES;#c(-Bsj2E8G?9KLMR=t>T2{lniF~W zdhs#`6e-#sPkVxQ$yLLyHJTw-c3TLXC6<;65_IH;?6HrVJO6Ay{M zXkv}VO8_-cx$=Wt>VmKvqjbF+%%3b}+IxQ^G=PH%Xo^{W#rHLyOPb3r^o<;9ma2%w z%L7F=O!3dT0}CU{OMEJG-0*aE)kXF~(|e6BO7RaTyP4r#|Icol-se&1m9`$4P$l{8MtbPO7d4GBYU#F;mF4ARLf3izUqN3vN3m$Uc3202)fig@{ zZ2d9J0I--&-F>ne-w%JvYNt-P*++*}tE|#MJ$atpav_FD?nxa)sg>U&yd!W`=!r3} zXgnh8ZRGW-@hO{p>`j}tapM>f?4`wj{cS^i+(^kaH1j(WG9ew@jz)gKeT5<&~ zaW3b{xe{_@31Oegt4d#=c3uXy2ZOEFKTF#?Aza>EHs9)i^-nIrehIsrT@twRMzq&Y zh)UOhigT?2u3B&&Vsp&7gd|WC%HHC0Y<$KBe`GwiVH-~28(b4g4ZJy6Nq&rtPuZ|l zj^}Qx&woyJc=?;pq0a(Q!KM-&-F4Edr!aME*56s=XKNDl%C6**EH)1-Cw0CyDDRMi zz+Zl1LNYa(bedNs4Uz?fEHxv-x8W6~aErRu=a`-`5+V6JB6E&rG8`4}aQ2}I|KRlI zl>HR4b3aD?A+ye=rC$Ct9#y)G>0J&(;_f%OXGH!tk=YvN(rZe1!s8bm%y69akMwZV ztZ2U_;;WR!mSx#x;r&FzgRElj^pMCFd9@C|ds9k6OtsQG4bXFOz@Xl}H^bfkdA;k{ z8c`bnI^O{jrFJp4-ur{~?4FeP#$#*x+ti--_fD(|_WyoM*au_ll3P<_>(3(QuEtgz z(cRtHy48U7wz0)Z`yjw&a3EdOe&#{lX;q)XA) zSZ*;+eI2ob6tr?(K74>5GY6W-cmv)+9UdSX*#Pm(STJF~;(L1NO6QxEx9M>iuy$+c zE!}Q&2T|QpO!M6XVVWW9VVX3vxET<8%P!SQHH=!;jZ=rEwJO)LK(z~62zCB)mT0~r zB$*qUtxnV29A)F89xlpVM?Wrj%^^|;d^Qnb*e}On=TV+XT-E92FA^Vy@&fBv)KrUa zqh07G$?C*KXcyzz?aAJo)-Zqf;vxO5s`R7C>=9&ADI1NS??sW^ zdw&!v8&`8?w5zi5(zhY;-`8c1%Wjm7dmluTSU|3{CUH5PXqrUf29xcf-XKi^`D;e8 zFwM{XKPd-+e;-s6cb%N5>`_}8FQ;{t@?=9Kc|5hPMs7CrTAwG zh?m{>O$d=((^Uu_e@1}K_Z^@w5rSLf{@~?jQ{o#7!KoXleXnP_3PJxL8A5Q%%_$-H zhtt1A2(~a@x)Xvo8?Zf`5R`pv5CBsH>zhx+Gmykg#2@iU{vS7yFqT=7Cf~x5gB4#6 zE51Ig`0`jU{N-QTLg*G}0HDpg$V>1ut-{j#`ng-cv!N-;K;exM!MdH%D z>O@a&{lu!d|H)-|B(kX>M+)g3{zGS_p=fn?GUkCnw8bq1g{p*^M!{lAbzBOs-1c6c z*_U2P3%k^^D$%c{r;hJ7mmTrCIxiQkoyD82A~~7nHRkzG-sE=VSXWjiPGjj*Q)m^t zO4*nJ&8ui**fyv1X{K>X>jh|i7nN5ht{BD*L>w`j_6sTa?O>otO({FtJ|vVGKLDq?0Px>$e(J><2rT8K_lpKWco1;+Y5HSZ*?P)$uEa>58LM z;uE&`l~_f`ogAOBMVjpvrxqS$6*2q9wrpkgy&d@YqSKu2^u7vW1yS=>^*DXlrl)sQ zp3RD7aURLzbOlO=i9~Z*ccnThbXD=^B$qkM(S`Yv$6}13hQ5HVF5MEDeHS%$u~@uM zRQ&%h_;(DVjS=&tO;B0M3%RK!P039Db^2lRd-91&GcukJ7%ZGKBlmA67hqce^A8a? zU_SkC1u}HbuBN8T1{85)^B-+R|dzAUeoFW{no!3KgH&j*zW}aZf4rPK-Oo>#*Fl{? z#i4I^!BDiO`-Q~o64YMVP2mGZExDC?GFgl6wX4Z?fUuY^7{W* zZEvfwwwE%GU<>>UU%PI5KeSoeUhUW{GJ74(lYV8*e$+L4Uz&ZNYxW_7FhjZiZ_kvE z{i65)MTrp^9hi8*DMH2S-;l8rrx8t#c_I7X`=Tq=2U!Z0MJ&a`%f9~C zsFv0GDJYewDlltIZf%v+6HIqcydv6}?b*P~{*l^rRf=DIqsEu>PsP7Er&3ljyZ&@i0MHxa}H{7CDBv_>VP3{AXL-gqbAwx92E%{@W z^71bge<@JU?_7IEzH0k3SNvTqT4c0q**$Dq)H@9=_dhSIJ%co2(jww4scMJ_amZ*% z319Fq;TEVKoj!XHYTf=~V4oj;oCZwj(CTveqi@jcwk@oU`4@awpUS)<-%PsjPu1!| zaA|SFHaBJ<&-efd#j{ zs9u+SO6SLApQ7=0)cmKd>Nbv=e+r95yH5XIWqcS+*WqBH$+1>DJ5exA#NwwF;`(*^ zsqu+xFvX2qgTi9L4YxLzT_QAEr}sWJK4HyPd3+I(m6)8b`FmU^)n!eFV)AoH4;i=e zNZzCqHfS9+;+dH%YI!K4%*&T@cHG6i z0>SnNAy(=ZlQSjzw?5X1RA_I{uNJ9x*4{?{GJ{a#zM4>VhKt+9vBR$25DN9q2=$5x z^$LU<_X;gK9ZH>SScp)sZ0*=5MJOl#*MmxDYE_+L)LPDi^9>iiEmb9RJ1hAo#Yl?Z zV?OBwMIA-ZJ`@vB)JL8^ZVf&P^|6o-hJ_wl4=baT$N4->$Jcck`=2>vZ{ovn>!9k& z1UC72gp|} zRIt*FRCeDOIA|lyH+@_44_iI^XxSm~(Zq4F#7Q}9Q(ey&<-1>;xn zx4;*kRYQ*QcU>^Ng|uURc*T;gOjr9tI6k}Dk6)PQ*beFo@ zdpBm?AW|pxiY3m#9hMj-_KD`8CzE5doYOejTxAz(#wYg6VFlH%xoq?EHqcLv@7J&6 zI$eO?3p#XMjbItH360^qE7NKLi%{gH{4MUcLaaTbImRn^f@KR>F=dj4&^ zG08rF?4_<$q~%lwoyrQX%I5G48wQLgyTbSbFj|xQs+8O{km9+0XXBz#_1j0B>!ik~ zf5o-pc|zN=gOmH87JeVh?@Ay%HouSOcZ;8`-~X=P_uzN)&0MGbnc*t$$Qzj6zEy>T7b^esh9jp_qj+|5C<2G%Tf6aPee=}j~9d+0! z8?d+XNRD|^1NKX8*dW{8;;z%AQWby6Nntn1B`dhRSOybutkji&3wP7lErc;(ypxOz zOM(yM!g4-fD?P+X$|z1M<_QPQJfbrfy8f>e*SQL~66?!{iSt8{Aei?<_|EkLo(Re9 zHYIN3R!Vqf?ksra$zP`&g|^`W)Y{omNM5mp8KH;I{4qV;$xBGiPKAn>WoG4){^7^f?}nXI#_6E)obiYrMS zr<0C)yi!Jq4jukk)3FEtgoms0Y`r>mM@;v#&am~FJJ~=uYp!y}y_!Q-t9+tot=fu@ zH-}NQh-EwOS*`UV4_6d8|Km}^MixY7KNKYH%jdq4*?;EKoJj?!USuw@V;`Rbp&YlP zW2zGsAbBp{;yMj|8J5Sv)rtQ2GRc2_f{gf183^LzBVAnV7&Mik&n{u?WW!a`$+B^!qy(3_x|`f$_{pU{{3&z9NMVQOmYu{p z>ET$>G0E>U2JAE&H66AWbJA^X%t`Qtq=o#_>dg^8z50i_EB57|&NhI`x#jy-njzr5 zr$M7N!xC`aY*mf-CsAv1qPtzf3Za2jfR{c0QAIJ)`N#h(bRy5{#4}V~s=A}j)AsiQ z8Ez*Y)FN<1BpfHy@Ze+_T>9M4S;xN7F<3U#a;a~!hq(*aj-?j=;s;bgkj&sAk3pZH z3l9RPWmai+&sh%&r0=+ycBmsc8z+xBni$nnxb-yLh(r-Wf$HIh|FdSzwUtFvs}fT& zneB(?lAXpl+DH(i<|f0F%L0d9LnvbZDI>%xi@&J2r7HenbnvsW!7p)i zs#kQ`XWy$ja5dYJIXcpUe<`qZzir&^?p}CEw@uJe490OBlwyru1ZOE{ad7xkqWPXK zqE|f9;okg8s2}rk|67iv$5+;GF6&_#@!OS;EJ_Op`BqB*r0FhtFCA4QRamk`Ez-(T zVC#?r4*^HQti+kDH}F$(IcG&W<b*^yfO&>iDN7zi*~~Zph_w@gX~sKLsQ)elOjd5E@+tl{-}KcW8iE%z%j5zsB>; znI#1dsNvPgX|Y$Hd35?q&l4MVx~;$t!36G_^3SaQAUxmy+)%i2=9U8d%OryH^h5;P z6RBHk=@?6SX2gNd;gd_v-erWcYUqbeL6V#!+*^6-kJoL%EB3L;$7>|t?sCCezH(zU zR&I_FE2pp$5M|4N-oyDu)N>Bxlh8g!@Vhx5d`DTaA0dY;8B|9iKda;aty=akB;<&9 zE90->EHMI)iE$$eV~L|`SR_lXDM&eeTgqp3={u3xzXA*h$U>(BA4T?L7Ul`i{dj05 zw^HC$PidiDpFtE&O^!(T!;vne3WSuXvX%`YN1pIyYxt6d3EX~CXgmzOld~E|a|r0h z5m`)I%+J$@RVQxP1|_Q#cPq(OufUZ|Xa_H6W4G(xU|gjnBSU0B#kHg@a`heb496NH zbAHbYkmdrZs(Gno4;$P+C{dkDf|I&ekfjRCT{VvEMErseJwlFxC{dUEqhFS?gkKYF zZ@PSPPwp?6{UJa!41~I5&o=Uo@%BUT%_}Ofw3ebAo>FAgV4dHd`L@c5QR?Yqt3^fT!B*pHk@BtI}$( zb!|p_U6W|HQJ5qCYNEz6PyHF2s*g2!h{x4t2?Sthh)9BJ2%yGlAc;B}A(iCTK+ z4J zBcJZ&)Im`tQBs#P(cVgZu_#otp;$4^(Vsx`$}dNXrVv1%B8-MnH1Wf78nEcWy|Vmc zwrQEoOgA-$icZf2LS?EYfW?<;;md(^BQlz}sSs+VYVfjuAgHAur=Uh>e;k=J@kn*U zo*Zrd-@0&DT{kNJY}mUJ!doSD2>p0$#g4WxeJ7@H*}5`8<=lIU{!MYoFNHn$2k+I1 zKT2#>CroUOiZ2h(@2!cHgO{F!0+KhE^Oi>V?Z$ry|OGpv*K(wqY7KqSu_Avrm!gpu8^L+CR!r+G(RtcT{ZG33Z6Mz#Mdb`8($oF1Uu6eIUOiRBG6VrOx zo37Fh9Or)?a%y;^@iOfrTT74Tvg?dWKU7-)s3+{8kQ2^n~4*^a@pp8pfg5X{SkdvJYAt6_YT9MD?RW z?-BiawW;7k$3Mo@^YQIk4hH#PQp-o(j!Mrmd$7G>veW?G7yt}zN+(Y7;Fput5IsVoDZ*k?Ih$g2l@@FT|c7~tkuI(xr!&wb~g-FYf=~S(-vy7VboDqeXf~2#w zzhJV0&Nhs(@y{zKgN6pb)K|{E-R?w`XkSR8{%lfP%tv+n`B6i5@SnO_&EPe;3jbgx z#kVClWedCB%fEN9)~P`$MIl>fNbZXL1Ky>)c-N$kcp3nr zySZWgBZ%6OIbg%lfZfJB?)jV%(i)jsXC3!?Hv9asNVNHLX$q!i#7eo`k(byH& zHR{QTl=>%as6dRBh#lW3?kX3YMCI`uw@35RFJ5-Z*?TIQ?BxG*vRzqJ-hPd*9Oa7(xN%NaxWH0*z*v0?JeU4d#r2;^zw+zF0l>Ll17pb=*N_4#)%?bQx z!z90Y8hr#td4@Cl0}fEJGDsW%w4}N0*9Hhb2}f5FgF`xDik~ewUiKT)@wr%cFGzX0 z*Q@K~Wl?LT@nk{eS2b*}BwsXM){N*9{S}vDwMRclF1BB?8&)xo{!)<05j4+o2hC%S z$}+gjQDO6P*sfvR2H*ZAfK=OZI=8J*8G^PIH^p z_Is>#iw+A~ce$0f)>%br-G@wN+Bi~8O7#DE32|)SunDj0{5wC_Dw0P{;MF|4BLuh-LISq+njZg2>D9Jd#hvo;ZsLOM^r zICH*Ft*3euFU}(NelPtpj2x#V8V=!~*daOG*nUW!7`u)FV)Q!W06eMfxu~d?^a_&_ z9h1`1T)6|mt^&cU%7m{jL&ve-yi7Ea)AVR7pn61Z#H*9|-`FKX|DX){viHyF7X*Lg z;b%0$=97z}k%!|dJ9nPlEZ`EZatU{(a$M;W?o1^#xrDo2LNpOCCqYneO=XF@EccK= zx5^~L&y9RB^k=xlLP$$ullvkPgT7kaSF!t=>%NY3U-S5iCg$EsADWPGp9_M|sC}wM zvt8Zyx&+X3GKa{#sVrgy8hsxLm2)2}y5D|aB}+dDbZzjh?$mc(_)Rf=*N6Fo@2UF6 ze=r|yD(5a^`SYIaK~@Iz)eBQY#-u1LAG%GUFViyr~jCQR2nd4(MxY2ZhMaJ?OS$-BYRnv;u z^})qh8_|Q0}S?ne+FxlIc>cfNyZ= z9G4G+yyYiGBK7PFemsCr@nWd28Bz_W2_>N3(!06r#QQ}414R=7mi*6X^ie^1_PD(4 ziFfzqH`5oC)xWWiTgJFa)=j!-)Ghlsp}8$5GW#%S8Fq^7|A`6v)M7c_r-n1_b2Xa( zdJz5O?>YQwHV(08-U<_PfAf`M_WW^ubaw^2PU1`^kp+5s*-vwe-qJC~U&sd1ocy_ueYle9;6a


    Ha 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ºSM5G8ct2vB|p&kTbln*V|L?+=H-3F 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%0D4C&QPoAGB6v}T!qAPp;z$FRPoo{xw3CPnX3)x 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

    -x??6VJ?Sj69M+(H|ci@P>+ZJ1ov@srD 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�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[SI9ZfkVpFZueen6i& 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 z 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