milens 0.6.2 → 0.6.4

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 (123) hide show
  1. package/.agents/skills/adapters/SKILL.md +31 -0
  2. package/.agents/skills/analyzer/SKILL.md +55 -0
  3. package/.agents/skills/apps/SKILL.md +42 -0
  4. package/.agents/skills/docs/SKILL.md +46 -0
  5. package/.agents/skills/milens/SKILL.md +168 -0
  6. package/.agents/skills/milens-code-review/SKILL.md +186 -0
  7. package/.agents/skills/milens-eval/SKILL.md +221 -0
  8. package/.agents/skills/milens-plan/SKILL.md +227 -0
  9. package/.agents/skills/milens-refactor-clean/SKILL.md +209 -0
  10. package/.agents/skills/milens-security-review/SKILL.md +224 -0
  11. package/.agents/skills/milens-tdd/SKILL.md +156 -0
  12. package/.agents/skills/parser/SKILL.md +60 -0
  13. package/.agents/skills/root/SKILL.md +64 -0
  14. package/.agents/skills/scripts/SKILL.md +27 -0
  15. package/.agents/skills/security/SKILL.md +44 -0
  16. package/.agents/skills/server/SKILL.md +46 -0
  17. package/.agents/skills/store/SKILL.md +53 -0
  18. package/.agents/skills/test/SKILL.md +73 -0
  19. package/LICENSE +75 -75
  20. package/README.md +524 -305
  21. package/adapters/README.md +107 -0
  22. package/adapters/claude-code/.claude/mcp.json +9 -0
  23. package/adapters/claude-code/CLAUDE.md +58 -0
  24. package/adapters/codex/.codex/codex.md +52 -0
  25. package/adapters/copilot/.github/copilot-instructions.md +62 -0
  26. package/adapters/cursor/.cursorrules +9 -0
  27. package/adapters/gemini/.gemini/context.md +58 -0
  28. package/adapters/opencode/.opencode/config.json +9 -0
  29. package/adapters/opencode/AGENTS.md +58 -0
  30. package/adapters/zed/.zed/settings.json +8 -0
  31. package/dist/agents-md.d.ts +3 -0
  32. package/dist/agents-md.d.ts.map +1 -0
  33. package/dist/agents-md.js +112 -0
  34. package/dist/agents-md.js.map +1 -0
  35. package/dist/analyzer/engine.d.ts +1 -0
  36. package/dist/analyzer/engine.d.ts.map +1 -1
  37. package/dist/analyzer/engine.js +27 -8
  38. package/dist/analyzer/engine.js.map +1 -1
  39. package/dist/analyzer/review.d.ts +23 -0
  40. package/dist/analyzer/review.d.ts.map +1 -0
  41. package/dist/analyzer/review.js +143 -0
  42. package/dist/analyzer/review.js.map +1 -0
  43. package/dist/analyzer/testplan.d.ts +59 -0
  44. package/dist/analyzer/testplan.d.ts.map +1 -0
  45. package/dist/analyzer/testplan.js +218 -0
  46. package/dist/analyzer/testplan.js.map +1 -0
  47. package/dist/cli.js +1192 -401
  48. package/dist/cli.js.map +1 -1
  49. package/dist/metrics.d.ts +51 -0
  50. package/dist/metrics.d.ts.map +1 -0
  51. package/dist/metrics.js +64 -0
  52. package/dist/metrics.js.map +1 -0
  53. package/dist/parser/extract.d.ts +1 -0
  54. package/dist/parser/extract.d.ts.map +1 -1
  55. package/dist/parser/extract.js +8 -0
  56. package/dist/parser/extract.js.map +1 -1
  57. package/dist/parser/lang-go.d.ts.map +1 -1
  58. package/dist/parser/lang-go.js +75 -39
  59. package/dist/parser/lang-go.js.map +1 -1
  60. package/dist/parser/lang-java.d.ts.map +1 -1
  61. package/dist/parser/lang-java.js +30 -29
  62. package/dist/parser/lang-java.js.map +1 -1
  63. package/dist/parser/lang-js.js +105 -105
  64. package/dist/parser/lang-php.js +38 -38
  65. package/dist/parser/lang-py.d.ts.map +1 -1
  66. package/dist/parser/lang-py.js +53 -31
  67. package/dist/parser/lang-py.js.map +1 -1
  68. package/dist/parser/lang-ruby.d.ts.map +1 -1
  69. package/dist/parser/lang-ruby.js +15 -14
  70. package/dist/parser/lang-ruby.js.map +1 -1
  71. package/dist/parser/lang-rust.js +30 -30
  72. package/dist/parser/lang-ts.js +191 -191
  73. package/dist/security/deps.d.ts +38 -0
  74. package/dist/security/deps.d.ts.map +1 -0
  75. package/dist/security/deps.js +685 -0
  76. package/dist/security/deps.js.map +1 -0
  77. package/dist/security/rules.d.ts +42 -0
  78. package/dist/security/rules.d.ts.map +1 -0
  79. package/dist/security/rules.js +940 -0
  80. package/dist/security/rules.js.map +1 -0
  81. package/dist/server/hooks.d.ts +26 -0
  82. package/dist/server/hooks.d.ts.map +1 -0
  83. package/dist/server/hooks.js +253 -0
  84. package/dist/server/hooks.js.map +1 -0
  85. package/dist/server/mcp-prompts.d.ts +277 -0
  86. package/dist/server/mcp-prompts.d.ts.map +1 -0
  87. package/dist/server/mcp-prompts.js +627 -0
  88. package/dist/server/mcp-prompts.js.map +1 -0
  89. package/dist/server/mcp.d.ts.map +1 -1
  90. package/dist/server/mcp.js +520 -36
  91. package/dist/server/mcp.js.map +1 -1
  92. package/dist/server/test-plan.d.ts +20 -0
  93. package/dist/server/test-plan.d.ts.map +1 -0
  94. package/dist/server/test-plan.js +100 -0
  95. package/dist/server/test-plan.js.map +1 -0
  96. package/dist/skills.js +152 -120
  97. package/dist/skills.js.map +1 -1
  98. package/dist/store/annotations.d.ts +41 -0
  99. package/dist/store/annotations.d.ts.map +1 -0
  100. package/dist/store/annotations.js +192 -0
  101. package/dist/store/annotations.js.map +1 -0
  102. package/dist/store/confidence.d.ts +18 -0
  103. package/dist/store/confidence.d.ts.map +1 -0
  104. package/dist/store/confidence.js +82 -0
  105. package/dist/store/confidence.js.map +1 -0
  106. package/dist/store/db.d.ts +68 -1
  107. package/dist/store/db.d.ts.map +1 -1
  108. package/dist/store/db.js +349 -139
  109. package/dist/store/db.js.map +1 -1
  110. package/dist/store/schema.sql +128 -83
  111. package/dist/store/vectors.d.ts +65 -0
  112. package/dist/store/vectors.d.ts.map +1 -0
  113. package/dist/store/vectors.js +212 -0
  114. package/dist/store/vectors.js.map +1 -0
  115. package/dist/types.d.ts +101 -0
  116. package/dist/types.d.ts.map +1 -1
  117. package/dist/utils.d.ts +3 -0
  118. package/dist/utils.d.ts.map +1 -0
  119. package/dist/utils.js +9 -0
  120. package/dist/utils.js.map +1 -0
  121. package/docs/README.md +24 -0
  122. package/docs/diagram2.svg +1 -1
  123. package/package.json +80 -65
@@ -5,212 +5,212 @@ const spec = {
5
5
  extensions: ['.ts', '.tsx'],
6
6
  wasmName: 'tree-sitter-tsx',
7
7
  queries: {
8
- functions: `[
9
- (function_declaration name: (identifier) @name) @def
10
- (generator_function_declaration name: (identifier) @name) @def
11
- (lexical_declaration
12
- (variable_declarator
13
- name: (identifier) @name
14
- value: (arrow_function)
15
- )
16
- ) @def
8
+ functions: `[
9
+ (function_declaration name: (identifier) @name) @def
10
+ (generator_function_declaration name: (identifier) @name) @def
11
+ (lexical_declaration
12
+ (variable_declarator
13
+ name: (identifier) @name
14
+ value: (arrow_function)
15
+ )
16
+ ) @def
17
17
  ]`,
18
18
  classes: `(class_declaration name: (type_identifier) @name) @def`,
19
19
  methods: `(method_definition name: (property_identifier) @name) @def`,
20
20
  interfaces: `(interface_declaration name: (type_identifier) @name) @def`,
21
21
  enums: `(enum_declaration name: (identifier) @name) @def`,
22
22
  types: `(type_alias_declaration name: (type_identifier) @name) @def`,
23
- variables: `(program (lexical_declaration
23
+ variables: `(program (lexical_declaration
24
24
  (variable_declarator name: (identifier) @name)) @def)`,
25
- imports: `[
26
- (import_statement
27
- source: (string (string_fragment) @source)
28
- ) @def
29
- (call_expression
30
- function: (import)
31
- arguments: (arguments (string (string_fragment) @source))
32
- ) @def
33
- (lexical_declaration
34
- (variable_declarator
35
- value: (call_expression
36
- function: (identifier) @_req
37
- arguments: (arguments (string (string_fragment) @source))
38
- )
39
- )
40
- ) @def
25
+ imports: `[
26
+ (import_statement
27
+ source: (string (string_fragment) @source)
28
+ ) @def
29
+ (call_expression
30
+ function: (import)
31
+ arguments: (arguments (string (string_fragment) @source))
32
+ ) @def
33
+ (lexical_declaration
34
+ (variable_declarator
35
+ value: (call_expression
36
+ function: (identifier) @_req
37
+ arguments: (arguments (string (string_fragment) @source))
38
+ )
39
+ )
40
+ ) @def
41
41
  ]`,
42
- exports: `[
43
- (export_statement
44
- declaration: (function_declaration name: (identifier) @name)
45
- )
46
- (export_statement
47
- declaration: (class_declaration name: (type_identifier) @name)
48
- )
49
- (export_statement
50
- declaration: (interface_declaration name: (type_identifier) @name)
51
- )
52
- (export_statement
53
- declaration: (enum_declaration name: (identifier) @name)
54
- )
55
- (export_statement
56
- declaration: (lexical_declaration
57
- (variable_declarator name: (identifier) @name)
58
- )
59
- )
60
- (export_statement
61
- (export_clause (export_specifier name: (identifier) @name))
62
- )
63
- (export_statement
64
- declaration: (type_alias_declaration name: (type_identifier) @name)
65
- )
66
- (export_statement
67
- declaration: (generator_function_declaration name: (identifier) @name)
68
- )
69
- (export_statement
70
- value: (identifier) @name
71
- )
42
+ exports: `[
43
+ (export_statement
44
+ declaration: (function_declaration name: (identifier) @name)
45
+ )
46
+ (export_statement
47
+ declaration: (class_declaration name: (type_identifier) @name)
48
+ )
49
+ (export_statement
50
+ declaration: (interface_declaration name: (type_identifier) @name)
51
+ )
52
+ (export_statement
53
+ declaration: (enum_declaration name: (identifier) @name)
54
+ )
55
+ (export_statement
56
+ declaration: (lexical_declaration
57
+ (variable_declarator name: (identifier) @name)
58
+ )
59
+ )
60
+ (export_statement
61
+ (export_clause (export_specifier name: (identifier) @name))
62
+ )
63
+ (export_statement
64
+ declaration: (type_alias_declaration name: (type_identifier) @name)
65
+ )
66
+ (export_statement
67
+ declaration: (generator_function_declaration name: (identifier) @name)
68
+ )
69
+ (export_statement
70
+ value: (identifier) @name
71
+ )
72
72
  ]`,
73
- calls: `[
74
- (call_expression function: (identifier) @callee) @def
75
- (call_expression function: (member_expression object: (_) @receiver property: (property_identifier) @callee)) @def
76
- (new_expression constructor: (identifier) @callee) @def
77
- (new_expression constructor: (member_expression object: (identifier) @receiver property: (property_identifier) @callee)) @def
78
- (decorator (identifier) @callee) @def
79
- (decorator (call_expression arguments: (arguments (identifier) @callee))) @def
80
- (decorator (call_expression arguments: (arguments (object (pair value: (identifier) @callee))))) @def
81
- (decorator (call_expression arguments: (arguments (object (pair value: (array (identifier) @callee)))))) @def
82
- (decorator (call_expression arguments: (arguments (object (pair value: (array (object (pair value: (identifier) @callee)))))))) @def
83
- (decorator (call_expression arguments: (arguments (arrow_function body: (identifier) @callee)))) @def
84
- (decorator (call_expression arguments: (arguments (object (pair value: (arrow_function body: (identifier) @callee)))))) @def
85
- (call_expression arguments: (arguments (identifier) @callee)) @def
86
- (call_expression arguments: (arguments (object (pair value: (identifier) @callee)))) @def
87
- (call_expression arguments: (arguments (object (pair value: (array (identifier) @callee))))) @def
88
- (jsx_self_closing_element name: (identifier) @callee) @def
89
- (jsx_opening_element name: (identifier) @callee) @def
90
- (jsx_self_closing_element name: (member_expression object: (identifier) @receiver property: (property_identifier) @callee)) @def
91
- (jsx_opening_element name: (member_expression object: (identifier) @receiver property: (property_identifier) @callee)) @def
73
+ calls: `[
74
+ (call_expression function: (identifier) @callee) @def
75
+ (call_expression function: (member_expression object: (_) @receiver property: (property_identifier) @callee)) @def
76
+ (new_expression constructor: (identifier) @callee) @def
77
+ (new_expression constructor: (member_expression object: (identifier) @receiver property: (property_identifier) @callee)) @def
78
+ (decorator (identifier) @callee) @def
79
+ (decorator (call_expression arguments: (arguments (identifier) @callee))) @def
80
+ (decorator (call_expression arguments: (arguments (object (pair value: (identifier) @callee))))) @def
81
+ (decorator (call_expression arguments: (arguments (object (pair value: (array (identifier) @callee)))))) @def
82
+ (decorator (call_expression arguments: (arguments (object (pair value: (array (object (pair value: (identifier) @callee)))))))) @def
83
+ (decorator (call_expression arguments: (arguments (arrow_function body: (identifier) @callee)))) @def
84
+ (decorator (call_expression arguments: (arguments (object (pair value: (arrow_function body: (identifier) @callee)))))) @def
85
+ (call_expression arguments: (arguments (identifier) @callee)) @def
86
+ (call_expression arguments: (arguments (object (pair value: (identifier) @callee)))) @def
87
+ (call_expression arguments: (arguments (object (pair value: (array (identifier) @callee))))) @def
88
+ (jsx_self_closing_element name: (identifier) @callee) @def
89
+ (jsx_opening_element name: (identifier) @callee) @def
90
+ (jsx_self_closing_element name: (member_expression object: (identifier) @receiver property: (property_identifier) @callee)) @def
91
+ (jsx_opening_element name: (member_expression object: (identifier) @receiver property: (property_identifier) @callee)) @def
92
92
  ]`,
93
- heritage: `[
94
- (class_declaration
95
- name: (type_identifier) @child
96
- (class_heritage (extends_clause value: (identifier) @parent))
97
- ) @def
98
- (class_declaration
99
- name: (type_identifier) @child
100
- (class_heritage (implements_clause (type_identifier) @parent))
101
- ) @def
93
+ heritage: `[
94
+ (class_declaration
95
+ name: (type_identifier) @child
96
+ (class_heritage (extends_clause value: (identifier) @parent))
97
+ ) @def
98
+ (class_declaration
99
+ name: (type_identifier) @child
100
+ (class_heritage (implements_clause (type_identifier) @parent))
101
+ ) @def
102
102
  ]`,
103
- reExports: `[
104
- (export_statement
105
- source: (string (string_fragment) @source)
106
- (export_clause (export_specifier name: (identifier) @name))
107
- ) @def
108
- (export_statement
109
- source: (string (string_fragment) @source)
110
- "*"
111
- ) @def
103
+ reExports: `[
104
+ (export_statement
105
+ source: (string (string_fragment) @source)
106
+ (export_clause (export_specifier name: (identifier) @name))
107
+ ) @def
108
+ (export_statement
109
+ source: (string (string_fragment) @source)
110
+ "*"
111
+ ) @def
112
112
  ]`,
113
- typeBindings: `[
114
- (lexical_declaration
115
- (variable_declarator
116
- name: (identifier) @var
117
- value: (new_expression constructor: (identifier) @type)
118
- )
119
- )
120
- (lexical_declaration
121
- (variable_declarator
122
- name: (identifier) @var
123
- type: (type_annotation (type_identifier) @type)
124
- )
125
- )
126
- (required_parameter
127
- pattern: (identifier) @var
128
- type: (type_annotation (type_identifier) @type)
129
- )
130
- (public_field_definition
131
- name: (property_identifier) @var
132
- type: (type_annotation (type_identifier) @type)
133
- )
134
- (lexical_declaration
135
- (variable_declarator
136
- name: (identifier) @var
137
- type: (type_annotation (generic_type type_arguments: (type_arguments (type_identifier) @type)))
138
- )
139
- )
140
- (required_parameter
141
- pattern: (identifier) @var
142
- type: (type_annotation (generic_type type_arguments: (type_arguments (type_identifier) @type)))
143
- )
144
- (public_field_definition
145
- name: (property_identifier) @var
146
- type: (type_annotation (generic_type type_arguments: (type_arguments (type_identifier) @type)))
147
- )
113
+ typeBindings: `[
114
+ (lexical_declaration
115
+ (variable_declarator
116
+ name: (identifier) @var
117
+ value: (new_expression constructor: (identifier) @type)
118
+ )
119
+ )
120
+ (lexical_declaration
121
+ (variable_declarator
122
+ name: (identifier) @var
123
+ type: (type_annotation (type_identifier) @type)
124
+ )
125
+ )
126
+ (required_parameter
127
+ pattern: (identifier) @var
128
+ type: (type_annotation (type_identifier) @type)
129
+ )
130
+ (public_field_definition
131
+ name: (property_identifier) @var
132
+ type: (type_annotation (type_identifier) @type)
133
+ )
134
+ (lexical_declaration
135
+ (variable_declarator
136
+ name: (identifier) @var
137
+ type: (type_annotation (generic_type type_arguments: (type_arguments (type_identifier) @type)))
138
+ )
139
+ )
140
+ (required_parameter
141
+ pattern: (identifier) @var
142
+ type: (type_annotation (generic_type type_arguments: (type_arguments (type_identifier) @type)))
143
+ )
144
+ (public_field_definition
145
+ name: (property_identifier) @var
146
+ type: (type_annotation (generic_type type_arguments: (type_arguments (type_identifier) @type)))
147
+ )
148
148
  ]`,
149
- assignmentChains: `[
150
- (lexical_declaration
151
- (variable_declarator
152
- name: (identifier) @target
153
- value: (identifier) @source
154
- )
155
- )
149
+ assignmentChains: `[
150
+ (lexical_declaration
151
+ (variable_declarator
152
+ name: (identifier) @target
153
+ value: (identifier) @source
154
+ )
155
+ )
156
156
  ]`,
157
- returnTypes: `[
158
- (function_declaration
159
- name: (identifier) @name
160
- return_type: (type_annotation (type_identifier) @returnType)
161
- )
162
- (lexical_declaration
163
- (variable_declarator
164
- name: (identifier) @name
165
- value: (arrow_function
166
- return_type: (type_annotation (type_identifier) @returnType)
167
- )
168
- )
169
- )
170
- (class_declaration
171
- name: (type_identifier) @className
172
- body: (class_body
173
- (method_definition
174
- name: (property_identifier) @name
175
- return_type: (type_annotation (type_identifier) @returnType)
176
- )
177
- )
178
- )
179
- (function_declaration
180
- name: (identifier) @name
181
- return_type: (type_annotation (generic_type type_arguments: (type_arguments (type_identifier) @returnType)))
182
- )
183
- (lexical_declaration
184
- (variable_declarator
185
- name: (identifier) @name
186
- value: (arrow_function
187
- return_type: (type_annotation (generic_type type_arguments: (type_arguments (type_identifier) @returnType)))
188
- )
189
- )
190
- )
191
- (class_declaration
192
- name: (type_identifier) @className
193
- body: (class_body
194
- (method_definition
195
- name: (property_identifier) @name
196
- return_type: (type_annotation (generic_type type_arguments: (type_arguments (type_identifier) @returnType)))
197
- )
198
- )
199
- )
157
+ returnTypes: `[
158
+ (function_declaration
159
+ name: (identifier) @name
160
+ return_type: (type_annotation (type_identifier) @returnType)
161
+ )
162
+ (lexical_declaration
163
+ (variable_declarator
164
+ name: (identifier) @name
165
+ value: (arrow_function
166
+ return_type: (type_annotation (type_identifier) @returnType)
167
+ )
168
+ )
169
+ )
170
+ (class_declaration
171
+ name: (type_identifier) @className
172
+ body: (class_body
173
+ (method_definition
174
+ name: (property_identifier) @name
175
+ return_type: (type_annotation (type_identifier) @returnType)
176
+ )
177
+ )
178
+ )
179
+ (function_declaration
180
+ name: (identifier) @name
181
+ return_type: (type_annotation (generic_type type_arguments: (type_arguments (type_identifier) @returnType)))
182
+ )
183
+ (lexical_declaration
184
+ (variable_declarator
185
+ name: (identifier) @name
186
+ value: (arrow_function
187
+ return_type: (type_annotation (generic_type type_arguments: (type_arguments (type_identifier) @returnType)))
188
+ )
189
+ )
190
+ )
191
+ (class_declaration
192
+ name: (type_identifier) @className
193
+ body: (class_body
194
+ (method_definition
195
+ name: (property_identifier) @name
196
+ return_type: (type_annotation (generic_type type_arguments: (type_arguments (type_identifier) @returnType)))
197
+ )
198
+ )
199
+ )
200
200
  ]`,
201
- callResultBindings: `[
202
- (lexical_declaration
203
- (variable_declarator
204
- name: (identifier) @var
205
- value: (call_expression function: (identifier) @callee)
206
- )
207
- )
208
- (lexical_declaration
209
- (variable_declarator
210
- name: (identifier) @var
211
- value: (call_expression function: (member_expression object: (_) @receiver property: (property_identifier) @callee))
212
- )
213
- )
201
+ callResultBindings: `[
202
+ (lexical_declaration
203
+ (variable_declarator
204
+ name: (identifier) @var
205
+ value: (call_expression function: (identifier) @callee)
206
+ )
207
+ )
208
+ (lexical_declaration
209
+ (variable_declarator
210
+ name: (identifier) @var
211
+ value: (call_expression function: (member_expression object: (_) @receiver property: (property_identifier) @callee))
212
+ )
213
+ )
214
214
  ]`,
215
215
  },
216
216
  resolveImport(raw, fromFile, root, aliases) {
@@ -0,0 +1,38 @@
1
+ export type Ecosystem = 'npm' | 'python' | 'rust' | 'go' | 'java' | 'unknown';
2
+ export interface Dependency {
3
+ name: string;
4
+ version: string;
5
+ ecosystem: Ecosystem;
6
+ }
7
+ export interface Vulnerability {
8
+ id: string;
9
+ cve?: string;
10
+ severity: 'CRITICAL' | 'HIGH' | 'MEDIUM' | 'LOW';
11
+ package: string;
12
+ affectedVersions: string;
13
+ fixedVersion?: string;
14
+ description: string;
15
+ }
16
+ export interface VulnerabilityReport {
17
+ ecosystem: Ecosystem;
18
+ totalDependencies: number;
19
+ vulnerableDependencies: number;
20
+ findings: Vulnerability[];
21
+ }
22
+ /**
23
+ * Detect which package ecosystem a project uses by checking for manifest files.
24
+ */
25
+ export declare function detectEcosystem(rootPath: string): Ecosystem;
26
+ /**
27
+ * Parse dependencies from manifest files.
28
+ */
29
+ export declare function parseDependencies(rootPath: string, ecosystem: Ecosystem): Dependency[];
30
+ /**
31
+ * Check dependencies against known vulnerabilities (offline database).
32
+ */
33
+ export declare function checkVulnerabilities(deps: Dependency[]): VulnerabilityReport;
34
+ /**
35
+ * Full audit: detect ecosystem → parse dependencies → check vulnerabilities.
36
+ */
37
+ export declare function auditDependencies(rootPath: string): VulnerabilityReport;
38
+ //# sourceMappingURL=deps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../../src/security/deps.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;AAE9E,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,SAAS,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AA8dD;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAO3D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,UAAU,EAAE,CAetF;AAiJD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,mBAAmB,CAwC5E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,CAIvE"}