bps-mcp-server 0.16.4 → 0.17.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 (41) hide show
  1. package/README.md +13 -5
  2. package/dist/client/bps-client.d.ts +10 -1
  3. package/dist/client/bps-client.d.ts.map +1 -1
  4. package/dist/client/bps-client.js +66 -13
  5. package/dist/client/bps-client.js.map +1 -1
  6. package/dist/client/request-scheduler.d.ts +29 -0
  7. package/dist/client/request-scheduler.d.ts.map +1 -0
  8. package/dist/client/request-scheduler.js +75 -0
  9. package/dist/client/request-scheduler.js.map +1 -0
  10. package/dist/config/kabkota-indicators.d.ts +30 -0
  11. package/dist/config/kabkota-indicators.d.ts.map +1 -0
  12. package/dist/config/kabkota-indicators.js +49 -0
  13. package/dist/config/kabkota-indicators.js.map +1 -0
  14. package/dist/server.d.ts.map +1 -1
  15. package/dist/server.js +30 -0
  16. package/dist/server.js.map +1 -1
  17. package/dist/services/data-formatter.d.ts +28 -0
  18. package/dist/services/data-formatter.d.ts.map +1 -1
  19. package/dist/services/data-formatter.js +74 -0
  20. package/dist/services/data-formatter.js.map +1 -1
  21. package/dist/services/intent-detector.d.ts.map +1 -1
  22. package/dist/services/intent-detector.js +1 -0
  23. package/dist/services/intent-detector.js.map +1 -1
  24. package/dist/services/kabkota-ranking.d.ts +61 -0
  25. package/dist/services/kabkota-ranking.d.ts.map +1 -0
  26. package/dist/services/kabkota-ranking.js +378 -0
  27. package/dist/services/kabkota-ranking.js.map +1 -0
  28. package/dist/tools/analysis.tools.d.ts.map +1 -1
  29. package/dist/tools/analysis.tools.js +78 -9
  30. package/dist/tools/analysis.tools.js.map +1 -1
  31. package/dist/tools/dynamic-data.tools.d.ts.map +1 -1
  32. package/dist/tools/dynamic-data.tools.js +19 -7
  33. package/dist/tools/dynamic-data.tools.js.map +1 -1
  34. package/dist/tools/smart.tools.d.ts.map +1 -1
  35. package/dist/tools/smart.tools.js +12 -2
  36. package/dist/tools/smart.tools.js.map +1 -1
  37. package/dist/utils/error.d.ts +11 -1
  38. package/dist/utils/error.d.ts.map +1 -1
  39. package/dist/utils/error.js +50 -2
  40. package/dist/utils/error.js.map +1 -1
  41. package/package.json +1 -1
package/README.md CHANGED
@@ -179,9 +179,9 @@ File `~/.cursor/mcp.json` atau `.vscode/mcp.json`:
179
179
  | `find_variable` | Cari variabel data berdasarkan kata kunci |
180
180
  | `compare_data` | Bandingkan data antar wilayah (2+ wilayah sekaligus dalam 1 panggilan) |
181
181
  | `get_trend` | Ambil data time-series/tren multi-tahun dalam 1 panggilan |
182
- | `get_ranking` | Ranking/peringkat provinsi berdasarkan indikator (top-N) |
182
+ | `get_ranking` | Ranking provinsi **atau kabupaten/kota** berdasarkan indikator (top-N, satu panggilan) |
183
183
 
184
- > **Untuk AI:** Gunakan `find_data` untuk data 1 wilayah, `compare_data` untuk perbandingan, `get_trend` untuk tren, `get_ranking` untuk peringkat. Jika hasilnya kurang spesifik, gunakan `find_variable` lalu `get_dynamic_data`.
184
+ > **Untuk AI:** Gunakan `find_data` untuk data 1 wilayah, `compare_data` untuk perbandingan, `get_trend` untuk tren, `get_ranking` untuk peringkat. Untuk peringkat kabupaten/kota pakai `get_ranking(level="kabkota")` — server menyapu tabel tiap provinsi sekaligus dan menyeragamkan tahun (BPS tidak punya tabel kab/kota nasional). Parameter `level` wajib diisi: `provinsi` atau `kabkota`. Jika hasilnya kurang spesifik, gunakan `find_variable` lalu `get_dynamic_data`.
185
185
 
186
186
  ### WebAPI Tools (32)
187
187
 
@@ -192,12 +192,12 @@ File `~/.cursor/mcp.json` atau `.vscode/mcp.json`:
192
192
  | `list_subjects` | Daftar subjek data statistik |
193
193
  | `list_subject_categories` | Kategori subjek |
194
194
  | `list_variables` | Daftar variabel tabel dinamis |
195
- | `list_vertical_variables` | Variabel vertikal (disagregasi) |
195
+ | `list_vertical_variables` | Variabel vertikal (disagregasi) — semua halaman digabung, tidak terpotong 10 baris |
196
196
  | `list_derived_variables` | Turunan variabel |
197
197
  | `list_periods` | Periode data tersedia |
198
198
  | `list_derived_periods` | Turunan periode |
199
199
  | `list_units` | Satuan data |
200
- | `get_dynamic_data` | **Core** — Ambil data tabel dinamis (butuh var_id) |
200
+ | `get_dynamic_data` | **Core** — Ambil data tabel dinamis (butuh var_id); `format="json"` mengembalikan baris terstruktur |
201
201
  | `list_static_tables` | Daftar tabel statis |
202
202
  | `get_static_table` | Detail tabel statis (HTML) |
203
203
  | `list_press_releases` | Daftar Berita Resmi Statistik (BRS) |
@@ -258,7 +258,15 @@ User: "Tren pengangguran Indonesia 2019-2024"
258
258
  AI menggunakan: get_trend(query="pengangguran", region="Indonesia", start_year="2019", end_year="2024")
259
259
 
260
260
  User: "10 provinsi termiskin"
261
- AI menggunakan: get_ranking(query="kemiskinan", top_n=10, order="highest")
261
+ AI menggunakan: get_ranking(query="kemiskinan", top_n=10, order="highest", level="provinsi")
262
+
263
+ User: "10 kabupaten/kota dengan pengangguran tertinggi"
264
+ AI menggunakan: get_ranking(query="pengangguran", top_n=10, order="highest", level="kabkota")
265
+ → Server menyapu tabel TPT kab/kota di seluruh provinsi (1 panggilan)
266
+ → Default period_mode="common": semua angka diseragamkan ke tahun bersama terbaru
267
+ (mis. 2025) agar sebanding; year="2024" untuk tahun lain, period_mode="latest"
268
+ untuk periode terbaru tiap provinsi
269
+ → Melaporkan provinsi yang tidak punya rincian kab/kota dan periode tiap baris
262
270
 
263
271
  User: "Statistik pemeluk agama di Kab Jombang"
264
272
  AI menggunakan: find_data(query="pemeluk agama", region="Kab Jombang")
@@ -2,15 +2,17 @@ import type { IAuthProvider } from "../auth/types.js";
2
2
  import type { ICacheProvider } from "../services/cache.js";
3
3
  import type { Config } from "../config/index.js";
4
4
  import type { BpsDomain, BpsSubject, BpsSubjectCategory, BpsVariable, BpsVerticalVariable, BpsDerivedVariable, BpsPeriod, BpsDerivedPeriod, BpsUnit, BpsDynamicDataResponse, BpsStaticTable, BpsStaticTableDetail, BpsPressRelease, BpsPublication, BpsStrategicIndicator, BpsInfographic, BpsInfographicDetail, BpsNews, BpsNewsDetail, BpsGlossaryTerm, BpsCsaSubjectCategory, BpsCsaSubject, BpsCsaTable, BpsCsaTableDetail, BpsCensusEvent, BpsCensusTopic, PageInfo } from "./types.js";
5
+ import { type RequestScheduler } from "./request-scheduler.js";
5
6
  export declare class BpsClient {
6
7
  private readonly auth;
7
8
  private readonly cache;
9
+ private readonly scheduler;
8
10
  private readonly baseUrl;
9
11
  private readonly defaultLang;
10
12
  private readonly defaultDomain;
11
13
  /** In-flight request deduplication map: cacheKey → pending Promise */
12
14
  private readonly inflight;
13
- constructor(auth: IAuthProvider, cache: ICacheProvider | null, config: Config);
15
+ constructor(auth: IAuthProvider, cache: ICacheProvider | null, config: Config, scheduler?: RequestScheduler);
14
16
  private fetchJson;
15
17
  private fetchWithRetry;
16
18
  private doFetch;
@@ -45,6 +47,13 @@ export declare class BpsClient {
45
47
  /** Fetch up to `maxPages` variable pages for one subject (API caps at 10/page). */
46
48
  listAllVariables(domain?: string, subject?: number, year?: number, maxPages?: number): Promise<BpsVariable[]>;
47
49
  listVerticalVariables(domain?: string, varId?: number): Promise<BpsVerticalVariable[]>;
50
+ /**
51
+ * Fetch every vertical-variable page. The API returns 10 rows per page, so a
52
+ * single call silently hides most kabupaten/kota categories (Sulawesi
53
+ * Selatan has 24, for example).
54
+ */
55
+ listAllVerticalVariables(domain?: string, varId?: number, maxPages?: number): Promise<BpsVerticalVariable[]>;
56
+ listAllDerivedVariables(domain?: string, varId?: number, maxPages?: number): Promise<BpsDerivedVariable[]>;
48
57
  listDerivedVariables(domain?: string, varId?: number): Promise<BpsDerivedVariable[]>;
49
58
  listPeriods(domain?: string, varId?: number, page?: number): Promise<BpsPeriod[]>;
50
59
  /** Fetch every period page (important for long historical ranges). */
@@ -1 +1 @@
1
- {"version":3,"file":"bps-client.d.ts","sourceRoot":"","sources":["../../src/client/bps-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bps-client.d.ts","sourceRoot":"","sources":["../../src/client/bps-client.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,16 @@
1
1
  import { buildListUrl, buildViewUrl, buildDomainUrl, buildTradeUrl, buildInteropUrl, normalizePathParam, MODELS, } from "./endpoints.js";
2
2
  import { BpsApiError, BpsAuthError, BpsNotFoundError } from "../utils/error.js";
3
3
  import { logger } from "../utils/logger.js";
4
- import { getPeriodId, getVariableId } from "./fields.js";
4
+ import { getPeriodId, getVariableId, getVervarId } from "./fields.js";
5
+ import { defaultScheduler } from "./request-scheduler.js";
5
6
  /** Browser-like User-Agent to avoid BPS Perimeter WAF signature blocks */
6
7
  const USER_AGENT = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36";
7
8
  /** Default fetch timeout in milliseconds */
8
9
  const FETCH_TIMEOUT_MS = 30_000;
9
10
  /** Maximum retry attempts for transient errors */
10
11
  const MAX_RETRIES = 3;
12
+ /** Rate limiting deserves more patience than a transient server error. */
13
+ const MAX_RATE_LIMIT_RETRIES = 5;
11
14
  /** Base delay for exponential backoff in milliseconds */
12
15
  const RETRY_BASE_DELAY_MS = 500;
13
16
  /** BPS rejects requests with more than 3 periods in one call. */
@@ -50,6 +53,14 @@ function extractApiError(body) {
50
53
  const text = body.replace(/<[^>]+>/g, " ").replace(/\s+/g, " ").trim();
51
54
  return text ? text.slice(0, 300) : undefined;
52
55
  }
56
+ /** Read the Retry-After header (seconds) from a response, if present. */
57
+ function readRetryAfter(res) {
58
+ const header = typeof res.headers?.get === "function" ? res.headers.get("retry-after") : null;
59
+ if (!header)
60
+ return undefined;
61
+ const seconds = Number(header);
62
+ return Number.isFinite(seconds) && seconds > 0 ? seconds : undefined;
63
+ }
53
64
  function dedupeBy(items, keyOf) {
54
65
  const seen = new Set();
55
66
  const result = [];
@@ -99,14 +110,16 @@ function mergeDynamicData(target, source) {
99
110
  export class BpsClient {
100
111
  auth;
101
112
  cache;
113
+ scheduler;
102
114
  baseUrl;
103
115
  defaultLang;
104
116
  defaultDomain;
105
117
  /** In-flight request deduplication map: cacheKey → pending Promise */
106
118
  inflight = new Map();
107
- constructor(auth, cache, config) {
119
+ constructor(auth, cache, config, scheduler = defaultScheduler) {
108
120
  this.auth = auth;
109
121
  this.cache = cache;
122
+ this.scheduler = scheduler;
110
123
  this.baseUrl = config.apiBaseUrl;
111
124
  this.defaultLang = config.defaultLang;
112
125
  this.defaultDomain = config.defaultDomain;
@@ -132,7 +145,8 @@ export class BpsClient {
132
145
  logger.debug(`Dedup hit: ${cacheKey}`);
133
146
  return existing;
134
147
  }
135
- const promise = this.fetchWithRetry(url, cacheKey, ttl);
148
+ // The scheduler keeps agents from hammering BPS into a 429 storm.
149
+ const promise = this.scheduler.run(() => this.fetchWithRetry(url, cacheKey, ttl));
136
150
  this.inflight.set(cacheKey, promise);
137
151
  try {
138
152
  return await promise;
@@ -142,27 +156,33 @@ export class BpsClient {
142
156
  }
143
157
  }
144
158
  async fetchWithRetry(url, cacheKey, ttl) {
145
- let lastError;
146
- for (let attempt = 0; attempt < MAX_RETRIES; attempt++) {
159
+ for (let attempt = 0;; attempt++) {
147
160
  try {
148
161
  return await this.doFetch(url, cacheKey, ttl);
149
162
  }
150
163
  catch (error) {
151
- lastError = error;
152
- // Retry transient server errors and BPS rate limiting (429/408).
164
+ // Retry transient server errors, and be extra patient with BPS rate
165
+ // limiting (429) since it can last several seconds.
153
166
  const status = error instanceof BpsApiError ? error.statusCode : undefined;
154
- const isRetryable = status !== undefined && (status >= 500 || status === 429 || status === 408);
155
- if (!isRetryable || attempt === MAX_RETRIES - 1) {
167
+ const isRateLimited = status === 429;
168
+ const isRetryable = isRateLimited || (status !== undefined && (status >= 500 || status === 408));
169
+ const maxAttempts = isRateLimited ? MAX_RATE_LIMIT_RETRIES : MAX_RETRIES;
170
+ if (!isRetryable || attempt >= maxAttempts - 1) {
156
171
  throw error;
157
172
  }
158
- const delay = status === 429
173
+ // Prefer the server's Retry-After hint over blind exponential backoff,
174
+ // but cap it: a 60s BPS stall would block the whole tool call.
175
+ const retryAfterMs = error instanceof BpsApiError && error.retryAfterSeconds
176
+ ? Math.min(error.retryAfterSeconds, 10) * 1000
177
+ : 0;
178
+ const backoff = isRateLimited
159
179
  ? 2_000 * Math.pow(2, attempt)
160
180
  : RETRY_BASE_DELAY_MS * Math.pow(2, attempt);
161
- logger.warn(`Retrying (${attempt + 1}/${MAX_RETRIES}) after ${delay}ms: ${url}`);
181
+ const delay = Math.max(retryAfterMs, backoff);
182
+ logger.warn(`Retrying (${attempt + 1}/${maxAttempts}) after ${delay}ms: ${url}`);
162
183
  await new Promise((resolve) => setTimeout(resolve, delay));
163
184
  }
164
185
  }
165
- throw lastError;
166
186
  }
167
187
  async doFetch(url, cacheKey, ttl) {
168
188
  logger.debug(`Fetching: ${url}`);
@@ -252,7 +272,7 @@ export class BpsClient {
252
272
  }
253
273
  if (!res.ok) {
254
274
  const detail = extractApiError(await readResponseText(res));
255
- throw new BpsApiError(detail ?? `HTTP ${res.status} ${res.statusText}`, res.status, url);
275
+ throw new BpsApiError(detail ?? `HTTP ${res.status} ${res.statusText}`, res.status, url, readRetryAfter(res));
256
276
  }
257
277
  let json;
258
278
  try {
@@ -408,6 +428,39 @@ export class BpsClient {
408
428
  const res = await this.listRequest(MODELS.VERTICAL_VARIABLE, { domain, var: varId }, 12 * 60 * 60);
409
429
  return this.extractPaginated(res).data;
410
430
  }
431
+ /**
432
+ * Fetch every vertical-variable page. The API returns 10 rows per page, so a
433
+ * single call silently hides most kabupaten/kota categories (Sulawesi
434
+ * Selatan has 24, for example).
435
+ */
436
+ async listAllVerticalVariables(domain, varId, maxPages = 20) {
437
+ const first = await this.listRequest(MODELS.VERTICAL_VARIABLE, { domain, var: varId, page: 1 }, 12 * 60 * 60);
438
+ const firstPage = this.extractPaginated(first);
439
+ const all = [...firstPage.data];
440
+ const pages = Math.min(firstPage.page?.pages ?? 1, maxPages);
441
+ for (let page = 2; page <= pages; page++) {
442
+ const res = await this.listRequest(MODELS.VERTICAL_VARIABLE, { domain, var: varId, page }, 12 * 60 * 60);
443
+ const next = this.extractPaginated(res).data;
444
+ if (next.length === 0)
445
+ break;
446
+ all.push(...next);
447
+ }
448
+ return dedupeBy(all, (v) => String(getVervarId(v)));
449
+ }
450
+ async listAllDerivedVariables(domain, varId, maxPages = 10) {
451
+ const first = await this.listRequest(MODELS.DERIVED_VARIABLE, { domain, var: varId, page: 1 }, 12 * 60 * 60);
452
+ const firstPage = this.extractPaginated(first);
453
+ const all = [...firstPage.data];
454
+ const pages = Math.min(firstPage.page?.pages ?? 1, maxPages);
455
+ for (let page = 2; page <= pages; page++) {
456
+ const res = await this.listRequest(MODELS.DERIVED_VARIABLE, { domain, var: varId, page }, 12 * 60 * 60);
457
+ const next = this.extractPaginated(res).data;
458
+ if (next.length === 0)
459
+ break;
460
+ all.push(...next);
461
+ }
462
+ return dedupeBy(all, (v) => String(v.kode_turvar ?? v.kode_tur_id ?? v.val ?? ""));
463
+ }
411
464
  async listDerivedVariables(domain, varId) {
412
465
  const res = await this.listRequest(MODELS.DERIVED_VARIABLE, { domain, var: varId }, 12 * 60 * 60);
413
466
  return this.extractPaginated(res).data;
@@ -1 +1 @@
1
- {"version":3,"file":"bps-client.js","sourceRoot":"","sources":["../../src/client/bps-client.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,MAAM,GACP,MAAM,gBAAgB,CAAC;AA8BxB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEzD,0EAA0E;AAC1E,MAAM,UAAU,GACd,uGAAuG,CAAC;AAE1G,4CAA4C;AAC5C,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEhC,kDAAkD;AAClD,MAAM,WAAW,GAAG,CAAC,CAAC;AAEtB,yDAAyD;AACzD,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC,iEAAiE;AACjE,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAElC,gFAAgF;AAChF,KAAK,UAAU,gBAAgB,CAAC,GAAa;IAC3C,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;IACtD,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,qEAAqE;AACrE,SAAS,eAAe,CAAC,IAAY;IACnC,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;QAC3D,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAChE,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAA4B,CAAC;YACnD,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC1F,CAAC;QACD,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC1F,CAAC;IAAC,MAAM,CAAC;QACP,0DAA0D;IAC5D,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACvE,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/C,CAAC;AAED,SAAS,QAAQ,CAAI,KAAU,EAAE,KAA0B;IACzD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,MAAM,GAAQ,EAAE,CAAC;IACvB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QACpC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAClB,MAAW,EACX,MAAuB,EACvB,KAA0B;IAE1B,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QACpC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CACvB,MAA8B,EAC9B,MAA8B;IAE9B,IAAI,CAAC,MAAM,CAAC,WAAW;QAAE,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC;IACjD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IAE5D,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;IAC9B,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;IACpC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;IAClC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;IACpC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;IAExC,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAK,CAAwC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;IACpH,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;IACxG,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;IACvG,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;IACxG,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;IAEnH,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC;IAC9D,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC;IACjE,IAAI,MAAM,CAAC,mBAAmB,CAAC,KAAK,WAAW,EAAE,CAAC;QAChD,MAAM,CAAC,mBAAmB,CAAC,GAAG,WAAW,CAAC;IAC5C,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO;QAAE,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AACzE,CAAC;AAED,MAAM,OAAO,SAAS;IASD;IACA;IATF,OAAO,CAAS;IAChB,WAAW,CAAS;IACpB,aAAa,CAAS;IAEvC,sEAAsE;IACrD,QAAQ,GAAG,IAAI,GAAG,EAA4B,CAAC;IAEhE,YACmB,IAAmB,EACnB,KAA4B,EAC7C,MAAc;QAFG,SAAI,GAAJ,IAAI,CAAe;QACnB,UAAK,GAAL,KAAK,CAAuB;QAG7C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;IAC5C,CAAC;IAEO,KAAK,CAAC,SAAS,CAAI,GAAW,EAAE,QAAgB,EAAE,GAAY;QACpE,cAAc;QACd,IAAI,IAAI,CAAC,KAAK,IAAI,GAAG,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC;oBACH,MAAM,CAAC,KAAK,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAC;oBACvC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAM,CAAC;gBACjC,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,CAAC,IAAI,CAAC,iCAAiC,QAAQ,EAAE,CAAC,CAAC;oBACzD,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACpC,CAAC;YACH,CAAC;QACH,CAAC;QAED,yDAAyD;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAC;YACvC,OAAO,QAAsB,CAAC;QAChC,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAI,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAErC,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC;QACvB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc,CAAI,GAAW,EAAE,QAAgB,EAAE,GAAY;QACzE,IAAI,SAAkB,CAAC;QAEvB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;YACvD,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAI,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;YACnD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,SAAS,GAAG,KAAK,CAAC;gBAElB,iEAAiE;gBACjE,MAAM,MAAM,GAAG,KAAK,YAAY,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC3E,MAAM,WAAW,GACf,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,IAAI,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC;gBAE9E,IAAI,CAAC,WAAW,IAAI,OAAO,KAAK,WAAW,GAAG,CAAC,EAAE,CAAC;oBAChD,MAAM,KAAK,CAAC;gBACd,CAAC;gBAED,MAAM,KAAK,GAAG,MAAM,KAAK,GAAG;oBAC1B,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC;oBAC9B,CAAC,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;gBAC/C,MAAM,CAAC,IAAI,CAAC,aAAa,OAAO,GAAG,CAAC,IAAI,WAAW,WAAW,KAAK,OAAO,GAAG,EAAE,CAAC,CAAC;gBACjF,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,MAAM,SAAS,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,OAAO,CAAI,GAAW,EAAE,QAAgB,EAAE,GAAY;QAClE,MAAM,CAAC,KAAK,CAAC,aAAa,GAAG,EAAE,CAAC,CAAC;QAEjC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QAEjD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,gBAAgB,CAAC,CAAC;QAEvE,IAAI,GAAa,CAAC;QAClB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBACrB,OAAO,EAAE;oBACP,MAAM,EAAE,kBAAkB;oBAC1B,YAAY,EAAE,UAAU;oBACxB,GAAG,WAAW;iBACf;gBACD,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACjE,MAAM,IAAI,WAAW,CAAC,yBAAyB,gBAAgB,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YACjF,CAAC;YAED,+CAA+C;YAC/C,IAAI,GAAG,CAAC,QAAQ,CAAC,6BAA6B,CAAC,EAAE,CAAC;gBAChD,IAAI,CAAC;oBACH,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;oBAC7E,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS;gBACX,CAAC;gBACD,MAAM,SAAS,GAAG,iCAAiC,CAAC;gBACpD,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,6BAA6B,EAAE,SAAS,CAAC,CAAC;gBAC3E,MAAM,CAAC,IAAI,CAAC,gCAAgC,KAAK,0BAA0B,YAAY,EAAE,CAAC,CAAC;gBAE3F,GAAG,GAAG,MAAM,KAAK,CAAC,YAAY,EAAE;oBAC9B,OAAO,EAAE;wBACP,MAAM,EAAE,kBAAkB;wBAC1B,YAAY,EAAE,UAAU;wBACxB,GAAG,WAAW;qBACf;oBACD,MAAM,EAAE,UAAU,CAAC,MAAM;iBAC1B,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC9C,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YACnI,IAAI,KAAK,IAAI,GAAG,CAAC,QAAQ,CAAC,6BAA6B,CAAC,EAAE,CAAC;gBACzD,IAAI,CAAC;oBACH,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;oBAC7E,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS;gBACX,CAAC;gBACD,MAAM,SAAS,GAAG,iCAAiC,CAAC;gBACpD,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,6BAA6B,EAAE,SAAS,CAAC,CAAC;gBAC3E,MAAM,CAAC,IAAI,CAAC,4CAA4C,GAAG,CAAC,MAAM,0BAA0B,YAAY,EAAE,CAAC,CAAC;gBAE5G,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,YAAY,EAAE;oBACzC,OAAO,EAAE;wBACP,MAAM,EAAE,kBAAkB;wBAC1B,YAAY,EAAE,UAAU;wBACxB,GAAG,WAAW;qBACf;oBACD,MAAM,EAAE,UAAU,CAAC,MAAM;iBAC1B,CAAC,CAAC;gBAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBACvD,MAAM,IAAI,YAAY,EAAE,CAAC;gBAC3B,CAAC;gBACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACjE,MAAM,IAAI,WAAW,CACnB,MAAM,IAAI,QAAQ,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,YAAY,EACpE,QAAQ,CAAC,MAAM,EACf,YAAY,CACb,CAAC;gBACJ,CAAC;gBACD,GAAG,GAAG,QAAQ,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,YAAY,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC9B,MAAM,IAAI,YAAY,EAAE,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5D,MAAM,IAAI,WAAW,CACnB,MAAM,IAAI,QAAQ,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,EAChD,GAAG,CAAC,MAAM,EACV,GAAG,CACJ,CAAC;QACJ,CAAC;QAED,IAAI,IAAO,CAAC;QACZ,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAM,CAAC;QACtD,CAAC;QAAC,OAAO,UAAU,EAAE,CAAC;YACpB,IAAI,GAAG,CAAC,QAAQ,CAAC,6BAA6B,CAAC,EAAE,CAAC;gBAChD,IAAI,CAAC;oBACH,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;oBAC7E,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS;gBACX,CAAC;gBACD,MAAM,SAAS,GAAG,iCAAiC,CAAC;gBACpD,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,6BAA6B,EAAE,SAAS,CAAC,CAAC;gBAC3E,MAAM,CAAC,IAAI,CAAC,sFAAsF,YAAY,EAAE,CAAC,CAAC;gBAElH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,YAAY,EAAE;oBACzC,OAAO,EAAE;wBACP,MAAM,EAAE,kBAAkB;wBAC1B,YAAY,EAAE,UAAU;wBACxB,GAAG,WAAW;qBACf;oBACD,MAAM,EAAE,UAAU,CAAC,MAAM;iBAC1B,CAAC,CAAC;gBAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACjE,MAAM,IAAI,WAAW,CACnB,MAAM,IAAI,QAAQ,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,gCAAgC,EACxF,QAAQ,CAAC,MAAM,EACf,YAAY,CACb,CAAC;gBACJ,CAAC;gBAED,IAAI,CAAC;oBACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAM,CAAC;gBAC3D,CAAC;gBAAC,OAAO,eAAe,EAAE,CAAC;oBACzB,MAAM,IAAI,WAAW,CACnB,iDAAiD,eAAe,YAAY,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,EACvI,QAAQ,CAAC,MAAM,EACf,YAAY,CACb,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,WAAW,CACnB,6CAA6C,UAAU,YAAY,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,EACpH,GAAG,CAAC,MAAM,EACV,GAAG,CACJ,CAAC;YACJ,CAAC;QACH,CAAC;QAED,kDAAkD;QAClD,MAAM,WAAW,GAAG,IAA+B,CAAC;QACpD,IAAI,OAAO,WAAW,CAAC,MAAM,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;YAClF,MAAM,IAAI,WAAW,CACnB,MAAM,CAAC,WAAW,CAAC,OAAO,IAAI,2BAA2B,CAAC,EAC1D,GAAG,CAAC,MAAM,EACV,GAAG,CACJ,CAAC;QACJ,CAAC;QACD,IAAI,WAAW,CAAC,MAAM,KAAK,KAAK,IAAI,WAAW,CAAC,mBAAmB,CAAC,KAAK,oBAAoB,EAAE,CAAC;YAC9F,MAAM,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;QAED,eAAe;QACf,IAAI,IAAI,CAAC,KAAK,IAAI,GAAG,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;IACpC,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW,CACvB,KAAa,EACb,MAAmD,EACnD,GAAY;QAEZ,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACrC,MAAM,UAAU,GAAgD;YAC9D,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa;YAC3C,GAAG,MAAM;YACT,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW;SACtC,CAAC;QACF,MAAM,SAAS,GAAG,EAAE,GAAG,UAAU,EAAE,GAAG,IAAI,EAAE,CAAC;QAE7C,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,QAAQ,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/D,OAAO,IAAI,CAAC,SAAS,CAAI,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW,CACvB,KAAa,EACb,MAAmD,EACnD,GAAY;QAEZ,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACrC,MAAM,UAAU,GAAgD;YAC9D,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa;YAC3C,GAAG,MAAM;YACT,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW;SACtC,CAAC;QACF,MAAM,SAAS,GAAG,EAAE,GAAG,UAAU,EAAE,GAAG,IAAI,EAAE,CAAC;QAE7C,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,QAAQ,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/D,OAAO,IAAI,CAAC,SAAS,CAAI,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;IAEO,gBAAgB,CAAI,GAA8B;QACxD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACjH,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,CAAC;QACD,0DAA0D;QAC1D,OAAO,EAAE,IAAI,EAAG,GAAG,CAAC,IAAuB,IAAI,EAAE,EAAE,CAAC;IACtD,CAAC;IAED,+BAA+B;IAE/B,KAAK,CAAC,WAAW,CACf,OAA6C,KAAK,EAClD,MAAe;QAEf,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QAClE,MAAM,MAAM,GAAgD;YAC1D,GAAG,UAAU;YACb,GAAG,IAAI;SACR,CAAC;QAEF,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,UAAU,IAAI,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;QACrD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAoC,GAAG,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QACjG,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,iCAAiC;IAEjC,KAAK,CAAC,YAAY,CAChB,MAAe,EACf,MAAe,EACf,IAAa;QAEb,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAChC,MAAM,CAAC,OAAO,EACd,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EACxB,EAAE,GAAG,EAAE,GAAG,EAAE,CACb,CAAC;QACF,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,eAAe,CAAC,MAAe,EAAE,MAAe;QACpD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QACzD,MAAM,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACnD,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAC3D,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM;YAClC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,MAAe;QACzC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAChC,MAAM,CAAC,gBAAgB,EACvB,EAAE,MAAM,EAAE,EACV,EAAE,GAAG,EAAE,GAAG,EAAE,CACb,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC1C,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,kCAAkC;IAElC,KAAK,CAAC,aAAa,CACjB,MAAe,EACf,OAAgB,EAChB,IAAa,EACb,IAAa,EACb,OAAgB;QAEhB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAChC,MAAM,CAAC,QAAQ,EACf,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EACjD,EAAE,GAAG,EAAE,GAAG,EAAE,CACb,CAAC;QACF,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,mFAAmF;IACnF,KAAK,CAAC,gBAAgB,CACpB,MAAe,EACf,OAAgB,EAChB,IAAa,EACb,QAAQ,GAAG,EAAE;QAEb,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QACtE,MAAM,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;QACzD,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YACxE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM;YAClC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,MAAe,EAAE,KAAc;QACzD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAChC,MAAM,CAAC,iBAAiB,EACxB,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,EACtB,EAAE,GAAG,EAAE,GAAG,EAAE,CACb,CAAC;QACF,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,MAAe,EAAE,KAAc;QACxD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAChC,MAAM,CAAC,gBAAgB,EACvB,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,EACtB,EAAE,GAAG,EAAE,GAAG,EAAE,CACb,CAAC;QACF,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAe,EAAE,KAAc,EAAE,IAAa;QAC9D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAChC,MAAM,CAAC,MAAM,EACb,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAC5B,EAAE,GAAG,EAAE,GAAG,EAAE,CACb,CAAC;QACF,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;IACzC,CAAC;IAED,sEAAsE;IACtE,KAAK,CAAC,cAAc,CAAC,MAAe,EAAE,KAAc,EAAE,QAAQ,GAAG,EAAE;QACjE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CACtC,MAAM,CAAC,MAAM,EACb,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,EAC/B,EAAE,GAAG,EAAE,GAAG,EAAE,CACb,CAAC;QACF,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,GAAG,CAAC;QAEjC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;QACzD,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACzD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM;YAC7B,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACpB,CAAC;QACD,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,MAAe,EAAE,KAAc;QACtD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAChC,MAAM,CAAC,cAAc,EACrB,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,EACtB,EAAE,GAAG,EAAE,GAAG,EAAE,CACb,CAAC;QACF,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAe,EAAE,IAAa;QAC5C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAChC,MAAM,CAAC,IAAI,EACX,EAAE,MAAM,EAAE,IAAI,EAAE,EAChB,EAAE,GAAG,EAAE,GAAG,EAAE,CACb,CAAC;QACF,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;IACzC,CAAC;IAED,qCAAqC;IAErC,KAAK,CAAC,cAAc,CAClB,MAAc,EACd,KAAa,EACb,EAAW,EACX,MAAe,EACf,MAAe,EACf,KAAc;QAEd,MAAM,aAAa,GAAG,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACvD,MAAM,YAAY,GAAG,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACnE,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAE5E,uEAAuE;QACvE,IAAI,OAAO,CAAC,MAAM,IAAI,uBAAuB,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC,WAAW,CACrB,MAAM,CAAC,IAAI,EACX,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EACvE,EAAE,GAAG,EAAE,CACR,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,GAAkC,IAAI,CAAC;QACjD,IAAI,SAAS,GAAY,IAAI,CAAC;QAE9B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,IAAI,uBAAuB,EAAE,CAAC;YAC7E,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,uBAAuB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9E,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CACrC,MAAM,CAAC,IAAI,EACX,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAChE,EAAE,GAAG,EAAE,CACR,CAAC;gBACF,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,MAAM,GAAG,QAAQ,CAAC;gBACpB,CAAC;qBAAM,CAAC;oBACN,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,wDAAwD;gBACxD,IAAI,KAAK,YAAY,gBAAgB,EAAE,CAAC;oBACtC,SAAS,GAAG,KAAK,CAAC;oBAClB,SAAS;gBACX,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,SAAS,YAAY,KAAK;gBAAE,MAAM,SAAS,CAAC;YAChD,MAAM,IAAI,gBAAgB,CAAC,QAAQ,MAAM,IAAI,aAAa,EAAE,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,sCAAsC;IAEtC,KAAK,CAAC,gBAAgB,CACpB,MAAe,EACf,OAAgB,EAChB,IAAa,EACb,KAAc,EACd,IAAa;QAEb,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAChC,MAAM,CAAC,YAAY,EACnB,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EACtC,CAAC,GAAG,EAAE,GAAG,EAAE,CACZ,CAAC;QACF,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,EAAU;QAC7C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAChC,MAAM,CAAC,YAAY,EACnB,EAAE,MAAM,EAAE,EAAE,EAAE,EACd,CAAC,GAAG,EAAE,GAAG,EAAE,CACZ,CAAC;QACF,OAAO,GAAG,CAAC,IAAI,CAAC;IAClB,CAAC;IAED,uCAAuC;IAEvC,KAAK,CAAC,iBAAiB,CACrB,MAAe,EACf,OAAgB,EAChB,IAAa,EACb,KAAc,EACd,IAAa;QAEb,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAChC,MAAM,CAAC,aAAa,EACpB,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EACtC,EAAE,GAAG,EAAE,CACR,CAAC;QACF,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAc,EAAE,EAAU;QAC9C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAChC,MAAM,CAAC,aAAa,EACpB,EAAE,MAAM,EAAE,EAAE,EAAE,EACd,EAAE,GAAG,EAAE,CACR,CAAC;QACF,OAAO,GAAG,CAAC,IAAI,CAAC;IAClB,CAAC;IAED,qCAAqC;IAErC,KAAK,CAAC,gBAAgB,CACpB,MAAe,EACf,OAAgB,EAChB,IAAa,EACb,KAAc,EACd,IAAa;QAEb,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAChC,MAAM,CAAC,WAAW,EAClB,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EACtC,CAAC,GAAG,EAAE,GAAG,EAAE,CACZ,CAAC;QACF,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,EAAU;QAC7C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAChC,MAAM,CAAC,WAAW,EAClB,EAAE,MAAM,EAAE,EAAE,EAAE,EACd,CAAC,GAAG,EAAE,GAAG,EAAE,CACZ,CAAC;QACF,OAAO,GAAG,CAAC,IAAI,CAAC;IAClB,CAAC;IAED,6CAA6C;IAE7C,KAAK,CAAC,uBAAuB,CAC3B,MAAe,EACf,KAAc,EACd,IAAa;QAEb,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAChC,MAAM,CAAC,mBAAmB,EAC1B,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAC5B,EAAE,GAAG,EAAE,CACR,CAAC;QACF,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,8BAA8B;IAE9B,KAAK,CAAC,YAAY,CAChB,MAAa,EACb,MAAc,EACd,MAAc,EACd,IAAY,EACZ,MAAc;QAEd,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACrC,MAAM,MAAM,GAAgD;YAC1D,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,MAAM;YACf,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,MAAM;YACf,IAAI,EAAE,IAAI,CAAC,WAAW;YACtB,GAAG,IAAI;SACR,CAAC;QAEF,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,SAAS,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;QACzE,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,qCAAqC;IAErC,KAAK,CAAC,gBAAgB,CACpB,MAAe,EACf,OAAgB,EAChB,IAAa;QAEb,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAChC,MAAM,CAAC,WAAW,EAClB,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EACzB,CAAC,GAAG,EAAE,GAAG,EAAE,CACZ,CAAC;QACF,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,EAAU;QAC7C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAChC,MAAM,CAAC,WAAW,EAClB,EAAE,MAAM,EAAE,EAAE,EAAE,EACd,CAAC,GAAG,EAAE,GAAG,EAAE,CACZ,CAAC;QACF,OAAO,GAAG,CAAC,IAAI,CAAC;IAClB,CAAC;IAED,6BAA6B;IAE7B,KAAK,CAAC,QAAQ,CACZ,MAAe,EACf,OAAgB,EAChB,IAAa;QAEb,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAChC,MAAM,CAAC,IAAI,EACX,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EACzB,EAAE,GAAG,EAAE,CACR,CAAC;QACF,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,EAAU;QACtC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAChC,MAAM,CAAC,IAAI,EACX,EAAE,MAAM,EAAE,EAAE,EAAE,EACd,EAAE,GAAG,EAAE,CACR,CAAC;QACF,OAAO,GAAG,CAAC,IAAI,CAAC;IAClB,CAAC;IAED,6CAA6C;IAE7C,KAAK,CAAC,YAAY,CAChB,MAAe,EACf,OAAgB,EAChB,IAAa;QAEb,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAChC,MAAM,CAAC,QAAQ,EACf,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EACzB,EAAE,GAAG,EAAE,GAAG,EAAE,CACb,CAAC;QACF,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,uEAAuE;IAEvE,KAAK,CAAC,wBAAwB,CAAC,MAAe;QAC5C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAChC,MAAM,CAAC,oBAAoB,EAC3B,EAAE,MAAM,EAAE,EACV,EAAE,GAAG,EAAE,GAAG,EAAE,CACb,CAAC;QACF,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,MAAe,EACf,MAAe,EACf,IAAa;QAEb,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAChC,MAAM,CAAC,WAAW,EAClB,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EACxB,EAAE,GAAG,EAAE,GAAG,EAAE,CACb,CAAC;QACF,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,MAAe,EACf,OAAgB,EAChB,IAAa;QAEb,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAChC,MAAM,CAAC,SAAS,EAChB,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EACzB,CAAC,GAAG,EAAE,GAAG,EAAE,CACZ,CAAC;QACF,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,WAAW,CACf,MAAc,EACd,EAAU;QAEV,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAKhC,MAAM,CAAC,SAAS,EAChB,EAAE,MAAM,EAAE,EAAE,EAAE,EACd,CAAC,GAAG,EAAE,GAAG,EAAE,CACZ,CAAC;QAEF,oDAAoD;QACpD,IAAI,GAAG,CAAC,IAAI;YAAE,OAAO,GAAG,CAAC,IAAI,CAAC;QAE9B,2EAA2E;QAC3E,4EAA4E;QAC5E,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,WAAW,CAAC,6DAA6D,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAChG,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAClE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,IAAI,SAAS,CAAC,CAAC;QAC7E,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8DAA8D;IAE9D,KAAK,CAAC,gBAAgB;QACpB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QACzE,MAAM,QAAQ,GAAG,eAAe,CAAC;QACjC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAyC,GAAG,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QACtG,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,QAAgB;QACrC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QACnF,MAAM,QAAQ,GAAG,iBAAiB,QAAQ,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAyC,GAAG,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QACtG,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;IACzC,CAAC;IAED,+BAA+B;IAE/B,KAAK,CAAC,MAAM,CACV,MAAc,EACd,OAAe,EACf,KAAc,EACd,IAAa;QAEb,MAAM,SAAS,GAAG,KAAK,IAAI,MAAM,CAAC,YAAY,CAAC;QAC/C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAChC,SAAS,EACT,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EACzB,EAAE,GAAG,EAAE,CACR,CAAC;QACF,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;CACF"}
1
+ {"version":3,"file":"bps-client.js","sourceRoot":"","sources":["../../src/client/bps-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Global request scheduler.
3
+ *
4
+ * BPS WebAPI rate-limits aggressively: a burst of parallel requests (an LLM
5
+ * happily fires 30 at once) immediately returns HTTP 429 and every subsequent
6
+ * call fails for a while. Agents cannot be trusted to self-throttle, so the
7
+ * throttle lives in the client.
8
+ *
9
+ * Requests are queued, run at most `maxConcurrent` at a time, and spaced by
10
+ * `minGapMs` to keep the requests-per-second rate low.
11
+ */
12
+ export declare class RequestScheduler {
13
+ private readonly maxConcurrent;
14
+ private readonly minGapMs;
15
+ private active;
16
+ /** Earliest timestamp at which the next request may start. */
17
+ private nextSlotAt;
18
+ private readonly queue;
19
+ constructor(maxConcurrent?: number, minGapMs?: number);
20
+ run<T>(task: () => Promise<T>): Promise<T>;
21
+ /** Current number of queued tasks (useful for diagnostics/tests). */
22
+ get pending(): number;
23
+ get running(): number;
24
+ private acquire;
25
+ private release;
26
+ }
27
+ /** Shared scheduler instance used by every BpsClient request. */
28
+ export declare const defaultScheduler: RequestScheduler;
29
+ //# sourceMappingURL=request-scheduler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-scheduler.d.ts","sourceRoot":"","sources":["../../src/client/request-scheduler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,qBAAa,gBAAgB;IAOzB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAP3B,OAAO,CAAC,MAAM,CAAK;IACnB,8DAA8D;IAC9D,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyB;gBAG5B,aAAa,GAAE,MAAU,EACzB,QAAQ,GAAE,MAAW;IAGlC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAShD,qEAAqE;IACrE,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;YAEa,OAAO;IAoBrB,OAAO,CAAC,OAAO;CAKhB;AAED,iEAAiE;AACjE,eAAO,MAAM,gBAAgB,kBAG5B,CAAC"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Global request scheduler.
3
+ *
4
+ * BPS WebAPI rate-limits aggressively: a burst of parallel requests (an LLM
5
+ * happily fires 30 at once) immediately returns HTTP 429 and every subsequent
6
+ * call fails for a while. Agents cannot be trusted to self-throttle, so the
7
+ * throttle lives in the client.
8
+ *
9
+ * Requests are queued, run at most `maxConcurrent` at a time, and spaced by
10
+ * `minGapMs` to keep the requests-per-second rate low.
11
+ */
12
+ export class RequestScheduler {
13
+ maxConcurrent;
14
+ minGapMs;
15
+ active = 0;
16
+ /** Earliest timestamp at which the next request may start. */
17
+ nextSlotAt = 0;
18
+ queue = [];
19
+ constructor(maxConcurrent = 4, minGapMs = 40) {
20
+ this.maxConcurrent = maxConcurrent;
21
+ this.minGapMs = minGapMs;
22
+ }
23
+ async run(task) {
24
+ await this.acquire();
25
+ try {
26
+ return await task();
27
+ }
28
+ finally {
29
+ this.release();
30
+ }
31
+ }
32
+ /** Current number of queued tasks (useful for diagnostics/tests). */
33
+ get pending() {
34
+ return this.queue.length;
35
+ }
36
+ get running() {
37
+ return this.active;
38
+ }
39
+ async acquire() {
40
+ if (this.active >= this.maxConcurrent) {
41
+ await new Promise((resolve) => this.queue.push(resolve));
42
+ }
43
+ this.active += 1;
44
+ if (this.minGapMs > 0) {
45
+ // Reserve a slot atomically so parallel acquisitions are spaced too,
46
+ // not just queued: otherwise N tasks that grab a free slot at the same
47
+ // moment all fire at once.
48
+ const now = Date.now();
49
+ const startAt = Math.max(now, this.nextSlotAt);
50
+ this.nextSlotAt = startAt + this.minGapMs;
51
+ const wait = startAt - now;
52
+ if (wait > 0) {
53
+ await new Promise((resolve) => setTimeout(resolve, wait));
54
+ }
55
+ }
56
+ }
57
+ release() {
58
+ this.active -= 1;
59
+ const next = this.queue.shift();
60
+ if (next)
61
+ next();
62
+ }
63
+ }
64
+ /** Shared scheduler instance used by every BpsClient request. */
65
+ export const defaultScheduler = new RequestScheduler(readPositiveInt(readEnv("BPS_MAX_CONCURRENCY"), 3), readPositiveInt(readEnv("BPS_MIN_REQUEST_GAP_MS"), 250));
66
+ /** Read an env var without assuming `process` exists (Cloudflare Workers). */
67
+ function readEnv(name) {
68
+ const env = globalThis.process?.env;
69
+ return env?.[name];
70
+ }
71
+ function readPositiveInt(value, fallback) {
72
+ const parsed = Number(value);
73
+ return Number.isFinite(parsed) && parsed > 0 ? Math.floor(parsed) : fallback;
74
+ }
75
+ //# sourceMappingURL=request-scheduler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-scheduler.js","sourceRoot":"","sources":["../../src/client/request-scheduler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,OAAO,gBAAgB;IAOR;IACA;IAPX,MAAM,GAAG,CAAC,CAAC;IACnB,8DAA8D;IACtD,UAAU,GAAG,CAAC,CAAC;IACN,KAAK,GAAsB,EAAE,CAAC;IAE/C,YACmB,gBAAwB,CAAC,EACzB,WAAmB,EAAE;QADrB,kBAAa,GAAb,aAAa,CAAY;QACzB,aAAQ,GAAR,QAAQ,CAAa;IACrC,CAAC;IAEJ,KAAK,CAAC,GAAG,CAAI,IAAsB;QACjC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,EAAE,CAAC;QACtB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,OAAO;QACnB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACtC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QAEjB,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YACtB,qEAAqE;YACrE,uEAAuE;YACvE,2BAA2B;YAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/C,IAAI,CAAC,UAAU,GAAG,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC1C,MAAM,IAAI,GAAG,OAAO,GAAG,GAAG,CAAC;YAC3B,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;gBACb,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;IACH,CAAC;IAEO,OAAO;QACb,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,IAAI;YAAE,IAAI,EAAE,CAAC;IACnB,CAAC;CACF;AAED,iEAAiE;AACjE,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAClD,eAAe,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,EAClD,eAAe,CAAC,OAAO,CAAC,wBAAwB,CAAC,EAAE,GAAG,CAAC,CACxD,CAAC;AAEF,8EAA8E;AAC9E,SAAS,OAAO,CAAC,IAAY;IAC3B,MAAM,GAAG,GAAI,UAAyE,CAAC,OAAO,EAAE,GAAG,CAAC;IACpG,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC;AAED,SAAS,eAAe,CAAC,KAAyB,EAAE,QAAgB;IAClE,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC/E,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Crosswalk for indicators that BPS publishes **per kabupaten/kota**, but only
3
+ * inside each provincial domain (there is no national kab/kota table).
4
+ *
5
+ * Without this map a client has to sweep 34 provincial domains, guess a
6
+ * variable name in each one, and still get the wrong table half the time.
7
+ * The var_ids below were verified against BPS WebAPI; when BPS revises a
8
+ * table the sweep falls back to keyword discovery (`searchVariables`).
9
+ *
10
+ * Add new indicators here as they are verified — one entry replaces dozens of
11
+ * discovery calls.
12
+ */
13
+ export interface KabkotaIndicatorHint {
14
+ /** Stable identifier used in logs/tests. */
15
+ id: string;
16
+ /** Human label for the indicator. */
17
+ label: string;
18
+ /** Query pattern that should use this crosswalk. */
19
+ pattern: RegExp;
20
+ /** Province domain → var_id of the kabupaten/kota table. */
21
+ variables: Record<string, string>;
22
+ /**
23
+ * Province domains that publish the indicator only as province totals
24
+ * (no kab/kota breakdown in WebAPI). They are reported as "not covered".
25
+ */
26
+ unavailable: Record<string, string>;
27
+ }
28
+ export declare const KABKOTA_INDICATORS: KabkotaIndicatorHint[];
29
+ export declare function findKabkotaIndicator(query: string): KabkotaIndicatorHint | null;
30
+ //# sourceMappingURL=kabkota-indicators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kabkota-indicators.d.ts","sourceRoot":"","sources":["../../src/config/kabkota-indicators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,oBAAoB;IACnC,4CAA4C;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED,eAAO,MAAM,kBAAkB,EAAE,oBAAoB,EA4CpD,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAE/E"}
@@ -0,0 +1,49 @@
1
+ export const KABKOTA_INDICATORS = [
2
+ {
3
+ id: "tpt",
4
+ label: "Tingkat Pengangguran Terbuka (TPT) menurut Kabupaten/Kota",
5
+ pattern: /\b(tpt|pengangguran|penganggur|unemployment)\b/i,
6
+ variables: {
7
+ "1100": "206",
8
+ "1200": "44",
9
+ "1300": "139",
10
+ "1400": "42",
11
+ "1500": "844",
12
+ "1800": "47",
13
+ "1900": "95",
14
+ "2100": "224",
15
+ "3200": "73",
16
+ "3300": "64",
17
+ "3500": "54",
18
+ "3600": "157",
19
+ "6100": "51",
20
+ "6200": "389",
21
+ "6300": "37",
22
+ "6400": "59",
23
+ "6500": "115",
24
+ "7200": "92",
25
+ "7300": "466",
26
+ "7400": "395",
27
+ "7500": "184",
28
+ "7600": "520",
29
+ "8100": "108",
30
+ "8200": "250",
31
+ "9100": "270",
32
+ },
33
+ unavailable: {
34
+ "1600": "Hanya tersedia angka provinsi (TPT Sumatera Selatan)",
35
+ "1700": "Hanya tersedia angka provinsi + tabel statis 2022",
36
+ "3100": "DKI Jakarta hanya satu level kota administrasi",
37
+ "3400": "Hanya tersedia angka provinsi (TPT D.I. Yogyakarta)",
38
+ "5100": "Tabel 'Persentase Pengangguran' memakai denominasi berbeda",
39
+ "5200": "Hanya tersedia angka provinsi (TPT NTB)",
40
+ "5300": "Hanya tersedia angka provinsi (TPT NTT)",
41
+ "7100": "Tidak ada tabel TPT kab/kota; hanya jumlah pengangguran (jiwa)",
42
+ "9400": "Tabel TPT kab/kota tersedia sebagai tabel statis, bukan WebAPI",
43
+ },
44
+ },
45
+ ];
46
+ export function findKabkotaIndicator(query) {
47
+ return KABKOTA_INDICATORS.find((indicator) => indicator.pattern.test(query)) ?? null;
48
+ }
49
+ //# sourceMappingURL=kabkota-indicators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kabkota-indicators.js","sourceRoot":"","sources":["../../src/config/kabkota-indicators.ts"],"names":[],"mappings":"AA4BA,MAAM,CAAC,MAAM,kBAAkB,GAA2B;IACxD;QACE,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,2DAA2D;QAClE,OAAO,EAAE,iDAAiD;QAC1D,SAAS,EAAE;YACT,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,KAAK;SACd;QACD,WAAW,EAAE;YACX,MAAM,EAAE,sDAAsD;YAC9D,MAAM,EAAE,mDAAmD;YAC3D,MAAM,EAAE,gDAAgD;YACxD,MAAM,EAAE,qDAAqD;YAC7D,MAAM,EAAE,4DAA4D;YACpE,MAAM,EAAE,yCAAyC;YACjD,MAAM,EAAE,yCAAyC;YACjD,MAAM,EAAE,gEAAgE;YACxE,MAAM,EAAE,gEAAgE;SACzE;KACF;CACF,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC;AACvF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAoB/D,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,aAAa,EACnB,KAAK,EAAE,cAAc,GAAG,IAAI,EAC5B,KAAK,CAAC,EAAE,gBAAgB,GAAG,IAAI,EAC/B,OAAO,CAAC,EAAE,MAAM,GACf;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAA;CAAE,CA2CpE"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAiD/D,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,aAAa,EACnB,KAAK,EAAE,cAAc,GAAG,IAAI,EAC5B,KAAK,CAAC,EAAE,gBAAgB,GAAG,IAAI,EAC/B,OAAO,CAAC,EAAE,MAAM,GACf;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAA;CAAE,CAgDpE"}