@oddessentials/agent-guild 0.64.2 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +4 -0
- package/config/providers.default.json +11 -0
- package/package.json +1 -1
- package/src/manager/command-resolver.mjs +38 -12
- package/src/manager/launch-flags.mjs +124 -0
- package/src/manager/providers.mjs +10 -0
- package/src/manager/server.mjs +6 -0
- package/web/app.js +300 -7
- package/web/index.html +23 -0
- package/web/styles.css +61 -1
- package/web/yard/art.json +1 -1
package/LICENSE
CHANGED
|
@@ -90,3 +90,7 @@ A **product** can be a good or service, or a combination of them.
|
|
|
90
90
|
**Your licenses** are all the licenses granted to you for the software under these terms.
|
|
91
91
|
|
|
92
92
|
**Use** means anything you do with the software requiring one of your licenses.
|
|
93
|
+
|
|
94
|
+
# Additional permission
|
|
95
|
+
|
|
96
|
+
You may publish models made with Agent Guild's tools, including its skeleton and clips, as Steam Workshop items for Agent Guild: World.
|
|
@@ -18,6 +18,8 @@
|
|
|
18
18
|
"modelPattern": "claude-(?:opus|sonnet|haiku|fable|\\d)[a-z0-9.-]*|\\b(?:opus|sonnet|haiku|fable)\\s?\\d+(?:\\.\\d+)?",
|
|
19
19
|
"args": [],
|
|
20
20
|
"resumeArgs": ["--resume", "{id}"],
|
|
21
|
+
"launchFlags": ["--model", "--effort", "--permission-mode", "--dangerously-skip-permissions !", "--add-dir", "--allowedTools", "--disallowedTools", "--append-system-prompt", "--agent", "--mcp-config", "--strict-mcp-config"],
|
|
22
|
+
"launchFlagsEquals": true,
|
|
21
23
|
"color": "#D97757",
|
|
22
24
|
"monogram": "A",
|
|
23
25
|
"install": "curl -fsSL https://claude.ai/install.sh | bash",
|
|
@@ -58,6 +60,9 @@
|
|
|
58
60
|
"modelPattern": "\\bgpt-\\d[a-z0-9.-]*",
|
|
59
61
|
"args": [],
|
|
60
62
|
"resumeArgs": ["resume", "{id}"],
|
|
63
|
+
"launchFlags": ["--model", "--config", "--sandbox", "--ask-for-approval", "--dangerously-bypass-approvals-and-sandbox !", "--search", "--add-dir", "--profile"],
|
|
64
|
+
"launchFlagsEquals": true,
|
|
65
|
+
"launchFlagExamples": { "--config": "model_reasoning_effort=high" },
|
|
61
66
|
"color": "#10A37F",
|
|
62
67
|
"monogram": "O",
|
|
63
68
|
"install": "curl -fsSL https://chatgpt.com/codex/install.sh | sh",
|
|
@@ -91,6 +96,8 @@
|
|
|
91
96
|
"modelPattern": "\\bgemini-\\d[a-z0-9.-]*",
|
|
92
97
|
"args": [],
|
|
93
98
|
"resumeArgs": ["--conversation", "{id}"],
|
|
99
|
+
"launchFlags": ["--model <value>", "--effort <value>", "--mode <value>", "--dangerously-skip-permissions !", "--sandbox", "--add-dir <value>", "--agent <value>"],
|
|
100
|
+
"launchFlagsEquals": true,
|
|
94
101
|
"color": "#4285F4",
|
|
95
102
|
"monogram": "G",
|
|
96
103
|
"install": "curl -fsSL https://antigravity.google/cli/install.sh | bash",
|
|
@@ -124,6 +131,8 @@
|
|
|
124
131
|
"modelPattern": "\\bgrok-(?:build|\\d)[a-z0-9.-]*",
|
|
125
132
|
"args": [],
|
|
126
133
|
"resumeArgs": ["--resume", "{id}"],
|
|
134
|
+
"launchFlags": ["--model", "--reasoning-effort", "--permission-mode", "--always-approve !", "--sandbox", "--allow", "--deny", "--disable-web-search", "--rules", "--agent"],
|
|
135
|
+
"launchFlagsEquals": true,
|
|
127
136
|
"color": "#6B7280",
|
|
128
137
|
"monogram": "X",
|
|
129
138
|
"install": "curl -fsSL https://x.ai/cli/install.sh | bash",
|
|
@@ -150,6 +159,8 @@
|
|
|
150
159
|
"reporting": "docker",
|
|
151
160
|
"args": ["agent", "run"],
|
|
152
161
|
"resumeArgs": ["--session", "{id}"],
|
|
162
|
+
"launchFlags": ["--agent", "--model", "--yolo !", "--safety", "--sandbox"],
|
|
163
|
+
"launchFlagsEquals": true,
|
|
153
164
|
"color": "#2496ED",
|
|
154
165
|
"monogram": "D",
|
|
155
166
|
"plugin": "agent",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oddessentials/agent-guild",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "Launch and watch AI coding-assistant terminal sessions from one local web page. A bundled session manager owns the terminals so the page can close and reconnect.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"repository": {
|
|
@@ -168,7 +168,7 @@ export function buildSpawnSpec(resolvedPath, args = [], env = process.env, platf
|
|
|
168
168
|
* Run a file in its own process group, which execFile cannot do, and at the
|
|
169
169
|
* time limit SIGKILL the whole group. Settles as execFile would.
|
|
170
170
|
*/
|
|
171
|
-
function runInOwnGroup(file, args, { env, cwd, timeoutMs, input }) {
|
|
171
|
+
function runInOwnGroup(file, args, { env, cwd, timeoutMs, input, maxBuffer }) {
|
|
172
172
|
return new Promise((resolve, reject) => {
|
|
173
173
|
let child;
|
|
174
174
|
try {
|
|
@@ -197,8 +197,14 @@ function runInOwnGroup(file, args, { env, cwd, timeoutMs, input }) {
|
|
|
197
197
|
child.stdout.destroy();
|
|
198
198
|
child.stderr.destroy();
|
|
199
199
|
}, timeoutMs);
|
|
200
|
-
|
|
201
|
-
|
|
200
|
+
const overflow = () => {
|
|
201
|
+
end();
|
|
202
|
+
child.stdout.destroy();
|
|
203
|
+
child.stderr.destroy();
|
|
204
|
+
finish(maxBufferError());
|
|
205
|
+
};
|
|
206
|
+
child.stdout.setEncoding('utf8').on('data', (chunk) => { stdout += chunk; if (stdout.length > maxBuffer) overflow(); });
|
|
207
|
+
child.stderr.setEncoding('utf8').on('data', (chunk) => { stderr += chunk; if (stderr.length > maxBuffer) overflow(); });
|
|
202
208
|
child.on('error', finish);
|
|
203
209
|
child.on('close', (code, signal) => {
|
|
204
210
|
if (code === 0 && !timedOut) return finish(null);
|
|
@@ -208,18 +214,23 @@ function runInOwnGroup(file, args, { env, cwd, timeoutMs, input }) {
|
|
|
208
214
|
});
|
|
209
215
|
}
|
|
210
216
|
|
|
217
|
+
function maxBufferError() {
|
|
218
|
+
return Object.assign(new RangeError('stdout or stderr maxBuffer length exceeded'), { code: 'ERR_CHILD_PROCESS_STDIO_MAXBUFFER' });
|
|
219
|
+
}
|
|
220
|
+
|
|
211
221
|
/**
|
|
212
222
|
* Run a spawn spec to completion without a terminal, with `input` on its
|
|
213
223
|
* stdin. Resolves with its output; rejects with the error carrying stdout
|
|
214
|
-
* and stderr. At the time limit
|
|
215
|
-
* and everything it started are killed
|
|
216
|
-
* shims and Docker CLI plugins whose own
|
|
224
|
+
* and stderr. At the time limit, or past `maxBuffer` on either stream, the
|
|
225
|
+
* child is ended; with `killTree`, it and everything it started are killed
|
|
226
|
+
* outright, for wrappers such as .cmd shims and Docker CLI plugins whose own
|
|
227
|
+
* children would otherwise live on.
|
|
217
228
|
*/
|
|
218
|
-
export function runSpec(spec, { env, timeoutMs = 15000, cwd, input, killTree = false } = {}) {
|
|
229
|
+
export function runSpec(spec, { env, timeoutMs = 15000, cwd, input, killTree = false, maxBuffer = 1024 * 1024 } = {}) {
|
|
219
230
|
const tree = killTree && timeoutMs > 0;
|
|
220
|
-
if (tree && process.platform !== 'win32') return runInOwnGroup(spec.file, spec.args, { env, cwd, timeoutMs, input });
|
|
231
|
+
if (tree && process.platform !== 'win32') return runInOwnGroup(spec.file, spec.args, { env, cwd, timeoutMs, input, maxBuffer });
|
|
221
232
|
return new Promise((resolve, reject) => {
|
|
222
|
-
const opts = { env, cwd, timeout: tree ? 0 : timeoutMs, windowsHide: true, maxBuffer:
|
|
233
|
+
const opts = { env, cwd, timeout: tree ? 0 : timeoutMs, windowsHide: true, maxBuffer: tree ? Infinity : maxBuffer };
|
|
223
234
|
let args = spec.args;
|
|
224
235
|
if (typeof args === 'string') {
|
|
225
236
|
opts.windowsVerbatimArguments = true;
|
|
@@ -227,20 +238,35 @@ export function runSpec(spec, { env, timeoutMs = 15000, cwd, input, killTree = f
|
|
|
227
238
|
}
|
|
228
239
|
let timer = null;
|
|
229
240
|
let timedOut = false;
|
|
241
|
+
let overflowed = false;
|
|
230
242
|
try {
|
|
231
243
|
const child = execFile(spec.file, args, opts, (err, stdout, stderr) => {
|
|
232
244
|
clearTimeout(timer);
|
|
233
|
-
if (
|
|
245
|
+
if (overflowed) reject(Object.assign(maxBufferError(), { stdout, stderr }));
|
|
246
|
+
else if (err) reject(Object.assign(err, { stdout, stderr }, timedOut && { killed: true }));
|
|
234
247
|
else resolve({ stdout, stderr });
|
|
235
248
|
});
|
|
236
249
|
// taskkill /T finds the children through the wrapper, so it runs before the wrapper goes.
|
|
237
250
|
if (tree && child.pid) {
|
|
238
|
-
|
|
239
|
-
|
|
251
|
+
const stop = () => {
|
|
252
|
+
clearTimeout(timer);
|
|
240
253
|
killWindowsTree(child.pid);
|
|
241
254
|
child.stdout?.destroy();
|
|
242
255
|
child.stderr?.destroy();
|
|
256
|
+
};
|
|
257
|
+
timer = setTimeout(() => {
|
|
258
|
+
timedOut = true;
|
|
259
|
+
stop();
|
|
243
260
|
}, timeoutMs);
|
|
261
|
+
for (const stream of [child.stdout, child.stderr]) {
|
|
262
|
+
let length = 0;
|
|
263
|
+
stream?.on('data', (chunk) => {
|
|
264
|
+
length += chunk.length;
|
|
265
|
+
if (length <= maxBuffer || overflowed || timedOut) return;
|
|
266
|
+
overflowed = true;
|
|
267
|
+
stop();
|
|
268
|
+
});
|
|
269
|
+
}
|
|
244
270
|
}
|
|
245
271
|
if (input !== undefined) child.stdin.end(input);
|
|
246
272
|
} catch (err) {
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import { buildSpawnSpec, runSpec } from './command-resolver.mjs';
|
|
3
|
+
|
|
4
|
+
export const HELP_TIMEOUT_MS = 10000;
|
|
5
|
+
export const HELP_MAX_BYTES = 256 * 1024;
|
|
6
|
+
const ENTRY_RE = /^(--?[A-Za-z0-9][\w-]*)((?: <value>| !)*)$/;
|
|
7
|
+
|
|
8
|
+
export function normalizeLaunchFlags(raw, id, warnings, examples = null) {
|
|
9
|
+
if (raw === undefined || raw === null) return [];
|
|
10
|
+
if (!Array.isArray(raw)) {
|
|
11
|
+
warnings.push(`provider "${id}": ignored launchFlags; it must be a list`);
|
|
12
|
+
return [];
|
|
13
|
+
}
|
|
14
|
+
const flags = [];
|
|
15
|
+
for (const entry of raw) {
|
|
16
|
+
const match = typeof entry === 'string' ? entry.trim().match(ENTRY_RE) : null;
|
|
17
|
+
if (!match) {
|
|
18
|
+
warnings.push(`provider "${id}": skipped launch flag ${JSON.stringify(entry)}`);
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
if (!flags.some((f) => f.flag === match[1])) flags.push({ flag: match[1], value: match[2].includes('<value>'), risky: match[2].includes('!') });
|
|
22
|
+
}
|
|
23
|
+
if (examples !== null && (typeof examples !== 'object' || Array.isArray(examples))) {
|
|
24
|
+
warnings.push(`provider "${id}": ignored launchFlagExamples; it must map flags to examples`);
|
|
25
|
+
return flags;
|
|
26
|
+
}
|
|
27
|
+
for (const [flag, example] of Object.entries(examples ?? {})) {
|
|
28
|
+
const entry = flags.find((f) => f.flag === flag);
|
|
29
|
+
if (entry && typeof example === 'string' && example.trim()) entry.example = example.trim();
|
|
30
|
+
else warnings.push(`provider "${id}": ignored the launchFlagExamples entry for ${JSON.stringify(flag)}`);
|
|
31
|
+
}
|
|
32
|
+
return flags;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const indentOf = (line) => line.length - line.trimStart().length;
|
|
36
|
+
|
|
37
|
+
export function helpEntry(help, flag) {
|
|
38
|
+
const lines = help.split(/\r?\n/);
|
|
39
|
+
const names = new RegExp(`^(\\s+)(?:-[\\w-]+,\\s*)*${flag.replace(/-/g, '\\-')}(?:,\\s*-[\\w-]+)*(?=[\\s=\\[]|$)`);
|
|
40
|
+
let at = -1;
|
|
41
|
+
let found = null;
|
|
42
|
+
lines.forEach((line, i) => {
|
|
43
|
+
const match = line.match(names);
|
|
44
|
+
if (match && (!found || match[1].length < found[1].length)) [at, found] = [i, match];
|
|
45
|
+
});
|
|
46
|
+
if (!found) return null;
|
|
47
|
+
const indent = lines[at].indexOf(flag, found[1].length);
|
|
48
|
+
const [head, ...first] = lines[at].slice(found[0].length).split(/ {2,}/);
|
|
49
|
+
const placeholder = head.trim();
|
|
50
|
+
const value = !placeholder ? 'none' : placeholder.startsWith('[') || placeholder.includes('[=') ? 'optional' : 'required';
|
|
51
|
+
const paragraphs = [[first.join(' ').trim()].filter(Boolean)];
|
|
52
|
+
for (const line of lines.slice(at + 1)) {
|
|
53
|
+
if (!line.trim()) {
|
|
54
|
+
paragraphs.push([]);
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
if (indentOf(line) <= indent) break;
|
|
58
|
+
const text = line.trim();
|
|
59
|
+
if (text.startsWith('- ')) paragraphs.push([]);
|
|
60
|
+
paragraphs.at(-1).push(text);
|
|
61
|
+
}
|
|
62
|
+
return { value, placeholder, about: paragraphs.map((p) => p.join(' ')).filter(Boolean).join('\n') };
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export function offeredFlags(help, entries) {
|
|
66
|
+
return entries.flatMap(({ flag, value, risky, example = null }) => {
|
|
67
|
+
const entry = helpEntry(help, flag);
|
|
68
|
+
return entry ? [{ flag, value: value ? 'required' : entry.value, placeholder: entry.placeholder, about: entry.about, risky, example }] : [];
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export class LaunchFlags {
|
|
73
|
+
constructor(registry, { timeoutMs = HELP_TIMEOUT_MS, maxBytes = HELP_MAX_BYTES } = {}) {
|
|
74
|
+
this.registry = registry;
|
|
75
|
+
this.timeoutMs = timeoutMs;
|
|
76
|
+
this.maxBytes = maxBytes;
|
|
77
|
+
this.cache = new Map();
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
async list(provider) {
|
|
81
|
+
if (!provider.launchFlags.length) return { flags: [], error: null };
|
|
82
|
+
const resolved = this.registry.resolve(provider);
|
|
83
|
+
if (!resolved) return { flags: [], error: `${provider.tool} is not installed.` };
|
|
84
|
+
let mtime = null;
|
|
85
|
+
try { mtime = fs.statSync(resolved).mtimeMs; } catch { /* read it anyway */ }
|
|
86
|
+
const key = JSON.stringify([resolved, mtime, this.registry.versions?.get(provider.id)?.installed ?? null, provider.args, provider.launchFlags]);
|
|
87
|
+
const cached = this.cache.get(provider.id);
|
|
88
|
+
if (cached?.key === key && !cached.failed && !(provider.plugin && cached.done)) return cached.promise;
|
|
89
|
+
const entry = { key, failed: false, done: false };
|
|
90
|
+
entry.promise = this._help(provider, resolved).then(
|
|
91
|
+
({ text, clean }) => {
|
|
92
|
+
const flags = offeredFlags(text, provider.launchFlags);
|
|
93
|
+
const described = flags.some((f) => f.about);
|
|
94
|
+
if (!clean && !described) {
|
|
95
|
+
entry.failed = true;
|
|
96
|
+
const said = text.split(/\r?\n/).map((line) => line.trim()).find(Boolean);
|
|
97
|
+
return { flags: [], error: `Could not read ${provider.tool}'s help: ${said ?? 'it ended with an error'}` };
|
|
98
|
+
}
|
|
99
|
+
if (!flags.length) entry.failed = true;
|
|
100
|
+
return { flags: clean ? flags : flags.filter((f) => f.about), error: null };
|
|
101
|
+
},
|
|
102
|
+
(err) => {
|
|
103
|
+
entry.failed = true;
|
|
104
|
+
return { flags: [], error: `Could not read ${provider.tool}'s help: ${err.message}` };
|
|
105
|
+
},
|
|
106
|
+
).finally(() => { entry.done = true; });
|
|
107
|
+
this.cache.set(provider.id, entry);
|
|
108
|
+
return entry.promise;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
async _help(provider, resolved) {
|
|
112
|
+
const env = { ...this.registry.env, ...provider.env };
|
|
113
|
+
const spec = buildSpawnSpec(resolved, [...provider.args, '--help'], env, this.registry.platform);
|
|
114
|
+
try {
|
|
115
|
+
const out = await runSpec(spec, { env, timeoutMs: this.timeoutMs, killTree: true, maxBuffer: this.maxBytes });
|
|
116
|
+
return { text: `${out.stdout ?? ''}\n${out.stderr ?? ''}`, clean: true };
|
|
117
|
+
} catch (err) {
|
|
118
|
+
if (err.killed) throw new Error(`it took longer than ${this.timeoutMs / 1000} second${this.timeoutMs === 1000 ? '' : 's'}`);
|
|
119
|
+
if (err.code === 'ERR_CHILD_PROCESS_STDIO_MAXBUFFER') throw new Error(`it printed more than ${Math.round(this.maxBytes / 1024)} KB`);
|
|
120
|
+
if (typeof err.code !== 'number') throw err;
|
|
121
|
+
return { text: `${err.stdout ?? ''}\n${err.stderr ?? ''}`, clean: false };
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
@@ -20,6 +20,7 @@ import { RUNNER, encodePlan } from './uninstall.mjs';
|
|
|
20
20
|
import { paths } from './config.mjs';
|
|
21
21
|
import { MultiplexerRegistry } from './multiplexers.mjs';
|
|
22
22
|
import { reconcileHerdrPath } from './multiplexer-paths.mjs';
|
|
23
|
+
import { LaunchFlags, normalizeLaunchFlags } from './launch-flags.mjs';
|
|
23
24
|
|
|
24
25
|
const here = path.dirname(fileURLToPath(import.meta.url));
|
|
25
26
|
export const DEFAULTS_FILE = path.resolve(here, '../../config/providers.default.json');
|
|
@@ -176,6 +177,8 @@ function normalize(raw, platform, warnings) {
|
|
|
176
177
|
modelPattern: merged.modelPattern ? String(merged.modelPattern) : null,
|
|
177
178
|
args: Array.isArray(merged.args) ? merged.args.map(String) : [],
|
|
178
179
|
resumeArgs: Array.isArray(merged.resumeArgs) ? merged.resumeArgs.map(String) : [],
|
|
180
|
+
launchFlags: normalizeLaunchFlags(merged.launchFlags, merged.id, warnings, merged.launchFlagExamples ?? null),
|
|
181
|
+
launchFlagsEquals: merged.launchFlagsEquals === true,
|
|
179
182
|
env: normalizeEnv(merged.env),
|
|
180
183
|
homeVar,
|
|
181
184
|
accountEnv: normalizeEnv(merged.accountEnv),
|
|
@@ -303,6 +306,7 @@ export class ProviderRegistry extends EventEmitter {
|
|
|
303
306
|
this._installs = new Map();
|
|
304
307
|
this._shells = new Map();
|
|
305
308
|
this.versions = new Map();
|
|
309
|
+
this.flags = new LaunchFlags(this);
|
|
306
310
|
this._refreshing = null;
|
|
307
311
|
this._npmRegistry = null;
|
|
308
312
|
this.reportingEnabled = null;
|
|
@@ -824,6 +828,8 @@ export class ProviderRegistry extends EventEmitter {
|
|
|
824
828
|
package: provider.package,
|
|
825
829
|
args: provider.args,
|
|
826
830
|
resumable: provider.resumeArgs.length > 0,
|
|
831
|
+
launchFlags: provider.launchFlags.map(({ flag, risky }) => ({ flag, risky })),
|
|
832
|
+
launchFlagsEquals: provider.launchFlagsEquals,
|
|
827
833
|
installable: provider.plugin ? Boolean(commandPath && !resolvedPath && !pluginError && !pluginPending && provider.install) : Boolean(provider.package && this.resolveNpm()),
|
|
828
834
|
installCommand: provider.plugin && provider.install ? provider.install : null,
|
|
829
835
|
pluginError,
|
|
@@ -873,6 +879,10 @@ export class ProviderRegistry extends EventEmitter {
|
|
|
873
879
|
return this.providers.map((p) => this.describe(p));
|
|
874
880
|
}
|
|
875
881
|
|
|
882
|
+
launchFlags(provider) {
|
|
883
|
+
return this.flags.list(provider);
|
|
884
|
+
}
|
|
885
|
+
|
|
876
886
|
/**
|
|
877
887
|
* Spawn spec for node-pty, or throws with a user-facing message. `hookArgs` are the reporting hooks the
|
|
878
888
|
* manager adds; they follow the provider's own args, so a tool run as a subcommand (`docker agent run`)
|
package/src/manager/server.mjs
CHANGED
|
@@ -441,6 +441,12 @@ export function createManagerServer({
|
|
|
441
441
|
if (historyMatch[2]) return sendJson(res, 200, { detail: await history.detail(provider, account, url.searchParams.get('id'), url.searchParams.get('cursor')) });
|
|
442
442
|
return sendJson(res, 200, { history: await history.list(provider, account, { limit: url.searchParams.get('limit'), cwd: url.searchParams.get('cwd'), query: url.searchParams.get('q') }) });
|
|
443
443
|
}
|
|
444
|
+
const flagsMatch = route.match(/^\/providers\/([a-z0-9][a-z0-9_-]{0,31})\/flags$/);
|
|
445
|
+
if (flagsMatch && method === 'GET') {
|
|
446
|
+
const provider = registry.get(flagsMatch[1]);
|
|
447
|
+
if (!provider) throw new HttpError(404, `unknown provider "${flagsMatch[1]}"`, 'unknown_provider');
|
|
448
|
+
return sendJson(res, 200, await registry.launchFlags(provider));
|
|
449
|
+
}
|
|
444
450
|
const memoryMatch = memory && route.match(/^\/providers\/([a-z0-9][a-z0-9_-]{0,31})\/memory(\/file)?$/);
|
|
445
451
|
if (memoryMatch && method === 'GET') {
|
|
446
452
|
const provider = registry.get(memoryMatch[1]);
|
package/web/app.js
CHANGED
|
@@ -18,6 +18,7 @@ const TOKEN_KEY = 'agentGuild.token';
|
|
|
18
18
|
const CWD_KEY = 'agentGuild.cwd';
|
|
19
19
|
const ACCOUNTS_KEY = 'agentGuild.accounts';
|
|
20
20
|
const SHELLS_KEY = 'agentGuild.shells';
|
|
21
|
+
const FLAGS_KEY = 'agentGuild.flags';
|
|
21
22
|
const THEME_KEY = 'agentGuild.theme';
|
|
22
23
|
const SKIN_KEY = 'agentGuild.skin';
|
|
23
24
|
const NEWS_SEEN_KEY = 'agentGuild.newsSeen';
|
|
@@ -65,6 +66,7 @@ const state = {
|
|
|
65
66
|
usage: new Map(),
|
|
66
67
|
accounts: {},
|
|
67
68
|
shellPicks: {},
|
|
69
|
+
flagPicks: {},
|
|
68
70
|
stats: null,
|
|
69
71
|
statsFor: new Map(),
|
|
70
72
|
news: null,
|
|
@@ -1668,6 +1670,267 @@ function renderShells(card, provider) {
|
|
|
1668
1670
|
});
|
|
1669
1671
|
}
|
|
1670
1672
|
|
|
1673
|
+
const flagLists = new Map();
|
|
1674
|
+
const flagsView = { providerId: null };
|
|
1675
|
+
let flagsOpener = null;
|
|
1676
|
+
|
|
1677
|
+
function flagPicks(provider) {
|
|
1678
|
+
return state.flagPicks[provider.id] ?? {};
|
|
1679
|
+
}
|
|
1680
|
+
|
|
1681
|
+
function refreshFlagCards(provider) {
|
|
1682
|
+
for (const card of document.querySelectorAll('.provider[data-id]')) {
|
|
1683
|
+
if (card.dataset.id === provider.id) renderLaunchFlags(card, provider);
|
|
1684
|
+
}
|
|
1685
|
+
}
|
|
1686
|
+
|
|
1687
|
+
function setFlagPicks(provider, picks, { fromDialog = false } = {}) {
|
|
1688
|
+
if (Object.keys(picks).length) state.flagPicks[provider.id] = picks;
|
|
1689
|
+
else delete state.flagPicks[provider.id];
|
|
1690
|
+
save(FLAGS_KEY, JSON.stringify(state.flagPicks));
|
|
1691
|
+
refreshFlagCards(provider);
|
|
1692
|
+
if (flagsView.providerId !== provider.id) return;
|
|
1693
|
+
if (fromDialog) renderFlagsCommand(provider);
|
|
1694
|
+
else renderFlagsDialog();
|
|
1695
|
+
}
|
|
1696
|
+
|
|
1697
|
+
function setFlagPick(provider, flag, value, options) {
|
|
1698
|
+
const picks = { ...flagPicks(provider) };
|
|
1699
|
+
if (value === null) delete picks[flag];
|
|
1700
|
+
else picks[flag] = value;
|
|
1701
|
+
setFlagPicks(provider, picks, options);
|
|
1702
|
+
}
|
|
1703
|
+
|
|
1704
|
+
async function loadFlags(provider) {
|
|
1705
|
+
const pending = api('GET', `/providers/${provider.id}/flags`).catch((err) => {
|
|
1706
|
+
if (err instanceof AuthError) throw err;
|
|
1707
|
+
return { flags: [], error: `Could not read ${provider.tool}'s flags: ${err.message}` };
|
|
1708
|
+
});
|
|
1709
|
+
flagLists.set(provider.id, { ...flagLists.get(provider.id), pending });
|
|
1710
|
+
const result = await pending;
|
|
1711
|
+
if (flagLists.get(provider.id)?.pending !== pending) return result;
|
|
1712
|
+
flagLists.set(provider.id, { flags: result.flags, error: result.error ?? null });
|
|
1713
|
+
refreshFlagCards(provider);
|
|
1714
|
+
if (flagsView.providerId === provider.id) renderFlagsDialog();
|
|
1715
|
+
return result;
|
|
1716
|
+
}
|
|
1717
|
+
|
|
1718
|
+
function flagText(flag, value) {
|
|
1719
|
+
return value ? `${flag} ${value}` : flag;
|
|
1720
|
+
}
|
|
1721
|
+
|
|
1722
|
+
function riskyFlag(provider, flag) {
|
|
1723
|
+
return Boolean(provider.launchFlags?.find?.((f) => f.flag === flag)?.risky);
|
|
1724
|
+
}
|
|
1725
|
+
|
|
1726
|
+
function offersFlag(provider, flag) {
|
|
1727
|
+
return Boolean(provider.launchFlags?.some?.((f) => f.flag === flag));
|
|
1728
|
+
}
|
|
1729
|
+
|
|
1730
|
+
function currentFlags(provider, list) {
|
|
1731
|
+
return (list?.flags ?? []).filter((f) => offersFlag(provider, f.flag));
|
|
1732
|
+
}
|
|
1733
|
+
|
|
1734
|
+
function unavailableReason(provider, flag, list) {
|
|
1735
|
+
if (!offersFlag(provider, flag)) return `Agent Guild no longer offers ${flag} for ${provider.tool}.`;
|
|
1736
|
+
if (!list?.flags) return null;
|
|
1737
|
+
if (list.error) return list.error;
|
|
1738
|
+
return list.flags.some((f) => f.flag === flag) ? null : `${provider.tool}'s help no longer lists ${flag}.`;
|
|
1739
|
+
}
|
|
1740
|
+
|
|
1741
|
+
function unavailableReasons(provider, flags, list) {
|
|
1742
|
+
const unavailable = flags.filter((flag) => unavailableReason(provider, flag, list));
|
|
1743
|
+
return { count: unavailable.length, text: [...new Set(unavailable.map((flag) => unavailableReason(provider, flag, list)))].join(' ') };
|
|
1744
|
+
}
|
|
1745
|
+
|
|
1746
|
+
function flagProblem(provider, flag, value) {
|
|
1747
|
+
if (flag.value === 'required' && !value) return `${flag.flag} needs a value.`;
|
|
1748
|
+
if (!value || flag.value === 'none' || provider.launchFlagsEquals) return null;
|
|
1749
|
+
if (flag.value === 'optional') return `Agent Guild cannot pass a value to ${flag.flag}: it has not confirmed that ${provider.tool} reads ${flag.flag}=value.`;
|
|
1750
|
+
if (value.startsWith('-')) return `Agent Guild cannot pass a value starting with "-" to ${flag.flag}: ${provider.tool} could read it as another flag.`;
|
|
1751
|
+
return null;
|
|
1752
|
+
}
|
|
1753
|
+
|
|
1754
|
+
function flagArgs(provider, flag, value) {
|
|
1755
|
+
if (flag.value === 'none') return [flag.flag];
|
|
1756
|
+
if (flag.value === 'required' && !value.startsWith('-')) return [flag.flag, value];
|
|
1757
|
+
return value ? [`${flag.flag}=${value}`] : [flag.flag];
|
|
1758
|
+
}
|
|
1759
|
+
|
|
1760
|
+
async function launchArgs(provider) {
|
|
1761
|
+
const picks = flagPicks(provider);
|
|
1762
|
+
const picked = Object.keys(picks);
|
|
1763
|
+
if (!picked.length) return [];
|
|
1764
|
+
const list = picked.some((flag) => offersFlag(provider, flag)) ? await loadFlags(provider) : { flags: [], error: null };
|
|
1765
|
+
const unavailable = unavailableReasons(provider, picked, list);
|
|
1766
|
+
if (unavailable.count) {
|
|
1767
|
+
const many = unavailable.count > 1;
|
|
1768
|
+
throw new Error(`${unavailable.text} The session was not started; remove ${many ? 'those flags' : 'that flag'} under Flags to start without ${many ? 'them' : 'it'}.`);
|
|
1769
|
+
}
|
|
1770
|
+
const flags = currentFlags(provider, list);
|
|
1771
|
+
const problems = flags.filter((f) => f.flag in picks).map((f) => flagProblem(provider, f, picks[f.flag])).filter(Boolean);
|
|
1772
|
+
if (problems.length) throw new Error(`${problems.join(' ')} Change it under Flags, or remove the flag.`);
|
|
1773
|
+
return flags.filter((f) => f.flag in picks).flatMap((f) => flagArgs(provider, f, picks[f.flag]));
|
|
1774
|
+
}
|
|
1775
|
+
|
|
1776
|
+
function renderLaunchFlags(card, provider) {
|
|
1777
|
+
const line = card.querySelector('.launch-flags');
|
|
1778
|
+
const order = (flag) => {
|
|
1779
|
+
const at = provider.launchFlags?.findIndex?.((f) => f.flag === flag) ?? -1;
|
|
1780
|
+
return at < 0 ? Infinity : at;
|
|
1781
|
+
};
|
|
1782
|
+
const picks = Object.entries(flagPicks(provider)).sort(([a], [b]) => order(a) - order(b));
|
|
1783
|
+
line.hidden = !picks.length && (!provider.available || !provider.launchFlags?.length);
|
|
1784
|
+
if (line.hidden) return;
|
|
1785
|
+
const list = flagLists.get(provider.id);
|
|
1786
|
+
if (!list && picks.some(([flag]) => offersFlag(provider, flag))) loadFlags(provider).catch(() => {});
|
|
1787
|
+
const unavailable = unavailableReasons(provider, picks.map(([flag]) => flag), list);
|
|
1788
|
+
const missing = unavailable.count > 0;
|
|
1789
|
+
const summary = picks.map(([flag, value]) => flagText(flag, value)).join(' · ');
|
|
1790
|
+
line.querySelector('.launch-flags-label').textContent = picks.length ? `Flags · ${picks.length}` : 'Add launch flags';
|
|
1791
|
+
line.querySelector('.launch-flags-summary').textContent = summary;
|
|
1792
|
+
line.classList.toggle('picked', picks.length > 0);
|
|
1793
|
+
const risky = picks.some(([flag]) => riskyFlag(provider, flag));
|
|
1794
|
+
line.classList.toggle('risky', risky);
|
|
1795
|
+
line.classList.toggle('missing', missing);
|
|
1796
|
+
line.title = missing
|
|
1797
|
+
? `${unavailable.text} Sessions do not start until ${unavailable.count > 1 ? 'they are' : 'it is'} removed.`
|
|
1798
|
+
: summary ? `New, Resume and Existing… start ${provider.tool} with ${summary}` : `Pick flags for new and resumed ${provider.tool} sessions`;
|
|
1799
|
+
line.setAttribute('aria-label', `${provider.tool} launch flags: ${missing ? 'a picked flag is unavailable, ' : ''}${summary || 'none'}${risky ? ', one skips approvals' : ''}`);
|
|
1800
|
+
}
|
|
1801
|
+
|
|
1802
|
+
function showFlags(provider, opener = null) {
|
|
1803
|
+
flagsView.providerId = provider.id;
|
|
1804
|
+
$('flags-list').replaceChildren();
|
|
1805
|
+
renderFlagsDialog();
|
|
1806
|
+
if (!$('flags').open) {
|
|
1807
|
+
flagsOpener = opener ?? document.activeElement?.closest?.('.launch-flags') ?? null;
|
|
1808
|
+
$('flags').showModal();
|
|
1809
|
+
}
|
|
1810
|
+
if (provider.launchFlags?.length) loadFlags(provider).catch((err) => { if (err instanceof AuthError) showAuth(err.message); });
|
|
1811
|
+
}
|
|
1812
|
+
|
|
1813
|
+
function closeFlags() {
|
|
1814
|
+
if ($('flags').open) $('flags').close();
|
|
1815
|
+
}
|
|
1816
|
+
|
|
1817
|
+
function flagRow(provider, flag) {
|
|
1818
|
+
const picks = flagPicks(provider);
|
|
1819
|
+
const id = `flag-${flag.flag.replace(/^-+/, '')}`;
|
|
1820
|
+
const check = el('input');
|
|
1821
|
+
Object.assign(check, { type: 'checkbox', id, checked: flag.flag in picks });
|
|
1822
|
+
const name = el('code', 'flag-name', flag.flag);
|
|
1823
|
+
name.id = `${id}-name`;
|
|
1824
|
+
const risk = flag.risky ? el('span', 'visually-hidden', 'skips approvals') : null;
|
|
1825
|
+
if (risk) risk.id = `${id}-risk`;
|
|
1826
|
+
check.setAttribute('aria-labelledby', [name.id, risk?.id].filter(Boolean).join(' '));
|
|
1827
|
+
const about = el('span', 'flag-about', flag.about);
|
|
1828
|
+
about.id = `${id}-about`;
|
|
1829
|
+
check.setAttribute('aria-describedby', about.id);
|
|
1830
|
+
const example = flag.example ? el('span', 'flag-example', 'Example: ', el('code', null, flag.example)) : null;
|
|
1831
|
+
if (example) {
|
|
1832
|
+
example.id = `${id}-example`;
|
|
1833
|
+
check.setAttribute('aria-describedby', `${about.id} ${example.id}`);
|
|
1834
|
+
}
|
|
1835
|
+
const toggle = el('label', 'flag-toggle', check, el('span', 'flag-text', el('span', null, name, risk), about, example));
|
|
1836
|
+
toggle.htmlFor = id;
|
|
1837
|
+
const info = el('button', 'info');
|
|
1838
|
+
info.type = 'button';
|
|
1839
|
+
info.dataset.flag = flag.flag;
|
|
1840
|
+
info.setAttribute('aria-label', `About ${flag.flag}`);
|
|
1841
|
+
const row = el('li', 'flag-row', toggle, info);
|
|
1842
|
+
row.dataset.flag = flag.flag;
|
|
1843
|
+
row.classList.toggle('risky', Boolean(flag.risky));
|
|
1844
|
+
let input = null;
|
|
1845
|
+
if (flag.value !== 'none') {
|
|
1846
|
+
input = el('input', 'flag-value');
|
|
1847
|
+
const hint = flag.example || flag.placeholder || 'Value';
|
|
1848
|
+
Object.assign(input, {
|
|
1849
|
+
type: 'text', value: picks[flag.flag] ?? '', autocomplete: 'off', spellcheck: false, enterKeyHint: 'done',
|
|
1850
|
+
placeholder: flag.value === 'required' ? hint : `${hint} (optional)`,
|
|
1851
|
+
});
|
|
1852
|
+
input.setAttribute('autocapitalize', 'off');
|
|
1853
|
+
input.setAttribute('autocorrect', 'off');
|
|
1854
|
+
input.setAttribute('aria-label', `${flag.flag} value`);
|
|
1855
|
+
input.addEventListener('keydown', (event) => { if (event.key === 'Enter') input.blur(); });
|
|
1856
|
+
row.append(input);
|
|
1857
|
+
}
|
|
1858
|
+
const problem = el('p', 'flag-problem');
|
|
1859
|
+
problem.id = `${id}-problem`;
|
|
1860
|
+
if (input) {
|
|
1861
|
+
input.setAttribute('aria-describedby', problem.id);
|
|
1862
|
+
row.append(problem);
|
|
1863
|
+
}
|
|
1864
|
+
const paint = () => {
|
|
1865
|
+
row.classList.toggle('checked', check.checked);
|
|
1866
|
+
if (!input) return;
|
|
1867
|
+
input.hidden = !check.checked;
|
|
1868
|
+
const value = input.value.trim();
|
|
1869
|
+
const shown = check.checked && value ? flagProblem(provider, flag, value) : null;
|
|
1870
|
+
input.setAttribute('aria-invalid', String(check.checked && Boolean(flagProblem(provider, flag, value))));
|
|
1871
|
+
problem.textContent = shown ?? '';
|
|
1872
|
+
problem.hidden = !shown;
|
|
1873
|
+
};
|
|
1874
|
+
input?.addEventListener('input', () => {
|
|
1875
|
+
setFlagPick(provider, flag.flag, input.value.trim(), { fromDialog: true });
|
|
1876
|
+
paint();
|
|
1877
|
+
});
|
|
1878
|
+
check.addEventListener('change', () => {
|
|
1879
|
+
setFlagPick(provider, flag.flag, check.checked ? input?.value.trim() ?? '' : null, { fromDialog: true });
|
|
1880
|
+
paint();
|
|
1881
|
+
if (check.checked) input?.focus();
|
|
1882
|
+
});
|
|
1883
|
+
paint();
|
|
1884
|
+
return row;
|
|
1885
|
+
}
|
|
1886
|
+
|
|
1887
|
+
function shellWord(word) {
|
|
1888
|
+
return /^[\w@%+=:,./-]+$/.test(word) ? word : `'${word.replaceAll("'", "'\\''")}'`;
|
|
1889
|
+
}
|
|
1890
|
+
|
|
1891
|
+
function renderFlagsCommand(provider) {
|
|
1892
|
+
const list = flagLists.get(provider.id);
|
|
1893
|
+
const picks = flagPicks(provider);
|
|
1894
|
+
const command = String(provider.command || '').split(/[\\/]/).pop();
|
|
1895
|
+
const words = [command, ...(provider.args ?? [])].map(shellWord);
|
|
1896
|
+
for (const flag of currentFlags(provider, list)) {
|
|
1897
|
+
if (!(flag.flag in picks)) continue;
|
|
1898
|
+
const value = picks[flag.flag];
|
|
1899
|
+
words.push(...(flagProblem(provider, flag, value) ? [flag.flag, `<${flag.placeholder.replace(/^<|>$/g, '') || 'value'}>`] : flagArgs(provider, flag, value).map(shellWord)));
|
|
1900
|
+
}
|
|
1901
|
+
$('flags-command').replaceChildren(...words.flatMap((word, i) => [i ? ' ' : '', el('span', null, word)]));
|
|
1902
|
+
$('flags-command').hidden = !provider.launchFlags?.length;
|
|
1903
|
+
$('flags-clear').disabled = !Object.keys(picks).length;
|
|
1904
|
+
}
|
|
1905
|
+
|
|
1906
|
+
function renderFlagsDialog() {
|
|
1907
|
+
const provider = state.providers.find((p) => p.id === flagsView.providerId);
|
|
1908
|
+
if (!provider) return closeFlags();
|
|
1909
|
+
paintProviderIcon($('flags-icon'), provider);
|
|
1910
|
+
$('flags-title').textContent = `${provider.tool} launch flags`;
|
|
1911
|
+
$('flags-sub').textContent = provider.launchFlags?.length
|
|
1912
|
+
? `New, Resume and Existing… use these. Descriptions come from ${provider.tool}'s own help.`
|
|
1913
|
+
: `Remove the flags saved for ${provider.tool}; it offers none now.`;
|
|
1914
|
+
const list = flagLists.get(provider.id);
|
|
1915
|
+
const picks = flagPicks(provider);
|
|
1916
|
+
const offered = currentFlags(provider, list);
|
|
1917
|
+
const rows = offered.map((flag) => flagRow(provider, flag));
|
|
1918
|
+
for (const flag of Object.keys(picks)) {
|
|
1919
|
+
const reason = unavailableReason(provider, flag, list);
|
|
1920
|
+
if (!reason) continue;
|
|
1921
|
+
const row = el('li', 'flag-row missing',
|
|
1922
|
+
el('span', 'flag-text', el('code', 'flag-name', flagText(flag, picks[flag])), el('span', 'flag-about', `${reason} Sessions do not start while it is picked.`)),
|
|
1923
|
+
button('Remove', () => setFlagPick(provider, flag, null)));
|
|
1924
|
+
row.dataset.flag = flag;
|
|
1925
|
+
rows.push(row);
|
|
1926
|
+
}
|
|
1927
|
+
$('flags-list').replaceChildren(...rows);
|
|
1928
|
+
$('flags-status').textContent = !provider.launchFlags?.length ? `Agent Guild offers no flags for ${provider.tool}.`
|
|
1929
|
+
: !list || (!list.flags && list.pending) ? `Reading ${provider.tool}'s help…`
|
|
1930
|
+
: list.error ?? (offered.length ? '' : `${provider.tool}'s help lists none of the flags Agent Guild offers.`);
|
|
1931
|
+
renderFlagsCommand(provider);
|
|
1932
|
+
}
|
|
1933
|
+
|
|
1671
1934
|
function usageFor(provider, account = selectedAccount(provider)) {
|
|
1672
1935
|
return state.usage.get(`${provider.id}/${account.id}`);
|
|
1673
1936
|
}
|
|
@@ -2016,6 +2279,7 @@ function buildProvider(provider) {
|
|
|
2016
2279
|
? `Resume one of ${provider.tool}'s own earlier sessions`
|
|
2017
2280
|
: `Resume one of ${provider.tool}'s own sessions by its id`;
|
|
2018
2281
|
existing.addEventListener('click', (event) => showHistory(provider, false, event.currentTarget));
|
|
2282
|
+
node.querySelector('.launch-flags').addEventListener('click', (event) => showFlags(provider, event.currentTarget));
|
|
2019
2283
|
const memory = node.querySelector('.memory-link');
|
|
2020
2284
|
memory.hidden = !provider.available || (!provider.memorySource && !provider.historyDetails);
|
|
2021
2285
|
const historyLink = !provider.memorySource && provider.historyDetails;
|
|
@@ -2055,6 +2319,7 @@ function buildProvider(provider) {
|
|
|
2055
2319
|
renderVendorLinks(node, provider);
|
|
2056
2320
|
renderAccounts(node, provider);
|
|
2057
2321
|
renderShells(node, provider);
|
|
2322
|
+
renderLaunchFlags(node, provider);
|
|
2058
2323
|
state.environmentUI?.renderCard(node, provider);
|
|
2059
2324
|
renderMultiplexers(node, provider);
|
|
2060
2325
|
renderUsage(node, provider);
|
|
@@ -2566,13 +2831,14 @@ let tipFor = null;
|
|
|
2566
2831
|
let quietFocus = false;
|
|
2567
2832
|
|
|
2568
2833
|
function showTip(button) {
|
|
2569
|
-
const
|
|
2570
|
-
|
|
2834
|
+
const flag = button.dataset.flag && flagLists.get(flagsView.providerId)?.flags?.find((f) => f.flag === button.dataset.flag);
|
|
2835
|
+
const stat = !flag && state.stats?.stats.find((s) => s.id === button.dataset.stat);
|
|
2836
|
+
if (!flag && !stat) return;
|
|
2571
2837
|
const tip = $('tip');
|
|
2572
|
-
$('tip-title').textContent = stat.label;
|
|
2573
|
-
$('tip-source').textContent = stat.group;
|
|
2574
|
-
$('tip-text').textContent = stat.about;
|
|
2575
|
-
const host =
|
|
2838
|
+
$('tip-title').textContent = flag ? flag.flag : stat.label;
|
|
2839
|
+
$('tip-source').textContent = flag ? state.providers.find((p) => p.id === flagsView.providerId)?.tool ?? '' : stat.group;
|
|
2840
|
+
$('tip-text').textContent = flag ? flag.about : stat.about;
|
|
2841
|
+
const host = button.closest('dialog') ?? document.body;
|
|
2576
2842
|
if (tip.parentElement !== host) host.append(tip);
|
|
2577
2843
|
tip.hidden = false;
|
|
2578
2844
|
const box = button.getBoundingClientRect();
|
|
@@ -3646,7 +3912,8 @@ async function startSession(provider, card, { resume, cwd, account = selectedAcc
|
|
|
3646
3912
|
pendingSessionActions.add(key);
|
|
3647
3913
|
refreshPendingActions();
|
|
3648
3914
|
try {
|
|
3649
|
-
const
|
|
3915
|
+
const args = await launchArgs(provider);
|
|
3916
|
+
const body = { providerId: provider.id, account, shell: pickedShell(provider)?.id, cwd: cwd || working || undefined, cols: 120, rows: 32, resume, ...(args.length && { args }) };
|
|
3650
3917
|
let session;
|
|
3651
3918
|
try {
|
|
3652
3919
|
({ session } = await api('POST', '/sessions', body));
|
|
@@ -7073,6 +7340,7 @@ function closeDialogs() {
|
|
|
7073
7340
|
closeHistory();
|
|
7074
7341
|
closeGitHub();
|
|
7075
7342
|
closeAccounts();
|
|
7343
|
+
closeFlags();
|
|
7076
7344
|
closeMemory();
|
|
7077
7345
|
if ($('folder-browser').open) $('folder-browser').close();
|
|
7078
7346
|
state.environmentUI?.close();
|
|
@@ -7491,6 +7759,22 @@ $('history-filter').addEventListener('input', historyFiltersChanged);
|
|
|
7491
7759
|
$('history-preview-refresh').addEventListener('click', () => historyPreview.refresh());
|
|
7492
7760
|
$('history-preview-more').addEventListener('click', () => historyPreview.more());
|
|
7493
7761
|
$('accounts-close').addEventListener('click', closeAccounts);
|
|
7762
|
+
$('flags-close').addEventListener('click', closeFlags);
|
|
7763
|
+
$('flags-done').addEventListener('click', closeFlags);
|
|
7764
|
+
$('flags-clear').addEventListener('click', () => {
|
|
7765
|
+
const provider = state.providers.find((p) => p.id === flagsView.providerId);
|
|
7766
|
+
if (provider) setFlagPicks(provider, {});
|
|
7767
|
+
});
|
|
7768
|
+
$('flags').addEventListener('click', (e) => { if (e.target === $('flags')) closeFlags(); });
|
|
7769
|
+
$('flags').addEventListener('close', () => {
|
|
7770
|
+
if ($('flags').open) return;
|
|
7771
|
+
hideTip();
|
|
7772
|
+
const card = $('providers').querySelector(`.provider[data-id="${flagsView.providerId}"]`);
|
|
7773
|
+
const opener = [flagsOpener, card?.querySelector('.launch-flags'), card?.querySelector('.new')].find((node) => node?.isConnected && !node.hidden);
|
|
7774
|
+
flagsView.providerId = null;
|
|
7775
|
+
opener?.focus();
|
|
7776
|
+
flagsOpener = null;
|
|
7777
|
+
});
|
|
7494
7778
|
$('accounts').addEventListener('click', (e) => { if (e.target === $('accounts')) closeAccounts(); });
|
|
7495
7779
|
$('accounts-add').addEventListener('submit', (event) => {
|
|
7496
7780
|
event.preventDefault();
|
|
@@ -7925,12 +8209,19 @@ $('folder-new-name').addEventListener('keydown', newFolderKeys);
|
|
|
7925
8209
|
$('cwd-open').addEventListener('click', firstClick(openWorkingFolder));
|
|
7926
8210
|
try { state.accounts = JSON.parse(load(ACCOUNTS_KEY)) || {}; } catch { state.accounts = {}; }
|
|
7927
8211
|
try { state.shellPicks = JSON.parse(load(SHELLS_KEY)) || {}; } catch { state.shellPicks = {}; }
|
|
8212
|
+
try { state.flagPicks = JSON.parse(load(FLAGS_KEY)) || {}; } catch { state.flagPicks = {}; }
|
|
7928
8213
|
githubView.accountId = Number(load(GITHUB_ACCOUNT_KEY)) || null;
|
|
7929
8214
|
try { githubPick.recent = JSON.parse(load(GITHUB_RECENT_KEY)) || []; } catch { githubPick.recent = []; }
|
|
7930
8215
|
if (!Array.isArray(githubPick.recent)) githubPick.recent = [];
|
|
7931
8216
|
if (GITHUB_VIEWS.includes(load(GITHUB_VIEW_KEY))) githubPick.view = load(GITHUB_VIEW_KEY);
|
|
7932
8217
|
if (typeof state.accounts !== 'object' || Array.isArray(state.accounts)) state.accounts = {};
|
|
7933
8218
|
if (typeof state.shellPicks !== 'object' || Array.isArray(state.shellPicks)) state.shellPicks = {};
|
|
8219
|
+
if (typeof state.flagPicks !== 'object' || Array.isArray(state.flagPicks)) state.flagPicks = {};
|
|
8220
|
+
for (const [id, picks] of Object.entries(state.flagPicks)) {
|
|
8221
|
+
const kept = picks && typeof picks === 'object' ? Object.entries(picks).filter(([flag, value]) => /^--?[A-Za-z0-9][\w-]*$/.test(flag) && typeof value === 'string') : [];
|
|
8222
|
+
if (kept.length) state.flagPicks[id] = Object.fromEntries(kept);
|
|
8223
|
+
else delete state.flagPicks[id];
|
|
8224
|
+
}
|
|
7934
8225
|
setInterval(renderSessions, 30000);
|
|
7935
8226
|
setInterval(tickNews, 30000);
|
|
7936
8227
|
setInterval(() => { if (dockShows('github') && state.github) renderGitHub(); }, 30000);
|
|
@@ -8004,6 +8295,7 @@ yardUi = initYard({
|
|
|
8004
8295
|
const contentSignature = JSON.stringify([
|
|
8005
8296
|
state.accounts[provider.id],
|
|
8006
8297
|
state.shellPicks[provider.id],
|
|
8298
|
+
state.flagPicks[provider.id],
|
|
8007
8299
|
usageFor(provider),
|
|
8008
8300
|
state.stats?.providers?.[provider.id],
|
|
8009
8301
|
state.stats?.retrievedAt,
|
|
@@ -8011,6 +8303,7 @@ yardUi = initYard({
|
|
|
8011
8303
|
if (node.dataset.contentSignature !== contentSignature) {
|
|
8012
8304
|
renderAccounts(node, provider);
|
|
8013
8305
|
renderShells(node, provider);
|
|
8306
|
+
renderLaunchFlags(node, provider);
|
|
8014
8307
|
renderUsage(node, provider);
|
|
8015
8308
|
renderReportingSetup(node, provider);
|
|
8016
8309
|
renderModelStats(node, provider);
|
package/web/index.html
CHANGED
|
@@ -641,6 +641,28 @@
|
|
|
641
641
|
</form>
|
|
642
642
|
</dialog>
|
|
643
643
|
|
|
644
|
+
<dialog id="flags" class="models flags-dialog" aria-labelledby="flags-title">
|
|
645
|
+
<div class="models-bar">
|
|
646
|
+
<span id="flags-icon" class="provider-icon small"></span>
|
|
647
|
+
<div class="models-heading">
|
|
648
|
+
<h2 id="flags-title"></h2>
|
|
649
|
+
<p id="flags-sub" class="sub"></p>
|
|
650
|
+
</div>
|
|
651
|
+
<button id="flags-close" class="btn" type="button">Close</button>
|
|
652
|
+
</div>
|
|
653
|
+
<div class="models-body">
|
|
654
|
+
<ul id="flags-list" class="flags-list" aria-label="Flags"></ul>
|
|
655
|
+
<p id="flags-status" class="models-note" aria-live="polite"></p>
|
|
656
|
+
</div>
|
|
657
|
+
<div class="flags-footer">
|
|
658
|
+
<code id="flags-command" class="flags-command"></code>
|
|
659
|
+
<div class="flags-actions">
|
|
660
|
+
<button id="flags-clear" class="btn" type="button">Clear all</button>
|
|
661
|
+
<button id="flags-done" class="btn primary" type="button">Done</button>
|
|
662
|
+
</div>
|
|
663
|
+
</div>
|
|
664
|
+
</dialog>
|
|
665
|
+
|
|
644
666
|
<dialog id="folder-browser" class="models folder-browser" aria-labelledby="folder-title">
|
|
645
667
|
<div class="models-bar">
|
|
646
668
|
<div class="models-heading">
|
|
@@ -697,6 +719,7 @@
|
|
|
697
719
|
</div>
|
|
698
720
|
<div class="accounts" role="tablist" aria-label="Accounts" hidden></div>
|
|
699
721
|
<div class="shells" role="tablist" aria-label="Shells" hidden></div>
|
|
722
|
+
<button class="launch-flags" type="button" aria-haspopup="dialog" hidden><span class="launch-flags-label"></span><span class="launch-flags-summary"></span></button>
|
|
700
723
|
<div class="environment-summary" hidden>
|
|
701
724
|
<button class="environment-open" type="button" aria-haspopup="dialog">Environment details</button>
|
|
702
725
|
<dl class="environment-values"></dl>
|
package/web/styles.css
CHANGED
|
@@ -166,6 +166,21 @@ main { max-width: calc(1200px + var(--dock-space, 0px)); margin: 0 auto; padding
|
|
|
166
166
|
.account-chip:focus-visible { outline: 2px solid var(--focus); outline-offset: 1px; }
|
|
167
167
|
.account-chip[aria-selected="true"] { background: var(--accent-fill); border-color: var(--accent-fill); color: var(--accent-text); }
|
|
168
168
|
.account-chip.unsigned { border-style: dashed; }
|
|
169
|
+
.launch-flags {
|
|
170
|
+
display: flex; align-items: center; gap: 8px; width: 100%; min-width: 0; padding: 4px 10px; cursor: pointer; text-align: left;
|
|
171
|
+
border: 1px dashed var(--border); border-radius: var(--radius); background: none; color: var(--muted); font: inherit; font-size: 0.75rem;
|
|
172
|
+
}
|
|
173
|
+
.launch-flags[hidden] { display: none; }
|
|
174
|
+
.launch-flags:hover { border-color: var(--muted); }
|
|
175
|
+
.launch-flags:focus-visible { outline: 2px solid var(--focus); outline-offset: 1px; }
|
|
176
|
+
.launch-flags-label { flex: none; font-weight: 600; }
|
|
177
|
+
.launch-flags-summary { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: var(--font-mono); font-size: 0.72rem; }
|
|
178
|
+
.launch-flags:not(.picked) .launch-flags-summary { display: none; }
|
|
179
|
+
.launch-flags.picked { border-style: solid; background: var(--surface-2); color: var(--text); }
|
|
180
|
+
.launch-flags.risky { border-color: var(--warn); }
|
|
181
|
+
.launch-flags.risky .launch-flags-label::before { content: "⚠ " / ""; color: var(--warn); }
|
|
182
|
+
.launch-flags.missing { border-color: var(--danger); }
|
|
183
|
+
.launch-flags.missing .launch-flags-label { color: var(--danger); }
|
|
169
184
|
.provider .usage { display: grid; gap: 4px; }
|
|
170
185
|
.provider .usage:empty { display: none; }
|
|
171
186
|
/* Spent portrait: the art stills and a danger wash sits inside the frame. The card stays usable. */
|
|
@@ -258,7 +273,7 @@ main { max-width: calc(1200px + var(--dock-space, 0px)); margin: 0 auto; padding
|
|
|
258
273
|
.tip strong { font-weight: 600; }
|
|
259
274
|
.tip span { margin-left: 6px; font-size: 0.72rem; opacity: 0.75; }
|
|
260
275
|
.tip span::before { content: "· "; }
|
|
261
|
-
.tip p { margin: 4px 0 0; }
|
|
276
|
+
.tip p { margin: 4px 0 0; white-space: pre-line; }
|
|
262
277
|
.stat-bar { height: 6px; border-radius: 3px; background: var(--surface-2); overflow: hidden; }
|
|
263
278
|
.stat-fill { display: block; width: 0; height: 100%; border-radius: 3px; background: var(--tier); }
|
|
264
279
|
.stat-value, .model-index { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; font-variant-numeric: tabular-nums; color: var(--text); }
|
|
@@ -1298,6 +1313,51 @@ body:has(#terminal-panel:not([hidden]) .terminal-controls:not([hidden])) .toast
|
|
|
1298
1313
|
#folder-status.error { color: var(--danger); }
|
|
1299
1314
|
.accounts-dialog { width: min(560px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); }
|
|
1300
1315
|
.accounts-list { margin: 0; padding: 0; list-style: none; }
|
|
1316
|
+
.flags-dialog { width: min(560px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); }
|
|
1317
|
+
.flags-list { margin: 0; padding: 0; list-style: none; }
|
|
1318
|
+
.flag-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px 10px; padding: 8px 0; border-bottom: 1px solid var(--border); }
|
|
1319
|
+
.flag-toggle { display: flex; align-items: flex-start; gap: 10px; min-width: 0; padding: 4px 0; cursor: pointer; }
|
|
1320
|
+
.flag-toggle input { flex: none; width: 16px; height: 16px; margin: 2px 0 0; accent-color: var(--accent); }
|
|
1321
|
+
.flag-text { display: grid; gap: 2px; min-width: 0; }
|
|
1322
|
+
.flag-name { font-size: 0.85rem; font-weight: 500; overflow-wrap: anywhere; }
|
|
1323
|
+
.flag-about { color: var(--muted); font-size: 0.78rem; line-height: 1.35; white-space: pre-line; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
|
|
1324
|
+
.flag-example { color: var(--muted); font-size: 0.78rem; }
|
|
1325
|
+
.flag-example code { color: var(--text); }
|
|
1326
|
+
.flag-row.risky .flag-name::before { content: "⚠ " / ""; color: var(--warn); }
|
|
1327
|
+
.flag-row.risky.checked { background: color-mix(in srgb, var(--warn) 10%, transparent); margin: 0 -14px; padding: 8px 14px; }
|
|
1328
|
+
.flag-row.missing .flag-name { color: var(--danger); }
|
|
1329
|
+
.flag-row.missing .flag-about { color: var(--danger); -webkit-line-clamp: unset; }
|
|
1330
|
+
.flag-row .info::after { inset: -14px; }
|
|
1331
|
+
.flag-value {
|
|
1332
|
+
grid-column: 1 / -1; min-width: 0; margin-left: 26px; padding: 6px 10px; border-radius: var(--radius); border: 1px solid var(--border);
|
|
1333
|
+
background: var(--surface-2); color: var(--text); font-family: var(--font-mono); font-size: 0.85rem;
|
|
1334
|
+
}
|
|
1335
|
+
.flag-value[hidden] { display: none; }
|
|
1336
|
+
.flag-value:focus-visible { outline: 2px solid var(--focus); outline-offset: 1px; }
|
|
1337
|
+
.flag-value[aria-invalid="true"] { border-color: var(--danger); }
|
|
1338
|
+
.flag-problem { grid-column: 1 / -1; margin: 0 0 0 26px; color: var(--danger); font-size: 0.78rem; }
|
|
1339
|
+
.flag-problem[hidden] { display: none; }
|
|
1340
|
+
.flags-footer { display: grid; gap: 10px; padding: 10px 14px; border-top: 1px solid var(--border); }
|
|
1341
|
+
.flags-command {
|
|
1342
|
+
display: block; max-height: 4.5em; overflow: auto; padding: 6px 10px; border-radius: var(--radius); background: var(--surface-2);
|
|
1343
|
+
color: var(--muted); font-size: 0.78rem; overflow-wrap: anywhere; user-select: all;
|
|
1344
|
+
}
|
|
1345
|
+
.flags-command span { display: inline-block; max-width: 100%; }
|
|
1346
|
+
.flags-command[hidden] { display: none; }
|
|
1347
|
+
.flags-actions { display: flex; justify-content: flex-end; gap: 8px; }
|
|
1348
|
+
@media (pointer: coarse), (max-width: 640px) {
|
|
1349
|
+
.flag-toggle { min-height: 44px; align-items: center; }
|
|
1350
|
+
.flag-toggle input { width: 20px; height: 20px; margin: 0; }
|
|
1351
|
+
.flag-value, .flag-row .btn, .flags-actions .btn { min-height: 44px; }
|
|
1352
|
+
.flag-value { margin-left: 30px; font-size: 16px; }
|
|
1353
|
+
.flag-problem { margin-left: 30px; }
|
|
1354
|
+
.launch-flags { min-height: 44px; }
|
|
1355
|
+
}
|
|
1356
|
+
@media (max-width: 640px) {
|
|
1357
|
+
.flags-dialog { width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0; border-radius: 0; }
|
|
1358
|
+
.flags-footer { padding-bottom: max(10px, env(safe-area-inset-bottom)); }
|
|
1359
|
+
.flags-actions .btn { flex: 1; }
|
|
1360
|
+
}
|
|
1301
1361
|
.account-row { display: grid; gap: 6px; padding: 12px 0; border-bottom: 1px solid var(--border); }
|
|
1302
1362
|
.account-main { display: flex; align-items: center; gap: 8px; }
|
|
1303
1363
|
.account-name, .accounts-add input {
|
package/web/yard/art.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"d4de28baa735e3e3769aa7aada1cf34c8a4fbecd0db433b8f0173e6a4df2caa7","archive":{"name":"yard-art-d4de28baa735e3e3.tar.gz","url":"https://github.com/oddessentials/agent-guild/releases/download/v0.64.2/yard-art-d4de28baa735e3e3.tar.gz","size":267581581,"sha256":"780531c5d381941f5029d7b6e287e7e514b020ff17098b39481170e3a415b825"},"files":[{"path":"bot_0.glb","size":1054684,"sha256":"729bbdbddaae57c4340ba18ac9a7fd2e424d1ed1df8fbf8715e47490520ccc01"},{"path":"bot_1.glb","size":1041680,"sha256":"5bb627aef4c442f31141d085c83723e747a854c25e9cc667ff71dc0cf7182e62"},{"path":"bot_2.glb","size":1019484,"sha256":"79a18838d8a58edb43ce63cc7eb49c520f62cdad98c5ec12e136598508c6959b"},{"path":"bot_3.glb","size":1031960,"sha256":"0c24de7ce775902c257f385de0ff7efe45972d4c15f4ca8062b7cec8680a52f2"},{"path":"drone_0.glb","size":994620,"sha256":"7aef4bcaaf581e26ad439c13cfea7a40e39fc011e5a2ddaf80467ccd8e8b74aa"},{"path":"drone_1.glb","size":1010348,"sha256":"e7130cdcb0fc2a14781a067824068d4d0507dbe6d6587da46615a462608f0486"},{"path":"drone_2.glb","size":991048,"sha256":"3fdac4af5b367840266622db3c7deacae09a4af9d94df7ade75a4e98e2e1331f"},{"path":"drone_3.glb","size":1026312,"sha256":"df20f7543f9c97aa0e97ff4b8572375bcd435ffb8e46ec612ba9a26e4eef7cd6"},{"path":"familiar_0.glb","size":1079828,"sha256":"b204def3546f4e33772b829077241cfdd929f7b15ac56a4c3dbdcb9401f2ddeb"},{"path":"familiar_1.glb","size":1031732,"sha256":"1130f0e54bf55999ab6d41ac5579bac876ca8cf8aa020d3b8d010013533d588c"},{"path":"familiar_2.glb","size":1025408,"sha256":"3983d3883f6cbc8f7d614a88d21467e577dc6b17eba635f8bb2d178b99d692f1"},{"path":"familiar_3.glb","size":946824,"sha256":"5a7c3fa34245dccf558801608d8823d891b97ac885cad95057ba9c9ca604a9fd"},{"path":"gnome_0.glb","size":1826848,"sha256":"1c2e238ee8155f00fae5447e6ab99959e782a92f6be60b37ce6628b8b2260a4d"},{"path":"gnome_1.glb","size":1897852,"sha256":"e37ce53939baeea6396071937cb20cde424c73a06d716f3a37736d98e3852f72"},{"path":"gnome_2.glb","size":1782172,"sha256":"3fd39c6acf173bf628f4f47b85675dad59d009165b5ed28cc205e2f8a2a99c77"},{"path":"gnome_3.glb","size":1810436,"sha256":"75a073597dc1a7055d8626c482069f79e8c0c6f55fe3925b4d764905b7355260"},{"path":"gnome_4.glb","size":1724916,"sha256":"cfc5123a79ffe7a9b2a6de786442e950b76b67fd009e594e68b93ca04e5e0864"},{"path":"gnome_5.glb","size":1864276,"sha256":"a2af15c1ea4e6d3114acd1d79480ab165931c378cfc3f378097c636600824a8d"},{"path":"gnome_familiar_0.glb","size":1071816,"sha256":"c7365cb43735065fe4b99fb70f3c696a9512881890b0b9664bd79891ee7c30aa"},{"path":"gnome_familiar_1.glb","size":1049636,"sha256":"a70fe22130a171698165ba466ec7f685b9fad3286d6bcc367b0c100eb28b2ce3"},{"path":"gnome_familiar_2.glb","size":1035060,"sha256":"c512adfeed43afa58ff8980a94b37ca88060a52b7a49c0b91385ecd9db00bd23"},{"path":"gnome_familiar_3.glb","size":986504,"sha256":"aebe18c705c96be9a8fab0e0cad3f2039eb4d00add78543341ef9c956bd3b2a5"},{"path":"gnome_helper_0.glb","size":1073548,"sha256":"6d8d111a4a90e72b69a9449416ca87bcdfff79a13dd7f39b9faed8fc4fe50d19"},{"path":"gnome_helper_1.glb","size":1039180,"sha256":"6687203c0a5bd8c9057c481e0b91b3b1cb8010e712f61946e73c0573d84cb95f"},{"path":"gnome_helper_2.glb","size":1010528,"sha256":"459c1ff0a41c5db913be8930b5c3931e91a95970d472eda23aeba959290dd8d6"},{"path":"gnome_helper_3.glb","size":1028760,"sha256":"6dcf230b6ae9fb05e1cb3fb8473fb7e7608ae29cbd7b45410afea954169df375"},{"path":"gnomeland.glb","size":9470388,"sha256":"559d3854abb2c29ca569612b24423f8e5e965ed1ec11bf755afc65a214324d86"},{"path":"gnomeland/dark-base-0-0.webp","size":345486,"sha256":"0ad99acff62d65e57945530e7e0169991ba086dc177a7fa7b1db22aee15817d3"},{"path":"gnomeland/dark-base-1-0.webp","size":310710,"sha256":"73972f3fee4e647816517536abde9a720eaebe7b84b711d6fcb488364304abc9"},{"path":"gnomeland/dark-close-0-0.webp","size":1007594,"sha256":"636c58b29ebc02316331516a4f97bb3e009a3a883a567486bd079a229c95d222"},{"path":"gnomeland/dark-detail-0-0.webp","size":492798,"sha256":"55dd4db8908827ae9acd1a58258a1848a68eff412e1786256067c47edb85d7c3"},{"path":"gnomeland/dark-detail-1-0.webp","size":491968,"sha256":"9361918c276650eed451f62d8def12d9797b62b612e90b18be695c5588d63e59"},{"path":"gnomeland/light-base-0-0.webp","size":634540,"sha256":"8c6ebd61796125bdc12365338bc01b710132b47f59cbc36c31550e05e49186f4"},{"path":"gnomeland/light-base-1-0.webp","size":668326,"sha256":"88b5989472db90b2608ff75dd30248cefede57c153684f77f8fd700a612f9e75"},{"path":"gnomeland/light-close-0-0.webp","size":1537456,"sha256":"cbdfabadcdb9e4291151a0c2ee2dd063072fba79015e688a0a0192ac77eb16c5"},{"path":"gnomeland/light-detail-0-0.webp","size":1051072,"sha256":"ff217301527ae52236d12064494c32119b6a27c39d71dcc17a5df70e12bbdd38"},{"path":"gnomeland/light-detail-1-0.webp","size":1048932,"sha256":"2a1f6c28eeba9e8054a35ec1f8bbfc04fec7c175807aade43cfcf2f8900c47ad"},{"path":"gnomeland/plates.json","size":3493,"sha256":"a1e08160a0a122eafe46be4b3cbe69d083a723a62f7d1897f572568ed5e85171"},{"path":"gnomeland/sky-dark.hdr","size":330527,"sha256":"af5caa5a1a5d32ddd4daff6216f50860888f9328fd35a5e21d8d4c1d1a5f3148"},{"path":"gnomeland/sky-light.hdr","size":221480,"sha256":"5831990536832e0885a028c7f58ca421246c50b6ef7e0b2044ab5c8ab9bc25de"},{"path":"gnomeland/surfaces.json","size":107,"sha256":"83ba96a47bcd2d6582a4b6db3b4cdf70dcf880dd7e39a736272f49ea4d913ec9"},{"path":"gnomeland_station.glb","size":1418748,"sha256":"0e8abdf629af40de6cd600da87b8add45076e5e69bcc8995e8994deceb335aaa"},{"path":"goblin_0.glb","size":1811968,"sha256":"f788a9f5c96563e49429667747fbe2db4d873f51cb0cd8ef7ef8bb716ebedbf0"},{"path":"goblin_1.glb","size":1885672,"sha256":"dd10664e0a5910fb748f16eb379fe542f4d5747a05371399e6e266ec8dadc593"},{"path":"goblin_2.glb","size":1883624,"sha256":"ff9754cb6174a8d459b64dc3c0fda90a13749eeb88e58e3d15015d6c49b67151"},{"path":"goblin_3.glb","size":1910988,"sha256":"8f225f716333973f9f41a5d3602064de078ae9893af2dc1fe4d8787a7264ccae"},{"path":"goblin_4.glb","size":1830464,"sha256":"18a5d6cbf948f782ca0da5c6cb6650389f2bc39bf71bfa0a83fc4f3a73ae2f89"},{"path":"goblin_5.glb","size":1879540,"sha256":"90cacb62d20167ebbb3253bc1dc844b3f590225ea3a893be6d89c63adf83c51d"},{"path":"goblin_familiar_0.glb","size":1068020,"sha256":"c921ebda8dfc91445ec7a8067dc26f08822229c0fe076a31de904cfc196227f9"},{"path":"goblin_familiar_1.glb","size":1171748,"sha256":"5a711577d180228a1eb19c6128d845cc3c693369a19ed71c5e524c365c464c41"},{"path":"goblin_familiar_2.glb","size":1200232,"sha256":"66976f37a2b9f1f9bd2fce5d35f1ce80592b6e866f092b04fb562aec452c0d1b"},{"path":"goblin_familiar_3.glb","size":1036344,"sha256":"4ef274231372a83126742de74f47f8eb20da01f1294c3da51da483bfd64ad54d"},{"path":"goblin_helper_0.glb","size":1082468,"sha256":"a77ce0d324f5a49ee59668bd57c01835c8c4384e056ab144c01e607443aed51e"},{"path":"goblin_helper_1.glb","size":1174900,"sha256":"8974410da9fd22f36f09c0b4377fdde0f9615a7d6a80d44ae28bcde38a59d113"},{"path":"goblin_helper_2.glb","size":1137304,"sha256":"d2a088034bc5abf5a5951be1ab233542244aca0e656bc100bdbf3b25a21f74c5"},{"path":"goblin_helper_3.glb","size":1057172,"sha256":"022db26563511b3f781781806e9b23766f8c4a687ee9c43e600d481865c801f6"},{"path":"goblinville.glb","size":9759864,"sha256":"7e8061fce7c4656dd534206ef150088899f6526fc35199c60345031e875d064a"},{"path":"goblinville/dark-base-0-0.webp","size":168078,"sha256":"96113450d16c2ecb25164c0c1e7a7f29fc3f31fee33df9024e215db65521b82c"},{"path":"goblinville/dark-base-1-0.webp","size":207904,"sha256":"d158d8d52b7cec1502ff1ee9f65d07d5abaa4541de79b0131c25f29b344a614b"},{"path":"goblinville/dark-close-0-0.webp","size":321322,"sha256":"8af81d059f812ae52cf775b5a04110f94501ce38526e98d6f4057ea98d4f3024"},{"path":"goblinville/dark-detail-0-0.webp","size":238982,"sha256":"aa66b593179b4d55e6e98ae571b428f0cda4204b552f41b242565eca8aae1cec"},{"path":"goblinville/dark-detail-1-0.webp","size":283578,"sha256":"da5a76886fce6356d63aa913bd7aba69b7135295d82068f94189c7ea2bd78b8d"},{"path":"goblinville/light-base-0-0.webp","size":324142,"sha256":"894552aee3db8df320949ab2bab2497bba516cd14bcaaa89296b06961df102d7"},{"path":"goblinville/light-base-1-0.webp","size":306418,"sha256":"0906470f40fd57e3720f7478d11efc7908d22c7ac8101a0740441183333e78af"},{"path":"goblinville/light-close-0-0.webp","size":576852,"sha256":"c8a40b749a3e69fb914fb2ec7c83e25e124012bd8f6d691183213c2687029407"},{"path":"goblinville/light-detail-0-0.webp","size":394678,"sha256":"c370e894685beb2460a9ce4c17e28552cfae32cfc82ebd057ca5dc7a8051656c"},{"path":"goblinville/light-detail-1-0.webp","size":410482,"sha256":"6d5dd82157838e931e9529c428863bba12ce1fc7720e353c8512d9daa7de97db"},{"path":"goblinville/plates.json","size":3513,"sha256":"7bcd1ed4a5f8b828b300b040f9981f9353a15d78b1dda73809818e6b4f94f6a7"},{"path":"goblinville/sky-dark.hdr","size":319820,"sha256":"f5932da6c6ea962d3a75797912f9ebef2f846703ef64ed27960faaeece977158"},{"path":"goblinville/sky-light.hdr","size":350167,"sha256":"888fe1251a9960bf68ba573a042f28904c11fca04a6531600d72afb1cbb7d938"},{"path":"goblinville/surfaces.json","size":111,"sha256":"2aaa50d0ad07eae3519c3102381607d36a35b6d5363209c031259cddead4b3ba"},{"path":"goblinville_station.glb","size":1504676,"sha256":"7662a2aa5bcf922398d48c16e3eaef2c37a6560bdf16300bf6339090ce7440a6"},{"path":"grove.glb","size":10174964,"sha256":"e44689e73200244e1fe7b15e7bd2fafb0745ccea1cfe06f3a424174610b2f287"},{"path":"grove/dark-base-0-0.webp","size":196260,"sha256":"adf42e1ccd46ca8ae5fb680d11291eb7aa46fe06eee114dae7f6dd3390fb15e6"},{"path":"grove/dark-base-1-0.webp","size":207762,"sha256":"32fe8c94efbb16418fde7f5e86c08b224eada83f47decf2911ace889c387606d"},{"path":"grove/dark-close-0-0.webp","size":891668,"sha256":"56ef1c1833c6bebd5dcdf74ff497c3fb91cdc3a4c9c03a9219b5d2e9fc7a4b26"},{"path":"grove/dark-detail-0-0.webp","size":327516,"sha256":"03b9dfee7200c64e6041dd50fc92204b82597f2a80d30c50aea007ec6f4fcef8"},{"path":"grove/dark-detail-1-0.webp","size":378138,"sha256":"af17bcef3d4492917e678c76ae3112d39ea625ea1044e184bcbfd67cd3ec520a"},{"path":"grove/light-base-0-0.webp","size":878012,"sha256":"f9b7294a351d738909a8516474fb9fdb9f251c0023c460badb74c054ee4cb6bd"},{"path":"grove/light-base-1-0.webp","size":859660,"sha256":"6a0366718fa9caad095a3f7bf8cd2edb87a14dc5e6e20bddffd201714f264e62"},{"path":"grove/light-close-0-0.webp","size":1992158,"sha256":"5428eee71ca50f31b0865add5ff4239d2f2d45cb3b1c397bc6d1ff31bcb264fc"},{"path":"grove/light-detail-0-0.webp","size":1214830,"sha256":"48986f352282981d3d413005399ddb90707e7102916bdcbc0e66c02bec4244e9"},{"path":"grove/light-detail-1-0.webp","size":1230512,"sha256":"8698f0a8b33c65aa840b39fe221c694c2b567cfe79e903fee369043f98cb21d3"},{"path":"grove/plates.json","size":3453,"sha256":"4f87e4f7ce1d7518c71936dddfc22b49c4eb33ab455d0c9bee9f7b81a4f367fe"},{"path":"grove/sky-dark.hdr","size":321274,"sha256":"da271e6d921c7762feffe2c058e4bae84a3cd437800368ccf213ac376af3d392"},{"path":"grove/sky-light.hdr","size":304809,"sha256":"8a3f24a34e98e69ab340875fbcf6933c68e2043834ebde296ea9d555047a0955"},{"path":"grove/surfaces.json","size":99,"sha256":"85c078c742b347f8b06ce79ee1be0c7bb9b616030c2649d7ba6755a3baa86d47"},{"path":"grove_station.glb","size":1499764,"sha256":"bd1b868b6241f44ebfda5d81606a069b0bd36eaa622e4658e452256d3f99dccd"},{"path":"guild.glb","size":3417508,"sha256":"159b1aaeeb40bad42804427b33703d9b2cca5a446b7c9534fdc8de0997d6b800"},{"path":"guild/dark-base-0-0.webp","size":265912,"sha256":"8aded6714c563387d303f8e028765f3e5f44a585f5dd892b1df22934921df0d8"},{"path":"guild/dark-base-1-0.webp","size":285108,"sha256":"4d0db0358b7f6df5304eadf0daf961c95b54713a47904f33c47ec01afe11b4a1"},{"path":"guild/dark-close-0-0.webp","size":1503898,"sha256":"057566db9da66b2b95d89f8f7364ad08659a33d78cb9e5d71ae28de56d072603"},{"path":"guild/dark-detail-0-0.webp","size":626076,"sha256":"dd7f96d17d8415b1a548e68ec6b53ffd7e295dadd9924bfc3971d93f909527ae"},{"path":"guild/dark-detail-1-0.webp","size":708038,"sha256":"ccb37d3293469455f0000fdc742c47348f58664b84f51a2671b12ba5f0aaf2f7"},{"path":"guild/light-base-0-0.webp","size":517700,"sha256":"604f0eed7af954ef95cc8fe93faa445a830581f1c3c7cdbdc9bcc99eee79f254"},{"path":"guild/light-base-1-0.webp","size":547120,"sha256":"f4b785fea8d405179dcd658c54e95a31c0177d0082306a44cf21ae7fbc3df655"},{"path":"guild/light-close-0-0.webp","size":1815358,"sha256":"ef7562efc3698a89a900e454bbde92095168c4a2c84e750676ecbbacdceeb2fd"},{"path":"guild/light-detail-0-0.webp","size":1015808,"sha256":"442e99a2ca6307fd0494b765b90d973f0c0847e75a6bb7604d28577e06d5e332"},{"path":"guild/light-detail-1-0.webp","size":1123916,"sha256":"3f14f56f3b0e435c9487c0536d7f152bc76c49ca7a67b76cf5fdf32b9c1d9774"},{"path":"guild/plates.json","size":3453,"sha256":"b50c1424647ad6975754b96692e1fb2bf9133d6496e1ac737f916ab4e4cfb30f"},{"path":"guild/plinth-color.webp","size":72162,"sha256":"a5cb255a14bc46e780606866240c42fcd904a571f2ef2739deb3204ce43b9e1f"},{"path":"guild/plinth-normal.webp","size":85470,"sha256":"a6fac3c211400705b113576a40bc6197b5aeee042037ddc0444ab4164d14ea5b"},{"path":"guild/plinth-rough.webp","size":75364,"sha256":"765e0de8ab44d418c3061ded9e1fbd9e15503dbb5c2c58fe861fe583eadc9674"},{"path":"guild/roof-color.webp","size":28882,"sha256":"db57943f7f752aa9f67d2e0843d43c32ebb269ae63eb770f72ded2e704487db4"},{"path":"guild/roof-normal.webp","size":26666,"sha256":"43da1c68178d25122f8b4cbc4b23b36d162fe9f7059fb24aab4f21fce92ae237"},{"path":"guild/roof-rough.webp","size":33508,"sha256":"2b4704b413185a47b5ee78160bb224205133bd1171c6ed32ba1ebac5890dac4c"},{"path":"guild/sky-dark.hdr","size":298044,"sha256":"380164494f75f21dc63d4b2e4f6f7ec1b7137fadfcad2cd9b2f1cbede29db67b"},{"path":"guild/sky-light.hdr","size":376311,"sha256":"5216d9cb752d2e7a4662d6ed3568b47c125b88fb280d7965941787163c041603"},{"path":"guild/surfaces.json","size":1024,"sha256":"b34ea34a2620667741f22452d3e381ef527461da560f07bb5719ac132fd0a359"},{"path":"guild/wall-color.webp","size":64450,"sha256":"f65534647c88433beba6cef7c7ccd626570a91915617e5767b5b30dff6d38361"},{"path":"guild/wall-normal.webp","size":74168,"sha256":"ab8c656c40c8886d2068979a199b0ddb496dee66575ff8aea5ced77bd60a23ec"},{"path":"guild/wall-rough.webp","size":50556,"sha256":"79c1c64b04e0f7837b6a57602363121198338726400f8ff145d9cef0202c842d"},{"path":"guild/wood-color.webp","size":22372,"sha256":"1eee4b1d660d2d9816eabee0cd8e9c575319d694c5b321406776ac901c974c9c"},{"path":"guild/wood-normal.webp","size":11574,"sha256":"20ebd8fdd3c15e3b4254eba9bda71f3fd6ad6929362cdbd671631eb61d944185"},{"path":"guild/wood-rough.webp","size":34338,"sha256":"0f576127bca68bbf5c8361a441690171cba7cdc80cefc0ae62e6ecceca9b47fb"},{"path":"guild_station.glb","size":1630028,"sha256":"8c989fed1ce6fabf829b074025a78a38b82d09327c184239c7c7ff08b339ce63"},{"path":"hero_0.glb","size":1659780,"sha256":"7c87ae79129a98b66bbda430a645f22cd937520247a3b7acf7261ee8b95d12be"},{"path":"hero_1.glb","size":1757224,"sha256":"bb2d15696c0d21ed0c32ef12916baf5c3edf9f60eca14a391c858b4d6de1f1d6"},{"path":"hero_2.glb","size":1800648,"sha256":"4f392b19fe92b6d5415abb216d1a871274012982471ec38fb8dc20a16a83eee1"},{"path":"hero_3.glb","size":1732064,"sha256":"4505760bc907e8d01e992b49beb3ceb2d4f3c8b577233da99764fcbfc76d2f53"},{"path":"hero_4.glb","size":1614896,"sha256":"c1d27ad1b33a86acfdde68da07e1bc1e56ff666a721a17dbb9c874794e27bd52"},{"path":"hero_5.glb","size":1773400,"sha256":"832f8c249d9db3f10dc6cd22f5763f5e89af0f3fbe3d33b7aca6b8c9bab77ef2"},{"path":"manifest.json","size":151,"sha256":"37ae0296483da1b0059830f3e6b67eceac659ed098897116b28ef86747005e32"},{"path":"maps/bot_0-0.webp","size":256832,"sha256":"627c666291ad0c0312e103ae5875789657280300b8fbc80674fd7e3a475dc1e4"},{"path":"maps/bot_0-1.webp","size":137968,"sha256":"a1046d00cc4094b76c641f28d86e5ccf13f9a8851ec81039a21282a666dfdd70"},{"path":"maps/bot_0-2.webp","size":105500,"sha256":"b20414a8950c91c38fb7ba607ec22c8da1672f8fff051c2b7e7f9360998edec2"},{"path":"maps/bot_1-0.webp","size":246698,"sha256":"137f638f1dfe6458e54cfa512ea86f3becaf2fca363a4731ec66565dc48fb901"},{"path":"maps/bot_1-1.webp","size":123714,"sha256":"4b41628b3ca586ae4687c5638999837bed4ed3a5f62a479cbf7f6147c29b5477"},{"path":"maps/bot_1-2.webp","size":140928,"sha256":"b3468d00a2659bdbd57e67b84b67c705c80c3309360e984e54eee7eacc744571"},{"path":"maps/bot_2-0.webp","size":211860,"sha256":"baefc888c266a23eca981097774339e246a604c5c61ef90b26785d4928d67bf9"},{"path":"maps/bot_2-1.webp","size":159212,"sha256":"84f6babbdd3e1d482dba79968837a777dbae379df270f843124eb7d03ddf90d6"},{"path":"maps/bot_2-2.webp","size":149744,"sha256":"9bcd971e3489bb44c01eaf30efe6ba33307b512c877c3ce5903c163d018412d3"},{"path":"maps/bot_3-0.webp","size":313040,"sha256":"353be26a82209678a6251e8b389c0a982abd46ee9140639714a1533720d11b55"},{"path":"maps/bot_3-1.webp","size":200080,"sha256":"e2a642876ea5f56b0b05e723999e5fc0cdb465e06e2248c8e7c6192ba8dbff6a"},{"path":"maps/bot_3-2.webp","size":137570,"sha256":"3b6010b25f499b029eb5cfc342bbfcec431167ee256e8f89da89963bc1721dc7"},{"path":"maps/drone_0-0.webp","size":203872,"sha256":"7ea7005c7ac5cf34d0c52751f131ccc40f7ce7b07694de9a79d85f71ef9eff81"},{"path":"maps/drone_0-1.webp","size":155808,"sha256":"9975db136e318fdad918bfaf1c785d34f7694eb1405c68002ca827fa0f19c980"},{"path":"maps/drone_0-2.webp","size":147056,"sha256":"fe526c49022424229846125cb1904104aee352d6788ecfe5ec990fea3f660a2c"},{"path":"maps/drone_1-0.webp","size":225744,"sha256":"d4080cc239cdfdf466865c84d683e986ecc6ef95e41f0ead908a631b87d33827"},{"path":"maps/drone_1-1.webp","size":185766,"sha256":"368d52747c8ecbf38636707a89a7a68bbf866cdd41016cd5bd7b56b5ca831aaa"},{"path":"maps/drone_1-2.webp","size":84512,"sha256":"5a9697c033c5217bfe72f0b5e1462ed2e905beaab2d9b046c931d3f896977c18"},{"path":"maps/drone_2-0.webp","size":208140,"sha256":"357468d44c024af94f7fa518b26f32fc03ff4ff2c4ec7cb2caabd92cd1920aa2"},{"path":"maps/drone_2-1.webp","size":111184,"sha256":"1194b1da84f50bf27d151b4b70ce7dded1a33e93a0aaaf623b47e2c85575c19f"},{"path":"maps/drone_2-2.webp","size":83886,"sha256":"5ace31927d4f6b2492f3111510e491cbfeba8fa2f322abadba4f156378acfea4"},{"path":"maps/drone_3-0.webp","size":258914,"sha256":"c69f6c05b093e1f587f1660a07891295d2467ee8fc84d429b9fff7f45a171fbb"},{"path":"maps/drone_3-1.webp","size":150152,"sha256":"28676d142eeeae7949f9e5b3cd36f87544a56600a5a7232394c6de1832a36a6f"},{"path":"maps/drone_3-2.webp","size":177032,"sha256":"7604a2e7ceab773b4b6d84ee5a01ff29fade6031d5a567a610c986af6afa03d7"},{"path":"maps/familiar_0-0.webp","size":345454,"sha256":"a76d7a52ddff4d8ffde5001c08fd7375864516b487a4ce3f47debe5022d57bba"},{"path":"maps/familiar_0-1.webp","size":157990,"sha256":"28bba9d228ea7ecd251a5efa38337a4ad1eafbcbec7d64527f484a4a1196378e"},{"path":"maps/familiar_0-2.webp","size":280852,"sha256":"93de83b008efe6dae06d184c38bca81572ecce0cf3e2a051bd2c2945d4f0c93b"},{"path":"maps/familiar_1-0.webp","size":316616,"sha256":"dc6c2b7e02827fa9c1632bc60374d4c89556f691261d83aab8240588ac4612c3"},{"path":"maps/familiar_1-1.webp","size":227634,"sha256":"27779a0d094764c81b1297b4527a7495d1c79c4559f68fa36715056c811f8a12"},{"path":"maps/familiar_1-2.webp","size":215286,"sha256":"52067c606520c19a355a7b27c1d3583a1d0b46b98dbc12798b32d1b2095e2110"},{"path":"maps/familiar_2-0.webp","size":233604,"sha256":"4126ceb38e7f3e08e20892094cbcf9419fb9f0f4e68b728d421c3c15a4fed8f2"},{"path":"maps/familiar_2-1.webp","size":139016,"sha256":"5280d0ed09887a4af8bf80c62c7625be53e6f65de60a09382febaec37057443e"},{"path":"maps/familiar_2-2.webp","size":167914,"sha256":"136be2762f38511a01c7aabb9c38f42bc45c7bf54a80d41f308755a107027b92"},{"path":"maps/familiar_3-0.webp","size":116098,"sha256":"3f082749936498b12e73738798e9e2b85ebb4f93a364f6658d7e932e80872560"},{"path":"maps/familiar_3-1.webp","size":83320,"sha256":"d68bb722d70d23592c17f51025e7678e3d9b415fa4506a27abec81c2567ca386"},{"path":"maps/familiar_3-2.webp","size":73518,"sha256":"d27bcf1e5de372d869a4bb88ed118ebc8d77ebbaf8ec08f3fdc9c8608ae1df43"},{"path":"maps/gnome_0-0.webp","size":722878,"sha256":"15c54b6e9312e080ec2bbe05c275cd58b2a8e3fadf6337be6127bf2776acbbe7"},{"path":"maps/gnome_0-1.webp","size":346586,"sha256":"d52b1f57e3e298ef20717260ac804b783d69e9268f4ea2c5bbf848d2a7f98d0c"},{"path":"maps/gnome_0-2.webp","size":465266,"sha256":"ffb0f448ab34bc99d7e8378d60cbad66b9bc500704554e5ee4693f64ae8ba5f0"},{"path":"maps/gnome_1-0.webp","size":970876,"sha256":"a4ab6a4d91f0bc81b9ceb9b4275c6841e7ca06712eea6d806ef3aa707bc50f96"},{"path":"maps/gnome_1-1.webp","size":556222,"sha256":"0f328d62c0332a7e813791ea007ad88a319ffa0d080b577de9367f13f569222c"},{"path":"maps/gnome_1-2.webp","size":359544,"sha256":"97efbb90360746e6a3ae8f290fec2ae8b4d650c3951a49add9d609da3b895be2"},{"path":"maps/gnome_2-0.webp","size":670978,"sha256":"b121518b5e1ac8f2a1fb489af8badea695fb4172e85502a0e567710dd4adf561"},{"path":"maps/gnome_2-1.webp","size":382802,"sha256":"30263263da0af476b19e51ecd076f8eff156bbb63bcce93152a6b8b65f7f8587"},{"path":"maps/gnome_2-2.webp","size":518984,"sha256":"cf11d06eaab6c41566cea78c955615a1a34ba1fc889ff6dc7b97118f24b8808f"},{"path":"maps/gnome_3-0.webp","size":863046,"sha256":"8a664293befc1e36bce2f45aac4a9351bbebb708ac91062b4622112c6a8483d7"},{"path":"maps/gnome_3-1.webp","size":459080,"sha256":"382ba9d080eca5304848547b645fa1bf6a28adb538eff3058c9051660383a1f4"},{"path":"maps/gnome_3-2.webp","size":514990,"sha256":"98ee4b656f585ff38fa25bb1334a20864b43cd3cc5e76c14c26741377f36a4b6"},{"path":"maps/gnome_4-0.webp","size":730298,"sha256":"e084e9f22d37ef50f1a4704c739e7189f80d20a9f05715057a64d0c6d3a688b0"},{"path":"maps/gnome_4-1.webp","size":379670,"sha256":"f585229a5abcbdf6dffe7b8a144cc4d6346b77a3b2f507190e5812acf038ae08"},{"path":"maps/gnome_4-2.webp","size":259356,"sha256":"70699b16b46ea02f672cbc7fcfa86b89fba8fb762c9282fde34d1b1ab08ba4fd"},{"path":"maps/gnome_5-0.webp","size":760690,"sha256":"9cdffef1a173c13c8a454836a39ccb52bae46d0648254399f2d1432e37d66d60"},{"path":"maps/gnome_5-1.webp","size":432068,"sha256":"50d7f341d6adb9e09f4736d2c0026e2bfa5077bdc5d153a02e1b92f0caa313ca"},{"path":"maps/gnome_5-2.webp","size":496274,"sha256":"3a27846fc0a45a42c510ece9038b679ae054ac20689afa4fbf7b34f3b51b8253"},{"path":"maps/gnome_familiar_0-0.webp","size":361090,"sha256":"7cc42038975081cc969348981ba3e1bc528cc57ada128f596f59f17d9c7f9b62"},{"path":"maps/gnome_familiar_0-1.webp","size":180766,"sha256":"3c2243ffa6813b62cbf2db54972ad09c369f9ba1290f7f91d4ca4272da9bcfb2"},{"path":"maps/gnome_familiar_0-2.webp","size":210130,"sha256":"e5f43fe993b3c2302548aeff806b540e969b7bb3c74bdb2d0ced100de8ab1743"},{"path":"maps/gnome_familiar_1-0.webp","size":268378,"sha256":"7bc64fbe7ac3b4002c0aec60cfb9457a0423081a6f75c9d570330e78749fbbc4"},{"path":"maps/gnome_familiar_1-1.webp","size":137894,"sha256":"c440cb163303b7be2134d72ce695cfc306155f09465c6912a5dc8da383ce4bfa"},{"path":"maps/gnome_familiar_1-2.webp","size":110054,"sha256":"f4cd223db8df98c1e141e6402e97918a56c1bf1de354cccb3587736c74989e82"},{"path":"maps/gnome_familiar_2-0.webp","size":252204,"sha256":"9f2b66959a996a0cca7e8f03e130c07ec6897ca8e3371fa2c59a2e710c499720"},{"path":"maps/gnome_familiar_2-1.webp","size":130800,"sha256":"07b9805a27336c1ef1ca7c13c90b193c51737112509a90d5f37dfd79d4d3b29e"},{"path":"maps/gnome_familiar_2-2.webp","size":179304,"sha256":"da477d6457ca8c9299edce9d07a1dbfac9372a2538e1566e11b460009e61b6e7"},{"path":"maps/gnome_familiar_3-0.webp","size":203290,"sha256":"7d77fe24cab2e849635e1986deddcaf54917cf83fcdb7c966639d33c29b845c9"},{"path":"maps/gnome_familiar_3-1.webp","size":133990,"sha256":"4e0e230329d8faf4119c37ee4c8340a14ecc9a864f299142502323804f82210f"},{"path":"maps/gnome_familiar_3-2.webp","size":130600,"sha256":"c1057c6814edafa56246a380a174375128301c2dff590bbf8f530dece8c56fb9"},{"path":"maps/gnome_helper_0-0.webp","size":337680,"sha256":"c81321002a9462a7cc0d1e19be1d9567c7881dbabf29a14575ddf5c20b905ba6"},{"path":"maps/gnome_helper_0-1.webp","size":323756,"sha256":"095cfa0fdcb3bb364b3cd278643b002d1757ba48ed2b8952ac7fbed27c6086c0"},{"path":"maps/gnome_helper_0-2.webp","size":227870,"sha256":"8558dbb04fa0cdc87cc4b1620d684508f3575c12f0dc8df25be906054496e7fc"},{"path":"maps/gnome_helper_1-0.webp","size":282378,"sha256":"6d855d8ea12053f85b2557d453591d15db88410b44e3119cfdd309fccb3cfaf4"},{"path":"maps/gnome_helper_1-1.webp","size":217248,"sha256":"8666ba7480b39017b44570e89ccc036823933dc7768d3a1d49ed0025d9ac35de"},{"path":"maps/gnome_helper_1-2.webp","size":141088,"sha256":"2b1cd4be96befb6cb8341d19fba9dbb237cd352dab5453623e1bc1ceff1e2429"},{"path":"maps/gnome_helper_2-0.webp","size":248936,"sha256":"a2de02831a99e0c613013c5ae9f0a3cd884dbaabf2591a7149a1151da3b2d918"},{"path":"maps/gnome_helper_2-1.webp","size":201136,"sha256":"6fa68f96cc087508690fc61a9f451438f3f33d1e58298b6ed4af0dc2261d9272"},{"path":"maps/gnome_helper_2-2.webp","size":141252,"sha256":"e9d4d284c5079acd95a0d0c57925c2df82f5f91c50c3ed4ea05614fffad8b630"},{"path":"maps/gnome_helper_3-0.webp","size":276560,"sha256":"60dd66d2f5c6a243522cf1ca59ae4c44678108a17645e2cc14e944b41573f9e9"},{"path":"maps/gnome_helper_3-1.webp","size":181566,"sha256":"02dea14b2b2a7da19dbc2860f46d2d50d675514e3dbe4781eb1e533d2dd0ab0a"},{"path":"maps/gnome_helper_3-2.webp","size":162766,"sha256":"32a2150f44818b8118f456b0f5bfafa7bedc1e74c8fbe29ad2152937acf8eb96"},{"path":"maps/gnomeland-0.webp","size":12022,"sha256":"896f72b334cbcf06818b1677687b2992f4a3704267e2cb160d92657ac83a7a08"},{"path":"maps/gnomeland-1.webp","size":1121450,"sha256":"42acb0237668ed4c869652b6659ca558dcf795448e134073ea61999b3b27711d"},{"path":"maps/gnomeland-10.webp","size":686630,"sha256":"e9f7633aa8e8f41da1372f1c98119d8a2f972ae5c79258eca45e200d4ef29390"},{"path":"maps/gnomeland-11.webp","size":495492,"sha256":"178ebe2624bb6413598f939dd4fe4f7fb1c719f7cd04f07b42ab07690800e45f"},{"path":"maps/gnomeland-12.webp","size":7518,"sha256":"6edd7d51c4f880bbd98b86c6a2b57f012f94b4023bd56d29b382f9348879751d"},{"path":"maps/gnomeland-13.webp","size":1240154,"sha256":"83ab9971cf58b741ee31dd6a517ec8a12d9e106761bd22baf84ab404358a55b6"},{"path":"maps/gnomeland-14.webp","size":566922,"sha256":"759e2782018de23463c49703a86b3eaba63debad01a64005516604852c14b4a3"},{"path":"maps/gnomeland-15.webp","size":511902,"sha256":"5c24993a1f89c634ddf2a6cb05bee2c38714c56cbea881c68fe734e1448d57a2"},{"path":"maps/gnomeland-16.webp","size":9370,"sha256":"af07984b668a2c725146664a718971905a282453fb7f7f1d59fcbbfebe54af37"},{"path":"maps/gnomeland-17.webp","size":897128,"sha256":"7e625087fe4df05768ecf0930e5acb0e1542d5d4e300a01dfecb5af8ce2b5f59"},{"path":"maps/gnomeland-18.webp","size":679710,"sha256":"cdd68affeb547dd3aa53c8e9e3c602ead6e5c3d96c4c23d6120df8b58ed235f7"},{"path":"maps/gnomeland-19.webp","size":600142,"sha256":"da618c0eeae78a0a42dabbbea1c334c927a1f06a26d758356161d00c15a44d64"},{"path":"maps/gnomeland-2.webp","size":678636,"sha256":"60c77421bd8102ae3d14c7f0a49cb140c946c555daee36c0bc22e6dc2d53804c"},{"path":"maps/gnomeland-20.webp","size":20930,"sha256":"a8c333f84e077afd40b7eda8c1d148554f55a8573d15e38e29355d5a444d1964"},{"path":"maps/gnomeland-21.webp","size":969112,"sha256":"58da635dafecef0dca2e23b2bf49b0c83744e32ad7455e55d742cf32fd690692"},{"path":"maps/gnomeland-22.webp","size":775070,"sha256":"24ddc893ac7f7c27f745d0d248abb37d60d9638ddd0bc284a787568c4584536f"},{"path":"maps/gnomeland-23.webp","size":625218,"sha256":"93c56698293f2b4e4ce3bed7e68e38539d8ac92acd514b05c4e65a1436198732"},{"path":"maps/gnomeland-3.webp","size":617830,"sha256":"d463a7194eafea16c01737cc44c590ebbb3de6605cc76fb1db73420654c20011"},{"path":"maps/gnomeland-4.webp","size":11744,"sha256":"9ef9e468319f729cb72e5b95fbf97c76caf16e7eb1d5c9d3f6c87300d5fe6d78"},{"path":"maps/gnomeland-5.webp","size":1195488,"sha256":"0eb3d22c6dbccddfbd58739a8d19fb8eaa29ed6eda495b42c6f412767fa0636e"},{"path":"maps/gnomeland-6.webp","size":761780,"sha256":"2de72b50a9da949761a12b5b547aeae4a60360a2274deb19bc2c071b113484d1"},{"path":"maps/gnomeland-7.webp","size":793658,"sha256":"5bc13510baab0705c8b7573f2a43c544505240f83b5095feb1f6abd7ca15399a"},{"path":"maps/gnomeland-8.webp","size":13720,"sha256":"11affae284ae48b824a46735e706124a3dbbecbce8cd0f4f39c56c3d3ea194b3"},{"path":"maps/gnomeland-9.webp","size":901268,"sha256":"6ca37eb6c4f36db426a4d5cf810f127c1f8f80bc14dec39a8acdb99a6cbdd6b1"},{"path":"maps/gnomeland_station-0.webp","size":604470,"sha256":"ed1ce15a8774d9fdfab46c8fb42654faa726f1d3d0bb2efd8b59124e01d77f35"},{"path":"maps/gnomeland_station-1.webp","size":372646,"sha256":"94802d6866a35c1a37e19be688663d56f7ee4b071e17faec40103e6e91d157a5"},{"path":"maps/gnomeland_station-2.webp","size":370210,"sha256":"791d15aa34e27660eab6e5fcfaa920ea780acfb146ecccfca0c207b784f18545"},{"path":"maps/goblin_0-0.webp","size":921556,"sha256":"5ff21bf08defe443affb3f0aa549b089936ab247f73b703b87f5d111211be46d"},{"path":"maps/goblin_0-1.webp","size":531628,"sha256":"05f53e6ab8149b9661223483e866b218b1331cc932bae57ba67a69928b4c47bf"},{"path":"maps/goblin_0-2.webp","size":444140,"sha256":"383a37c8158fe20f702723156f2a3c9764033ccfa43dfdba939082ddbdc14684"},{"path":"maps/goblin_1-0.webp","size":1056388,"sha256":"00076db5809829904b7f9b9c7bccde19ee80bb1d32d1a35d4132c64fe4114fd1"},{"path":"maps/goblin_1-1.webp","size":644490,"sha256":"8399e9515fce2a7e8f323e08a931f01241ce6af0aac0bb9808f8e3660dc76aee"},{"path":"maps/goblin_1-2.webp","size":368298,"sha256":"7784e4a7993081ae886e0dc43dbb4728dda9069dc03811c8088051dd3ccca14c"},{"path":"maps/goblin_2-0.webp","size":932920,"sha256":"f46c789188df96443002b1e399f445f9030db170cc4b28b6ffc61fffaf7abdd8"},{"path":"maps/goblin_2-1.webp","size":512198,"sha256":"54ce07da84b6d4898b200d43d8e90af1718acf1c7b61b55c5dea4d7c9aba8bf8"},{"path":"maps/goblin_2-2.webp","size":660454,"sha256":"c62a56295d5bef0ff8597eb9254dc3ebf568db2cd8ddbcda133f1ad70702c9eb"},{"path":"maps/goblin_3-0.webp","size":967894,"sha256":"1d1fef4391f765674d940d2439658db5041816369ba4ddfaeae3212f804e3381"},{"path":"maps/goblin_3-1.webp","size":493672,"sha256":"f563420c1625cebfdcea1547fe42a3606c9f95f83b48ec65c0655e905fe775bd"},{"path":"maps/goblin_3-2.webp","size":482016,"sha256":"dd533c8e206172955d4f2dac6762497f4f7de337158b9976a67bdf7df3a09d82"},{"path":"maps/goblin_4-0.webp","size":775422,"sha256":"1910c3f5a1bd71a3f04a157aacdeccfd2e316e8a7e9fcea5ba839c05187505aa"},{"path":"maps/goblin_4-1.webp","size":384472,"sha256":"369681213e73f422743717630d94a32a7003ff5532af0cfe2a7393799a16303f"},{"path":"maps/goblin_4-2.webp","size":416290,"sha256":"c7c82ea1e383c264380a5c3b0b68a3f4c1aa472817479fc2d6e1ad2cb6730cd5"},{"path":"maps/goblin_5-0.webp","size":902396,"sha256":"1cf255901bac099872fcc960f81185c6ce65bbefc83650022276cf05f2bf4628"},{"path":"maps/goblin_5-1.webp","size":465698,"sha256":"8cc2e9b9940f60240860afbbb9f97032a924a7ec671072be10eae5afb6350347"},{"path":"maps/goblin_5-2.webp","size":657032,"sha256":"627c69741b509ac7544e5213fecc0290a0561f353aac214d4304194617b6b05f"},{"path":"maps/goblin_familiar_0-0.webp","size":254582,"sha256":"097f81b6b95fe4400ee4ad9dd52bbbc53c991e96ce9abb9423b20791b7fc5dbd"},{"path":"maps/goblin_familiar_0-1.webp","size":131282,"sha256":"d4068870fe876a49325844f9a9f8834ebb9dc3d54008edb48d703b72fd5276c2"},{"path":"maps/goblin_familiar_0-2.webp","size":163232,"sha256":"c26e8ffd0666a94d2cadbfd20568c0fefc3812f77344614dfe83b73d89e95fd1"},{"path":"maps/goblin_familiar_1-0.webp","size":452380,"sha256":"bbb7a173b9ab70dddbbcd6f39fc0095467a4afdf6ac6441936990119c469e603"},{"path":"maps/goblin_familiar_1-1.webp","size":269018,"sha256":"8b429e901042255314b5cf2ac3e345d1a9008a7d9c8d1b667dd991d4b230942d"},{"path":"maps/goblin_familiar_1-2.webp","size":324644,"sha256":"2a6f7a77d9b1b4c5df6540a5addde7d4b01dbbd61566820f02c08fd535cba606"},{"path":"maps/goblin_familiar_2-0.webp","size":439712,"sha256":"b63fb6f8390878c1358691c98dc0dbe89b81e1ac63f79b106d3d129f74ec4906"},{"path":"maps/goblin_familiar_2-1.webp","size":212642,"sha256":"37a767c1cc82474c5a8f4d6c0567a0269e5c63acee31a5a8b1b49386e200e95f"},{"path":"maps/goblin_familiar_2-2.webp","size":251098,"sha256":"0cdb809a91ef0af7af7e9b3d3cb2be8f6579ef5d311001a14f2376ef6372acf0"},{"path":"maps/goblin_familiar_3-0.webp","size":247956,"sha256":"18028ccf40195e80875df124bf62e887ce484f91ef93a1eb61fd79fddda1efc7"},{"path":"maps/goblin_familiar_3-1.webp","size":144450,"sha256":"1bf85ffdad555d871d8e4cded2fe8b973bc6b93923dc98139f96154de4c04771"},{"path":"maps/goblin_familiar_3-2.webp","size":252790,"sha256":"b3a04570d9fe70d3a45774a2832818fa19600dfb6459c9188e5aec8960a2a2c7"},{"path":"maps/goblin_helper_0-0.webp","size":362538,"sha256":"7f4d9fcdbe9cb3253f5a4b13d15e9de696829f8e46e2f1981db6398ccd1beb9d"},{"path":"maps/goblin_helper_0-1.webp","size":211644,"sha256":"b78cfa80338a7ffb5cc8b674ecf5c85b1ed79c7b349576ae685bd997bf93c885"},{"path":"maps/goblin_helper_0-2.webp","size":180680,"sha256":"43d3b6f975db91dd4a5252d3041e2fa20e6db4f4eb2d7fe877de11dcabbd6f93"},{"path":"maps/goblin_helper_1-0.webp","size":424614,"sha256":"b7f20ae3d66212527bb99c9718da0496e250c9443fe2ba37d9bc7149d018a08c"},{"path":"maps/goblin_helper_1-1.webp","size":267980,"sha256":"efa16c451837c9234051125e7e17f5a85c0f84c8af3c872d3692772af31484d1"},{"path":"maps/goblin_helper_1-2.webp","size":202652,"sha256":"185bfe1cd2bea0167cc1307f64d58743826c30f7b5aa296d2448a71c2bc65bac"},{"path":"maps/goblin_helper_2-0.webp","size":419770,"sha256":"35119c909ce89a6433d3968297fdfa07f7765078f6d5c26b3be67de55087dd54"},{"path":"maps/goblin_helper_2-1.webp","size":241526,"sha256":"dc29b35612f92f265c123a83707d78c63a0c841271c6c8f398938aa3b257a1a9"},{"path":"maps/goblin_helper_2-2.webp","size":152390,"sha256":"297b74cf2dc49101c476c299e06ee4e9a30ff4dfe35bfbcfc4bd60cd1dc27626"},{"path":"maps/goblin_helper_3-0.webp","size":288134,"sha256":"8571dc6ede444e82ad7fedf8968a3c05a731a71204b800542f3378ed7943b6b7"},{"path":"maps/goblin_helper_3-1.webp","size":158996,"sha256":"37663ba0bdd35a20983537222e49f415cbbe42de7cf3e36ed3fcb318cc27cd61"},{"path":"maps/goblin_helper_3-2.webp","size":233414,"sha256":"7b739812d9fc5eb002955c33baa1b7a084f74a7c2b5e858824ea52d4def1a49c"},{"path":"maps/goblinville-0.webp","size":18086,"sha256":"98afb7a26a93bf5658d18a005e18927e9bccd25b42b96f13b3dd09ac817f8890"},{"path":"maps/goblinville-1.webp","size":1206816,"sha256":"1fcf3eeca903cf314810734ee0e82e0767b646ec1c8d1bbb7452cff47d163a5a"},{"path":"maps/goblinville-10.webp","size":683648,"sha256":"b1fb98d994ad1fd778254b8a829757caf4bdaf837ad5359a8eee61ee1fb538c9"},{"path":"maps/goblinville-11.webp","size":569188,"sha256":"96ed2d3bb5fa3034504546811eb6fdfd9c8cd524ac35b4ad3fc88284316d8524"},{"path":"maps/goblinville-12.webp","size":10016,"sha256":"ddae8ac87130ef8a129209626ee443b5993bcea864fd75fccee8f7c367a3e712"},{"path":"maps/goblinville-13.webp","size":1018640,"sha256":"8a7cb22319b46aed7b8599eb5f0ea9f2847c987968ced20257305d4345be47a8"},{"path":"maps/goblinville-14.webp","size":666864,"sha256":"bd837d8dcde2b1132d677fa4706342511064deca466a74175f0face54c4844d3"},{"path":"maps/goblinville-15.webp","size":499574,"sha256":"537d703529085acf2afc976e04a9e187f9376459cc5384dc52ba27faffd41e00"},{"path":"maps/goblinville-16.webp","size":15408,"sha256":"396b0d98616c7dce49f26656967a11611b344a05b38e23478b02d677127b792a"},{"path":"maps/goblinville-17.webp","size":1016040,"sha256":"68b2790310abaed86d9c28f3764c9578c45e386bb8078046ad60f73b18adda1c"},{"path":"maps/goblinville-18.webp","size":635252,"sha256":"18a9d439424df44ab493fb66927c28c915e8e87b91f095afd635801d5b07c2e7"},{"path":"maps/goblinville-19.webp","size":692646,"sha256":"cb2004640c7094e378ee5d75e2d91d25535f932b00b5f52123262eeb1461c7f5"},{"path":"maps/goblinville-2.webp","size":581824,"sha256":"cd2f76c1788f4c65c78ed9de882c2aaadfe20f7c6318bca55eb7f69ce9cefe3d"},{"path":"maps/goblinville-20.webp","size":1240352,"sha256":"42c6ce007cc595bcfe05ec83569d132a8eb20e628a8269b9c712092f73d58b71"},{"path":"maps/goblinville-21.webp","size":781812,"sha256":"a46510fe0600db8c103c717e98f4d491de6efadb99d2b002f5d793c8661669ed"},{"path":"maps/goblinville-22.webp","size":504178,"sha256":"3350ba050792e16ea6a32c18be0d0a4617ae44ff0a8bb5d21e185e131b856007"},{"path":"maps/goblinville-3.webp","size":598290,"sha256":"554674f59ea476fe98db169a5b5f2854f5497e8cd1274ca33a2ec653d0dd7c1f"},{"path":"maps/goblinville-4.webp","size":7518,"sha256":"6edd7d51c4f880bbd98b86c6a2b57f012f94b4023bd56d29b382f9348879751d"},{"path":"maps/goblinville-5.webp","size":1305334,"sha256":"f55d312542f99ce877c69b6905bf1cae5d4cb25d269afad028e0bb5e307e7d7b"},{"path":"maps/goblinville-6.webp","size":870012,"sha256":"55271e50c58767b6734ef8c14433b563c2bff6e62d34e0a5286d54b1f58a9c8d"},{"path":"maps/goblinville-7.webp","size":559524,"sha256":"e4a66d2af04e44ce89ab160c705db026720ad408e502c85574653e759459d7a7"},{"path":"maps/goblinville-8.webp","size":8824,"sha256":"761ccdf39275de409f6698c0f4c4cc863f23068c7eb9675ad44355d39f5e20d3"},{"path":"maps/goblinville-9.webp","size":1109288,"sha256":"706bc9ae5393da8161d19e49d0cdbb7b4733017f028d2fe966c2c79b7dd63689"},{"path":"maps/goblinville_station-0.webp","size":816508,"sha256":"deaa0ab2467d833732a3188585fed0f40c0fb8907f5acd92c8c2889995aeae0f"},{"path":"maps/goblinville_station-1.webp","size":542928,"sha256":"426366b257cae185067ff0bd17c6ebbbf95fd779929e97fe5358ecb0de52ad19"},{"path":"maps/goblinville_station-2.webp","size":428034,"sha256":"390d20a49c2c1ff6a27a7daf5a826c6431190f75498d8be617356ae0e8a23562"},{"path":"maps/grove-0.webp","size":287142,"sha256":"28766709a089b4e6335ada60891c84c806ead2b332ddacd535d848b15937e7f2"},{"path":"maps/grove-1.webp","size":1593420,"sha256":"6a5794506842afef34a85c0fb907681f03646053f2168f68f980f9cc245d78b1"},{"path":"maps/grove-10.webp","size":709230,"sha256":"063ac7d08f27d50adba591033f58164bb1823ba78d4144b94700ae339fb3ec12"},{"path":"maps/grove-11.webp","size":627862,"sha256":"1338743d11424e161bb3ae7671bd8cc6047c2208f67b93c9509ecbf0d0ee4513"},{"path":"maps/grove-12.webp","size":23800,"sha256":"3dba035f62142bacac3e0ed951dbd608494445ac6de5f689a3445e2bc2df58b1"},{"path":"maps/grove-13.webp","size":1233696,"sha256":"4ba800ea985c015dcccdfd4b9c70b71cf9185d0aa9876aa1f1e32579b39f81b6"},{"path":"maps/grove-14.webp","size":606470,"sha256":"3c88714d33495fd7a4fd25a201b3490bb124498814131019fc2e32ba6107940d"},{"path":"maps/grove-15.webp","size":567726,"sha256":"76d47191476979cf7e58b4d08dfa28bd4672b9e5c39c0a24cbdc8c36907a2760"},{"path":"maps/grove-16.webp","size":100504,"sha256":"22779ab051c24b3bfe4ae7394c74ed8589a2c6b0fe11c412b066f0eaf4d89083"},{"path":"maps/grove-17.webp","size":1610482,"sha256":"5947a2f6c2932786d41f04400cfc1e2709b069b22c4d7b4881a2c935a9408014"},{"path":"maps/grove-18.webp","size":563716,"sha256":"9ef9be39dafe75a980c849c01f9ca16f54a3edc69eeb1db9fb3f3bbc11db03d5"},{"path":"maps/grove-19.webp","size":609772,"sha256":"f7524e52c713f781506ac8f76b3760ff2d707ff73158044f4f24e31dabc456c0"},{"path":"maps/grove-2.webp","size":526732,"sha256":"d85b3aa42511025d4e7314976962daa1e9f8255171bba3bee11b7b9d9c3b151c"},{"path":"maps/grove-20.webp","size":20846,"sha256":"b20908ec7bb463d18c6e315d59e48a947767750b3b035c71f719832255df0ba9"},{"path":"maps/grove-21.webp","size":1207642,"sha256":"81bfa75cd071319d19470534c17931d85634d3ea7025ed8b5fe4dae75a358d57"},{"path":"maps/grove-22.webp","size":705790,"sha256":"fd078e755c784cbf59059aafe3622102a3ccd9b37e105f0fdd9c48d2eaead90e"},{"path":"maps/grove-23.webp","size":666368,"sha256":"e45d5c7bf0862b1ff703e629910840d1de6b00cf7b51980540373fb949ad1085"},{"path":"maps/grove-3.webp","size":639798,"sha256":"d2b8604c7bf53cbfd559af3cd1dcddb6a1c13099e37cb77c9fe4278bc82e2dd2"},{"path":"maps/grove-4.webp","size":33998,"sha256":"65ff1713b0c392766c50154f546892493b1bde5db7f638644d06486fcb64b3fe"},{"path":"maps/grove-5.webp","size":1242668,"sha256":"063ffb53bdbe26cdefab55ede07d397b9c3686760f58dafb802adae86474a3ca"},{"path":"maps/grove-6.webp","size":417578,"sha256":"ff069e97796bbb5cf9668bba6461c74bc9acee10d57538a61f730cea2941f9ca"},{"path":"maps/grove-7.webp","size":472708,"sha256":"7891e87ec7d57dd8410037b59e1066c71990db0eea8d1f66277097098174b6c7"},{"path":"maps/grove-8.webp","size":43774,"sha256":"47ebe004cb1a0c0bdf0b73cbf79053e3be9bb5320a0b356fca2d0969a86f68a9"},{"path":"maps/grove-9.webp","size":1397078,"sha256":"8a840894f5756a46487895859557be442e737217b4a652f10e0709b91a8b8103"},{"path":"maps/grove_station-0.webp","size":836574,"sha256":"058a7ddc93874b491d6f329d1c19d5ecd9c3da011a0e8bfcfc689721c23205f3"},{"path":"maps/grove_station-1.webp","size":446526,"sha256":"6c8e7d37bfd5481ebb3d58533ab0f2cb093694938fd1da674aa74f29894e0e6f"},{"path":"maps/grove_station-2.webp","size":591600,"sha256":"15c3d09b315ad7e1e9db6dad35fbe2503abe9a7bb42ae67187f0ad843b24d1ec"},{"path":"maps/guild_station-0.webp","size":1081432,"sha256":"c1c0878d22992733333a75b98c101c637aeec4191425a0e7765360fec6ddf465"},{"path":"maps/guild_station-1.webp","size":466696,"sha256":"33c2ede322997a9ac65c33583f16d727dade5be531e3ecbd332d323296289e44"},{"path":"maps/guild_station-2.webp","size":376802,"sha256":"769098773f80bb7f10631a222d940bead5ebae9cfbac2828286cc5c5dca445fc"},{"path":"maps/hero_0-0.webp","size":620238,"sha256":"ec744cebc163f2728499668b21c9bd409c1c6dc69c5c6c7a94c679d2e6d5b387"},{"path":"maps/hero_0-1.webp","size":369060,"sha256":"fb87bd5ea00c29c86a1d51912adc5be57b8a151229fbdf062896e245ad180870"},{"path":"maps/hero_0-2.webp","size":317422,"sha256":"0de235ce67692877c7d6f189bdf4ddc391954ca089d8aa770f822664a2d14acb"},{"path":"maps/hero_1-0.webp","size":715862,"sha256":"78a6a12549b7f8220505d9df6c013e5a493b5389e25ef3f9e73309936aa8848e"},{"path":"maps/hero_1-1.webp","size":435572,"sha256":"a436e1a03f941ffd93192b9bc880e00096f5a6e9d991562b4b4497426f367866"},{"path":"maps/hero_1-2.webp","size":399968,"sha256":"ff06b5f081a5fb8a57e59210146a171f4b02719551fa1b97732963b949a40000"},{"path":"maps/hero_2-0.webp","size":854128,"sha256":"4951ddf5639c9bcc325e48c64db328593504eb3c092069e2a84742b127c65e8b"},{"path":"maps/hero_2-1.webp","size":421140,"sha256":"204775c7cc27f16dec703d8c534953ced6c8f154ffb052a62d97def79ae280ff"},{"path":"maps/hero_2-2.webp","size":310598,"sha256":"062ce99122ba27c2e825999026ab764435c1592d4ebf199d908170c7263cc904"},{"path":"maps/hero_3-0.webp","size":732928,"sha256":"cbc58c35fde36c18d5a2b8027fb31df19237c5d37b11a088f347df186c9c02d0"},{"path":"maps/hero_3-1.webp","size":415160,"sha256":"0670f41a404963de1a3e07dff96d9cbfe602c65829c9d8fe7b571de7eaaff52d"},{"path":"maps/hero_3-2.webp","size":297284,"sha256":"b2cd90c459724d81d8e6557eee28fa289c068811fe14dde841a728ebe1a261a4"},{"path":"maps/hero_4-0.webp","size":567998,"sha256":"203bb36fb2776eda4a88149c765c25dcc06743374847b9818aac44cecfdf97a9"},{"path":"maps/hero_4-1.webp","size":267194,"sha256":"63d31d93709137dafb8748f0d43adabc6d3bc67cb21ac65c37a1be1f7cac26b2"},{"path":"maps/hero_4-2.webp","size":181768,"sha256":"11472d9b9161016de714804a82203e94d47ac7730b3a68e33f97b1ebda84261f"},{"path":"maps/hero_5-0.webp","size":729662,"sha256":"016eeab9a81231232e0f9e7417ede3189e23e0d0e75ccb4979f1a888a6b48f9b"},{"path":"maps/hero_5-1.webp","size":449116,"sha256":"6600394f113ed6ccb444ef79961eeabaa62eeac8ae5aa8817a7015c69c5788aa"},{"path":"maps/hero_5-2.webp","size":449456,"sha256":"c0495c8ef08a1db640ba0f9572c5022b914e6abdae7d036bae32199656566835"},{"path":"maps/orbital-0.webp","size":7518,"sha256":"6edd7d51c4f880bbd98b86c6a2b57f012f94b4023bd56d29b382f9348879751d"},{"path":"maps/orbital-1.webp","size":858434,"sha256":"51c5780fb670d9bdea073ebd2e3eb71d39600bfd4d34b3c8f8eb410d76f36736"},{"path":"maps/orbital-10.webp","size":522384,"sha256":"f911339d7447881144947822a053166a47b0698ae88ddac3c92489d7659462f5"},{"path":"maps/orbital-11.webp","size":441412,"sha256":"20fdf5a14856eb8ab326d26bdd9908e32827fdc72d6f2acffd457c4ff80ce840"},{"path":"maps/orbital-12.webp","size":10758,"sha256":"f1bd0b505c5863131fd73d22657a6a4a89fe41182e30976baa194b20c1d832fa"},{"path":"maps/orbital-13.webp","size":979608,"sha256":"6cc346c243b7e4fb67b61a14fa47df2e8d749dcb81eb31fc78cfd012a8147650"},{"path":"maps/orbital-14.webp","size":661476,"sha256":"7a627074179738a9fabf0c282a4f65ed21d69786f78d0edd04aec2caab156deb"},{"path":"maps/orbital-15.webp","size":501890,"sha256":"cc68fed224d7fa17035987dbc120131a6af3bd20ced8902855f2361dfa1d0fc7"},{"path":"maps/orbital-16.webp","size":831184,"sha256":"bc7c8b29a146d3579d6c3c6942068ea998b268d9a242c68b6e959b58f2465ab1"},{"path":"maps/orbital-17.webp","size":538856,"sha256":"3e09f64e38689931a9b71a569645f26f4205e4f28012528b134d4eed1cc4f322"},{"path":"maps/orbital-18.webp","size":358326,"sha256":"7b8a804b360dc1c3b331b942a42461f8d5789fef2dd19e3310cafb27a89d704a"},{"path":"maps/orbital-19.webp","size":20588,"sha256":"bfaf5a8b62d4b1d121f4e094b9ceb20cbce7def403968926aa7e776bba1c137a"},{"path":"maps/orbital-2.webp","size":629708,"sha256":"a5ea513abbc66d8763f1b86243ea1d8695ef90c43d20465363815c20c55910e7"},{"path":"maps/orbital-20.webp","size":693938,"sha256":"4bd35be5ac052305e04e82c4e944a3929b58ae41fb4e06d8b2c4a8cea2df60fb"},{"path":"maps/orbital-21.webp","size":481196,"sha256":"b8570e5c543ae66c00bfbeadfcd619fc022312d4f53bf14ec517252a6a69bac6"},{"path":"maps/orbital-22.webp","size":380444,"sha256":"a3e6fdad80584249a0fb1afb2ca7c821fa1f0a82bb4cb6704312871246c7cc0f"},{"path":"maps/orbital-3.webp","size":353782,"sha256":"74a4943ade040c643d9fd6afdad86ec7e7e677158f579decb11e05619a6cfa70"},{"path":"maps/orbital-4.webp","size":11888,"sha256":"9d86aa682bb43bb4f47b607f452472f1cf377346ad069a6b7e0ba9cdc29acdb3"},{"path":"maps/orbital-5.webp","size":731910,"sha256":"eab7be9528992a5d1ed7c0ec15e9052740728ba253c778180fff81ee7fb14cfd"},{"path":"maps/orbital-6.webp","size":500106,"sha256":"17c50fa2680fd151df7bc3cf26ad088671ed9c7ba0dacf0318cdd6d30436d4f1"},{"path":"maps/orbital-7.webp","size":429134,"sha256":"c0d188aa849c67271925c1ca2a44dcdd05081053387db5b86ce6156e1aac781d"},{"path":"maps/orbital-8.webp","size":7518,"sha256":"6edd7d51c4f880bbd98b86c6a2b57f012f94b4023bd56d29b382f9348879751d"},{"path":"maps/orbital-9.webp","size":963034,"sha256":"9e68b2b1c57b84e966717ba4ad4d71e42ad39fbc47188d037db5f6ee9d9104cb"},{"path":"maps/orbital_station-0.webp","size":424938,"sha256":"8e66c2e1a65ebf212324f66ce7a5818d72d05c3b3807393ade914e3d75411ab9"},{"path":"maps/orbital_station-1.webp","size":280090,"sha256":"4ddf45f3e8c7fd1495f21acc8e22bcadf2d02f2a056c782803a64cd6f4123a76"},{"path":"maps/orbital_station-2.webp","size":292110,"sha256":"a0f7ba600ae3cba44ab900db5a6f5550caf4a10accf680de8b317abb787078b1"},{"path":"maps/professional_station-0.webp","size":383194,"sha256":"8b50fe67a762718d98a2b4a3a304cd2ea5c5c0424f01ddc114581a64310124cd"},{"path":"maps/professional_station-1.webp","size":245246,"sha256":"41deebae2c3bfa749403eeac644bb47fa466a1e043da37cf60b72c01ee050049"},{"path":"maps/professional_station-2.webp","size":154730,"sha256":"24bcf11483b3829dfa9cd70dcff7984f6697f06395522c7dd3e0c5bd1c161068"},{"path":"maps/robot_0-0.webp","size":642170,"sha256":"f14787fbe2cdad45495a319dccde3c5e775362e0309f660ea4d6ecca539379f9"},{"path":"maps/robot_0-1.webp","size":449242,"sha256":"528ed37b02a44cd3b570998d2507fd22155a3fe925b269e14513282279975f65"},{"path":"maps/robot_0-2.webp","size":359686,"sha256":"8b939a718b024e114c5592172c061b1b4dd0bd053281d7b6ae9fdb656b751e14"},{"path":"maps/robot_1-0.webp","size":772738,"sha256":"08c16aa34fe1dda47f3ccf7250084021b7f3550f8cfacc15c710c49ca1a2fa35"},{"path":"maps/robot_1-1.webp","size":584954,"sha256":"31490010994d3e08c3f66dbf6f1256933d21be5cb9734eaeb12b2f9823e80ce2"},{"path":"maps/robot_1-2.webp","size":364954,"sha256":"b3db655544c7fbd79697fcd878ebb2cbca25b88c79835bfb76b3337e45140c6e"},{"path":"maps/robot_2-0.webp","size":840094,"sha256":"96e62f1ea8558ddeb7d7b9d2edf7465f66e88fd55ba211a8e29d0daa7aac7824"},{"path":"maps/robot_2-1.webp","size":619548,"sha256":"1e4ae734895b1474960a0dda4a304fb92d987e2218d9c3e9e9639030b2a248ea"},{"path":"maps/robot_2-2.webp","size":475364,"sha256":"4f823d9bdb8751fa1e23a8ef9c551281c8591574541f69c592e4230c194bee9d"},{"path":"maps/robot_3-0.webp","size":723962,"sha256":"655866634e8e89ba25a939fad8e0944a2dcc9f539dfd60fb5f7bad66979d0a49"},{"path":"maps/robot_3-1.webp","size":402166,"sha256":"c4d6ac84714603769c1ad90ed49ed5c3ffb22fdcd32b4d07d87e20faf30e9146"},{"path":"maps/robot_3-2.webp","size":289056,"sha256":"31fd60c02170b6ee6e864d9817867b7101b9cd15b98aa65f57b2b9cad073fd65"},{"path":"maps/robot_4-0.webp","size":728282,"sha256":"2a8f936665591df3eaf1008d16963d703964a58d3900b60c7d8bece3b9030d97"},{"path":"maps/robot_4-1.webp","size":486806,"sha256":"b32815bf0e41f87b4e6612cfe09914051f77614458f3d2883210efec51afd37e"},{"path":"maps/robot_4-2.webp","size":368354,"sha256":"05446aa63fc67634a539cdb64db02771094ef006d7733f2c49966a6d910a0863"},{"path":"maps/robot_5-0.webp","size":1004228,"sha256":"cfa66c04d39d3db002efbd8f8b6b678c009a0a18ca06f3cfe2ef05a7528b70e2"},{"path":"maps/robot_5-1.webp","size":434160,"sha256":"5c4dda9b1d31f0bf9b571980e219f0fc21da34e5a916b9ca71657c2220ef8280"},{"path":"maps/robot_5-2.webp","size":427160,"sha256":"4c7cdb9e2231208c1fd9fd9f7c1565fa4417239f52e4d2ad7552949dd7812882"},{"path":"maps/spirit_0-0.webp","size":940966,"sha256":"d1187391e8c57d6cbd9be0963ed98d979b88f226b5ded8c4fd36d8f85ad693c1"},{"path":"maps/spirit_0-1.webp","size":467260,"sha256":"a5ecaf147ab63dfaca94563c92834f266f63a3ac7fadd34994bef6ae2a5066aa"},{"path":"maps/spirit_0-2.webp","size":427934,"sha256":"0821e96acbd2f7a5f20ad885b9f2374c5dbafdbd601be076b062dc65328069fe"},{"path":"maps/spirit_1-0.webp","size":647336,"sha256":"d4de9d7a07d9772b944a753197092deb51ef371b712ea6075ecb79397538d0e3"},{"path":"maps/spirit_1-1.webp","size":433160,"sha256":"0189d9bf8e53032a0a44e8cab8029c006be3775c324b249f95223cc8b458855e"},{"path":"maps/spirit_1-2.webp","size":411750,"sha256":"ffdc9ee11313b50834a40c347b7df598ea6e7a1075bf3635ccc3a19b40382f64"},{"path":"maps/spirit_2-0.webp","size":513706,"sha256":"129ccc96bfe9c1a7ce0ba2029fba214d887cd4ce0dcec85dfe153e6149580539"},{"path":"maps/spirit_2-1.webp","size":325162,"sha256":"da162f0d9027c6a3b52113538dbb2d12ecc9343e34e5cd75ecf1ce198bcec390"},{"path":"maps/spirit_2-2.webp","size":520624,"sha256":"d78215123109b6838bca3da6b53008b53e1e64858f88dd5d5dccd85feba95ecf"},{"path":"maps/spirit_3-0.webp","size":611664,"sha256":"5043b7099c60edbf999007e6977bfe0090305cf7251c2df3adb4e2f37499ff1c"},{"path":"maps/spirit_3-1.webp","size":328088,"sha256":"86b19b3f98df13fc469ca84bf4806644f3f8bc147b995100f0103369550497b2"},{"path":"maps/spirit_3-2.webp","size":599962,"sha256":"cd7ef2badf9198161430a8431e8be37b543ad9a78e591c471c7923e02ac272ab"},{"path":"maps/spirit_4-0.webp","size":848226,"sha256":"9a0af7a45d5436646f7fd3bde14e6f33d3cc35c3152e1a8dde49252f6ecd301a"},{"path":"maps/spirit_4-1.webp","size":446746,"sha256":"ea152420ff9020050bc6ef656717c6b2af2435687edc88dacd180ec1917f7b7e"},{"path":"maps/spirit_4-2.webp","size":406998,"sha256":"7fe9fca0e77ba9569a3264c3a8e8b05af79fbe4ec50949cb4ab0648fef7e6406"},{"path":"maps/spirit_5-0.webp","size":863178,"sha256":"f81fa2753b5aa6f7a795e9d9e293f07763b85f383360ad3a7f9c8fba0fe87de4"},{"path":"maps/spirit_5-1.webp","size":435894,"sha256":"45fe4c1fc412e05a23cac25d502d180f040d946839cbe05e3ab8a81dfae96374"},{"path":"maps/spirit_5-2.webp","size":475850,"sha256":"8403fdd03c08f266971602783b03976c4814c8879c2a448bc16ddbba1470aee1"},{"path":"maps/staff_0-0.webp","size":862582,"sha256":"09cb799a4e4c76a8181777ea9b155a8a3ed34761fe6574c6d561f7575127139d"},{"path":"maps/staff_0-1.webp","size":513224,"sha256":"acfa53ec2dea5d4dba93191c2aa908ecbb844af1d798e7b136ea3ec65557f539"},{"path":"maps/staff_0-2.webp","size":359012,"sha256":"147cd4862c3d83dc7ec0f78eabb4b78515a7277d72945ae094043937f4002bad"},{"path":"maps/staff_1-0.webp","size":594434,"sha256":"90718dd141513dda81734f05b56b6b2d48a7b0e60212d24df3e273b3a30bd525"},{"path":"maps/staff_1-1.webp","size":344522,"sha256":"595a182b2d6a34447f741cbb2c07a63b3885ffa86d94243ee0522a68859eaca7"},{"path":"maps/staff_1-2.webp","size":427750,"sha256":"70088a44925c0ca377eaa3c69f6df48380f56deb484929a09efe2f1762153604"},{"path":"maps/staff_2-0.webp","size":703294,"sha256":"5f80e2d2b4ac3707ecd33a3c80e1a33a8134ebbc34a50567173f7be5e5dc1c2f"},{"path":"maps/staff_2-1.webp","size":471016,"sha256":"b3ec4ac3041451ab6a997617f6acfbf95ee9456e5c0ac18d264f50edfb240191"},{"path":"maps/staff_2-2.webp","size":409202,"sha256":"f027b6ffb413a09054d69547638240f0cc1ac636e5e6ef74d97f1582e8ed6ccf"},{"path":"maps/staff_3-0.webp","size":614812,"sha256":"f4b1cd4f59aaaeb0a8716da74d5578e3425d27832f01c7a9a8d6732fca74850a"},{"path":"maps/staff_3-1.webp","size":375724,"sha256":"6c0f7008b0a2461bf0a9d1510db3a512e2b34b47da67aef0e2763e3731788016"},{"path":"maps/staff_3-2.webp","size":270170,"sha256":"70a934bea9d45412c8fd0b8b347ecba74eaa2c2a16a1e57b8bbc31335fb95213"},{"path":"maps/staff_4-0.webp","size":684000,"sha256":"67e4e671add03737e9891230d76d00456a2606e125a8656afd2cc87329f7932d"},{"path":"maps/staff_4-1.webp","size":444248,"sha256":"196fc8218f546733040eb861d53a64620e897d162a29ece3839d3cdb254f026a"},{"path":"maps/staff_4-2.webp","size":386960,"sha256":"d0c62d3c58951c7f549edccc46ebe2405e8098eb02c581efdf2087b9bde63e4e"},{"path":"maps/staff_5-0.webp","size":661140,"sha256":"890c1d54fdb94f1982f07d6775c5891c2314d73be347d7fe413cd7ad654a09a0"},{"path":"maps/staff_5-1.webp","size":354836,"sha256":"c44bef8b639f4ffab52e1dfae1783c81ae889f3d83f299685c66774f3d58c465"},{"path":"maps/staff_5-2.webp","size":342070,"sha256":"8278c6ce0ad10581d49369e1f2e7f8d59f367d814d34bf9cc134017630e245f0"},{"path":"orbital.glb","size":9155296,"sha256":"a7d273c26e61a5838844db85c111c86a910e6888f223d7a80599ff02cf505a76"},{"path":"orbital/dark-base-0-0.webp","size":129456,"sha256":"0f2d059ebb3553b11343b188fd5c5d948677de5a7e3da6fd1d738882c5594860"},{"path":"orbital/dark-base-1-0.webp","size":175700,"sha256":"e836d7adfad75ef0d5899bcc7f64eed99beb479afb43635326e586fdeac07f4a"},{"path":"orbital/dark-close-0-0.webp","size":374142,"sha256":"4aa08f854227c73090320ab83ddf7739b1288c1b52596e924f195fdf16fac861"},{"path":"orbital/dark-detail-0-0.webp","size":198284,"sha256":"59cba07c8f613c4f062662107aedf613bd171618988663458ce77ce1fbadf2a9"},{"path":"orbital/dark-detail-1-0.webp","size":241912,"sha256":"5fa6729de183226272a18bce162386a3148dc8f369467fd7204d246b0841437b"},{"path":"orbital/light-base-0-0.webp","size":141848,"sha256":"e94b66346121b3498c8a981e4eb944518dc6202b2af206948119792f78d2bf96"},{"path":"orbital/light-base-1-0.webp","size":200002,"sha256":"99e15b1294508363e790687ec71c8012cdd3e4335b7a9d13a45dc541d5287009"},{"path":"orbital/light-close-0-0.webp","size":374804,"sha256":"149f44f1a751b72e2bf197703d920dedf45cb4d3a20cfc5df9bd181cb5c4a3de"},{"path":"orbital/light-detail-0-0.webp","size":217464,"sha256":"9709b96f753b730da97aee11e04e7d5a113ed7b14d8099aa0c2c1ca3afee3139"},{"path":"orbital/light-detail-1-0.webp","size":255200,"sha256":"129503fb27dbec978933c031a604c1f4bff9b3547715e7ad4ab1100119153b03"},{"path":"orbital/plates.json","size":3473,"sha256":"7fd3e18a18548c8463abd118cb1e1f87d231c1613f94a952dec23b692dcf8992"},{"path":"orbital/sky-dark.hdr","size":36962,"sha256":"f23d7ce96f20020367fc61b585164b9146fd716ec7b5003020e66a2acfee60de"},{"path":"orbital/sky-light.hdr","size":36617,"sha256":"a4321a8a54de034d9fd59d92fca3dfb3eb5e3bd8bcf6a724ef631f44f129227c"},{"path":"orbital/surfaces.json","size":103,"sha256":"a93f1da79181b88ac44d199b2300c762aae484def1c22a1501bac7325e5d2cb5"},{"path":"orbital_station.glb","size":1397364,"sha256":"2cb4ba64a76caa4ec430b7f4d7c82df75a5b14f5bf59e5b680716a6c2b4cc27e"},{"path":"professional.glb","size":829544,"sha256":"d1b2c29c4e4f2d3dd43798f79c1b18a1e75ab7e6061f3da5b430b99163fbe514"},{"path":"professional/accent-color.webp","size":37284,"sha256":"a801c6429a2671cd62248940f69d98ed6a72cf7f43a7c880cda3aaa820476e55"},{"path":"professional/accent-normal.webp","size":10908,"sha256":"8d92448bf3339091c5a8630156f583a059c3eef960c25d8a521a7989f7a5fc2f"},{"path":"professional/accent-rough.webp","size":6228,"sha256":"6e33be689ce65b15c3d58d02b5fb5e50ca62b65e2452c10e8be90d12b6b862fc"},{"path":"professional/concrete-color.webp","size":11844,"sha256":"b6ceb143c544a06af8251f7eb88be6d0f72e934273c28aa28b7fcc2f0c3e2140"},{"path":"professional/concrete-normal.webp","size":1974,"sha256":"ecf9c752fc23eed0c4e8a82d64a00c106b1ff8fd582523c7a357997fdbee3ad4"},{"path":"professional/concrete-rough.webp","size":634,"sha256":"b7438c51f2673cd6a47a7e8531684e491821227622a7a4e63b3d8d7afeafe831"},{"path":"professional/dark-base-0-0.webp","size":154076,"sha256":"8219ac5fb9aeab5ce729159f84f3dcf4f62d9293b7b04ce1ea883a2565016edb"},{"path":"professional/dark-base-1-0.webp","size":182038,"sha256":"04698e517a885e9fcada877fb10699732eca7585fb4e158e7a3c43ea2ad0029b"},{"path":"professional/dark-close-0-0.webp","size":592274,"sha256":"9561467ff19ab1851b1d2818883d0433d2bc21f015e495c3f21a5d961834b8ba"},{"path":"professional/dark-detail-0-0.webp","size":183862,"sha256":"adc8781a1c5ebb6349f5b8d3d582b8a3c415d9b1b30dd3f3ae0aae7cbcb9c847"},{"path":"professional/dark-detail-1-0.webp","size":230480,"sha256":"b163cf6ac3d62bfe069e79733eafe74df6d4e49003f549394c5a1fb4fa65c4bd"},{"path":"professional/light-base-0-0.webp","size":172206,"sha256":"6012cb0762c64a87c68b71feeeed3cc69b8ae85808e29f089c483d7ce2c4d1aa"},{"path":"professional/light-base-1-0.webp","size":211402,"sha256":"0fae98e39525c11817c9e0877e2b5af6f9695c4f1a7a1eb9243d3214a1414794"},{"path":"professional/light-close-0-0.webp","size":971540,"sha256":"bde4822eeb04ecada1b12dcbd808d05134b05416c17f8d86e8e7dd3c0e999c78"},{"path":"professional/light-detail-0-0.webp","size":276826,"sha256":"9bd6c9acbe2863cb09ac99fdae2f3bafff7e891ccf436513479c07e0f11f3903"},{"path":"professional/light-detail-1-0.webp","size":337680,"sha256":"c5369fac38e2e727b072fb327a44a12f071ebec7e07cfc31109aeb58b0df6a79"},{"path":"professional/plates.json","size":3523,"sha256":"55645fc6ba89cee88c032faff61df354d259b3f6fcf4f71b5da8b4807976d158"},{"path":"professional/sky-dark.hdr","size":260840,"sha256":"6e296ea4e6d465c291dce7792ad5f8ff965b8deea4c24dd0f1c0decadb892332"},{"path":"professional/sky-light.hdr","size":358440,"sha256":"e2a11d8394eaad91f00f825b4d0181f28fa155a79e47dec1476d7366c203aebc"},{"path":"professional/stone-color.webp","size":16730,"sha256":"f81236b072fe4cf4b96c669081a412e898516eee8ab23294b7ce7c940efe78d0"},{"path":"professional/stone-normal.webp","size":2722,"sha256":"1ab67e805003ba033d4e6a269b76c87362502f607f0ac041e824cf5a9b6067ab"},{"path":"professional/stone-rough.webp","size":23348,"sha256":"fa4496b0fc135e143a28b253f348ca9f2988470c3c529d6884f905886d69069d"},{"path":"professional/surfaces.json","size":1107,"sha256":"3471fa2835378140c7a06cd5494294971fe272433f84a5d03542b44e332dd0ef"},{"path":"professional/timber-color.webp","size":22372,"sha256":"1eee4b1d660d2d9816eabee0cd8e9c575319d694c5b321406776ac901c974c9c"},{"path":"professional/timber-normal.webp","size":11574,"sha256":"20ebd8fdd3c15e3b4254eba9bda71f3fd6ad6929362cdbd671631eb61d944185"},{"path":"professional/timber-rough.webp","size":34338,"sha256":"0f576127bca68bbf5c8361a441690171cba7cdc80cefc0ae62e6ecceca9b47fb"},{"path":"professional_station.glb","size":1369552,"sha256":"4144a584d3bc9dda79fa0a55f2fefe57ce559947b66b9042b642372d15d87fc3"},{"path":"robot_0.glb","size":1680480,"sha256":"6cfa63d7c0364f11d9f141c2109a5156c5ea5d11c04fa1485ab1cb63d6511bc0"},{"path":"robot_1.glb","size":1775004,"sha256":"a83f16ced3347d5f51ba152813c1ae1392cae2e38d16c8bcdd39f78cb0d9cf5b"},{"path":"robot_2.glb","size":1848120,"sha256":"33773cb9b5ac977b76363f858b5b192f19a369a4527c873dd3a2a519eb0c10cd"},{"path":"robot_3.glb","size":1752144,"sha256":"50b6453b81a9c6b876ce3e8a315bbd72b0f78bba22f2cb28cd5e33fc1373dd6f"},{"path":"robot_4.glb","size":1852464,"sha256":"4ceec3831e22f328a9b9d713e8ee48b49c1d185e7e4fd94142f3bcf6ea54b581"},{"path":"robot_5.glb","size":1936136,"sha256":"6abd6a88248a409cf404ef37ffd5aa5c023b50447b4dcc8300c0c36216ab2fe7"},{"path":"spirit_0.glb","size":1845192,"sha256":"f4fe480d5fd1806ae31e69581f25fd7224742d4a24735828edc8adb2e5ca59bd"},{"path":"spirit_1.glb","size":1800916,"sha256":"1e5979e317196c9f67ea19e2cd5d34ad5f2b8d27e652d1fff50d02285b2f392e"},{"path":"spirit_2.glb","size":1698720,"sha256":"57955ee1368047523250e6c0ff401b6eee09fff45374415b579c7cd5df0dc17a"},{"path":"spirit_3.glb","size":1741576,"sha256":"b7a1482617ad5c4f7ca2df9740aeb38378e078c024b18203ab4c67fe4b7e6a27"},{"path":"spirit_4.glb","size":1867496,"sha256":"d0b99829c233a257b75e1eb80baae62cd2b89953dfa6984f1ef590f98dcd8992"},{"path":"spirit_5.glb","size":1892012,"sha256":"3b362e66946fb35d8f981243784bdfc2e4b695756d16b12a04e8fca853f8d0b4"},{"path":"staff_0.glb","size":1809880,"sha256":"0b81edaac2eea3d5dae5247be9c7fb17af4e229d5be2847ddd78e7b535a0cfe3"},{"path":"staff_1.glb","size":1702464,"sha256":"0b854bc22adcdf4dee9d609697806ed3f7e2901c044079fe5b316a86cfc9a6e6"},{"path":"staff_2.glb","size":1822452,"sha256":"0353b2721af5b89709b36efd79d01027e9d65b307bbd4b2bbddc4bf70484b1d8"},{"path":"staff_3.glb","size":1783640,"sha256":"f14ac796604593d027699406cad7a09ac65c6c3f55fb741d9a26ee553c8324bb"},{"path":"staff_4.glb","size":1820880,"sha256":"619ae261c812f0afc7fb41090e113296522ae6081c628f5b46b9325c0114973a"},{"path":"staff_5.glb","size":1799744,"sha256":"f760d5076d9ee6101cdc3479c00dfb46a37497892bdd0e40e6ca07e02bef145b"}]}
|
|
1
|
+
{"id":"d4de28baa735e3e3769aa7aada1cf34c8a4fbecd0db433b8f0173e6a4df2caa7","archive":{"name":"yard-art-d4de28baa735e3e3.tar.gz","url":"https://github.com/oddessentials/agent-guild/releases/download/v1.0.0/yard-art-d4de28baa735e3e3.tar.gz","size":267581581,"sha256":"780531c5d381941f5029d7b6e287e7e514b020ff17098b39481170e3a415b825"},"files":[{"path":"bot_0.glb","size":1054684,"sha256":"729bbdbddaae57c4340ba18ac9a7fd2e424d1ed1df8fbf8715e47490520ccc01"},{"path":"bot_1.glb","size":1041680,"sha256":"5bb627aef4c442f31141d085c83723e747a854c25e9cc667ff71dc0cf7182e62"},{"path":"bot_2.glb","size":1019484,"sha256":"79a18838d8a58edb43ce63cc7eb49c520f62cdad98c5ec12e136598508c6959b"},{"path":"bot_3.glb","size":1031960,"sha256":"0c24de7ce775902c257f385de0ff7efe45972d4c15f4ca8062b7cec8680a52f2"},{"path":"drone_0.glb","size":994620,"sha256":"7aef4bcaaf581e26ad439c13cfea7a40e39fc011e5a2ddaf80467ccd8e8b74aa"},{"path":"drone_1.glb","size":1010348,"sha256":"e7130cdcb0fc2a14781a067824068d4d0507dbe6d6587da46615a462608f0486"},{"path":"drone_2.glb","size":991048,"sha256":"3fdac4af5b367840266622db3c7deacae09a4af9d94df7ade75a4e98e2e1331f"},{"path":"drone_3.glb","size":1026312,"sha256":"df20f7543f9c97aa0e97ff4b8572375bcd435ffb8e46ec612ba9a26e4eef7cd6"},{"path":"familiar_0.glb","size":1079828,"sha256":"b204def3546f4e33772b829077241cfdd929f7b15ac56a4c3dbdcb9401f2ddeb"},{"path":"familiar_1.glb","size":1031732,"sha256":"1130f0e54bf55999ab6d41ac5579bac876ca8cf8aa020d3b8d010013533d588c"},{"path":"familiar_2.glb","size":1025408,"sha256":"3983d3883f6cbc8f7d614a88d21467e577dc6b17eba635f8bb2d178b99d692f1"},{"path":"familiar_3.glb","size":946824,"sha256":"5a7c3fa34245dccf558801608d8823d891b97ac885cad95057ba9c9ca604a9fd"},{"path":"gnome_0.glb","size":1826848,"sha256":"1c2e238ee8155f00fae5447e6ab99959e782a92f6be60b37ce6628b8b2260a4d"},{"path":"gnome_1.glb","size":1897852,"sha256":"e37ce53939baeea6396071937cb20cde424c73a06d716f3a37736d98e3852f72"},{"path":"gnome_2.glb","size":1782172,"sha256":"3fd39c6acf173bf628f4f47b85675dad59d009165b5ed28cc205e2f8a2a99c77"},{"path":"gnome_3.glb","size":1810436,"sha256":"75a073597dc1a7055d8626c482069f79e8c0c6f55fe3925b4d764905b7355260"},{"path":"gnome_4.glb","size":1724916,"sha256":"cfc5123a79ffe7a9b2a6de786442e950b76b67fd009e594e68b93ca04e5e0864"},{"path":"gnome_5.glb","size":1864276,"sha256":"a2af15c1ea4e6d3114acd1d79480ab165931c378cfc3f378097c636600824a8d"},{"path":"gnome_familiar_0.glb","size":1071816,"sha256":"c7365cb43735065fe4b99fb70f3c696a9512881890b0b9664bd79891ee7c30aa"},{"path":"gnome_familiar_1.glb","size":1049636,"sha256":"a70fe22130a171698165ba466ec7f685b9fad3286d6bcc367b0c100eb28b2ce3"},{"path":"gnome_familiar_2.glb","size":1035060,"sha256":"c512adfeed43afa58ff8980a94b37ca88060a52b7a49c0b91385ecd9db00bd23"},{"path":"gnome_familiar_3.glb","size":986504,"sha256":"aebe18c705c96be9a8fab0e0cad3f2039eb4d00add78543341ef9c956bd3b2a5"},{"path":"gnome_helper_0.glb","size":1073548,"sha256":"6d8d111a4a90e72b69a9449416ca87bcdfff79a13dd7f39b9faed8fc4fe50d19"},{"path":"gnome_helper_1.glb","size":1039180,"sha256":"6687203c0a5bd8c9057c481e0b91b3b1cb8010e712f61946e73c0573d84cb95f"},{"path":"gnome_helper_2.glb","size":1010528,"sha256":"459c1ff0a41c5db913be8930b5c3931e91a95970d472eda23aeba959290dd8d6"},{"path":"gnome_helper_3.glb","size":1028760,"sha256":"6dcf230b6ae9fb05e1cb3fb8473fb7e7608ae29cbd7b45410afea954169df375"},{"path":"gnomeland.glb","size":9470388,"sha256":"559d3854abb2c29ca569612b24423f8e5e965ed1ec11bf755afc65a214324d86"},{"path":"gnomeland/dark-base-0-0.webp","size":345486,"sha256":"0ad99acff62d65e57945530e7e0169991ba086dc177a7fa7b1db22aee15817d3"},{"path":"gnomeland/dark-base-1-0.webp","size":310710,"sha256":"73972f3fee4e647816517536abde9a720eaebe7b84b711d6fcb488364304abc9"},{"path":"gnomeland/dark-close-0-0.webp","size":1007594,"sha256":"636c58b29ebc02316331516a4f97bb3e009a3a883a567486bd079a229c95d222"},{"path":"gnomeland/dark-detail-0-0.webp","size":492798,"sha256":"55dd4db8908827ae9acd1a58258a1848a68eff412e1786256067c47edb85d7c3"},{"path":"gnomeland/dark-detail-1-0.webp","size":491968,"sha256":"9361918c276650eed451f62d8def12d9797b62b612e90b18be695c5588d63e59"},{"path":"gnomeland/light-base-0-0.webp","size":634540,"sha256":"8c6ebd61796125bdc12365338bc01b710132b47f59cbc36c31550e05e49186f4"},{"path":"gnomeland/light-base-1-0.webp","size":668326,"sha256":"88b5989472db90b2608ff75dd30248cefede57c153684f77f8fd700a612f9e75"},{"path":"gnomeland/light-close-0-0.webp","size":1537456,"sha256":"cbdfabadcdb9e4291151a0c2ee2dd063072fba79015e688a0a0192ac77eb16c5"},{"path":"gnomeland/light-detail-0-0.webp","size":1051072,"sha256":"ff217301527ae52236d12064494c32119b6a27c39d71dcc17a5df70e12bbdd38"},{"path":"gnomeland/light-detail-1-0.webp","size":1048932,"sha256":"2a1f6c28eeba9e8054a35ec1f8bbfc04fec7c175807aade43cfcf2f8900c47ad"},{"path":"gnomeland/plates.json","size":3493,"sha256":"a1e08160a0a122eafe46be4b3cbe69d083a723a62f7d1897f572568ed5e85171"},{"path":"gnomeland/sky-dark.hdr","size":330527,"sha256":"af5caa5a1a5d32ddd4daff6216f50860888f9328fd35a5e21d8d4c1d1a5f3148"},{"path":"gnomeland/sky-light.hdr","size":221480,"sha256":"5831990536832e0885a028c7f58ca421246c50b6ef7e0b2044ab5c8ab9bc25de"},{"path":"gnomeland/surfaces.json","size":107,"sha256":"83ba96a47bcd2d6582a4b6db3b4cdf70dcf880dd7e39a736272f49ea4d913ec9"},{"path":"gnomeland_station.glb","size":1418748,"sha256":"0e8abdf629af40de6cd600da87b8add45076e5e69bcc8995e8994deceb335aaa"},{"path":"goblin_0.glb","size":1811968,"sha256":"f788a9f5c96563e49429667747fbe2db4d873f51cb0cd8ef7ef8bb716ebedbf0"},{"path":"goblin_1.glb","size":1885672,"sha256":"dd10664e0a5910fb748f16eb379fe542f4d5747a05371399e6e266ec8dadc593"},{"path":"goblin_2.glb","size":1883624,"sha256":"ff9754cb6174a8d459b64dc3c0fda90a13749eeb88e58e3d15015d6c49b67151"},{"path":"goblin_3.glb","size":1910988,"sha256":"8f225f716333973f9f41a5d3602064de078ae9893af2dc1fe4d8787a7264ccae"},{"path":"goblin_4.glb","size":1830464,"sha256":"18a5d6cbf948f782ca0da5c6cb6650389f2bc39bf71bfa0a83fc4f3a73ae2f89"},{"path":"goblin_5.glb","size":1879540,"sha256":"90cacb62d20167ebbb3253bc1dc844b3f590225ea3a893be6d89c63adf83c51d"},{"path":"goblin_familiar_0.glb","size":1068020,"sha256":"c921ebda8dfc91445ec7a8067dc26f08822229c0fe076a31de904cfc196227f9"},{"path":"goblin_familiar_1.glb","size":1171748,"sha256":"5a711577d180228a1eb19c6128d845cc3c693369a19ed71c5e524c365c464c41"},{"path":"goblin_familiar_2.glb","size":1200232,"sha256":"66976f37a2b9f1f9bd2fce5d35f1ce80592b6e866f092b04fb562aec452c0d1b"},{"path":"goblin_familiar_3.glb","size":1036344,"sha256":"4ef274231372a83126742de74f47f8eb20da01f1294c3da51da483bfd64ad54d"},{"path":"goblin_helper_0.glb","size":1082468,"sha256":"a77ce0d324f5a49ee59668bd57c01835c8c4384e056ab144c01e607443aed51e"},{"path":"goblin_helper_1.glb","size":1174900,"sha256":"8974410da9fd22f36f09c0b4377fdde0f9615a7d6a80d44ae28bcde38a59d113"},{"path":"goblin_helper_2.glb","size":1137304,"sha256":"d2a088034bc5abf5a5951be1ab233542244aca0e656bc100bdbf3b25a21f74c5"},{"path":"goblin_helper_3.glb","size":1057172,"sha256":"022db26563511b3f781781806e9b23766f8c4a687ee9c43e600d481865c801f6"},{"path":"goblinville.glb","size":9759864,"sha256":"7e8061fce7c4656dd534206ef150088899f6526fc35199c60345031e875d064a"},{"path":"goblinville/dark-base-0-0.webp","size":168078,"sha256":"96113450d16c2ecb25164c0c1e7a7f29fc3f31fee33df9024e215db65521b82c"},{"path":"goblinville/dark-base-1-0.webp","size":207904,"sha256":"d158d8d52b7cec1502ff1ee9f65d07d5abaa4541de79b0131c25f29b344a614b"},{"path":"goblinville/dark-close-0-0.webp","size":321322,"sha256":"8af81d059f812ae52cf775b5a04110f94501ce38526e98d6f4057ea98d4f3024"},{"path":"goblinville/dark-detail-0-0.webp","size":238982,"sha256":"aa66b593179b4d55e6e98ae571b428f0cda4204b552f41b242565eca8aae1cec"},{"path":"goblinville/dark-detail-1-0.webp","size":283578,"sha256":"da5a76886fce6356d63aa913bd7aba69b7135295d82068f94189c7ea2bd78b8d"},{"path":"goblinville/light-base-0-0.webp","size":324142,"sha256":"894552aee3db8df320949ab2bab2497bba516cd14bcaaa89296b06961df102d7"},{"path":"goblinville/light-base-1-0.webp","size":306418,"sha256":"0906470f40fd57e3720f7478d11efc7908d22c7ac8101a0740441183333e78af"},{"path":"goblinville/light-close-0-0.webp","size":576852,"sha256":"c8a40b749a3e69fb914fb2ec7c83e25e124012bd8f6d691183213c2687029407"},{"path":"goblinville/light-detail-0-0.webp","size":394678,"sha256":"c370e894685beb2460a9ce4c17e28552cfae32cfc82ebd057ca5dc7a8051656c"},{"path":"goblinville/light-detail-1-0.webp","size":410482,"sha256":"6d5dd82157838e931e9529c428863bba12ce1fc7720e353c8512d9daa7de97db"},{"path":"goblinville/plates.json","size":3513,"sha256":"7bcd1ed4a5f8b828b300b040f9981f9353a15d78b1dda73809818e6b4f94f6a7"},{"path":"goblinville/sky-dark.hdr","size":319820,"sha256":"f5932da6c6ea962d3a75797912f9ebef2f846703ef64ed27960faaeece977158"},{"path":"goblinville/sky-light.hdr","size":350167,"sha256":"888fe1251a9960bf68ba573a042f28904c11fca04a6531600d72afb1cbb7d938"},{"path":"goblinville/surfaces.json","size":111,"sha256":"2aaa50d0ad07eae3519c3102381607d36a35b6d5363209c031259cddead4b3ba"},{"path":"goblinville_station.glb","size":1504676,"sha256":"7662a2aa5bcf922398d48c16e3eaef2c37a6560bdf16300bf6339090ce7440a6"},{"path":"grove.glb","size":10174964,"sha256":"e44689e73200244e1fe7b15e7bd2fafb0745ccea1cfe06f3a424174610b2f287"},{"path":"grove/dark-base-0-0.webp","size":196260,"sha256":"adf42e1ccd46ca8ae5fb680d11291eb7aa46fe06eee114dae7f6dd3390fb15e6"},{"path":"grove/dark-base-1-0.webp","size":207762,"sha256":"32fe8c94efbb16418fde7f5e86c08b224eada83f47decf2911ace889c387606d"},{"path":"grove/dark-close-0-0.webp","size":891668,"sha256":"56ef1c1833c6bebd5dcdf74ff497c3fb91cdc3a4c9c03a9219b5d2e9fc7a4b26"},{"path":"grove/dark-detail-0-0.webp","size":327516,"sha256":"03b9dfee7200c64e6041dd50fc92204b82597f2a80d30c50aea007ec6f4fcef8"},{"path":"grove/dark-detail-1-0.webp","size":378138,"sha256":"af17bcef3d4492917e678c76ae3112d39ea625ea1044e184bcbfd67cd3ec520a"},{"path":"grove/light-base-0-0.webp","size":878012,"sha256":"f9b7294a351d738909a8516474fb9fdb9f251c0023c460badb74c054ee4cb6bd"},{"path":"grove/light-base-1-0.webp","size":859660,"sha256":"6a0366718fa9caad095a3f7bf8cd2edb87a14dc5e6e20bddffd201714f264e62"},{"path":"grove/light-close-0-0.webp","size":1992158,"sha256":"5428eee71ca50f31b0865add5ff4239d2f2d45cb3b1c397bc6d1ff31bcb264fc"},{"path":"grove/light-detail-0-0.webp","size":1214830,"sha256":"48986f352282981d3d413005399ddb90707e7102916bdcbc0e66c02bec4244e9"},{"path":"grove/light-detail-1-0.webp","size":1230512,"sha256":"8698f0a8b33c65aa840b39fe221c694c2b567cfe79e903fee369043f98cb21d3"},{"path":"grove/plates.json","size":3453,"sha256":"4f87e4f7ce1d7518c71936dddfc22b49c4eb33ab455d0c9bee9f7b81a4f367fe"},{"path":"grove/sky-dark.hdr","size":321274,"sha256":"da271e6d921c7762feffe2c058e4bae84a3cd437800368ccf213ac376af3d392"},{"path":"grove/sky-light.hdr","size":304809,"sha256":"8a3f24a34e98e69ab340875fbcf6933c68e2043834ebde296ea9d555047a0955"},{"path":"grove/surfaces.json","size":99,"sha256":"85c078c742b347f8b06ce79ee1be0c7bb9b616030c2649d7ba6755a3baa86d47"},{"path":"grove_station.glb","size":1499764,"sha256":"bd1b868b6241f44ebfda5d81606a069b0bd36eaa622e4658e452256d3f99dccd"},{"path":"guild.glb","size":3417508,"sha256":"159b1aaeeb40bad42804427b33703d9b2cca5a446b7c9534fdc8de0997d6b800"},{"path":"guild/dark-base-0-0.webp","size":265912,"sha256":"8aded6714c563387d303f8e028765f3e5f44a585f5dd892b1df22934921df0d8"},{"path":"guild/dark-base-1-0.webp","size":285108,"sha256":"4d0db0358b7f6df5304eadf0daf961c95b54713a47904f33c47ec01afe11b4a1"},{"path":"guild/dark-close-0-0.webp","size":1503898,"sha256":"057566db9da66b2b95d89f8f7364ad08659a33d78cb9e5d71ae28de56d072603"},{"path":"guild/dark-detail-0-0.webp","size":626076,"sha256":"dd7f96d17d8415b1a548e68ec6b53ffd7e295dadd9924bfc3971d93f909527ae"},{"path":"guild/dark-detail-1-0.webp","size":708038,"sha256":"ccb37d3293469455f0000fdc742c47348f58664b84f51a2671b12ba5f0aaf2f7"},{"path":"guild/light-base-0-0.webp","size":517700,"sha256":"604f0eed7af954ef95cc8fe93faa445a830581f1c3c7cdbdc9bcc99eee79f254"},{"path":"guild/light-base-1-0.webp","size":547120,"sha256":"f4b785fea8d405179dcd658c54e95a31c0177d0082306a44cf21ae7fbc3df655"},{"path":"guild/light-close-0-0.webp","size":1815358,"sha256":"ef7562efc3698a89a900e454bbde92095168c4a2c84e750676ecbbacdceeb2fd"},{"path":"guild/light-detail-0-0.webp","size":1015808,"sha256":"442e99a2ca6307fd0494b765b90d973f0c0847e75a6bb7604d28577e06d5e332"},{"path":"guild/light-detail-1-0.webp","size":1123916,"sha256":"3f14f56f3b0e435c9487c0536d7f152bc76c49ca7a67b76cf5fdf32b9c1d9774"},{"path":"guild/plates.json","size":3453,"sha256":"b50c1424647ad6975754b96692e1fb2bf9133d6496e1ac737f916ab4e4cfb30f"},{"path":"guild/plinth-color.webp","size":72162,"sha256":"a5cb255a14bc46e780606866240c42fcd904a571f2ef2739deb3204ce43b9e1f"},{"path":"guild/plinth-normal.webp","size":85470,"sha256":"a6fac3c211400705b113576a40bc6197b5aeee042037ddc0444ab4164d14ea5b"},{"path":"guild/plinth-rough.webp","size":75364,"sha256":"765e0de8ab44d418c3061ded9e1fbd9e15503dbb5c2c58fe861fe583eadc9674"},{"path":"guild/roof-color.webp","size":28882,"sha256":"db57943f7f752aa9f67d2e0843d43c32ebb269ae63eb770f72ded2e704487db4"},{"path":"guild/roof-normal.webp","size":26666,"sha256":"43da1c68178d25122f8b4cbc4b23b36d162fe9f7059fb24aab4f21fce92ae237"},{"path":"guild/roof-rough.webp","size":33508,"sha256":"2b4704b413185a47b5ee78160bb224205133bd1171c6ed32ba1ebac5890dac4c"},{"path":"guild/sky-dark.hdr","size":298044,"sha256":"380164494f75f21dc63d4b2e4f6f7ec1b7137fadfcad2cd9b2f1cbede29db67b"},{"path":"guild/sky-light.hdr","size":376311,"sha256":"5216d9cb752d2e7a4662d6ed3568b47c125b88fb280d7965941787163c041603"},{"path":"guild/surfaces.json","size":1024,"sha256":"b34ea34a2620667741f22452d3e381ef527461da560f07bb5719ac132fd0a359"},{"path":"guild/wall-color.webp","size":64450,"sha256":"f65534647c88433beba6cef7c7ccd626570a91915617e5767b5b30dff6d38361"},{"path":"guild/wall-normal.webp","size":74168,"sha256":"ab8c656c40c8886d2068979a199b0ddb496dee66575ff8aea5ced77bd60a23ec"},{"path":"guild/wall-rough.webp","size":50556,"sha256":"79c1c64b04e0f7837b6a57602363121198338726400f8ff145d9cef0202c842d"},{"path":"guild/wood-color.webp","size":22372,"sha256":"1eee4b1d660d2d9816eabee0cd8e9c575319d694c5b321406776ac901c974c9c"},{"path":"guild/wood-normal.webp","size":11574,"sha256":"20ebd8fdd3c15e3b4254eba9bda71f3fd6ad6929362cdbd671631eb61d944185"},{"path":"guild/wood-rough.webp","size":34338,"sha256":"0f576127bca68bbf5c8361a441690171cba7cdc80cefc0ae62e6ecceca9b47fb"},{"path":"guild_station.glb","size":1630028,"sha256":"8c989fed1ce6fabf829b074025a78a38b82d09327c184239c7c7ff08b339ce63"},{"path":"hero_0.glb","size":1659780,"sha256":"7c87ae79129a98b66bbda430a645f22cd937520247a3b7acf7261ee8b95d12be"},{"path":"hero_1.glb","size":1757224,"sha256":"bb2d15696c0d21ed0c32ef12916baf5c3edf9f60eca14a391c858b4d6de1f1d6"},{"path":"hero_2.glb","size":1800648,"sha256":"4f392b19fe92b6d5415abb216d1a871274012982471ec38fb8dc20a16a83eee1"},{"path":"hero_3.glb","size":1732064,"sha256":"4505760bc907e8d01e992b49beb3ceb2d4f3c8b577233da99764fcbfc76d2f53"},{"path":"hero_4.glb","size":1614896,"sha256":"c1d27ad1b33a86acfdde68da07e1bc1e56ff666a721a17dbb9c874794e27bd52"},{"path":"hero_5.glb","size":1773400,"sha256":"832f8c249d9db3f10dc6cd22f5763f5e89af0f3fbe3d33b7aca6b8c9bab77ef2"},{"path":"manifest.json","size":151,"sha256":"37ae0296483da1b0059830f3e6b67eceac659ed098897116b28ef86747005e32"},{"path":"maps/bot_0-0.webp","size":256832,"sha256":"627c666291ad0c0312e103ae5875789657280300b8fbc80674fd7e3a475dc1e4"},{"path":"maps/bot_0-1.webp","size":137968,"sha256":"a1046d00cc4094b76c641f28d86e5ccf13f9a8851ec81039a21282a666dfdd70"},{"path":"maps/bot_0-2.webp","size":105500,"sha256":"b20414a8950c91c38fb7ba607ec22c8da1672f8fff051c2b7e7f9360998edec2"},{"path":"maps/bot_1-0.webp","size":246698,"sha256":"137f638f1dfe6458e54cfa512ea86f3becaf2fca363a4731ec66565dc48fb901"},{"path":"maps/bot_1-1.webp","size":123714,"sha256":"4b41628b3ca586ae4687c5638999837bed4ed3a5f62a479cbf7f6147c29b5477"},{"path":"maps/bot_1-2.webp","size":140928,"sha256":"b3468d00a2659bdbd57e67b84b67c705c80c3309360e984e54eee7eacc744571"},{"path":"maps/bot_2-0.webp","size":211860,"sha256":"baefc888c266a23eca981097774339e246a604c5c61ef90b26785d4928d67bf9"},{"path":"maps/bot_2-1.webp","size":159212,"sha256":"84f6babbdd3e1d482dba79968837a777dbae379df270f843124eb7d03ddf90d6"},{"path":"maps/bot_2-2.webp","size":149744,"sha256":"9bcd971e3489bb44c01eaf30efe6ba33307b512c877c3ce5903c163d018412d3"},{"path":"maps/bot_3-0.webp","size":313040,"sha256":"353be26a82209678a6251e8b389c0a982abd46ee9140639714a1533720d11b55"},{"path":"maps/bot_3-1.webp","size":200080,"sha256":"e2a642876ea5f56b0b05e723999e5fc0cdb465e06e2248c8e7c6192ba8dbff6a"},{"path":"maps/bot_3-2.webp","size":137570,"sha256":"3b6010b25f499b029eb5cfc342bbfcec431167ee256e8f89da89963bc1721dc7"},{"path":"maps/drone_0-0.webp","size":203872,"sha256":"7ea7005c7ac5cf34d0c52751f131ccc40f7ce7b07694de9a79d85f71ef9eff81"},{"path":"maps/drone_0-1.webp","size":155808,"sha256":"9975db136e318fdad918bfaf1c785d34f7694eb1405c68002ca827fa0f19c980"},{"path":"maps/drone_0-2.webp","size":147056,"sha256":"fe526c49022424229846125cb1904104aee352d6788ecfe5ec990fea3f660a2c"},{"path":"maps/drone_1-0.webp","size":225744,"sha256":"d4080cc239cdfdf466865c84d683e986ecc6ef95e41f0ead908a631b87d33827"},{"path":"maps/drone_1-1.webp","size":185766,"sha256":"368d52747c8ecbf38636707a89a7a68bbf866cdd41016cd5bd7b56b5ca831aaa"},{"path":"maps/drone_1-2.webp","size":84512,"sha256":"5a9697c033c5217bfe72f0b5e1462ed2e905beaab2d9b046c931d3f896977c18"},{"path":"maps/drone_2-0.webp","size":208140,"sha256":"357468d44c024af94f7fa518b26f32fc03ff4ff2c4ec7cb2caabd92cd1920aa2"},{"path":"maps/drone_2-1.webp","size":111184,"sha256":"1194b1da84f50bf27d151b4b70ce7dded1a33e93a0aaaf623b47e2c85575c19f"},{"path":"maps/drone_2-2.webp","size":83886,"sha256":"5ace31927d4f6b2492f3111510e491cbfeba8fa2f322abadba4f156378acfea4"},{"path":"maps/drone_3-0.webp","size":258914,"sha256":"c69f6c05b093e1f587f1660a07891295d2467ee8fc84d429b9fff7f45a171fbb"},{"path":"maps/drone_3-1.webp","size":150152,"sha256":"28676d142eeeae7949f9e5b3cd36f87544a56600a5a7232394c6de1832a36a6f"},{"path":"maps/drone_3-2.webp","size":177032,"sha256":"7604a2e7ceab773b4b6d84ee5a01ff29fade6031d5a567a610c986af6afa03d7"},{"path":"maps/familiar_0-0.webp","size":345454,"sha256":"a76d7a52ddff4d8ffde5001c08fd7375864516b487a4ce3f47debe5022d57bba"},{"path":"maps/familiar_0-1.webp","size":157990,"sha256":"28bba9d228ea7ecd251a5efa38337a4ad1eafbcbec7d64527f484a4a1196378e"},{"path":"maps/familiar_0-2.webp","size":280852,"sha256":"93de83b008efe6dae06d184c38bca81572ecce0cf3e2a051bd2c2945d4f0c93b"},{"path":"maps/familiar_1-0.webp","size":316616,"sha256":"dc6c2b7e02827fa9c1632bc60374d4c89556f691261d83aab8240588ac4612c3"},{"path":"maps/familiar_1-1.webp","size":227634,"sha256":"27779a0d094764c81b1297b4527a7495d1c79c4559f68fa36715056c811f8a12"},{"path":"maps/familiar_1-2.webp","size":215286,"sha256":"52067c606520c19a355a7b27c1d3583a1d0b46b98dbc12798b32d1b2095e2110"},{"path":"maps/familiar_2-0.webp","size":233604,"sha256":"4126ceb38e7f3e08e20892094cbcf9419fb9f0f4e68b728d421c3c15a4fed8f2"},{"path":"maps/familiar_2-1.webp","size":139016,"sha256":"5280d0ed09887a4af8bf80c62c7625be53e6f65de60a09382febaec37057443e"},{"path":"maps/familiar_2-2.webp","size":167914,"sha256":"136be2762f38511a01c7aabb9c38f42bc45c7bf54a80d41f308755a107027b92"},{"path":"maps/familiar_3-0.webp","size":116098,"sha256":"3f082749936498b12e73738798e9e2b85ebb4f93a364f6658d7e932e80872560"},{"path":"maps/familiar_3-1.webp","size":83320,"sha256":"d68bb722d70d23592c17f51025e7678e3d9b415fa4506a27abec81c2567ca386"},{"path":"maps/familiar_3-2.webp","size":73518,"sha256":"d27bcf1e5de372d869a4bb88ed118ebc8d77ebbaf8ec08f3fdc9c8608ae1df43"},{"path":"maps/gnome_0-0.webp","size":722878,"sha256":"15c54b6e9312e080ec2bbe05c275cd58b2a8e3fadf6337be6127bf2776acbbe7"},{"path":"maps/gnome_0-1.webp","size":346586,"sha256":"d52b1f57e3e298ef20717260ac804b783d69e9268f4ea2c5bbf848d2a7f98d0c"},{"path":"maps/gnome_0-2.webp","size":465266,"sha256":"ffb0f448ab34bc99d7e8378d60cbad66b9bc500704554e5ee4693f64ae8ba5f0"},{"path":"maps/gnome_1-0.webp","size":970876,"sha256":"a4ab6a4d91f0bc81b9ceb9b4275c6841e7ca06712eea6d806ef3aa707bc50f96"},{"path":"maps/gnome_1-1.webp","size":556222,"sha256":"0f328d62c0332a7e813791ea007ad88a319ffa0d080b577de9367f13f569222c"},{"path":"maps/gnome_1-2.webp","size":359544,"sha256":"97efbb90360746e6a3ae8f290fec2ae8b4d650c3951a49add9d609da3b895be2"},{"path":"maps/gnome_2-0.webp","size":670978,"sha256":"b121518b5e1ac8f2a1fb489af8badea695fb4172e85502a0e567710dd4adf561"},{"path":"maps/gnome_2-1.webp","size":382802,"sha256":"30263263da0af476b19e51ecd076f8eff156bbb63bcce93152a6b8b65f7f8587"},{"path":"maps/gnome_2-2.webp","size":518984,"sha256":"cf11d06eaab6c41566cea78c955615a1a34ba1fc889ff6dc7b97118f24b8808f"},{"path":"maps/gnome_3-0.webp","size":863046,"sha256":"8a664293befc1e36bce2f45aac4a9351bbebb708ac91062b4622112c6a8483d7"},{"path":"maps/gnome_3-1.webp","size":459080,"sha256":"382ba9d080eca5304848547b645fa1bf6a28adb538eff3058c9051660383a1f4"},{"path":"maps/gnome_3-2.webp","size":514990,"sha256":"98ee4b656f585ff38fa25bb1334a20864b43cd3cc5e76c14c26741377f36a4b6"},{"path":"maps/gnome_4-0.webp","size":730298,"sha256":"e084e9f22d37ef50f1a4704c739e7189f80d20a9f05715057a64d0c6d3a688b0"},{"path":"maps/gnome_4-1.webp","size":379670,"sha256":"f585229a5abcbdf6dffe7b8a144cc4d6346b77a3b2f507190e5812acf038ae08"},{"path":"maps/gnome_4-2.webp","size":259356,"sha256":"70699b16b46ea02f672cbc7fcfa86b89fba8fb762c9282fde34d1b1ab08ba4fd"},{"path":"maps/gnome_5-0.webp","size":760690,"sha256":"9cdffef1a173c13c8a454836a39ccb52bae46d0648254399f2d1432e37d66d60"},{"path":"maps/gnome_5-1.webp","size":432068,"sha256":"50d7f341d6adb9e09f4736d2c0026e2bfa5077bdc5d153a02e1b92f0caa313ca"},{"path":"maps/gnome_5-2.webp","size":496274,"sha256":"3a27846fc0a45a42c510ece9038b679ae054ac20689afa4fbf7b34f3b51b8253"},{"path":"maps/gnome_familiar_0-0.webp","size":361090,"sha256":"7cc42038975081cc969348981ba3e1bc528cc57ada128f596f59f17d9c7f9b62"},{"path":"maps/gnome_familiar_0-1.webp","size":180766,"sha256":"3c2243ffa6813b62cbf2db54972ad09c369f9ba1290f7f91d4ca4272da9bcfb2"},{"path":"maps/gnome_familiar_0-2.webp","size":210130,"sha256":"e5f43fe993b3c2302548aeff806b540e969b7bb3c74bdb2d0ced100de8ab1743"},{"path":"maps/gnome_familiar_1-0.webp","size":268378,"sha256":"7bc64fbe7ac3b4002c0aec60cfb9457a0423081a6f75c9d570330e78749fbbc4"},{"path":"maps/gnome_familiar_1-1.webp","size":137894,"sha256":"c440cb163303b7be2134d72ce695cfc306155f09465c6912a5dc8da383ce4bfa"},{"path":"maps/gnome_familiar_1-2.webp","size":110054,"sha256":"f4cd223db8df98c1e141e6402e97918a56c1bf1de354cccb3587736c74989e82"},{"path":"maps/gnome_familiar_2-0.webp","size":252204,"sha256":"9f2b66959a996a0cca7e8f03e130c07ec6897ca8e3371fa2c59a2e710c499720"},{"path":"maps/gnome_familiar_2-1.webp","size":130800,"sha256":"07b9805a27336c1ef1ca7c13c90b193c51737112509a90d5f37dfd79d4d3b29e"},{"path":"maps/gnome_familiar_2-2.webp","size":179304,"sha256":"da477d6457ca8c9299edce9d07a1dbfac9372a2538e1566e11b460009e61b6e7"},{"path":"maps/gnome_familiar_3-0.webp","size":203290,"sha256":"7d77fe24cab2e849635e1986deddcaf54917cf83fcdb7c966639d33c29b845c9"},{"path":"maps/gnome_familiar_3-1.webp","size":133990,"sha256":"4e0e230329d8faf4119c37ee4c8340a14ecc9a864f299142502323804f82210f"},{"path":"maps/gnome_familiar_3-2.webp","size":130600,"sha256":"c1057c6814edafa56246a380a174375128301c2dff590bbf8f530dece8c56fb9"},{"path":"maps/gnome_helper_0-0.webp","size":337680,"sha256":"c81321002a9462a7cc0d1e19be1d9567c7881dbabf29a14575ddf5c20b905ba6"},{"path":"maps/gnome_helper_0-1.webp","size":323756,"sha256":"095cfa0fdcb3bb364b3cd278643b002d1757ba48ed2b8952ac7fbed27c6086c0"},{"path":"maps/gnome_helper_0-2.webp","size":227870,"sha256":"8558dbb04fa0cdc87cc4b1620d684508f3575c12f0dc8df25be906054496e7fc"},{"path":"maps/gnome_helper_1-0.webp","size":282378,"sha256":"6d855d8ea12053f85b2557d453591d15db88410b44e3119cfdd309fccb3cfaf4"},{"path":"maps/gnome_helper_1-1.webp","size":217248,"sha256":"8666ba7480b39017b44570e89ccc036823933dc7768d3a1d49ed0025d9ac35de"},{"path":"maps/gnome_helper_1-2.webp","size":141088,"sha256":"2b1cd4be96befb6cb8341d19fba9dbb237cd352dab5453623e1bc1ceff1e2429"},{"path":"maps/gnome_helper_2-0.webp","size":248936,"sha256":"a2de02831a99e0c613013c5ae9f0a3cd884dbaabf2591a7149a1151da3b2d918"},{"path":"maps/gnome_helper_2-1.webp","size":201136,"sha256":"6fa68f96cc087508690fc61a9f451438f3f33d1e58298b6ed4af0dc2261d9272"},{"path":"maps/gnome_helper_2-2.webp","size":141252,"sha256":"e9d4d284c5079acd95a0d0c57925c2df82f5f91c50c3ed4ea05614fffad8b630"},{"path":"maps/gnome_helper_3-0.webp","size":276560,"sha256":"60dd66d2f5c6a243522cf1ca59ae4c44678108a17645e2cc14e944b41573f9e9"},{"path":"maps/gnome_helper_3-1.webp","size":181566,"sha256":"02dea14b2b2a7da19dbc2860f46d2d50d675514e3dbe4781eb1e533d2dd0ab0a"},{"path":"maps/gnome_helper_3-2.webp","size":162766,"sha256":"32a2150f44818b8118f456b0f5bfafa7bedc1e74c8fbe29ad2152937acf8eb96"},{"path":"maps/gnomeland-0.webp","size":12022,"sha256":"896f72b334cbcf06818b1677687b2992f4a3704267e2cb160d92657ac83a7a08"},{"path":"maps/gnomeland-1.webp","size":1121450,"sha256":"42acb0237668ed4c869652b6659ca558dcf795448e134073ea61999b3b27711d"},{"path":"maps/gnomeland-10.webp","size":686630,"sha256":"e9f7633aa8e8f41da1372f1c98119d8a2f972ae5c79258eca45e200d4ef29390"},{"path":"maps/gnomeland-11.webp","size":495492,"sha256":"178ebe2624bb6413598f939dd4fe4f7fb1c719f7cd04f07b42ab07690800e45f"},{"path":"maps/gnomeland-12.webp","size":7518,"sha256":"6edd7d51c4f880bbd98b86c6a2b57f012f94b4023bd56d29b382f9348879751d"},{"path":"maps/gnomeland-13.webp","size":1240154,"sha256":"83ab9971cf58b741ee31dd6a517ec8a12d9e106761bd22baf84ab404358a55b6"},{"path":"maps/gnomeland-14.webp","size":566922,"sha256":"759e2782018de23463c49703a86b3eaba63debad01a64005516604852c14b4a3"},{"path":"maps/gnomeland-15.webp","size":511902,"sha256":"5c24993a1f89c634ddf2a6cb05bee2c38714c56cbea881c68fe734e1448d57a2"},{"path":"maps/gnomeland-16.webp","size":9370,"sha256":"af07984b668a2c725146664a718971905a282453fb7f7f1d59fcbbfebe54af37"},{"path":"maps/gnomeland-17.webp","size":897128,"sha256":"7e625087fe4df05768ecf0930e5acb0e1542d5d4e300a01dfecb5af8ce2b5f59"},{"path":"maps/gnomeland-18.webp","size":679710,"sha256":"cdd68affeb547dd3aa53c8e9e3c602ead6e5c3d96c4c23d6120df8b58ed235f7"},{"path":"maps/gnomeland-19.webp","size":600142,"sha256":"da618c0eeae78a0a42dabbbea1c334c927a1f06a26d758356161d00c15a44d64"},{"path":"maps/gnomeland-2.webp","size":678636,"sha256":"60c77421bd8102ae3d14c7f0a49cb140c946c555daee36c0bc22e6dc2d53804c"},{"path":"maps/gnomeland-20.webp","size":20930,"sha256":"a8c333f84e077afd40b7eda8c1d148554f55a8573d15e38e29355d5a444d1964"},{"path":"maps/gnomeland-21.webp","size":969112,"sha256":"58da635dafecef0dca2e23b2bf49b0c83744e32ad7455e55d742cf32fd690692"},{"path":"maps/gnomeland-22.webp","size":775070,"sha256":"24ddc893ac7f7c27f745d0d248abb37d60d9638ddd0bc284a787568c4584536f"},{"path":"maps/gnomeland-23.webp","size":625218,"sha256":"93c56698293f2b4e4ce3bed7e68e38539d8ac92acd514b05c4e65a1436198732"},{"path":"maps/gnomeland-3.webp","size":617830,"sha256":"d463a7194eafea16c01737cc44c590ebbb3de6605cc76fb1db73420654c20011"},{"path":"maps/gnomeland-4.webp","size":11744,"sha256":"9ef9e468319f729cb72e5b95fbf97c76caf16e7eb1d5c9d3f6c87300d5fe6d78"},{"path":"maps/gnomeland-5.webp","size":1195488,"sha256":"0eb3d22c6dbccddfbd58739a8d19fb8eaa29ed6eda495b42c6f412767fa0636e"},{"path":"maps/gnomeland-6.webp","size":761780,"sha256":"2de72b50a9da949761a12b5b547aeae4a60360a2274deb19bc2c071b113484d1"},{"path":"maps/gnomeland-7.webp","size":793658,"sha256":"5bc13510baab0705c8b7573f2a43c544505240f83b5095feb1f6abd7ca15399a"},{"path":"maps/gnomeland-8.webp","size":13720,"sha256":"11affae284ae48b824a46735e706124a3dbbecbce8cd0f4f39c56c3d3ea194b3"},{"path":"maps/gnomeland-9.webp","size":901268,"sha256":"6ca37eb6c4f36db426a4d5cf810f127c1f8f80bc14dec39a8acdb99a6cbdd6b1"},{"path":"maps/gnomeland_station-0.webp","size":604470,"sha256":"ed1ce15a8774d9fdfab46c8fb42654faa726f1d3d0bb2efd8b59124e01d77f35"},{"path":"maps/gnomeland_station-1.webp","size":372646,"sha256":"94802d6866a35c1a37e19be688663d56f7ee4b071e17faec40103e6e91d157a5"},{"path":"maps/gnomeland_station-2.webp","size":370210,"sha256":"791d15aa34e27660eab6e5fcfaa920ea780acfb146ecccfca0c207b784f18545"},{"path":"maps/goblin_0-0.webp","size":921556,"sha256":"5ff21bf08defe443affb3f0aa549b089936ab247f73b703b87f5d111211be46d"},{"path":"maps/goblin_0-1.webp","size":531628,"sha256":"05f53e6ab8149b9661223483e866b218b1331cc932bae57ba67a69928b4c47bf"},{"path":"maps/goblin_0-2.webp","size":444140,"sha256":"383a37c8158fe20f702723156f2a3c9764033ccfa43dfdba939082ddbdc14684"},{"path":"maps/goblin_1-0.webp","size":1056388,"sha256":"00076db5809829904b7f9b9c7bccde19ee80bb1d32d1a35d4132c64fe4114fd1"},{"path":"maps/goblin_1-1.webp","size":644490,"sha256":"8399e9515fce2a7e8f323e08a931f01241ce6af0aac0bb9808f8e3660dc76aee"},{"path":"maps/goblin_1-2.webp","size":368298,"sha256":"7784e4a7993081ae886e0dc43dbb4728dda9069dc03811c8088051dd3ccca14c"},{"path":"maps/goblin_2-0.webp","size":932920,"sha256":"f46c789188df96443002b1e399f445f9030db170cc4b28b6ffc61fffaf7abdd8"},{"path":"maps/goblin_2-1.webp","size":512198,"sha256":"54ce07da84b6d4898b200d43d8e90af1718acf1c7b61b55c5dea4d7c9aba8bf8"},{"path":"maps/goblin_2-2.webp","size":660454,"sha256":"c62a56295d5bef0ff8597eb9254dc3ebf568db2cd8ddbcda133f1ad70702c9eb"},{"path":"maps/goblin_3-0.webp","size":967894,"sha256":"1d1fef4391f765674d940d2439658db5041816369ba4ddfaeae3212f804e3381"},{"path":"maps/goblin_3-1.webp","size":493672,"sha256":"f563420c1625cebfdcea1547fe42a3606c9f95f83b48ec65c0655e905fe775bd"},{"path":"maps/goblin_3-2.webp","size":482016,"sha256":"dd533c8e206172955d4f2dac6762497f4f7de337158b9976a67bdf7df3a09d82"},{"path":"maps/goblin_4-0.webp","size":775422,"sha256":"1910c3f5a1bd71a3f04a157aacdeccfd2e316e8a7e9fcea5ba839c05187505aa"},{"path":"maps/goblin_4-1.webp","size":384472,"sha256":"369681213e73f422743717630d94a32a7003ff5532af0cfe2a7393799a16303f"},{"path":"maps/goblin_4-2.webp","size":416290,"sha256":"c7c82ea1e383c264380a5c3b0b68a3f4c1aa472817479fc2d6e1ad2cb6730cd5"},{"path":"maps/goblin_5-0.webp","size":902396,"sha256":"1cf255901bac099872fcc960f81185c6ce65bbefc83650022276cf05f2bf4628"},{"path":"maps/goblin_5-1.webp","size":465698,"sha256":"8cc2e9b9940f60240860afbbb9f97032a924a7ec671072be10eae5afb6350347"},{"path":"maps/goblin_5-2.webp","size":657032,"sha256":"627c69741b509ac7544e5213fecc0290a0561f353aac214d4304194617b6b05f"},{"path":"maps/goblin_familiar_0-0.webp","size":254582,"sha256":"097f81b6b95fe4400ee4ad9dd52bbbc53c991e96ce9abb9423b20791b7fc5dbd"},{"path":"maps/goblin_familiar_0-1.webp","size":131282,"sha256":"d4068870fe876a49325844f9a9f8834ebb9dc3d54008edb48d703b72fd5276c2"},{"path":"maps/goblin_familiar_0-2.webp","size":163232,"sha256":"c26e8ffd0666a94d2cadbfd20568c0fefc3812f77344614dfe83b73d89e95fd1"},{"path":"maps/goblin_familiar_1-0.webp","size":452380,"sha256":"bbb7a173b9ab70dddbbcd6f39fc0095467a4afdf6ac6441936990119c469e603"},{"path":"maps/goblin_familiar_1-1.webp","size":269018,"sha256":"8b429e901042255314b5cf2ac3e345d1a9008a7d9c8d1b667dd991d4b230942d"},{"path":"maps/goblin_familiar_1-2.webp","size":324644,"sha256":"2a6f7a77d9b1b4c5df6540a5addde7d4b01dbbd61566820f02c08fd535cba606"},{"path":"maps/goblin_familiar_2-0.webp","size":439712,"sha256":"b63fb6f8390878c1358691c98dc0dbe89b81e1ac63f79b106d3d129f74ec4906"},{"path":"maps/goblin_familiar_2-1.webp","size":212642,"sha256":"37a767c1cc82474c5a8f4d6c0567a0269e5c63acee31a5a8b1b49386e200e95f"},{"path":"maps/goblin_familiar_2-2.webp","size":251098,"sha256":"0cdb809a91ef0af7af7e9b3d3cb2be8f6579ef5d311001a14f2376ef6372acf0"},{"path":"maps/goblin_familiar_3-0.webp","size":247956,"sha256":"18028ccf40195e80875df124bf62e887ce484f91ef93a1eb61fd79fddda1efc7"},{"path":"maps/goblin_familiar_3-1.webp","size":144450,"sha256":"1bf85ffdad555d871d8e4cded2fe8b973bc6b93923dc98139f96154de4c04771"},{"path":"maps/goblin_familiar_3-2.webp","size":252790,"sha256":"b3a04570d9fe70d3a45774a2832818fa19600dfb6459c9188e5aec8960a2a2c7"},{"path":"maps/goblin_helper_0-0.webp","size":362538,"sha256":"7f4d9fcdbe9cb3253f5a4b13d15e9de696829f8e46e2f1981db6398ccd1beb9d"},{"path":"maps/goblin_helper_0-1.webp","size":211644,"sha256":"b78cfa80338a7ffb5cc8b674ecf5c85b1ed79c7b349576ae685bd997bf93c885"},{"path":"maps/goblin_helper_0-2.webp","size":180680,"sha256":"43d3b6f975db91dd4a5252d3041e2fa20e6db4f4eb2d7fe877de11dcabbd6f93"},{"path":"maps/goblin_helper_1-0.webp","size":424614,"sha256":"b7f20ae3d66212527bb99c9718da0496e250c9443fe2ba37d9bc7149d018a08c"},{"path":"maps/goblin_helper_1-1.webp","size":267980,"sha256":"efa16c451837c9234051125e7e17f5a85c0f84c8af3c872d3692772af31484d1"},{"path":"maps/goblin_helper_1-2.webp","size":202652,"sha256":"185bfe1cd2bea0167cc1307f64d58743826c30f7b5aa296d2448a71c2bc65bac"},{"path":"maps/goblin_helper_2-0.webp","size":419770,"sha256":"35119c909ce89a6433d3968297fdfa07f7765078f6d5c26b3be67de55087dd54"},{"path":"maps/goblin_helper_2-1.webp","size":241526,"sha256":"dc29b35612f92f265c123a83707d78c63a0c841271c6c8f398938aa3b257a1a9"},{"path":"maps/goblin_helper_2-2.webp","size":152390,"sha256":"297b74cf2dc49101c476c299e06ee4e9a30ff4dfe35bfbcfc4bd60cd1dc27626"},{"path":"maps/goblin_helper_3-0.webp","size":288134,"sha256":"8571dc6ede444e82ad7fedf8968a3c05a731a71204b800542f3378ed7943b6b7"},{"path":"maps/goblin_helper_3-1.webp","size":158996,"sha256":"37663ba0bdd35a20983537222e49f415cbbe42de7cf3e36ed3fcb318cc27cd61"},{"path":"maps/goblin_helper_3-2.webp","size":233414,"sha256":"7b739812d9fc5eb002955c33baa1b7a084f74a7c2b5e858824ea52d4def1a49c"},{"path":"maps/goblinville-0.webp","size":18086,"sha256":"98afb7a26a93bf5658d18a005e18927e9bccd25b42b96f13b3dd09ac817f8890"},{"path":"maps/goblinville-1.webp","size":1206816,"sha256":"1fcf3eeca903cf314810734ee0e82e0767b646ec1c8d1bbb7452cff47d163a5a"},{"path":"maps/goblinville-10.webp","size":683648,"sha256":"b1fb98d994ad1fd778254b8a829757caf4bdaf837ad5359a8eee61ee1fb538c9"},{"path":"maps/goblinville-11.webp","size":569188,"sha256":"96ed2d3bb5fa3034504546811eb6fdfd9c8cd524ac35b4ad3fc88284316d8524"},{"path":"maps/goblinville-12.webp","size":10016,"sha256":"ddae8ac87130ef8a129209626ee443b5993bcea864fd75fccee8f7c367a3e712"},{"path":"maps/goblinville-13.webp","size":1018640,"sha256":"8a7cb22319b46aed7b8599eb5f0ea9f2847c987968ced20257305d4345be47a8"},{"path":"maps/goblinville-14.webp","size":666864,"sha256":"bd837d8dcde2b1132d677fa4706342511064deca466a74175f0face54c4844d3"},{"path":"maps/goblinville-15.webp","size":499574,"sha256":"537d703529085acf2afc976e04a9e187f9376459cc5384dc52ba27faffd41e00"},{"path":"maps/goblinville-16.webp","size":15408,"sha256":"396b0d98616c7dce49f26656967a11611b344a05b38e23478b02d677127b792a"},{"path":"maps/goblinville-17.webp","size":1016040,"sha256":"68b2790310abaed86d9c28f3764c9578c45e386bb8078046ad60f73b18adda1c"},{"path":"maps/goblinville-18.webp","size":635252,"sha256":"18a9d439424df44ab493fb66927c28c915e8e87b91f095afd635801d5b07c2e7"},{"path":"maps/goblinville-19.webp","size":692646,"sha256":"cb2004640c7094e378ee5d75e2d91d25535f932b00b5f52123262eeb1461c7f5"},{"path":"maps/goblinville-2.webp","size":581824,"sha256":"cd2f76c1788f4c65c78ed9de882c2aaadfe20f7c6318bca55eb7f69ce9cefe3d"},{"path":"maps/goblinville-20.webp","size":1240352,"sha256":"42c6ce007cc595bcfe05ec83569d132a8eb20e628a8269b9c712092f73d58b71"},{"path":"maps/goblinville-21.webp","size":781812,"sha256":"a46510fe0600db8c103c717e98f4d491de6efadb99d2b002f5d793c8661669ed"},{"path":"maps/goblinville-22.webp","size":504178,"sha256":"3350ba050792e16ea6a32c18be0d0a4617ae44ff0a8bb5d21e185e131b856007"},{"path":"maps/goblinville-3.webp","size":598290,"sha256":"554674f59ea476fe98db169a5b5f2854f5497e8cd1274ca33a2ec653d0dd7c1f"},{"path":"maps/goblinville-4.webp","size":7518,"sha256":"6edd7d51c4f880bbd98b86c6a2b57f012f94b4023bd56d29b382f9348879751d"},{"path":"maps/goblinville-5.webp","size":1305334,"sha256":"f55d312542f99ce877c69b6905bf1cae5d4cb25d269afad028e0bb5e307e7d7b"},{"path":"maps/goblinville-6.webp","size":870012,"sha256":"55271e50c58767b6734ef8c14433b563c2bff6e62d34e0a5286d54b1f58a9c8d"},{"path":"maps/goblinville-7.webp","size":559524,"sha256":"e4a66d2af04e44ce89ab160c705db026720ad408e502c85574653e759459d7a7"},{"path":"maps/goblinville-8.webp","size":8824,"sha256":"761ccdf39275de409f6698c0f4c4cc863f23068c7eb9675ad44355d39f5e20d3"},{"path":"maps/goblinville-9.webp","size":1109288,"sha256":"706bc9ae5393da8161d19e49d0cdbb7b4733017f028d2fe966c2c79b7dd63689"},{"path":"maps/goblinville_station-0.webp","size":816508,"sha256":"deaa0ab2467d833732a3188585fed0f40c0fb8907f5acd92c8c2889995aeae0f"},{"path":"maps/goblinville_station-1.webp","size":542928,"sha256":"426366b257cae185067ff0bd17c6ebbbf95fd779929e97fe5358ecb0de52ad19"},{"path":"maps/goblinville_station-2.webp","size":428034,"sha256":"390d20a49c2c1ff6a27a7daf5a826c6431190f75498d8be617356ae0e8a23562"},{"path":"maps/grove-0.webp","size":287142,"sha256":"28766709a089b4e6335ada60891c84c806ead2b332ddacd535d848b15937e7f2"},{"path":"maps/grove-1.webp","size":1593420,"sha256":"6a5794506842afef34a85c0fb907681f03646053f2168f68f980f9cc245d78b1"},{"path":"maps/grove-10.webp","size":709230,"sha256":"063ac7d08f27d50adba591033f58164bb1823ba78d4144b94700ae339fb3ec12"},{"path":"maps/grove-11.webp","size":627862,"sha256":"1338743d11424e161bb3ae7671bd8cc6047c2208f67b93c9509ecbf0d0ee4513"},{"path":"maps/grove-12.webp","size":23800,"sha256":"3dba035f62142bacac3e0ed951dbd608494445ac6de5f689a3445e2bc2df58b1"},{"path":"maps/grove-13.webp","size":1233696,"sha256":"4ba800ea985c015dcccdfd4b9c70b71cf9185d0aa9876aa1f1e32579b39f81b6"},{"path":"maps/grove-14.webp","size":606470,"sha256":"3c88714d33495fd7a4fd25a201b3490bb124498814131019fc2e32ba6107940d"},{"path":"maps/grove-15.webp","size":567726,"sha256":"76d47191476979cf7e58b4d08dfa28bd4672b9e5c39c0a24cbdc8c36907a2760"},{"path":"maps/grove-16.webp","size":100504,"sha256":"22779ab051c24b3bfe4ae7394c74ed8589a2c6b0fe11c412b066f0eaf4d89083"},{"path":"maps/grove-17.webp","size":1610482,"sha256":"5947a2f6c2932786d41f04400cfc1e2709b069b22c4d7b4881a2c935a9408014"},{"path":"maps/grove-18.webp","size":563716,"sha256":"9ef9be39dafe75a980c849c01f9ca16f54a3edc69eeb1db9fb3f3bbc11db03d5"},{"path":"maps/grove-19.webp","size":609772,"sha256":"f7524e52c713f781506ac8f76b3760ff2d707ff73158044f4f24e31dabc456c0"},{"path":"maps/grove-2.webp","size":526732,"sha256":"d85b3aa42511025d4e7314976962daa1e9f8255171bba3bee11b7b9d9c3b151c"},{"path":"maps/grove-20.webp","size":20846,"sha256":"b20908ec7bb463d18c6e315d59e48a947767750b3b035c71f719832255df0ba9"},{"path":"maps/grove-21.webp","size":1207642,"sha256":"81bfa75cd071319d19470534c17931d85634d3ea7025ed8b5fe4dae75a358d57"},{"path":"maps/grove-22.webp","size":705790,"sha256":"fd078e755c784cbf59059aafe3622102a3ccd9b37e105f0fdd9c48d2eaead90e"},{"path":"maps/grove-23.webp","size":666368,"sha256":"e45d5c7bf0862b1ff703e629910840d1de6b00cf7b51980540373fb949ad1085"},{"path":"maps/grove-3.webp","size":639798,"sha256":"d2b8604c7bf53cbfd559af3cd1dcddb6a1c13099e37cb77c9fe4278bc82e2dd2"},{"path":"maps/grove-4.webp","size":33998,"sha256":"65ff1713b0c392766c50154f546892493b1bde5db7f638644d06486fcb64b3fe"},{"path":"maps/grove-5.webp","size":1242668,"sha256":"063ffb53bdbe26cdefab55ede07d397b9c3686760f58dafb802adae86474a3ca"},{"path":"maps/grove-6.webp","size":417578,"sha256":"ff069e97796bbb5cf9668bba6461c74bc9acee10d57538a61f730cea2941f9ca"},{"path":"maps/grove-7.webp","size":472708,"sha256":"7891e87ec7d57dd8410037b59e1066c71990db0eea8d1f66277097098174b6c7"},{"path":"maps/grove-8.webp","size":43774,"sha256":"47ebe004cb1a0c0bdf0b73cbf79053e3be9bb5320a0b356fca2d0969a86f68a9"},{"path":"maps/grove-9.webp","size":1397078,"sha256":"8a840894f5756a46487895859557be442e737217b4a652f10e0709b91a8b8103"},{"path":"maps/grove_station-0.webp","size":836574,"sha256":"058a7ddc93874b491d6f329d1c19d5ecd9c3da011a0e8bfcfc689721c23205f3"},{"path":"maps/grove_station-1.webp","size":446526,"sha256":"6c8e7d37bfd5481ebb3d58533ab0f2cb093694938fd1da674aa74f29894e0e6f"},{"path":"maps/grove_station-2.webp","size":591600,"sha256":"15c3d09b315ad7e1e9db6dad35fbe2503abe9a7bb42ae67187f0ad843b24d1ec"},{"path":"maps/guild_station-0.webp","size":1081432,"sha256":"c1c0878d22992733333a75b98c101c637aeec4191425a0e7765360fec6ddf465"},{"path":"maps/guild_station-1.webp","size":466696,"sha256":"33c2ede322997a9ac65c33583f16d727dade5be531e3ecbd332d323296289e44"},{"path":"maps/guild_station-2.webp","size":376802,"sha256":"769098773f80bb7f10631a222d940bead5ebae9cfbac2828286cc5c5dca445fc"},{"path":"maps/hero_0-0.webp","size":620238,"sha256":"ec744cebc163f2728499668b21c9bd409c1c6dc69c5c6c7a94c679d2e6d5b387"},{"path":"maps/hero_0-1.webp","size":369060,"sha256":"fb87bd5ea00c29c86a1d51912adc5be57b8a151229fbdf062896e245ad180870"},{"path":"maps/hero_0-2.webp","size":317422,"sha256":"0de235ce67692877c7d6f189bdf4ddc391954ca089d8aa770f822664a2d14acb"},{"path":"maps/hero_1-0.webp","size":715862,"sha256":"78a6a12549b7f8220505d9df6c013e5a493b5389e25ef3f9e73309936aa8848e"},{"path":"maps/hero_1-1.webp","size":435572,"sha256":"a436e1a03f941ffd93192b9bc880e00096f5a6e9d991562b4b4497426f367866"},{"path":"maps/hero_1-2.webp","size":399968,"sha256":"ff06b5f081a5fb8a57e59210146a171f4b02719551fa1b97732963b949a40000"},{"path":"maps/hero_2-0.webp","size":854128,"sha256":"4951ddf5639c9bcc325e48c64db328593504eb3c092069e2a84742b127c65e8b"},{"path":"maps/hero_2-1.webp","size":421140,"sha256":"204775c7cc27f16dec703d8c534953ced6c8f154ffb052a62d97def79ae280ff"},{"path":"maps/hero_2-2.webp","size":310598,"sha256":"062ce99122ba27c2e825999026ab764435c1592d4ebf199d908170c7263cc904"},{"path":"maps/hero_3-0.webp","size":732928,"sha256":"cbc58c35fde36c18d5a2b8027fb31df19237c5d37b11a088f347df186c9c02d0"},{"path":"maps/hero_3-1.webp","size":415160,"sha256":"0670f41a404963de1a3e07dff96d9cbfe602c65829c9d8fe7b571de7eaaff52d"},{"path":"maps/hero_3-2.webp","size":297284,"sha256":"b2cd90c459724d81d8e6557eee28fa289c068811fe14dde841a728ebe1a261a4"},{"path":"maps/hero_4-0.webp","size":567998,"sha256":"203bb36fb2776eda4a88149c765c25dcc06743374847b9818aac44cecfdf97a9"},{"path":"maps/hero_4-1.webp","size":267194,"sha256":"63d31d93709137dafb8748f0d43adabc6d3bc67cb21ac65c37a1be1f7cac26b2"},{"path":"maps/hero_4-2.webp","size":181768,"sha256":"11472d9b9161016de714804a82203e94d47ac7730b3a68e33f97b1ebda84261f"},{"path":"maps/hero_5-0.webp","size":729662,"sha256":"016eeab9a81231232e0f9e7417ede3189e23e0d0e75ccb4979f1a888a6b48f9b"},{"path":"maps/hero_5-1.webp","size":449116,"sha256":"6600394f113ed6ccb444ef79961eeabaa62eeac8ae5aa8817a7015c69c5788aa"},{"path":"maps/hero_5-2.webp","size":449456,"sha256":"c0495c8ef08a1db640ba0f9572c5022b914e6abdae7d036bae32199656566835"},{"path":"maps/orbital-0.webp","size":7518,"sha256":"6edd7d51c4f880bbd98b86c6a2b57f012f94b4023bd56d29b382f9348879751d"},{"path":"maps/orbital-1.webp","size":858434,"sha256":"51c5780fb670d9bdea073ebd2e3eb71d39600bfd4d34b3c8f8eb410d76f36736"},{"path":"maps/orbital-10.webp","size":522384,"sha256":"f911339d7447881144947822a053166a47b0698ae88ddac3c92489d7659462f5"},{"path":"maps/orbital-11.webp","size":441412,"sha256":"20fdf5a14856eb8ab326d26bdd9908e32827fdc72d6f2acffd457c4ff80ce840"},{"path":"maps/orbital-12.webp","size":10758,"sha256":"f1bd0b505c5863131fd73d22657a6a4a89fe41182e30976baa194b20c1d832fa"},{"path":"maps/orbital-13.webp","size":979608,"sha256":"6cc346c243b7e4fb67b61a14fa47df2e8d749dcb81eb31fc78cfd012a8147650"},{"path":"maps/orbital-14.webp","size":661476,"sha256":"7a627074179738a9fabf0c282a4f65ed21d69786f78d0edd04aec2caab156deb"},{"path":"maps/orbital-15.webp","size":501890,"sha256":"cc68fed224d7fa17035987dbc120131a6af3bd20ced8902855f2361dfa1d0fc7"},{"path":"maps/orbital-16.webp","size":831184,"sha256":"bc7c8b29a146d3579d6c3c6942068ea998b268d9a242c68b6e959b58f2465ab1"},{"path":"maps/orbital-17.webp","size":538856,"sha256":"3e09f64e38689931a9b71a569645f26f4205e4f28012528b134d4eed1cc4f322"},{"path":"maps/orbital-18.webp","size":358326,"sha256":"7b8a804b360dc1c3b331b942a42461f8d5789fef2dd19e3310cafb27a89d704a"},{"path":"maps/orbital-19.webp","size":20588,"sha256":"bfaf5a8b62d4b1d121f4e094b9ceb20cbce7def403968926aa7e776bba1c137a"},{"path":"maps/orbital-2.webp","size":629708,"sha256":"a5ea513abbc66d8763f1b86243ea1d8695ef90c43d20465363815c20c55910e7"},{"path":"maps/orbital-20.webp","size":693938,"sha256":"4bd35be5ac052305e04e82c4e944a3929b58ae41fb4e06d8b2c4a8cea2df60fb"},{"path":"maps/orbital-21.webp","size":481196,"sha256":"b8570e5c543ae66c00bfbeadfcd619fc022312d4f53bf14ec517252a6a69bac6"},{"path":"maps/orbital-22.webp","size":380444,"sha256":"a3e6fdad80584249a0fb1afb2ca7c821fa1f0a82bb4cb6704312871246c7cc0f"},{"path":"maps/orbital-3.webp","size":353782,"sha256":"74a4943ade040c643d9fd6afdad86ec7e7e677158f579decb11e05619a6cfa70"},{"path":"maps/orbital-4.webp","size":11888,"sha256":"9d86aa682bb43bb4f47b607f452472f1cf377346ad069a6b7e0ba9cdc29acdb3"},{"path":"maps/orbital-5.webp","size":731910,"sha256":"eab7be9528992a5d1ed7c0ec15e9052740728ba253c778180fff81ee7fb14cfd"},{"path":"maps/orbital-6.webp","size":500106,"sha256":"17c50fa2680fd151df7bc3cf26ad088671ed9c7ba0dacf0318cdd6d30436d4f1"},{"path":"maps/orbital-7.webp","size":429134,"sha256":"c0d188aa849c67271925c1ca2a44dcdd05081053387db5b86ce6156e1aac781d"},{"path":"maps/orbital-8.webp","size":7518,"sha256":"6edd7d51c4f880bbd98b86c6a2b57f012f94b4023bd56d29b382f9348879751d"},{"path":"maps/orbital-9.webp","size":963034,"sha256":"9e68b2b1c57b84e966717ba4ad4d71e42ad39fbc47188d037db5f6ee9d9104cb"},{"path":"maps/orbital_station-0.webp","size":424938,"sha256":"8e66c2e1a65ebf212324f66ce7a5818d72d05c3b3807393ade914e3d75411ab9"},{"path":"maps/orbital_station-1.webp","size":280090,"sha256":"4ddf45f3e8c7fd1495f21acc8e22bcadf2d02f2a056c782803a64cd6f4123a76"},{"path":"maps/orbital_station-2.webp","size":292110,"sha256":"a0f7ba600ae3cba44ab900db5a6f5550caf4a10accf680de8b317abb787078b1"},{"path":"maps/professional_station-0.webp","size":383194,"sha256":"8b50fe67a762718d98a2b4a3a304cd2ea5c5c0424f01ddc114581a64310124cd"},{"path":"maps/professional_station-1.webp","size":245246,"sha256":"41deebae2c3bfa749403eeac644bb47fa466a1e043da37cf60b72c01ee050049"},{"path":"maps/professional_station-2.webp","size":154730,"sha256":"24bcf11483b3829dfa9cd70dcff7984f6697f06395522c7dd3e0c5bd1c161068"},{"path":"maps/robot_0-0.webp","size":642170,"sha256":"f14787fbe2cdad45495a319dccde3c5e775362e0309f660ea4d6ecca539379f9"},{"path":"maps/robot_0-1.webp","size":449242,"sha256":"528ed37b02a44cd3b570998d2507fd22155a3fe925b269e14513282279975f65"},{"path":"maps/robot_0-2.webp","size":359686,"sha256":"8b939a718b024e114c5592172c061b1b4dd0bd053281d7b6ae9fdb656b751e14"},{"path":"maps/robot_1-0.webp","size":772738,"sha256":"08c16aa34fe1dda47f3ccf7250084021b7f3550f8cfacc15c710c49ca1a2fa35"},{"path":"maps/robot_1-1.webp","size":584954,"sha256":"31490010994d3e08c3f66dbf6f1256933d21be5cb9734eaeb12b2f9823e80ce2"},{"path":"maps/robot_1-2.webp","size":364954,"sha256":"b3db655544c7fbd79697fcd878ebb2cbca25b88c79835bfb76b3337e45140c6e"},{"path":"maps/robot_2-0.webp","size":840094,"sha256":"96e62f1ea8558ddeb7d7b9d2edf7465f66e88fd55ba211a8e29d0daa7aac7824"},{"path":"maps/robot_2-1.webp","size":619548,"sha256":"1e4ae734895b1474960a0dda4a304fb92d987e2218d9c3e9e9639030b2a248ea"},{"path":"maps/robot_2-2.webp","size":475364,"sha256":"4f823d9bdb8751fa1e23a8ef9c551281c8591574541f69c592e4230c194bee9d"},{"path":"maps/robot_3-0.webp","size":723962,"sha256":"655866634e8e89ba25a939fad8e0944a2dcc9f539dfd60fb5f7bad66979d0a49"},{"path":"maps/robot_3-1.webp","size":402166,"sha256":"c4d6ac84714603769c1ad90ed49ed5c3ffb22fdcd32b4d07d87e20faf30e9146"},{"path":"maps/robot_3-2.webp","size":289056,"sha256":"31fd60c02170b6ee6e864d9817867b7101b9cd15b98aa65f57b2b9cad073fd65"},{"path":"maps/robot_4-0.webp","size":728282,"sha256":"2a8f936665591df3eaf1008d16963d703964a58d3900b60c7d8bece3b9030d97"},{"path":"maps/robot_4-1.webp","size":486806,"sha256":"b32815bf0e41f87b4e6612cfe09914051f77614458f3d2883210efec51afd37e"},{"path":"maps/robot_4-2.webp","size":368354,"sha256":"05446aa63fc67634a539cdb64db02771094ef006d7733f2c49966a6d910a0863"},{"path":"maps/robot_5-0.webp","size":1004228,"sha256":"cfa66c04d39d3db002efbd8f8b6b678c009a0a18ca06f3cfe2ef05a7528b70e2"},{"path":"maps/robot_5-1.webp","size":434160,"sha256":"5c4dda9b1d31f0bf9b571980e219f0fc21da34e5a916b9ca71657c2220ef8280"},{"path":"maps/robot_5-2.webp","size":427160,"sha256":"4c7cdb9e2231208c1fd9fd9f7c1565fa4417239f52e4d2ad7552949dd7812882"},{"path":"maps/spirit_0-0.webp","size":940966,"sha256":"d1187391e8c57d6cbd9be0963ed98d979b88f226b5ded8c4fd36d8f85ad693c1"},{"path":"maps/spirit_0-1.webp","size":467260,"sha256":"a5ecaf147ab63dfaca94563c92834f266f63a3ac7fadd34994bef6ae2a5066aa"},{"path":"maps/spirit_0-2.webp","size":427934,"sha256":"0821e96acbd2f7a5f20ad885b9f2374c5dbafdbd601be076b062dc65328069fe"},{"path":"maps/spirit_1-0.webp","size":647336,"sha256":"d4de9d7a07d9772b944a753197092deb51ef371b712ea6075ecb79397538d0e3"},{"path":"maps/spirit_1-1.webp","size":433160,"sha256":"0189d9bf8e53032a0a44e8cab8029c006be3775c324b249f95223cc8b458855e"},{"path":"maps/spirit_1-2.webp","size":411750,"sha256":"ffdc9ee11313b50834a40c347b7df598ea6e7a1075bf3635ccc3a19b40382f64"},{"path":"maps/spirit_2-0.webp","size":513706,"sha256":"129ccc96bfe9c1a7ce0ba2029fba214d887cd4ce0dcec85dfe153e6149580539"},{"path":"maps/spirit_2-1.webp","size":325162,"sha256":"da162f0d9027c6a3b52113538dbb2d12ecc9343e34e5cd75ecf1ce198bcec390"},{"path":"maps/spirit_2-2.webp","size":520624,"sha256":"d78215123109b6838bca3da6b53008b53e1e64858f88dd5d5dccd85feba95ecf"},{"path":"maps/spirit_3-0.webp","size":611664,"sha256":"5043b7099c60edbf999007e6977bfe0090305cf7251c2df3adb4e2f37499ff1c"},{"path":"maps/spirit_3-1.webp","size":328088,"sha256":"86b19b3f98df13fc469ca84bf4806644f3f8bc147b995100f0103369550497b2"},{"path":"maps/spirit_3-2.webp","size":599962,"sha256":"cd7ef2badf9198161430a8431e8be37b543ad9a78e591c471c7923e02ac272ab"},{"path":"maps/spirit_4-0.webp","size":848226,"sha256":"9a0af7a45d5436646f7fd3bde14e6f33d3cc35c3152e1a8dde49252f6ecd301a"},{"path":"maps/spirit_4-1.webp","size":446746,"sha256":"ea152420ff9020050bc6ef656717c6b2af2435687edc88dacd180ec1917f7b7e"},{"path":"maps/spirit_4-2.webp","size":406998,"sha256":"7fe9fca0e77ba9569a3264c3a8e8b05af79fbe4ec50949cb4ab0648fef7e6406"},{"path":"maps/spirit_5-0.webp","size":863178,"sha256":"f81fa2753b5aa6f7a795e9d9e293f07763b85f383360ad3a7f9c8fba0fe87de4"},{"path":"maps/spirit_5-1.webp","size":435894,"sha256":"45fe4c1fc412e05a23cac25d502d180f040d946839cbe05e3ab8a81dfae96374"},{"path":"maps/spirit_5-2.webp","size":475850,"sha256":"8403fdd03c08f266971602783b03976c4814c8879c2a448bc16ddbba1470aee1"},{"path":"maps/staff_0-0.webp","size":862582,"sha256":"09cb799a4e4c76a8181777ea9b155a8a3ed34761fe6574c6d561f7575127139d"},{"path":"maps/staff_0-1.webp","size":513224,"sha256":"acfa53ec2dea5d4dba93191c2aa908ecbb844af1d798e7b136ea3ec65557f539"},{"path":"maps/staff_0-2.webp","size":359012,"sha256":"147cd4862c3d83dc7ec0f78eabb4b78515a7277d72945ae094043937f4002bad"},{"path":"maps/staff_1-0.webp","size":594434,"sha256":"90718dd141513dda81734f05b56b6b2d48a7b0e60212d24df3e273b3a30bd525"},{"path":"maps/staff_1-1.webp","size":344522,"sha256":"595a182b2d6a34447f741cbb2c07a63b3885ffa86d94243ee0522a68859eaca7"},{"path":"maps/staff_1-2.webp","size":427750,"sha256":"70088a44925c0ca377eaa3c69f6df48380f56deb484929a09efe2f1762153604"},{"path":"maps/staff_2-0.webp","size":703294,"sha256":"5f80e2d2b4ac3707ecd33a3c80e1a33a8134ebbc34a50567173f7be5e5dc1c2f"},{"path":"maps/staff_2-1.webp","size":471016,"sha256":"b3ec4ac3041451ab6a997617f6acfbf95ee9456e5c0ac18d264f50edfb240191"},{"path":"maps/staff_2-2.webp","size":409202,"sha256":"f027b6ffb413a09054d69547638240f0cc1ac636e5e6ef74d97f1582e8ed6ccf"},{"path":"maps/staff_3-0.webp","size":614812,"sha256":"f4b1cd4f59aaaeb0a8716da74d5578e3425d27832f01c7a9a8d6732fca74850a"},{"path":"maps/staff_3-1.webp","size":375724,"sha256":"6c0f7008b0a2461bf0a9d1510db3a512e2b34b47da67aef0e2763e3731788016"},{"path":"maps/staff_3-2.webp","size":270170,"sha256":"70a934bea9d45412c8fd0b8b347ecba74eaa2c2a16a1e57b8bbc31335fb95213"},{"path":"maps/staff_4-0.webp","size":684000,"sha256":"67e4e671add03737e9891230d76d00456a2606e125a8656afd2cc87329f7932d"},{"path":"maps/staff_4-1.webp","size":444248,"sha256":"196fc8218f546733040eb861d53a64620e897d162a29ece3839d3cdb254f026a"},{"path":"maps/staff_4-2.webp","size":386960,"sha256":"d0c62d3c58951c7f549edccc46ebe2405e8098eb02c581efdf2087b9bde63e4e"},{"path":"maps/staff_5-0.webp","size":661140,"sha256":"890c1d54fdb94f1982f07d6775c5891c2314d73be347d7fe413cd7ad654a09a0"},{"path":"maps/staff_5-1.webp","size":354836,"sha256":"c44bef8b639f4ffab52e1dfae1783c81ae889f3d83f299685c66774f3d58c465"},{"path":"maps/staff_5-2.webp","size":342070,"sha256":"8278c6ce0ad10581d49369e1f2e7f8d59f367d814d34bf9cc134017630e245f0"},{"path":"orbital.glb","size":9155296,"sha256":"a7d273c26e61a5838844db85c111c86a910e6888f223d7a80599ff02cf505a76"},{"path":"orbital/dark-base-0-0.webp","size":129456,"sha256":"0f2d059ebb3553b11343b188fd5c5d948677de5a7e3da6fd1d738882c5594860"},{"path":"orbital/dark-base-1-0.webp","size":175700,"sha256":"e836d7adfad75ef0d5899bcc7f64eed99beb479afb43635326e586fdeac07f4a"},{"path":"orbital/dark-close-0-0.webp","size":374142,"sha256":"4aa08f854227c73090320ab83ddf7739b1288c1b52596e924f195fdf16fac861"},{"path":"orbital/dark-detail-0-0.webp","size":198284,"sha256":"59cba07c8f613c4f062662107aedf613bd171618988663458ce77ce1fbadf2a9"},{"path":"orbital/dark-detail-1-0.webp","size":241912,"sha256":"5fa6729de183226272a18bce162386a3148dc8f369467fd7204d246b0841437b"},{"path":"orbital/light-base-0-0.webp","size":141848,"sha256":"e94b66346121b3498c8a981e4eb944518dc6202b2af206948119792f78d2bf96"},{"path":"orbital/light-base-1-0.webp","size":200002,"sha256":"99e15b1294508363e790687ec71c8012cdd3e4335b7a9d13a45dc541d5287009"},{"path":"orbital/light-close-0-0.webp","size":374804,"sha256":"149f44f1a751b72e2bf197703d920dedf45cb4d3a20cfc5df9bd181cb5c4a3de"},{"path":"orbital/light-detail-0-0.webp","size":217464,"sha256":"9709b96f753b730da97aee11e04e7d5a113ed7b14d8099aa0c2c1ca3afee3139"},{"path":"orbital/light-detail-1-0.webp","size":255200,"sha256":"129503fb27dbec978933c031a604c1f4bff9b3547715e7ad4ab1100119153b03"},{"path":"orbital/plates.json","size":3473,"sha256":"7fd3e18a18548c8463abd118cb1e1f87d231c1613f94a952dec23b692dcf8992"},{"path":"orbital/sky-dark.hdr","size":36962,"sha256":"f23d7ce96f20020367fc61b585164b9146fd716ec7b5003020e66a2acfee60de"},{"path":"orbital/sky-light.hdr","size":36617,"sha256":"a4321a8a54de034d9fd59d92fca3dfb3eb5e3bd8bcf6a724ef631f44f129227c"},{"path":"orbital/surfaces.json","size":103,"sha256":"a93f1da79181b88ac44d199b2300c762aae484def1c22a1501bac7325e5d2cb5"},{"path":"orbital_station.glb","size":1397364,"sha256":"2cb4ba64a76caa4ec430b7f4d7c82df75a5b14f5bf59e5b680716a6c2b4cc27e"},{"path":"professional.glb","size":829544,"sha256":"d1b2c29c4e4f2d3dd43798f79c1b18a1e75ab7e6061f3da5b430b99163fbe514"},{"path":"professional/accent-color.webp","size":37284,"sha256":"a801c6429a2671cd62248940f69d98ed6a72cf7f43a7c880cda3aaa820476e55"},{"path":"professional/accent-normal.webp","size":10908,"sha256":"8d92448bf3339091c5a8630156f583a059c3eef960c25d8a521a7989f7a5fc2f"},{"path":"professional/accent-rough.webp","size":6228,"sha256":"6e33be689ce65b15c3d58d02b5fb5e50ca62b65e2452c10e8be90d12b6b862fc"},{"path":"professional/concrete-color.webp","size":11844,"sha256":"b6ceb143c544a06af8251f7eb88be6d0f72e934273c28aa28b7fcc2f0c3e2140"},{"path":"professional/concrete-normal.webp","size":1974,"sha256":"ecf9c752fc23eed0c4e8a82d64a00c106b1ff8fd582523c7a357997fdbee3ad4"},{"path":"professional/concrete-rough.webp","size":634,"sha256":"b7438c51f2673cd6a47a7e8531684e491821227622a7a4e63b3d8d7afeafe831"},{"path":"professional/dark-base-0-0.webp","size":154076,"sha256":"8219ac5fb9aeab5ce729159f84f3dcf4f62d9293b7b04ce1ea883a2565016edb"},{"path":"professional/dark-base-1-0.webp","size":182038,"sha256":"04698e517a885e9fcada877fb10699732eca7585fb4e158e7a3c43ea2ad0029b"},{"path":"professional/dark-close-0-0.webp","size":592274,"sha256":"9561467ff19ab1851b1d2818883d0433d2bc21f015e495c3f21a5d961834b8ba"},{"path":"professional/dark-detail-0-0.webp","size":183862,"sha256":"adc8781a1c5ebb6349f5b8d3d582b8a3c415d9b1b30dd3f3ae0aae7cbcb9c847"},{"path":"professional/dark-detail-1-0.webp","size":230480,"sha256":"b163cf6ac3d62bfe069e79733eafe74df6d4e49003f549394c5a1fb4fa65c4bd"},{"path":"professional/light-base-0-0.webp","size":172206,"sha256":"6012cb0762c64a87c68b71feeeed3cc69b8ae85808e29f089c483d7ce2c4d1aa"},{"path":"professional/light-base-1-0.webp","size":211402,"sha256":"0fae98e39525c11817c9e0877e2b5af6f9695c4f1a7a1eb9243d3214a1414794"},{"path":"professional/light-close-0-0.webp","size":971540,"sha256":"bde4822eeb04ecada1b12dcbd808d05134b05416c17f8d86e8e7dd3c0e999c78"},{"path":"professional/light-detail-0-0.webp","size":276826,"sha256":"9bd6c9acbe2863cb09ac99fdae2f3bafff7e891ccf436513479c07e0f11f3903"},{"path":"professional/light-detail-1-0.webp","size":337680,"sha256":"c5369fac38e2e727b072fb327a44a12f071ebec7e07cfc31109aeb58b0df6a79"},{"path":"professional/plates.json","size":3523,"sha256":"55645fc6ba89cee88c032faff61df354d259b3f6fcf4f71b5da8b4807976d158"},{"path":"professional/sky-dark.hdr","size":260840,"sha256":"6e296ea4e6d465c291dce7792ad5f8ff965b8deea4c24dd0f1c0decadb892332"},{"path":"professional/sky-light.hdr","size":358440,"sha256":"e2a11d8394eaad91f00f825b4d0181f28fa155a79e47dec1476d7366c203aebc"},{"path":"professional/stone-color.webp","size":16730,"sha256":"f81236b072fe4cf4b96c669081a412e898516eee8ab23294b7ce7c940efe78d0"},{"path":"professional/stone-normal.webp","size":2722,"sha256":"1ab67e805003ba033d4e6a269b76c87362502f607f0ac041e824cf5a9b6067ab"},{"path":"professional/stone-rough.webp","size":23348,"sha256":"fa4496b0fc135e143a28b253f348ca9f2988470c3c529d6884f905886d69069d"},{"path":"professional/surfaces.json","size":1107,"sha256":"3471fa2835378140c7a06cd5494294971fe272433f84a5d03542b44e332dd0ef"},{"path":"professional/timber-color.webp","size":22372,"sha256":"1eee4b1d660d2d9816eabee0cd8e9c575319d694c5b321406776ac901c974c9c"},{"path":"professional/timber-normal.webp","size":11574,"sha256":"20ebd8fdd3c15e3b4254eba9bda71f3fd6ad6929362cdbd671631eb61d944185"},{"path":"professional/timber-rough.webp","size":34338,"sha256":"0f576127bca68bbf5c8361a441690171cba7cdc80cefc0ae62e6ecceca9b47fb"},{"path":"professional_station.glb","size":1369552,"sha256":"4144a584d3bc9dda79fa0a55f2fefe57ce559947b66b9042b642372d15d87fc3"},{"path":"robot_0.glb","size":1680480,"sha256":"6cfa63d7c0364f11d9f141c2109a5156c5ea5d11c04fa1485ab1cb63d6511bc0"},{"path":"robot_1.glb","size":1775004,"sha256":"a83f16ced3347d5f51ba152813c1ae1392cae2e38d16c8bcdd39f78cb0d9cf5b"},{"path":"robot_2.glb","size":1848120,"sha256":"33773cb9b5ac977b76363f858b5b192f19a369a4527c873dd3a2a519eb0c10cd"},{"path":"robot_3.glb","size":1752144,"sha256":"50b6453b81a9c6b876ce3e8a315bbd72b0f78bba22f2cb28cd5e33fc1373dd6f"},{"path":"robot_4.glb","size":1852464,"sha256":"4ceec3831e22f328a9b9d713e8ee48b49c1d185e7e4fd94142f3bcf6ea54b581"},{"path":"robot_5.glb","size":1936136,"sha256":"6abd6a88248a409cf404ef37ffd5aa5c023b50447b4dcc8300c0c36216ab2fe7"},{"path":"spirit_0.glb","size":1845192,"sha256":"f4fe480d5fd1806ae31e69581f25fd7224742d4a24735828edc8adb2e5ca59bd"},{"path":"spirit_1.glb","size":1800916,"sha256":"1e5979e317196c9f67ea19e2cd5d34ad5f2b8d27e652d1fff50d02285b2f392e"},{"path":"spirit_2.glb","size":1698720,"sha256":"57955ee1368047523250e6c0ff401b6eee09fff45374415b579c7cd5df0dc17a"},{"path":"spirit_3.glb","size":1741576,"sha256":"b7a1482617ad5c4f7ca2df9740aeb38378e078c024b18203ab4c67fe4b7e6a27"},{"path":"spirit_4.glb","size":1867496,"sha256":"d0b99829c233a257b75e1eb80baae62cd2b89953dfa6984f1ef590f98dcd8992"},{"path":"spirit_5.glb","size":1892012,"sha256":"3b362e66946fb35d8f981243784bdfc2e4b695756d16b12a04e8fca853f8d0b4"},{"path":"staff_0.glb","size":1809880,"sha256":"0b81edaac2eea3d5dae5247be9c7fb17af4e229d5be2847ddd78e7b535a0cfe3"},{"path":"staff_1.glb","size":1702464,"sha256":"0b854bc22adcdf4dee9d609697806ed3f7e2901c044079fe5b316a86cfc9a6e6"},{"path":"staff_2.glb","size":1822452,"sha256":"0353b2721af5b89709b36efd79d01027e9d65b307bbd4b2bbddc4bf70484b1d8"},{"path":"staff_3.glb","size":1783640,"sha256":"f14ac796604593d027699406cad7a09ac65c6c3f55fb741d9a26ee553c8324bb"},{"path":"staff_4.glb","size":1820880,"sha256":"619ae261c812f0afc7fb41090e113296522ae6081c628f5b46b9325c0114973a"},{"path":"staff_5.glb","size":1799744,"sha256":"f760d5076d9ee6101cdc3479c00dfb46a37497892bdd0e40e6ca07e02bef145b"}]}
|