mirror of
https://github.com/Rezmason/matrix.git
synced 2026-04-14 12:29:30 -07:00
Adding nightmare matrix support
This commit is contained in:
@@ -16,6 +16,7 @@ You can customize the digital rain by putting a '?' at the end of the link above
|
||||
|
||||
Here's a list of customization options:
|
||||
|
||||
- **version** - the version of the Matrix to simulate. Can be "nightmare" or "1999" (default).
|
||||
- **width** - the number of columns (and rows) to draw. Default is 80.
|
||||
- **animationSpeed** - the overall speed of the animation. Can be any number, even negative! Default is 1.0.
|
||||
- **fallSpeed** - the speed of the rain. Can be any number, even negative! Default is 1.0.
|
||||
@@ -26,9 +27,11 @@ Here's a list of customization options:
|
||||
---
|
||||
### technical details
|
||||
|
||||
The glyphs in this project are cleaned up vectors [from an old SWF](https://web.archive.org/web/20070914173039/http://www.atari.com:80/thematrixpathofneo/) archived in 2007.
|
||||
The Matrix glyphs in this project are cleaned up vectors [from an old SWF](https://web.archive.org/web/20070914173039/http://www.atari.com:80/thematrixpathofneo/) archived in 2007.
|
||||
(Please support the [Internet Archive!](https://archive.org/about/))
|
||||
|
||||
The Gothic glyphs in this project are derived from [Dr. jur. Robert Pfeffer's font "Silubur"](http://www.robert-pfeffer.net/gotica/englisch/index.html), which are inspired by the uncial script found in the [Codex Argenteus](https://en.wikipedia.org/wiki/Codex_Argenteus).
|
||||
|
||||
The glyphs are formatted as a multi-channel distance field (or MSDF) via Victor Chlumsky's [msdfgen](https://github.com/Chlumsky/msdfgen). This format preserves the crisp edges and corners of vector graphics when rendered as textures. Chlumsky's thesis paper, which is in English and is also easy to read, is [available to download here](https://dspace.cvut.cz/handle/10467/62770).
|
||||
|
||||
The raindrops themselves are particles [computed on the GPU inside of a texture](https://threejs.org/examples/webgl_gpgpu_water.html), much smaller than the final render. The data sent from the CPU to the GPU every frame is negligible.
|
||||
|
||||
BIN
gothic_msdf.png
Normal file
BIN
gothic_msdf.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 45 KiB |
55
index.html
55
index.html
@@ -24,16 +24,51 @@
|
||||
|
||||
<script>
|
||||
|
||||
const versions = {
|
||||
nightmare: {
|
||||
texture: './gothic_msdf.png',
|
||||
glyphSequenceLength: 27,
|
||||
palette: [
|
||||
{color: new THREE.Vector3(0.00, 0.00, 0.00), at: 0.0},
|
||||
{color: new THREE.Vector3(0.52, 0.00, 0.00), at: 0.4},
|
||||
{color: new THREE.Vector3(0.82, 0.05, 0.05), at: 0.8},
|
||||
{color: new THREE.Vector3(1.00, 0.40, 0.30), at: 1.0},
|
||||
],
|
||||
fallSpeed: 0.4,
|
||||
cycleSpeed: 0.5,
|
||||
hasThunder: true,
|
||||
numColumns: 60
|
||||
},
|
||||
["1999"]: {
|
||||
texture: './matrixcode_msdf.png',
|
||||
glyphSequenceLength: 57,
|
||||
palette: [
|
||||
{color: new THREE.Vector3(0.00, 0.00, 0.00), at: 0.0},
|
||||
{color: new THREE.Vector3(0.05, 0.52, 0.17), at: 0.4},
|
||||
{color: new THREE.Vector3(0.12, 0.82, 0.37), at: 0.8},
|
||||
{color: new THREE.Vector3(0.29, 1.00, 0.64), at: 1.0},
|
||||
],
|
||||
fallSpeed: 1,
|
||||
cycleSpeed: 1,
|
||||
hasThunder: false,
|
||||
numColumns: 80
|
||||
}
|
||||
};
|
||||
|
||||
const urlParams = new Map(window.location.href.replace(/^[^\?]+\?/, "").split("&").map(pair => pair.split("=")));
|
||||
const getParam = (key, defaultValue) => urlParams.has(key) ? urlParams.get(key) : defaultValue;
|
||||
|
||||
const version = versions[getParam("version", "1999")];
|
||||
|
||||
const sharpness = parseFloat(getParam("sharpness", 0.5));
|
||||
const animationSpeed = parseFloat(getParam("animationSpeed", 1));
|
||||
const fallSpeed = parseFloat(getParam("fallSpeed", 1));
|
||||
const cycleSpeed = parseFloat(getParam("cycleSpeed", 1));
|
||||
const numColumns = parseInt(getParam("width", 80));
|
||||
const glyphSequenceLength = 57;
|
||||
const fallSpeed = parseFloat(getParam("fallSpeed", 1)) * version.fallSpeed;
|
||||
const cycleSpeed = parseFloat(getParam("cycleSpeed", 1)) * version.cycleSpeed;
|
||||
const numColumns = parseInt(getParam("width", version.numColumns));
|
||||
const numGlyphColumns = 8;
|
||||
const glyphSequenceLength = version.glyphSequenceLength;
|
||||
const palette = version.palette;
|
||||
const hasThunder = version.hasThunder;
|
||||
|
||||
const effect = getParam("effect", "plain");
|
||||
|
||||
@@ -47,14 +82,15 @@
|
||||
element.appendChild(renderer.domElement);
|
||||
const composer = new THREE.EffectComposer( renderer );
|
||||
|
||||
const texture = new THREE.TextureLoader().load( './matrixcode_msdf.png' );
|
||||
const texture = new THREE.TextureLoader().load( version.texture );
|
||||
|
||||
const matrixRenderer = makeMatrixRenderer(renderer, texture, {
|
||||
sharpness,
|
||||
numColumns,
|
||||
animationSpeed, fallSpeed, cycleSpeed,
|
||||
glyphSequenceLength,
|
||||
numGlyphColumns
|
||||
numGlyphColumns,
|
||||
hasThunder
|
||||
});
|
||||
|
||||
matrixRenderer.pass.renderToScreen = false;
|
||||
@@ -65,12 +101,7 @@
|
||||
|
||||
switch (effect) {
|
||||
case "plain":
|
||||
composer.addPass(new THREE.ColorMapPass([
|
||||
{color: new THREE.Vector3(0.00, 0.00, 0.00), at: 0.0},
|
||||
{color: new THREE.Vector3(0.05, 0.52, 0.17), at: 0.4},
|
||||
{color: new THREE.Vector3(0.12, 0.82, 0.37), at: 0.8},
|
||||
{color: new THREE.Vector3(0.29, 1.00, 0.64), at: 1.0},
|
||||
], 0.1));
|
||||
composer.addPass(new THREE.ColorMapPass(palette, 0.1));
|
||||
break;
|
||||
case "pride":
|
||||
composer.addPass(new THREE.HorizontalColorationPass([
|
||||
|
||||
@@ -3,7 +3,8 @@ const makeMatrixRenderer = (renderer, texture, {
|
||||
numColumns,
|
||||
animationSpeed, fallSpeed, cycleSpeed,
|
||||
glyphSequenceLength,
|
||||
numGlyphColumns
|
||||
numGlyphColumns,
|
||||
hasThunder
|
||||
}) => {
|
||||
const matrixRenderer = {};
|
||||
const camera = new THREE.OrthographicCamera( -0.5, 0.5, 0.5, -0.5, 0.0001, 10000 );
|
||||
@@ -18,7 +19,7 @@ const makeMatrixRenderer = (renderer, texture, {
|
||||
pixels[i * 4 + 3] = 0;
|
||||
}
|
||||
|
||||
const glyphVariable = gpuCompute.addVariable(
|
||||
const glyphVariable = gpuCompute.addVariable(
|
||||
"glyph",
|
||||
`
|
||||
precision highp float;
|
||||
@@ -53,16 +54,27 @@ const makeMatrixRenderer = (renderer, texture, {
|
||||
float brightness = data.r;
|
||||
float cycle = data.g;
|
||||
|
||||
float simTime = now * 0.0005 * animationSpeed * fallSpeed;
|
||||
float columnTime = (columnTimeOffset * 1000.0 + simTime) * (0.5 + columnSpeedOffset * 0.5) + (sin(simTime * 2.0 * columnSpeedOffset) * 0.2);
|
||||
float simTime = now * 0.0005 * animationSpeed;
|
||||
float columnTime = (columnTimeOffset * 1000.0 + simTime * fallSpeed) * (0.5 + columnSpeedOffset * 0.5) + (sin(simTime * fallSpeed * 2.0 * columnSpeedOffset) * 0.2);
|
||||
float glyphTime = gl_FragCoord.y * 0.01 + columnTime;
|
||||
|
||||
float value = 1.0 - fract((glyphTime + 0.3 * sin(SQRT_2 * glyphTime) + 0.2 * sin(SQRT_5 * glyphTime)));
|
||||
|
||||
// float newBrightness = clamp(b * 3.0 * log(c * value), 0.0, 1.0);
|
||||
float newBrightness = 3.0 * log(value * 1.25);
|
||||
|
||||
#ifdef hasThunder
|
||||
float thunder = 10.0 * (pow(sin(SQRT_5 * simTime), 1000.0) + pow(sin(SQRT_2 * simTime), 1000.0)) + 0.5;
|
||||
|
||||
newBrightness *= thunder;
|
||||
|
||||
if (newBrightness > brightness) {
|
||||
brightness = newBrightness;
|
||||
} else {
|
||||
brightness = mix(brightness, newBrightness, brightnessChangeBias * 0.1);
|
||||
}
|
||||
#else
|
||||
brightness = mix(brightness, newBrightness, brightnessChangeBias);
|
||||
#endif
|
||||
|
||||
|
||||
float glyphCycleSpeed = delta * cycleSpeed * 0.2 * pow(1.0 - brightness, 4.0);
|
||||
@@ -94,6 +106,9 @@ const makeMatrixRenderer = (renderer, texture, {
|
||||
numGlyphColumns: {type: "f", value: numGlyphColumns },
|
||||
brightnessChangeBias: { type: "f", value: brightnessChangeBias },
|
||||
});
|
||||
if (hasThunder) {
|
||||
glyphVariable.material.defines.hasThunder = 1.0;
|
||||
}
|
||||
|
||||
const error = gpuCompute.init();
|
||||
if ( error !== null ) {
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
./msdfgen/out/msdfgen msdf -svg ./svg\ sources/texture_simplified.svg -size 512 512 -pxrange 4 -o ./matrixcode_msdf.png
|
||||
./msdfgen/out/msdfgen msdf -svg ./svg\ sources/gothic_texture_simplified.svg -size 512 512 -pxrange 4 -o ./gothic_msdf.png
|
||||
|
||||
136
svg sources/gothic_texture_simplified.svg
Normal file
136
svg sources/gothic_texture_simplified.svg
Normal file
@@ -0,0 +1,136 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{display:none;}
|
||||
</style>
|
||||
<path class="st0" d="M23.1,455.6h17.7c9.3,1.9,14,6.2,14,12.8v23.2c0,6.7-4.7,11-14,12.7H23.1c-9.3-1.7-14-6-14-12.7v-23.2
|
||||
C9.2,461.8,13.8,457.5,23.1,455.6 M44.2,401.1L44.2,401.1L19.7,401v7.4c0,11.9,4,19.7,12.1,23.5c3.2,1.6,7.2,2.3,12,2.2v5
|
||||
c-14.4,0-24.5-4.7-30.2-14.1c-2.5-3.9-3.9-8.6-4.3-14.1v-18.2h45.3v20H44.2V401.1 M73.6,421.9V416l29.1-26.5h15.9v53.1H73.4v-5h29.7
|
||||
v-15.7H73.6 M166,388.6h0.1v4.9c0,1.1,0.1,1.9,1.5,2.5h15v8.6h-29c0.5,3.4,2.2,6.6,5.2,9.5c5.1,5.2,13,8.7,23.7,10.4v5.2
|
||||
c-8.1-0.7-13.6-1.7-16.5-2.9v11.6h16.5v5h-45.1v-5H154v-14.2l-16.4,7.3v-9.4l10.5-5c-4.7-3.9-7.9-8.6-9.5-14.2
|
||||
c-0.7-2.2-1.1-4.5-1.2-6.9h14.9c1.2,0,1.8-0.8,1.7-2.7v-4.7H166 M219.4,414.9l15.8-6.9v10.3l-10.9,4.8c5.4,6.6,12.9,10.2,22.3,10.9
|
||||
v5.3c-13.4-0.1-24.2-4.1-32.5-11.8l-12.7,5.7v-10.3l6.7-3c-4.3-7.3-6.5-16.3-6.4-27.1h43.1v8.7h-29
|
||||
C216.2,406.2,217.4,410.7,219.4,414.9 M276,403.1v-11.3h13.3v11.3h21.3v8.7h-21.3c-0.3,5,0.7,22.7,18.7,23.8v4.5
|
||||
c-17.2,1.4-30.8-8.4-32-28.3h-10.4v-8.7H276 M343.1,391.7h17.7c9.3,1.9,14,6.2,14,12.8v7.8c0,4.5-2.3,7.8-6.8,9.9
|
||||
c-2.6,1.1-4.9,1.7-6.9,1.7h-5h-6.7c-1.4,0-2.8-1.1-4.4-3.2c-0.4,5.6,1.7,9.5,6.2,11.9c2.9,1.6,6.8,2.4,11.7,2.4l2.2-0.1l2-0.1v5.4
|
||||
h-13.9c-8.6,0-15.1-2.9-19.8-8.8c-1.9-2.5-3.2-5.4-4.1-8.7v-18.3C329.2,397.9,333.9,393.6,343.1,391.7 M407.2,391.5h17.6
|
||||
c9.3,1.9,14,6.2,14,12.8c0,4.6-2.2,7.8-6.7,9.8c-2.4,1.1-4.7,1.7-6.9,1.8l3.4,0.6l3.6,1.2c4.5,2,6.7,5.3,6.7,9.8
|
||||
c0,6.6-4.7,10.9-14,12.8h-17.6c-9.4-1.9-14.1-6.2-14.1-12.8c0-4.5,2.3-7.8,6.8-9.8c2.4-1.1,4.7-1.7,6.9-1.8
|
||||
c-2.2-0.1-4.5-0.7-6.9-1.8c-4.6-2.1-6.8-5.3-6.8-9.8C393.2,397.8,397.9,393.5,407.2,391.5 M458.3,439.3v-8.2h21
|
||||
c4.8,0,8.8-4.9,8.8-9.6v-9.6h-29.8v-8.7h30.2v-10.4h13.3v29c0,12.3-7.2,17.5-16.4,17.5H458.3 M32,368.2c4.3,3.3,11.1,3.7,14,3.1v4.9
|
||||
c0,0-1.8,0.2-4.2,0.2c-11.6,0-18.6-3.2-23-9.7c-2.9-4.2-4.4-8.9-4.4-15.5c0-2.1,0.2-3.6,0.2-3.6H9.4v-8.8h5.2v-11.1h12.1v11.1H36
|
||||
V328h11.8v10.8h6.8v8.8h-7v10.1H35.5v-10.1H26c0,0-0.2,1.2-0.2,4C25.8,359.2,27.7,364.8,32,368.2 M118.4,338.8c0,0,0-0.2,0-0.2H94.6
|
||||
c0.5,13.3,4.6,22.4,12.4,27.4c3.2,2.1,7,3.3,11.5,3.6v4.7c-11.5,0-20.6-3.4-27.3-10.3l-6.7,10.4H73.6v-2.3l10.6-18.6
|
||||
c-2.2-2.6-4.6-17-4.6-24.1h38.8L118.4,338.8 M137.3,327.7h45.4v5.4l-30.3,37.8h30.3v5.4h-45.4v-5.4l30.3-37.8h-30.3V327.7
|
||||
M219.8,378.8v-42.3h-7.5V331l15.3-5.7h7.9v53.5H219.8 M310.5,349.3H288c-2,0-3.8,0.5-5.3,1.6s-2.2,2.3-2.2,3.8v10.9
|
||||
c0,1.5,0.7,2.8,2.2,3.8c1.5,1.1,3.2,1.6,5.3,1.6h7.5c4.6,0,7.1-1.8,7.5-5.4h7.5c-1.1,7.2-6.1,10.8-15,10.8h-15
|
||||
c-4.1,0-7.6-1.1-10.5-3.2c-3-2.1-4.4-4.7-4.4-7.6v-10.9c0-3,1.5-5.5,4.4-7.6s6.5-3.2,10.6-3.2h15V333h-30v-5.4h45v21.7L310.5,349.3
|
||||
L310.5,349.3 M359.5,333H352c-2,0-3.8,0.5-5.3,1.6s-2.2,2.3-2.2,3.8v2.7c0,3.8,4.8,8.6,14.5,14.6l1,0.6c7.9,4.9,14.5,11.9,14.5,14.6
|
||||
v5.4h-45V371h30v-0.5c0-3.4-4.8-8.1-14.5-14.1l-1-0.6c-9.7-6-14.2-10.8-14.2-14.6v-1c0-3.4,1.5-6.4,4.4-8.8
|
||||
c2.9-2.5,6.1-3.7,10.2-3.7h15c8.8,0,13.8,3.6,15,10.8H367C366.6,334.8,364.1,333,359.5,333 M438.8,327.7v48.6h-45.6v-48.6H438.8z
|
||||
M495,328.7c0,8.9,4.2,16.3,7.4,18.5v5.5c-6.1,0-13.5-7.1-17.1-15.6h-14.5c0,14.9,0.4,14.7,3.4,14l15.6-3.7v7.2l-12.2,4.2
|
||||
c-1,0.3-1.1,2.5-0.2,3.7c2.5,3.4,9.5,8.3,22,7.5v4.9c-21.6,2.2-42.2-6.4-41.9-33.6v-12.6H495 M28,199h8v50h-8V199 M113.1,220.4v7.1
|
||||
H99.5v13.6h-7.1v-13.6H78.8v-7.1h13.7v-13.6h7.1v13.6H113.1z M175.7,213.1l2.4,5.4l-11.1,5.2l11.2,5.1l-2.4,5.4l-12-5.5v10.6h-8
|
||||
v-10.4l-11.6,5.5l-2.5-5.4l11.2-5.2l-11.2-5.1l2.3-5.5l11.8,5.4v-9.9h8v10L175.7,213.1 M241,201.5v8.9h-31.4v27.3h37.2v8.9h-45.6
|
||||
v-45.1H241 M311.2,198.6v6.3h-24v-6.3H311.2z M311.2,213.3v6.3h-24v-6.3H311.2z M263.7,213.4l0.1-2.5h5.6c-0.8,21.1,21.6,27,43,26.4
|
||||
v11.8C279.6,252.5,263.6,235.9,263.7,213.4 M330.3,202.4l43.4,0.2v7.6h-30.4c-0.3,0.9-0.4,4.1-0.4,4.1c0,9.8,3.6,15.7,10.8,17.7
|
||||
l4.6-9.8h13.1l-10.3,23.4h-13.2l3.3-7.6c-4-0.4-7.5-1.8-10.4-4.2C333.8,228,330.3,217.6,330.3,202.4 M425.3,237.3L413.2,202h13
|
||||
l14.8,44.1h-18.7l-18.6-3.7l-1.2,3.5H391v-3.2l9.9-25.8h12.5l-6.4,17L425.3,237.3 M480.7,223.4c3.8,10.4,10.9,17.9,22,17.6v5.2
|
||||
c-14.1-0.5-26.2-6.9-33.1-18.3l-12.2,4.9v-10l8.4-3.2c-1.7-5.2-2.5-11.2-2.3-17.8h13.7c0,4.3,0.4,8.8,1.2,13l18.5-7v9L480.7,223.4
|
||||
M54.4,172.2v9.5H9.7v-9.5h44.6H54.4z M12.2,147.7v-9.4h40.5v9.4H12.2 M81.7,136.3h10.9l-6.9,47.4l-10.9,0L81.7,136.3z M109.5,136.3
|
||||
c0,7.4,0.4,14.2,1.1,19.7c1.3,10.4,3.5,17,6.6,19.9l-3.7,5.6c-7-3.4-15.9-20-15.9-45.2H109.5 M137.1,135.8h12.6
|
||||
c-0.4,9.1,0,43.9,28.2,42.7v5.5c-18,1.1-41.4-7.2-41.2-40.6L137.1,135.8 M163.8,159.8l5.6-24h13.8l-6.1,24H163.8 M216.5,154.9h14.9
|
||||
v10.2h-14.9V154.9 M266.8,156.1h42.4v7.8h-42.4V156.1 M370.1,144.6L347.7,160l22.4,15.5H357l-23-15.4l23-15.5H370.1 M398,175.4
|
||||
l22.4-15.3L398,144.6h13.1l23,15.5l-23,15.3H398 M471.1,135.6h17.7c9.3,1.9,14,6.2,14,12.8v23.2c0,6.7-4.7,11-14,12.7h-17.7
|
||||
c-9.3-1.7-14-6-14-12.7v-23.2C457.2,141.8,461.8,137.5,471.1,135.6 M27.5,107.3H17.1l3.4-22.7h10.3L27.5,107.3z M43.5,107.3H33.1
|
||||
l3.5-22.7h10.3L43.5,107.3 M85.4,82.4h21.2v10.8H85.4V82.4z M106.6,98.8v10.9H85.4V98.8H106.6 M182.5,115.4l-45.1,3.9v-9.1l45.1-4.7
|
||||
V115.4z M182.5,82.5l-45.1,4v-9.1l45.1-4.8V82.5z M179.1,98.6l-37.9,3.7v-8.5l37.9-4.4V98.6 M233,118.1c-11.1,0-19.7-3.2-25.8-9.7
|
||||
c-2.5-2.6-4.3-5.8-5.5-9.7V86.9h44.6v8.2h-32c0.6,7.3,4.2,12.5,10.8,15.6c4.2,2,13.6,2.9,18.5,2.9v4.5H233z M243.8,73.9V81h-40.2
|
||||
v-7.1H243.8 M266.6,71.8h12.6c-0.9,14,2.7,44.3,28.2,42.7v5.5C272,121,264.5,95.9,266.6,71.8z M309.5,95.8h-13.3l-0.2-24h13.8
|
||||
L309.5,95.8 M377.5,99.9h-20.7v-7.7h20.7V99.9z M326.5,99.8v-7.7h20.7v7.7H326.5 M405,72.9v15.7c0,11.9,5.1,19.7,15.4,23.5
|
||||
c4.1,1.6,9.2,2.4,15.3,2.2v5c-17.7,0-30-4.7-36.9-14.1c-3-3.9-4.7-8.7-5.2-14.1l-0.1-18.2H405z M413,72.7h10.5l-2.9,22.6h-10.4
|
||||
L413,72.7 M435.6,95.3h-10.4l2.9-22.6h10.4L435.6,95.3 M466.7,95.2h-9.2v-8.1h45.1v8.1h-19.4c-1.3,13.8,6.7,19.4,16.4,19.2v4.6
|
||||
c-19.8,1.8-27.2-10.9-28.6-15.7C468.8,95.6,468.6,95.2,466.7,95.2z M502.1,73v7.9h-44.5V73H502.1 M27.5,5.2h12v7H56v8.2H39.5v33.4
|
||||
h16.3v5H8v-5l6.4-27.7H24V29l-5.4,24.8h9V20.4H11v-8.2h16.5V5.2 M51.7,51.6c-6.2-5.1-9.4-13.6-9.4-25.7L52,26
|
||||
c-0.1,11.5,1.2,18.3,3.8,20.5l0.1,5.1H51.7z M94,41.7h-5.3c-12.6,0-15.1-13.3-15.1-16.3v-16h44.8V18H85.6
|
||||
c-0.5,11.7,0.5,18.5,7.4,18.3V24.2h13.2v12.5c0,7.5,4.1,12,12.3,13.5v4.3C107.9,54.5,99.7,50.3,94,41.7 M137.3,51h30.2l-22.8-11
|
||||
v-5.8H160c2.2,0,3.9-0.6,5-1.8s1.7-2.2,1.7-3v-11c0-1.3-0.3-2.6-1.6-3.6c-1.3-0.9-3.3-1.2-5.1-1.2h-6.4c-6.2,0-7.3,3.3-8.6,4.8h-7.6
|
||||
c1.2-7.2,6.2-10.8,15.1-10.8h15.1c4.1,0,7.6,1.1,10.6,3.2s4.5,4.7,4.5,7.6v10.9c0,2.5-1.4,4.9-4.3,7.3s-6.5,3.6-10.8,3.6H160
|
||||
L182.6,51v5.4h-45.4L137.3,51L137.3,51 M201.3,4.5h45v5.3h-16.6v8.3h17v20h-11.8V26.5h-21v11.3c0,7.9,4.2,13.1,12.8,15.6
|
||||
c0,0,5.2,1.3,12.8,1.3v4.8c-16,0-27.2-3.7-33.6-11.2c-2.6-3.2-4.1-7-4.6-11.4V18h17.1V9.7h-17.1V4.5 M329.6,4.5h45v4.8h-5.4v8.2h5.4
|
||||
v9.4h-5.4v21.5c0,6.6-2.8,11.1-8.5,11.1h-31.4v-8.9H352c4.1,0,6.1-2.9,6-8.7v-15h-15.8c0,0-0.2,1.1-0.2,2.5
|
||||
c-0.1,6.4,2.6,10.6,7.7,11.6v3.7c-13.9,1.2-20.1-6.7-20.1-18.5v-8.7H358V9.3h-28.4V4.5 M487.7,51.1h-15.5V40h15.5V51.1z M487.7,24
|
||||
h-15.5V12.9h15.5v11V24 M419.9,26.7H412V7.9h7.9V26.7z M419.9,56.2H412V34.6h7.9V56.2z M492.5,265.5v9.1c0.7,5.4,5.3,13.6,10,14.4
|
||||
v4.4c-6.2,1.5-13.2-3.5-18.5-10.7h-5.5c-0.9,12.5,1.4,31.1,20,27.6v4.7c-4.2,0.5-36.5,5.1-32.8-32.3h-8.3V274h23.2v-8.5h-23.1v-5
|
||||
h45.1v5H492.5z M31.9,271.3L31.9,271.3l-22.2,0.1v-6.6h43.9v6.4h-8.4v8.7h9.2v8.2h-9.2v11.1c0,5.1-2.7,12.1-8.4,12.1H9.7v-8.4h19
|
||||
c2.2,0,4.6-2.8,4.6-5.1v-8.5c-0.1-1.2-0.7-1.6-1.4-1.6H9.7v-8.1h22.2c1.1-0.2,1.4-0.8,1.4-1.8v-5.1
|
||||
C33.3,271.8,32.5,271.3,31.9,271.3 M116.3,275.1H102v24.7h16.7v8.9H73.3v-8.9H90v-24.7H75.5v-7.8h40.8V275.1 M158.5,298.2
|
||||
c-14.7,0.5-23-12.4-23.1-30.9H165l0.4-3.8h12.4l-0.5,3.8h7.1v8.6h-8.1l-3.8,31.7h11.9v5H140v-5h20.7l3.3-31.7h-14.9
|
||||
c0,8,3.2,14,9.4,18.2V298.2 M219.7,270.9l0.8-7.2h12.6l-0.9,7.2h14.4v8.1h-15.5l-1.7,12.6h17.1v8.1h-18.1l-1.6,12.6h-12.6l1.6-12.6
|
||||
h-14.5v-8.1h15.6l1.7-12.6h-17.2v-8.1H219.7 M265.3,260.5L265.3,260.5l0-0.2h45.4v5.2h-25v8.4h23.4v8.3h-18.6
|
||||
c0.2,5,1.2,9.7,3.1,14.1c3.4,7.6,8.8,12.3,16.4,14v4.5c-3.2,0.1-6.3-0.4-9.2-1.3c-7-2.4-12.4-7.2-16.2-14.3l-1.4,16.1h-11.5v-14.2
|
||||
c0.8-2.2,1.4-8.5,1.8-18.7h-8.2v-8.3h8.2v-8.4h-8.2V260.5 M438.5,275.2c-3.8,4.5-7.5,10-10.8,16.5l-2.1,4.1l-1.9,4.1v12.4h-15.6
|
||||
v-12.6c0-3,5-11.1,15-24.5v-5.9h-29.7v-5.6h45.1V275.2 M364.7,279.1c-0.8,16.3,3.1,28.3,9.8,28.7v4.6h-2.8
|
||||
c-7.7-1.7-19.8-9.1-19.8-33.3h-8.8c-1.2,0-2.4,1.3-2.4,2.9v19.9c0,1.7,1,2.6,2.4,2.6h6.8v7.9h-11.6c-4.8,0-8.8-3.4-8.8-9.2v-32h22.4
|
||||
v-7.5h12.7v7.5h7.8v7.9L364.7,279.1z M401.6,335v14.3h28.8V335H401.6z M430.4,369v-14.3h-28.8V369H430.4 M478.8,179l1,0.2h0.2
|
||||
c4.8-0.4,7.2-3.2,7.2-8.2v-17.9l-12.9,23.2c0.8,1.1,2,1.9,3.6,2.4L478.8,179 M480.2,141.6h-0.7c-4.6,0.1-6.9,2.6-6.9,7.5v17.7
|
||||
l12.4-23.6C483.8,142.1,482.2,141.5,480.2,141.6 M81.2,416h21.6v-19.8L81.2,416 M352.2,397.5h-0.7c-4.7,0.1-7,2.6-7,7.7l0.1,5.5
|
||||
c0,3.3,1.2,5.7,3.6,7.1c1.1,0.7,2.2,1.1,3.6,1.1h0.3c4.9-0.5,7.2-3.2,7.1-8.2v-5.5c0-3.4-1.2-5.6-3.5-6.7L352.2,397.5 M416.2,419
|
||||
h-0.7c-4.6,0.1-6.9,2.7-6.9,7.6c0,5.1,2.4,7.8,7.2,8.2h0.2c4.8-0.4,7.2-3.2,7.2-8.2C423.3,421.6,420.9,419.1,416.2,419 M416.2,397.4
|
||||
h-0.7c-4.6,0.1-6.9,2.7-6.9,7.6s2.4,7.7,7.2,8.2h0.2c4.8-0.6,7.2-3.3,7.2-8.2C423.3,400,420.9,397.5,416.2,397.4 M30.8,499l1,0.2H32
|
||||
c4.8-0.4,7.2-3.2,7.2-8.2v-17.9l-12.9,23.2c0.8,1.1,2,1.9,3.6,2.4L30.8,499 M32.2,461.6h-0.7c-4.6,0.1-6.9,2.6-6.9,7.5v17.7
|
||||
L37,463.2C35.8,462.1,34.2,461.5,32.2,461.6z"/>
|
||||
<path d="M13.8,15.5v-3h17.1L51,51.2H30.9v-2.9H39L27.8,26.7c-3,0.5-4.4,3.8-4.4,6v17.7L13,60.8V38.5c0-3.6,0.7-6.7,2.3-9.3
|
||||
c1.3-2.2,4.6-3.3,9.5-3.3l2.5,0.1l-5.4-10.5H13.8z M81.5,15.5h-3v-3h13.4v17.9h1.5c4.7,0,9.6-1,9.6-6.7c0-2-0.7-3.6-2.1-4.6
|
||||
c-2.5-0.4-3.8-1.5-3.8-3.2c0-1.5,2.2-3.4,5.2-3.4c4.6,0,9.6,5,9.6,9.6v1.5c0,3.2-1.7,6.2-4.9,7.9c4.5,1.7,6.4,4.8,6.4,9.3
|
||||
c0,6.6-4.8,10.3-13.4,10.3H81.5V15.5z M91.9,33.3v15c3.5-0.1,6.1-0.2,8.2-0.7c2-0.4,3-2.9,3-7.5c0-4-1.2-6.1-3.6-6.4
|
||||
c-2.3-0.2-4.4-0.4-6.1-0.4H91.9z M144,15.5v-3h17.1l20.1,38.6h-25.3c-5.9,0-10.5-1.7-13.4-4.6c-2.4-2.4-3.6-5.6-3.6-8.7
|
||||
c0-3.2,1.2-6.4,3.7-8.8c2.8-2.8,7.4-4.5,13.4-4.5h0.9l-4.6-9H144z M169.2,48.3l-10.8-20.8h-1.7c-0.7,0-2.6,0.9-4.1,2.5
|
||||
c-2.2,2.2-3.3,5.1-3.3,8c0,2.9,1.1,5.7,3.3,8c1.5,1.5,3.4,2.4,4.1,2.4H169.2z M238.8,30.4c2,0,3.7,1.1,3.7,2.5
|
||||
c0,1.4-1.7,2.6-3.7,2.6c-3,0-4-2.2-8-2.2h-15.8c0.5,10.9,5.3,16.1,10.3,16.1c2.8,0,5.6-1.8,7.7-4.9c-0.1-0.4-0.1-0.7-0.1-0.9
|
||||
c0-2,2.2-3.6,5.2-3.6c2.9,0,5.2,1.5,5.2,3.7c0,2.7-4.9,4.9-7,5.9c-3.4,1.5-7,2.3-10.9,2.3c-13.6,0-20.7-10-20.7-20.1
|
||||
c0-4.9,1.7-9.7,4.9-13.5c4.1-4.6,10-6.6,16-6.6c3.8,0,7.5,0.8,10.7,2.2c5.3,2.4,7,4.5,7,6.1c0,2.2-3.1,3.5-5.2,3.5
|
||||
c-2.9,0-5.2-1.7-5.2-3.7c0-0.2,0.1-0.5,0.1-0.8c-2.2-3.2-4.9-4.8-7.6-4.8c-5,0-9.8,5.4-10.3,16.1H238.8z M283.9,12.5h16.3
|
||||
c2.9,0,5.2,1.5,5.2,3.7c0,2-2.3,3.7-5.2,3.7c-2.9,0-5.2-1.7-5.2-3.7c0-0.2,0.1-0.5,0.1-0.7h-11.3v19.3h16.3c2.9,0,5.2,1.5,5.2,3.7
|
||||
c0,2-2.3,3.7-5.2,3.7c-2.8,0-5.2-2.6-5.2-3.7c0-0.7,0-0.7,0.1-0.7l0.1,0.1v-0.1h-11.3v12.6l-10.4,10.4V8.3h-3V5.3h13.4V12.5z
|
||||
M363.5,12.5c2.9,0,5.2,1.7,5.2,3.8c0,2-2.4,3.6-5.2,3.6c-2.7,0-5.2-2.4-5.2-3.6v-0.6c0,0,0.1-0.1,0.1-0.2h-9.8v32.8h3v2.9h-13.4
|
||||
V15.5h-2.9v-3H363.5z M396.7,8.2h-3V5.3h13.4v7.2c4-0.1,7.4-0.2,10.4-0.2c6.4,0,13.9,1.4,16.4,7.4c0.9,2.3,1.4,5.4,1.4,9.3v19.4h3
|
||||
v2.9h-13.4V28.9c0-8.6-2-11.6-5.7-13.2c-0.5-0.2-1.9-0.2-4.1-0.2h-8v32.8h2.9v2.9h-13.3V12.5V8.2z M485.2,48.3h2.9v2.9h-13.4V15.5
|
||||
h-2.9v-3h13.4V48.3z M46,87.7h-0.3c-2.3-0.2-4.9-1.5-4.9-3.8c0-0.2,0.1-0.5,0.2-0.8c-2.2-3.2-4.7-4.8-7.4-4.8
|
||||
c-6.4,0-10.1,5.7-10.6,16.1v2.9c0.4,10.3,4.1,16.1,10.6,16.1c2.7,0,5.1-1.5,7.2-4.7V95.9h10.5v7.7c0,11.4-0.8,7.7-14.2,21.1
|
||||
l-0.7-0.7c4.4-4.4,4.5-1.4,4.5-9.1c-2.5,0.7-5,1-7.5,1c-5.5,0-11.6-1.8-15.8-6.6c-3.3-3.8-4.9-8.3-4.9-13.5
|
||||
c0-11.1,8.4-20.1,20.7-20.1c5.8,0,9.5,1.2,15.1,4.6c1.8,1.2,2.7,2.3,2.7,3.5C51.2,86,48.8,87.7,46,87.7z M90.4,112.3h3v2.9H80V79.5
|
||||
h-2.9v-3h13.4v18.1c1.5,0,4.1-2.2,5.1-3.2c1.9-1.9,4-5.1,4-8.6c0-1.5-0.9-1.2-0.9-3.3c0-1.5,2.7-3.7,5.4-3.7c4.6,0,5.9,2.9,5.9,7
|
||||
c0,7.1-5.7,11.6-10.9,13.4l15.9,18.9h-10.6L90.4,98.7V112.3z M148.9,115.2h-12.7v-2.9h3.7l7.4-14.3c2.8-5.5,4.4-7.9,10.6-8.2
|
||||
l-5.4-10.3h-8.2v-3h17.1l18.6,35.7h3.6v2.9h-12.7C161.9,96.9,160,94.3,160,93.8L148.9,115.2z M215.1,112.3h3v2.9h-13.4V79.5h-2.9v-3
|
||||
h13.4v4.6l8.9,11.3l9-11.3v-1.5h-3v-3h13.4v35.7h3v2.9h-13.4v-27l-9,11.3l-8.9-11.3V112.3z M279.1,112.3h3v2.9h-13.4V79.5h-2.9v-3
|
||||
h13.4v4.6l17.9,22.5V79.5h-3v-3h13.4v35.7h3v2.9h-13.4v-4.5l-17.9-22.5V112.3z M337.3,118.1l10.4-3.9c-9.3-4.5-15.7-9.6-15.7-19.1
|
||||
c0-11.1,9-19.4,20-19.4s20,8.2,20,19.4c0,9.4-6.5,14.6-15.6,19l10.5,4l-1.1,3.7c-4.9-2-9.5-3.8-13.9-5.7c-4.4,1.9-9,3.6-14,5.7
|
||||
L337.3,118.1z M362.4,95.1c0-9.6-4.7-17-10.4-16.8c-5.7-0.2-10.4,7.2-10.4,16.8c0,9.3,3.8,13.8,10.4,17.1
|
||||
C358.7,108.9,362.4,104.5,362.4,95.1z M407.1,112.3h3v2.9h-13.4V79.5h-2.9v-3h41.6v35.7h3v2.9h-13.4V79.5h-17.9V112.3z M499.3,112.3
|
||||
h3v2.9h-9.4c-4.7,0-9.6,0.4-15.3,0.4c-6.1,0-13-1.9-15.5-7.5c-1-2.2-1.5-5.3-1.5-9.3V79.5h-2.9v-3h13.4v22.3
|
||||
c0,12.2,4,13.6,10.1,13.6c2.2,0,4.7-0.2,7.7-0.2V79.5h-3v-3h13.4V112.3z M16,143.5h-3v-3h13.4v17.9c2.3,0,4.7-0.3,7.4-1.1
|
||||
c2.5-0.7,3.8-2.7,3.8-5.9c-0.1-1.9-0.8-3.3-2.1-4.3c-2.5-0.4-3.8-1.5-3.8-3.2c0-1.5,2.2-3.4,5.2-3.4c4.6,0,9.6,5,9.6,9.6
|
||||
c0,5.2-2.2,10.1-10.6,10.9l15.1,18.1H40.3l-13.8-16.5v15.7L16,188.8V143.5z M97.1,142.5c-4.5,0-7.8,2.3-7.8,5.3c0,2.4,2,3.8,3.8,4.6
|
||||
c7.3,3.5,18.4,4.7,18.4,15.3c0,7.2-7.1,13-15.8,13c-7,0-15.2-4.3-15.2-9.3c0-3.2,3-4.6,5.7-4.6c2.4,0,4.7,1.2,4.7,3.6
|
||||
c0,1.5-0.9,2.5-2.7,3.2c1.1,2.8,3.6,4.2,7.5,4.2c4.3,0,7.8-2.7,7.8-5.9c0-5.7-12.9-9.6-17.1-12.3c-3-1.9-4.5-4.9-4.5-8.2
|
||||
c0-6.2,6.6-11.5,15.2-11.5c4,0,14.5,2.8,14.5,8.3c0,2-2.2,3.7-4.8,3.7s-4.8-1.7-4.8-3.7c0-1.2,0.6-2.2,1.9-3
|
||||
C102.4,143.4,100.1,142.5,97.1,142.5z M174.5,140.5c2.9,0,5.2,1.7,5.2,3.8c0,2-2.4,3.6-5.2,3.6c-2.7,0-5.2-2.4-5.2-3.6v-0.6
|
||||
c0.1,0,0.1-0.1,0.1-0.2h-3.8v32.8h3v2.9h-13.4v-35.7h-4.5c0.1,0.1,0.1,0.4,0.1,0.8c0,2-2.4,3.6-5.1,3.6c-2.9,0-5.3-1.6-5.3-3.6
|
||||
c0-2,2.3-3.8,5.3-3.8H174.5z M204.7,143.6h-3v-3h9.3c4.7,0,9.5-0.5,15-0.5c6.3,0,13.4,2,15.8,7.6c1,2.2,1.5,5.3,1.5,9.2v19.4h3v2.9
|
||||
h-13.4v-22.3c0-10.8-3.2-13.5-10.1-13.5c-1.9,0-4,0.1-7.7,0.1v32.8h3v2.9h-13.4V143.6z M290.6,165.4l11.4-21.9h-3.6v-3h11.9v3h-4.9
|
||||
L294,165.4v13l-10.4,10.3v-16.6l-14.9-28.6h-3v-3H282v3h-2.9L290.6,165.4z M346.8,160.6l-11.9-17.1h-3.6v-3h17.9v3h-2.7l6.2,8.9
|
||||
l6.2-8.9H355v-3h12.6v3H363l-8.4,12l14.5,20.8h3.6v2.9H355v-2.9h2.8l-8.8-12.6l-8.8,12.6h3.8v2.9h-12.7v-2.9h4.6L346.8,160.6z
|
||||
M404.2,143.5c-2,0-3.7-1.1-3.7-2.6c0-1.5,2-2.6,3.7-2.6c3.5,0,3.6,2.2,8.2,2.2H431l-19.4,35.7h17c2,0,3.8,1.1,3.8,2.5
|
||||
c0,1.5-2,2.6-3.8,2.6c-3.5,0-3.6-2.2-8.2-2.2h-20.9l19.3-35.7H404.2z M506.7,154.2c0,13.1-8.8,21-21.9,21.6v3.5l-10.4,10.4v-14
|
||||
c-13-1-21.1-8.5-21.1-22.2c0-6.1,3.8-16.2,11-16.2c2.7,0,5.3,1.2,5.3,2.9c0,2.1-1.9,1.6-2.8,3c-2.7,3.5-4.1,8.2-4.1,12.9
|
||||
c0,7.3,3.6,14.6,11.8,16.4V135h-2.9v-2.9h13.4v40.6c8.7-1.5,12.6-8.9,12.6-16.6c0-4.9-1.5-9.4-4.1-12.9c-0.8-1.2-2.8-1.1-2.8-3
|
||||
c0-1.7,2.5-2.9,5.3-2.9C503.1,137.4,506.7,147.6,506.7,154.2z M52.1,223.9c0,11.1-9.2,20-20.1,20c-10.9,0-20-9.1-20-20
|
||||
c0-10.9,9-20.1,20-20.1C42.9,203.8,52.1,212.9,52.1,223.9z M21.6,223.9c0,9.9,4.6,17.8,10.4,17.8c5.7,0,10.4-7.9,10.4-17.8
|
||||
c0-10-4.8-17.9-10.4-17.9S21.6,213.9,21.6,223.9z M36.4,223.9c0,2.5-2,4.5-4.5,4.5c-2.3,0-4.5-1.9-4.5-4.5c0-2.5,2.2-4.5,4.5-4.5
|
||||
C34.4,219.4,36.4,221.4,36.4,223.9z M101.1,212.1v37.7h3v2.9H90.7v-40.6l-8.7,8.8l-3-3L96,201l16.9,16.9l-3,3L101.1,212.1z
|
||||
M168.9,243.2c-3,0.2-6.2,0.2-9.5,0.2c-7.1,0-14.4-1-17.3-7.4c-0.9-2.1-1.4-5.2-1.4-9.3v-19.4h-3v-3h13.4v22.3
|
||||
c0,11.8,3.5,13.6,10,13.6c2.2,0,4.7-0.2,7.7-0.2v-32.8H166v-3h13.4v45.3h3v2.9h-13.4V243.2z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 15 KiB |
Reference in New Issue
Block a user