{"componentChunkName":"component---gatsby-theme-spaceout-src-templates-article-template-tsx","path":"/imagermachine","result":{"pageContext":{"article":{"id":"923998f8-d109-5d31-98d1-ffcca67d3530","slug":"/imagermachine","secret":false,"title":"Imagermachine","author":"Luke Celitan","date":"November 1st, 2021","dateForSEO":"2021-11-01T00:00:00.000Z","timeToRead":2,"excerpt":"Rewriting the sharpmachine to rust.","subscription":true,"body":"var _excluded = [\"components\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {\n  \"title\": \"Imagermachine\",\n  \"author\": \"Luke Celitan\",\n  \"date\": \"2021-11-01T00:00:00.000Z\",\n  \"hero\": \"./imagermachine.jpg\",\n  \"excerpt\": \"Rewriting the sharpmachine to rust.\",\n  \"category\": \"Project\",\n  \"tech\": [\"Rust\"]\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"div\", {\n    \"style\": {\n      \"display\": \"flex\",\n      \"justifyContent\": \"flex-start\",\n      \"gap\": \"10px\",\n      \"width\": \"100%\",\n      \"margin\": \"auto\",\n      \"maxWidth\": \"1150px\"\n    }\n  }, \"\\n  \", mdx(\"a\", {\n    parentName: \"div\",\n    \"href\": \"https://github.com/MassivDash/cargo-imagermachine\",\n    \"target\": \"_blank\"\n  }, \"\\n    \", mdx(\"img\", {\n    parentName: \"a\",\n    \"alt\": \"Version\",\n    \"src\": \"https://img.shields.io/badge/version-0.2.0-blue.svg?cacheSeconds=2592000\"\n  }), \"\\n  \"), \"\\n  \", mdx(\"a\", {\n    parentName: \"div\",\n    \"href\": \"https://github.com/MassivDash/cargo-imagermachine\",\n    \"target\": \"_blank\"\n  }, \"\\n    \", mdx(\"img\", {\n    parentName: \"a\",\n    \"alt\": \"Documentation\",\n    \"src\": \"https://img.shields.io/badge/documentation-yes-brightgreen.svg\"\n  }), \"\\n  \"), \"\\n  \", mdx(\"a\", {\n    parentName: \"div\",\n    \"href\": \"#\",\n    \"target\": \"_blank\"\n  }, \"\\n    \", mdx(\"img\", {\n    parentName: \"a\",\n    \"alt\": \"License: MIT\",\n    \"src\": \"https://img.shields.io/badge/License-MIT-yellow.svg\"\n  }), \"\\n  \"), \"\\n  \", mdx(\"a\", {\n    parentName: \"div\",\n    \"href\": \"https://twitter.com/spaceoutPL\",\n    \"target\": \"_blank\"\n  }, \"\\n    \", mdx(\"img\", {\n    parentName: \"a\",\n    \"alt\": \"Twitter: spaceoutPL\",\n    \"src\": \"https://img.shields.io/twitter/follow/spaceoutPL.svg?style=social\"\n  }), \"\\n  \")), mdx(\"h2\", {\n    \"id\": \"introduction\"\n  }, \"Introduction\"), mdx(\"p\", null, \"In recent times I have decided to start learing a new programming language. Out\\nof all the possibilities I have found Rust to be the most suitable. Rust is a\\nsafe, fast, and memory safe language for writing software, I see a lot of\\npotential in Rust esspeciall in building software for future IoT devices. Rust\\nis also a heavily typed proggraming language which makes it easy to write code\\nthat is more readable and easy to debug.\"), mdx(\"p\", null, \"I have embarked on a mission to build something useful with it, the idea for\\nrewritting my previous optimization intercative cli build with typescript to\\nrust came as an obvious choice for me.\"), mdx(\"h2\", {\n    \"id\": \"cargo-imagermachine\"\n  }, \"Cargo-imagermachine\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Rust cli for batch optimizing images\")), mdx(\"p\", null, \"Cargo-imagermachine was designed as a subtool of cargo package manger, so user\\ncan run the interactive cli from the command line inside folders that contain\\npictures.\"), mdx(\"p\", null, \"Imagermachine uses turbo-jpeg library for jpeg files optimization and oxi png\\nfor png images. You must install the turbo-jpeg yourself as the cli uses only\\nthe bindings to the turbo-jpeg library. Installation guide for respective\\nsystems below.\"), mdx(\"p\", null, \"Imagermachine can:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Optimize png and jpg images.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Resize and crop images.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Rename the transformed files based on provided\", mdx(\"em\", {\n    parentName: \"li\"\n  }, \"name\"), \"(index).ext\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Convert files to Webp\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"todo: set optimalisation custom config\")), mdx(\"h3\", {\n    \"id\": \"dependencies\"\n  }, \"Dependencies\"), mdx(\"p\", null, \"So far the cli has been tested on unix systems (Debian, Mac).\", mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"Before using cargo-imagermachine you must install\"), mdx(\"h4\", {\n    \"id\": \"rust\"\n  }, \"Rust\"), mdx(\"p\", null, \"Follow the official guideline for installing rust on your system\\n\", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://www.rust-lang.org/tools/install\",\n    \"target\": \"_blank\",\n    \"rel\": \"noreferrer\"\n  }, \"https://www.rust-lang.org/tools/install\")), mdx(\"h4\", {\n    \"id\": \"libturbojpeg\"\n  }, \"Libturbojpeg\"), mdx(\"p\", null, \"Offical webiste and documentation \\uD83D\\uDC49 \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://www.libjpeg-turbo.org/\",\n    \"target\": \"_blank\",\n    \"rel\": \"noreferrer\"\n  }, \"https://www.libjpeg-turbo.org/\")), mdx(\"p\", null, mdx(\"em\", {\n    parentName: \"p\"\n  }, \"Debian\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"sudo apt-get install libturbojpeg libturbojpeg0-dev\\n\")), mdx(\"p\", null, \"This should be enough to get started on Ubuntu\"), mdx(\"p\", null, mdx(\"em\", {\n    parentName: \"p\"\n  }, \"Mac\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"brew install jpeg-turbo\\n\")), mdx(\"p\", null, \"! Remember to copy all the export paths that brew will print out after\\ninstallation, I am using the following config in the cargo.toml file, pkg-config\\n(also via brew) installation is needed for this setup to work.\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-yml\"\n  }, \"turbojpeg = {version = \\\"0.4\\\", features = [\\\"image\\\", \\\"pkg-config\\\"]}\\n\")), mdx(\"p\", null, \"If you have troubles linking the cli to your libturbo, you can try to edit the\\ncargo.toml file and add feature flags into turbojpeg features array, for more\\nreference follow this\\n\", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://github.com/honzasp/rust-turbojpeg#requirements\",\n    \"target\": \"_blank\",\n    \"rel\": \"noreferrer\"\n  }, \"link\"), \".\"), mdx(\"p\", null, mdx(\"span\", {\n    parentName: \"p\",\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"3584px\"\n    }\n  }, \"\\n      \", mdx(\"span\", {\n    parentName: \"span\",\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"62.519999999999996%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAABYlAAAWJQFJUiTwAAADRElEQVQ4y12S62+TZRjGn7d9D33ftlvfHtZuq1tljLCyukGnAYK6GIMh4swQUAabyGBDk+qHRU1ISEwwxmR+wRMIRnSzgx26qjvRgYNMNMTNGg6dI1GnLtE/4+ezIov64cp1P19+z3UfRH5zmvzj51h89n2unTjN8NglsqOXGM1Ok8nmGB6ZZKA/Q3ZonMnsRSaHJpgaHGfi/JdMfpylcGGOwsmvuZ3qp/BiH+LbjcPMJ8/z89Yv6KppQTV1Ip4QftNHwLQp1b14NDeaqqKuSFPRdB2hCGLRan48meOnVJpC92csHJXAi4kMsxL4y5YJDoafxqcEaLKSxPQYIWeIBquBhJnAEAZCiP+oMhgh/2qaxaMynYQVgYPrxhjdMMLcQ1O0l7cS1iI86G2i0qikTCuj1lxL0rMJ02EWIYpQcChKsY76ysh3n70LlAkL3RJ4qirH2So5m7pZngnuplyPUONaQ5VRRcKqx1ZtGtwNq8B70CLQGyTfeZrFrj4KR2TL0kVvNMe70SkuVH/PzpJ9VOhhQmpIQmvYJJN5nB7WmbVFX00oHKvA+YOnWOjs59YhCT2cRhwLzXC8bJoPKufY7m2TibzEjBi1rlrWm+tlXV1834P8W1G5vOvPneHWgTQ32ge4uT+D6AnOkLKv0uO7zUajg2pXmC3ercU2k54kdVZdsY5LXwHHrXgxsVOolFtBrrV8Sr51hPmWcb5rnkW02RN02FO85LtJQu+guXQzXeEu2kMH2B9q4+GSbewN7qEzfIgWfwsvV6Q4EjmMx+GhzOVn5rFBrjdf5krjHNPxG4hWO8tT9jC7/Jdli/sQToHDoaKrBqZmyvvT/2lRQVW0Yq0rd0+owogyVvcNufsXGC2/Q+a+O4id/hF22EPs8I+ztmQXmiWw3JY8Yjl8VcJXPpBHrEiJ/ymkRugrLTDgXeYT3xLvlS4hHg2cYZv/Ix4JfE6N7wW8JWvwldTjlkuxjUZs5wP4HBuwHQkqHUmqFCnp5UqChONJ3laXOKH/RY+xzCtSoinQS2PgTeqDb1Dnl7LfIu7vJR54h0b7Q5q9X/GE+wrbravsdv3Aa9qvHFf/4Jj6O69LTzn/5Hl1mb3ab+zRlvgbfjrclJjPqf8AAAAASUVORK5CYII=')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  }), \"\\n  \", mdx(\"picture\", {\n    parentName: \"span\"\n  }, \"\\n          \", mdx(\"source\", {\n    parentName: \"picture\",\n    \"srcSet\": [\"/static/fd6625f4b12cb7ea9ed986f357ea0678/a3bc4/imagermachine.webp 2500w\", \"/static/fd6625f4b12cb7ea9ed986f357ea0678/4875e/imagermachine.webp 3584w\"],\n    \"sizes\": \"(max-width: 3584px) 100vw, 3584px\",\n    \"type\": \"image/webp\"\n  }), \"\\n          \", mdx(\"source\", {\n    parentName: \"picture\",\n    \"srcSet\": [\"/static/fd6625f4b12cb7ea9ed986f357ea0678/412e4/imagermachine.png 2500w\", \"/static/fd6625f4b12cb7ea9ed986f357ea0678/5d8bd/imagermachine.png 3584w\"],\n    \"sizes\": \"(max-width: 3584px) 100vw, 3584px\",\n    \"type\": \"image/png\"\n  }), \"\\n          \", mdx(\"img\", {\n    parentName: \"picture\",\n    \"className\": \"gatsby-resp-image-image\",\n    \"src\": \"/static/fd6625f4b12cb7ea9ed986f357ea0678/5d8bd/imagermachine.png\",\n    \"alt\": \"Screenshot of cargo-imagermachine\",\n    \"title\": \"Screenshot of cargo-imagermachine\",\n    \"loading\": \"lazy\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    }\n  }), \"\\n        \"), \"\\n    \")), mdx(\"h3\", {\n    \"id\": \"install\"\n  }, \"Install\"), mdx(\"p\", null, \"In order to install cargo-imagermachine on your computer, clone the project then\\nrun the following command from the project folder:\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-sh\"\n  }, \"cargo install --path .\\n\")), mdx(\"h3\", {\n    \"id\": \"usage\"\n  }, \"Usage\"), mdx(\"p\", null, \"If you followed the offical rust documentation and cargo / rustc is in scope,\\nnavigate to a input folder and run\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-sh\"\n  }, \"cargo imagermachine\\n\")), mdx(\"p\", null, \"Follow directions on the interactive cli to optimize, resize, rename the images.\"), mdx(\"h2\", {\n    \"id\": \"show-your-support\"\n  }, \"Show your support\"), mdx(\"p\", null, \"Give a \\u2B50\\uFE0F if this project helped you!\"));\n}\n;\nMDXContent.isMDXComponent = true;","tech":["Rust"],"category":"Project","appDescription":null,"hero":{"full":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGAABAAMBAAAAAAAAAAAAAAAAAAIEBQH/xAAWAQEBAQAAAAAAAAAAAAAAAAABAAL/2gAMAwEAAhADEAAAAdunGqa2lJHZAhX/xAAcEAACAgIDAAAAAAAAAAAAAAACAwABBBQREhP/2gAIAQEAAQUCIqGC0u89l2YEFWt66AsdfGsqayp//8QAFhEAAwAAAAAAAAAAAAAAAAAAAAES/9oACAEDAQE/AZZLKZTP/8QAFREBAQAAAAAAAAAAAAAAAAAAABH/2gAIAQIBAT8Bqoj/xAAgEAACAAUFAQAAAAAAAAAAAAAAAQIRISJBEBIxMoGh/9oACAEBAAY/AqlzW3RzipguYpxGV6cfTqf/xAAbEAEAAwEAAwAAAAAAAAAAAAABABExIWFx8P/aAAgBAQABPyEAtV5MC447BEsilJBXDLmSGFsDBuYp6I8xj4rP/9oADAMBAAIAAwAAABDjGIL/xAAWEQADAAAAAAAAAAAAAAAAAAAAAWH/2gAIAQMBAT8QiyLKsqz/xAAWEQADAAAAAAAAAAAAAAAAAAAAEVH/2gAIAQIBAT8QSiUSCQ//xAAfEAEAAwACAQUAAAAAAAAAAAABABEhQVExgaHB0fD/2gAIAQEAAT8QrhdxPdQQR7ZFU+OcgBBEse4iMIlDZvrHN0m62sxgHQNG1PaPd4cp8wyWsVq2fl90/9k=","aspectRatio":1,"src":"/static/ccb2f24dd0a50db4c75f3bf98b93190a/58fe7/imagermachine.jpg","srcSet":"/static/ccb2f24dd0a50db4c75f3bf98b93190a/e0f30/imagermachine.jpg 236w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/86afd/imagermachine.jpg 472w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/58fe7/imagermachine.jpg 944w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/0ff54/imagermachine.jpg 1200w","srcWebp":"/static/ccb2f24dd0a50db4c75f3bf98b93190a/99fbb/imagermachine.webp","srcSetWebp":"/static/ccb2f24dd0a50db4c75f3bf98b93190a/77392/imagermachine.webp 236w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/1f177/imagermachine.webp 472w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/99fbb/imagermachine.webp 944w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/9000d/imagermachine.webp 1200w","sizes":"(max-width: 944px) 100vw, 944px","tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='400'%20viewBox='0%200%20400%20400'%20preserveAspectRatio='none'%3e%3cpath%20d='M260%2051c-17%201-44%206-48%209-3%201-4%203-5%207-3%207-4%2024-2%2028l1%203h13l12%201c-1%202-8%203-20%203-9%200-12-1-20-4l-10-2a145%20145%200%2001-33%204l-2%201h2c2%200%202%200%201%201h-4l-1%201h8c3-2%2010-4%208-2h5l-3%202c-5%202-3%202%202%200%206-3%2010-3%204%200-4%202-7%207-5%209l1-1%206-6c1%200%200%202-2%203l-3%204h4c3%201%203%200%204-1%201-2%201-2%201%200s5%203%2015%203c5%200%205%200%205%203%200%202%200%202%204%202l4%201%201%201c2-2%201-3-3-3-3%200-4%200-4-2h37l5-3c5-3%2010-4%2010-3l-1%201v1l3-2%2010-1c5%200%206%200%204-1-4%200-4-1-3-1h9l-1%201%2015-4a313%20313%200%2000-52-5c0-2%204-3%2017-5%2012-2%2016-3%2019-5l2-1-4%206v1c3%200%204-2%206-10l4-7c1%200%206-6%206-8h-1l-1-2c1-4-1-4-2-1l-1-5v-9c-2%200-2%201-2%205v12l-2%207v-9c0-14-3-19-8-18l-5%201m-9%205l-6%205-3%203-3-3c-5-3-15-3-19%200l-3%201-3%201-1%202%202%201-2%201-3%201%201%201%202%201h-2c-1%200-3%201-3%203s3%201%203%200c1-1%201%201%201%205%200%205%200%206%203%207%202%201%202%201%202-1l2%202%201%204-1-6c0-6%204-17%209-20%208-3%2013-1%2015%208l2%206-1-6%201-6c1-1%201%200%201%201%200%202%200%202%201%201s1-1%201%201c-2%206-2%207-1%207l1-3c0-7%209-16%2015-14%202%200%202%200%201-1v-1l-1-1h-4c-3%200-3%200-2-1%203-2-1-1-6%201m-95%206l1%203c1%201%200%207-1%209-1%201%200%204%201%204l1-1c-2-2%202-1%2018%205l17%206V78l1-9-4-2-6-2-3-2h-1l-10-2c-13-3-14-3-14%201m-52%2055c-3%203-5%2012-5%2029l-1%2012c-2%201-14%200-13-2h-2c-1%201%202%207%203%206%202-1%201%201-1%204-2%202-1%203%202%201h1c0%202%207%201%209-1h1c-1%201%200%202%201%203v5h-1l-3%204-2%205%203%206c3%206%204%206%201-1l-1-4c1-1%206%201%207%203l1%202%202%201c1%201%200%201-2%203-6%204-6%204-10-4-3-6-4-7-6-7-1%200-2%200-1%202l-1%202v2l-11%201-11%201%202%202c4%201-5%2012-9%2011-1%200-2%200-1%201v4c-3%202-8%2012-8%2013v4c-1%203-5%204-5%201l-1%201c-1%203-2%203-2%202-2-3%202-11%206-11l1-1-2-1c-4%200-9%207-9%2015%200%206-2%207-4%202-1-2-1-2-1%200s6%209%208%209v6c-1%202-1%202%201%202l2%201h-3l-1%201%202%202c2%200%202%200%201%201-2%200-3%202-1%202v6c-2%207-1%2014%202%2018%202%203%203%204%203%202%200-3%201-3%203%201%201%202%201%202-1%202H0v75h77l-1%202%201%202%203-1-1-1c0-2%201-2%2011-2h11v4c0%203%200%203%201%201l1-1a432%20432%200%20002%206c1%202%201%202-1%202l-3%201%2010%203h2c1%202%2013%202%2013%201l6-2h5v-6c0-6%201-6%201-4%202%205%200%2018-2%2018l-1%201h1l2%201%207%202h6l3-6%203-8c0-2%201-2%208-2%2012%200%2031-3%2035-5%202-2%201-2-2-1l-6%202c-5%201-5%201-5-2l-1-4c-1-1%203-1%2017-1h19v3l3%203%205%202c5%203%2010%204%2026%202%209%200%2010%200%2017-5l8-5h120v-75h-60l-1-5-2-8-1-3%204-1c11-1%2020-18%2016-30-1-5-3-10-4-9l1%204c2%204%202%204%201%206h-2c0-8-10-11-15-5-3%202-3%204-3%208%200%203%200%204%201%203%200-5%201-7%202-7l7%207c0%202%200%202%201%200l4-3c2%200%202%200%202%203-2%204-8%209-8%205h-1l-2%201c-2%200-2%200-1%201l6%201c4-1%205%201%202%204h-3c0-2-2-3-5-3s-6-3-8-7c-1-3-1-3-2-2v2l1%203%203%205c3%203%202%204-2%201s-6-7-7-12l-1-4v4c0%202%200%203-1%202l-2-1c-1%201-1%200-1-1%200-2%200-2-1%200-1%201-1%201-1-1l-1-2c-2-2-1%202%201%206s2%205-1%202c-2-1-2-1-2%201%201%204%200%204-2%200-2-3-2-3-4-1s-5%203-7%201h-1c0%202%204%204%208%204l4%201c2%201-5%206-7%204l-1%201%202%203%201%202%201%202v-1c0-2%200-2%202-2s5%202%204%204l1%201v1h-3c-2-2-3-2-1%201s-8%208-11%206l-1%202c2%204-11%209-13%205l-1-1v1l-4%201c-6%200-6%200-3-7v-11c-2-9-3-10-6-5l-2%205-2%2010-1%208h-94v-8c0-14-3-19-11-19-3%200-5%200-4%201v2h3a4318%204318%200%2001-5%2015c2-5%202-3%201%204l-1%205H96v-2l-1-3c-1-2-2-2-2-1%200%203-5%203-8%201-2-2-3-1-1%201%203%202%202%204-1%204l-2-2-2-5c-2-4-1-5%202-2%202%203%203%201%200-1-2-4%205-6%208-3h1l-1-2-1-1-2-5c-5-8-6-9-4-11%201-3%201-3-2-7l-3-2v2l-2%202-2%204-10%205c-1%202-2%201-2-2%200-2%200-2-1%201%200%204-1%205-7%208l-6%205-2%204c-2%203-2%203-3%201-1-4-1-14%202-19l1-5c-2%201-2-2%200-3l1%202c0%201%201%201%203-1%204-4%206-5%2013-4s11%200%208-2c-4-1%200-3%204-2%209%203%2014%200%2017-10%201-5-1-16-3-14l-1-1c0-2%203-6%204-6l11-12%203-4c3%200%205-5%205-11l1-6%202-2%202-6c0-4%206-18%207-18l2%202%201%203v-3c-1-2%200-2%203-2%202%200%203%200%203%202s2%204%202%202l3%202c4%204%206%2010%207%2015l1%201%205%202%203%202c-2%200-5%203-5%204h2l6-2h5l-5%201c-4%200-4%201-4%204l-1%204c-1%201%201%207%203%207l2%204%203%203v-4%201l1%201h2l85%207c1-1-3-19-4-20l-20-2a2921%202921%200%2001-40-5c-5%200-7-2-7-5%200-1%208-1%2011%201h2l-2-3-8-2h14a453%20453%200%200040%202h5v-15l1-8c3%201%202%200-2-5l-2-3-1-1v1c0%202%200%202-3%202a2602%202602%200%2001-93-7l-3%206c0%207-2%208-1%201%200-3%200-4-1-2s-1%201-1-3l1-6v-1l-1-2h-1v9c1%207%200%208-1%209-4%204-6%201-7-6-1-5-1-6-4-6-2%200-2-1-2-3%200-3%200-3-1-1l-1%202h-4c-1%201-1%201-2-1-1-1-1%200-1%206%201%206%201%206-1%204-4-11%202-24%2011-23h3l-2-3c0-2-12-2-14%200m190%203l-12%206-5%202v1h-1v1l-1%201v1h-2v2l-1%201v1h-2v2l-3%203c-2%203-2%205-2%2020v17h-6l3%201%203%202%201%203c0%201%200%202-2%201l-1%201c0%203%200%204-2%204l-2-1h-3c-1-1-1-1-1%201s-2-3-2-8c0-3%200-3%203-3s2-2-1-2c-2%200-3-2-3-8-1-9-1-27%201-28l1-3v-3l-2%202-2%207c0%204%200%204-1%201%200-3-2-4-2-1-1%201-1%200-1-2%200-3%200-3%201-2s1%201%201-2v-3l-2%202-2%204c1%201%200%202-1%202l-2%201h2c2%200%202%201%202%2018%201%2021%201%2019%204%2036l3%2014a121%20121%200%2001-45-2l-25-1c-27-2-24-1-33-16-4-7-5-9-7-9l-4-2c-3-3-2-1%203%208%204%208%209%2013%2011%2013l1%201%201%201%203%204%205%205%204%202%201%201c1-1%2011%201%2012%203h2c0%203%204%209%207%2011l3%202-2%203-3%204v-5c-1-7-6-11-8-7h-5c-6-4-21-2-21%202h2c1-2%202-2%202-1h2c1-1%203-2%206-1h4l-2%203c-1%202-2%202-5%202l-5-2-2%202v5l1-3c0-2%201-2%203-2%203%201%205%204%204%205v1c2%200%202%201%202%204v5l-4-1-5-2-1%201-1%201h-1c0%202%2012%206%2017%205l1%202c1%201%201-2%201-6v-7c1%200%202%203%202%209%200%2011%200%2011%204%2012s7%200%208-3l1%205c1%2011%203%2015%204%207%201-3%201-3%201%201l-1%206c-2%200-1%202%201%202%201%200%202%200%201-1%200-2%200-2%203-1%205%201%207%202%204%202-2%200-3%200-2%201l3%201h5l5%201h1l2-1c2%200%205-4%208-9%201-5%201-5%205-4%203%200%204%200%205-3l1-5c0-1%200-2%201-1l1%203c0%204%202%204%203%200%201-2%201-2%203-1l1%204%201%201%204%201c3%200%203%200%204-5%201-4%203-6%205-5l-2%205c-3%205-4%207-2%205l10-1h8l2-4%203-4h-9l-9-1%203-1h5c3-4%205-21%203-22v-2c0-1-2-2-7-2-7-1-7-1-10%201-2%202-2%202-3%201-3-4-8%200-8%206l1-1c1-3%202-1%202%2010l-1%2014c-1%200-2-4-2-13%200-7%200-8-2-8-4%202-8-13-5-16%203-2%209-3%2013-2%203%201%205%201%208-1h5l3-4c3-4%209-9%2012-9l13-14c4-5%204-6%205-15a65%2065%200%20015-19c0-2%202-2%204-1l5%201c4%200%205%201%206%203l1%202c0-2%202%200%202%202h-1l-1%201%202%201%203%203c1%202%201%203-1%203l-1%202-1%205c-3%203-2%207%201%2014%203%206%204%207%208%205%203-1%203-15%201-15l-2-1%202-1c1%200%202%200%202-2v-5l-2%201-1%201-1%201v2c0%202%200%202-1%201h-1l2%204%201%202c-2%200-3-2-4-3l-1-2v2l1%205v2l-2-8v-2l1-1%203-3c4-3%205-4%203-9-2-4%201-5%203%200l2%204%203-3%201-4-1-2h1c1%202%202%201%204-1%202-3%202-3%200-3-3%201-5-4-5-12%200-6-3-19-5-21-1-2-5%202-6%206-1%203-1%204-3%203l-1%201%201%201v5c0%204%200%204-3%204-2-1-3-1-3-3-1-2-1-2-1%201s0%203-6%203l-7-1h-3l-2-2-1-1v-9c1-7%203-11%206-11l3-1-1-1c-2%201-2%200%200-3l4-2%202-1c0-2-3-1-12%202m-147%2025c-2%201-2%202-2%2011a226%20226%200%20011%2015h4c3%200%203%200%201%201l8-1%203%201-5%201h-4l5%201%206-1c0-2%202-1%202%201s3%201%204-1l1-2%201-5c0-4%200-5-2-4v-2c1-1%202-3%201-5l1-5c3-2-1-3-10-3l-10-2c-2-2-2-2-5%200m30%203c-1%201-2%202-2%205v13c-3%204%200%203%203-1%204-4%204-5%204-9s-2-11-2-7l-1-1h-2m161%2020c-2%205-3%207-2%208v5l-1%208c0%205-1%207-2%203l-1-5-1-3v16l-1%204c-2%200-1%202%201%203%203%200%203%200%203%203%200%202%200%203-5%204-6%202-8%203-6%204l2-1c3-3%207%200%207%207%200%203%200%203%204%201l6-1c1%200%202%200%202-2-1-1%200-2%201-2%203%200%203-2%203-8%200-5%200-5%202-4%207%202%2012-5%2012-18%201-8-3-16-6-16v1l-2%204-2%204%201-1c2-4%203-1%201%205-2%208-3%209-3%202v-3l-1%205c0%205-1%206-3%205-2%200-3-1-3-3-1-1-1-2-2-1l-1-1c0-1%200-2-1-1l-1-2h-1c-1%202-2%200-1-4l1-3c0%201%201%201%202-1%203-3%204-4%203-1%200%201%201%201%204-2%204-2%204-2%202-4-2-1-3-4-4-7l-3-5-4%207M70%20192l-4%207-3%205h5c4%200%206%200%207-2s2-2%202-1l2-1h-1c-2%201-1-1%201-5%203-3%203-6%201-3h-2l-1-1h-3c-1-1-3%200-4%201m-2%2016l-1%201h-8c-1-1-1%200-1%201l-3%202-1%201v2l-2%203-1%206-1%204h12l4%202v-4c0-4%202-12%204-12v-7c0-2-1-1-2%201m10%204l-2%201c-8-1-9%2021-1%2026%202%201%202%201%202-4l-2-8%201-3%201%202c0%203%205%208%208%208%202%200%205-2%205-4l-3%201c-3%201-5%201-5-1l1-1v-3c0-3%200-4%202-6%203-2%201-4-3-2-3%201-3%201-2-3l-1-4-1%201m130%204v3l31%202c10%200%207-2-3-2-5%200-5%200-3-1l3-1h-3c-18-1-22-2-24-3-2%200-2%200-1%202m-15%206h-5l-1%201%201%203%201-1%201%201h1l1%201%204%202%206-1%206-1%206-1-1-1c-2%200-2-1-2-3h-18m122%209l1%201v2c-1%200-2%200-3%202-2%202-3%202-5%201-3-1-3-1-5%202-4%205%200%2010%204%205h2l2-3%205-5c3-2%205-3%203-1v3h2l1-1v-4h-2c2-1-1-3-4-3-2%200-2%200-1%201m-66%205c-2%202-2%202-2%200l-1%201-2%205%201-1c1-2%202-2%207-2s7%200%208-2v1l-2%205c-1%202-1%202-2%200-2-4-10%200-10%205%200%203%201%204%208%204l5%201%202-7a120%20120%200%20012-11c-1%201-2%200-3-1-2-2-9-1-11%202m-57%2019c-1%203-1%205%201%205h1l6%201c11%200%2011%201%2012%208%201%205%201%205%201-3%200-6-1-8-2-8l-1-1-2-2h-16m-121%204l-1%201c-2-2-4%203-3%207%202%206%203%207%205%205%202-3%204-2%202%200l-1%202%202-2%207-3c4-2%204-2%200-7l-6-3-2-1-1-1-2%202m243%200c0%205%207%2012%209%2010l1%201v2l5%202c5%202%206%202%205-2-1-6-6-10-9-8h-1c0-1-2-3-5-4l-5-3v2m-119%208c0%203%200%204-1%203-1-4-2-2-2%202%201%204%201%204%209%205h7v-10l-1-1-2-1-6-2h-4v4m-142%205c-2%201-2%203-1%205l3%206h2l6-3%202-1c1%200%202%200%201-1v-1l-1-1-1-1c1-1%200-2-1-2h-2l-2-1c-3-2-4-3-6%200m258%208l-4%202-4%202-3%202h14c15%200%2015%200%2016-3%203-5-5-8-9-3l-2%201-3-3c-3-1-2-1-5%202'%20fill='%23fafafa'%20fill-rule='evenodd'/%3e%3c/svg%3e"},"regular":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGAABAAMBAAAAAAAAAAAAAAAAAAIEBQH/xAAWAQEBAQAAAAAAAAAAAAAAAAABAAL/2gAMAwEAAhADEAAAAdunGqa2lJHZAhX/xAAcEAACAgIDAAAAAAAAAAAAAAACAwABBBQREhP/2gAIAQEAAQUCIqGC0u89l2YEFWt66AsdfGsqayp//8QAFhEAAwAAAAAAAAAAAAAAAAAAAAES/9oACAEDAQE/AZZLKZTP/8QAFREBAQAAAAAAAAAAAAAAAAAAABH/2gAIAQIBAT8Bqoj/xAAgEAACAAUFAQAAAAAAAAAAAAAAAQIRISJBEBIxMoGh/9oACAEBAAY/AqlzW3RzipguYpxGV6cfTqf/xAAbEAEAAwEAAwAAAAAAAAAAAAABABExIWFx8P/aAAgBAQABPyEAtV5MC447BEsilJBXDLmSGFsDBuYp6I8xj4rP/9oADAMBAAIAAwAAABDjGIL/xAAWEQADAAAAAAAAAAAAAAAAAAAAAWH/2gAIAQMBAT8QiyLKsqz/xAAWEQADAAAAAAAAAAAAAAAAAAAAEVH/2gAIAQIBAT8QSiUSCQ//xAAfEAEAAwACAQUAAAAAAAAAAAABABEhQVExgaHB0fD/2gAIAQEAAT8QrhdxPdQQR7ZFU+OcgBBEse4iMIlDZvrHN0m62sxgHQNG1PaPd4cp8wyWsVq2fl90/9k=","aspectRatio":1,"src":"/static/ccb2f24dd0a50db4c75f3bf98b93190a/1dc0b/imagermachine.jpg","srcSet":"/static/ccb2f24dd0a50db4c75f3bf98b93190a/3a5ce/imagermachine.jpg 163w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/05730/imagermachine.jpg 327w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/1dc0b/imagermachine.jpg 653w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/f72c7/imagermachine.jpg 980w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/0ff54/imagermachine.jpg 1200w","srcWebp":"/static/ccb2f24dd0a50db4c75f3bf98b93190a/0acdf/imagermachine.webp","srcSetWebp":"/static/ccb2f24dd0a50db4c75f3bf98b93190a/ac59e/imagermachine.webp 163w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/7660b/imagermachine.webp 327w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/0acdf/imagermachine.webp 653w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/75470/imagermachine.webp 980w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/9000d/imagermachine.webp 1200w","sizes":"(max-width: 653px) 100vw, 653px","tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='400'%20viewBox='0%200%20400%20400'%20preserveAspectRatio='none'%3e%3cpath%20d='M260%2051c-17%201-44%206-48%209-3%201-4%203-5%207-3%207-4%2024-2%2028l1%203h13l12%201c-1%202-8%203-20%203-9%200-12-1-20-4l-10-2a145%20145%200%2001-33%204l-2%201h2c2%200%202%200%201%201h-4l-1%201h8c3-2%2010-4%208-2h5l-3%202c-5%202-3%202%202%200%206-3%2010-3%204%200-4%202-7%207-5%209l1-1%206-6c1%200%200%202-2%203l-3%204h4c3%201%203%200%204-1%201-2%201-2%201%200s5%203%2015%203c5%200%205%200%205%203%200%202%200%202%204%202l4%201%201%201c2-2%201-3-3-3-3%200-4%200-4-2h37l5-3c5-3%2010-4%2010-3l-1%201v1l3-2%2010-1c5%200%206%200%204-1-4%200-4-1-3-1h9l-1%201%2015-4a313%20313%200%2000-52-5c0-2%204-3%2017-5%2012-2%2016-3%2019-5l2-1-4%206v1c3%200%204-2%206-10l4-7c1%200%206-6%206-8h-1l-1-2c1-4-1-4-2-1l-1-5v-9c-2%200-2%201-2%205v12l-2%207v-9c0-14-3-19-8-18l-5%201m-9%205l-6%205-3%203-3-3c-5-3-15-3-19%200l-3%201-3%201-1%202%202%201-2%201-3%201%201%201%202%201h-2c-1%200-3%201-3%203s3%201%203%200c1-1%201%201%201%205%200%205%200%206%203%207%202%201%202%201%202-1l2%202%201%204-1-6c0-6%204-17%209-20%208-3%2013-1%2015%208l2%206-1-6%201-6c1-1%201%200%201%201%200%202%200%202%201%201s1-1%201%201c-2%206-2%207-1%207l1-3c0-7%209-16%2015-14%202%200%202%200%201-1v-1l-1-1h-4c-3%200-3%200-2-1%203-2-1-1-6%201m-95%206l1%203c1%201%200%207-1%209-1%201%200%204%201%204l1-1c-2-2%202-1%2018%205l17%206V78l1-9-4-2-6-2-3-2h-1l-10-2c-13-3-14-3-14%201m-52%2055c-3%203-5%2012-5%2029l-1%2012c-2%201-14%200-13-2h-2c-1%201%202%207%203%206%202-1%201%201-1%204-2%202-1%203%202%201h1c0%202%207%201%209-1h1c-1%201%200%202%201%203v5h-1l-3%204-2%205%203%206c3%206%204%206%201-1l-1-4c1-1%206%201%207%203l1%202%202%201c1%201%200%201-2%203-6%204-6%204-10-4-3-6-4-7-6-7-1%200-2%200-1%202l-1%202v2l-11%201-11%201%202%202c4%201-5%2012-9%2011-1%200-2%200-1%201v4c-3%202-8%2012-8%2013v4c-1%203-5%204-5%201l-1%201c-1%203-2%203-2%202-2-3%202-11%206-11l1-1-2-1c-4%200-9%207-9%2015%200%206-2%207-4%202-1-2-1-2-1%200s6%209%208%209v6c-1%202-1%202%201%202l2%201h-3l-1%201%202%202c2%200%202%200%201%201-2%200-3%202-1%202v6c-2%207-1%2014%202%2018%202%203%203%204%203%202%200-3%201-3%203%201%201%202%201%202-1%202H0v75h77l-1%202%201%202%203-1-1-1c0-2%201-2%2011-2h11v4c0%203%200%203%201%201l1-1a432%20432%200%20002%206c1%202%201%202-1%202l-3%201%2010%203h2c1%202%2013%202%2013%201l6-2h5v-6c0-6%201-6%201-4%202%205%200%2018-2%2018l-1%201h1l2%201%207%202h6l3-6%203-8c0-2%201-2%208-2%2012%200%2031-3%2035-5%202-2%201-2-2-1l-6%202c-5%201-5%201-5-2l-1-4c-1-1%203-1%2017-1h19v3l3%203%205%202c5%203%2010%204%2026%202%209%200%2010%200%2017-5l8-5h120v-75h-60l-1-5-2-8-1-3%204-1c11-1%2020-18%2016-30-1-5-3-10-4-9l1%204c2%204%202%204%201%206h-2c0-8-10-11-15-5-3%202-3%204-3%208%200%203%200%204%201%203%200-5%201-7%202-7l7%207c0%202%200%202%201%200l4-3c2%200%202%200%202%203-2%204-8%209-8%205h-1l-2%201c-2%200-2%200-1%201l6%201c4-1%205%201%202%204h-3c0-2-2-3-5-3s-6-3-8-7c-1-3-1-3-2-2v2l1%203%203%205c3%203%202%204-2%201s-6-7-7-12l-1-4v4c0%202%200%203-1%202l-2-1c-1%201-1%200-1-1%200-2%200-2-1%200-1%201-1%201-1-1l-1-2c-2-2-1%202%201%206s2%205-1%202c-2-1-2-1-2%201%201%204%200%204-2%200-2-3-2-3-4-1s-5%203-7%201h-1c0%202%204%204%208%204l4%201c2%201-5%206-7%204l-1%201%202%203%201%202%201%202v-1c0-2%200-2%202-2s5%202%204%204l1%201v1h-3c-2-2-3-2-1%201s-8%208-11%206l-1%202c2%204-11%209-13%205l-1-1v1l-4%201c-6%200-6%200-3-7v-11c-2-9-3-10-6-5l-2%205-2%2010-1%208h-94v-8c0-14-3-19-11-19-3%200-5%200-4%201v2h3a4318%204318%200%2001-5%2015c2-5%202-3%201%204l-1%205H96v-2l-1-3c-1-2-2-2-2-1%200%203-5%203-8%201-2-2-3-1-1%201%203%202%202%204-1%204l-2-2-2-5c-2-4-1-5%202-2%202%203%203%201%200-1-2-4%205-6%208-3h1l-1-2-1-1-2-5c-5-8-6-9-4-11%201-3%201-3-2-7l-3-2v2l-2%202-2%204-10%205c-1%202-2%201-2-2%200-2%200-2-1%201%200%204-1%205-7%208l-6%205-2%204c-2%203-2%203-3%201-1-4-1-14%202-19l1-5c-2%201-2-2%200-3l1%202c0%201%201%201%203-1%204-4%206-5%2013-4s11%200%208-2c-4-1%200-3%204-2%209%203%2014%200%2017-10%201-5-1-16-3-14l-1-1c0-2%203-6%204-6l11-12%203-4c3%200%205-5%205-11l1-6%202-2%202-6c0-4%206-18%207-18l2%202%201%203v-3c-1-2%200-2%203-2%202%200%203%200%203%202s2%204%202%202l3%202c4%204%206%2010%207%2015l1%201%205%202%203%202c-2%200-5%203-5%204h2l6-2h5l-5%201c-4%200-4%201-4%204l-1%204c-1%201%201%207%203%207l2%204%203%203v-4%201l1%201h2l85%207c1-1-3-19-4-20l-20-2a2921%202921%200%2001-40-5c-5%200-7-2-7-5%200-1%208-1%2011%201h2l-2-3-8-2h14a453%20453%200%200040%202h5v-15l1-8c3%201%202%200-2-5l-2-3-1-1v1c0%202%200%202-3%202a2602%202602%200%2001-93-7l-3%206c0%207-2%208-1%201%200-3%200-4-1-2s-1%201-1-3l1-6v-1l-1-2h-1v9c1%207%200%208-1%209-4%204-6%201-7-6-1-5-1-6-4-6-2%200-2-1-2-3%200-3%200-3-1-1l-1%202h-4c-1%201-1%201-2-1-1-1-1%200-1%206%201%206%201%206-1%204-4-11%202-24%2011-23h3l-2-3c0-2-12-2-14%200m190%203l-12%206-5%202v1h-1v1l-1%201v1h-2v2l-1%201v1h-2v2l-3%203c-2%203-2%205-2%2020v17h-6l3%201%203%202%201%203c0%201%200%202-2%201l-1%201c0%203%200%204-2%204l-2-1h-3c-1-1-1-1-1%201s-2-3-2-8c0-3%200-3%203-3s2-2-1-2c-2%200-3-2-3-8-1-9-1-27%201-28l1-3v-3l-2%202-2%207c0%204%200%204-1%201%200-3-2-4-2-1-1%201-1%200-1-2%200-3%200-3%201-2s1%201%201-2v-3l-2%202-2%204c1%201%200%202-1%202l-2%201h2c2%200%202%201%202%2018%201%2021%201%2019%204%2036l3%2014a121%20121%200%2001-45-2l-25-1c-27-2-24-1-33-16-4-7-5-9-7-9l-4-2c-3-3-2-1%203%208%204%208%209%2013%2011%2013l1%201%201%201%203%204%205%205%204%202%201%201c1-1%2011%201%2012%203h2c0%203%204%209%207%2011l3%202-2%203-3%204v-5c-1-7-6-11-8-7h-5c-6-4-21-2-21%202h2c1-2%202-2%202-1h2c1-1%203-2%206-1h4l-2%203c-1%202-2%202-5%202l-5-2-2%202v5l1-3c0-2%201-2%203-2%203%201%205%204%204%205v1c2%200%202%201%202%204v5l-4-1-5-2-1%201-1%201h-1c0%202%2012%206%2017%205l1%202c1%201%201-2%201-6v-7c1%200%202%203%202%209%200%2011%200%2011%204%2012s7%200%208-3l1%205c1%2011%203%2015%204%207%201-3%201-3%201%201l-1%206c-2%200-1%202%201%202%201%200%202%200%201-1%200-2%200-2%203-1%205%201%207%202%204%202-2%200-3%200-2%201l3%201h5l5%201h1l2-1c2%200%205-4%208-9%201-5%201-5%205-4%203%200%204%200%205-3l1-5c0-1%200-2%201-1l1%203c0%204%202%204%203%200%201-2%201-2%203-1l1%204%201%201%204%201c3%200%203%200%204-5%201-4%203-6%205-5l-2%205c-3%205-4%207-2%205l10-1h8l2-4%203-4h-9l-9-1%203-1h5c3-4%205-21%203-22v-2c0-1-2-2-7-2-7-1-7-1-10%201-2%202-2%202-3%201-3-4-8%200-8%206l1-1c1-3%202-1%202%2010l-1%2014c-1%200-2-4-2-13%200-7%200-8-2-8-4%202-8-13-5-16%203-2%209-3%2013-2%203%201%205%201%208-1h5l3-4c3-4%209-9%2012-9l13-14c4-5%204-6%205-15a65%2065%200%20015-19c0-2%202-2%204-1l5%201c4%200%205%201%206%203l1%202c0-2%202%200%202%202h-1l-1%201%202%201%203%203c1%202%201%203-1%203l-1%202-1%205c-3%203-2%207%201%2014%203%206%204%207%208%205%203-1%203-15%201-15l-2-1%202-1c1%200%202%200%202-2v-5l-2%201-1%201-1%201v2c0%202%200%202-1%201h-1l2%204%201%202c-2%200-3-2-4-3l-1-2v2l1%205v2l-2-8v-2l1-1%203-3c4-3%205-4%203-9-2-4%201-5%203%200l2%204%203-3%201-4-1-2h1c1%202%202%201%204-1%202-3%202-3%200-3-3%201-5-4-5-12%200-6-3-19-5-21-1-2-5%202-6%206-1%203-1%204-3%203l-1%201%201%201v5c0%204%200%204-3%204-2-1-3-1-3-3-1-2-1-2-1%201s0%203-6%203l-7-1h-3l-2-2-1-1v-9c1-7%203-11%206-11l3-1-1-1c-2%201-2%200%200-3l4-2%202-1c0-2-3-1-12%202m-147%2025c-2%201-2%202-2%2011a226%20226%200%20011%2015h4c3%200%203%200%201%201l8-1%203%201-5%201h-4l5%201%206-1c0-2%202-1%202%201s3%201%204-1l1-2%201-5c0-4%200-5-2-4v-2c1-1%202-3%201-5l1-5c3-2-1-3-10-3l-10-2c-2-2-2-2-5%200m30%203c-1%201-2%202-2%205v13c-3%204%200%203%203-1%204-4%204-5%204-9s-2-11-2-7l-1-1h-2m161%2020c-2%205-3%207-2%208v5l-1%208c0%205-1%207-2%203l-1-5-1-3v16l-1%204c-2%200-1%202%201%203%203%200%203%200%203%203%200%202%200%203-5%204-6%202-8%203-6%204l2-1c3-3%207%200%207%207%200%203%200%203%204%201l6-1c1%200%202%200%202-2-1-1%200-2%201-2%203%200%203-2%203-8%200-5%200-5%202-4%207%202%2012-5%2012-18%201-8-3-16-6-16v1l-2%204-2%204%201-1c2-4%203-1%201%205-2%208-3%209-3%202v-3l-1%205c0%205-1%206-3%205-2%200-3-1-3-3-1-1-1-2-2-1l-1-1c0-1%200-2-1-1l-1-2h-1c-1%202-2%200-1-4l1-3c0%201%201%201%202-1%203-3%204-4%203-1%200%201%201%201%204-2%204-2%204-2%202-4-2-1-3-4-4-7l-3-5-4%207M70%20192l-4%207-3%205h5c4%200%206%200%207-2s2-2%202-1l2-1h-1c-2%201-1-1%201-5%203-3%203-6%201-3h-2l-1-1h-3c-1-1-3%200-4%201m-2%2016l-1%201h-8c-1-1-1%200-1%201l-3%202-1%201v2l-2%203-1%206-1%204h12l4%202v-4c0-4%202-12%204-12v-7c0-2-1-1-2%201m10%204l-2%201c-8-1-9%2021-1%2026%202%201%202%201%202-4l-2-8%201-3%201%202c0%203%205%208%208%208%202%200%205-2%205-4l-3%201c-3%201-5%201-5-1l1-1v-3c0-3%200-4%202-6%203-2%201-4-3-2-3%201-3%201-2-3l-1-4-1%201m130%204v3l31%202c10%200%207-2-3-2-5%200-5%200-3-1l3-1h-3c-18-1-22-2-24-3-2%200-2%200-1%202m-15%206h-5l-1%201%201%203%201-1%201%201h1l1%201%204%202%206-1%206-1%206-1-1-1c-2%200-2-1-2-3h-18m122%209l1%201v2c-1%200-2%200-3%202-2%202-3%202-5%201-3-1-3-1-5%202-4%205%200%2010%204%205h2l2-3%205-5c3-2%205-3%203-1v3h2l1-1v-4h-2c2-1-1-3-4-3-2%200-2%200-1%201m-66%205c-2%202-2%202-2%200l-1%201-2%205%201-1c1-2%202-2%207-2s7%200%208-2v1l-2%205c-1%202-1%202-2%200-2-4-10%200-10%205%200%203%201%204%208%204l5%201%202-7a120%20120%200%20012-11c-1%201-2%200-3-1-2-2-9-1-11%202m-57%2019c-1%203-1%205%201%205h1l6%201c11%200%2011%201%2012%208%201%205%201%205%201-3%200-6-1-8-2-8l-1-1-2-2h-16m-121%204l-1%201c-2-2-4%203-3%207%202%206%203%207%205%205%202-3%204-2%202%200l-1%202%202-2%207-3c4-2%204-2%200-7l-6-3-2-1-1-1-2%202m243%200c0%205%207%2012%209%2010l1%201v2l5%202c5%202%206%202%205-2-1-6-6-10-9-8h-1c0-1-2-3-5-4l-5-3v2m-119%208c0%203%200%204-1%203-1-4-2-2-2%202%201%204%201%204%209%205h7v-10l-1-1-2-1-6-2h-4v4m-142%205c-2%201-2%203-1%205l3%206h2l6-3%202-1c1%200%202%200%201-1v-1l-1-1-1-1c1-1%200-2-1-2h-2l-2-1c-3-2-4-3-6%200m258%208l-4%202-4%202-3%202h14c15%200%2015%200%2016-3%203-5-5-8-9-3l-2%201-3-3c-3-1-2-1-5%202'%20fill='%23fafafa'%20fill-rule='evenodd'/%3e%3c/svg%3e"},"narrow":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGAABAAMBAAAAAAAAAAAAAAAAAAIEBQH/xAAWAQEBAQAAAAAAAAAAAAAAAAABAAL/2gAMAwEAAhADEAAAAdunGqa2lJHZAhX/xAAcEAACAgIDAAAAAAAAAAAAAAACAwABBBQREhP/2gAIAQEAAQUCIqGC0u89l2YEFWt66AsdfGsqayp//8QAFhEAAwAAAAAAAAAAAAAAAAAAAAES/9oACAEDAQE/AZZLKZTP/8QAFREBAQAAAAAAAAAAAAAAAAAAABH/2gAIAQIBAT8Bqoj/xAAgEAACAAUFAQAAAAAAAAAAAAAAAQIRISJBEBIxMoGh/9oACAEBAAY/AqlzW3RzipguYpxGV6cfTqf/xAAbEAEAAwEAAwAAAAAAAAAAAAABABExIWFx8P/aAAgBAQABPyEAtV5MC447BEsilJBXDLmSGFsDBuYp6I8xj4rP/9oADAMBAAIAAwAAABDjGIL/xAAWEQADAAAAAAAAAAAAAAAAAAAAAWH/2gAIAQMBAT8QiyLKsqz/xAAWEQADAAAAAAAAAAAAAAAAAAAAEVH/2gAIAQIBAT8QSiUSCQ//xAAfEAEAAwACAQUAAAAAAAAAAAABABEhQVExgaHB0fD/2gAIAQEAAT8QrhdxPdQQR7ZFU+OcgBBEse4iMIlDZvrHN0m62sxgHQNG1PaPd4cp8wyWsVq2fl90/9k=","aspectRatio":1,"src":"/static/ccb2f24dd0a50db4c75f3bf98b93190a/eaa58/imagermachine.jpg","srcSet":"/static/ccb2f24dd0a50db4c75f3bf98b93190a/5a3ee/imagermachine.jpg 114w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/41f8f/imagermachine.jpg 229w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/eaa58/imagermachine.jpg 457w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/c309b/imagermachine.jpg 686w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/e3008/imagermachine.jpg 914w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/0ff54/imagermachine.jpg 1200w","srcWebp":"/static/ccb2f24dd0a50db4c75f3bf98b93190a/15384/imagermachine.webp","srcSetWebp":"/static/ccb2f24dd0a50db4c75f3bf98b93190a/31fce/imagermachine.webp 114w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/e3e25/imagermachine.webp 229w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/15384/imagermachine.webp 457w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/0258d/imagermachine.webp 686w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/64ea2/imagermachine.webp 914w,\n/static/ccb2f24dd0a50db4c75f3bf98b93190a/9000d/imagermachine.webp 1200w","sizes":"(max-width: 457px) 100vw, 457px","tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='400'%20viewBox='0%200%20400%20400'%20preserveAspectRatio='none'%3e%3cpath%20d='M260%2051c-17%201-44%206-48%209-3%201-4%203-5%207-3%207-4%2024-2%2028l1%203h13l12%201c-1%202-8%203-20%203-9%200-12-1-20-4l-10-2a145%20145%200%2001-33%204l-2%201h2c2%200%202%200%201%201h-4l-1%201h8c3-2%2010-4%208-2h5l-3%202c-5%202-3%202%202%200%206-3%2010-3%204%200-4%202-7%207-5%209l1-1%206-6c1%200%200%202-2%203l-3%204h4c3%201%203%200%204-1%201-2%201-2%201%200s5%203%2015%203c5%200%205%200%205%203%200%202%200%202%204%202l4%201%201%201c2-2%201-3-3-3-3%200-4%200-4-2h37l5-3c5-3%2010-4%2010-3l-1%201v1l3-2%2010-1c5%200%206%200%204-1-4%200-4-1-3-1h9l-1%201%2015-4a313%20313%200%2000-52-5c0-2%204-3%2017-5%2012-2%2016-3%2019-5l2-1-4%206v1c3%200%204-2%206-10l4-7c1%200%206-6%206-8h-1l-1-2c1-4-1-4-2-1l-1-5v-9c-2%200-2%201-2%205v12l-2%207v-9c0-14-3-19-8-18l-5%201m-9%205l-6%205-3%203-3-3c-5-3-15-3-19%200l-3%201-3%201-1%202%202%201-2%201-3%201%201%201%202%201h-2c-1%200-3%201-3%203s3%201%203%200c1-1%201%201%201%205%200%205%200%206%203%207%202%201%202%201%202-1l2%202%201%204-1-6c0-6%204-17%209-20%208-3%2013-1%2015%208l2%206-1-6%201-6c1-1%201%200%201%201%200%202%200%202%201%201s1-1%201%201c-2%206-2%207-1%207l1-3c0-7%209-16%2015-14%202%200%202%200%201-1v-1l-1-1h-4c-3%200-3%200-2-1%203-2-1-1-6%201m-95%206l1%203c1%201%200%207-1%209-1%201%200%204%201%204l1-1c-2-2%202-1%2018%205l17%206V78l1-9-4-2-6-2-3-2h-1l-10-2c-13-3-14-3-14%201m-52%2055c-3%203-5%2012-5%2029l-1%2012c-2%201-14%200-13-2h-2c-1%201%202%207%203%206%202-1%201%201-1%204-2%202-1%203%202%201h1c0%202%207%201%209-1h1c-1%201%200%202%201%203v5h-1l-3%204-2%205%203%206c3%206%204%206%201-1l-1-4c1-1%206%201%207%203l1%202%202%201c1%201%200%201-2%203-6%204-6%204-10-4-3-6-4-7-6-7-1%200-2%200-1%202l-1%202v2l-11%201-11%201%202%202c4%201-5%2012-9%2011-1%200-2%200-1%201v4c-3%202-8%2012-8%2013v4c-1%203-5%204-5%201l-1%201c-1%203-2%203-2%202-2-3%202-11%206-11l1-1-2-1c-4%200-9%207-9%2015%200%206-2%207-4%202-1-2-1-2-1%200s6%209%208%209v6c-1%202-1%202%201%202l2%201h-3l-1%201%202%202c2%200%202%200%201%201-2%200-3%202-1%202v6c-2%207-1%2014%202%2018%202%203%203%204%203%202%200-3%201-3%203%201%201%202%201%202-1%202H0v75h77l-1%202%201%202%203-1-1-1c0-2%201-2%2011-2h11v4c0%203%200%203%201%201l1-1a432%20432%200%20002%206c1%202%201%202-1%202l-3%201%2010%203h2c1%202%2013%202%2013%201l6-2h5v-6c0-6%201-6%201-4%202%205%200%2018-2%2018l-1%201h1l2%201%207%202h6l3-6%203-8c0-2%201-2%208-2%2012%200%2031-3%2035-5%202-2%201-2-2-1l-6%202c-5%201-5%201-5-2l-1-4c-1-1%203-1%2017-1h19v3l3%203%205%202c5%203%2010%204%2026%202%209%200%2010%200%2017-5l8-5h120v-75h-60l-1-5-2-8-1-3%204-1c11-1%2020-18%2016-30-1-5-3-10-4-9l1%204c2%204%202%204%201%206h-2c0-8-10-11-15-5-3%202-3%204-3%208%200%203%200%204%201%203%200-5%201-7%202-7l7%207c0%202%200%202%201%200l4-3c2%200%202%200%202%203-2%204-8%209-8%205h-1l-2%201c-2%200-2%200-1%201l6%201c4-1%205%201%202%204h-3c0-2-2-3-5-3s-6-3-8-7c-1-3-1-3-2-2v2l1%203%203%205c3%203%202%204-2%201s-6-7-7-12l-1-4v4c0%202%200%203-1%202l-2-1c-1%201-1%200-1-1%200-2%200-2-1%200-1%201-1%201-1-1l-1-2c-2-2-1%202%201%206s2%205-1%202c-2-1-2-1-2%201%201%204%200%204-2%200-2-3-2-3-4-1s-5%203-7%201h-1c0%202%204%204%208%204l4%201c2%201-5%206-7%204l-1%201%202%203%201%202%201%202v-1c0-2%200-2%202-2s5%202%204%204l1%201v1h-3c-2-2-3-2-1%201s-8%208-11%206l-1%202c2%204-11%209-13%205l-1-1v1l-4%201c-6%200-6%200-3-7v-11c-2-9-3-10-6-5l-2%205-2%2010-1%208h-94v-8c0-14-3-19-11-19-3%200-5%200-4%201v2h3a4318%204318%200%2001-5%2015c2-5%202-3%201%204l-1%205H96v-2l-1-3c-1-2-2-2-2-1%200%203-5%203-8%201-2-2-3-1-1%201%203%202%202%204-1%204l-2-2-2-5c-2-4-1-5%202-2%202%203%203%201%200-1-2-4%205-6%208-3h1l-1-2-1-1-2-5c-5-8-6-9-4-11%201-3%201-3-2-7l-3-2v2l-2%202-2%204-10%205c-1%202-2%201-2-2%200-2%200-2-1%201%200%204-1%205-7%208l-6%205-2%204c-2%203-2%203-3%201-1-4-1-14%202-19l1-5c-2%201-2-2%200-3l1%202c0%201%201%201%203-1%204-4%206-5%2013-4s11%200%208-2c-4-1%200-3%204-2%209%203%2014%200%2017-10%201-5-1-16-3-14l-1-1c0-2%203-6%204-6l11-12%203-4c3%200%205-5%205-11l1-6%202-2%202-6c0-4%206-18%207-18l2%202%201%203v-3c-1-2%200-2%203-2%202%200%203%200%203%202s2%204%202%202l3%202c4%204%206%2010%207%2015l1%201%205%202%203%202c-2%200-5%203-5%204h2l6-2h5l-5%201c-4%200-4%201-4%204l-1%204c-1%201%201%207%203%207l2%204%203%203v-4%201l1%201h2l85%207c1-1-3-19-4-20l-20-2a2921%202921%200%2001-40-5c-5%200-7-2-7-5%200-1%208-1%2011%201h2l-2-3-8-2h14a453%20453%200%200040%202h5v-15l1-8c3%201%202%200-2-5l-2-3-1-1v1c0%202%200%202-3%202a2602%202602%200%2001-93-7l-3%206c0%207-2%208-1%201%200-3%200-4-1-2s-1%201-1-3l1-6v-1l-1-2h-1v9c1%207%200%208-1%209-4%204-6%201-7-6-1-5-1-6-4-6-2%200-2-1-2-3%200-3%200-3-1-1l-1%202h-4c-1%201-1%201-2-1-1-1-1%200-1%206%201%206%201%206-1%204-4-11%202-24%2011-23h3l-2-3c0-2-12-2-14%200m190%203l-12%206-5%202v1h-1v1l-1%201v1h-2v2l-1%201v1h-2v2l-3%203c-2%203-2%205-2%2020v17h-6l3%201%203%202%201%203c0%201%200%202-2%201l-1%201c0%203%200%204-2%204l-2-1h-3c-1-1-1-1-1%201s-2-3-2-8c0-3%200-3%203-3s2-2-1-2c-2%200-3-2-3-8-1-9-1-27%201-28l1-3v-3l-2%202-2%207c0%204%200%204-1%201%200-3-2-4-2-1-1%201-1%200-1-2%200-3%200-3%201-2s1%201%201-2v-3l-2%202-2%204c1%201%200%202-1%202l-2%201h2c2%200%202%201%202%2018%201%2021%201%2019%204%2036l3%2014a121%20121%200%2001-45-2l-25-1c-27-2-24-1-33-16-4-7-5-9-7-9l-4-2c-3-3-2-1%203%208%204%208%209%2013%2011%2013l1%201%201%201%203%204%205%205%204%202%201%201c1-1%2011%201%2012%203h2c0%203%204%209%207%2011l3%202-2%203-3%204v-5c-1-7-6-11-8-7h-5c-6-4-21-2-21%202h2c1-2%202-2%202-1h2c1-1%203-2%206-1h4l-2%203c-1%202-2%202-5%202l-5-2-2%202v5l1-3c0-2%201-2%203-2%203%201%205%204%204%205v1c2%200%202%201%202%204v5l-4-1-5-2-1%201-1%201h-1c0%202%2012%206%2017%205l1%202c1%201%201-2%201-6v-7c1%200%202%203%202%209%200%2011%200%2011%204%2012s7%200%208-3l1%205c1%2011%203%2015%204%207%201-3%201-3%201%201l-1%206c-2%200-1%202%201%202%201%200%202%200%201-1%200-2%200-2%203-1%205%201%207%202%204%202-2%200-3%200-2%201l3%201h5l5%201h1l2-1c2%200%205-4%208-9%201-5%201-5%205-4%203%200%204%200%205-3l1-5c0-1%200-2%201-1l1%203c0%204%202%204%203%200%201-2%201-2%203-1l1%204%201%201%204%201c3%200%203%200%204-5%201-4%203-6%205-5l-2%205c-3%205-4%207-2%205l10-1h8l2-4%203-4h-9l-9-1%203-1h5c3-4%205-21%203-22v-2c0-1-2-2-7-2-7-1-7-1-10%201-2%202-2%202-3%201-3-4-8%200-8%206l1-1c1-3%202-1%202%2010l-1%2014c-1%200-2-4-2-13%200-7%200-8-2-8-4%202-8-13-5-16%203-2%209-3%2013-2%203%201%205%201%208-1h5l3-4c3-4%209-9%2012-9l13-14c4-5%204-6%205-15a65%2065%200%20015-19c0-2%202-2%204-1l5%201c4%200%205%201%206%203l1%202c0-2%202%200%202%202h-1l-1%201%202%201%203%203c1%202%201%203-1%203l-1%202-1%205c-3%203-2%207%201%2014%203%206%204%207%208%205%203-1%203-15%201-15l-2-1%202-1c1%200%202%200%202-2v-5l-2%201-1%201-1%201v2c0%202%200%202-1%201h-1l2%204%201%202c-2%200-3-2-4-3l-1-2v2l1%205v2l-2-8v-2l1-1%203-3c4-3%205-4%203-9-2-4%201-5%203%200l2%204%203-3%201-4-1-2h1c1%202%202%201%204-1%202-3%202-3%200-3-3%201-5-4-5-12%200-6-3-19-5-21-1-2-5%202-6%206-1%203-1%204-3%203l-1%201%201%201v5c0%204%200%204-3%204-2-1-3-1-3-3-1-2-1-2-1%201s0%203-6%203l-7-1h-3l-2-2-1-1v-9c1-7%203-11%206-11l3-1-1-1c-2%201-2%200%200-3l4-2%202-1c0-2-3-1-12%202m-147%2025c-2%201-2%202-2%2011a226%20226%200%20011%2015h4c3%200%203%200%201%201l8-1%203%201-5%201h-4l5%201%206-1c0-2%202-1%202%201s3%201%204-1l1-2%201-5c0-4%200-5-2-4v-2c1-1%202-3%201-5l1-5c3-2-1-3-10-3l-10-2c-2-2-2-2-5%200m30%203c-1%201-2%202-2%205v13c-3%204%200%203%203-1%204-4%204-5%204-9s-2-11-2-7l-1-1h-2m161%2020c-2%205-3%207-2%208v5l-1%208c0%205-1%207-2%203l-1-5-1-3v16l-1%204c-2%200-1%202%201%203%203%200%203%200%203%203%200%202%200%203-5%204-6%202-8%203-6%204l2-1c3-3%207%200%207%207%200%203%200%203%204%201l6-1c1%200%202%200%202-2-1-1%200-2%201-2%203%200%203-2%203-8%200-5%200-5%202-4%207%202%2012-5%2012-18%201-8-3-16-6-16v1l-2%204-2%204%201-1c2-4%203-1%201%205-2%208-3%209-3%202v-3l-1%205c0%205-1%206-3%205-2%200-3-1-3-3-1-1-1-2-2-1l-1-1c0-1%200-2-1-1l-1-2h-1c-1%202-2%200-1-4l1-3c0%201%201%201%202-1%203-3%204-4%203-1%200%201%201%201%204-2%204-2%204-2%202-4-2-1-3-4-4-7l-3-5-4%207M70%20192l-4%207-3%205h5c4%200%206%200%207-2s2-2%202-1l2-1h-1c-2%201-1-1%201-5%203-3%203-6%201-3h-2l-1-1h-3c-1-1-3%200-4%201m-2%2016l-1%201h-8c-1-1-1%200-1%201l-3%202-1%201v2l-2%203-1%206-1%204h12l4%202v-4c0-4%202-12%204-12v-7c0-2-1-1-2%201m10%204l-2%201c-8-1-9%2021-1%2026%202%201%202%201%202-4l-2-8%201-3%201%202c0%203%205%208%208%208%202%200%205-2%205-4l-3%201c-3%201-5%201-5-1l1-1v-3c0-3%200-4%202-6%203-2%201-4-3-2-3%201-3%201-2-3l-1-4-1%201m130%204v3l31%202c10%200%207-2-3-2-5%200-5%200-3-1l3-1h-3c-18-1-22-2-24-3-2%200-2%200-1%202m-15%206h-5l-1%201%201%203%201-1%201%201h1l1%201%204%202%206-1%206-1%206-1-1-1c-2%200-2-1-2-3h-18m122%209l1%201v2c-1%200-2%200-3%202-2%202-3%202-5%201-3-1-3-1-5%202-4%205%200%2010%204%205h2l2-3%205-5c3-2%205-3%203-1v3h2l1-1v-4h-2c2-1-1-3-4-3-2%200-2%200-1%201m-66%205c-2%202-2%202-2%200l-1%201-2%205%201-1c1-2%202-2%207-2s7%200%208-2v1l-2%205c-1%202-1%202-2%200-2-4-10%200-10%205%200%203%201%204%208%204l5%201%202-7a120%20120%200%20012-11c-1%201-2%200-3-1-2-2-9-1-11%202m-57%2019c-1%203-1%205%201%205h1l6%201c11%200%2011%201%2012%208%201%205%201%205%201-3%200-6-1-8-2-8l-1-1-2-2h-16m-121%204l-1%201c-2-2-4%203-3%207%202%206%203%207%205%205%202-3%204-2%202%200l-1%202%202-2%207-3c4-2%204-2%200-7l-6-3-2-1-1-1-2%202m243%200c0%205%207%2012%209%2010l1%201v2l5%202c5%202%206%202%205-2-1-6-6-10-9-8h-1c0-1-2-3-5-4l-5-3v2m-119%208c0%203%200%204-1%203-1-4-2-2-2%202%201%204%201%204%209%205h7v-10l-1-1-2-1-6-2h-4v4m-142%205c-2%201-2%203-1%205l3%206h2l6-3%202-1c1%200%202%200%201-1v-1l-1-1-1-1c1-1%200-2-1-2h-2l-2-1c-3-2-4-3-6%200m258%208l-4%202-4%202-3%202h14c15%200%2015%200%2016-3%203-5-5-8-9-3l-2%201-3-3c-3-1-2-1-5%202'%20fill='%23fafafa'%20fill-rule='evenodd'/%3e%3c/svg%3e"},"seo":{"src":"/static/ccb2f24dd0a50db4c75f3bf98b93190a/0ff54/imagermachine.jpg"}}},"authors":[{"authorsPage":true,"bio":"Hello everybody 👋 !  My name is Luke and I am the creator and owner of the spaceout.pl. Personally, I am a big geek with huge love for Star Wars, Marvel and DC comic books, Funk and 80s music. I take most of my design inspiration from offline experiences like going to art museums, galleries and working with other creative people on various projects. I also work with various Activist and NGO groups as a pro-bono designer and developer.\n","id":"f69d27c7-7f9a-5fbd-b05d-1a324fd10c0a","name":"Luke Celitan","featured":true,"social":[{"url":"https://www.facebook.com/spaceout/"},{"url":"https://twitter.com/spaceout.pl"},{"url":"https://www.instagram.com/spaceout.pl/"},{"url":"https://huggingface.co/MassivDash"},{"url":"https://bsky.app/profile/lukecelitan.bsky.social"}],"slug":"/authors/luke-celitan","avatar":{"small":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGQABAAIDAAAAAAAAAAAAAAAAAAIFAQME/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAABvOTVgtERIAH/xAAaEAEBAQEAAwAAAAAAAAAAAAACAQMEABAS/9oACAEBAAEFAmoDjs0/Oq1a9kUzN+j7/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPwEf/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPwEf/8QAHhAAAgEDBQAAAAAAAAAAAAAAAQIAAxESECAxMlH/2gAIAQEABj8CLHgTGqmBPXSlTANsrmKyXLK0B92f/8QAHhABAAECBwAAAAAAAAAAAAAAAREAIRAgMUFhcdH/2gAIAQEAAT8hUmKFDbjke4JaIOG01Fthsd0YugnJ/9oADAMBAAIAAwAAABDzzzz/xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAEDAQE/EB//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAECAQE/EB//xAAfEAEBAAEDBQEAAAAAAAAAAAABETEAQWEQICFxgZH/2gAIAQEAAT8QhmFXf0c6oSU1s8jwz0W5QpAeFf1+Gp7aimCmBvvoV0CRyUvZ/9k=","aspectRatio":1,"src":"/static/4f53b0980dc97328dd1294bbc374fd0e/fa1ea/spaceghost.jpg","srcSet":"/static/4f53b0980dc97328dd1294bbc374fd0e/afb2b/spaceghost.jpg 13w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/7c20e/spaceghost.jpg 25w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/fa1ea/spaceghost.jpg 50w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/03612/spaceghost.jpg 75w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/61cdf/spaceghost.jpg 100w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/442ab/spaceghost.jpg 305w","srcWebp":"/static/4f53b0980dc97328dd1294bbc374fd0e/e7b2c/spaceghost.webp","srcSetWebp":"/static/4f53b0980dc97328dd1294bbc374fd0e/58718/spaceghost.webp 13w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/74aad/spaceghost.webp 25w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/e7b2c/spaceghost.webp 50w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/ed320/spaceghost.webp 75w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/66016/spaceghost.webp 100w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/85828/spaceghost.webp 305w","sizes":"(max-width: 50px) 100vw, 50px","tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='400'%20viewBox='0%200%20400%20400'%20preserveAspectRatio='none'%3e%3cpath%20d='M189%2065A519%20519%200%200065%20299c-5%2020-5%2018%203%2015%208-4%2039-10%2057-12%2011-1%2010%200%2010-11%200-29%206-103%2010-121%204-21%2016-36%2033-43%206-2%208-2%2020-2%2018%200%2024%202%2036%2013%2020%2021%2025%2046%2029%20138l2%2026h10a267%20267%200%200168%2014l-6-26A607%20607%200%2000218%2071c-10-10-15-15-18-15-2%200-6%203-11%209m47%20129c-14%208-26%2015-26%2017%200%203%2018%205%2024%202%205-3%209-10%209-18%200-5%200-5-7-1m-82%201l1%205c1%2011%209%2018%2020%2017%207-1%2013-3%2013-5s-32-19-34-17'%20fill='%23fafafa'%20fill-rule='evenodd'/%3e%3c/svg%3e"},"medium":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGQABAAIDAAAAAAAAAAAAAAAAAAIFAQME/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAABvOTVgtERIAH/xAAaEAEBAQEAAwAAAAAAAAAAAAACAQMEABAS/9oACAEBAAEFAmoDjs0/Oq1a9kUzN+j7/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPwEf/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPwEf/8QAHhAAAgEDBQAAAAAAAAAAAAAAAQIAAxESECAxMlH/2gAIAQEABj8CLHgTGqmBPXSlTANsrmKyXLK0B92f/8QAHhABAAECBwAAAAAAAAAAAAAAAREAIRAgMUFhcdH/2gAIAQEAAT8hUmKFDbjke4JaIOG01Fthsd0YugnJ/9oADAMBAAIAAwAAABDzzzz/xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAEDAQE/EB//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAECAQE/EB//xAAfEAEBAAEDBQEAAAAAAAAAAAABETEAQWEQICFxgZH/2gAIAQEAAT8QhmFXf0c6oSU1s8jwz0W5QpAeFf1+Gp7aimCmBvvoV0CRyUvZ/9k=","aspectRatio":1,"src":"/static/4f53b0980dc97328dd1294bbc374fd0e/61cdf/spaceghost.jpg","srcSet":"/static/4f53b0980dc97328dd1294bbc374fd0e/7c20e/spaceghost.jpg 25w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/fa1ea/spaceghost.jpg 50w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/61cdf/spaceghost.jpg 100w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/59538/spaceghost.jpg 150w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/fd013/spaceghost.jpg 200w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/442ab/spaceghost.jpg 305w","srcWebp":"/static/4f53b0980dc97328dd1294bbc374fd0e/66016/spaceghost.webp","srcSetWebp":"/static/4f53b0980dc97328dd1294bbc374fd0e/74aad/spaceghost.webp 25w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/e7b2c/spaceghost.webp 50w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/66016/spaceghost.webp 100w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/d9b14/spaceghost.webp 150w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/6b183/spaceghost.webp 200w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/85828/spaceghost.webp 305w","sizes":"(max-width: 100px) 100vw, 100px","tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='400'%20viewBox='0%200%20400%20400'%20preserveAspectRatio='none'%3e%3cpath%20d='M189%2065A519%20519%200%200065%20299c-5%2020-5%2018%203%2015%208-4%2039-10%2057-12%2011-1%2010%200%2010-11%200-29%206-103%2010-121%204-21%2016-36%2033-43%206-2%208-2%2020-2%2018%200%2024%202%2036%2013%2020%2021%2025%2046%2029%20138l2%2026h10a267%20267%200%200168%2014l-6-26A607%20607%200%2000218%2071c-10-10-15-15-18-15-2%200-6%203-11%209m47%20129c-14%208-26%2015-26%2017%200%203%2018%205%2024%202%205-3%209-10%209-18%200-5%200-5-7-1m-82%201l1%205c1%2011%209%2018%2020%2017%207-1%2013-3%2013-5s-32-19-34-17'%20fill='%23fafafa'%20fill-rule='evenodd'/%3e%3c/svg%3e"},"large":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGQABAAIDAAAAAAAAAAAAAAAAAAIFAQME/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAABvOTVgtERIAH/xAAaEAEBAQEAAwAAAAAAAAAAAAACAQMEABAS/9oACAEBAAEFAmoDjs0/Oq1a9kUzN+j7/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPwEf/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPwEf/8QAHhAAAgEDBQAAAAAAAAAAAAAAAQIAAxESECAxMlH/2gAIAQEABj8CLHgTGqmBPXSlTANsrmKyXLK0B92f/8QAHhABAAECBwAAAAAAAAAAAAAAAREAIRAgMUFhcdH/2gAIAQEAAT8hUmKFDbjke4JaIOG01Fthsd0YugnJ/9oADAMBAAIAAwAAABDzzzz/xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAEDAQE/EB//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAECAQE/EB//xAAfEAEBAAEDBQEAAAAAAAAAAAABETEAQWEQICFxgZH/2gAIAQEAAT8QhmFXf0c6oSU1s8jwz0W5QpAeFf1+Gp7aimCmBvvoV0CRyUvZ/9k=","aspectRatio":1,"src":"/static/4f53b0980dc97328dd1294bbc374fd0e/442ab/spaceghost.jpg","srcSet":"/static/4f53b0980dc97328dd1294bbc374fd0e/a2637/spaceghost.jpg 82w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/15203/spaceghost.jpg 164w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/442ab/spaceghost.jpg 305w","srcWebp":"/static/4f53b0980dc97328dd1294bbc374fd0e/85828/spaceghost.webp","srcSetWebp":"/static/4f53b0980dc97328dd1294bbc374fd0e/2d087/spaceghost.webp 82w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/29d87/spaceghost.webp 164w,\n/static/4f53b0980dc97328dd1294bbc374fd0e/85828/spaceghost.webp 305w","sizes":"(max-width: 305px) 100vw, 305px","tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='400'%20viewBox='0%200%20400%20400'%20preserveAspectRatio='none'%3e%3cpath%20d='M189%2065A519%20519%200%200065%20299c-5%2020-5%2018%203%2015%208-4%2039-10%2057-12%2011-1%2010%200%2010-11%200-29%206-103%2010-121%204-21%2016-36%2033-43%206-2%208-2%2020-2%2018%200%2024%202%2036%2013%2020%2021%2025%2046%2029%20138l2%2026h10a267%20267%200%200168%2014l-6-26A607%20607%200%2000218%2071c-10-10-15-15-18-15-2%200-6%203-11%209m47%20129c-14%208-26%2015-26%2017%200%203%2018%205%2024%202%205-3%209-10%209-18%200-5%200-5-7-1m-82%201l1%205c1%2011%209%2018%2020%2017%207-1%2013-3%2013-5s-32-19-34-17'%20fill='%23fafafa'%20fill-rule='evenodd'/%3e%3c/svg%3e"}}}],"basePath":"/","tech":["Rust"],"category":"Project","slug":"/imagermachine","id":"923998f8-d109-5d31-98d1-ffcca67d3530","title":"Imagermachine","appDescription":null,"mailchimp":false,"next":[{"id":"c2997b7d-65f2-59a0-a178-9a1fad4cbd1a","slug":"/svelte-solar-system","secret":false,"title":"Svelte Solar System","author":"Luke Celitan","date":"April 3rd, 2021","dateForSEO":"2021-04-03T00:00:00.000Z","timeToRead":1,"excerpt":"Interactive solar system map and info","subscription":true,"body":"var _excluded = [\"components\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {\n  \"title\": \"Svelte Solar System\",\n  \"author\": \"Luke Celitan\",\n  \"date\": \"2021-04-03T00:00:00.000Z\",\n  \"hero\": \"./hero.jpg\",\n  \"excerpt\": \"Interactive solar system map and info\",\n  \"appDescription\": \"Application\",\n  \"category\": \"Project\",\n  \"tech\": [\"Svelte\", \"Css\", \"JS\"]\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"Svelte Solar System is yet another small app I have build while exploring and learning more about svelte framework.\\nThis time I wanted to see how svelte will play with heavy css load and animations.\\nSimple yet very informative app, made in mind for people that are hungry for that \\u201Cspace\\u201D knowledge\"), mdx(\"p\", null, \"The results can be seen at  \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://solar.spaceout.pl\",\n    \"target\": \"_blank\",\n    \"rel\": \"noreferrer\"\n  }, \"https://solar.spaceout.pl\"), \", repo for the project as usually on \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://github.com/MassivDash/svelte-solar-system\",\n    \"target\": \"_blank\",\n    \"rel\": \"noreferrer\"\n  }, \"Github\")), mdx(\"video\", {\n    width: \"1150px\",\n    height: \"100%\",\n    autoPlay: true,\n    muted: true,\n    style: {\n      margin: 'auto'\n    }\n  }, mdx(\"source\", {\n    src: \"/fdfa558b848d090efe725a3b66246ead/solar.mp4\",\n    type: \"video/mp4\"\n  }), \"Your browser does not support the video tag\"), mdx(\"p\", null, \"The results are very pleasing, it shows that svelte is a great framework for building small, fast and responsive web apps. Definetly way to go on the small application side. \"));\n}\n;\nMDXContent.isMDXComponent = true;","tech":["Svelte","Css","JS"],"category":"Project","appDescription":"Application","hero":{"full":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGAABAAMBAAAAAAAAAAAAAAAAAAECAwX/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIQAxAAAAHszSC7MagA/8QAGRAAAgMBAAAAAAAAAAAAAAAAAAECEBIg/9oACAEBAAEFArSMijx//8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPwEf/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPwEf/8QAFhABAQEAAAAAAAAAAAAAAAAAIAFh/9oACAEBAAY/AhdP/8QAGxABAAICAwAAAAAAAAAAAAAAAQARITEQIJH/2gAIAQEAAT8hADHA3qUG422igy+dP//aAAwDAQACAAMAAAAQM8AB/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPxAf/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPxAf/8QAGxABAQEBAAMBAAAAAAAAAAAAAREAIRAxUWH/2gAIAQEAAT8QIAA1h3AahPo3MYq/jzGJQx76czpUVs5PM3//2Q==","aspectRatio":1,"src":"/static/6ea7b34eb23a7c7d5bad3cccae7419bc/58fe7/hero.jpg","srcSet":"/static/6ea7b34eb23a7c7d5bad3cccae7419bc/e0f30/hero.jpg 236w,\n/static/6ea7b34eb23a7c7d5bad3cccae7419bc/86afd/hero.jpg 472w,\n/static/6ea7b34eb23a7c7d5bad3cccae7419bc/58fe7/hero.jpg 944w,\n/static/6ea7b34eb23a7c7d5bad3cccae7419bc/02748/hero.jpg 1416w,\n/static/6ea7b34eb23a7c7d5bad3cccae7419bc/5c241/hero.jpg 1888w,\n/static/6ea7b34eb23a7c7d5bad3cccae7419bc/d9c19/hero.jpg 3000w","srcWebp":"/static/6ea7b34eb23a7c7d5bad3cccae7419bc/99fbb/hero.webp","srcSetWebp":"/static/6ea7b34eb23a7c7d5bad3cccae7419bc/77392/hero.webp 236w,\n/static/6ea7b34eb23a7c7d5bad3cccae7419bc/1f177/hero.webp 472w,\n/static/6ea7b34eb23a7c7d5bad3cccae7419bc/99fbb/hero.webp 944w,\n/static/6ea7b34eb23a7c7d5bad3cccae7419bc/4a492/hero.webp 1416w,\n/static/6ea7b34eb23a7c7d5bad3cccae7419bc/b0b8f/hero.webp 1888w,\n/static/6ea7b34eb23a7c7d5bad3cccae7419bc/5e6ce/hero.webp 3000w","sizes":"(max-width: 944px) 100vw, 944px","tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='400'%20viewBox='0%200%20400%20400'%20preserveAspectRatio='none'%3e%3cpath%20d='M8%206c-2%202%200%203%203%203%203-1%204%200%202%201v1c2%200%205%204%204%206%200%202%202%205%205%207l4%201h-4c-3%200-4%200-4%202%200%203%202%204%208%204%208%200%2010-9%203-13l-3-1h3c4%200%205-5%200-6l-2-1-1-2h-2c-2%202-3%201-3-1l-1-2-2%201c0%201-4%202-6%200H8m323%20136c1%204%200%204-2%205-17%203-29%2011-38%2024-21%2032-1%2076%2037%2082l4%201v5l-1%205%201-5%201-5h5c22%200%2043-16%2050-37%2010-35-15-71-51-71-3%200-4%200-5-3-1-4-1-5-1-1m-318%209l4%202%202%202%201%201%204%204c1%202%203%204%205%204%202%201%202%201%201%202s-1%201%201%202l1%202%201%201v1l2%202%202%203h-1l-2%201c0%202%202%204%203%204h1l-1%201-1%202%201%203%201%202v3c1%201%200%202-1%203-1%202-1%203%201%203%201%201%201%201-1%203s-2%202-1%203v2l-1%203-1%202c-1%201-2%203-1%204%200%202%200%202-1%201-2%200-4%203-2%204v1l-2%202-3%202-2%202c0%202-1%203-3%203l-3%202c1%202%200%202-2%202l-2%201-3%201c-2%200-2%200%200%201H9l-3%201-1%201c-4-1-5%201-5%208%200%208%200%208%2010%205%2034-8%2051-46%2035-77-5-9-15-19-24-23-8-4-14-6-8-2m309%201c-28%209-43%2039-33%2065%202%206%208%2016%209%2015l-3-6a50%2050%200%20010-52c7-11%2020-20%2031-22l6-1c3-2-4-1-10%201m3%2016c-32%2012-30%2057%203%2065%206%202%207%202%207-3%200-4%200-5-4-6-14-3-21-17-18-29l3-6c1%200%206%206%205%207l4%204%204%203c0%203%2011%208%2011%206l5%201h14c0%205-13%2015-21%2015-2%200-2%201-2%205%200%206%201%206%2011%203%2024-7%2032-39%2014-57-5-5-14-9-20-10h-5v10h5c6%201%207%202%2013%207%205%205%208%2012%206%2016l-1%201c0-2-6-7-16-12-4-3-16-5-18-4-8%201-2-5%206-7%204-1%204-1%204-6%200-6-2-6-10-3m-104%203c0%201-1%202-6%201l-6%201%202%201c1%200%201%202-1%202h-3l-1-2c1%200%202%200%201-1-1-2-4%201-4%205v4l-1-1-1-2-1-1-2-3v-3l-2%201c-1%202-2%202-3%200-3-2-5%200-5%204s2%205%205%203h3l2%201c2-1%205%202%204%203h-11c-1-2-3%200-3%203%201%202%205%202%206%200l2%201c2%202%202%202%201%205-5%2013%204%2029%2019%2034%204%201%205%202%205%204l1%203v-3c0-2%201-3%204-3%2011-2%2020-10%2023-19%202-6%201-17-3-23l-2-5%201-2%201-3%201%203%201%202v-5c-3-4-8-4-8%201l-2-1c-1-2-2-2-6-2l-6-1h-2l-2-2c-1-2-1-2-1%200m-99%2015c0%204%200%205-2%205-3%201-6%206-6%2010%200%203%204%208%206%208s2%201%202%205v6l1-5c0-5%200-5%203-6%208-4%208-15%200-17-3-1-3-2-3-6l-1-4v4m-36%204l-3%204c-6%203-6%2011%200%2014%202%201%203%202%203%204%201%202%201%202%201%200s1-3%202-3c3%200%206-4%206-8s-4-9-7-9l-1-2c-1-2-1-2-1%200m72%204c-7%202-6%2013%202%2013%203%200%206-3%206-6%200-5-4-8-8-7'%20fill='%23fafafa'%20fill-rule='evenodd'/%3e%3c/svg%3e"},"regular":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGAABAAMBAAAAAAAAAAAAAAAAAAECAwX/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIQAxAAAAHszSC7MagA/8QAGRAAAgMBAAAAAAAAAAAAAAAAAAECEBIg/9oACAEBAAEFArSMijx//8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPwEf/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPwEf/8QAFhABAQEAAAAAAAAAAAAAAAAAIAFh/9oACAEBAAY/AhdP/8QAGxABAAICAwAAAAAAAAAAAAAAAQARITEQIJH/2gAIAQEAAT8hADHA3qUG422igy+dP//aAAwDAQACAAMAAAAQM8AB/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPxAf/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPxAf/8QAGxABAQEBAAMBAAAAAAAAAAAAAREAIRAxUWH/2gAIAQEAAT8QIAA1h3AahPo3MYq/jzGJQx76czpUVs5PM3//2Q==","aspectRatio":1,"src":"/static/6ea7b34eb23a7c7d5bad3cccae7419bc/1dc0b/hero.jpg","srcSet":"/static/6ea7b34eb23a7c7d5bad3cccae7419bc/3a5ce/hero.jpg 163w,\n/static/6ea7b34eb23a7c7d5bad3cccae7419bc/05730/hero.jpg 327w,\n/static/6ea7b34eb23a7c7d5bad3cccae7419bc/1dc0b/hero.jpg 653w,\n/static/6ea7b34eb23a7c7d5bad3cccae7419bc/f72c7/hero.jpg 980w,\n/static/6ea7b34eb23a7c7d5bad3cccae7419bc/6e4a3/hero.jpg 1306w,\n/static/6ea7b34eb23a7c7d5bad3cccae7419bc/d9c19/hero.jpg 3000w","srcWebp":"/static/6ea7b34eb23a7c7d5bad3cccae7419bc/0acdf/hero.webp","srcSetWebp":"/static/6ea7b34eb23a7c7d5bad3cccae7419bc/ac59e/hero.webp 163w,\n/static/6ea7b34eb23a7c7d5bad3cccae7419bc/7660b/hero.webp 327w,\n/static/6ea7b34eb23a7c7d5bad3cccae7419bc/0acdf/hero.webp 653w,\n/static/6ea7b34eb23a7c7d5bad3cccae7419bc/75470/hero.webp 980w,\n/static/6ea7b34eb23a7c7d5bad3cccae7419bc/68d47/hero.webp 1306w,\n/static/6ea7b34eb23a7c7d5bad3cccae7419bc/5e6ce/hero.webp 3000w","sizes":"(max-width: 653px) 100vw, 653px","tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='400'%20viewBox='0%200%20400%20400'%20preserveAspectRatio='none'%3e%3cpath%20d='M8%206c-2%202%200%203%203%203%203-1%204%200%202%201v1c2%200%205%204%204%206%200%202%202%205%205%207l4%201h-4c-3%200-4%200-4%202%200%203%202%204%208%204%208%200%2010-9%203-13l-3-1h3c4%200%205-5%200-6l-2-1-1-2h-2c-2%202-3%201-3-1l-1-2-2%201c0%201-4%202-6%200H8m323%20136c1%204%200%204-2%205-17%203-29%2011-38%2024-21%2032-1%2076%2037%2082l4%201v5l-1%205%201-5%201-5h5c22%200%2043-16%2050-37%2010-35-15-71-51-71-3%200-4%200-5-3-1-4-1-5-1-1m-318%209l4%202%202%202%201%201%204%204c1%202%203%204%205%204%202%201%202%201%201%202s-1%201%201%202l1%202%201%201v1l2%202%202%203h-1l-2%201c0%202%202%204%203%204h1l-1%201-1%202%201%203%201%202v3c1%201%200%202-1%203-1%202-1%203%201%203%201%201%201%201-1%203s-2%202-1%203v2l-1%203-1%202c-1%201-2%203-1%204%200%202%200%202-1%201-2%200-4%203-2%204v1l-2%202-3%202-2%202c0%202-1%203-3%203l-3%202c1%202%200%202-2%202l-2%201-3%201c-2%200-2%200%200%201H9l-3%201-1%201c-4-1-5%201-5%208%200%208%200%208%2010%205%2034-8%2051-46%2035-77-5-9-15-19-24-23-8-4-14-6-8-2m309%201c-28%209-43%2039-33%2065%202%206%208%2016%209%2015l-3-6a50%2050%200%20010-52c7-11%2020-20%2031-22l6-1c3-2-4-1-10%201m3%2016c-32%2012-30%2057%203%2065%206%202%207%202%207-3%200-4%200-5-4-6-14-3-21-17-18-29l3-6c1%200%206%206%205%207l4%204%204%203c0%203%2011%208%2011%206l5%201h14c0%205-13%2015-21%2015-2%200-2%201-2%205%200%206%201%206%2011%203%2024-7%2032-39%2014-57-5-5-14-9-20-10h-5v10h5c6%201%207%202%2013%207%205%205%208%2012%206%2016l-1%201c0-2-6-7-16-12-4-3-16-5-18-4-8%201-2-5%206-7%204-1%204-1%204-6%200-6-2-6-10-3m-104%203c0%201-1%202-6%201l-6%201%202%201c1%200%201%202-1%202h-3l-1-2c1%200%202%200%201-1-1-2-4%201-4%205v4l-1-1-1-2-1-1-2-3v-3l-2%201c-1%202-2%202-3%200-3-2-5%200-5%204s2%205%205%203h3l2%201c2-1%205%202%204%203h-11c-1-2-3%200-3%203%201%202%205%202%206%200l2%201c2%202%202%202%201%205-5%2013%204%2029%2019%2034%204%201%205%202%205%204l1%203v-3c0-2%201-3%204-3%2011-2%2020-10%2023-19%202-6%201-17-3-23l-2-5%201-2%201-3%201%203%201%202v-5c-3-4-8-4-8%201l-2-1c-1-2-2-2-6-2l-6-1h-2l-2-2c-1-2-1-2-1%200m-99%2015c0%204%200%205-2%205-3%201-6%206-6%2010%200%203%204%208%206%208s2%201%202%205v6l1-5c0-5%200-5%203-6%208-4%208-15%200-17-3-1-3-2-3-6l-1-4v4m-36%204l-3%204c-6%203-6%2011%200%2014%202%201%203%202%203%204%201%202%201%202%201%200s1-3%202-3c3%200%206-4%206-8s-4-9-7-9l-1-2c-1-2-1-2-1%200m72%204c-7%202-6%2013%202%2013%203%200%206-3%206-6%200-5-4-8-8-7'%20fill='%23fafafa'%20fill-rule='evenodd'/%3e%3c/svg%3e"},"narrow":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGAABAAMBAAAAAAAAAAAAAAAAAAECAwX/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIQAxAAAAHszSC7MagA/8QAGRAAAgMBAAAAAAAAAAAAAAAAAAECEBIg/9oACAEBAAEFArSMijx//8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPwEf/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPwEf/8QAFhABAQEAAAAAAAAAAAAAAAAAIAFh/9oACAEBAAY/AhdP/8QAGxABAAICAwAAAAAAAAAAAAAAAQARITEQIJH/2gAIAQEAAT8hADHA3qUG422igy+dP//aAAwDAQACAAMAAAAQM8AB/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPxAf/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPxAf/8QAGxABAQEBAAMBAAAAAAAAAAAAAREAIRAxUWH/2gAIAQEAAT8QIAA1h3AahPo3MYq/jzGJQx76czpUVs5PM3//2Q==","aspectRatio":1,"src":"/static/6ea7b34eb23a7c7d5bad3cccae7419bc/eaa58/hero.jpg","srcSet":"/static/6ea7b34eb23a7c7d5bad3cccae7419bc/5a3ee/hero.jpg 114w,\n/static/6ea7b34eb23a7c7d5bad3cccae7419bc/41f8f/hero.jpg 229w,\n/static/6ea7b34eb23a7c7d5bad3cccae7419bc/eaa58/hero.jpg 457w,\n/static/6ea7b34eb23a7c7d5bad3cccae7419bc/c309b/hero.jpg 686w,\n/static/6ea7b34eb23a7c7d5bad3cccae7419bc/e3008/hero.jpg 914w,\n/static/6ea7b34eb23a7c7d5bad3cccae7419bc/d9c19/hero.jpg 3000w","srcWebp":"/static/6ea7b34eb23a7c7d5bad3cccae7419bc/15384/hero.webp","srcSetWebp":"/static/6ea7b34eb23a7c7d5bad3cccae7419bc/31fce/hero.webp 114w,\n/static/6ea7b34eb23a7c7d5bad3cccae7419bc/e3e25/hero.webp 229w,\n/static/6ea7b34eb23a7c7d5bad3cccae7419bc/15384/hero.webp 457w,\n/static/6ea7b34eb23a7c7d5bad3cccae7419bc/0258d/hero.webp 686w,\n/static/6ea7b34eb23a7c7d5bad3cccae7419bc/64ea2/hero.webp 914w,\n/static/6ea7b34eb23a7c7d5bad3cccae7419bc/5e6ce/hero.webp 3000w","sizes":"(max-width: 457px) 100vw, 457px","tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='400'%20viewBox='0%200%20400%20400'%20preserveAspectRatio='none'%3e%3cpath%20d='M8%206c-2%202%200%203%203%203%203-1%204%200%202%201v1c2%200%205%204%204%206%200%202%202%205%205%207l4%201h-4c-3%200-4%200-4%202%200%203%202%204%208%204%208%200%2010-9%203-13l-3-1h3c4%200%205-5%200-6l-2-1-1-2h-2c-2%202-3%201-3-1l-1-2-2%201c0%201-4%202-6%200H8m323%20136c1%204%200%204-2%205-17%203-29%2011-38%2024-21%2032-1%2076%2037%2082l4%201v5l-1%205%201-5%201-5h5c22%200%2043-16%2050-37%2010-35-15-71-51-71-3%200-4%200-5-3-1-4-1-5-1-1m-318%209l4%202%202%202%201%201%204%204c1%202%203%204%205%204%202%201%202%201%201%202s-1%201%201%202l1%202%201%201v1l2%202%202%203h-1l-2%201c0%202%202%204%203%204h1l-1%201-1%202%201%203%201%202v3c1%201%200%202-1%203-1%202-1%203%201%203%201%201%201%201-1%203s-2%202-1%203v2l-1%203-1%202c-1%201-2%203-1%204%200%202%200%202-1%201-2%200-4%203-2%204v1l-2%202-3%202-2%202c0%202-1%203-3%203l-3%202c1%202%200%202-2%202l-2%201-3%201c-2%200-2%200%200%201H9l-3%201-1%201c-4-1-5%201-5%208%200%208%200%208%2010%205%2034-8%2051-46%2035-77-5-9-15-19-24-23-8-4-14-6-8-2m309%201c-28%209-43%2039-33%2065%202%206%208%2016%209%2015l-3-6a50%2050%200%20010-52c7-11%2020-20%2031-22l6-1c3-2-4-1-10%201m3%2016c-32%2012-30%2057%203%2065%206%202%207%202%207-3%200-4%200-5-4-6-14-3-21-17-18-29l3-6c1%200%206%206%205%207l4%204%204%203c0%203%2011%208%2011%206l5%201h14c0%205-13%2015-21%2015-2%200-2%201-2%205%200%206%201%206%2011%203%2024-7%2032-39%2014-57-5-5-14-9-20-10h-5v10h5c6%201%207%202%2013%207%205%205%208%2012%206%2016l-1%201c0-2-6-7-16-12-4-3-16-5-18-4-8%201-2-5%206-7%204-1%204-1%204-6%200-6-2-6-10-3m-104%203c0%201-1%202-6%201l-6%201%202%201c1%200%201%202-1%202h-3l-1-2c1%200%202%200%201-1-1-2-4%201-4%205v4l-1-1-1-2-1-1-2-3v-3l-2%201c-1%202-2%202-3%200-3-2-5%200-5%204s2%205%205%203h3l2%201c2-1%205%202%204%203h-11c-1-2-3%200-3%203%201%202%205%202%206%200l2%201c2%202%202%202%201%205-5%2013%204%2029%2019%2034%204%201%205%202%205%204l1%203v-3c0-2%201-3%204-3%2011-2%2020-10%2023-19%202-6%201-17-3-23l-2-5%201-2%201-3%201%203%201%202v-5c-3-4-8-4-8%201l-2-1c-1-2-2-2-6-2l-6-1h-2l-2-2c-1-2-1-2-1%200m-99%2015c0%204%200%205-2%205-3%201-6%206-6%2010%200%203%204%208%206%208s2%201%202%205v6l1-5c0-5%200-5%203-6%208-4%208-15%200-17-3-1-3-2-3-6l-1-4v4m-36%204l-3%204c-6%203-6%2011%200%2014%202%201%203%202%203%204%201%202%201%202%201%200s1-3%202-3c3%200%206-4%206-8s-4-9-7-9l-1-2c-1-2-1-2-1%200m72%204c-7%202-6%2013%202%2013%203%200%206-3%206-6%200-5-4-8-8-7'%20fill='%23fafafa'%20fill-rule='evenodd'/%3e%3c/svg%3e"},"seo":{"src":"/static/6ea7b34eb23a7c7d5bad3cccae7419bc/0ff54/hero.jpg"}}},{"id":"a9cae0c4-b514-5ae4-84a5-b97b5396782a","slug":"/svelte-chess-timer","secret":false,"title":"Svelte Chess Timer","author":"Luke Celitan","date":"October 3rd, 2020","dateForSEO":"2020-10-03T00:00:00.000Z","timeToRead":1,"excerpt":"2 player online chess timer application","subscription":true,"body":"var _excluded = [\"components\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {\n  \"title\": \"Svelte Chess Timer\",\n  \"author\": \"Luke Celitan\",\n  \"date\": \"2020-10-03T00:00:00.000Z\",\n  \"hero\": \"./hero.jpeg\",\n  \"excerpt\": \"2 player online chess timer application\",\n  \"appDescription\": \"Application\",\n  \"category\": \"Project\",\n  \"tech\": [\"Svelte\", \"Css\"]\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h2\", {\n    \"id\": \"ux--ui\"\n  }, \"UX / UI\"), mdx(UI, {\n    colors: ['#0c0c0c', '#52525b', '#d4d4d8', '#fbfbfb', '#aaa5a5'],\n    primeFontFamily: 'Lato',\n    secondaryFontFamily: 'Cormorant',\n    background: '#FFF',\n    textColor: \"#0c0c0c\",\n    h1: {\n      fontFamily: 'Cormorant',\n      fontWeight: '700',\n      fontSize: '40px',\n      textTransform: 'uppercase',\n      color: '#0c0c0c'\n    },\n    h2: {\n      fontSize: '35px',\n      fontWeight: '700',\n      fontFamily: 'Lato'\n    },\n    body: {\n      fontFamily: 'Lato',\n      color: '#0c0c0c',\n      fontSize: '18px',\n      lineHeight: 1.7\n    },\n    mdxType: \"UI\"\n  }), mdx(\"h2\", {\n    \"id\": \"overview\"\n  }, \"Overview\"), mdx(\"p\", null, \"Svelte chess timer is a simple app written in the \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://svelte.dev/\",\n    \"target\": \"_blank\",\n    \"rel\": \"noreferrer\"\n  }, \"Sevlte framework\"), \" . This fully operational chess timer clock, will track opponents times in the traditional way of counting down to midnight. The old switch-eru button lets you rotate the timer, great option if you are really plan on using it. Don\\u2019t forget to switch on the alarm next to your timer, for the buzzer at the end of time limit\"), mdx(\"p\", null, \"Svelte Chess Timer Source code at \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://github.com/MassivDash/Svelte-Chess-Timer\",\n    \"target\": \"_blank\",\n    \"rel\": \"noreferrer\"\n  }, \"github\"), \" , moving clock svg component by \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://svelte.dev/examples#clock\",\n    \"target\": \"_blank\",\n    \"rel\": \"noreferrer\"\n  }, \"svelte team\")), mdx(\"p\", null, mdx(\"span\", {\n    parentName: \"p\",\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"945px\"\n    }\n  }, \"\\n      \", mdx(\"span\", {\n    parentName: \"span\",\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"216.71957671957674%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAArABQDASIAAhEBAxEB/8QAGQABAAMBAQAAAAAAAAAAAAAAAAECAwQF/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAL/2gAMAwEAAhADEAAAAfXjoiaxbhBUyBULKj//xAAYEAADAQEAAAAAAAAAAAAAAAAAAhMDQP/aAAgBAQABBQKWZJCScH//xAAYEQADAQEAAAAAAAAAAAAAAAACElEAIP/aAAgBAwEBPwFyucrz/8QAFxEAAwEAAAAAAAAAAAAAAAAAAAESIP/aAAgBAgEBPwGUSs//xAAXEAADAQAAAAAAAAAAAAAAAAAAATJA/9oACAEBAAY/ApRKJWD/xAAaEAACAwEBAAAAAAAAAAAAAAAAARARMVEg/9oACAEBAAE/IYre5MzVDlmK4ZfX5//aAAwDAQACAAMAAAAQz/I8Y8//xAAXEQADAQAAAAAAAAAAAAAAAAAAYZEg/9oACAEDAQE/EGKMXP8A/8QAFhEBAQEAAAAAAAAAAAAAAAAAYQAg/9oACAECAQE/EBgz/8QAHxAAAgICAgMBAAAAAAAAAAAAAREAIRBBMWFRkcHw/9oACAEBAAE/ELr6Z+MwfIgxAmGdQDgBHjrDMEBrURLCNls6GNA09xMBhH2MJQJT4gA21WPmGWLnmOf/2Q==')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  }), \"\\n  \", mdx(\"picture\", {\n    parentName: \"span\"\n  }, \"\\n          \", mdx(\"source\", {\n    parentName: \"picture\",\n    \"srcSet\": [\"/static/9369a6b90fbca6abf05891a85bf8360b/38d5d/mobile.webp 945w\"],\n    \"sizes\": \"(max-width: 945px) 100vw, 945px\",\n    \"type\": \"image/webp\"\n  }), \"\\n          \", mdx(\"source\", {\n    parentName: \"picture\",\n    \"srcSet\": [\"/static/9369a6b90fbca6abf05891a85bf8360b/7527f/mobile.jpg 945w\"],\n    \"sizes\": \"(max-width: 945px) 100vw, 945px\",\n    \"type\": \"image/jpeg\"\n  }), \"\\n          \", mdx(\"img\", {\n    parentName: \"picture\",\n    \"className\": \"gatsby-resp-image-image\",\n    \"src\": \"/static/9369a6b90fbca6abf05891a85bf8360b/7527f/mobile.jpg\",\n    \"alt\": \"mobile\",\n    \"title\": \"mobile\",\n    \"loading\": \"lazy\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    }\n  }), \"\\n        \"), \"\\n    \")), mdx(\"p\", null, mdx(\"span\", {\n    parentName: \"p\",\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"898px\"\n    }\n  }, \"\\n      \", mdx(\"span\", {\n    parentName: \"span\",\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"84.74387527839643%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAARCAYAAADdRIy+AAAACXBIWXMAAAsTAAALEwEAmpwYAAAB0ElEQVQ4y41U127DMAz0//9igQB9SD3iPSV5XHm05dhZrQBClHg8Do3AOgfTNhiqAtSttZ+FmK6FTUPYIoXNEtEj2LpUW6CEAhi2jX8RSgI2ucLmK5mjXuViG4VQQI4gWXAex3EXtwVwh0CKmSaMCzDOC5yInWbYcVJ7cAdaDMOAPM8RRRGyLEPf909k3KMtFkxOTNfB0W7MndADr9criqLQdV3XStzRQdYU6qHs0Ua/umkQxvEpcGCEmeXFYiCQwj0OAknqCalzj8NIicCCJrupLzmU0EdO01SBLPtyuWBZFpUkSfaSkyRWzGx6VN9fQJ1jGVZfX4mWTBJG4cwM2rbFPM+YpPlhGO6EzNDI3BcZZjlVDicY73sqmVHYv+Ng+bfbbS+ZelVVJwx96LuXfLxjzIBGnjRnzWg7PQp1j/FEXB85ToSM0sjJsW8s+3gX/aV2chj+BhDLthwxOyF7UJalEnGmMAv2dM9QMEOZoxEMq/AY378nQkZmVAp7RVHw1kNjhLAqxd4q9oR5VbJvvj6v7RnqC+hbdJKp9nN7ojtuO4yXhCdRZ7mjTY0i+tFX1Erma6bm7ecR/PW7sIfFi36+JXx8/I8/zFqW+/j7HNe/fwwngdZA4A4AAAAASUVORK5CYII=')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  }), \"\\n  \", mdx(\"picture\", {\n    parentName: \"span\"\n  }, \"\\n          \", mdx(\"source\", {\n    parentName: \"picture\",\n    \"srcSet\": [\"/static/8d2b88eb4d683137c51abc27ea61f9c6/28b94/desktop.webp 898w\"],\n    \"sizes\": \"(max-width: 898px) 100vw, 898px\",\n    \"type\": \"image/webp\"\n  }), \"\\n          \", mdx(\"source\", {\n    parentName: \"picture\",\n    \"srcSet\": [\"/static/8d2b88eb4d683137c51abc27ea61f9c6/2ddbb/desktop.png 898w\"],\n    \"sizes\": \"(max-width: 898px) 100vw, 898px\",\n    \"type\": \"image/png\"\n  }), \"\\n          \", mdx(\"img\", {\n    parentName: \"picture\",\n    \"className\": \"gatsby-resp-image-image\",\n    \"src\": \"/static/8d2b88eb4d683137c51abc27ea61f9c6/2ddbb/desktop.png\",\n    \"alt\": \"Desktop\",\n    \"title\": \"Desktop\",\n    \"loading\": \"lazy\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    }\n  }), \"\\n        \"), \"\\n    \")), mdx(\"h2\", {\n    \"id\": \"implmenting-progressive-web-app\"\n  }, \"Implmenting progressive web app\"), mdx(\"p\", null, \"The timer is a perfect scenario for applying the pwa features. It is a small app, that can be used offline, and has a great user experience. This way you can play chess with a friend offline whenever the time is right. Svelte framework has already ready made pwa plugins so converting the application to a pwa was quite easy. More info about pwa in svelte can be found \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://web.dev/learn/pwa/installation\",\n    \"target\": \"_blank\",\n    \"rel\": \"noreferrer\"\n  }, \"here\")), mdx(\"p\", null, \"Timer at \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://chess-timer.spaceout.pl/\",\n    \"target\": \"_blank\",\n    \"rel\": \"noreferrer\"\n  }, \"https://chess-timer.spaceout.pl/\")));\n}\n;\nMDXContent.isMDXComponent = true;","tech":["Svelte","Css"],"category":"Project","appDescription":"Application","hero":{"full":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGQABAQADAQAAAAAAAAAAAAAAAAQBAgMF/8QAFwEAAwEAAAAAAAAAAAAAAAAAAAMEAf/aAAwDAQACEAMQAAABv6y0KfInKo9nJTBoDf/EABsQAAMAAwEBAAAAAAAAAAAAAAABAgMEEzIz/9oACAEBAAEFAsN1VZqcrtZr/TY8ilIaTOcH/8QAGhEAAgIDAAAAAAAAAAAAAAAAAAEREgITUf/aAAgBAwEBPwFpbIKY8JLM/8QAGREBAAIDAAAAAAAAAAAAAAAAAQAQERIi/9oACAECAQE/AR5mzWCf/8QAHRAAAgIBBQAAAAAAAAAAAAAAAAERIRAxMlFxgf/aAAgBAQAGPwKGKOTU8F3ikWbUf//EAB4QAAIBAwUAAAAAAAAAAAAAAAABERAhYTFRcZHx/9oACAEBAAE/IWtsqNhjWzAwujWo9j+Vp4ENifJ4B//aAAwDAQACAAMAAAAQZOf+/8QAGREAAwADAAAAAAAAAAAAAAAAAAERIVFh/9oACAEDAQE/EFkjAtAq2nU//8QAGBEAAwEBAAAAAAAAAAAAAAAAAAERYTH/2gAIAQIBAT8QZbpqRcMD/8QAHRABAAICAgMAAAAAAAAAAAAAAQARITFBsXGhwf/aAAgBAQABPxA+YNxTOInwrFnFRJ+GO/J7J6LqbkToxVisQwGjYDTLJv/Z","aspectRatio":1,"src":"/static/f633615fdba288fe9f02bc876142c0c5/58fe7/hero.jpg","srcSet":"/static/f633615fdba288fe9f02bc876142c0c5/e0f30/hero.jpg 236w,\n/static/f633615fdba288fe9f02bc876142c0c5/86afd/hero.jpg 472w,\n/static/f633615fdba288fe9f02bc876142c0c5/58fe7/hero.jpg 944w,\n/static/f633615fdba288fe9f02bc876142c0c5/02748/hero.jpg 1416w,\n/static/f633615fdba288fe9f02bc876142c0c5/06655/hero.jpg 1600w","srcWebp":"/static/f633615fdba288fe9f02bc876142c0c5/99fbb/hero.webp","srcSetWebp":"/static/f633615fdba288fe9f02bc876142c0c5/77392/hero.webp 236w,\n/static/f633615fdba288fe9f02bc876142c0c5/1f177/hero.webp 472w,\n/static/f633615fdba288fe9f02bc876142c0c5/99fbb/hero.webp 944w,\n/static/f633615fdba288fe9f02bc876142c0c5/4a492/hero.webp 1416w,\n/static/f633615fdba288fe9f02bc876142c0c5/e0075/hero.webp 1600w","sizes":"(max-width: 944px) 100vw, 944px","tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='400'%20viewBox='0%200%20400%20400'%20preserveAspectRatio='none'%3e%3cpath%20d='M0%20195v150h103v-87h-4l-3-1h7v-49c0-43%200-48-2-49v-1c1-1%202-10%202-49V60H92l5-1h6V45H0v150m256%200v150h55V45h-55v150m61%200v150h83V45h-83v150'%20fill='%23fafafa'%20fill-rule='evenodd'/%3e%3c/svg%3e"},"regular":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGQABAQADAQAAAAAAAAAAAAAAAAQBAgMF/8QAFwEAAwEAAAAAAAAAAAAAAAAAAAMEAf/aAAwDAQACEAMQAAABv6y0KfInKo9nJTBoDf/EABsQAAMAAwEBAAAAAAAAAAAAAAABAgMEEzIz/9oACAEBAAEFAsN1VZqcrtZr/TY8ilIaTOcH/8QAGhEAAgIDAAAAAAAAAAAAAAAAAAEREgITUf/aAAgBAwEBPwFpbIKY8JLM/8QAGREBAAIDAAAAAAAAAAAAAAAAAQAQERIi/9oACAECAQE/AR5mzWCf/8QAHRAAAgIBBQAAAAAAAAAAAAAAAAERIRAxMlFxgf/aAAgBAQAGPwKGKOTU8F3ikWbUf//EAB4QAAIBAwUAAAAAAAAAAAAAAAABERAhYTFRcZHx/9oACAEBAAE/IWtsqNhjWzAwujWo9j+Vp4ENifJ4B//aAAwDAQACAAMAAAAQZOf+/8QAGREAAwADAAAAAAAAAAAAAAAAAAERIVFh/9oACAEDAQE/EFkjAtAq2nU//8QAGBEAAwEBAAAAAAAAAAAAAAAAAAERYTH/2gAIAQIBAT8QZbpqRcMD/8QAHRABAAICAgMAAAAAAAAAAAAAAQARITFBsXGhwf/aAAgBAQABPxA+YNxTOInwrFnFRJ+GO/J7J6LqbkToxVisQwGjYDTLJv/Z","aspectRatio":1,"src":"/static/f633615fdba288fe9f02bc876142c0c5/1dc0b/hero.jpg","srcSet":"/static/f633615fdba288fe9f02bc876142c0c5/3a5ce/hero.jpg 163w,\n/static/f633615fdba288fe9f02bc876142c0c5/05730/hero.jpg 327w,\n/static/f633615fdba288fe9f02bc876142c0c5/1dc0b/hero.jpg 653w,\n/static/f633615fdba288fe9f02bc876142c0c5/f72c7/hero.jpg 980w,\n/static/f633615fdba288fe9f02bc876142c0c5/6e4a3/hero.jpg 1306w,\n/static/f633615fdba288fe9f02bc876142c0c5/06655/hero.jpg 1600w","srcWebp":"/static/f633615fdba288fe9f02bc876142c0c5/0acdf/hero.webp","srcSetWebp":"/static/f633615fdba288fe9f02bc876142c0c5/ac59e/hero.webp 163w,\n/static/f633615fdba288fe9f02bc876142c0c5/7660b/hero.webp 327w,\n/static/f633615fdba288fe9f02bc876142c0c5/0acdf/hero.webp 653w,\n/static/f633615fdba288fe9f02bc876142c0c5/75470/hero.webp 980w,\n/static/f633615fdba288fe9f02bc876142c0c5/68d47/hero.webp 1306w,\n/static/f633615fdba288fe9f02bc876142c0c5/e0075/hero.webp 1600w","sizes":"(max-width: 653px) 100vw, 653px","tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='400'%20viewBox='0%200%20400%20400'%20preserveAspectRatio='none'%3e%3cpath%20d='M0%20195v150h103v-87h-4l-3-1h7v-49c0-43%200-48-2-49v-1c1-1%202-10%202-49V60H92l5-1h6V45H0v150m256%200v150h55V45h-55v150m61%200v150h83V45h-83v150'%20fill='%23fafafa'%20fill-rule='evenodd'/%3e%3c/svg%3e"},"narrow":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGQABAQADAQAAAAAAAAAAAAAAAAQBAgMF/8QAFwEAAwEAAAAAAAAAAAAAAAAAAAMEAf/aAAwDAQACEAMQAAABv6y0KfInKo9nJTBoDf/EABsQAAMAAwEBAAAAAAAAAAAAAAABAgMEEzIz/9oACAEBAAEFAsN1VZqcrtZr/TY8ilIaTOcH/8QAGhEAAgIDAAAAAAAAAAAAAAAAAAEREgITUf/aAAgBAwEBPwFpbIKY8JLM/8QAGREBAAIDAAAAAAAAAAAAAAAAAQAQERIi/9oACAECAQE/AR5mzWCf/8QAHRAAAgIBBQAAAAAAAAAAAAAAAAERIRAxMlFxgf/aAAgBAQAGPwKGKOTU8F3ikWbUf//EAB4QAAIBAwUAAAAAAAAAAAAAAAABERAhYTFRcZHx/9oACAEBAAE/IWtsqNhjWzAwujWo9j+Vp4ENifJ4B//aAAwDAQACAAMAAAAQZOf+/8QAGREAAwADAAAAAAAAAAAAAAAAAAERIVFh/9oACAEDAQE/EFkjAtAq2nU//8QAGBEAAwEBAAAAAAAAAAAAAAAAAAERYTH/2gAIAQIBAT8QZbpqRcMD/8QAHRABAAICAgMAAAAAAAAAAAAAAQARITFBsXGhwf/aAAgBAQABPxA+YNxTOInwrFnFRJ+GO/J7J6LqbkToxVisQwGjYDTLJv/Z","aspectRatio":1,"src":"/static/f633615fdba288fe9f02bc876142c0c5/eaa58/hero.jpg","srcSet":"/static/f633615fdba288fe9f02bc876142c0c5/5a3ee/hero.jpg 114w,\n/static/f633615fdba288fe9f02bc876142c0c5/41f8f/hero.jpg 229w,\n/static/f633615fdba288fe9f02bc876142c0c5/eaa58/hero.jpg 457w,\n/static/f633615fdba288fe9f02bc876142c0c5/c309b/hero.jpg 686w,\n/static/f633615fdba288fe9f02bc876142c0c5/e3008/hero.jpg 914w,\n/static/f633615fdba288fe9f02bc876142c0c5/06655/hero.jpg 1600w","srcWebp":"/static/f633615fdba288fe9f02bc876142c0c5/15384/hero.webp","srcSetWebp":"/static/f633615fdba288fe9f02bc876142c0c5/31fce/hero.webp 114w,\n/static/f633615fdba288fe9f02bc876142c0c5/e3e25/hero.webp 229w,\n/static/f633615fdba288fe9f02bc876142c0c5/15384/hero.webp 457w,\n/static/f633615fdba288fe9f02bc876142c0c5/0258d/hero.webp 686w,\n/static/f633615fdba288fe9f02bc876142c0c5/64ea2/hero.webp 914w,\n/static/f633615fdba288fe9f02bc876142c0c5/e0075/hero.webp 1600w","sizes":"(max-width: 457px) 100vw, 457px","tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='400'%20viewBox='0%200%20400%20400'%20preserveAspectRatio='none'%3e%3cpath%20d='M0%20195v150h103v-87h-4l-3-1h7v-49c0-43%200-48-2-49v-1c1-1%202-10%202-49V60H92l5-1h6V45H0v150m256%200v150h55V45h-55v150m61%200v150h83V45h-83v150'%20fill='%23fafafa'%20fill-rule='evenodd'/%3e%3c/svg%3e"},"seo":{"src":"/static/f633615fdba288fe9f02bc876142c0c5/0ff54/hero.jpg"}}}]}},"staticQueryHashes":["1609575157","2068910035","2361467917","2361467917","3838421970","500183989","5650841"]}