@1mbrain/benchmarks 0.1.1 → 0.1.3

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/package.json CHANGED
@@ -1,22 +1,22 @@
1
- {
2
- "name": "@1mbrain/benchmarks",
3
- "version": "0.1.1",
4
- "description": "Provider-level benchmarks for 1MBrain and comparable memory providers.",
5
- "license": "MIT",
6
- "type": "module",
7
- "main": "./dist/index.js",
8
- "types": "./dist/index.d.ts",
9
- "scripts": {
10
- "bench": "tsx src/runner.ts",
11
- "build": "tsc -p tsconfig.json",
12
- "typecheck": "tsc --noEmit"
13
- },
14
- "dependencies": {
15
- "@1mbrain/core": "*",
16
- "mem0ai": "^3.0.9"
17
- },
18
- "devDependencies": {
19
- "tsx": "^4.19.0",
20
- "typescript": "^5.7.0"
21
- }
22
- }
1
+ {
2
+ "name": "@1mbrain/benchmarks",
3
+ "version": "0.1.3",
4
+ "description": "Provider-level benchmarks for 1MBrain and comparable memory providers.",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "main": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "scripts": {
10
+ "bench": "tsx src/runner.ts",
11
+ "build": "tsc -p tsconfig.json",
12
+ "typecheck": "tsc --noEmit"
13
+ },
14
+ "dependencies": {
15
+ "@1mbrain/core": "*",
16
+ "mem0ai": "^3.0.9"
17
+ },
18
+ "devDependencies": {
19
+ "tsx": "^4.19.0",
20
+ "typescript": "^5.7.0"
21
+ }
22
+ }
@@ -6,29 +6,23 @@ This report evaluates the performance of **1MBrain** against standard vector-onl
6
6
 
7
7
  | Provider | Evidence Accuracy | Recall@5 | MRR | p95 Latency | Ingestion Rate |
8
8
  |---|---:|---:|---:|---:|---:|
9
- | 1MBrain Graph Full | 1 | 1 | 0.917 | 7.49ms | 9.552ms/case |
10
- | 1MBrain Graph Light | 1 | 1 | 0.917 | 6.65ms | 8.098ms/case |
11
- | 1MBrain Vector Only | 0.361 | 0.889 | 0.786 | 2.164ms | 7.73ms/case |
12
- | Vector Baseline (SQLite) | 0.322 | 0.883 | 0.752 | 0.673ms | 1.392ms/case |
13
- | Qdrant Vector | N/A | N/A | N/A | N/A | N/A (Unsupported) |
14
- | Mem0 (Cloud) | N/A | N/A | N/A | N/A | N/A (Unsupported) |
15
- | Zep/Graphiti | N/A | N/A | N/A | N/A | N/A (Unsupported) |
16
- | Letta | N/A | N/A | N/A | N/A | N/A (Unsupported) |
17
- | LangMem | N/A | N/A | N/A | N/A | N/A (Unsupported) |
9
+ | 1MBrain Graph Full | 1 | 1 | 0.858 | 732.873ms | 6244.794ms/case |
10
+ | 1MBrain Vector Only | 0.147 | 0.85 | 0.917 | 725.243ms | 6049.16ms/case |
11
+ | Vector Baseline (SQLite) | 0.322 | 0.883 | 0.752 | 1.478ms | 4.877ms/case |
18
12
 
19
13
  ## Key Evaluation Questions
20
14
 
21
15
  ### 1. Where does 1MBrain outperform typical vector-only memory?
22
- 1MBrain Graph Full outperforms the Vector Baseline by **210.345%** in evidence retrieval accuracy on this focused dataset. The clearest measurable advantage is in graph-aware scenarios: multi-hop evidence accuracy is **1** for Graph Full versus **0.602** for Vector Only.
16
+ 1MBrain Graph Full outperforms the Vector Baseline by **210.345%** in evidence retrieval accuracy on this focused dataset. The clearest measurable advantage is in graph-aware scenarios: multi-hop evidence accuracy is **1** for Graph Full versus **0.245** for Vector Only.
23
17
 
24
18
  ### 2. Where does 1MBrain underperform?
25
- The main weakness is not graph traversal cost; it is retrieval precision under paraphrase, stale preference conflicts, and noisy distractors. Graph Full p95 latency is **7.49ms**, compared to **0.673ms** for the raw SQLite vector baseline. This is still low in absolute terms, but quality improvements are modest because the benchmark currently uses a local keyword embedder rather than a stronger semantic embedder.
19
+ The main weakness is not graph traversal cost; it is retrieval precision under paraphrase, stale preference conflicts, and noisy distractors. Graph Full p95 latency is **732.873ms**, compared to **1.478ms** for the raw SQLite vector baseline. This is still low in absolute terms, but quality improvements are modest because the benchmark currently uses a local keyword embedder rather than a stronger semantic embedder.
26
20
 
27
21
  ### 3. Does association graph improve recall quality?
28
- Partially. 1MBrain Graph Full achieved evidence accuracy of **1** compared to **0.361** for 1MBrain Vector Only, a **176.923%** relative improvement. This shows graph links help, but the improvement is not yet large enough to claim the graph layer alone solves recall quality.
22
+ Partially. 1MBrain Graph Full achieved evidence accuracy of **1** compared to **0.147** for 1MBrain Vector Only, a **579.245%** relative improvement. This shows graph links help, but the improvement is not yet large enough to claim the graph layer alone solves recall quality.
29
23
 
30
24
  ### 4. Does spreading activation improve multi-hop reasoning?
31
- Yes, with caveats. Multi-hop evidence accuracy improved from **0.602** to **1**, but some required supporting memories were still missed. The failure cases indicate that graph traversal needs better seed recall and/or query expansion to consistently reach the correct neighboring nodes.
25
+ Yes, with caveats. Multi-hop evidence accuracy improved from **0.245** to **1**, but some required supporting memories were still missed. The failure cases indicate that graph traversal needs better seed recall and/or query expansion to consistently reach the correct neighboring nodes.
32
26
 
33
27
  ### 5. Does decay/refresh help prevent stale memory pollution?
34
28
  Not convincingly in this run. Memory update evidence accuracy is **1**, but stale-memory failures are still present. This benchmark should be treated as evidence that explicit recency/conflict resolution needs more work before public claims about stale-memory handling.
@@ -38,7 +32,7 @@ Yes for the 1MBrain adapters tested here. Graph Full portability success rate is
38
32
 
39
33
  ### 7. What is the tradeoff between quality, latency, and cost?
40
34
  - **Quality:** Graph-enabled 1MBrain is the best local provider in this run, but only by a modest margin.
41
- - **Latency:** SQLite vector-only baseline is the fastest, while graph traversal adds roughly **6.817ms** p95 latency in this small dataset.
35
+ - **Latency:** SQLite vector-only baseline is the fastest, while graph traversal adds roughly **731.395ms** p95 latency in this small dataset.
42
36
  - **Cost:** Since 1MBrain can run fully locally (SQLite + local embedder/Ollama), the running query cost is **$0.00** per 1,000 queries, compared to high cloud API vendor fees.
43
37
 
44
38
  ### 8. What should be improved before public release?
@@ -0,0 +1,108 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+
5
+ const __filename = fileURLToPath(import.meta.url);
6
+ const __dirname = path.dirname(__filename);
7
+ const RESULTS_DIR = path.resolve(__dirname, '../results');
8
+
9
+ const targetFile = 'raw_results.json';
10
+ const filePath = path.join(RESULTS_DIR, targetFile);
11
+
12
+ if (!fs.existsSync(filePath)) {
13
+ console.error(`File not found: ${filePath}`);
14
+ process.exit(1);
15
+ }
16
+
17
+ const rawData = JSON.parse(fs.readFileSync(filePath, 'utf-8'));
18
+
19
+ // The root data is an array of ProviderRunResult
20
+ const graphFullRun = rawData.find((r: any) => r.provider === '1mbrain_graph_full');
21
+ const vectorOnlyRun = rawData.find((r: any) => r.provider === '1mbrain_vector_only');
22
+
23
+ if (!graphFullRun || !vectorOnlyRun) {
24
+ console.error('Missing run data for graph_full or vector_only');
25
+ process.exit(1);
26
+ }
27
+
28
+ const casesMap = new Map<string, any>();
29
+ for (const vc of vectorOnlyRun.caseResults) {
30
+ casesMap.set(vc.scenarioId, { vector: vc, graph: null });
31
+ }
32
+
33
+ for (const gc of graphFullRun.caseResults) {
34
+ if (casesMap.has(gc.scenarioId)) {
35
+ casesMap.get(gc.scenarioId).graph = gc;
36
+ }
37
+ }
38
+
39
+ const regressions: any[] = [];
40
+
41
+ for (const [scenarioId, pair] of casesMap) {
42
+ const g = pair.graph;
43
+ const v = pair.vector;
44
+ if (!g || !v) continue;
45
+
46
+ const gEval = g.evaluation;
47
+ const vEval = v.evaluation;
48
+
49
+ // We want to find cases where Graph Full recall@5 OR MRR is worse than Vector Only,
50
+ // but evidence quality is tied or better. (Or just any MRR/recall drop).
51
+ if (gEval.recallAt5 < vEval.recallAt5 || gEval.mrr < vEval.mrr) {
52
+ regressions.push({
53
+ scenarioId,
54
+ scenarioType: g.scenarioType,
55
+ graphEval: gEval,
56
+ vectorEval: vEval,
57
+ graphResults: g.results,
58
+ vectorResults: v.results,
59
+ // Attempt to deduce required/forbidden from failure tags or context,
60
+ // but we don't have the original benchmark expectations here easily.
61
+ // We will print the returned IDs and scores.
62
+ });
63
+ }
64
+ }
65
+
66
+ console.log(`# Failure Diff Analysis Report`);
67
+ console.log(`Analyzing: ${targetFile}\n`);
68
+
69
+ if (regressions.length === 0) {
70
+ console.log(`No regressions found! Graph Full is equal or better in MRR and Recall@5 on all cases.`);
71
+ process.exit(0);
72
+ }
73
+
74
+ console.log(`Found ${regressions.length} cases where Graph Full had worse MRR or Recall@5 than Vector Only.\n`);
75
+
76
+ const failureCounts: Record<string, number> = {};
77
+
78
+ for (const r of regressions) {
79
+ console.log(`## Scenario: ${r.scenarioId} (${r.scenarioType})`);
80
+ console.log(`- Graph Full: MRR=${r.graphEval.mrr.toFixed(3)}, Recall@5=${r.graphEval.recallAt5.toFixed(3)}`);
81
+ console.log(`- Vector Only: MRR=${r.vectorEval.mrr.toFixed(3)}, Recall@5=${r.vectorEval.recallAt5.toFixed(3)}`);
82
+
83
+ const gTags = r.graphEval.failureTags.length ? r.graphEval.failureTags.join(', ') : 'none';
84
+ console.log(`- Graph Failure Tags: ${gTags}`);
85
+
86
+ for (const tag of r.graphEval.failureTags) {
87
+ failureCounts[tag] = (failureCounts[tag] || 0) + 1;
88
+ }
89
+
90
+ console.log(`### Graph Full Returned (Top 5)`);
91
+ r.graphResults.slice(0, 5).forEach((res: any, idx: number) => {
92
+ console.log(` ${idx + 1}. ${res.memoryId} (score: ${res.score.toFixed(4)})`);
93
+ });
94
+
95
+ console.log(`### Vector Only Returned (Top 5)`);
96
+ r.vectorResults.slice(0, 5).forEach((res: any, idx: number) => {
97
+ console.log(` ${idx + 1}. ${res.memoryId} (score: ${res.score.toFixed(4)})`);
98
+ });
99
+
100
+ console.log(`---\n`);
101
+ }
102
+
103
+ console.log(`### Aggregated Regression Failure Tags for Graph Full:`);
104
+ Object.entries(failureCounts)
105
+ .sort((a, b) => b[1] - a[1])
106
+ .forEach(([tag, count]) => {
107
+ console.log(`- ${tag}: ${count}`);
108
+ });
@@ -0,0 +1,137 @@
1
+ """
2
+ Mock Mem0 Client for 1MBrain
3
+ ============================
4
+
5
+ This file overwrites `benchmarks/common/mem0_client.py` in the memory-benchmarks suite.
6
+ It intercepts `add()` and `search()` calls intended for Mem0 and translates them to 1MBrain's API.
7
+ """
8
+
9
+ import asyncio
10
+ import logging
11
+ import os
12
+ import json
13
+ from typing import Any
14
+
15
+ import httpx
16
+ from openai import AsyncOpenAI
17
+
18
+ logger = logging.getLogger(__name__)
19
+
20
+ class Mem0Client:
21
+ def __init__(
22
+ self,
23
+ mode: str = "oss",
24
+ host: str | None = None,
25
+ api_key: str | None = None,
26
+ **kwargs,
27
+ ):
28
+ # Point to the 1MBrain API server
29
+ self.api_url = (host or os.getenv("ONEMBRAIN_HOST", "http://localhost:3000")).rstrip("/")
30
+ self.api_key = api_key or os.getenv("ONEMBRAIN_API_KEY", "test-key")
31
+ self.openai_client = AsyncOpenAI(api_key=os.getenv("OPENAI_API_KEY"))
32
+ self._session = None
33
+
34
+ async def __aenter__(self):
35
+ self._session = httpx.AsyncClient(base_url=self.api_url)
36
+ return self
37
+
38
+ async def __aexit__(self, *exc):
39
+ if self._session:
40
+ await self._session.aclose()
41
+
42
+ @property
43
+ def _headers(self):
44
+ return {
45
+ "Content-Type": "application/json",
46
+ "X-API-Key": self.api_key,
47
+ }
48
+
49
+ async def add(self, messages: list[dict[str, str]], user_id: str, **kwargs) -> dict | None:
50
+ """Extract facts from messages using OpenAI and store them in 1MBrain."""
51
+ if not self._session:
52
+ self._session = httpx.AsyncClient(base_url=self.api_url)
53
+
54
+ # 1. Convert conversation to a single text block
55
+ text = "\n".join(f"{m['role']}: {m['content']}" for m in messages)
56
+
57
+ # 2. Extract facts using OpenAI (mimicking what Mem0 does internally)
58
+ prompt = (
59
+ "Extract factual memories, preferences, and claims about the users from the following conversation.\n"
60
+ "Return a JSON object with a 'facts' array containing strings.\n\n"
61
+ f"Conversation:\n{text}"
62
+ )
63
+
64
+ try:
65
+ response = await self.openai_client.chat.completions.create(
66
+ model="gpt-4o-mini",
67
+ messages=[{"role": "user", "content": prompt}],
68
+ response_format={"type": "json_object"},
69
+ )
70
+ content = response.choices[0].message.content
71
+ if not content:
72
+ return {"results": []}
73
+
74
+ data = json.loads(content)
75
+ facts = data.get("facts", [])
76
+ except Exception as e:
77
+ logger.error(f"Extraction failed: {e}")
78
+ return {"results": []}
79
+
80
+ # 3. Store each fact in 1MBrain
81
+ results = []
82
+ for fact in facts:
83
+ headers = self._headers.copy()
84
+ headers["X-Agent-Id"] = user_id
85
+ payload = {
86
+ "content": fact,
87
+ "type": "episodic",
88
+ "importance": 0.5,
89
+ "tags": ["locomo-benchmark"]
90
+ }
91
+ try:
92
+ resp = await self._session.post("/v1/memories", json=payload, headers=headers)
93
+ resp.raise_for_status()
94
+ mem_data = resp.json().get("data", {})
95
+ results.append({"memory": fact, "event": "ADD", "id": mem_data.get("id", "")})
96
+ except Exception as e:
97
+ logger.error(f"Failed to save fact to 1MBrain: {e}")
98
+
99
+ return {"results": results}
100
+
101
+ async def search(self, query: str, user_id: str, top_k: int = 200, **kwargs) -> list[dict]:
102
+ """Search 1MBrain and return Mem0-formatted results."""
103
+ if not self._session:
104
+ self._session = httpx.AsyncClient(base_url=self.api_url)
105
+
106
+ headers = self._headers.copy()
107
+ headers["X-Agent-Id"] = user_id
108
+
109
+ params = {
110
+ "query": query,
111
+ "limit": top_k,
112
+ }
113
+
114
+ try:
115
+ resp = await self._session.get("/v1/memories/search", params=params, headers=headers)
116
+ resp.raise_for_status()
117
+ data = resp.json().get("data", [])
118
+
119
+ # Format to match what LOCOMO expects
120
+ formatted = []
121
+ for item in data:
122
+ formatted.append({
123
+ "id": item.get("id", ""),
124
+ "memory": item.get("content", ""),
125
+ "score": item.get("score", 0.0),
126
+ })
127
+ return formatted
128
+ except Exception as e:
129
+ logger.error(f"Search failed: {e}")
130
+ return []
131
+
132
+ async def delete_user(self, user_id: str) -> bool:
133
+ """1MBrain doesn't have a mass delete_user endpoint out of the box, we just mock it for tests."""
134
+ return True
135
+
136
+ def format_search_results(search_results: list[dict]) -> tuple[list[dict], dict | None]:
137
+ return search_results, None
package/src/runner.ts CHANGED
@@ -2,6 +2,11 @@ import { mkdir, writeFile } from 'node:fs/promises';
2
2
  import { performance } from 'node:perf_hooks';
3
3
  import { dirname, resolve } from 'node:path';
4
4
  import { fileURLToPath } from 'node:url';
5
+ import dotenv from 'dotenv';
6
+
7
+ const PACKAGE_ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '..');
8
+ dotenv.config({ path: resolve(PACKAGE_ROOT, '../../.env') });
9
+
5
10
  import { createSyntheticAgentMemoryDataset } from './datasets/synthetic-agent-memory.js';
6
11
  import { createFocusedMiniDataset, createFixtureDataset } from './datasets/focused-mini.js';
7
12
  import {
@@ -21,8 +26,6 @@ import {
21
26
  } from './provider.js';
22
27
  import { OneMBrainBenchmarkAdapter } from './adapters/1mbrain.js';
23
28
  import { VectorBaselineAdapter } from './adapters/vector-baseline.js';
24
- import { QdrantBenchmarkAdapter } from './adapters/qdrant.js';
25
- import { Mem0BenchmarkAdapter } from './adapters/mem0.js';
26
29
  import { UnavailableAdapter } from './adapters/unavailable.js';
27
30
  import {
28
31
  applyLlmEvaluation,
@@ -33,7 +36,6 @@ import {
33
36
  type LlmCaseEvaluation,
34
37
  } from './llm-evaluator.js';
35
38
 
36
- const PACKAGE_ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '..');
37
39
 
38
40
  function loadBenchmarkDataset(): BenchmarkDataset {
39
41
  const datasetName = process.env['BENCH_DATASET'] ?? 'synthetic';
@@ -398,8 +400,6 @@ async function main() {
398
400
  new OneMBrainBenchmarkAdapter('1mbrain_graph_light'),
399
401
  new OneMBrainBenchmarkAdapter('1mbrain_vector_only'),
400
402
  new VectorBaselineAdapter(),
401
- new QdrantBenchmarkAdapter(),
402
- new Mem0BenchmarkAdapter(),
403
403
  new UnavailableAdapter('zep_graphiti', 'Zep/Graphiti', 'Zep provider integration not configured'),
404
404
  new UnavailableAdapter('letta', 'Letta', 'Letta integration not configured'),
405
405
  new UnavailableAdapter('langmem', 'LangMem', 'LangMem integration not configured'),
@@ -1,124 +0,0 @@
1
- import { MemoryClient } from 'mem0ai';
2
- import type {
3
- BenchmarkMemoryRecord,
4
- BenchmarkRecallRequest,
5
- BenchmarkRecallResult,
6
- MemoryProviderAdapter,
7
- ProviderAvailability,
8
- } from '../provider.js';
9
-
10
- export class Mem0BenchmarkAdapter implements MemoryProviderAdapter {
11
- readonly name = 'mem0';
12
- readonly label = 'Mem0 (Cloud)';
13
- readonly capabilities = {
14
- associations: false,
15
- forget: true,
16
- decay: false,
17
- portability: false,
18
- } as const;
19
-
20
- private client: MemoryClient | null = null;
21
- private readonly apiKey: string;
22
- private readonly idMap = new Map<string, string>(); // benchId -> mem0Id
23
- private readonly reverseIdMap = new Map<string, string>(); // mem0Id -> benchId
24
-
25
- constructor() {
26
- this.apiKey = process.env.MEM0_API_KEY ?? '';
27
- }
28
-
29
- async availability(): Promise<ProviderAvailability> {
30
- if (!this.apiKey) {
31
- return {
32
- status: 'unsupported',
33
- reason: 'MEM0_API_KEY is not set.',
34
- };
35
- }
36
-
37
- try {
38
- // Basic initialization check
39
- const testClient = new MemoryClient({ apiKey: this.apiKey });
40
- if (!testClient) {
41
- throw new Error('Failed to instantiate MemoryClient');
42
- }
43
- return { status: 'available' };
44
- } catch (error) {
45
- return {
46
- status: 'unsupported',
47
- reason: `Mem0 is not initialized: ${error instanceof Error ? error.message : String(error)}`,
48
- };
49
- }
50
- }
51
-
52
- async reset(agentId: string): Promise<void> {
53
- this.client = new MemoryClient({ apiKey: this.apiKey });
54
- this.idMap.clear();
55
- this.reverseIdMap.clear();
56
- try {
57
- await this.client.deleteUsers({ userId: agentId });
58
- } catch {
59
- // Ignore if user does not exist or API fails on empty reset
60
- }
61
- }
62
-
63
- async remember(memory: BenchmarkMemoryRecord, agentId: string): Promise<void> {
64
- if (!this.client) {
65
- throw new Error(`${this.label} is not initialized`);
66
- }
67
-
68
- const response = await (this.client as any).add(
69
- [{ role: 'user', content: memory.content }],
70
- { user_id: agentId, userId: agentId, infer: false }
71
- );
72
-
73
- const mem0Id = response?.results?.[0]?.id;
74
- if (mem0Id) {
75
- this.idMap.set(memory.id, mem0Id);
76
- this.reverseIdMap.set(mem0Id, memory.id);
77
- }
78
- }
79
-
80
- async recall(
81
- request: BenchmarkRecallRequest & {
82
- agentId: string;
83
- },
84
- ): Promise<BenchmarkRecallResult[]> {
85
- if (!this.client) {
86
- throw new Error(`${this.label} is not initialized`);
87
- }
88
-
89
- const results = await (this.client as any).search(request.query ?? '', {
90
- filters: {
91
- user_id: request.agentId,
92
- },
93
- limit: request.limit ?? 5,
94
- });
95
-
96
- const rawResults = Array.isArray(results) ? results : (results as any)?.results ?? [];
97
-
98
- return rawResults.map((result: any, index: number) => {
99
- const mem0Id = result.id;
100
- const benchId = mem0Id ? this.reverseIdMap.get(mem0Id) : undefined;
101
- return {
102
- memoryId: benchId ?? result.id ?? `mem0-${index}`,
103
- content: result.memory ?? result.content ?? '',
104
- score: result.score ?? 1.0,
105
- source: 'vector',
106
- };
107
- });
108
- }
109
-
110
- async forget(memoryId: string, _agentId: string): Promise<void> {
111
- if (!this.client) {
112
- throw new Error(`${this.label} is not initialized`);
113
- }
114
-
115
- const mappedId = this.idMap.get(memoryId) || memoryId;
116
- await this.client.delete(mappedId);
117
- }
118
-
119
- async close(): Promise<void> {
120
- this.client = null;
121
- this.idMap.clear();
122
- this.reverseIdMap.clear();
123
- }
124
- }
@@ -1,214 +0,0 @@
1
- import type {
2
- BenchmarkMemoryRecord,
3
- BenchmarkRecallRequest,
4
- BenchmarkRecallResult,
5
- MemoryProviderAdapter,
6
- ProviderAvailability,
7
- } from '../provider.js';
8
- import { KeywordEmbeddingProvider } from './keyword-embedding.js';
9
-
10
- type QdrantPoint = {
11
- id: number;
12
- vector: number[];
13
- payload: {
14
- benchId: string;
15
- agentId: string;
16
- type: string;
17
- tags: string[];
18
- content: string;
19
- importance: number;
20
- metadata?: Record<string, unknown>;
21
- };
22
- };
23
-
24
- type QdrantSearchResult = {
25
- id: number;
26
- score: number;
27
- payload?: {
28
- benchId?: string;
29
- content?: string;
30
- type?: string;
31
- metadata?: Record<string, unknown>;
32
- };
33
- };
34
-
35
- export class QdrantBenchmarkAdapter implements MemoryProviderAdapter {
36
- readonly name = 'qdrant_vector';
37
- readonly label = 'Qdrant Vector';
38
- readonly capabilities = {
39
- associations: false,
40
- forget: true,
41
- decay: false,
42
- portability: false,
43
- } as const;
44
-
45
- private readonly embedder = new KeywordEmbeddingProvider();
46
- private readonly baseUrl: string;
47
- private readonly apiKey?: string;
48
- private readonly collectionName: string;
49
- private pointCounter = 0;
50
- private readonly idMap = new Map<string, number>();
51
-
52
- constructor(options: { url?: string; apiKey?: string; collectionName?: string } = {}) {
53
- this.baseUrl = (options.url ?? process.env.QDRANT_URL ?? '').replace(/\/+$/, '');
54
- this.apiKey = options.apiKey ?? process.env.QDRANT_API_KEY;
55
- this.collectionName =
56
- options.collectionName ?? process.env.QDRANT_COLLECTION ?? 'one_million_brain_bench_v2';
57
- }
58
-
59
- async availability(): Promise<ProviderAvailability> {
60
- if (!this.baseUrl) {
61
- return {
62
- status: 'unsupported',
63
- reason: 'QDRANT_URL is not set.',
64
- };
65
- }
66
-
67
- try {
68
- await this.request('/collections', { method: 'GET' });
69
- return { status: 'available' };
70
- } catch (error) {
71
- return {
72
- status: 'unsupported',
73
- reason: `Qdrant is not reachable at ${this.baseUrl}: ${error instanceof Error ? error.message : String(error)}`,
74
- };
75
- }
76
- }
77
-
78
- async reset(_agentId: string): Promise<void> {
79
- await this.request(`/collections/${encodeURIComponent(this.collectionName)}`, {
80
- method: 'DELETE',
81
- allowNotFound: true,
82
- });
83
- await this.request(`/collections/${encodeURIComponent(this.collectionName)}`, {
84
- method: 'PUT',
85
- body: {
86
- vectors: {
87
- size: this.embedder.dimensions,
88
- distance: 'Cosine',
89
- },
90
- },
91
- });
92
-
93
- this.pointCounter = 0;
94
- this.idMap.clear();
95
- }
96
-
97
- async remember(memory: BenchmarkMemoryRecord, agentId: string): Promise<void> {
98
- this.pointCounter += 1;
99
- this.idMap.set(memory.id, this.pointCounter);
100
-
101
- const point: QdrantPoint = {
102
- id: this.pointCounter,
103
- vector: await this.embedder.embed(memory.content),
104
- payload: {
105
- benchId: memory.id,
106
- agentId,
107
- type: memory.type,
108
- tags: memory.tags,
109
- content: memory.content,
110
- importance: memory.importance ?? 0.75,
111
- metadata: {
112
- ...(memory.metadata ?? {}),
113
- benchId: memory.id,
114
- benchTimestamp: memory.timestamp,
115
- },
116
- },
117
- };
118
-
119
- await this.request(`/collections/${encodeURIComponent(this.collectionName)}/points?wait=true`, {
120
- method: 'PUT',
121
- body: {
122
- points: [point],
123
- },
124
- });
125
- }
126
-
127
- async recall(
128
- request: BenchmarkRecallRequest & {
129
- agentId: string;
130
- },
131
- ): Promise<BenchmarkRecallResult[]> {
132
- const response = (await this.request(
133
- `/collections/${encodeURIComponent(this.collectionName)}/points/search`,
134
- {
135
- method: 'POST',
136
- body: {
137
- vector: await this.embedder.embed(request.query ?? ''),
138
- limit: request.limit ?? 5,
139
- score_threshold: request.minScore ?? 0.08,
140
- with_payload: true,
141
- filter: {
142
- must: [
143
- {
144
- key: 'agentId',
145
- match: { value: request.agentId },
146
- },
147
- ],
148
- },
149
- },
150
- },
151
- )) as { result: QdrantSearchResult[] };
152
-
153
- return response.result.map((result) => ({
154
- memoryId: result.payload?.benchId ?? String(result.id),
155
- content: result.payload?.content ?? '',
156
- score: result.score,
157
- type: result.payload?.type as BenchmarkMemoryRecord['type'] | undefined,
158
- source: 'vector',
159
- metadata: result.payload?.metadata,
160
- }));
161
- }
162
-
163
- async forget(memoryId: string, _agentId: string): Promise<void> {
164
- const pointId = this.idMap.get(memoryId);
165
- if (!pointId) return;
166
-
167
- await this.request(`/collections/${encodeURIComponent(this.collectionName)}/points/delete?wait=true`, {
168
- method: 'POST',
169
- body: {
170
- points: [pointId],
171
- },
172
- });
173
- }
174
-
175
- async close(): Promise<void> {
176
- if (!this.baseUrl) return;
177
- await this.request(`/collections/${encodeURIComponent(this.collectionName)}`, {
178
- method: 'DELETE',
179
- allowNotFound: true,
180
- }).catch(() => undefined);
181
- this.idMap.clear();
182
- this.pointCounter = 0;
183
- }
184
-
185
- private async request(
186
- path: string,
187
- options: {
188
- method: 'GET' | 'POST' | 'PUT' | 'DELETE';
189
- body?: unknown;
190
- allowNotFound?: boolean;
191
- },
192
- ): Promise<unknown> {
193
- const response = await fetch(`${this.baseUrl}${path}`, {
194
- method: options.method,
195
- headers: {
196
- 'content-type': 'application/json',
197
- ...(this.apiKey ? { 'api-key': this.apiKey } : {}),
198
- },
199
- body: options.body === undefined ? undefined : JSON.stringify(options.body),
200
- });
201
-
202
- if (options.allowNotFound && response.status === 404) {
203
- return {};
204
- }
205
-
206
- if (!response.ok) {
207
- const text = await response.text();
208
- throw new Error(`Qdrant ${response.status}: ${text}`);
209
- }
210
-
211
- const text = await response.text();
212
- return text ? JSON.parse(text) : {};
213
- }
214
- }
@@ -1 +0,0 @@
1
- {"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","./src/provider.ts","./src/metrics.ts","./src/llm-evaluator.ts","./src/datasets/synthetic-agent-memory.ts","./src/datasets/focused-mini.ts","../core/dist/types.d.ts","../../node_modules/zod/v3/helpers/typealiases.d.cts","../../node_modules/zod/v3/helpers/util.d.cts","../../node_modules/zod/v3/index.d.cts","../../node_modules/zod/v3/zoderror.d.cts","../../node_modules/zod/v3/locales/en.d.cts","../../node_modules/zod/v3/errors.d.cts","../../node_modules/zod/v3/helpers/parseutil.d.cts","../../node_modules/zod/v3/helpers/enumutil.d.cts","../../node_modules/zod/v3/helpers/errorutil.d.cts","../../node_modules/zod/v3/helpers/partialutil.d.cts","../../node_modules/zod/v3/standard-schema.d.cts","../../node_modules/zod/v3/types.d.cts","../../node_modules/zod/v3/external.d.cts","../../node_modules/zod/index.d.cts","../core/dist/schemas.d.ts","../core/dist/events.d.ts","../core/dist/engine.d.ts","../core/dist/ranking-policy.d.ts","../core/dist/passport.d.ts","../core/dist/db/sqlite-provider.d.ts","../core/dist/db/postgres-provider.d.ts","../core/dist/db/index.d.ts","../core/dist/embedding/openai-provider.d.ts","../core/dist/embedding/ollama-provider.d.ts","../core/dist/embedding/keyword-provider.d.ts","../core/dist/embedding/index.d.ts","../core/dist/config.d.ts","../../node_modules/@types/node/compatibility/disposable.d.ts","../../node_modules/@types/node/compatibility/indexable.d.ts","../../node_modules/@types/node/compatibility/iterators.d.ts","../../node_modules/@types/node/compatibility/index.d.ts","../../node_modules/@types/node/globals.typedarray.d.ts","../../node_modules/@types/node/buffer.buffer.d.ts","../../node_modules/@types/node/globals.d.ts","../../node_modules/@types/node/web-globals/abortcontroller.d.ts","../../node_modules/@types/node/web-globals/domexception.d.ts","../../node_modules/@types/node/web-globals/events.d.ts","../../node_modules/buffer/index.d.ts","../../node_modules/undici-types/header.d.ts","../../node_modules/undici-types/readable.d.ts","../../node_modules/undici-types/file.d.ts","../../node_modules/undici-types/fetch.d.ts","../../node_modules/undici-types/formdata.d.ts","../../node_modules/undici-types/connector.d.ts","../../node_modules/undici-types/client.d.ts","../../node_modules/undici-types/errors.d.ts","../../node_modules/undici-types/dispatcher.d.ts","../../node_modules/undici-types/global-dispatcher.d.ts","../../node_modules/undici-types/global-origin.d.ts","../../node_modules/undici-types/pool-stats.d.ts","../../node_modules/undici-types/pool.d.ts","../../node_modules/undici-types/handlers.d.ts","../../node_modules/undici-types/balanced-pool.d.ts","../../node_modules/undici-types/agent.d.ts","../../node_modules/undici-types/mock-interceptor.d.ts","../../node_modules/undici-types/mock-agent.d.ts","../../node_modules/undici-types/mock-client.d.ts","../../node_modules/undici-types/mock-pool.d.ts","../../node_modules/undici-types/mock-errors.d.ts","../../node_modules/undici-types/proxy-agent.d.ts","../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../node_modules/undici-types/retry-handler.d.ts","../../node_modules/undici-types/retry-agent.d.ts","../../node_modules/undici-types/api.d.ts","../../node_modules/undici-types/interceptors.d.ts","../../node_modules/undici-types/util.d.ts","../../node_modules/undici-types/cookies.d.ts","../../node_modules/undici-types/patch.d.ts","../../node_modules/undici-types/websocket.d.ts","../../node_modules/undici-types/eventsource.d.ts","../../node_modules/undici-types/filereader.d.ts","../../node_modules/undici-types/diagnostics-channel.d.ts","../../node_modules/undici-types/content-type.d.ts","../../node_modules/undici-types/cache.d.ts","../../node_modules/undici-types/index.d.ts","../../node_modules/@types/node/web-globals/fetch.d.ts","../../node_modules/@types/node/web-globals/navigator.d.ts","../../node_modules/@types/node/web-globals/storage.d.ts","../../node_modules/@types/node/assert.d.ts","../../node_modules/@types/node/assert/strict.d.ts","../../node_modules/@types/node/async_hooks.d.ts","../../node_modules/@types/node/buffer.d.ts","../../node_modules/@types/node/child_process.d.ts","../../node_modules/@types/node/cluster.d.ts","../../node_modules/@types/node/console.d.ts","../../node_modules/@types/node/constants.d.ts","../../node_modules/@types/node/crypto.d.ts","../../node_modules/@types/node/dgram.d.ts","../../node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/@types/node/dns.d.ts","../../node_modules/@types/node/dns/promises.d.ts","../../node_modules/@types/node/domain.d.ts","../../node_modules/@types/node/events.d.ts","../../node_modules/@types/node/fs.d.ts","../../node_modules/@types/node/fs/promises.d.ts","../../node_modules/@types/node/http.d.ts","../../node_modules/@types/node/http2.d.ts","../../node_modules/@types/node/https.d.ts","../../node_modules/@types/node/inspector.d.ts","../../node_modules/@types/node/inspector.generated.d.ts","../../node_modules/@types/node/module.d.ts","../../node_modules/@types/node/net.d.ts","../../node_modules/@types/node/os.d.ts","../../node_modules/@types/node/path.d.ts","../../node_modules/@types/node/perf_hooks.d.ts","../../node_modules/@types/node/process.d.ts","../../node_modules/@types/node/punycode.d.ts","../../node_modules/@types/node/querystring.d.ts","../../node_modules/@types/node/readline.d.ts","../../node_modules/@types/node/readline/promises.d.ts","../../node_modules/@types/node/repl.d.ts","../../node_modules/@types/node/sea.d.ts","../../node_modules/@types/node/sqlite.d.ts","../../node_modules/@types/node/stream.d.ts","../../node_modules/@types/node/stream/promises.d.ts","../../node_modules/@types/node/stream/consumers.d.ts","../../node_modules/@types/node/stream/web.d.ts","../../node_modules/@types/node/string_decoder.d.ts","../../node_modules/@types/node/test.d.ts","../../node_modules/@types/node/timers.d.ts","../../node_modules/@types/node/timers/promises.d.ts","../../node_modules/@types/node/tls.d.ts","../../node_modules/@types/node/trace_events.d.ts","../../node_modules/@types/node/tty.d.ts","../../node_modules/@types/node/url.d.ts","../../node_modules/@types/node/util.d.ts","../../node_modules/@types/node/v8.d.ts","../../node_modules/@types/node/vm.d.ts","../../node_modules/@types/node/wasi.d.ts","../../node_modules/@types/node/worker_threads.d.ts","../../node_modules/@types/node/zlib.d.ts","../../node_modules/@types/node/index.d.ts","../../node_modules/pino-std-serializers/index.d.ts","../../node_modules/sonic-boom/types/index.d.ts","../../node_modules/pino/pino.d.ts","../core/dist/logger.d.ts","../core/dist/index.d.ts","./src/adapters/keyword-embedding.ts","./src/adapters/1mbrain.ts","./src/adapters/vector-baseline.ts","./src/adapters/qdrant.ts","./node_modules/mem0ai/dist/index.d.ts","./src/adapters/mem0.ts","./src/adapters/unavailable.ts","./src/runner.ts","../../node_modules/@types/better-sqlite3/index.d.ts","../../node_modules/@types/d3-array/index.d.ts","../../node_modules/@types/d3-selection/index.d.ts","../../node_modules/@types/d3-axis/index.d.ts","../../node_modules/@types/d3-brush/index.d.ts","../../node_modules/@types/d3-chord/index.d.ts","../../node_modules/@types/d3-color/index.d.ts","../../node_modules/@types/geojson/index.d.ts","../../node_modules/@types/d3-contour/index.d.ts","../../node_modules/@types/d3-delaunay/index.d.ts","../../node_modules/@types/d3-dispatch/index.d.ts","../../node_modules/@types/d3-drag/index.d.ts","../../node_modules/@types/d3-dsv/index.d.ts","../../node_modules/@types/d3-ease/index.d.ts","../../node_modules/@types/d3-fetch/index.d.ts","../../node_modules/@types/d3-force/index.d.ts","../../node_modules/@types/d3-format/index.d.ts","../../node_modules/@types/d3-geo/index.d.ts","../../node_modules/@types/d3-hierarchy/index.d.ts","../../node_modules/@types/d3-interpolate/index.d.ts","../../node_modules/@types/d3-path/index.d.ts","../../node_modules/@types/d3-polygon/index.d.ts","../../node_modules/@types/d3-quadtree/index.d.ts","../../node_modules/@types/d3-random/index.d.ts","../../node_modules/@types/d3-time/index.d.ts","../../node_modules/@types/d3-scale/index.d.ts","../../node_modules/@types/d3-scale-chromatic/index.d.ts","../../node_modules/@types/d3-shape/index.d.ts","../../node_modules/@types/d3-time-format/index.d.ts","../../node_modules/@types/d3-timer/index.d.ts","../../node_modules/@types/d3-transition/index.d.ts","../../node_modules/@types/d3-zoom/index.d.ts","../../node_modules/@types/d3/index.d.ts","../../node_modules/@types/estree/index.d.ts","../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../node_modules/@types/istanbul-lib-report/index.d.ts","../../node_modules/@types/istanbul-reports/index.d.ts","../../node_modules/@jest/expect-utils/build/index.d.ts","../../node_modules/chalk/index.d.ts","../../node_modules/@sinclair/typebox/typebox.d.ts","../../node_modules/@jest/schemas/build/index.d.ts","../../node_modules/pretty-format/build/index.d.ts","../../node_modules/jest-diff/build/index.d.ts","../../node_modules/jest-matcher-utils/build/index.d.ts","../../node_modules/expect/build/index.d.ts","../../node_modules/@types/jest/index.d.ts","../../node_modules/parse5/dist/common/html.d.ts","../../node_modules/parse5/dist/common/token.d.ts","../../node_modules/parse5/dist/common/error-codes.d.ts","../../node_modules/parse5/dist/tokenizer/preprocessor.d.ts","../../node_modules/entities/dist/esm/generated/decode-data-html.d.ts","../../node_modules/entities/dist/esm/generated/decode-data-xml.d.ts","../../node_modules/entities/dist/esm/decode-codepoint.d.ts","../../node_modules/entities/dist/esm/decode.d.ts","../../node_modules/parse5/dist/tokenizer/index.d.ts","../../node_modules/parse5/dist/tree-adapters/interface.d.ts","../../node_modules/parse5/dist/parser/open-element-stack.d.ts","../../node_modules/parse5/dist/parser/formatting-element-list.d.ts","../../node_modules/parse5/dist/parser/index.d.ts","../../node_modules/parse5/dist/tree-adapters/default.d.ts","../../node_modules/parse5/dist/serializer/index.d.ts","../../node_modules/parse5/dist/common/foreign-content.d.ts","../../node_modules/parse5/dist/index.d.ts","../../node_modules/tough-cookie/dist/cookie/constants.d.ts","../../node_modules/tough-cookie/dist/cookie/cookie.d.ts","../../node_modules/tough-cookie/dist/utils.d.ts","../../node_modules/tough-cookie/dist/store.d.ts","../../node_modules/tough-cookie/dist/memstore.d.ts","../../node_modules/tough-cookie/dist/pathmatch.d.ts","../../node_modules/tough-cookie/dist/permutedomain.d.ts","../../node_modules/tough-cookie/dist/getpublicsuffix.d.ts","../../node_modules/tough-cookie/dist/validators.d.ts","../../node_modules/tough-cookie/dist/version.d.ts","../../node_modules/tough-cookie/dist/cookie/canonicaldomain.d.ts","../../node_modules/tough-cookie/dist/cookie/cookiecompare.d.ts","../../node_modules/tough-cookie/dist/cookie/cookiejar.d.ts","../../node_modules/tough-cookie/dist/cookie/defaultpath.d.ts","../../node_modules/tough-cookie/dist/cookie/domainmatch.d.ts","../../node_modules/tough-cookie/dist/cookie/formatdate.d.ts","../../node_modules/tough-cookie/dist/cookie/parsedate.d.ts","../../node_modules/tough-cookie/dist/cookie/permutepath.d.ts","../../node_modules/tough-cookie/dist/cookie/index.d.ts","../../node_modules/@types/jsdom/base.d.ts","../../node_modules/@types/jsdom/index.d.ts","../../node_modules/@types/json-schema/index.d.ts","../../node_modules/form-data/index.d.ts","../../node_modules/@types/node-fetch/externals.d.ts","../../node_modules/@types/node-fetch/index.d.ts","../../node_modules/@types/pg/node_modules/pg-types/lib/builtins.d.ts","../../node_modules/@types/pg/node_modules/pg-types/index.d.ts","../../node_modules/pg-protocol/dist/messages.d.ts","../../node_modules/pg-protocol/dist/serializer.d.ts","../../node_modules/pg-protocol/dist/parser.d.ts","../../node_modules/pg-protocol/dist/index.d.ts","../../node_modules/@types/pg/index.d.ts","../../node_modules/@types/react/global.d.ts","../../node_modules/csstype/index.d.ts","../../node_modules/@types/react/index.d.ts","../../node_modules/@types/react-dom/index.d.ts","../../node_modules/@types/retry/index.d.ts","../../node_modules/@types/stack-utils/index.d.ts","../../node_modules/@types/tough-cookie/index.d.ts","../../node_modules/@types/turndown/index.d.ts","../../node_modules/@types/uuid/index.d.ts","../../node_modules/@types/webidl-conversions/index.d.ts","../../node_modules/@types/whatwg-url/index.d.ts","../../node_modules/@types/yargs-parser/index.d.ts","../../node_modules/@types/yargs/index.d.ts"],"fileIdsList":[[98,147,164,165],[98,147,164,165,250],[98,147,164,165,197],[98,147,164,165,213,241],[98,147,164,165,212,218],[98,147,164,165,223],[98,147,164,165,218],[98,147,164,165,217],[98,147,164,165,235],[98,147,164,165,231],[98,147,164,165,213,230,241],[98,147,164,165,212,213,214,215,216,217,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242],[98,147,164,165,245],[98,147,164,165,246],[98,147,164,165,252,255],[98,147,158,164,165,193,197,273,292,294],[98,147,164,165,293],[98,147,161,164,165,190,197,296,297],[98,144,145,147,164,165],[98,146,147,164,165],[147,164,165],[98,147,152,164,165,182],[98,147,148,153,158,164,165,167,179,190],[98,147,148,149,158,164,165,167],[93,94,95,98,147,164,165],[98,147,150,164,165,191],[98,147,151,152,159,164,165,168],[98,147,152,164,165,179,187],[98,147,153,155,158,164,165,167],[98,146,147,154,164,165],[98,147,155,156,164,165],[98,147,157,158,164,165],[98,146,147,158,164,165],[98,147,158,159,160,164,165,179,190],[98,147,158,159,160,164,165,174,179,182],[98,140,147,155,158,161,164,165,167,179,190],[98,147,158,159,161,162,164,165,167,179,187,190],[98,147,161,163,164,165,179,187,190],[96,97,98,99,100,101,102,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196],[98,147,158,164,165],[98,147,164,165,166,190],[98,147,155,158,164,165,167,179],[98,147,164,165,168],[98,147,164,165,169],[98,146,147,164,165,170],[98,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196],[98,147,164,165,172],[98,147,164,165,173],[98,147,158,164,165,174,175],[98,147,164,165,174,176,191,193],[98,147,159,164,165],[98,147,158,164,165,179,180,182],[98,147,164,165,181,182],[98,147,164,165,179,180],[98,147,164,165,182],[98,147,164,165,183],[98,144,147,164,165,179,184,190],[98,147,158,164,165,185,186],[98,147,164,165,185,186],[98,147,152,164,165,167,179,187],[98,147,164,165,188],[98,147,164,165,167,189],[98,147,161,164,165,173,190],[98,147,152,164,165,191],[98,147,164,165,179,192],[98,147,164,165,166,193],[98,147,164,165,194],[98,140,147,164,165],[98,140,147,158,160,164,165,170,179,182,190,192,193,195],[98,147,164,165,179,196],[98,147,158,164,165,179,187,197,300,301,304,305],[98,147,164,165,299],[98,147,164,165,308],[98,147,164,165,306,307],[98,147,164,165,317],[98,147,164,165,261,262,263],[98,147,164,165,248,254],[98,147,161,164,165,179,197],[98,147,164,165,252],[98,147,164,165,249,253],[98,147,164,165,258],[98,147,164,165,257,258],[98,147,164,165,257],[98,147,164,165,257,258,259,265,266,269,270,271,272],[98,147,164,165,258,266],[98,147,164,165,257,258,259,265,266,267,268],[98,147,164,165,257,266],[98,147,164,165,266,270],[98,147,164,165,258,259,260,264],[98,147,164,165,259],[98,147,164,165,257,258,266],[98,147,164,165,197,301,302,303],[98,147,164,165,179,197,301],[98,147,161,164,165,197],[98,147,158,164,165,195,198,199],[98,147,164,165,251],[98,147,158,164,165,197],[98,147,164,165,276],[98,147,164,165,274],[98,147,164,165,275],[98,147,164,165,274,275,276,277],[98,147,164,165,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291],[98,147,164,165,275,276,277],[98,147,164,165,276,292],[98,112,116,147,164,165,190],[98,112,147,164,165,179,190],[98,107,147,164,165],[98,109,112,147,164,165,187,190],[98,147,164,165,167,187],[98,107,147,164,165,197],[98,109,112,147,164,165,167,190],[98,104,105,108,111,147,158,164,165,179,190],[98,112,119,147,164,165],[98,104,110,147,164,165],[98,112,133,134,147,164,165],[98,108,112,147,164,165,182,190,197],[98,133,147,164,165,197],[98,106,107,147,164,165,197],[98,112,147,164,165],[98,106,107,108,109,110,111,112,113,114,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,134,135,136,137,138,139,147,164,165],[98,112,127,147,164,165],[98,112,119,120,147,164,165],[98,110,112,120,121,147,164,165],[98,111,147,164,165],[98,104,107,112,147,164,165],[98,112,116,120,121,147,164,165],[98,116,147,164,165],[98,110,112,115,147,164,165,190],[98,104,109,112,119,147,164,165],[98,147,164,165,179],[98,107,112,133,147,164,165,195,197],[78,98,147,164,165],[69,70,98,147,164,165],[66,67,69,71,72,77,98,147,164,165],[67,69,98,147,164,165],[77,98,147,164,165],[69,98,147,164,165],[66,67,69,72,73,74,75,76,98,147,164,165],[66,67,68,98,147,164,165],[60,98,147,152,160,164,165,168,169,202,203],[98,147,164,165,202],[60,98,147,164,165,207],[60,98,147,164,165,203],[60,98,147,164,165],[60,98,147,160,164,165,168,169,202,203],[60,98,147,159,164,165,169],[60,61,98,147,164,165],[60,61,62,63,64,98,147,160,164,165,169,170,190,204,205,206,208,209],[65,98,147,164,165],[65,85,86,98,147,164,165],[65,88,89,90,98,147,164,165],[65,81,98,147,164,165],[65,80,81,82,83,84,87,91,92,98,147,164,165,201],[98,147,164,165,200],[79,98,147,164,165]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"5f7ce92f10d3c6bf977e22b65dcea6687a2e3495100da16ab81e70f6566aeede","signature":"72175b4926de10705fa58a0a0721029ce4b60bceeef92acf8bc49c55717fa2da"},{"version":"f2aa284057538ffb99371b62f4347786834d4cc823260c3f1f088edd2eb4c534","signature":"07225c7dbe78a764e3224e7a20a9126b2558fd90e6b5b061d29dac9ea91db629"},{"version":"ffd35ae735fd529cb7996d53176151a884db5eaa6b2730ca42757386b79f0a20","signature":"dfb0ed9f5c80a2b44bf861a0223cdd241d1f396633a06f20edb0812c365fe7d7"},{"version":"f6dce18128076e69c38bfdd3578dd395dfcd1b8fd7c1c2f465f19b9241fffb63","signature":"f9e53d5067c97792936117c12d87354930b51e38be8efc9c5edaed21a6b7f4a1"},{"version":"39c69ff748e371fe9bf82580c39188810bf99a69f4174bdf622a02d13c1c56e1","signature":"9facdd130557425637b129bc9bad9561739a0a65f96460e6828e0c3d562f9403"},"8aef23d6ba5a209400e367bc994015a58c90db1b526cc525ef51a6cea7eeda1b",{"version":"d3cfde44f8089768ebb08098c96d01ca260b88bccf238d55eee93f1c620ff5a5","impliedFormat":1},{"version":"293eadad9dead44c6fd1db6de552663c33f215c55a1bfa2802a1bceed88ff0ec","impliedFormat":1},{"version":"833e92c058d033cde3f29a6c7603f517001d1ddd8020bc94d2067a3bc69b2a8e","impliedFormat":1},{"version":"08b2fae7b0f553ad9f79faec864b179fc58bc172e295a70943e8585dd85f600c","impliedFormat":1},{"version":"f12edf1672a94c578eca32216839604f1e1c16b40a1896198deabf99c882b340","impliedFormat":1},{"version":"e3498cf5e428e6c6b9e97bd88736f26d6cf147dedbfa5a8ad3ed8e05e059af8a","impliedFormat":1},{"version":"dba3f34531fd9b1b6e072928b6f885aa4d28dd6789cbd0e93563d43f4b62da53","impliedFormat":1},{"version":"f672c876c1a04a223cf2023b3d91e8a52bb1544c576b81bf64a8fec82be9969c","impliedFormat":1},{"version":"e4b03ddcf8563b1c0aee782a185286ed85a255ce8a30df8453aade2188bbc904","impliedFormat":1},{"version":"2329d90062487e1eaca87b5e06abcbbeeecf80a82f65f949fd332cfcf824b87b","impliedFormat":1},{"version":"25b3f581e12ede11e5739f57a86e8668fbc0124f6649506def306cad2c59d262","impliedFormat":1},{"version":"4fdb529707247a1a917a4626bfb6a293d52cd8ee57ccf03830ec91d39d606d6d","impliedFormat":1},{"version":"a9ebb67d6bbead6044b43714b50dcb77b8f7541ffe803046fdec1714c1eba206","impliedFormat":1},{"version":"5780b706cece027f0d4444fbb4e1af62dc51e19da7c3d3719f67b22b033859b9","impliedFormat":1},"9fd6b78b31819ca314dbc47cf924799efd46d2a14deb306450ef144d30f81dba","5273a7079c81a821307766ad3bb7770a8fe842b00772f6b5e2a1fe921981f121","c90f871bac390dbf50fa299c1c1e4bdf9372399c47d4dbb5a2d588b1361fd7ed","794338c46d140267ae886013ff252a68b912e6cc654b176d5c88a20e1a0d29eb","94af405bdf528fa958d3b576b6bcfaf37f373dfb807ac7712e577f19fbde0108","b891bb6e869ebbf04c09f1deb65fa215fd52948609f42379282cb3d0be39e5b2","432ed87b24fd5ed8b0594260a46644d8b0916eb1fbb688adbf065c09f530d5ed","3501efb7ca71aa1efb4793ea027472a16744155e7ef9a4c361dbfcd3ac4a14d4","553786048166601059154f10b735501ef0d071e6be7cd56bf8ab7d28a75f6952","cfb611e1084541ad83b69ed2cfb37070fc00f5c9482908d5edf2bbe5a242f16d","328c157c2741db76b38bfb89447f1a3ec3e4971f296debeff119e3148ad7f29a","f62f38d94e55606e56c8583df42d6edba9d902864a651668ed093b3d8acc0d3c","26619f061082e866b5ea9478f8e1858b19b63b9b831c1efef0a59a3a6957f2e5",{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"808069bba06b6768b62fd22429b53362e7af342da4a236ed2d2e1c89fcca3b4a","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fa06ada475b910e2106c98c68b10483dc8811d0c14a8a8dd36efb2672485b29","impliedFormat":1},{"version":"33e5e9aba62c3193d10d1d33ae1fa75c46a1171cf76fef750777377d53b0303f","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"6a0cd27e5dc2cfbe039e731cf879d12b0e2dded06d1b1dedad07f7712de0d7f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f5c844119c43e51ce777c509267f14d6aaf31eafb2c2b002ca35584cd13b29","impliedFormat":1},{"version":"e60477649d6ad21542bd2dc7e3d9ff6853d0797ba9f689ba2f6653818999c264","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4c829ab315f57c5442c6667b53769975acbf92003a66aef19bce151987675bd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"b2ade7657e2db96d18315694789eff2ddd3d8aea7215b181f8a0b303277cc579","impliedFormat":1},{"version":"9855e02d837744303391e5623a531734443a5f8e6e8755e018c41d63ad797db2","impliedFormat":1},{"version":"4d631b81fa2f07a0e63a9a143d6a82c25c5f051298651a9b69176ba28930756d","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"41670ee38943d9cbb4924e436f56fc19ee94232bc96108562de1a734af20dc2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"c906fb15bd2aabc9ed1e3f44eb6a8661199d6c320b3aa196b826121552cb3695","impliedFormat":1},{"version":"22295e8103f1d6d8ea4b5d6211e43421fe4564e34d0dd8e09e520e452d89e659","impliedFormat":1},{"version":"58647d85d0f722a1ce9de50955df60a7489f0593bf1a7015521efe901c06d770","impliedFormat":1},{"version":"9018e9493596e2d041fc531f5101a0d05f9d2e1311f4ae3c74345b1766158c08","impliedFormat":1},{"version":"a10f0e1854f3316d7ee437b79649e5a6ae3ae14ffe6322b02d4987071a95362e","impliedFormat":1},{"version":"e208f73ef6a980104304b0d2ca5f6bf1b85de6009d2c7e404028b875020fa8f2","impliedFormat":1},{"version":"d163b6bc2372b4f07260747cbc6c0a6405ab3fbcea3852305e98ac43ca59f5bc","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6f137d651076822d4fe884287e68fd61785a0d3d1fdb250a5059b691fa897db","impliedFormat":1},{"version":"24826ed94a78d5c64bd857570fdbd96229ad41b5cb654c08d75a9845e3ab7dde","impliedFormat":1},{"version":"8b479a130ccb62e98f11f136d3ac80f2984fdc07616516d29881f3061f2dd472","impliedFormat":1},{"version":"928af3d90454bf656a52a48679f199f64c1435247d6189d1caf4c68f2eaf921f","affectsGlobalScope":true,"impliedFormat":1},{"version":"bceb58df66ab8fb00170df20cd813978c5ab84be1d285710c4eb005d8e9d8efb","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","impliedFormat":1},{"version":"a3fc63c0d7b031693f665f5494412ba4b551fe644ededccc0ab5922401079c95","impliedFormat":1},{"version":"80523c00b8544a2000ae0143e4a90a00b47f99823eb7926c1e03c494216fc363","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"746911b62b329587939560deb5c036aca48aece03147b021fa680223255d5183","affectsGlobalScope":true,"impliedFormat":1},{"version":"18fd40412d102c5564136f29735e5d1c3b455b8a37f920da79561f1fde068208","impliedFormat":1},{"version":"c8d3e5a18ba35629954e48c4cc8f11dc88224650067a172685c736b27a34a4dc","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"2b55d426ff2b9087485e52ac4bc7cfafe1dc420fc76dad926cd46526567c501a","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"5b7aa3c4c1a5d81b411e8cb302b45507fea9358d3569196b27eb1a27ae3a90ef","affectsGlobalScope":true,"impliedFormat":1},{"version":"5987a903da92c7462e0b35704ce7da94d7fdc4b89a984871c0e2b87a8aae9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea08a0345023ade2b47fbff5a76d0d0ed8bff10bc9d22b83f40858a8e941501c","impliedFormat":1},{"version":"47613031a5a31510831304405af561b0ffaedb734437c595256bb61a90f9311b","impliedFormat":1},{"version":"ae062ce7d9510060c5d7e7952ae379224fb3f8f2dd74e88959878af2057c143b","impliedFormat":1},{"version":"8a1a0d0a4a06a8d278947fcb66bf684f117bf147f89b06e50662d79a53be3e9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"358765d5ea8afd285d4fd1532e78b88273f18cb3f87403a9b16fef61ac9fdcfe","impliedFormat":1},{"version":"9f55299850d4f0921e79b6bf344b47c420ce0f507b9dcf593e532b09ea7eeea1","impliedFormat":1},{"version":"4fe80f12b1d5189384a219095c2eabadbb389c2d3703aae7c5376dbaa56061df","impliedFormat":1},{"version":"9eb1d2dceae65d1c82fc6be7e9b6b19cf3ca93c364678611107362b6ad4d2d41","impliedFormat":1},{"version":"8065e20ac0ad0536d4f1c8d4c2303272a4d25c450bea8d25deb25697d19300e5","impliedFormat":1},"868e68cefbb9c264d6adf2ee92d2846a8bf3be42f3196303d5c003a013919f60","d79807d8aa591779881b585f86b89c44a321f94c829a148bc5006137f28eea8c",{"version":"c35142c06a763154d92feaeac83e16cdf7778d30dba325f24a2992cee1b236cd","signature":"4b59ac1d0cedda3eb1d8c54514d6868a086c2f8d8d5ab645219396439472cab3"},{"version":"a67cbad8f376934b37ac0222f6e9754484965d37e52aa55ceb2db45742f01146","signature":"12b95f03e2ba5c13bab628fc2f810c7af42679819a6d8490664befaef3593930"},{"version":"95186c81d047b68aa8bf457ea5181aaa1fc1a64eae7ac0506d61bf1623401677","signature":"8fa0ebe0580f6335bbefba2dea3ae996d4a2657f8fe9e0b543055dd939c7ed73"},{"version":"076c3b3d9221ff03b47a1170d987bcb8071bff92564af436c6fe722ca07999fb","signature":"363f0c72bd9caa3b1dfb8f60a407c6961c6e6a830caec30848b9bb81db84d65b"},{"version":"550cce38c170ec33aea481d358b8df9c64c4fac9cd4698888cafde6b8fc99a2d","impliedFormat":1},{"version":"405792849f677676d1c9032929fa0bf0204b4186262bc67ef94c28b74083dd93","signature":"8c4df18b707e2cf70121683b658ee89477d15a410c2da1c353afc105d2d070f2"},{"version":"b07e1f20b707ba45e37aeb8db2a9f832f1d41600295062be6224b4a056c0f858","signature":"18d7b9227165673f9c4735037d5f4309c2b84526f4222ce57b037700da2cdfca"},{"version":"8fdac66813f3b16821095469b37abf879fe9384d64c8cadfc68e3ffcb6db28f2","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"c2a6a737189ced24ffe0634e9239b087e4c26378d0490f95141b9b9b042b746c","impliedFormat":1},{"version":"b1538a92b9bae8d230267210c5db38c2eb6bdb352128a3ce3aa8c6acf9fc9622","impliedFormat":1},{"version":"469532350a366536390c6eb3bde6839ec5c81fe1227a6b7b6a70202954d70c40","impliedFormat":1},{"version":"17c9f569be89b4c3c17dc17a9fb7909b6bab34f73da5a9a02d160f502624e2e8","impliedFormat":1},{"version":"003df7b9a77eaeb7a524b795caeeb0576e624e78dea5e362b053cb96ae89132a","impliedFormat":1},{"version":"7ba17571f91993b87c12b5e4ecafe66b1a1e2467ac26fcb5b8cee900f6cf8ff4","impliedFormat":1},{"version":"6fc1a4f64372593767a9b7b774e9b3b92bf04e8785c3f9ea98973aa9f4bbe490","impliedFormat":1},{"version":"d30e67059f5c545c5f8f0cc328a36d2e03b8c4a091b4301bc1d6afb2b1491a3a","impliedFormat":1},{"version":"8b219399c6a743b7c526d4267800bd7c84cf8e27f51884c86ad032d662218a9d","impliedFormat":1},{"version":"bad6d83a581dbd97677b96ee3270a5e7d91b692d220b87aab53d63649e47b9ad","impliedFormat":1},{"version":"324726a1827e34c0c45c43c32ecf73d235b01e76ef6d0f44c2c0270628df746a","impliedFormat":1},{"version":"54e79224429e911b5d6aeb3cf9097ec9fd0f140d5a1461bbdece3066b17c232c","impliedFormat":1},{"version":"e1b666b145865bc8d0d843134b21cf589c13beba05d333c7568e7c30309d933a","impliedFormat":1},{"version":"ff09b6fbdcf74d8af4e131b8866925c5e18d225540b9b19ce9485ca93e574d84","impliedFormat":1},{"version":"c836b5d8d84d990419548574fc037c923284df05803b098fe5ddaa49f88b898a","impliedFormat":1},{"version":"3a2b8ed9d6b687ab3e1eac3350c40b1624632f9e837afe8a4b5da295acf491cb","impliedFormat":1},{"version":"189266dd5f90a981910c70d7dfa05e2bca901a4f8a2680d7030c3abbfb5b1e23","impliedFormat":1},{"version":"5ec8dcf94c99d8f1ed7bb042cdfa4ef6a9810ca2f61d959be33bcaf3f309debe","impliedFormat":1},{"version":"a80e02af710bdac31f2d8308890ac4de4b6a221aafcbce808123bfc2903c5dc2","impliedFormat":1},{"version":"d5895252efa27a50f134a9b580aa61f7def5ab73d0a8071f9b5bf9a317c01c2d","impliedFormat":1},{"version":"2c378d9368abcd2eba8c29b294d40909845f68557bc0b38117e4f04fc56e5f9c","impliedFormat":1},{"version":"0f345151cece7be8d10df068b58983ea8bcbfead1b216f0734037a6c63d8af87","impliedFormat":1},{"version":"37fd7bde9c88aa142756d15aeba872498f45ad149e0d1e56f3bccc1af405c520","impliedFormat":1},{"version":"2a920fd01157f819cf0213edfb801c3fb970549228c316ce0a4b1885020bad35","impliedFormat":1},{"version":"56208c500dcb5f42be7e18e8cb578f257a1a89b94b3280c506818fed06391805","impliedFormat":1},{"version":"0c94c2e497e1b9bcfda66aea239d5d36cd980d12a6d9d59e66f4be1fa3da5d5a","impliedFormat":1},{"version":"a67774ceb500c681e1129b50a631fa210872bd4438fae55e5e8698bac7036b19","impliedFormat":1},{"version":"9b048390bcffe88c023a4cd742a720b41d4cd7df83bc9270e6f2339bf38de278","affectsGlobalScope":true,"impliedFormat":1},{"version":"dd8936160e41420264a9d5fade0ff95cc92cab56032a84c74a46b4c38e43121e","impliedFormat":1},{"version":"1f366bde16e0513fa7b64f87f86689c4d36efd85afce7eb24753e9c99b91c319","impliedFormat":1},{"version":"421c3f008f6ef4a5db2194d58a7b960ef6f33e94b033415649cd557be09ef619","impliedFormat":1},{"version":"57568ff84b8ba1a4f8c817141644b49252cc39ec7b899e4bfba0ec0557c910a0","impliedFormat":1},{"version":"e6f10f9a770dedf552ca0946eef3a3386b9bfb41509233a30fc8ca47c49db71c","impliedFormat":1},{"version":"751764bb94219b4ce8f5475dc35d3de2e432fea01a0c9610cd7f69ad05e398c6","impliedFormat":1},{"version":"035a5df183489c2e22f3cf59fc1ed2b043d27f357eecc0eb8d8e840059d44245","impliedFormat":1},{"version":"a4809f4d92317535e6b22b01019437030077a76fec1d93b9881c9ed4738fcc54","impliedFormat":1},{"version":"5f53fa0bd22096d2a78533f94e02c899143b8f0f9891a46965294ee8b91a9434","impliedFormat":1},{"version":"cdcc132f207d097d7d3aa75615ab9a2e71d6a478162dde8b67f88ea19f3e54de","impliedFormat":1},{"version":"0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","impliedFormat":1},{"version":"e1028394c1cf96d5d057ecc647e31e457b919092f882ed0c7092152b077fed9d","impliedFormat":1},{"version":"f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","impliedFormat":1},{"version":"5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","impliedFormat":1},{"version":"3e70a7e67c2cb16f8cd49097360c0309fe9d1e3210ff9222e9dac1f8df9d4fb6","impliedFormat":1},{"version":"ab68d2a3e3e8767c3fba8f80de099a1cfc18c0de79e42cb02ae66e22dfe14a66","impliedFormat":1},{"version":"d96cc6598148bf1a98fb2e8dcf01c63a4b3558bdaec6ef35e087fd0562eb40ec","impliedFormat":1},{"version":"f8db4fea512ab759b2223b90ecbbe7dae919c02f8ce95ec03f7fb1cf757cfbeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"19990350fca066265b2c190c9b6cde1229f35002ea2d4df8c9e397e9942f6c89","impliedFormat":99},{"version":"8fb8fdda477cd7382477ffda92c2bb7d9f7ef583b1aa531eb6b2dc2f0a206c10","impliedFormat":99},{"version":"66995b0c991b5c5d42eff1d950733f85482c7419f7296ab8952e03718169e379","impliedFormat":99},{"version":"9863f888da357e35e013ca3465b794a490a198226bd8232c2f81fb44e16ff323","impliedFormat":99},{"version":"84bc2d80326a83ee4a6e7cba2fd480b86502660770c0e24da96535af597c9f1e","impliedFormat":99},{"version":"ea27768379b866ee3f5da2419650acdb01125479f7af73580a4bceb25b79e372","impliedFormat":99},{"version":"598931eeb4362542cae5845f95c5f0e45ac668925a40ce201e244d7fe808e965","impliedFormat":99},{"version":"da9ef88cde9f715756da642ad80c4cd87a987f465d325462d6bc2a0b11d202c8","impliedFormat":99},{"version":"b4c6184d78303b0816e779a48bef779b15aea4a66028eb819aac0abee8407dea","impliedFormat":99},{"version":"db085d2171d48938a99e851dafe0e486dce9859e5dfa73c21de5ed3d4d6fb0c5","impliedFormat":99},{"version":"62a3ad1ddd1f5974b3bf105680b3e09420f2230711d6520a521fab2be1a32838","impliedFormat":99},{"version":"a77be6fc44c876bc10c897107f84eaba10790913ebdcad40fcda7e47469b2160","impliedFormat":99},{"version":"06cf55b6da5cef54eaaf51cdc3d4e5ebf16adfdd9ebd20cec7fe719be9ced017","impliedFormat":99},{"version":"91f5dbcdb25d145a56cffe957ec665256827892d779ef108eb2f3864faff523b","impliedFormat":99},{"version":"052ba354bab8fb943e0bc05a0769f7b81d7c3b3c6cd0f5cfa53c7b2da2a525c5","impliedFormat":99},{"version":"927955a3de5857e0a1c575ced5a4245e74e6821d720ed213141347dd1870197f","impliedFormat":99},{"version":"fec804d54cd97dd77e956232fc37dc13f53e160d4bbeeb5489e86eeaa91f7ebd","impliedFormat":99},{"version":"c1d53a14aad7cda2cb0b91f5daccd06c8e3f25cb26c09e008f46ad2896c80bf1","impliedFormat":1},{"version":"c789127b81f23a44e7cd20eaff043bb8ddd8b75aca955504b81217d6347709d8","impliedFormat":1},{"version":"1e13bda0589d714493973ae87a135aadb8bdadc2b8ba412a62d6a8f05f13ae76","impliedFormat":1},{"version":"9e9217786bc4dced2d11b82eaf62c77f172a2b4671f1a6353835dcbf7eef0843","impliedFormat":1},{"version":"8c18473f354a9648fd8798196f520b3c3868181c315ab6a726177e5b5d2ada1c","impliedFormat":1},{"version":"067fe0fe11f79aa3eef819ee2f1d7beecc7a6d9e95ee1b2b84553495fb61b2fe","impliedFormat":1},{"version":"65e7aa0d38b9513dad1d66fa622ca0897efd8f6e11cb3887231451eb1dde719a","impliedFormat":1},{"version":"cf8d966c5b46aa3b4e2bc55aeaf5932253a734d2c09fc9e05867d47f7fc3fe31","impliedFormat":1},{"version":"e11fb3c6b0788cddcda16e472a173c03d8729201dc325beb1251f54d2630ebbb","impliedFormat":1},{"version":"9034c961e85ef73bdd4e07e2c56d7adfa4c00ee6cf568dcfc13d059575aac8a8","impliedFormat":1},{"version":"48676769d0f4904e916425f778ae25c140370fb90b33ad85151c7ebab166a0cc","impliedFormat":1},{"version":"b70a8d1c0d9628260158c2e96982f5ffb415ca87f97388ea743e52bd6ef37a9c","impliedFormat":1},{"version":"709bae51a9b0263a888c6adf48fb1380634e37267abcea46a52eb02a14b76292","impliedFormat":1},{"version":"7a625afe5721361715736bc3f9548206e1f173dcdc43eecaf7f70557f5151361","impliedFormat":1},{"version":"4d114e382693704d3792d2d6da45adc1aa2d8a86c1b8ebe5fc225dccd30aaf36","impliedFormat":1},{"version":"329760175a249a5e13e16f281ede4d8da4a4a72d511bf631bf7e5bd363146a80","impliedFormat":1},{"version":"9fbdb40eb68109a83dcc5f19c450556b20699b4fa19783dabdfc06a9937c9c30","impliedFormat":1},{"version":"afb75becf7075fc3673a6f1f7b669b5bb909ae67609284ce6548ec44d8038a61","impliedFormat":1},{"version":"4018b7fb337b14d2a40dd091208fbd39b3400136dfda00e9995b51cf64783a9f","impliedFormat":1},{"version":"6f5a9b68ce8608014210f5a777f8dd82e6382285f6278c811b7b0214bbcac5bd","impliedFormat":1},{"version":"af11413ffc8c34a2a2475cb9d2982b4cc87a9317bf474474eedaacc4aaab4582","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"736097ddbb2903bef918bb3b5811ef1c9c5656f2a73bd39b22a91b9cc2525e50","impliedFormat":1},{"version":"4340936f4e937c452ae783514e7c7bbb7fc06d0c97993ff4865370d0962bb9cf","impliedFormat":1},{"version":"b70c7ea83a7d0de17a791d9b5283f664033a96362c42cc4d2b2e0bdaa65ef7d1","impliedFormat":1},{"version":"35f50e2adbdf8dd774e5296c87740f5d03dc443757bf75aee87e2b3831ae552b","impliedFormat":1},{"version":"d75ca53134de3b91925e889738a1e5cda0715fc1947380424bd61f4e9b8f7a2e","impliedFormat":1},{"version":"17230b34bb564a3a2e36f9d3985372ccab4ad1722df2c43f7c5c2b553f68e5db","impliedFormat":1},{"version":"dcb41cc4b671f5f85d3754e68dfde7824686a8adbb4c690cb259c1501cb868e1","impliedFormat":1},{"version":"21ac4cf3f8d8c6e1201cb31f600be708c9a37867fc5c73b7ccf80560fae591c8","impliedFormat":1},{"version":"0dfe35191a04e8f9dc7caeb9f52f2ee07402736563d12cbccd15fb5f31ac877f","impliedFormat":1},{"version":"fdbcb702fc789aee045791146a758ecf18b7cfd51ec1f2dfe895c3d0e35c3ac3","impliedFormat":1},{"version":"7e29f41b158de217f94cb9676bf9cbd0cd9b5a46e1985141ed36e075c52bf6ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"dc782ff85b2cb10075ecffc158af7bfb27ff97bf8491c917efea0c3d622d5ac4","impliedFormat":1},{"version":"be1cc4d94ea60cbe567bc29ed479d42587bf1e6cba490f123d329976b0fe4ee5","impliedFormat":1},{"version":"199f9ead0daf25ae4c5632e3d1f42570af59685294a38123eef457407e13f365","impliedFormat":1},{"version":"ab82804a14454734010dcdcd43f564ff7b0389bee4c5692eec76ff5b30d4cf66","impliedFormat":1},{"version":"03c258e060b7da220973f84b89615e4e9850e9b5d30b3a8e4840b3e3268ae8eb","impliedFormat":1},{"version":"f80cb0ced191be0a08767ee613ec61b89d193ab698c7c0c8133b49a183c5ea26","impliedFormat":1},{"version":"f874ea4d0091b0a44362a5f74d26caab2e66dec306c2bf7e8965f5106e784c3b","impliedFormat":1},{"version":"f2f23fe34b735887db1d5597714ae37a6ffae530cafd6908c9d79d485667c956","impliedFormat":1},{"version":"6ac066e6c4ed2c7177e20516664165e9c9db7c20ec463a57f45f9bf276efb337","impliedFormat":1},{"version":"bae8d023ef6b23df7da26f51cea44321f95817c190342a36882e93b80d07a960","impliedFormat":1},{"version":"26a770cec4bd2e7dbba95c6e536390fffe83c6268b78974a93727903b515c4e7","impliedFormat":1}],"root":[[60,64],[203,206],[208,210]],"options":{"allowImportingTsExtensions":false,"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"module":99,"noFallthroughCasesInSwitch":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./dist","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9,"verbatimModuleSyntax":true},"referencedMap":[[248,1],[251,2],[250,1],[211,3],[212,1],[214,4],[215,4],[216,1],[217,1],[219,5],[220,1],[221,1],[222,4],[223,1],[224,1],[225,6],[226,1],[227,1],[228,7],[229,1],[230,8],[231,1],[232,1],[233,1],[234,1],[237,1],[236,9],[213,1],[238,10],[239,1],[235,1],[240,1],[241,4],[242,11],[243,12],[244,1],[218,1],[245,1],[246,13],[247,14],[256,15],[293,16],[294,17],[295,1],[297,1],[298,18],[144,19],[145,19],[146,20],[98,21],[147,22],[148,23],[149,24],[93,1],[96,25],[94,1],[95,1],[150,26],[151,27],[152,28],[153,29],[154,30],[155,31],[156,31],[157,32],[158,33],[159,34],[160,35],[99,1],[97,1],[161,36],[162,37],[163,38],[197,39],[164,40],[165,1],[166,41],[167,42],[168,43],[169,44],[170,45],[171,46],[172,47],[173,48],[174,49],[175,49],[176,50],[177,1],[178,51],[179,52],[181,53],[180,54],[182,55],[183,56],[184,57],[185,58],[186,59],[187,60],[188,61],[189,62],[190,63],[191,64],[192,65],[193,66],[194,67],[100,1],[101,1],[102,1],[141,68],[142,1],[143,1],[195,69],[196,70],[305,71],[300,72],[299,1],[309,73],[306,1],[308,74],[310,1],[311,1],[312,1],[313,1],[314,1],[315,1],[316,1],[317,1],[318,75],[103,1],[249,1],[307,1],[263,1],[264,76],[261,1],[262,1],[255,77],[296,78],[253,79],[254,80],[259,81],[272,82],[257,1],[258,83],[273,84],[268,85],[269,86],[267,87],[271,88],[265,89],[260,90],[270,91],[266,82],[304,92],[301,3],[303,93],[302,3],[198,94],[200,95],[252,96],[199,97],[284,98],[274,1],[275,99],[285,100],[286,101],[287,98],[288,98],[289,1],[292,102],[290,98],[291,1],[281,1],[278,103],[279,1],[280,1],[277,104],[276,1],[282,98],[283,1],[58,1],[59,1],[10,1],[11,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[22,1],[23,1],[4,1],[24,1],[28,1],[25,1],[26,1],[27,1],[29,1],[30,1],[31,1],[5,1],[32,1],[33,1],[34,1],[35,1],[6,1],[39,1],[36,1],[37,1],[38,1],[40,1],[7,1],[41,1],[46,1],[47,1],[42,1],[43,1],[44,1],[45,1],[8,1],[51,1],[48,1],[49,1],[50,1],[52,1],[9,1],[53,1],[54,1],[55,1],[57,1],[56,1],[1,1],[119,105],[129,106],[118,105],[139,107],[110,108],[109,109],[138,3],[132,110],[137,111],[112,112],[126,113],[111,114],[135,115],[107,116],[106,3],[136,117],[108,118],[113,119],[114,1],[117,119],[104,1],[140,120],[130,121],[121,122],[122,123],[124,124],[120,125],[123,126],[133,3],[115,127],[116,128],[125,129],[105,130],[128,121],[127,119],[131,1],[134,131],[79,132],[71,133],[78,134],[73,1],[74,1],[72,135],[75,136],[66,1],[67,1],[68,132],[70,137],[76,1],[77,138],[69,139],[207,1],[204,140],[203,141],[208,142],[206,143],[209,144],[205,145],[64,146],[63,144],[62,147],[61,144],[60,1],[210,148],[92,149],[87,150],[86,149],[85,149],[91,151],[90,149],[89,149],[88,149],[82,152],[81,149],[202,153],[201,154],[84,149],[83,149],[80,155],[65,1]],"latestChangedDtsFile":"./dist/provider.d.ts","version":"5.9.3"}