@designliquido/delegua 0.71.0 → 0.73.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.
- package/analisador-semantico/analisador-semantico-base.d.ts.map +1 -1
- package/analisador-semantico/analisador-semantico-base.js +7 -9
- package/analisador-semantico/analisador-semantico-base.js.map +1 -1
- package/analisador-semantico/analisador-semantico.d.ts +5 -1
- package/analisador-semantico/analisador-semantico.d.ts.map +1 -1
- package/analisador-semantico/analisador-semantico.js +67 -4
- package/analisador-semantico/analisador-semantico.js.map +1 -1
- package/avaliador-sintatico/avaliador-sintatico.d.ts +5 -0
- package/avaliador-sintatico/avaliador-sintatico.d.ts.map +1 -1
- package/avaliador-sintatico/avaliador-sintatico.js +26 -1
- package/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
- package/bibliotecas/dialetos/pitugues/primitivas-texto.d.ts.map +1 -1
- package/bibliotecas/dialetos/pitugues/primitivas-texto.js +25 -0
- package/bibliotecas/dialetos/pitugues/primitivas-texto.js.map +1 -1
- package/bibliotecas/primitivas-texto.d.ts +2 -0
- package/bibliotecas/primitivas-texto.d.ts.map +1 -1
- package/bibliotecas/primitivas-texto.js +58 -0
- package/bibliotecas/primitivas-texto.js.map +1 -1
- package/bin/package.json +1 -1
- package/estilizador/regras/index.d.ts +1 -0
- package/estilizador/regras/index.d.ts.map +1 -1
- package/estilizador/regras/index.js +1 -0
- package/estilizador/regras/index.js.map +1 -1
- package/estilizador/regras/paradigma-consistente.d.ts +45 -0
- package/estilizador/regras/paradigma-consistente.d.ts.map +1 -0
- package/estilizador/regras/paradigma-consistente.js +89 -0
- package/estilizador/regras/paradigma-consistente.js.map +1 -0
- package/interpretador/dialetos/calango/index.d.ts +2 -0
- package/interpretador/dialetos/calango/index.d.ts.map +1 -0
- package/interpretador/dialetos/calango/index.js +18 -0
- package/interpretador/dialetos/calango/index.js.map +1 -0
- package/interpretador/dialetos/index.d.ts +2 -0
- package/interpretador/dialetos/index.d.ts.map +1 -1
- package/interpretador/dialetos/index.js +2 -0
- package/interpretador/dialetos/index.js.map +1 -1
- package/interpretador/dialetos/pitugues/interpretador-pitugues.d.ts +2 -1
- package/interpretador/dialetos/pitugues/interpretador-pitugues.d.ts.map +1 -1
- package/interpretador/dialetos/pitugues/interpretador-pitugues.js +42 -1
- package/interpretador/dialetos/pitugues/interpretador-pitugues.js.map +1 -1
- package/interpretador/interpretador-base.d.ts.map +1 -1
- package/interpretador/interpretador-base.js +3 -0
- package/interpretador/interpretador-base.js.map +1 -1
- package/interpretador/interpretador.d.ts.map +1 -1
- package/interpretador/interpretador.js +4 -8
- package/interpretador/interpretador.js.map +1 -1
- package/lexador/filtro-paradigma.d.ts +15 -0
- package/lexador/filtro-paradigma.d.ts.map +1 -0
- package/lexador/filtro-paradigma.js +51 -0
- package/lexador/filtro-paradigma.js.map +1 -0
- package/lexador/mapeamento-paradigmas.d.ts +47 -0
- package/lexador/mapeamento-paradigmas.d.ts.map +1 -0
- package/lexador/mapeamento-paradigmas.js +183 -0
- package/lexador/mapeamento-paradigmas.js.map +1 -0
- package/package.json +1 -1
- package/umd/delegua.js +789 -371
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.palavrasNeutras = exports.gruposPalavrasParadigma = void 0;
|
|
7
|
+
exports.obterMapaLexemaParaParadigma = obterMapaLexemaParaParadigma;
|
|
8
|
+
exports.obterFormaAlternativa = obterFormaAlternativa;
|
|
9
|
+
exports.pertenceAoParadigma = pertenceAoParadigma;
|
|
10
|
+
const delegua_1 = __importDefault(require("../tipos-de-simbolos/delegua"));
|
|
11
|
+
/**
|
|
12
|
+
* Grupos de palavras reservadas organizadas por paradigma.
|
|
13
|
+
* Cada grupo representa diferentes formas de expressar a mesma funcionalidade.
|
|
14
|
+
*/
|
|
15
|
+
exports.gruposPalavrasParadigma = [
|
|
16
|
+
{
|
|
17
|
+
tipo: delegua_1.default.ESCREVA,
|
|
18
|
+
imperativo: ['escreva'],
|
|
19
|
+
infinitivo: ['escrever'],
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
tipo: delegua_1.default.LEIA,
|
|
23
|
+
imperativo: ['leia'],
|
|
24
|
+
infinitivo: ['ler'],
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
tipo: delegua_1.default.CONTINUA,
|
|
28
|
+
imperativo: ['continua'],
|
|
29
|
+
infinitivo: ['continuar'],
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
tipo: delegua_1.default.RETORNA,
|
|
33
|
+
imperativo: ['retorna', 'retorne'],
|
|
34
|
+
infinitivo: ['retornar'],
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
tipo: delegua_1.default.ESCOLHA,
|
|
38
|
+
imperativo: ['escolha'],
|
|
39
|
+
infinitivo: ['escolher'],
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
tipo: delegua_1.default.TENTE,
|
|
43
|
+
imperativo: ['tente'],
|
|
44
|
+
infinitivo: ['tentar'],
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
tipo: delegua_1.default.PEGUE,
|
|
48
|
+
imperativo: ['pegue'],
|
|
49
|
+
infinitivo: ['pegar'],
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
tipo: delegua_1.default.QUEBRAR,
|
|
53
|
+
imperativo: ['quebre'],
|
|
54
|
+
infinitivo: ['quebrar'],
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
tipo: delegua_1.default.IMPORTAR,
|
|
58
|
+
imperativo: ['importe'],
|
|
59
|
+
infinitivo: ['importar'],
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
tipo: delegua_1.default.FAZER,
|
|
63
|
+
imperativo: ['faca', 'faça'],
|
|
64
|
+
infinitivo: ['fazer'],
|
|
65
|
+
},
|
|
66
|
+
];
|
|
67
|
+
/**
|
|
68
|
+
* Palavras neutras que não têm paradigma específico.
|
|
69
|
+
* Estas palavras são aceitas em todos os modos de paradigma.
|
|
70
|
+
*/
|
|
71
|
+
exports.palavrasNeutras = {
|
|
72
|
+
ajuda: delegua_1.default.AJUDA,
|
|
73
|
+
cada: delegua_1.default.CADA,
|
|
74
|
+
caso: delegua_1.default.CASO,
|
|
75
|
+
classe: delegua_1.default.CLASSE,
|
|
76
|
+
como: delegua_1.default.COMO,
|
|
77
|
+
construtor: delegua_1.default.CONSTRUTOR,
|
|
78
|
+
constante: delegua_1.default.CONSTANTE,
|
|
79
|
+
const: delegua_1.default.CONSTANTE,
|
|
80
|
+
contem: delegua_1.default.CONTEM,
|
|
81
|
+
contém: delegua_1.default.CONTEM,
|
|
82
|
+
de: delegua_1.default.DE,
|
|
83
|
+
e: delegua_1.default.E,
|
|
84
|
+
em: delegua_1.default.EM,
|
|
85
|
+
enquanto: delegua_1.default.ENQUANTO,
|
|
86
|
+
falhar: delegua_1.default.FALHAR,
|
|
87
|
+
falso: delegua_1.default.FALSO,
|
|
88
|
+
finalmente: delegua_1.default.FINALMENTE,
|
|
89
|
+
fixo: delegua_1.default.CONSTANTE,
|
|
90
|
+
funcao: delegua_1.default.FUNCAO,
|
|
91
|
+
função: delegua_1.default.FUNÇÃO,
|
|
92
|
+
herda: delegua_1.default.HERDA,
|
|
93
|
+
isto: delegua_1.default.ISTO,
|
|
94
|
+
nao: delegua_1.default.NAO,
|
|
95
|
+
não: delegua_1.default.NAO,
|
|
96
|
+
nulo: delegua_1.default.NULO,
|
|
97
|
+
ou: delegua_1.default.OU,
|
|
98
|
+
padrao: delegua_1.default.PADRAO,
|
|
99
|
+
padrão: delegua_1.default.PADRAO,
|
|
100
|
+
para: delegua_1.default.PARA,
|
|
101
|
+
se: delegua_1.default.SE,
|
|
102
|
+
senao: delegua_1.default.SENAO,
|
|
103
|
+
senão: delegua_1.default.SENÃO,
|
|
104
|
+
super: delegua_1.default.SUPER,
|
|
105
|
+
sustar: delegua_1.default.SUSTAR,
|
|
106
|
+
tendo: delegua_1.default.TENDO,
|
|
107
|
+
tipo: delegua_1.default.TIPO,
|
|
108
|
+
tudo: delegua_1.default.TUDO,
|
|
109
|
+
var: delegua_1.default.VARIAVEL,
|
|
110
|
+
variavel: delegua_1.default.VARIAVEL,
|
|
111
|
+
variável: delegua_1.default.VARIAVEL,
|
|
112
|
+
verdadeiro: delegua_1.default.VERDADEIRO,
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* Retorna um mapa de lexema para paradigma.
|
|
116
|
+
* Útil para verificar rapidamente se uma palavra pertence a um paradigma.
|
|
117
|
+
*/
|
|
118
|
+
function obterMapaLexemaParaParadigma() {
|
|
119
|
+
const mapa = new Map();
|
|
120
|
+
// Adiciona palavras neutras
|
|
121
|
+
for (const lexema of Object.keys(exports.palavrasNeutras)) {
|
|
122
|
+
mapa.set(lexema, 'neutro');
|
|
123
|
+
}
|
|
124
|
+
// Adiciona palavras de paradigmas
|
|
125
|
+
for (const grupo of exports.gruposPalavrasParadigma) {
|
|
126
|
+
if (grupo.imperativo) {
|
|
127
|
+
for (const lexema of grupo.imperativo) {
|
|
128
|
+
mapa.set(lexema, 'imperativo');
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
if (grupo.infinitivo) {
|
|
132
|
+
for (const lexema of grupo.infinitivo) {
|
|
133
|
+
mapa.set(lexema, 'infinitivo');
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return mapa;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Obtém a forma alternativa de uma palavra para o paradigma especificado.
|
|
141
|
+
* @param lexema A palavra original
|
|
142
|
+
* @param paradigmaAlvo O paradigma desejado
|
|
143
|
+
* @returns A forma alternativa ou undefined se não houver conversão
|
|
144
|
+
*/
|
|
145
|
+
function obterFormaAlternativa(lexema, paradigmaAlvo) {
|
|
146
|
+
var _a, _b;
|
|
147
|
+
const lexemaLower = lexema.toLowerCase();
|
|
148
|
+
// Encontra o grupo que contém este lexema
|
|
149
|
+
for (const grupo of exports.gruposPalavrasParadigma) {
|
|
150
|
+
const temImperativo = (_a = grupo.imperativo) === null || _a === void 0 ? void 0 : _a.some((p) => p === lexemaLower);
|
|
151
|
+
const temInfinitivo = (_b = grupo.infinitivo) === null || _b === void 0 ? void 0 : _b.some((p) => p === lexemaLower);
|
|
152
|
+
if (temImperativo || temInfinitivo) {
|
|
153
|
+
// Retorna a primeira forma do paradigma alvo
|
|
154
|
+
if (paradigmaAlvo === 'imperativo' && grupo.imperativo && grupo.imperativo.length > 0) {
|
|
155
|
+
return grupo.imperativo[0];
|
|
156
|
+
}
|
|
157
|
+
if (paradigmaAlvo === 'infinitivo' && grupo.infinitivo && grupo.infinitivo.length > 0) {
|
|
158
|
+
return grupo.infinitivo[0];
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return undefined;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Verifica se um lexema pertence a um paradigma específico.
|
|
166
|
+
* @param lexema A palavra a verificar
|
|
167
|
+
* @param paradigma O paradigma a verificar
|
|
168
|
+
* @returns true se o lexema pertence ao paradigma ou é neutro
|
|
169
|
+
*/
|
|
170
|
+
function pertenceAoParadigma(lexema, paradigma) {
|
|
171
|
+
if (paradigma === 'ambos') {
|
|
172
|
+
return true;
|
|
173
|
+
}
|
|
174
|
+
const mapa = obterMapaLexemaParaParadigma();
|
|
175
|
+
const paradigmaLexema = mapa.get(lexema.toLowerCase());
|
|
176
|
+
// Palavras neutras são aceitas em todos os paradigmas
|
|
177
|
+
if (paradigmaLexema === 'neutro') {
|
|
178
|
+
return true;
|
|
179
|
+
}
|
|
180
|
+
// Verifica se o paradigma corresponde
|
|
181
|
+
return paradigmaLexema === paradigma;
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=mapeamento-paradigmas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapeamento-paradigmas.js","sourceRoot":"","sources":["../../fontes/lexador/mapeamento-paradigmas.ts"],"names":[],"mappings":";;;;;;AAkIA,oEAuBC;AAQD,sDAoBC;AAQD,kDAeC;AA5MD,2EAA2D;AAqB3D;;;GAGG;AACU,QAAA,uBAAuB,GAA6B;IAC7D;QACI,IAAI,EAAE,iBAAe,CAAC,OAAO;QAC7B,UAAU,EAAE,CAAC,SAAS,CAAC;QACvB,UAAU,EAAE,CAAC,UAAU,CAAC;KAC3B;IACD;QACI,IAAI,EAAE,iBAAe,CAAC,IAAI;QAC1B,UAAU,EAAE,CAAC,MAAM,CAAC;QACpB,UAAU,EAAE,CAAC,KAAK,CAAC;KACtB;IACD;QACI,IAAI,EAAE,iBAAe,CAAC,QAAQ;QAC9B,UAAU,EAAE,CAAC,UAAU,CAAC;QACxB,UAAU,EAAE,CAAC,WAAW,CAAC;KAC5B;IACD;QACI,IAAI,EAAE,iBAAe,CAAC,OAAO;QAC7B,UAAU,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;QAClC,UAAU,EAAE,CAAC,UAAU,CAAC;KAC3B;IACD;QACI,IAAI,EAAE,iBAAe,CAAC,OAAO;QAC7B,UAAU,EAAE,CAAC,SAAS,CAAC;QACvB,UAAU,EAAE,CAAC,UAAU,CAAC;KAC3B;IACD;QACI,IAAI,EAAE,iBAAe,CAAC,KAAK;QAC3B,UAAU,EAAE,CAAC,OAAO,CAAC;QACrB,UAAU,EAAE,CAAC,QAAQ,CAAC;KACzB;IACD;QACI,IAAI,EAAE,iBAAe,CAAC,KAAK;QAC3B,UAAU,EAAE,CAAC,OAAO,CAAC;QACrB,UAAU,EAAE,CAAC,OAAO,CAAC;KACxB;IACD;QACI,IAAI,EAAE,iBAAe,CAAC,OAAO;QAC7B,UAAU,EAAE,CAAC,QAAQ,CAAC;QACtB,UAAU,EAAE,CAAC,SAAS,CAAC;KAC1B;IACD;QACI,IAAI,EAAE,iBAAe,CAAC,QAAQ;QAC9B,UAAU,EAAE,CAAC,SAAS,CAAC;QACvB,UAAU,EAAE,CAAC,UAAU,CAAC;KAC3B;IACD;QACI,IAAI,EAAE,iBAAe,CAAC,KAAK;QAC3B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;QAC5B,UAAU,EAAE,CAAC,OAAO,CAAC;KACxB;CACJ,CAAC;AAEF;;;GAGG;AACU,QAAA,eAAe,GAA2B;IACnD,KAAK,EAAE,iBAAe,CAAC,KAAK;IAC5B,IAAI,EAAE,iBAAe,CAAC,IAAI;IAC1B,IAAI,EAAE,iBAAe,CAAC,IAAI;IAC1B,MAAM,EAAE,iBAAe,CAAC,MAAM;IAC9B,IAAI,EAAE,iBAAe,CAAC,IAAI;IAC1B,UAAU,EAAE,iBAAe,CAAC,UAAU;IACtC,SAAS,EAAE,iBAAe,CAAC,SAAS;IACpC,KAAK,EAAE,iBAAe,CAAC,SAAS;IAChC,MAAM,EAAE,iBAAe,CAAC,MAAM;IAC9B,MAAM,EAAE,iBAAe,CAAC,MAAM;IAC9B,EAAE,EAAE,iBAAe,CAAC,EAAE;IACtB,CAAC,EAAE,iBAAe,CAAC,CAAC;IACpB,EAAE,EAAE,iBAAe,CAAC,EAAE;IACtB,QAAQ,EAAE,iBAAe,CAAC,QAAQ;IAClC,MAAM,EAAE,iBAAe,CAAC,MAAM;IAC9B,KAAK,EAAE,iBAAe,CAAC,KAAK;IAC5B,UAAU,EAAE,iBAAe,CAAC,UAAU;IACtC,IAAI,EAAE,iBAAe,CAAC,SAAS;IAC/B,MAAM,EAAE,iBAAe,CAAC,MAAM;IAC9B,MAAM,EAAE,iBAAe,CAAC,MAAM;IAC9B,KAAK,EAAE,iBAAe,CAAC,KAAK;IAC5B,IAAI,EAAE,iBAAe,CAAC,IAAI;IAC1B,GAAG,EAAE,iBAAe,CAAC,GAAG;IACxB,GAAG,EAAE,iBAAe,CAAC,GAAG;IACxB,IAAI,EAAE,iBAAe,CAAC,IAAI;IAC1B,EAAE,EAAE,iBAAe,CAAC,EAAE;IACtB,MAAM,EAAE,iBAAe,CAAC,MAAM;IAC9B,MAAM,EAAE,iBAAe,CAAC,MAAM;IAC9B,IAAI,EAAE,iBAAe,CAAC,IAAI;IAC1B,EAAE,EAAE,iBAAe,CAAC,EAAE;IACtB,KAAK,EAAE,iBAAe,CAAC,KAAK;IAC5B,KAAK,EAAE,iBAAe,CAAC,KAAK;IAC5B,KAAK,EAAE,iBAAe,CAAC,KAAK;IAC5B,MAAM,EAAE,iBAAe,CAAC,MAAM;IAC9B,KAAK,EAAE,iBAAe,CAAC,KAAK;IAC5B,IAAI,EAAE,iBAAe,CAAC,IAAI;IAC1B,IAAI,EAAE,iBAAe,CAAC,IAAI;IAC1B,GAAG,EAAE,iBAAe,CAAC,QAAQ;IAC7B,QAAQ,EAAE,iBAAe,CAAC,QAAQ;IAClC,QAAQ,EAAE,iBAAe,CAAC,QAAQ;IAClC,UAAU,EAAE,iBAAe,CAAC,UAAU;CACzC,CAAC;AAEF;;;GAGG;AACH,SAAgB,4BAA4B;IACxC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkD,CAAC;IAEvE,4BAA4B;IAC5B,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,uBAAe,CAAC,EAAE,CAAC;QAChD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,kCAAkC;IAClC,KAAK,MAAM,KAAK,IAAI,+BAAuB,EAAE,CAAC;QAC1C,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACnB,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACpC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YACnC,CAAC;QACL,CAAC;QACD,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACnB,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACpC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YACnC,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,qBAAqB,CAAC,MAAc,EAAE,aAA0C;;IAC5F,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAEzC,0CAA0C;IAC1C,KAAK,MAAM,KAAK,IAAI,+BAAuB,EAAE,CAAC;QAC1C,MAAM,aAAa,GAAG,MAAA,KAAK,CAAC,UAAU,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC;QACvE,MAAM,aAAa,GAAG,MAAA,KAAK,CAAC,UAAU,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC;QAEvE,IAAI,aAAa,IAAI,aAAa,EAAE,CAAC;YACjC,6CAA6C;YAC7C,IAAI,aAAa,KAAK,YAAY,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpF,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC/B,CAAC;YACD,IAAI,aAAa,KAAK,YAAY,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpF,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB,CAAC,MAAc,EAAE,SAAwB;IACxE,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,IAAI,GAAG,4BAA4B,EAAE,CAAC;IAC5C,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IAEvD,sDAAsD;IACtD,IAAI,eAAe,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,sCAAsC;IACtC,OAAO,eAAe,KAAK,SAAS,CAAC;AACzC,CAAC"}
|