# Coffee Machine Machine

## CoffeeScript, 219 bytes

*Thanks to @totallyhuman for saving 4 bytes!*

```
->"""#{l="________"}.#{l}_
#{s="| |"} \\ - /
#{t="| || |"} \\ - /
#{t}___\\___/
#{t} X
#{s} ___
#{s} / - \\
|______| / - \\
| ____ | /_______\\
||7:30||#{l}__
||____| |
|#{l}#{l}_|"""
```

Try it online!

## SOGL V0.12, 78 bytes

```
≈p⁽.*%θ|»Y?v▼mB8█[=ρļiρKτ¾Γb 2⁴⅟┼¤Μ╬(׀⁾⌠○Yyλ{╝<-³|k¤↑E*UH∙æ¹ΘNσx↔§÷πm‛⁾ņμ׀⁴@≤‘
```

Try it Here!

SOGL compression beats bubblegum!

## Befunge, ~~166~~ 162 bytes

```
55+31p"kvvvvvvvvgf:::::kvugvvvvvj6,jHvvvs>?vqg[@:P>vvvg[|P:f::>Jv"v
:0 /\|_-37X.v"vvvv{vvvvg:::>=:@:G>f>f:=|:G>f>fv`vUg:j:>::N>::f::"<
g1+2%+56:-*49<_@#:,g1/+56,
```

Try it online!

**Explanation**

This is using a fairly simple compression scheme where every two characters are encoded into a pair as a base 11 number.

We start by translating the characters into indices in a lookup table to minimise their size - this gives us one index in the range 0 to 11, and a second in the range 0 to 8. These indices are combined into a single number as `n = i1 + i2*11`

. We then add a additional offset to translate that number into the range of printable ASCII characters, so it can be stored in a Befunge string.

When decoding we just perform this process in reverse. We subtract the offset, split the value into two parts with `i1 = n%11`

and `i2 = n/11`

, and then lookup those indices in the translation table to obtain the final characters to output.

**Bonus Coffee Mug**

```
55+37p"kvvvvvvvvgf::"v
v",6jvvvvvguvk:::" <
>"jHvvvs>?vqg[@:P" v
v"vJ>::f:P|[gvvv>" <
>"::f::>N::>:j:gU" v
v"f>f:=|:G>f>fv`v" <
>">G:@:=>:::gvvvv" v
:0 X/\|_-37X.v"vvvv{"<
@v2%+56:-*49<<_>
>+7g,65+/7g,:^
```

Try it online!