n8n-editor-ui 1.63.1 → 1.64.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/dist/assets/{AnnotationTagsDropdown.ee-CEthDL8s.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-D3L0Zqex.js} +2 -3
  2. package/dist/assets/{AuthView-Dtllm2Hm.js → AuthView-Bc_d9TU4.js} +3 -6
  3. package/dist/assets/{AuthView-BnHKMYu_.css → AuthView-Cnr31xHM.css} +6 -5
  4. package/dist/assets/{CanvasControls-3e7GyyWC.js → CanvasControls-BZZ5xUA4.js} +1 -31
  5. package/dist/assets/{ChangePasswordView-RbBzZKmy.js → ChangePasswordView-BmKDYqVl.js} +2 -36
  6. package/dist/assets/CollectionParameter-CZX6_SwN.js +4 -0
  7. package/dist/assets/{CredentialsView-BEobbBhB.js → CredentialsView-BERKB9pX.js} +5 -35
  8. package/dist/assets/{ErrorView-Dig_858_.js → ErrorView-CGHYke1h.js} +1 -31
  9. package/dist/assets/{ExecutionsFilter-D4gTpteQ.js → ExecutionsFilter-DgmpIaxp.js} +2 -5
  10. package/dist/assets/{ExecutionsView-BzDdfbTp.js → ExecutionsView-BVJE03N7.js} +18 -54
  11. package/dist/assets/{file-saver-Dbfm4l4I.js → FileSaver.min-vFM8HBH6.js} +5 -12
  12. package/dist/assets/{FixedCollectionParameter-B1iBnOzV.js → FixedCollectionParameter-Cu1pUHaU.js} +1 -32
  13. package/dist/assets/{ForgotMyPasswordView-DrecvRAt.js → ForgotMyPasswordView-CA1z31op.js} +2 -32
  14. package/dist/assets/{MainHeader-BGBc_yGt.js → MainHeader-lphq3_C7.js} +8 -47
  15. package/dist/assets/{MainSidebar-CGoARd9G.js → MainSidebar-CkmsLAKw.js} +5 -44
  16. package/dist/assets/{NodeCreation-CJ4p9t6U.js → NodeCreation-CDKKeIJl.js} +4 -7
  17. package/dist/assets/{NodeCreator-MlJNsM5w.js → NodeCreator-vrcCon6T.js} +20 -64
  18. package/dist/assets/{NodeViewSwitcher-CPwqYIKa.js → NodeViewSwitcher-CebfwLIC.js} +17198 -4326
  19. package/dist/assets/{NodeViewSwitcher-BMWd0Gm9.css → NodeViewSwitcher-DFIa0RPL.css} +136 -135
  20. package/dist/assets/{ProjectCardBadge-Dsi1FktR.js → ProjectCardBadge.vue_vue_type_script_setup_true_lang-FPZVaoxg.js} +1 -12
  21. package/dist/assets/{ProjectSettings-NxkU_5Cm.js → ProjectSettings-CGPWNP7C.js} +6 -38
  22. package/dist/assets/{ProjectTabs-BNt9vnB4.js → ProjectTabs-D-UxAFWq.js} +1 -3
  23. package/dist/assets/{PushConnectionTracker-BfyBSTsq.js → PushConnectionTracker-dMPKSiLd.js} +1 -4
  24. package/dist/assets/{ResourcesListLayout-wxQPFPh8.js → ResourcesListLayout-BmEYzLen.js} +2 -7
  25. package/dist/assets/{RunDataAi-BPXMLfKc.js → RunDataAi-iy_LiKYx.js} +51 -13
  26. package/dist/assets/{RunDataJson-nHxoBXwc.js → RunDataJson-30CwTvxp.js} +11 -34
  27. package/dist/assets/{jsonpath--XXuA3UN.js → RunDataJsonActions-DM8Iegu4.js} +272 -73
  28. package/dist/assets/{RunDataSearch-_dTfLnCz.js → RunDataSearch-BBZyQz1l.js} +1 -31
  29. package/dist/assets/{RunDataTable-Cle-Xlc9.js → RunDataTable-DlYCaRmD.js} +43 -70
  30. package/dist/assets/{SamlOnboarding-DJd6oxdL.js → SamlOnboarding-YPyqQAED.js} +2 -32
  31. package/dist/assets/{SettingsApiView-B6K4GJFb.js → SettingsApiView-DM8-r2vC.js} +11 -42
  32. package/dist/assets/{SettingsCommunityNodesView-BqLPWoe4.js → SettingsCommunityNodesView-CKUSvNJA.js} +3 -35
  33. package/dist/assets/{SettingsExternalSecrets-hxNeJoPh.js → SettingsExternalSecrets-rn0Uon3J.js} +2 -32
  34. package/dist/assets/SettingsFakeDoorView-DRt2eUs1.js +44 -0
  35. package/dist/assets/{humanize-duration-DdvB4QXM.js → SettingsLdapView-BkNvZbuP.js} +827 -12
  36. package/dist/assets/{SettingsLogStreamingView-DHdBwQLl.js → SettingsLogStreamingView-DJgGrIQ1.js} +1 -31
  37. package/dist/assets/{SettingsPersonalView-BB52C_8a.js → SettingsPersonalView-B2bLHSrL.js} +1 -31
  38. package/dist/assets/{SettingsSourceControl-jvUljmfM.js → SettingsSourceControl-B_iPYBUX.js} +4 -35
  39. package/dist/assets/{SettingsSso-CtDqCHek.js → SettingsSso-Bo8ktz1t.js} +1 -31
  40. package/dist/assets/{SettingsUsageAndPlan-DtE-8JQB.js → SettingsUsageAndPlan-C9jiEOqE.js} +1 -32
  41. package/dist/assets/{SettingsUsersView-D0fkCNqq.js → SettingsUsersView-Do-E2R-M.js} +1 -31
  42. package/dist/assets/{SettingsView-Bdy1VVV5.js → SettingsView-DK-_ao4_.js} +25 -34
  43. package/dist/assets/{SetupView-DZD5V-sp.js → SetupView-ZFKQKIJD.js} +2 -32
  44. package/dist/assets/{SetupWorkflowCredentialsButton-BniWA70J.js → SetupWorkflowCredentialsButton-BaMJBfk2.js} +1 -31
  45. package/dist/assets/{SetupWorkflowFromTemplateView-zPdNiNwz.js → SetupWorkflowFromTemplateView-BvmNbGYh.js} +3 -33
  46. package/dist/assets/{SigninView-vhBJQAUq.js → SigninView-k_FnQgNC.js} +2 -32
  47. package/dist/assets/SignoutView-DTgJmCun.js +27 -0
  48. package/dist/assets/{SignupView-BnaxyfVy.js → SignupView-GFIqKxQ1.js} +2 -32
  49. package/dist/assets/{TemplateDetails-CgWak1sI.js → TemplateDetails-CrE5d8Z2.js} +1 -4
  50. package/dist/assets/{TemplateList-Dk-hIcwM.js → TemplateList-DugVXLa6.js} +1 -3
  51. package/dist/assets/{TemplatesCollectionView-BykSqyyh.js → TemplatesCollectionView-BulzRTVk.js} +5 -35
  52. package/dist/assets/{TemplatesSearchView-Db3YPUKN.js → TemplatesSearchView--aU9JJ_A.js} +738 -41
  53. package/dist/assets/{TemplatesSearchView-BYNWZYGm.css → TemplatesSearchView-BiokbeYf.css} +94 -1
  54. package/dist/assets/{TemplatesView-DSqSs2Fe.js → TemplatesView-VxuSLtRB.js} +1 -3
  55. package/dist/assets/{TemplatesWorkflowView-AcNIRcdH.js → TemplatesWorkflowView-DEOmoGFU.js} +5 -35
  56. package/dist/assets/{VariablesView-BDucuF4S.js → VariablesView-D0qaiG35.js} +2 -33
  57. package/dist/assets/{WorkerView-Bt7mkvne.js → WorkerView-BQWPVPCG.js} +159 -43
  58. package/dist/assets/{WorkflowActivator-BBCmkXVM.js → WorkflowActivator-CFE8HnEQ.js} +3 -7
  59. package/dist/assets/{WorkflowExecutionsInfoAccordion-C1u1QoTS.js → WorkflowExecutionsInfoAccordion-j1oBChRL.js} +1 -3
  60. package/dist/assets/{WorkflowExecutionsLandingPage-DO0GNREn.js → WorkflowExecutionsLandingPage-7PqoziUe.js} +2 -32
  61. package/dist/assets/{WorkflowExecutionsPreview-DKazVAlp.js → WorkflowExecutionsPreview-BCKc44DY.js} +10 -42
  62. package/dist/assets/{WorkflowExecutionsView-xQs2Ihb3.js → WorkflowExecutionsView-De-rqjwc.js} +6 -37
  63. package/dist/assets/{WorkflowHistory-CRZhK8Sh.js → WorkflowHistory-BQHDI-k-.js} +8 -45
  64. package/dist/assets/{WorkflowOnboardingView-BLRc_Z_9.js → WorkflowOnboardingView-B3aKS1PJ.js} +1 -31
  65. package/dist/assets/{WorkflowPreview-CpeWIc9m.js → WorkflowPreview-jblZXN9D.js} +1 -3
  66. package/dist/assets/{WorkflowsView-CADkCbWU.js → WorkflowsView-DQqwovww.js} +19 -37
  67. package/dist/assets/cloud-ChkMgrsu.js +37 -0
  68. package/dist/assets/{dateFormatter-B-oph3V5.js → dateFormatter-BOFH7hQn.js} +1 -1
  69. package/dist/assets/index-B5Li9oNe.js +331713 -0
  70. package/dist/assets/{index-B5Pl_Rdy.css → index-BGyoJ6bM.css} +3941 -8
  71. package/dist/assets/{pushConnection.store-BGMVJHP3.js → pushConnection.store-Cp0wdk-m.js} +3 -3
  72. package/dist/assets/{templateActions-DOJZ_yY5.js → templateActions-DbRugCSY.js} +1 -1
  73. package/dist/assets/{useBeforeUnload-Tcm8t4ZF.js → useBeforeUnload-HSb2Wsej.js} +1 -2
  74. package/dist/assets/{useExecutionDebugging-CiwtVWXD.js → useExecutionDebugging-Czs7eCHy.js} +1 -2
  75. package/dist/assets/{usePushConnection-CbB_XBsw.js → usePushConnection-CLr2QrgA.js} +12 -17
  76. package/dist/assets/{useWorkflowActivate-C8RDXHeZ.js → useWorkflowActivate-D9OoUkBo.js} +1 -2
  77. package/dist/index.html +2 -33
  78. package/package.json +1 -1
  79. package/vite.config.mts +0 -41
  80. package/dist/assets/@jsplumb/browser-ui-D3WTv2iL.js +0 -5431
  81. package/dist/assets/@jsplumb/common-Cn2WooAp.js +0 -142
  82. package/dist/assets/@jsplumb/connector-bezier-BsoOTqok.js +0 -1019
  83. package/dist/assets/@jsplumb/core-DLCSr9D4.js +0 -7317
  84. package/dist/assets/@jsplumb/util-DggqnqQo.js +0 -936
  85. package/dist/assets/@lezer/common-Bs5t-XhT.js +0 -1988
  86. package/dist/assets/@n8n/api-types-Clq_Leox.js +0 -1
  87. package/dist/assets/@n8n/codemirror-lang-Bizw8G99.js +0 -20928
  88. package/dist/assets/@n8n/codemirror-lang-sql-C9sfSTUi.js +0 -14443
  89. package/dist/assets/@n8n/permissions-BxSXRD9U.js +0 -52
  90. package/dist/assets/@sentry/vue-By9cUXYj.js +0 -23618
  91. package/dist/assets/@vue-flow/background-B1J8rodd.js +0 -123
  92. package/dist/assets/@vue-flow/controls-B4bXJQnK.js +0 -204
  93. package/dist/assets/@vue-flow/core-tETEFGtP.js +0 -9818
  94. package/dist/assets/@vue-flow/minimap-CGW7BbeH.js +0 -2951
  95. package/dist/assets/@vue-flow/node-resizer-C7hxX6Ea.js +0 -1398
  96. package/dist/assets/@vueuse/core-BTO0AmLR.js +0 -8894
  97. package/dist/assets/RunDataJsonActions-CXjxyS8I.js +0 -270
  98. package/dist/assets/SettingsFakeDoorView-B-CvApAQ.js +0 -74
  99. package/dist/assets/SettingsLdapView-Cx9juILz.js +0 -746
  100. package/dist/assets/SignoutView-BvsyOBJl.js +0 -57
  101. package/dist/assets/aws-secrets-manager-NwVFybsa.svg +0 -18
  102. package/dist/assets/axios-BW6T4tHC.js +0 -2403
  103. package/dist/assets/azure-key-vault-DTTl_IR7.svg +0 -23
  104. package/dist/assets/bowser-CDCHPFWD.js +0 -1931
  105. package/dist/assets/change-case-Dux1iW35.js +0 -137
  106. package/dist/assets/chart.js-BYpPl_l4.js +0 -14318
  107. package/dist/assets/cloud-CyEezfUz.js +0 -95
  108. package/dist/assets/codemirror-lang-html-n8n-BElKE4vf.js +0 -2498
  109. package/dist/assets/dateformat-BevCJF2z.js +0 -208
  110. package/dist/assets/email-providers-Brdpqw-Z.js +0 -1
  111. package/dist/assets/esprima-next-DUEu30kB.js +0 -6712
  112. package/dist/assets/fast-json-stable-stringify-D9R5x91P.js +0 -55
  113. package/dist/assets/flatted-BLlNkUR-.js +0 -76
  114. package/dist/assets/gcp-secrets-manager-BcK0Zj6Y.svg +0 -9
  115. package/dist/assets/hashicorp-5zlHdJCj.webp +0 -0
  116. package/dist/assets/highlight.js-Brdpqw-Z.js +0 -1
  117. package/dist/assets/index-DTqspxIG.js +0 -87778
  118. package/dist/assets/infisical-Db7VXgLp.webp +0 -0
  119. package/dist/assets/lodash-es-DCRmYdQ5.js +0 -6061
  120. package/dist/assets/luxon-N8mghSWH.js +0 -6159
  121. package/dist/assets/n8n-C6KBCWah.css +0 -4973
  122. package/dist/assets/n8n-o-6nV4eX.js +0 -163925
  123. package/dist/assets/pinia-BWzoPyXU.js +0 -1650
  124. package/dist/assets/prettier-eWLVZldr.js +0 -2294
  125. package/dist/assets/qrcode.vue-BavVPFUM.js +0 -1132
  126. package/dist/assets/timeago.js-CgQus8nl.js +0 -116
  127. package/dist/assets/useUserHelpers-CKYk9GNq.js +0 -27
  128. package/dist/assets/uuid-DRDfXVM2.js +0 -542
  129. package/dist/assets/v3-infinite-loading-CHlSsXAy.js +0 -114
  130. package/dist/assets/vendor-D8YCjNHu.js +0 -14463
  131. package/dist/assets/vue-agile-B2NGbzqY.css +0 -93
  132. package/dist/assets/vue-agile-Busf3nxn.js +0 -727
  133. package/dist/assets/vue-chartjs-DBNEiLG-.js +0 -203
  134. package/dist/assets/vue-i18n-CeifA_Nk.js +0 -5329
  135. package/dist/assets/vue-json-pretty-DHS8nWi_.js +0 -340
  136. package/dist/assets/vue3-touch-events-DVOgU3fI.js +0 -301
  137. package/dist/assets/xss-Brdpqw-Z.js +0 -1
@@ -1,2498 +0,0 @@
1
- import { w as ContextTracker, v as ExternalTokenizer, r as styleTags, q as tags$1, L as LRParser, E as EditorSelection } from "./@n8n/codemirror-lang-Bizw8G99.js";
2
- import { d as NodeWeakMap, I as IterMode, p as parseMixed } from "./@lezer/common-Bs5t-XhT.js";
3
- import { s as snippetCompletion, a as syntaxTree, L as LRLanguage, i as indentNodeProp, c as continuedIndent, f as flatIndent, d as delimitedIndent, b as foldNodeProp, e as foldInside, g as defineLanguageFacet, h as sublanguageProp, j as LanguageSupport, k as ifNotIn, l as completeFromList, E as EditorView } from "./@n8n/codemirror-lang-sql-C9sfSTUi.js";
4
- const TSExtends = 1, noSemi = 281, incdec = 2, incdecPrefix = 3, templateContent = 282, InterpolationStart = 4, templateEnd = 283, insertSemi = 284, spaces = 286, newline = 287, LineComment = 5, BlockComment = 6, Dialect_ts = 1;
5
- const space$1 = [
6
- 9,
7
- 10,
8
- 11,
9
- 12,
10
- 13,
11
- 32,
12
- 133,
13
- 160,
14
- 5760,
15
- 8192,
16
- 8193,
17
- 8194,
18
- 8195,
19
- 8196,
20
- 8197,
21
- 8198,
22
- 8199,
23
- 8200,
24
- 8201,
25
- 8202,
26
- 8232,
27
- 8233,
28
- 8239,
29
- 8287,
30
- 12288
31
- ];
32
- const braceR = 125, braceL = 123, semicolon = 59, slash$1 = 47, star = 42, plus = 43, minus = 45, dollar = 36, backtick = 96, backslash = 92;
33
- const trackNewline = new ContextTracker({
34
- start: false,
35
- shift(context, term) {
36
- return term == LineComment || term == BlockComment || term == spaces ? context : term == newline;
37
- },
38
- strict: false
39
- });
40
- const insertSemicolon = new ExternalTokenizer((input, stack) => {
41
- let { next } = input;
42
- if ((next == braceR || next == -1 || stack.context) && stack.canShift(insertSemi))
43
- input.acceptToken(insertSemi);
44
- }, { contextual: true, fallback: true });
45
- const noSemicolon = new ExternalTokenizer((input, stack) => {
46
- let { next } = input, after;
47
- if (space$1.indexOf(next) > -1) return;
48
- if (next == slash$1 && ((after = input.peek(1)) == slash$1 || after == star)) return;
49
- if (next != braceR && next != semicolon && next != -1 && !stack.context && stack.canShift(noSemi))
50
- input.acceptToken(noSemi);
51
- }, { contextual: true });
52
- const incdecToken = new ExternalTokenizer((input, stack) => {
53
- let { next } = input;
54
- if (next == plus || next == minus) {
55
- input.advance();
56
- if (next == input.next) {
57
- input.advance();
58
- let mayPostfix = !stack.context && stack.canShift(incdec);
59
- input.acceptToken(mayPostfix ? incdec : incdecPrefix);
60
- }
61
- }
62
- }, { contextual: true });
63
- const template = new ExternalTokenizer((input) => {
64
- for (let afterDollar = false, i = 0; ; i++) {
65
- let { next } = input;
66
- if (next < 0) {
67
- if (i) input.acceptToken(templateContent);
68
- break;
69
- } else if (next == backtick) {
70
- if (i) input.acceptToken(templateContent);
71
- else input.acceptToken(templateEnd, 1);
72
- break;
73
- } else if (next == braceL && afterDollar) {
74
- if (i == 1) input.acceptToken(InterpolationStart, 1);
75
- else input.acceptToken(templateContent, -1);
76
- break;
77
- } else if (next == 10 && i) {
78
- input.advance();
79
- input.acceptToken(templateContent);
80
- break;
81
- } else if (next == backslash) {
82
- input.advance();
83
- }
84
- afterDollar = next == dollar;
85
- input.advance();
86
- }
87
- });
88
- const tsExtends = new ExternalTokenizer((input, stack) => {
89
- if (input.next != 101 || !stack.dialectEnabled(Dialect_ts)) return;
90
- input.advance();
91
- for (let i = 0; i < 6; i++) {
92
- if (input.next != "xtends".charCodeAt(i)) return;
93
- input.advance();
94
- }
95
- if (input.next >= 57 && input.next <= 65 || input.next >= 48 && input.next <= 90 || input.next == 95 || input.next >= 97 && input.next <= 122 || input.next > 160) return;
96
- input.acceptToken(TSExtends);
97
- });
98
- const jsHighlight = styleTags({
99
- "get set async static": tags$1.modifier,
100
- "for while do if else switch try catch finally return throw break continue default case": tags$1.controlKeyword,
101
- "in of await yield void typeof delete instanceof": tags$1.operatorKeyword,
102
- "let var const function class extends": tags$1.definitionKeyword,
103
- "import export from": tags$1.moduleKeyword,
104
- "with debugger as new": tags$1.keyword,
105
- TemplateString: tags$1.special(tags$1.string),
106
- super: tags$1.atom,
107
- BooleanLiteral: tags$1.bool,
108
- this: tags$1.self,
109
- null: tags$1.null,
110
- Star: tags$1.modifier,
111
- VariableName: tags$1.variableName,
112
- "CallExpression/VariableName TaggedTemplateExpression/VariableName": tags$1.function(tags$1.variableName),
113
- VariableDefinition: tags$1.definition(tags$1.variableName),
114
- Label: tags$1.labelName,
115
- PropertyName: tags$1.propertyName,
116
- PrivatePropertyName: tags$1.special(tags$1.propertyName),
117
- "CallExpression/MemberExpression/PropertyName": tags$1.function(tags$1.propertyName),
118
- "FunctionDeclaration/VariableDefinition": tags$1.function(tags$1.definition(tags$1.variableName)),
119
- "ClassDeclaration/VariableDefinition": tags$1.definition(tags$1.className),
120
- PropertyDefinition: tags$1.definition(tags$1.propertyName),
121
- PrivatePropertyDefinition: tags$1.definition(tags$1.special(tags$1.propertyName)),
122
- UpdateOp: tags$1.updateOperator,
123
- LineComment: tags$1.lineComment,
124
- BlockComment: tags$1.blockComment,
125
- Number: tags$1.number,
126
- String: tags$1.string,
127
- ArithOp: tags$1.arithmeticOperator,
128
- LogicOp: tags$1.logicOperator,
129
- BitOp: tags$1.bitwiseOperator,
130
- CompareOp: tags$1.compareOperator,
131
- RegExp: tags$1.regexp,
132
- Equals: tags$1.definitionOperator,
133
- Arrow: tags$1.function(tags$1.punctuation),
134
- ": Spread": tags$1.punctuation,
135
- "( )": tags$1.paren,
136
- "[ ]": tags$1.squareBracket,
137
- "{ }": tags$1.brace,
138
- "InterpolationStart InterpolationEnd": tags$1.special(tags$1.brace),
139
- ".": tags$1.derefOperator,
140
- ", ;": tags$1.separator,
141
- TypeName: tags$1.typeName,
142
- TypeDefinition: tags$1.definition(tags$1.typeName),
143
- "type enum interface implements namespace module declare": tags$1.definitionKeyword,
144
- "abstract global Privacy readonly override": tags$1.modifier,
145
- "is keyof unique infer": tags$1.operatorKeyword,
146
- JSXAttributeValue: tags$1.attributeValue,
147
- JSXText: tags$1.content,
148
- "JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag": tags$1.angleBracket,
149
- "JSXIdentifier JSXNameSpacedName": tags$1.tagName,
150
- "JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName": tags$1.attributeName
151
- });
152
- const spec_identifier$1 = { __proto__: null, export: 18, as: 23, from: 29, default: 32, async: 37, function: 38, this: 48, true: 56, false: 56, void: 66, typeof: 70, null: 86, super: 88, new: 122, await: 139, yield: 141, delete: 142, class: 152, extends: 154, public: 197, private: 197, protected: 197, readonly: 199, instanceof: 220, in: 222, const: 224, import: 256, keyof: 307, unique: 311, infer: 317, is: 351, abstract: 371, implements: 373, type: 375, let: 378, var: 380, interface: 387, enum: 391, namespace: 397, module: 399, declare: 403, global: 407, for: 428, of: 437, while: 440, with: 444, do: 448, if: 452, else: 454, switch: 458, case: 464, try: 470, catch: 474, finally: 478, return: 482, throw: 486, break: 490, continue: 494, debugger: 498 };
153
- const spec_word = { __proto__: null, async: 109, get: 111, set: 113, public: 161, private: 161, protected: 161, static: 163, abstract: 165, override: 167, readonly: 173, new: 355 };
154
- const spec_LessThan = { __proto__: null, "<": 129 };
155
- const parser$2 = LRParser.deserialize({
156
- version: 14,
157
- states: "$8SO`QdOOO'QQ(C|O'#ChO'XOWO'#DVO)dQdO'#D]O)tQdO'#DhO){QdO'#DrO-xQdO'#DxOOQO'#E]'#E]O.]Q`O'#E[O.bQ`O'#E[OOQ(C['#Ef'#EfO0aQ(C|O'#ItO2wQ(C|O'#IuO3eQ`O'#EzO3jQ!bO'#FaOOQ(C['#FS'#FSO3rO#tO'#FSO4QQ&jO'#FhO5bQ`O'#FgOOQ(C['#Iu'#IuOOQ(CW'#It'#ItOOQS'#J^'#J^O5gQ`O'#HpO5lQ(ChO'#HqOOQS'#Ih'#IhOOQS'#Hr'#HrQ`QdOOO){QdO'#DjO5tQ`O'#G[O5yQ&jO'#CmO6XQ`O'#EZO6dQ`O'#EgO6iQ,UO'#FRO7TQ`O'#G[O7YQ`O'#G`O7eQ`O'#G`O7sQ`O'#GcO7sQ`O'#GdO7sQ`O'#GfO5tQ`O'#GiO8dQ`O'#GlO9rQ`O'#CdO:SQ`O'#GyO:[Q`O'#HPO:[Q`O'#HRO`QdO'#HTO:[Q`O'#HVO:[Q`O'#HYO:aQ`O'#H`O:fQ(CjO'#HfO){QdO'#HhO:qQ(CjO'#HjO:|Q(CjO'#HlO5lQ(ChO'#HnO){QdO'#DWOOOW'#Ht'#HtO;XOWO,59qOOQ(C[,59q,59qO=jQtO'#ChO=tQdO'#HuO>XQ`O'#IvO@WQtO'#IvO'dQdO'#IvO@_Q`O,59wO@uQ7[O'#DbOAnQ`O'#E]OA{Q`O'#JROBWQ`O'#JQOBWQ`O'#JQOB`Q`O,5:yOBeQ`O'#JPOBlQaO'#DyO5yQ&jO'#EZOBzQ`O'#EZOCVQpO'#FROOQ(C[,5:S,5:SOC_QdO,5:SOE]Q(C|O,5:^OEyQ`O,5:dOFdQ(ChO'#JOO7YQ`O'#I}OFkQ`O'#I}OFsQ`O,5:xOFxQ`O'#I}OGWQdO,5:vOIWQ&jO'#EWOJeQ`O,5:vOKwQ&jO'#DlOLOQdO'#DqOLYQ7[O,5;PO){QdO,5;POOQS'#Er'#ErOOQS'#Et'#EtO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;ROOQS'#Ex'#ExOLbQdO,5;cOOQ(C[,5;h,5;hOOQ(C[,5;i,5;iONbQ`O,5;iOOQ(C[,5;j,5;jO){QdO'#IPONgQ(ChO,5<TO! RQ&jO,5;RO){QdO,5;fO! kQ!bO'#JVO! YQ!bO'#JVO! rQ!bO'#JVO!!TQ!bO,5;qOOOO,5;{,5;{O!!cQdO'#FcOOOO'#IO'#IOO3rO#tO,5;nO!!jQ!bO'#FeOOQ(C[,5;n,5;nO!#WQ,VO'#CrOOQ(C]'#Cu'#CuO!#kQ`O'#CuO!#pOWO'#CyO!$^Q,VO,5<QO!$eQ`O,5<SO!%tQ&jO'#FrO!&RQ`O'#FsO!&WQ`O'#FsO!&]Q&jO'#FwO!'[Q7[O'#F{O!'}Q,VO'#IqOOQ(C]'#Iq'#IqO!(XQaO'#IpO!(gQ`O'#IoO!(oQ`O'#CqOOQ(C]'#Cs'#CsOOQ(C]'#C|'#C|O!(wQ`O'#DOOJjQ&jO'#FjOJjQ&jO'#FlO!(|Q`O'#FnO!)RQ`O'#FoO!&WQ`O'#FuOJjQ&jO'#FzO!)WQ`O'#E^O!)oQ`O,5<RO`QdO,5>[OOQS'#Ik'#IkOOQS,5>],5>]OOQS-E;p-E;pO!+kQ(C|O,5:UOOQ(CX'#Cp'#CpO!,[Q&kO,5<vOOQO'#Cf'#CfO!,mQ(ChO'#IlO5bQ`O'#IlO:aQ`O,59XO!-OQ!bO,59XO!-WQ&jO,59XO5yQ&jO,59XO!-cQ`O,5:vO!-kQ`O'#GxO!-yQ`O'#JbO){QdO,5;kO!.RQ7[O,5;mO!.WQ`O,5=cO!.]Q`O,5=cO!.bQ`O,5=cO5lQ(ChO,5=cO5tQ`O,5<vO!.pQ`O'#E_O!/UQ7[O'#E`OOQ(CW'#JP'#JPO!/gQ(ChO'#J_O5lQ(ChO,5<zO7sQ`O,5=QOOQP'#Cr'#CrO!/rQ!bO,5<}O!/zQ!cO,5=OO!0VQ`O,5=QO!0[QpO,5=TO:aQ`O'#GnO5tQ`O'#GpO!0dQ`O'#GpO5yQ&jO'#GsO!0iQ`O'#GsOOQS,5=W,5=WO!0nQ`O'#GtO!0vQ`O'#CmO!0{Q`O,59OO!1VQ`O,59OO!3XQdO,59OOOQS,59O,59OO!3fQ(ChO,59OO){QdO,59OO!3qQdO'#G{OOQS'#G|'#G|OOQS'#G}'#G}O`QdO,5=eO!4RQ`O,5=eO){QdO'#DxO`QdO,5=kO`QdO,5=mO!4WQ`O,5=oO`QdO,5=qO!4]Q`O,5=tO!4bQdO,5=zOOQS,5>Q,5>QO){QdO,5>QO5lQ(ChO,5>SOOQS,5>U,5>UO!8cQ`O,5>UOOQS,5>W,5>WO!8cQ`O,5>WOOQS,5>Y,5>YO!8hQpO,59rOOOW-E;r-E;rOOQ(C[1G/]1G/]O!8mQtO,5>aO'dQdO,5>aOOQO,5>f,5>fO!8wQdO'#HuOOQO-E;s-E;sO!9UQ`O,5?bO!9^QtO,5?bO!9eQ`O,5?lOOQ(C[1G/c1G/cO!9mQ!bO'#DTOOQO'#Ix'#IxO){QdO'#IxO!:[Q!bO'#IxO!:yQ!bO'#DcO!;[Q7[O'#DcO!=gQdO'#DcO!=nQ`O'#IwO!=vQ`O,59|O!={Q`O'#EaO!>ZQ`O'#JSO!>cQ`O,5:zO!>yQ7[O'#DcO){QdO,5?mO!?TQ`O'#HzOOQO-E;x-E;xO!9eQ`O,5?lOOQ(CW1G0e1G0eO!@aQ7[O'#D|OOQ(C[,5:e,5:eO){QdO,5:eOIWQ&jO,5:eO!@hQaO,5:eO:aQ`O,5:uO!-OQ!bO,5:uO!-WQ&jO,5:uO5yQ&jO,5:uOOQ(C[1G/n1G/nOOQ(C[1G0O1G0OOOQ(CW'#EV'#EVO){QdO,5?jO!@sQ(ChO,5?jO!AUQ(ChO,5?jO!A]Q`O,5?iO!AeQ`O'#H|O!A]Q`O,5?iOOQ(CW1G0d1G0dO7YQ`O,5?iOOQ(C[1G0b1G0bO!BPQ(C|O1G0bO!CRQ(CyO,5:rOOQ(C]'#Fq'#FqO!CoQ(C}O'#IqOGWQdO1G0bO!EqQ,VO'#IyO!E{Q`O,5:WO!FQQtO'#IzO){QdO'#IzO!F[Q`O,5:]OOQ(C]'#DT'#DTOOQ(C[1G0k1G0kO!FaQ`O1G0kO!HrQ(C|O1G0mO!HyQ(C|O1G0mO!K^Q(C|O1G0mO!KeQ(C|O1G0mO!MlQ(C|O1G0mO!NPQ(C|O1G0mO#!pQ(C|O1G0mO#!wQ(C|O1G0mO#%[Q(C|O1G0mO#%cQ(C|O1G0mO#'WQ(C|O1G0mO#*QQMlO'#ChO#+{QMlO1G0}O#-vQMlO'#IuOOQ(C[1G1T1G1TO#.ZQ(C|O,5>kOOQ(CW-E;}-E;}O#.zQ(C}O1G0mOOQ(C[1G0m1G0mO#1PQ(C|O1G1QO#1pQ!bO,5;sO#1uQ!bO,5;tO#1zQ!bO'#F[O#2`Q`O'#FZOOQO'#JW'#JWOOQO'#H}'#H}O#2eQ!bO1G1]OOQ(C[1G1]1G1]OOOO1G1f1G1fO#2sQMlO'#ItO#2}Q`O,5;}OLbQdO,5;}OOOO-E;|-E;|OOQ(C[1G1Y1G1YOOQ(C[,5<P,5<PO#3SQ!bO,5<POOQ(C],59a,59aOIWQ&jO'#C{OOOW'#Hs'#HsO#3XOWO,59eOOQ(C],59e,59eO){QdO1G1lO!)RQ`O'#IRO#3dQ`O,5<eOOQ(C],5<b,5<bOOQO'#GV'#GVOJjQ&jO,5<pOOQO'#GX'#GXOJjQ&jO,5<rOIWQ&jO,5<tOOQO1G1n1G1nO#3oQqO'#CpO#4SQqO,5<^O#4ZQ`O'#JZO5tQ`O'#JZO#4iQ`O,5<`OJjQ&jO,5<_O#4nQ`O'#FtO#4yQ`O,5<_O#5OQqO'#FqO#5]QqO'#J[O#5gQ`O'#J[OIWQ&jO'#J[O#5lQ`O,5<cOOQ(CW'#Dg'#DgO#5qQ!bO'#F|O!'VQ7[O'#F|O!'VQ7[O'#GOO#6SQ`O'#GPO!&WQ`O'#GSO#6XQ(ChO'#ITO#6dQ7[O,5<gOOQ(C],5<g,5<gO#6kQ7[O'#F|O#6yQ7[O'#F}O#7RQ7[O'#F}OOQ(C],5<u,5<uOJjQ&jO,5?[OJjQ&jO,5?[O#7WQ`O'#IUO#7cQ`O,5?ZO#7kQ`O,59]OOQ(C]'#Ch'#ChO#8[Q,VO,59jOOQ(C],59j,59jO#8}Q,VO,5<UO#9pQ,VO,5<WO#9zQ`O,5<YOOQ(C],5<Z,5<ZO#:PQ`O,5<aO#:UQ,VO,5<fOGWQdO1G1mO#:fQ`O1G1mOOQS1G3v1G3vOOQ(C[1G/p1G/pONbQ`O1G/pOOQS1G2b1G2bOIWQ&jO1G2bO){QdO1G2bOIWQ&jO1G2bO#:kQaO1G2bO#<QQ&jO'#EWOOQ(CW,5?W,5?WO#<[Q(ChO,5?WOOQS1G.s1G.sO:aQ`O1G.sO!-OQ!bO1G.sO!-WQ&jO1G.sO#<mQ`O1G0bO#<rQ`O'#ChO#<}Q`O'#JcO#=VQ`O,5=dO#=[Q`O'#JcO#=aQ`O'#JcO#=iQ`O'#I^O#=wQ`O,5?|O#>PQtO1G1VOOQ(C[1G1X1G1XO5tQ`O1G2}O#>WQ`O1G2}O#>]Q`O1G2}O#>bQ`O1G2}OOQS1G2}1G2}O#>gQ&kO1G2bO7YQ`O'#JQO7YQ`O'#EaO7YQ`O'#IWO#>xQ(ChO,5?yOOQS1G2f1G2fO!0VQ`O1G2lOIWQ&jO1G2iO#?TQ`O1G2iOOQS1G2j1G2jOIWQ&jO1G2jO#?YQaO1G2jO#?bQ7[O'#GhOOQS1G2l1G2lO!'VQ7[O'#IYO!0[QpO1G2oOOQS1G2o1G2oOOQS,5=Y,5=YO#?jQ&kO,5=[O5tQ`O,5=[O#6SQ`O,5=_O5bQ`O,5=_O!-OQ!bO,5=_O!-WQ&jO,5=_O5yQ&jO,5=_O#?{Q`O'#JaO#@WQ`O,5=`OOQS1G.j1G.jO#@]Q(ChO1G.jO#@hQ`O1G.jO#@mQ`O1G.jO5lQ(ChO1G.jO#@uQtO,5@OO#APQ`O,5@OO#A[QdO,5=gO#AcQ`O,5=gO7YQ`O,5@OOOQS1G3P1G3PO`QdO1G3POOQS1G3V1G3VOOQS1G3X1G3XO:[Q`O1G3ZO#AhQdO1G3]O#EcQdO'#H[OOQS1G3`1G3`O#EpQ`O'#HbO:aQ`O'#HdOOQS1G3f1G3fO#ExQdO1G3fO5lQ(ChO1G3lOOQS1G3n1G3nOOQ(CW'#Fx'#FxO5lQ(ChO1G3pO5lQ(ChO1G3rOOOW1G/^1G/^O#IvQpO,5<TO#JOQtO1G3{OOQO1G4Q1G4QO){QdO,5>aO#JYQ`O1G4|O#JbQ`O1G5WO#JjQ`O,5?dOLbQdO,5:{O7YQ`O,5:{O:aQ`O,59}OLbQdO,59}O!-OQ!bO,59}O#JoQMlO,59}OOQO,5:{,5:{O#JyQ7[O'#HvO#KaQ`O,5?cOOQ(C[1G/h1G/hO#KiQ7[O'#H{O#K}Q`O,5?nOOQ(CW1G0f1G0fO!;[Q7[O,59}O#LVQtO1G5XO7YQ`O,5>fOOQ(CW'#ES'#ESO#LaQ(DjO'#ETO!@XQ7[O'#D}OOQO'#Hy'#HyO#L{Q7[O,5:hOOQ(C[,5:h,5:hO#MSQ7[O'#D}O#MeQ7[O'#D}O#MlQ7[O'#EYO#MoQ7[O'#ETO#M|Q7[O'#ETO!@XQ7[O'#ETO#NaQ`O1G0PO#NfQqO1G0POOQ(C[1G0P1G0PO){QdO1G0POIWQ&jO1G0POOQ(C[1G0a1G0aO:aQ`O1G0aO!-OQ!bO1G0aO!-WQ&jO1G0aO#NmQ(C|O1G5UO){QdO1G5UO#N}Q(ChO1G5UO$ `Q`O1G5TO7YQ`O,5>hOOQO,5>h,5>hO$ hQ`O,5>hOOQO-E;z-E;zO$ `Q`O1G5TO$ vQ(C}O,59jO$#xQ(C}O,5<UO$%}Q(C}O,5<WO$(SQ(C}O,5<fOOQ(C[7+%|7+%|O$*_Q(C|O7+%|O$+OQ&jO'#HwO$+YQ`O,5?eOOQ(C]1G/r1G/rO$+bQdO'#HxO$+oQ`O,5?fO$+wQtO,5?fOOQ(C[1G/w1G/wOOQ(C[7+&V7+&VO$,RQMlO,5:^O){QdO7+&iO$,]QMlO,5:UOOQO1G1_1G1_OOQO1G1`1G1`O$,jQ!LQO,5;vOLbQdO,5;uOOQO-E;{-E;{OOQ(C[7+&w7+&wOOOO7+'Q7+'QOOOO1G1i1G1iO$,uQ`O1G1iOOQ(C[1G1k1G1kO$,zQqO,59gOOOW-E;q-E;qOOQ(C]1G/P1G/PO$-RQ(C|O7+'WOOQ(C],5>m,5>mO$-rQ`O,5>mOOQ(C]1G2P1G2PP$-wQ`O'#IRPOQ(C]-E<P-E<PO$.hQ,VO1G2[O$/ZQ,VO1G2^O$/eQqO1G2`OOQ(C]1G1x1G1xO$/lQ`O'#IQO$/zQ`O,5?uO$/zQ`O,5?uO$0SQ`O,5?uO$0_Q`O,5?uOOQO1G1z1G1zO$0mQ,VO1G1yOJjQ&jO1G1yO$0}Q&jO'#ISO$1_Q`O,5?vOIWQ&jO,5?vO$1gQqO,5?vOOQ(C]1G1}1G1}OOQ(CW,5<h,5<hOOQ(CW,5<i,5<iO$1qQ`O,5<iO#5}Q`O,5<iO!-OQ!bO,5<hO$1vQ`O,5<jOOQ(CW,5<k,5<kO$1qQ`O,5<nOOQO,5>o,5>oOOQO-E<R-E<ROOQ(C]1G2R1G2RO!'VQ7[O,5<hO$2OQ`O,5<iO!'VQ7[O,5<jO!'VQ7[O,5<iO$2ZQ,VO1G4vO$2eQ,VO1G4vOOQO,5>p,5>pOOQO-E<S-E<SOOQP1G.w1G.wO!.RQ7[O,59lO){QdO,59lO$2rQ`O1G1tOJjQ&jO1G1{O$2wQ(C|O7+'XOOQ(C[7+'X7+'XOGWQdO7+'XOOQ(C[7+%[7+%[O$3hQqO'#J]O#NaQ`O7+'|O$3rQ`O7+'|O$3zQqO7+'|OOQS7+'|7+'|OIWQ&jO7+'|O){QdO7+'|OIWQ&jO7+'|O$4UQ(CyO'#ChO$4iQ(CyO,5<lO$5ZQ`O,5<lOOQ(CW1G4r1G4rOOQS7+$_7+$_O:aQ`O7+$_O!-OQ!bO7+$_OGWQdO7+%|O$5`Q`O'#I]O$5qQ`O,5?}OOQO1G3O1G3OO5tQ`O,5?}O$5qQ`O,5?}O$5yQ`O,5?}OOQO,5>x,5>xOOQO-E<[-E<[OOQ(C[7+&q7+&qO$6OQ`O7+(iO5lQ(ChO7+(iO5tQ`O7+(iO$6TQ`O7+(iO$6YQaO7+'|OOQ(CW,5>r,5>rOOQ(CW-E<U-E<UOOQS7+(W7+(WO$6hQ(CyO7+(TOIWQ&jO7+(TO$6rQqO7+(UOOQS7+(U7+(UOIWQ&jO7+(UO$6yQ`O'#J`O$7UQ`O,5=SOOQO,5>t,5>tOOQO-E<W-E<WOOQS7+(Z7+(ZO$8OQ7[O'#GqOOQS1G2v1G2vOIWQ&jO1G2vO){QdO1G2vOIWQ&jO1G2vO$8VQaO1G2vO$8eQ&kO1G2vO5lQ(ChO1G2yO#6SQ`O1G2yO5bQ`O1G2yO!-OQ!bO1G2yO!-WQ&jO1G2yO$8vQ`O'#I[O$9RQ`O,5?{O$9ZQ7[O,5?{OOQ(CW1G2z1G2zOOQS7+$U7+$UO$9cQ`O7+$UO5lQ(ChO7+$UO$9hQ`O7+$UO){QdO1G5jO){QdO1G5kO$9mQdO1G3RO$9tQ`O1G3RO$9yQdO1G3RO$:QQ(ChO1G5jOOQS7+(k7+(kO5lQ(ChO7+(uO`QdO7+(wOOQS'#Jf'#JfOOQS'#I_'#I_O$:[QdO,5=vOOQS,5=v,5=vO){QdO'#H]O$:iQ`O'#H_OOQS,5=|,5=|O7YQ`O,5=|OOQS,5>O,5>OOOQS7+)Q7+)QOOQS7+)W7+)WOOQS7+)[7+)[OOQS7+)^7+)^OOQO1G5O1G5OO$:nQMlO1G0gO$:xQ`O1G0gOOQO1G/i1G/iO$;TQMlO1G/iO:aQ`O1G/iOLbQdO'#DcOOQO,5>b,5>bOOQO-E;t-E;tOOQO,5>g,5>gOOQO-E;y-E;yO!-OQ!bO1G/iO:aQ`O,5:iOOQO,5:o,5:oO){QdO,5:oO$;_Q(ChO,5:oO$;jQ(ChO,5:oO!-OQ!bO,5:iOOQO-E;w-E;wOOQ(C[1G0S1G0SO!@XQ7[O,5:iO$;xQ7[O,5:iO$<ZQ(DjO,5:oO$<uQ7[O,5:iO!@XQ7[O,5:oOOQO,5:t,5:tO$<|Q7[O,5:oO$=ZQ(ChO,5:oOOQ(C[7+%k7+%kO#NaQ`O7+%kO#NfQqO7+%kOOQ(C[7+%{7+%{O:aQ`O7+%{O!-OQ!bO7+%{O$=oQ(C|O7+*pO){QdO7+*pOOQO1G4S1G4SO7YQ`O1G4SO$>PQ`O7+*oO$>XQ(C}O1G2[O$@^Q(C}O1G2^O$BcQ(C}O1G1yO$DnQ,VO,5>cOOQO-E;u-E;uO$DxQtO,5>dO){QdO,5>dOOQO-E;v-E;vO$ESQ`O1G5QO$E[QMlO1G0bO$GcQMlO1G0mO$GjQMlO1G0mO$IkQMlO1G0mO$IrQMlO1G0mO$KgQMlO1G0mO$KzQMlO1G0mO$NXQMlO1G0mO$N`QMlO1G0mO%!aQMlO1G0mO%!hQMlO1G0mO%$]QMlO1G0mO%$pQ(C|O<<JTO%%rQMmO1G0mO%'|QMmO'#IqO%)iQMlO1G1QOLbQdO'#F^OOQO'#JX'#JXOOQO1G1b1G1bO%)vQ`O1G1aO%){QMlO,5>kOOOO7+'T7+'TOOOW1G/R1G/ROOQ(C]1G4X1G4XOJjQ&jO7+'zO%*VQ`O,5>lO5tQ`O,5>lOOQO-E<O-E<OO%*eQ`O1G5aO%*eQ`O1G5aO%*mQ`O1G5aO%*xQ,VO7+'eO%+YQqO,5>nO%+dQ`O,5>nOIWQ&jO,5>nOOQO-E<Q-E<QO%+iQqO1G5bO%+sQ`O1G5bOOQ(CW1G2T1G2TO$1qQ`O1G2TOOQ(CW1G2S1G2SO%+{Q`O1G2UOIWQ&jO1G2UOOQ(CW1G2Y1G2YO!-OQ!bO1G2SO#5}Q`O1G2TO%,QQ`O1G2UO%,YQ`O1G2TOJjQ&jO7+*bOOQ(C]1G/W1G/WO%,eQ`O1G/WOOQ(C]7+'`7+'`O%,jQ,VO7+'gO%,zQ(C|O<<JsOOQ(C[<<Js<<JsOIWQ&jO'#IVO%-kQ`O,5?wOOQS<<Kh<<KhOIWQ&jO<<KhO#NaQ`O<<KhO%-sQ`O<<KhO%-{QqO<<KhOIWQ&jO1G2WOOQS<<Gy<<GyO:aQ`O<<GyO%.VQ(C|O<<IhOOQ(C[<<Ih<<IhOOQO,5>w,5>wO%.vQ`O,5>wO%.{Q`O,5>wOOQO-E<Z-E<ZO%/TQ`O1G5iO%/TQ`O1G5iO5tQ`O1G5iO%/]Q`O<<LTOOQS<<LT<<LTO%/bQ`O<<LTO5lQ(ChO<<LTO){QdO<<KhOIWQ&jO<<KhOOQS<<Ko<<KoO$6hQ(CyO<<KoOOQS<<Kp<<KpO$6rQqO<<KpO%/gQ7[O'#IXO%/rQ`O,5?zOLbQdO,5?zOOQS1G2n1G2nO#LaQ(DjO'#ETO!@XQ7[O'#GrOOQO'#IZ'#IZO%/zQ7[O,5=]OOQS,5=],5=]O%0RQ7[O'#ETO%0^Q7[O'#ETO%0uQ7[O'#ETO%1PQ7[O'#GrO%1bQ`O7+(bO%1gQ`O7+(bO%1oQqO7+(bOOQS7+(b7+(bOIWQ&jO7+(bO){QdO7+(bOIWQ&jO7+(bO%1yQaO7+(bOOQS7+(e7+(eO5lQ(ChO7+(eO#6SQ`O7+(eO5bQ`O7+(eO!-OQ!bO7+(eO%2XQ`O,5>vOOQO-E<Y-E<YOOQO'#Gu'#GuO%2dQ`O1G5gO5lQ(ChO<<GpOOQS<<Gp<<GpO%2lQ`O<<GpO%2qQ`O7++UO%2vQ`O7++VOOQS7+(m7+(mO%2{Q`O7+(mO%3QQdO7+(mO%3XQ`O7+(mO){QdO7++UO){QdO7++VOOQS<<La<<LaOOQS<<Lc<<LcOOQS-E<]-E<]OOQS1G3b1G3bO%3^Q`O,5=wOOQS,5=y,5=yO%3cQ`O1G3hOLbQdO7+&ROOQO7+%T7+%TO%3hQMlO1G5XO:aQ`O7+%TOOQO1G0T1G0TO%3rQ(C|O1G0ZOOQO1G0Z1G0ZO){QdO1G0ZO%3|Q(ChO1G0ZO:aQ`O1G0TO!-OQ!bO1G0TO!@XQ7[O1G0TO%4XQ(ChO1G0ZO%4gQ7[O1G0TO%4xQ(ChO1G0ZO%5^Q(DjO1G0ZO%5hQ7[O1G0TO!@XQ7[O1G0ZOOQ(C[<<IV<<IVOOQ(C[<<Ig<<IgO:aQ`O<<IgO%5oQ(C|O<<N[OOQO7+)n7+)nO%6PQ(C}O7+'eO%8[Q(C}O7+'gO%:gQtO1G4OO%:qQMlO7+%|O%;gQMmO,59jO%=hQMmO,5<UO%?lQMmO,5<WO%A[QMmO,5<fO%B}QMlO7+'WO%C[QMlO7+'XO%CiQ`O,5;xOOQO7+&{7+&{O%CnQ,VO<<KfOOQO1G4W1G4WO%CuQ`O1G4WO%DQQ`O1G4WO%D`Q`O7+*{O%D`Q`O7+*{OIWQ&jO1G4YO%DhQqO1G4YO%DrQ`O7+*|OOQ(CW7+'o7+'oO$1qQ`O7+'pO%DzQqO7+'pOOQ(CW7+'n7+'nO$1qQ`O7+'oO%ERQ`O7+'pOIWQ&jO7+'pO#5}Q`O7+'oO%EWQ,VO<<M|OOQ(C]7+$r7+$rO%EbQqO,5>qOOQO-E<T-E<TO#NaQ`OANASOOQSANASANASOIWQ&jOANASO%ElQ(CyO7+'rOOQSAN=eAN=eO5tQ`O1G4cOOQO1G4c1G4cO%E|Q`O1G4cO%FRQ`O7++TO%FRQ`O7++TO5lQ(ChOANAoO%FZQ`OANAoOOQSANAoANAoO%F`Q`OANASO%FhQqOANASOOQSANAZANAZOOQSANA[ANA[O%FrQ`O,5>sOOQO-E<V-E<VO%F}QMlO1G5fO#6SQ`O,5=^O5bQ`O,5=^O!-OQ!bO,5=^OOQO-E<X-E<XOOQS1G2w1G2wO$<ZQ(DjO,5:oO!@XQ7[O,5=^O%GXQ7[O,5=^O%GjQ7[O,5:oOOQS<<K|<<K|OIWQ&jO<<K|O%1bQ`O<<K|O%GtQ`O<<K|O%G|QqO<<K|O){QdO<<K|OIWQ&jO<<K|OOQS<<LP<<LPO5lQ(ChO<<LPO#6SQ`O<<LPO5bQ`O<<LPO%HWQ7[O1G4bO%H`Q`O7++ROOQSAN=[AN=[O5lQ(ChOAN=[OOQS<<Np<<NpOOQS<<Nq<<NqOOQS<<LX<<LXO%HhQ`O<<LXO%HmQdO<<LXO%HtQ`O<<NpO%HyQ`O<<NqOOQS1G3c1G3cO:aQ`O7+)SO%IOQMlO<<ImOOQO<<Ho<<HoOOQO7+%u7+%uO%3rQ(C|O7+%uO){QdO7+%uOOQO7+%o7+%oO:aQ`O7+%oO!-OQ!bO7+%oO%IYQ(ChO7+%uO!@XQ7[O7+%oO%IeQ(ChO7+%uO%IsQ7[O7+%oO%JUQ(ChO7+%uOOQ(C[AN?RAN?RO%JjQMlO<<JTO%JwQMmO1G1yO%MOQMmO1G2[O& SQMmO1G2^O&!rQMlO<<JsO&#PQMlO<<IhOOQO1G1d1G1dOJjQ&jOANAQOOQO7+)r7+)rO&#^Q`O7+)rO&#iQ`O<<NgO&#qQqO7+)tOOQ(CW<<K[<<K[O$1qQ`O<<K[OOQ(CW<<KZ<<KZO&#{QqO<<K[O$1qQ`O<<KZOOQSG26nG26nO#NaQ`OG26nOOQO7+)}7+)}O5tQ`O7+)}O&$SQ`O<<NoOOQSG27ZG27ZO5lQ(ChOG27ZOIWQ&jOG26nOLbQdO1G4_O&$[Q`O7++QO5lQ(ChO1G2xO#6SQ`O1G2xO5bQ`O1G2xO!-OQ!bO1G2xO!@XQ7[O1G2xO%5^Q(DjO1G0ZO&$dQ7[O1G2xO%1bQ`OANAhOOQSANAhANAhOIWQ&jOANAhO&$uQ`OANAhO&$}QqOANAhOOQSANAkANAkO5lQ(ChOANAkO#6SQ`OANAkOOQO'#Gv'#GvOOQO7+)|7+)|OOQSG22vG22vOOQSANAsANAsO&%XQ`OANAsOOQSAND[AND[OOQSAND]AND]OOQS<<Ln<<LnOOQO<<Ia<<IaO%3rQ(C|O<<IaOOQO<<IZ<<IZO:aQ`O<<IZO){QdO<<IaO!-OQ!bO<<IZO&%^Q(ChO<<IaO!@XQ7[O<<IZO&%iQ(ChO<<IaO&%wQMmO7+'eO&'jQMmO7+'gO&)]Q,VOG26lOOQO<<M^<<M^OOQ(CWAN@vAN@vO$1qQ`OAN@vOOQ(CWAN@uAN@uOOQSLD,YLD,YOOQO<<Mi<<MiOOQSLD,uLD,uO#NaQ`OLD,YO&)mQMlO7+)yOOQO7+(d7+(dO5lQ(ChO7+(dO#6SQ`O7+(dO5bQ`O7+(dO!-OQ!bO7+(dO!@XQ7[O7+(dOOQSG27SG27SO%1bQ`OG27SOIWQ&jOG27SOOQSG27VG27VO5lQ(ChOG27VOOQSG27_G27_OOQOAN>{AN>{OOQOAN>uAN>uO%3rQ(C|OAN>{O:aQ`OAN>uO){QdOAN>{O!-OQ!bOAN>uO&)wQ(ChOAN>{O&*SQ(C}OG26lOOQ(CWG26bG26bOOQS!$( t!$( tOOQO<<LO<<LOO5lQ(ChO<<LOO#6SQ`O<<LOO5bQ`O<<LOO!-OQ!bO<<LOOOQSLD,nLD,nO%1bQ`OLD,nOOQSLD,qLD,qOOQOG24gG24gOOQOG24aG24aO%3rQ(C|OG24gO:aQ`OG24aO){QdOG24gO&,pQ!LRO,5:rO&-gQ$ITO'#IqOOQOANAjANAjO5lQ(ChOANAjO#6SQ`OANAjO5bQ`OANAjOOQS!$(!Y!$(!YOOQOLD*RLD*ROOQOLD){LD){O%3rQ(C|OLD*RO&.ZQMmOG26lO&/|Q!LRO,59jO&0pQ!LRO,5<UO&1dQ!LRO,5<WO&2WQ!LRO,5<fOOQOG27UG27UO5lQ(ChOG27UO#6SQ`OG27UOOQO!$'Mm!$'MmO&2}Q!LRO1G2[O&3qQ!LRO1G2^O&4eQ!LRO1G1yOOQOLD,pLD,pO5lQ(ChOLD,pO&5[Q!LRO7+'eO&6RQ!LRO7+'gOOQO!$(![!$(![O&6xQ!LROG26lOLbQdO'#DrO&7oQtO'#ItOLbQdO'#DjO&7vQ(C|O'#ChO&8aQtO'#ChO&8qQdO,5:vO&:qQ&jO'#EWOLbQdO,5;ROLbQdO,5;ROLbQdO,5;ROLbQdO,5;ROLbQdO,5;ROLbQdO,5;ROLbQdO,5;ROLbQdO,5;ROLbQdO,5;ROLbQdO,5;ROLbQdO,5;ROLbQdO'#IPO&<OQ`O,5<TO&=eQ&jO,5;ROLbQdO,5;fO!(wQ`O'#DOO!(wQ`O'#DOO!(wQ`O'#DOOIWQ&jO'#FjO&:qQ&jO'#FjO&<WQ&jO'#FjOIWQ&jO'#FlO&:qQ&jO'#FlO&<WQ&jO'#FlOIWQ&jO'#FzO&:qQ&jO'#FzO&<WQ&jO'#FzOLbQdO,5?mO&8qQdO1G0bO&=lQMlO'#ChOLbQdO1G1lOIWQ&jO,5<pO&:qQ&jO,5<pO&<WQ&jO,5<pOIWQ&jO,5<rO&:qQ&jO,5<rO&<WQ&jO,5<rOIWQ&jO,5<_O&:qQ&jO,5<_O&<WQ&jO,5<_O&8qQdO1G1mOLbQdO7+&iOIWQ&jO1G1yO&:qQ&jO1G1yO&<WQ&jO1G1yOIWQ&jO1G1{O&:qQ&jO1G1{O&<WQ&jO1G1{O&8qQdO7+'XO&8qQdO7+%|O&=vQ`O7+'pOIWQ&jOANAQO&:qQ&jOANAQO&<WQ&jOANAQO&=vQ`O<<K[O&=vQ`OAN@vO&={Q`O'#E[O&>QQ`O'#E[O&>YQ`O'#EzO&>_Q`O'#EgO&>dQ`O'#JRO&>oQ`O'#JPO&>zQ`O,5:vO&?PQ,VO,5<QO&?WQ`O'#FsO&?]Q`O'#FsO&?bQ`O'#FsO&?gQ`O,5<RO&?oQ`O,5:vO&?wQMlO1G0}O&@OQ`O,5<_O&@TQ`O,5<_O&@YQ`O,5<_O&@_Q`O,5<aO&@dQ`O,5<aO&@iQ`O,5<aO&@nQ`O1G1mO&@sQ`O1G0bO&@xQ`O1G2UO&@}Q,VO<<KfO&AUQ,VO<<KfO&A]Q,VO<<KfO&AdQqO7+'pO&AkQ`O7+'pO&ApQqO<<K[O4QQ&jO'#FhO5bQ`O'#FgOBzQ`O'#EZOLbQdO,5;cO!&WQ`O'#FsO!&WQ`O'#FsO!&WQ`O'#FsO!&WQ`O'#FuO!&WQ`O'#FuO!&WQ`O'#FuO&AwQ`O,5<jOJjQ&jO7+'zOJjQ&jO7+'zOJjQ&jO7+'zOIWQ&jO1G2UO&BPQ`O1G2UOIWQ&jO7+'pO!'VQ7[O'#GOO$/eQqO1G2`O$/eQqO1G2`O$/eQqO1G2`O!'VQ7[O,5<jOIWQ&jO,5<tOIWQ&jO,5<tOIWQ&jO,5<t",
158
- stateData: "&B}~O'YOS'ZOSTOSUOS~OQTORTOXyO]cO_hObnOcmOhcOjTOkcOlcOqTOsTOxRO{cO|cO}cO!TSO!_kO!dUO!gTO!hTO!iTO!jTO!kTO!nlO#dsO#tpO#x^O%PqO%RtO%TrO%UrO%XuO%ZvO%^wO%_wO%axO%nzO%t{O%v|O%x}O%z!OO%}!PO&T!QO&Z!RO&]!SO&_!TO&a!UO&c!VO']PO'fQO'oYO'|aO~OQ[XZ[X_[Xj[Xu[Xv[Xx[X!R[X!a[X!b[X!d[X!j[X!{[X#WdX#[[X#][X#^[X#_[X#`[X#a[X#b[X#c[X#e[X#g[X#i[X#j[X#o[X'W[X'f[X'p[X'w[X'x[X~O!]$lX~P$zOS!WO'U!XO'V!ZO~OQTORTO]cOb!kOc!jOhcOjTOkcOlcOqTOsTOxRO{cO|cO}cO!T!bO!_kO!dUO!gTO!hTO!iTO!jTO!kTO!n!iO#t!lO#x^O']![O'fQO'oYO'|aO~O!Q!`O!R!]O!O'jP!O'tP~P'dO!S!mO~P`OQTORTO]cOb!kOc!jOhcOjTOkcOlcOqTOsTOxRO{cO|cO}cO!T!bO!_kO!dUO!gTO!hTO!iTO!jTO!kTO!n!iO#t!lO#x^O']9aO'fQO'oYO'|aO~OQTORTO]cOb!kOc!jOhcOjTOkcOlcOqTOsTOxRO{cO|cO}cO!T!bO!_kO!dUO!gTO!hTO!iTO!jTO!kTO!n!iO#t!lO#x^O'fQO'oYO'|aO~O!Q!rO#U!uO#V!rO']9bO!c'qP~P+{O#W!vO~O!]!wO#W!vO~OQ#^OZ#dOj#ROu!{Ov!{Ox!|O!R#bO!a#TO!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO#a#TO#b#TO#c#TO#e#UO#g#WO#i#YO#j#ZO'fQO'p#[O'w!}O'x#OO~O_'hX'W'hX!c'hX!O'hX!T'hX%Q'hX!]'hX~P.jO!{#eO#o#eOQ'iXZ'iX_'iXj'iXu'iXv'iXx'iX!R'iX!a'iX!b'iX!d'iX!j'iX#['iX#]'iX#^'iX#_'iX#`'iX#a'iX#b'iX#e'iX#g'iX#i'iX#j'iX'f'iX'p'iX'w'iX'x'iX~O#c'iX'W'iX!O'iX!c'iXn'iX!T'iX%Q'iX!]'iX~P0zO!{#eO~O#z#fO$R#jO~O!T#kO#x^O$U#lO$W#nO~O]#qOh$QOj#rOk#qOl#qOq$ROs$SOx#yO!T#zO!_$XO!d#vO#V$YO#t$VO$_$TO$a$UO$d$WO']#pO'b$PO'f#sO'a'cP~O!d$ZO~O!]$]O~O_$^O'W$^O~O']$bO~O!d$ZO']$bO'^$dO'b$PO~Oc$jO!d$ZO']$bO~O#c#TO~O]$sOu$oO!T$lO!d$nO%R$rO']$bO'^$dO^(UP~O!n$tO~Ox$uO!T$vO']$bO~Ox$uO!T$vO%Z$zO']$bO~O']${O~O#dsO%RtO%TrO%UrO%XuO%ZvO%^wO%_wO~Ob%UOc%TO!n%RO%P%SO%c%QO~P7xOb%XOcmO!T%WO!nlO#dsO%PqO%TrO%UrO%XuO%ZvO%^wO%_wO%axO~O`%[O!{%_O%R%YO'^$dO~P8wO!d%`O!g%dO~O!d%eO~O!TSO~O_$^O'T%mO'W$^O~O_$^O'T%pO'W$^O~O_$^O'T%rO'W$^O~OS!WO'U!XO'V%vO~OQ[XZ[Xj[Xu[Xv[Xx[X!R[X!RdX!a[X!b[X!d[X!j[X!{[X!{dX#WdX#[[X#][X#^[X#_[X#`[X#a[X#b[X#c[X#e[X#g[X#i[X#j[X#o[X'f[X'p[X'w[X'x[X~O!O[X!OdX~P;dO!Q%xO!O&iX!O&nX!R&iX!R&nX~P'dO!R%zO!O'jX~OQ#^OZ#dOj#ROu!{Ov!{Ox!|O!R%zO!a#TO!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO#a#TO#b#TO#c#TO#e#UO#g#WO#i#YO#j#ZO'fQO'p#[O'w!}O'x#OO~O!O'jX~P>aO!O&PO~Ox&SO!W&^O!X&VO!Y&VO'^$dO~O]&TOk&TO!Q&WO'g&QO!S'kP!S'vP~P@dO!O'sX!R'sX!]'sX!c'sX'p'sX~O!{'sX#W#PX!S'sX~PA]O!{&_O!O'uX!R'uX~O!R&`O!O'tX~O!O&cO~O!{#eO~PA]OP&gO!T&dO!o&fO']$bO~Oc&lO!d$ZO']$bO~Ou$oO!d$nO~O!S&mO~P`Ou!{Ov!{Ox!|O!b!yO!d!zO'fQOQ!faZ!faj!fa!R!fa!a!fa!j!fa#[!fa#]!fa#^!fa#_!fa#`!fa#a!fa#b!fa#c!fa#e!fa#g!fa#i!fa#j!fa'p!fa'w!fa'x!fa~O_!fa'W!fa!O!fa!c!fan!fa!T!fa%Q!fa!]!fa~PCfO!c&nO~O!]!wO!{&pO'p&oO!R'rX_'rX'W'rX~O!c'rX~PFOO!R&tO!c'qX~O!c&vO~Ox$uO!T$vO#V&wO']$bO~OQTORTO]cOb!kOc!jOhcOjTOkcOlcOqTOsTOxRO{cO|cO}cO!TSO!_kO!dUO!gTO!hTO!iTO!jTO!kTO!n!iO#t!lO#x^O']9aO'fQO'oYO'|aO~O]#qOh$QOj#rOk#qOl#qOq$ROs9tOx#yO!T#zO!_;eO!d#vO#V9}O#t$VO$_9wO$a9zO$d$WO']&{O'b$PO'f#sO~O#W&}O~O]#qOh$QOj#rOk#qOl#qOq$ROs$SOx#yO!T#zO!_$XO!d#vO#V$YO#t$VO$_$TO$a$UO$d$WO']&{O'b$PO'f#sO~O'a'mP~PJjO!Q'RO!c'nP~P){O'g'TO'oYO~OQ9^OR9^O]cOb;`Oc!jOhcOj9^OkcOlcOq9^Os9^OxRO{cO|cO}cO!T!bO!_9`O!dUO!g9^O!h9^O!i9^O!j9^O!k9^O!n!iO#t!lO#x^O']'cO'fQO'oYO'|;^O~O!d!zO~O!R#bO_$]a'W$]a!c$]a!O$]a!T$]a%Q$]a!]$]a~O#d'jO~PIWO!]'lO!T'yX#w'yX#z'yX$R'yX~Ou'mO~P! YOu'mO!T'yX#w'yX#z'yX$R'yX~O!T'oO#w'sO#z'nO$R'tO~O!Q'wO~PLbO#z#fO$R'zO~OP$eXu$eXx$eX!b$eX'w$eX'x$eX~OPfX!RfX!{fX'afX'a$eX~P!!rOk'|O~OS'}O'U(OO'V(QO~OP(ZOu(SOx(TO'w(VO'x(XO~O'a(RO~P!#{O'a([O~O]#qOh$QOj#rOk#qOl#qOq$ROs9tOx#yO!T#zO!_;eO!d#vO#V9}O#t$VO$_9wO$a9zO$d$WO'b$PO'f#sO~O!Q(`O'](]O!c'}P~P!$jO#W(bO~O!d(cO~O!Q(hO'](eO!O(OP~P!$jOj(uOx(mO!W(sO!X(lO!Y(lO!d(cO!x(tO$w(oO'^$dO'g(jO~O!S(rO~P!&jO!b!yOP'eXu'eXx'eX'w'eX'x'eX!R'eX!{'eX~O'a'eX#m'eX~P!'cOP(xO!{(wO!R'dX'a'dX~O!R(yO'a'cX~O']${O'a'cP~O'](|O~O!d)RO~O']&{O~Ox$uO!Q!rO!T$vO#U!uO#V!rO']$bO!c'qP~O!]!wO#W)VO~OQ#^OZ#dOj#ROu!{Ov!{Ox!|O!a#TO!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO#a#TO#b#TO#c#TO#e#UO#g#WO#i#YO#j#ZO'fQO'p#[O'w!}O'x#OO~O_!^a!R!^a'W!^a!O!^a!c!^an!^a!T!^a%Q!^a!]!^a~P!)wOP)_O!T&dO!o)^O%Q)]O'b$PO~O!])aO!T'`X_'`X!R'`X'W'`X~O!d$ZO'b$PO~O!d$ZO']$bO'b$PO~O!]!wO#W&}O~O])lO%R)mO'])iO!S(VP~O!R)nO^(UX~O'g'TO~OZ)rO~O^)sO~O!T$lO']$bO'^$dO^(UP~Ox$uO!Q)xO!R&`O!T$vO']$bO!O'tP~O]&ZOk&ZO!Q)yO'g'TO!S'vP~O!R)zO_(RX'W(RX~O!{*OO'b$PO~OP*RO!T#zO'b$PO~O!T*TO~Ou*VO!TSO~O!n*[O~Oc*aO~O'](|O!S(TP~Oc$jO~O%RtO']${O~P8wOZ*gO^*fO~OQTORTO]cObnOcmOhcOjTOkcOlcOqTOsTOxRO{cO|cO}cO!_kO!dUO!gTO!hTO!iTO!jTO!kTO!nlO#x^O%PqO'fQO'oYO'|aO~O!T!bO#t!lO']9aO~P!1_O^*fO_$^O'W$^O~O_*kO#d*mO%T*mO%U*mO~P){O!d%`O~O%t*rO~O!T*tO~O&V*vO&X*wOQ&SaR&SaX&Sa]&Sa_&Sab&Sac&Sah&Saj&Sak&Sal&Saq&Sas&Sax&Sa{&Sa|&Sa}&Sa!T&Sa!_&Sa!d&Sa!g&Sa!h&Sa!i&Sa!j&Sa!k&Sa!n&Sa#d&Sa#t&Sa#x&Sa%P&Sa%R&Sa%T&Sa%U&Sa%X&Sa%Z&Sa%^&Sa%_&Sa%a&Sa%n&Sa%t&Sa%v&Sa%x&Sa%z&Sa%}&Sa&T&Sa&Z&Sa&]&Sa&_&Sa&a&Sa&c&Sa'S&Sa']&Sa'f&Sa'o&Sa'|&Sa!S&Sa%{&Sa`&Sa&Q&Sa~O']*|O~On+PO~O!O&ia!R&ia~P!)wO!Q+TO!O&iX!R&iX~P){O!R%zO!O'ja~O!O'ja~P>aO!R&`O!O'ta~O!RwX!R!ZX!SwX!S!ZX!]wX!]!ZX!d!ZX!{wX'b!ZX~O!]+YO!{+XO!R#TX!R'lX!S#TX!S'lX!]'lX!d'lX'b'lX~O!]+[O!d$ZO'b$PO!R!VX!S!VX~O]&ROk&ROx&SO'g(jO~OQ9^OR9^O]cOb;`Oc!jOhcOj9^OkcOlcOq9^Os9^OxRO{cO|cO}cO!T!bO!_9`O!dUO!g9^O!h9^O!i9^O!j9^O!k9^O!n!iO#t!lO#x^O'fQO'oYO'|;^O~O']:SO~P!;jO!R+`O!S'kX~O!S+bO~O!]+YO!{+XO!R#TX!S#TX~O!R+cO!S'vX~O!S+eO~O]&ROk&ROx&SO'^$dO'g(jO~O!X+fO!Y+fO~P!>hOx$uO!Q+hO!T$vO']$bO!O&nX!R&nX~O_+lO!W+oO!X+kO!Y+kO!r+sO!s+qO!t+rO!u+pO!x+tO'^$dO'g(jO'o+iO~O!S+nO~P!?iOP+yO!T&dO!o+xO~O!{,PO!R'ra!c'ra_'ra'W'ra~O!]!wO~P!@sO!R&tO!c'qa~Ox$uO!Q,SO!T$vO#U,UO#V,SO']$bO!R&pX!c&pX~O_#Oi!R#Oi'W#Oi!O#Oi!c#Oin#Oi!T#Oi%Q#Oi!]#Oi~P!)wOP;tOu(SOx(TO'w(VO'x(XO~O#W!za!R!za!c!za!{!za!T!za_!za'W!za!O!za~P!BpO#W'eXQ'eXZ'eX_'eXj'eXv'eX!a'eX!d'eX!j'eX#['eX#]'eX#^'eX#_'eX#`'eX#a'eX#b'eX#c'eX#e'eX#g'eX#i'eX#j'eX'W'eX'f'eX'p'eX!c'eX!O'eX!T'eXn'eX%Q'eX!]'eX~P!'cO!R,_O'a'mX~P!#{O'a,aO~O!R,bO!c'nX~P!)wO!c,eO~O!O,fO~OQ#^Ou!{Ov!{Ox!|O!b!yO!d!zO!j#^O'fQOZ#Zi_#Zij#Zi!R#Zi!a#Zi#]#Zi#^#Zi#_#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi'W#Zi'p#Zi'w#Zi'x#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~O#[#Zi~P!FfO#[#PO~P!FfOQ#^Ou!{Ov!{Ox!|O!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO'fQOZ#Zi_#Zi!R#Zi!a#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi'W#Zi'p#Zi'w#Zi'x#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~Oj#Zi~P!IQOj#RO~P!IQOQ#^Oj#ROu!{Ov!{Ox!|O!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO'fQO_#Zi!R#Zi#e#Zi#g#Zi#i#Zi#j#Zi'W#Zi'p#Zi'w#Zi'x#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~OZ#Zi!a#Zi#a#Zi#b#Zi#c#Zi~P!KlOZ#dO!a#TO#a#TO#b#TO#c#TO~P!KlOQ#^OZ#dOj#ROu!{Ov!{Ox!|O!a#TO!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO#a#TO#b#TO#c#TO#e#UO'fQO_#Zi!R#Zi#g#Zi#i#Zi#j#Zi'W#Zi'p#Zi'x#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~O'w#Zi~P!NdO'w!}O~P!NdOQ#^OZ#dOj#ROu!{Ov!{Ox!|O!a#TO!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO#a#TO#b#TO#c#TO#e#UO#g#WO'fQO'w!}O_#Zi!R#Zi#i#Zi#j#Zi'W#Zi'p#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~O'x#Zi~P##OO'x#OO~P##OOQ#^OZ#dOj#ROu!{Ov!{Ox!|O!a#TO!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO#a#TO#b#TO#c#TO#e#UO#g#WO#i#YO'fQO'w!}O'x#OO~O_#Zi!R#Zi#j#Zi'W#Zi'p#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~P#%jOQ[XZ[Xj[Xu[Xv[Xx[X!a[X!b[X!d[X!j[X!{[X#WdX#[[X#][X#^[X#_[X#`[X#a[X#b[X#c[X#e[X#g[X#i[X#j[X#o[X'f[X'p[X'w[X'x[X!R[X!S[X~O#m[X~P#'}OQ#^OZ9rOj9gOu!{Ov!{Ox!|O!a9iO!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO#`9hO#a9iO#b9iO#c9iO#e9jO#g9lO#i9nO#j9oO'fQO'p#[O'w!}O'x#OO~O#m,hO~P#*XOQ'iXZ'iXj'iXu'iXv'iXx'iX!a'iX!b'iX!d'iX!j'iX#['iX#]'iX#^'iX#_'iX#`'iX#a'iX#b'iX#e'iX#g'iX#i'iX#j'iX'f'iX'p'iX'w'iX'x'iX!R'iX~O!{9sO#o9sO#c'iX#m'iX!S'iX~P#,SO_&sa!R&sa'W&sa!c&san&sa!O&sa!T&sa%Q&sa!]&sa~P!)wOQ#ZiZ#Zi_#Zij#Ziv#Zi!R#Zi!a#Zi!b#Zi!d#Zi!j#Zi#[#Zi#]#Zi#^#Zi#_#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi'W#Zi'f#Zi'p#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~P!BpO_#ni!R#ni'W#ni!O#ni!c#nin#ni!T#ni%Q#ni!]#ni~P!)wO#z,jO~O#z,kO~O!]'lO!{,lO!T$OX#w$OX#z$OX$R$OX~O!Q,mO~O!T'oO#w,oO#z'nO$R,pO~O!R9pO!S'hX~P#*XO!S,qO~O$R,sO~OS'}O'U(OO'V,vO~O],yOk,yO!O,zO~O!RdX!]dX!cdX!c$eX'pdX~P!!rO!c-QO~P!BpO!R-RO!]!wO'p&oO!c'}X~O!c-WO~O!Q(`O']$bO!c'}P~O#W-YO~O!O$eX!R$eX!]$lX~P!!rO!R-ZO!O(OX~P!BpO!]-]O~O!O-_O~Oj-cO!]!wO!d$ZO'b$PO'p&oO~O!])aO~O_$^O!R-hO'W$^O~O!S-jO~P!&jO!X-kO!Y-kO'^$dO'g(jO~Ox-mO'g(jO~O!x-nO~O']${O!R&xX'a&xX~O!R(yO'a'ca~O'a-sO~Ou-tOv-tOx-uOPra'wra'xra!Rra!{ra~O'ara#mra~P#7pOu(SOx(TOP$^a'w$^a'x$^a!R$^a!{$^a~O'a$^a#m$^a~P#8fOu(SOx(TOP$`a'w$`a'x$`a!R$`a!{$`a~O'a$`a#m$`a~P#9XO]-vO~O#W-wO~O'a$na!R$na!{$na#m$na~P!#{O#W-zO~OP.TO!T&dO!o.SO%Q.RO~O]#qOj#rOk#qOl#qOq$ROs9tOx#yO!T#zO!_;eO!d#vO#V9}O#t$VO$_9wO$a9zO$d$WO'b$PO'f#sO~Oh.VO'].UO~P#:yO!])aO!T'`a_'`a!R'`a'W'`a~O#W.]O~OZ[X!RdX!SdX~O!R.^O!S(VX~O!S.`O~OZ.aO~O].cO'])iO~O!T$lO']$bO^'QX!R'QX~O!R)nO^(Ua~O!c.fO~P!)wO].hO~OZ.iO~O^.jO~OP.TO!T&dO!o.SO%Q.RO'b$PO~O!R)zO_(Ra'W(Ra~O!{.pO~OP.sO!T#zO~O'g'TO!S(SP~OP.}O!T.yO!o.|O%Q.{O'b$PO~OZ/XO!R/VO!S(TX~O!S/YO~O^/[O_$^O'W$^O~O]/]O~O]/^O'](|O~O#c/_O%r/`O~P0zO!{#eO#c/_O%r/`O~O_/aO~P){O_/cO~O%{/gOQ%yiR%yiX%yi]%yi_%yib%yic%yih%yij%yik%yil%yiq%yis%yix%yi{%yi|%yi}%yi!T%yi!_%yi!d%yi!g%yi!h%yi!i%yi!j%yi!k%yi!n%yi#d%yi#t%yi#x%yi%P%yi%R%yi%T%yi%U%yi%X%yi%Z%yi%^%yi%_%yi%a%yi%n%yi%t%yi%v%yi%x%yi%z%yi%}%yi&T%yi&Z%yi&]%yi&_%yi&a%yi&c%yi'S%yi']%yi'f%yi'o%yi'|%yi!S%yi`%yi&Q%yi~O`/mO!S/kO&Q/lO~P`O!TSO!d/oO~O&X*wOQ&SiR&SiX&Si]&Si_&Sib&Sic&Sih&Sij&Sik&Sil&Siq&Sis&Six&Si{&Si|&Si}&Si!T&Si!_&Si!d&Si!g&Si!h&Si!i&Si!j&Si!k&Si!n&Si#d&Si#t&Si#x&Si%P&Si%R&Si%T&Si%U&Si%X&Si%Z&Si%^&Si%_&Si%a&Si%n&Si%t&Si%v&Si%x&Si%z&Si%}&Si&T&Si&Z&Si&]&Si&_&Si&a&Si&c&Si'S&Si']&Si'f&Si'o&Si'|&Si!S&Si%{&Si`&Si&Q&Si~O!R#bOn$]a~O!O&ii!R&ii~P!)wO!R%zO!O'ji~O!R&`O!O'ti~O!O/uO~O!R!Va!S!Va~P#*XO]&ROk&RO!Q/{O'g(jO!R&jX!S&jX~P@dO!R+`O!S'ka~O]&ZOk&ZO!Q)yO'g'TO!R&oX!S&oX~O!R+cO!S'va~O!O'ui!R'ui~P!)wO_$^O!]!wO!d$ZO!j0VO!{0TO'W$^O'b$PO'p&oO~O!S0YO~P!?iO!X0ZO!Y0ZO'^$dO'g(jO'o+iO~O!W0[O~P#MSO!TSO!W0[O!u0^O!x0_O~P#MSO!W0[O!s0aO!t0aO!u0^O!x0_O~P#MSO!T&dO~O!T&dO~P!BpO!R'ri!c'ri_'ri'W'ri~P!)wO!{0jO!R'ri!c'ri_'ri'W'ri~O!R&tO!c'qi~Ox$uO!T$vO#V0lO']$bO~O#WraQraZra_rajra!ara!bra!dra!jra#[ra#]ra#^ra#_ra#`ra#ara#bra#cra#era#gra#ira#jra'Wra'fra'pra!cra!Ora!Tranra%Qra!]ra~P#7pO#W$^aQ$^aZ$^a_$^aj$^av$^a!a$^a!b$^a!d$^a!j$^a#[$^a#]$^a#^$^a#_$^a#`$^a#a$^a#b$^a#c$^a#e$^a#g$^a#i$^a#j$^a'W$^a'f$^a'p$^a!c$^a!O$^a!T$^an$^a%Q$^a!]$^a~P#8fO#W$`aQ$`aZ$`a_$`aj$`av$`a!a$`a!b$`a!d$`a!j$`a#[$`a#]$`a#^$`a#_$`a#`$`a#a$`a#b$`a#c$`a#e$`a#g$`a#i$`a#j$`a'W$`a'f$`a'p$`a!c$`a!O$`a!T$`an$`a%Q$`a!]$`a~P#9XO#W$naQ$naZ$na_$naj$nav$na!R$na!a$na!b$na!d$na!j$na#[$na#]$na#^$na#_$na#`$na#a$na#b$na#c$na#e$na#g$na#i$na#j$na'W$na'f$na'p$na!c$na!O$na!T$na!{$nan$na%Q$na!]$na~P!BpO_#Oq!R#Oq'W#Oq!O#Oq!c#Oqn#Oq!T#Oq%Q#Oq!]#Oq~P!)wO!R&kX'a&kX~PJjO!R,_O'a'ma~O!Q0tO!R&lX!c&lX~P){O!R,bO!c'na~O!R,bO!c'na~P!)wO#m!fa!S!fa~PCfO#m!^a!R!^a!S!^a~P#*XO!T1XO#x^O$P1YO~O!S1^O~On1_O~P!BpO_$Yq!R$Yq'W$Yq!O$Yq!c$Yqn$Yq!T$Yq%Q$Yq!]$Yq~P!)wO!O1`O~O],yOk,yO~Ou(SOx(TO'x(XOP$xi'w$xi!R$xi!{$xi~O'a$xi#m$xi~P$.POu(SOx(TOP$zi'w$zi'x$zi!R$zi!{$zi~O'a$zi#m$zi~P$.rO'p#[O~P!BpO!Q1cO']$bO!R&tX!c&tX~O!R-RO!c'}a~O!R-RO!]!wO!c'}a~O!R-RO!]!wO'p&oO!c'}a~O'a$gi!R$gi!{$gi#m$gi~P!#{O!Q1kO'](eO!O&vX!R&vX~P!$jO!R-ZO!O(Oa~O!R-ZO!O(Oa~P!BpO!]!wO~O!]!wO#c1sO~Oj1vO!]!wO'p&oO~O!R'di'a'di~P!#{O!{1yO!R'di'a'di~P!#{O!c1|O~O_$Zq!R$Zq'W$Zq!O$Zq!c$Zqn$Zq!T$Zq%Q$Zq!]$Zq~P!)wO!R2QO!T(PX~P!BpO!T&dO%Q2TO~O!T&dO%Q2TO~P!BpO!T$eX$u[X_$eX!R$eX'W$eX~P!!rO$u2XOPgXugXxgX!TgX'wgX'xgX_gX!RgX'WgX~O$u2XO~O]2_O%R2`O'])iO!R'PX!S'PX~O!R.^O!S(Va~OZ2dO~O^2eO~O]2hO~OP2jO!T&dO!o2iO%Q2TO~O_$^O'W$^O~P!BpO!T#zO~P!BpO!R2oO!{2qO!S(SX~O!S2rO~Ox;oO!W2{O!X2tO!Y2tO!r2zO!s2yO!t2yO!x2xO'^$dO'g(jO'o+iO~O!S2wO~P$7ZOP3SO!T.yO!o3RO%Q3QO~OP3SO!T.yO!o3RO%Q3QO'b$PO~O'](|O!R'OX!S'OX~O!R/VO!S(Ta~O]3^O'g3]O~O]3_O~O^3aO~O!c3dO~P){O_3fO~O_3fO~P){O#c3hO%r3iO~PFOO`/mO!S3mO&Q/lO~P`O!]3oO~O!R#Ti!S#Ti~P#*XO!{3qO!R#Ti!S#Ti~O!R!Vi!S!Vi~P#*XO_$^O!{3xO'W$^O~O_$^O!]!wO!{3xO'W$^O~O!X3|O!Y3|O'^$dO'g(jO'o+iO~O_$^O!]!wO!d$ZO!j3}O!{3xO'W$^O'b$PO'p&oO~O!W4OO~P$;xO!W4OO!u4RO!x4SO~P$;xO_$^O!]!wO!j3}O!{3xO'W$^O'p&oO~O!R'rq!c'rq_'rq'W'rq~P!)wO!R&tO!c'qq~O#W$xiQ$xiZ$xi_$xij$xiv$xi!a$xi!b$xi!d$xi!j$xi#[$xi#]$xi#^$xi#_$xi#`$xi#a$xi#b$xi#c$xi#e$xi#g$xi#i$xi#j$xi'W$xi'f$xi'p$xi!c$xi!O$xi!T$xin$xi%Q$xi!]$xi~P$.PO#W$ziQ$ziZ$zi_$zij$ziv$zi!a$zi!b$zi!d$zi!j$zi#[$zi#]$zi#^$zi#_$zi#`$zi#a$zi#b$zi#c$zi#e$zi#g$zi#i$zi#j$zi'W$zi'f$zi'p$zi!c$zi!O$zi!T$zin$zi%Q$zi!]$zi~P$.rO#W$giQ$giZ$gi_$gij$giv$gi!R$gi!a$gi!b$gi!d$gi!j$gi#[$gi#]$gi#^$gi#_$gi#`$gi#a$gi#b$gi#c$gi#e$gi#g$gi#i$gi#j$gi'W$gi'f$gi'p$gi!c$gi!O$gi!T$gi!{$gin$gi%Q$gi!]$gi~P!BpO!R&ka'a&ka~P!#{O!R&la!c&la~P!)wO!R,bO!c'ni~O#m#Oi!R#Oi!S#Oi~P#*XOQ#^Ou!{Ov!{Ox!|O!b!yO!d!zO!j#^O'fQOZ#Zij#Zi!a#Zi#]#Zi#^#Zi#_#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi#m#Zi'p#Zi'w#Zi'x#Zi!R#Zi!S#Zi~O#[#Zi~P$EiO#[9eO~P$EiOQ#^Ou!{Ov!{Ox!|O!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO'fQOZ#Zi!a#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi#m#Zi'p#Zi'w#Zi'x#Zi!R#Zi!S#Zi~Oj#Zi~P$GqOj9gO~P$GqOQ#^Oj9gOu!{Ov!{Ox!|O!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO#`9hO'fQO#e#Zi#g#Zi#i#Zi#j#Zi#m#Zi'p#Zi'w#Zi'x#Zi!R#Zi!S#Zi~OZ#Zi!a#Zi#a#Zi#b#Zi#c#Zi~P$IyOZ9rO!a9iO#a9iO#b9iO#c9iO~P$IyOQ#^OZ9rOj9gOu!{Ov!{Ox!|O!a9iO!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO#`9hO#a9iO#b9iO#c9iO#e9jO'fQO#g#Zi#i#Zi#j#Zi#m#Zi'p#Zi'x#Zi!R#Zi!S#Zi~O'w#Zi~P$L_O'w!}O~P$L_OQ#^OZ9rOj9gOu!{Ov!{Ox!|O!a9iO!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO#`9hO#a9iO#b9iO#c9iO#e9jO#g9lO'fQO'w!}O#i#Zi#j#Zi#m#Zi'p#Zi!R#Zi!S#Zi~O'x#Zi~P$NgO'x#OO~P$NgOQ#^OZ9rOj9gOu!{Ov!{Ox!|O!a9iO!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO#`9hO#a9iO#b9iO#c9iO#e9jO#g9lO#i9nO'fQO'w!}O'x#OO~O#j#Zi#m#Zi'p#Zi!R#Zi!S#Zi~P%!oO_#ky!R#ky'W#ky!O#ky!c#kyn#ky!T#ky%Q#ky!]#ky~P!)wOP;vOu(SOx(TO'w(VO'x(XO~OQ#ZiZ#Zij#Ziv#Zi!a#Zi!b#Zi!d#Zi!j#Zi#[#Zi#]#Zi#^#Zi#_#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi#m#Zi'f#Zi'p#Zi!R#Zi!S#Zi~P%%aO!b!yOP'eXu'eXx'eX'w'eX'x'eX!S'eX~OQ'eXZ'eXj'eXv'eX!a'eX!d'eX!j'eX#['eX#]'eX#^'eX#_'eX#`'eX#a'eX#b'eX#c'eX#e'eX#g'eX#i'eX#j'eX#m'eX'f'eX'p'eX!R'eX~P%'eO#m#ni!R#ni!S#ni~P#*XO!S4eO~O!R&sa!S&sa~P#*XO!]!wO'p&oO!R&ta!c&ta~O!R-RO!c'}i~O!R-RO!]!wO!c'}i~O'a$gq!R$gq!{$gq#m$gq~P!#{O!O&va!R&va~P!BpO!]4lO~O!R-ZO!O(Oi~P!BpO!R-ZO!O(Oi~O!O4pO~O!]!wO#c4uO~Oj4vO!]!wO'p&oO~O!O4xO~O'a$iq!R$iq!{$iq#m$iq~P!#{O_$Zy!R$Zy'W$Zy!O$Zy!c$Zyn$Zy!T$Zy%Q$Zy!]$Zy~P!)wO!R2QO!T(Pa~O!T&dO%Q4}O~O!T&dO%Q4}O~P!BpO_#Oy!R#Oy'W#Oy!O#Oy!c#Oyn#Oy!T#Oy%Q#Oy!]#Oy~P!)wOZ5QO~O]5SO'])iO~O!R.^O!S(Vi~O]5VO~O^5WO~O'g'TO!R&{X!S&{X~O!R2oO!S(Sa~O!S5eO~P$7ZOx;sO'g(jO'o+iO~O!W5hO!X5gO!Y5gO!x0_O'^$dO'g(jO'o+iO~O!s5iO!t5iO~P%0^O!X5gO!Y5gO'^$dO'g(jO'o+iO~O!T.yO~O!T.yO%Q5kO~O!T.yO%Q5kO~P!BpOP5pO!T.yO!o5oO%Q5kO~OZ5uO!R'Oa!S'Oa~O!R/VO!S(Ti~O]5xO~O!c5yO~O!c5zO~O!c5{O~O!c5{O~P){O_5}O~O!]6QO~O!c6RO~O!R'ui!S'ui~P#*XO_$^O'W$^O~P!)wO_$^O!{6WO'W$^O~O_$^O!]!wO!{6WO'W$^O~O!X6]O!Y6]O'^$dO'g(jO'o+iO~O_$^O!]!wO!j6^O!{6WO'W$^O'p&oO~O!d$ZO'b$PO~P%4xO!W6_O~P%4gO!R'ry!c'ry_'ry'W'ry~P!)wO#W$gqQ$gqZ$gq_$gqj$gqv$gq!R$gq!a$gq!b$gq!d$gq!j$gq#[$gq#]$gq#^$gq#_$gq#`$gq#a$gq#b$gq#c$gq#e$gq#g$gq#i$gq#j$gq'W$gq'f$gq'p$gq!c$gq!O$gq!T$gq!{$gqn$gq%Q$gq!]$gq~P!BpO#W$iqQ$iqZ$iq_$iqj$iqv$iq!R$iq!a$iq!b$iq!d$iq!j$iq#[$iq#]$iq#^$iq#_$iq#`$iq#a$iq#b$iq#c$iq#e$iq#g$iq#i$iq#j$iq'W$iq'f$iq'p$iq!c$iq!O$iq!T$iq!{$iqn$iq%Q$iq!]$iq~P!BpO!R&li!c&li~P!)wO#m#Oq!R#Oq!S#Oq~P#*XOu-tOv-tOx-uOPra'wra'xra!Sra~OQraZrajra!ara!bra!dra!jra#[ra#]ra#^ra#_ra#`ra#ara#bra#cra#era#gra#ira#jra#mra'fra'pra!Rra~P%;OOu(SOx(TOP$^a'w$^a'x$^a!S$^a~OQ$^aZ$^aj$^av$^a!a$^a!b$^a!d$^a!j$^a#[$^a#]$^a#^$^a#_$^a#`$^a#a$^a#b$^a#c$^a#e$^a#g$^a#i$^a#j$^a#m$^a'f$^a'p$^a!R$^a~P%=SOu(SOx(TOP$`a'w$`a'x$`a!S$`a~OQ$`aZ$`aj$`av$`a!a$`a!b$`a!d$`a!j$`a#[$`a#]$`a#^$`a#_$`a#`$`a#a$`a#b$`a#c$`a#e$`a#g$`a#i$`a#j$`a#m$`a'f$`a'p$`a!R$`a~P%?WOQ$naZ$naj$nav$na!a$na!b$na!d$na!j$na#[$na#]$na#^$na#_$na#`$na#a$na#b$na#c$na#e$na#g$na#i$na#j$na#m$na'f$na'p$na!R$na!S$na~P%%aO#m$Yq!R$Yq!S$Yq~P#*XO#m$Zq!R$Zq!S$Zq~P#*XO!S6hO~O#m6iO~P!#{O!]!wO!R&ti!c&ti~O!]!wO'p&oO!R&ti!c&ti~O!R-RO!c'}q~O!O&vi!R&vi~P!BpO!R-ZO!O(Oq~O!O6oO~P!BpO!O6oO~O!R'dy'a'dy~P!#{O!R&ya!T&ya~P!BpO!T$tq_$tq!R$tq'W$tq~P!BpOZ6vO~O!R.^O!S(Vq~O]6yO~O!T&dO%Q6zO~O!T&dO%Q6zO~P!BpO!{6{O!R&{a!S&{a~O!R2oO!S(Si~P#*XO!X7RO!Y7RO'^$dO'g(jO'o+iO~O!W7TO!x4SO~P%GXO!T.yO%Q7WO~O!T.yO%Q7WO~P!BpO]7_O'g7^O~O!R/VO!S(Tq~O!c7aO~O!c7aO~P){O!c7cO~O!c7dO~O!R#Ty!S#Ty~P#*XO_$^O!{7jO'W$^O~O_$^O!]!wO!{7jO'W$^O~O!X7mO!Y7mO'^$dO'g(jO'o+iO~O_$^O!]!wO!j7nO!{7jO'W$^O'p&oO~O#m#ky!R#ky!S#ky~P#*XOQ$giZ$gij$giv$gi!a$gi!b$gi!d$gi!j$gi#[$gi#]$gi#^$gi#_$gi#`$gi#a$gi#b$gi#c$gi#e$gi#g$gi#i$gi#j$gi#m$gi'f$gi'p$gi!R$gi!S$gi~P%%aOu(SOx(TO'x(XOP$xi'w$xi!S$xi~OQ$xiZ$xij$xiv$xi!a$xi!b$xi!d$xi!j$xi#[$xi#]$xi#^$xi#_$xi#`$xi#a$xi#b$xi#c$xi#e$xi#g$xi#i$xi#j$xi#m$xi'f$xi'p$xi!R$xi~P%LjOu(SOx(TOP$zi'w$zi'x$zi!S$zi~OQ$ziZ$zij$ziv$zi!a$zi!b$zi!d$zi!j$zi#[$zi#]$zi#^$zi#_$zi#`$zi#a$zi#b$zi#c$zi#e$zi#g$zi#i$zi#j$zi#m$zi'f$zi'p$zi!R$zi~P%NnO#m$Zy!R$Zy!S$Zy~P#*XO#m#Oy!R#Oy!S#Oy~P#*XO!]!wO!R&tq!c&tq~O!R-RO!c'}y~O!O&vq!R&vq~P!BpO!O7tO~P!BpO!R.^O!S(Vy~O!R2oO!S(Sq~O!X8QO!Y8QO'^$dO'g(jO'o+iO~O!T.yO%Q8TO~O!T.yO%Q8TO~P!BpO!c8WO~O_$^O!{8]O'W$^O~O_$^O!]!wO!{8]O'W$^O~OQ$gqZ$gqj$gqv$gq!a$gq!b$gq!d$gq!j$gq#[$gq#]$gq#^$gq#_$gq#`$gq#a$gq#b$gq#c$gq#e$gq#g$gq#i$gq#j$gq#m$gq'f$gq'p$gq!R$gq!S$gq~P%%aOQ$iqZ$iqj$iqv$iq!a$iq!b$iq!d$iq!j$iq#[$iq#]$iq#^$iq#_$iq#`$iq#a$iq#b$iq#c$iq#e$iq#g$iq#i$iq#j$iq#m$iq'f$iq'p$iq!R$iq!S$iq~P%%aO'a$|!Z!R$|!Z!{$|!Z#m$|!Z~P!#{O!R&{q!S&{q~P#*XO_$^O!{8oO'W$^O~O#W$|!ZQ$|!ZZ$|!Z_$|!Zj$|!Zv$|!Z!R$|!Z!a$|!Z!b$|!Z!d$|!Z!j$|!Z#[$|!Z#]$|!Z#^$|!Z#_$|!Z#`$|!Z#a$|!Z#b$|!Z#c$|!Z#e$|!Z#g$|!Z#i$|!Z#j$|!Z'W$|!Z'f$|!Z'p$|!Z!c$|!Z!O$|!Z!T$|!Z!{$|!Zn$|!Z%Q$|!Z!]$|!Z~P!BpOP;uOu(SOx(TO'w(VO'x(XO~O!S!za!W!za!X!za!Y!za!r!za!s!za!t!za!x!za'^!za'g!za'o!za~P&,_O!W'eX!X'eX!Y'eX!r'eX!s'eX!t'eX!x'eX'^'eX'g'eX'o'eX~P%'eOQ$|!ZZ$|!Zj$|!Zv$|!Z!a$|!Z!b$|!Z!d$|!Z!j$|!Z#[$|!Z#]$|!Z#^$|!Z#_$|!Z#`$|!Z#a$|!Z#b$|!Z#c$|!Z#e$|!Z#g$|!Z#i$|!Z#j$|!Z#m$|!Z'f$|!Z'p$|!Z!R$|!Z!S$|!Z~P%%aO!Wra!Xra!Yra!rra!sra!tra!xra'^ra'gra'ora~P%;OO!W$^a!X$^a!Y$^a!r$^a!s$^a!t$^a!x$^a'^$^a'g$^a'o$^a~P%=SO!W$`a!X$`a!Y$`a!r$`a!s$`a!t$`a!x$`a'^$`a'g$`a'o$`a~P%?WO!S$na!W$na!X$na!Y$na!r$na!s$na!t$na!x$na'^$na'g$na'o$na~P&,_O!W$xi!X$xi!Y$xi!r$xi!s$xi!t$xi!x$xi'^$xi'g$xi'o$xi~P%LjO!W$zi!X$zi!Y$zi!r$zi!s$zi!t$zi!x$zi'^$zi'g$zi'o$zi~P%NnO!S$gi!W$gi!X$gi!Y$gi!r$gi!s$gi!t$gi!x$gi'^$gi'g$gi'o$gi~P&,_O!S$gq!W$gq!X$gq!Y$gq!r$gq!s$gq!t$gq!x$gq'^$gq'g$gq'o$gq~P&,_O!S$iq!W$iq!X$iq!Y$iq!r$iq!s$iq!t$iq!x$iq'^$iq'g$iq'o$iq~P&,_O!S$|!Z!W$|!Z!X$|!Z!Y$|!Z!r$|!Z!s$|!Z!t$|!Z!x$|!Z'^$|!Z'g$|!Z'o$|!Z~P&,_On'hX~P.jOn[X!O[X!c[X%r[X!T[X%Q[X!][X~P$zO!]dX!c[X!cdX'pdX~P;dOQ9^OR9^O]cOb;`Oc!jOhcOj9^OkcOlcOq9^Os9^OxRO{cO|cO}cO!TSO!_9`O!dUO!g9^O!h9^O!i9^O!j9^O!k9^O!n!iO#t!lO#x^O']'cO'fQO'oYO'|;^O~O]#qOh$QOj#rOk#qOl#qOq$ROs9uOx#yO!T#zO!_;fO!d#vO#V:OO#t$VO$_9xO$a9{O$d$WO']&{O'b$PO'f#sO~O!R9pO!S$]a~O]#qOh$QOj#rOk#qOl#qOq$ROs9vOx#yO!T#zO!_;gO!d#vO#V:PO#t$VO$_9yO$a9|O$d$WO']&{O'b$PO'f#sO~O#d'jO~P&<WO!S[X!SdX~P;dO!]9dO~O#W9cO~O!]!wO#W9cO~O!{9sO~O#c9iO~O!{:QO!R'uX!S'uX~O!{9sO!R'sX!S'sX~O#W:RO~O'a:TO~P!#{O#W:[O~O#W:]O~O#W:^O~O!]!wO#W:_O~O!]!wO#W:RO~O#m:`O~P#*XO#W:aO~O#W:bO~O#W:cO~O#W:dO~O#W:eO~O#W:fO~O#W:gO~O#W:hO~O!O:iO~O#m:jO~P!#{O#m:kO~P!#{O#m:lO~P!#{O!O:mO~P!BpO!O:mO~O!O:nO~P!BpO!]!wO#c;lO~O!]!wO#c;nO~O#x~!b!r!t!u#U#V'|$_$a$d$u%P%Q%R%X%Z%^%_%a%c~UT#x'|#]}'Y'Z#z'Y']'g~",
159
- goto: "#Kk(ZPPPPPPPP([P(lP*`PPPP-zPP.a3s7o8SP8SPPP8SP:U8SP8SP:YPP:`P:t?VPPPP?ZPPPP?ZA{PPPBRDdP?ZPFwPPPPHp?ZPPPPPJi?ZPPMjNgPPPPNk!!TP!!]!#^PNg?Z?Z!&n!)i!.[!.[!1kPPP!1r!4h?ZPPPPPPPPPP!7_P!8pPP?Z!9}P?ZP?Z?Z?Z?ZP?Z!;dPP!>]P!AQ!AY!A^!A^P!>YP!Ab!AbP!DVP!DZ?Z?Z!Da!GT8SP8SP8S8SP!HW8S8S!Jf8S!M_8S# g8S8S#!T#$c#$c#$g#$c#$oP#$cP8S#%k8S#'X8S8S-zPPP#(yPP#)c#)cP#)cP#)x#)cPP#*OP#)uP#)u#*b!!X#)u#+P#+V#+Y([#+]([P#+d#+d#+dP([P([P([P([PP([P#+j#+mP#+m([P#+qP#+tP([P([P([P([P([P([([#+z#,U#,[#,b#,p#,v#,|#-W#-^#-m#-s#.R#.X#._#.m#/S#0z#1Y#1`#1f#1l#1r#1|#2S#2Y#2d#2v#2|PPPPPPPP#3SPP#3v#7OPP#8f#8m#8uPP#>a#@t#Fp#Fs#Fv#GR#GUPP#GX#G]#Gz#Hq#Hu#IZPP#I_#Ie#IiP#Il#Ip#Is#Jc#Jy#KO#KR#KU#K[#K_#Kc#KgmhOSj}!n$]%c%f%g%i*o*t/g/jQ$imQ$ppQ%ZyS&V!b+`Q&k!jS(l#z(qQ)g$jQ)t$rQ*`%TQ+f&^S+k&d+mQ+}&lQ-k(sQ/U*aY0Z+o+p+q+r+sS2t.y2vU3|0[0^0aU5g2y2z2{S6]4O4RS7R5h5iQ7m6_R8Q7T$p[ORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8o!j'e#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aQ(}$SQ)l$lQ*b%WQ*i%`Q,X9tQ.W)aQ.c)mQ/^*gQ2_.^Q3Z/VQ4^9vQ5S2`R8{9upeOSjy}!n$]%Y%c%f%g%i*o*t/g/jR*d%[&WVOSTjkn}!S!W!k!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k$]$n%[%_%`%c%e%f%g%i%m%z&S&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;`;a[!cRU!]!`%x&WQ$clQ$hmS$mp$rv$wrs!r!u$Z$u&`&t&w)x)y)z*m+Y+h,S,U/o0lQ%PwQ&h!iQ&j!jS(_#v(cS)f$i$jQ)j$lQ)w$tQ*Z%RQ*_%TS+|&k&lQ-V(`Q.[)gQ.b)mQ.d)nQ.g)rQ/P*[S/T*`*aQ0h+}Q1b-RQ2^.^Q2b.aQ2g.iQ3Y/UQ4i1cQ5R2`Q5U2dQ6u5QR7w6vx#xa!y$T$U$Y(W(Y(b(w(x,_-Y-w1a1y6i;^;i;j;k!Y$fm!j$h$i$j&U&j&k&l(k)f)g+]+j+|+}-d.[0Q0W0]0h1u3{4Q6Z7k8^Q)`$cQ*P$|Q*S$}Q*^%TQ.k)wQ/O*ZU/S*_*`*aQ3T/PS3X/T/UQ5b2sQ5t3YS7P5c5fS8O7Q7SQ8f8PQ8u8g#[;b!w#d#v#y&g'}(Z(h)])_)a*O*R+y-Z-].R.T.p.s.{.}1k1s2Q2T2X2j3Q3S4l4u4}5k5p6z7W8T9w9z9}:U:X:[:a:d:j;l;n;t;u;vd;c9d9x9{:O:V:Y:]:b:e:ke;d9r9y9|:P:W:Z:^:c:f:lW#}a$P(y;^S$|t%YQ$}uQ%OvR)}$z%P#|a!w!y#d#v#y$T$U$Y&g'}(W(Y(Z(b(h(w(x)])_)a*O*R+y,_-Y-Z-]-w.R.T.p.s.{.}1a1k1s1y2Q2T2X2j3Q3S4l4u4}5k5p6i6z7W8T9d9r9w9x9y9z9{9|9}:O:P:U:V:W:X:Y:Z:[:]:^:a:b:c:d:e:f:j:k:l;^;i;j;k;l;n;t;u;vT(O#s(PX)O$S9t9u9vU&Z!b$v+cQ'U!{Q)q$oQ.t*TQ1z-tR5^2o&^cORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;a$]#aZ!_!o$a%w%}&y'Q'W'X'Y'Z'[']'^'_'`'a'b'd'g'k'u)p+R+^+g,O,^,d,g,i,w-x/v/y0i0s0w0x0y0z0{0|0}1O1P1Q1R1S1T1W1]2O2[3s3v4W4[4]4b4c5`6S6V6b6f6g7g7z8Z8m8y9_:|T!XQ!Y&_cORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aQ&X!bR/|+`Y&R!b&V&^+`+fS(k#z(qS+j&d+mS-d(l(sQ-e(mQ-l(tQ.v*VU0W+k+o+pU0]+q+r+sS0b+t2xQ1u-kQ1w-mQ1x-nS2s.y2vU3{0Z0[0^Q4P0_Q4Q0aS5c2t2{S5f2y2zU6Z3|4O4RQ6`4SS7Q5g5hQ7S5iS7k6]6_S8P7R7TQ8^7mQ8g8QQ;h;oR;m;slhOSj}!n$]%c%f%g%i*o*t/g/jQ%k!QS&x!v9cQ)d$gQ*X%PQ*Y%QQ+z&iS,]&}:RS-y)V:_Q.Y)eQ.x*WQ/n*vQ/p*wQ/x+ZQ0`+qQ0f+{S2P-z:gQ2Y.ZS2].]:hQ3r/zQ3u0RQ4U0gQ5P2ZQ6T3tQ6X3zQ6a4VQ7e6RQ7h6YQ8Y7iQ8l8[R8x8n$W#`Z!_!o%w%}&y'Q'W'X'Y'Z'[']'^'_'`'a'b'd'g'k'u)p+R+^+g,O,^,d,g,w-x/v/y0i0s0w0x0y0z0{0|0}1O1P1Q1R1S1T1W1]2O2[3s3v4W4[4]4b4c5`6S6V6b6f6g7g7z8Z8m8y9_:|W(v#{&|1V8qT)Z$a,i$W#_Z!_!o%w%}&y'Q'W'X'Y'Z'[']'^'_'`'a'b'd'g'k'u)p+R+^+g,O,^,d,g,w-x/v/y0i0s0w0x0y0z0{0|0}1O1P1Q1R1S1T1W1]2O2[3s3v4W4[4]4b4c5`6S6V6b6f6g7g7z8Z8m8y9_:|Q'f#`S)Y$a,iR-{)Z&^cORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aQ%f{Q%g|Q%i!OQ%j!PR/f*rQ&e!iQ)[$cQ+w&hS.Q)`)wS0c+u+vW2S-}.O.P.kS4T0d0eU4|2U2V2WU6s4{5Y5ZQ7v6tR8b7yT+l&d+mS+j&d+mU0W+k+o+pU0]+q+r+sS0b+t2xS2s.y2vU3{0Z0[0^Q4P0_Q4Q0aS5c2t2{S5f2y2zU6Z3|4O4RQ6`4SS7Q5g5hQ7S5iS7k6]6_S8P7R7TQ8^7mR8g8QS+l&d+mT2u.y2vS&r!q/dQ-U(_Q-b(kS0V+j2sQ1g-VS1p-c-lU3}0]0b5fQ4h1bS4s1v1xU6^4P4Q7SQ6k4iQ6r4vR7n6`Q!xXS&q!q/dQ)W$[Q)b$eQ)h$kQ,Q&rQ-T(_Q-a(kQ-f(nQ.X)cQ/Q*]S0U+j2sS1f-U-VS1o-b-lQ1r-eQ1t-gQ3V/RW3y0V0]0b5fQ4g1bQ4k1gS4o1p1xQ4t1wQ5r3WW6[3}4P4Q7SS6j4h4iS6n4p:iQ6p4sQ6}5aQ7[5sS7l6^6`Q7r6kS7s6o:mQ7u6rQ7|7OQ8V7]Q8_7nS8a7t:nQ8d7}Q8s8eQ9Q8tQ9X9RQ:u:pQ;T:zQ;U:{Q;V;hR;[;m$rWORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%`%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8oS!xn!k!j:o#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aR:u;`$rXORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%`%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8oQ$[b!Y$em!j$h$i$j&U&j&k&l(k)f)g+]+j+|+}-d.[0Q0W0]0h1u3{4Q6Z7k8^S$kn!kQ)c$fQ*]%TW/R*^*_*`*aU3W/S/T/UQ5a2sS5s3X3YU7O5b5c5fQ7]5tU7}7P7Q7SS8e8O8PS8t8f8gQ9R8u!j:p#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aQ:z;_R:{;`$f]OSTjk}!S!W!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%c%e%f%g%i%m%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8oY!hRU!]!`%xv$wrs!r!u$Z$u&`&t&w)x)y)z*m+Y+h,S,U/o0lQ*j%`!h:q#]#k'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aR:t&WS&[!b$vR0O+c$p[ORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8o!j'e#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aR*i%`$roORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%`%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8oQ'U!{!k:r#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;a!h#VZ!_$a%w%}&y'Q'_'`'a'b'g'k)p+R+g,O,^,d,w-x0i0s1T2O2[3v4W4[6V7g8Z8m8y9_!R9k'd'u+^,i/v/y0w1P1Q1R1S1W1]3s4]4b4c5`6S6b6f6g7z:|!d#XZ!_$a%w%}&y'Q'a'b'g'k)p+R+g,O,^,d,w-x0i0s1T2O2[3v4W4[6V7g8Z8m8y9_}9m'd'u+^,i/v/y0w1R1S1W1]3s4]4b4c5`6S6b6f6g7z:|!`#]Z!_$a%w%}&y'Q'g'k)p+R+g,O,^,d,w-x0i0s1T2O2[3v4W4[6V7g8Z8m8y9_Q1a-Px;a'd'u+^,i/v/y0w1W1]3s4]4b4c5`6S6b6f6g7z:|Q;i;pQ;j;qR;k;r&^cORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aS#l`#mR1Y,l&e_ORSTU`jk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k#m$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,l,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aS#g^#nT'n#i'rT#h^#nT'p#i'r&e`ORSTU`jk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k#m$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,l,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aT#l`#mQ#o`R'y#m$rbORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%`%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8o!k;_#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;a#RdOSUj}!S!W!n!|#k$]%[%_%`%c%e%f%g%i%m&S&f'w)^*k*o*t+x,m-u.S.|/_/`/a/c/g/j/l1X2i3R3f3h3i5o5}x#{a!y$T$U$Y(W(Y(b(w(x,_-Y-w1a1y6i;^;i;j;k#[&|!w#d#v#y&g'}(Z(h)])_)a*O*R+y-Z-].R.T.p.s.{.}1k1s2Q2T2X2j3Q3S4l4u4}5k5p6z7W8T9w9z9}:U:X:[:a:d:j;l;n;t;u;vQ)S$WQ,x(Sd1V9r9y9|:P:W:Z:^:c:f:le8q9d9x9{:O:V:Y:]:b:e:kx#wa!y$T$U$Y(W(Y(b(w(x,_-Y-w1a1y6i;^;i;j;kQ(d#xS(n#z(qQ)T$XQ-g(o#[:w!w#d#v#y&g'}(Z(h)])_)a*O*R+y-Z-].R.T.p.s.{.}1k1s2Q2T2X2j3Q3S4l4u4}5k5p6z7W8T9w9z9}:U:X:[:a:d:j;l;n;t;u;vd:x9d9x9{:O:V:Y:]:b:e:kd:y9r9y9|:P:W:Z:^:c:f:lQ:};bQ;O;cQ;P;dQ;Q;eQ;R;fR;S;gx#{a!y$T$U$Y(W(Y(b(w(x,_-Y-w1a1y6i;^;i;j;k#[&|!w#d#v#y&g'}(Z(h)])_)a*O*R+y-Z-].R.T.p.s.{.}1k1s2Q2T2X2j3Q3S4l4u4}5k5p6z7W8T9w9z9}:U:X:[:a:d:j;l;n;t;u;vd1V9r9y9|:P:W:Z:^:c:f:le8q9d9x9{:O:V:Y:]:b:e:klfOSj}!n$]%c%f%g%i*o*t/g/jQ(g#yQ*}%pQ+O%rR1j-Z%O#|a!w!y#d#v#y$T$U$Y&g'}(W(Y(Z(b(h(w(x)])_)a*O*R+y,_-Y-Z-]-w.R.T.p.s.{.}1a1k1s1y2Q2T2X2j3Q3S4l4u4}5k5p6i6z7W8T9d9r9w9x9y9z9{9|9}:O:P:U:V:W:X:Y:Z:[:]:^:a:b:c:d:e:f:j:k:l;^;i;j;k;l;n;t;u;vQ*Q$}Q.r*SQ2m.qR5]2nT(p#z(qS(p#z(qT2u.y2vQ)b$eQ-f(nQ.X)cQ/Q*]Q3V/RQ5r3WQ6}5aQ7[5sQ7|7OQ8V7]Q8d7}Q8s8eQ9Q8tR9X9Rp(W#t'O)U-X-o-p0q1h1}4f4w7q:v;W;X;Y!n:U&z'i(^(f+v,[,t-P-^-|.P.o.q0e0p1i1m2W2l2n3O4Y4Z4m4q4y5O5Z5n6m6q7Y8`;Z;];p;q;r[:V8p9O9V9Y9Z9]]:W1U4a6c7o7p8zr(Y#t'O)U,}-X-o-p0q1h1}4f4w7q:v;W;X;Y!p:X&z'i(^(f+v,[,t-P-^-|.P.o.q0e0n0p1i1m2W2l2n3O4Y4Z4m4q4y5O5Z5n6m6q7Y8`;Z;];p;q;r^:Y8p9O9T9V9Y9Z9]_:Z1U4a6c6d7o7p8zpeOSjy}!n$]%Y%c%f%g%i*o*t/g/jQ%VxR*k%`peOSjy}!n$]%Y%c%f%g%i*o*t/g/jR%VxQ*U%OR.n)}qeOSjy}!n$]%Y%c%f%g%i*o*t/g/jQ.z*ZS3P/O/PW5j2|2}3O3TU7V5l5m5nU8R7U7X7YQ8h8SR8v8iQ%^yR*e%YR3^/XR7_5uS$mp$rR.d)nQ%czR*o%dR*u%jT/h*t/jR*y%kQ*x%kR/q*yQjOQ!nST$`j!nQ(P#sR,u(PQ!YQR%u!YQ!^RU%{!^%|+UQ%|!_R+U%}Q+a&XR/}+aQ,`'OR0r,`Q,c'QS0u,c0vR0v,dQ+m&dR0X+mS!eR$uU&a!e&b+VQ&b!fR+V&OQ+d&[R0P+dQ&u!sQ,R&sU,V&u,R0mR0m,WQ'r#iR,n'rQ#m`R'x#mQ#cZU'h#c+Q9qQ+Q9_R9q'uQ-S(_W1d-S1e4j6lU1e-T-U-VS4j1f1gR6l4k$k(U#t&z'O'i(^(f)P)Q)U+v,Y,Z,[,t,}-O-P-X-^-o-p-|.P.o.q0e0n0o0p0q1U1h1i1m1}2W2l2n3O4Y4Z4_4`4a4f4m4q4w4y5O5Z5n6c6d6e6m6q7Y7o7p7q8`8p8z8|8}9O9T9U9V9Y9Z9]:v;W;X;Y;Z;];p;q;rQ-[(fU1l-[1n4nQ1n-^R4n1mQ(q#zR-i(qQ(z$OR-r(zQ2R-|R4z2RQ){$xR.m){Q2p.tS5_2p6|R6|5`Q*W%PR.w*WQ2v.yR5d2vQ/W*bS3[/W5vR5v3^Q._)jW2a._2c5T6wQ2c.bQ5T2bR6w5UQ)o$mR.e)oQ/j*tR3l/jWiOSj!nQ%h}Q)X$]Q*n%cQ*p%fQ*q%gQ*s%iQ/e*oS/h*t/jR3k/gQ$_gQ%l!RQ%o!TQ%q!UQ%s!VQ)v$sQ)|$yQ*d%^Q*{%nQ-h(pS/Z*e*hQ/r*zQ/s*}Q/t+OS0S+j2sQ2f.hQ2k.oQ3U/QQ3`/]Q3j/fY3w0U0V0]0b5fQ5X2hQ5[2lQ5q3VQ5w3_[6U3v3y3}4P4Q7SQ6x5VQ7Z5rQ7`5xW7f6V6[6^6`Q7x6yQ7{6}Q8U7[U8X7g7l7nQ8c7|Q8j8VS8k8Z8_Q8r8dQ8w8mQ9P8sQ9S8yQ9W9QR9[9XQ$gmQ&i!jU)e$h$i$jQ+Z&UU+{&j&k&lQ-`(kS.Z)f)gQ/z+]Q0R+jS0g+|+}Q1q-dQ2Z.[Q3t0QS3z0W0]Q4V0hQ4r1uS6Y3{4QQ7i6ZQ8[7kR8n8^S#ua;^R({$PU$Oa$P;^R-q(yQ#taS&z!w)aQ'O!yQ'i#dQ(^#vQ(f#yQ)P$TQ)Q$UQ)U$YQ+v&gQ,Y9wQ,Z9zQ,[9}Q,t'}Q,}(WQ-O(YQ-P(ZQ-X(bQ-^(hQ-o(wQ-p(xd-|)].R.{2T3Q4}5k6z7W8TQ.P)_Q.o*OQ.q*RQ0e+yQ0n:UQ0o:XQ0p:[Q0q,_Q1U9rQ1h-YQ1i-ZQ1m-]Q1}-wQ2W.TQ2l.pQ2n.sQ3O.}Q4Y:aQ4Z:dQ4_9yQ4`9|Q4a:PQ4f1aQ4m1kQ4q1sQ4w1yQ4y2QQ5O2XQ5Z2jQ5n3SQ6c:^Q6d:WQ6e:ZQ6m4lQ6q4uQ7Y5pQ7o:cQ7p:fQ7q6iQ8`:jQ8p9dQ8z:lQ8|9xQ8}9{Q9O:OQ9T:VQ9U:YQ9V:]Q9Y:bQ9Z:eQ9]:kQ:v;^Q;W;iQ;X;jQ;Y;kQ;Z;lQ;];nQ;p;tQ;q;uR;r;vlgOSj}!n$]%c%f%g%i*o*t/g/jS!pU%eQ%n!SQ%t!WQ'V!|Q'v#kS*h%[%_Q*l%`Q*z%mQ+W&SQ+u&fQ,r'wQ.O)^Q/b*kQ0d+xQ1[,mQ1{-uQ2V.SQ2}.|Q3b/_Q3c/`Q3e/aQ3g/cQ3n/lQ4d1XQ5Y2iQ5m3RQ5|3fQ6O3hQ6P3iQ7X5oR7b5}!vZOSUj}!S!n!|$]%[%_%`%c%e%f%g%i%m&S&f)^*k*o*t+x-u.S.|/_/`/a/c/g/j/l2i3R3f3h3i5o5}Q!_RQ!oTQ$akS%w!]%zQ%}!`Q&y!vQ'Q!zQ'W#PQ'X#QQ'Y#RQ'Z#SQ'[#TQ']#UQ'^#VQ'_#WQ'`#XQ'a#YQ'b#ZQ'd#]Q'g#bQ'k#eW'u#k'w,m1XQ)p$nS+R%x+TS+^&W/{Q+g&_Q,O&pQ,^&}Q,d'RQ,g9^Q,i9`Q,w(RQ-x)VQ/v+XQ/y+[Q0i,PQ0s,bQ0w9cQ0x9eQ0y9fQ0z9gQ0{9hQ0|9iQ0}9jQ1O9kQ1P9lQ1Q9mQ1R9nQ1S9oQ1T,hQ1W9sQ1]9pQ2O-zQ2[.]Q3s:QQ3v0TQ4W0jQ4[0tQ4]:RQ4b:TQ4c:_Q5`2qQ6S3qQ6V3xQ6b:`Q6f:gQ6g:hQ7g6WQ7z6{Q8Z7jQ8m8]Q8y8oQ9_!WR:|;aR!aRR&Y!bS&U!b+`S+]&V&^R0Q+fR'P!yR'S!zT!tU$ZS!sU$ZU$xrs*mS&s!r!uQ,T&tQ,W&wQ.l)zS0k,S,UR4X0l`!dR!]!`$u%x&`)x+hh!qUrs!r!u$Z&t&w)z,S,U0lQ/d*mQ/w+YQ3p/oT:s&W)yT!gR$uS!fR$uS%y!]&`S&O!`)xS+S%x+hT+_&W)yT&]!b$vQ#i^R'{#nT'q#i'rR1Z,lT(a#v(cR(i#yQ-})]Q2U.RQ2|.{Q4{2TQ5l3QQ6t4}Q7U5kQ7y6zQ8S7WR8i8TlhOSj}!n$]%c%f%g%i*o*t/g/jQ%]yR*d%YV$yrs*mR.u*TR*c%WQ$qpR)u$rR)k$lT%az%dT%bz%dT/i*t/j",
160
- nodeNames: "⚠ extends ArithOp ArithOp InterpolationStart LineComment BlockComment Script ExportDeclaration export Star as VariableName String from ; default FunctionDeclaration async function VariableDefinition TypeParamList TypeDefinition ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation VoidType void TypeofType typeof MemberExpression . ?. PropertyName [ TemplateString Interpolation null super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewExpression new TypeArgList CompareOp < ) ( ArgList UnaryExpression await yield delete LogicOp BitOp ParenthesizedExpression ClassExpression class extends ClassBody MethodDeclaration Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression PrivatePropertyName BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof in const CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXStartTag JSXSelfClosingTag JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast ArrowFunction TypeParamList SequenceExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature CallSignature TypePredicate is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody MethodDeclaration AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement",
161
- maxTerm: 332,
162
- context: trackNewline,
163
- nodeProps: [
164
- ["closedBy", 4, "InterpolationEnd", 40, "]", 51, "}", 66, ")", 132, "JSXSelfCloseEndTag JSXEndTag", 146, "JSXEndTag"],
165
- ["group", -26, 8, 15, 17, 58, 184, 188, 191, 192, 194, 197, 200, 211, 213, 219, 221, 223, 225, 228, 234, 240, 242, 244, 246, 248, 250, 251, "Statement", -30, 12, 13, 24, 27, 28, 41, 43, 44, 45, 47, 52, 60, 68, 74, 75, 91, 92, 101, 103, 119, 122, 124, 125, 126, 127, 129, 130, 148, 149, 151, "Expression", -22, 23, 25, 29, 32, 34, 152, 154, 156, 157, 159, 160, 161, 163, 164, 165, 167, 168, 169, 178, 180, 182, 183, "Type", -3, 79, 85, 90, "ClassItem"],
166
- ["openedBy", 30, "InterpolationStart", 46, "[", 50, "{", 65, "(", 131, "JSXStartTag", 141, "JSXStartTag JSXStartCloseTag"]
167
- ],
168
- propSources: [jsHighlight],
169
- skippedNodes: [0, 5, 6],
170
- repeatNodeCount: 28,
171
- tokenData: "!C}~R!`OX%TXY%cYZ'RZ[%c[]%T]^'R^p%Tpq%cqr'crs(kst0htu2`uv4pvw5ewx6cxy<yyz=Zz{=k{|>k|}?O}!O>k!O!P?`!P!QCl!Q!R!0[!R![!1q![!]!7s!]!^!8V!^!_!8g!_!`!9d!`!a!:[!a!b!<R!b!c%T!c!}2`!}#O!=d#O#P%T#P#Q!=t#Q#R!>U#R#S2`#S#T!>i#T#o2`#o#p!>y#p#q!?O#q#r!?f#r#s!?x#s$f%T$f$g%c$g#BY2`#BY#BZ!@Y#BZ$IS2`$IS$I_!@Y$I_$I|2`$I|$I}!Bq$I}$JO!Bq$JO$JT2`$JT$JU!@Y$JU$KV2`$KV$KW!@Y$KW&FU2`&FU&FV!@Y&FV?HT2`?HT?HU!@Y?HU~2`W%YR$UWO!^%T!_#o%T#p~%T7Z%jg$UW'Y7ROX%TXY%cYZ%TZ[%c[p%Tpq%cq!^%T!_#o%T#p$f%T$f$g%c$g#BY%T#BY#BZ%c#BZ$IS%T$IS$I_%c$I_$JT%T$JT$JU%c$JU$KV%T$KV$KW%c$KW&FU%T&FU&FV%c&FV?HT%T?HT?HU%c?HU~%T7Z'YR$UW'Z7RO!^%T!_#o%T#p~%T$T'jS$UW!j#{O!^%T!_!`'v!`#o%T#p~%T$O'}S#e#v$UWO!^%T!_!`(Z!`#o%T#p~%T$O(bR#e#v$UWO!^%T!_#o%T#p~%T)X(rZ$UW]#eOY(kYZ)eZr(krs*rs!^(k!^!_+U!_#O(k#O#P-b#P#o(k#o#p+U#p~(k&r)jV$UWOr)ers*Ps!^)e!^!_*a!_#o)e#o#p*a#p~)e&r*WR$P&j$UWO!^%T!_#o%T#p~%T&j*dROr*ars*ms~*a&j*rO$P&j)X*{R$P&j$UW]#eO!^%T!_#o%T#p~%T)P+ZV]#eOY+UYZ*aZr+Urs+ps#O+U#O#P+w#P~+U)P+wO$P&j]#e)P+zROr+Urs,Ts~+U)P,[U$P&j]#eOY,nZr,nrs-Vs#O,n#O#P-[#P~,n#e,sU]#eOY,nZr,nrs-Vs#O,n#O#P-[#P~,n#e-[O]#e#e-_PO~,n)X-gV$UWOr(krs-|s!^(k!^!_+U!_#o(k#o#p+U#p~(k)X.VZ$P&j$UW]#eOY.xYZ%TZr.xrs/rs!^.x!^!_,n!_#O.x#O#P0S#P#o.x#o#p,n#p~.x#m/PZ$UW]#eOY.xYZ%TZr.xrs/rs!^.x!^!_,n!_#O.x#O#P0S#P#o.x#o#p,n#p~.x#m/yR$UW]#eO!^%T!_#o%T#p~%T#m0XT$UWO!^.x!^!_,n!_#o.x#o#p,n#p~.x3]0mZ$UWOt%Ttu1`u!^%T!_!c%T!c!}1`!}#R%T#R#S1`#S#T%T#T#o1`#p$g%T$g~1`3]1g]$UW'o3TOt%Ttu1`u!Q%T!Q![1`![!^%T!_!c%T!c!}1`!}#R%T#R#S1`#S#T%T#T#o1`#p$g%T$g~1`7Z2k_$UW#zS']$y'g3SOt%Ttu2`u}%T}!O3j!O!Q%T!Q![2`![!^%T!_!c%T!c!}2`!}#R%T#R#S2`#S#T%T#T#o2`#p$g%T$g~2`[3q_$UW#zSOt%Ttu3ju}%T}!O3j!O!Q%T!Q![3j![!^%T!_!c%T!c!}3j!}#R%T#R#S3j#S#T%T#T#o3j#p$g%T$g~3j$O4wS#^#v$UWO!^%T!_!`5T!`#o%T#p~%T$O5[R$UW#o#vO!^%T!_#o%T#p~%T5b5lU'x5Y$UWOv%Tvw6Ow!^%T!_!`5T!`#o%T#p~%T$O6VS$UW#i#vO!^%T!_!`5T!`#o%T#p~%T)X6jZ$UW]#eOY6cYZ7]Zw6cwx*rx!^6c!^!_8T!_#O6c#O#P:T#P#o6c#o#p8T#p~6c&r7bV$UWOw7]wx*Px!^7]!^!_7w!_#o7]#o#p7w#p~7]&j7zROw7wwx*mx~7w)P8YV]#eOY8TYZ7wZw8Twx+px#O8T#O#P8o#P~8T)P8rROw8Twx8{x~8T)P9SU$P&j]#eOY9fZw9fwx-Vx#O9f#O#P9}#P~9f#e9kU]#eOY9fZw9fwx-Vx#O9f#O#P9}#P~9f#e:QPO~9f)X:YV$UWOw6cwx:ox!^6c!^!_8T!_#o6c#o#p8T#p~6c)X:xZ$P&j$UW]#eOY;kYZ%TZw;kwx/rx!^;k!^!_9f!_#O;k#O#P<e#P#o;k#o#p9f#p~;k#m;rZ$UW]#eOY;kYZ%TZw;kwx/rx!^;k!^!_9f!_#O;k#O#P<e#P#o;k#o#p9f#p~;k#m<jT$UWO!^;k!^!_9f!_#o;k#o#p9f#p~;k&i=QR!d&a$UWO!^%T!_#o%T#p~%Tk=bR!cc$UWO!^%T!_#o%T#p~%T7V=tU'^4V#_#v$UWOz%Tz{>W{!^%T!_!`5T!`#o%T#p~%T$O>_S#[#v$UWO!^%T!_!`5T!`#o%T#p~%T%w>rSj%o$UWO!^%T!_!`5T!`#o%T#p~%T&i?VR!R&a$UWO!^%T!_#o%T#p~%T7Z?gVu5^$UWO!O%T!O!P?|!P!Q%T!Q![@r![!^%T!_#o%T#p~%T!{@RT$UWO!O%T!O!P@b!P!^%T!_#o%T#p~%T!{@iR!Q!s$UWO!^%T!_#o%T#p~%T!{@yZ$UWk!sO!Q%T!Q![@r![!^%T!_!g%T!g!hAl!h#R%T#R#S@r#S#X%T#X#YAl#Y#o%T#p~%T!{AqZ$UWO{%T{|Bd|}%T}!OBd!O!Q%T!Q![CO![!^%T!_#R%T#R#SCO#S#o%T#p~%T!{BiV$UWO!Q%T!Q![CO![!^%T!_#R%T#R#SCO#S#o%T#p~%T!{CVV$UWk!sO!Q%T!Q![CO![!^%T!_#R%T#R#SCO#S#o%T#p~%T7ZCs`$UW#]#vOYDuYZ%TZzDuz{Jl{!PDu!P!Q!-e!Q!^Du!^!_Fx!_!`!.^!`!a!/]!a!}Du!}#OHq#O#PJQ#P#oDu#o#pFx#p~DuXD|[$UW}POYDuYZ%TZ!PDu!P!QEr!Q!^Du!^!_Fx!_!}Du!}#OHq#O#PJQ#P#oDu#o#pFx#p~DuXEy_$UW}PO!^%T!_#Z%T#Z#[Er#[#]%T#]#^Er#^#a%T#a#bEr#b#g%T#g#hEr#h#i%T#i#jEr#j#m%T#m#nEr#n#o%T#p~%TPF}V}POYFxZ!PFx!P!QGd!Q!}Fx!}#OG{#O#PHh#P~FxPGiU}P#Z#[Gd#]#^Gd#a#bGd#g#hGd#i#jGd#m#nGdPHOTOYG{Z#OG{#O#PH_#P#QFx#Q~G{PHbQOYG{Z~G{PHkQOYFxZ~FxXHvY$UWOYHqYZ%TZ!^Hq!^!_G{!_#OHq#O#PIf#P#QDu#Q#oHq#o#pG{#p~HqXIkV$UWOYHqYZ%TZ!^Hq!^!_G{!_#oHq#o#pG{#p~HqXJVV$UWOYDuYZ%TZ!^Du!^!_Fx!_#oDu#o#pFx#p~Du7ZJs^$UW}POYJlYZKoZzJlz{NQ{!PJl!P!Q!,R!Q!^Jl!^!_!!]!_!}Jl!}#O!'|#O#P!+a#P#oJl#o#p!!]#p~Jl7ZKtV$UWOzKoz{LZ{!^Ko!^!_M]!_#oKo#o#pM]#p~Ko7ZL`X$UWOzKoz{LZ{!PKo!P!QL{!Q!^Ko!^!_M]!_#oKo#o#pM]#p~Ko7ZMSR$UWU7RO!^%T!_#o%T#p~%T7RM`ROzM]z{Mi{~M]7RMlTOzM]z{Mi{!PM]!P!QM{!Q~M]7RNQOU7R7ZNX^$UW}POYJlYZKoZzJlz{NQ{!PJl!P!Q! T!Q!^Jl!^!_!!]!_!}Jl!}#O!'|#O#P!+a#P#oJl#o#p!!]#p~Jl7Z! ^_$UWU7R}PO!^%T!_#Z%T#Z#[Er#[#]%T#]#^Er#^#a%T#a#bEr#b#g%T#g#hEr#h#i%T#i#jEr#j#m%T#m#nEr#n#o%T#p~%T7R!!bY}POY!!]YZM]Zz!!]z{!#Q{!P!!]!P!Q!&x!Q!}!!]!}#O!$`#O#P!&f#P~!!]7R!#VY}POY!!]YZM]Zz!!]z{!#Q{!P!!]!P!Q!#u!Q!}!!]!}#O!$`#O#P!&f#P~!!]7R!#|UU7R}P#Z#[Gd#]#^Gd#a#bGd#g#hGd#i#jGd#m#nGd7R!$cWOY!$`YZM]Zz!$`z{!${{#O!$`#O#P!&S#P#Q!!]#Q~!$`7R!%OYOY!$`YZM]Zz!$`z{!${{!P!$`!P!Q!%n!Q#O!$`#O#P!&S#P#Q!!]#Q~!$`7R!%sTU7ROYG{Z#OG{#O#PH_#P#QFx#Q~G{7R!&VTOY!$`YZM]Zz!$`z{!${{~!$`7R!&iTOY!!]YZM]Zz!!]z{!#Q{~!!]7R!&}_}POzM]z{Mi{#ZM]#Z#[!&x#[#]M]#]#^!&x#^#aM]#a#b!&x#b#gM]#g#h!&x#h#iM]#i#j!&x#j#mM]#m#n!&x#n~M]7Z!(R[$UWOY!'|YZKoZz!'|z{!(w{!^!'|!^!_!$`!_#O!'|#O#P!*o#P#QJl#Q#o!'|#o#p!$`#p~!'|7Z!(|^$UWOY!'|YZKoZz!'|z{!(w{!P!'|!P!Q!)x!Q!^!'|!^!_!$`!_#O!'|#O#P!*o#P#QJl#Q#o!'|#o#p!$`#p~!'|7Z!*PY$UWU7ROYHqYZ%TZ!^Hq!^!_G{!_#OHq#O#PIf#P#QDu#Q#oHq#o#pG{#p~Hq7Z!*tX$UWOY!'|YZKoZz!'|z{!(w{!^!'|!^!_!$`!_#o!'|#o#p!$`#p~!'|7Z!+fX$UWOYJlYZKoZzJlz{NQ{!^Jl!^!_!!]!_#oJl#o#p!!]#p~Jl7Z!,Yc$UW}POzKoz{LZ{!^Ko!^!_M]!_#ZKo#Z#[!,R#[#]Ko#]#^!,R#^#aKo#a#b!,R#b#gKo#g#h!,R#h#iKo#i#j!,R#j#mKo#m#n!,R#n#oKo#o#pM]#p~Ko7Z!-lV$UWT7ROY!-eYZ%TZ!^!-e!^!_!.R!_#o!-e#o#p!.R#p~!-e7R!.WQT7ROY!.RZ~!.R$P!.g[$UW#o#v}POYDuYZ%TZ!PDu!P!QEr!Q!^Du!^!_Fx!_!}Du!}#OHq#O#PJQ#P#oDu#o#pFx#p~Du]!/f[#wS$UW}POYDuYZ%TZ!PDu!P!QEr!Q!^Du!^!_Fx!_!}Du!}#OHq#O#PJQ#P#oDu#o#pFx#p~Du!{!0cd$UWk!sO!O%T!O!P@r!P!Q%T!Q![!1q![!^%T!_!g%T!g!hAl!h#R%T#R#S!1q#S#U%T#U#V!3X#V#X%T#X#YAl#Y#b%T#b#c!2w#c#d!4m#d#l%T#l#m!5{#m#o%T#p~%T!{!1x_$UWk!sO!O%T!O!P@r!P!Q%T!Q![!1q![!^%T!_!g%T!g!hAl!h#R%T#R#S!1q#S#X%T#X#YAl#Y#b%T#b#c!2w#c#o%T#p~%T!{!3OR$UWk!sO!^%T!_#o%T#p~%T!{!3^W$UWO!Q%T!Q!R!3v!R!S!3v!S!^%T!_#R%T#R#S!3v#S#o%T#p~%T!{!3}Y$UWk!sO!Q%T!Q!R!3v!R!S!3v!S!^%T!_#R%T#R#S!3v#S#b%T#b#c!2w#c#o%T#p~%T!{!4rV$UWO!Q%T!Q!Y!5X!Y!^%T!_#R%T#R#S!5X#S#o%T#p~%T!{!5`X$UWk!sO!Q%T!Q!Y!5X!Y!^%T!_#R%T#R#S!5X#S#b%T#b#c!2w#c#o%T#p~%T!{!6QZ$UWO!Q%T!Q![!6s![!^%T!_!c%T!c!i!6s!i#R%T#R#S!6s#S#T%T#T#Z!6s#Z#o%T#p~%T!{!6z]$UWk!sO!Q%T!Q![!6s![!^%T!_!c%T!c!i!6s!i#R%T#R#S!6s#S#T%T#T#Z!6s#Z#b%T#b#c!2w#c#o%T#p~%T$u!7|R!]V$UW#m$fO!^%T!_#o%T#p~%T!q!8^R_!i$UWO!^%T!_#o%T#p~%T5w!8rR'bd!a/n#x&s'|P!P!Q!8{!^!_!9Q!_!`!9_W!9QO$WW#v!9VP#`#v!_!`!9Y#v!9_O#o#v#v!9dO#a#v$u!9kT!{$m$UWO!^%T!_!`'v!`!a!9z!a#o%T#p~%T$P!:RR#W#w$UWO!^%T!_#o%T#p~%T%V!:gT'a!R#a#v$RS$UWO!^%T!_!`!:v!`!a!;W!a#o%T#p~%T$O!:}R#a#v$UWO!^%T!_#o%T#p~%T$O!;_T#`#v$UWO!^%T!_!`5T!`!a!;n!a#o%T#p~%T$O!;uS#`#v$UWO!^%T!_!`5T!`#o%T#p~%T*a!<YV'p#{$UWO!O%T!O!P!<o!P!^%T!_!a%T!a!b!=P!b#o%T#p~%T*[!<vRv*S$UWO!^%T!_#o%T#p~%T$O!=WS$UW#j#vO!^%T!_!`5T!`#o%T#p~%T7V!=kRx6}$UWO!^%T!_#o%T#p~%Tk!={R!Oc$UWO!^%T!_#o%T#p~%T$O!>]S#g#v$UWO!^%T!_!`5T!`#o%T#p~%T$a!>pR$UW'f$XO!^%T!_#o%T#p~%T~!?OO!T~5b!?VT'w5Y$UWO!^%T!_!`5T!`#o%T#p#q!=P#q~%T6X!?oR!S5}nQ$UWO!^%T!_#o%T#p~%TX!@PR!kP$UWO!^%T!_#o%T#p~%T7Z!@gr$UW'Y7R#zS']$y'g3SOX%TXY%cYZ%TZ[%c[p%Tpq%cqt%Ttu2`u}%T}!O3j!O!Q%T!Q![2`![!^%T!_!c%T!c!}2`!}#R%T#R#S2`#S#T%T#T#o2`#p$f%T$f$g%c$g#BY2`#BY#BZ!@Y#BZ$IS2`$IS$I_!@Y$I_$JT2`$JT$JU!@Y$JU$KV2`$KV$KW!@Y$KW&FU2`&FU&FV!@Y&FV?HT2`?HT?HU!@Y?HU~2`7Z!CO_$UW'Z7R#zS']$y'g3SOt%Ttu2`u}%T}!O3j!O!Q%T!Q![2`![!^%T!_!c%T!c!}2`!}#R%T#R#S2`#S#T%T#T#o2`#p$g%T$g~2`",
172
- tokenizers: [tsExtends, noSemicolon, incdecToken, template, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, insertSemicolon],
173
- topRules: { "Script": [0, 7] },
174
- dialects: { jsx: 12107, ts: 12109 },
175
- dynamicPrecedences: { "149": 1, "176": 1 },
176
- specialized: [{ term: 289, get: (value) => spec_identifier$1[value] || -1 }, { term: 299, get: (value) => spec_word[value] || -1 }, { term: 63, get: (value) => spec_LessThan[value] || -1 }],
177
- tokenPrec: 12130
178
- });
179
- const snippets = [
180
- /* @__PURE__ */ snippetCompletion("function ${name}(${params}) {\n ${}\n}", {
181
- label: "function",
182
- detail: "definition",
183
- type: "keyword"
184
- }),
185
- /* @__PURE__ */ snippetCompletion("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n ${}\n}", {
186
- label: "for",
187
- detail: "loop",
188
- type: "keyword"
189
- }),
190
- /* @__PURE__ */ snippetCompletion("for (let ${name} of ${collection}) {\n ${}\n}", {
191
- label: "for",
192
- detail: "of loop",
193
- type: "keyword"
194
- }),
195
- /* @__PURE__ */ snippetCompletion("do {\n ${}\n} while (${})", {
196
- label: "do",
197
- detail: "loop",
198
- type: "keyword"
199
- }),
200
- /* @__PURE__ */ snippetCompletion("while (${}) {\n ${}\n}", {
201
- label: "while",
202
- detail: "loop",
203
- type: "keyword"
204
- }),
205
- /* @__PURE__ */ snippetCompletion("try {\n ${}\n} catch (${error}) {\n ${}\n}", {
206
- label: "try",
207
- detail: "/ catch block",
208
- type: "keyword"
209
- }),
210
- /* @__PURE__ */ snippetCompletion("if (${}) {\n ${}\n}", {
211
- label: "if",
212
- detail: "block",
213
- type: "keyword"
214
- }),
215
- /* @__PURE__ */ snippetCompletion("if (${}) {\n ${}\n} else {\n ${}\n}", {
216
- label: "if",
217
- detail: "/ else block",
218
- type: "keyword"
219
- }),
220
- /* @__PURE__ */ snippetCompletion("class ${name} {\n constructor(${params}) {\n ${}\n }\n}", {
221
- label: "class",
222
- detail: "definition",
223
- type: "keyword"
224
- }),
225
- /* @__PURE__ */ snippetCompletion('import {${names}} from "${module}"\n${}', {
226
- label: "import",
227
- detail: "named",
228
- type: "keyword"
229
- }),
230
- /* @__PURE__ */ snippetCompletion('import ${name} from "${module}"\n${}', {
231
- label: "import",
232
- detail: "default",
233
- type: "keyword"
234
- })
235
- ];
236
- const typescriptSnippets = /* @__PURE__ */ snippets.concat([
237
- /* @__PURE__ */ snippetCompletion("interface ${name} {\n ${}\n}", {
238
- label: "interface",
239
- detail: "definition",
240
- type: "keyword"
241
- }),
242
- /* @__PURE__ */ snippetCompletion("type ${name} = ${type}", {
243
- label: "type",
244
- detail: "definition",
245
- type: "keyword"
246
- }),
247
- /* @__PURE__ */ snippetCompletion("enum ${name} {\n ${}\n}", {
248
- label: "enum",
249
- detail: "definition",
250
- type: "keyword"
251
- })
252
- ]);
253
- const cache = /* @__PURE__ */ new NodeWeakMap();
254
- const ScopeNodes = /* @__PURE__ */ new Set([
255
- "Script",
256
- "Block",
257
- "FunctionExpression",
258
- "FunctionDeclaration",
259
- "ArrowFunction",
260
- "MethodDeclaration",
261
- "ForStatement"
262
- ]);
263
- function defID(type) {
264
- return (node, def) => {
265
- let id = node.node.getChild("VariableDefinition");
266
- if (id)
267
- def(id, type);
268
- return true;
269
- };
270
- }
271
- const functionContext = ["FunctionDeclaration"];
272
- const gatherCompletions = {
273
- FunctionDeclaration: /* @__PURE__ */ defID("function"),
274
- ClassDeclaration: /* @__PURE__ */ defID("class"),
275
- ClassExpression: () => true,
276
- EnumDeclaration: /* @__PURE__ */ defID("constant"),
277
- TypeAliasDeclaration: /* @__PURE__ */ defID("type"),
278
- NamespaceDeclaration: /* @__PURE__ */ defID("namespace"),
279
- VariableDefinition(node, def) {
280
- if (!node.matchContext(functionContext))
281
- def(node, "variable");
282
- },
283
- TypeDefinition(node, def) {
284
- def(node, "type");
285
- },
286
- __proto__: null
287
- };
288
- function getScope(doc, node) {
289
- let cached = cache.get(node);
290
- if (cached)
291
- return cached;
292
- let completions = [], top = true;
293
- function def(node2, type) {
294
- let name = doc.sliceString(node2.from, node2.to);
295
- completions.push({ label: name, type });
296
- }
297
- node.cursor(IterMode.IncludeAnonymous).iterate((node2) => {
298
- if (top) {
299
- top = false;
300
- } else if (node2.name) {
301
- let gather = gatherCompletions[node2.name];
302
- if (gather && gather(node2, def) || ScopeNodes.has(node2.name))
303
- return false;
304
- } else if (node2.to - node2.from > 8192) {
305
- for (let c of getScope(doc, node2.node))
306
- completions.push(c);
307
- return false;
308
- }
309
- });
310
- cache.set(node, completions);
311
- return completions;
312
- }
313
- const Identifier = /^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/;
314
- const dontComplete = [
315
- "TemplateString",
316
- "String",
317
- "RegExp",
318
- "LineComment",
319
- "BlockComment",
320
- "VariableDefinition",
321
- "TypeDefinition",
322
- "Label",
323
- "PropertyDefinition",
324
- "PropertyName",
325
- "PrivatePropertyDefinition",
326
- "PrivatePropertyName",
327
- ".",
328
- "?."
329
- ];
330
- function localCompletionSource(context) {
331
- let inner = syntaxTree(context.state).resolveInner(context.pos, -1);
332
- if (dontComplete.indexOf(inner.name) > -1)
333
- return null;
334
- let isWord = inner.name == "VariableName" || inner.to - inner.from < 20 && Identifier.test(context.state.sliceDoc(inner.from, inner.to));
335
- if (!isWord && !context.explicit)
336
- return null;
337
- let options = [];
338
- for (let pos = inner; pos; pos = pos.parent) {
339
- if (ScopeNodes.has(pos.name))
340
- options = options.concat(getScope(context.state.doc, pos));
341
- }
342
- return {
343
- options,
344
- from: isWord ? inner.from : context.pos,
345
- validFor: Identifier
346
- };
347
- }
348
- function pathFor(read, member, name) {
349
- var _a;
350
- let path = [];
351
- for (; ; ) {
352
- let obj = member.firstChild, prop;
353
- if ((obj === null || obj === void 0 ? void 0 : obj.name) == "VariableName") {
354
- path.push(read(obj));
355
- return { path: path.reverse(), name };
356
- } else if ((obj === null || obj === void 0 ? void 0 : obj.name) == "MemberExpression" && ((_a = prop = obj.lastChild) === null || _a === void 0 ? void 0 : _a.name) == "PropertyName") {
357
- path.push(read(prop));
358
- member = obj;
359
- } else {
360
- return null;
361
- }
362
- }
363
- }
364
- function completionPath(context) {
365
- let read = (node) => context.state.doc.sliceString(node.from, node.to);
366
- let inner = syntaxTree(context.state).resolveInner(context.pos, -1);
367
- if (inner.name == "PropertyName") {
368
- return pathFor(read, inner.parent, read(inner));
369
- } else if ((inner.name == "." || inner.name == "?.") && inner.parent.name == "MemberExpression") {
370
- return pathFor(read, inner.parent, "");
371
- } else if (dontComplete.indexOf(inner.name) > -1) {
372
- return null;
373
- } else if (inner.name == "VariableName" || inner.to - inner.from < 20 && Identifier.test(read(inner))) {
374
- return { path: [], name: read(inner) };
375
- } else if (inner.name == "MemberExpression") {
376
- return pathFor(read, inner, "");
377
- } else {
378
- return context.explicit ? { path: [], name: "" } : null;
379
- }
380
- }
381
- function enumeratePropertyCompletions(obj, top) {
382
- let options = [], seen = /* @__PURE__ */ new Set();
383
- for (let depth = 0; ; depth++) {
384
- for (let name of (Object.getOwnPropertyNames || Object.keys)(obj)) {
385
- if (!/^[a-zA-Z_$\xaa-\uffdc][\w$\xaa-\uffdc]*$/.test(name) || seen.has(name))
386
- continue;
387
- seen.add(name);
388
- let value;
389
- try {
390
- value = obj[name];
391
- } catch (_) {
392
- continue;
393
- }
394
- options.push({
395
- label: name,
396
- type: typeof value == "function" ? /^[A-Z]/.test(name) ? "class" : top ? "function" : "method" : top ? "variable" : "property",
397
- boost: -depth
398
- });
399
- }
400
- let next = Object.getPrototypeOf(obj);
401
- if (!next)
402
- return options;
403
- obj = next;
404
- }
405
- }
406
- function scopeCompletionSource(scope) {
407
- let cache2 = /* @__PURE__ */ new Map();
408
- return (context) => {
409
- let path = completionPath(context);
410
- if (!path)
411
- return null;
412
- let target = scope;
413
- for (let step of path.path) {
414
- target = target[step];
415
- if (!target)
416
- return null;
417
- }
418
- let options = cache2.get(target);
419
- if (!options)
420
- cache2.set(target, options = enumeratePropertyCompletions(target, !path.path.length));
421
- return {
422
- from: context.pos - path.name.length,
423
- options,
424
- validFor: Identifier
425
- };
426
- };
427
- }
428
- const javascriptLanguage = /* @__PURE__ */ LRLanguage.define({
429
- name: "javascript",
430
- parser: /* @__PURE__ */ parser$2.configure({
431
- props: [
432
- /* @__PURE__ */ indentNodeProp.add({
433
- IfStatement: /* @__PURE__ */ continuedIndent({ except: /^\s*({|else\b)/ }),
434
- TryStatement: /* @__PURE__ */ continuedIndent({ except: /^\s*({|catch\b|finally\b)/ }),
435
- LabeledStatement: flatIndent,
436
- SwitchBody: (context) => {
437
- let after = context.textAfter, closed = /^\s*\}/.test(after), isCase = /^\s*(case|default)\b/.test(after);
438
- return context.baseIndent + (closed ? 0 : isCase ? 1 : 2) * context.unit;
439
- },
440
- Block: /* @__PURE__ */ delimitedIndent({ closing: "}" }),
441
- ArrowFunction: (cx) => cx.baseIndent + cx.unit,
442
- "TemplateString BlockComment": () => null,
443
- "Statement Property": /* @__PURE__ */ continuedIndent({ except: /^{/ }),
444
- JSXElement(context) {
445
- let closed = /^\s*<\//.test(context.textAfter);
446
- return context.lineIndent(context.node.from) + (closed ? 0 : context.unit);
447
- },
448
- JSXEscape(context) {
449
- let closed = /\s*\}/.test(context.textAfter);
450
- return context.lineIndent(context.node.from) + (closed ? 0 : context.unit);
451
- },
452
- "JSXOpenTag JSXSelfClosingTag"(context) {
453
- return context.column(context.node.from) + context.unit;
454
- }
455
- }),
456
- /* @__PURE__ */ foldNodeProp.add({
457
- "Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType": foldInside,
458
- BlockComment(tree) {
459
- return { from: tree.from + 2, to: tree.to - 2 };
460
- }
461
- })
462
- ]
463
- }),
464
- languageData: {
465
- closeBrackets: { brackets: ["(", "[", "{", "'", '"', "`"] },
466
- commentTokens: { line: "//", block: { open: "/*", close: "*/" } },
467
- indentOnInput: /^\s*(?:case |default:|\{|\}|<\/)$/,
468
- wordChars: "$"
469
- }
470
- });
471
- const jsxSublanguage = {
472
- test: (node) => /^JSX/.test(node.name),
473
- facet: /* @__PURE__ */ defineLanguageFacet({ commentTokens: { block: { open: "{/*", close: "*/}" } } })
474
- };
475
- const typescriptLanguage = /* @__PURE__ */ javascriptLanguage.configure({ dialect: "ts" }, "typescript");
476
- const jsxLanguage = /* @__PURE__ */ javascriptLanguage.configure({
477
- dialect: "jsx",
478
- props: [/* @__PURE__ */ sublanguageProp.add((n) => n.isTop ? [jsxSublanguage] : void 0)]
479
- });
480
- const tsxLanguage = /* @__PURE__ */ javascriptLanguage.configure({
481
- dialect: "jsx ts",
482
- props: [/* @__PURE__ */ sublanguageProp.add((n) => n.isTop ? [jsxSublanguage] : void 0)]
483
- }, "typescript");
484
- let kwCompletion = (name) => ({ label: name, type: "keyword" });
485
- const keywords = /* @__PURE__ */ "break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(kwCompletion);
486
- const typescriptKeywords = /* @__PURE__ */ keywords.concat(/* @__PURE__ */ ["declare", "implements", "private", "protected", "public"].map(kwCompletion));
487
- function javascript(config = {}) {
488
- let lang = config.jsx ? config.typescript ? tsxLanguage : jsxLanguage : config.typescript ? typescriptLanguage : javascriptLanguage;
489
- let completions = config.typescript ? typescriptSnippets.concat(typescriptKeywords) : snippets.concat(keywords);
490
- return new LanguageSupport(lang, [
491
- javascriptLanguage.data.of({
492
- autocomplete: ifNotIn(dontComplete, completeFromList(completions))
493
- }),
494
- javascriptLanguage.data.of({
495
- autocomplete: localCompletionSource
496
- }),
497
- config.jsx ? autoCloseTags$1 : []
498
- ]);
499
- }
500
- function findOpenTag(node) {
501
- for (; ; ) {
502
- if (node.name == "JSXOpenTag" || node.name == "JSXSelfClosingTag" || node.name == "JSXFragmentTag")
503
- return node;
504
- if (node.name == "JSXEscape" || !node.parent)
505
- return null;
506
- node = node.parent;
507
- }
508
- }
509
- function elementName$1(doc, tree, max = doc.length) {
510
- for (let ch = tree === null || tree === void 0 ? void 0 : tree.firstChild; ch; ch = ch.nextSibling) {
511
- if (ch.name == "JSXIdentifier" || ch.name == "JSXBuiltin" || ch.name == "JSXNamespacedName" || ch.name == "JSXMemberExpression")
512
- return doc.sliceString(ch.from, Math.min(ch.to, max));
513
- }
514
- return "";
515
- }
516
- const android = typeof navigator == "object" && /* @__PURE__ */ /Android\b/.test(navigator.userAgent);
517
- const autoCloseTags$1 = /* @__PURE__ */ EditorView.inputHandler.of((view, from, to, text, defaultInsert) => {
518
- if ((android ? view.composing : view.compositionStarted) || view.state.readOnly || from != to || text != ">" && text != "/" || !javascriptLanguage.isActiveAt(view.state, from, -1))
519
- return false;
520
- let base = defaultInsert(), { state } = base;
521
- let closeTags = state.changeByRange((range) => {
522
- var _a;
523
- let { head } = range, around = syntaxTree(state).resolveInner(head - 1, -1), name;
524
- if (around.name == "JSXStartTag")
525
- around = around.parent;
526
- if (state.doc.sliceString(head - 1, head) != text || around.name == "JSXAttributeValue" && around.to > head) ;
527
- else if (text == ">" && around.name == "JSXFragmentTag") {
528
- return { range, changes: { from: head, insert: `</>` } };
529
- } else if (text == "/" && around.name == "JSXStartCloseTag") {
530
- let empty = around.parent, base2 = empty.parent;
531
- if (base2 && empty.from == head - 2 && ((name = elementName$1(state.doc, base2.firstChild, head)) || ((_a = base2.firstChild) === null || _a === void 0 ? void 0 : _a.name) == "JSXFragmentTag")) {
532
- let insert = `${name}>`;
533
- return { range: EditorSelection.cursor(head + insert.length, -1), changes: { from: head, insert } };
534
- }
535
- } else if (text == ">") {
536
- let openTag = findOpenTag(around);
537
- if (openTag && openTag.name == "JSXOpenTag" && !/^\/?>|^<\//.test(state.doc.sliceString(head, head + 2)) && (name = elementName$1(state.doc, openTag, head)))
538
- return { range, changes: { from: head, insert: `</${name}>` } };
539
- }
540
- return { range };
541
- });
542
- if (closeTags.changes.empty)
543
- return false;
544
- view.dispatch([
545
- base,
546
- state.update(closeTags, { userEvent: "input.complete", scrollIntoView: true })
547
- ]);
548
- return true;
549
- });
550
- function esLint(eslint, config) {
551
- if (!config) {
552
- config = {
553
- parserOptions: { ecmaVersion: 2019, sourceType: "module" },
554
- env: { browser: true, node: true, es6: true, es2015: true, es2017: true, es2020: true },
555
- rules: {}
556
- };
557
- eslint.getRules().forEach((desc, name) => {
558
- if (desc.meta.docs.recommended)
559
- config.rules[name] = 2;
560
- });
561
- }
562
- return (view) => {
563
- let { state } = view, found = [];
564
- for (let { from, to } of javascriptLanguage.findRegions(state)) {
565
- let fromLine = state.doc.lineAt(from), offset = { line: fromLine.number - 1, col: from - fromLine.from, pos: from };
566
- for (let d of eslint.verify(state.sliceDoc(from, to), config))
567
- found.push(translateDiagnostic(d, state.doc, offset));
568
- }
569
- return found;
570
- };
571
- }
572
- function mapPos(line, col, doc, offset) {
573
- return doc.line(line + offset.line).from + col + (line == 1 ? offset.col - 1 : -1);
574
- }
575
- function translateDiagnostic(input, doc, offset) {
576
- let start = mapPos(input.line, input.column, doc, offset);
577
- let result = {
578
- from: start,
579
- to: input.endLine != null && input.endColumn != 1 ? mapPos(input.endLine, input.endColumn, doc, offset) : start,
580
- message: input.message,
581
- source: input.ruleId ? "eslint:" + input.ruleId : "eslint",
582
- severity: input.severity == 1 ? "warning" : "error"
583
- };
584
- if (input.fix) {
585
- let { range, text } = input.fix, from = range[0] + offset.pos - start, to = range[1] + offset.pos - start;
586
- result.actions = [{
587
- name: "fix",
588
- apply(view, start2) {
589
- view.dispatch({ changes: { from: start2 + from, to: start2 + to, insert: text }, scrollIntoView: true });
590
- }
591
- }];
592
- }
593
- return result;
594
- }
595
- const descendantOp = 94, Unit = 1, callee = 95, identifier$2 = 96, VariableName = 2;
596
- const space = [
597
- 9,
598
- 10,
599
- 11,
600
- 12,
601
- 13,
602
- 32,
603
- 133,
604
- 160,
605
- 5760,
606
- 8192,
607
- 8193,
608
- 8194,
609
- 8195,
610
- 8196,
611
- 8197,
612
- 8198,
613
- 8199,
614
- 8200,
615
- 8201,
616
- 8202,
617
- 8232,
618
- 8233,
619
- 8239,
620
- 8287,
621
- 12288
622
- ];
623
- const colon = 58, parenL = 40, underscore = 95, bracketL = 91, dash$1 = 45, period = 46, hash = 35, percent = 37;
624
- function isAlpha(ch) {
625
- return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || ch >= 161;
626
- }
627
- function isDigit(ch) {
628
- return ch >= 48 && ch <= 57;
629
- }
630
- const identifiers = new ExternalTokenizer((input, stack) => {
631
- for (let inside = false, dashes = 0, i = 0; ; i++) {
632
- let { next } = input;
633
- if (isAlpha(next) || next == dash$1 || next == underscore || inside && isDigit(next)) {
634
- if (!inside && (next != dash$1 || i > 0)) inside = true;
635
- if (dashes === i && next == dash$1) dashes++;
636
- input.advance();
637
- } else {
638
- if (inside)
639
- input.acceptToken(next == parenL ? callee : dashes == 2 && stack.canShift(VariableName) ? VariableName : identifier$2);
640
- break;
641
- }
642
- }
643
- });
644
- const descendant = new ExternalTokenizer((input) => {
645
- if (space.includes(input.peek(-1))) {
646
- let { next } = input;
647
- if (isAlpha(next) || next == underscore || next == hash || next == period || next == bracketL || next == colon || next == dash$1)
648
- input.acceptToken(descendantOp);
649
- }
650
- });
651
- const unitToken = new ExternalTokenizer((input) => {
652
- if (!space.includes(input.peek(-1))) {
653
- let { next } = input;
654
- if (next == percent) {
655
- input.advance();
656
- input.acceptToken(Unit);
657
- }
658
- if (isAlpha(next)) {
659
- do {
660
- input.advance();
661
- } while (isAlpha(input.next));
662
- input.acceptToken(Unit);
663
- }
664
- }
665
- });
666
- const cssHighlighting = styleTags({
667
- "AtKeyword import charset namespace keyframes media supports": tags$1.definitionKeyword,
668
- "from to selector": tags$1.keyword,
669
- NamespaceName: tags$1.namespace,
670
- KeyframeName: tags$1.labelName,
671
- TagName: tags$1.tagName,
672
- ClassName: tags$1.className,
673
- PseudoClassName: tags$1.constant(tags$1.className),
674
- IdName: tags$1.labelName,
675
- "FeatureName PropertyName": tags$1.propertyName,
676
- AttributeName: tags$1.attributeName,
677
- NumberLiteral: tags$1.number,
678
- KeywordQuery: tags$1.keyword,
679
- UnaryQueryOp: tags$1.operatorKeyword,
680
- "CallTag ValueName": tags$1.atom,
681
- VariableName: tags$1.variableName,
682
- Callee: tags$1.operatorKeyword,
683
- Unit: tags$1.unit,
684
- "UniversalSelector NestingSelector": tags$1.definitionOperator,
685
- MatchOp: tags$1.compareOperator,
686
- "ChildOp SiblingOp, LogicOp": tags$1.logicOperator,
687
- BinOp: tags$1.arithmeticOperator,
688
- Important: tags$1.modifier,
689
- Comment: tags$1.blockComment,
690
- ParenthesizedContent: tags$1.special(tags$1.name),
691
- ColorLiteral: tags$1.color,
692
- StringLiteral: tags$1.string,
693
- ":": tags$1.punctuation,
694
- "PseudoOp #": tags$1.derefOperator,
695
- "; ,": tags$1.separator,
696
- "( )": tags$1.paren,
697
- "[ ]": tags$1.squareBracket,
698
- "{ }": tags$1.brace
699
- });
700
- const spec_callee = { __proto__: null, lang: 32, "nth-child": 32, "nth-last-child": 32, "nth-of-type": 32, "nth-last-of-type": 32, dir: 32, "host-context": 32, url: 60, "url-prefix": 60, domain: 60, regexp: 60, selector: 134 };
701
- const spec_AtKeyword = { __proto__: null, "@import": 114, "@media": 138, "@charset": 142, "@namespace": 146, "@keyframes": 152, "@supports": 164 };
702
- const spec_identifier = { __proto__: null, not: 128, only: 128, from: 158, to: 160 };
703
- const parser$1 = LRParser.deserialize({
704
- version: 14,
705
- states: "7WQYQ[OOO#_Q[OOOOQP'#Cd'#CdOOQP'#Cc'#CcO#fQ[O'#CfO$YQXO'#CaO$aQ[O'#ChO$lQ[O'#DPO$qQ[O'#DTOOQP'#Ed'#EdO$vQdO'#DeO%bQ[O'#DrO$vQdO'#DtO%sQ[O'#DvO&OQ[O'#DyO&TQ[O'#EPO&cQ[O'#EROOQS'#Ec'#EcOOQS'#ET'#ETQYQ[OOO&jQXO'#CdO'_QWO'#DaO'dQWO'#EjO'oQ[O'#EjQOQWOOOOQP'#Cg'#CgOOQP,59Q,59QO#fQ[O,59QO'yQ[O'#EWO(eQWO,58{O(mQ[O,59SO$lQ[O,59kO$qQ[O,59oO'yQ[O,59sO'yQ[O,59uO'yQ[O,59vO(xQ[O'#D`OOQS,58{,58{OOQP'#Ck'#CkOOQO'#C}'#C}OOQP,59S,59SO)PQWO,59SO)UQWO,59SOOQP'#DR'#DROOQP,59k,59kOOQO'#DV'#DVO)ZQ`O,59oOOQS'#Cp'#CpO$vQdO'#CqO)cQvO'#CsO*pQtO,5:POOQO'#Cx'#CxO)UQWO'#CwO+UQWO'#CyOOQS'#Eg'#EgOOQO'#Dh'#DhO+ZQ[O'#DoO+iQWO'#EkO&TQ[O'#DmO+wQWO'#DpOOQO'#El'#ElO(hQWO,5:^O+|QpO,5:`OOQS'#Dx'#DxO,UQWO,5:bO,ZQ[O,5:bOOQO'#D{'#D{O,cQWO,5:eO,hQWO,5:kO,pQWO,5:mOOQS-E8R-E8RO$vQdO,59{O,xQ[O'#EYO-VQWO,5;UO-VQWO,5;UOOQP1G.l1G.lO-|QXO,5:rOOQO-E8U-E8UOOQS1G.g1G.gOOQP1G.n1G.nO)PQWO1G.nO)UQWO1G.nOOQP1G/V1G/VO.ZQ`O1G/ZO.tQXO1G/_O/[QXO1G/aO/rQXO1G/bO0YQWO,59zO0_Q[O'#DOO0fQdO'#CoOOQP1G/Z1G/ZO$vQdO1G/ZO0mQpO,59]OOQS,59_,59_O$vQdO,59aO0uQWO1G/kOOQS,59c,59cO0zQ!bO,59eO1SQWO'#DhO1_QWO,5:TO1dQWO,5:ZO&TQ[O,5:VO&TQ[O'#EZO1lQWO,5;VO1wQWO,5:XO'yQ[O,5:[OOQS1G/x1G/xOOQS1G/z1G/zOOQS1G/|1G/|O2YQWO1G/|O2_QdO'#D|OOQS1G0P1G0POOQS1G0V1G0VOOQS1G0X1G0XO2mQtO1G/gOOQO,5:t,5:tO3TQ[O,5:tOOQO-E8W-E8WO3bQWO1G0pOOQP7+$Y7+$YOOQP7+$u7+$uO$vQdO7+$uOOQS1G/f1G/fO3mQXO'#EiO3tQWO,59jO3yQtO'#EUO4nQdO'#EfO4xQWO,59ZO4}QpO7+$uOOQS1G.w1G.wOOQS1G.{1G.{OOQS7+%V7+%VO5VQWO1G/PO$vQdO1G/oOOQO1G/u1G/uOOQO1G/q1G/qO5[QWO,5:uOOQO-E8X-E8XO5jQXO1G/vOOQS7+%h7+%hO5qQYO'#CsO(hQWO'#E[O5yQdO,5:hOOQS,5:h,5:hO6XQtO'#EXO$vQdO'#EXO7VQdO7+%ROOQO7+%R7+%ROOQO1G0`1G0`O7jQpO<<HaO7rQWO,5;TOOQP1G/U1G/UOOQS-E8S-E8SO$vQdO'#EVO7zQWO,5;QOOQT1G.u1G.uOOQP<<Ha<<HaOOQS7+$k7+$kO8SQdO7+%ZOOQO7+%b7+%bOOQS,5:v,5:vOOQS-E8Y-E8YOOQS1G0S1G0SO8ZQtO,5:sOOQS-E8V-E8VOOQO<<Hm<<HmOOQPAN={AN={O9XQdO,5:qOOQO-E8T-E8TOOQO<<Hu<<Hu",
706
- stateData: "9i~O#UOSROS~OUXOXXO]UO^UOtVOxWO!Y`O!ZYO!gZO!i[O!k]O!n^O!t_O#SQO#XSO~OQeOUXOXXO]UO^UOtVOxWO!Y`O!ZYO!gZO!i[O!k]O!n^O!t_O#SdO#XSO~O#P#^P~P!ZO#SiO~O]nO^nOplOtoOxpO|qO!PsO#QrO#XkO~O!RtO~P#kO`zO#RwO#SvO~O#S{O~O#S}O~OQ!WOb!QOf!WOh!WOn!VO#R!TO#S!PO#[!RO~Ob!YO!b![O!e!]O#S!XO!R#_P~Oh!bOn!VO#S!aO~O#S!dO~Ob!YO!b![O!e!]O#S!XO~O!W#_P~P%bO]WX]!UX^WXpWXtWXxWX|WX!PWX!RWX#QWX#XWX~O]!iO~O!W!jO#P#^X!Q#^X~O#P#^X!Q#^X~P!ZOUXOXXO]UO^UOtVOxWO#SQO#XSO~OplO!RtO~O`!sO#RwO#SvO~O!Q#^P~P!ZOb!zO~Ob!{O~Ov!|Oz!}O~OP#PObgXjgX!WgX!bgX!egX#SgXagXQgXfgXhgXngXpgX!VgX#PgX#RgX#[gXvgX!QgX~Ob!YOj#QO!b![O!e!]O#S!XO!W#_P~Ob#TO~Ob!YO!b![O!e!]O#S#UO~Op#YO!`#XO!R#_X!W#_X~Ob#]O~Oj#QO!W#_O~O!W#`O~Oh#aOn!VO~O!R#bO~O!RtO!`#XO~O!RtO!W#eO~O!W!|X#P!|X!Q!|X~P!ZO!W!jO#P#^a!Q#^a~O]nO^nOtoOxpO|qO!PsO#QrO#XkO~Op!za!R!zaa!za~P-bOv#lOz#mO~O]nO^nOtoOxpO#XkO~Op{i|{i!P{i!R{i#Q{ia{i~P.cOp}i|}i!P}i!R}i#Q}ia}i~P.cOp!Oi|!Oi!P!Oi!R!Oi#Q!Oia!Oi~P.cO!Q#nO~Oa#]P~P'yOa#YP~P$vOa#uOj#QO~O!W#wO~Oh#xOo#xO~O]!^Xa![X!`![X~O]#yO~Oa#zO!`#XO~Op#YO!R#_a!W#_a~O!`#XOp!aa!R!aa!W!aaa!aa~O!W$PO~O!Q$TO!q$RO!r$RO#[$QO~Oj#QOp$VO!V$XO!W!Ti#P!Ti!Q!Ti~P$vO!W!|a#P!|a!Q!|a~P!ZO!W!jO#P#^i!Q#^i~Oa#]X~P#kOa$]O~Oj#QOQ!xXa!xXb!xXf!xXh!xXn!xXp!xX#R!xX#S!xX#[!xX~Op$_Oa#YX~P$vOa$aO~Oj#QOv$bO~Oa$cO~O!`#XOp!}a!R!}a!W!}a~Oa$eO~P-bOP#PO!RgX~O!Q$hO!q$RO!r$RO#[$QO~Oj#QOQ!{Xb!{Xf!{Xh!{Xn!{Xp!{X!V!{X!W!{X#P!{X#R!{X#S!{X#[!{X!Q!{X~Op$VO!V$kO!W!Tq#P!Tq!Q!Tq~P$vOj#QOv$lO~OplOa#]a~Op$_Oa#Ya~Oa$oO~P$vOj#QOQ!{ab!{af!{ah!{an!{ap!{a!V!{a!W!{a#P!{a#R!{a#S!{a#[!{a!Q!{a~Oa!yap!ya~P$vOo#[j!Pj~",
707
- goto: ",`#aPPPPP#bP#k#zP#k$Z#kPP$aPPP$g$p$pP%SP$pP$p%j%|PPP&f&l#kP&rP#kP&xP#kP#k#kPPP'O'b'oPP#bPP'v'v(Q'vP'vP'v'vP#bP#bP#bP(T#bP(W(ZPP#bP#bP(^(m({)R)])c)m)sPPPPPP)y*SP*o*rP+h+k+q+z_aOPcgt!j#hkXOPcglqrst!j!z#]#hkROPcglqrst!j!z#]#hQjSR!mkQxUR!qnQ!qzQ#S!UR#k!sq!WY[!Q!i!{!}#Q#f#m#r#y$V$W$_$d$mp!WY[!Q!i!{!}#Q#f#m#r#y$V$W$_$d$mT$R#b$Sq!UY[!Q!i!{!}#Q#f#m#r#y$V$W$_$d$mp!WY[!Q!i!{!}#Q#f#m#r#y$V$W$_$d$mQ!b]R#a!cQyUR!rnQ!qyR#k!rQ|VR!toQ!OWR!upQuTQ!pmQ#^!_Q#d!fQ#e!gR$f$RSfPtQ!lgQ#g!jR$Y#hZePgt!j#ha!^Z_`!S!Y![#X#YR#V!YR!c]R!e^R#c!eQcOSgPtU!hcg#hR#h!jQ#r!{U$^#r$d$mQ$d#yR$m$_Q$`#rR$n$`QmTS!om$[R$[#oQ$W#fR$j$WQ!kfS#i!k#jR#j!lQ#Z!ZR#}#ZQ$S#bR$g$S_bOPcgt!j#h^TOPcgt!j#hQ!nlQ!vqQ!wrQ!xsQ#o!zR$O#]R#s!{Q!SYQ!`[Q#O!QQ#f!i[#q!{#r#y$_$d$mQ#t!}Q#v#QS$U#f$WQ$Z#mR$i$VR#p!zQhPR!ytQ!_ZQ!g`R#R!SU!ZZ`!SQ!f_Q#W!YQ#[![Q#{#XR#|#Y",
708
- nodeNames: "⚠ Unit VariableName Comment StyleSheet RuleSet UniversalSelector TagSelector TagName NestingSelector ClassSelector ClassName PseudoClassSelector : :: PseudoClassName PseudoClassName ) ( ArgList ValueName ParenthesizedValue ColorLiteral NumberLiteral StringLiteral BinaryExpression BinOp CallExpression Callee CallLiteral CallTag ParenthesizedContent , PseudoClassName ArgList IdSelector # IdName ] AttributeSelector [ AttributeName MatchOp ChildSelector ChildOp DescendantSelector SiblingSelector SiblingOp } { Block Declaration PropertyName Important ; ImportStatement AtKeyword import KeywordQuery FeatureQuery FeatureName BinaryQuery LogicOp UnaryQuery UnaryQueryOp ParenthesizedQuery SelectorQuery selector MediaStatement media CharsetStatement charset NamespaceStatement namespace NamespaceName KeyframesStatement keyframes KeyframeName KeyframeList from to SupportsStatement supports AtRule Styles",
709
- maxTerm: 108,
710
- nodeProps: [
711
- ["openedBy", 17, "(", 48, "{"],
712
- ["closedBy", 18, ")", 49, "}"]
713
- ],
714
- propSources: [cssHighlighting],
715
- skippedNodes: [0, 3],
716
- repeatNodeCount: 8,
717
- tokenData: "Lq~R!^OX$}X^%u^p$}pq%uqr)Xrs.Rst/utu6duv$}vw7^wx7oxy9^yz9oz{9t{|:_|}?Q}!O?c!O!P@Q!P!Q@i!Q![Cu![!]Dp!]!^El!^!_$}!_!`E}!`!aF`!a!b$}!b!cG[!c!}$}!}#OHt#O#P$}#P#QIV#Q#R6d#R#T$}#T#UIh#U#c$}#c#dJy#d#o$}#o#pK`#p#q6d#q#rKq#r#sLS#s#y$}#y#z%u#z$f$}$f$g%u$g#BY$}#BY#BZ%u#BZ$IS$}$IS$I_%u$I_$I|$}$I|$JO%u$JO$JT$}$JT$JU%u$JU$KV$}$KV$KW%u$KW&FU$}&FU&FV%u&FV;'S$};'S;=`Lk<%lO$}W%QSOy%^z;'S%^;'S;=`%o<%lO%^W%cSoWOy%^z;'S%^;'S;=`%o<%lO%^W%rP;=`<%l%^~%zh#U~OX%^X^'f^p%^pq'fqy%^z#y%^#y#z'f#z$f%^$f$g'f$g#BY%^#BY#BZ'f#BZ$IS%^$IS$I_'f$I_$I|%^$I|$JO'f$JO$JT%^$JT$JU'f$JU$KV%^$KV$KW'f$KW&FU%^&FU&FV'f&FV;'S%^;'S;=`%o<%lO%^~'mh#U~oWOX%^X^'f^p%^pq'fqy%^z#y%^#y#z'f#z$f%^$f$g'f$g#BY%^#BY#BZ'f#BZ$IS%^$IS$I_'f$I_$I|%^$I|$JO'f$JO$JT%^$JT$JU'f$JU$KV%^$KV$KW'f$KW&FU%^&FU&FV'f&FV;'S%^;'S;=`%o<%lO%^^)[UOy%^z#]%^#]#^)n#^;'S%^;'S;=`%o<%lO%^^)sUoWOy%^z#a%^#a#b*V#b;'S%^;'S;=`%o<%lO%^^*[UoWOy%^z#d%^#d#e*n#e;'S%^;'S;=`%o<%lO%^^*sUoWOy%^z#c%^#c#d+V#d;'S%^;'S;=`%o<%lO%^^+[UoWOy%^z#f%^#f#g+n#g;'S%^;'S;=`%o<%lO%^^+sUoWOy%^z#h%^#h#i,V#i;'S%^;'S;=`%o<%lO%^^,[UoWOy%^z#T%^#T#U,n#U;'S%^;'S;=`%o<%lO%^^,sUoWOy%^z#b%^#b#c-V#c;'S%^;'S;=`%o<%lO%^^-[UoWOy%^z#h%^#h#i-n#i;'S%^;'S;=`%o<%lO%^^-uS!VUoWOy%^z;'S%^;'S;=`%o<%lO%^~.UWOY.RZr.Rrs.ns#O.R#O#P.s#P;'S.R;'S;=`/o<%lO.R~.sOh~~.vRO;'S.R;'S;=`/P;=`O.R~/SXOY.RZr.Rrs.ns#O.R#O#P.s#P;'S.R;'S;=`/o;=`<%l.R<%lO.R~/rP;=`<%l.R_/zYtPOy%^z!Q%^!Q![0j![!c%^!c!i0j!i#T%^#T#Z0j#Z;'S%^;'S;=`%o<%lO%^^0oYoWOy%^z!Q%^!Q![1_![!c%^!c!i1_!i#T%^#T#Z1_#Z;'S%^;'S;=`%o<%lO%^^1dYoWOy%^z!Q%^!Q![2S![!c%^!c!i2S!i#T%^#T#Z2S#Z;'S%^;'S;=`%o<%lO%^^2ZYfUoWOy%^z!Q%^!Q![2y![!c%^!c!i2y!i#T%^#T#Z2y#Z;'S%^;'S;=`%o<%lO%^^3QYfUoWOy%^z!Q%^!Q![3p![!c%^!c!i3p!i#T%^#T#Z3p#Z;'S%^;'S;=`%o<%lO%^^3uYoWOy%^z!Q%^!Q![4e![!c%^!c!i4e!i#T%^#T#Z4e#Z;'S%^;'S;=`%o<%lO%^^4lYfUoWOy%^z!Q%^!Q![5[![!c%^!c!i5[!i#T%^#T#Z5[#Z;'S%^;'S;=`%o<%lO%^^5aYoWOy%^z!Q%^!Q![6P![!c%^!c!i6P!i#T%^#T#Z6P#Z;'S%^;'S;=`%o<%lO%^^6WSfUoWOy%^z;'S%^;'S;=`%o<%lO%^Y6gUOy%^z!_%^!_!`6y!`;'S%^;'S;=`%o<%lO%^Y7QSzQoWOy%^z;'S%^;'S;=`%o<%lO%^X7cSXPOy%^z;'S%^;'S;=`%o<%lO%^~7rWOY7oZw7owx.nx#O7o#O#P8[#P;'S7o;'S;=`9W<%lO7o~8_RO;'S7o;'S;=`8h;=`O7o~8kXOY7oZw7owx.nx#O7o#O#P8[#P;'S7o;'S;=`9W;=`<%l7o<%lO7o~9ZP;=`<%l7o_9cSbVOy%^z;'S%^;'S;=`%o<%lO%^~9tOa~_9{UUPjSOy%^z!_%^!_!`6y!`;'S%^;'S;=`%o<%lO%^_:fWjS!PPOy%^z!O%^!O!P;O!P!Q%^!Q![>T![;'S%^;'S;=`%o<%lO%^^;TUoWOy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^^;nYoW#[UOy%^z!Q%^!Q![;g![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^^<cYoWOy%^z{%^{|=R|}%^}!O=R!O!Q%^!Q![=j![;'S%^;'S;=`%o<%lO%^^=WUoWOy%^z!Q%^!Q![=j![;'S%^;'S;=`%o<%lO%^^=qUoW#[UOy%^z!Q%^!Q![=j![;'S%^;'S;=`%o<%lO%^^>[[oW#[UOy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^_?VSpVOy%^z;'S%^;'S;=`%o<%lO%^^?hWjSOy%^z!O%^!O!P;O!P!Q%^!Q![>T![;'S%^;'S;=`%o<%lO%^_@VU#XPOy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^~@nTjSOy%^z{@}{;'S%^;'S;=`%o<%lO%^~ASUoWOy@}yzAfz{Bm{;'S@};'S;=`Co<%lO@}~AiTOzAfz{Ax{;'SAf;'S;=`Bg<%lOAf~A{VOzAfz{Ax{!PAf!P!QBb!Q;'SAf;'S;=`Bg<%lOAf~BgOR~~BjP;=`<%lAf~BrWoWOy@}yzAfz{Bm{!P@}!P!QC[!Q;'S@};'S;=`Co<%lO@}~CcSoWR~Oy%^z;'S%^;'S;=`%o<%lO%^~CrP;=`<%l@}^Cz[#[UOy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^XDuU]POy%^z![%^![!]EX!];'S%^;'S;=`%o<%lO%^XE`S^PoWOy%^z;'S%^;'S;=`%o<%lO%^_EqS!WVOy%^z;'S%^;'S;=`%o<%lO%^YFSSzQOy%^z;'S%^;'S;=`%o<%lO%^XFeU|POy%^z!`%^!`!aFw!a;'S%^;'S;=`%o<%lO%^XGOS|PoWOy%^z;'S%^;'S;=`%o<%lO%^XG_WOy%^z!c%^!c!}Gw!}#T%^#T#oGw#o;'S%^;'S;=`%o<%lO%^XHO[!YPoWOy%^z}%^}!OGw!O!Q%^!Q![Gw![!c%^!c!}Gw!}#T%^#T#oGw#o;'S%^;'S;=`%o<%lO%^XHySxPOy%^z;'S%^;'S;=`%o<%lO%^^I[SvUOy%^z;'S%^;'S;=`%o<%lO%^XIkUOy%^z#b%^#b#cI}#c;'S%^;'S;=`%o<%lO%^XJSUoWOy%^z#W%^#W#XJf#X;'S%^;'S;=`%o<%lO%^XJmS!`PoWOy%^z;'S%^;'S;=`%o<%lO%^XJ|UOy%^z#f%^#f#gJf#g;'S%^;'S;=`%o<%lO%^XKeS!RPOy%^z;'S%^;'S;=`%o<%lO%^_KvS!QVOy%^z;'S%^;'S;=`%o<%lO%^ZLXU!PPOy%^z!_%^!_!`6y!`;'S%^;'S;=`%o<%lO%^WLnP;=`<%l$}",
718
- tokenizers: [descendant, unitToken, identifiers, 0, 1, 2, 3],
719
- topRules: { "StyleSheet": [0, 4], "Styles": [1, 84] },
720
- specialized: [{ term: 95, get: (value) => spec_callee[value] || -1 }, { term: 56, get: (value) => spec_AtKeyword[value] || -1 }, { term: 96, get: (value) => spec_identifier[value] || -1 }],
721
- tokenPrec: 1123
722
- });
723
- let _properties = null;
724
- function properties() {
725
- if (!_properties && typeof document == "object" && document.body) {
726
- let names = [];
727
- for (let prop in document.body.style) {
728
- if (!/[A-Z]|^-|^(item|length)$/.test(prop))
729
- names.push(prop);
730
- }
731
- _properties = names.sort().map((name) => ({ type: "property", label: name }));
732
- }
733
- return _properties || [];
734
- }
735
- const pseudoClasses = /* @__PURE__ */ [
736
- "active",
737
- "after",
738
- "any-link",
739
- "autofill",
740
- "backdrop",
741
- "before",
742
- "checked",
743
- "cue",
744
- "default",
745
- "defined",
746
- "disabled",
747
- "empty",
748
- "enabled",
749
- "file-selector-button",
750
- "first",
751
- "first-child",
752
- "first-letter",
753
- "first-line",
754
- "first-of-type",
755
- "focus",
756
- "focus-visible",
757
- "focus-within",
758
- "fullscreen",
759
- "has",
760
- "host",
761
- "host-context",
762
- "hover",
763
- "in-range",
764
- "indeterminate",
765
- "invalid",
766
- "is",
767
- "lang",
768
- "last-child",
769
- "last-of-type",
770
- "left",
771
- "link",
772
- "marker",
773
- "modal",
774
- "not",
775
- "nth-child",
776
- "nth-last-child",
777
- "nth-last-of-type",
778
- "nth-of-type",
779
- "only-child",
780
- "only-of-type",
781
- "optional",
782
- "out-of-range",
783
- "part",
784
- "placeholder",
785
- "placeholder-shown",
786
- "read-only",
787
- "read-write",
788
- "required",
789
- "right",
790
- "root",
791
- "scope",
792
- "selection",
793
- "slotted",
794
- "target",
795
- "target-text",
796
- "valid",
797
- "visited",
798
- "where"
799
- ].map((name) => ({ type: "class", label: name }));
800
- const values = /* @__PURE__ */ [
801
- "above",
802
- "absolute",
803
- "activeborder",
804
- "additive",
805
- "activecaption",
806
- "after-white-space",
807
- "ahead",
808
- "alias",
809
- "all",
810
- "all-scroll",
811
- "alphabetic",
812
- "alternate",
813
- "always",
814
- "antialiased",
815
- "appworkspace",
816
- "asterisks",
817
- "attr",
818
- "auto",
819
- "auto-flow",
820
- "avoid",
821
- "avoid-column",
822
- "avoid-page",
823
- "avoid-region",
824
- "axis-pan",
825
- "background",
826
- "backwards",
827
- "baseline",
828
- "below",
829
- "bidi-override",
830
- "blink",
831
- "block",
832
- "block-axis",
833
- "bold",
834
- "bolder",
835
- "border",
836
- "border-box",
837
- "both",
838
- "bottom",
839
- "break",
840
- "break-all",
841
- "break-word",
842
- "bullets",
843
- "button",
844
- "button-bevel",
845
- "buttonface",
846
- "buttonhighlight",
847
- "buttonshadow",
848
- "buttontext",
849
- "calc",
850
- "capitalize",
851
- "caps-lock-indicator",
852
- "caption",
853
- "captiontext",
854
- "caret",
855
- "cell",
856
- "center",
857
- "checkbox",
858
- "circle",
859
- "cjk-decimal",
860
- "clear",
861
- "clip",
862
- "close-quote",
863
- "col-resize",
864
- "collapse",
865
- "color",
866
- "color-burn",
867
- "color-dodge",
868
- "column",
869
- "column-reverse",
870
- "compact",
871
- "condensed",
872
- "contain",
873
- "content",
874
- "contents",
875
- "content-box",
876
- "context-menu",
877
- "continuous",
878
- "copy",
879
- "counter",
880
- "counters",
881
- "cover",
882
- "crop",
883
- "cross",
884
- "crosshair",
885
- "currentcolor",
886
- "cursive",
887
- "cyclic",
888
- "darken",
889
- "dashed",
890
- "decimal",
891
- "decimal-leading-zero",
892
- "default",
893
- "default-button",
894
- "dense",
895
- "destination-atop",
896
- "destination-in",
897
- "destination-out",
898
- "destination-over",
899
- "difference",
900
- "disc",
901
- "discard",
902
- "disclosure-closed",
903
- "disclosure-open",
904
- "document",
905
- "dot-dash",
906
- "dot-dot-dash",
907
- "dotted",
908
- "double",
909
- "down",
910
- "e-resize",
911
- "ease",
912
- "ease-in",
913
- "ease-in-out",
914
- "ease-out",
915
- "element",
916
- "ellipse",
917
- "ellipsis",
918
- "embed",
919
- "end",
920
- "ethiopic-abegede-gez",
921
- "ethiopic-halehame-aa-er",
922
- "ethiopic-halehame-gez",
923
- "ew-resize",
924
- "exclusion",
925
- "expanded",
926
- "extends",
927
- "extra-condensed",
928
- "extra-expanded",
929
- "fantasy",
930
- "fast",
931
- "fill",
932
- "fill-box",
933
- "fixed",
934
- "flat",
935
- "flex",
936
- "flex-end",
937
- "flex-start",
938
- "footnotes",
939
- "forwards",
940
- "from",
941
- "geometricPrecision",
942
- "graytext",
943
- "grid",
944
- "groove",
945
- "hand",
946
- "hard-light",
947
- "help",
948
- "hidden",
949
- "hide",
950
- "higher",
951
- "highlight",
952
- "highlighttext",
953
- "horizontal",
954
- "hsl",
955
- "hsla",
956
- "hue",
957
- "icon",
958
- "ignore",
959
- "inactiveborder",
960
- "inactivecaption",
961
- "inactivecaptiontext",
962
- "infinite",
963
- "infobackground",
964
- "infotext",
965
- "inherit",
966
- "initial",
967
- "inline",
968
- "inline-axis",
969
- "inline-block",
970
- "inline-flex",
971
- "inline-grid",
972
- "inline-table",
973
- "inset",
974
- "inside",
975
- "intrinsic",
976
- "invert",
977
- "italic",
978
- "justify",
979
- "keep-all",
980
- "landscape",
981
- "large",
982
- "larger",
983
- "left",
984
- "level",
985
- "lighter",
986
- "lighten",
987
- "line-through",
988
- "linear",
989
- "linear-gradient",
990
- "lines",
991
- "list-item",
992
- "listbox",
993
- "listitem",
994
- "local",
995
- "logical",
996
- "loud",
997
- "lower",
998
- "lower-hexadecimal",
999
- "lower-latin",
1000
- "lower-norwegian",
1001
- "lowercase",
1002
- "ltr",
1003
- "luminosity",
1004
- "manipulation",
1005
- "match",
1006
- "matrix",
1007
- "matrix3d",
1008
- "medium",
1009
- "menu",
1010
- "menutext",
1011
- "message-box",
1012
- "middle",
1013
- "min-intrinsic",
1014
- "mix",
1015
- "monospace",
1016
- "move",
1017
- "multiple",
1018
- "multiple_mask_images",
1019
- "multiply",
1020
- "n-resize",
1021
- "narrower",
1022
- "ne-resize",
1023
- "nesw-resize",
1024
- "no-close-quote",
1025
- "no-drop",
1026
- "no-open-quote",
1027
- "no-repeat",
1028
- "none",
1029
- "normal",
1030
- "not-allowed",
1031
- "nowrap",
1032
- "ns-resize",
1033
- "numbers",
1034
- "numeric",
1035
- "nw-resize",
1036
- "nwse-resize",
1037
- "oblique",
1038
- "opacity",
1039
- "open-quote",
1040
- "optimizeLegibility",
1041
- "optimizeSpeed",
1042
- "outset",
1043
- "outside",
1044
- "outside-shape",
1045
- "overlay",
1046
- "overline",
1047
- "padding",
1048
- "padding-box",
1049
- "painted",
1050
- "page",
1051
- "paused",
1052
- "perspective",
1053
- "pinch-zoom",
1054
- "plus-darker",
1055
- "plus-lighter",
1056
- "pointer",
1057
- "polygon",
1058
- "portrait",
1059
- "pre",
1060
- "pre-line",
1061
- "pre-wrap",
1062
- "preserve-3d",
1063
- "progress",
1064
- "push-button",
1065
- "radial-gradient",
1066
- "radio",
1067
- "read-only",
1068
- "read-write",
1069
- "read-write-plaintext-only",
1070
- "rectangle",
1071
- "region",
1072
- "relative",
1073
- "repeat",
1074
- "repeating-linear-gradient",
1075
- "repeating-radial-gradient",
1076
- "repeat-x",
1077
- "repeat-y",
1078
- "reset",
1079
- "reverse",
1080
- "rgb",
1081
- "rgba",
1082
- "ridge",
1083
- "right",
1084
- "rotate",
1085
- "rotate3d",
1086
- "rotateX",
1087
- "rotateY",
1088
- "rotateZ",
1089
- "round",
1090
- "row",
1091
- "row-resize",
1092
- "row-reverse",
1093
- "rtl",
1094
- "run-in",
1095
- "running",
1096
- "s-resize",
1097
- "sans-serif",
1098
- "saturation",
1099
- "scale",
1100
- "scale3d",
1101
- "scaleX",
1102
- "scaleY",
1103
- "scaleZ",
1104
- "screen",
1105
- "scroll",
1106
- "scrollbar",
1107
- "scroll-position",
1108
- "se-resize",
1109
- "self-start",
1110
- "self-end",
1111
- "semi-condensed",
1112
- "semi-expanded",
1113
- "separate",
1114
- "serif",
1115
- "show",
1116
- "single",
1117
- "skew",
1118
- "skewX",
1119
- "skewY",
1120
- "skip-white-space",
1121
- "slide",
1122
- "slider-horizontal",
1123
- "slider-vertical",
1124
- "sliderthumb-horizontal",
1125
- "sliderthumb-vertical",
1126
- "slow",
1127
- "small",
1128
- "small-caps",
1129
- "small-caption",
1130
- "smaller",
1131
- "soft-light",
1132
- "solid",
1133
- "source-atop",
1134
- "source-in",
1135
- "source-out",
1136
- "source-over",
1137
- "space",
1138
- "space-around",
1139
- "space-between",
1140
- "space-evenly",
1141
- "spell-out",
1142
- "square",
1143
- "start",
1144
- "static",
1145
- "status-bar",
1146
- "stretch",
1147
- "stroke",
1148
- "stroke-box",
1149
- "sub",
1150
- "subpixel-antialiased",
1151
- "svg_masks",
1152
- "super",
1153
- "sw-resize",
1154
- "symbolic",
1155
- "symbols",
1156
- "system-ui",
1157
- "table",
1158
- "table-caption",
1159
- "table-cell",
1160
- "table-column",
1161
- "table-column-group",
1162
- "table-footer-group",
1163
- "table-header-group",
1164
- "table-row",
1165
- "table-row-group",
1166
- "text",
1167
- "text-bottom",
1168
- "text-top",
1169
- "textarea",
1170
- "textfield",
1171
- "thick",
1172
- "thin",
1173
- "threeddarkshadow",
1174
- "threedface",
1175
- "threedhighlight",
1176
- "threedlightshadow",
1177
- "threedshadow",
1178
- "to",
1179
- "top",
1180
- "transform",
1181
- "translate",
1182
- "translate3d",
1183
- "translateX",
1184
- "translateY",
1185
- "translateZ",
1186
- "transparent",
1187
- "ultra-condensed",
1188
- "ultra-expanded",
1189
- "underline",
1190
- "unidirectional-pan",
1191
- "unset",
1192
- "up",
1193
- "upper-latin",
1194
- "uppercase",
1195
- "url",
1196
- "var",
1197
- "vertical",
1198
- "vertical-text",
1199
- "view-box",
1200
- "visible",
1201
- "visibleFill",
1202
- "visiblePainted",
1203
- "visibleStroke",
1204
- "visual",
1205
- "w-resize",
1206
- "wait",
1207
- "wave",
1208
- "wider",
1209
- "window",
1210
- "windowframe",
1211
- "windowtext",
1212
- "words",
1213
- "wrap",
1214
- "wrap-reverse",
1215
- "x-large",
1216
- "x-small",
1217
- "xor",
1218
- "xx-large",
1219
- "xx-small"
1220
- ].map((name) => ({ type: "keyword", label: name })).concat(/* @__PURE__ */ [
1221
- "aliceblue",
1222
- "antiquewhite",
1223
- "aqua",
1224
- "aquamarine",
1225
- "azure",
1226
- "beige",
1227
- "bisque",
1228
- "black",
1229
- "blanchedalmond",
1230
- "blue",
1231
- "blueviolet",
1232
- "brown",
1233
- "burlywood",
1234
- "cadetblue",
1235
- "chartreuse",
1236
- "chocolate",
1237
- "coral",
1238
- "cornflowerblue",
1239
- "cornsilk",
1240
- "crimson",
1241
- "cyan",
1242
- "darkblue",
1243
- "darkcyan",
1244
- "darkgoldenrod",
1245
- "darkgray",
1246
- "darkgreen",
1247
- "darkkhaki",
1248
- "darkmagenta",
1249
- "darkolivegreen",
1250
- "darkorange",
1251
- "darkorchid",
1252
- "darkred",
1253
- "darksalmon",
1254
- "darkseagreen",
1255
- "darkslateblue",
1256
- "darkslategray",
1257
- "darkturquoise",
1258
- "darkviolet",
1259
- "deeppink",
1260
- "deepskyblue",
1261
- "dimgray",
1262
- "dodgerblue",
1263
- "firebrick",
1264
- "floralwhite",
1265
- "forestgreen",
1266
- "fuchsia",
1267
- "gainsboro",
1268
- "ghostwhite",
1269
- "gold",
1270
- "goldenrod",
1271
- "gray",
1272
- "grey",
1273
- "green",
1274
- "greenyellow",
1275
- "honeydew",
1276
- "hotpink",
1277
- "indianred",
1278
- "indigo",
1279
- "ivory",
1280
- "khaki",
1281
- "lavender",
1282
- "lavenderblush",
1283
- "lawngreen",
1284
- "lemonchiffon",
1285
- "lightblue",
1286
- "lightcoral",
1287
- "lightcyan",
1288
- "lightgoldenrodyellow",
1289
- "lightgray",
1290
- "lightgreen",
1291
- "lightpink",
1292
- "lightsalmon",
1293
- "lightseagreen",
1294
- "lightskyblue",
1295
- "lightslategray",
1296
- "lightsteelblue",
1297
- "lightyellow",
1298
- "lime",
1299
- "limegreen",
1300
- "linen",
1301
- "magenta",
1302
- "maroon",
1303
- "mediumaquamarine",
1304
- "mediumblue",
1305
- "mediumorchid",
1306
- "mediumpurple",
1307
- "mediumseagreen",
1308
- "mediumslateblue",
1309
- "mediumspringgreen",
1310
- "mediumturquoise",
1311
- "mediumvioletred",
1312
- "midnightblue",
1313
- "mintcream",
1314
- "mistyrose",
1315
- "moccasin",
1316
- "navajowhite",
1317
- "navy",
1318
- "oldlace",
1319
- "olive",
1320
- "olivedrab",
1321
- "orange",
1322
- "orangered",
1323
- "orchid",
1324
- "palegoldenrod",
1325
- "palegreen",
1326
- "paleturquoise",
1327
- "palevioletred",
1328
- "papayawhip",
1329
- "peachpuff",
1330
- "peru",
1331
- "pink",
1332
- "plum",
1333
- "powderblue",
1334
- "purple",
1335
- "rebeccapurple",
1336
- "red",
1337
- "rosybrown",
1338
- "royalblue",
1339
- "saddlebrown",
1340
- "salmon",
1341
- "sandybrown",
1342
- "seagreen",
1343
- "seashell",
1344
- "sienna",
1345
- "silver",
1346
- "skyblue",
1347
- "slateblue",
1348
- "slategray",
1349
- "snow",
1350
- "springgreen",
1351
- "steelblue",
1352
- "tan",
1353
- "teal",
1354
- "thistle",
1355
- "tomato",
1356
- "turquoise",
1357
- "violet",
1358
- "wheat",
1359
- "white",
1360
- "whitesmoke",
1361
- "yellow",
1362
- "yellowgreen"
1363
- ].map((name) => ({ type: "constant", label: name })));
1364
- const tags = /* @__PURE__ */ [
1365
- "a",
1366
- "abbr",
1367
- "address",
1368
- "article",
1369
- "aside",
1370
- "b",
1371
- "bdi",
1372
- "bdo",
1373
- "blockquote",
1374
- "body",
1375
- "br",
1376
- "button",
1377
- "canvas",
1378
- "caption",
1379
- "cite",
1380
- "code",
1381
- "col",
1382
- "colgroup",
1383
- "dd",
1384
- "del",
1385
- "details",
1386
- "dfn",
1387
- "dialog",
1388
- "div",
1389
- "dl",
1390
- "dt",
1391
- "em",
1392
- "figcaption",
1393
- "figure",
1394
- "footer",
1395
- "form",
1396
- "header",
1397
- "hgroup",
1398
- "h1",
1399
- "h2",
1400
- "h3",
1401
- "h4",
1402
- "h5",
1403
- "h6",
1404
- "hr",
1405
- "html",
1406
- "i",
1407
- "iframe",
1408
- "img",
1409
- "input",
1410
- "ins",
1411
- "kbd",
1412
- "label",
1413
- "legend",
1414
- "li",
1415
- "main",
1416
- "meter",
1417
- "nav",
1418
- "ol",
1419
- "output",
1420
- "p",
1421
- "pre",
1422
- "ruby",
1423
- "section",
1424
- "select",
1425
- "small",
1426
- "source",
1427
- "span",
1428
- "strong",
1429
- "sub",
1430
- "summary",
1431
- "sup",
1432
- "table",
1433
- "tbody",
1434
- "td",
1435
- "template",
1436
- "textarea",
1437
- "tfoot",
1438
- "th",
1439
- "thead",
1440
- "tr",
1441
- "u",
1442
- "ul"
1443
- ].map((name) => ({ type: "type", label: name }));
1444
- const identifier$1 = /^[\w-]*/;
1445
- const cssCompletionSource = (context) => {
1446
- let { state, pos } = context, node = syntaxTree(state).resolveInner(pos, -1);
1447
- if (node.name == "PropertyName")
1448
- return { from: node.from, options: properties(), validFor: identifier$1 };
1449
- if (node.name == "ValueName")
1450
- return { from: node.from, options: values, validFor: identifier$1 };
1451
- if (node.name == "PseudoClassName")
1452
- return { from: node.from, options: pseudoClasses, validFor: identifier$1 };
1453
- if (node.name == "TagName") {
1454
- for (let { parent } = node; parent; parent = parent.parent)
1455
- if (parent.name == "Block")
1456
- return { from: node.from, options: properties(), validFor: identifier$1 };
1457
- return { from: node.from, options: tags, validFor: identifier$1 };
1458
- }
1459
- if (!context.explicit)
1460
- return null;
1461
- let above = node.resolve(pos), before = above.childBefore(pos);
1462
- if (before && before.name == ":" && above.name == "PseudoClassSelector")
1463
- return { from: pos, options: pseudoClasses, validFor: identifier$1 };
1464
- if (before && before.name == ":" && above.name == "Declaration" || above.name == "ArgList")
1465
- return { from: pos, options: values, validFor: identifier$1 };
1466
- if (above.name == "Block")
1467
- return { from: pos, options: properties(), validFor: identifier$1 };
1468
- return null;
1469
- };
1470
- const cssLanguage = /* @__PURE__ */ LRLanguage.define({
1471
- name: "css",
1472
- parser: /* @__PURE__ */ parser$1.configure({
1473
- props: [
1474
- /* @__PURE__ */ indentNodeProp.add({
1475
- Declaration: /* @__PURE__ */ continuedIndent()
1476
- }),
1477
- /* @__PURE__ */ foldNodeProp.add({
1478
- Block: foldInside
1479
- })
1480
- ]
1481
- }),
1482
- languageData: {
1483
- commentTokens: { block: { open: "/*", close: "*/" } },
1484
- indentOnInput: /^\s*\}$/,
1485
- wordChars: "-"
1486
- }
1487
- });
1488
- function css() {
1489
- return new LanguageSupport(cssLanguage, cssLanguage.data.of({ autocomplete: cssCompletionSource }));
1490
- }
1491
- const scriptText = 55, StartCloseScriptTag = 1, styleText = 56, StartCloseStyleTag = 2, textareaText = 57, StartCloseTextareaTag = 3, StartTag = 4, StartScriptTag = 5, StartStyleTag = 6, StartTextareaTag = 7, StartSelfClosingTag = 8, StartCloseTag = 9, NoMatchStartCloseTag = 10, MismatchedStartCloseTag = 11, missingCloseTag = 58, IncompleteCloseTag = 12, commentContent$1 = 59, Element = 19, TagName = 21, Attribute = 22, AttributeName = 23, AttributeValue = 25, UnquotedAttributeValue = 26, ScriptText = 28, StyleText = 31, TextareaText = 34, OpenTag = 36, CloseTag = 37, Dialect_noMatch = 0;
1492
- const selfClosers = {
1493
- area: true,
1494
- base: true,
1495
- br: true,
1496
- col: true,
1497
- command: true,
1498
- embed: true,
1499
- frame: true,
1500
- hr: true,
1501
- img: true,
1502
- input: true,
1503
- keygen: true,
1504
- link: true,
1505
- meta: true,
1506
- param: true,
1507
- source: true,
1508
- track: true,
1509
- wbr: true,
1510
- menuitem: true
1511
- };
1512
- const implicitlyClosed = {
1513
- dd: true,
1514
- li: true,
1515
- optgroup: true,
1516
- option: true,
1517
- p: true,
1518
- rp: true,
1519
- rt: true,
1520
- tbody: true,
1521
- td: true,
1522
- tfoot: true,
1523
- th: true,
1524
- tr: true
1525
- };
1526
- const closeOnOpen = {
1527
- dd: { dd: true, dt: true },
1528
- dt: { dd: true, dt: true },
1529
- li: { li: true },
1530
- option: { option: true, optgroup: true },
1531
- optgroup: { optgroup: true },
1532
- p: {
1533
- address: true,
1534
- article: true,
1535
- aside: true,
1536
- blockquote: true,
1537
- dir: true,
1538
- div: true,
1539
- dl: true,
1540
- fieldset: true,
1541
- footer: true,
1542
- form: true,
1543
- h1: true,
1544
- h2: true,
1545
- h3: true,
1546
- h4: true,
1547
- h5: true,
1548
- h6: true,
1549
- header: true,
1550
- hgroup: true,
1551
- hr: true,
1552
- menu: true,
1553
- nav: true,
1554
- ol: true,
1555
- p: true,
1556
- pre: true,
1557
- section: true,
1558
- table: true,
1559
- ul: true
1560
- },
1561
- rp: { rp: true, rt: true },
1562
- rt: { rp: true, rt: true },
1563
- tbody: { tbody: true, tfoot: true },
1564
- td: { td: true, th: true },
1565
- tfoot: { tbody: true },
1566
- th: { td: true, th: true },
1567
- thead: { tbody: true, tfoot: true },
1568
- tr: { tr: true }
1569
- };
1570
- function nameChar(ch) {
1571
- return ch == 45 || ch == 46 || ch == 58 || ch >= 65 && ch <= 90 || ch == 95 || ch >= 97 && ch <= 122 || ch >= 161;
1572
- }
1573
- function isSpace(ch) {
1574
- return ch == 9 || ch == 10 || ch == 13 || ch == 32;
1575
- }
1576
- let cachedName = null, cachedInput = null, cachedPos = 0;
1577
- function tagNameAfter(input, offset) {
1578
- let pos = input.pos + offset;
1579
- if (cachedPos == pos && cachedInput == input) return cachedName;
1580
- let next = input.peek(offset);
1581
- while (isSpace(next)) next = input.peek(++offset);
1582
- let name = "";
1583
- for (; ; ) {
1584
- if (!nameChar(next)) break;
1585
- name += String.fromCharCode(next);
1586
- next = input.peek(++offset);
1587
- }
1588
- cachedInput = input;
1589
- cachedPos = pos;
1590
- return cachedName = name ? name.toLowerCase() : next == question || next == bang ? void 0 : null;
1591
- }
1592
- const lessThan = 60, greaterThan = 62, slash = 47, question = 63, bang = 33, dash = 45;
1593
- function ElementContext(name, parent) {
1594
- this.name = name;
1595
- this.parent = parent;
1596
- this.hash = parent ? parent.hash : 0;
1597
- for (let i = 0; i < name.length; i++) this.hash += (this.hash << 4) + name.charCodeAt(i) + (name.charCodeAt(i) << 8);
1598
- }
1599
- const startTagTerms = [StartTag, StartSelfClosingTag, StartScriptTag, StartStyleTag, StartTextareaTag];
1600
- const elementContext = /* @__PURE__ */ new ContextTracker({
1601
- start: null,
1602
- shift(context, term, stack, input) {
1603
- return startTagTerms.indexOf(term) > -1 ? new ElementContext(tagNameAfter(input, 1) || "", context) : context;
1604
- },
1605
- reduce(context, term) {
1606
- return term == Element && context ? context.parent : context;
1607
- },
1608
- reuse(context, node, stack, input) {
1609
- let type = node.type.id;
1610
- return type == StartTag || type == OpenTag ? new ElementContext(tagNameAfter(input, 1) || "", context) : context;
1611
- },
1612
- hash(context) {
1613
- return context ? context.hash : 0;
1614
- },
1615
- strict: false
1616
- });
1617
- const tagStart = /* @__PURE__ */ new ExternalTokenizer((input, stack) => {
1618
- if (input.next != lessThan) {
1619
- if (input.next < 0 && stack.context) input.acceptToken(missingCloseTag);
1620
- return;
1621
- }
1622
- input.advance();
1623
- let close = input.next == slash;
1624
- if (close) input.advance();
1625
- let name = tagNameAfter(input, 0);
1626
- if (name === void 0) return;
1627
- if (!name) return input.acceptToken(close ? IncompleteCloseTag : StartTag);
1628
- let parent = stack.context ? stack.context.name : null;
1629
- if (close) {
1630
- if (name == parent) return input.acceptToken(StartCloseTag);
1631
- if (parent && implicitlyClosed[parent]) return input.acceptToken(missingCloseTag, -2);
1632
- if (stack.dialectEnabled(Dialect_noMatch)) return input.acceptToken(NoMatchStartCloseTag);
1633
- for (let cx = stack.context; cx; cx = cx.parent) if (cx.name == name) return;
1634
- input.acceptToken(MismatchedStartCloseTag);
1635
- } else {
1636
- if (name == "script") return input.acceptToken(StartScriptTag);
1637
- if (name == "style") return input.acceptToken(StartStyleTag);
1638
- if (name == "textarea") return input.acceptToken(StartTextareaTag);
1639
- if (selfClosers.hasOwnProperty(name)) return input.acceptToken(StartSelfClosingTag);
1640
- if (parent && closeOnOpen[parent] && closeOnOpen[parent][name]) input.acceptToken(missingCloseTag, -1);
1641
- else input.acceptToken(StartTag);
1642
- }
1643
- }, { contextual: true });
1644
- const commentContent = /* @__PURE__ */ new ExternalTokenizer((input) => {
1645
- for (let dashes = 0, i = 0; ; i++) {
1646
- if (input.next < 0) {
1647
- if (i) input.acceptToken(commentContent$1);
1648
- break;
1649
- }
1650
- if (input.next == dash) {
1651
- dashes++;
1652
- } else if (input.next == greaterThan && dashes >= 2) {
1653
- if (i > 3) input.acceptToken(commentContent$1, -2);
1654
- break;
1655
- } else {
1656
- dashes = 0;
1657
- }
1658
- input.advance();
1659
- }
1660
- });
1661
- function contentTokenizer(tag, textToken, endToken) {
1662
- let lastState = 2 + tag.length;
1663
- return new ExternalTokenizer((input) => {
1664
- for (let state = 0, matchedLen = 0, i = 0; ; i++) {
1665
- if (input.next < 0) {
1666
- if (i) input.acceptToken(textToken);
1667
- break;
1668
- }
1669
- if (state == 0 && input.next == lessThan || state == 1 && input.next == slash || state >= 2 && state < lastState && input.next == tag.charCodeAt(state - 2)) {
1670
- state++;
1671
- matchedLen++;
1672
- } else if ((state == 2 || state == lastState) && isSpace(input.next)) {
1673
- matchedLen++;
1674
- } else if (state == lastState && input.next == greaterThan) {
1675
- if (i > matchedLen)
1676
- input.acceptToken(textToken, -matchedLen);
1677
- else
1678
- input.acceptToken(endToken, -(matchedLen - 2));
1679
- break;
1680
- } else if ((input.next == 10 || input.next == 13) && i) {
1681
- input.acceptToken(textToken, 1);
1682
- break;
1683
- } else {
1684
- state = matchedLen = 0;
1685
- }
1686
- input.advance();
1687
- }
1688
- });
1689
- }
1690
- const scriptTokens = /* @__PURE__ */ contentTokenizer("script", scriptText, StartCloseScriptTag);
1691
- const styleTokens = /* @__PURE__ */ contentTokenizer("style", styleText, StartCloseStyleTag);
1692
- const textareaTokens = /* @__PURE__ */ contentTokenizer("textarea", textareaText, StartCloseTextareaTag);
1693
- const htmlHighlighting = /* @__PURE__ */ styleTags({
1694
- "Text RawText": tags$1.content,
1695
- "StartTag StartCloseTag SelfClosingEndTag EndTag": tags$1.angleBracket,
1696
- TagName: tags$1.tagName,
1697
- "MismatchedCloseTag/TagName": [tags$1.tagName, tags$1.invalid],
1698
- AttributeName: tags$1.attributeName,
1699
- "AttributeValue UnquotedAttributeValue": tags$1.attributeValue,
1700
- Is: tags$1.definitionOperator,
1701
- "EntityReference CharacterReference": tags$1.character,
1702
- Comment: tags$1.blockComment,
1703
- ProcessingInst: tags$1.processingInstruction,
1704
- DoctypeDecl: tags$1.documentMeta
1705
- });
1706
- const parser = /* @__PURE__ */ LRParser.deserialize({
1707
- version: 14,
1708
- states: ",xOVOxOOO!ZQ!bO'#CpO!`Q!bO'#CzO!eQ!bO'#C}O!jQ!bO'#DQO!oQ!bO'#DSO!tOXO'#CoO#POYO'#CoO#[O[O'#CoO$kOxO'#CoOOOW'#Co'#CoO$rO!rO'#DUO$zQ!bO'#DWO%PQ!bO'#DXOOOW'#Dl'#DlOOOW'#DZ'#DZQVOxOOO%UQ#tO,59[O%^Q#tO,59fO%fQ#tO,59iO%nQ#tO,59lO%yQ#tO,59nOOOX'#D_'#D_O&ROXO'#CxO&^OXO,59ZOOOY'#D`'#D`O&fOYO'#C{O&qOYO,59ZOOO['#Da'#DaO&yO[O'#DOO'UO[O,59ZOOOW'#Db'#DbO'^OxO,59ZO'eQ!bO'#DROOOW,59Z,59ZOOO`'#Dc'#DcO'jO!rO,59pOOOW,59p,59pO'rQ!bO,59rO'wQ!bO,59sOOOW-E7X-E7XO'|Q#tO'#CrOOQO'#D['#D[O([Q#tO1G.vOOOX1G.v1G.vO(dQ#tO1G/QOOOY1G/Q1G/QO(lQ#tO1G/TOOO[1G/T1G/TO(tQ#tO1G/WOOOW1G/W1G/WOOOW1G/Y1G/YO)PQ#tO1G/YOOOX-E7]-E7]O)XQ!bO'#CyOOOW1G.u1G.uOOOY-E7^-E7^O)^Q!bO'#C|OOO[-E7_-E7_O)cQ!bO'#DPOOOW-E7`-E7`O)hQ!bO,59mOOO`-E7a-E7aOOOW1G/[1G/[OOOW1G/^1G/^OOOW1G/_1G/_O)mQ&jO,59^OOQO-E7Y-E7YOOOX7+$b7+$bOOOY7+$l7+$lOOO[7+$o7+$oOOOW7+$r7+$rOOOW7+$t7+$tO)xQ!bO,59eO)}Q!bO,59hO*SQ!bO,59kOOOW1G/X1G/XO*XO,UO'#CuO*jO7[O'#CuOOQO1G.x1G.xOOOW1G/P1G/POOOW1G/S1G/SOOOW1G/V1G/VOOOO'#D]'#D]O*{O,UO,59aOOQO,59a,59aOOOO'#D^'#D^O+^O7[O,59aOOOO-E7Z-E7ZOOQO1G.{1G.{OOOO-E7[-E7[",
1709
- stateData: "+}~O!_OS~OSSOTPOUQOVROWTOY]OZ[O[^O^^O_^O`^Oa^Ob^Oy^O|_O!eZO~OeaO~OebO~OecO~OedO~OeeO~O!XfOPlP![lP~O!YiOQoP![oP~O!ZlORrP![rP~OSSOTPOUQOVROWTOXqOY]OZ[O[^O^^O_^O`^Oa^Ob^Oy^O!eZO~O![rO~P#gO!]sO!fuO~OevO~OewO~OgyOk|O~OgyOk!OO~OgyOk!QO~OgyOk!SOw!TO~OgyOk!TO~O!XfOPlX![lX~OP!WO![!XO~O!YiOQoX![oX~OQ!ZO![!XO~O!ZlORrX![rX~OR!]O![!XO~O![!XO~P#gOe!_O~O!]sO!f!aO~Ok!bO~Ok!cO~Oh!dOgfXkfXwfX~OgyOk!fO~OgyOk!gO~OgyOk!hO~OgyOk!iOw!jO~OgyOk!jO~Oe!kO~Oe!lO~Oe!mO~Ok!nO~Oj!qO!a!oO!c!pO~Ok!rO~Ok!sO~Ok!tO~O`!uOa!uOb!uO!a!wO!b!uO~O`!xOa!xOb!xO!c!wO!d!xO~O`!uOa!uOb!uO!a!{O!b!uO~O`!xOa!xOb!xO!c!{O!d!xO~Ow~_^w!ey|ak`b`~",
1710
- goto: "%q!aPPPPPPPPPPPPPPPPPPP!b!hP!nPP!zPP!}#Q#T#Z#^#a#g#j#m#s#yP!bP!b!bP$P$V$m$s$y%P%V%]%cPPPPPPPP%iX^OX`pXUOX`pezabcde{}!P!R!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ}bQ!PcQ!RdQ!UeZ!e{}!P!R!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp",
1711
- nodeNames: "⚠ StartCloseTag StartCloseTag StartCloseTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteCloseTag Document Text Resolvable EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue EndTag ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag SelfClosingEndTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl",
1712
- maxTerm: 68,
1713
- context: elementContext,
1714
- nodeProps: [
1715
- ["closedBy", -10, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, "EndTag", 4, "EndTag SelfClosingEndTag", -4, 20, 30, 33, 36, "CloseTag"],
1716
- ["group", -10, 12, 15, 16, 17, 18, 19, 40, 41, 42, 43, "Entity", 14, "Entity TextContent", -3, 28, 31, 34, "TextContent Entity"],
1717
- ["openedBy", 27, "StartTag StartCloseTag", -4, 29, 32, 35, 37, "OpenTag", 39, "StartTag"]
1718
- ],
1719
- propSources: [htmlHighlighting],
1720
- skippedNodes: [0],
1721
- repeatNodeCount: 9,
1722
- tokenData: "&(b!aR!ZOX$tXY3aYZ3aZ[$t[]&b]^3a^p$tpq3aqr4trsBjsv4tvwC`wx!*Tx}4t}!O!*|!O!P4t!P!Q!0_!Q![4t![!]!3O!]!^4t!^!_!7Z!_!`#5r!`!a#6p!a!c4t!c!}!3O!}#R4t#R#S!3O#S#T:r#T#o!3O#o#p#7n#p#s4t#s$f$t$f%W4t%W%o!3O%o%p4t%p&a!3O&a&b4t&b1p!3O1p4U4t4U4d!3O4d4e4t4e$IS!3O$IS$I`4t$I`$Ib!3O$Ib$Kh4t$Kh%#t!3O%#t&/x4t&/x&Et!3O&Et&FV4t&FV;'S!3O;'S;:j!7T;:j;=`Bd<%l?&r4t?&r?Ah!3O?Ah?BY$t?BY?Mn!3O?MnO$t!Z%PejW!b`!dp^POX$tXZ&bZ[$t[^&b^p$tpq&bqr$trs'^sv$tvw/Vwx*yx!^$t!^!_-]!_!a&b!a#S$t#S#T&b#T#o$t#o#p0Q#p;'S$t;'S;=`3Z<%lO$t!R&kZ!b`!dp^POr&brs'^sv&bwx*yx!^&b!^!_-]!_#o&b#o#p.P#p;'S&b;'S;=`/P<%lO&bq'eX!dp^POv'^wx(Qx!^'^!^!_)d!_#o'^#o#p){#p;'S'^;'S;=`*s<%lO'^P(VV^POv(Qw!^(Q!_#o(Q#o#p(l#p;'S(Q;'S;=`)X<%lO(QP(oWOv(Qw!^(Q!_#o(Q#p;'S(Q;'S;=`)X<%l~(Q~O(Q~~)_P)[P;=`<%l(QP)dO^Pp)iS!dpOv)dx;'S)d;'S;=`)u<%lO)dp)xP;=`<%l)dq*QZ!dpOv'^wx(Qx!^'^!^!_)d!_#o'^#o#p)d#p;'S'^;'S;=`*s<%l~'^~O'^~~)_q*vP;=`<%l'^a+QY!b`^POr*yrs(Qsv*yw!^*y!^!_+p!_#o*y#o#p,[#p;'S*y;'S;=`-V<%lO*y`+uT!b`Or+psv+pw;'S+p;'S;=`,U<%lO+p`,XP;=`<%l+pa,a[!b`Or*yrs(Qsv*yw!^*y!^!_+p!_#o*y#o#p+p#p;'S*y;'S;=`-V<%l~*y~O*y~~)_a-YP;=`<%l*y!Q-dV!b`!dpOr-]rs)dsv-]wx+px;'S-];'S;=`-y<%lO-]!Q-|P;=`<%l-]!R.W]!b`!dpOr&brs'^sv&bwx*yx!^&b!^!_-]!_#o&b#o#p-]#p;'S&b;'S;=`/P<%l~&b~O&b~~)_!R/SP;=`<%l&bW/[YjWOX/VZ[/V^p/Vqr/Vsw/Vx!^/V!a#S/V#T;'S/V;'S;=`/z<%lO/VW/}P;=`<%l/V!Z0ZgjW!b`!dpOX$tXZ&bZ[$t[^&b^p$tpq&bqr$trs'^sv$tvw/Vwx*yx!^$t!^!_-]!_!a&b!a#S$t#S#T&b#T#o$t#o#p1r#p;'S$t;'S;=`3Z<%l~$t~O$t~~)_!Y1{bjW!b`!dpOX1rXZ-]Z[1r[^-]^p1rpq-]qr1rrs)dsv1rvw/Vwx+px!^1r!^!a-]!a#S1r#S#T-]#T;'S1r;'S;=`3T<%lO1r!Y3WP;=`<%l1r!Z3^P;=`<%l$t!a3lb!b`!dp!_^^POX&bXY3aYZ3aZ]&b]^3a^p&bpq3aqr&brs'^sv&bwx*yx!^&b!^!_-]!_#o&b#o#p.P#p;'S&b;'S;=`/P<%lO&b!_5RlgSjW!b`!dp^POX$tXZ&bZ[$t[^&b^p$tpq&bqr4trs'^sv4tvw6ywx*yx!P4t!P!Q$t!Q!^4t!^!_9Z!_!a&b!a#S4t#S#T:r#T#o4t#o#p>W#p#s4t#s$f$t$f;'S4t;'S;=`Bd<%l?Ah4t?Ah?BY$t?BY?Mn4t?MnO$t[7QcgSjWOX/VZ[/V^p/Vqr6ysw6yx!P6y!P!Q/V!Q!^6y!^!_8]!a#S6y#S#T8]#T#s6y#s$f/V$f;'S6y;'S;=`9T<%l?Ah6y?Ah?BY/V?BY?Mn6y?MnO/VS8bXgSqr8]sw8]x!P8]!Q!_8]!a#s8]$f;'S8];'S;=`8}<%l?Ah8]?BY?Mn8]S9QP;=`<%l8][9WP;=`<%l6y!U9dbgS!b`!dpOq-]qr9Zrs)dsv9Zvw8]wx+px!P9Z!P!Q-]!Q!_9Z!_!a-]!a#s9Z#s$f-]$f;'S9Z;'S;=`:l<%l?Ah9Z?Ah?BY-]?BY?Mn9Z?MnO-]!U:oP;=`<%l9Z!V:}egS!b`!dp^POq&bqr:rrs'^sv:rvw8]wx*yx!P:r!P!Q&b!Q!^:r!^!_9Z!_!a&b!a#o:r#o#p<`#p#s:r#s$f&b$f;'S:r;'S;=`>Q<%l?Ah:r?Ah?BY&b?BY?Mn:r?MnO&b!V<iggS!b`!dpOq&bqr:rrs'^sv:rvw8]wx*yx!P:r!P!Q&b!Q!^:r!^!_9Z!_!a&b!a#o:r#o#p9Z#p#s:r#s$f&b$f;'S:r;'S;=`>Q<%l?Ah:r?Ah?BY&b?BY?Mn:r?Mn~&b~O&b~~)_!V>TP;=`<%l:r!_>cngSjW!b`!dpOX$tXZ&bZ[$t[^&b^p$tpq&bqr4trs'^sv4tvw6ywx*yx!P4t!P!Q$t!Q!^4t!^!_9Z!_!a&b!a#S4t#S#T:r#T#o4t#o#p@a#p#s4t#s$f$t$f;'S4t;'S;=`Bd<%l?Ah4t?Ah?BY$t?BY?Mn4t?Mn~$t~O$t~~)_!^@ljgSjW!b`!dpOX1rXZ-]Z[1r[^-]^p1rpq-]qr@ars)dsv@avw6ywx+px!P@a!P!Q1r!Q!^@a!^!_9Z!_!a-]!a#S@a#S#T9Z#T#s@a#s$f1r$f;'S@a;'S;=`B^<%l?Ah@a?Ah?BY1r?BY?Mn@a?MnO1r!^BaP;=`<%l@a!_BgP;=`<%l4t!ZBsX!ah!dp^POv'^wx(Qx!^'^!^!_)d!_#o'^#o#p){#p;'S'^;'S;=`*s<%lO'^!_CijgSjWb!ROXEZXZFhZ[EZ[^Fh^pEZqrHYrsFhstMztwHYwxFhx!PHY!P!QEZ!Q!]HY!]!^6y!^!_Kg!_!aFh!a#SHY#S#TKg#T#sHY#s$fEZ$f;'SHY;'S;=`Mt<%l?AhHY?Ah?BYEZ?BY?MnHY?MnOEZ!ZE`bjWOXEZXZFhZ[EZ[^Fh^pEZqrEZrsFhst/VtwEZwxFhx!]EZ!]!^G]!^!aFh!a#SEZ#S#TFh#T;'SEZ;'S;=`HS<%lOEZ!RFkVOpFhqsFht!]Fh!]!^GQ!^;'SFh;'S;=`GV<%lOFh!RGVO`!R!RGYP;=`<%lFh!ZGdYjW`!ROX/VZ[/V^p/Vqr/Vsw/Vx!^/V!a#S/V#T;'S/V;'S;=`/z<%lO/V!ZHVP;=`<%lEZ!_HajgSjWOXEZXZFhZ[EZ[^Fh^pEZqrHYrsFhst6ytwHYwxFhx!PHY!P!QEZ!Q!]HY!]!^JR!^!_Kg!_!aFh!a#SHY#S#TKg#T#sHY#s$fEZ$f;'SHY;'S;=`Mt<%l?AhHY?Ah?BYEZ?BY?MnHY?MnOEZ!_J[cgSjW`!ROX/VZ[/V^p/Vqr6ysw6yx!P6y!P!Q/V!Q!^6y!^!_8]!a#S6y#S#T8]#T#s6y#s$f/V$f;'S6y;'S;=`9T<%l?Ah6y?Ah?BY/V?BY?Mn6y?MnO/V!VKldgSOpFhqrKgrsFhst8]twKgwxFhx!PKg!P!QFh!Q!]Kg!]!^Lz!^!_Kg!_!aFh!a#sKg#s$fFh$f;'SKg;'S;=`Mn<%l?AhKg?Ah?BYFh?BY?MnKg?MnOFh!VMRXgS`!Rqr8]sw8]x!P8]!Q!_8]!a#s8]$f;'S8];'S;=`8}<%l?Ah8]?BY?Mn8]!VMqP;=`<%lKg!_MwP;=`<%lHY!_NRigSjWOX! pXZ!!zZ[! p[^!!z^p! pqr!$irs!!zsw!$iwx!!zx!P!$i!P!Q! p!Q!]!$i!]!^6y!^!_!'s!_!a!!z!a#S!$i#S#T!'s#T#s!$i#s$f! p$f;'S!$i;'S;=`!)}<%l?Ah!$i?Ah?BY! p?BY?Mn!$i?MnO! p!Z! uajWOX! pXZ!!zZ[! p[^!!z^p! pqr! prs!!zsw! pwx!!zx!]! p!]!^!#l!^!a!!z!a#S! p#S#T!!z#T;'S! p;'S;=`!$c<%lO! p!R!!}UOp!!zq!]!!z!]!^!#a!^;'S!!z;'S;=`!#f<%lO!!z!R!#fOa!R!R!#iP;=`<%l!!z!Z!#sYjWa!ROX/VZ[/V^p/Vqr/Vsw/Vx!^/V!a#S/V#T;'S/V;'S;=`/z<%lO/V!Z!$fP;=`<%l! p!_!$pigSjWOX! pXZ!!zZ[! p[^!!z^p! pqr!$irs!!zsw!$iwx!!zx!P!$i!P!Q! p!Q!]!$i!]!^!&_!^!_!'s!_!a!!z!a#S!$i#S#T!'s#T#s!$i#s$f! p$f;'S!$i;'S;=`!)}<%l?Ah!$i?Ah?BY! p?BY?Mn!$i?MnO! p!_!&hcgSjWa!ROX/VZ[/V^p/Vqr6ysw6yx!P6y!P!Q/V!Q!^6y!^!_8]!a#S6y#S#T8]#T#s6y#s$f/V$f;'S6y;'S;=`9T<%l?Ah6y?Ah?BY/V?BY?Mn6y?MnO/V!V!'xcgSOp!!zqr!'srs!!zsw!'swx!!zx!P!'s!P!Q!!z!Q!]!'s!]!^!)T!^!_!'s!_!a!!z!a#s!'s#s$f!!z$f;'S!'s;'S;=`!)w<%l?Ah!'s?Ah?BY!!z?BY?Mn!'s?MnO!!z!V!)[XgSa!Rqr8]sw8]x!P8]!Q!_8]!a#s8]$f;'S8];'S;=`8}<%l?Ah8]?BY?Mn8]!V!)zP;=`<%l!'s!_!*QP;=`<%l!$i!Z!*^Y!cx!b`^POr*yrs(Qsv*yw!^*y!^!_+p!_#o*y#o#p,[#p;'S*y;'S;=`-V<%lO*y!a!+ZngSjW!b`!dp^POX$tXZ&bZ[$t[^&b^p$tpq&bqr4trs'^sv4tvw6ywx*yx}4t}!O!-X!O!P4t!P!Q$t!Q!^4t!^!_9Z!_!a&b!a#S4t#S#T:r#T#o4t#o#p>W#p#s4t#s$f$t$f;'S4t;'S;=`Bd<%l?Ah4t?Ah?BY$t?BY?Mn4t?MnO$t!a!-fmgSjW!b`!dp^POX$tXZ&bZ[$t[^&b^p$tpq&bqr4trs'^sv4tvw6ywx*yx!P4t!P!Q$t!Q!^4t!^!_9Z!_!`&b!`!a!/a!a#S4t#S#T:r#T#o4t#o#p>W#p#s4t#s$f$t$f;'S4t;'S;=`Bd<%l?Ah4t?Ah?BY$t?BY?Mn4t?MnO$t!T!/lZ!b`!dp!fQ^POr&brs'^sv&bwx*yx!^&b!^!_-]!_#o&b#o#p.P#p;'S&b;'S;=`/P<%lO&b!a!0jfjW!b`!dp^POX$tXZ&bZ[$t[^&b^p$tpq&bqr$trs'^sv$tvw/Vwx*yx!^$t!^!_-]!_!`&b!`!a!2O!a#S$t#S#T&b#T#o$t#o#p0Q#p;'S$t;'S;=`3Z<%lO$t!X!2]Z!b`!dp^PwSkUOr&brs'^sv&bwx*yx!^&b!^!_-]!_#o&b#o#p.P#p;'S&b;'S;=`/P<%lO&b!a!3_![gSeQjW!b`!dp^POX$tXZ&bZ[$t[^&b^p$tpq&bqr4trs'^sv4tvw6ywx*yx}4t}!O!3O!O!P!3O!P!Q$t!Q![!3O![!]!3O!]!^4t!^!_9Z!_!a&b!a!c4t!c!}!3O!}#R4t#R#S!3O#S#T:r#T#o!3O#o#p>W#p#s4t#s$f$t$f$}4t$}%O!3O%O%W4t%W%o!3O%o%p4t%p&a!3O&a&b4t&b1p!3O1p4U!3O4U4d!3O4d4e4t4e$IS!3O$IS$I`4t$I`$Ib!3O$Ib$Je4t$Je$Jg!3O$Jg$Kh4t$Kh%#t!3O%#t&/x4t&/x&Et!3O&Et&FV4t&FV;'S!3O;'S;:j!7T;:j;=`Bd<%l?&r4t?&r?Ah!3O?Ah?BY$t?BY?Mn!3O?MnO$t!a!7WP;=`<%l!3O!V!7dcgS!b`!dpOq-]qr!8ors)dsv9Zvw8]wx+px!P9Z!P!Q-]!Q!_9Z!_!a-]!a!b#(|!b#s9Z#s$f-]$f;'S9Z;'S;=`:l<%l?Ah9Z?Ah?BY-]?BY?Mn9Z?MnO-]!V!8xhgS!b`!dpOq-]qr9Zrs)dsv9Zvw8]wx+px}9Z}!O!:d!O!P9Z!P!Q-]!Q!_9Z!_!a-]!a!f9Z!f!g!=`!g#W9Z#W#X!M|#X#s9Z#s$f-]$f;'S9Z;'S;=`:l<%l?Ah9Z?Ah?BY-]?BY?Mn9Z?MnO-]!V!:mdgS!b`!dpOq-]qr9Zrs)dsv9Zvw8]wx+px}9Z}!O!;{!O!P9Z!P!Q-]!Q!_9Z!_!a-]!a#s9Z#s$f-]$f;'S9Z;'S;=`:l<%l?Ah9Z?Ah?BY-]?BY?Mn9Z?MnO-]!V!<WbgS!b`!dp!ePOq-]qr9Zrs)dsv9Zvw8]wx+px!P9Z!P!Q-]!Q!_9Z!_!a-]!a#s9Z#s$f-]$f;'S9Z;'S;=`:l<%l?Ah9Z?Ah?BY-]?BY?Mn9Z?MnO-]!V!=idgS!b`!dpOq-]qr9Zrs)dsv9Zvw8]wx+px!P9Z!P!Q-]!Q!_9Z!_!a-]!a!q9Z!q!r!>w!r#s9Z#s$f-]$f;'S9Z;'S;=`:l<%l?Ah9Z?Ah?BY-]?BY?Mn9Z?MnO-]!V!?QdgS!b`!dpOq-]qr9Zrs)dsv9Zvw8]wx+px!P9Z!P!Q-]!Q!_9Z!_!a-]!a!e9Z!e!f!@`!f#s9Z#s$f-]$f;'S9Z;'S;=`:l<%l?Ah9Z?Ah?BY-]?BY?Mn9Z?MnO-]!V!@idgS!b`!dpOq-]qr9Zrs)dsv9Zvw8]wx+px!P9Z!P!Q-]!Q!_9Z!_!a-]!a!v9Z!v!w!Aw!w#s9Z#s$f-]$f;'S9Z;'S;=`:l<%l?Ah9Z?Ah?BY-]?BY?Mn9Z?MnO-]!V!BQdgS!b`!dpOq-]qr9Zrs)dsv9Zvw8]wx+px!P9Z!P!Q-]!Q!_9Z!_!a-]!a!{9Z!{!|!C`!|#s9Z#s$f-]$f;'S9Z;'S;=`:l<%l?Ah9Z?Ah?BY-]?BY?Mn9Z?MnO-]!V!CidgS!b`!dpOq-]qr9Zrs)dsv9Zvw8]wx+px!P9Z!P!Q-]!Q!_9Z!_!a-]!a!r9Z!r!s!Dw!s#s9Z#s$f-]$f;'S9Z;'S;=`:l<%l?Ah9Z?Ah?BY-]?BY?Mn9Z?MnO-]!V!EQdgS!b`!dpOq-]qr9Zrs)dsv9Zvw8]wx+px!P9Z!P!Q-]!Q!_9Z!_!a-]!a!g9Z!g!h!F`!h#s9Z#s$f-]$f;'S9Z;'S;=`:l<%l?Ah9Z?Ah?BY-]?BY?Mn9Z?MnO-]!V!FicgS!b`!dpOq!Gtqr!F`rs!Hksv!F`vw!Lcwx!J_x!P!F`!P!Q!Gt!Q!_!F`!_!`!Gt!`!a!Km!a#s!F`#s$f!Gt$f;'S!F`;'S;=`!Mv<%l?Ah!F`?Ah?BY!Gt?BY?Mn!F`?MnO!Gt!R!G{Y!b`!dpOr!Gtrs!Hksv!Gtvw!IVwx!J_x!`!Gt!`!a!Km!a;'S!Gt;'S;=`!L]<%lO!Gtq!HpV!dpOv!Hkvx!IVx!`!Hk!`!a!It!a;'S!Hk;'S;=`!JX<%lO!HkP!IYTO!`!IV!`!a!Ii!a;'S!IV;'S;=`!In<%lO!IVP!InO|PP!IqP;=`<%l!IVq!I{S!dp|POv)dx;'S)d;'S;=`)u<%lO)dq!J[P;=`<%l!Hka!JdX!b`Or!J_rs!IVsv!J_vw!IVw!`!J_!`!a!KP!a;'S!J_;'S;=`!Kg<%lO!J_a!KWT!b`|POr+psv+pw;'S+p;'S;=`,U<%lO+pa!KjP;=`<%l!J_!R!KvV!b`!dp|POr-]rs)dsv-]wx+px;'S-];'S;=`-y<%lO-]!R!L`P;=`<%l!GtT!LhbgSOq!IVqr!Lcrs!IVsw!Lcwx!IVx!P!Lc!P!Q!IV!Q!_!Lc!_!`!IV!`!a!Ii!a#s!Lc#s$f!IV$f;'S!Lc;'S;=`!Mp<%l?Ah!Lc?Ah?BY!IV?BY?Mn!Lc?MnO!IVT!MsP;=`<%l!Lc!V!MyP;=`<%l!F`!V!NVdgS!b`!dpOq-]qr9Zrs)dsv9Zvw8]wx+px!P9Z!P!Q-]!Q!_9Z!_!a-]!a#c9Z#c#d# e#d#s9Z#s$f-]$f;'S9Z;'S;=`:l<%l?Ah9Z?Ah?BY-]?BY?Mn9Z?MnO-]!V# ndgS!b`!dpOq-]qr9Zrs)dsv9Zvw8]wx+px!P9Z!P!Q-]!Q!_9Z!_!a-]!a#V9Z#V#W#!|#W#s9Z#s$f-]$f;'S9Z;'S;=`:l<%l?Ah9Z?Ah?BY-]?BY?Mn9Z?MnO-]!V##VdgS!b`!dpOq-]qr9Zrs)dsv9Zvw8]wx+px!P9Z!P!Q-]!Q!_9Z!_!a-]!a#h9Z#h#i#$e#i#s9Z#s$f-]$f;'S9Z;'S;=`:l<%l?Ah9Z?Ah?BY-]?BY?Mn9Z?MnO-]!V#$ndgS!b`!dpOq-]qr9Zrs)dsv9Zvw8]wx+px!P9Z!P!Q-]!Q!_9Z!_!a-]!a#m9Z#m#n#%|#n#s9Z#s$f-]$f;'S9Z;'S;=`:l<%l?Ah9Z?Ah?BY-]?BY?Mn9Z?MnO-]!V#&VdgS!b`!dpOq-]qr9Zrs)dsv9Zvw8]wx+px!P9Z!P!Q-]!Q!_9Z!_!a-]!a#d9Z#d#e#'e#e#s9Z#s$f-]$f;'S9Z;'S;=`:l<%l?Ah9Z?Ah?BY-]?BY?Mn9Z?MnO-]!V#'ndgS!b`!dpOq-]qr9Zrs)dsv9Zvw8]wx+px!P9Z!P!Q-]!Q!_9Z!_!a-]!a#X9Z#X#Y!F`#Y#s9Z#s$f-]$f;'S9Z;'S;=`:l<%l?Ah9Z?Ah?BY-]?BY?Mn9Z?MnO-]!V#)VcgS!b`!dpOq#*bqr#(|rs#+Xsv#(|vw#1fwx#-yx!P#(|!P!Q#*b!Q!_#(|!_!a#*b!a!b#4W!b#s#(|#s$f#*b$f;'S#(|;'S;=`#5l<%l?Ah#(|?Ah?BY#*b?BY?Mn#(|?MnO#*b!R#*iY!b`!dpOr#*brs#+Xsv#*bvw#+swx#-yx!a#*b!a!b#/y!b;'S#*b;'S;=`#1`<%lO#*bq#+^V!dpOv#+Xvx#+sx!a#+X!a!b#,t!b;'S#+X;'S;=`#-s<%lO#+XP#+vTO!a#+s!a!b#,V!b;'S#+s;'S;=`#,n<%lO#+sP#,YTO!`#+s!`!a#,i!a;'S#+s;'S;=`#,n<%lO#+sP#,nOyPP#,qP;=`<%l#+sq#,yV!dpOv#+Xvx#+sx!`#+X!`!a#-`!a;'S#+X;'S;=`#-s<%lO#+Xq#-gS!dpyPOv)dx;'S)d;'S;=`)u<%lO)dq#-vP;=`<%l#+Xa#.OX!b`Or#-yrs#+ssv#-yvw#+sw!a#-y!a!b#.k!b;'S#-y;'S;=`#/s<%lO#-ya#.pX!b`Or#-yrs#+ssv#-yvw#+sw!`#-y!`!a#/]!a;'S#-y;'S;=`#/s<%lO#-ya#/dT!b`yPOr+psv+pw;'S+p;'S;=`,U<%lO+pa#/vP;=`<%l#-y!R#0QY!b`!dpOr#*brs#+Xsv#*bvw#+swx#-yx!`#*b!`!a#0p!a;'S#*b;'S;=`#1`<%lO#*b!R#0yV!b`!dpyPOr-]rs)dsv-]wx+px;'S-];'S;=`-y<%lO-]!R#1cP;=`<%l#*bT#1kbgSOq#+sqr#1frs#+ssw#1fwx#+sx!P#1f!P!Q#+s!Q!_#1f!_!a#+s!a!b#2s!b#s#1f#s$f#+s$f;'S#1f;'S;=`#4Q<%l?Ah#1f?Ah?BY#+s?BY?Mn#1f?MnO#+sT#2xbgSOq#+sqr#1frs#+ssw#1fwx#+sx!P#1f!P!Q#+s!Q!_#1f!_!`#+s!`!a#,i!a#s#1f#s$f#+s$f;'S#1f;'S;=`#4Q<%l?Ah#1f?Ah?BY#+s?BY?Mn#1f?MnO#+sT#4TP;=`<%l#1f!V#4acgS!b`!dpOq#*bqr#(|rs#+Xsv#(|vw#1fwx#-yx!P#(|!P!Q#*b!Q!_#(|!_!`#*b!`!a#0p!a#s#(|#s$f#*b$f;'S#(|;'S;=`#5l<%l?Ah#(|?Ah?BY#*b?BY?Mn#(|?MnO#*b!V#5oP;=`<%l#(|!V#5}ZhS!b`!dp^POr&brs'^sv&bwx*yx!^&b!^!_-]!_#o&b#o#p.P#p;'S&b;'S;=`/P<%lO&b!X#6{Z!b`!dp^PkUOr&brs'^sv&bwx*yx!^&b!^!_-]!_#o&b#o#p.P#p;'S&b;'S;=`/P<%lO&b!_#7yngSjW!b`!dpOX$tXZ&bZ[$t[^&b^p$tpq&bqr4trs'^sv4tvw6ywx*yx!P4t!P!Q$t!Q!^4t!^!_9Z!_!a&b!a#S4t#S#T:r#T#o4t#o#p#9w#p#s4t#s$f$t$f;'S4t;'S;=`Bd<%l?Ah4t?Ah?BY$t?BY?Mn4t?Mn~$t~O$t~~)_!_#:S!SgSjW!b`!dpOX#=`XZ#@cZ[#=`[^#@c^p#=`pq#@cqr#9wrs#CTsv#9wvw$MTwx$$`x!P#9w!P!Q#=`!Q![#9w![!^#9w!^!_%:{!_!a#@c!a!c#9w!c!}#9w!}#O#9w#O#P%IT#P#S#9w#S#T%:{#T#o#9w#o#q#9w#q#r&$Y#r#s#9w#s#y#=`#y#z#=`#z$f#=`$f$g#9w$gG|#9wG|#BY@a#BY#BZ#9w#BZ$IS@a$IS$I_#9w$I_$I|@a$I|$JO#9w$JO$JT@a$JT$JU#9w$JU$KV@a$KV$KW#9w$KW&FU@a&FU&FV#9w&FV;'S@a;'S;=`B^<%l?Ah@a?Ah?BY1r?BY?Mn@a?MnO1r!Z#=i|jW!b`!dpOX#=`XZ#@cZ[#=`[^#@c^p#=`pq#@cqr#=`rs#CTsv#=`vw$5}wx$$`x!Q#=`!Q![#=`![!^#=`!^!a#@c!a!c#=`!c!}#=`!}#O#=`#O#P$Bb#P#S#=`#S#T#@c#T#o#=`#o#q#=`#q#r$JR#r#y#=`#y#z#=`#z$f#=`$f$g#=`$gG|#=`G|#BY1r#BY#BZ#=`#BZ$IS1r$IS$I_#=`$I_$I|1r$I|$JO#=`$JO$JT1r$JT$JU#=`$JU$KV1r$KV$KW#=`$KW&FU1r&FU&FV#=`&FV;'S1r;'S;=`3T<%lO1r!R#@jw!b`!dpOX#@cX^#@c^p#@cpq#@cqr#@crs#CTsv#@cvw#Ejwx$$`x!Q#@c!Q![#@c![!c#@c!c!}#@c!}#O#@c#O#P$.V#P#T#@c#T#o#@c#o#q#@c#q#r$4b#r#y#@c#y#z#@c#z$f#@c$f$g#@c$gG|#@cG|#BY-]#BY#BZ#@c#BZ$IS-]$IS$I_#@c$I_$I|-]$I|$JO#@c$JO$JT-]$JT$JU#@c$JU$KV-]$KV$KW#@c$KW&FU-]&FU&FV#@c&FV;'S-];'S;=`-y<%lO-]q#CYt!dpOX#CTX^#CT^p#CTpq#CTqv#CTvx#Ejx!Q#CT!Q![#CT![!c#CT!c!}#CT!}#O#CT#O#P#Kq#P#T#CT#T#o#CT#o#q#CT#q#r$#Z#r#y#CT#y#z#CT#z$f#CT$f$g#CT$gG|#CTG|#BY)d#BY#BZ#CT#BZ$IS)d$IS$I_#CT$I_$I|)d$I|$JO#CT$JO$JT)d$JT$JU#CT$JU$KV)d$KV$KW#CT$KW&FU)d&FU&FV#CT&FV;'S)d;'S;=`)u<%lO)dP#EmiOX#EjX^#Ej^p#Ejpq#Ejq!Q#Ej!Q![#Ej![!c#Ej!c!}#Ej!}#O#Ej#O#P#G[#P#T#Ej#T#o#Ej#o#q#Ej#q#r#KS#r#y#Ej#y#z#Ej#z$f#Ej$f$g#Ej$gG|#Ej#BY#BZ#Ej$IS$I_#Ej$I|$JO#Ej$JT$JU#Ej$KV$KW#Ej&FU&FV#EjP#G_iOX#EjX^#Ej^p#Ejpq#Ejq!Q#Ej!Q![#Ej![!c#Ej!c!}#Ej!}#O#Ej#O#P#G[#P#T#Ej#T#o#Ej#o#q#Ej#q#r#H|#r#y#Ej#y#z#Ej#z$f#Ej$f$g#Ej$gG|#Ej#BY#BZ#Ej$IS$I_#Ej$I|$JO#Ej$JT$JU#Ej$KV$KW#Ej&FU&FV#EjP#IPTO#q#Ej#q#r#I`#r;'S#Ej;'S;=`#Kk<%lO#EjP#Iei_POX#EjX^#Ej^p#Ejpq#Ejq!Q#Ej!Q![#Ej![!c#Ej!c!}#Ej!}#O#Ej#O#P#G[#P#T#Ej#T#o#Ej#o#q#Ej#q#r#KS#r#y#Ej#y#z#Ej#z$f#Ej$f$g#Ej$gG|#Ej#BY#BZ#Ej$IS$I_#Ej$I|$JO#Ej$JT$JU#Ej$KV$KW#Ej&FU&FV#EjP#KVTO#q#Ej#q#r#Kf#r;'S#Ej;'S;=`#Kk<%lO#EjP#KkO_PP#KnP;=`<%l#Ejq#Kvt!dpOX#CTX^#CT^p#CTpq#CTqv#CTvx#Ejx!Q#CT!Q![#CT![!c#CT!c!}#CT!}#O#CT#O#P#Kq#P#T#CT#T#o#CT#o#q#CT#q#r#NW#r#y#CT#y#z#CT#z$f#CT$f$g#CT$gG|#CTG|#BY)d#BY#BZ#CT#BZ$IS)d$IS$I_#CT$I_$I|)d$I|$JO#CT$JO$JT)d$JT$JU#CT$JU$KV)d$KV$KW#CT$KW&FU)d&FU&FV#CT&FV;'S)d;'S;=`)u<%lO)dq#N]V!dpOv#CTvx#Ejx#q#CT#q#r#Nr#r;'S#CT;'S;=`$$Y<%lO#CTq#Nyt!dp_POX#CTX^#CT^p#CTpq#CTqv#CTvx#Ejx!Q#CT!Q![#CT![!c#CT!c!}#CT!}#O#CT#O#P#Kq#P#T#CT#T#o#CT#o#q#CT#q#r$#Z#r#y#CT#y#z#CT#z$f#CT$f$g#CT$gG|#CTG|#BY)d#BY#BZ#CT#BZ$IS)d$IS$I_#CT$I_$I|)d$I|$JO#CT$JO$JT)d$JT$JU#CT$JU$KV)d$KV$KW#CT$KW&FU)d&FU&FV#CT&FV;'S)d;'S;=`)u<%lO)dq$#`V!dpOv#CTvx#Ejx#q#CT#q#r$#u#r;'S#CT;'S;=`$$Y<%lO#CTq$#|S!dp_POv)dx;'S)d;'S;=`)u<%lO)dq$$]P;=`<%l#CTa$$ev!b`OX$$`X^$$`^p$$`pq$$`qr$$`rs#Ejsv$$`vw#Ejw!Q$$`!Q![$$`![!c$$`!c!}$$`!}#O$$`#O#P$&{#P#T$$`#T#o$$`#o#q$$`#q#r$,w#r#y$$`#y#z$$`#z$f$$`$f$g$$`$gG|$$`G|#BY+p#BY#BZ$$`#BZ$IS+p$IS$I_$$`$I_$I|+p$I|$JO$$`$JO$JT+p$JT$JU$$`$JU$KV+p$KV$KW$$`$KW&FU+p&FU&FV$$`&FV;'S+p;'S;=`,U<%lO+pa$'Qv!b`OX$$`X^$$`^p$$`pq$$`qr$$`rs#Ejsv$$`vw#Ejw!Q$$`!Q![$$`![!c$$`!c!}$$`!}#O$$`#O#P$&{#P#T$$`#T#o$$`#o#q$$`#q#r$)h#r#y$$`#y#z$$`#z$f$$`$f$g$$`$gG|$$`G|#BY+p#BY#BZ$$`#BZ$IS+p$IS$I_$$`$I_$I|+p$I|$JO$$`$JO$JT+p$JT$JU$$`$JU$KV+p$KV$KW$$`$KW&FU+p&FU&FV$$`&FV;'S+p;'S;=`,U<%lO+pa$)mX!b`Or$$`rs#Ejsv$$`vw#Ejw#q$$`#q#r$*Y#r;'S$$`;'S;=`$.P<%lO$$`a$*av!b`_POX$$`X^$$`^p$$`pq$$`qr$$`rs#Ejsv$$`vw#Ejw!Q$$`!Q![$$`![!c$$`!c!}$$`!}#O$$`#O#P$&{#P#T$$`#T#o$$`#o#q$$`#q#r$,w#r#y$$`#y#z$$`#z$f$$`$f$g$$`$gG|$$`G|#BY+p#BY#BZ$$`#BZ$IS+p$IS$I_$$`$I_$I|+p$I|$JO$$`$JO$JT+p$JT$JU$$`$JU$KV+p$KV$KW$$`$KW&FU+p&FU&FV$$`&FV;'S+p;'S;=`,U<%lO+pa$,|X!b`Or$$`rs#Ejsv$$`vw#Ejw#q$$`#q#r$-i#r;'S$$`;'S;=`$.P<%lO$$`a$-pT!b`_POr+psv+pw;'S+p;'S;=`,U<%lO+pa$.SP;=`<%l$$`!R$.^w!b`!dpOX#@cX^#@c^p#@cpq#@cqr#@crs#CTsv#@cvw#Ejwx$$`x!Q#@c!Q![#@c![!c#@c!c!}#@c!}#O#@c#O#P$.V#P#T#@c#T#o#@c#o#q#@c#q#r$0w#r#y#@c#y#z#@c#z$f#@c$f$g#@c$gG|#@cG|#BY-]#BY#BZ#@c#BZ$IS-]$IS$I_#@c$I_$I|-]$I|$JO#@c$JO$JT-]$JT$JU#@c$JU$KV-]$KV$KW#@c$KW&FU-]&FU&FV#@c&FV;'S-];'S;=`-y<%lO-]!R$1OY!b`!dpOr#@crs#CTsv#@cvw#Ejwx$$`x#q#@c#q#r$1n#r;'S#@c;'S;=`$5w<%lO#@c!R$1ww!b`!dp_POX#@cX^#@c^p#@cpq#@cqr#@crs#CTsv#@cvw#Ejwx$$`x!Q#@c!Q![#@c![!c#@c!c!}#@c!}#O#@c#O#P$.V#P#T#@c#T#o#@c#o#q#@c#q#r$4b#r#y#@c#y#z#@c#z$f#@c$f$g#@c$gG|#@cG|#BY-]#BY#BZ#@c#BZ$IS-]$IS$I_#@c$I_$I|-]$I|$JO#@c$JO$JT-]$JT$JU#@c$JU$KV-]$KV$KW#@c$KW&FU-]&FU&FV#@c&FV;'S-];'S;=`-y<%lO-]!R$4iY!b`!dpOr#@crs#CTsv#@cvw#Ejwx$$`x#q#@c#q#r$5X#r;'S#@c;'S;=`$5w<%lO#@c!R$5bV!b`!dp_POr-]rs)dsv-]wx+px;'S-];'S;=`-y<%lO-]!R$5zP;=`<%l#@cX$6S{jWOX$5}XZ#EjZ[$5}[^#Ej^p$5}pq#Ejqr$5}rs#Ejsw$5}wx#Ejx!Q$5}!Q![$5}![!^$5}!^!a#Ej!a!c$5}!c!}$5}!}#O$5}#O#P$8y#P#S$5}#S#T#Ej#T#o$5}#o#q$5}#q#r$@T#r#y$5}#y#z$5}#z$f$5}$f$g$5}$gG|$5}G|#BY/V#BY#BZ$5}#BZ$IS/V$IS$I_$5}$I_$I|/V$I|$JO$5}$JO$JT/V$JT$JU$5}$JU$KV/V$KV$KW$5}$KW&FU/V&FU&FV$5}&FV;'S/V;'S;=`/z<%lO/VX$9O{jWOX$5}XZ#EjZ[$5}[^#Ej^p$5}pq#Ejqr$5}rs#Ejsw$5}wx#Ejx!Q$5}!Q![$5}![!^$5}!^!a#Ej!a!c$5}!c!}$5}!}#O$5}#O#P$8y#P#S$5}#S#T#Ej#T#o$5}#o#q$5}#q#r$;u#r#y$5}#y#z$5}#z$f$5}$f$g$5}$gG|$5}G|#BY/V#BY#BZ$5}#BZ$IS/V$IS$I_$5}$I_$I|/V$I|$JO$5}$JO$JT/V$JT$JU$5}$JU$KV/V$KV$KW$5}$KW&FU/V&FU&FV$5}&FV;'S/V;'S;=`/z<%lO/VX$;zcjWOX$5}XZ#EjZ[$5}[^#Ej^p$5}pq#Ejqr$5}rs#Ejsw$5}wx#Ejx!^$5}!^!a#Ej!a#S$5}#S#T#Ej#T#q$5}#q#r$=V#r;'S$5};'S;=`$B[<%lO$5}X$=^{jW_POX$5}XZ#EjZ[$5}[^#Ej^p$5}pq#Ejqr$5}rs#Ejsw$5}wx#Ejx!Q$5}!Q![$5}![!^$5}!^!a#Ej!a!c$5}!c!}$5}!}#O$5}#O#P$8y#P#S$5}#S#T#Ej#T#o$5}#o#q$5}#q#r$@T#r#y$5}#y#z$5}#z$f$5}$f$g$5}$gG|$5}G|#BY/V#BY#BZ$5}#BZ$IS/V$IS$I_$5}$I_$I|/V$I|$JO$5}$JO$JT/V$JT$JU$5}$JU$KV/V$KV$KW$5}$KW&FU/V&FU&FV$5}&FV;'S/V;'S;=`/z<%lO/VX$@YcjWOX$5}XZ#EjZ[$5}[^#Ej^p$5}pq#Ejqr$5}rs#Ejsw$5}wx#Ejx!^$5}!^!a#Ej!a#S$5}#S#T#Ej#T#q$5}#q#r$Ae#r;'S$5};'S;=`$B[<%lO$5}X$AlYjW_POX/VZ[/V^p/Vqr/Vsw/Vx!^/V!a#S/V#T;'S/V;'S;=`/z<%lO/VX$B_P;=`<%l$5}!Z$Bk|jW!b`!dpOX#=`XZ#@cZ[#=`[^#@c^p#=`pq#@cqr#=`rs#CTsv#=`vw$5}wx$$`x!Q#=`!Q![#=`![!^#=`!^!a#@c!a!c#=`!c!}#=`!}#O#=`#O#P$Bb#P#S#=`#S#T#@c#T#o#=`#o#q#=`#q#r$Ee#r#y#=`#y#z#=`#z$f#=`$f$g#=`$gG|#=`G|#BY1r#BY#BZ#=`#BZ$IS1r$IS$I_#=`$I_$I|1r$I|$JO#=`$JO$JT1r$JT$JU#=`$JU$KV1r$KV$KW#=`$KW&FU1r&FU&FV#=`&FV;'S1r;'S;=`3T<%lO1r!Z$EndjW!b`!dpOX#=`XZ#@cZ[#=`[^#@c^p#=`pq#@cqr#=`rs#CTsv#=`vw$5}wx$$`x!^#=`!^!a#@c!a#S#=`#S#T#@c#T#q#=`#q#r$F|#r;'S#=`;'S;=`$L}<%lO#=`!Z$GX|jW!b`!dp_POX#=`XZ#@cZ[#=`[^#@c^p#=`pq#@cqr#=`rs#CTsv#=`vw$5}wx$$`x!Q#=`!Q![#=`![!^#=`!^!a#@c!a!c#=`!c!}#=`!}#O#=`#O#P$Bb#P#S#=`#S#T#@c#T#o#=`#o#q#=`#q#r$JR#r#y#=`#y#z#=`#z$f#=`$f$g#=`$gG|#=`G|#BY1r#BY#BZ#=`#BZ$IS1r$IS$I_#=`$I_$I|1r$I|$JO#=`$JO$JT1r$JT$JU#=`$JU$KV1r$KV$KW#=`$KW&FU1r&FU&FV#=`&FV;'S1r;'S;=`3T<%lO1r!Z$J[djW!b`!dpOX#=`XZ#@cZ[#=`[^#@c^p#=`pq#@cqr#=`rs#CTsv#=`vw$5}wx$$`x!^#=`!^!a#@c!a#S#=`#S#T#@c#T#q#=`#q#r$Kj#r;'S#=`;'S;=`$L}<%lO#=`!Z$KubjW!b`!dp_POX1rXZ-]Z[1r[^-]^p1rpq-]qr1rrs)dsv1rvw/Vwx+px!^1r!^!a-]!a#S1r#S#T-]#T;'S1r;'S;=`3T<%lO1r!Z$MQP;=`<%l#=`]$M[!RgSjWOX$5}XZ#EjZ[$5}[^#Ej^p$5}pq#Ejqr$MTrs#Ejsw$MTwx#Ejx!P$MT!P!Q$5}!Q![$MT![!^$MT!^!_%!e!_!a#Ej!a!c$MT!c!}$MT!}#O$MT#O#P%.u#P#S$MT#S#T%!e#T#o$MT#o#q$MT#q#r%7e#r#s$MT#s#y$5}#y#z$5}#z$f$5}$f$g$MT$gG|$MTG|#BY6y#BY#BZ$MT#BZ$IS6y$IS$I_$MT$I_$I|6y$I|$JO$MT$JO$JT6y$JT$JU$MT$JU$KV6y$KV$KW$MT$KW&FU6y&FU&FV$MT&FV;'S6y;'S;=`9T<%l?Ah6y?Ah?BY/V?BY?Mn6y?MnO/VT%!j{gSOX#EjX^#Ej^p#Ejpq#Ejqr%!ers#Ejsw%!ewx#Ejx!P%!e!P!Q#Ej!Q![%!e![!_%!e!_!a#Ej!a!c%!e!c!}%!e!}#O%!e#O#P%%a#P#T%!e#T#o%!e#o#q%!e#q#r%,k#r#s%!e#s#y#Ej#y#z#Ej#z$f#Ej$f$g%!e$gG|%!eG|#BY8]#BY#BZ%!e#BZ$IS8]$IS$I_%!e$I_$I|8]$I|$JO%!e$JO$JT8]$JT$JU%!e$JU$KV8]$KV$KW%!e$KW&FU8]&FU&FV%!e&FV;'S8];'S;=`8}<%l?Ah8]?BY?Mn8]T%%f{gSOX#EjX^#Ej^p#Ejpq#Ejqr%!ers#Ejsw%!ewx#Ejx!P%!e!P!Q#Ej!Q![%!e![!_%!e!_!a#Ej!a!c%!e!c!}%!e!}#O%!e#O#P%%a#P#T%!e#T#o%!e#o#q%!e#q#r%(]#r#s%!e#s#y#Ej#y#z#Ej#z$f#Ej$f$g%!e$gG|%!eG|#BY8]#BY#BZ%!e#BZ$IS8]$IS$I_%!e$I_$I|8]$I|$JO%!e$JO$JT8]$JT$JU%!e$JU$KV8]$KV$KW%!e$KW&FU8]&FU&FV%!e&FV;'S8];'S;=`8}<%l?Ah8]?BY?Mn8]T%(bcgSOq#Ejqr%!ers#Ejsw%!ewx#Ejx!P%!e!P!Q#Ej!Q!_%!e!_!a#Ej!a#q%!e#q#r%)m#r#s%!e#s$f#Ej$f;'S%!e;'S;=`%.o<%l?Ah%!e?Ah?BY#Ej?BY?Mn%!e?MnO#EjT%)t{gS_POX#EjX^#Ej^p#Ejpq#Ejqr%!ers#Ejsw%!ewx#Ejx!P%!e!P!Q#Ej!Q![%!e![!_%!e!_!a#Ej!a!c%!e!c!}%!e!}#O%!e#O#P%%a#P#T%!e#T#o%!e#o#q%!e#q#r%,k#r#s%!e#s#y#Ej#y#z#Ej#z$f#Ej$f$g%!e$gG|%!eG|#BY8]#BY#BZ%!e#BZ$IS8]$IS$I_%!e$I_$I|8]$I|$JO%!e$JO$JT8]$JT$JU%!e$JU$KV8]$KV$KW%!e$KW&FU8]&FU&FV%!e&FV;'S8];'S;=`8}<%l?Ah8]?BY?Mn8]T%,pcgSOq#Ejqr%!ers#Ejsw%!ewx#Ejx!P%!e!P!Q#Ej!Q!_%!e!_!a#Ej!a#q%!e#q#r%-{#r#s%!e#s$f#Ej$f;'S%!e;'S;=`%.o<%l?Ah%!e?Ah?BY#Ej?BY?Mn%!e?MnO#EjT%.SXgS_Pqr8]sw8]x!P8]!Q!_8]!a#s8]$f;'S8];'S;=`8}<%l?Ah8]?BY?Mn8]T%.rP;=`<%l%!e]%.|!RgSjWOX$5}XZ#EjZ[$5}[^#Ej^p$5}pq#Ejqr$MTrs#Ejsw$MTwx#Ejx!P$MT!P!Q$5}!Q![$MT![!^$MT!^!_%!e!_!a#Ej!a!c$MT!c!}$MT!}#O$MT#O#P%.u#P#S$MT#S#T%!e#T#o$MT#o#q$MT#q#r%2V#r#s$MT#s#y$5}#y#z$5}#z$f$5}$f$g$MT$gG|$MTG|#BY6y#BY#BZ$MT#BZ$IS6y$IS$I_$MT$I_$I|6y$I|$JO$MT$JO$JT6y$JT$JU$MT$JU$KV6y$KV$KW$MT$KW&FU6y&FU&FV$MT&FV;'S6y;'S;=`9T<%l?Ah6y?Ah?BY/V?BY?Mn6y?MnO/V]%2^kgSjWOX$5}XZ#EjZ[$5}[^#Ej^p$5}pq#Ejqr$MTrs#Ejsw$MTwx#Ejx!P$MT!P!Q$5}!Q!^$MT!^!_%!e!_!a#Ej!a#S$MT#S#T%!e#T#q$MT#q#r%4R#r#s$MT#s$f$5}$f;'S$MT;'S;=`%:u<%l?Ah$MT?Ah?BY$5}?BY?Mn$MT?MnO$5}]%4[!RgSjW_POX$5}XZ#EjZ[$5}[^#Ej^p$5}pq#Ejqr$MTrs#Ejsw$MTwx#Ejx!P$MT!P!Q$5}!Q![$MT![!^$MT!^!_%!e!_!a#Ej!a!c$MT!c!}$MT!}#O$MT#O#P%.u#P#S$MT#S#T%!e#T#o$MT#o#q$MT#q#r%7e#r#s$MT#s#y$5}#y#z$5}#z$f$5}$f$g$MT$gG|$MTG|#BY6y#BY#BZ$MT#BZ$IS6y$IS$I_$MT$I_$I|6y$I|$JO$MT$JO$JT6y$JT$JU$MT$JU$KV6y$KV$KW$MT$KW&FU6y&FU&FV$MT&FV;'S6y;'S;=`9T<%l?Ah6y?Ah?BY/V?BY?Mn6y?MnO/V]%7lkgSjWOX$5}XZ#EjZ[$5}[^#Ej^p$5}pq#Ejqr$MTrs#Ejsw$MTwx#Ejx!P$MT!P!Q$5}!Q!^$MT!^!_%!e!_!a#Ej!a#S$MT#S#T%!e#T#q$MT#q#r%9a#r#s$MT#s$f$5}$f;'S$MT;'S;=`%:u<%l?Ah$MT?Ah?BY$5}?BY?Mn$MT?MnO$5}]%9jcgSjW_POX/VZ[/V^p/Vqr6ysw6yx!P6y!P!Q/V!Q!^6y!^!_8]!a#S6y#S#T8]#T#s6y#s$f/V$f;'S6y;'S;=`9T<%l?Ah6y?Ah?BY/V?BY?Mn6y?MnO/V]%:xP;=`<%l$MT!V%;U!OgS!b`!dpOX#@cX^#@c^p#@cpq#@cqr%:{rs#CTsv%:{vw%!ewx$$`x!P%:{!P!Q#@c!Q![%:{![!_%:{!_!a#@c!a!c%:{!c!}%:{!}#O%:{#O#P%>U#P#T%:{#T#o%:{#o#q%:{#q#r%FR#r#s%:{#s#y#@c#y#z#@c#z$f#@c$f$g%:{$gG|%:{G|#BY9Z#BY#BZ%:{#BZ$IS9Z$IS$I_%:{$I_$I|9Z$I|$JO%:{$JO$JT9Z$JT$JU%:{$JU$KV9Z$KV$KW%:{$KW&FU9Z&FU&FV%:{&FV;'S9Z;'S;=`:l<%l?Ah9Z?Ah?BY-]?BY?Mn9Z?MnO-]!V%>_!OgS!b`!dpOX#@cX^#@c^p#@cpq#@cqr%:{rs#CTsv%:{vw%!ewx$$`x!P%:{!P!Q#@c!Q![%:{![!_%:{!_!a#@c!a!c%:{!c!}%:{!}#O%:{#O#P%>U#P#T%:{#T#o%:{#o#q%:{#q#r%A_#r#s%:{#s#y#@c#y#z#@c#z$f#@c$f$g%:{$gG|%:{G|#BY9Z#BY#BZ%:{#BZ$IS9Z$IS$I_%:{$I_$I|9Z$I|$JO%:{$JO$JT9Z$JT$JU%:{$JU$KV9Z$KV$KW%:{$KW&FU9Z&FU&FV%:{&FV;'S9Z;'S;=`:l<%l?Ah9Z?Ah?BY-]?BY?Mn9Z?MnO-]!V%AhdgS!b`!dpOq#@cqr%:{rs#CTsv%:{vw%!ewx$$`x!P%:{!P!Q#@c!Q!_%:{!_!a#@c!a#q%:{#q#r%Bv#r#s%:{#s$f#@c$f;'S%:{;'S;=`%H}<%l?Ah%:{?Ah?BY#@c?BY?Mn%:{?MnO#@c!V%CR!OgS!b`!dp_POX#@cX^#@c^p#@cpq#@cqr%:{rs#CTsv%:{vw%!ewx$$`x!P%:{!P!Q#@c!Q![%:{![!_%:{!_!a#@c!a!c%:{!c!}%:{!}#O%:{#O#P%>U#P#T%:{#T#o%:{#o#q%:{#q#r%FR#r#s%:{#s#y#@c#y#z#@c#z$f#@c$f$g%:{$gG|%:{G|#BY9Z#BY#BZ%:{#BZ$IS9Z$IS$I_%:{$I_$I|9Z$I|$JO%:{$JO$JT9Z$JT$JU%:{$JU$KV9Z$KV$KW%:{$KW&FU9Z&FU&FV%:{&FV;'S9Z;'S;=`:l<%l?Ah9Z?Ah?BY-]?BY?Mn9Z?MnO-]!V%F[dgS!b`!dpOq#@cqr%:{rs#CTsv%:{vw%!ewx$$`x!P%:{!P!Q#@c!Q!_%:{!_!a#@c!a#q%:{#q#r%Gj#r#s%:{#s$f#@c$f;'S%:{;'S;=`%H}<%l?Ah%:{?Ah?BY#@c?BY?Mn%:{?MnO#@c!V%GubgS!b`!dp_POq-]qr9Zrs)dsv9Zvw8]wx+px!P9Z!P!Q-]!Q!_9Z!_!a-]!a#s9Z#s$f-]$f;'S9Z;'S;=`:l<%l?Ah9Z?Ah?BY-]?BY?Mn9Z?MnO-]!V%IQP;=`<%l%:{!_%I`!SgSjW!b`!dpOX#=`XZ#@cZ[#=`[^#@c^p#=`pq#@cqr#9wrs#CTsv#9wvw$MTwx$$`x!P#9w!P!Q#=`!Q![#9w![!^#9w!^!_%:{!_!a#@c!a!c#9w!c!}#9w!}#O#9w#O#P%IT#P#S#9w#S#T%:{#T#o#9w#o#q#9w#q#r%Ll#r#s#9w#s#y#=`#y#z#=`#z$f#=`$f$g#9w$gG|#9wG|#BY@a#BY#BZ#9w#BZ$IS@a$IS$I_#9w$I_$I|@a$I|$JO#9w$JO$JT@a$JT$JU#9w$JU$KV@a$KV$KW#9w$KW&FU@a&FU&FV#9w&FV;'S@a;'S;=`B^<%l?Ah@a?Ah?BY1r?BY?Mn@a?MnO1r!_%LwlgSjW!b`!dpOX#=`XZ#@cZ[#=`[^#@c^p#=`pq#@cqr#9wrs#CTsv#9wvw$MTwx$$`x!P#9w!P!Q#=`!Q!^#9w!^!_%:{!_!a#@c!a#S#9w#S#T%:{#T#q#9w#q#r%No#r#s#9w#s$f#=`$f;'S#9w;'S;=`&([<%l?Ah#9w?Ah?BY#=`?BY?Mn#9w?MnO#=`!_%N|!SgSjW!b`!dp_POX#=`XZ#@cZ[#=`[^#@c^p#=`pq#@cqr#9wrs#CTsv#9wvw$MTwx$$`x!P#9w!P!Q#=`!Q![#9w![!^#9w!^!_%:{!_!a#@c!a!c#9w!c!}#9w!}#O#9w#O#P%IT#P#S#9w#S#T%:{#T#o#9w#o#q#9w#q#r&$Y#r#s#9w#s#y#=`#y#z#=`#z$f#=`$f$g#9w$gG|#9wG|#BY@a#BY#BZ#9w#BZ$IS@a$IS$I_#9w$I_$I|@a$I|$JO#9w$JO$JT@a$JT$JU#9w$JU$KV@a$KV$KW#9w$KW&FU@a&FU&FV#9w&FV;'S@a;'S;=`B^<%l?Ah@a?Ah?BY1r?BY?Mn@a?MnO1r!_&$elgSjW!b`!dpOX#=`XZ#@cZ[#=`[^#@c^p#=`pq#@cqr#9wrs#CTsv#9wvw$MTwx$$`x!P#9w!P!Q#=`!Q!^#9w!^!_%:{!_!a#@c!a#S#9w#S#T%:{#T#q#9w#q#r&&]#r#s#9w#s$f#=`$f;'S#9w;'S;=`&([<%l?Ah#9w?Ah?BY#=`?BY?Mn#9w?MnO#=`!_&&jjgSjW!b`!dp_POX1rXZ-]Z[1r[^-]^p1rpq-]qr@ars)dsv@avw6ywx+px!P@a!P!Q1r!Q!^@a!^!_9Z!_!a-]!a#S@a#S#T9Z#T#s@a#s$f1r$f;'S@a;'S;=`B^<%l?Ah@a?Ah?BY1r?BY?Mn@a?MnO1r!_&(_P;=`<%l#9w",
1723
- tokenizers: [scriptTokens, styleTokens, textareaTokens, tagStart, commentContent, 0, 1, 2, 3, 4, 5],
1724
- topRules: { "Document": [0, 13] },
1725
- dialects: { noMatch: 0, selfClosing: 491 },
1726
- tokenPrec: 493
1727
- });
1728
- function getAttrs(openTag, input) {
1729
- let attrs = /* @__PURE__ */ Object.create(null);
1730
- for (let att of openTag.getChildren(Attribute)) {
1731
- let name = att.getChild(AttributeName), value = att.getChild(AttributeValue) || att.getChild(UnquotedAttributeValue);
1732
- if (name) attrs[input.read(name.from, name.to)] = !value ? "" : value.type.id == AttributeValue ? input.read(value.from + 1, value.to - 1) : input.read(value.from, value.to);
1733
- }
1734
- return attrs;
1735
- }
1736
- function findTagName(openTag, input) {
1737
- let tagNameNode = openTag.getChild(TagName);
1738
- return tagNameNode ? input.read(tagNameNode.from, tagNameNode.to) : " ";
1739
- }
1740
- function maybeNest(node, input, tags2) {
1741
- let attrs;
1742
- for (let tag of tags2) {
1743
- if (!tag.attrs || tag.attrs(attrs || (attrs = getAttrs(node.node.parent.firstChild, input))))
1744
- return { parser: tag.parser };
1745
- }
1746
- return null;
1747
- }
1748
- function configureNesting(tags2 = [], attributes = []) {
1749
- let script = [], style = [], textarea = [], other = [];
1750
- for (let tag of tags2) {
1751
- let array = tag.tag == "script" ? script : tag.tag == "style" ? style : tag.tag == "textarea" ? textarea : other;
1752
- array.push(tag);
1753
- }
1754
- let attrs = attributes.length ? /* @__PURE__ */ Object.create(null) : null;
1755
- for (let attr of attributes) (attrs[attr.name] || (attrs[attr.name] = [])).push(attr);
1756
- return parseMixed((node, input) => {
1757
- let id = node.type.id;
1758
- if (id == ScriptText) return maybeNest(node, input, script);
1759
- if (id == StyleText) return maybeNest(node, input, style);
1760
- if (id == TextareaText) return maybeNest(node, input, textarea);
1761
- if (id == OpenTag && other.length) {
1762
- let n = node.node, tagName = findTagName(n, input), attrs2;
1763
- for (let tag of other) {
1764
- if (tag.tag == tagName && (!tag.attrs || tag.attrs(attrs2 || (attrs2 = getAttrs(n, input))))) {
1765
- let close = n.parent.lastChild;
1766
- return { parser: tag.parser, overlay: [{ from: node.to, to: close.type.id == CloseTag ? close.from : n.parent.to }] };
1767
- }
1768
- }
1769
- }
1770
- if (attrs && id == Attribute) {
1771
- let n = node.node, nameNode;
1772
- if (nameNode = n.firstChild) {
1773
- let matches = attrs[input.read(nameNode.from, nameNode.to)];
1774
- if (matches) for (let attr of matches) {
1775
- if (attr.tagName && attr.tagName != findTagName(n.parent, input)) continue;
1776
- let value = n.lastChild;
1777
- if (value.type.id == AttributeValue)
1778
- return { parser: attr.parser, overlay: [{ from: value.from + 1, to: value.to - 1 }] };
1779
- else if (value.type.id == UnquotedAttributeValue)
1780
- return { parser: attr.parser, overlay: [{ from: value.from, to: value.to }] };
1781
- }
1782
- }
1783
- }
1784
- return null;
1785
- });
1786
- }
1787
- const Targets = ["_blank", "_self", "_top", "_parent"];
1788
- const Charsets = ["ascii", "utf-8", "utf-16", "latin1", "latin1"];
1789
- const Methods = ["get", "post", "put", "delete"];
1790
- const Encs = ["application/x-www-form-urlencoded", "multipart/form-data", "text/plain"];
1791
- const Bool = ["true", "false"];
1792
- const S = {};
1793
- const Tags = {
1794
- a: {
1795
- attrs: {
1796
- href: null,
1797
- ping: null,
1798
- type: null,
1799
- media: null,
1800
- target: Targets,
1801
- hreflang: null
1802
- }
1803
- },
1804
- abbr: S,
1805
- address: S,
1806
- area: {
1807
- attrs: {
1808
- alt: null,
1809
- coords: null,
1810
- href: null,
1811
- target: null,
1812
- ping: null,
1813
- media: null,
1814
- hreflang: null,
1815
- type: null,
1816
- shape: ["default", "rect", "circle", "poly"]
1817
- }
1818
- },
1819
- article: S,
1820
- aside: S,
1821
- audio: {
1822
- attrs: {
1823
- src: null,
1824
- mediagroup: null,
1825
- crossorigin: ["anonymous", "use-credentials"],
1826
- preload: ["none", "metadata", "auto"],
1827
- autoplay: ["autoplay"],
1828
- loop: ["loop"],
1829
- controls: ["controls"]
1830
- }
1831
- },
1832
- b: S,
1833
- base: { attrs: { href: null, target: Targets } },
1834
- bdi: S,
1835
- bdo: S,
1836
- blockquote: { attrs: { cite: null } },
1837
- body: S,
1838
- br: S,
1839
- button: {
1840
- attrs: {
1841
- form: null,
1842
- formaction: null,
1843
- name: null,
1844
- value: null,
1845
- autofocus: ["autofocus"],
1846
- disabled: ["autofocus"],
1847
- formenctype: Encs,
1848
- formmethod: Methods,
1849
- formnovalidate: ["novalidate"],
1850
- formtarget: Targets,
1851
- type: ["submit", "reset", "button"]
1852
- }
1853
- },
1854
- canvas: { attrs: { width: null, height: null } },
1855
- caption: S,
1856
- center: S,
1857
- cite: S,
1858
- code: S,
1859
- col: { attrs: { span: null } },
1860
- colgroup: { attrs: { span: null } },
1861
- command: {
1862
- attrs: {
1863
- type: ["command", "checkbox", "radio"],
1864
- label: null,
1865
- icon: null,
1866
- radiogroup: null,
1867
- command: null,
1868
- title: null,
1869
- disabled: ["disabled"],
1870
- checked: ["checked"]
1871
- }
1872
- },
1873
- data: { attrs: { value: null } },
1874
- datagrid: { attrs: { disabled: ["disabled"], multiple: ["multiple"] } },
1875
- datalist: { attrs: { data: null } },
1876
- dd: S,
1877
- del: { attrs: { cite: null, datetime: null } },
1878
- details: { attrs: { open: ["open"] } },
1879
- dfn: S,
1880
- div: S,
1881
- dl: S,
1882
- dt: S,
1883
- em: S,
1884
- embed: { attrs: { src: null, type: null, width: null, height: null } },
1885
- eventsource: { attrs: { src: null } },
1886
- fieldset: { attrs: { disabled: ["disabled"], form: null, name: null } },
1887
- figcaption: S,
1888
- figure: S,
1889
- footer: S,
1890
- form: {
1891
- attrs: {
1892
- action: null,
1893
- name: null,
1894
- "accept-charset": Charsets,
1895
- autocomplete: ["on", "off"],
1896
- enctype: Encs,
1897
- method: Methods,
1898
- novalidate: ["novalidate"],
1899
- target: Targets
1900
- }
1901
- },
1902
- h1: S,
1903
- h2: S,
1904
- h3: S,
1905
- h4: S,
1906
- h5: S,
1907
- h6: S,
1908
- head: {
1909
- children: ["title", "base", "link", "style", "meta", "script", "noscript", "command"]
1910
- },
1911
- header: S,
1912
- hgroup: S,
1913
- hr: S,
1914
- html: {
1915
- attrs: { manifest: null }
1916
- },
1917
- i: S,
1918
- iframe: {
1919
- attrs: {
1920
- src: null,
1921
- srcdoc: null,
1922
- name: null,
1923
- width: null,
1924
- height: null,
1925
- sandbox: ["allow-top-navigation", "allow-same-origin", "allow-forms", "allow-scripts"],
1926
- seamless: ["seamless"]
1927
- }
1928
- },
1929
- img: {
1930
- attrs: {
1931
- alt: null,
1932
- src: null,
1933
- ismap: null,
1934
- usemap: null,
1935
- width: null,
1936
- height: null,
1937
- crossorigin: ["anonymous", "use-credentials"]
1938
- }
1939
- },
1940
- input: {
1941
- attrs: {
1942
- alt: null,
1943
- dirname: null,
1944
- form: null,
1945
- formaction: null,
1946
- height: null,
1947
- list: null,
1948
- max: null,
1949
- maxlength: null,
1950
- min: null,
1951
- name: null,
1952
- pattern: null,
1953
- placeholder: null,
1954
- size: null,
1955
- src: null,
1956
- step: null,
1957
- value: null,
1958
- width: null,
1959
- accept: ["audio/*", "video/*", "image/*"],
1960
- autocomplete: ["on", "off"],
1961
- autofocus: ["autofocus"],
1962
- checked: ["checked"],
1963
- disabled: ["disabled"],
1964
- formenctype: Encs,
1965
- formmethod: Methods,
1966
- formnovalidate: ["novalidate"],
1967
- formtarget: Targets,
1968
- multiple: ["multiple"],
1969
- readonly: ["readonly"],
1970
- required: ["required"],
1971
- type: [
1972
- "hidden",
1973
- "text",
1974
- "search",
1975
- "tel",
1976
- "url",
1977
- "email",
1978
- "password",
1979
- "datetime",
1980
- "date",
1981
- "month",
1982
- "week",
1983
- "time",
1984
- "datetime-local",
1985
- "number",
1986
- "range",
1987
- "color",
1988
- "checkbox",
1989
- "radio",
1990
- "file",
1991
- "submit",
1992
- "image",
1993
- "reset",
1994
- "button"
1995
- ]
1996
- }
1997
- },
1998
- ins: { attrs: { cite: null, datetime: null } },
1999
- kbd: S,
2000
- keygen: {
2001
- attrs: {
2002
- challenge: null,
2003
- form: null,
2004
- name: null,
2005
- autofocus: ["autofocus"],
2006
- disabled: ["disabled"],
2007
- keytype: ["RSA"]
2008
- }
2009
- },
2010
- label: { attrs: { for: null, form: null } },
2011
- legend: S,
2012
- li: { attrs: { value: null } },
2013
- link: {
2014
- attrs: {
2015
- href: null,
2016
- type: null,
2017
- hreflang: null,
2018
- media: null,
2019
- sizes: ["all", "16x16", "16x16 32x32", "16x16 32x32 64x64"]
2020
- }
2021
- },
2022
- map: { attrs: { name: null } },
2023
- mark: S,
2024
- menu: { attrs: { label: null, type: ["list", "context", "toolbar"] } },
2025
- meta: {
2026
- attrs: {
2027
- content: null,
2028
- charset: Charsets,
2029
- name: ["viewport", "application-name", "author", "description", "generator", "keywords"],
2030
- "http-equiv": ["content-language", "content-type", "default-style", "refresh"]
2031
- }
2032
- },
2033
- meter: { attrs: { value: null, min: null, low: null, high: null, max: null, optimum: null } },
2034
- nav: S,
2035
- noscript: S,
2036
- object: {
2037
- attrs: {
2038
- data: null,
2039
- type: null,
2040
- name: null,
2041
- usemap: null,
2042
- form: null,
2043
- width: null,
2044
- height: null,
2045
- typemustmatch: ["typemustmatch"]
2046
- }
2047
- },
2048
- ol: {
2049
- attrs: { reversed: ["reversed"], start: null, type: ["1", "a", "A", "i", "I"] },
2050
- children: ["li", "script", "template", "ul", "ol"]
2051
- },
2052
- optgroup: { attrs: { disabled: ["disabled"], label: null } },
2053
- option: { attrs: { disabled: ["disabled"], label: null, selected: ["selected"], value: null } },
2054
- output: { attrs: { for: null, form: null, name: null } },
2055
- p: S,
2056
- param: { attrs: { name: null, value: null } },
2057
- pre: S,
2058
- progress: { attrs: { value: null, max: null } },
2059
- q: { attrs: { cite: null } },
2060
- rp: S,
2061
- rt: S,
2062
- ruby: S,
2063
- samp: S,
2064
- script: {
2065
- attrs: {
2066
- type: ["text/javascript"],
2067
- src: null,
2068
- async: ["async"],
2069
- defer: ["defer"],
2070
- charset: Charsets
2071
- }
2072
- },
2073
- section: S,
2074
- select: {
2075
- attrs: {
2076
- form: null,
2077
- name: null,
2078
- size: null,
2079
- autofocus: ["autofocus"],
2080
- disabled: ["disabled"],
2081
- multiple: ["multiple"]
2082
- }
2083
- },
2084
- slot: { attrs: { name: null } },
2085
- small: S,
2086
- source: { attrs: { src: null, type: null, media: null } },
2087
- span: S,
2088
- strong: S,
2089
- style: {
2090
- attrs: {
2091
- type: ["text/css"],
2092
- media: null,
2093
- scoped: null
2094
- }
2095
- },
2096
- sub: S,
2097
- summary: S,
2098
- sup: S,
2099
- table: S,
2100
- tbody: S,
2101
- td: { attrs: { colspan: null, rowspan: null, headers: null } },
2102
- template: S,
2103
- textarea: {
2104
- attrs: {
2105
- dirname: null,
2106
- form: null,
2107
- maxlength: null,
2108
- name: null,
2109
- placeholder: null,
2110
- rows: null,
2111
- cols: null,
2112
- autofocus: ["autofocus"],
2113
- disabled: ["disabled"],
2114
- readonly: ["readonly"],
2115
- required: ["required"],
2116
- wrap: ["soft", "hard"]
2117
- }
2118
- },
2119
- tfoot: S,
2120
- th: { attrs: { colspan: null, rowspan: null, headers: null, scope: ["row", "col", "rowgroup", "colgroup"] } },
2121
- thead: S,
2122
- time: { attrs: { datetime: null } },
2123
- title: S,
2124
- tr: S,
2125
- track: {
2126
- attrs: {
2127
- src: null,
2128
- label: null,
2129
- default: null,
2130
- kind: ["subtitles", "captions", "descriptions", "chapters", "metadata"],
2131
- srclang: null
2132
- }
2133
- },
2134
- ul: { children: ["li", "script", "template", "ul", "ol"] },
2135
- var: S,
2136
- video: {
2137
- attrs: {
2138
- src: null,
2139
- poster: null,
2140
- width: null,
2141
- height: null,
2142
- crossorigin: ["anonymous", "use-credentials"],
2143
- preload: ["auto", "metadata", "none"],
2144
- autoplay: ["autoplay"],
2145
- mediagroup: ["movie"],
2146
- muted: ["muted"],
2147
- controls: ["controls"]
2148
- }
2149
- },
2150
- wbr: S
2151
- };
2152
- const GlobalAttrs = {
2153
- accesskey: null,
2154
- class: null,
2155
- contenteditable: Bool,
2156
- contextmenu: null,
2157
- dir: ["ltr", "rtl", "auto"],
2158
- draggable: ["true", "false", "auto"],
2159
- dropzone: ["copy", "move", "link", "string:", "file:"],
2160
- hidden: ["hidden"],
2161
- id: null,
2162
- inert: ["inert"],
2163
- itemid: null,
2164
- itemprop: null,
2165
- itemref: null,
2166
- itemscope: ["itemscope"],
2167
- itemtype: null,
2168
- lang: ["ar", "bn", "de", "en-GB", "en-US", "es", "fr", "hi", "id", "ja", "pa", "pt", "ru", "tr", "zh"],
2169
- spellcheck: Bool,
2170
- autocorrect: Bool,
2171
- autocapitalize: Bool,
2172
- style: null,
2173
- tabindex: null,
2174
- title: null,
2175
- translate: ["yes", "no"],
2176
- rel: ["stylesheet", "alternate", "author", "bookmark", "help", "license", "next", "nofollow", "noreferrer", "prefetch", "prev", "search", "tag"],
2177
- role: /* @__PURE__ */ "alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),
2178
- "aria-activedescendant": null,
2179
- "aria-atomic": Bool,
2180
- "aria-autocomplete": ["inline", "list", "both", "none"],
2181
- "aria-busy": Bool,
2182
- "aria-checked": ["true", "false", "mixed", "undefined"],
2183
- "aria-controls": null,
2184
- "aria-describedby": null,
2185
- "aria-disabled": Bool,
2186
- "aria-dropeffect": null,
2187
- "aria-expanded": ["true", "false", "undefined"],
2188
- "aria-flowto": null,
2189
- "aria-grabbed": ["true", "false", "undefined"],
2190
- "aria-haspopup": Bool,
2191
- "aria-hidden": Bool,
2192
- "aria-invalid": ["true", "false", "grammar", "spelling"],
2193
- "aria-label": null,
2194
- "aria-labelledby": null,
2195
- "aria-level": null,
2196
- "aria-live": ["off", "polite", "assertive"],
2197
- "aria-multiline": Bool,
2198
- "aria-multiselectable": Bool,
2199
- "aria-owns": null,
2200
- "aria-posinset": null,
2201
- "aria-pressed": ["true", "false", "mixed", "undefined"],
2202
- "aria-readonly": Bool,
2203
- "aria-relevant": null,
2204
- "aria-required": Bool,
2205
- "aria-selected": ["true", "false", "undefined"],
2206
- "aria-setsize": null,
2207
- "aria-sort": ["ascending", "descending", "none", "other"],
2208
- "aria-valuemax": null,
2209
- "aria-valuemin": null,
2210
- "aria-valuenow": null,
2211
- "aria-valuetext": null
2212
- };
2213
- const eventAttributes = /* @__PURE__ */ "beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map((n) => "on" + n);
2214
- for (let a of eventAttributes)
2215
- GlobalAttrs[a] = null;
2216
- class Schema {
2217
- constructor(extraTags, extraAttrs) {
2218
- this.tags = Object.assign(Object.assign({}, Tags), extraTags);
2219
- this.globalAttrs = Object.assign(Object.assign({}, GlobalAttrs), extraAttrs);
2220
- this.allTags = Object.keys(this.tags);
2221
- this.globalAttrNames = Object.keys(this.globalAttrs);
2222
- }
2223
- }
2224
- Schema.default = /* @__PURE__ */ new Schema();
2225
- function elementName(doc, tree, max = doc.length) {
2226
- if (!tree)
2227
- return "";
2228
- let tag = tree.firstChild;
2229
- let name = tag && tag.getChild("TagName");
2230
- return name ? doc.sliceString(name.from, Math.min(name.to, max)) : "";
2231
- }
2232
- function findParentElement(tree, skip = false) {
2233
- for (let cur = tree.parent; cur; cur = cur.parent)
2234
- if (cur.name == "Element") {
2235
- if (skip)
2236
- skip = false;
2237
- else
2238
- return cur;
2239
- }
2240
- return null;
2241
- }
2242
- function allowedChildren(doc, tree, schema) {
2243
- let parentInfo = schema.tags[elementName(doc, findParentElement(tree, true))];
2244
- return (parentInfo === null || parentInfo === void 0 ? void 0 : parentInfo.children) || schema.allTags;
2245
- }
2246
- function openTags(doc, tree) {
2247
- let open = [];
2248
- for (let parent = tree; parent = findParentElement(parent); ) {
2249
- let tagName = elementName(doc, parent);
2250
- if (tagName && parent.lastChild.name == "CloseTag")
2251
- break;
2252
- if (tagName && open.indexOf(tagName) < 0 && (tree.name == "EndTag" || tree.from >= parent.firstChild.to))
2253
- open.push(tagName);
2254
- }
2255
- return open;
2256
- }
2257
- const identifier = /^[:\-\.\w\u00b7-\uffff]*$/;
2258
- function completeTag(state, schema, tree, from, to) {
2259
- let end = /\s*>/.test(state.sliceDoc(to, to + 5)) ? "" : ">";
2260
- return {
2261
- from,
2262
- to,
2263
- options: allowedChildren(state.doc, tree, schema).map((tagName) => ({ label: tagName, type: "type" })).concat(openTags(state.doc, tree).map((tag, i) => ({
2264
- label: "/" + tag,
2265
- apply: "/" + tag + end,
2266
- type: "type",
2267
- boost: 99 - i
2268
- }))),
2269
- validFor: /^\/?[:\-\.\w\u00b7-\uffff]*$/
2270
- };
2271
- }
2272
- function completeCloseTag(state, tree, from, to) {
2273
- let end = /\s*>/.test(state.sliceDoc(to, to + 5)) ? "" : ">";
2274
- return {
2275
- from,
2276
- to,
2277
- options: openTags(state.doc, tree).map((tag, i) => ({ label: tag, apply: tag + end, type: "type", boost: 99 - i })),
2278
- validFor: identifier
2279
- };
2280
- }
2281
- function completeStartTag(state, schema, tree, pos) {
2282
- let options = [], level = 0;
2283
- for (let tagName of allowedChildren(state.doc, tree, schema))
2284
- options.push({ label: "<" + tagName, type: "type" });
2285
- for (let open of openTags(state.doc, tree))
2286
- options.push({ label: "</" + open + ">", type: "type", boost: 99 - level++ });
2287
- return { from: pos, to: pos, options, validFor: /^<\/?[:\-\.\w\u00b7-\uffff]*$/ };
2288
- }
2289
- function completeAttrName(state, schema, tree, from, to) {
2290
- let elt = findParentElement(tree), info = elt ? schema.tags[elementName(state.doc, elt)] : null;
2291
- let localAttrs = info && info.attrs ? Object.keys(info.attrs) : [];
2292
- let names = info && info.globalAttrs === false ? localAttrs : localAttrs.length ? localAttrs.concat(schema.globalAttrNames) : schema.globalAttrNames;
2293
- return {
2294
- from,
2295
- to,
2296
- options: names.map((attrName) => ({ label: attrName, type: "property" })),
2297
- validFor: identifier
2298
- };
2299
- }
2300
- function completeAttrValue(state, schema, tree, from, to) {
2301
- var _a;
2302
- let nameNode = (_a = tree.parent) === null || _a === void 0 ? void 0 : _a.getChild("AttributeName");
2303
- let options = [], token = void 0;
2304
- if (nameNode) {
2305
- let attrName = state.sliceDoc(nameNode.from, nameNode.to);
2306
- let attrs = schema.globalAttrs[attrName];
2307
- if (!attrs) {
2308
- let elt = findParentElement(tree), info = elt ? schema.tags[elementName(state.doc, elt)] : null;
2309
- attrs = (info === null || info === void 0 ? void 0 : info.attrs) && info.attrs[attrName];
2310
- }
2311
- if (attrs) {
2312
- let base = state.sliceDoc(from, to).toLowerCase(), quoteStart = '"', quoteEnd = '"';
2313
- if (/^['"]/.test(base)) {
2314
- token = base[0] == '"' ? /^[^"]*$/ : /^[^']*$/;
2315
- quoteStart = "";
2316
- quoteEnd = state.sliceDoc(to, to + 1) == base[0] ? "" : base[0];
2317
- base = base.slice(1);
2318
- from++;
2319
- } else {
2320
- token = /^[^\s<>='"]*$/;
2321
- }
2322
- for (let value of attrs)
2323
- options.push({ label: value, apply: quoteStart + value + quoteEnd, type: "constant" });
2324
- }
2325
- }
2326
- return { from, to, options, validFor: token };
2327
- }
2328
- function htmlCompletionFor(schema, context) {
2329
- let { state, pos } = context, around = syntaxTree(state).resolveInner(pos), tree = around.resolve(pos, -1);
2330
- for (let scan = pos, before; around == tree && (before = tree.childBefore(scan)); ) {
2331
- let last = before.lastChild;
2332
- if (!last || !last.type.isError || last.from < last.to)
2333
- break;
2334
- around = tree = before;
2335
- scan = last.from;
2336
- }
2337
- if (tree.name == "TagName") {
2338
- return tree.parent && /CloseTag$/.test(tree.parent.name) ? completeCloseTag(state, tree, tree.from, pos) : completeTag(state, schema, tree, tree.from, pos);
2339
- } else if (tree.name == "StartTag") {
2340
- return completeTag(state, schema, tree, pos, pos);
2341
- } else if (tree.name == "StartCloseTag" || tree.name == "IncompleteCloseTag") {
2342
- return completeCloseTag(state, tree, pos, pos);
2343
- } else if (context.explicit && (tree.name == "OpenTag" || tree.name == "SelfClosingTag") || tree.name == "AttributeName") {
2344
- return completeAttrName(state, schema, tree, tree.name == "AttributeName" ? tree.from : pos, pos);
2345
- } else if (tree.name == "Is" || tree.name == "AttributeValue" || tree.name == "UnquotedAttributeValue") {
2346
- return completeAttrValue(state, schema, tree, tree.name == "Is" ? pos : tree.from, pos);
2347
- } else if (context.explicit && (around.name == "Element" || around.name == "Text" || around.name == "Document")) {
2348
- return completeStartTag(state, schema, tree, pos);
2349
- } else {
2350
- return null;
2351
- }
2352
- }
2353
- function htmlCompletionSource(context) {
2354
- return htmlCompletionFor(Schema.default, context);
2355
- }
2356
- function htmlCompletionSourceWith(config) {
2357
- let { extraTags, extraGlobalAttributes: extraAttrs } = config;
2358
- let schema = extraAttrs || extraTags ? new Schema(extraTags, extraAttrs) : Schema.default;
2359
- return (context) => htmlCompletionFor(schema, context);
2360
- }
2361
- const defaultNesting = [
2362
- {
2363
- tag: "script",
2364
- attrs: (attrs) => attrs.type == "text/typescript" || attrs.lang == "ts",
2365
- parser: typescriptLanguage.parser
2366
- },
2367
- {
2368
- tag: "script",
2369
- attrs: (attrs) => attrs.type == "text/babel" || attrs.type == "text/jsx",
2370
- parser: jsxLanguage.parser
2371
- },
2372
- {
2373
- tag: "script",
2374
- attrs: (attrs) => attrs.type == "text/typescript-jsx",
2375
- parser: tsxLanguage.parser
2376
- },
2377
- {
2378
- tag: "script",
2379
- attrs(attrs) {
2380
- return !attrs.type || /^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(attrs.type);
2381
- },
2382
- parser: javascriptLanguage.parser
2383
- },
2384
- {
2385
- tag: "style",
2386
- attrs(attrs) {
2387
- return (!attrs.lang || attrs.lang == "css") && (!attrs.type || /^(text\/)?(x-)?(stylesheet|css)$/i.test(attrs.type));
2388
- },
2389
- parser: cssLanguage.parser
2390
- }
2391
- ];
2392
- const defaultAttrs = /* @__PURE__ */ [
2393
- {
2394
- name: "style",
2395
- parser: /* @__PURE__ */ cssLanguage.parser.configure({ top: "Styles" })
2396
- }
2397
- ].concat(/* @__PURE__ */ eventAttributes.map((name) => ({ name, parser: javascriptLanguage.parser })));
2398
- const htmlLanguage = /* @__PURE__ */ LRLanguage.define({
2399
- name: "html",
2400
- parser: /* @__PURE__ */ parser.configure({
2401
- props: [
2402
- /* @__PURE__ */ indentNodeProp.add({
2403
- Element(context) {
2404
- let after = /^(\s*)(<\/)?/.exec(context.textAfter);
2405
- if (context.node.to <= context.pos + after[0].length)
2406
- return context.continue();
2407
- return context.lineIndent(context.node.from) + (after[2] ? 0 : context.unit);
2408
- },
2409
- "OpenTag CloseTag SelfClosingTag"(context) {
2410
- return context.column(context.node.from) + context.unit;
2411
- },
2412
- Document(context) {
2413
- if (context.pos + /\s*/.exec(context.textAfter)[0].length < context.node.to)
2414
- return context.continue();
2415
- let endElt = null, close;
2416
- for (let cur = context.node; ; ) {
2417
- let last = cur.lastChild;
2418
- if (!last || last.name != "Element" || last.to != cur.to)
2419
- break;
2420
- endElt = cur = last;
2421
- }
2422
- if (endElt && !((close = endElt.lastChild) && (close.name == "CloseTag" || close.name == "SelfClosingTag")))
2423
- return context.lineIndent(endElt.from) + context.unit;
2424
- return null;
2425
- }
2426
- }),
2427
- /* @__PURE__ */ foldNodeProp.add({
2428
- Element(node) {
2429
- let first = node.firstChild, last = node.lastChild;
2430
- if (!first || first.name != "OpenTag")
2431
- return null;
2432
- return { from: first.to, to: last.name == "CloseTag" ? last.from : node.to };
2433
- }
2434
- })
2435
- ],
2436
- wrap: /* @__PURE__ */ configureNesting(defaultNesting, defaultAttrs)
2437
- }),
2438
- languageData: {
2439
- commentTokens: { block: { open: "<!--", close: "-->" } },
2440
- indentOnInput: /^\s*<\/\w+\W$/,
2441
- wordChars: "-._"
2442
- }
2443
- });
2444
- function html(config = {}) {
2445
- let dialect = "", wrap;
2446
- if (config.matchClosingTags === false)
2447
- dialect = "noMatch";
2448
- if (config.selfClosingTags === true)
2449
- dialect = (dialect ? dialect + " " : "") + "selfClosing";
2450
- if (config.nestedLanguages && config.nestedLanguages.length || config.nestedAttributes && config.nestedAttributes.length)
2451
- wrap = configureNesting((config.nestedLanguages || []).concat(defaultNesting), (config.nestedAttributes || []).concat(defaultAttrs));
2452
- let lang = wrap || dialect ? htmlLanguage.configure({ dialect, wrap }) : htmlLanguage;
2453
- return new LanguageSupport(lang, [
2454
- htmlLanguage.data.of({ autocomplete: htmlCompletionSourceWith(config) }),
2455
- config.autoCloseTags !== false ? autoCloseTags : [],
2456
- javascript().support,
2457
- css().support
2458
- ]);
2459
- }
2460
- const autoCloseTags = /* @__PURE__ */ EditorView.inputHandler.of((view, from, to, text) => {
2461
- if (view.composing || view.state.readOnly || from != to || text != ">" && text != "/" || !htmlLanguage.isActiveAt(view.state, from, -1))
2462
- return false;
2463
- let { state } = view;
2464
- let changes = state.changeByRange((range) => {
2465
- var _a, _b, _c;
2466
- let { head } = range, around = syntaxTree(state).resolveInner(head, -1), name;
2467
- if (around.name == "TagName" || around.name == "StartTag")
2468
- around = around.parent;
2469
- if (text == ">" && around.name == "OpenTag") {
2470
- if (((_b = (_a = around.parent) === null || _a === void 0 ? void 0 : _a.lastChild) === null || _b === void 0 ? void 0 : _b.name) != "CloseTag" && (name = elementName(state.doc, around.parent, head))) {
2471
- let hasRightBracket = view.state.doc.sliceString(head, head + 1) === ">";
2472
- let insert = `${hasRightBracket ? "" : ">"}</${name}>`;
2473
- return { range: EditorSelection.cursor(head + 1), changes: { from: head + (hasRightBracket ? 1 : 0), insert } };
2474
- }
2475
- } else if (text == "/" && around.name == "OpenTag") {
2476
- let empty = around.parent, base = empty === null || empty === void 0 ? void 0 : empty.parent;
2477
- if (empty.from == head - 1 && ((_c = base.lastChild) === null || _c === void 0 ? void 0 : _c.name) != "CloseTag" && (name = elementName(state.doc, base, head))) {
2478
- let hasRightBracket = view.state.doc.sliceString(head, head + 1) === ">";
2479
- let insert = `/${name}${hasRightBracket ? "" : ">"}`;
2480
- let pos = head + insert.length + (hasRightBracket ? 1 : 0);
2481
- return { range: EditorSelection.cursor(pos), changes: { from: head, insert } };
2482
- }
2483
- }
2484
- return { range };
2485
- });
2486
- if (changes.changes.empty)
2487
- return false;
2488
- view.dispatch(changes, { userEvent: "input.type", scrollIntoView: true });
2489
- return true;
2490
- });
2491
- export {
2492
- autoCloseTags as a,
2493
- javascript as b,
2494
- htmlLanguage as h,
2495
- javascriptLanguage as j,
2496
- localCompletionSource as l,
2497
- snippets as s
2498
- };