SLOPSHOPPER

meatball

A pixel-art meatball above the prompt, in the desktop app and the terminal, that shows what Claude is doing: rolls while it works, chomps on edits, watches…

newbandguardcommandprompttimer
v1.5.8MITupdated 2026-10-06jesseorndorff/meatball/plugin
A shopper browsing a rack in a slop shop
Preview · a replayed session in a sandbox
claude · ~/work/app · meatball
› fix the failing auth test and add an audit log call ⏺ Read(src/auth.ts) ⎿ Read 6 lines ⏺ Update(src/auth.ts) ⎿ Added 2 lines, removed 1 line ⏺ Bash(bun test) ⎿ 3 pass, 1 fail ● Done. refresh now rejects expired claims and logs an audit event. ✻ Worked for 42s · done 4:20 PM › /meatball ⎿ meatball: The meatball rolled away. ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── › ? for shortcuts
README

Meatball

A pixel-art meatball that lives above the prompt in Claude Code, in the desktop app and the terminal, and shows what Claude is doing at a glance.

The meatball's poses: rolling, chomping an edit, running a command, running tests, tests passed, tests failed, opening a PR, PR opened, something failed, waiting on you, done, asleep, context filling, time to /compact, subagents at work

<sub>Also as a GIF for places that won't play an SVG. Regenerate both with python3 docs/make-pose-sheets.py after changing the sprite.</sub>

He…When
rolls along the barClaude is thinking or reading
chompsClaude edits a file
stands with a focused facea command is running
puts on goggles and fidgetstests are running (npm test, jest, vitest, pytest, go test, cargo test, …)
cheers, or groansthe tests passed, or failed
carries an envelopea pull request is being opened (gh pr create)
plants a flag in the confettithe pull request was opened
rolls with mini meatballs behind himsubagents or background tasks are working (one mini each, up to four)
winces and shakesa tool fails
hops and blinksClaude is waiting on you: a permission prompt on screen, a question, or a plan to approve
does a happy hopthe turn is done
dozes offnothing has happened for 5 minutes
gets rounderthe context window passes 50%, then 80% (time to /compact)

Install

Needs Claude Code 2.1.288 or newer. In the desktop app he's drawn from the 32×32 SVG. In a terminal he's one line of colored text, a little face rolling across the band: (•ᴗ•) rolling, (O_O)! waiting on you, (¬_¬) ⠋ running a command, (°_°) ⠋ running tests, \(^o^)/ ✓ passed, (>_<) ✗ failed, (•ᴗ•) ✉ opening a PR, (^ᴗ^) ⚑ PR opened, (x_x)# something failed, \(^ᴗ^)/ done, (-_-) zZ asleep, an o trailing behind for each running subagent, and rounder cheeks, ( •ᴗ• ) then ((•ᴗ•)), as the context fills.

claude plugin marketplace add jesseorndorff/meatball
claude plugin install meatball@meatball

Then start a new session.

To hack on him, clone the repo and add your local copy instead, so your changes load without pushing:

git clone https://github.com/jesseorndorff/meatball.git
claude plugin marketplace add ./meatball
claude plugin install meatball@meatball

Does he cost tokens?

No. claude plugin details meatball@meatball reports ~0 tokens added to every session, and nothing he does later spends any:

  • He never calls the model. He only listens to events Claude Code already raises (a tool starting, a turn ending, a permission prompt, context measurements) and redraws himself.
  • He adds nothing to Claude's prompt: no instructions, skills or tools, and he passes prompts and tool results through untouched.
  • "Getting rounder" reads the context figures Claude Code already tracks, which is free.

His only cost is a little local work: a few small state updates per event and, in a terminal, about eight redraws a second while he's moving.

Commands

  • /meatball hides him or brings him back (the ✕ beside him hides him too)
  • /meatball width <px> pins the bar's width; /meatball width auto fits it to the window again

Updating after a change

  1. Bump version in plugin/.claude-plugin/plugin.json
  2. claude plugin marketplace update meatball
  3. claude plugin update meatball@meatball, then start a new session

Layout

  • .claude-plugin/marketplace.json: the one-plugin marketplace
  • plugin/hooks/register.tsx: the mod
  • plugin/hooks/terminal.ts: his one-line text face for terminals
  • plugin/assets/meatball.svg, plugin/assets/meatball-agents.svg: the sprite and the subagents strip; plugin/hooks/meatball.ts is generated from them (compacted to fit the desktop's 128KB SVG limit) by python3 scripts/build-sprites.py
  • docs/make-pose-sheets.py: draws docs/poses.svg and docs/poses.gif from the sprites
  • plugin/assets/meatball-16.svg: a 16×16 version, kept for terminals that draw block characters cleanly
  • plugin/types/index.d.ts: the state contract

Run the tests with claude plugin test plugin and check the manifests with claude plugin validate .

License

MIT © 2026 Jesse Orndorff

Source 4 files
hooks/register.tsx 535 lines
1import { atom, read, update } from 'claude-code'
2import type { EngineInterface, Register, SvgProps } from 'claude-code'
3
4import type { Agents, Fill, Mood, Motion, Pose } from '../types'
5import { AGENTS, MEATBALL } from './meatball'
6import * as terminal from './terminal'
7
8const isHidden = atom({ plugin: 'meatball', key: 'isHidden' } as const, false)
9/** A meatball standing at home in the middle of the bar with nothing on his plate. */
10export const FRESH: Motion = {
11  pose: 'none',
12  mood: 'none',
13  fill: 'normal',
14  rolledMs: 0,
15  since: null,
16  isTurn: false,
17  poseId: 0,
18  turnId: 0,
19  from: null,
20  homeAt: 0,
21}
22const motion = atom({ plugin: 'meatball', key: 'motion' } as const, FRESH)
23
24const width = atom({ plugin: 'meatball', key: 'width' } as const, null as number | null)
25const agents = atom({ plugin: 'meatball', key: 'agents' } as const, {} as Agents)
26
27/** His size on screen, in pixels: the sprite is 32×32 art scaled up crisply. */
28const SIZE = 48
29/** How fast he rolls, in pixels a second, whatever the window's width. */
30const SPEED = 120
31/**
32 * The desktop reports the band in columns, not pixels: about this many
33 * pixels to a column on the desktop app (95 columns came to about 1050px).
34 */
35const PX_PER_COLUMN = 11
36/** Pixels kept free at the band's end for the close button. */
37const CLOSE_ROOM = 48
38const CHOMP_MS = 1200
39const BOUNCE_MS = 1000
40const HURT_MS = 2500
41/** A quiet spell this long after a turn and he dozes off. */
42const SLEEP_MS = 5 * 60 * 1000
43
44/** The tools that change files: each one is a bite. */
45const EDIT_TOOLS = new Set(['Edit', 'Write', 'MultiEdit', 'NotebookEdit'])
46/** The tools that run commands: he stands and watches them. */
47const COMMAND_TOOLS = new Set(['Bash', 'PowerShell'])
48/** The tools that stop and ask you something: he waits on you. */
49const ASKING_TOOLS = new Set(['AskUserQuestion', 'ExitPlanMode'])
50
51const RESULT_MS = 2500
52const CELEBRATE_MS = 3500
53/** A subagent counts as running while it has used a tool this recently. */
54const AGENT_TTL_MS = 20_000
55/** The agents strip shows at most this many mini meatballs. */
56const MAX_AGENTS = 4
57
58/** Commands that run a test suite. */
59const TEST_COMMAND =
60  /(?:^|[\s;&|(])(?:(?:npm|pnpm|yarn|bun)\s+(?:run\s+)?test|npx\s+(?:jest|vitest|mocha)|jest|vitest|pytest|mocha|rspec|phpunit|go\s+test|cargo\s+test|dotnet\s+test|make\s+test|claude\s+plugin\s+test)\b/
61/** Commands that open a pull request. */
62const PR_COMMAND = /(?:^|[\s;&|(])gh\s+pr\s+create\b/
63
64/** What a shell command is up to, for the mood he wears while it runs. */
65export function activityOf(command: string): 'testing' | 'deliver' | 'busy' {
66  if (PR_COMMAND.test(command)) return 'deliver'
67  if (TEST_COMMAND.test(command)) return 'testing'
68  return 'busy'
69}
70
71/** How many subagents are running: those seen using a tool in the last little while. */
72export function agentCount(seen: Agents, now: number) {
73  return Math.min(MAX_AGENTS, Object.values(seen).filter(at => now - at < AGENT_TTL_MS).length)
74}
75
76/** How round he is for a context window this full. */
77export function fillFor(percent: number | undefined): Fill {
78  return (percent ?? 0) >= 80 ? 'stuffed' : (percent ?? 0) >= 50 ? 'full' : 'normal'
79}
80
81/** Stop rolling, banking the stretch just rolled. */
82export function halt(m: Motion, now: number): Motion {
83  return { ...m, rolledMs: position(m, now), since: null }
84}
85
86/** Roll on from wherever he stopped. */
87export function roll(m: Motion, now: number): Motion {
88  return m.since === null ? { ...m, since: now } : m
89}
90
91/** Time spent rolling so far, from the middle: where he is along the bar. */
92export function position(m: Motion, now: number) {
93  return m.rolledMs + (m.since === null ? 0 : now - m.since)
94}
95
96/** How far into a lap he is, for the animations: a lap starts at the left end, he starts in the middle. */
97function lapAt(m: Motion, now: number, lap: number) {
98  return (position(m, now) + lap / 4) % lap
99}
100
101/** The bar's width in pixels: pinned by `/meatball width`, else from the band's columns. */
102export function barWidth(pinned: number | null, columns: number | undefined) {
103  return Math.max(SIZE * 4, pinned ?? Math.round((columns ?? 80) * PX_PER_COLUMN))
104}
105
106/** One trip out and back along a bar this wide, in milliseconds. */
107export function lapMs(bar: number) {
108  return Math.round(((bar - SIZE) * 2 * 1000) / SPEED)
109}
110
111/** How far along the bar he is, 0 at the left end to 1 at the right, and which way he faces. */
112export function spot(m: Motion, now: number, lap: number) {
113  return terminal.alongAt(position(m, now), lap)
114}
115
116/**
117 * After a turn he hops where he stopped, then rolls home to the middle:
118 * where he is on the way, how long is left, and whether he heads left.
119 * Null while he is out working.
120 */
121export function walkHome(m: Motion, now: number, lap: number, travel: number) {
122  if (m.from === null) return null
123  const walk = terminal.homeward(terminal.alongAt(m.from, lap).along, travel, SPEED, now - m.homeAt)
124  const isWalking = m.pose === 'none' && m.mood === 'none' && now >= m.homeAt && walk.leftMs > 0
125  return { ...walk, isWalking }
126}
127
128/** Which way of standing still or moving he shows, most urgent first. */
129export function look(m: Motion, isRolling: boolean) {
130  const mood = (name: string) => `data-mood="${name}" data-idle=""`
131  if (m.mood === 'alert') return mood('alert')
132  if (m.pose === 'hurt' || m.pose === 'fail' || m.pose === 'pass' || m.pose === 'celebrate') return mood(m.pose)
133  if (m.pose === 'chomp') return 'data-chomp=""'
134  if (m.pose === 'bounce') return 'data-mouth="open"'
135  if (m.mood !== 'none') return mood(m.mood)
136  return isRolling ? 'data-roll=""' : 'data-idle=""'
137}
138
139/**
140 * The bar the meatball lives on, `bar` pixels wide. Rolling out and back
141 * while Claude works; stopping to chomp on edits, watch commands, wince at
142 * errors or wait on you; hopping when a turn ends; dozing after a quiet
143 * spell. A redraw restarts the animations, so they begin part-way in (a
144 * negative begin), on the spot where he was.
145 */
146export function stage(m: Motion, now: number, isWorking: boolean, bar: number, helpers = 0) {
147  const lap = lapMs(bar)
148  const travel = bar - SIZE
149  const home = walkHome(m, now, lap, travel)
150  const isRolling = isRollingNow(m, isWorking)
151  // Our classes and animations are prefixed mb- so they can't collide with the sprite's own.
152  const ball = MEATBALL.replace(
153    /<svg ([^>]*?)width="64" height="64"/,
154    `<svg data-fill="${m.fill}" ${look(m, isRolling || Boolean(home?.isWalking))} $1width="${SIZE}" height="${SIZE}"`,
155  )
156  const along = home ? home.along : spot(m, now, lap).along
157  const dur = `${lap / 1000}s`
158  const begin = `-${lapAt(m, now, lap) / 1000}s`
159  const trailLeft = `translateX(-${trailWidth(helpers) + 2}px)`
160  const trailRight = `translateX(${SIZE + 2}px)`
161  const css =
162    '.mb-face{transform-box:fill-box;transform-origin:center;' +
163    // On his way home he faces the middle; otherwise his facing follows the lap.
164    (home
165      ? `transform:scaleX(${home.isLeft ? -1 : 1})}`
166      : `animation:mb-face ${dur} steps(1) infinite;animation-delay:${begin};` +
167        `animation-play-state:${isRolling ? 'running' : 'paused'}}` +
168        '@keyframes mb-face{0%{transform:scaleX(1)}50%{transform:scaleX(-1)}}') +
169    (m.pose === 'bounce'
170      ? `.mb-hop{animation:mb-hop ${BOUNCE_MS / 1000}s ease-out 1}` +
171        '@keyframes mb-hop{0%,55%,100%{transform:translateY(0)}30%{transform:translateY(-9px)}75%{transform:translateY(-5px)}}'
172      : '') +
173    // The agents strip trails behind him: to his left heading out, his right heading back.
174    (home
175      ? `.mb-trail{transform:${home.isLeft ? trailRight : trailLeft}}`
176      : `.mb-trail{animation:mb-trail ${dur} steps(1) infinite;animation-delay:${begin};` +
177        `animation-play-state:${isRolling ? 'running' : 'paused'}}` +
178        `@keyframes mb-trail{0%{transform:${trailLeft}}50%{transform:${trailRight}}}`)
179
180  return (
181    `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${bar} ${SIZE}" ` +
182    `width="${bar}" height="${SIZE}" style="background:none">` +
183    `<style>${css}</style>` +
184    `<g transform="translate(${(along * travel).toFixed(1)} 0)">` +
185    (isRolling
186      ? `<animateTransform attributeName="transform" type="translate" ` +
187        `values="0 0;${travel} 0;0 0" dur="${dur}" begin="${begin}" repeatCount="indefinite"/>`
188      : home?.isWalking
189        ? `<animateTransform attributeName="transform" type="translate" ` +
190          `values="${(along * travel).toFixed(1)} 0;${(travel / 2).toFixed(1)} 0" dur="${home.leftMs / 1000}s" fill="freeze"/>`
191        : '') +
192    `<g class="mb-face"><g class="mb-hop">${ball}</g></g>` +
193    (helpers > 0 ? `<g class="mb-trail">${trail(helpers)}</g>` : '') +
194    `</g></svg>`
195  )
196}
197
198/** One mini meatball is 11 of the strip's 44 units wide; the strip is drawn at his scale. */
199const STRIP_SCALE = SIZE / 32
200
201function trailWidth(helpers: number) {
202  return Math.round(helpers * 11 * STRIP_SCALE)
203}
204
205/** The agents strip showing `helpers` mini meatballs, at his scale. */
206function trail(helpers: number) {
207  return AGENTS.replace(
208    /<svg ([^>]*?)width="88" height="64"([^>]*?)data-agents="\d"/,
209    `<svg $1width="${44 * STRIP_SCALE}" height="${SIZE}"$2data-agents="${helpers}"`,
210  )
211}
212
213/** Fill in what an older meatball's saved state lacks. */
214export function settle(m: Partial<Motion> | null | undefined): Motion {
215  return { ...FRESH, ...m }
216}
217
218/**
219 * Start or end something that lasts: he stops while it holds, and rolls on
220 * from the same spot once it ends if the turn is still running.
221 */
222async function feel($: Pick<EngineInterface, 'state' | 'clock'>, mood: Mood, from?: Mood | Mood[]) {
223  const now = await $.clock.now()
224  await update($, motion, stored => {
225    const was = settle(stored)
226    if (from !== undefined && ![from].flat().includes(was.mood)) {
227      return was
228    }
229    const next = { ...halt(was, now), mood }
230    return mood === 'none' && was.isTurn && was.pose === 'none' ? roll(next, now) : next
231  })
232}
233
234/**
235 * Stop and strike a pose for a moment, then roll on if the turn is still
236 * running. A later pose cancels an earlier one's ending.
237 */
238async function strike($: Pick<EngineInterface, 'state' | 'clock'>, pose: Pose, ms: number) {
239  const now = await $.clock.now()
240  const m = await update($, motion, stored => {
241    const was = settle(stored)
242    return { ...halt(was, now), pose, poseId: was.poseId + 1 }
243  })
244  $.clock.after(ms, () => {
245    void (async () => {
246      const later = await $.clock.now()
247      await update($, motion, stored => {
248        const was = settle(stored)
249        if (was.poseId !== m.poseId) {
250          return was
251        }
252        const rested = { ...was, pose: 'none' as const }
253        return was.isTurn && was.mood === 'none' ? roll(rested, later) : rested
254      })
255    })()
256  })
257}
258
259/** Whether he is rolling laps right now: no pose or mood holding him, and a turn under way, not on his way home. */
260function isRollingNow(m: Motion, isWorking: boolean) {
261  return m.pose === 'none' && m.mood === 'none' && m.from === null && (m.since !== null || isWorking)
262}
263
264/** How often the terminal line repaints while he moves, in milliseconds. */
265const TICK_MS = 120
266
267/**
268 * The terminal has no CSS animations, so while he moves a timer asks for the
269 * band to be drawn again; once he stands still it stops.
270 */
271let ticker: (() => void) | null = null
272
273function stopTicking() {
274  ticker?.()
275  ticker = null
276}
277
278function keepTicking($: Pick<EngineInterface, 'clock' | 'ui'>) {
279  if (ticker) {
280    return
281  }
282  const timer = $.clock.every(TICK_MS, () => $.ui.invalidate('ui.render'))
283  ticker = () => timer.cancel()
284}
285
286/** Send him away until `/meatball` brings him back. */
287async function putAway($: Pick<EngineInterface, 'state'>) {
288  stopTicking()
289  await update($, isHidden, () => true)
290}
291
292/** What he is doing, for a screen reader. */
293function describe(m: Motion) {
294  if (m.mood === 'alert') return 'The meatball is waiting on you'
295  if (m.pose === 'hurt') return 'The meatball winces: something failed'
296  if (m.pose === 'fail') return 'The meatball groans: tests failed'
297  if (m.pose === 'pass') return 'The meatball cheers: tests passed'
298  if (m.pose === 'celebrate') return 'The meatball plants a flag: pull request opened'
299  if (m.pose === 'chomp') return 'The meatball chomps an edit'
300  if (m.mood === 'testing') return 'The meatball watches the tests run'
301  if (m.mood === 'deliver') return 'The meatball carries a pull request'
302  if (m.mood === 'busy') return 'The meatball watches a command run'
303  if (m.mood === 'sleep') return 'The meatball is asleep'
304  return 'A meatball rolling along'
305}
306
307/** Note a subagent at work, and redraw once it would age out of the count. */
308async function sawAgent($: Pick<EngineInterface, 'state' | 'clock' | 'ui'>, id: string) {
309  const now = await $.clock.now()
310  await update($, agents, seen => {
311    const fresh: Agents = { [id]: now }
312    for (const [other, at] of Object.entries(seen ?? {})) {
313      if (other !== id && now - at < AGENT_TTL_MS) fresh[other] = at
314    }
315    return fresh
316  })
317  $.clock.after(AGENT_TTL_MS + 250, () => $.ui.invalidate('ui.render'))
318}
319
320export const register: Register = on => {
321  on('session.start', async ($, e, next) => {
322    const ran = await next(e)
323    await $.command.register({
324      name: 'meatball',
325      description: 'Show or hide the meatball; /meatball width <px> or auto sets his bar',
326    })
327    // A reload starts him over at home in the middle, with nothing left mid-pose.
328    const { context } = await $.session.usage()
329    await update($, motion, stored => ({
330      ...settle(stored),
331      pose: 'none',
332      mood: 'none',
333      rolledMs: 0,
334      since: null,
335      from: null,
336      fill: fillFor(context.percent),
337    }))
338
339    return ran
340  })
341
342  on('session.measure', async ($, e, next) => {
343    const fill = fillFor(e.context.percent)
344    await update($, motion, stored => {
345      const was = settle(stored)
346      return was.fill === fill ? was : { ...was, fill }
347    })
348
349    return next(e)
350  })
351
352  on('command.run', { command: 'meatball' }, async ($, e) => {
353    const [word, value] = e.args.trim().split(/\s+/)
354    if (word === 'width') {
355      const px = Number(value)
356      const pinned = await update($, width, () => (Number.isFinite(px) && px > 0 ? Math.round(px) : null))
357      return { text: pinned ? `The meatball's bar is now ${pinned}px wide.` : 'The meatball sizes his bar to the window again.' }
358    }
359
360    const hidden = await update($, isHidden, was => !was)
361    if (hidden) {
362      stopTicking()
363    }
364
365    return { text: hidden ? 'The meatball rolled away.' : 'The meatball is back!' }
366  })
367
368  on('turn.start', async ($, e, next) => {
369    const now = await $.clock.now()
370    await update($, motion, stored => {
371      const was = settle(stored)
372      // He sets out from home (rolledMs 0, the middle), even if still on his way there.
373      const awake = { ...was, isTurn: true, turnId: was.turnId + 1, from: null }
374      return roll(was.mood === 'sleep' ? { ...awake, mood: 'none' } : awake, now)
375    })
376
377    return next(e)
378  })
379
380  // A permission prompt is on screen: he stops and waits on you. (Not every
381  // "ask" verdict becomes a prompt: in auto mode a classifier settles most.)
382  on('classic.PermissionRequest', async ($, e, next) => {
383    await feel($, 'alert')
384
385    return next(e)
386  })
387
388  on('classic.PermissionDenied', async ($, e, next) => {
389    await feel($, 'none', 'alert')
390
391    return next(e)
392  })
393
394  // You answered by typing: whatever he was waiting on is over.
395  on('prompt.submit', async ($, e, next) => {
396    await feel($, 'none', 'alert')
397
398    return next(e)
399  })
400
401  on('tool.call', async ($, e, next) => {
402    // A subagent's or background task's tool: it adds a mini meatball to the
403    // trail, and if it was what he was waiting on you for, it has now gone ahead.
404    if (e.agentId) {
405      await sawAgent($, e.agentId)
406      const ran = await next(e)
407      await sawAgent($, e.agentId)
408      await feel($, 'none', 'alert')
409      return ran
410    }
411
412    // A tool's arguments sit on the event itself: Bash's is `e.command`.
413    const command =
414      COMMAND_TOOLS.has(e.tool) && typeof (e as { command?: unknown }).command === 'string'
415        ? (e as { command: string }).command
416        : ''
417    const activity = COMMAND_TOOLS.has(e.tool) ? activityOf(command) : null
418
419    if (EDIT_TOOLS.has(e.tool)) {
420      await strike($, 'chomp', CHOMP_MS)
421    } else if (ASKING_TOOLS.has(e.tool)) {
422      await feel($, 'alert')
423    } else if (activity) {
424      await feel($, activity)
425    }
426
427    const ran = await next(e)
428    const failed = 'isError' in ran && Boolean(ran.isError)
429
430    // Whatever he was waiting on or watching is over.
431    await feel($, 'none', ['alert', 'busy', 'testing', 'deliver'])
432    if (activity === 'testing') {
433      await strike($, failed ? 'fail' : 'pass', RESULT_MS)
434    } else if (activity === 'deliver' && !failed) {
435      await strike($, 'celebrate', CELEBRATE_MS)
436    } else if (failed) {
437      await strike($, 'hurt', HURT_MS)
438    }
439
440    return ran
441  })
442
443  on('turn.complete', async ($, e, next) => {
444    // He hops where he stopped, then rolls home to the middle.
445    const now = await $.clock.now()
446    const done = await update($, motion, stored => {
447      const was = { ...settle(stored), isTurn: false, mood: 'none' as const }
448      return was.from !== null
449        ? was
450        : { ...was, from: position(was, now), homeAt: now + BOUNCE_MS, rolledMs: 0, since: null }
451    })
452    await strike($, 'bounce', BOUNCE_MS)
453    // Nothing for a while and he dozes off where he stands.
454    $.clock.after(SLEEP_MS, () => {
455      void update($, motion, stored => {
456        const was = settle(stored)
457        return was.turnId === done.turnId && !was.isTurn && was.mood === 'none'
458          ? { ...was, mood: 'sleep' }
459          : was
460      })
461    })
462
463    return next(e)
464  })
465
466  on('ui.render', { component: 'AbovePrompt' }, async ($, e, next) => {
467    if (e.props.hasSurvey || (await read($, isHidden))) {
468      stopTicking()
469      return next(e)
470    }
471
472    // In a terminal he is one line of text: pixel art there is too big and striped.
473    if (e.surface === 'terminal') {
474      const { Box, Button, Text } = $.ui.resolve(e)
475      const m = settle(await read($, motion))
476      const now = await $.clock.now()
477      const home = m.from === null ? null : terminal.placeHome(m.from, e.props.bodyColumns, now - m.homeAt)
478      const isWalking = Boolean(home?.isWalking) && m.pose === 'none' && m.mood === 'none'
479      const isRolling = isRollingNow(m, e.props.isWorking) || isWalking
480      const { column, isReturning } = home ?? terminal.place(position(m, now), e.props.bodyColumns)
481      if (terminal.isMoving(m, isRolling)) {
482        keepTicking($)
483      } else {
484        stopTicking()
485      }
486
487      return (
488        <Box>
489          <Text>{' '.repeat(column)}</Text>
490          {terminal.face(m, isRolling, isReturning, now, agentCount(await read($, agents), now)).map((piece, i) => (
491            <Text key={`p${i}`} color={piece.color} bold>
492              {piece.text}
493            </Text>
494          ))}
495          <Text> </Text>
496          <Button key="close" label="×" plain dimColor onPress={() => putAway($)} />
497        </Box>
498      )
499    }
500
501    const { Box, Button } = $.ui.resolve(e)
502    const { Svg } = $.ui.resolve(e) as { Svg: (props: SvgProps) => JSX.Element }
503    const m = settle(await read($, motion))
504    const now = await $.clock.now()
505    // Leave room at the end of the band for the close button.
506    const bar = barWidth(await read($, width), e.props.bodyColumns) - CLOSE_ROOM
507    // Once he is home, draw him again standing still.
508    const home = walkHome(m, now, lapMs(bar), bar - SIZE)
509    if (home?.isWalking) {
510      $.clock.after(home.leftMs + 50, () => $.ui.invalidate('ui.render'))
511    }
512
513    return (
514      // One row holds him: left unsized, the desktop gives the band's content far more height than
515      // he needs. Heights count whole rows; pixels are refused.
516      <Box width="100%" height={1} alignItems="center">
517        {/*
518          His bar is a guess from the band's columns, so it sits centered in
519          the room left of the close button: his home is the true middle, and
520          a guess too wide is trimmed evenly at both ends.
521        */}
522        <Box flexGrow={1} flexShrink={1} justifyContent="center" overflow="hidden">
523          <Svg
524            source={stage(m, now, e.props.isWorking, bar, agentCount(await read($, agents), now))}
525            alt={describe(m)}
526            width={bar}
527            height={SIZE}
528          />
529        </Box>
530        <Button key="close" label="✕" plain dimColor onPress={() => putAway($)} />
531      </Box>
532    )
533  })
534}
535
hooks/meatball.ts 8 lines
1// Generated by scripts/build-sprites.py from plugin/assets/meatball.svg: the sprite.
2// Its root attributes pick the pose: data-fill (normal/full/stuffed), data-mood
3// (alert/hurt/sleep/busy/testing/pass/fail/deliver/celebrate), data-chomp, data-mouth, data-idle and data-roll.
4export const MEATBALL = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" width=\"64\" height=\"64\" shape-rendering=\"crispEdges\"><title>Meatball</title><style>\n.v,.m-open,.mo,.fm,.xm{display:none}\nsvg:not([data-fill]) .v-normal,svg[data-fill=\"normal\"] .v-normal,svg[data-fill=\"full\"] .v-full,svg[data-fill=\"stuffed\"] .v-stuffed{display:inline}\nsvg[data-mouth=\"open\"] .m-open{display:inline}\nsvg[data-mouth=\"open\"] .m-closed{display:none}\nsvg[data-chomp] .m-open{display:inline;animation:cA .36s steps(1) infinite}\nsvg[data-chomp] .m-closed{display:inline;animation:cB .36s steps(1) infinite}\n@keyframes cA{0%{visibility:visible}50%{visibility:hidden}}\n@keyframes cB{0%{visibility:hidden}50%{visibility:visible}}\nsvg[data-mood=\"alert\"] .f-default,svg[data-mood=\"alert\"] .mc-default{display:none}\nsvg[data-mood=\"alert\"] .f-alert,svg[data-mood=\"alert\"] .mc-alert,svg[data-mood=\"alert\"] .x-alert{display:inline}\nsvg[data-mood=\"hurt\"] .f-default,svg[data-mood=\"hurt\"] .mc-default{display:none}\nsvg[data-mood=\"hurt\"] .f-hurt,svg[data-mood=\"hurt\"] .mc-hurt,svg[data-mood=\"hurt\"] .x-hurt{display:inline}\nsvg[data-mood=\"sleep\"] .f-default,svg[data-mood=\"sleep\"] .mc-default{display:none}\nsvg[data-mood=\"sleep\"] .f-sleep,svg[data-mood=\"sleep\"] .mc-sleep,svg[data-mood=\"sleep\"] .x-sleep{display:inline}\nsvg[data-mood=\"busy\"] .f-default,svg[data-mood=\"busy\"] .mc-default{display:none}\nsvg[data-mood=\"busy\"] .f-busy,svg[data-mood=\"busy\"] .mc-busy,svg[data-mood=\"busy\"] .x-busy{display:inline}\nsvg[data-mood=\"testing\"] .f-default,svg[data-mood=\"testing\"] .mc-default{display:none}\nsvg[data-mood=\"testing\"] .f-testing,svg[data-mood=\"testing\"] .mc-testing,svg[data-mood=\"testing\"] .x-testing{display:inline}\nsvg[data-mood=\"pass\"] .f-default,svg[data-mood=\"pass\"] .mc-default{display:none}\nsvg[data-mood=\"pass\"] .f-pass,svg[data-mood=\"pass\"] .mc-pass,svg[data-mood=\"pass\"] .x-pass{display:inline}\nsvg[data-mood=\"fail\"] .f-default,svg[data-mood=\"fail\"] .mc-default{display:none}\nsvg[data-mood=\"fail\"] .f-fail,svg[data-mood=\"fail\"] .mc-fail,svg[data-mood=\"fail\"] .x-fail{display:inline}\nsvg[data-mood=\"deliver\"] .f-default,svg[data-mood=\"deliver\"] .mc-default{display:none}\nsvg[data-mood=\"deliver\"] .f-deliver,svg[data-mood=\"deliver\"] .mc-deliver,svg[data-mood=\"deliver\"] .x-deliver{display:inline}\nsvg[data-mood=\"celebrate\"] .f-default,svg[data-mood=\"celebrate\"] .mc-default{display:none}\nsvg[data-mood=\"celebrate\"] .f-celebrate,svg[data-mood=\"celebrate\"] .mc-celebrate,svg[data-mood=\"celebrate\"] .x-celebrate{display:inline}\n\nsvg[data-idle] .bob{animation:bob 1.2s steps(1) infinite}\n@keyframes bob{0%{transform:translateY(0)}50%{transform:translateY(-1px)}}\n@keyframes blink{50%{visibility:hidden}}\n@keyframes third{0%{visibility:visible}33.33%{visibility:hidden}}\nsvg[data-mood=\"sleep\"] .bob{animation:bob 2.8s steps(1) infinite}\nsvg[data-mood=\"sleep\"] .z1{animation:zz 2.8s steps(1) infinite}\nsvg[data-mood=\"sleep\"] .z2{animation:zz 2.8s steps(1) infinite 1.4s}\n@keyframes zz{0%{visibility:hidden}25%{visibility:visible}100%{visibility:visible}}\nsvg[data-mood=\"alert\"] .x-alert{animation:blink .5s steps(1) infinite}\nsvg[data-mood=\"alert\"] .bob{animation:hop 1.4s steps(1) infinite}\n@keyframes hop{0%{transform:translateY(0)}8%{transform:translateY(-1px)}16%{transform:translateY(0)}24%{transform:translateY(-1px)}32%{transform:translateY(0)}}\nsvg[data-mood=\"hurt\"] .bob{animation:shake 1s steps(1) infinite}\n@keyframes shake{0%{transform:translateX(0)}6%{transform:translateX(-1px)}12%{transform:translateX(1px)}18%{transform:translateX(-1px)}24%{transform:translateX(0)}}\nsvg[data-mood=\"hurt\"] .x-hurt{animation:blink .4s steps(1) infinite}\nsvg[data-mood=\"testing\"] .bob{animation:nerv .5s steps(1) infinite}\n@keyframes nerv{0%{transform:translate(0,0)}20%{transform:translate(0,-1px)}40%{transform:translate(1px,0)}60%{transform:translate(0,-1px)}80%{transform:translate(-1px,0)}}\nsvg[data-mood=\"testing\"] .sw{animation:blink .8s steps(1) infinite}\nsvg[data-mood=\"pass\"] .v,svg[data-mood=\"celebrate\"] .v{animation:cheer 1.2s steps(1) infinite}\n@keyframes cheer{0%{transform:translateY(0)}8%{transform:translateY(-2px)}16%{transform:translateY(-4px)}24%{transform:translateY(-2px)}32%{transform:translateY(0)}40%{transform:translateY(-2px)}48%{transform:translateY(0)}}\nsvg[data-mood=\"pass\"] .s1{animation:blink .6s steps(1) infinite}\nsvg[data-mood=\"pass\"] .s2{animation:blink .6s steps(1) infinite .3s}\nsvg[data-mood=\"fail\"] .bob{animation:wince 1.2s steps(1) infinite}\n@keyframes wince{0%{transform:translateX(0)}4%{transform:translateX(-2px)}8%{transform:translateX(2px)}12%{transform:translateX(-2px)}16%{transform:translateX(2px)}20%{transform:translateX(-1px)}24%{transform:translateX(0)}}\nsvg[data-mood=\"fail\"] .sm{animation:blink .6s steps(1) infinite}\nsvg[data-mood=\"deliver\"] .bob{animation:bob .5s steps(1) infinite}\nsvg[data-mood=\"celebrate\"] .c0{animation:third .6s steps(1) infinite}\nsvg[data-mood=\"celebrate\"] .c1{animation:third .6s steps(1) infinite -.4s}\nsvg[data-mood=\"celebrate\"] .c2{animation:third .6s steps(1) infinite -.2s}\n.spin{transform-box:view-box}\n.v-normal .spin,.v-full .spin{transform-origin:15.5px 17.5px}.v-stuffed .spin{transform-origin:15.5px 16.5px}\nsvg[data-roll] .feet{display:none}\nsvg[data-roll] .spin{animation:roll .6s steps(4) infinite}\nsvg[data-roll] .bob,svg[data-roll] .v{animation:none}\n@keyframes roll{from{transform:rotate(0)}to{transform:rotate(360deg)}}\n</style><g fill=\"#2b120c\" opacity=\".22\"><path d=\"M7 30h1v1h-1zM8 30h1v1h-1zM9 30h1v1h-1zM10 30h1v1h-1zM11 30h1v1h-1zM12 30h1v1h-1zM13 30h1v1h-1zM14 30h1v1h-1zM15 30h1v1h-1zM16 30h1v1h-1zM17 30h1v1h-1zM18 30h1v1h-1zM19 30h1v1h-1zM20 30h1v1h-1zM21 30h1v1h-1zM22 30h1v1h-1zM23 30h1v1h-1zM24 30h1v1h-1z\" /></g><g class=\"v v-normal\"><g class=\"feet\"><path d=\"M9 26h4v1h-4zM17 26h4v1h-4zM9 27h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M10 27h3v1h-3z\" fill=\"#a4532f\" /><path d=\"M13 27h1v1h-1zM17 27h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M18 27h3v1h-3z\" fill=\"#a4532f\" /><path d=\"M21 27h1v1h-1zM9 28h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M10 28h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M12 28h2v1h-2zM17 28h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M18 28h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M20 28h2v1h-2zM10 29h2v1h-2zM18 29h2v1h-2z\" fill=\"#2b120c\" /></g><g class=\"bob\"><g class=\"spin\"><path d=\"M15 7h1v1h-1zM11 8h4v1h-4z\" fill=\"#2b120c\" /><path d=\"M15 8h1v1h-1z\" fill=\"#c8281e\" /><path d=\"M16 8h4v1h-4zM9 9h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M11 9h3v1h-3z\" fill=\"#f2685a\" /><path d=\"M14 9h5v1h-5z\" fill=\"#c8281e\" /><path d=\"M19 9h1v1h-1z\" fill=\"#9c1a14\" /><path d=\"M20 9h2v1h-2zM8 10h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M9 10h2v1h-2z\" fill=\"#c8281e\" /><path d=\"M11 10h3v1h-3z\" fill=\"#f2685a\" /><path d=\"M14 10h5v1h-5z\" fill=\"#c8281e\" /><path d=\"M19 10h3v1h-3z\" fill=\"#9c1a14\" /><path d=\"M22 10h1v1h-1zM7 11h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M8 11h2v1h-2z\" fill=\"#c8281e\" /><path d=\"M10 11h2v1h-2z\" fill=\"#fff1dc\" /><path d=\"M12 11h1v1h-1z\" fill=\"#f2685a\" /><path d=\"M13 11h6v1h-6z\" fill=\"#c8281e\" /><path d=\"M19 11h4v1h-4z\" fill=\"#9c1a14\" /><path d=\"M23 11h1v1h-1zM7 12h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M8 12h11v1h-11z\" fill=\"#c8281e\" /><path d=\"M19 12h4v1h-4z\" fill=\"#9c1a14\" /><path d=\"M23 12h1v1h-1zM6 13h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M7 13h2v1h-2z\" fill=\"#c06a3e\" /><path d=\"M9 13h1v1h-1z\" fill=\"#e3996a\" /><path d=\"M10 13h2v1h-2z\" fill=\"#c8281e\" /><path d=\"M12 13h1v1h-1z\" fill=\"#e3996a\" /><path d=\"M13 13h2v1h-2z\" fill=\"#c06a3e\" /><path d=\"M15 13h2v1h-2z\" fill=\"#c8281e\" /><path d=\"M17 13h1v1h-1z\" fill=\"#8a4026\" /><path d=\"M18 13h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M20 13h2v1h-2z\" fill=\"#9c1a14\" /><path d=\"M22 13h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M24 13h1v1h-1zM6 14h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M7 14h1v1h-1z\" fill=\"#c06a3e\" /><path d=\"M8 14h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M9 14h2v1h-2z\" fill=\"#e3996a\" /><path d=\"M11 14h1v1h-1z\" fill=\"#c8281e\" /><path d=\"M12 14h1v1h-1z\" fill=\"#e3996a\" /><path d=\"M13 14h11v1h-11z\" fill=\"#a4532f\" /><path d=\"M24 14h1v1h-1zM6 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M7 15h1v1h-1z\" fill=\"#c06a3e\" /><path d=\"M8 15h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M10 15h1v1h-1z\" fill=\"#e3996a\" /><path d=\"M11 15h1v1h-1z\" fill=\"#c8281e\" /><path d=\"M12 15h12v1h-12z\" fill=\"#a4532f\" /><path d=\"M24 15h1v1h-1zM6 16h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M7 16h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M8 16h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M10 16h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M11 16h1v1h-1z\" fill=\"#9c1a14\" /><path d=\"M12 16h2v1h-2z\" fill=\"#c06a3e\" /><path d=\"M14 16h6v1h-6z\" fill=\"#a4532f\" /><path d=\"M20 16h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M22 16h2v1h-2z\" fill=\"#c06a3e\" /><path d=\"M5 17h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M6 17h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M8 17h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M10 17h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M12 17h2v1h-2z\" fill=\"#c06a3e\" /><path d=\"M14 17h6v1h-6z\" fill=\"#a4532f\" /><path d=\"M20 17h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M22 17h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M24 17h1v1h-1z\" fill=\"#8a4026\" /><path d=\"M6 18h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M7 18h4v1h-4z\" fill=\"#a4532f\" /><path d=\"M11 18h1v1h-1z\" fill=\"#3f6a1e\" /><path d=\"M12 18h4v1h-4z\" fill=\"#a4532f\" /><path d=\"M16 18h2v1h-2z\" fill=\"#c06a3e\" /><path d=\"M18 18h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M20 18h2v1h-2z\" fill=\"#6e2f1c\" /><path d=\"M22 18h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M6 19h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M7 19h9v1h-9z\" fill=\"#a4532f\" /><path d=\"M16 19h2v1h-2z\" fill=\"#c06a3e\" /><path d=\"M18 19h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M19 19h1v1h-1z\" fill=\"#8a4026\" /><path d=\"M20 19h2v1h-2z\" fill=\"#6e2f1c\" /><path d=\"M22 19h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M6 20h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M7 20h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M8 20h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M10 20h4v1h-4z\" fill=\"#a4532f\" /><path d=\"M14 20h3v1h-3z\" fill=\"#8a4026\" /><path d=\"M17 20h1v1h-1z\" fill=\"#6e2f1c\" /><path d=\"M18 20h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M20 20h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M22 20h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M6 21h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M7 21h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M8 21h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M10 21h4v1h-4z\" fill=\"#a4532f\" /><path d=\"M14 21h1v1h-1z\" fill=\"#8a4026\" /><path d=\"M15 21h3v1h-3z\" fill=\"#6e2f1c\" /><path d=\"M18 21h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M20 21h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M22 21h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M23 21h1v1h-1z\" fill=\"#8a4026\" /><path d=\"M7 22h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M8 22h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M10 22h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M12 22h1v1h-1z\" fill=\"#3f6a1e\" /><path d=\"M13 22h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M14 22h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M16 22h2v1h-2z\" fill=\"#6e2f1c\" /><path d=\"M18 22h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M20 22h3v1h-3z\" fill=\"#6e2f1c\" /><path d=\"M7 23h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M8 23h1v1h-1z\" fill=\"#5c8a2e\" /><path d=\"M9 23h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M10 23h6v1h-6z\" fill=\"#8a4026\" /><path d=\"M16 23h2v1h-2z\" fill=\"#6e2f1c\" /><path d=\"M18 23h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M20 23h3v1h-3z\" fill=\"#6e2f1c\" /><path d=\"M8 24h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M9 24h2v1h-2z\" fill=\"#c06a3e\" /><path d=\"M11 24h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M12 24h8v1h-8z\" fill=\"#8a4026\" /><path d=\"M20 24h2v1h-2z\" fill=\"#6e2f1c\" /><path d=\"M22 24h1v1h-1zM9 25h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M11 25h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M12 25h5v1h-5z\" fill=\"#8a4026\" /><path d=\"M17 25h1v1h-1z\" fill=\"#6e2f1c\" /><path d=\"M18 25h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M20 25h2v1h-2zM11 26h4v1h-4z\" fill=\"#2b120c\" /><path d=\"M15 26h1v1h-1z\" fill=\"#6e2f1c\" /><path d=\"M16 26h4v1h-4zM15 27h1v1h-1z\" fill=\"#2b120c\" /><g class=\"f-default\"><path d=\"M16 14h2v1h-2zM20 14h2v1h-2zM15 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M16 15h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M17 15h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M18 15h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M20 15h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M21 15h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M22 15h1v1h-1zM15 16h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M16 16h1v1h-1z\" fill=\"#d6cbbd\" /><path d=\"M17 16h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M18 16h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M20 16h1v1h-1z\" fill=\"#d6cbbd\" /><path d=\"M21 16h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M22 16h1v1h-1zM16 17h2v1h-2zM20 17h2v1h-2z\" fill=\"#2b120c\" /></g><g class=\"fm f-alert\"><path d=\"M16 11h2v1h-2zM20 11h2v1h-2zM15 12h1v1h-1zM18 12h2v1h-2zM22 12h1v1h-1zM16 13h2v1h-2zM20 13h2v1h-2zM15 14h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M16 14h2v1h-2z\" fill=\"#f8f3ea\" /><path d=\"M18 14h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M20 14h2v1h-2z\" fill=\"#f8f3ea\" /><path d=\"M22 14h1v1h-1zM15 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M16 15h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M17 15h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M18 15h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M20 15h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M21 15h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M22 15h1v1h-1zM15 16h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M16 16h1v1h-1z\" fill=\"#d6cbbd\" /><path d=\"M17 16h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M18 16h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M20 16h1v1h-1z\" fill=\"#d6cbbd\" /><path d=\"M21 16h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M22 16h1v1h-1zM16 17h2v1h-2zM20 17h2v1h-2z\" fill=\"#2b120c\" /></g><g class=\"fm f-hurt\"><path d=\"M9 14h1v1h-1z\" fill=\"#86d6f7\" /><path d=\"M8 15h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M9 15h2v1h-2z\" fill=\"#86d6f7\" /><path d=\"M15 15h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M16 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M17 15h1v1h-1zM20 15h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M21 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M22 15h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M8 16h3v1h-3z\" fill=\"#86d6f7\" /><path d=\"M15 16h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M16 16h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M17 16h1v1h-1zM20 16h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M21 16h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M22 16h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M9 17h1v1h-1z\" fill=\"#86d6f7\" /><path d=\"M15 17h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M16 17h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M17 17h1v1h-1zM20 17h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M21 17h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M22 17h1v1h-1z\" fill=\"#f8f3ea\" /></g><g class=\"fm f-sleep\"><path d=\"M16 14h2v1h-2zM20 14h2v1h-2zM15 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M16 15h2v1h-2z\" fill=\"#e3996a\" /><path d=\"M18 15h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M20 15h2v1h-2z\" fill=\"#e3996a\" /><path d=\"M22 15h1v1h-1zM15 16h8v1h-8zM16 17h2v1h-2zM20 17h2v1h-2z\" fill=\"#2b120c\" /></g><g class=\"fm f-busy\"><path d=\"M15 13h2v1h-2zM21 13h2v1h-2zM16 14h6v1h-6zM15 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M16 15h2v1h-2z\" fill=\"#e3996a\" /><path d=\"M18 15h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M20 15h2v1h-2z\" fill=\"#e3996a\" /><path d=\"M22 15h1v1h-1zM15 16h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M16 16h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M17 16h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M18 16h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M20 16h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M21 16h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M22 16h1v1h-1zM16 17h2v1h-2zM20 17h2v1h-2z\" fill=\"#2b120c\" /></g><g class=\"fm f-testing\"><path d=\"M15 13h3v1h-3zM19 13h3v1h-3z\" fill=\"#2b120c\" /><path d=\"M7 14h7v1h-7z\" fill=\"#5a6272\" /><path d=\"M14 14h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M15 14h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M16 14h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M18 14h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M19 14h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M20 14h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M22 14h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M23 14h1v1h-1z\" fill=\"#5a6272\" /><path d=\"M7 15h7v1h-7z\" fill=\"#3d4350\" /><path d=\"M14 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M15 15h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M17 15h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M18 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M19 15h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M21 15h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M22 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M23 15h1v1h-1z\" fill=\"#3d4350\" /><path d=\"M14 16h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M15 16h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M17 16h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M18 16h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M19 16h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M21 16h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M22 16h1v1h-1zM15 17h3v1h-3zM19 17h3v1h-3z\" fill=\"#2b120c\" /></g><g class=\"fm f-pass\"><path d=\"M15 7h3v1h-3zM19 7h3v1h-3zM14 8h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M15 8h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M16 8h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M18 8h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M19 8h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M20 8h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M22 8h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M11 9h3v1h-3z\" fill=\"#3d4350\" /><path d=\"M14 9h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M15 9h3v1h-3z\" fill=\"#a9e3f2\" /><path d=\"M18 9h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M19 9h3v1h-3z\" fill=\"#a9e3f2\" /><path d=\"M22 9h1v1h-1zM14 10h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M15 10h3v1h-3z\" fill=\"#a9e3f2\" /><path d=\"M18 10h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M19 10h3v1h-3z\" fill=\"#a9e3f2\" /><path d=\"M22 10h1v1h-1zM15 11h3v1h-3zM19 11h3v1h-3zM16 15h2v1h-2zM20 15h2v1h-2zM15 16h1v1h-1zM18 16h2v1h-2zM22 16h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M14 18h2v1h-2zM22 18h2v1h-2z\" fill=\"#f08a8a\" /></g><g class=\"fm f-fail\"><path d=\"M15 13h3v1h-3zM19 13h3v1h-3z\" fill=\"#2b120c\" /><path d=\"M7 14h7v1h-7z\" fill=\"#5a6272\" /><path d=\"M14 14h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M16 14h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M18 14h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M19 14h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M21 14h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M23 14h1v1h-1z\" fill=\"#5a6272\" /><path d=\"M7 15h7v1h-7z\" fill=\"#3d4350\" /><path d=\"M14 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M15 15h1v1h-1z\" fill=\"#a9e3f2\" /><path d=\"M16 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M17 15h1v1h-1z\" fill=\"#a9e3f2\" /><path d=\"M18 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M19 15h1v1h-1z\" fill=\"#a9e3f2\" /><path d=\"M20 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M21 15h1v1h-1z\" fill=\"#a9e3f2\" /><path d=\"M22 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M23 15h1v1h-1z\" fill=\"#3d4350\" /><path d=\"M14 16h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M16 16h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M18 16h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M19 16h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M21 16h2v1h-2zM15 17h3v1h-3zM19 17h3v1h-3z\" fill=\"#2b120c\" /></g><g class=\"fm f-deliver\"><path d=\"M16 14h2v1h-2zM20 14h2v1h-2zM15 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M16 15h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M17 15h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M18 15h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M20 15h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M21 15h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M22 15h1v1h-1zM15 16h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M16 16h1v1h-1z\" fill=\"#d6cbbd\" /><path d=\"M17 16h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M18 16h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M20 16h1v1h-1z\" fill=\"#d6cbbd\" /><path d=\"M21 16h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M22 16h1v1h-1zM16 17h2v1h-2zM20 17h2v1h-2z\" fill=\"#2b120c\" /></g><g class=\"fm f-celebrate\"><path d=\"M16 15h2v1h-2zM20 15h2v1h-2zM15 16h1v1h-1zM18 16h2v1h-2zM22 16h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M14 18h2v1h-2zM22 18h2v1h-2z\" fill=\"#f08a8a\" /></g><g class=\"m-closed\"><path d=\"M24 16h1v1h-1zM25 17h1v1h-1zM24 18h1v1h-1zM24 19h1v1h-1zM24 20h1v1h-1zM24 21h1v1h-1zM23 22h1v1h-1zM23 23h1v1h-1z\" fill=\"#2b120c\" /><g class=\"mc-default\"><path d=\"M17 19h1v1h-1zM18 20h7v1h-7z\" fill=\"#2b120c\" /><path d=\"M22 21h1v1h-1z\" fill=\"#ffffff\" /></g><g class=\"mo mc-alert\"><path d=\"M21 19h1v1h-1zM20 20h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M21 20h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M22 20h1v1h-1zM20 21h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M21 21h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M22 21h1v1h-1zM21 22h1v1h-1z\" fill=\"#2b120c\" /></g><g class=\"mo mc-hurt\"><path d=\"M18 20h1v1h-1zM20 20h1v1h-1zM22 20h1v1h-1zM24 20h1v1h-1zM19 21h1v1h-1zM21 21h1v1h-1zM23 21h1v1h-1z\" fill=\"#2b120c\" /></g><g class=\"mo mc-sleep\"><path d=\"M20 20h3v1h-3z\" fill=\"#2b120c\" /><path d=\"M23 21h1v1h-1zM23 22h1v1h-1z\" fill=\"#86d6f7\" /></g><g class=\"mo mc-busy\"><path d=\"M17 19h1v1h-1zM18 20h7v1h-7zM21 21h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M22 21h2v1h-2z\" fill=\"#e05a6a\" /><path d=\"M24 21h1v1h-1zM22 22h2v1h-2z\" fill=\"#2b120c\" /></g><g class=\"mo mc-testing\"><path d=\"M19 20h1v1h-1zM21 20h1v1h-1zM23 20h1v1h-1zM20 21h1v1h-1zM22 21h1v1h-1z\" fill=\"#2b120c\" /></g><g class=\"mo mc-pass\"><path d=\"M18 20h7v1h-7zM18 21h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M19 21h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M20 21h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M21 21h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M22 21h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M23 21h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M24 21h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M19 22h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M20 22h3v1h-3z\" fill=\"#e05a6a\" /><path d=\"M23 22h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M20 23h4v1h-4z\" fill=\"#2b120c\" /></g><g class=\"mo mc-fail\"><path d=\"M18 19h6v1h-6zM18 20h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M19 20h2v1h-2z\" fill=\"#ffffff\" /><path d=\"M21 20h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M22 20h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M23 20h1v1h-1zM18 21h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M19 21h2v1h-2z\" fill=\"#ffffff\" /><path d=\"M21 21h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M22 21h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M23 21h1v1h-1zM18 22h6v1h-6z\" fill=\"#2b120c\" /></g><g class=\"mo mc-deliver\"><path d=\"M22 17h9v1h-9zM21 18h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M23 18h1v1h-1z\" fill=\"#c9b99a\" /><path d=\"M24 18h5v1h-5z\" fill=\"#fbf6ea\" /><path d=\"M29 18h1v1h-1z\" fill=\"#c9b99a\" /><path d=\"M30 18h1v1h-1zM22 19h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M23 19h1v1h-1z\" fill=\"#fbf6ea\" /><path d=\"M24 19h1v1h-1z\" fill=\"#c9b99a\" /><path d=\"M25 19h3v1h-3z\" fill=\"#fbf6ea\" /><path d=\"M28 19h1v1h-1z\" fill=\"#c9b99a\" /><path d=\"M29 19h1v1h-1z\" fill=\"#fbf6ea\" /><path d=\"M30 19h1v1h-1zM22 20h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M23 20h2v1h-2z\" fill=\"#fbf6ea\" /><path d=\"M25 20h1v1h-1z\" fill=\"#c9b99a\" /><path d=\"M26 20h1v1h-1z\" fill=\"#d33a2c\" /><path d=\"M27 20h1v1h-1z\" fill=\"#c9b99a\" /><path d=\"M28 20h2v1h-2z\" fill=\"#fbf6ea\" /><path d=\"M30 20h1v1h-1zM21 21h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M23 21h7v1h-7z\" fill=\"#fbf6ea\" /><path d=\"M30 21h1v1h-1zM22 22h9v1h-9z\" fill=\"#2b120c\" /></g><g class=\"mo mc-celebrate\"><path d=\"M18 20h7v1h-7zM18 21h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M19 21h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M20 21h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M21 21h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M22 21h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M23 21h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M24 21h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M19 22h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M20 22h3v1h-3z\" fill=\"#e05a6a\" /><path d=\"M23 22h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M20 23h4v1h-4z\" fill=\"#2b120c\" /></g></g><g class=\"m-open\"><path d=\"M23 14h2v1h-2zM21 15h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M23 15h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M24 15h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M20 16h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M21 16h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M22 16h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M23 16h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M18 17h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M20 17h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M21 17h4v1h-4z\" fill=\"#3a0d0a\" /><path d=\"M31 17h1v1h-1z\" fill=\"#f2c14e\" /><path d=\"M17 18h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M18 18h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M19 18h5v1h-5z\" fill=\"#3a0d0a\" /><path d=\"M15 19h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M17 19h7v1h-7z\" fill=\"#3a0d0a\" /><path d=\"M28 19h1v1h-1z\" fill=\"#f2c14e\" /><path d=\"M29 19h1v1h-1z\" fill=\"#c98e22\" /><path d=\"M15 20h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M16 20h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M17 20h7v1h-7z\" fill=\"#3a0d0a\" /><path d=\"M28 20h1v1h-1z\" fill=\"#c98e22\" /><path d=\"M29 20h1v1h-1z\" fill=\"#f2c14e\" /><path d=\"M16 21h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M17 21h6v1h-6z\" fill=\"#e05a6a\" /><path d=\"M23 21h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M30 21h1v1h-1z\" fill=\"#c98e22\" /><path d=\"M17 22h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M19 22h4v1h-4z\" fill=\"#e05a6a\" /><path d=\"M19 23h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M20 23h1v1h-1z\" fill=\"#e05a6a\" /><path d=\"M21 23h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M22 23h1v1h-1z\" fill=\"#e05a6a\" /><path d=\"M20 24h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M22 24h1v1h-1z\" fill=\"#e05a6a\" /></g></g><g class=\"xm x-alert\"><path d=\"M26 0h4v1h-4zM26 1h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M27 1h2v1h-2z\" fill=\"#ffd23f\" /><path d=\"M29 1h1v1h-1zM26 2h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M27 2h2v1h-2z\" fill=\"#ffd23f\" /><path d=\"M29 2h1v1h-1zM26 3h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M27 3h2v1h-2z\" fill=\"#ffd23f\" /><path d=\"M29 3h1v1h-1zM26 4h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M27 4h1v1h-1z\" fill=\"#ffd23f\" /><path d=\"M28 4h2v1h-2zM26 5h4v1h-4zM26 6h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M27 6h2v1h-2z\" fill=\"#ffd23f\" /><path d=\"M29 6h1v1h-1zM26 7h4v1h-4z\" fill=\"#2b120c\" /></g><g class=\"xm x-hurt\"><path d=\"M12 5h1v1h-1zM20 5h1v1h-1zM11 6h1v1h-1zM13 6h1v1h-1zM19 6h1v1h-1zM21 6h1v1h-1zM12 7h1v1h-1zM20 7h1v1h-1z\" fill=\"#ffe066\" /></g><g class=\"xm x-sleep\"><g class=\"z1\"><path d=\"M22 3h4v1h-4zM24 4h1v1h-1zM23 5h1v1h-1zM22 6h4v1h-4z\" fill=\"#4f9be8\" /></g><g class=\"z2\"><path d=\"M27 0h4v1h-4zM29 1h1v1h-1zM28 2h1v1h-1zM27 3h4v1h-4z\" fill=\"#4f9be8\" /></g></g><g class=\"xm x-testing\"><g class=\"sw\"><path d=\"M11 9h1v1h-1zM10 10h3v1h-3zM11 11h1v1h-1z\" fill=\"#86d6f7\" /></g></g><g class=\"xm x-pass\"><g class=\"s1\"><path d=\"M4 7h1v1h-1zM3 8h1v1h-1z\" fill=\"#ffe066\" /><path d=\"M4 8h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M5 8h1v1h-1zM4 9h1v1h-1zM28 13h1v1h-1zM27 14h1v1h-1z\" fill=\"#ffe066\" /><path d=\"M28 14h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M29 14h1v1h-1zM28 15h1v1h-1z\" fill=\"#ffe066\" /></g><g class=\"s2\"><path d=\"M27 3h1v1h-1zM26 4h1v1h-1z\" fill=\"#ffe066\" /><path d=\"M27 4h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M28 4h1v1h-1zM27 5h1v1h-1zM5 17h1v1h-1zM4 18h1v1h-1z\" fill=\"#ffe066\" /><path d=\"M5 18h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M6 18h1v1h-1zM5 19h1v1h-1z\" fill=\"#ffe066\" /></g></g><g class=\"xm x-fail\"><g class=\"sw\"><path d=\"M11 9h1v1h-1zM10 10h3v1h-3zM11 11h1v1h-1z\" fill=\"#86d6f7\" /></g><g class=\"sm\"><path d=\"M16 4h1v1h-1zM16 5h2v1h-2zM15 6h4v1h-4z\" fill=\"#b9b4ae\" /></g></g><g class=\"xm x-celebrate\"><path d=\"M2 3h1v1h-1z\" fill=\"#e0a91a\" /><path d=\"M2 4h1v1h-1z\" fill=\"#6b4a2b\" /><path d=\"M3 4h6v1h-6z\" fill=\"#ffd23f\" /><path d=\"M2 5h1v1h-1z\" fill=\"#6b4a2b\" /><path d=\"M3 5h5v1h-5z\" fill=\"#ffd23f\" /><path d=\"M2 6h1v1h-1z\" fill=\"#6b4a2b\" /><path d=\"M3 6h4v1h-4z\" fill=\"#ffd23f\" /><path d=\"M2 7h1v1h-1z\" fill=\"#6b4a2b\" /><path d=\"M3 7h3v1h-3z\" fill=\"#e0a91a\" /><path d=\"M2 8h1v1h-1z\" fill=\"#6b4a2b\" /><path d=\"M3 8h2v1h-2z\" fill=\"#e0a91a\" /><path d=\"M2 9h1v1h-1z\" fill=\"#6b4a2b\" /><path d=\"M3 9h1v1h-1z\" fill=\"#e0a91a\" /><path d=\"M2 10h1v1h-1zM2 11h1v1h-1zM2 12h1v1h-1zM2 13h1v1h-1zM2 14h1v1h-1zM2 15h1v1h-1zM2 16h1v1h-1zM2 17h1v1h-1zM2 18h1v1h-1zM2 19h1v1h-1zM2 20h1v1h-1zM2 21h1v1h-1zM2 22h1v1h-1zM2 23h1v1h-1zM2 24h1v1h-1zM2 25h1v1h-1zM2 26h1v1h-1zM2 27h1v1h-1zM2 28h1v1h-1z\" fill=\"#6b4a2b\" /><g class=\"c0\"><path d=\"M14 0h1v1h-1zM14 1h1v1h-1z\" fill=\"#ff5d5d\" /><path d=\"M19 1h1v1h-1z\" fill=\"#4fb3ff\" /><path d=\"M2 2h1v1h-1z\" fill=\"#ffd23f\" /><path d=\"M12 2h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M2 3h1v1h-1z\" fill=\"#ff5d5d\" /><path d=\"M30 4h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M30 5h1v1h-1zM30 6h1v1h-1z\" fill=\"#ff5d5d\" /><path d=\"M17 7h1v1h-1z\" fill=\"#ffd23f\" /><path d=\"M30 7h1v1h-1z\" fill=\"#5fd17a\" /><path d=\"M20 8h1v1h-1z\" fill=\"#ff8ad8\" /><path d=\"M30 8h1v1h-1zM0 9h1v1h-1z\" fill=\"#5fd17a\" /><path d=\"M5 9h1v1h-1z\" fill=\"#ff8ad8\" /><path d=\"M8 9h1v1h-1z\" fill=\"#4fb3ff\" /><path d=\"M28 9h1v1h-1z\" fill=\"#ffd23f\" /><path d=\"M0 10h1v1h-1z\" fill=\"#5fd17a\" /></g><g class=\"c1\"><path d=\"M14 2h1v1h-1zM14 3h1v1h-1z\" fill=\"#ff5d5d\" /><path d=\"M19 3h1v1h-1z\" fill=\"#4fb3ff\" /><path d=\"M2 4h1v1h-1z\" fill=\"#ffd23f\" /><path d=\"M12 4h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M2 5h1v1h-1z\" fill=\"#ff5d5d\" /><path d=\"M30 6h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M30 7h1v1h-1zM30 8h1v1h-1z\" fill=\"#ff5d5d\" /><path d=\"M17 9h1v1h-1z\" fill=\"#ffd23f\" /><path d=\"M30 9h1v1h-1z\" fill=\"#5fd17a\" /><path d=\"M20 10h1v1h-1z\" fill=\"#ff8ad8\" /><path d=\"M30 10h1v1h-1zM0 11h1v1h-1z\" fill=\"#5fd17a\" /><path d=\"M5 11h1v1h-1z\" fill=\"#ff8ad8\" /><path d=\"M8 11h1v1h-1z\" fill=\"#4fb3ff\" /><path d=\"M28 11h1v1h-1z\" fill=\"#ffd23f\" /><path d=\"M0 12h1v1h-1z\" fill=\"#5fd17a\" /></g><g class=\"c2\"><path d=\"M14 4h1v1h-1zM14 5h1v1h-1z\" fill=\"#ff5d5d\" /><path d=\"M19 5h1v1h-1z\" fill=\"#4fb3ff\" /><path d=\"M2 6h1v1h-1z\" fill=\"#ffd23f\" /><path d=\"M12 6h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M2 7h1v1h-1z\" fill=\"#ff5d5d\" /><path d=\"M30 8h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M30 9h1v1h-1zM30 10h1v1h-1z\" fill=\"#ff5d5d\" /><path d=\"M17 11h1v1h-1z\" fill=\"#ffd23f\" /><path d=\"M30 11h1v1h-1z\" fill=\"#5fd17a\" /><path d=\"M20 12h1v1h-1z\" fill=\"#ff8ad8\" /><path d=\"M30 12h1v1h-1zM0 13h1v1h-1z\" fill=\"#5fd17a\" /><path d=\"M5 13h1v1h-1z\" fill=\"#ff8ad8\" /><path d=\"M8 13h1v1h-1z\" fill=\"#4fb3ff\" /><path d=\"M28 13h1v1h-1z\" fill=\"#ffd23f\" /><path d=\"M0 14h1v1h-1z\" fill=\"#5fd17a\" /></g></g></g></g><g class=\"v v-full\"><g class=\"feet\"><path d=\"M9 27h3v1h-3zM18 27h3v1h-3zM8 28h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M9 28h3v1h-3z\" fill=\"#e3996a\" /><path d=\"M12 28h1v1h-1zM17 28h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M18 28h3v1h-3z\" fill=\"#e3996a\" /><path d=\"M21 28h1v1h-1zM8 29h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M9 29h3v1h-3z\" fill=\"#a4532f\" /><path d=\"M12 29h1v1h-1zM17 29h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M18 29h3v1h-3z\" fill=\"#a4532f\" /><path d=\"M21 29h1v1h-1zM9 30h3v1h-3zM18 30h3v1h-3z\" fill=\"#2b120c\" /></g><g class=\"bob\"><g class=\"spin\"><path d=\"M13 6h5v1h-5zM10 7h3v1h-3z\" fill=\"#2b120c\" /><path d=\"M13 7h5v1h-5z\" fill=\"#c8281e\" /><path d=\"M18 7h3v1h-3zM9 8h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M10 8h4v1h-4z\" fill=\"#f2685a\" /><path d=\"M14 8h5v1h-5z\" fill=\"#c8281e\" /><path d=\"M19 8h2v1h-2z\" fill=\"#9c1a14\" /><path d=\"M21 8h1v1h-1zM8 9h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M9 9h1v1h-1z\" fill=\"#c8281e\" /><path d=\"M10 9h4v1h-4z\" fill=\"#f2685a\" /><path d=\"M14 9h5v1h-5z\" fill=\"#c8281e\" /><path d=\"M19 9h3v1h-3z\" fill=\"#9c1a14\" /><path d=\"M22 9h1v1h-1zM7 10h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M8 10h2v1h-2z\" fill=\"#c8281e\" /><path d=\"M10 10h2v1h-2z\" fill=\"#fff1dc\" /><path d=\"M12 10h1v1h-1z\" fill=\"#f2685a\" /><path d=\"M13 10h6v1h-6z\" fill=\"#c8281e\" /><path d=\"M19 10h4v1h-4z\" fill=\"#9c1a14\" /><path d=\"M23 10h1v1h-1zM6 11h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M7 11h12v1h-12z\" fill=\"#c8281e\" /><path d=\"M19 11h5v1h-5z\" fill=\"#9c1a14\" /><path d=\"M24 11h1v1h-1zM5 12h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M6 12h13v1h-13z\" fill=\"#c8281e\" /><path d=\"M19 12h6v1h-6z\" fill=\"#9c1a14\" /><path d=\"M25 12h1v1h-1zM5 13h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M6 13h1v1h-1z\" fill=\"#c8281e\" /><path d=\"M7 13h1v1h-1z\" fill=\"#c06a3e\" /><path d=\"M8 13h2v1h-2z\" fill=\"#e3996a\" /><path d=\"M10 13h2v1h-2z\" fill=\"#c8281e\" /><path d=\"M12 13h1v1h-1z\" fill=\"#e3996a\" /><path d=\"M13 13h2v1h-2z\" fill=\"#c06a3e\" /><path d=\"M15 13h2v1h-2z\" fill=\"#c8281e\" /><path d=\"M17 13h1v1h-1z\" fill=\"#8a4026\" /><path d=\"M18 13h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M20 13h2v1h-2z\" fill=\"#9c1a14\" /><path d=\"M22 13h3v1h-3z\" fill=\"#a4532f\" /><path d=\"M25 13h1v1h-1zM5 14h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M6 14h2v1h-2z\" fill=\"#c06a3e\" /><path d=\"M8 14h2v1h-2z\" fill=\"#e3996a\" /><path d=\"M10 14h1v1h-1z\" fill=\"#c8281e\" /><path d=\"M11 14h2v1h-2z\" fill=\"#e3996a\" /><path d=\"M13 14h12v1h-12z\" fill=\"#a4532f\" /><path d=\"M25 14h1v1h-1zM4 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M5 15h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M6 15h2v1h-2z\" fill=\"#c06a3e\" /><path d=\"M8 15h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M9 15h1v1h-1z\" fill=\"#e3996a\" /><path d=\"M10 15h1v1h-1z\" fill=\"#c8281e\" /><path d=\"M11 15h1v1h-1z\" fill=\"#e3996a\" /><path d=\"M12 15h14v1h-14z\" fill=\"#a4532f\" /><path d=\"M4 16h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M5 16h3v1h-3z\" fill=\"#a4532f\" /><path d=\"M8 16h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M10 16h1v1h-1z\" fill=\"#9c1a14\" /><path d=\"M11 16h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M12 16h2v1h-2z\" fill=\"#c06a3e\" /><path d=\"M14 16h6v1h-6z\" fill=\"#a4532f\" /><path d=\"M20 16h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M22 16h2v1h-2z\" fill=\"#c06a3e\" /><path d=\"M24 16h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M25 16h1v1h-1z\" fill=\"#8a4026\" /><path d=\"M4 17h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M5 17h3v1h-3z\" fill=\"#a4532f\" /><path d=\"M8 17h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M10 17h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M12 17h2v1h-2z\" fill=\"#c06a3e\" /><path d=\"M14 17h6v1h-6z\" fill=\"#a4532f\" /><path d=\"M20 17h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M22 17h1v1h-1z\" fill=\"#c06a3e\" /><path d=\"M23 17h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M24 17h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M4 18h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M5 18h1v1h-1z\" fill=\"#8a4026\" /><path d=\"M6 18h5v1h-5z\" fill=\"#a4532f\" /><path d=\"M11 18h1v1h-1z\" fill=\"#3f6a1e\" /><path d=\"M12 18h4v1h-4z\" fill=\"#a4532f\" /><path d=\"M16 18h2v1h-2z\" fill=\"#c06a3e\" /><path d=\"M18 18h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M20 18h1v1h-1z\" fill=\"#8a4026\" /><path d=\"M21 18h1v1h-1z\" fill=\"#6e2f1c\" /><path d=\"M22 18h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M24 18h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M4 19h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M5 19h1v1h-1z\" fill=\"#8a4026\" /><path d=\"M6 19h10v1h-10z\" fill=\"#a4532f\" /><path d=\"M16 19h2v1h-2z\" fill=\"#c06a3e\" /><path d=\"M18 19h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M20 19h2v1h-2z\" fill=\"#6e2f1c\" /><path d=\"M22 19h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M24 19h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M5 20h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M6 20h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M8 20h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M10 20h4v1h-4z\" fill=\"#a4532f\" /><path d=\"M14 20h4v1h-4z\" fill=\"#8a4026\" /><path d=\"M18 20h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M20 20h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M22 20h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M24 20h1v1h-1z\" fill=\"#6e2f1c\" /><path d=\"M5 21h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M6 21h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M8 21h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M10 21h4v1h-4z\" fill=\"#a4532f\" /><path d=\"M14 21h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M16 21h2v1h-2z\" fill=\"#6e2f1c\" /><path d=\"M18 21h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M20 21h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M22 21h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M24 21h1v1h-1z\" fill=\"#6e2f1c\" /><path d=\"M5 22h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M6 22h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M8 22h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M10 22h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M12 22h1v1h-1z\" fill=\"#3f6a1e\" /><path d=\"M13 22h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M15 22h1v1h-1z\" fill=\"#8a4026\" /><path d=\"M16 22h2v1h-2z\" fill=\"#6e2f1c\" /><path d=\"M18 22h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M20 22h2v1h-2z\" fill=\"#6e2f1c\" /><path d=\"M22 22h1v1h-1z\" fill=\"#8a4026\" /><path d=\"M23 22h2v1h-2z\" fill=\"#6e2f1c\" /><path d=\"M6 23h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M7 23h1v1h-1z\" fill=\"#8a4026\" /><path d=\"M8 23h1v1h-1z\" fill=\"#5c8a2e\" /><path d=\"M9 23h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M10 23h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M12 23h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M13 23h3v1h-3z\" fill=\"#8a4026\" /><path d=\"M16 23h2v1h-2z\" fill=\"#6e2f1c\" /><path d=\"M18 23h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M20 23h4v1h-4z\" fill=\"#6e2f1c\" /><path d=\"M7 24h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M8 24h3v1h-3z\" fill=\"#c06a3e\" /><path d=\"M11 24h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M12 24h6v1h-6z\" fill=\"#8a4026\" /><path d=\"M18 24h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M20 24h3v1h-3z\" fill=\"#6e2f1c\" /><path d=\"M8 25h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M9 25h1v1h-1z\" fill=\"#c06a3e\" /><path d=\"M10 25h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M12 25h4v1h-4z\" fill=\"#8a4026\" /><path d=\"M16 25h1v1h-1z\" fill=\"#5c8a2e\" /><path d=\"M17 25h3v1h-3z\" fill=\"#8a4026\" /><path d=\"M20 25h2v1h-2z\" fill=\"#6e2f1c\" /><path d=\"M22 25h1v1h-1zM9 26h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M10 26h2v1h-2z\" fill=\"#6e2f1c\" /><path d=\"M12 26h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M14 26h7v1h-7z\" fill=\"#6e2f1c\" /><path d=\"M21 26h1v1h-1zM10 27h3v1h-3z\" fill=\"#2b120c\" /><path d=\"M13 27h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M14 27h4v1h-4z\" fill=\"#6e2f1c\" /><path d=\"M18 27h3v1h-3zM13 28h5v1h-5z\" fill=\"#2b120c\" /><g class=\"f-default\"><path d=\"M16 14h2v1h-2zM21 14h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M15 15h4v1h-4zM20 15h4v1h-4zM15 16h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M16 16h1v1h-1z\" fill=\"#d6cbbd\" /><path d=\"M17 16h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M18 16h1v1h-1zM20 16h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M21 16h1v1h-1z\" fill=\"#d6cbbd\" /><path d=\"M22 16h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M23 16h1v1h-1zM16 17h2v1h-2zM21 17h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M14 18h2v1h-2zM22 18h2v1h-2z\" fill=\"#f08a8a\" /></g><g class=\"fm f-alert\"><path d=\"M16 11h2v1h-2zM21 11h2v1h-2zM15 12h1v1h-1zM18 12h1v1h-1zM20 12h1v1h-1zM23 12h1v1h-1zM16 13h2v1h-2zM21 13h2v1h-2zM15 14h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M16 14h2v1h-2z\" fill=\"#f8f3ea\" /><path d=\"M18 14h1v1h-1zM20 14h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M21 14h2v1h-2z\" fill=\"#f8f3ea\" /><path d=\"M23 14h1v1h-1zM15 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M16 15h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M17 15h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M18 15h1v1h-1zM20 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M21 15h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M22 15h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M23 15h1v1h-1zM15 16h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M16 16h1v1h-1z\" fill=\"#d6cbbd\" /><path d=\"M17 16h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M18 16h1v1h-1zM20 16h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M21 16h1v1h-1z\" fill=\"#d6cbbd\" /><path d=\"M22 16h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M23 16h1v1h-1zM16 17h2v1h-2zM21 17h2v1h-2z\" fill=\"#2b120c\" /></g><g class=\"fm f-hurt\"><path d=\"M9 14h1v1h-1z\" fill=\"#86d6f7\" /><path d=\"M8 15h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M9 15h2v1h-2z\" fill=\"#86d6f7\" /><path d=\"M15 15h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M16 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M17 15h1v1h-1zM21 15h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M22 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M23 15h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M8 16h3v1h-3z\" fill=\"#86d6f7\" /><path d=\"M15 16h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M16 16h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M17 16h1v1h-1zM21 16h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M22 16h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M23 16h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M9 17h1v1h-1z\" fill=\"#86d6f7\" /><path d=\"M15 17h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M16 17h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M17 17h1v1h-1zM21 17h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M22 17h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M23 17h1v1h-1z\" fill=\"#f8f3ea\" /></g><g class=\"fm f-sleep\"><path d=\"M16 14h2v1h-2zM21 14h2v1h-2zM15 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M16 15h2v1h-2z\" fill=\"#e3996a\" /><path d=\"M18 15h1v1h-1zM20 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M21 15h2v1h-2z\" fill=\"#e3996a\" /><path d=\"M23 15h1v1h-1zM15 16h4v1h-4zM20 16h4v1h-4zM16 17h2v1h-2zM21 17h2v1h-2z\" fill=\"#2b120c\" /></g><g class=\"fm f-busy\"><path d=\"M15 13h2v1h-2zM22 13h2v1h-2zM16 14h3v1h-3zM20 14h3v1h-3zM15 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M16 15h2v1h-2z\" fill=\"#e3996a\" /><path d=\"M18 15h1v1h-1zM20 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M21 15h2v1h-2z\" fill=\"#e3996a\" /><path d=\"M23 15h1v1h-1zM15 16h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M16 16h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M17 16h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M18 16h1v1h-1zM20 16h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M21 16h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M22 16h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M23 16h1v1h-1zM16 17h2v1h-2zM21 17h2v1h-2z\" fill=\"#2b120c\" /></g><g class=\"fm f-testing\"><path d=\"M15 13h3v1h-3zM20 13h3v1h-3z\" fill=\"#2b120c\" /><path d=\"M6 14h8v1h-8z\" fill=\"#5a6272\" /><path d=\"M14 14h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M15 14h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M16 14h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M18 14h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M20 14h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M21 14h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M23 14h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M24 14h1v1h-1z\" fill=\"#5a6272\" /><path d=\"M5 15h9v1h-9z\" fill=\"#3d4350\" /><path d=\"M14 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M15 15h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M17 15h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M18 15h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M20 15h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M22 15h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M23 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M24 15h2v1h-2z\" fill=\"#3d4350\" /><path d=\"M14 16h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M15 16h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M17 16h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M18 16h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M20 16h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M22 16h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M23 16h1v1h-1zM15 17h3v1h-3zM20 17h3v1h-3z\" fill=\"#2b120c\" /></g><g class=\"fm f-pass\"><path d=\"M15 7h3v1h-3zM20 7h3v1h-3z\" fill=\"#2b120c\" /><path d=\"M10 8h4v1h-4z\" fill=\"#5a6272\" /><path d=\"M14 8h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M15 8h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M16 8h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M18 8h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M20 8h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M21 8h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M23 8h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M9 9h5v1h-5z\" fill=\"#3d4350\" /><path d=\"M14 9h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M15 9h3v1h-3z\" fill=\"#a9e3f2\" /><path d=\"M18 9h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M20 9h3v1h-3z\" fill=\"#a9e3f2\" /><path d=\"M23 9h1v1h-1zM14 10h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M15 10h3v1h-3z\" fill=\"#a9e3f2\" /><path d=\"M18 10h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M20 10h3v1h-3z\" fill=\"#a9e3f2\" /><path d=\"M23 10h1v1h-1zM15 11h3v1h-3zM20 11h3v1h-3zM16 15h2v1h-2zM21 15h2v1h-2zM15 16h1v1h-1zM18 16h1v1h-1zM20 16h1v1h-1zM23 16h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M14 18h2v1h-2zM22 18h2v1h-2z\" fill=\"#f08a8a\" /></g><g class=\"fm f-fail\"><path d=\"M15 13h3v1h-3zM20 13h3v1h-3z\" fill=\"#2b120c\" /><path d=\"M6 14h8v1h-8z\" fill=\"#5a6272\" /><path d=\"M14 14h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M16 14h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M18 14h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M20 14h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M22 14h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M24 14h1v1h-1z\" fill=\"#5a6272\" /><path d=\"M5 15h9v1h-9z\" fill=\"#3d4350\" /><path d=\"M14 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M15 15h1v1h-1z\" fill=\"#a9e3f2\" /><path d=\"M16 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M17 15h1v1h-1z\" fill=\"#a9e3f2\" /><path d=\"M18 15h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M20 15h1v1h-1z\" fill=\"#a9e3f2\" /><path d=\"M21 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M22 15h1v1h-1z\" fill=\"#a9e3f2\" /><path d=\"M23 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M24 15h2v1h-2z\" fill=\"#3d4350\" /><path d=\"M14 16h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M16 16h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M18 16h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M20 16h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M22 16h2v1h-2zM15 17h3v1h-3zM20 17h3v1h-3z\" fill=\"#2b120c\" /></g><g class=\"fm f-deliver\"><path d=\"M16 14h2v1h-2zM21 14h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M15 15h4v1h-4zM20 15h4v1h-4zM15 16h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M16 16h1v1h-1z\" fill=\"#d6cbbd\" /><path d=\"M17 16h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M18 16h1v1h-1zM20 16h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M21 16h1v1h-1z\" fill=\"#d6cbbd\" /><path d=\"M22 16h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M23 16h1v1h-1zM16 17h2v1h-2zM21 17h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M14 18h2v1h-2zM22 18h2v1h-2z\" fill=\"#f08a8a\" /></g><g class=\"fm f-celebrate\"><path d=\"M16 15h2v1h-2zM21 15h2v1h-2zM15 16h1v1h-1zM18 16h1v1h-1zM20 16h1v1h-1zM23 16h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M14 18h2v1h-2zM22 18h2v1h-2z\" fill=\"#f08a8a\" /></g><g class=\"m-closed\"><path d=\"M26 15h1v1h-1zM26 16h1v1h-1zM26 17h1v1h-1zM26 18h1v1h-1zM26 19h1v1h-1zM25 20h1v1h-1zM25 21h1v1h-1zM25 22h1v1h-1zM24 23h1v1h-1zM23 24h1v1h-1z\" fill=\"#2b120c\" /><g class=\"mc-default\"><path d=\"M18 20h1v1h-1zM19 21h7v1h-7z\" fill=\"#2b120c\" /><path d=\"M23 22h1v1h-1z\" fill=\"#ffffff\" /></g><g class=\"mo mc-alert\"><path d=\"M22 20h1v1h-1zM21 21h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M22 21h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M23 21h1v1h-1zM21 22h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M22 22h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M23 22h1v1h-1zM22 23h1v1h-1z\" fill=\"#2b120c\" /></g><g class=\"mo mc-hurt\"><path d=\"M18 21h1v1h-1zM20 21h1v1h-1zM22 21h1v1h-1zM24 21h1v1h-1zM19 22h1v1h-1zM21 22h1v1h-1zM23 22h1v1h-1zM25 22h1v1h-1z\" fill=\"#2b120c\" /></g><g class=\"mo mc-sleep\"><path d=\"M21 21h3v1h-3z\" fill=\"#2b120c\" /><path d=\"M24 22h1v1h-1zM24 23h1v1h-1z\" fill=\"#86d6f7\" /></g><g class=\"mo mc-busy\"><path d=\"M18 20h1v1h-1zM19 21h7v1h-7zM22 22h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M23 22h2v1h-2z\" fill=\"#e05a6a\" /><path d=\"M25 22h1v1h-1zM23 23h2v1h-2z\" fill=\"#2b120c\" /></g><g class=\"mo mc-testing\"><path d=\"M19 21h1v1h-1zM21 21h1v1h-1zM23 21h1v1h-1zM20 22h1v1h-1zM22 22h1v1h-1z\" fill=\"#2b120c\" /></g><g class=\"mo mc-pass\"><path d=\"M18 21h8v1h-8zM18 22h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M19 22h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M20 22h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M21 22h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M22 22h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M23 22h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M24 22h2v1h-2z\" fill=\"#3a0d0a\" /><path d=\"M19 23h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M20 23h4v1h-4z\" fill=\"#e05a6a\" /><path d=\"M24 23h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M20 24h4v1h-4z\" fill=\"#2b120c\" /></g><g class=\"mo mc-fail\"><path d=\"M19 20h6v1h-6zM19 21h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M20 21h2v1h-2z\" fill=\"#ffffff\" /><path d=\"M22 21h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M23 21h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M24 21h1v1h-1zM19 22h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M20 22h2v1h-2z\" fill=\"#ffffff\" /><path d=\"M22 22h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M23 22h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M24 22h1v1h-1zM19 23h6v1h-6z\" fill=\"#2b120c\" /></g><g class=\"mo mc-deliver\"><path d=\"M23 18h9v1h-9zM22 19h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M24 19h1v1h-1z\" fill=\"#c9b99a\" /><path d=\"M25 19h5v1h-5z\" fill=\"#fbf6ea\" /><path d=\"M30 19h1v1h-1z\" fill=\"#c9b99a\" /><path d=\"M31 19h1v1h-1zM23 20h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M24 20h1v1h-1z\" fill=\"#fbf6ea\" /><path d=\"M25 20h1v1h-1z\" fill=\"#c9b99a\" /><path d=\"M26 20h3v1h-3z\" fill=\"#fbf6ea\" /><path d=\"M29 20h1v1h-1z\" fill=\"#c9b99a\" /><path d=\"M30 20h1v1h-1z\" fill=\"#fbf6ea\" /><path d=\"M31 20h1v1h-1zM23 21h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M24 21h2v1h-2z\" fill=\"#fbf6ea\" /><path d=\"M26 21h1v1h-1z\" fill=\"#c9b99a\" /><path d=\"M27 21h1v1h-1z\" fill=\"#d33a2c\" /><path d=\"M28 21h1v1h-1z\" fill=\"#c9b99a\" /><path d=\"M29 21h2v1h-2z\" fill=\"#fbf6ea\" /><path d=\"M31 21h1v1h-1zM22 22h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M24 22h7v1h-7z\" fill=\"#fbf6ea\" /><path d=\"M31 22h1v1h-1zM23 23h9v1h-9z\" fill=\"#2b120c\" /></g><g class=\"mo mc-celebrate\"><path d=\"M18 21h8v1h-8zM18 22h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M19 22h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M20 22h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M21 22h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M22 22h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M23 22h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M24 22h2v1h-2z\" fill=\"#3a0d0a\" /><path d=\"M19 23h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M20 23h4v1h-4z\" fill=\"#e05a6a\" /><path d=\"M24 23h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M20 24h4v1h-4z\" fill=\"#2b120c\" /></g></g><g class=\"m-open\"><path d=\"M25 13h1v1h-1zM23 14h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M25 14h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M22 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M23 15h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M24 15h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M25 15h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M20 16h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M22 16h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M23 16h3v1h-3z\" fill=\"#3a0d0a\" /><path d=\"M19 17h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M20 17h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M21 17h5v1h-5z\" fill=\"#3a0d0a\" /><path d=\"M17 18h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M19 18h7v1h-7z\" fill=\"#3a0d0a\" /><path d=\"M15 19h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M17 19h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M18 19h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M19 19h7v1h-7z\" fill=\"#3a0d0a\" /><path d=\"M14 20h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M15 20h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M16 20h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M17 20h8v1h-8z\" fill=\"#3a0d0a\" /><path d=\"M29 20h1v1h-1z\" fill=\"#f2c14e\" /><path d=\"M30 20h1v1h-1z\" fill=\"#c98e22\" /><path d=\"M15 21h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M17 21h8v1h-8z\" fill=\"#3a0d0a\" /><path d=\"M29 21h1v1h-1z\" fill=\"#c98e22\" /><path d=\"M30 21h1v1h-1z\" fill=\"#f2c14e\" /><path d=\"M17 22h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M18 22h7v1h-7z\" fill=\"#e05a6a\" /><path d=\"M31 22h1v1h-1z\" fill=\"#c98e22\" /><path d=\"M18 23h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M20 23h4v1h-4z\" fill=\"#e05a6a\" /><path d=\"M20 24h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M21 24h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M22 24h1v1h-1z\" fill=\"#e05a6a\" /><path d=\"M21 25h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M22 25h1v1h-1z\" fill=\"#e05a6a\" /></g></g><g class=\"xm x-alert\"><path d=\"M26 0h4v1h-4zM26 1h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M27 1h2v1h-2z\" fill=\"#ffd23f\" /><path d=\"M29 1h1v1h-1zM26 2h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M27 2h2v1h-2z\" fill=\"#ffd23f\" /><path d=\"M29 2h1v1h-1zM26 3h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M27 3h2v1h-2z\" fill=\"#ffd23f\" /><path d=\"M29 3h1v1h-1zM26 4h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M27 4h1v1h-1z\" fill=\"#ffd23f\" /><path d=\"M28 4h2v1h-2zM26 5h4v1h-4zM26 6h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M27 6h2v1h-2z\" fill=\"#ffd23f\" /><path d=\"M29 6h1v1h-1zM26 7h4v1h-4z\" fill=\"#2b120c\" /></g><g class=\"xm x-hurt\"><path d=\"M12 3h1v1h-1zM20 3h1v1h-1zM11 4h1v1h-1zM13 4h1v1h-1zM19 4h1v1h-1zM21 4h1v1h-1zM12 5h1v1h-1zM20 5h1v1h-1z\" fill=\"#ffe066\" /></g><g class=\"xm x-sleep\"><g class=\"z1\"><path d=\"M22 3h4v1h-4zM24 4h1v1h-1zM23 5h1v1h-1zM22 6h4v1h-4z\" fill=\"#4f9be8\" /></g><g class=\"z2\"><path d=\"M27 0h4v1h-4zM29 1h1v1h-1zM28 2h1v1h-1zM27 3h4v1h-4z\" fill=\"#4f9be8\" /></g></g><g class=\"xm x-testing\"><g class=\"sw\"><path d=\"M10 9h1v1h-1zM9 10h3v1h-3zM10 11h1v1h-1z\" fill=\"#86d6f7\" /></g></g><g class=\"xm x-pass\"><g class=\"s1\"><path d=\"M4 7h1v1h-1zM3 8h1v1h-1z\" fill=\"#ffe066\" /><path d=\"M4 8h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M5 8h1v1h-1zM4 9h1v1h-1zM28 13h1v1h-1zM27 14h1v1h-1z\" fill=\"#ffe066\" /><path d=\"M28 14h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M29 14h1v1h-1zM28 15h1v1h-1z\" fill=\"#ffe066\" /></g><g class=\"s2\"><path d=\"M27 3h1v1h-1zM26 4h1v1h-1z\" fill=\"#ffe066\" /><path d=\"M27 4h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M28 4h1v1h-1zM27 5h1v1h-1zM5 17h1v1h-1zM4 18h1v1h-1z\" fill=\"#ffe066\" /><path d=\"M5 18h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M6 18h1v1h-1zM5 19h1v1h-1z\" fill=\"#ffe066\" /></g></g><g class=\"xm x-fail\"><g class=\"sw\"><path d=\"M10 9h1v1h-1zM9 10h3v1h-3zM10 11h1v1h-1z\" fill=\"#86d6f7\" /></g><g class=\"sm\"><path d=\"M16 2h1v1h-1zM16 3h2v1h-2zM15 4h4v1h-4z\" fill=\"#b9b4ae\" /></g></g><g class=\"xm x-celebrate\"><path d=\"M2 3h1v1h-1z\" fill=\"#e0a91a\" /><path d=\"M2 4h1v1h-1z\" fill=\"#6b4a2b\" /><path d=\"M3 4h6v1h-6z\" fill=\"#ffd23f\" /><path d=\"M2 5h1v1h-1z\" fill=\"#6b4a2b\" /><path d=\"M3 5h5v1h-5z\" fill=\"#ffd23f\" /><path d=\"M2 6h1v1h-1z\" fill=\"#6b4a2b\" /><path d=\"M3 6h4v1h-4z\" fill=\"#ffd23f\" /><path d=\"M2 7h1v1h-1z\" fill=\"#6b4a2b\" /><path d=\"M3 7h3v1h-3z\" fill=\"#e0a91a\" /><path d=\"M2 8h1v1h-1z\" fill=\"#6b4a2b\" /><path d=\"M3 8h2v1h-2z\" fill=\"#e0a91a\" /><path d=\"M2 9h1v1h-1z\" fill=\"#6b4a2b\" /><path d=\"M3 9h1v1h-1z\" fill=\"#e0a91a\" /><path d=\"M2 10h1v1h-1zM2 11h1v1h-1zM2 12h1v1h-1zM2 13h1v1h-1zM2 14h1v1h-1zM2 15h1v1h-1zM2 16h1v1h-1zM2 17h1v1h-1zM2 18h1v1h-1zM2 19h1v1h-1zM2 20h1v1h-1zM2 21h1v1h-1zM2 22h1v1h-1zM2 23h1v1h-1zM2 24h1v1h-1zM2 25h1v1h-1zM2 26h1v1h-1zM2 27h1v1h-1zM2 28h1v1h-1z\" fill=\"#6b4a2b\" /><g class=\"c0\"><path d=\"M14 0h1v1h-1zM14 1h1v1h-1z\" fill=\"#ff5d5d\" /><path d=\"M19 1h1v1h-1z\" fill=\"#4fb3ff\" /><path d=\"M2 2h1v1h-1z\" fill=\"#ffd23f\" /><path d=\"M12 2h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M2 3h1v1h-1z\" fill=\"#ff5d5d\" /><path d=\"M30 4h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M30 5h1v1h-1zM30 6h1v1h-1z\" fill=\"#ff5d5d\" /><path d=\"M17 7h1v1h-1z\" fill=\"#ffd23f\" /><path d=\"M30 7h1v1h-1z\" fill=\"#5fd17a\" /><path d=\"M20 8h1v1h-1z\" fill=\"#ff8ad8\" /><path d=\"M30 8h1v1h-1zM0 9h1v1h-1z\" fill=\"#5fd17a\" /><path d=\"M5 9h1v1h-1z\" fill=\"#ff8ad8\" /><path d=\"M8 9h1v1h-1z\" fill=\"#4fb3ff\" /><path d=\"M28 9h1v1h-1z\" fill=\"#ffd23f\" /><path d=\"M0 10h1v1h-1z\" fill=\"#5fd17a\" /></g><g class=\"c1\"><path d=\"M14 2h1v1h-1zM14 3h1v1h-1z\" fill=\"#ff5d5d\" /><path d=\"M19 3h1v1h-1z\" fill=\"#4fb3ff\" /><path d=\"M2 4h1v1h-1z\" fill=\"#ffd23f\" /><path d=\"M12 4h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M2 5h1v1h-1z\" fill=\"#ff5d5d\" /><path d=\"M30 6h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M30 7h1v1h-1zM30 8h1v1h-1z\" fill=\"#ff5d5d\" /><path d=\"M17 9h1v1h-1z\" fill=\"#ffd23f\" /><path d=\"M30 9h1v1h-1z\" fill=\"#5fd17a\" /><path d=\"M20 10h1v1h-1z\" fill=\"#ff8ad8\" /><path d=\"M30 10h1v1h-1zM0 11h1v1h-1z\" fill=\"#5fd17a\" /><path d=\"M5 11h1v1h-1z\" fill=\"#ff8ad8\" /><path d=\"M8 11h1v1h-1z\" fill=\"#4fb3ff\" /><path d=\"M28 11h1v1h-1z\" fill=\"#ffd23f\" /><path d=\"M0 12h1v1h-1z\" fill=\"#5fd17a\" /></g><g class=\"c2\"><path d=\"M14 4h1v1h-1zM14 5h1v1h-1z\" fill=\"#ff5d5d\" /><path d=\"M19 5h1v1h-1z\" fill=\"#4fb3ff\" /><path d=\"M2 6h1v1h-1z\" fill=\"#ffd23f\" /><path d=\"M12 6h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M2 7h1v1h-1z\" fill=\"#ff5d5d\" /><path d=\"M30 8h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M30 9h1v1h-1zM30 10h1v1h-1z\" fill=\"#ff5d5d\" /><path d=\"M17 11h1v1h-1z\" fill=\"#ffd23f\" /><path d=\"M30 11h1v1h-1z\" fill=\"#5fd17a\" /><path d=\"M20 12h1v1h-1z\" fill=\"#ff8ad8\" /><path d=\"M30 12h1v1h-1zM0 13h1v1h-1z\" fill=\"#5fd17a\" /><path d=\"M5 13h1v1h-1z\" fill=\"#ff8ad8\" /><path d=\"M8 13h1v1h-1z\" fill=\"#4fb3ff\" /><path d=\"M28 13h1v1h-1z\" fill=\"#ffd23f\" /><path d=\"M0 14h1v1h-1z\" fill=\"#5fd17a\" /></g></g></g></g><g class=\"v v-stuffed\"><g class=\"feet\"><path d=\"M9 27h3v1h-3zM18 27h4v1h-4zM8 28h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M9 28h3v1h-3z\" fill=\"#a4532f\" /><path d=\"M12 28h1v1h-1zM17 28h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M18 28h4v1h-4z\" fill=\"#a4532f\" /><path d=\"M22 28h1v1h-1zM8 29h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M9 29h3v1h-3z\" fill=\"#a4532f\" /><path d=\"M12 29h1v1h-1zM18 29h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M19 29h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M21 29h1v1h-1zM9 30h3v1h-3zM19 30h2v1h-2z\" fill=\"#2b120c\" /></g><g class=\"bob\"><g class=\"spin\"><path d=\"M15 4h1v1h-1zM11 5h4v1h-4z\" fill=\"#2b120c\" /><path d=\"M15 5h1v1h-1z\" fill=\"#c8281e\" /><path d=\"M16 5h4v1h-4zM9 6h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M11 6h3v1h-3z\" fill=\"#f2685a\" /><path d=\"M14 6h6v1h-6z\" fill=\"#c8281e\" /><path d=\"M20 6h2v1h-2zM8 7h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M9 7h1v1h-1z\" fill=\"#c8281e\" /><path d=\"M10 7h4v1h-4z\" fill=\"#f2685a\" /><path d=\"M14 7h6v1h-6z\" fill=\"#c8281e\" /><path d=\"M20 7h2v1h-2z\" fill=\"#9c1a14\" /><path d=\"M22 7h1v1h-1zM7 8h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M8 8h2v1h-2z\" fill=\"#c8281e\" /><path d=\"M10 8h4v1h-4z\" fill=\"#f2685a\" /><path d=\"M14 8h6v1h-6z\" fill=\"#c8281e\" /><path d=\"M20 8h3v1h-3z\" fill=\"#9c1a14\" /><path d=\"M23 8h1v1h-1zM6 9h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M7 9h3v1h-3z\" fill=\"#c8281e\" /><path d=\"M10 9h2v1h-2z\" fill=\"#fff1dc\" /><path d=\"M12 9h8v1h-8z\" fill=\"#c8281e\" /><path d=\"M20 9h4v1h-4z\" fill=\"#9c1a14\" /><path d=\"M24 9h1v1h-1zM5 10h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M6 10h14v1h-14z\" fill=\"#c8281e\" /><path d=\"M20 10h5v1h-5z\" fill=\"#9c1a14\" /><path d=\"M25 10h1v1h-1zM5 11h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M6 11h1v1h-1z\" fill=\"#c8281e\" /><path d=\"M7 11h1v1h-1z\" fill=\"#3f6a1e\" /><path d=\"M8 11h2v1h-2z\" fill=\"#e3996a\" /><path d=\"M10 11h2v1h-2z\" fill=\"#c8281e\" /><path d=\"M12 11h3v1h-3z\" fill=\"#a4532f\" /><path d=\"M15 11h2v1h-2z\" fill=\"#c8281e\" /><path d=\"M17 11h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M18 11h2v1h-2z\" fill=\"#c06a3e\" /><path d=\"M20 11h2v1h-2z\" fill=\"#9c1a14\" /><path d=\"M22 11h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M24 11h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M25 11h1v1h-1zM4 12h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M5 12h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M6 12h2v1h-2z\" fill=\"#c06a3e\" /><path d=\"M8 12h2v1h-2z\" fill=\"#e3996a\" /><path d=\"M10 12h1v1h-1z\" fill=\"#c8281e\" /><path d=\"M11 12h1v1h-1z\" fill=\"#e3996a\" /><path d=\"M12 12h1v1h-1z\" fill=\"#5c8a2e\" /><path d=\"M13 12h3v1h-3z\" fill=\"#c06a3e\" /><path d=\"M16 12h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M18 12h8v1h-8z\" fill=\"#a4532f\" /><path d=\"M26 12h1v1h-1zM4 13h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M5 13h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M6 13h2v1h-2z\" fill=\"#c06a3e\" /><path d=\"M8 13h2v1h-2z\" fill=\"#e3996a\" /><path d=\"M10 13h1v1h-1z\" fill=\"#c8281e\" /><path d=\"M11 13h1v1h-1z\" fill=\"#e3996a\" /><path d=\"M12 13h4v1h-4z\" fill=\"#c06a3e\" /><path d=\"M16 13h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M18 13h8v1h-8z\" fill=\"#a4532f\" /><path d=\"M26 13h1v1h-1zM4 14h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M5 14h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M6 14h2v1h-2z\" fill=\"#c06a3e\" /><path d=\"M8 14h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M9 14h1v1h-1z\" fill=\"#e3996a\" /><path d=\"M10 14h1v1h-1z\" fill=\"#9c1a14\" /><path d=\"M11 14h15v1h-15z\" fill=\"#a4532f\" /><path d=\"M4 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M5 15h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M6 15h2v1h-2z\" fill=\"#c06a3e\" /><path d=\"M8 15h17v1h-17z\" fill=\"#a4532f\" /><path d=\"M25 15h1v1h-1z\" fill=\"#8a4026\" /><path d=\"M3 16h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M4 16h4v1h-4z\" fill=\"#a4532f\" /><path d=\"M8 16h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M10 16h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M12 16h2v1h-2z\" fill=\"#c06a3e\" /><path d=\"M14 16h6v1h-6z\" fill=\"#a4532f\" /><path d=\"M20 16h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M22 16h2v1h-2z\" fill=\"#c06a3e\" /><path d=\"M24 16h3v1h-3z\" fill=\"#8a4026\" /><path d=\"M4 17h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M5 17h3v1h-3z\" fill=\"#a4532f\" /><path d=\"M8 17h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M10 17h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M12 17h2v1h-2z\" fill=\"#c06a3e\" /><path d=\"M14 17h6v1h-6z\" fill=\"#a4532f\" /><path d=\"M20 17h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M22 17h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M24 17h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M4 18h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M5 18h1v1h-1z\" fill=\"#8a4026\" /><path d=\"M6 18h5v1h-5z\" fill=\"#a4532f\" /><path d=\"M11 18h1v1h-1z\" fill=\"#3f6a1e\" /><path d=\"M12 18h4v1h-4z\" fill=\"#a4532f\" /><path d=\"M16 18h2v1h-2z\" fill=\"#c06a3e\" /><path d=\"M18 18h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M20 18h2v1h-2z\" fill=\"#6e2f1c\" /><path d=\"M22 18h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M24 18h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M4 19h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M5 19h1v1h-1z\" fill=\"#8a4026\" /><path d=\"M6 19h10v1h-10z\" fill=\"#a4532f\" /><path d=\"M16 19h2v1h-2z\" fill=\"#c06a3e\" /><path d=\"M18 19h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M19 19h1v1h-1z\" fill=\"#8a4026\" /><path d=\"M20 19h2v1h-2z\" fill=\"#6e2f1c\" /><path d=\"M22 19h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M24 19h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M4 20h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M5 20h1v1h-1z\" fill=\"#3f6a1e\" /><path d=\"M6 20h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M8 20h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M10 20h4v1h-4z\" fill=\"#a4532f\" /><path d=\"M14 20h3v1h-3z\" fill=\"#8a4026\" /><path d=\"M17 20h1v1h-1z\" fill=\"#6e2f1c\" /><path d=\"M18 20h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M20 20h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M22 20h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M24 20h2v1h-2z\" fill=\"#6e2f1c\" /><path d=\"M5 21h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M6 21h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M8 21h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M10 21h4v1h-4z\" fill=\"#a4532f\" /><path d=\"M14 21h1v1h-1z\" fill=\"#8a4026\" /><path d=\"M15 21h3v1h-3z\" fill=\"#6e2f1c\" /><path d=\"M18 21h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M20 21h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M22 21h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M24 21h1v1h-1z\" fill=\"#6e2f1c\" /><path d=\"M5 22h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M6 22h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M8 22h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M10 22h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M12 22h1v1h-1z\" fill=\"#3f6a1e\" /><path d=\"M13 22h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M14 22h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M16 22h2v1h-2z\" fill=\"#6e2f1c\" /><path d=\"M18 22h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M20 22h2v1h-2z\" fill=\"#6e2f1c\" /><path d=\"M22 22h1v1h-1z\" fill=\"#8a4026\" /><path d=\"M23 22h2v1h-2z\" fill=\"#6e2f1c\" /><path d=\"M6 23h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M7 23h1v1h-1z\" fill=\"#8a4026\" /><path d=\"M8 23h1v1h-1z\" fill=\"#5c8a2e\" /><path d=\"M9 23h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M10 23h6v1h-6z\" fill=\"#8a4026\" /><path d=\"M16 23h2v1h-2z\" fill=\"#6e2f1c\" /><path d=\"M18 23h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M20 23h4v1h-4z\" fill=\"#6e2f1c\" /><path d=\"M7 24h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M8 24h2v1h-2z\" fill=\"#c06a3e\" /><path d=\"M10 24h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M12 24h6v1h-6z\" fill=\"#8a4026\" /><path d=\"M18 24h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M20 24h3v1h-3z\" fill=\"#6e2f1c\" /><path d=\"M23 24h1v1h-1zM8 25h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M9 25h3v1h-3z\" fill=\"#a4532f\" /><path d=\"M12 25h8v1h-8z\" fill=\"#8a4026\" /><path d=\"M20 25h2v1h-2z\" fill=\"#6e2f1c\" /><path d=\"M22 25h1v1h-1zM9 26h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M11 26h1v1h-1z\" fill=\"#6e2f1c\" /><path d=\"M12 26h2v1h-2z\" fill=\"#a4532f\" /><path d=\"M14 26h6v1h-6z\" fill=\"#6e2f1c\" /><path d=\"M20 26h2v1h-2zM11 27h4v1h-4z\" fill=\"#2b120c\" /><path d=\"M15 27h1v1h-1z\" fill=\"#6e2f1c\" /><path d=\"M16 27h4v1h-4zM15 28h1v1h-1z\" fill=\"#2b120c\" /><g class=\"f-default\"><path d=\"M16 14h2v1h-2zM21 14h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M8 15h1v1h-1z\" fill=\"#86d6f7\" /><path d=\"M15 15h1v1h-1zM18 15h1v1h-1zM20 15h1v1h-1zM23 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M7 16h3v1h-3zM8 17h1v1h-1z\" fill=\"#86d6f7\" /><path d=\"M14 17h2v1h-2zM23 17h2v1h-2z\" fill=\"#f08a8a\" /></g><g class=\"fm f-alert\"><path d=\"M16 10h2v1h-2zM21 10h2v1h-2zM15 11h1v1h-1zM18 11h1v1h-1zM20 11h1v1h-1zM23 11h1v1h-1zM16 12h2v1h-2zM21 12h2v1h-2zM15 13h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M16 13h2v1h-2z\" fill=\"#f8f3ea\" /><path d=\"M18 13h1v1h-1zM20 13h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M21 13h2v1h-2z\" fill=\"#f8f3ea\" /><path d=\"M23 13h1v1h-1zM15 14h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M16 14h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M17 14h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M18 14h1v1h-1zM20 14h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M21 14h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M22 14h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M23 14h1v1h-1zM15 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M16 15h1v1h-1z\" fill=\"#d6cbbd\" /><path d=\"M17 15h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M18 15h1v1h-1zM20 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M21 15h1v1h-1z\" fill=\"#d6cbbd\" /><path d=\"M22 15h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M23 15h1v1h-1zM16 16h2v1h-2zM21 16h2v1h-2z\" fill=\"#2b120c\" /></g><g class=\"fm f-hurt\"><path d=\"M8 13h1v1h-1z\" fill=\"#86d6f7\" /><path d=\"M7 14h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M8 14h2v1h-2z\" fill=\"#86d6f7\" /><path d=\"M15 14h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M16 14h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M17 14h1v1h-1zM21 14h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M22 14h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M23 14h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M7 15h3v1h-3z\" fill=\"#86d6f7\" /><path d=\"M15 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M16 15h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M17 15h1v1h-1zM21 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M22 15h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M23 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M8 16h1v1h-1z\" fill=\"#86d6f7\" /><path d=\"M15 16h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M16 16h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M17 16h1v1h-1zM21 16h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M22 16h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M23 16h1v1h-1z\" fill=\"#f8f3ea\" /></g><g class=\"fm f-sleep\"><path d=\"M16 13h2v1h-2zM21 13h2v1h-2zM15 14h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M16 14h2v1h-2z\" fill=\"#e3996a\" /><path d=\"M18 14h1v1h-1zM20 14h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M21 14h2v1h-2z\" fill=\"#e3996a\" /><path d=\"M23 14h1v1h-1zM15 15h4v1h-4zM20 15h4v1h-4zM16 16h2v1h-2zM21 16h2v1h-2z\" fill=\"#2b120c\" /></g><g class=\"fm f-busy\"><path d=\"M15 12h2v1h-2zM22 12h2v1h-2zM16 13h3v1h-3zM20 13h3v1h-3zM15 14h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M16 14h2v1h-2z\" fill=\"#e3996a\" /><path d=\"M18 14h1v1h-1zM20 14h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M21 14h2v1h-2z\" fill=\"#e3996a\" /><path d=\"M23 14h1v1h-1zM15 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M16 15h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M17 15h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M18 15h1v1h-1zM20 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M21 15h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M22 15h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M23 15h1v1h-1zM16 16h2v1h-2zM21 16h2v1h-2z\" fill=\"#2b120c\" /></g><g class=\"fm f-testing\"><path d=\"M15 12h3v1h-3zM20 12h3v1h-3z\" fill=\"#2b120c\" /><path d=\"M5 13h9v1h-9z\" fill=\"#5a6272\" /><path d=\"M14 13h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M15 13h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M16 13h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M18 13h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M20 13h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M21 13h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M23 13h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M24 13h2v1h-2z\" fill=\"#5a6272\" /><path d=\"M5 14h9v1h-9z\" fill=\"#3d4350\" /><path d=\"M14 14h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M15 14h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M17 14h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M18 14h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M20 14h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M22 14h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M23 14h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M24 14h2v1h-2z\" fill=\"#3d4350\" /><path d=\"M14 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M15 15h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M17 15h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M18 15h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M20 15h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M22 15h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M23 15h1v1h-1zM15 16h3v1h-3zM20 16h3v1h-3z\" fill=\"#2b120c\" /></g><g class=\"fm f-pass\"><path d=\"M15 6h3v1h-3zM20 6h3v1h-3z\" fill=\"#2b120c\" /><path d=\"M9 7h5v1h-5z\" fill=\"#5a6272\" /><path d=\"M14 7h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M15 7h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M16 7h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M18 7h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M20 7h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M21 7h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M23 7h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M8 8h6v1h-6z\" fill=\"#3d4350\" /><path d=\"M14 8h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M15 8h3v1h-3z\" fill=\"#a9e3f2\" /><path d=\"M18 8h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M20 8h3v1h-3z\" fill=\"#a9e3f2\" /><path d=\"M23 8h1v1h-1zM14 9h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M15 9h3v1h-3z\" fill=\"#a9e3f2\" /><path d=\"M18 9h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M20 9h3v1h-3z\" fill=\"#a9e3f2\" /><path d=\"M23 9h1v1h-1zM15 10h3v1h-3zM20 10h3v1h-3zM16 14h2v1h-2zM21 14h2v1h-2zM15 15h1v1h-1zM18 15h1v1h-1zM20 15h1v1h-1zM23 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M14 17h2v1h-2zM23 17h2v1h-2z\" fill=\"#f08a8a\" /></g><g class=\"fm f-fail\"><path d=\"M15 12h3v1h-3zM20 12h3v1h-3z\" fill=\"#2b120c\" /><path d=\"M5 13h9v1h-9z\" fill=\"#5a6272\" /><path d=\"M14 13h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M16 13h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M18 13h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M20 13h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M22 13h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M24 13h2v1h-2z\" fill=\"#5a6272\" /><path d=\"M5 14h9v1h-9z\" fill=\"#3d4350\" /><path d=\"M14 14h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M15 14h1v1h-1z\" fill=\"#a9e3f2\" /><path d=\"M16 14h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M17 14h1v1h-1z\" fill=\"#a9e3f2\" /><path d=\"M18 14h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M20 14h1v1h-1z\" fill=\"#a9e3f2\" /><path d=\"M21 14h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M22 14h1v1h-1z\" fill=\"#a9e3f2\" /><path d=\"M23 14h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M24 14h2v1h-2z\" fill=\"#3d4350\" /><path d=\"M14 15h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M16 15h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M18 15h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M20 15h2v1h-2z\" fill=\"#a9e3f2\" /><path d=\"M22 15h2v1h-2zM15 16h3v1h-3zM20 16h3v1h-3z\" fill=\"#2b120c\" /></g><g class=\"fm f-deliver\"><path d=\"M16 14h2v1h-2zM21 14h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M8 15h1v1h-1z\" fill=\"#86d6f7\" /><path d=\"M15 15h1v1h-1zM18 15h1v1h-1zM20 15h1v1h-1zM23 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M7 16h3v1h-3zM8 17h1v1h-1z\" fill=\"#86d6f7\" /><path d=\"M14 17h2v1h-2zM23 17h2v1h-2z\" fill=\"#f08a8a\" /></g><g class=\"fm f-celebrate\"><path d=\"M16 14h2v1h-2zM21 14h2v1h-2zM15 15h1v1h-1zM18 15h1v1h-1zM20 15h1v1h-1zM23 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M14 17h2v1h-2zM23 17h2v1h-2z\" fill=\"#f08a8a\" /></g><g class=\"m-closed\"><path d=\"M26 14h1v1h-1zM26 15h1v1h-1zM27 16h1v1h-1zM26 17h1v1h-1zM26 18h1v1h-1zM26 19h1v1h-1zM26 20h1v1h-1zM25 21h1v1h-1zM25 22h1v1h-1zM24 23h1v1h-1z\" fill=\"#2b120c\" /><g class=\"mc-default\"><path d=\"M18 19h1v1h-1zM19 20h8v1h-8z\" fill=\"#2b120c\" /><path d=\"M24 21h1v1h-1z\" fill=\"#ffffff\" /></g><g class=\"mo mc-alert\"><path d=\"M22 19h1v1h-1zM21 20h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M22 20h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M23 20h1v1h-1zM21 21h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M22 21h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M23 21h1v1h-1zM22 22h1v1h-1z\" fill=\"#2b120c\" /></g><g class=\"mo mc-hurt\"><path d=\"M18 20h1v1h-1zM20 20h1v1h-1zM22 20h1v1h-1zM24 20h1v1h-1zM26 20h1v1h-1zM19 21h1v1h-1zM21 21h1v1h-1zM23 21h1v1h-1zM25 21h1v1h-1z\" fill=\"#2b120c\" /></g><g class=\"mo mc-sleep\"><path d=\"M21 20h3v1h-3z\" fill=\"#2b120c\" /><path d=\"M24 21h1v1h-1zM24 22h1v1h-1z\" fill=\"#86d6f7\" /></g><g class=\"mo mc-busy\"><path d=\"M18 19h1v1h-1zM19 20h8v1h-8zM23 21h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M24 21h2v1h-2z\" fill=\"#e05a6a\" /><path d=\"M26 21h1v1h-1zM24 22h2v1h-2z\" fill=\"#2b120c\" /></g><g class=\"mo mc-testing\"><path d=\"M20 20h1v1h-1zM22 20h1v1h-1zM24 20h1v1h-1zM21 21h1v1h-1zM23 21h1v1h-1z\" fill=\"#2b120c\" /></g><g class=\"mo mc-pass\"><path d=\"M18 20h9v1h-9zM18 21h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M19 21h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M20 21h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M21 21h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M22 21h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M23 21h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M24 21h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M25 21h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M19 22h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M20 22h5v1h-5z\" fill=\"#e05a6a\" /><path d=\"M25 22h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M20 23h5v1h-5z\" fill=\"#2b120c\" /></g><g class=\"mo mc-fail\"><path d=\"M19 19h6v1h-6zM19 20h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M20 20h2v1h-2z\" fill=\"#ffffff\" /><path d=\"M22 20h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M23 20h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M24 20h1v1h-1zM19 21h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M20 21h2v1h-2z\" fill=\"#ffffff\" /><path d=\"M22 21h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M23 21h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M24 21h1v1h-1zM19 22h6v1h-6z\" fill=\"#2b120c\" /></g><g class=\"mo mc-deliver\"><path d=\"M24 17h8v1h-8zM23 18h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M25 18h1v1h-1z\" fill=\"#c9b99a\" /><path d=\"M26 18h5v1h-5z\" fill=\"#fbf6ea\" /><path d=\"M31 18h1v1h-1z\" fill=\"#c9b99a\" /><path d=\"M24 19h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M25 19h1v1h-1z\" fill=\"#fbf6ea\" /><path d=\"M26 19h1v1h-1z\" fill=\"#c9b99a\" /><path d=\"M27 19h3v1h-3z\" fill=\"#fbf6ea\" /><path d=\"M30 19h1v1h-1z\" fill=\"#c9b99a\" /><path d=\"M31 19h1v1h-1z\" fill=\"#fbf6ea\" /><path d=\"M24 20h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M25 20h2v1h-2z\" fill=\"#fbf6ea\" /><path d=\"M27 20h1v1h-1z\" fill=\"#c9b99a\" /><path d=\"M28 20h1v1h-1z\" fill=\"#d33a2c\" /><path d=\"M29 20h1v1h-1z\" fill=\"#c9b99a\" /><path d=\"M30 20h2v1h-2z\" fill=\"#fbf6ea\" /><path d=\"M23 21h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M25 21h7v1h-7z\" fill=\"#fbf6ea\" /><path d=\"M24 22h8v1h-8z\" fill=\"#2b120c\" /></g><g class=\"mo mc-celebrate\"><path d=\"M18 20h9v1h-9zM18 21h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M19 21h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M20 21h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M21 21h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M22 21h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M23 21h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M24 21h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M25 21h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M19 22h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M20 22h5v1h-5z\" fill=\"#e05a6a\" /><path d=\"M25 22h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M20 23h5v1h-5z\" fill=\"#2b120c\" /></g></g><g class=\"m-open\"><path d=\"M25 12h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M26 12h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M24 13h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M25 13h2v1h-2z\" fill=\"#3a0d0a\" /><path d=\"M22 14h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M24 14h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M25 14h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M21 15h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M22 15h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M23 15h3v1h-3z\" fill=\"#3a0d0a\" /><path d=\"M19 16h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M21 16h6v1h-6z\" fill=\"#3a0d0a\" /><path d=\"M17 17h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M19 17h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M20 17h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M21 17h5v1h-5z\" fill=\"#3a0d0a\" /><path d=\"M16 18h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M17 18h1v1h-1z\" fill=\"#3a0d0a\" /><path d=\"M18 18h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M19 18h7v1h-7z\" fill=\"#3a0d0a\" /><path d=\"M14 19h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M16 19h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M17 19h9v1h-9z\" fill=\"#3a0d0a\" /><path d=\"M30 19h1v1h-1z\" fill=\"#f2c14e\" /><path d=\"M31 19h1v1h-1z\" fill=\"#c98e22\" /><path d=\"M15 20h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M16 20h10v1h-10z\" fill=\"#3a0d0a\" /><path d=\"M30 20h1v1h-1z\" fill=\"#c98e22\" /><path d=\"M31 20h1v1h-1z\" fill=\"#f2c14e\" /><path d=\"M16 21h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M18 21h7v1h-7z\" fill=\"#e05a6a\" /><path d=\"M18 22h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M19 22h6v1h-6z\" fill=\"#e05a6a\" /><path d=\"M19 23h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M21 23h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M22 23h2v1h-2z\" fill=\"#e05a6a\" /><path d=\"M21 24h2v1h-2z\" fill=\"#2b120c\" /><path d=\"M23 24h1v1h-1z\" fill=\"#e05a6a\" /></g></g><g class=\"xm x-alert\"><path d=\"M27 0h4v1h-4zM27 1h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M28 1h2v1h-2z\" fill=\"#ffd23f\" /><path d=\"M30 1h1v1h-1zM27 2h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M28 2h2v1h-2z\" fill=\"#ffd23f\" /><path d=\"M30 2h1v1h-1zM27 3h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M28 3h2v1h-2z\" fill=\"#ffd23f\" /><path d=\"M30 3h1v1h-1zM27 4h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M28 4h1v1h-1z\" fill=\"#ffd23f\" /><path d=\"M29 4h2v1h-2zM27 5h4v1h-4zM27 6h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M28 6h2v1h-2z\" fill=\"#ffd23f\" /><path d=\"M30 6h1v1h-1zM27 7h4v1h-4z\" fill=\"#2b120c\" /></g><g class=\"xm x-hurt\"><path d=\"M12 1h1v1h-1zM20 1h1v1h-1zM11 2h1v1h-1zM13 2h1v1h-1zM19 2h1v1h-1zM21 2h1v1h-1zM12 3h1v1h-1zM20 3h1v1h-1z\" fill=\"#ffe066\" /></g><g class=\"xm x-sleep\"><g class=\"z1\"><path d=\"M22 3h4v1h-4zM24 4h1v1h-1zM23 5h1v1h-1zM22 6h4v1h-4z\" fill=\"#4f9be8\" /></g><g class=\"z2\"><path d=\"M27 0h4v1h-4zM29 1h1v1h-1zM28 2h1v1h-1zM27 3h4v1h-4z\" fill=\"#4f9be8\" /></g></g><g class=\"xm x-testing\"><g class=\"sw\"><path d=\"M10 8h1v1h-1zM9 9h3v1h-3zM10 10h1v1h-1z\" fill=\"#86d6f7\" /></g></g><g class=\"xm x-pass\"><g class=\"s1\"><path d=\"M4 7h1v1h-1zM3 8h1v1h-1z\" fill=\"#ffe066\" /><path d=\"M4 8h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M5 8h1v1h-1zM4 9h1v1h-1zM28 13h1v1h-1zM27 14h1v1h-1z\" fill=\"#ffe066\" /><path d=\"M28 14h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M29 14h1v1h-1zM28 15h1v1h-1z\" fill=\"#ffe066\" /></g><g class=\"s2\"><path d=\"M27 3h1v1h-1zM26 4h1v1h-1z\" fill=\"#ffe066\" /><path d=\"M27 4h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M28 4h1v1h-1zM27 5h1v1h-1zM5 17h1v1h-1zM4 18h1v1h-1z\" fill=\"#ffe066\" /><path d=\"M5 18h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M6 18h1v1h-1zM5 19h1v1h-1z\" fill=\"#ffe066\" /></g></g><g class=\"xm x-fail\"><g class=\"sw\"><path d=\"M10 8h1v1h-1zM9 9h3v1h-3zM10 10h1v1h-1z\" fill=\"#86d6f7\" /></g><g class=\"sm\"><path d=\"M16 0h1v1h-1zM16 1h2v1h-2zM15 2h4v1h-4z\" fill=\"#b9b4ae\" /></g></g><g class=\"xm x-celebrate\"><path d=\"M2 2h1v1h-1z\" fill=\"#e0a91a\" /><path d=\"M2 3h1v1h-1z\" fill=\"#6b4a2b\" /><path d=\"M3 3h6v1h-6z\" fill=\"#ffd23f\" /><path d=\"M2 4h1v1h-1z\" fill=\"#6b4a2b\" /><path d=\"M3 4h5v1h-5z\" fill=\"#ffd23f\" /><path d=\"M2 5h1v1h-1z\" fill=\"#6b4a2b\" /><path d=\"M3 5h4v1h-4z\" fill=\"#ffd23f\" /><path d=\"M2 6h1v1h-1z\" fill=\"#6b4a2b\" /><path d=\"M3 6h3v1h-3z\" fill=\"#e0a91a\" /><path d=\"M2 7h1v1h-1z\" fill=\"#6b4a2b\" /><path d=\"M3 7h2v1h-2z\" fill=\"#e0a91a\" /><path d=\"M2 8h1v1h-1z\" fill=\"#6b4a2b\" /><path d=\"M3 8h1v1h-1z\" fill=\"#e0a91a\" /><path d=\"M2 9h1v1h-1zM2 10h1v1h-1zM2 11h1v1h-1zM2 12h1v1h-1zM2 13h1v1h-1zM2 14h1v1h-1zM2 15h1v1h-1zM2 16h1v1h-1zM2 17h1v1h-1zM2 18h1v1h-1zM2 19h1v1h-1zM2 20h1v1h-1zM2 21h1v1h-1zM2 22h1v1h-1zM2 23h1v1h-1zM2 24h1v1h-1zM2 25h1v1h-1zM2 26h1v1h-1zM2 27h1v1h-1zM2 28h1v1h-1z\" fill=\"#6b4a2b\" /><g class=\"c0\"><path d=\"M14 0h1v1h-1zM14 1h1v1h-1z\" fill=\"#ff5d5d\" /><path d=\"M19 1h1v1h-1z\" fill=\"#4fb3ff\" /><path d=\"M2 2h1v1h-1z\" fill=\"#ffd23f\" /><path d=\"M12 2h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M2 3h1v1h-1z\" fill=\"#ff5d5d\" /><path d=\"M30 4h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M30 5h1v1h-1zM30 6h1v1h-1z\" fill=\"#ff5d5d\" /><path d=\"M17 7h1v1h-1z\" fill=\"#ffd23f\" /><path d=\"M30 7h1v1h-1z\" fill=\"#5fd17a\" /><path d=\"M20 8h1v1h-1z\" fill=\"#ff8ad8\" /><path d=\"M30 8h1v1h-1zM0 9h1v1h-1z\" fill=\"#5fd17a\" /><path d=\"M5 9h1v1h-1z\" fill=\"#ff8ad8\" /><path d=\"M8 9h1v1h-1z\" fill=\"#4fb3ff\" /><path d=\"M28 9h1v1h-1z\" fill=\"#ffd23f\" /><path d=\"M0 10h1v1h-1z\" fill=\"#5fd17a\" /></g><g class=\"c1\"><path d=\"M14 2h1v1h-1zM14 3h1v1h-1z\" fill=\"#ff5d5d\" /><path d=\"M19 3h1v1h-1z\" fill=\"#4fb3ff\" /><path d=\"M2 4h1v1h-1z\" fill=\"#ffd23f\" /><path d=\"M12 4h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M2 5h1v1h-1z\" fill=\"#ff5d5d\" /><path d=\"M30 6h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M30 7h1v1h-1zM30 8h1v1h-1z\" fill=\"#ff5d5d\" /><path d=\"M17 9h1v1h-1z\" fill=\"#ffd23f\" /><path d=\"M30 9h1v1h-1z\" fill=\"#5fd17a\" /><path d=\"M20 10h1v1h-1z\" fill=\"#ff8ad8\" /><path d=\"M30 10h1v1h-1zM0 11h1v1h-1z\" fill=\"#5fd17a\" /><path d=\"M5 11h1v1h-1z\" fill=\"#ff8ad8\" /><path d=\"M8 11h1v1h-1z\" fill=\"#4fb3ff\" /><path d=\"M28 11h1v1h-1z\" fill=\"#ffd23f\" /><path d=\"M0 12h1v1h-1z\" fill=\"#5fd17a\" /></g><g class=\"c2\"><path d=\"M14 4h1v1h-1zM14 5h1v1h-1z\" fill=\"#ff5d5d\" /><path d=\"M19 5h1v1h-1z\" fill=\"#4fb3ff\" /><path d=\"M2 6h1v1h-1z\" fill=\"#ffd23f\" /><path d=\"M12 6h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M2 7h1v1h-1z\" fill=\"#ff5d5d\" /><path d=\"M30 8h1v1h-1z\" fill=\"#ffffff\" /><path d=\"M30 9h1v1h-1zM30 10h1v1h-1z\" fill=\"#ff5d5d\" /><path d=\"M17 11h1v1h-1z\" fill=\"#ffd23f\" /><path d=\"M30 11h1v1h-1z\" fill=\"#5fd17a\" /><path d=\"M20 12h1v1h-1z\" fill=\"#ff8ad8\" /><path d=\"M30 12h1v1h-1zM0 13h1v1h-1z\" fill=\"#5fd17a\" /><path d=\"M5 13h1v1h-1z\" fill=\"#ff8ad8\" /><path d=\"M8 13h1v1h-1z\" fill=\"#4fb3ff\" /><path d=\"M28 13h1v1h-1z\" fill=\"#ffd23f\" /><path d=\"M0 14h1v1h-1z\" fill=\"#5fd17a\" /></g></g></g></g></svg>"
5
6// The agents strip: up to four mini meatballs rolling, as many as data-agents (1-4) says.
7export const AGENTS = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 44 32\" width=\"88\" height=\"64\" shape-rendering=\"crispEdges\" data-agents=\"4\"><title>Meatball agents</title><style>\n.a{display:none}.a .sp{transform-box:view-box;animation:roll .6s steps(4) infinite}\n@keyframes roll{from{transform:rotate(0)}to{transform:rotate(360deg)}}\nsvg:not([data-agents]) .a1,svg[data-agents=\"1\"] .a1,svg[data-agents=\"2\"] .a1,svg[data-agents=\"2\"] .a2,svg[data-agents=\"3\"] .a1,svg[data-agents=\"3\"] .a2,svg[data-agents=\"3\"] .a3,svg[data-agents=\"4\"] .a1,svg[data-agents=\"4\"] .a2,svg[data-agents=\"4\"] .a3,svg[data-agents=\"4\"] .a4{display:inline}\n.a1 .sp{transform-origin:5.5px 24.5px;animation-delay:-0.00s}\n.a2 .sp{transform-origin:16.5px 24.5px;animation-delay:-0.15s}\n.a3 .sp{transform-origin:27.5px 24.5px;animation-delay:-0.30s}\n.a4 .sp{transform-origin:38.5px 24.5px;animation-delay:-0.45s}\n</style><g class=\"a a1\"><g fill=\"#2b120c\" opacity=\".22\"><path d=\"M2 30h1v1h-1zM3 30h1v1h-1zM4 30h1v1h-1zM5 30h1v1h-1zM6 30h1v1h-1zM7 30h1v1h-1zM8 30h1v1h-1zM9 30h1v1h-1z\" /></g><g class=\"sp\"><path d=\"M3 20h5v1h-5zM2 21h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M3 21h1v1h-1z\" fill=\"#f2685a\" /><path d=\"M4 21h4v1h-4z\" fill=\"#c8281e\" /><path d=\"M8 21h1v1h-1zM1 22h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M2 22h7v1h-7z\" fill=\"#a4532f\" /><path d=\"M9 22h1v1h-1zM1 23h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M2 23h3v1h-3z\" fill=\"#a4532f\" /><path d=\"M5 23h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M6 23h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M7 23h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M8 23h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M9 23h1v1h-1zM1 24h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M2 24h3v1h-3z\" fill=\"#a4532f\" /><path d=\"M5 24h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M6 24h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M7 24h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M8 24h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M9 24h1v1h-1zM1 25h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M2 25h5v1h-5z\" fill=\"#a4532f\" /><path d=\"M7 25h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M9 25h1v1h-1zM1 26h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M2 26h4v1h-4z\" fill=\"#a4532f\" /><path d=\"M6 26h3v1h-3z\" fill=\"#8a4026\" /><path d=\"M9 26h1v1h-1zM2 27h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M3 27h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M4 27h4v1h-4z\" fill=\"#8a4026\" /><path d=\"M8 27h1v1h-1zM3 28h5v1h-5z\" fill=\"#2b120c\" /></g></g><g class=\"a a2\"><g fill=\"#2b120c\" opacity=\".22\"><path d=\"M13 30h1v1h-1zM14 30h1v1h-1zM15 30h1v1h-1zM16 30h1v1h-1zM17 30h1v1h-1zM18 30h1v1h-1zM19 30h1v1h-1zM20 30h1v1h-1z\" /></g><g class=\"sp\"><path d=\"M14 20h5v1h-5zM13 21h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M14 21h1v1h-1z\" fill=\"#f2685a\" /><path d=\"M15 21h4v1h-4z\" fill=\"#c8281e\" /><path d=\"M19 21h1v1h-1zM12 22h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M13 22h7v1h-7z\" fill=\"#a4532f\" /><path d=\"M20 22h1v1h-1zM12 23h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M13 23h3v1h-3z\" fill=\"#a4532f\" /><path d=\"M16 23h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M17 23h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M18 23h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M19 23h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M20 23h1v1h-1zM12 24h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M13 24h3v1h-3z\" fill=\"#a4532f\" /><path d=\"M16 24h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M17 24h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M18 24h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M19 24h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M20 24h1v1h-1zM12 25h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M13 25h5v1h-5z\" fill=\"#a4532f\" /><path d=\"M18 25h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M20 25h1v1h-1zM12 26h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M13 26h4v1h-4z\" fill=\"#a4532f\" /><path d=\"M17 26h3v1h-3z\" fill=\"#8a4026\" /><path d=\"M20 26h1v1h-1zM13 27h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M14 27h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M15 27h4v1h-4z\" fill=\"#8a4026\" /><path d=\"M19 27h1v1h-1zM14 28h5v1h-5z\" fill=\"#2b120c\" /></g></g><g class=\"a a3\"><g fill=\"#2b120c\" opacity=\".22\"><path d=\"M24 30h1v1h-1zM25 30h1v1h-1zM26 30h1v1h-1zM27 30h1v1h-1zM28 30h1v1h-1zM29 30h1v1h-1zM30 30h1v1h-1zM31 30h1v1h-1z\" /></g><g class=\"sp\"><path d=\"M25 20h5v1h-5zM24 21h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M25 21h1v1h-1z\" fill=\"#f2685a\" /><path d=\"M26 21h4v1h-4z\" fill=\"#c8281e\" /><path d=\"M30 21h1v1h-1zM23 22h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M24 22h7v1h-7z\" fill=\"#a4532f\" /><path d=\"M31 22h1v1h-1zM23 23h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M24 23h3v1h-3z\" fill=\"#a4532f\" /><path d=\"M27 23h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M28 23h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M29 23h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M30 23h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M31 23h1v1h-1zM23 24h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M24 24h3v1h-3z\" fill=\"#a4532f\" /><path d=\"M27 24h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M28 24h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M29 24h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M30 24h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M31 24h1v1h-1zM23 25h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M24 25h5v1h-5z\" fill=\"#a4532f\" /><path d=\"M29 25h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M31 25h1v1h-1zM23 26h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M24 26h4v1h-4z\" fill=\"#a4532f\" /><path d=\"M28 26h3v1h-3z\" fill=\"#8a4026\" /><path d=\"M31 26h1v1h-1zM24 27h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M25 27h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M26 27h4v1h-4z\" fill=\"#8a4026\" /><path d=\"M30 27h1v1h-1zM25 28h5v1h-5z\" fill=\"#2b120c\" /></g></g><g class=\"a a4\"><g fill=\"#2b120c\" opacity=\".22\"><path d=\"M35 30h1v1h-1zM36 30h1v1h-1zM37 30h1v1h-1zM38 30h1v1h-1zM39 30h1v1h-1zM40 30h1v1h-1zM41 30h1v1h-1zM42 30h1v1h-1z\" /></g><g class=\"sp\"><path d=\"M36 20h5v1h-5zM35 21h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M36 21h1v1h-1z\" fill=\"#f2685a\" /><path d=\"M37 21h4v1h-4z\" fill=\"#c8281e\" /><path d=\"M41 21h1v1h-1zM34 22h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M35 22h7v1h-7z\" fill=\"#a4532f\" /><path d=\"M42 22h1v1h-1zM34 23h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M35 23h3v1h-3z\" fill=\"#a4532f\" /><path d=\"M38 23h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M39 23h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M40 23h1v1h-1z\" fill=\"#f8f3ea\" /><path d=\"M41 23h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M42 23h1v1h-1zM34 24h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M35 24h3v1h-3z\" fill=\"#a4532f\" /><path d=\"M38 24h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M39 24h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M40 24h1v1h-1z\" fill=\"#1a0b07\" /><path d=\"M41 24h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M42 24h1v1h-1zM34 25h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M35 25h5v1h-5z\" fill=\"#a4532f\" /><path d=\"M40 25h2v1h-2z\" fill=\"#8a4026\" /><path d=\"M42 25h1v1h-1zM34 26h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M35 26h4v1h-4z\" fill=\"#a4532f\" /><path d=\"M39 26h3v1h-3z\" fill=\"#8a4026\" /><path d=\"M42 26h1v1h-1zM35 27h1v1h-1z\" fill=\"#2b120c\" /><path d=\"M36 27h1v1h-1z\" fill=\"#a4532f\" /><path d=\"M37 27h4v1h-4z\" fill=\"#8a4026\" /><path d=\"M41 27h1v1h-1zM36 28h5v1h-5z\" fill=\"#2b120c\" /></g></g></svg>"
8
hooks/terminal.ts 109 lines
1import type { Motion } from '../types'
2
3/**
4 * The meatball in a terminal: one line of colored text, a little face that
5 * rolls along the band and changes with his mood. Pixel art there is too big
6 * and, where block characters don't fill the line, sliced into stripes.
7 */
8
9/** How fast he rolls in a terminal, in columns a second. */
10const SPEED = 12
11/** The room his face, its extras and a trail of helpers take, so the far end of the bar fits him. */
12export const WIDTH = 16
13
14const MEAT = '#c0603a'
15const GOLD = '#e0b040'
16const BLUE = '#6aa8f0'
17const RED = '#e05a5a'
18const DUST = '#806050'
19const GREEN = '#6ac46a'
20
21/** A run of text in one color. */
22export type Piece = { text: string; color: string }
23
24/** His cheeks as the context fills: rounder and rounder. */
25function wrap(face: string, fill: Motion['fill']) {
26  if (fill === 'stuffed') return `((${face}))`
27  if (fill === 'full') return `( ${face} )`
28  return `(${face})`
29}
30
31/** Two frames of anything, swapping every `ms`. */
32function beat(t: number, ms: number) {
33  return Math.floor(t / ms) % 2 === 0
34}
35
36/**
37 * His face and extras for this moment, most urgent first, as the desktop
38 * picks its poses, with a little `o` behind him for each running subagent.
39 * `t` is milliseconds, for the blinks and flaps.
40 */
41export function face(m: Motion, isRolling: boolean, isReturning: boolean, t: number, helpers = 0): Piece[] {
42  const pieces = alone(m, isRolling, isReturning, t)
43  if (helpers <= 0) return pieces
44  const trail = { text: 'o'.repeat(helpers), color: MEAT }
45  return isReturning ? [...pieces, { text: ' ', color: MEAT }, trail] : [trail, { text: ' ', color: MEAT }, ...pieces]
46}
47
48function alone(m: Motion, isRolling: boolean, isReturning: boolean, t: number): Piece[] {
49  const body = (eyes: string) => ({ text: wrap(eyes, m.fill), color: MEAT })
50  const spinner = '⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏'
51  const spin = { text: ` ${spinner[Math.floor(t / 100) % spinner.length]}`, color: GOLD }
52  if (m.mood === 'alert') return [body('O_O'), { text: beat(t, 250) ? '!' : ' ', color: GOLD }]
53  if (m.pose === 'hurt') return [body(beat(t, 200) ? 'x_x' : '+_+'), { text: '#', color: RED }]
54  if (m.pose === 'fail') return [body(beat(t, 200) ? '>_<' : '>.<'), { text: ' ✗', color: RED }]
55  if (m.pose === 'pass') return [{ text: '\\', color: MEAT }, body('^o^'), { text: '/', color: MEAT }, { text: ' ✓', color: GREEN }]
56  if (m.pose === 'celebrate') return [body('^ᴗ^'), { text: beat(t, 300) ? ' ⚑ *' : ' ⚑· ', color: GOLD }]
57  if (m.pose === 'chomp') return [body(beat(t, 180) ? '•O•' : '•-•'), { text: beat(t, 180) ? '·' : ':', color: GOLD }]
58  if (m.pose === 'bounce') return [{ text: '\\', color: MEAT }, body('^ᴗ^'), { text: '/', color: MEAT }]
59  if (m.mood === 'testing') return [body('°_°'), spin]
60  if (m.mood === 'deliver') return [body('•ᴗ•'), { text: beat(t, 300) ? ' ✉' : ' ✉ ', color: GOLD }]
61  if (m.mood === 'busy') return [body('¬_¬'), spin]
62  if (m.mood === 'sleep') return [body('-_-'), { text: Math.floor(t / 1400) % 2 ? ' zZ' : ' z', color: BLUE }]
63  if (isRolling) {
64    const dust = { text: beat(t, 150) ? '∙' : '·', color: DUST }
65    return isReturning ? [body('•ᴗ•'), dust] : [dust, body('•ᴗ•')]
66  }
67  return [body('•ᴗ•')]
68}
69
70/** Whether anything about him moves right now, so the band needs repainting. */
71export function isMoving(m: Motion, isRolling: boolean) {
72  return isRolling || m.pose !== 'none' || m.mood !== 'none'
73}
74
75/** One trip out and back along a bar this many columns wide, in milliseconds. */
76export function lapMs(columns: number) {
77  return Math.max(1, Math.round(((columns - WIDTH) * 2 * 1000) / SPEED))
78}
79
80/** How far along a bar he is, 0 to 1, after rolling `rolledMs` from the middle on a lap this long. */
81export function alongAt(rolledMs: number, lap: number) {
82  const p = ((rolledMs + lap / 4) % lap) / lap
83  return { along: p < 0.5 ? p * 2 : 2 - p * 2, isReturning: p >= 0.5 }
84}
85
86/**
87 * His way home to the middle from `from` (0 to 1 along a bar `span` units
88 * long) at `speed` units a second, `elapsedMs` after he set off: where he is,
89 * how long is left, and whether he heads left.
90 */
91export function homeward(from: number, span: number, speed: number, elapsedMs: number) {
92  const ms = (Math.abs(0.5 - from) * span * 1000) / speed
93  const t = ms === 0 ? 1 : Math.min(1, Math.max(0, elapsedMs / ms))
94  return { along: from + (0.5 - from) * t, leftMs: ms - Math.max(0, Math.min(ms, elapsedMs)), isLeft: from > 0.5 }
95}
96
97/** Which column he starts at, and whether he is heading back to the left. */
98export function place(rolledMs: number, columns: number) {
99  const { along, isReturning } = alongAt(rolledMs, lapMs(columns))
100  return { column: Math.round(along * Math.max(0, columns - WIDTH)), isReturning }
101}
102
103/** Where he is on his way home after a turn, `sinceHome` ms after he set off (negative while he hops). */
104export function placeHome(from: number, columns: number, sinceHome: number) {
105  const span = Math.max(0, columns - WIDTH)
106  const walk = homeward(alongAt(from, lapMs(columns)).along, span, SPEED, sinceHome)
107  return { column: Math.round(walk.along * span), isReturning: walk.isLeft, isWalking: sinceHome >= 0 && walk.leftMs > 0 }
108}
109
types/index.d.ts 50 lines
1/**
2 * A moment he strikes and then lets go of: a bite, the end-of-turn hop, a
3 * wince at an error, a cheer or a groan at test results, a flag for a new PR.
4 */
5export type Pose = 'none' | 'chomp' | 'bounce' | 'hurt' | 'pass' | 'fail' | 'celebrate'
6
7/**
8 * How he is while something lasts: waiting on you, watching a command run,
9 * goggles on for tests, carrying a PR out, or asleep after a quiet spell.
10 */
11export type Mood = 'none' | 'alert' | 'busy' | 'testing' | 'deliver' | 'sleep'
12
13/** Subagents and background tasks seen working: agent id -> when last seen, in ms. */
14export type Agents = Record<string, number>
15
16/** How round he is: how full the context window is. */
17export type Fill = 'normal' | 'full' | 'stuffed'
18
19/**
20 * Where the meatball is and what he is doing. His place along the bar is kept
21 * as time spent rolling, so a redraw (which restarts the SVG's animations)
22 * puts him back on the same spot.
23 */
24export type Motion = {
25  pose: Pose
26  mood: Mood
27  fill: Fill
28  /** Milliseconds rolled before the current stretch, counted from the middle of the bar heading right. */
29  rolledMs: number
30  /** When the current stretch of rolling began, or null while he stands still. */
31  since: number | null
32  /** Whether a turn is running, so he knows to roll on after a pose. */
33  isTurn: boolean
34  /** Counts poses, so only the latest pose's timer ends it. */
35  poseId: number
36  /** Counts turns, so a sleep timer from a quiet spell that ended does nothing. */
37  turnId: number
38  /** Where a turn left him (time rolled) as he heads home to the middle, or null once a turn starts. */
39  from: number | null
40  /** When he sets off home: just after the end-of-turn hop. */
41  homeAt: number
42}
43
44/** `/meatball width <px>` pins the bar's width; null works it out from the band's columns. */
45declare module 'claude-code' {
46  interface PluginState {
47    'meatball': { isHidden: boolean; motion: Motion; width: number | null; agents: Agents }
48  }
49}
50