@su-record/vibe 2.4.32 → 2.4.34

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.
package/CLAUDE.md CHANGED
@@ -37,6 +37,12 @@ SPEC 주도 AI 코딩 프레임워크 (Claude Code 전용)
37
37
  - `@ts-ignore` 금지 → 타입 문제 근본 해결
38
38
  - 모든 함수에 반환 타입 명시
39
39
 
40
+ ### TypeScript 규칙
41
+ - `any` 타입 사용 금지 → `unknown` + 타입 가드 사용
42
+ - `as any` 캐스팅 금지 → 적절한 인터페이스 정의
43
+ - `@ts-ignore` 금지 → 타입 문제 근본 해결
44
+ - 모든 함수에 반환 타입 명시
45
+
40
46
  ### 에러 처리 필수
41
47
  - try-catch 또는 error state 필수
42
48
  - 로딩 상태 처리
package/README.md CHANGED
@@ -1,210 +1,210 @@
1
1
  # Vibe
2
2
 
3
- **SPEC 기반 AI 코딩 프레임워크** (Claude Code 전용)
3
+ **SPEC-driven AI coding framework** (Claude Code only)
4
4
 
5
5
  [![npm version](https://img.shields.io/npm/v/@su-record/vibe.svg)](https://www.npmjs.com/package/@su-record/vibe)
6
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
7
 
8
- ## 설치
8
+ ## Install
9
9
 
10
10
  ```bash
11
11
  npm install -g @su-record/vibe
12
12
  vibe init
13
13
  ```
14
14
 
15
- ## 명령어
15
+ ## Commands
16
16
 
17
- ### 터미널
17
+ ### Terminal
18
18
 
19
- | 명령어 | 설명 |
20
- |--------|------|
21
- | `vibe init` | 프로젝트 초기화 |
22
- | `vibe update` | 설정 업데이트 |
23
- | `vibe status` | 현재 상태 확인 |
24
- | `vibe auth gpt` | GPT OAuth 인증 |
25
- | `vibe auth gemini` | Gemini OAuth 인증 |
26
- | `vibe logout gpt` | GPT 로그아웃 |
27
- | `vibe logout gemini` | Gemini 로그아웃 |
28
- | `vibe help` | 도움말 |
29
- | `vibe version` | 버전 정보 |
19
+ | Command | Description |
20
+ |---------|-------------|
21
+ | `vibe init` | Initialize project |
22
+ | `vibe update` | Update settings |
23
+ | `vibe status` | Check status |
24
+ | `vibe auth gpt` | GPT OAuth authentication |
25
+ | `vibe auth gemini` | Gemini OAuth authentication |
26
+ | `vibe logout gpt` | GPT logout |
27
+ | `vibe logout gemini` | Gemini logout |
28
+ | `vibe help` | Help |
29
+ | `vibe version` | Version info |
30
30
 
31
31
  ### Claude Code
32
32
 
33
- | 명령어 | 설명 |
34
- |--------|------|
35
- | `/vibe.spec "기능"` | SPEC 문서 작성 + 병렬 리서치 |
36
- | `/vibe.run "기능"` | 구현 실행 |
37
- | `/vibe.run "기능" ultrawork` | 최대 성능 모드 |
38
- | `/vibe.verify "기능"` | BDD 검증 |
39
- | `/vibe.review` | 13+ 에이전트 병렬 리뷰 |
40
- | `/vibe.analyze` | 코드 분석 |
41
- | `/vibe.reason "문제"` | 체계적 추론 |
42
- | `/vibe.utils` | 유틸리티 (--e2e, --diagram ) |
33
+ | Command | Description |
34
+ |---------|-------------|
35
+ | `/vibe.spec "feature"` | Create SPEC + parallel research |
36
+ | `/vibe.run "feature"` | Execute implementation |
37
+ | `/vibe.run "feature" ultrawork` | Maximum performance mode |
38
+ | `/vibe.verify "feature"` | BDD verification |
39
+ | `/vibe.review` | 13+ agent parallel review |
40
+ | `/vibe.analyze` | Code analysis |
41
+ | `/vibe.reason "problem"` | Systematic reasoning |
42
+ | `/vibe.utils` | Utilities (--e2e, --diagram, etc.) |
43
43
 
44
- ## 워크플로우
44
+ ## Workflow
45
45
 
46
46
  ```
47
47
  /vibe.spec → /vibe.run → /vibe.verify → /vibe.review
48
48
  ```
49
49
 
50
- ## 주요 기능
50
+ ## Key Features
51
51
 
52
- | 기능 | 설명 |
53
- |------|------|
54
- | **멀티모델 오케스트레이션** | Claude + GPT-5.2 + Gemini 3 Pro 통합 |
55
- | **13+ 병렬 리뷰 에이전트** | 보안, 성능, 아키텍처 동시 검토 |
56
- | **BDD 자동 검증** | Given/When/Then 시나리오별 검증 |
57
- | **ULTRAWORK 모드** | `ulw` 단어로 모든 최적화 활성화 |
58
- | **36 내장 도구** | 코드 분석, 메모리 관리, 품질 검증 |
59
- | **자동 컨텍스트 관리** | 80%+ 자동 저장, 세션 복원 |
52
+ | Feature | Description |
53
+ |---------|-------------|
54
+ | **Multi-model orchestration** | Claude + GPT-5.2 + Gemini 3 Pro |
55
+ | **13+ parallel review agents** | Security, performance, architecture |
56
+ | **BDD auto verification** | Given/When/Then scenario verification |
57
+ | **ULTRAWORK mode** | One keyword enables all optimizations |
58
+ | **36 built-in tools** | Code analysis, memory management, quality validation |
59
+ | **Auto context management** | 80%+ auto-save, session restore |
60
60
 
61
- ## ULTRAWORK 모드
61
+ ## ULTRAWORK Mode
62
62
 
63
- `ultrawork` 또는 `ulw` 키워드로 최대 성능 모드 활성화:
63
+ Enable maximum performance with `ultrawork` or `ulw`:
64
64
 
65
65
  ```bash
66
- /vibe.run "기능명" ultrawork
67
- /vibe.run "기능명" ulw # 동일
66
+ /vibe.run "feature" ultrawork
67
+ /vibe.run "feature" ulw # Same
68
68
  ```
69
69
 
70
- **활성화 기능:**
71
- - 병렬 서브에이전트 탐색 (3+ 동시)
72
- - Boulder Loop (모든 시나리오 완료까지 자동 진행)
73
- - 에러 자동 재시도 (최대 3)
74
- - Phase 확인 없이 연속 실행
75
- - 컨텍스트 80%+ 시 자동 저장
70
+ **Enabled features:**
71
+ - Parallel subagent exploration (3+ concurrent)
72
+ - Boulder Loop (auto-progress until all scenarios complete)
73
+ - Auto-retry on errors (max 3)
74
+ - Continuous execution without phase confirmation
75
+ - Auto-save at 80%+ context
76
76
 
77
- ## 멀티모델 오케스트레이션
77
+ ## Multi-model Orchestration
78
78
 
79
- Claude Code에서 GPT, Gemini Hook prefix로 직접 호출:
79
+ Call GPT/Gemini directly with hook prefixes:
80
80
 
81
- | LLM | Prefix | 예시 | 기능 |
82
- |-----|--------|------|------|
83
- | GPT | `gpt-`, `gpt.`, `지피티-` | `gpt.오늘 서울 날씨` | Web Search 지원 |
84
- | Gemini | `gemini-`, `gemini.`, `제미나이-` | `gemini-UI 개선점` | Google Search 지원 |
81
+ | LLM | Prefix | Example | Features |
82
+ |-----|--------|---------|----------|
83
+ | GPT | `gpt-`, `gpt.` | `gpt.weather today` | Web Search enabled |
84
+ | Gemini | `gemini-`, `gemini.` | `gemini.UI improvements` | Google Search enabled |
85
85
 
86
- | 상황 | 추천 모델 | 호출 예시 |
87
- |------|----------|----------|
88
- | 최신 정보 검색 | GPT | `gpt.React 19 변경사항` |
89
- | UI/UX 리뷰 | Gemini | `gemini.이 UX 개선해줘` |
90
- | 아키텍처 검토 | GPT | `gpt-이 아키텍처 검토해줘` |
91
- | 코드 분석 | Gemini | `gemini-이 코드 분석해줘` |
86
+ | Scenario | Recommended | Example |
87
+ |----------|-------------|---------|
88
+ | Latest info search | GPT | `gpt.React 19 changes` |
89
+ | UI/UX review | Gemini | `gemini.improve this form UX` |
90
+ | Architecture review | GPT | `gpt-review this architecture` |
91
+ | Code analysis | Gemini | `gemini-analyze this code` |
92
92
 
93
- **직접 API 호출:**
93
+ **Direct API call:**
94
94
 
95
95
  ```javascript
96
- import('@su-record/vibe/lib/gpt').then(g => g.quickWebSearch('오늘 날씨'))
97
- import('@su-record/vibe/lib/gemini').then(g => g.quickAsk('질문'))
96
+ import('@su-record/vibe/lib/gpt').then(g => g.quickWebSearch('weather today'))
97
+ import('@su-record/vibe/lib/gemini').then(g => g.quickAsk('question'))
98
98
  ```
99
99
 
100
- ## 병렬 리뷰 에이전트
100
+ ## Parallel Review Agents
101
101
 
102
- `/vibe.review` 실행 13+ 에이전트가 동시 검토:
102
+ `/vibe.review` runs 13+ agents concurrently:
103
103
 
104
- | 분야 | 에이전트 |
105
- |------|----------|
106
- | 보안 | security-reviewer, data-integrity-reviewer |
107
- | 성능 | performance-reviewer, complexity-reviewer |
108
- | 아키텍처 | architecture-reviewer, simplicity-reviewer |
109
- | 언어별 | python, typescript, rails, react reviewers |
110
- | 컨텍스트 | git-history, test-coverage reviewers |
104
+ | Category | Agents |
105
+ |----------|--------|
106
+ | Security | security-reviewer, data-integrity-reviewer |
107
+ | Performance | performance-reviewer, complexity-reviewer |
108
+ | Architecture | architecture-reviewer, simplicity-reviewer |
109
+ | Language | python, typescript, rails, react reviewers |
110
+ | Context | git-history, test-coverage reviewers |
111
111
 
112
- **우선순위:**
113
- - 🔴 P1 (Critical): 머지 차단
114
- - 🟡 P2 (Important): 수정 권장
115
- - 🔵 P3 (Nice-to-have): 백로그
112
+ **Priority:**
113
+ - 🔴 P1 (Critical): Blocks merge
114
+ - 🟡 P2 (Important): Recommended fix
115
+ - 🔵 P3 (Nice-to-have): Backlog
116
116
 
117
- ## 내장 도구
117
+ ## Built-in Tools
118
118
 
119
- | 도구 | 설명 |
120
- |------|------|
121
- | `vibe_find_symbol` | 심볼 정의 찾기 |
122
- | `vibe_find_references` | 참조 찾기 |
123
- | `vibe_analyze_complexity` | 복잡도 분석 |
124
- | `vibe_validate_code_quality` | 품질 검증 |
125
- | `vibe_start_session` | 세션 시작 (이전 컨텍스트 복원) |
126
- | `vibe_save_memory` | 중요 결정사항 저장 |
127
- | `vibe_auto_save_context` | 현재 상태 자동 저장 |
119
+ | Tool | Description |
120
+ |------|-------------|
121
+ | `vibe_find_symbol` | Find symbol definition |
122
+ | `vibe_find_references` | Find references |
123
+ | `vibe_analyze_complexity` | Complexity analysis |
124
+ | `vibe_validate_code_quality` | Quality validation |
125
+ | `vibe_start_session` | Start session (restore previous context) |
126
+ | `vibe_save_memory` | Save important decisions |
127
+ | `vibe_auto_save_context` | Auto-save current state |
128
128
 
129
- ## 프로젝트 구조
129
+ ## Project Structure
130
130
 
131
- **전역 설치 (`~/.claude/`):**
131
+ **Global install (`~/.claude/`):**
132
132
 
133
133
  ```text
134
134
  ~/.claude/
135
- ├── commands/ # 슬래시 커맨드 (7)
136
- ├── agents/ # 리뷰/리서치 에이전트
137
- ├── skills/ # 자동 활성화 가이드 (7)
138
- └── settings.json # Hooks + MCP 설정
135
+ ├── commands/ # Slash commands (7)
136
+ ├── agents/ # Review/research agents
137
+ ├── skills/ # Auto-activated guides (7)
138
+ └── settings.json # Hooks + MCP settings
139
139
  ```
140
140
 
141
- **프로젝트별 (`프로젝트/.claude/vibe/`):**
141
+ **Project-specific (`project/.claude/vibe/`):**
142
142
 
143
143
  ```text
144
144
  .claude/vibe/
145
- ├── specs/ # SPEC 문서
146
- ├── features/ # BDD 시나리오
147
- ├── rules/ # 코딩 규칙 (기술스택별)
148
- ├── solutions/ # 해결책 아카이브
149
- ├── config.json # 프로젝트 설정
150
- └── constitution.md # 프로젝트 원칙
145
+ ├── specs/ # SPEC documents
146
+ ├── features/ # BDD scenarios
147
+ ├── rules/ # Coding rules (per stack)
148
+ ├── solutions/ # Solution archive
149
+ ├── config.json # Project settings
150
+ └── constitution.md # Project principles
151
151
  ```
152
152
 
153
- ## 코드 품질 기준
153
+ ## Code Quality Standards
154
154
 
155
- | 메트릭 | 제한 |
156
- |--------|------|
157
- | 함수 길이 | 30 권장, 50 허용 |
158
- | 중첩 깊이 | 3단계 이하 |
159
- | 매개변수 | 5 이하 |
160
- | 순환 복잡도 | 10 이하 |
155
+ | Metric | Limit |
156
+ |--------|-------|
157
+ | Function length | 30 lines recommended, 50 allowed |
158
+ | Nesting depth | 3 levels max |
159
+ | Parameters | 5 max |
160
+ | Cyclomatic complexity | 10 max |
161
161
 
162
- ## 사용 예시
162
+ ## Usage Example
163
163
 
164
164
  ```
165
- User: /vibe.spec "로그인 기능"
165
+ User: /vibe.spec "login feature"
166
166
 
167
- Claude: 로그인 기능을 만드시는군요! 가지 질문이 있습니다.
168
- 1. 인증 방식은? (이메일/비밀번호, OAuth, Passkey)
169
- 2. 기술 스택은?
167
+ Claude: You're building a login feature! I have a few questions.
168
+ 1. Auth method? (email/password, OAuth, Passkey)
169
+ 2. Tech stack?
170
170
  ...
171
171
 
172
- [대화로 요구사항 확정]
173
- [4 병렬 리서치 에이전트 실행]
172
+ [Requirements confirmed via conversation]
173
+ [4 parallel research agents run]
174
174
 
175
- ✅ SPEC 문서 생성 완료
175
+ ✅ SPEC document created
176
176
  📄 .claude/vibe/specs/login.md
177
177
  📄 .claude/vibe/features/login.feature
178
178
 
179
- 다음 단계: /vibe.run "로그인 기능" ultrawork
179
+ Next: /vibe.run "login feature" ultrawork
180
180
  ```
181
181
 
182
- ## 요구사항
182
+ ## Requirements
183
183
 
184
184
  - Node.js 18.0.0+
185
185
  - Claude Code
186
186
 
187
- ## 라이선스
187
+ ## License
188
188
 
189
189
  MIT - [GitHub](https://github.com/su-record/vibe)
190
190
 
191
191
  ## Vibe Setup (AI Coding)
192
192
 
193
- 프로젝트는 [Vibe](https://github.com/su-record/vibe) AI 코딩 프레임워크를 사용합니다.
193
+ This project uses [Vibe](https://github.com/su-record/vibe) AI coding framework.
194
194
 
195
- ### 협업자 설치
195
+ ### Collaborator Install
196
196
 
197
197
  ```bash
198
- # 전역 설치 (권장)
198
+ # Global install (recommended)
199
199
  npm install -g @su-record/vibe
200
200
  vibe update
201
201
 
202
- # 또는 setup 스크립트 실행
202
+ # Or run setup script
203
203
  ./.claude/vibe/setup.sh
204
204
  ```
205
205
 
206
- ### 사용법
206
+ ### Usage
207
207
 
208
- Claude Code에서 슬래시 커맨드 사용:
209
- - `/vibe.spec "기능명"` - SPEC 문서 작성
210
- - `/vibe.run "기능명"` - 구현 실행
208
+ Use slash commands in Claude Code:
209
+ - `/vibe.spec "feature"` - Create SPEC document
210
+ - `/vibe.run "feature"` - Execute implementation
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA;;;GAGG;AA+iBH,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,qBAAqB,IAAI,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAC5F,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAEzE,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAErF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAE3E,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAErE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAoiBH,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,qBAAqB,IAAI,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAC5F,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAEzE,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAErF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAE3E,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAErE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC"}