<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fh="http://purl.org/syndication/history/1.0"><channel><title>Knip | Blog</title><description/><link>https://knip.dev</link><language>en</language><fh:complete/><atom:link rel="self" href="https://knip.dev/blog/rss.xml"/><item><title>Announcing Knip v6</title><link>https://knip.dev/blog/knip-v6</link><guid isPermaLink="true">https://knip.dev/blog/knip-v6</guid><description>Learn what&apos;s new in Knip v6.</description><pubDate>Fri, 20 Mar 2026 00:00:00 GMT</pubDate><content:encoded>&lt;div&gt;&lt;h2 id=&quot;knip-v6-is-out&quot;&gt;Knip v6 is out!&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;This release is all about replacing the TypeScript backend entirely with
&lt;code dir=&quot;auto&quot;&gt;oxc-parser&lt;/code&gt; and &lt;code dir=&quot;auto&quot;&gt;oxc-resolver&lt;/code&gt;, and making Knip a whole lot faster!&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;from-typescript-to-oxc&quot;&gt;From TypeScript to oxc&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Two years ago, the &lt;a href=&quot;./slim-down-to-speed-up&quot;&gt;“slim down to speed up”&lt;/a&gt; and &lt;a href=&quot;./knip-v4&quot;&gt;Knip v4&lt;/a&gt; work removed a
lot of overhead around TypeScript programs, made serialization and caching
practical, and improved memory efficiency a lot. But there was still a ceiling:
parsing and module resolution still depended on TypeScript APIs designed for
IDEs and language servers — not for the kind of single-pass static analysis Knip
does.&lt;/p&gt;
&lt;p&gt;Starting today, Knip v6 parses your source files with &lt;a href=&quot;https://oxc.rs/docs/guide/usage/parser&quot;&gt;oxc-parser&lt;/a&gt;. This is
more than just a parser swap for the sake of using the latest ’n greatest.&lt;/p&gt;
&lt;p&gt;Knip has always been designed to parse each file only once, but the TypeScript
backend carried the overhead of wiring up an entire program along with the
typechecker. That’s useful for IDEs keeping symbols connected, but much less so
when you only need to traverse an AST once to collect imports and exports. The
TypeScript backend made the setup as a whole harder and slower than it needed to
be, especially to keep large monorepos in check.&lt;/p&gt;
&lt;p&gt;Now with TypeScript itself Go-ing places, replacing that backend was only a
matter of time.&lt;/p&gt;
&lt;p&gt;Unsurprisingly, the search didn’t take long: &lt;code dir=&quot;auto&quot;&gt;oxc-parser&lt;/code&gt; offers everything we
need and its (experimental) raw transfer is crazy fast. Massive props to
&lt;a href=&quot;https://github.com/overlookmotel&quot;&gt;overlookmotel&lt;/a&gt;, &lt;a href=&quot;https://github.com/Boshen&quot;&gt;Boshen&lt;/a&gt; and all contributors for all the work on &lt;a href=&quot;https://oxc.rs&quot;&gt;the
oxc suite&lt;/a&gt;!&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;performance-tuning&quot;&gt;Performance tuning&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Next to this major refactor, I’ve been having a ball tuning Knip’s performance
further. One thing to highlight here is that a few more plugins have been
refactored to statically analyze configuration files directly, as opposed to
actually importing them (including transitive dependencies…). This includes
the ESLint (“flat config”), tsdown and tsup plugins.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;the-numbers&quot;&gt;The numbers&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Comparing v5 and v6 in some projects using Knip, all boosts are in the &lt;strong&gt;2-4x&lt;/strong&gt;
range:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://try.venz.dev/?type=bar&amp;#x26;labelX=Knip&amp;#x26;labelY=duration+(s)&amp;#x26;label=astro&amp;#x26;label=query&amp;#x26;label=rolldown&amp;#x26;label=sentry&amp;#x26;label=typescript&amp;#x26;l=v5.88.0&amp;#x26;l=v6.0.0&amp;#x26;data=4*2&amp;#x26;data=3.8*1.7&amp;#x26;data=3.7*1.7&amp;#x26;data=11*4&amp;#x26;data=3.7*0.9&quot;&gt;&lt;img src=&quot;https://cdn.venz.dev/i/chart.svg?pad=0&amp;#x26;type=bar&amp;#x26;labelX=Projects%20using%20Knip&amp;#x26;labelY=duration+(s)&amp;#x26;label=astro&amp;#x26;label=query&amp;#x26;label=rolldown&amp;#x26;label=sentry&amp;#x26;label=typescript&amp;#x26;l=v5.88.0&amp;#x26;l=v6.0.0&amp;#x26;data=4*2&amp;#x26;data=3.8*1.7&amp;#x26;data=3.7*1.7&amp;#x26;data=11*4&amp;#x26;data=3.7*0.9&quot; alt=&quot;venz-chart&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Trust me, I could look at this chart all day long! The same numbers in a table:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Project&lt;/th&gt;
&lt;th&gt;v5.88.0&lt;/th&gt;
&lt;th&gt;v6.0.0&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/withastro/astro&quot;&gt;astro&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;4.0s&lt;/td&gt;
&lt;td&gt;2.0s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/TanStack/query&quot;&gt;query&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;3.8s&lt;/td&gt;
&lt;td&gt;1.7s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/rolldown/rolldown&quot;&gt;rolldown&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;3.7s&lt;/td&gt;
&lt;td&gt;1.7s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/getsentry/sentry&quot;&gt;sentry&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;11.0s&lt;/td&gt;
&lt;td&gt;4.0s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/microsoft/TypeScript&quot;&gt;TypeScript&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;3.7s&lt;/td&gt;
&lt;td&gt;0.9s&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div&gt;&lt;h2 id=&quot;whats-new&quot;&gt;What’s new&lt;/h2&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Did I already mention Knip got 2-4x faster?&lt;/li&gt;
&lt;li&gt;Support for TS namespaces (and modules), new issue type &lt;code dir=&quot;auto&quot;&gt;namespaceMembers&lt;/code&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;namespace&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;MyNamespace&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;myName&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;knip&apos;&lt;/span&gt;&lt;span&gt;; &lt;/span&gt;&lt;span&gt;// we were ignored in v5,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;type&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;MyType&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;string&lt;/span&gt;&lt;span&gt;; &lt;/span&gt;&lt;span&gt;// yet in v6 we are included&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div&gt;&lt;h2 id=&quot;breaking-changes&quot;&gt;Breaking changes&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Granted, most of you won’t even notice. Here’s the list:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dropped support for Node.js v18 → Knip v6 requires Node.js v20.19.0 or newer&lt;/li&gt;
&lt;li&gt;Dropped issue type &lt;code dir=&quot;auto&quot;&gt;classMembers&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Dropped &lt;code dir=&quot;auto&quot;&gt;--include-libs&lt;/code&gt; → this is now the default and only behavior&lt;/li&gt;
&lt;li&gt;Dropped &lt;code dir=&quot;auto&quot;&gt;--isolate-workspaces&lt;/code&gt; → this is now the default and only behavior&lt;/li&gt;
&lt;li&gt;Dropped &lt;code dir=&quot;auto&quot;&gt;--experimental-tags&lt;/code&gt; → use &lt;a href=&quot;../reference/configuration#tags&quot;&gt;&lt;code dir=&quot;auto&quot;&gt;--tags&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;In &lt;a href=&quot;../features/reporters#custom-reporters&quot;&gt;reporter functions&lt;/a&gt;, &lt;code dir=&quot;auto&quot;&gt;issues.files&lt;/code&gt; is consistent with other issue
shapes. Removed &lt;code dir=&quot;auto&quot;&gt;issues._files&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;In the &lt;a href=&quot;../features/reporters#json&quot;&gt;JSON reporter&lt;/a&gt;, issues are consistently arrays for any issue type.
Removed root &lt;code dir=&quot;auto&quot;&gt;files&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;editor-extensions&quot;&gt;Editor Extensions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;../reference/integrations&quot;&gt;Editor extensions&lt;/a&gt; benefit from the core upgrades, for being faster and
more memory-efficient. Regardless of new extension releases, the local version
of Knip will be detected and used. Upgrade &lt;code dir=&quot;auto&quot;&gt;knip&lt;/code&gt; in your dependencies when
you’re ready.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;what-about-classmembers&quot;&gt;What about classMembers?&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;I feel you. Even Knip itself was using it. Until today.&lt;/p&gt;
&lt;p&gt;The problem is that the implementation relies on the JS-based
&lt;code dir=&quot;auto&quot;&gt;ts.LanguageService&lt;/code&gt; API that exposes the &lt;code dir=&quot;auto&quot;&gt;findReferences&lt;/code&gt; method. TypeScript v6
is the last JS-based release, and TypeScript v7 is a full rewrite in Go. I am
left wondering if it ever will be feasible and practical to build such features
using primitives (i.e. not via LSP) in a JS-based CLI (references:
&lt;a href=&quot;https://github.com/microsoft/typescript-go/discussions/455&quot;&gt;microsoft/typescript-go#455&lt;/a&gt;, &lt;a href=&quot;https://github.com/microsoft/typescript-go/tree/main/_packages/api&quot;&gt;@typescript/api&lt;/a&gt;). Knip was already
pretty unique for even trying this in a CLI tool.&lt;/p&gt;
&lt;p&gt;Not that many projects seem to be using it either: &lt;a href=&quot;https://github.com/search?q=classMembers%20path%3Aknip.json&amp;#x26;type=code&quot;&gt;github.com search for
“classMembers path:knip.json”&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If your project relies on it, feel free to open an issue on GitHub or contact me
and maybe we can work something out. Maybe a separate dedicated tool could work,
or extended support for Knip v5.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;upgrade-today&quot;&gt;Upgrade today&lt;/h2&gt;&lt;/div&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;npm&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;install&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-D&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip@latest&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div&gt;&lt;h2 id=&quot;deep-closing-thoughts&quot;&gt;Deep closing thoughts…&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Remember, Knip it before you ship it! Have a great day ☀️&lt;/p&gt;</content:encoded><category>Announcement</category></item><item><title>Knip for Editors &amp; Agents</title><link>https://knip.dev/blog/for-editors-and-agents</link><guid isPermaLink="true">https://knip.dev/blog/for-editors-and-agents</guid><pubDate>Wed, 17 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Three years in, Knip has found its place in &lt;a href=&quot;https://github.com/webpro-nl/knip/network/dependents&quot;&gt;over 10.000 projects&lt;/a&gt; and is
downloaded &lt;a href=&quot;https://www.npmx.dev/package/knip&quot;&gt;over 18M times/month&lt;/a&gt;. A long period of steady growth in usage
and stability allows Knip to become more accessible to more people. That’s why
I’m excited and proud to introduce the brand new &lt;a href=&quot;#editor-extension&quot;&gt;Editor Extension&lt;/a&gt; &lt;strong&gt;and&lt;/strong&gt;
MCP Server. For humans and coding agents alike, Knip will help keep your
codebases tidy.&lt;/p&gt;
&lt;p&gt;Don’t forget… Knip it before you ship it!&lt;/p&gt;

&lt;div&gt;&lt;h2 id=&quot;editor-extension&quot;&gt;Editor Extension&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;This one is for you.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;#lint-findings&quot;&gt;The usual suspects&lt;/a&gt; like red squiggles for unused exports are there. What
really moves the needle for DX with Knip’s module graph is &lt;strong&gt;navigation&lt;/strong&gt;. A
completely unique way to view &amp;#x26; fly through codebases. Connect the dots during
development and refactors, while keeping things in check. We’re starting out
with &lt;a href=&quot;#imports--exports&quot;&gt;3 key features&lt;/a&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Hover over Export&lt;/strong&gt; for import &amp;#x26; usage locations&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Imports Tree View&lt;/strong&gt; for direct links to implementations&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Exports Tree View&lt;/strong&gt; for direct links to import &amp;#x26; usage locations&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The extension has a &lt;a href=&quot;#mcp-server&quot;&gt;built-in MCP Server&lt;/a&gt; with a command and resources to
configure Knip for you, &lt;em&gt;completely automated&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Find &lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=webpro.vscode-knip&quot;&gt;Knip on the VS Code Marketplace&lt;/a&gt; and find &lt;a href=&quot;https://open-vsx.org/extension/webpro/vscode-knip&quot;&gt;Knip in the Open VSX
Registry&lt;/a&gt;.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;mcp-server&quot;&gt;MCP Server&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Configuring Knip has always been a major headache to many. No more. Tell your
coding agent to “configure knip” and it will RTFM so you don’t have to. Using a
newer model like Opus 4.5 or GPT 5.2 results in an optimized &lt;code dir=&quot;auto&quot;&gt;knip.json&lt;/code&gt; file
and an uncluttered codebase.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://www.npmx.dev/package/@knip/mcp&quot;&gt;MCP Server is available&lt;/a&gt; separately and built into the VS Code
Extension.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;language-server&quot;&gt;Language Server&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;The VS Code Extension and the MCP Server are powered by the new Language Server.
It’s a custom server that builds the full module graph of your project, and
provides a session with a graph explorer to request all sorts of interesting
information. Queries like “where is an export imported” or “is this import part
of a circular dependency” are just scratching the surface here.&lt;/p&gt;
&lt;p&gt;Extensions for other IDEs can be built on top. See
&lt;a href=&quot;https://github.com/webpro-nl/knip/blob/main/packages/language-server/README.md&quot;&gt;language-server/README.md&lt;/a&gt;&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;screenshots&quot;&gt;Screenshots&lt;/h2&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#lint-findings&quot;&gt;Lint Findings&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#imports--exports&quot;&gt;Imports &amp;#x26; Exports&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#contention&quot;&gt;Contention&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#circular-dependencies&quot;&gt;Circular Dependencies&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#conflicts&quot;&gt;Conflicts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#branching&quot;&gt;Branching&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#vs-code-extension-settings&quot;&gt;VS Code Extension Settings&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h3 id=&quot;lint-findings&quot;&gt;Lint Findings&lt;/h3&gt;&lt;/div&gt;
&lt;p&gt;&lt;img src=&quot;https://knip.dev/screenshots/editors-and-agents/diagnostics.webp&quot; alt=&quot;Lint Findings&quot;&gt;&lt;/p&gt;
&lt;div&gt;&lt;h3 id=&quot;imports--exports&quot;&gt;Imports &amp;#x26; Exports&lt;/h3&gt;&lt;/div&gt;
&lt;p&gt;&lt;img src=&quot;https://knip.dev/screenshots/editors-and-agents/imports-exports.webp&quot; alt=&quot;hover&quot;&gt;&lt;/p&gt;
&lt;div&gt;&lt;h3 id=&quot;contention&quot;&gt;Contention&lt;/h3&gt;&lt;/div&gt;
&lt;p&gt;The IDE extension shows extra issues in the tree views like circular
dependencies. We’re starting out with some extra novelties like conflicting and
branched/diamond-shaped import chains.&lt;/p&gt;
&lt;div&gt;&lt;h4 id=&quot;circular-dependencies&quot;&gt;Circular Dependencies&lt;/h4&gt;&lt;/div&gt;
&lt;p&gt;If an import is part of a circular dependency, Knip will display:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://knip.dev/screenshots/editors-and-agents/circular-dependency.webp&quot; alt=&quot;Circular Dependencies&quot;&gt;&lt;/p&gt;
&lt;div&gt;&lt;h4 id=&quot;conflicts&quot;&gt;Conflicts&lt;/h4&gt;&lt;/div&gt;
&lt;p&gt;TypeScript shows direct conflicts when importing or re-exporting the same named
export from different files. Except when the problem is more subtle and the
chain spans more than one file. Knip warns:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://knip.dev/screenshots/editors-and-agents/conflict.webp&quot; alt=&quot;Conflicts&quot;&gt;&lt;/p&gt;
&lt;div&gt;&lt;h4 id=&quot;branching&quot;&gt;Branching&lt;/h4&gt;&lt;/div&gt;
&lt;p&gt;Branched or diamond-shaped imports chains indicate unnecessary re-exports and
complexity. They help to untangle large codebases and shrink or get rid of
barrel files. Knip warns:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://knip.dev/screenshots/editors-and-agents/branch.webp&quot; alt=&quot;Branching&quot;&gt;&lt;/p&gt;
&lt;div&gt;&lt;h3 id=&quot;vs-code-extension-settings&quot;&gt;VS Code Extension Settings&lt;/h3&gt;&lt;/div&gt;
&lt;p&gt;&lt;img src=&quot;https://knip.dev/screenshots/editors-and-agents/vscode-extension-settings.webp&quot; alt=&quot;VS Code Extension Settings&quot;&gt;&lt;/p&gt;</content:encoded><category>Announcement</category></item><item><title>The State of Knip</title><link>https://knip.dev/blog/state-of-knip</link><guid isPermaLink="true">https://knip.dev/blog/state-of-knip</guid><pubDate>Fri, 28 Feb 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Honestly, Knip was a bit of a “cursed” project from the get-go. Getting anywhere
near a level of being broadly-ish valuable requires a good amount of
&lt;del&gt;foolishness&lt;/del&gt; determination, and it has always been clear it would stay far
from perfect. It’s telling that most of &lt;a href=&quot;../explanations/comparison-and-migration&quot;&gt;similar projects&lt;/a&gt; have been
abandoned.&lt;/p&gt;
&lt;p&gt;And even though Knip is in its infancy, this update is meant as a sign we feel
we’re still on to something. External indicators include increased usage looking
at numbers such as dependent repositories on GitHub and weekly downloads on npm,
and bug reports about increasingly less rudimentary issues.&lt;/p&gt;

&lt;div&gt;&lt;h2 id=&quot;two-cases&quot;&gt;Two Cases&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;For those interested, let’s take a look at two cases that hopefully give an
impression of how Knip works under the hood and the level of issues we’re
currently dealing with. It’s assumed you already have a basic understanding of
Knip (otherwise please consider to read at least &lt;a href=&quot;../explanations/entry-files&quot;&gt;entry files&lt;/a&gt; and
&lt;a href=&quot;../explanations/plugins&quot;&gt;plugins&lt;/a&gt; first).&lt;/p&gt;
&lt;div&gt;&lt;h3 id=&quot;case-1-nextjs&quot;&gt;Case 1: Next.js&lt;/h3&gt;&lt;/div&gt;
&lt;p&gt;Let’s say this default configuration represents, greatly simplified, &lt;a href=&quot;../reference/plugins/next#default-configuration&quot;&gt;the
default &lt;code dir=&quot;auto&quot;&gt;entry&lt;/code&gt; patterns&lt;/a&gt; for projects using Next.js:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;&quot;next&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;&quot;entry&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span&gt;&quot;next.config.ts&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;src/pages/**/*.tsx&quot;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Those files will be searched for and then statically analyzed to collect
&lt;code dir=&quot;auto&quot;&gt;import&lt;/code&gt; statements and find other local files and external dependencies. This
is the generic way Knip handles all source files.&lt;/p&gt;
&lt;p&gt;However, the game changes if the project uses the following Next.js
configuration:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;next.config.ts&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;nextConfig&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;pageExtensions&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span&gt;&apos;page.tsx&apos;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;};&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;default&lt;/span&gt;&lt;span&gt; nextConfig;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Next.js will now look for files matching &lt;code dir=&quot;auto&quot;&gt;src/pages/**/*.page.tsx&lt;/code&gt; instead (note
the subtle change of the glob pattern). Knip should respect this to find used
and unused files properly.&lt;/p&gt;
&lt;p&gt;Moving the burden to users for them to either not notice at all and get
incorrect results, or having to override the &lt;code dir=&quot;auto&quot;&gt;next.entry&lt;/code&gt; patterns and include
&lt;code dir=&quot;auto&quot;&gt;src/pages/**/*.page.tsx&lt;/code&gt; isn’t good DX. Knip should take care of it.&lt;/p&gt;
&lt;p&gt;To get the configuration object and the value of &lt;code dir=&quot;auto&quot;&gt;pageExtensions&lt;/code&gt;, Knip has to
actually load and execute &lt;code dir=&quot;auto&quot;&gt;next.config.ts&lt;/code&gt; ¹… and trouble is right around the
corner:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;next.config.ts&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;nextConfig&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;pageExtensions&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span&gt;&apos;page.tsx&apos;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;env&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;BASE_URL&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;process&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;env&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;BASE_URL&lt;/span&gt;&lt;span&gt;.toLowerCase&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;};&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;default&lt;/span&gt;&lt;span&gt; nextConfig;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;$&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;💥&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;LoaderError:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Error&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;loading&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;next.config.ts&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;💥&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Reason:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Cannot&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;read&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;properties&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;of&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;undefined&lt;/span&gt;&lt;span&gt; (reading &lt;/span&gt;&lt;span&gt;&apos;toLowerCase&apos;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Obviously a contrived example, but the gist is that lots of tooling
configuration expects environment variables to be defined. But when running Knip
there might not be a mechanism to set those. Clearly a breaking change when Knip
starts doing this, only for Next.js projects with a configuration file that
doesn’t read environment variables safely (or has other contextual
dependencies).&lt;/p&gt;
&lt;p&gt;By the way, &lt;a href=&quot;../reference/plugins/eslint#eslint-v9&quot;&gt;the ESLint v9 plugin&lt;/a&gt; has a similar issue.&lt;/p&gt;
&lt;p&gt;¹ Another approach could be to statically analyze the &lt;code dir=&quot;auto&quot;&gt;next.config.ts&lt;/code&gt;
configuration file. That would require some additional efforts and get us only
so far, but is definitely useful in some cases and on the radar.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; This has been solved in the Next.js plugin in v5.48.0.&lt;/p&gt;
&lt;div&gt;&lt;h3 id=&quot;case-2-knip-does-that&quot;&gt;Case 2: Knip does that?!&lt;/h3&gt;&lt;/div&gt;
&lt;p&gt;To further bring down user configuration and the number of false positives, the
system required more components. New components have been introduced to keep
improving and nail it for an increasing number of projects. This case is an
illustration of some of those components.&lt;/p&gt;
&lt;p&gt;Let’s just dive into this example and find out what’s happening:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;package.json&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;&quot;scripts&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;&quot;test&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;yarn --cwd packages/frontend vitest -c vitest.components.config.ts&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Orchestration is necessary between various components within Knip, such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Plugins, the Vitest plugin parses &lt;code dir=&quot;auto&quot;&gt;vitest.components.config.ts&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Custom CLI argument parsing for executables, e.g. &lt;code dir=&quot;auto&quot;&gt;yarn --cwd [dir]&lt;/code&gt; and
&lt;code dir=&quot;auto&quot;&gt;vitest --config [file]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;The workspace graph, to see &lt;code dir=&quot;auto&quot;&gt;packages/frontend&lt;/code&gt; is a descendant workspace of
the root workspace&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Patterns like in the script above do not occur only in &lt;code dir=&quot;auto&quot;&gt;package.json&lt;/code&gt; files, but
could be anywhere. Here’s a similar example in a GitHub Actions workflow:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;.github/workflows/test.yml&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;jobs&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;integration&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;runs-on&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;ubuntu-latest&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;steps&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;run&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;playwright test -c playwright.e2e.config.ts&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;working-directory&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;e2e&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;The pattern is very similar, because Knip needs to assign a configuration file
to a specific workspace (assuming there’s one in &lt;code dir=&quot;auto&quot;&gt;./e2e&lt;/code&gt;) and apply the Vitest
configuration to that particular workspace with its own set of directory and
entry file patterns.&lt;/p&gt;
&lt;p&gt;An essential part of Knip is to build up the module graph for source files. With
the configuration files still in mind, this is the pattern Knip follows towards
this goal:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Find configuration files at default and custom locations&lt;/li&gt;
&lt;li&gt;Assign them to the right workspace&lt;/li&gt;
&lt;li&gt;Run plugins in their own workspace to take entry file patterns from the
configuration objects&lt;/li&gt;
&lt;li&gt;Load and parse configuration files to get referenced dependencies&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The referenced dependencies are stored in the &lt;code dir=&quot;auto&quot;&gt;DependencyDeputy&lt;/code&gt; class to
eventually determine what dependencies are unused or missing in &lt;code dir=&quot;auto&quot;&gt;package.json&lt;/code&gt;
in each workspace.&lt;/p&gt;
&lt;p&gt;Both the configuration and entry files are then used to start building up the
module graph.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;comprehensive&quot;&gt;Comprehensive&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Discussing the two cases briefly covers only part of the whole process. This
might give a sense of the reason why Knip is pretty comprehensive. After all,
building the module graph for internal source files to find unused files and
exports requires the list of external dependencies including internal
workspaces. And on the other hand, a complete module graph is required to find
unused or missing external dependencies.&lt;/p&gt;
&lt;p&gt;The comprehensiveness also requires a range of components in the system, such as
the aforementioned ones, &lt;a href=&quot;../features/compilers&quot;&gt;compilers for popular frameworks&lt;/a&gt; and a &lt;a href=&quot;../features/script-parser&quot;&gt;script
parser&lt;/a&gt;, and other affordances such as &lt;a href=&quot;../features/auto-fix&quot;&gt;auto-fix&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;That said, code organization could be improved to make it more accessible for
contributions and, for instance, expose programmatic APIs to use the generated
module graph outside of Knip. Additionally, existing plugins can better take
advantage of existing components in the system, and new plugins can be developed
to further reduce user configuration and false positives.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;the-end&quot;&gt;The End&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;That’s all for today, thanks for reading! Have a great one, and don’t forget:
Knip it before you ship it! ✂️&lt;/p&gt;</content:encoded><category>Update</category></item><item><title>Two Years</title><link>https://knip.dev/blog/two-years</link><guid isPermaLink="true">https://knip.dev/blog/two-years</guid><pubDate>Fri, 04 Oct 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Exactly two years ago the first commit was pushed to GitHub and the first
version of Knip was published to the npm registry. The name was initially
&lt;a href=&quot;https://www.npmjs.com/package/exportman/v/0.0.1&quot;&gt;Exportman&lt;/a&gt;! We’ve come a loooong way… The JavaScript ecosystem is highly
dynamic and I’ve been crazy enough to even start, try and keep up with it! But
here we are.&lt;/p&gt;

&lt;p&gt;October 4th is World Animal Day, so there was really no choice but bring in the
crazy mascot that early adopters may remember:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://knip.dev/cow-with-orange-scissors-van-gogh-style.webp&quot; alt=&quot;Crazy cow with orange scissors in Van Gogh style&quot;&gt;&lt;/p&gt;
&lt;p&gt;Today we celebrate an unknown but CRAZY amount of clutter removed from so many
codebases with Knip’s help. Every single day I see many of those little red
blocks for thousands of lines of deleted code and dependencies. Call me crazy,
but to me this is pure joy and never gets old!    🟩 🟥 🟥 🟥 🟥&lt;/p&gt;
&lt;div data-button-container=&quot;&quot;&gt;&lt;button&gt;Hooray, release the clutter!&lt;/button&gt;&lt;/div&gt;
&lt;div&gt;&lt;h2 id=&quot;smiling-faces&quot;&gt;Smiling faces&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;The actual amount of code and dependencies removed and the number of smiling
faces this brings is what matters most, but also remain a good mystery. Clearly
more and more projects add Knip to their projects and CI workflows to keep
ever-growing codebases tidy. It’s wonderful to see if Knip plays its part in
today’s ecosystem to help with that. Thanks for bearing with me, here’s to a lot
more little red blocks in your PRs!    🟩 🟥 🟥 🟥 🟥&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;updates&quot;&gt;Updates&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Why not throw in some freshly cooked updates in &lt;a href=&quot;https://github.com/webpro-nl/knip/releases/tag/5.31.0&quot;&gt;v5.31.0&lt;/a&gt; for you while we’re
at it:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;../features/auto-fix&quot;&gt;The auto-fix feature&lt;/a&gt; has been completely revamped, it’s much better and a
lot more comprehensive! You have to see it to believe it.&lt;/li&gt;
&lt;li&gt;Knip has upgraded to &lt;a href=&quot;https://github.com/unjs/jiti&quot;&gt;Jiti v2&lt;/a&gt;, resolving a bunch of known issues when
loading configuration files authored in TypeScript and ESM, such as:&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;Cannot use &apos;import.meta&apos; outside a module&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;await is only valid in async functions and the top level bodies of modules&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;Unexpected identifier &apos;Promise&apos;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;Reflect.metadata is not a function&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;And that pesky “CJS build of Vite’s Node API is deprecated” warning is finally
gone!&lt;/p&gt;
&lt;p&gt;Thanks to everyone involved in making this happen, it’s truly much appreciated.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;stable&quot;&gt;Stable&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;If you haven’t tried Knip recently, it’s worth taking another look! Version 5
was released 8 months ago, and even though there were no breaking changes, it
includes many enhancements. In fact, Knip has been largely stable since version
3, which came out a year ago. Many releases have a compound effect, as Knip has
kept the pace for two years now.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;projects-using-knip&quot;&gt;Projects using Knip&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;This list of projects using Knip to keep their codebases tidy is something I
couldn’t be more proud of:&lt;/p&gt;
&lt;section&gt;&lt;div id=&quot;projects&quot;&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:adobe knip&quot;&gt;&lt;svg viewBox=&quot;0 0 64.57 35&quot;&gt;&lt;path d=&quot;M6.27 10.22h4.39l6.2 14.94h-4.64L8.3 15.24l-2.59 6.51h3.08l1.23 3.41H0zm15.76 3.1c.45 0 .94.04 1.43.16v-3.7h3.88V24.5c-.89.4-2.81.89-4.73.89-3.48 0-6.47-1.98-6.47-5.93s2.88-6.13 5.89-6.13Zm.49 8.87c.36 0 .65-.07.94-.16v-5.42c-.29-.11-.58-.16-.96-.16-1.27 0-2.45.94-2.45 2.92s1.2 2.81 2.47 2.81Zm11.73-8.87c3.23 0 5.98 2.18 5.98 6.02s-2.74 6.02-5.98 6.02-6-2.18-6-6.02 2.72-6.02 6-6.02m0 8.81c1.11 0 2.14-.89 2.14-2.79s-1.03-2.79-2.14-2.79-2.12.89-2.12 2.79.96 2.79 2.12 2.79m6.91-12.35h3.9v3.7c.47-.09.96-.16 1.45-.16 3.03 0 5.84 1.98 5.84 5.86 0 4.1-2.99 6.18-6.53 6.18-1.52 0-3.46-.31-4.66-.87V9.77Zm4.75 12.39c1.34 0 2.56-.96 2.56-2.94 0-1.85-1.2-2.72-2.5-2.72-.36 0-.65.04-.91.16v5.35c.22.09.51.16.85.16Zm13.06-8.85c2.92 0 5.6 1.87 5.6 5.64 0 .51-.02 1-.09 1.49h-7.27c.4 1.32 1.56 1.94 3.01 1.94 1.18 0 2.27-.29 3.5-.82v2.97c-1.14.58-2.5.82-3.9.82-3.7 0-6.58-2.23-6.58-6.02s2.61-6.02 5.73-6.02m1.96 4.7c-.2-1.27-1.05-1.78-1.92-1.78s-1.58.54-1.87 1.78z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:ag-grid knip&quot;&gt;&lt;svg viewBox=&quot;0 0 154 40&quot;&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M147.979 5.6v28.417h-4.768l-.127-2.988a8.3 8.3 0 0 1-2.67 2.479c-1.081.572-2.416.89-3.942.89-1.335 0-2.606-.254-3.687-.699-1.144-.509-2.162-1.144-2.988-2.034a9.6 9.6 0 0 1-1.971-3.179c-.508-1.208-.699-2.606-.699-4.132s.254-2.924.699-4.196c.509-1.271 1.145-2.352 1.971-3.242s1.844-1.589 2.988-2.098 2.352-.763 3.687-.763c1.526 0 2.797.254 3.878.827 1.081.572 1.971 1.335 2.67 2.415V5.664h4.959zm-10.426 24.539c1.653 0 2.924-.572 3.941-1.653s1.526-2.543 1.526-4.323-.509-3.179-1.526-4.323c-1.017-1.081-2.288-1.653-3.941-1.653-1.59 0-2.925.572-3.878 1.653-1.017 1.081-1.526 2.543-1.526 4.323s.509 3.179 1.526 4.259c1.017 1.145 2.288 1.717 3.878 1.717M119.067 5.6h4.959v5.849h-4.959zm0 8.773h4.959v19.644h-4.959zm-10.236 2.606c1.59-2.352 5.595-2.606 7.248-2.606v4.577c-2.035 0-4.069.064-5.277.954s-1.843 2.098-1.843 3.56v10.553H104V14.373h4.768zM26.489 28.677h-12.46l-2.162 5.34H6.4L17.907 7.062h4.768l11.506 26.955H28.65zm-1.717-4.26-4.513-10.998-4.514 10.998zm37.252-5.763H49.738v4.267h6.963q-.328 3.208-2.406 5.123-2.077 1.914-5.469 1.914-1.932 0-3.518-.693a7.8 7.8 0 0 1-2.717-1.95q-1.13-1.258-1.749-3.027t-.62-3.92.62-3.919q.619-1.767 1.749-3.026a7.8 7.8 0 0 1 2.734-1.95q1.604-.693 3.538-.693 4.004 0 6.081 1.927l3.284-3.286c-2.486-1.934-5.63-2.907-9.439-2.907q-3.172 0-5.723 1.002-2.554 1.004-4.376 2.807-1.824 1.807-2.807 4.357-.985 2.554-.985 5.688 0 3.1 1.003 5.67 1.002 2.571 2.825 4.375 1.823 1.805 4.375 2.808t5.688 1.002q3.063 0 5.524-1.002t4.193-2.808q1.732-1.804 2.661-4.375.93-2.57.93-5.67-.001-.437-.017-.856-.02-.42-.056-.858m38.768 0H88.506v4.267h6.963q-.328 3.208-2.406 5.123-2.078 1.914-5.469 1.914-1.932 0-3.518-.693a7.8 7.8 0 0 1-2.717-1.95q-1.13-1.258-1.749-3.027t-.62-3.92q0-2.15.62-3.919.619-1.767 1.749-3.026a7.8 7.8 0 0 1 2.735-1.95q1.603-.693 3.537-.693 4.004 0 6.081 1.927l3.284-3.286c-2.486-1.934-5.63-2.907-9.438-2.907q-3.173 0-5.724 1.002-2.554 1.004-4.376 2.807-1.823 1.807-2.807 4.357-.985 2.554-.985 5.688 0 3.1 1.003 5.67 1.002 2.571 2.825 4.375 1.823 1.805 4.375 2.808t5.689 1.002q3.062 0 5.523-1.002t4.193-2.808q1.732-1.804 2.661-4.375.93-2.57.93-5.67-.001-.437-.017-.856-.02-.42-.056-.858&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;svg viewBox=&quot;0 0 64 48&quot;&gt;&lt;path d=&quot;M51 10h7v8h-7z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M58 10H41l-8 8h25z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M36 22h7v8h-7z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M43 30v-7.995H29L20.992 30z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M24 34h7v8h-7z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M13 38.01 17 34h14v8H13z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M11 6h7v8h-7z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;m41 10-4 4H11V6h30z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M16 18h7v8h-7z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M16 26h9l8-8H16z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M6 30h7v8H6z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M6 37.988 13 38l7.992-8L6 29.953z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:anthropics knip&quot;&gt;&lt;svg viewBox=&quot;0 0 143 16&quot;&gt;&lt;defs&gt;&lt;clipPath id=&quot;anthropic_svg__anthropic-a&quot;&gt;&lt;path d=&quot;M0 0h143v16H0z&quot;&gt;&lt;/path&gt;&lt;/clipPath&gt;&lt;clipPath id=&quot;anthropic_svg__anthropic-b&quot;&gt;&lt;path d=&quot;M0 0h143v16H0z&quot;&gt;&lt;/path&gt;&lt;/clipPath&gt;&lt;clipPath id=&quot;anthropic_svg__anthropic-c&quot;&gt;&lt;path d=&quot;M0 0h143v16H0z&quot;&gt;&lt;/path&gt;&lt;/clipPath&gt;&lt;clipPath id=&quot;anthropic_svg__anthropic-d&quot;&gt;&lt;path d=&quot;M0 0h143v16H0z&quot;&gt;&lt;/path&gt;&lt;/clipPath&gt;&lt;clipPath id=&quot;anthropic_svg__anthropic-e&quot;&gt;&lt;path d=&quot;M0 0h143v16H0z&quot;&gt;&lt;/path&gt;&lt;/clipPath&gt;&lt;clipPath id=&quot;anthropic_svg__anthropic-f&quot;&gt;&lt;path d=&quot;M0 0h143v16H0z&quot;&gt;&lt;/path&gt;&lt;/clipPath&gt;&lt;clipPath id=&quot;anthropic_svg__anthropic-g&quot;&gt;&lt;path d=&quot;M0 0h143v16H0z&quot;&gt;&lt;/path&gt;&lt;/clipPath&gt;&lt;clipPath id=&quot;anthropic_svg__anthropic-h&quot;&gt;&lt;path d=&quot;M0 0h143v16H0z&quot;&gt;&lt;/path&gt;&lt;/clipPath&gt;&lt;clipPath id=&quot;anthropic_svg__anthropic-i&quot;&gt;&lt;path d=&quot;M0 0h143v16H0z&quot;&gt;&lt;/path&gt;&lt;/clipPath&gt;&lt;clipPath id=&quot;anthropic_svg__anthropic-j&quot;&gt;&lt;path d=&quot;M0 0h143v16H0z&quot;&gt;&lt;/path&gt;&lt;/clipPath&gt;&lt;clipPath id=&quot;anthropic_svg__anthropic-k&quot;&gt;&lt;path d=&quot;M0 0h143v16H0z&quot;&gt;&lt;/path&gt;&lt;/clipPath&gt;&lt;clipPath id=&quot;anthropic_svg__anthropic-l&quot;&gt;&lt;path d=&quot;M0 0h143v16H0z&quot;&gt;&lt;/path&gt;&lt;/clipPath&gt;&lt;/defs&gt;&lt;g clip-path=&quot;url(#anthropic_svg__anthropic-a)&quot;&gt;&lt;path fill=&quot;none&quot; d=&quot;M142.5 0v16H0V0z&quot;&gt;&lt;/path&gt;&lt;g clip-path=&quot;url(#anthropic_svg__anthropic-b)&quot;&gt;&lt;g clip-path=&quot;url(#anthropic_svg__anthropic-c)&quot;&gt;&lt;g clip-path=&quot;url(#anthropic_svg__anthropic-d)&quot;&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M29.016 11.099 22.056.27H18.3v15.47h3.204V4.911l6.96 10.829h3.756V.27h-3.204z&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;g clip-path=&quot;url(#anthropic_svg__anthropic-e)&quot;&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M34.87 3.254h5.193V15.74h3.314V3.254h5.193V.27h-13.7z&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;g clip-path=&quot;url(#anthropic_svg__anthropic-f)&quot;&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M61.836 6.436h-7.292V.27H51.23v15.47h3.314V9.42h7.292v6.32h3.314V.27h-3.314z&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;g clip-path=&quot;url(#anthropic_svg__anthropic-g)&quot;&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M72.555 3.254h4.089c1.635 0 2.497.596 2.497 1.723s-.862 1.724-2.497 1.724h-4.089zm9.901 1.723C82.456 2.06 80.313.27 76.8.27h-7.56v15.47h3.315V9.685h3.69l3.316 6.055h3.67l-3.672-6.517c1.843-.708 2.897-2.2 2.897-4.246&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;g clip-path=&quot;url(#anthropic_svg__anthropic-h)&quot;&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M92.612 12.906c-2.607 0-4.198-1.856-4.198-4.884 0-3.072 1.591-4.928 4.198-4.928 2.585 0 4.154 1.856 4.154 4.928 0 3.028-1.569 4.884-4.154 4.884m0-12.906C88.15 0 84.99 3.315 84.99 8.022c0 4.663 3.16 7.978 7.622 7.978 4.44 0 7.578-3.315 7.578-7.978C100.19 3.315 97.053 0 92.612 0&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;g clip-path=&quot;url(#anthropic_svg__anthropic-i)&quot;&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M110.696 7.143h-4.09v-3.89h4.09c1.636 0 2.498.664 2.498 1.945s-.862 1.945-2.498 1.945M110.85.27h-7.56v15.47h3.316v-5.613h4.245c3.515 0 5.659-1.857 5.659-4.929S114.366.27 110.85.27&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;g clip-path=&quot;url(#anthropic_svg__anthropic-j)&quot;&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M138.955 10.541c-.575 1.503-1.724 2.365-3.292 2.365-2.607 0-4.198-1.856-4.198-4.884 0-3.072 1.59-4.928 4.198-4.928 1.568 0 2.717.862 3.292 2.365h3.513C141.606 2.144 139.02 0 135.663 0c-4.463 0-7.623 3.315-7.623 8.022 0 4.663 3.16 7.978 7.623 7.978 3.38 0 5.965-2.166 6.827-5.459z&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;g clip-path=&quot;url(#anthropic_svg__anthropic-k)&quot;&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;m117.83.27 6.168 15.47h3.382L121.212.27z&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;g clip-path=&quot;url(#anthropic_svg__anthropic-l)&quot;&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;m5.825 9.618 2.11-5.436 2.11 5.436zM6.167.27 0 15.74h3.448l1.261-3.249h6.452l1.26 3.249h3.449L9.703.27z&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:arktypeio knip&quot;&gt;&lt;svg viewBox=&quot;0 0 100 100&quot;&gt;&lt;rect width=&quot;100&quot; height=&quot;100&quot; fill=&quot;#085b92&quot; rx=&quot;10&quot;&gt;&lt;/rect&gt;&lt;path fill=&quot;#f5cf8f&quot; d=&quot;M53.316 82.645H39.977L36.76 93.838h-8.177l14.277-46.92h7.507l14.344 46.92h-8.178zm-2.145-7.507-4.558-15.886-4.49 15.886zm22.186-20.712h-11.26v-7.507h30.698v7.507h-11.26v39.412h-8.178Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:withastro knip&quot;&gt;&lt;svg viewBox=&quot;0 -6 381 100&quot;&gt;&lt;path d=&quot;M25.8 85.2c-4.5-4.2-5.9-12.8-4-19.1 3.3 4 7.8 5.2 12.5 6 7.2 1 14.3.6 21-2.7l2.4-1.4c.6 1.8.8 3.7.5 5.6-.5 4.5-2.8 8-6.4 10.7-1.4 1.1-3 2-4.5 3-4.6 3.2-5.8 6.8-4 12.1v.6a12 12 0 0 1-5.3-4.6 13 13 0 0 1-2-7c0-1.2 0-2.5-.2-3.7-.4-3-1.8-4.3-4.5-4.4a5.2 5.2 0 0 0-5.4 4.2z&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M0 65s13.4-6.5 26.8-6.5l10.1-31.3c.4-1.5 1.5-2.5 2.7-2.5 1.3 0 2.4 1 2.8 2.5l10 31.3c16 0 26.9 6.5 26.9 6.5L56.5 3c-.6-1.8-1.7-3-3.2-3H26c-1.5 0-2.5 1.2-3.2 3zm141-19.9c0 5.5-6.8 8.8-16.2 8.8-6.2 0-8.3-1.5-8.3-4.7 0-3.4 2.6-5 8.8-5 5.5 0 10.3 0 15.7.8zm.1-6.8a71 71 0 0 0-14.5-1.2c-17.7 0-26 4.2-26 14 0 10.1 5.7 14 18.8 14 11.2 0 18.8-2.8 21.6-9.8h.4l-.1 4.7c0 3.6.6 3.9 3.5 3.9h13.8c-.8-2.2-1.2-8.2-1.2-13.4l.2-15.4c0-11.5-6.9-18.8-28.5-18.8-9.3 0-19.6 1.6-27.5 4 .8 3.1 1.8 9.4 2.3 13.5a61.4 61.4 0 0 1 24-4.5c10.4 0 13.2 2.3 13.2 7.1v2Zm37.9 10c-1.9.3-4.5.3-7 .3a60 60 0 0 1-7.1-.4l-.1 2c0 9.5 6.2 15 28.1 15 20.6 0 27.3-5.5 27.3-15.1 0-9.2-4.4-13.7-24-14.7-15.2-.6-16.6-2.3-16.6-4.2 0-2.2 2-3.4 12.2-3.4 10.6 0 13.4 1.5 13.4 4.5v.7a153 153 0 0 1 14.1 0v-1.7c0-11.2-9.2-14.9-27.2-14.9-20.3 0-27 5-27 14.6 0 8.7 5.4 14.1 24.8 15 14.3.4 16 2 16 4.2 0 2.4-2.4 3.5-12.5 3.5-11.5 0-14.4-1.6-14.4-5zm66-40.1a58.2 58.2 0 0 1-20.8 11.6v10.8h5V47c0 10 5.3 17.7 21.8 17.7 7 0 11.6-.8 17.4-2-.6-3.7-1.3-9.4-1.5-13.8a41 41 0 0 1-12.6 1.8c-6.6 0-9.3-1.8-9.3-7.1V30.8c8.6 0 17.1.2 22.1.4 0-4 .1-9.7.3-13.5l-22.1.2.2-9.7zm44.7 20.1.3-10.6h-15.1c.2 6.5.2 13.3.2 23 0 10 0 16.7-.2 23.2H292c-.3-4.6-.3-12.3-.3-18.9 0-10.3 4.2-13.3 13.7-13.3 4.4 0 7.6.5 10.3 1.5.1-3.8.9-11.4 1.3-14.7a34 34 0 0 0-9.8-1.4c-8.2 0-14.2 3.3-17 11.3l-.6-.1Zm75.1 12.2c0 8.3-6 12.2-15.4 12.2S334 49 334 40.5c0-8.6 6-11.8 15.4-11.8 9.3 0 15.4 3.5 15.4 11.8m15.7-.4c0-16.5-13-24-31.1-24-18.3 0-30.8 7.5-30.8 24s11.6 25.3 30.7 25.3c19.2 0 31.2-8.8 31.2-25.3&quot;&gt;&lt;/path&gt;&lt;defs&gt;&lt;linearGradient id=&quot;astro_svg__gradient&quot; x1=&quot;21&quot; x2=&quot;64.6&quot; y1=&quot;100&quot; y2=&quot;79.4&quot; gradientUnits=&quot;userSpaceOnUse&quot;&gt;&lt;stop stop-color=&quot;#d83333&quot;&gt;&lt;/stop&gt;&lt;stop offset=&quot;1&quot; stop-color=&quot;#f041ff&quot;&gt;&lt;/stop&gt;&lt;/linearGradient&gt;&lt;/defs&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:aws-samples knip&quot;&gt;&lt;svg viewBox=&quot;0 0 304 182&quot;&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M86.4 66.4c0 3.7.4 6.7 1.1 8.9.8 2.2 1.8 4.6 3.2 7.2.5.8.7 1.6.7 2.3 0 1-.6 2-1.9 3L83.2 92c-.9.6-1.8.9-2.6.9-1 0-2-.5-3-1.4-1.4-1.5-2.6-3.1-3.6-4.7-1-1.7-2-3.6-3.1-5.9Q59.2 94.7 41.5 94.7c-8.4 0-15.1-2.4-20-7.2s-7.4-11.2-7.4-19.2c0-8.5 3-15.4 9.1-20.6s14.2-7.8 24.5-7.8c3.4 0 6.9.3 10.6.8s7.5 1.3 11.5 2.2v-7.3c0-7.6-1.6-12.9-4.7-16-3.2-3.1-8.6-4.6-16.3-4.6-3.5 0-7.1.4-10.8 1.3s-7.3 2-10.8 3.4c-1.6.7-2.8 1.1-3.5 1.3s-1.2.3-1.6.3c-1.4 0-2.1-1-2.1-3.1v-4.9c0-1.6.2-2.8.7-3.5s1.4-1.4 2.8-2.1Q28.75 5 36.1 3.2C41 1.9 46.2 1.3 51.7 1.3c11.9 0 20.6 2.7 26.2 8.1 5.5 5.4 8.3 13.6 8.3 24.6v32.4zM45.8 81.6c3.3 0 6.7-.6 10.3-1.8s6.8-3.4 9.5-6.4c1.6-1.9 2.8-4 3.4-6.4s1-5.3 1-8.7v-4.2c-2.9-.7-6-1.3-9.2-1.7s-6.3-.6-9.4-.6c-6.7 0-11.6 1.3-14.9 4s-4.9 6.5-4.9 11.5c0 4.7 1.2 8.2 3.7 10.6 2.4 2.5 5.9 3.7 10.5 3.7m80.3 10.8c-1.8 0-3-.3-3.8-1-.8-.6-1.5-2-2.1-3.9L96.7 10.2c-.6-2-.9-3.3-.9-4 0-1.6.8-2.5 2.4-2.5h9.8c1.9 0 3.2.3 3.9 1 .8.6 1.4 2 2 3.9l16.8 66.2 15.6-66.2c.5-2 1.1-3.3 1.9-3.9s2.2-1 4-1h8c1.9 0 3.2.3 4 1 .8.6 1.5 2 1.9 3.9l15.8 67 17.3-67c.6-2 1.3-3.3 2-3.9.8-.6 2.1-1 3.9-1h9.3c1.6 0 2.5.8 2.5 2.5 0 .5-.1 1-.2 1.6s-.3 1.4-.7 2.5l-24.1 77.3q-.9 3-2.1 3.9c-.8.6-2.1 1-3.8 1h-8.6c-1.9 0-3.2-.3-4-1s-1.5-2-1.9-4L156 23l-15.4 64.4c-.5 2-1.1 3.3-1.9 4s-2.2 1-4 1zm128.5 2.7c-5.2 0-10.4-.6-15.4-1.8s-8.9-2.5-11.5-4c-1.6-.9-2.7-1.9-3.1-2.8s-.6-1.9-.6-2.8v-5.1c0-2.1.8-3.1 2.3-3.1q.9 0 1.8.3c.6.2 1.5.6 2.5 1 3.4 1.5 7.1 2.7 11 3.5 4 .8 7.9 1.2 11.9 1.2 6.3 0 11.2-1.1 14.6-3.3s5.2-5.4 5.2-9.5c0-2.8-.9-5.1-2.7-7s-5.2-3.6-10.1-5.2L246 52c-7.3-2.3-12.7-5.7-16-10.2-3.3-4.4-5-9.3-5-14.5q0-6.3 2.7-11.1c1.8-3.2 4.2-6 7.2-8.2 3-2.3 6.4-4 10.4-5.2s8.2-1.7 12.6-1.7c2.2 0 4.5.1 6.7.4 2.3.3 4.4.7 6.5 1.1 2 .5 3.9 1 5.7 1.6q2.7.9 4.2 1.8c1.4.8 2.4 1.6 3 2.5q.9 1.2.9 3.3v4.7c0 2.1-.8 3.2-2.3 3.2-.8 0-2.1-.4-3.8-1.2q-8.55-3.9-19.2-3.9c-5.7 0-10.2.9-13.3 2.8s-4.7 4.8-4.7 8.9c0 2.8 1 5.2 3 7.1s5.7 3.8 11 5.5l14.2 4.5c7.2 2.3 12.4 5.5 15.5 9.6s4.6 8.8 4.6 14c0 4.3-.9 8.2-2.6 11.6-1.8 3.4-4.2 6.4-7.3 8.8-3.1 2.5-6.8 4.3-11.1 5.6-4.5 1.4-9.2 2.1-14.3 2.1&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M273.5 143.7c-32.9 24.3-80.7 37.2-121.8 37.2-57.6 0-109.5-21.3-148.7-56.7-3.1-2.8-.3-6.6 3.4-4.4 42.4 24.6 94.7 39.5 148.8 39.5 36.5 0 76.6-7.6 113.5-23.2 5.5-2.5 10.2 3.6 4.8 7.6&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M287.2 128.1c-4.2-5.4-27.8-2.6-38.5-1.3-3.2.4-3.7-2.4-.8-4.5 18.8-13.2 49.7-9.4 53.3-5 3.6 4.5-1 35.4-18.6 50.2-2.7 2.3-5.3 1.1-4.1-1.9 4-9.9 12.9-32.2 8.7-37.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:babel knip&quot;&gt;&lt;svg viewBox=&quot;0 0 1638 744&quot;&gt;&lt;path d=&quot;m1063.3 151.8-.3-2.9-4.7.4.3 2.9zm31.6 76 .1 1.6 3.3-.3c-.1-1 .3-2.6 1-4.6l-.3-2.9c-1.4.1-2.8 2.2-4.1 6.2m-123.3 95.7c-.2-2.7-8.6-13.2-25.2-31.7-.3-3.4 5.4-8.5 17.1-15.2l33.4-29.1c7.5-9.5 11.9-24.9 13.2-46.3l-.4-4.9c-1.3-14.8-12-26.7-32.3-35.8-12-8.1-33.6-12.6-64.8-13.4-25.8 2.2-59.5 11.4-101 27.7q-17.1 12.3-39 24.6l.2 2.5c.9-.1 2.3-.6 3.9-1.7 1.7-.2 2.7.6 2.8 2.2l2.5-1.3 1.2-.1.1 1.1c.1 1.3-8.9 8.4-27.1 21.1l1.4 2.6-1.2.1-3-1.1c.1.9-1.2 1.5-3.7 1.7l.1 1.1 2.9 3.6c-.9.1-2.3-.3-4.2-1-4.2.4-8.3 2.6-12.4 6.8l1.7-7.4c6.1-26.3 10.3-49.6 12.5-69.8l-.3-1.3c-4.2-2.7-8.3-6.5-12.1-11.3.1-3.1.1-4.9 0-5.3l-.3-1.1-1.2.3c-13.2 19.8-38.6 53.6-76.3 101.4q-43.05 51-44.4 56.7c-11.7 12.1-17.3 19.4-16.7 21.9-3.1 2-4.4 4-3.9 6.2-.9.2-1.5-.1-1.7-1-5 8.1-12.4 13.3-22.3 15.6l-10.4 2.4c-1.4.3-2.1 1.3-2 3l.3 1.3 3.9-.9.3 1.1-8.8 3.4-15.6 3.6-8.2.5c-1.2 1.2 6.5-.1 3.5.6l-10.2 2.4c-6.2 1.4-9.6.9-10.2-1.6l-1.2.3c.2 1.1.3 1.9.1 2.6l-.6-2.5-8.2 1.9c-.6-3.8-11.7-17.6-33.2-41.4-.4-4.6 7.2-11.3 22.7-20l43.8-38.5c9.8-12.6 15.6-32.8 17.5-60.6l-.6-6.5c-1.7-19.6-15.9-35.4-42.6-47.6-15.8-10.7-44.2-16.4-85.2-17.3-34 2.9-78.4 15-133 36.1q-22.5 16.35-51.3 32.4l.3 3.4c1.3-.1 3-.8 5.1-2 2.2-.2 3.4.8 3.6 2.8l3.4-1.9 1.7-.1.1 1.6c.1 1.6-11.8 10.9-35.9 27.9l1.9 3-1.7.1-3.7-1.3c.1 1-1.6 1.7-5.1 2l.2 1.8 4 4.4c-1.3.1-3.1-.3-5.4-1.1-7.8.7-15.4 6.3-22.9 16.9l1.9 3c6.5-6 10.3-9 11.4-9.1l.4 4.9c-1.1.1-2.8.8-5.1 2l4.1 6.2q11.85-12.75 26.1-21.9c4.7 1.2 7.2 2.7 7.3 4.3l3.6-.3c25.8-19.1 51.3-32.9 76.6-41.4l.3 3.4q-7.05 10.5-9.6 10.8c.2 2.4 1 4.5 2.5 6.3.4 4.3-11.1 33.3-34.4 86.9-52.9 124.6-97.3 216.8-133.4 276.4q.15 1.8 2.1 4.8c8.9-2.1 14.5-4.3 16.9-6.4l1.9-.2.3 3.4 3.3-.3 3.4-1.9c.1 1 1.2 1.5 3.5 1.3l.3 3.4c.3 3.3-1.6 8.3-5.6 15.2-3.6 4.1-7.5 12.7-11.6 25.8l.1 1.6 3.3-.3c14.4-16.1 25.3-31.9 32.8-47.3 42-12.3 74-24.4 96.2-36.3 22.3-1.9 39.3-7.8 50.9-17.5l-.2-1.8-8.4 2.5-1.9.2-.2-1.8c16.4-2.5 27.7-6.1 34-11.1 31.9-24.6 56-42 72.3-52.3 33.5-24.6 55.3-48.6 65.2-71.9 1.8-.4 3.6-.8 5.6-1.3 4.7-.2 7.3-.3 8-.5-.2-.9.2-1.4 1.1-1.6 7.5-.8 3.9.5 8.7-.6l12.6-2.9c-.8.2-1.1.6-.9 1.4l1.9-1.2c-.4 0-.7-.1-1-.2l2.1-.5-1 .6c1.4.2 2.9.1 4.6-.3l.9 3.7-57.3 91.1-12.7 15.9-6.2 20.8 1.2-.3 6.2-2.6-2 8.1.6 2.4 1.7 2.1c-.8.2-1.1.7-.9 1.6l.3 1.3 2.6-.6q5.7-4.95 4.8-9c4.1.7 6.8 1 8.2.6l.3 1.3c-2.5.6-3.8 2.6-4 6l.3 1.3 1.4-.3c20.8-22.7 71.8-100.4 112.7-153.1-1.3-5.7 20-13.6 64-23.8l1.4-.3q2.4 10.35-10.2 50.1c-5.4 16-8 24.8-7.6 26.2-7 21.3-10.3 32.8-9.9 34.6l-15.6 51.1c-10.1 26.2-17.8 53.7-23.2 82.7.9-.2 2.3-.1 4.3.4l2.2-1.9c.2.9.8 1.2 1.7 1l-.9-3.7 6.8-.2c2-.5 3.7-3 5.1-7.6-.3-6.9 1.1-10.6 4.2-11.4 4.2-16.4 6.8-24.6 7.7-24.9q5.85-24.45 8.7-27.9c5.9-21.2 10.2-32.1 13-32.8l.6 2.6-4.3 11.1q-11.25 49.95-22.8 78.9l2.2 9.6 1.4-.3c18.6-40 45.4-119.2 80.3-237.6 1-10.4 6-18.5 14.9-24.2l-2-2.1-.3-1.1c4-.9 6.8-2.5 8.4-4.7-.2-.9-3.7-2.2-10.5-4l17.4-74.6c3.8-3.4 6-5.2 6.7-5.2l.3 3.8c-.9.1-2.3.6-3.9 1.7l3.3 4.7c6-6.5 12.5-12.1 19.6-16.8 3.6 1 5.4 2.2 5.6 3.4l2.6-.2c19.8-14.5 39.2-24.9 58.3-31.2l.2 2.5q-5.25 7.95-7.2 8.1c.2 1.8.7 3.4 1.6 4.8.3 3.3-8.3 25.3-25.9 66.1-40.2 94.5-73.9 164.4-101.3 209.8.1.9.7 2.1 1.8 3.7 6.7-1.6 11-3.3 12.7-4.9l1.2-.1.2 2.5 2.8-.2 2.5-1.3c.1.7 1 1 2.7.9l.2 2.7c.2 2.4-1.2 6.2-4.3 11.4-2.9 3.1-5.9 9.6-9.1 19.5l.1 1.3 2.6-.2q16.35-18.3 24.9-36c31.9-9.4 56.2-18.5 73-27.5 17.1-1.5 30-5.9 38.8-13.3l-.1-1.3-6.5 1.9-1.4.1-.1-1.3c12.4-1.8 21.1-4.6 25.8-8.3 24.2-18.6 42.5-31.9 54.9-39.7 38.6-28.1 56.6-55.1 54.4-81m-6.6 1.7.9 10.1c-1.2 2.5-2.5 3.8-3.7 3.9l-1.5-17.2c2.8 1 4.2 2 4.3 3.2m-757.2-81.4-1.7.1-.3-3.1 6.9-.6.1 1.6c-1.1.1-2.8.7-5 2m-33.7 337.1c-4-1.8-7.6-2.5-10.7-2.2l-.4-4.9c-.2-1.9.9-3.2 3.3-3.7 2.2-.2 3.5 1.4 3.7 4.6q8.7-10.65 9.6-10.8l3.7 1.5c-1.2 10-4.3 15.1-9.2 15.5m360.1-376.7c-1.7.2-5.1-5.1-10-15.6l-.3-3.1c3.2-.3 6.5 4.9 10 15.6zm-4.8-37.3-1.4 3.3-48.9-20.4c32.6 1.1 49.4 6.8 50.3 17.1M322.9 344.2l-6.9.6-.3-3.1 6.9-.6zm-5.6-106.5 1.7-.1.4 4.9c-1.6.1-3.7 2.5-6.3 7.1l-.3-3.4c3.1-3.7 4.7-6.5 4.5-8.5m-14.5 34.2.6 6.5-1.7.1-.6-6.5zm-7.6 12.2 3.3-.3c-.3 5.4-1.8 8.3-4.5 8.5l-1.7.1c2.1-3.6 3.1-6.4 2.9-8.3m-5.7 17 1.9-.2.1 1.6-3.1 5.2-3.3.3-.1-1.6c3.3-.3 4.8-2 4.5-5.3m-5.6 15.3-1 8.2-1.7.1-.7-8.1zm-56.1 159.5c-2.2 11.2-4.6 16.9-7.1 17.1l-.1-1.6c-.6-5.5 1.8-10.7 7.2-15.5m-10.3 22.3.1 1.6c.2 2.2-.8 3.5-3 3.6l-.1-1.6q-.3-2.85 3-3.6m-3 46.3 5.2-.5.2 1.8c-1.3.1-3 .8-5.1 2l-3.3.3c-.2-1.7.9-3 3-3.6m148-45.7c-29.2 14.4-46.4 24.2-51.5 29.3-31.6 11-47.3 17.8-47 20.5-28.1 11.1-46.6 19.3-55.5 24.4-2.1.2-5.1-.6-9.1-2.4-.5-5.7 2.1-10.3 7.6-14 4.9-.4 9.6.3 14.1 2.2 5.2-2.7 14.3-5.7 27.2-8.9l-.3-3.4-10.4.9c1.3-1.8 11.3-6.5 30.1-14.1l5.2-.5.1 1.6c-8.9.8-13.8 3.4-14.9 8.1.2 2.1 1.4 3 3.6 2.8 6.7-4.2 10-6.7 9.9-7.4 12.7-2.4 47.8-20.8 105.3-55.1l.3 3.1c.1 1.5-4.8 5.7-14.7 12.9m-88.2 29c8.4-.7 15.6-4.1 21.6-10 2.4-.2 3.7.7 3.8 2.8-4.1.4-12 3.8-23.5 10.4l-1.7.1zm142.3-109.3-44.1 34.9c-32.8 21.5-50.4 32.3-52.9 32.5-52.2 28.7-84.7 43.6-97.3 44.7l-1.9.2c1.6-5.9 24.8-53.4 69.8-142.8 19.8-1.7 51-10.9 93.5-27.7l10.4-.9c21.5-1.9 37.6 2.3 48.2 12.3l.6 6.5c-8 23-16.8 36.4-26.3 40.3M330.4 370l7.1-.6.1 1.6-7.1.6zm99.7-16.9 5.2-.5c4.8 2.3 7.3 4.3 7.5 6.1l.1 1.6c-4.6.4-8.9-2-12.8-7.2m14.1-80.3c-4.6 5.5-17.2 14.9-37.8 28.1-6.8.6-32.1 10.4-75.9 29.6-2.2-1-4.5-1.4-7-1.2l-.3-3.1c-.5-6.3 2.3-14.2 8.5-23.8 3.4-18 7.1-28.3 11.2-30.8l36.5-82.1q-.6-7.65 23.4-11.7l5.2-.5.4 4.7c15.7-2.4 25.5-3.8 29.3-4.1 29-2.5 44.1 3.4 45.3 17.5l3.3-.3-.7-8.3 3.6-.3c8.5 4.7 13.1 10.4 13.7 17.1.4 4.6-2.1 10.3-7.4 17.1-2.2.2-3.5-1.4-3.7-4.6l-3.6.3-.8 10c-14.7 22-25.4 33.3-32 33.9-6 8.3-9.7 12.4-11.2 12.5m22.4 57.5c-3-2-5.4-2.9-7.2-2.8l-.4-4.9 3.3-.3 7.3 4.3c.3 2.3-.7 3.5-3 3.7m23.2 27.5c3.2 1.3 5.1 2.7 5.5 4l-1.6.4.1.1c-.3 0-.7.1-1 .2l-2.4 1.9zm2.2 13.8-.3-1.3 4.2-1 .3 1.3zm10.1 11.3c4.3-.7 6.4-1 14.4-2.8l.3 1.3-15.2 3.5c.2-.7.4-1.4.5-2m14.8 6.3c-6.4.6-5-.2-15.2 2.1l-.3-1.3 12.7-4.1 6.1-1.4.6 2.4c-2.7.6-.7.6-3.9 2.3m13.5-3.2c-1.5.4-2.7-.3-3.4-2l3.9-.9c1.7-.4 2.8.3 3.2 2zm36.6-39.4-.3-1.3 6.3-1.5.6 2.4zm39.1 239.8c.4-1.8.5-3.1.3-4l1.4-.3c1.7-.4 2.7.2 3.1 1.8l.3 1.3zm27.4-229.5-2.8-.5c-4.5 1.8-8.3 3.1-11.4 3.8l-2.6.6c-1.5.4-2.7-.2-3.3-1.8l18.3-4.2 6-2.8 2 2.3c-2.9.6-5 1.5-6.2 2.6m14.1-4.5-.3-1.3c.9-.2 2.1-.9 3.4-2.2l13-3 .3 1.3c-6.9 1.7-12.4 3.4-16.4 5.2m2-26.3c-.9.2-2.1 1-3.6 2.2-.2-.9-2-.9-5.4-.1-.6-2.5 9-6 28.9-10.6l2.8-.6.6 2.4c-14 4.1-21.8 6.4-23.3 6.7m35-37.8c-1.4 15.9-7 24.9-16.9 27.2l-.3-1.3-8.8 3.4-3.9.9c-2 .5-3.8.4-5.4-.1l-.8-3.5c-.3-1.3 12.4-18.9 38.2-52.7l3 .5c1.1 4.6-.6 13.1-5.1 25.6m61.9-53-1.2.1-.2-2.5 5.2-.5.1 1.3c-.9.2-2.2.7-3.9 1.6M721 491.4c-3-1.4-5.7-2-8-1.8l-.3-3.8q-.15-1.95 2.4-2.7c1.7-.2 2.7 1 2.9 3.6 4.3-5.5 6.7-8.3 7.2-8.3l2.7 1.1c-1 7.6-3.3 11.6-6.9 11.9m273.4-286c-1.3.1-3.8-3.9-7.7-12l-.2-2.5c2.5-.2 5.1 3.7 7.7 11.7zm-3.6-28.6-1.2 2.6-37-15.5c24.7.8 37.5 5.1 38.2 12.9M833.9 311.5l-5.2.5-.2-2.5 5.2-.4zm-4.3-80.9 1.4-.1.3 3.8q-1.95.15-4.8 5.4l-.2-2.5q3.45-4.35 3.3-6.6m-10.9 26 .4 4.9-1.4.1-.4-4.9zm-5.9 9.3 2.6-.2q-.45 6.3-3.3 6.6l-1.4.1c1.5-2.8 2.2-5 2.1-6.5m-4.2 12.8 1.2-.1.1 1.3-2.3 4-2.6.2-.1-1.3c2.7-.2 3.9-1.6 3.7-4.1m-4.2 11.6-.9 6.4-1.2.1-.5-6.3zm-42.7 121.3q-2.55 12.6-5.4 12.9l-.1-1.1c-.3-4.2 1.5-8.2 5.5-11.8m-7.9 16.9.1 1.1c.2 1.8-.6 2.8-2.4 2.9l-.1-1.3q-.15-1.95 2.4-2.7m-2.2 35.2 4-.3.1 1.3c-.9.1-2.3.6-3.9 1.5l-2.6.2q-.15-2.1 2.4-2.7M863.9 429c-22 10.9-35.1 18.3-39.2 22.1-24 8.4-35.9 13.6-35.7 15.7-21.3 8.5-35.3 14.6-41.9 18.5-1.6.1-3.9-.5-6.9-1.9-.4-4.3 1.6-7.8 5.8-10.4 3.8-.3 7.4.2 10.7 1.6 4-2 10.9-4.2 20.7-6.7l-.2-2.5-8.2.6c1-1.4 8.7-5 23-10.8l4-.3.1 1.1c-6.8.6-10.6 2.6-11.4 6.2.1 1.6 1.1 2.4 2.8 2.2 5-3.3 7.4-5.2 7.4-5.8 9.6-1.7 36.2-15.7 79.9-41.9l.2 2.5c.1 1.1-3.6 4.3-11.1 9.8m-67 22c6.5-.6 12-3.1 16.6-7.5 1.7-.2 2.7.6 2.8 2.2-3 .3-8.9 2.8-17.8 7.6l-1.4.1zm108.2-83.1-33.3 26.8c-24.9 16.3-38.4 24.5-40.5 24.7-39.6 21.8-64.2 33.1-73.9 33.9l-1.4.1c1.2-4.5 18.9-40.6 53.1-108.4 14.9-1.3 38.5-8.4 70.9-21.2l8.1-.7c16.3-1.4 28.5 1.8 36.5 9.5l.4 4.9c-6.1 17.2-12.7 27.3-19.9 30.4m-65.4-36.8 5.2-.5.1 1.3-5.2.5zm75.7-12.9 4-.3c3.7 1.8 5.6 3.4 5.7 4.7l.1 1.1c-3.5.3-6.8-1.5-9.8-5.5m10.5-60.9c-3.5 4.2-13 11.4-28.5 21.4-5.2.5-24.4 7.9-57.6 22.3-1.6-.6-3.4-.8-5.3-.7l-.2-2.5c-.4-4.8 1.7-10.8 6.3-18.1 2.6-13.8 5.5-21.5 8.5-23.3L877 194c-.3-3.7 5.6-6.7 17.6-9l4-.3.3 3.8q17.7-2.85 22.2-3.3c22-1.9 33.5 2.5 34.4 13.3l2.6-.2-.5-6 2.6-.2c6.4 3.5 9.8 7.7 10.2 12.7.3 3.6-1.5 8-5.3 13.1-1.7.2-2.7-1-2.9-3.6l-2.6.2-.8 7.5c-11.1 16.9-19.2 25.6-24.3 26-4.5 6.1-7.3 9.2-8.6 9.3m11.7 41.6-.3-3.8 2.6-.2 5.6 3.4q.15 2.4-2.4 2.7c-2.4-1.5-4.2-2.2-5.5-2.1M472.1 541.8l-2.6.6-2.2 1.9c.4 1.6 1.4 2.2 3.1 1.8s2.4-1.4 2-3zm-9.9-19.7.3 1.3c1.7-.4 2.4-1.4 2-3l-.3-1.3c-1.6.4-2.3 1.4-2 3m70.4-167.5 3-.7-.6-2.6-3 .7zm907.4 76.2c-30.4 6.8-34.2 5.6-40.6 6.1l.2 2.5 2.8-.2 1.5-.1-.4-.3 3.3-1.3c30.1-3.3 33.6-2.1 33.3-5.5zm-163.7 21.7.2 2.5h.4l-.2-2.5zm-18.8-65.9-2.7-.9c-2.2 5.9-3.3 9.4-3.2 10.4l.1 1.1c2.1-.1 4-3.7 5.8-10.6m188.7 43.7.2 2.5 4.4.8-.2-2.5zm-206.9 25.3-6.8-.8-1.2 2.6.1 1.3 40.5-3.4-.2-2.5zm-18.4-88.7-.1-1.3-1.4.1-2.5 1.6 1.4 2.4c1.9-.2 2.8-1.1 2.6-2.8m244.5 45 1.9-.2c1.1-.1 1.6-1 1.5-2.6l-1.1-2.4c-6.9.6-10.1.9-15.7 4l-.1-1.3-8.3.8c-.2-2.5-.9-3.8-2-3.7l-4.3.4c-5 .4-7.4.2-9.9 2.1-.1-.9-.4-1.3-.9-1.3l-4.8.4-2.8 1.6c-.1-.9-.4-1.3-.9-1.3l-1.7 1.5-.1-1.3-6.7-.5-1.6.1.2 2.5 3.4.9 3.2-.2c1.1.7 2.3.9 3.7.8l2.8-1.4.1 1.1c-15.7 3.9-15.6 3.2-26.4 5-1.2-.8-2.1-1.2-2.7-1.1l-.2.2c-1.2-.1-1.9-.9-2-2.2l5.6-.7c.4 0 .7.4 3.8 1 4.5-2.2 4.7-3.1 7.1-3.3l-.2-2.5c-15.4 3-9.2 1-28.5 2.7l-.9.1-.2-2.5c24.8-3 16.5-1.3 25-3.7.1.9.4 1.3.9 1.3 1-1 2.1-1.5 3.4-1.7l1.7-.1c8.7-.7 11.6 1 28.8-3.8l.1 1.1 2.8-1.4 2.6-.2c-.2-2.5 3.6-2.9 4.9-3l-.2-2.7c-30.2 6.1-38.1 4.4-46.5 6.8l-.1-1.1c-7.9 1.4-8.2.8-10.2.9-.6.1-1.5.6-2.5 1.6-.1-.9-.4-1.3-1-1.3-.3 0-.4.1-.5.1l-25.6 4.2c-.1-.7-.4-1.1-1-1-13.3 2.8-9.7 3.3-27.5 4.9-.8.1-1.9.5-3.3 1.4-.1-.7-.5-1.1-1.4-1l-10.9.9-7.3 1.8c-.1-.7-.5-1.1-1.4-1-4.1 1.1-7.7 1.8-10.6 2h-.2c-1.8.2.9-.5-.5-1.1l-2.2 1.3c-3.2.3-1.5-.2-12.5-.1-19.3 2.4-17.2 2.7-19.3 2.8l-7.2-.5c.1.7-.3 1.2-1.1 1.2-8.2-1.1-12.4-2.4-12.5-3.9q1.65-11.7 5.7-12l1.4-.1-1.2 2.6 1.4-.1c2.6-1.4 3.8-2.7 3.7-3.9l-.2-2.7-2.6.2-.2-2.5c-.2-1.9.1-3.6.8-5l5.9-9.5.2 2.5 2.8-.2-.2-2.5-1.6-2.3c2.1-1.8 3.7-2.8 5-2.9l-.1-1.3-3.8.3-.3-3.8c7.6-15.8 11.2-25 11-27.6l2.7 1.1c1.7-.1 2.5-1.1 2.4-2.9l-2.6.2-.1-1.1c-.2-1.9.2-3.7 1-5.3 4.1-4.3 6-8.6 5.6-13.1.8-.1 1.2.3 1.3 1.2 3.5-2 6.2-7.3 8.2-16.1 6.2-11.2 15-33.6 26.5-67.1 22-59.2 21.1-65.5 24.2-79.5l-2.6.2c.2 1.8-.2 3.5-1 5.1-1.8-.7-3.2-1.1-4.2-1l-.1-1.1c-.4-5.1 1.7-11.2 6.5-18.4l1.2-.1 2.2 8.6 2.6-.2c-.1-.6.6-4 2-10.3-.1-1.3-1.1-2.1-3.1-2.2l-2.5 1.6c-.2-1.8-.1-6.5.2-14l-1.3.1c-2.2-2.2-3.3-4-3.4-5.5l-14.3 1.4c-.1-1-.6-2.5-1.6-4.4-.1-1.3 3.1-2.6 9.7-3.9l2.9 1.1 2.7-1.6c.1.9.6 1.3 1.6 1.2l2.7-1.6c.1.9.6 1.3 1.6 1.2l1.3-.1-.2-2.9c-2 .2-7.3.2-15.7-.1l-2.7 1.8-.1-1.6c-67.1 5.5-105.2 8.6-114.3 9.5-1.2.1-5.9 0-14.2-.2.1 1.1-.9 1.7-2.9 1.9l-2.9-1.3-9.8 2.5c-2.3.2-6.2.1-11.6-.5-1.5 1.2-3.3 1.9-5.5 2.1-1.2.1 14.3-.8 28.7-1.8-1.5 1.2-3.8 1.9-7 2.2-2.2.2-4.1-.1-5.7-1-2.2 1-9.3 2.6-21.2 5l-2.9-1.1-46.8 7.2c-1.8-.9-3.9-1.2-6.3-1-2.5.2-6.7 1.1-12.5 2.7l-22.6 9.4 1.7 2.8c1.1-.1 2.7-.7 4.6-1.8l8 .7-1 7.5c-7.4 3.3-11.7 8.2-12.9 14.4-11.1 4.9-16.6 8.4-16.6 10.5l.1 1.3 1.7-.1 3-1.6 3.5 4.2.5 5.8c.2 1.8-18.5 41.1-55.9 117.9-32.4 74-49.4 114.5-51 121.8-11.1 3.1-17.5 7.6-19.4 13.6.2 1.9 3.5 3.2 9.9 3.7l.3 2.9-2.9 4.8.5 5.8q.45 4.5 24.3 6.9c-.1-1 .4-1.6 1.5-1.7q.45 5.4-3 21l1.7-.1c6.6-9 9.7-15.2 9.4-18.6l1.4-.1c1.6-.1 3.3 1.7 5.3 5.6-2 .8-9 16.7-21 47.8l1.7 2.8 1.7-.1c14.7-37.2 23.9-57.8 27.7-61.7 19.3-1.7 52.7-5.1 100.1-10.2l3-1.8c.1 1 .7 1.5 1.8 1.4l3.1-.3 3-1.8c.1 1 .7 1.5 1.8 1.4l35.9-3.1c9.5-.8 14-3.7 13.6-8.6-.1-1.3 5.5-2.8 16.8-4.4 1.1-.1 2.7.2 4.9.9-.1-.9 5.6-1.8 17-2.8.3-6 2.2-9.2 5.6-9.5l-.3-2.9c-3.2.3-6.8 1.1-11 2.5-7.5-.4-12.3-1-14.3-1.7-2 1.1-3.5 1.7-4.6 1.8l-25 .8-3 1.6q-.15-1.35-1.8-1.2l-1.4.1-3.2 1.6c-.1-.9-2.7-1.6-7.9-2.3l-3.2 1.9-6.2.5-.1-1.6c32.2-3.5 48.1-7.9 47.7-13.1 2.1-.2 3.2.8 3.4 2.9l9.4-2.4-.3-2.9-77.1 2.1c.1 1-.4 1.6-1.5 1.7l-9.4-.8q-3.6.3-6 2.1l-3.5-1.3c-9.7.8-16.9 2-21.7 3.5-6.6-.5-13.9-.4-22 .3l-17.3 1.5-8-.9c-.4-5.1 9.5-30.2 29.9-75.2 5.9-15.2 11.3-24.7 16.5-28.3 1.1-.1 2.7.3 4.9 1.2l12.3-4.2 6.3 1c10.6-.9 22.9-3.9 37-9.1 3.5-.3 6.1-.1 8 .7l9.4-2.2 28-2.4c11.9-1 24.8-3.6 38.8-7.9l-.3-2.9c-5.2.5-7.9-.4-8.1-2.5-.3-3.9-4.1-5.5-11.4-4.9l-.3-2.9 7.7-2.2 20.2-1.7-.3-2.9c-.8.1-4.9 0-12.5-.3l-.3-3.1 7.8-.7c2.1-.2 3-1.2 2.8-3.2-10.5.3-15.8-.2-15.9-1.6-73.2 3.6-109.9 4.3-110.1 2-1.1.1-2.6.8-4.6 2l-1.9-3c19.4-41.2 30.8-62 34.1-62.3.1 1.6-.7 4.2-2.5 7.7l.1 1.3 3.1-.3c7.7-18.4 14.2-27.9 19.6-28.3 23-2-3.2-3.5 46-11.2 2 .9 3.4 1.3 4.4 1.2 19.3-3.9 46.2-8 80.7-12.2l-.2-2.9-18.4 1.7-.2-2.9c2.2-.2 4-.9 5.5-2.1l.1 1.6c1-.1 2.4-.8 4.2-2 3.2-.3 5.6 0 7.3.9 6.4-1.7 11.6-2.7 15.4-3.1l11.5-1.1c2.8-1.8 4.1-3.4 4-4.9l-.1-1.3c-2.9.3-6.2.1-10.1-.6-.1-1.6.7-2.7 2.6-3.2l21.4-2 9.8-2.5c.1 1.1.6 1.5 1.4 1.5 1-.1 2.4-.8 4.2-2 .5.1 1.1.1 1.6.2-1.3 2.7-2.8 6.6-4.3 11.7l-2.8.2c-.2-1.9-.7-3.6-1.6-5.1l-1.4.1c-26 72.4-37.6 106.1-61.6 161.7-4.4 14.2-8.1 22.1-11.3 23.8.1 1.6 1.1 2.4 2.8 2.2.6 7-1 13.9-4.9 20.7-11.1 32-18.5 49.5-22.3 52.7l2.5 15.1q.15 2.4-2.4 2.7l-2.6.2c-.4-4.2-1.9-6.2-4.6-5.9l-1.4.1c-3.4 5.3-6 11.4-7.7 18.5l2.6-.2q5.25-3.45 4.8-8.1l5.2-.5 3 1.1c-2.4 3.8-3.5 6.8-3.3 9.1l1.4 2.4-3.4 8 .1 1.3c3-.3 6.3.7 9.8 2.8 2.4-.2 5-1.3 7.9-3.2 3-.3 14.2-.4 33.5-.4l9.7-3.3c11.8-.1 13.7.2 23.9-.7l4.2-.4 2.2-1.5.1 1.3c10.7-.9 11.4-.2 19.8.8l.1 1.3-5.9.5.2 2.5c1.8-.2 3.4-.7 4.7-1.8 1.5-.1 2.4.7 2.5 2.5q-3.6.3-8.1 1.8l-2.6-.9c-4.1 1.1-3.2 1.4-6 1.6l-4.1-.8c.1.7-.3 1.2-1 1.2.1 1.6 1 2.4 2.5 2.3l4.2-.4 21.9-1.9 8.3-1.8c.1.7.4 1.1 1.1 1l4-1.5 7.5-.6c5.8-.5 5.7-.9 18.3-2.9-.1-.8.2-1.1.8-1.2l.1 1.1c20.5-3.5 21.8-3.7 25.1-4.8l.3.6c5.1-1.2 2.2-.9 3.6-1.9.1.9.4 1.3.9 1.3l3.6-.3-.2-2.7-7.3-.1-.1-.2c-.3.1-.5.1-.8.2h-1v.2c-4.9 1-5 .3-8.2.6l-18.3 1-.1-1.3 10.2-1.4 3.7-.3 2.1-1.5.1 1.3c14.4-1.2 19.5 2.4 86.1-11.8 3.6-.3 3.3-3.3 5.6-9.5-1.2.1-2.4-.2-3.5-.8-5.5 2.1-8.4 1.1-19 2.8-.9.1-1.6-.7-1.9-2.3l-.1-1.1 10.2.3c1.9-.2 5.6-.5 11.1-3.6 0 .9-2 1.4-.8 1.3M973 419.8l-4.7.4c-.2-1.9 2.3-9.1 7.5-21.4l3.1-.3c.1 2.9-1.8 10-5.9 21.3m5.7-22.8-.1-1.3c-.1-1.6.9-2.7 3.1-3.2l.1 1.3c.1 1.9-.9 3-3.1 3.2m62.5 48.3.1 1.3-7.8.7-.1-1.3zm-9.4-.8c.1 1.6-2.3 3.4-7.5 5.2l-9.6-.7-3.1.3-.3-2.9zm63.2-290.9-4.7.4-.1-1.6c-.1-1.6.8-2.7 2.8-3.2l1.7-.1 3.2 1.3c.1 1.9-.8 3-2.9 3.2m71.5-14 1.5-.1.2 2.9-4.3.4c-.1-1.6.7-2.7 2.6-3.2m-18 6.3-7.1-.8-.1-1.3c9.3-.8 12.4-1.8 18.1-3.4.1 1.1 1.1 1.5 2.9 1.3l.2 2.9-2.8.3c-2.2.2-4.1-.1-5.7-1-1.7 1.1-3.5 1.8-5.5 2m8.9 25.9-.1-1.3 11.5-1.1.1 1.3zm12.3-10-.1-1.6 5.6-.5.1 1.6zm1.3-19.6-1.5.1 1.3-3.1 12.8-1.2.1 1.6c-3.3.3-7.6 1.2-12.7 2.6m6.5 27.6-.2-2.9 5.6-.5q2.85-.3 3 2.7zm33.9-46.2-7.2 2-1.3.1c-3.4.3-7.8.2-13-.3 9.3-.6 18.2-1.3 21.5-1.8m-7.7 32 .1 1.3-9.9.9-.1-1.3zm16.2 7.7c-.1-1.2-2-2-5.9-2.4l-9.9 2.8-7.6.3c-1.7-1.2-2.6-2-2.7-2.6l8.8.5 19.8-3.2 10.1.4.1 1.6c-5 .5-9.2 1.4-12.7 2.6m101.9-26.3c1.2.1 2 .1 2.3.1 3.5-3.4 7.4-6.1 11.9-8-3.6 15.8-9.2 27.5-16.9 35.1l-5.6-3.4c4.7-11.9 7.5-19.8 8.3-23.8m-17.2 29.5 1.4-.1c-1.9 3.6-3.6 5.5-5 5.6l-.3-3.8c.9 0 2.2-.6 3.9-1.7m-11.1 26.5c2.7-10.8 5.3-16.9 7.7-18.5l.1 1.3c-1.4 10-3.6 15.3-6.5 15.7l.5 6.3c-2.4 3.4-3.5 6-3.4 8l-1.4.1-.8-8.7c1.6-.2 2.9-1.6 3.8-4.2m-4.3 14.4c.1 1.5-.9 5-2.9 10.4l-1.4.1-.3-3.8c1.9-4.4 3.5-6.6 4.6-6.7m-80.7 234.2-.1-1.1 2.6-.2.3 3.8c-1.4.1-2.4-.7-2.8-2.5m115.3 3c-.1-.9-.5-1.3-1.4-1.2l-6.5.6-.1-1.3h.6l15.4-1.3.1 1.3c-4.5.2-7.2.9-8.1 1.9m-7.7-3.2c.6.3.3.6 0 .8-.3-.1-.7-.4 0-.8m.8-18-8.6.7-.1-1.3 7.8-.7 6.8-1.7c.1.8.5 1.1 1.4 1 8.1-1.4 7.3-1.8 11.2-2.1 1.3-.1 2.1.7 2.2 2.3zm30.1-2.6c-4.8-.5-5.1-.9-8.5-.6l-.1-1.1 7.7-.7.1 1.1c-.8.1 2.1.3.8 1.3m.6-1.4-.1-1.1 4.2-.4.1 1.1zm9.3-.8-.1-1.1c.7-.1 1.7-.6 3-1.6 2.1-.2 3.2 1.2 3.4 2.8zm11.9-1.5-.1-1.3 5.1-.4.1 1.3zm7.1-.6c-.1-1.5.5-2.4 1.8-2.6l1.7 2.2c-.1-.7.2-1.1.8-1.2l1.3 2.4zm-75.5 32.6-.2-2.5-.8.1.2 2.5zm175.7-45.5c.8-.5 1.2-1-.7-1.3-.9 1 1 1.3-1 1.4l.1.9c.2-.2.7-.5 1.1-.8l-1.1.9v.1l-2.1 2.7 4.2-1.5h.5l-.2-2.5zm7.3 5.7-.8.1.2 2.5 5.9-.5c-.1-1.6-4-2.1-5.3-2.1m-9.1-4.4.1-.1v-.1s-.1.1-.1.2&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#f9dc3e&quot; d=&quot;m1090.4 219.8.1 1.6 3.3-.3c-.1-1 .3-2.6 1-4.6l-.3-2.9c-1.4.1-2.8 2.2-4.1 6.2m-31.6-76-.3-2.9-4.7.4.3 2.9zm-91.7 171.7c-.2-2.7-8.6-13.2-25.2-31.7-.3-3.4 5.4-8.5 17.1-15.2l33.4-29.1c7.5-9.5 11.9-24.9 13.2-46.3l-.4-4.9c-1.3-14.8-12-26.7-32.3-35.8-12-8.1-33.6-12.6-64.8-13.4-25.8 2.2-59.5 11.4-101 27.7q-17.1 12.3-39 24.6l.2 2.5c.9-.1 2.3-.6 3.9-1.7 1.7-.2 2.7.6 2.8 2.2l2.5-1.3 1.2-.1.1 1.1c.1 1.3-8.9 8.4-27.1 21.1l1.4 2.6-1.2.1-3-1.1c.1.9-1.2 1.5-3.7 1.7l.1 1.1 2.9 3.6c-.9.1-2.3-.3-4.2-1-4.2.4-8.3 2.6-12.4 6.8l1.7-7.4c6.1-26.3 10.3-49.6 12.5-69.8l-.3-1.3c-4.2-2.7-8.3-6.5-12.1-11.3.1-3.1.1-4.9 0-5.3l-.3-1.1-1.2.3c-13.2 19.8-38.6 53.6-76.3 101.4q-43.05 51-44.4 56.7c-11.7 12.1-17.3 19.4-16.7 21.9-3.1 2-4.4 4-3.9 6.2-.9.2-1.5-.1-1.7-1-5 8.1-12.4 13.3-22.3 15.6l-10.4 2.4c-1.4.3-2.1 1.3-2 3l.3 1.3 3.9-.9.3 1.1-8.8 3.4-15.6 3.6-8.2.5c-1.2 1.2 6.5-.1 3.5.6l-10.2 2.4c-6.2 1.4-9.6.9-10.2-1.6l-1.2.3c.2 1.1.3 1.9.1 2.6l-.6-2.5-8.2 1.9c-.6-3.8-11.7-17.6-33.2-41.4-.4-4.6 7.2-11.3 22.7-20l43.8-38.5c9.8-12.6 15.6-32.8 17.5-60.6l-.6-6.5c-1.7-19.6-15.9-35.4-42.6-47.6-15.8-10.7-44.2-16.4-85.2-17.3-34 2.9-78.4 15-133 36.1q-22.5 16.35-51.3 32.4l.3 3.4c1.3-.1 3-.8 5.1-2 2.2-.2 3.4.8 3.6 2.8l3.4-1.9 1.7-.1.1 1.6c.1 1.6-11.8 10.9-35.9 27.9l1.9 3-1.7.1-3.7-1.3c.1 1-1.6 1.7-5.1 2l.2 1.8 4 4.4c-1.3.1-3.1-.3-5.4-1.1-7.8.7-15.4 6.3-22.9 16.9l1.9 3c6.5-6 10.3-9 11.4-9.1l.4 4.9c-1.1.1-2.8.8-5.1 2l4.1 6.2q11.85-12.75 26.1-21.9c4.7 1.2 7.2 2.7 7.3 4.3l3.6-.3c25.8-19.1 51.3-32.9 76.6-41.4l.3 3.4q-7.05 10.5-9.6 10.8c.2 2.4 1 4.5 2.5 6.3.4 4.3-11.1 33.3-34.4 86.9-52.9 124.6-97.3 216.8-133.4 276.4q.15 1.8 2.1 4.8c8.9-2.1 14.5-4.3 16.9-6.4l1.9-.2.3 3.4 3.3-.3 3.4-1.9c.1 1 1.2 1.5 3.5 1.3l.3 3.4c.3 3.3-1.6 8.3-5.6 15.2-3.6 4.1-7.5 12.7-11.6 25.8l.1 1.6 3.3-.3c14.4-16.1 25.3-31.9 32.8-47.3 42-12.3 74-24.4 96.2-36.3 22.3-1.9 39.3-7.8 50.9-17.5l-.2-1.8-8.4 2.5-1.9.2-.2-1.8c16.4-2.5 27.7-6.1 34-11.1 31.9-24.6 56-42 72.3-52.3 33.5-24.6 55.3-48.6 65.2-71.9 1.8-.4 3.6-.8 5.6-1.3 4.7-.2 7.3-.3 8-.5-.2-.9.2-1.4 1.1-1.6 7.5-.8 3.9.5 8.7-.6l12.6-2.9 2.1-.5-1 .6c1.4.2 2.9.1 4.6-.3l.9 3.7-57.3 91.1-12.7 15.9-6.2 20.8 1.2-.3 6.2-2.6-2 8.1.6 2.4 1.7 2.1c-.8.2-1.1.7-.9 1.6l.3 1.3 2.6-.6q5.7-4.95 4.8-9c4.1.7 6.8 1 8.2.6l.3 1.3c-2.5.6-3.8 2.6-4 6l.3 1.3 1.4-.3c20.8-22.7 71.8-100.4 112.7-153.1-1.3-5.7 20-13.6 64-23.8l1.4-.3q2.4 10.35-10.2 50.1c-5.4 16-8 24.8-7.6 26.2-7 21.3-10.3 32.8-9.9 34.6l-15.6 51.1c-10.1 26.2-17.8 53.7-23.2 82.7.9-.2 2.3-.1 4.3.4l2.2-1.9c.2.9.8 1.2 1.7 1l-.9-3.7 6.8-.2c2-.5 3.7-3 5.1-7.6-.3-6.9 1.1-10.6 4.2-11.4 4.2-16.4 6.8-24.6 7.7-24.9q5.85-24.45 8.7-27.9c5.9-21.2 10.2-32.1 13-32.8l.6 2.6-4.3 11.1q-11.25 49.95-22.8 78.9l2.2 9.6 1.4-.3c18.6-40 45.4-119.2 80.3-237.6 1-10.4 6-18.5 14.9-24.2l-2-2.1-.3-1.1c4-.9 6.8-2.5 8.4-4.7-.2-.9-3.7-2.2-10.5-4l17.4-74.6c3.8-3.4 6-5.2 6.7-5.2l.3 3.8c-.9.1-2.3.6-3.9 1.7l3.3 4.7c6-6.5 12.5-12.1 19.6-16.8 3.6 1 5.4 2.2 5.6 3.4l2.6-.2c19.8-14.5 39.2-24.9 58.3-31.2l.2 2.5q-5.25 7.95-7.2 8.1c.2 1.8.7 3.4 1.6 4.8.3 3.3-8.3 25.3-25.9 66.1-40.2 94.5-73.9 164.4-101.3 209.8.1.9.7 2.1 1.8 3.7 6.7-1.6 11-3.3 12.7-4.9l1.2-.1.2 2.5 2.8-.2 2.5-1.3c.1.7 1 1 2.7.9l.2 2.7c.2 2.4-1.2 6.2-4.3 11.4-2.9 3.1-5.9 9.6-9.1 19.5l.1 1.3 2.6-.2q16.35-18.3 24.9-36c31.9-9.4 56.2-18.5 73-27.5 17.1-1.5 30-5.9 38.8-13.3l-.1-1.3-6.5 1.9-1.4.1-.1-1.3c12.4-1.8 21.1-4.6 25.8-8.3 24.2-18.6 42.5-31.9 54.9-39.7 38.6-28.1 56.6-55.1 54.4-81m-6.6 1.7.9 10.1c-1.2 2.5-2.5 3.8-3.7 3.9l-1.5-17.2c2.8 1 4.2 2 4.3 3.2m-757.2-81.4-1.7.1-.3-3.1 6.9-.6.1 1.6c-1.1.1-2.8.7-5 2m-33.7 337.1c-4-1.8-7.6-2.5-10.7-2.2l-.4-4.9c-.2-1.9.9-3.2 3.3-3.7 2.2-.2 3.5 1.4 3.7 4.6q8.7-10.65 9.6-10.8l3.7 1.5c-1.2 10-4.3 15.1-9.2 15.5m360.1-376.7c-1.7.2-5.1-5.1-10-15.6l-.3-3.1c3.2-.3 6.5 4.9 10 15.6zm-4.8-37.3-1.4 3.3-48.9-20.4c32.6 1.1 49.4 6.8 50.3 17.1M318.4 336.2l-6.9.6-.3-3.1 6.9-.6zm-5.6-106.5 1.7-.1.4 4.9c-1.6.1-3.7 2.5-6.3 7.1l-.3-3.4c3.1-3.7 4.7-6.5 4.5-8.5m-14.5 34.2.6 6.5-1.7.1-.6-6.5zm-7.6 12.2 3.3-.3c-.3 5.4-1.8 8.3-4.5 8.5l-1.7.1c2.1-3.6 3.1-6.4 2.9-8.3m-5.7 17 1.9-.2.1 1.6-3.1 5.2-3.3.3-.1-1.6c3.3-.3 4.8-2 4.5-5.3m-5.6 15.3-1 8.2-1.7.1-.7-8.1zm-56.1 159.5c-2.2 11.2-4.6 16.9-7.1 17.1l-.1-1.6c-.6-5.5 1.8-10.7 7.2-15.5M213 490.2l.1 1.6c.2 2.2-.8 3.5-3 3.6l-.1-1.6q-.3-2.85 3-3.6m-3 46.3 5.2-.5.2 1.8c-1.3.1-3 .8-5.1 2l-3.3.3c-.2-1.7.9-3 3-3.6m148-45.7c-29.2 14.4-46.4 24.2-51.5 29.3-31.6 11-47.3 17.8-47 20.5-28.1 11.1-46.6 19.3-55.5 24.4-2.1.2-5.1-.6-9.1-2.4-.5-5.7 2.1-10.3 7.6-14 4.9-.4 9.6.3 14.1 2.2 5.2-2.7 14.3-5.7 27.2-8.9l-.3-3.4-10.4.9c1.3-1.8 11.3-6.5 30.1-14.1l5.2-.5.1 1.6c-8.9.8-13.8 3.4-14.9 8.1.2 2.1 1.4 3 3.6 2.8 6.7-4.2 10-6.7 9.9-7.4 12.7-2.4 47.8-20.8 105.3-55.1l.3 3.1c.1 1.5-4.8 5.7-14.7 12.9m-88.2 29c8.4-.7 15.6-4.1 21.6-10 2.4-.2 3.7.7 3.8 2.8-4.1.4-12 3.8-23.5 10.4l-1.7.1zm142.3-109.3-44.1 35c-32.8 21.5-50.4 32.3-53 32.5-52.2 28.7-84.7 43.6-97.3 44.7l-1.9.2c1.6-5.9 24.8-53.4 69.8-142.8 19.8-1.7 51-10.9 93.5-27.7l10.4-.9c21.5-1.9 37.6 2.3 48.2 12.3l.6 6.5c-7.9 22.9-16.7 36.3-26.2 40.2M325.9 362l7.1-.6.1 1.6-7.1.6zm99.7-16.9 5.2-.5c4.8 2.3 7.3 4.3 7.5 6.1l.1 1.6c-4.6.4-8.9-2-12.8-7.2m14.1-80.3c-4.6 5.5-17.2 14.9-37.8 28.1-6.8.6-32.1 10.4-75.9 29.6-2.2-1-4.5-1.4-7-1.2l-.3-3.1c-.5-6.3 2.3-14.2 8.5-23.8 3.4-18 7.1-28.3 11.2-30.8l36.5-82.1q-.6-7.65 23.4-11.7l5.2-.5.4 4.7c15.7-2.4 25.5-3.8 29.3-4.1 29-2.5 44.1 3.4 45.3 17.5l3.3-.3-.7-8.3 3.6-.3c8.5 4.7 13.1 10.4 13.7 17.1.4 4.6-2.1 10.3-7.4 17.1-2.2.2-3.5-1.4-3.7-4.6l-3.6.3-.8 10c-14.7 22-25.4 33.3-32 33.9-6 8.3-9.7 12.4-11.2 12.5m22.4 57.5c-3-2-5.4-2.9-7.2-2.8l-.4-4.9 3.3-.3 7.3 4.3c.3 2.3-.7 3.5-3 3.7m23.2 27.5c3.2 1.3 5.1 2.7 5.5 4l-1.6.4.1.1c-.3 0-.7.1-1 .2l-2.4 1.9zm2.2 13.8-.3-1.3 4.2-1 .3 1.3zm10.1 11.3c4.3-.7 6.4-1 14.4-2.8l.3 1.3-15.2 3.5c.2-.7.4-1.4.5-2m14.8 6.3c-6.4.6-5-.2-15.2 2.1l-.3-1.3 12.8-4.1 6.1-1.4.6 2.4c-2.8.6-.8.6-4 2.3m13.5-3.2c-1.5.4-2.7-.3-3.4-2l3.9-.9c1.7-.4 2.8.3 3.2 2zm36.6-39.4-.3-1.3 6.3-1.5.6 2.4zm39.1 239.8c.4-1.8.5-3.1.3-4l1.4-.3c1.7-.4 2.7.2 3.1 1.8l.3 1.3zM629 348.9l-2.8-.5c-4.5 1.8-8.3 3.1-11.4 3.8l-2.6.6c-1.5.4-2.7-.2-3.3-1.8l18.3-4.2 6-2.8 2 2.3c-2.9.6-5 1.5-6.2 2.6m14.1-4.5-.3-1.3c.9-.2 2.1-.9 3.4-2.2l13-3 .3 1.3c-6.9 1.7-12.4 3.4-16.4 5.2m2-26.3c-.9.2-2.1 1-3.6 2.2-.2-.9-2-.9-5.4-.1-.6-2.5 9-6 28.9-10.6l2.8-.6.6 2.4c-14 4.1-21.8 6.4-23.3 6.7m35-37.8c-1.4 15.9-7 24.9-16.9 27.2l-.3-1.3-8.8 3.4-3.9.9c-2 .5-3.8.4-5.4-.1l-.8-3.5c-.3-1.3 12.4-18.9 38.2-52.7l3 .5c1.1 4.6-.6 13.1-5.1 25.6m61.9-53-1.2.1-.2-2.5 5.2-.5.1 1.3c-.9.2-2.2.7-3.9 1.6m-25.5 256.1c-3-1.4-5.7-2-8-1.8l-.3-3.8q-.15-1.95 2.4-2.7c1.7-.2 2.7 1 2.9 3.6 4.3-5.5 6.7-8.3 7.2-8.3l2.7 1.1c-1 7.6-3.3 11.6-6.9 11.9m273.4-286c-1.3.1-3.8-3.9-7.7-12l-.2-2.5c2.5-.2 5.1 3.7 7.7 11.7zm-3.6-28.6-1.2 2.6-37-15.5c24.7.8 37.5 5.1 38.2 12.9M829.4 303.5l-5.2.5-.2-2.5 5.2-.5zm-4.3-80.9 1.4-.1.3 3.8q-1.95.15-4.8 5.4l-.2-2.5q3.45-4.35 3.3-6.6m-10.9 26 .4 4.9-1.4.1-.4-4.9zm-5.9 9.3 2.6-.2q-.45 6.3-3.3 6.6l-1.4.1c1.5-2.8 2.2-5 2.1-6.5m-4.2 12.8 1.2-.1.1 1.3-2.3 4-2.6.2-.1-1.3c2.7-.2 3.9-1.6 3.7-4.1m-4.2 11.6-.9 6.4-1.2.1-.5-6.3zm-42.7 121.3q-2.55 12.6-5.4 12.9l-.1-1.1c-.3-4.2 1.5-8.2 5.5-11.8m-7.9 16.9.1 1.1c.2 1.8-.6 2.8-2.4 2.9l-.1-1.3q-.15-1.95 2.4-2.7m-2.2 35.2 4-.3.1 1.3c-.9.1-2.3.6-3.9 1.5l-2.6.2q-.15-2.1 2.4-2.7M859.4 421c-22 10.9-35.1 18.3-39.2 22.1-24 8.4-35.9 13.6-35.7 15.7-21.3 8.5-35.3 14.6-41.9 18.5-1.6.1-3.9-.5-6.9-1.9-.4-4.3 1.6-7.8 5.8-10.4 3.8-.3 7.4.2 10.7 1.6 4-2 10.9-4.2 20.7-6.7l-.2-2.5-8.1.7c1-1.4 8.7-5 23-10.8l4-.3.1 1.1c-6.8.6-10.6 2.6-11.4 6.2.1 1.6 1.1 2.4 2.8 2.2 5-3.3 7.4-5.2 7.4-5.8 9.6-1.7 36.2-15.7 79.9-41.9l.2 2.5c0 1-3.7 4.2-11.2 9.7m-67 22c6.5-.6 12-3.1 16.6-7.5 1.7-.1 2.7.6 2.8 2.2-3 .3-8.9 2.8-17.8 7.6l-1.4.1zm108.2-83.1-33.3 26.8c-24.9 16.3-38.4 24.5-40.5 24.7-39.6 21.8-64.2 33.1-73.9 33.9l-1.4.1c1.2-4.5 18.9-40.6 53.1-108.4 14.9-1.3 38.5-8.4 70.9-21.2l8.1-.7c16.3-1.4 28.5 1.8 36.5 9.5l.4 4.9c-6.1 17.2-12.7 27.3-19.9 30.4m-65.4-36.8 5.2-.5.1 1.3-5.2.5zm75.7-12.9 4-.3c3.7 1.8 5.6 3.4 5.7 4.7l.1 1.1c-3.5.3-6.8-1.5-9.8-5.5m10.5-60.9c-3.5 4.2-13 11.4-28.5 21.4-5.2.5-24.4 7.9-57.6 22.3-1.6-.6-3.4-.8-5.3-.7l-.2-2.5c-.4-4.8 1.7-10.8 6.3-18.1 2.6-13.8 5.5-21.5 8.5-23.3l27.9-62.4c-.3-3.7 5.6-6.7 17.6-9l4-.3.3 3.8q17.7-2.85 22.2-3.3c22-1.9 33.5 2.5 34.4 13.3l2.6-.2-.5-6 2.6-.2c6.4 3.5 9.8 7.7 10.2 12.7.3 3.6-1.5 8-5.3 13.1-1.7.2-2.7-1-2.9-3.6l-2.6.2-.8 7.5c-11.1 16.9-19.2 25.6-24.3 26-4.5 6.1-7.3 9.2-8.6 9.3m11.7 41.6-.3-3.8 2.6-.2 5.6 3.4q.15 2.4-2.4 2.7c-2.4-1.5-4.2-2.2-5.5-2.1M467.6 533.8l-2.6.6-2.2 1.9c.4 1.6 1.4 2.2 3.1 1.8s2.4-1.4 2-3zm-9.9-19.7.3 1.3c1.7-.4 2.4-1.4 2-3l-.3-1.3c-1.6.4-2.3 1.4-2 3m70.8-133 1.9-1.2c-.4 0-.7-.1-1-.2-.7.2-1 .7-.9 1.4m-.4-34.5 3-.7-.6-2.6-3 .7zm706.7 101-6.8-.8-1.2 2.6.1 1.3 40.5-3.4-.2-2.5zm37-3.1.2 2.5h.4l-.2-2.5zm169.9-22.2.2 2.5 4.4.8-.2-2.5zm-6.2.5c-30.4 6.8-34.2 5.6-40.6 6.1l.2 2.5 2.8-.2 1.5-.1-.4-.3 3.3-1.3c30.1-3.3 33.6-2.1 33.3-5.5zM1253 378.6l-2.7-.9c-2.2 5.9-3.3 9.4-3.2 10.4l.1 1.1c2.1-.1 4-3.7 5.8-10.6m-36.6-19.7-.1-1.3-1.4.1-2.5 1.6 1.4 2.4c1.9-.2 2.8-1.1 2.6-2.8m79.5 82.2-.2-2.5-.8.1.2 2.5zm165-37.2 1.9-.2c1.1-.1 1.6-1 1.5-2.6l-1.1-2.4c-6.9.6-10.1.9-15.7 4l-.1-1.3-8.3.8c-.2-2.5-.9-3.8-2-3.7l-4.3.4c-5 .4-7.4.2-9.9 2.1-.1-.9-.4-1.3-.9-1.3l-4.8.4-2.8 1.6c-.1-.9-.4-1.3-.9-1.3l-1.7 1.5-.1-1.3-6.7-.5-1.6.1.2 2.5 3.4.9 3.2-.2c1.1.7 2.3.9 3.7.8l2.8-1.4.1 1.1c-15.7 3.9-15.6 3.2-26.4 5-1.2-.8-2.1-1.2-2.7-1.1l-.2.2c-1.2-.1-1.9-.9-2-2.2l5.6-.7c.4 0 .7.4 3.8 1 4.5-2.2 4.7-3.1 7.1-3.3l-.2-2.5c-15.4 3-9.2 1-28.5 2.7l-.9.1-.2-2.5c24.8-3 16.5-1.3 25-3.7.1.9.4 1.3.9 1.3 1-1 2.1-1.5 3.4-1.7l1.7-.1c8.7-.7 11.6 1 28.8-3.8l.1 1.1 2.8-1.4 2.6-.2c-.2-2.5 3.6-2.9 4.9-3l-.2-2.7c-30.2 6.1-38.1 4.4-46.5 6.8l-.1-1.1c-7.9 1.4-8.2.8-10.2.9-.6.1-1.5.6-2.5 1.6-.1-.9-.4-1.3-1-1.3-.3 0-.4.1-.5.1l-25.6 4.2c-.1-.7-.4-1.1-1-1-13.3 2.8-9.7 3.3-27.5 4.9-.8.1-1.9.5-3.3 1.4-.1-.7-.5-1.1-1.4-1l-10.9.9-7.3 1.8c-.1-.7-.5-1.1-1.4-1-4.1 1.1-7.7 1.8-10.6 2h-.2c-1.8.2.9-.5-.5-1.1l-2.2 1.3c-3.2.3-1.5-.2-12.5-.1-19.3 2.4-17.2 2.7-19.3 2.8l-7.2-.5c.1.7-.3 1.2-1.1 1.2-8.2-1.1-12.4-2.4-12.5-3.9q1.65-11.7 5.7-12l1.4-.1-1.2 2.6 1.4-.1c2.6-1.4 3.8-2.7 3.7-3.9l-.2-2.7-2.6.2-.2-2.5c-.2-1.9.1-3.6.8-5l5.9-9.5.2 2.5 2.8-.2-.2-2.5-1.6-2.3c2.1-1.8 3.7-2.8 5-2.9l-.1-1.3-3.8.3-.3-3.8c7.6-15.8 11.2-25 11-27.6l2.7 1.1c1.7-.1 2.5-1.1 2.4-2.9l-2.6.2-.1-1.1c-.2-1.9.2-3.7 1-5.3 4.1-4.3 6-8.6 5.6-13.1.8-.1 1.2.3 1.3 1.2 3.5-2 6.2-7.3 8.2-16.1 6.2-11.2 15-33.6 26.5-67.1 22-59.2 21.1-65.5 24.2-79.5l-2.6.2c.2 1.8-.2 3.5-1 5.1-1.8-.7-3.2-1.1-4.2-1l-.1-1.1c-.4-5.1 1.7-11.2 6.5-18.4l1.2-.1 2.2 8.6 2.6-.2c-.1-.6.6-4 2-10.3-.1-1.3-1.1-2.1-3.1-2.2l-2.5 1.6c-.2-1.8-.1-6.5.2-14l-1.3.1c-2.2-2.2-3.3-4-3.4-5.5l-14.3 1.4c-.1-1-.6-2.5-1.6-4.4-.1-1.3 3.1-2.6 9.7-3.9l2.9 1.1 2.7-1.6c.1.9.6 1.3 1.6 1.2l2.7-1.6c.1.9.6 1.3 1.6 1.2l1.3-.1-.2-2.9c-2 .2-7.3.2-15.7-.1l-2.7 1.8-.1-1.6c-67.1 5.5-105.2 8.6-114.3 9.5-1.2.1-5.9 0-14.2-.2.1 1.1-.9 1.7-2.9 1.9l-2.9-1.3-9.8 2.5c-2.3.2-6.2.1-11.6-.5-1.5 1.2-3.3 1.9-5.5 2.1-1.2.1 14.3-.8 28.7-1.8-1.5 1.2-3.8 1.9-7 2.2-2.2.2-4.1-.1-5.7-1-2.2 1-9.3 2.6-21.2 5l-2.9-1.1-46.8 7.2c-1.8-.9-3.9-1.2-6.3-1-2.5.2-6.7 1.1-12.5 2.7l-22.6 9.4 1.7 2.8c1.1-.1 2.7-.7 4.6-1.8l8 .7-1 7.5c-7.4 3.3-11.7 8.2-12.9 14.4-11.1 4.9-16.6 8.4-16.6 10.5l.1 1.3 1.7-.1 3-1.6 3.5 4.2.5 5.8c.2 1.8-18.5 41.1-55.9 117.9-32.4 74-49.4 114.5-51 121.8-11.1 3.1-17.5 7.6-19.4 13.6.2 1.9 3.5 3.2 9.9 3.7l.3 2.9-2.9 4.8.5 5.8q.45 4.5 24.3 6.9c-.1-1 .4-1.6 1.5-1.7q.45 5.4-3 21l1.7-.1c6.6-9 9.7-15.2 9.4-18.6l1.4-.1c1.6-.1 3.3 1.7 5.3 5.6-2 .8-9 16.7-21 47.8l1.7 2.8 1.7-.1c14.7-37.2 23.9-57.8 27.7-61.7 19.3-1.7 52.7-5.1 100.1-10.2l3-1.8c.1 1 .7 1.5 1.8 1.4l3.1-.3 3-1.8c.1 1 .7 1.5 1.8 1.4l35.9-3.1c9.5-.8 14-3.7 13.6-8.6-.1-1.3 5.5-2.8 16.8-4.4 1.1-.1 2.7.2 4.9.9-.1-.9 5.6-1.8 17-2.8.3-6 2.2-9.2 5.6-9.5l-.3-2.9c-3.2.3-6.8 1.1-11 2.5-7.5-.4-12.3-1-14.3-1.7-2 1.1-3.5 1.7-4.6 1.8l-25 .8-3 1.6q-.15-1.35-1.8-1.2l-1.4.1-3.2 1.6c-.1-.9-2.7-1.6-7.9-2.3l-3.2 1.9-6.2.5-.1-1.6c32.2-3.5 48.1-7.9 47.7-13.1 2.1-.2 3.2.8 3.4 2.9l9.4-2.4-.3-2.9-77.1 2.1c.1 1-.4 1.6-1.5 1.7l-9.4-.8q-3.6.3-6 2.1l-3.5-1.3c-9.7.8-16.9 2-21.7 3.5-6.6-.5-13.9-.4-22 .3l-17.3 1.5-8-.9c-.4-5.1 9.5-30.2 29.9-75.2 5.9-15.2 11.3-24.7 16.5-28.3 1.1-.1 2.7.3 4.9 1.2l12.3-4.2 6.3 1c10.6-.9 22.9-3.9 37-9.1 3.5-.3 6.1-.1 8 .7l9.4-2.2 28-2.4c11.9-1 24.8-3.6 38.8-7.9l-.3-2.9c-5.2.5-7.9-.4-8.1-2.5-.3-3.9-4.1-5.5-11.4-4.9l-.3-2.9 7.7-2.2 20.2-1.7-.3-2.9c-.8.1-4.9 0-12.5-.3l-.3-3.1 7.8-.7c2.1-.2 3-1.2 2.8-3.2-10.5.3-15.8-.2-15.9-1.6-73.2 3.6-109.9 4.3-110.1 2-1.1.1-2.6.8-4.6 2l-1.9-3c19.4-41.2 30.8-62 34.1-62.3.1 1.6-.7 4.2-2.4 7.7l.1 1.3 3.1-.3c7.7-18.4 14.2-27.9 19.6-28.3 23-2-3.2-3.5 46-11.2 2 .9 3.4 1.3 4.4 1.2 19.3-3.9 46.2-8 80.7-12.2l-.2-2.9-18.4 1.7-.2-2.9c2.2-.2 4-.9 5.5-2.1l.1 1.6c1-.1 2.4-.8 4.2-2 3.2-.3 5.6 0 7.3.9 6.4-1.7 11.6-2.7 15.4-3.1l11.5-1.1c2.8-1.8 4.1-3.4 4-4.9l-.1-1.3c-2.9.3-6.2.1-10.1-.6-.1-1.6.7-2.7 2.6-3.2l21.4-2 9.8-2.5c.1 1.1.6 1.5 1.4 1.5 1-.1 2.4-.8 4.2-2 .5.1 1.1.1 1.6.2-1.3 2.7-2.8 6.6-4.3 11.7l-2.8.2c-.2-1.9-.7-3.6-1.6-5.1l-1.4.1c-26 72.4-37.6 106.1-61.6 161.7-4.4 14.2-8.1 22.1-11.3 23.8.1 1.6 1.1 2.4 2.8 2.2.6 7-1 13.9-4.9 20.7-11.1 32-18.5 49.5-22.3 52.7l2.5 15.1q.15 2.4-2.4 2.7l-2.6.2c-.4-4.2-1.9-6.2-4.6-5.9l-1.4.1c-3.4 5.3-6 11.4-7.7 18.5l2.6-.2q5.25-3.45 4.8-8.1l5.2-.5 3 1.1c-2.4 3.8-3.5 6.8-3.3 9.1l1.4 2.4-3.4 8 .1 1.3c3-.3 6.3.7 9.8 2.8 2.4-.2 5-1.3 7.9-3.2 3-.3 14.2-.4 33.5-.4l9.7-3.3c11.8-.1 13.7.2 23.9-.7l4.2-.4 2.2-1.5.1 1.3c10.7-.9 11.4-.2 19.8.8l.1 1.3-5.9.5.2 2.5c1.8-.2 3.4-.7 4.7-1.8 1.5-.1 2.4.7 2.5 2.5q-3.6.3-8.1 1.8l-2.6-.9c-4.1 1.1-3.2 1.4-6 1.6l-4.1-.8c.1.7-.3 1.2-1 1.2.1 1.6 1 2.4 2.5 2.3l4.2-.4 21.9-1.9 8.3-1.8c.1.7.4 1.1 1.1 1l4-1.5 7.5-.6c5.8-.5 5.7-.9 18.3-2.9-.1-.8.2-1.1.8-1.2l.1 1.1c20.5-3.5 21.8-3.7 25.1-4.8l.3.6c5.1-1.2 2.2-.9 3.6-1.9.1.9.4 1.3.9 1.3l3.6-.3-.2-2.7-7.3-.1-.1-.2c-.3.1-.5.1-.8.2h-1v.2c-4.9 1-5 .3-8.2.6l-18.3 1-.1-1.3 10.2-1.4 3.7-.3 2.1-1.5.1 1.3c14.4-1.2 19.5 2.4 86.1-11.8 3.6-.3 3.3-3.3 5.6-9.5-1.2.1-2.4-.2-3.5-.8-5.5 2.1-8.4 1.1-19 2.8-.9.1-1.6-.7-1.9-2.3l-.1-1.1 10.2.3c1.9-.2 5.6-.5 11.1-3.6 0 .9-2.1 1.4-.9 1.3m-492.4 7.9-4.7.4c-.2-1.9 2.3-9.1 7.5-21.4l3.1-.3c.1 2.9-1.8 10-5.9 21.3m5.7-22.8-.1-1.3c-.1-1.6.9-2.7 3.1-3.2l.1 1.3c.1 1.9-.9 3-3.1 3.2m62.5 48.3.1 1.3-7.8.7-.1-1.3zm-9.4-.8c.1 1.6-2.3 3.4-7.5 5.2l-9.6-.7-3.1.3-.3-2.9zm63.2-290.9-4.7.4-.1-1.6c-.1-1.6.8-2.7 2.8-3.2l1.7-.1 3.2 1.3c.1 1.9-.8 3-2.9 3.2m71.5-14 1.5-.1.2 2.9-4.3.4c-.1-1.6.7-2.7 2.6-3.2m-18 6.3-7.1-.8-.1-1.3c9.3-.8 12.4-1.8 18.1-3.4.1 1.1 1.1 1.5 2.9 1.3l.2 2.9-2.8.3c-2.2.2-4.1-.1-5.7-1-1.7 1.1-3.5 1.8-5.5 2m8.9 25.9-.1-1.3 11.5-1.1.1 1.3zm12.3-10-.1-1.6 5.6-.5.1 1.6zm1.3-19.6-1.5.1 1.3-3.1 12.8-1.2.1 1.6c-3.3.3-7.6 1.2-12.7 2.6m6.5 27.6-.2-2.9 5.6-.5q2.85-.3 3 2.7zm33.9-46.2-7.2 2-1.3.1c-3.4.3-7.8.2-13-.3 9.3-.6 18.2-1.3 21.5-1.8m-7.7 32 .1 1.3-9.9.9-.1-1.3zm16.2 7.7c-.1-1.2-2-2-5.9-2.4l-9.9 2.8-7.6.3c-1.7-1.2-2.6-2-2.7-2.6l8.8.5 19.8-3.2 10.1.4.1 1.6c-5 .5-9.2 1.4-12.7 2.6m101.9-26.3c1.2.1 2 .1 2.3.1 3.5-3.4 7.4-6.1 11.9-8-3.6 15.8-9.2 27.5-16.9 35.1l-5.6-3.4c4.7-11.9 7.5-19.8 8.3-23.8m-17.2 29.5 1.4-.1c-1.9 3.6-3.6 5.5-5 5.6l-.3-3.8c.9 0 2.2-.6 3.9-1.7M1289 185c2.7-10.8 5.3-16.9 7.7-18.5l.1 1.3c-1.4 10-3.6 15.3-6.5 15.7l.5 6.3c-2.4 3.4-3.5 6-3.4 8l-1.4.1-.8-8.7c1.6-.2 2.9-1.6 3.8-4.2m-4.3 14.4c.1 1.5-.9 5-2.9 10.4l-1.4.1-.3-3.8c1.9-4.4 3.5-6.6 4.6-6.7M1204 433.6l-.1-1.1 2.6-.2.3 3.8c-1.4.1-2.4-.7-2.8-2.5m115.3 3c-.1-.9-.5-1.3-1.4-1.2l-6.5.6-.1-1.3h.6l15.4-1.3.1 1.3c-4.5.2-7.2.9-8.1 1.9m-7.7-3.2c.6.3.3.6 0 .8-.3-.1-.7-.4 0-.8m.8-18-8.6.7-.1-1.3 7.8-.7 6.8-1.7c.1.8.5 1.1 1.4 1 8.1-1.4 7.3-1.8 11.2-2.1 1.3-.1 2.1.7 2.2 2.3zm30.1-2.6c-4.8-.5-5.1-.9-8.5-.6l-.1-1.1 7.7-.7.1 1.1c-.8.1 2.1.3.8 1.3m.6-1.4-.1-1.1 4.2-.4.1 1.1zm9.3-.8-.1-1.1c.7-.1 1.7-.6 3-1.6 2.1-.2 3.2 1.2 3.4 2.8zm11.9-1.5-.1-1.3 5.1-.4.1 1.3zm7.1-.6c-.1-1.5.5-2.4 1.8-2.6l1.7 2.2c-.1-.7.2-1.1.8-1.2l1.3 2.4zm98.4-11.6.1-.1v-.1s-.1.1-.1.2m1.8-1.3c.8-.5 1.2-1-.7-1.3-.9 1 1 1.3-1 1.4l.1.9c.2-.2.7-.5 1.1-.8l-1.1.9v.1l-2.1 2.7 4.2-1.5h.5l-.2-2.5zm7.3 5.7-.8.1.2 2.5 5.9-.5c-.1-1.6-4-2.1-5.3-2.1&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:backstage knip&quot;&gt;&lt;svg id=&quot;backstage_svg__Assets&quot; viewBox=&quot;0 42.75 2079.95 456.05&quot; overflow=&quot;visible&quot;&gt;&lt;title&gt;03 Logo_Teal&lt;/title&gt;&lt;path d=&quot;M302.9 180a80.6 80.6 0 0 0 13.44-10.37c.8-.77 1.55-1.54 2.31-2.31a82 82 0 0 0 7.92-9.37 62.4 62.4 0 0 0 6.27-10.77 48.6 48.6 0 0 0 4.36-16.4c1.49-19.39-10-38.67-35.62-54.22L198.42 14 78.16 129.22l-78.29 75 108.6 65.9a111.6 111.6 0 0 0 57.76 16.42c24.92 0 48.8-8.8 66.42-25.69 19.16-18.36 25.52-42.12 13.7-61.87a49.7 49.7 0 0 0-6.8-8.87 89.8 89.8 0 0 0 19.28 2.15h.17a85.1 85.1 0 0 0 31-5.79 81 81 0 0 0 12.9-6.47m-100.59 59.8c-19.32 18.51-50.4 21.24-75.7 5.9l-75.13-45.6 67.44-64.65 76.42 46.39c27.54 16.73 26.02 39.76 6.97 58Zm8.94-82.21-70.65-42.85L205 53l69.37 42.11c25.94 15.73 29.31 37.05 10.55 55a60.71 60.71 0 0 1-73.67 7.52Zm29.86 190c-19.57 18.75-46.17 29.08-74.88 29.08a123.84 123.84 0 0 1-64.11-18.19L-.13 296.51v24.67l108.6 65.91a111.6 111.6 0 0 0 57.76 16.42c24.92 0 48.8-8.81 66.42-25.69 12.88-12.34 20-27.13 19.68-41.49v-1.79a88 88 0 0 1-11.22 13.13Zm0-39c-19.57 18.76-46.17 29.09-74.88 29.09a123.84 123.84 0 0 1-64.11-18.19L-.13 257.52v24.68l108.6 65.91a111.6 111.6 0 0 0 57.76 16.41c24.92 0 48.8-8.8 66.42-25.68 12.88-12.35 20-27.13 19.68-41.5v-1.79a87 87 0 0 1-11.22 13.13Zm0-39c-19.57 18.76-46.17 29.09-74.88 29.09a123.84 123.84 0 0 1-64.11-18.19L-.13 218.54v24.68l108.6 65.91a111.6 111.6 0 0 0 57.76 16.41c24.92 0 48.8-8.8 66.42-25.69 12.88-12.34 20-27.12 19.68-41.49v-1.82a87 87 0 0 1-11.22 13.16Zm83.69 25.74a94.16 94.16 0 0 1-60.19 25.86V348a81.6 81.6 0 0 0 51.73-22.37c14-13.38 21.15-28.11 21-42.64v-2.2a95 95 0 0 1-12.54 14.65Zm-83.69 91.21c-19.57 18.75-46.17 29.09-74.88 29.09a123.76 123.76 0 0 1-64.11-18.2L-.13 335.49v24.67l108.6 65.91a111.6 111.6 0 0 0 57.76 16.42c24.92 0 48.8-8.81 66.42-25.69 12.88-12.34 20-27.13 19.68-41.49v-1.79a87.4 87.4 0 0 1-11.22 13.13Zm85.75-210.21c-.68.69-1.35 1.38-2.06 2.05a99.2 99.2 0 0 1-22.23 15.69 94.5 94.5 0 0 1-26.24 8.71 98 98 0 0 1-14.16 1.57c.5 1.61.9 3.25 1.25 4.9a52.7 52.7 0 0 1 1.13 12V231h.05a84.5 84.5 0 0 0 25.4-5.53 80.8 80.8 0 0 0 26.38-16.82c.81-.77 1.51-1.56 2.27-2.34a82 82 0 0 0 7.92-9.38 63 63 0 0 0 6.29-10.78 48.5 48.5 0 0 0 4.32-16.44c.09-1.23.2-2.47.19-3.7v-2c-.72 1-1.48 2.06-2.26 3.09a98 98 0 0 1-8.25 9.34Zm0 77.92c-.68.7-1.3 1.41-2 2.1a94.1 94.1 0 0 1-60.19 25.85V309a81.65 81.65 0 0 0 51.73-22.37 73.5 73.5 0 0 0 16.48-22.49 48.6 48.6 0 0 0 4.32-16.44c.09-1.24.2-2.48.19-3.71v-2.2c-.74 1.08-1.47 2.16-2.27 3.22a96 96 0 0 1-8.3 9.35Zm0-39c-.68.7-1.3 1.41-2 2.1a92 92 0 0 1-10.62 8.65 93.5 93.5 0 0 1-11.63 7 95.6 95.6 0 0 1-37.94 10.18h-.05v26.67a81.63 81.63 0 0 0 51.73-22.37c.81-.77 1.51-1.56 2.27-2.34a82 82 0 0 0 7.92-9.38 63 63 0 0 0 6.29-10.77 48.6 48.6 0 0 0 4.32-16.45c.09-1.23.2-2.47.19-3.7v-2.2c-.74 1.08-1.47 2.16-2.27 3.22a98 98 0 0 1-8.25 9.52Zm241-88.84q7.94 0 17.09.17t18.12 1a139 139 0 0 1 16.74 2.57 42.8 42.8 0 0 1 13.3 5.14 64.3 64.3 0 0 1 20.54 19.89Q662 168 662 186.54q0 19.54-9.49 33.78t-27.1 21.09v.68q22.78 4.82 34.87 20.58t12.08 38.4a72.6 72.6 0 0 1-4.83 26.06 65.3 65.3 0 0 1-14.33 22.46 71.6 71.6 0 0 1-23.47 15.78q-14 6-32.28 6H478.38V126.54Zm9 105.27q28 0 40.21-9.78t12.26-29.31q0-13-4.14-20.58a29.47 29.47 0 0 0-11.4-11.66 45 45 0 0 0-16.79-5.18 161 161 0 0 0-20.19-1.2h-65.6v77.84Zm16.57 112.13q21.74 0 34-11.66T639.59 300q0-12-4.48-19.88a34.85 34.85 0 0 0-11.91-12.52 50.1 50.1 0 0 0-17.09-6.52 105 105 0 0 0-20-1.88h-74.94v84.7Zm274.79 26.74q-7.61 4.45-21.06 4.46-11.4 0-18.12-6.34t-6.74-20.75a70.2 70.2 0 0 1-28.13 20.75 97.87 97.87 0 0 1-57.65 3.6 53.5 53.5 0 0 1-18.82-8.58 41.2 41.2 0 0 1-12.7-15.13q-4.65-9.42-4.66-22.8 0-15.09 5.18-24.69a44.9 44.9 0 0 1 13.64-15.6 62.6 62.6 0 0 1 19.33-9.09q10.88-3.08 22.27-5.14 12.08-2.4 23-3.6a128 128 0 0 0 19.16-3.43c5.53-1.48 9.89-3.65 13.12-6.51s4.83-7 4.83-12.52q0-9.6-3.62-15.43a24.94 24.94 0 0 0-9.32-8.92 38.4 38.4 0 0 0-12.78-4.11 96.5 96.5 0 0 0-14-1q-18.63 0-31.07 7t-13.48 26.57h-29.34q.69-16.46 6.9-27.77a52.2 52.2 0 0 1 16.57-18.35 70 70 0 0 1 23.65-10.11 125.5 125.5 0 0 1 28.48-3.06 169 169 0 0 1 24 1.72 63.3 63.3 0 0 1 21.58 7A41.23 41.23 0 0 1 844 213.59q5.87 9.57 5.87 25v91q0 10.26 1.21 15.05t8.11 4.79a35.6 35.6 0 0 0 9-1.37Zm-47.64-90.87c-3.69 2.74-8.52 4.72-14.5 6s-12.26 2.27-18.82 3.07-13.17 1.71-19.85 2.73a73.7 73.7 0 0 0-18 4.94 32.6 32.6 0 0 0-12.94 9.73q-5 6.32-5 17.23a23.3 23.3 0 0 0 2.94 12.11 24.1 24.1 0 0 0 7.59 8 32 32 0 0 0 10.88 4.44 61 61 0 0 0 13.11 1.36q14.5 0 24.86-3.92a52.5 52.5 0 0 0 16.91-9.9 39.1 39.1 0 0 0 9.67-13 32.5 32.5 0 0 0 3.11-13.14ZM1002.07 225q-11.05-9.25-29.69-9.26-15.89 0-26.58 5.83A47.3 47.3 0 0 0 928.71 237a64.7 64.7 0 0 0-9.15 22.12A119.8 119.8 0 0 0 916.8 285a98.2 98.2 0 0 0 2.93 24 64.2 64.2 0 0 0 9.15 20.74 46.2 46.2 0 0 0 16.23 14.58q10 5.49 23.82 5.48 21.75 0 34-11.31t15-31.89h30q-4.83 32.91-24.68 50.75t-54 17.83q-20.37 0-36.07-6.52A69.86 69.86 0 0 1 907 350.11a79.9 79.9 0 0 1-15.88-28.63 118.6 118.6 0 0 1-5.39-36.48 129.4 129.4 0 0 1 5.18-37.21 85.6 85.6 0 0 1 15.71-30.17A73.46 73.46 0 0 1 933 197.35q15.91-7.35 37-7.35a108.5 108.5 0 0 1 28.48 3.6 69.6 69.6 0 0 1 23.48 11.15 61 61 0 0 1 16.74 19q6.55 11.49 8.29 27.26h-30.38q-3.5-16.8-14.54-26.01m109.77-98.41v145l81.47-77.49h39.36l-70.77 64.46 75.95 112.82h-37.29l-61.1-92.59-27.62 25.38v67.21h-29.34V126.54Zm170.54 205.22a31.1 31.1 0 0 0 10.87 10.63 49 49 0 0 0 15.19 5.66 87 87 0 0 0 17.44 1.71 109 109 0 0 0 14.5-1 53.2 53.2 0 0 0 14-3.78 26.3 26.3 0 0 0 10.53-8q4.14-5.32 4.14-13.55 0-11.31-8.63-17.14a73.7 73.7 0 0 0-21.58-9.43q-12.94-3.6-28.13-6.52a146 146 0 0 1-28.14-8.23 58.16 58.16 0 0 1-21.57-15.03q-8.64-9.6-8.63-26.75 0-13.38 6-23a49.26 49.26 0 0 1 15.53-15.61 71.8 71.8 0 0 1 21.4-8.91A99.4 99.4 0 0 1 1319 190a141.3 141.3 0 0 1 28 2.58 64.9 64.9 0 0 1 22.62 8.91 46.16 46.16 0 0 1 15.7 17.15q5.87 10.8 6.91 26.91h-29.35q-.69-8.57-4.48-14.23a29.36 29.36 0 0 0-9.67-9.08 44.2 44.2 0 0 0-12.94-5 67.7 67.7 0 0 0-14.33-1.54 87 87 0 0 0-13.29 1 45.3 45.3 0 0 0-12.26 3.6 24.5 24.5 0 0 0-9 6.86q-3.46 4.29-3.46 11.14a16.32 16.32 0 0 0 5.36 12.52 42.8 42.8 0 0 0 13.63 8.23 120 120 0 0 0 18.64 5.48q10.37 2.24 20.72 4.63 11 2.4 21.57 5.83a70.7 70.7 0 0 1 18.63 9.11 44.55 44.55 0 0 1 13.12 14.23q5 8.58 5 21.26 0 16.13-6.73 26.75a52.5 52.5 0 0 1-17.61 17.14 73.9 73.9 0 0 1-24.51 9.09 146.3 146.3 0 0 1-27.1 2.57 126.2 126.2 0 0 1-28.31-3.09 69.6 69.6 0 0 1-23.86-10.11 51.74 51.74 0 0 1-16.57-18.52q-6.21-11.49-6.9-27.95h29.34a32.65 32.65 0 0 0 4.51 16.29Zm226.46-137.67v25.72h-35.56v110.02a31.4 31.4 0 0 0 .87 8.23 8.42 8.42 0 0 0 3.28 4.8 14.6 14.6 0 0 0 6.73 2.23 99 99 0 0 0 11.22.51h13.46v25.72h-22.44a106 106 0 0 1-19.5-1.55 28.65 28.65 0 0 1-13.12-5.65 24.1 24.1 0 0 1-7.42-11.66q-2.43-7.54-2.42-19.89V219.81h-30.38v-25.72h30.38v-53.15h29.34v53.15Zm190.56 176.54q-7.61 4.45-21.06 4.46-11.4 0-18.12-6.34t-6.74-20.75a70.2 70.2 0 0 1-28.13 20.75 97.87 97.87 0 0 1-57.65 3.6 53.5 53.5 0 0 1-18.82-8.58 41.2 41.2 0 0 1-12.6-15.26q-4.65-9.42-4.66-22.8 0-15.09 5.18-24.69a44.9 44.9 0 0 1 13.64-15.6 62.6 62.6 0 0 1 19.33-9.09q10.88-3.08 22.27-5.14 12.07-2.4 23-3.6a128 128 0 0 0 19.16-3.43c5.53-1.48 9.89-3.65 13.12-6.51s4.83-7 4.83-12.52q0-9.6-3.62-15.43a24.94 24.94 0 0 0-9.32-8.92 38.4 38.4 0 0 0-12.78-4.11 96.5 96.5 0 0 0-14-1q-18.63 0-31.07 7t-13.46 26.57h-29.34q.67-16.46 6.9-27.77a52.2 52.2 0 0 1 16.54-18.35 70 70 0 0 1 23.65-10.11 125.5 125.5 0 0 1 28.48-3.09 169 169 0 0 1 24 1.72 63.3 63.3 0 0 1 21.58 7 41.23 41.23 0 0 1 15.53 14.89q5.87 9.57 5.87 25v91q0 10.26 1.21 15.05t8.11 4.79a35.6 35.6 0 0 0 9-1.37Zm-47.64-90.87c-3.69 2.74-8.52 4.72-14.5 6s-12.26 2.27-18.82 3.07-13.17 1.71-19.85 2.73a73.7 73.7 0 0 0-17.95 4.94 32.6 32.6 0 0 0-12.94 9.73q-5 6.32-5 17.23a23.3 23.3 0 0 0 2.94 12.11 24.1 24.1 0 0 0 7.59 8 32 32 0 0 0 10.88 4.44 61 61 0 0 0 13.11 1.36q14.51 0 24.86-3.92a52.5 52.5 0 0 0 16.91-9.9 39.1 39.1 0 0 0 9.67-13 32.5 32.5 0 0 0 3.11-13.14Zm208.85 141.62q-20 21.6-62.83 21.6a122 122 0 0 1-25.37-2.74 78 78 0 0 1-23.48-8.92 54.4 54.4 0 0 1-17.43-16.11q-6.91-10-7.6-24.35h29.35a21.47 21.47 0 0 0 5 13.38 36.7 36.7 0 0 0 11.4 8.91 55.5 55.5 0 0 0 14.67 5 79.5 79.5 0 0 0 15.19 1.55q14.49 0 24.51-5a46 46 0 0 0 16.57-13.75 56.5 56.5 0 0 0 9.49-21.09 117.5 117.5 0 0 0 2.94-27.09v-11.63h-.7q-7.59 16.46-23 24.18a71.8 71.8 0 0 1-32.63 7.71q-20 0-34.86-7.2a72.9 72.9 0 0 1-24.83-19.37 82.1 82.1 0 0 1-15-28.46 116.6 116.6 0 0 1-5-34.47 134 134 0 0 1 4.14-32.4A88.2 88.2 0 0 1 1735 221a75.5 75.5 0 0 1 25.55-22.29q15.87-8.75 39-8.75a66.2 66.2 0 0 1 31.07 7.38 52.13 52.13 0 0 1 22.09 22.11h.35v-25.36h27.61v162.19q-.04 43.55-20.06 65.15m-37.46-79.72a47.94 47.94 0 0 0 16.4-15.78 71.9 71.9 0 0 0 9.15-22.11 106.8 106.8 0 0 0 2.93-24.69 96.7 96.7 0 0 0-2.76-23 64 64 0 0 0-8.8-20.4 45.76 45.76 0 0 0-15.71-14.57q-9.66-5.49-23.47-5.49-14.16 0-24.17 5.32a46.8 46.8 0 0 0-16.4 14.23 60.1 60.1 0 0 0-9.32 20.57 99.7 99.7 0 0 0-2.93 24.35 120.6 120.6 0 0 0 2.42 24 67.5 67.5 0 0 0 8.28 21.77 46.4 46.4 0 0 0 15.54 15.78q9.66 6 24.16 6t24.68-5.98m228 18.34q-20 15.09-50.41 15.09-21.4 0-37.11-6.86a73.16 73.16 0 0 1-26.41-19.2 81.5 81.5 0 0 1-16-29.49 141 141 0 0 1-6-37.38 106.1 106.1 0 0 1 6.21-37A88.6 88.6 0 0 1 1938.8 216a79.1 79.1 0 0 1 26.58-19.2A81.7 81.7 0 0 1 1999 190q23.82 0 39.53 9.78a78 78 0 0 1 25.2 24.86 98.2 98.2 0 0 1 13.12 32.91 140.6 140.6 0 0 1 2.93 34h-133.6a70 70 0 0 0 2.76 22.12 49.9 49.9 0 0 0 10 18.51A49.1 49.1 0 0 0 1976.6 345q10.7 4.82 25.2 4.8 18.65 0 30.55-8.57t15.71-26.06h29q-5.88 29.83-25.89 44.88Zm-7.08-113.84a50 50 0 0 0-10.7-16 53.1 53.1 0 0 0-56.62-10.63 47.5 47.5 0 0 0-15.71 10.81 51.7 51.7 0 0 0-10.35 15.94 60.2 60.2 0 0 0-4.49 19.37h102.53a59.5 59.5 0 0 0-4.64-19.49ZM302.9 180a80.6 80.6 0 0 0 13.44-10.37c.8-.77 1.55-1.54 2.31-2.31a82 82 0 0 0 7.92-9.37 62.4 62.4 0 0 0 6.27-10.77 48.6 48.6 0 0 0 4.36-16.4c1.49-19.39-10-38.67-35.62-54.22L198.42 14 78.16 129.22l-78.29 75 108.6 65.9a111.6 111.6 0 0 0 57.76 16.42c24.92 0 48.8-8.8 66.42-25.69 19.16-18.36 25.52-42.12 13.7-61.87a49.7 49.7 0 0 0-6.8-8.87 89.8 89.8 0 0 0 19.28 2.15h.17a85.1 85.1 0 0 0 31-5.79 81 81 0 0 0 12.9-6.47m-100.59 59.8c-19.32 18.51-50.4 21.24-75.7 5.9l-75.13-45.6 67.44-64.65 76.42 46.39c27.54 16.73 26.02 39.76 6.97 58Zm8.94-82.21-70.65-42.85L205 53l69.37 42.11c25.94 15.73 29.31 37.05 10.55 55a60.71 60.71 0 0 1-73.67 7.52Zm29.86 190c-19.57 18.75-46.17 29.08-74.88 29.08a123.84 123.84 0 0 1-64.11-18.19L-.13 296.51v24.67l108.6 65.91a111.6 111.6 0 0 0 57.76 16.42c24.92 0 48.8-8.81 66.42-25.69 12.88-12.34 20-27.13 19.68-41.49v-1.79a88 88 0 0 1-11.22 13.13Zm0-39c-19.57 18.76-46.17 29.09-74.88 29.09a123.84 123.84 0 0 1-64.11-18.19L-.13 257.52v24.68l108.6 65.91a111.6 111.6 0 0 0 57.76 16.41c24.92 0 48.8-8.8 66.42-25.68 12.88-12.35 20-27.13 19.68-41.5v-1.79a87 87 0 0 1-11.22 13.13Zm0-39c-19.57 18.76-46.17 29.09-74.88 29.09a123.84 123.84 0 0 1-64.11-18.19L-.13 218.54v24.68l108.6 65.91a111.6 111.6 0 0 0 57.76 16.41c24.92 0 48.8-8.8 66.42-25.69 12.88-12.34 20-27.12 19.68-41.49v-1.82a87 87 0 0 1-11.22 13.16Zm83.69 25.74a94.16 94.16 0 0 1-60.19 25.86V348a81.6 81.6 0 0 0 51.73-22.37c14-13.38 21.15-28.11 21-42.64v-2.2a95 95 0 0 1-12.54 14.65Zm-83.69 91.21c-19.57 18.75-46.17 29.09-74.88 29.09a123.76 123.76 0 0 1-64.11-18.2L-.13 335.49v24.67l108.6 65.91a111.6 111.6 0 0 0 57.76 16.42c24.92 0 48.8-8.81 66.42-25.69 12.88-12.34 20-27.13 19.68-41.49v-1.79a87.4 87.4 0 0 1-11.22 13.13Zm85.75-210.21c-.68.69-1.35 1.38-2.06 2.05a99.2 99.2 0 0 1-22.23 15.69 94.5 94.5 0 0 1-26.24 8.71 98 98 0 0 1-14.16 1.57c.5 1.61.9 3.25 1.25 4.9a52.7 52.7 0 0 1 1.13 12V231h.05a84.5 84.5 0 0 0 25.4-5.53 80.8 80.8 0 0 0 26.38-16.82c.81-.77 1.51-1.56 2.27-2.34a82 82 0 0 0 7.92-9.38 63 63 0 0 0 6.29-10.78 48.5 48.5 0 0 0 4.32-16.44c.09-1.23.2-2.47.19-3.7v-2c-.72 1-1.48 2.06-2.26 3.09a98 98 0 0 1-8.25 9.34Zm0 77.92c-.68.7-1.3 1.41-2 2.1a94.1 94.1 0 0 1-60.19 25.85V309a81.65 81.65 0 0 0 51.73-22.37 73.5 73.5 0 0 0 16.48-22.49 48.6 48.6 0 0 0 4.32-16.44c.09-1.24.2-2.48.19-3.71v-2.2c-.74 1.08-1.47 2.16-2.27 3.22a96 96 0 0 1-8.3 9.35Zm0-39c-.68.7-1.3 1.41-2 2.1a92 92 0 0 1-10.62 8.65 93.5 93.5 0 0 1-11.63 7 95.6 95.6 0 0 1-37.94 10.18h-.05v26.67a81.63 81.63 0 0 0 51.73-22.37c.81-.77 1.51-1.56 2.27-2.34a82 82 0 0 0 7.92-9.38 63 63 0 0 0 6.29-10.77 48.6 48.6 0 0 0 4.32-16.45c.09-1.23.2-2.47.19-3.7v-2.2c-.74 1.08-1.47 2.16-2.27 3.22a98 98 0 0 1-8.25 9.52Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:cloudflare knip&quot;&gt;&lt;svg fill=&quot;none&quot; viewBox=&quot;0 0 239 54&quot;&gt;&lt;g clip-path=&quot;url(#cloudflare_svg__a)&quot;&gt;&lt;path fill=&quot;#f6821f&quot; d=&quot;m51.027 36.435.378-1.33c.459-1.573.288-3.038-.477-4.105-.702-.986-1.872-1.564-3.294-1.637l-26.907-.343a.53.53 0 0 1-.423-.226.54.54 0 0 1-.054-.489c.09-.262.35-.47.62-.479l27.151-.343c3.222-.145 6.705-2.776 7.929-5.977l1.547-4.07a.9.9 0 0 0 .063-.343c0-.064-.009-.127-.018-.19-1.745-7.948-8.81-13.89-17.242-13.89-7.775 0-14.38 5.046-16.747 12.054a7.95 7.95 0 0 0-5.589-1.555c-3.734.37-6.731 3.39-7.1 7.143a8 8 0 0 0 .207 2.795C4.978 23.63.09 28.649.09 34.807c0 .56.046 1.103.118 1.646a.525.525 0 0 0 .522.452l49.666.009h.018a.66.66 0 0 0 .612-.48Z&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#fbad41&quot; d=&quot;M59.99 17.736c-.251 0-.495.01-.746.018a.25.25 0 0 0-.117.027.43.43 0 0 0-.27.29l-1.062 3.671c-.46 1.573-.288 3.038.477 4.105.702.986 1.872 1.565 3.293 1.637l5.733.344c.17.009.315.09.405.226a.55.55 0 0 1 .063.488c-.09.262-.351.47-.621.48l-5.958.343c-3.23.154-6.722 2.776-7.946 5.977l-.432 1.13a.32.32 0 0 0 .28.434h20.527a.56.56 0 0 0 .53-.398c.36-1.275.55-2.613.55-4.005 0-8.148-6.588-14.767-14.706-14.767&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M97.309 24.363h3.392v9.323h5.94v2.984h-9.332zm12.851 6.187v-.037c0-3.535 2.835-6.402 6.614-6.402 3.781 0 6.579 2.83 6.579 6.366v.036c0 3.536-2.834 6.402-6.614 6.402s-6.579-2.83-6.579-6.365m9.728 0v-.037c0-1.772-1.277-3.327-3.149-3.327-1.854 0-3.096 1.51-3.096 3.291v.036c0 1.773 1.278 3.328 3.131 3.328 1.873 0 3.114-1.51 3.114-3.291m7.622.722v-6.909h3.446v6.845c0 1.773.891 2.623 2.259 2.623s2.259-.805 2.259-2.532v-6.927h3.446V31.2c0 3.979-2.258 5.715-5.741 5.715-3.483-.018-5.669-1.79-5.669-5.642Zm16.613-6.909h4.724c4.375 0 6.912 2.532 6.912 6.086v.036c0 3.554-2.574 6.194-6.984 6.194h-4.652zm4.779 9.287c2.033 0 3.375-1.121 3.375-3.11v-.037c0-1.971-1.35-3.11-3.375-3.11h-1.386v6.257zm11.787-9.287h9.81v2.984h-6.407v2.098h5.795v2.83h-5.795v4.395h-3.403zm14.536 0h3.392v9.323h5.931v2.984h-9.323zm18.204-.09h3.276l5.219 12.398h-3.645l-.891-2.198h-4.724l-.873 2.198h-3.572zm2.97 7.542-1.368-3.5-1.386 3.5zm9.89-7.452h5.796c1.871 0 3.168.498 3.987 1.338.719.706 1.088 1.655 1.088 2.867v.036c0 1.881-.999 3.129-2.519 3.78l2.924 4.295h-3.923l-2.467-3.725h-1.493v3.725h-3.393zm5.633 5.905c1.152 0 1.819-.56 1.819-1.456v-.036c0-.968-.703-1.456-1.836-1.456h-2.223v2.957h2.24zm10.135-5.905h9.853v2.903h-6.488v1.863h5.876v2.685h-5.876v1.953H232v2.903h-9.943zM89.875 31.996c-.477 1.076-1.476 1.845-2.808 1.845-1.853 0-3.131-1.546-3.131-3.328v-.036c0-1.772 1.242-3.291 3.095-3.291 1.395 0 2.466.868 2.916 2.043h3.582c-.576-2.93-3.132-5.118-6.462-5.118-3.78 0-6.614 2.867-6.614 6.402v.037c0 3.535 2.799 6.366 6.578 6.366 3.231 0 5.76-2.107 6.426-4.929h-3.582z&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;defs&gt;&lt;clipPath id=&quot;cloudflare_svg__a&quot;&gt;&lt;path fill=&quot;#fff&quot; d=&quot;M.092 2H232v35.929H.092z&quot;&gt;&lt;/path&gt;&lt;/clipPath&gt;&lt;/defs&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:datadog knip&quot;&gt;&lt;svg viewBox=&quot;0 0 800.5 203.19&quot;&gt;&lt;path d=&quot;M260.87 144.65h-37.4v-86.1h37.4c26.94 0 40.43 13.57 40.43 40.7-.01 30.26-13.49 45.4-40.43 45.4m-21.42-13.86h19c17.9 0 26.84-10.51 26.84-31.55 0-17.91-8.95-26.87-26.84-26.87h-19zm78.59 13.86h-16.42l36.63-86.1h17.19l37.41 86.1h-17.19l-10.86-23.48h-27.63l5.49-13.85h17.92l-14.12-32.34zm65.78-86.1h65.46v13.84h-24.73v72.26h-15.98V72.39h-24.75zm73.68 86.1h-16.42l36.63-86.1h17.19l37.41 86.1H515.1l-10.86-23.48h-27.63l5.49-13.85h17.92l-14.11-32.34zm122.82 0h-37.4v-86.1h37.4c26.96 0 40.43 13.57 40.43 40.7 0 30.26-13.47 45.4-40.43 45.4m-21.41-13.86h19c17.89 0 26.86-10.51 26.86-31.55 0-17.91-8.96-26.87-26.86-26.87h-19zm72.67-29.07c0-29.2 14.45-43.79 43.33-43.79 28.44 0 42.64 14.59 42.64 43.79 0 29.03-14.21 43.55-42.64 43.55-27.6 0-42.04-14.52-43.33-43.55m43.33 29.67c17.36 0 26.05-10.01 26.05-30.05 0-19.72-8.69-29.59-26.05-29.59-17.82 0-26.73 9.87-26.73 29.59 0 20.04 8.91 30.05 26.73 30.05m109.35-21.58v20.16q-5.535 1.44-9.9 1.44c-19.55 0-29.31-10.34-29.31-31.01 0-19.09 10.36-28.62 31.07-28.62 8.65 0 16.69 1.61 24.13 4.82V62.14c-7.44-2.8-15.89-4.21-25.34-4.21-30.97 0-46.46 14.15-46.46 42.47 0 29.9 15.22 44.87 45.67 44.87 10.47 0 19.17-1.52 26.13-4.58V95.64h-25.82l-5.4 14.16z&quot;&gt;&lt;/path&gt;&lt;g&gt;&lt;path d=&quot;m167.2 98.4-54.9 10c-1.4 1.8-4.7 4.8-6.3 5.6-6.9 3.5-11.6 2.5-15.7 1.4-2.6-.7-4.1-1-6.3-2l-13.4 1.8 8.1 67.9 94.1-17zm-83.8 78.3-.8-7.4L98 145.9l17.4 5.1 15-25.1 18 11.9 13.7-28.7 4.9 52.2zM79.5 110c-6.8-4.4-13.8-10.6-16.9-14.1-.5-.4-.4-2.1-.4-2.1 2.8 2.2 14.3 10.4 26.4 14.1 4.3 1.3 10.9 1.8 16.6-1.4 4.4-2.5 9.6-6.8 12.7-11.2l.6 1c0 .7-1.5 3.9-2.2 5.2 1.3.8 2.3 1 3.8 1.4l10.1-1.6c3.6-5.8 6.2-15.2 3.4-24.2-1.6-5.1-9.8-15.4-10.4-15.9-2.1-2 .3-9.6-3.7-18-4.3-8.8-15.6-18-20.5-22.1 1.4 1 10.3 4.6 14.4 9.6.4-.5.6-3.2.9-3.9-3.6-4.6-3.8-12.9-3.8-15.1 0-4.1-2.1-8.7-2.1-8.7s3.6 2.8 4.5 7.7c1.1 5.7 3.4 10.3 6.5 14.1 5.8 7.2 11 10.9 13.7 8.2 3.2-3.2-3.2-17.5-11.3-25.5-9.5-9.3-12-8.1-17.5-6.1-4.4 1.5-6.8 14.2-18.4 13.9-2-.2-7-.4-9.5-.3 1.3-1.8 2.4-3.2 2.4-3.2s-3.9 1.6-7.2 3.6l-.3-.4c1.1-2.4 2.3-3.8 2.3-3.8s-3.1 1.9-5.9 4.1c.5-2.8 2.5-4.6 2.5-4.6s-3.9.7-8.9 6.2c-5.7 1.5-7 2.6-11.6 4.6-7.4-1.6-10.8-4.2-14.1-9-2.5-3.6-7-4.2-11.6-2.3-6.7 2.8-15.1 6.5-15.1 6.5s2.8-.1 5.6 0c-3.9 1.5-7.7 3.5-7.7 3.5s1.8-.1 4.1 0c-1.6 1.3-2.4 1.9-3.9 2.9C3.4 25.7.5 28.7.5 28.7s2.4-1.1 4.6-1.7c-1.5 3.5-4.6 6.1-4 10.4.5 3.9 5.3 12 11.6 17 .5.4 9 8.3 15.4 5.1s8.9-6.1 10-10.5c1.2-5.1.5-8.9-2.1-19.9-.9-3.6-3.1-11.1-4.2-14.6l.2-.2c2.1 4.4 7.4 16.1 9.6 23.9 3.4 12.2 2.3 18.4.8 20.7-4.7 6.8-16.6 7.8-22 4-.8 13.1 2.1 18.9 3.1 21.8-.5 3.3 1.7 9.6 1.7 9.6s.2-2.8 1.2-4.3c.3 3.3 1.9 7.3 1.9 7.3s-.1-2.4.7-4.5c1.1 1.8 1.9 2.2 2.9 3.6 1 3.6 3 6.2 3 6.2s-.3-1.9-.2-3.9c5 4.8 5.8 11.8 6.3 17.1 1.4 14.7-23.2 26.4-28 35.6-3.6 5.4-5.8 14.1.3 19.2 14.8 12.3 9.1 15.7 16.5 21.1 10.2 7.4 22.9 4.1 27.2-1.9 6-8.4 4.5-16.3 2.2-23.7-1.8-5.8-6.5-15.4-12.4-19.1-6-3.8-11.9-4.5-16.8-4l.5-.5c7.1-1.4 14.6-.6 20 2.8 6.1 3.9 11.7 10.7 14.6 21 3.3-.5 3.8-.7 6.8-1.1L65 111.6zm34.3-66.7c6.3 2.9 5.5 8.5 5.6 11.8.1.9 0 1.6-.1 2-.9-.5-2.2-.8-4.4-.7-.6 0-1.3.1-1.9.2-2.3-1.2-3.7-3.7-5-6.3-.1-.2-.2-.5-.3-.7 0-.1-.1-.2-.1-.3v-.1c-.7-2.2-.2-2.7.1-3.3s1.4-1.3-.2-1.8c-.1 0-.3-.1-.5-.1 1.1-1.4 4.4-1.8 6.8-.7M106 79.9c1.2-.9 6.8-2.7 12-3.4 2.7-.3 6.6-.5 7.4 0 1.6.9 1.6 3.7.5 6.3-1.6 3.8-3.9 7.9-6.6 8.2-4.3.6-8.3-1.7-12.9-5.2-1.6-1.2-2.6-4.2-.4-5.9M65.6 51.4c6.8-4.6 15.5-2.8 14-1.4-2.8 2.7.9 1.9 1.3 6.8.3 3.6-.9 5.6-1.9 6.7-2.1.3-4.7.8-7.8 1.8-1.8.6-3.4 1.2-4.8 1.9q-.6-.3-1.2-.9c-4.7-4.2-4.5-11.5.4-14.9&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;g&gt;&lt;path d=&quot;M158.87 144.16 142 133.04l-14.07 23.5-16.36-4.78-14.41 21.99.74 6.92 78.33-14.43-4.55-48.94zm-73.05-21.09 12.57-1.73c2.03.91 3.45 1.26 5.89 1.88 3.8.99 8.19 1.94 14.7-1.34 1.51-.75 4.67-3.64 5.94-5.28l51.49-9.34 5.25 63.57-88.21 15.9zm95.64-22.91-5.08.97L166.62.25.25 19.54l20.5 166.33 19.47-2.83c-1.55-2.22-3.98-4.91-8.11-8.35-5.74-4.76-3.71-12.86-.32-17.97 4.47-8.63 27.54-19.61 26.23-33.41-.47-5.02-1.27-11.55-5.93-16.03-.17 1.86.14 3.65.14 3.65s-1.91-2.44-2.87-5.77c-.95-1.28-1.69-1.68-2.7-3.39-.72 1.97-.62 4.26-.62 4.26s-1.56-3.7-1.82-6.82c-.93 1.4-1.16 4.05-1.16 4.05s-2.03-5.83-1.57-8.97c-.93-2.73-3.68-8.15-2.9-20.47 5.08 3.56 16.26 2.71 20.61-3.71 1.45-2.13 2.44-7.93-.72-19.36-2.03-7.33-7.05-18.25-9.01-22.4l-.23.17c1.03 3.34 3.16 10.33 3.98 13.73 2.47 10.29 3.13 13.87 1.97 18.61-.99 4.12-3.35 6.82-9.35 9.84-6 3.03-13.96-4.34-14.47-4.74-5.83-4.64-10.34-12.22-10.84-15.9-.52-4.03 2.32-6.45 3.76-9.74-2.05.59-4.34 1.63-4.34 1.63s2.73-2.83 6.1-5.27c1.4-.92 2.21-1.51 3.68-2.73-2.13-.03-3.86.02-3.86.02s3.55-1.92 7.23-3.31c-2.69-.12-5.27-.02-5.27-.02S35.75 27.1 42 24.5c4.3-1.76 8.5-1.24 10.86 2.17 3.1 4.47 6.35 6.9 13.25 8.41 4.24-1.88 5.52-2.84 10.84-4.29 4.68-5.15 8.36-5.82 8.36-5.82s-1.82 1.67-2.31 4.3c2.66-2.09 5.57-3.84 5.57-3.84s-1.13 1.39-2.18 3.6l.24.36c3.1-1.86 6.74-3.32 6.74-3.32s-1.04 1.32-2.26 3.02c2.34-.02 7.08.1 8.91.31 10.86.24 13.11-11.6 17.28-13.08 5.22-1.86 7.55-2.99 16.44 5.74 7.63 7.5 13.59 20.91 10.63 23.92-2.48 2.49-7.38-.97-12.8-7.74-2.87-3.58-5.03-7.81-6.05-13.19-.86-4.54-4.19-7.17-4.19-7.17s1.93 4.31 1.93 8.11c0 2.08.26 9.84 3.59 14.19-.33.64-.48 3.15-.85 3.63-3.87-4.68-12.19-8.03-13.54-9.02 4.59 3.76 15.14 12.4 19.19 20.68 3.83 7.83 1.57 15.01 3.51 16.87.55.53 8.24 10.11 9.72 14.93 2.58 8.39.15 17.21-3.22 22.68l-9.43 1.47c-1.38-.38-2.31-.58-3.55-1.29.68-1.21 2.04-4.22 2.05-4.84l-.53-.93c-2.94 4.16-7.85 8.2-11.94 10.52-5.35 3.03-11.51 2.56-15.52 1.32-11.39-3.51-22.16-11.21-24.75-13.23 0 0-.08 1.61.41 1.98 2.87 3.24 9.45 9.1 15.81 13.18l-13.55 1.49 6.41 49.89c-2.84.41-3.28.61-6.39 1.05-2.74-9.68-7.98-16.01-13.71-19.69-5.05-3.25-12.02-3.98-18.7-2.66l-.43.5c4.64-.48 10.12.19 15.74 3.75 5.52 3.49 9.97 12.51 11.61 17.94 2.1 6.94 3.55 14.36-2.1 22.23-4.02 5.59-15.74 8.68-25.22 2 2.53 4.07 5.95 7.4 10.55 8.02 6.84.93 13.33-.26 17.79-4.84 3.81-3.92 5.84-12.12 5.3-20.75l6.03-.87 2.18 15.49 99.88-12.03zm-60.77-42.08c-.28.64-.72 1.05-.06 3.12l.04.12.1.27.27.62c1.19 2.42 2.49 4.71 4.66 5.88.56-.09 1.15-.16 1.75-.19 2.04-.09 3.33.23 4.15.68.07-.41.09-1 .04-1.88-.16-3.07.61-8.29-5.29-11.04-2.23-1.03-5.35-.72-6.39.58.19.02.36.06.49.11 1.59.54.53 1.08.24 1.73m16.54 28.65c-.77-.43-4.39-.26-6.93.04-4.84.57-10.07 2.25-11.22 3.14-2.08 1.61-1.14 4.42.4 5.57 4.32 3.22 8.1 5.39 12.09 4.86 2.45-.32 4.61-4.2 6.14-7.73 1.06-2.42 1.06-5.03-.48-5.88M94.36 61.88c1.37-1.3-6.8-3-13.14 1.32-4.67 3.19-4.82 10.03-.35 13.9.45.38.82.66 1.16.88 1.31-.62 2.8-1.24 4.51-1.79 2.9-.94 5.3-1.43 7.28-1.68.95-1.06 2.05-2.92 1.77-6.29-.37-4.59-3.84-3.86-1.23-6.34&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:eslint knip&quot;&gt;&lt;svg fill=&quot;none&quot; viewBox=&quot;0 0 203 58&quot;&gt;&lt;path id=&quot;eslint_svg__logo-center&quot; fill=&quot;#8080f2&quot; d=&quot;m46.557 21.11-12.54-7.24a1.01 1.01 0 0 0-1.015 0l-12.54 7.24a1.01 1.01 0 0 0-.508.878v14.48c0 .362.194.697.508.879l12.54 7.24c.314.181.7.181 1.015 0l12.54-7.24c.314-.181.507-.516.507-.879v-14.48c0-.363-.193-.697-.507-.879&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#4b32c3&quot; d=&quot;M.904 27.705 15.888 1.638C16.432.695 17.438 0 18.526 0h29.967c1.089 0 2.094.695 2.639 1.638l14.983 26.01a3.1 3.1 0 0 1 0 3.074L51.132 56.576c-.545.942-1.55 1.424-2.639 1.424H18.526c-1.088 0-2.094-.467-2.638-1.41L.905 30.694a2.94 2.94 0 0 1 0-2.99m12.407 12.534c0 .384.231.738.563.93L32.96 52.18c.332.192.748.192 1.08 0l19.1-11.011c.332-.192.564-.546.564-.93V18.216c0-.383-.229-.738-.56-.93L34.057 6.277a1.08 1.08 0 0 0-1.079 0l-19.101 11.01c-.333.192-.566.547-.566.93z&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#4b32c3&quot; d=&quot;M86.697 43.71V14.29h18.745v4.581h-13.66v7.733h12.483v4.582H91.783v7.943h13.869v4.581zm32.222.589q-3.362 0-5.968-1.177-2.564-1.22-4.035-3.489-1.47-2.27-1.471-5.547v-1.093h5.002v1.093q0 2.9 1.765 4.328 1.766 1.43 4.707 1.43 2.985 0 4.497-1.22 1.513-1.218 1.513-3.152 0-1.303-.714-2.101-.714-.84-2.102-1.345-1.344-.504-3.278-.967l-1.261-.252q-2.9-.672-5.043-1.68-2.102-1.052-3.236-2.69-1.135-1.64-1.135-4.288 0-2.647 1.261-4.539 1.26-1.89 3.572-2.9 2.311-1.009 5.422-1.009t5.548 1.051 3.824 3.152q1.43 2.102 1.429 5.254v1.387h-5.001v-1.387q0-1.808-.715-2.9-.714-1.092-2.017-1.597t-3.068-.504q-2.605 0-3.951 1.008-1.345 1.009-1.345 2.858 0 1.177.589 2.018.63.798 1.807 1.345 1.218.504 3.026.882l1.261.294q3.025.673 5.296 1.723 2.269 1.01 3.53 2.69 1.303 1.682 1.303 4.371 0 2.648-1.387 4.666-1.345 2.017-3.825 3.152-2.437 1.134-5.8 1.135m14.181-.589V14.29h5.085v24.839h13.786v4.581zm21.727 0V22.948h4.834V43.71zm2.396-23.41q-1.303 0-2.269-.84-.925-.884-.925-2.312 0-1.43.925-2.27a3.26 3.26 0 0 1 2.269-.882q1.387 0 2.27.882.924.84.924 2.27t-.924 2.311q-.883.84-2.27.841m7.302 23.41V22.948h4.75v2.9h.714q.547-1.177 1.975-2.228 1.43-1.05 4.329-1.05 2.396 0 4.245 1.092a7.44 7.44 0 0 1 2.858 3.026q1.051 1.934 1.051 4.582v12.44h-4.833V31.648q0-2.522-1.261-3.74-1.22-1.262-3.489-1.262-2.564 0-4.034 1.724-1.471 1.68-1.471 4.833V43.71zm31.924 0q-2.018 0-3.236-1.177-1.177-1.218-1.177-3.278V26.941h-5.422v-3.993h5.422v-6.683h4.833v6.683h5.968v3.993h-5.968v11.516q0 1.26 1.177 1.26h4.161v3.993z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:freeCodeCamp knip&quot;&gt;&lt;svg viewBox=&quot;0 0 210 24&quot;&gt;&lt;defs&gt;&lt;path id=&quot;freecodecamp_svg__fcc-k&quot; d=&quot;m35.42 5.56.43.05.42.08.39.09.37.12.36.14.32.16.31.18.28.21.27.22.24.24.22.27.2.28.18.31.16.33.13.35.12.37.09.39.08.41.05.44.03.45.01.47v.23l-.01.1-.04.2-.04.18-.03.08-.07.15-.04.06-.05.06-.04.06-.06.05-.05.05-.06.03-.06.04-.07.03-.08.02-.07.02-.16.02h-8.9v-.07h-.02v1.84l.01.24.03.24.03.23.06.22.07.2.09.2.1.17.12.18.13.15.15.16.17.13.18.13.2.11.21.11.23.09.24.09.27.06.27.07.3.05.31.03.32.03.34.02.36.01h.13l.13-.01h.13l.12-.01h.13l.24-.02.23-.02.11-.01.11-.02.21-.03.1-.01.1-.02.29-.06.09-.03.09-.02.08-.03.09-.03.08-.03.05-.01.15-.06.06-.03.06-.02.12-.06.21-.11.08-.04.07-.05.17-.09.08-.05.09-.05.09-.06.19-.13.1-.06.1-.07.11-.07.12-.12.13-.1.06-.05.05-.04.06-.04.05-.05.09-.07.1-.06.04-.03.04-.02.04-.03.07-.03.03-.01.04-.01.02-.01.05-.01h.09l.1.01.15.03.04.02.07.04.04.03.09.09.03.04.04.08.01.05.02.05.01.06.02.1v.2l-.01.07-.01.06-.01.07-.06.2-.03.06-.04.07-.03.07-.04.07-.05.07-.05.06-.1.14-.13.13-.13.14-.16.14-.09.06-.08.08-.15.1-.15.11-.32.2-.17.09-.18.09-.18.08-.19.07-.19.08-.21.07-.42.12-.22.05-.23.05-.47.09-.5.06-.52.04-.27.01-.28.01h-.76l-.47-.03-.45-.04-.42-.07-.41-.07-.38-.09-.36-.11-.34-.13-.31-.15-.3-.16-.27-.18-.26-.2-.22-.21-.21-.23-.19-.25-.16-.26-.14-.29-.13-.29-.1-.32-.07-.34-.06-.35-.03-.37-.01-.39V9.57l.01-.14.01-.12.01-.13.04-.26.04-.13.03-.12.08-.24.1-.24.12-.23.06-.11.07-.12.08-.1.08-.11.08-.1.09-.11.19-.2.23-.23.3-.24.15-.11.17-.11.17-.1.17-.09.18-.09.38-.16.2-.07.42-.12.22-.05.23-.05.22-.04.24-.03.24-.04.24-.02.25-.02.52-.02h.27l.47.01zm-2.04 1.6-.41.07-.39.1-.38.13-.37.15-.35.18-.32.25-.27.26-.23.28-.19.3-.13.31-.08.32-.03.35v.96h8.19l-.09-.98-.25-.83-.43-.69-.6-.53-.76-.38-.95-.23-1.11-.07-.43.01z&quot;&gt;&lt;/path&gt;&lt;path id=&quot;freecodecamp_svg__fcc-j&quot; d=&quot;m107.21 5.56.43.05.42.08.39.09.37.12.35.14.33.16.31.18.29.21.26.22.24.24.22.27.21.28.17.31.16.33.14.35.11.37.1.39.07.41.05.44.03.45.01.47v.12l-.01.11-.02.2-.02.1-.02.09-.03.09-.02.08-.03.07-.04.08-.04.06-.1.12-.1.1-.13.07-.13.05-.08.02-.16.02-8.92.01v1.76l.01.24.02.24.04.23.06.22.07.2.08.2.11.17.11.18.14.15.15.16.17.13.18.13.19.11.22.11.23.09.24.09.26.06.28.07.3.05.31.03.32.03.34.02.36.01h.13l.13-.01h.13l.25-.01.24-.02.22-.02.12-.01.11-.02.31-.04.2-.04.19-.04.09-.03.09-.02.09-.03.08-.03.13-.04.04-.02.06-.02.05-.02.06-.03.05-.02.07-.03.2-.1.14-.08.08-.05.08-.04.08-.05.18-.1.18-.12.2-.13.1-.07.11-.07.06-.06.07-.06.05-.05.07-.05.05-.05.06-.04.11-.09.05-.03.05-.04.04-.03.05-.03.04-.03.04-.02.04-.03.07-.03.12-.04h.16l.06.01.09.02.05.01.12.06.12.12.03.04.04.08.01.05.02.05.02.11.01.05v.2l-.01.07-.01.06-.01.07-.04.14-.02.06-.03.06-.04.07-.03.07-.09.14-.05.06-.05.07-.11.14-.21.2-.23.2-.09.08-.3.21-.15.1-.17.1-.17.09-.18.09-.18.08-.19.07-.2.08-.2.07-.42.12-.22.05-.23.05-.23.04-.24.05-.5.06-.52.04-.55.02h-.77l-.46-.03-.45-.04-.43-.07-.39-.07-.39-.09-.36-.11-.33-.13-.33-.15-.29-.16-.27-.18-.25-.2-.23-.21-.22-.23-.18-.25-.17-.26-.14-.29-.12-.29-.1-.32-.08-.34-.05-.35-.04-.37-.01-.39V9.7l.01-.13v-.14l.02-.12.01-.13.02-.13.05-.26.12-.36.1-.24.11-.23.07-.11.07-.12.07-.1.09-.11.08-.1.09-.11.19-.2.1-.1.14-.13.14-.12.15-.12.15-.11.17-.11.17-.1.17-.09.19-.09.18-.08.19-.08.2-.07.42-.12.44-.1.23-.04.23-.03.25-.04.24-.02.25-.02.52-.02h.27l.48.01zm-2.04 1.6-.41.07-.39.1-.38.13-.37.15-.34.18-.34.25-.29.26-.23.28-.17.3-.13.31-.07.32-.03.35v.96h8.19l-.09-.98-.25-.83-.43-.69-.6-.53-.76-.38-.95-.23-1.11-.07-.43.01z&quot;&gt;&lt;/path&gt;&lt;path id=&quot;freecodecamp_svg__fcc-b&quot; d=&quot;M203.57.17c-.12.12-.24.29-.24.45 0 .29.34.69.97 1.33 2.63 2.53 3.95 5.62 3.94 9.35-.01 4.13-1.4 7.45-4.1 10.01-.57.51-.8.91-.8 1.25 0 .17.12.34.23.51.11.12.34.23.51.23.62 0 1.5-.73 2.64-2.17 2.22-2.72 3.22-5.73 3.28-9.82.05-4.1-1.23-6.88-3.75-9.75-.9-1.03-1.66-1.56-2.17-1.56-.17 0-.35.06-.51.17&quot;&gt;&lt;/path&gt;&lt;path id=&quot;freecodecamp_svg__fcc-n&quot; d=&quot;M124.75 1.76c1.14.86 1.73 2.07 1.73 3.55 0 .68-.29 1.02-.86 1.02-.39 0-.68-.34-.85-1.02-.11-.57-.34-1.08-.62-1.62-.52-.9-1.61-1.32-3.32-1.32-1.49 0-2.52.34-3.14 1.08-.57.68-.91 1.72-.91 3.26v5.95c0 1.55.34 2.63.97 3.31.68.74 1.72 1.13 3.2 1.13 2.23 0 3.54-.79 3.82-2.34.12-.57.17-.86.17-.91.12-.34.35-.51.68-.51.57 0 .86.34.86 1.02 0 1.44-.57 2.52-1.78 3.38-.97.62-2.18.96-3.77.96-1.84 0-3.26-.4-4.3-1.25-1.16-.8-1.73-2.16-1.73-3.94V6.35c0-3.77 1.95-5.61 5.95-5.61 1.61 0 2.86.34 3.9 1.02&quot;&gt;&lt;/path&gt;&lt;path id=&quot;freecodecamp_svg__fcc-l&quot; d=&quot;M14.21 6.57c0-.56.34-.79 1.02-.79h3.32c.57 0 .85.51.85 1.44 1.02-1.08 2.12-1.73 3.26-1.73.96 0 1.72.29 2.23.86.57.57.8 1.38.8 2.29 0 .63-.29.97-.8.97-.34 0-.57-.23-.68-.63-.23-.8-.34-1.19-.4-1.25-.22-.39-.68-.62-1.25-.62-.62 0-1.25.23-1.78.68-.34.23-.8.74-1.38 1.49v7.67h3.08c.68 0 1.03.29 1.03.8 0 .57-.35.86-1.03.86h-7.33c-.68 0-1.02-.29-1.02-.8 0-.57.34-.8 1.02-.8h2.52v-.07h.02V7.37h-2.46c-.68 0-1.02-.28-1.02-.8&quot;&gt;&lt;/path&gt;&lt;path id=&quot;freecodecamp_svg__fcc-c&quot; d=&quot;m96.68.04.06.02.06.03.05.03.06.04.13.13.03.06.04.06.03.07.02.07.04.16.04.18.01.2v17.02l-.01.07v.07l-.04.13-.01.05-.03.06-.02.05-.06.09-.07.08-.05.03-.04.03-.05.03-.1.04-.06.02-.12.02-.07.01h-.11l-.13-.02-.04-.01-.04-.02-.04-.01-.03-.02-.03-.01-.03-.03-.03-.02-.06-.05-.02-.03-.07-.12-.01-.04-.02-.05-.01-.04-.02-.05v-.21l-.01-.04v-.04l-.01-.04v-.08l-.01-.05v-.09l-.01-.09v-.06l-.01-.04v-.17l-.01-.06v-.13l-.13.09-.13.08-.13.09-.24.14-.11.08-.12.07-.21.12-.1.06-.09.06-.1.05-.25.14-.14.08-.14.06-.12.05-.05.02-.09.04-.09.03-.09.02-.19.06-.4.08-.21.03-.22.03-.11.02-.23.02h-.12l-.12.01h-.11l-.12.01h-.46l-.21-.01-.2-.01-.2-.02-.19-.01-.2-.03-.18-.02-.37-.07-.34-.08-.18-.05-.32-.1-.32-.12-.15-.07-.15-.06-.42-.24-.13-.08-.14-.1-.28-.22-.12-.11-.12-.13-.11-.12-.11-.13-.1-.14-.09-.14-.17-.29-.07-.15-.07-.16-.06-.16-.05-.16-.05-.18-.04-.18-.03-.17-.02-.19-.03-.19-.01-.19V9.52l.01-.19.03-.18.02-.18.03-.18.08-.34.05-.16.06-.16.06-.15.08-.15.07-.15.18-.28.2-.26.1-.12.24-.24.26-.22.14-.1.39-.24.15-.07.28-.14.31-.12.15-.05.33-.1.33-.08.72-.12.37-.03.38-.02h.45l.25.02h.25l.12.02.12.01.22.02.22.04.11.01.21.04.1.02.09.02.28.08.09.03.09.04.08.03.09.03.08.04.09.03.09.04.1.05.17.09.29.16.09.05.29.19.2.14.09.07.4.32V1.19l.01-.1v-.2l.04-.18.01-.08.03-.08.02-.07.03-.07.03-.06.04-.06.04-.04.04-.05.04-.04.05-.04.1-.06.06-.02.13-.03.06-.01h.14l.07.01zm-5.7 7.19-.26.03-.26.02-.25.05-.24.05-.23.05-.42.16-.19.09-.18.1-.2.15-.2.16-.17.17-.15.17-.14.19-.11.2-.1.2-.08.23-.05.23-.04.23-.01.26v4.52l.01.26.03.25.05.23.07.23.09.21.12.2.13.19.16.17.17.16.2.14.22.14.19.09.42.16.22.07.22.06.24.06.25.04.26.04.27.03.56.02.47-.01.44-.04.43-.06.21-.04.2-.06.38-.12.17-.07.14-.1.16-.11.15-.11.16-.12.17-.12.16-.13.18-.13.17-.15.18-.15.36-.32V8.81l-.21-.16-.21-.14-.2-.14-.2-.13-.19-.12-.18-.11-.17-.11-.16-.09-.3-.14-.13-.06-.19-.07-.38-.12-.2-.05-.4-.08-.21-.03-.21-.02-.21-.01-.43-.01h-.28z&quot;&gt;&lt;/path&gt;&lt;path id=&quot;freecodecamp_svg__fcc-e&quot; d=&quot;M195.66 12.04c-.99-.25 3.06-5.03-4.13-10.75 0 0 .94 3-3.81 9.69-4.76 6.68 2.11 10.66 2.11 10.66s-3.22-1.72.53-7.84c.67-1.11 1.55-2.11 2.64-4.38 0 0 .96 1.37.46 4.32-.75 4.47 3.27 3.19 3.33 3.25 1.41 1.65-1.16 4.56-1.32 4.65s7.34-4.5 2.01-11.42c-.36.36-.83 2.08-1.82 1.82&quot;&gt;&lt;/path&gt;&lt;path id=&quot;freecodecamp_svg__fcc-m&quot; d=&quot;m135.26 5.37.19.01.18.02.18.01.18.02.34.04.16.02.16.04.15.02.14.04.15.03.28.08.26.08.36.15.12.06.11.05.1.06.11.06.12.08.1.09.11.09.2.2.18.22.16.24.07.12.14.26.12.29.05.14.04.15.05.16.04.15.03.17.02.16.04.36.01.18.02.18v6.26l.02.28.01.07.02.12.02.06.01.06.03.11.02.05.06.14.03.04.02.04.03.04.06.07.08.08.02.01v.01h.03l.01.02.05.02.02.01.05.02.03.02.04.01.11.04.12.05.1.04.04.01.05.02.05.03.09.03.07.03.02.02.03.02.05.04.02.02.02.03.02.02.04.06.03.06.01.04.01.03.02.08v.04l.01.04.01.05v.05l.01.05v.21l-.02.05v.04l-.01.05-.01.04-.02.04-.01.04-.02.03-.03.04-.05.06-.02.03-.04.02-.11.06-.08.04-.1.02-.1.01h-.2l-.03-.01h-.04l-.1-.02-.03-.02h-.03l-.06-.02-.11-.03-.12-.03-.05-.01-.04-.01-.05-.02-.21-.07-.07-.02-.07-.03-.24-.08-.1-.04-.05-.01-.04-.02-.05-.01-.04-.01-.04-.02-.03-.01-.07-.02-.07-.03-.03-.01-.01-.01-.02-.01h-.07l-.03-.02-.03-.01-.04-.01-.02-.02-.06-.04-.03-.03-.02-.03-.03-.03-.02-.03-.02-.04-.03-.04-.02-.04-.01-.04-.03-.04-.02-.05-.03-.09-.06-.21-.02-.06-.23.16-.22.15-.1.07-.2.12-.1.07-.34.22-.08.04-.07.05-.21.12-.06.04-.16.08-.05.02-.09.04-.04.01-.06.04-.07.02-.15.05-.4.1-.08.01-.18.03-.09.01-.09.02-.28.03-.2.02h-.1l-.11.01h-.75l-.16-.01-.31-.02-.3-.03-.15-.02-.15-.03-.28-.05-.27-.06-.14-.04-.13-.04-.12-.04-.13-.05-.24-.09-.12-.06-.11-.05-.11-.06-.11-.07-.11-.06-.1-.07-.24-.16-.22-.19-.1-.1-.09-.1-.1-.1-.24-.33-.14-.24-.06-.12-.06-.13-.05-.12-.05-.13-.08-.27-.06-.28-.04-.3-.02-.3v-.32l.01-.15.01-.16.02-.14.05-.3.07-.28.05-.14.11-.26.12-.26.15-.24.16-.22.09-.11.1-.11.2-.2.11-.09.23-.18.13-.08.33-.24.24-.13.26-.13.13-.05.26-.11.14-.05.42-.12.15-.03.14-.04.15-.02.15-.03.16-.02.15-.01.16-.02.48-.03h.3l.13.01h.14l.29.02.14.02.15.02.14.02.16.02.14.02.15.04.16.02.15.03.32.08.49.12.16.05.51.15.36.12.17.06V9.43l-.01-.11-.01-.1-.01-.12-.02-.09-.02-.11-.04-.1-.03-.1-.03-.09-.05-.09-.04-.09-.11-.16-.06-.09-.06-.07-.07-.08-.15-.14-.08-.07-.18-.12-.1-.06-.2-.1-.11-.06-.07-.03-.16-.06-.34-.11-.26-.06-.1-.02-.09-.01-.1-.02-.09-.01-.3-.03-.1-.02h-.1L135 7.1l-.1-.01h-.68l-.25.01-.24.01-.23.02-.42.06-.2.03-.19.04-.17.05-.17.06-.16.05-.15.07-.14.07-.13.07-.12.09-.12.08-.1.1-.09.1-.09.11-.08.11-.06.11-.06.13-.05.13-.04.14-.03.14-.01.07-.02.06-.04.22-.02.09-.01.05-.01.04-.01.03v.04l-.02.06-.01.06-.01.04v.02l-.01.02v.05l-.02.03-.03.07-.01.02-.05.06-.01.02-.03.02-.05.05-.02.01-.02.02-.03.01-.03.02-.09.03-.04.01-.06.02h-.08l-.03.01h-.15l-.06-.01-.13-.02-.06-.01-.15-.06-.1-.06-.04-.04-.04-.03-.08-.08-.03-.05-.05-.09-.03-.06-.01-.06-.04-.12-.01-.06V9.3l-.01-.08v-.17l.01-.1v-.1l.02-.1.01-.1.04-.2.05-.2.03-.1.03-.09.08-.2.05-.1.09-.19.18-.28.06-.09.07-.09.22-.27.08-.09.1-.11.22-.2.12-.09.26-.18.14-.08.15-.08.16-.08.15-.06.17-.07.18-.06.18-.05.38-.1.2-.04.42-.08.44-.05.46-.04.24-.01h.25l.25-.01h.2l.2.01zm-2.41 7.31-.68.24-.54.35-.38.44-.23.54-.07.64.02.34.06.31.11.3.15.27.2.25.25.2.29.17.25.13.28.12.3.09.32.08.34.05.36.03.38.01.34-.01.32-.02.32-.04.31-.07.3-.07.3-.11.29-.13.2-.12.22-.15.25-.16.26-.18.28-.21.3-.22.31-.23v-2.41l-.54-.16-.53-.14-.53-.11-.52-.09-.51-.07-.49-.04-.48-.01-.98.05z&quot;&gt;&lt;/path&gt;&lt;path id=&quot;freecodecamp_svg__fcc-a&quot; d=&quot;M.97 5.8h1.84V4.19C2.81 1.39 4.25 0 7.05 0c1.14 0 2.12.23 2.86.63.96.57 1.5 1.5 1.5 2.58 0 .73-.29 1.02-.8 1.02-.34 0-.68-.23-.86-.63-.22-.73-.45-1.13-.56-1.32-.34-.4-1.03-.63-2.01-.63-1.72 0-2.57.85-2.57 2.58v1.55h3.31c.74 0 1.08.29 1.08.79 0 .57-.34.8-1.08.8H4.61v10.48c0 .62-.29.96-.8.96-.57 0-.8-.34-.8-.96V7.39H.97C.34 7.39 0 7.11 0 6.6c0-.58.34-.8.97-.8&quot;&gt;&lt;/path&gt;&lt;path id=&quot;freecodecamp_svg__fcc-i&quot; d=&quot;m78.8 5.55.61.08.56.12.52.15.48.18.43.22.38.25.34.29.29.32.25.35.21.39.16.42.11.45.07.49.02.51v4.71l-.02.52-.07.48-.11.46-.15.42-.2.38-.24.35-.29.32-.33.29-.38.25-.42.22-.47.19-.51.15-.55.11-.6.09-.64.05-.68.02-.72-.01-.68-.04-.63-.08-.58-.11-.53-.15-.48-.18-.43-.22-.39-.25-.34-.29-.3-.32-.25-.36-.21-.38-.15-.43-.11-.46-.07-.49-.02-.53V9.77l.02-.51.07-.49.11-.45.16-.42.2-.39.26-.35.29-.32.34-.29.39-.25.43-.22.47-.18.52-.15.56-.12.61-.08.65-.06.7-.01.69.01zm-2.67 1.61-.53.1-.47.13-.42.17-.37.21-.31.24-.25.28-.2.32-.14.35-.09.39-.02.42v4.71l.02.42.09.39.14.36.21.31.26.28.31.24.37.2.43.17.49.12.55.09.6.04h1.3l.59-.04.54-.08.48-.12.42-.16.37-.2.31-.23.26-.28.2-.32.14-.36.09-.4.03-.43V9.77l-.03-.42-.09-.39-.14-.35-.2-.32-.27-.28-.31-.24-.38-.21-.44-.17-.49-.13-.55-.1-.62-.05-.67-.02-.63.02z&quot;&gt;&lt;/path&gt;&lt;path id=&quot;freecodecamp_svg__fcc-f&quot; d=&quot;M181.88.18c.12.11.23.28.23.45 0 .29-.34.68-.97 1.32-2.62 2.53-3.94 5.62-3.93 9.36.01 4.12 1.4 7.44 4.1 10.01.56.5.8.9.8 1.24 0 .17-.12.35-.23.51-.11.12-.34.24-.51.24-.63 0-1.5-.74-2.64-2.18-2.22-2.72-3.22-5.72-3.28-9.82-.05-4.1 1.23-6.88 3.75-9.75.9-1.02 1.66-1.56 2.17-1.56q.255 0 .51.18&quot;&gt;&lt;/path&gt;&lt;path id=&quot;freecodecamp_svg__fcc-g&quot; d=&quot;M149.59 6.94c.45-.57.85-.92 1.25-1.08.39-.23.96-.34 1.6-.34 1.96 0 2.98.96 2.98 2.85v9.29c0 .79-.28 1.14-.85 1.14s-.8-.35-.8-1.14v-8.7c0-1.19-.51-1.83-1.49-1.83-.74 0-1.5.45-2.12 1.32v9.29c0 .79-.29 1.13-.8 1.13s-.8-.34-.8-1.13V9.15c0-1.33-.56-1.95-1.61-1.95-.68 0-1.32.46-2 1.33v9.22c0 .8-.29 1.14-.86 1.14s-.79-.34-.79-1.14V6.37c0-.57.22-.8.68-.8.23 0 .45.17.57.51.11.15.17.44.17.78.53-.57.87-.91 1.02-1.03.34-.22.8-.34 1.44-.34.91 0 1.72.46 2.41 1.45&quot;&gt;&lt;/path&gt;&lt;path id=&quot;freecodecamp_svg__fcc-h&quot; d=&quot;m49.79 5.56.44.05.41.08.4.09.37.12.35.14.33.16.31.18.28.21.27.22.24.24.22.27.2.28.18.31.16.33.13.35.11.37.1.39.07.41.06.44.03.45.01.47v.12l-.01.11-.01.1-.03.2-.02.09-.03.09-.02.08-.08.15-.03.06-.1.12-.05.05-.06.05-.05.03-.07.04-.07.03-.14.04-.08.01-.09.01h-8.89v-.07h-.02v1.84l.01.24.02.24.04.23.06.22.06.2.09.2.1.17.12.18.14.15.15.16.16.13.18.13.2.11.22.11.22.09.25.09.26.06.28.07.29.05.31.03.33.03.34.02.36.01h.13l.13-.01h.12l.13-.01h.12l.24-.02.23-.02.11-.01.12-.02.31-.04.1-.02.09-.02.1-.02.09-.02.1-.03.09-.02.16-.06.09-.03.04-.01.05-.02.06-.02.05-.02.05-.03.06-.02.06-.03.07-.03.14-.07.14-.08.08-.05.08-.04.08-.05.18-.1.08-.06.19-.13.1-.06.11-.07.1-.07.13-.12.13-.1.05-.05.06-.04.05-.04.06-.05.09-.07.09-.06.05-.03.04-.02.04-.03.07-.03.09-.03.05-.01h.09l.1.01.15.03.04.02.07.04.04.03.09.09.03.04.04.08.02.1.02.06v.05l.01.05v.07l.01.07-.01.06v.07l-.01.06-.01.07-.07.2-.03.06-.06.14-.09.14-.05.06-.11.14-.12.13-.14.14-.16.14-.08.06-.08.08-.15.1-.15.11-.32.2-.17.09-.18.09-.18.08-.19.07-.2.08-.2.07-.21.06-.22.06-.44.1-.47.09-.5.06-.52.04-.55.02h-.77l-.47-.03-.44-.04-.43-.07-.4-.07-.38-.09-.36-.11-.34-.13-.32-.15-.29-.16-.27-.18-.26-.2-.23-.21-.21-.23-.19-.25-.16-.26-.14-.29-.12-.29-.1-.32-.08-.34-.06-.35-.03-.37-.01-.39V9.57l.01-.14.01-.12.06-.39.03-.13.03-.12.05-.12.08-.24.06-.12.11-.23.07-.11.07-.12.07-.1.08-.11.09-.1.09-.11.18-.2.1-.1.14-.13.29-.24.32-.22.17-.1.36-.18.38-.16.2-.07.42-.12.44-.1.23-.04.23-.03.24-.04.24-.02.26-.02.52-.02h.26l.48.01zm-2.04 1.6-.4.07-.4.1-.38.13-.36.15-.35.18-.34.25-.28.26-.23.28-.17.3-.13.31-.08.32-.02.35v.96h8.18l-.08-.98-.26-.83-.42-.69-.6-.53-.77-.38-.94-.23-1.11-.07-.44.01z&quot;&gt;&lt;/path&gt;&lt;path id=&quot;freecodecamp_svg__fcc-o&quot; d=&quot;M67.34 1.76c1.14.86 1.73 2.07 1.73 3.55 0 .68-.29 1.02-.86 1.02-.4 0-.68-.34-.85-1.02-.12-.57-.34-1.08-.62-1.62-.52-.9-1.61-1.32-3.32-1.32-1.5 0-2.52.34-3.14 1.08-.57.68-.92 1.72-.92 3.26v5.95c0 1.55.35 2.63.97 3.31.68.74 1.73 1.13 3.21 1.13 2.23 0 3.54-.79 3.82-2.34.11-.57.17-.86.17-.91.11-.34.34-.51.68-.51.57 0 .86.34.86 1.02 0 1.44-.58 2.52-1.79 3.38-.96.62-2.18.96-3.77.96-1.83 0-3.25-.4-4.3-1.25-1.21-.8-1.72-2.16-1.72-3.94V6.35c0-3.77 1.93-5.61 5.95-5.61 1.61 0 2.86.34 3.9 1.02&quot;&gt;&lt;/path&gt;&lt;path id=&quot;freecodecamp_svg__fcc-d&quot; d=&quot;m158.79 5.43.12.04.03.02.03.01.03.03.06.04.03.03.03.02.1.14.06.08.02.05.02.04.01.04.02.09.01.04.02.04.01.05.01.04.02.04.01.05.05.12.02.05.03.08.01.05.03.12.02.04.02.08.25-.12.49-.23.24-.11.23-.1.46-.18.22-.08.21-.08.21-.07.2-.06.2-.07.2-.05.38-.09.19-.04.34-.06.17-.02.32-.02h.16l.46.01.44.03.43.04.39.06.38.09.36.1.33.12.31.14.29.15.27.17.25.2.22.2.21.23.18.24.16.26.14.28.12.3.09.31.08.33.06.35.03.36.01.38v4.76l-.01.19-.01.18-.01.17-.03.18-.02.17-.08.32-.05.16-.05.15-.12.3-.08.14-.07.14-.09.14-.09.13-.09.12-.1.13-.11.12-.12.12-.11.12-.26.22-.24.18-.26.16-.14.07-.13.07-.15.07-.15.06-.15.05-.32.11-.33.08-.17.04-.36.06-.36.04-.19.02-.2.01h-.63l-.24-.01-.24-.02-.23-.01-.46-.06-.22-.04-.44-.09-.21-.06-.21-.05-.21-.07-.21-.08-.4-.16-.2-.1-.19-.1-.2-.1-.19-.11-.19-.12-.36-.26v5.49l-.02.2-.01.09-.02.09-.06.24-.03.07-.04.07-.03.05-.04.06-.08.1-.1.08-.06.02-.05.03-.06.02-.06.01-.07.01h-.2l-.07-.02-.05-.02-.06-.02-.11-.06-.04-.04-.05-.04-.08-.1-.04-.06-.03-.06-.02-.07-.03-.08-.04-.16-.02-.1-.01-.09-.01-.11V6.46l.01-.09.01-.1.01-.09.01-.08.02-.08.03-.07.02-.08.05-.12.04-.06.03-.05.04-.05.04-.03.05-.04.04-.03.05-.03.11-.03.06-.01h.09l.03.01zm4.49 1.74-.46.04-.22.03-.21.03-.21.05-.38.1-.36.14-.15.07-.16.08-.15.1-.17.11-.16.12-.17.14-.17.15-.18.16-.18.18-.2.19-.2.2v6.54h.06v-.03l.47.28.45.25.45.24.42.19.41.18.4.14.38.12.36.09.35.07.34.04.32.02.28-.01.27-.01.26-.03.24-.03.25-.04.23-.05.22-.06.21-.07.2-.08.19-.09.17-.1.21-.13.18-.15.17-.15.14-.16.12-.17.1-.19.08-.19.06-.2.05-.22.02-.22.01-.23V9.86l-.01-.28-.03-.26-.05-.23-.07-.23-.09-.21-.11-.2-.14-.18-.15-.17-.18-.15-.2-.15-.22-.12-.18-.09-.19-.09-.2-.06-.21-.07-.22-.05-.24-.05-.24-.04-.26-.03-.27-.02-.28-.01-.29-.01-.25.01z&quot;&gt;&lt;/path&gt;&lt;/defs&gt;&lt;use xlink:href=&quot;#freecodecamp_svg__fcc-k&quot; fill=&quot;currentColor&quot;&gt;&lt;/use&gt;&lt;use xlink:href=&quot;#freecodecamp_svg__fcc-k&quot; fill-opacity=&quot;0&quot; stroke=&quot;#000&quot; stroke-opacity=&quot;0&quot;&gt;&lt;/use&gt;&lt;use xlink:href=&quot;#freecodecamp_svg__fcc-j&quot; fill=&quot;currentColor&quot;&gt;&lt;/use&gt;&lt;use xlink:href=&quot;#freecodecamp_svg__fcc-j&quot; fill-opacity=&quot;0&quot; stroke=&quot;#000&quot; stroke-opacity=&quot;0&quot;&gt;&lt;/use&gt;&lt;use xlink:href=&quot;#freecodecamp_svg__fcc-b&quot; fill=&quot;currentColor&quot;&gt;&lt;/use&gt;&lt;use xlink:href=&quot;#freecodecamp_svg__fcc-b&quot; fill-opacity=&quot;0&quot; stroke=&quot;#000&quot; stroke-opacity=&quot;0&quot;&gt;&lt;/use&gt;&lt;use xlink:href=&quot;#freecodecamp_svg__fcc-n&quot; fill=&quot;currentColor&quot;&gt;&lt;/use&gt;&lt;use xlink:href=&quot;#freecodecamp_svg__fcc-n&quot; fill-opacity=&quot;0&quot; stroke=&quot;#000&quot; stroke-opacity=&quot;0&quot;&gt;&lt;/use&gt;&lt;use xlink:href=&quot;#freecodecamp_svg__fcc-l&quot; fill=&quot;currentColor&quot;&gt;&lt;/use&gt;&lt;use xlink:href=&quot;#freecodecamp_svg__fcc-l&quot; fill-opacity=&quot;0&quot; stroke=&quot;#000&quot; stroke-opacity=&quot;0&quot;&gt;&lt;/use&gt;&lt;use xlink:href=&quot;#freecodecamp_svg__fcc-c&quot; fill=&quot;currentColor&quot;&gt;&lt;/use&gt;&lt;use xlink:href=&quot;#freecodecamp_svg__fcc-c&quot; fill-opacity=&quot;0&quot; stroke=&quot;#000&quot; stroke-opacity=&quot;0&quot;&gt;&lt;/use&gt;&lt;use xlink:href=&quot;#freecodecamp_svg__fcc-e&quot; fill=&quot;currentColor&quot;&gt;&lt;/use&gt;&lt;use xlink:href=&quot;#freecodecamp_svg__fcc-e&quot; fill-opacity=&quot;0&quot; stroke=&quot;#000&quot; stroke-opacity=&quot;0&quot;&gt;&lt;/use&gt;&lt;use xlink:href=&quot;#freecodecamp_svg__fcc-m&quot; fill=&quot;currentColor&quot;&gt;&lt;/use&gt;&lt;use xlink:href=&quot;#freecodecamp_svg__fcc-m&quot; fill-opacity=&quot;0&quot; stroke=&quot;#000&quot; stroke-opacity=&quot;0&quot;&gt;&lt;/use&gt;&lt;use xlink:href=&quot;#freecodecamp_svg__fcc-a&quot; fill=&quot;currentColor&quot;&gt;&lt;/use&gt;&lt;use xlink:href=&quot;#freecodecamp_svg__fcc-a&quot; fill-opacity=&quot;0&quot; stroke=&quot;#000&quot; stroke-opacity=&quot;0&quot;&gt;&lt;/use&gt;&lt;use xlink:href=&quot;#freecodecamp_svg__fcc-i&quot; fill=&quot;currentColor&quot;&gt;&lt;/use&gt;&lt;use xlink:href=&quot;#freecodecamp_svg__fcc-i&quot; fill-opacity=&quot;0&quot; stroke=&quot;#000&quot; stroke-opacity=&quot;0&quot;&gt;&lt;/use&gt;&lt;use xlink:href=&quot;#freecodecamp_svg__fcc-f&quot; fill=&quot;currentColor&quot;&gt;&lt;/use&gt;&lt;use xlink:href=&quot;#freecodecamp_svg__fcc-f&quot; fill-opacity=&quot;0&quot; stroke=&quot;#000&quot; stroke-opacity=&quot;0&quot;&gt;&lt;/use&gt;&lt;use xlink:href=&quot;#freecodecamp_svg__fcc-g&quot; fill=&quot;currentColor&quot;&gt;&lt;/use&gt;&lt;use xlink:href=&quot;#freecodecamp_svg__fcc-g&quot; fill-opacity=&quot;0&quot; stroke=&quot;#000&quot; stroke-opacity=&quot;0&quot;&gt;&lt;/use&gt;&lt;use xlink:href=&quot;#freecodecamp_svg__fcc-h&quot; fill=&quot;currentColor&quot;&gt;&lt;/use&gt;&lt;use xlink:href=&quot;#freecodecamp_svg__fcc-h&quot; fill-opacity=&quot;0&quot; stroke=&quot;#000&quot; stroke-opacity=&quot;0&quot;&gt;&lt;/use&gt;&lt;use xlink:href=&quot;#freecodecamp_svg__fcc-o&quot; fill=&quot;currentColor&quot;&gt;&lt;/use&gt;&lt;use xlink:href=&quot;#freecodecamp_svg__fcc-o&quot; fill-opacity=&quot;0&quot; stroke=&quot;#000&quot; stroke-opacity=&quot;0&quot;&gt;&lt;/use&gt;&lt;use xlink:href=&quot;#freecodecamp_svg__fcc-d&quot; fill=&quot;currentColor&quot;&gt;&lt;/use&gt;&lt;use xlink:href=&quot;#freecodecamp_svg__fcc-d&quot; fill-opacity=&quot;0&quot; stroke=&quot;#000&quot; stroke-opacity=&quot;0&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:TryGhost knip&quot;&gt;&lt;svg viewBox=&quot;105 65 470 155&quot;&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M112.197 168.302H143.9v15.852h-31.703zm47.553 0h31.683v15.852H159.75zm-47.577-31.703h79.27v15.852h-79.27zm.024-31.701h47.559v15.851h-47.559zm63.405 0h15.851v15.851h-15.851z&quot; opacity=&quot;.7&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M421.575 104.807c-25.458 0-38.606 18.003-38.606 40.211 0 22.209 12.824 40.214 38.606 40.214s38.606-18.005 38.606-40.214c.001-22.208-13.149-40.211-38.606-40.211m19.26 40.283c-.018 14.281-4.83 25.848-19.26 25.848s-19.243-11.566-19.258-25.848v-.071c.015-14.28 4.829-25.846 19.259-25.846s19.241 11.566 19.259 25.846zm-133.251 39.063V72.975s14.664-2.083 15.801-2.236c1.288-.174 2.998.743 2.998 2.556v41.214q4.566-4.338 10.046-7.002t12.865-2.664q6.393 0 11.338 2.17c3.3 1.444 6.053 3.476 8.26 6.087q3.31 3.922 5.024 9.363 1.712 5.442 1.712 11.988v49.701h-18.8v-49.701q0-7.154-3.311-11.076-3.312-3.919-9.935-3.919-4.87 0-9.13 2.209-4.264 2.206-8.069 6.013v56.475zm250.981 1.071c-12.937 0-21.045-7.529-21.045-21.575v-41.628h-14.58l3.344-11.562c.246-.843.887-1.749 2.174-1.928l9.044-1.261 3.583-22.794s10.527-1.484 12.196-1.733c1.576-.236 3.005.899 3.005 2.616v21.911h18.44v14.751h-18.44v41.067c0 5.607 3.414 7.75 6.686 7.75 2 0 4.739-1.062 6.783-2.01 1.263-.584 3.22-.151 3.726 1.612l2.824 9.853c-2.051 1.324-8.534 4.931-17.74 4.931m-45.956-62.957c-3.664-1.19-10.551-3.095-17.102-3.095-6.675 0-11.927 2.306-11.927 7.856 0 6.932 11.319 8.95 19.067 11.776 5.18 1.889 19.071 5.572 19.071 20.512 0 18.148-15.071 25.907-31.148 25.907-16.079 0-25.578-5.98-25.578-5.98s2.494-8.81 2.999-10.549c.457-1.565 2.276-2.114 3.435-1.669 4.138 1.595 11.61 3.812 20.056 3.812 8.551 0 12.688-2.611 12.688-8.177 0-7.408-11.547-9.672-19.184-12.081-5.261-1.658-19.186-5.525-19.186-21.956 0-16.186 14.213-23.78 29.403-23.78 12.858 0 19.165 2.689 23.876 5.089l-3.015 10.512c-.46 1.62-1.789 2.363-3.455 1.823m-212.364-14.744c0-1.751-1.496-2.753-2.923-2.59-6.309.723-10.81 3.692-13.722 6.456-5.718-4.48-13.655-6.619-22.563-6.619-17.86 0-31.814 8.62-31.814 27.416 0 10.79 4.593 18.225 11.887 22.602-5.417 2.564-9.025 8.005-9.025 13.354 0 8.948 7.069 11.75 7.069 11.75s-12.36 5.999-12.36 18.001c0 15.364 14.139 21.576 31.416 21.576 24.904 0 42.038-10.286 42.038-29.173 0-11.624-8.895-18.041-28.279-18.804-11.503-.454-18.954-.868-20.8-1.479-2.439-.81-3.638-2.763-3.638-4.919 0-2.38 1.955-4.646 5.037-6.202 2.688.476 5.525.711 8.471.711 17.875 0 31.815-8.595 31.815-27.416 0-4.564-.824-8.526-2.322-11.911 2.626-1.401 5.857-2.387 9.715-2.387-.002 0-.002-8.769-.002-10.366m-49.219 76.727s9.379.355 18.751.789c10.529.487 13.81 2.756 13.81 8.208 0 6.661-9.15 13.14-21.937 13.14-12.138 0-18.201-4.223-18.201-11.254 0-4.034 2.13-8.547 7.577-10.883m10.045-37.767c-8.461 0-15.062-4.494-15.062-14.297s6.607-14.298 15.062-14.298c8.456 0 15.062 4.482 15.062 14.298s-6.598 14.297-15.062 14.297&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:google-gemini knip&quot;&gt;&lt;svg viewBox=&quot;0 0 48 48&quot;&gt;&lt;path fill=&quot;#4285f4&quot; d=&quot;M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#34a853&quot; d=&quot;M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#fbbc05&quot; d=&quot;M10.53 28.59A14.5 14.5 0 0 1 9.5 24c0-1.59.28-3.14.76-4.59l-7.98-6.19A24 24 0 0 0 0 24c0 3.77.9 7.35 2.56 10.52z&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#ea4335&quot; d=&quot;M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 5.93C6.51 42.62 14.62 48 24 48&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:grafana knip&quot;&gt;&lt;svg fill=&quot;none&quot; viewBox=&quot;0 0 135 23&quot;&gt;&lt;path fill=&quot;currentColor&quot; fill-rule=&quot;evenodd&quot; d=&quot;M99.214 18.636h7.165v-1.918h-5.247V4.502h-1.918zm15.738 0h1.606V9.124h-1.645v1.213c-.822-.861-1.957-1.37-3.249-1.37-2.741 0-4.934 2.193-4.934 4.894a4.94 4.94 0 0 0 4.934 4.933 4.67 4.67 0 0 0 3.288-1.37zm-3.288-7.79a3.016 3.016 0 0 1 3.014 3.014 2.99 2.99 0 0 1-3.014 3.015 2.99 2.99 0 0 1-3.015-3.015c0-1.644 1.37-3.015 3.015-3.015m16.327 3.014c0 2.701-2.232 4.933-4.934 4.933a4.68 4.68 0 0 1-3.289-1.37v1.214h-1.605V5.284h1.88V10.1a4.48 4.48 0 0 1 3.014-1.135c2.702-.04 4.934 2.192 4.934 4.894m-1.958 0c0-1.645-1.37-3.015-3.015-3.015a3.016 3.016 0 0 0-3.015 3.015c0 1.644 1.371 2.975 3.015 2.975s3.015-1.33 3.015-2.975m7.634-2.663.822-1.41c-.783-.47-1.644-.86-2.741-.782-1.801 0-3.171 1.096-3.171 2.662 0 1.659 1.52 2.291 2.463 2.684l.043.018c1.331.509 1.918.861 1.918 1.527 0 .548-.43 1.135-1.37 1.135-.783 0-1.801-.43-2.349-.744l-.744 1.566c.822.51 1.997.98 3.171.98 1.919 0 3.289-1.371 3.289-2.937s-1.331-2.585-2.858-3.133l-.165-.061c-.86-.32-1.519-.565-1.519-1.191 0-.588.627-.94 1.371-.94s1.448.391 1.84.626&quot; clip-rule=&quot;evenodd&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;url(#grafana_svg__paint0_linear_16731_2713)&quot; d=&quot;M20.36 9.75c-.04-.353-.079-.784-.235-1.254a7.6 7.6 0 0 0-.588-1.527 9.7 9.7 0 0 0-1.057-1.644 4.3 4.3 0 0 0-.587-.627c.313-1.253-.392-2.31-.392-2.31-1.174-.078-1.957.353-2.231.588-.04 0-.079-.04-.157-.079a11 11 0 0 0-.626-.235c-.235-.078-.431-.117-.666-.195-.235-.04-.47-.079-.666-.118h-.117C12.528.705 11.04 0 11.04 0 9.397 1.057 9.083 2.506 9.083 2.506v.078c-.078.04-.195.04-.274.078a5 5 0 0 1-.391.118 3 3 0 0 0-.392.156c-.235.118-.509.235-.744.353a7 7 0 0 0-.704.43c-.04 0-.04-.039-.04-.039-2.31-.861-4.345.196-4.345.196-.196 2.428.9 3.994 1.135 4.268-.04.156-.117.313-.157.47-.156.548-.313 1.135-.391 1.722 0 .079-.04.157-.04.235C.627 11.628 0 13.781 0 13.781c1.762 2.037 3.837 2.154 3.837 2.154.274.47.548.9.9 1.331.157.157.314.353.431.51-.626 1.84.078 3.367.078 3.367 1.958.078 3.25-.862 3.524-1.097.196.079.392.118.588.196a9.5 9.5 0 0 0 1.84.274h.744c.94 1.331 2.545 1.527 2.545 1.527 1.174-1.214 1.213-2.427 1.213-2.701v-.079c.235-.156.47-.352.705-.548.47-.43.861-.9 1.214-1.41.039-.039.078-.078.078-.156 1.331.078 2.232-.822 2.232-.822-.235-1.37-1.018-2.036-1.175-2.154h-.039V12.53c-.04-.157-.04-.313-.078-.43-.157-.588-.353-1.136-.666-1.645a6 6 0 0 0-1.096-1.331c-.43-.392-.9-.666-1.41-.9-.509-.236-1.018-.353-1.566-.432-.274-.039-.509-.039-.783-.039h-.391c-.118 0-.274.04-.392.04a3.8 3.8 0 0 0-1.449.548c-.43.274-.822.587-1.135.94a3.8 3.8 0 0 0-.705 1.213c-.156.43-.235.861-.274 1.292v.626c.04.196.079.431.118.627.117.391.313.744.509 1.057.235.313.509.548.783.744s.587.352.9.43.588.118.9.118h.51c.039 0 .078 0 .117-.04.079 0 .118-.038.196-.038.117-.04.235-.079.352-.157.118-.039.196-.117.314-.196.039 0 .039-.039.078-.078.117-.078.117-.235.04-.313s-.197-.118-.275-.04c-.04 0-.04.04-.078.04-.079.039-.157.078-.274.117-.079.04-.196.04-.275.079h-.626a2.2 2.2 0 0 1-.665-.196c-.235-.078-.431-.235-.627-.392-.196-.156-.352-.391-.47-.587a2.1 2.1 0 0 1-.274-.744c-.039-.117-.039-.274-.039-.391v-.197c0-.077 0-.156.04-.234a3.1 3.1 0 0 1 .86-1.605c.118-.118.235-.196.353-.314.117-.078.274-.156.391-.234.157-.079.314-.118.431-.157.157-.04.313-.078.47-.078h.47c.156 0 .352.039.509.078.352.078.665.196.979.391.626.353 1.135.901 1.487 1.527.157.314.274.666.353 1.018 0 .079.039.196.039.274v.627c0 .117 0 .196-.04.313 0 .078-.038.196-.038.274s-.04.196-.079.274a2.3 2.3 0 0 1-.195.548 7 7 0 0 1-.588 1.058c-.47.626-1.096 1.174-1.84 1.487a5.5 5.5 0 0 1-1.135.353c-.196.039-.392.039-.588.078h-.274c.04 0 0 0 0 0h-.313a6.4 6.4 0 0 1-1.253-.235 6 6 0 0 1-1.174-.47 6.4 6.4 0 0 1-1.958-1.605 3.7 3.7 0 0 1-.666-1.057 7.4 7.4 0 0 1-.47-1.175 4.4 4.4 0 0 1-.195-1.213v-.744c0-.196.039-.431.039-.627.039-.196.078-.43.117-.626s.079-.43.157-.627c.117-.391.274-.783.43-1.174.353-.744.784-1.41 1.332-1.919a4 4 0 0 1 .43-.391c.157-.118.314-.235.47-.314a3 3 0 0 1 .47-.274l.235-.117c.04 0 .078-.04.118-.04s.078-.038.117-.038c.157-.079.352-.118.509-.196.04 0 .078-.04.117-.04s.079-.038.118-.038c.078-.04.196-.04.274-.079.04 0 .078-.039.157-.039.039 0 .078 0 .156-.039.04 0 .079 0 .157-.04h.156c.04 0 .079 0 .157-.038.04 0 .117 0 .157-.04h.665s.04 0 0 0h.705q.529 0 1.057.118c.666.117 1.292.352 1.88.626s1.096.627 1.526 1.018l.079.079.078.078c.04.04.118.078.157.157.039.078.117.078.156.156.04.079.118.118.157.157.196.196.352.391.509.626.313.392.587.822.783 1.214 0 .04.04.04.04.078 0 .04.038.04.038.079.04.039.04.078.078.156.04.04.04.079.079.157.039.039.039.078.078.156.078.196.157.353.196.51.078.274.157.508.196.704.039.079.117.157.195.118a.17.17 0 0 0 .157-.157c.157-.47.157-.744.117-1.018&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M39.429 11.903c-.157 3.837-3.172 6.851-6.97 6.851-3.993 0-6.93-3.21-6.93-7.125s3.21-7.165 7.126-7.165c1.762 0 3.485.744 4.972 2.114l-1.135 1.41c-1.135-.98-2.466-1.645-3.798-1.645-2.858 0-5.207 2.35-5.207 5.247 0 2.936 2.232 5.207 5.05 5.207 2.546 0 4.542-1.84 4.934-4.268h-5.756v-1.684h7.792zm6.656-.94h-1.057c-1.175 0-2.114.94-2.114 2.114v5.56h-1.88V9.162H42.6v.783c.51-.51 1.331-.783 2.232-.783h2.036zm10.335 7.674h-1.605v-1.214c-1.253 1.214-3.21 1.8-5.207.94-1.488-.666-2.584-1.997-2.858-3.603-.588-3.014 1.762-5.755 4.776-5.755a4.62 4.62 0 0 1 3.25 1.331V9.122h1.644zm-1.957-4.033c.43-1.919-1.018-3.68-2.898-3.68a2.974 2.974 0 0 0-2.975 2.975c0 1.84 1.605 3.289 3.524 2.937 1.135-.196 2.075-1.097 2.349-2.232m5.756-5.991v.549h3.014v1.683H60.22v7.83h-1.88V8.693c0-2.075 1.488-3.328 3.367-3.328h2.271l-.743 1.8h-1.528c-.822 0-1.487.627-1.487 1.45m13.076 10.022H71.69v-1.214c-1.252 1.214-3.21 1.8-5.207.94-1.488-.666-2.584-1.997-2.858-3.603-.587-3.014 1.801-5.755 4.816-5.755a4.62 4.62 0 0 1 3.25 1.331V9.122h1.644zm-1.919-4.033c.43-1.919-1.018-3.68-2.897-3.68a2.974 2.974 0 0 0-2.976 2.975c0 1.84 1.606 3.289 3.524 2.937 1.135-.196 2.075-1.097 2.35-2.232m12.059-1.566v5.599h-1.88v-5.6c0-1.174-.979-2.114-2.114-2.114-1.214 0-2.153.94-2.153 2.115v5.599h-1.88V9.16h1.566v.823c.666-.627 1.606-.98 2.545-.98 2.193 0 3.915 1.802 3.915 4.034m11.158 5.6H92.99v-1.214c-1.253 1.214-3.21 1.8-5.208.94-1.487-.666-2.584-1.997-2.858-3.603-.587-3.014 1.801-5.755 4.816-5.755a4.62 4.62 0 0 1 3.25 1.331V9.122h1.644zm-1.918-4.033c.43-1.919-1.018-3.68-2.898-3.68a2.974 2.974 0 0 0-2.975 2.975c0 1.84 1.605 3.289 3.523 2.937 1.097-.196 2.076-1.097 2.35-2.232&quot;&gt;&lt;/path&gt;&lt;defs&gt;&lt;linearGradient id=&quot;grafana_svg__paint0_linear_16731_2713&quot; x1=&quot;10.254&quot; x2=&quot;10.254&quot; y1=&quot;28&quot; y2=&quot;2.5&quot; gradientUnits=&quot;userSpaceOnUse&quot;&gt;&lt;stop stop-color=&quot;currentColor&quot;&gt;&lt;/stop&gt;&lt;stop offset=&quot;1&quot; stop-color=&quot;#f05a28&quot;&gt;&lt;/stop&gt;&lt;/linearGradient&gt;&lt;/defs&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:guardian knip&quot;&gt;&lt;svg fill=&quot;currentColor&quot; aria-hidden=&quot;true&quot; viewBox=&quot;0 -3 300 100&quot;&gt;&lt;path d=&quot;M0 70.8c0-19.5 13-26.4 27.3-26.4 6.1 0 12 1 15.1 2.3l.3 13.6h-1.4L33 47.2c-1.5-.7-2.8-.9-5.4-.9-7.6 0-11.5 8.8-11.4 23.3.1 17.3 3.1 25.1 10.2 25.1 1.8 0 3.2-.2 4.2-.7V75.5l-4.7-2.7v-1.5h22.5V73l-4.6 2.5v18.3a50.1 50.1 0 0 1-17 2.9C10.5 96.7 0 89 0 70.8m142.8-12.9 1.2.1v11h.3c1.6-8 5.2-11 9.5-11 .7 0 1.5 0 1.9.2v11.2c-.7-.2-2-.2-3.1-.2-3.4 0-6 .6-8.2 1.6v21.7l3.4 1.9v1.4h-19.5v-1.4l3.5-2V63l-4.1-1.2v-1l15-2.8ZM110.2 74v-4.9c0-7.4-1.6-9.9-6.2-9.9l-1.6.2-8.2 11h-1.1V60.3c3.5-1.1 7.9-2.4 13.7-2.4 10 0 15.8 2.8 15.8 11.1v24l3.6 1v1c-1.4.8-4.2 1.6-7.3 1.6-5 0-7.3-1.6-8.4-4.3h-.4c-2 2.8-5 4.4-9.7 4.4-6 0-10-3.7-10-10S94.2 77 102 75.5l8.1-1.6Zm0 16.6V75.8l-2.5.2c-4 .3-5.3 2.8-5.3 8.3 0 6 2 7.6 4.7 7.6 1.5 0 2.4-.5 3.1-1.3M47.5 61.7v-1.1l15-2.7 1.7.2v29.6c0 3.6 1.7 4.7 4.6 4.7 1.9 0 3.6-.7 4.9-2.3V63.5l-4.1-1.8v-1.1l15-2.7 1.6.1v34l4 1.7v1l-14.9 1.9-1.5-.1V92h-.4a16.8 16.8 0 0 1-11.3 4.7c-7.2 0-10.5-4.2-10.5-10.7V63.5zm214 30.8V63l-4.2-1.4v-1.5l15-2.7h1.5V62h.5c3.2-2.9 8-4.7 12.8-4.7 6.5 0 9.4 3 9.4 10v25.1l3.5 2v1.4h-19.5v-1.4l3.5-2V68c0-3.8-1.7-5.3-4.8-5.3-2 0-3.6.5-5.1 1.6v28.3l3.4 1.9v1.4h-19.6v-1.4zM214 57.8l1.4.2v34.5l3.4 1.9v1.4h-19.5v-1.4l3.5-2v-29l-4.2-1.6v-1.2l15.5-2.8Zm1.5-9.3c0 3.7-3.1 6.4-6.7 6.4a6.4 6.4 0 0 1-6.6-6.4c0-3.6 2.9-6.4 6.6-6.4 3.6 0 6.7 2.8 6.7 6.4M239.8 74v-4.9c0-7.4-1.7-9.9-6.2-9.9l-1.6.2-8.2 11h-1.1V60.3c3.5-1.1 7.9-2.4 13.7-2.4 10 0 15.8 2.8 15.8 11.1v24l3.6 1v1c-1.4.8-4.2 1.6-7.4 1.6-5 0-7.3-1.6-8.4-4.3h-.3c-2 2.8-5 4.4-9.7 4.4-6 0-10-3.7-10-10s3.8-9.6 11.7-11.1l8-1.6Zm0 16.6V75.8l-2.5.2c-4 .3-5.4 2.8-5.4 8.3 0 6 2 7.6 4.8 7.6 1.5 0 2.4-.5 3-1.3Zm-59.2-31.8V47.2l-4.1-1.4v-1l15.2-2.7 1.5.2V92l4.2 1.5v1.3l-15 2-1.2-.2v-4h-.4a13.4 13.4 0 0 1-10 4.1c-8.1 0-14.1-6.2-14.1-19 0-13.5 7-20 17.5-20 3 0 5.3.5 6.4 1.1m0 31.8V61c-1-.6-1.7-1.4-4.2-1.3-4 .2-6.6 6.3-6.6 17.2 0 9.8 1.9 15.3 7.3 15.1 1.5 0 2.7-.6 3.5-1.3Zm-112.5-39 5.2-2.7V8.5h-4L60 21.1h-1.1l.6-14h41.3l.6 14H100L90.8 8.5h-4v40.3l5.2 2.7V53H68.1v-1.3Zm37.3-1.8V5l-4-1.6v-.8L115.9 0h1.5v21.2l.4-.4c3.2-2.8 7.8-4.5 12.4-4.5 6.3 0 9.1 3.5 9.1 10.2v23.3l3.4 1.8V53h-18.9v-1.4l3.4-1.8V26.4c0-3.7-1.6-5.1-4.6-5.1a8 8 0 0 0-5 1.6v27l3.3 1.8V53h-19v-1.3l3.5-2Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M153.7 36c.4 7.4 3.7 13.1 11.6 13.1 3.8 0 6.5-1.7 9-3v1.4c-1.9 2.7-6.9 6.5-13.8 6.5-12.2 0-18.5-6.8-18.5-18.5 0-11.5 6.8-18.6 17.9-18.6 10.3 0 15.7 5.2 15.7 18.8v.3zm-.2-1.7 10.8-.6c0-9.2-1.6-15.3-4.8-15.3-3.3 0-6 7-6 16Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:Khan knip&quot;&gt;&lt;svg viewBox=&quot;0 0 24 24&quot;&gt;&lt;title&gt;Khan Academy&lt;/title&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M21.724 4.973 13.418.328a3.21 3.21 0 0 0-2.828 0L2.276 4.973A3.05 3.05 0 0 0 .862 7.371v9.256a3.05 3.05 0 0 0 1.414 2.4l8.306 4.645a3.21 3.21 0 0 0 2.828 0l8.314-4.645a3.05 3.05 0 0 0 1.414-2.4V7.373a3.05 3.05 0 0 0-1.414-2.4M12 4.921a2.571 2.571 0 1 1 .001 5.143A2.571 2.571 0 0 1 12 4.92zm3.094 13.627a9.1 9.1 0 0 1-3.103.549 9 9 0 0 1-3.076-.55 8.49 8.49 0 0 1-5.486-7.987v-.857c4.646.017 8.074 3.823 8.074 8.51v.198h.926v-.197c0-4.688 3.445-8.51 8.056-8.51.026.29.043.582.086.856a8.5 8.5 0 0 1-5.477 7.988&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:JoshuaKGoldberg knip&quot;&gt;&lt;img src=&quot;https://knip.dev/_astro/create-typescript-app.CAtIyoM0.png&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:microsoft knip&quot;&gt;&lt;svg viewBox=&quot;0 0 337.6 72&quot;&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M140.4 14.4v43.2h-7.5V23.7h-.1l-13.4 33.9h-5l-13.7-33.9h-.1v33.9h-6.9V14.4h10.8l12.4 32h.2l13.1-32zm6.2 3.3c0-1.2.4-2.2 1.3-3s1.9-1.2 3.1-1.2c1.3 0 2.4.4 3.2 1.2s1.3 1.8 1.3 3-.4 2.2-1.3 3-1.9 1.2-3.2 1.2-2.3-.4-3.1-1.2c-.8-.9-1.3-1.9-1.3-3m8.1 8.9v31h-7.3v-31zm22.1 25.7c1.1 0 2.3-.2 3.6-.8 1.3-.5 2.5-1.2 3.6-2v6.8c-1.2.7-2.5 1.2-4 1.5s-3.1.5-4.9.5c-4.6 0-8.3-1.4-11.1-4.3-2.9-2.9-4.3-6.6-4.3-11 0-5 1.5-9.1 4.4-12.3s7-4.8 12.4-4.8c1.4 0 2.8.2 4.1.5 1.4.3 2.5.8 3.3 1.2v7c-1.1-.8-2.3-1.5-3.4-1.9-1.2-.4-2.4-.7-3.6-.7-2.9 0-5.2.9-7 2.8s-2.6 4.4-2.6 7.6c0 3.1.9 5.6 2.6 7.3s4 2.6 6.9 2.6m27.9-26.2c.6 0 1.1 0 1.6.1s.9.2 1.2.3v7.4c-.4-.3-.9-.6-1.7-.8s-1.6-.4-2.7-.4c-1.8 0-3.3.8-4.5 2.3s-1.9 3.8-1.9 7v15.6h-7.3v-31h7.3v4.9h.1c.7-1.7 1.7-3 3-4 1.4-.9 3-1.4 4.9-1.4m3.2 16.5c0-5.1 1.5-9.2 4.3-12.2q4.35-4.5 12-4.5c4.8 0 8.6 1.4 11.3 4.3s4.1 6.8 4.1 11.7c0 5-1.5 9-4.3 12-2.9 3-6.8 4.5-11.8 4.5q-7.2 0-11.4-4.2c-2.8-2.9-4.2-6.8-4.2-11.6m7.6-.3c0 3.2.7 5.7 2.2 7.4s3.6 2.6 6.3 2.6c2.6 0 4.7-.8 6.1-2.6 1.4-1.7 2.1-4.2 2.1-7.6 0-3.3-.7-5.8-2.1-7.6-1.4-1.7-3.5-2.6-6-2.6-2.7 0-4.7.9-6.2 2.7-1.7 1.9-2.4 4.4-2.4 7.7m35-7.5c0 1 .3 1.9 1 2.5s2.1 1.3 4.4 2.2c2.9 1.2 5 2.5 6.1 3.9 1.2 1.5 1.8 3.2 1.8 5.3 0 2.9-1.1 5.2-3.4 7-2.2 1.8-5.3 2.6-9.1 2.6-1.3 0-2.7-.2-4.3-.5s-2.9-.7-4-1.2v-7.2c1.3.9 2.8 1.7 4.3 2.2s2.9.8 4.2.8c1.6 0 2.9-.2 3.6-.7.8-.5 1.2-1.2 1.2-2.3 0-1-.4-1.8-1.2-2.6-.8-.7-2.4-1.5-4.6-2.4-2.7-1.1-4.6-2.4-5.7-3.8s-1.7-3.2-1.7-5.4q0-4.2 3.3-6.9c2.2-1.8 5.1-2.7 8.6-2.7 1.1 0 2.3.1 3.6.4s2.5.6 3.4.9V34c-1-.6-2.1-1.2-3.4-1.7s-2.6-.7-3.8-.7c-1.4 0-2.5.3-3.2.8-.7.7-1.1 1.4-1.1 2.4m16.4 7.8c0-5.1 1.5-9.2 4.3-12.2q4.35-4.5 12-4.5c4.8 0 8.6 1.4 11.3 4.3s4.1 6.8 4.1 11.7c0 5-1.5 9-4.3 12-2.9 3-6.8 4.5-11.8 4.5q-7.2 0-11.4-4.2c-2.7-2.9-4.2-6.8-4.2-11.6m7.6-.3c0 3.2.7 5.7 2.2 7.4s3.6 2.6 6.3 2.6c2.6 0 4.7-.8 6.1-2.6 1.4-1.7 2.1-4.2 2.1-7.6 0-3.3-.7-5.8-2.1-7.6-1.4-1.7-3.5-2.6-6-2.6-2.7 0-4.7.9-6.2 2.7-1.6 1.9-2.4 4.4-2.4 7.7m48.4-9.7H312v25h-7.4v-25h-5.2v-6h5.2v-4.3c0-3.2 1.1-5.9 3.2-8s4.8-3.1 8.1-3.1c.9 0 1.7.1 2.4.1s1.3.2 1.8.4V18c-.2-.1-.7-.3-1.3-.5q-.9-.3-2.1-.3c-1.5 0-2.7.5-3.5 1.4S312 21 312 22.8v3.7h10.9v-7l7.3-2.2v9.2h7.4v6h-7.4V47c0 1.9.4 3.2 1 4q1.05 1.2 3.3 1.2.6 0 1.5-.3c.6-.2 1.1-.4 1.5-.7v6c-.5.3-1.2.5-2.3.7s-2.1.3-3.2.3q-4.65 0-6.9-2.4c-1.5-1.6-2.3-4.1-2.3-7.4z&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#f25022&quot; d=&quot;M0 0h34.2v34.2H0z&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#7fba00&quot; d=&quot;M37.8 0H72v34.2H37.8z&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#00a4ef&quot; d=&quot;M0 37.8h34.2V72H0z&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#ffb900&quot; d=&quot;M37.8 37.8H72V72H37.8z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:mochajs knip&quot;&gt;&lt;svg viewBox=&quot;0 0 192 192&quot;&gt;&lt;path d=&quot;m169.474 143.901-68.703 39.695a9.48 9.48 0 0 1-9.542 0l-68.703-39.695c-2.958-1.717-4.77-4.866-4.77-8.206v-79.39c0-3.435 1.812-6.489 4.77-8.206L91.23 8.404a9.48 9.48 0 0 1 9.542 0l68.703 39.695c2.958 1.717 4.77 4.866 4.77 8.206v79.39c-.095 3.34-1.908 6.489-4.77 8.206z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M95.905 22.049c.954 0 1.813.286 2.671.763l59.352 34.256a5.49 5.49 0 0 1 2.672 4.676v68.512a5.49 5.49 0 0 1-2.672 4.676l-59.352 34.256c-.858.477-1.717.763-2.671.763a5.13 5.13 0 0 1-2.672-.763L33.88 134.932a5.49 5.49 0 0 1-2.672-4.676V61.744a5.49 5.49 0 0 1 2.672-4.676l59.352-34.256c.859-.477 1.813-.763 2.672-.763m0-2.863a7.84 7.84 0 0 0-4.104 1.145L32.45 54.587c-2.576 1.432-4.103 4.199-4.103 7.062v68.512c0 2.958 1.527 5.63 4.103 7.06l59.35 34.258a7.84 7.84 0 0 0 4.104 1.145 7.84 7.84 0 0 0 4.103-1.145l59.351-34.256c2.577-1.432 4.103-4.199 4.103-7.061V61.649c0-2.958-1.526-5.63-4.103-7.062l-59.351-34.256a7.84 7.84 0 0 0-4.103-1.145&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M103.6 69.6c0-.5-.4-1-1-1H83.8c-.5 0-1 .4-1 1 0 3.4.5 15.1 5.5 20.8.2.2.4.3.7.3h8.4c.3 0 .5-.1.7-.3 5-5.6 5.5-17.3 5.5-20.8m-7.4 18.2h-5.9c-.3 0-.5-.1-.7-.3-3.4-4-3.8-12-3.9-14.8 0-.5.4-1 1-1h13.2c.5 0 1 .4 1 1 0 2.8-.5 10.7-3.9 14.8-.3.2-.5.3-.8.3m-1.1-21.2s3.6-2.1 1.4-5.9c-1.3-2-1.9-3.7-1.4-4.4-1.3 1.6-3.5 3.3-1.1 6.9.8.9 1.2 2.8 1.1 3.4m-4 .3s2.4-1.4.9-4c-.9-1.3-1.3-2.5-.9-2.9-.9 1.1-2.3 2.2-.7 4.7.5.5.7 1.8.7 2.2&quot; transform=&quot;translate(5.494 -4.764)scale(.9542)&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M99.3 78.5c-.4 2.7-1.2 5.8-2.9 7.8q-.3.3-.6.3h-5c-.2 0-.5-.1-.6-.3-1.2-1.5-2-3.5-2.5-5.6 0 0 5.8.8 9.1-.4 2.4-.9 2.5-1.8 2.5-1.8M33.6 94.7h3.7l6.1 9.4 6.1-9.4h3.7v20h-3.5v-14.3l-6.3 9.4h-.1l-6.2-9.3v14.3h-3.5zM71.3 115c-1.5 0-2.9-.3-4.2-.8s-2.4-1.3-3.3-2.2q-1.35-1.35-2.1-3.3c-.5-1.2-.8-2.6-.8-4v-.1c0-1.4.3-2.7.8-4 .5-1.2 1.2-2.3 2.2-3.3.9-.9 2-1.7 3.3-2.2 1.3-.6 2.7-.8 4.2-.8s2.9.3 4.2.8 2.4 1.3 3.3 2.2q1.35 1.35 2.1 3.3c.5 1.2.8 2.6.8 4v.1c0 1.4-.3 2.7-.8 4-.5 1.2-1.2 2.3-2.2 3.3-.9.9-2 1.7-3.3 2.2-1.3.6-2.7.8-4.2.8m0-3.2q1.5 0 2.7-.6t2.1-1.5c.6-.6 1-1.4 1.4-2.2.3-.9.5-1.8.5-2.7v-.1c0-1-.2-1.9-.5-2.8s-.8-1.6-1.4-2.3q-.9-.9-2.1-1.5t-2.7-.6-2.7.6-2.1 1.5c-.6.6-1 1.4-1.4 2.2-.3.9-.5 1.8-.5 2.7v.1c0 1 .2 1.9.5 2.8s.8 1.6 1.4 2.3q.9.9 2.1 1.5c.8.4 1.8.6 2.7.6m27.4 3.2c-1.5 0-2.8-.3-4-.8s-2.3-1.3-3.2-2.2q-1.35-1.35-2.1-3.3c-.5-1.3-.8-2.6-.8-4v-.1c0-1.4.3-2.8.8-4q.75-1.8 2.1-3.3c.9-.9 2-1.7 3.3-2.2s2.6-.8 4.2-.8c.9 0 1.7.1 2.5.2.8.2 1.4.4 2.1.6.6.3 1.2.6 1.7 1s1 .8 1.5 1.3l-2.3 2.6c-.8-.7-1.6-1.3-2.5-1.8s-1.9-.7-3.1-.7c-1 0-1.8.2-2.6.6q-1.2.6-2.1 1.5c-.6.6-1 1.4-1.4 2.2-.3.9-.5 1.8-.5 2.7v.1c0 1 .2 1.9.5 2.8s.8 1.6 1.4 2.3c.6.6 1.3 1.2 2.1 1.5s1.7.6 2.6.6c1.2 0 2.3-.2 3.1-.7s1.7-1.1 2.6-1.9l2.3 2.3c-.5.6-1 1-1.6 1.5s-1.2.8-1.8 1.1-1.4.6-2.1.7c-.9.2-1.8.2-2.7.2m15.2-20.3h3.5v8.3h9.6v-8.3h3.5v20H127v-8.4h-9.6v8.4h-3.5zm32.1-.1h3.2l8.8 20.1h-3.7l-2-4.8h-9.4l-2.1 4.8h-3.6zm5 12.2-3.4-8-3.4 8z&quot; transform=&quot;translate(5.494 -4.764)scale(.9542)&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M35.169 110.695H156.83v1.05H35.169zM156.83 74.817h-51.717c0 .381-.096.668-.096 1.05h51.814v-1.05zm-121.66 0v1.05h48.76c0-.382-.096-.669-.096-1.05H35.169z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:n8n-io knip&quot; aria-label=&quot;n8n&quot;&gt;&lt;svg viewBox=&quot;0 4 58 18&quot;&gt;&lt;path fill=&quot;#ea4b71&quot; fill-rule=&quot;evenodd&quot; d=&quot;M27.2 11.396a3.2 3.2 0 0 1-3.1-2.4h-3.667a1.6 1.6 0 0 0-1.578 1.336l-.132.79a3.2 3.2 0 0 1-1.04 1.874 3.2 3.2 0 0 1 1.04 1.874l.132.789a1.6 1.6 0 0 0 1.578 1.336h.468a3.201 3.201 0 1 1-.001 1.6h-.467a3.2 3.2 0 0 1-3.156-2.673l-.132-.79a1.6 1.6 0 0 0-1.578-1.336h-1.268a3.2 3.2 0 0 1-6.198 0H6.299a3.2 3.2 0 1 1 .001-1.6h1.8a3.2 3.2 0 0 1 6.2 0h1.267a1.6 1.6 0 0 0 1.578-1.338l.132-.79a3.2 3.2 0 0 1 3.156-2.672h3.668a3.201 3.201 0 0 1 6.299.8 3.2 3.2 0 0 1-3.2 3.2m0-1.6a1.6 1.6 0 1 0 0-3.2 1.6 1.6 0 0 0 0 3.2m-24 4.8a1.6 1.6 0 1 0 0-3.2 1.6 1.6 0 0 0 0 3.2m9.6-1.6a1.6 1.6 0 1 1-3.2 0 1.6 1.6 0 0 1 3.2 0m12.8 4.8a1.6 1.6 0 1 1-3.2 0 1.6 1.6 0 0 1 3.2 0&quot; clip-rule=&quot;evenodd&quot;&gt;&lt;/path&gt;&lt;g fill=&quot;currentColor&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M47.002 12.99v-.076c.558-.28 1.116-.762 1.116-1.716 0-1.372-1.13-2.198-2.69-2.198-1.598 0-2.74.877-2.74 2.224 0 .915.533 1.41 1.116 1.69v.076a2.16 2.16 0 0 0-1.42 2.059c0 1.385 1.141 2.351 3.032 2.351 1.89 0 2.994-.966 2.994-2.351a2.16 2.16 0 0 0-1.408-2.059m-1.587-2.82c.635 0 1.104.406 1.104 1.092s-.482 1.093-1.103 1.093c-.622 0-1.142-.407-1.142-1.093 0-.699.495-1.093 1.142-1.093m0 6.01c-.735 0-1.332-.47-1.332-1.27 0-.725.495-1.272 1.32-1.272.812 0 1.307.534 1.307 1.297 0 .775-.572 1.245-1.295 1.245&quot; clip-rule=&quot;evenodd&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M50.367 17.272h1.624V13.83c0-1.131.685-1.627 1.46-1.627.76 0 1.357.509 1.357 1.55v3.52h1.624v-3.851c0-1.664-.964-2.63-2.474-2.63-.952 0-1.485.381-1.865.877h-.102l-.14-.75h-1.484zm-14.376 0h-1.624V10.92h1.485l.14.75h.1c.381-.496.914-.877 1.866-.877 1.51 0 2.474.966 2.474 2.63v3.85h-1.624v-3.521c0-1.041-.596-1.55-1.358-1.55-.774 0-1.459.496-1.459 1.627z&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:nuxt knip&quot;&gt;&lt;svg fill=&quot;none&quot; viewBox=&quot;0 30 800 200&quot; overflow=&quot;visible&quot;&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M377 200c2.16 0 4-1.791 4-4v-93s5 9 14 24l39 67c1.785 3.74 5.744 6 9 6h27V50h-27c-1.798 0-4 1.494-4 4v94l-18-32-36-61c-1.752-3.109-5.521-5-9-5h-26v150zM726 92h13a6 6 0 0 0 6-6V60h28v32h27v24h-27v43c0 10.5 5.057 15 14 15h13v26h-17c-23.052 0-38-14.929-38-40v-44h-19zm-135 0v62c0 14.004-5.258 25.809-13 34s-18.434 12-33 12-26.258-3.809-34-12c-7.611-8.191-13-19.996-13-34V92h16c3.412 0 6.769.622 9 3 2.231 2.246 3 3.565 3 7v52c0 8.059.457 13.037 4 17 3.543 3.831 7.914 5 15 5 7.217 0 10.457-1.169 14-5 3.543-3.963 4-8.941 4-17v-52c0-3.435.769-5.622 3-8 1.96-2.09 4.028-2.04 7-2 .411.005 1.586 0 2 0zm85 52 34-52h-26c-3.277 0-6.188 1.176-8 4l-16 24-15-23c-1.812-2.824-5.723-5-9-5h-25l34 51-37 57h26c3.25 0 6.182-3.213 8-6l18-27 19 28c1.818 2.787 4.75 5 8 5h26z&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#00dc82&quot; d=&quot;M168 200h111c3.542 0 6.932-1.244 10-3s6.23-3.959 8-7 3.002-6.49 3-10.001-1.227-6.959-3-9.998L222 41c-1.77-3.04-3.933-5.245-7-7s-7.458-3-11-3-6.933 1.245-10 3-5.23 3.96-7 7l-19 33-38-64.002c-1.772-3.04-3.932-6.243-7-7.998s-6.458-2-10-2-6.932.245-10 2-6.228 4.958-8 7.998L2 170c-1.773 3.039-1.998 6.487-2 9.998s.23 6.96 2 10.001 4.932 5.244 8 7 6.458 3 10 3h70c27.737 0 47.925-12.442 62-36l34-59 18-31 55 94h-73zm-79-32H40l73-126 37 63-24.509 42.725C116.144 163.01 105.488 168 89 168&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:NVIDIA knip&quot;&gt;&lt;svg viewBox=&quot;316.2 33.8 630.2 118.2&quot;&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M578.2 34v118h33.3V34zm-262-.2v118.1h33.6V60.2l26.2.1c8.6 0 14.6 2.1 18.7 6.5 5.3 5.6 7.4 14.7 7.4 31.2v53.9h32.6V86.7c0-46.6-29.7-52.9-58.7-52.9zm315.7.2v118h54c28.8 0 38.2-4.8 48.3-15.5 7.2-7.5 11.8-24.1 11.8-42.2 0-16.6-3.9-31.4-10.8-40.6C723 37.2 705.2 34 678.6 34zm33 25.6h14.3c20.8 0 34.2 9.3 34.2 33.5s-13.4 33.6-34.2 33.6h-14.3zM530.2 34l-27.8 93.5L475.8 34h-36l38 118h48l38.4-118zm231.4 118h33.3V34h-33.3zM855 34l-46.5 117.9h32.8l7.4-20.9h55l7 20.8h35.7L899.5 34zm21.6 21.5 20.2 55.2h-41z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:oxc-project knip&quot;&gt;&lt;svg fill=&quot;none&quot; viewBox=&quot;0 0 82 15&quot;&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M9.303 0c6.111 0 9.323 2.57 9.323 7.5S15.414 15 9.303 15 0 12.43 0 7.5 3.19 0 9.303 0M45.69 0c5.47 0 8.784 2.155 8.785 6.277v.042h-5.263v-.042c0-1.781-1.098-2.713-3.522-2.714-2.755 0-4.06 1.244-4.06 3.937s1.305 3.916 4.06 3.916c2.424 0 3.522-.933 3.522-2.693v-.02h5.263v.02c0 4.08-3.212 6.277-8.785 6.277-6.008 0-9.136-2.59-9.136-7.5S39.683 0 45.69 0M27.583 4.662 30.69.25h5.47l-5.2 7.085 5.387 7.417h-5.698l-3.376-4.744-3.316 4.744h-5.47l5.387-7.458L18.654.25h5.76zM9.303 3.563c-2.88 0-4.227 1.223-4.227 3.937s1.347 3.916 4.227 3.916 4.226-1.223 4.226-3.916c0-2.714-1.347-3.936-4.226-3.937&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#32f3ef&quot; d=&quot;M71.603 2.423c0 .4.325.725.725.725h2.751c.324 0 .485.39.257.619l-3.521 3.52a.73.73 0 0 0-.213.513v1.204c0 .5.497.848.936.61a6.5 6.5 0 0 0 1.24-.875.38.38 0 0 1 .52.008l2.564 2.564a.353.353 0 0 1-.004.508 10.84 10.84 0 0 1-7.432 2.935 10.84 10.84 0 0 1-7.432-2.935.353.353 0 0 1-.004-.508l2.564-2.564a.38.38 0 0 1 .52-.008c.376.337.793.631 1.24.874.44.24.936-.108.936-.609V7.8a.73.73 0 0 0-.213-.513l-3.52-3.52a.362.362 0 0 1 .256-.62h2.751c.4 0 .725-.324.725-.724V.609c0-.2.163-.362.363-.362h3.626c.2 0 .363.162.363.362v1.814z&quot;&gt;&lt;/path&gt;&lt;mask id=&quot;oxc__a&quot; width=&quot;16&quot; height=&quot;15&quot; x=&quot;61&quot; y=&quot;0&quot; maskUnits=&quot;userSpaceOnUse&quot;&gt;&lt;path fill=&quot;#d9d9d9&quot; d=&quot;M71.603 2.422c0 .401.325.726.725.726h2.751c.324 0 .485.39.257.618l-3.521 3.521a.73.73 0 0 0-.213.513v1.204c0 .5.497.848.936.609a6.5 6.5 0 0 0 1.24-.874.38.38 0 0 1 .52.007l2.564 2.565a.353.353 0 0 1-.004.508 10.84 10.84 0 0 1-7.432 2.934 10.84 10.84 0 0 1-7.432-2.934.353.353 0 0 1-.004-.508l2.564-2.565a.38.38 0 0 1 .52-.007c.376.337.793.631 1.24.874.44.239.936-.108.936-.61V7.8a.73.73 0 0 0-.213-.513l-3.52-3.52a.362.362 0 0 1 .256-.62h2.751c.4 0 .725-.324.725-.725V.61c0-.2.163-.363.363-.363h3.626c.2 0 .363.163.363.363v1.813z&quot;&gt;&lt;/path&gt;&lt;/mask&gt;&lt;g mask=&quot;url(#oxc__a)&quot;&gt;&lt;g filter=&quot;url(#oxc__b)&quot;&gt;&lt;ellipse cx=&quot;1.48&quot; cy=&quot;6.893&quot; fill=&quot;#aefffb&quot; rx=&quot;1.48&quot; ry=&quot;6.893&quot; transform=&quot;matrix(0 -1 -1 0 76.277 16.466)&quot;&gt;&lt;/ellipse&gt;&lt;/g&gt;&lt;g filter=&quot;url(#oxc__c)&quot;&gt;&lt;ellipse cx=&quot;1.48&quot; cy=&quot;6.893&quot; fill=&quot;#0f8&quot; rx=&quot;1.48&quot; ry=&quot;6.893&quot; transform=&quot;rotate(68.34 31.37 67.115)scale(-1 1)&quot;&gt;&lt;/ellipse&gt;&lt;/g&gt;&lt;g filter=&quot;url(#oxc__d)&quot;&gt;&lt;ellipse cx=&quot;63.551&quot; cy=&quot;14.356&quot; fill=&quot;#195eff&quot; rx=&quot;1.48&quot; ry=&quot;6.893&quot; transform=&quot;rotate(-68.34 63.551 14.356)&quot;&gt;&lt;/ellipse&gt;&lt;/g&gt;&lt;g filter=&quot;url(#oxc__e)&quot;&gt;&lt;ellipse cx=&quot;72.12&quot; cy=&quot;9.509&quot; fill=&quot;#aefffb&quot; rx=&quot;1.191&quot; ry=&quot;2.01&quot; transform=&quot;rotate(-135.197 72.12 9.509)&quot;&gt;&lt;/ellipse&gt;&lt;/g&gt;&lt;g filter=&quot;url(#oxc__f)&quot;&gt;&lt;ellipse cx=&quot;72.733&quot; cy=&quot;8.404&quot; fill=&quot;#195eff&quot; rx=&quot;1.191&quot; ry=&quot;2.01&quot; transform=&quot;rotate(-135.197 72.733 8.404)&quot;&gt;&lt;/ellipse&gt;&lt;/g&gt;&lt;g filter=&quot;url(#oxc__g)&quot;&gt;&lt;ellipse cx=&quot;72.61&quot; cy=&quot;2.265&quot; fill=&quot;#aefffb&quot; rx=&quot;1.191&quot; ry=&quot;2.01&quot; transform=&quot;rotate(-135.197 72.61 2.265)&quot;&gt;&lt;/ellipse&gt;&lt;/g&gt;&lt;g filter=&quot;url(#oxc__h)&quot;&gt;&lt;ellipse cx=&quot;72.979&quot; cy=&quot;1.774&quot; fill=&quot;#195eff&quot; rx=&quot;1.191&quot; ry=&quot;2.01&quot; transform=&quot;rotate(-135.197 72.98 1.774)&quot;&gt;&lt;/ellipse&gt;&lt;/g&gt;&lt;g filter=&quot;url(#oxc__i)&quot;&gt;&lt;ellipse cx=&quot;1.191&quot; cy=&quot;2.01&quot; fill=&quot;#aefffb&quot; rx=&quot;1.191&quot; ry=&quot;2.01&quot; transform=&quot;rotate(-44.803 48.285 -75.76)scale(1 -1)&quot;&gt;&lt;/ellipse&gt;&lt;/g&gt;&lt;g filter=&quot;url(#oxc__j)&quot;&gt;&lt;ellipse cx=&quot;1.191&quot; cy=&quot;2.01&quot; fill=&quot;#195eff&quot; rx=&quot;1.191&quot; ry=&quot;2.01&quot; transform=&quot;rotate(-44.803 46.515 -75.27)scale(1 -1)&quot;&gt;&lt;/ellipse&gt;&lt;/g&gt;&lt;g filter=&quot;url(#oxc__k)&quot;&gt;&lt;ellipse cx=&quot;1.191&quot; cy=&quot;2.01&quot; fill=&quot;#aefffb&quot; rx=&quot;1.191&quot; ry=&quot;2.01&quot; transform=&quot;rotate(135.197 32.342 15.982)scale(-1 1)&quot;&gt;&lt;/ellipse&gt;&lt;/g&gt;&lt;g filter=&quot;url(#oxc__l)&quot;&gt;&lt;ellipse cx=&quot;1.191&quot; cy=&quot;2.01&quot; fill=&quot;#195eff&quot; rx=&quot;1.191&quot; ry=&quot;2.01&quot; transform=&quot;rotate(-44.803 37.816 -78.68)scale(1 -1)&quot;&gt;&lt;/ellipse&gt;&lt;/g&gt;&lt;g filter=&quot;url(#oxc__m)&quot;&gt;&lt;ellipse cx=&quot;1.191&quot; cy=&quot;3.831&quot; fill=&quot;#195eff&quot; rx=&quot;1.191&quot; ry=&quot;3.831&quot; transform=&quot;rotate(-44.803 44.79 -76.156)scale(1 -1)&quot;&gt;&lt;/ellipse&gt;&lt;/g&gt;&lt;g filter=&quot;url(#oxc__n)&quot;&gt;&lt;ellipse cx=&quot;74.385&quot; cy=&quot;4.902&quot; fill=&quot;#0f8&quot; rx=&quot;1.191&quot; ry=&quot;3.831&quot; transform=&quot;rotate(-135.197 74.385 4.902)&quot;&gt;&lt;/ellipse&gt;&lt;/g&gt;&lt;g filter=&quot;url(#oxc__o)&quot;&gt;&lt;ellipse cx=&quot;1.48&quot; cy=&quot;6.893&quot; fill=&quot;#195eff&quot; rx=&quot;1.48&quot; ry=&quot;6.893&quot; transform=&quot;matrix(0 -1 -1 0 76.277 17.08)&quot;&gt;&lt;/ellipse&gt;&lt;/g&gt;&lt;/g&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M59.421 0c-2.949 4.221-2.966 10.764 0 15h1.993c-2.966-4.236-2.949-10.779 0-15zm20.012 0H77.44c2.95 4.221 2.967 10.764 0 15h1.993c2.965-4.236 2.948-10.779 0-15&quot;&gt;&lt;/path&gt;&lt;defs&gt;&lt;filter id=&quot;oxc__b&quot; width=&quot;19.679&quot; height=&quot;8.854&quot; x=&quot;59.545&quot; y=&quot;10.559&quot; color-interpolation-filters=&quot;sRGB&quot; filterUnits=&quot;userSpaceOnUse&quot;&gt;&lt;feFlood flood-opacity=&quot;0&quot; result=&quot;BackgroundImageFix&quot;&gt;&lt;/feFlood&gt;&lt;feBlend in=&quot;SourceGraphic&quot; in2=&quot;BackgroundImageFix&quot; result=&quot;shape&quot;&gt;&lt;/feBlend&gt;&lt;feGaussianBlur result=&quot;effect1_foregroundBlur_242_21098&quot; stdDeviation=&quot;1.473&quot;&gt;&lt;/feGaussianBlur&gt;&lt;/filter&gt;&lt;filter id=&quot;oxc__c&quot; width=&quot;18.753&quot; height=&quot;11.679&quot; x=&quot;65.838&quot; y=&quot;8.517&quot; color-interpolation-filters=&quot;sRGB&quot; filterUnits=&quot;userSpaceOnUse&quot;&gt;&lt;feFlood flood-opacity=&quot;0&quot; result=&quot;BackgroundImageFix&quot;&gt;&lt;/feFlood&gt;&lt;feBlend in=&quot;SourceGraphic&quot; in2=&quot;BackgroundImageFix&quot; result=&quot;shape&quot;&gt;&lt;/feBlend&gt;&lt;feGaussianBlur result=&quot;effect1_foregroundBlur_242_21098&quot; stdDeviation=&quot;1.473&quot;&gt;&lt;/feGaussianBlur&gt;&lt;/filter&gt;&lt;filter id=&quot;oxc__d&quot; width=&quot;18.753&quot; height=&quot;11.679&quot; x=&quot;54.175&quot; y=&quot;8.517&quot; color-interpolation-filters=&quot;sRGB&quot; filterUnits=&quot;userSpaceOnUse&quot;&gt;&lt;feFlood flood-opacity=&quot;0&quot; result=&quot;BackgroundImageFix&quot;&gt;&lt;/feFlood&gt;&lt;feBlend in=&quot;SourceGraphic&quot; in2=&quot;BackgroundImageFix&quot; result=&quot;shape&quot;&gt;&lt;/feBlend&gt;&lt;feGaussianBlur result=&quot;effect1_foregroundBlur_242_21098&quot; stdDeviation=&quot;1.473&quot;&gt;&lt;/feGaussianBlur&gt;&lt;/filter&gt;&lt;filter id=&quot;oxc__e&quot; width=&quot;9.192&quot; height=&quot;9.203&quot; x=&quot;67.524&quot; y=&quot;4.907&quot; color-interpolation-filters=&quot;sRGB&quot; filterUnits=&quot;userSpaceOnUse&quot;&gt;&lt;feFlood flood-opacity=&quot;0&quot; result=&quot;BackgroundImageFix&quot;&gt;&lt;/feFlood&gt;&lt;feBlend in=&quot;SourceGraphic&quot; in2=&quot;BackgroundImageFix&quot; result=&quot;shape&quot;&gt;&lt;/feBlend&gt;&lt;feGaussianBlur result=&quot;effect1_foregroundBlur_242_21098&quot; stdDeviation=&quot;1.473&quot;&gt;&lt;/feGaussianBlur&gt;&lt;/filter&gt;&lt;filter id=&quot;oxc__f&quot; width=&quot;9.192&quot; height=&quot;9.203&quot; x=&quot;68.137&quot; y=&quot;3.803&quot; color-interpolation-filters=&quot;sRGB&quot; filterUnits=&quot;userSpaceOnUse&quot;&gt;&lt;feFlood flood-opacity=&quot;0&quot; result=&quot;BackgroundImageFix&quot;&gt;&lt;/feFlood&gt;&lt;feBlend in=&quot;SourceGraphic&quot; in2=&quot;BackgroundImageFix&quot; result=&quot;shape&quot;&gt;&lt;/feBlend&gt;&lt;feGaussianBlur result=&quot;effect1_foregroundBlur_242_21098&quot; stdDeviation=&quot;1.473&quot;&gt;&lt;/feGaussianBlur&gt;&lt;/filter&gt;&lt;filter id=&quot;oxc__g&quot; width=&quot;9.192&quot; height=&quot;9.203&quot; x=&quot;68.014&quot; y=&quot;-2.336&quot; color-interpolation-filters=&quot;sRGB&quot; filterUnits=&quot;userSpaceOnUse&quot;&gt;&lt;feFlood flood-opacity=&quot;0&quot; result=&quot;BackgroundImageFix&quot;&gt;&lt;/feFlood&gt;&lt;feBlend in=&quot;SourceGraphic&quot; in2=&quot;BackgroundImageFix&quot; result=&quot;shape&quot;&gt;&lt;/feBlend&gt;&lt;feGaussianBlur result=&quot;effect1_foregroundBlur_242_21098&quot; stdDeviation=&quot;1.473&quot;&gt;&lt;/feGaussianBlur&gt;&lt;/filter&gt;&lt;filter id=&quot;oxc__h&quot; width=&quot;9.192&quot; height=&quot;9.203&quot; x=&quot;68.383&quot; y=&quot;-2.827&quot; color-interpolation-filters=&quot;sRGB&quot; filterUnits=&quot;userSpaceOnUse&quot;&gt;&lt;feFlood flood-opacity=&quot;0&quot; result=&quot;BackgroundImageFix&quot;&gt;&lt;/feFlood&gt;&lt;feBlend in=&quot;SourceGraphic&quot; in2=&quot;BackgroundImageFix&quot; result=&quot;shape&quot;&gt;&lt;/feBlend&gt;&lt;feGaussianBlur result=&quot;effect1_foregroundBlur_242_21098&quot; stdDeviation=&quot;1.473&quot;&gt;&lt;/feGaussianBlur&gt;&lt;/filter&gt;&lt;filter id=&quot;oxc__i&quot; width=&quot;9.192&quot; height=&quot;9.203&quot; x=&quot;62.244&quot; y=&quot;5.153&quot; color-interpolation-filters=&quot;sRGB&quot; filterUnits=&quot;userSpaceOnUse&quot;&gt;&lt;feFlood flood-opacity=&quot;0&quot; result=&quot;BackgroundImageFix&quot;&gt;&lt;/feFlood&gt;&lt;feBlend in=&quot;SourceGraphic&quot; in2=&quot;BackgroundImageFix&quot; result=&quot;shape&quot;&gt;&lt;/feBlend&gt;&lt;feGaussianBlur result=&quot;effect1_foregroundBlur_242_21098&quot; stdDeviation=&quot;1.473&quot;&gt;&lt;/feGaussianBlur&gt;&lt;/filter&gt;&lt;filter id=&quot;oxc__j&quot; width=&quot;9.192&quot; height=&quot;9.203&quot; x=&quot;61.385&quot; y=&quot;4.048&quot; color-interpolation-filters=&quot;sRGB&quot; filterUnits=&quot;userSpaceOnUse&quot;&gt;&lt;feFlood flood-opacity=&quot;0&quot; result=&quot;BackgroundImageFix&quot;&gt;&lt;/feFlood&gt;&lt;feBlend in=&quot;SourceGraphic&quot; in2=&quot;BackgroundImageFix&quot; result=&quot;shape&quot;&gt;&lt;/feBlend&gt;&lt;feGaussianBlur result=&quot;effect1_foregroundBlur_242_21098&quot; stdDeviation=&quot;1.473&quot;&gt;&lt;/feGaussianBlur&gt;&lt;/filter&gt;&lt;filter id=&quot;oxc__k&quot; width=&quot;9.192&quot; height=&quot;9.203&quot; x=&quot;61.385&quot; y=&quot;-2.336&quot; color-interpolation-filters=&quot;sRGB&quot; filterUnits=&quot;userSpaceOnUse&quot;&gt;&lt;feFlood flood-opacity=&quot;0&quot; result=&quot;BackgroundImageFix&quot;&gt;&lt;/feFlood&gt;&lt;feBlend in=&quot;SourceGraphic&quot; in2=&quot;BackgroundImageFix&quot; result=&quot;shape&quot;&gt;&lt;/feBlend&gt;&lt;feGaussianBlur result=&quot;effect1_foregroundBlur_242_21098&quot; stdDeviation=&quot;1.473&quot;&gt;&lt;/feGaussianBlur&gt;&lt;/filter&gt;&lt;filter id=&quot;oxc__l&quot; width=&quot;9.192&quot; height=&quot;9.203&quot; x=&quot;61.261&quot; y=&quot;-3.073&quot; color-interpolation-filters=&quot;sRGB&quot; filterUnits=&quot;userSpaceOnUse&quot;&gt;&lt;feFlood flood-opacity=&quot;0&quot; result=&quot;BackgroundImageFix&quot;&gt;&lt;/feFlood&gt;&lt;feBlend in=&quot;SourceGraphic&quot; in2=&quot;BackgroundImageFix&quot; result=&quot;shape&quot;&gt;&lt;/feBlend&gt;&lt;feGaussianBlur result=&quot;effect1_foregroundBlur_242_21098&quot; stdDeviation=&quot;1.473&quot;&gt;&lt;/feGaussianBlur&gt;&lt;/filter&gt;&lt;filter id=&quot;oxc__m&quot; width=&quot;11.551&quot; height=&quot;11.584&quot; x=&quot;59.045&quot; y=&quot;.092&quot; color-interpolation-filters=&quot;sRGB&quot; filterUnits=&quot;userSpaceOnUse&quot;&gt;&lt;feFlood flood-opacity=&quot;0&quot; result=&quot;BackgroundImageFix&quot;&gt;&lt;/feFlood&gt;&lt;feBlend in=&quot;SourceGraphic&quot; in2=&quot;BackgroundImageFix&quot; result=&quot;shape&quot;&gt;&lt;/feBlend&gt;&lt;feGaussianBlur result=&quot;effect1_foregroundBlur_242_21098&quot; stdDeviation=&quot;1.473&quot;&gt;&lt;/feGaussianBlur&gt;&lt;/filter&gt;&lt;filter id=&quot;oxc__n&quot; width=&quot;11.551&quot; height=&quot;11.584&quot; x=&quot;68.609&quot; y=&quot;-.89&quot; color-interpolation-filters=&quot;sRGB&quot; filterUnits=&quot;userSpaceOnUse&quot;&gt;&lt;feFlood flood-opacity=&quot;0&quot; result=&quot;BackgroundImageFix&quot;&gt;&lt;/feFlood&gt;&lt;feBlend in=&quot;SourceGraphic&quot; in2=&quot;BackgroundImageFix&quot; result=&quot;shape&quot;&gt;&lt;/feBlend&gt;&lt;feGaussianBlur result=&quot;effect1_foregroundBlur_242_21098&quot; stdDeviation=&quot;1.473&quot;&gt;&lt;/feGaussianBlur&gt;&lt;/filter&gt;&lt;filter id=&quot;oxc__o&quot; width=&quot;19.679&quot; height=&quot;8.854&quot; x=&quot;59.545&quot; y=&quot;11.173&quot; color-interpolation-filters=&quot;sRGB&quot; filterUnits=&quot;userSpaceOnUse&quot;&gt;&lt;feFlood flood-opacity=&quot;0&quot; result=&quot;BackgroundImageFix&quot;&gt;&lt;/feFlood&gt;&lt;feBlend in=&quot;SourceGraphic&quot; in2=&quot;BackgroundImageFix&quot; result=&quot;shape&quot;&gt;&lt;/feBlend&gt;&lt;feGaussianBlur result=&quot;effect1_foregroundBlur_242_21098&quot; stdDeviation=&quot;1.473&quot;&gt;&lt;/feGaussianBlur&gt;&lt;/filter&gt;&lt;/defs&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:prettier knip&quot;&gt;&lt;svg viewBox=&quot;0 0 32 32&quot;&gt;&lt;path fill=&quot;#56b3b4&quot; d=&quot;M21.714 8.571h1.143a.57.57 0 0 1 .571.571.57.57 0 0 1-.571.571h-1.143a.57.57 0 0 1-.571-.571.57.57 0 0 1 .571-.571&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#ea5e5e&quot; d=&quot;M4.571 26.857h5.714a.57.57 0 0 1 .571.571.57.57 0 0 1-.571.571H4.571a.57.57 0 0 1-.571-.57.57.57 0 0 1 .571-.572&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#bf85bf&quot; d=&quot;M18.286 17.714h3.429a.57.57 0 0 1 .571.571.57.57 0 0 1-.571.571h-3.429a.57.57 0 0 1-.571-.571.57.57 0 0 1 .571-.571&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#ea5e5e&quot; d=&quot;M11.429 17.714H16a.57.57 0 0 1 .571.571.57.57 0 0 1-.571.571h-4.571a.57.57 0 0 1-.571-.571.57.57 0 0 1 .571-.571&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#56b3b4&quot; d=&quot;M4.571 17.714h4.572a.57.57 0 0 1 .571.571.57.57 0 0 1-.571.571H4.571a.57.57 0 0 1-.571-.57.57.57 0 0 1 .571-.572&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#bf85bf&quot; d=&quot;M4.571 22.286h5.714a.57.57 0 0 1 .571.571.57.57 0 0 1-.571.571H4.571A.57.57 0 0 1 4 22.857a.57.57 0 0 1 .571-.571m0-9.143h5.714a.57.57 0 0 1 .571.571.57.57 0 0 1-.571.571H4.571A.57.57 0 0 1 4 13.714a.57.57 0 0 1 .571-.571&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#f7ba3e&quot; d=&quot;M10.286 6.286h11.428a.57.57 0 0 1 .571.571.57.57 0 0 1-.571.571H10.286a.57.57 0 0 1-.571-.571.57.57 0 0 1 .571-.571&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#ea5e5e&quot; d=&quot;M4.571 6.286H8a.57.57 0 0 1 .571.571.57.57 0 0 1-.571.572H4.571A.57.57 0 0 1 4 6.857a.57.57 0 0 1 .571-.571&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#f7ba3e&quot; d=&quot;M9.143 24.571h1.143a.57.57 0 0 1 .571.571.57.57 0 0 1-.571.571H9.143a.57.57 0 0 1-.571-.571.57.57 0 0 1 .571-.571&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#56b3b4&quot; d=&quot;M9.143 10.857h1.143a.57.57 0 0 1 .571.571.57.57 0 0 1-.571.571H9.143a.57.57 0 0 1-.571-.571.57.57 0 0 1 .571-.571M4.571 24.571h2.286a.57.57 0 0 1 .571.571.57.57 0 0 1-.571.571H4.571a.57.57 0 0 1-.571-.57.57.57 0 0 1 .571-.572&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#f7ba3e&quot; d=&quot;M4.571 10.857h2.286a.57.57 0 0 1 .571.571.57.57 0 0 1-.571.572H4.571A.57.57 0 0 1 4 11.429a.57.57 0 0 1 .571-.572&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#4d616e&quot; d=&quot;M19.429 24.571h1.143a.57.57 0 0 1 .571.571.57.57 0 0 1-.571.571h-1.143a.57.57 0 0 1-.571-.571.57.57 0 0 1 .571-.571m-6.858 0h4.571a.57.57 0 0 1 .571.571.57.57 0 0 1-.571.571h-4.571a.57.57 0 0 1-.571-.57.57.57 0 0 1 .571-.572m10.286 0h4.571a.57.57 0 0 1 .571.571.57.57 0 0 1-.571.571h-4.571a.57.57 0 0 1-.571-.571.57.57 0 0 1 .571-.571&quot; opacity=&quot;.5&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#56b3b4&quot; d=&quot;M13.714 15.429h9.143a.57.57 0 0 1 .571.571.57.57 0 0 1-.571.571h-9.143a.57.57 0 0 1-.571-.571.57.57 0 0 1 .571-.571&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#f7ba3e&quot; d=&quot;M8 15.429h3.429A.57.57 0 0 1 12 16a.57.57 0 0 1-.571.571H8A.57.57 0 0 1 7.429 16 .57.57 0 0 1 8 15.429&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#ea5e5e&quot; d=&quot;M4.571 15.429h1.143a.57.57 0 0 1 .572.571.57.57 0 0 1-.571.571H4.571A.57.57 0 0 1 4 16a.57.57 0 0 1 .571-.571&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#bf85bf&quot; d=&quot;M14.857 8.571h4.571a.57.57 0 0 1 .572.572.57.57 0 0 1-.571.571h-4.572a.57.57 0 0 1-.571-.571.57.57 0 0 1 .571-.572&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#56b3b4&quot; d=&quot;M4.571 8.571h8a.57.57 0 0 1 .571.571.57.57 0 0 1-.571.571h-8A.57.57 0 0 1 4 9.143a.57.57 0 0 1 .571-.572&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#f7ba3e&quot; d=&quot;M8 20h10.286a.57.57 0 0 1 .571.571.57.57 0 0 1-.571.571H8a.57.57 0 0 1-.571-.571A.57.57 0 0 1 8 20&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#bf85bf&quot; d=&quot;M4.571 20h1.143a.57.57 0 0 1 .571.571.57.57 0 0 1-.571.571H4.571A.57.57 0 0 1 4 20.571.57.57 0 0 1 4.571 20&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#ea5e5e&quot; d=&quot;M18.286 10.857H24a.57.57 0 0 1 .571.571A.57.57 0 0 1 24 12h-5.714a.57.57 0 0 1-.571-.571.57.57 0 0 1 .571-.572&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#f7ba3e&quot; d=&quot;M18.286 13.143H24a.57.57 0 0 1 .571.571.57.57 0 0 1-.571.571h-5.714a.57.57 0 0 1-.571-.571.57.57 0 0 1 .571-.571&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#56b3b4&quot; d=&quot;M4.571 4h13.715a.57.57 0 0 1 .571.571.57.57 0 0 1-.571.571H4.571A.57.57 0 0 1 4 4.571.57.57 0 0 1 4.571 4&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#4d616e&quot; d=&quot;M20.571 4h6.857a.57.57 0 0 1 .572.571.57.57 0 0 1-.571.571h-6.858A.57.57 0 0 1 20 4.571.57.57 0 0 1 20.571 4m0 16h2.286a.57.57 0 0 1 .571.571.57.57 0 0 1-.571.571h-2.286a.57.57 0 0 1-.571-.571.57.57 0 0 1 .571-.571m4.572 0h2.286a.57.57 0 0 1 .571.571.57.57 0 0 1-.571.571h-2.286a.57.57 0 0 1-.571-.571.57.57 0 0 1 .571-.571M24 17.714h3.429a.57.57 0 0 1 .571.571.57.57 0 0 1-.571.571H24a.57.57 0 0 1-.571-.571.57.57 0 0 1 .571-.571m0-11.428h3.429a.57.57 0 0 1 .571.571.57.57 0 0 1-.571.571H24a.57.57 0 0 1-.571-.571.57.57 0 0 1 .571-.571m1.143 9.143h2.286A.57.57 0 0 1 28 16a.57.57 0 0 1-.571.571h-2.286a.57.57 0 0 1-.572-.571.57.57 0 0 1 .572-.571m0-6.858h2.286a.57.57 0 0 1 .571.572.57.57 0 0 1-.571.571h-2.286a.57.57 0 0 1-.571-.571.57.57 0 0 1 .571-.572m1.143 2.286h1.143a.57.57 0 0 1 .571.571.57.57 0 0 1-.571.571h-1.143a.57.57 0 0 1-.571-.571.57.57 0 0 1 .571-.571m0 2.286h1.143a.57.57 0 0 1 .571.571.57.57 0 0 1-.571.571h-1.143a.57.57 0 0 1-.571-.571.57.57 0 0 1 .571-.571m-9.143 9.143h10.286a.57.57 0 0 1 .571.571.57.57 0 0 1-.571.571H17.143a.57.57 0 0 1-.571-.571.57.57 0 0 1 .571-.571m-4.572 0h2.286a.57.57 0 0 1 .571.571.57.57 0 0 1-.571.571h-2.286a.57.57 0 0 1-.571-.571.57.57 0 0 1 .571-.571m9.143 4.571h5.714a.57.57 0 0 1 .571.571.57.57 0 0 1-.571.571h-5.714a.57.57 0 0 1-.571-.571.57.57 0 0 1 .571-.571m-9.143 0h6.857a.57.57 0 0 1 .571.571.57.57 0 0 1-.571.571h-6.857a.57.57 0 0 1-.571-.57.57.57 0 0 1 .571-.572m0-16H16a.57.57 0 0 1 .571.571A.57.57 0 0 1 16 12h-3.429a.57.57 0 0 1-.571-.571.57.57 0 0 1 .571-.572m0 2.286H16a.57.57 0 0 1 .571.571.57.57 0 0 1-.571.571h-3.429a.57.57 0 0 1-.571-.571.57.57 0 0 1 .571-.571&quot; opacity=&quot;.5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:sanity-io knip&quot;&gt;&lt;svg fill=&quot;none&quot; viewBox=&quot;0 0 435 154&quot;&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M44.883 52.446c-11.465-8.649-23.07-15.344-23.07-25.108 0-5.856 5.17-11.853 12.305-11.853 12.865 0 20.412 13.39 27.824 30.125h4.612V7.112h-32.16C7.83 7.112 0 23.154 0 35.706c0 16.459 13.565 26.223 28.942 37.659 10.764 7.95 19.853 15.344 19.853 23.853 0 9.206-6.294 14.505-14.265 14.505-8.53 0-21.112-11.161-29.924-34.31H0v42.683h36.777c22.653 0 33.977-17.856 34.395-32.22.558-16.735-13.842-26.082-26.289-35.43m100.119 54.395V61.788c0-19.528-12.165-24.686-29.783-24.686H83.895l.141 31.803h5.171c5.453-13.53 13.283-23.43 21.671-23.43 7.271 0 10.488 6.279 10.488 12.833v6.138c-11.747 6.977-43.065 12.833-43.065 34.033 0 12.275 8.53 22.456 20.977 22.456 10.765 0 18.176-6.977 21.953-15.203.7 6.836 5.171 14.364 15.383 14.364h16.082v-6.138c-5.171 0-7.688-3.485-7.688-7.111zm-24.053-6.977c-2.236 3.21-5.736 6.836-9.93 6.836-5.871 0-9.647-4.466-9.647-13.39 0-10.181 13.7-16.735 19.577-21.617V99.87zm149.196-71.411c8.947 0 14.541-6.279 14.541-14.364S279.092 0 270.145 0s-14.683 5.997-14.683 14.089c0 8.091 6.012 14.364 14.683 14.364m138.99 8.649v6.138c8.812 0 11.324 4.6 6.994 17.016l-10.488 28.312-13.424-34.45c-3.076-6.695-1.4-10.878 5.035-10.878v-6.138h-66.695V9.207h-6.294c-1.817 9.482-11.747 27.895-28.665 27.895v6.138h10.906v57.328c0 9.623 3.218 20.502 21.953 20.502h29.083V89.548h-5.17c-2.101 7.394-6.43 22.175-15.801 22.175-5.17 0-6.012-5.721-6.012-10.322V45.886h26.707c3.217 0 6.57.417 8.247 4.325l28.383 70.02c-5.453 12.416-14.824 14.364-31.601 9.206v24.551c4.336 0 15.518.141 17.477-.416 11.047-3.21 18.594-24.827 21.671-33.194l24.047-64.857c2.659-7.112 4.894-12.275 9.506-12.275v-6.138h-25.865zm-171.432 69.739V59.276c0-14.921-7.129-23.852-21.253-23.852-12.441 0-19.647 8.608-25.171 16.617V37.096h-31.883v6.138c5.453 0 7.83 3.344 7.83 7.252v56.349c0 3.767-2.794 7.112-7.83 7.112v6.137h39.713v-6.137c-5.036 0-7.83-3.345-7.83-7.112V59.646c3.224-4.272 6.935-8.878 13.141-8.878 5.871 0 9.23 4.741 9.23 10.462v45.611c0 3.767-2.794 7.111-7.83 7.111v6.138h39.713v-6.138c-5.036 0-7.83-3.344-7.83-7.111m46.424 0V37.102h-31.882v6.138c5.453 0 7.829 3.344 7.829 7.252v56.349c0 3.767-2.794 7.111-7.829 7.111v6.138h39.712v-6.138c-5.035 0-7.83-3.344-7.83-7.111&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:SAP knip&quot;&gt;&lt;svg viewBox=&quot;0 0 64 64&quot;&gt;&lt;defs&gt;&lt;linearGradient id=&quot;sap_svg__a&quot; x1=&quot;42.046&quot; x2=&quot;42.046&quot; y1=&quot;18.109&quot; y2=&quot;60.523&quot; gradientUnits=&quot;userSpaceOnUse&quot;&gt;&lt;stop offset=&quot;0&quot; stop-color=&quot;#00b8f1&quot;&gt;&lt;/stop&gt;&lt;stop offset=&quot;.22&quot; stop-color=&quot;#06a5e5&quot;&gt;&lt;/stop&gt;&lt;stop offset=&quot;.79&quot; stop-color=&quot;#1870c5&quot;&gt;&lt;/stop&gt;&lt;stop offset=&quot;1&quot; stop-color=&quot;#1d61bc&quot;&gt;&lt;/stop&gt;&lt;/linearGradient&gt;&lt;/defs&gt;&lt;path fill=&quot;url(#sap_svg__a)&quot; d=&quot;M0 17.975V60h42.928l42.017-42.02H0z&quot; transform=&quot;translate(0 2.626)scale(.75342)&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M39.04 30.904h-1.35v-4.932h1.35c1.802 0 3.237.593 3.237 2.436 0 1.903-1.435 2.498-3.237 2.498m-14.53 3.53a5.6 5.6 0 0 1-1.963-.346l1.944-6.13h.04l1.905 6.15a5.7 5.7 0 0 1-1.924.33m14.17-12.476H32.55v14.58l-5.356-14.58H21.89L17.316 34.15c-.484-3.068-3.664-4.133-6.166-4.928-1.648-.53-3.404-1.3-3.388-2.173.014-.706.943-1.36 2.774-1.264 1.234.062 2.333.16 4.485 1.207l2.138-3.71c-1.973-1.007-4.706-1.64-6.944-1.645h-.02c-2.61 0-4.782.85-6.13 2.243a5.2 5.2 0 0 0-1.468 3.577c-.035 1.878.657 3.21 2.105 4.277 1.225.898 2.788 1.475 4.168 1.91 1.703.523 3.093.984 3.077 1.963a1.42 1.42 0 0 1-.404.953c-.424.437-1.075.605-1.977.626-1.738.035-3.025-.235-5.078-1.448L2.59 39.494a14.16 14.16 0 0 0 6.934 1.845h.32c2.15-.04 3.888-.655 5.276-1.77l.225-.194-.607 1.64h5.565l.935-2.844c2.1.68 4.36.69 6.467.027l.9 2.82h9.08V35.14h1.983c4.786 0 7.62-2.436 7.62-6.524 0-4.55-2.755-6.64-8.612-6.64&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:getsentry knip&quot;&gt;&lt;svg viewBox=&quot;0 0 200 44&quot;&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M124.32 28.28 109.56 9.22h-3.68v25.55h3.73V15.19l15.18 19.58h3.26V9.22h-3.73Zm-37.17-4.74h13.23v-3.32H87.14v-7.69h14.93V9.21H83.34v25.56h18.92v-3.32H87.14ZM71.59 20.3C66.44 19.06 65 18.08 65 15.7c0-2.14 1.89-3.59 4.71-3.59a12.06 12.06 0 0 1 7.07 2.55l2-2.83a14.1 14.1 0 0 0-9-3c-5.06 0-8.59 3-8.59 7.27 0 4.6 3 6.19 8.46 7.52 4.86 1.12 6.35 2.16 6.35 4.49s-2 3.77-5.09 3.77a12.34 12.34 0 0 1-8.3-3.26l-2.25 2.69a15.94 15.94 0 0 0 10.42 3.85c5.48 0 9-2.95 9-7.51-.03-3.86-2.31-5.93-8.19-7.35M195.7 9.22l-7.69 12-7.64-12h-4.46L186 24.67v10.11h3.84V24.55L200 9.22Zm-64.63 3.46h8.37v22.1h3.84v-22.1h8.37V9.22h-20.57Zm38.34 12.12c3.86-1.07 6-3.77 6-7.63 0-4.91-3.59-8-9.38-8h-11.36v25.59h3.8v-9.18h6.45l6.48 9.2h4.44l-7-9.82Zm-10.95-2.5v-9.7h7.17c3.74 0 5.88 1.77 5.88 4.84s-2.29 4.86-5.84 4.86ZM29 2.26a4.67 4.67 0 0 0-8 0l-6.58 11.27a32.21 32.21 0 0 1 17.75 26.66h-4.62a27.68 27.68 0 0 0-15.46-22.72L6 28a15.92 15.92 0 0 1 9.23 12.17H4.62A.76.76 0 0 1 4 39.06l2.94-5a10.7 10.7 0 0 0-3.36-1.9l-2.91 5a4.54 4.54 0 0 0 1.69 6.24 4.66 4.66 0 0 0 2.26.6h14.53a19.4 19.4 0 0 0-8-17.31l2.31-4A23.87 23.87 0 0 1 23.76 44h12.31a35.88 35.88 0 0 0-16.41-31.8l4.67-8a.77.77 0 0 1 1.05-.27c.53.29 20.29 34.77 20.66 35.17a.76.76 0 0 1-.68 1.13H40.6q.09 1.91 0 3.81h4.78A4.59 4.59 0 0 0 50 39.43a4.5 4.5 0 0 0-.62-2.28Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:shopify knip&quot;&gt;&lt;svg viewBox=&quot;0 0 608 173.7&quot;&gt;&lt;title&gt;Shopify&lt;/title&gt;&lt;path fill=&quot;#95bf47&quot; d=&quot;M130.7 32.9c-.1-.9-.9-1.3-1.5-1.4s-12.6-.2-12.6-.2-10.1-9.8-11.1-10.8-2.9-.7-3.7-.5c0 0-1.9.6-5.1 1.6-.5-1.7-1.3-3.8-2.4-5.9-3.6-6.9-8.8-10.5-15.2-10.5-.4 0-.9 0-1.3.1-.2-.2-.4-.4-.6-.7-2.8-3-6.3-4.4-10.5-4.3-8.2.2-16.3 6.1-23 16.7-4.7 7.4-8.2 16.7-9.2 23.9-9.4 2.9-16 4.9-16.1 5-4.7 1.5-4.9 1.6-5.5 6.1C12.4 55.3 0 151.4 0 151.4l104.1 18 45.1-11.2S130.8 33.7 130.7 32.9m-39.2-9.7c-2.4.7-5.1 1.6-8.1 2.5-.1-4.1-.6-9.9-2.5-14.9 6.3 1.2 9.3 8.2 10.6 12.4M78 27.4c-5.5 1.7-11.4 3.5-17.4 5.4 1.7-6.4 4.9-12.8 8.8-17 1.5-1.6 3.5-3.3 5.9-4.3 2.3 4.7 2.7 11.4 2.7 15.9M66.8 5.8c1.9 0 3.5.4 4.9 1.3-2.2 1.1-4.4 2.8-6.4 5-5.2 5.6-9.2 14.2-10.8 22.6-5 1.5-9.8 3-14.3 4.4 3-13.2 14-32.9 26.6-33.3&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#5e8e3e&quot; d=&quot;M129.2 31.5c-.6-.1-12.6-.2-12.6-.2s-10.1-9.8-11.1-10.8c-.4-.4-.9-.6-1.4-.6v149.5l45.1-11.2S130.8 33.8 130.7 32.9c-.2-.9-.9-1.3-1.5-1.4&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;m79.1 54.7-5.2 19.6s-5.8-2.7-12.8-2.2c-10.2.6-10.3 7-10.2 8.7.6 8.8 23.6 10.7 24.9 31.2 1 16.2-8.6 27.2-22.4 28.1-16.6 1-25.7-8.7-25.7-8.7l3.5-14.9s9.2 6.9 16.5 6.5c4.8-.3 6.5-4.2 6.3-7-.7-11.4-19.5-10.8-20.7-29.5-1-15.8 9.4-31.8 32.3-33.3 9-.8 13.5 1.5 13.5 1.5m131.2 41.8c-5.2-2.8-7.9-5.2-7.9-8.5 0-4.2 3.7-6.9 9.6-6.9 6.8 0 12.8 2.8 12.8 2.8l4.8-14.6s-4.4-3.4-17.3-3.4c-18 0-30.5 10.3-30.5 24.8 0 8.2 5.8 14.5 13.6 19 6.3 3.6 8.5 6.1 8.5 9.9 0 3.9-3.1 7-9 7-8.7 0-16.9-4.5-16.9-4.5l-5.1 14.6s7.6 5.1 20.3 5.1c18.5 0 31.8-9.1 31.8-25.5.1-8.9-6.6-15.2-14.7-19.8m73.8-30.8c-9.1 0-16.3 4.3-21.8 10.9l-.3-.1 7.9-41.4h-20.6l-20 105.3h20.6l6.9-36c2.7-13.6 9.7-22 16.3-22 4.6 0 6.4 3.1 6.4 7.6 0 2.8-.3 6.3-.9 9.1l-7.8 41.2h20.6l8.1-42.6c.9-4.5 1.5-9.9 1.5-13.4 0-11.5-6.2-18.6-16.9-18.6m63.5 0c-24.8 0-41.2 22.4-41.2 47.4 0 16 9.9 28.8 28.4 28.8 24.3 0 40.8-21.8 40.8-47.4-.1-14.7-8.8-28.8-28-28.8m-10.2 60.4c-7 0-10-6-10-13.4 0-11.8 6.1-31.1 17.3-31.1 7.3 0 9.7 6.3 9.7 12.4 0 12.7-6.1 32.1-17 32.1m90.8-60.4c-13.9 0-21.8 12.2-21.8 12.2h-.3l1.2-11.1h-18.2c-.9 7.5-2.5 18.8-4.2 27.3l-14.3 75.4h20.6l5.7-30.5h.4s4.2 2.7 12.1 2.7c24.2 0 40-24.8 40-49.9.1-13.7-6.1-26.1-21.2-26.1m-19.7 60.7c-5.4 0-8.5-3-8.5-3l3.4-19.3c2.4-12.8 9.1-21.4 16.3-21.4 6.3 0 8.2 5.8 8.2 11.4 0 13.3-7.9 32.3-19.4 32.3m70.4-90.2c-6.6 0-11.8 5.2-11.8 12 0 6.1 3.9 10.3 9.7 10.3h.3c6.4 0 12-4.3 12.1-12 0-6-4-10.3-10.3-10.3m-28.8 104.2h20.6l14-73h-20.8zm87-73.2h-14.3l.7-3.4c1.2-7 5.4-13.3 12.2-13.3 3.7 0 6.6 1 6.6 1l4-16.1s-3.6-1.8-11.2-1.8c-7.3 0-14.6 2.1-20.2 6.9-7 6-10.3 14.6-12 23.3l-.6 3.4h-9.6l-3 15.5h9.6l-10.9 57.7H509l10.9-57.7h14.2zm49.6.2s-12.9 32.5-18.7 50.2h-.3c-.4-5.7-5.1-50.2-5.1-50.2H541l12.4 67.1c.3 1.5.1 2.4-.4 3.4-2.4 4.6-6.4 9.1-11.2 12.4-3.9 2.8-8.2 4.6-11.7 5.8l5.7 17.5c4.2-.9 12.8-4.3 20.2-11.2 9.4-8.8 18.1-22.4 27-40.9l25.2-54.1z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:signalapp knip&quot;&gt;&lt;svg fill=&quot;none&quot; viewBox=&quot;0 0 160 160&quot;&gt;&lt;g fill=&quot;#3b45fd&quot;&gt;&lt;path d=&quot;M80 0c4.15 0 8.227.316 12.207.925L91.063 8.34A73 73 0 0 0 80 7.5a73 73 0 0 0-11.062.839L67.793.925A80.6 80.6 0 0 1 80 0m18.985 2.266-1.78 7.288a72 72 0 0 1 20.439 8.473l3.895-6.411a79.5 79.5 0 0 0-22.554-9.35m28.294 13.194-4.432 6.05a73 73 0 0 1 15.643 15.643l6.051-4.432a80.5 80.5 0 0 0-17.262-17.262m21.105 23.003-6.411 3.894a72 72 0 0 1 8.473 20.44l7.288-1.78a79.5 79.5 0 0 0-9.35-22.554m10.691 29.331-7.414 1.145c.553 3.607.839 7.3.839 11.062s-.286 7.456-.839 11.063l7.414 1.144A81 81 0 0 0 160 80c0-4.15-.316-8.227-.925-12.207m-17.102 49.852a72 72 0 0 0 8.473-20.44l7.288 1.78a79.5 79.5 0 0 1-9.35 22.554zm-3.483 5.202 6.051 4.432a80.5 80.5 0 0 1-17.262 17.262l-4.433-6.051a72.9 72.9 0 0 0 15.644-15.643m-20.846 19.126 3.894 6.411a79.5 79.5 0 0 1-22.554 9.35l-1.78-7.288a72 72 0 0 0 20.44-8.473m-26.582 9.688 1.145 7.414c-3.98.609-8.057.925-12.207.925s-8.227-.316-12.207-.925l1.144-7.413c3.605.552 7.3.838 11.063.838a73 73 0 0 0 11.062-.839m-28.267-1.213-1.78 7.286a79.4 79.4 0 0 1-17.278-6.406l-7.593 1.772-1.704-7.304 10.26-2.394 2.44 1.243a72 72 0 0 0 15.654 5.803m-34.684-3.175 1.704 7.304-13.015 3.036c-8.66 2.021-16.433-5.752-14.412-14.412l3.036-13.015 7.304 1.704-3.037 13.015c-.757 3.248 2.157 6.162 5.405 5.405zM14.204 125.56 6.9 123.856l1.772-7.593a79.4 79.4 0 0 1-6.406-17.279l7.286-1.78a72 72 0 0 0 5.803 15.655l1.243 2.441zM8.338 91.062.925 92.207A80.6 80.6 0 0 1 0 80c0-4.15.316-8.227.925-12.207l7.414 1.144A73 73 0 0 0 7.5 80c0 3.763.286 7.457.838 11.062m1.216-28.267-7.288-1.78a79.5 79.5 0 0 1 9.35-22.554l6.41 3.895a72 72 0 0 0-8.472 20.439M21.51 37.153l-6.05-4.432a80.5 80.5 0 0 1 17.26-17.262l4.433 6.05A73 73 0 0 0 21.51 37.154m20.846-19.127-3.894-6.412a79.5 79.5 0 0 1 22.554-9.349l1.78 7.288a72 72 0 0 0-20.44 8.473&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M145 80c0 35.899-29.101 65-65 65-11.387 0-22.09-2.928-31.396-8.072a4.14 4.14 0 0 0-2.94-.426l-28.913 6.747 6.747-28.914a4.14 4.14 0 0 0-.426-2.939C17.928 102.089 15 91.386 15 80c0-35.898 29.102-65 65-65 35.899 0 65 29.102 65 65&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:sourcegraph knip&quot;&gt;&lt;svg fill=&quot;none&quot; viewBox=&quot;0 0 164 23&quot;&gt;&lt;g clip-path=&quot;url(#sourcegraph_svg__aa)&quot;&gt;&lt;g fill=&quot;#f34e3f&quot; clip-path=&quot;url(#sourcegraph_svg__bb)&quot;&gt;&lt;path d=&quot;m8.473 6.007 2.549.68L9.286.199l-2.94.79 1.047 3.935c.14.528.554.943 1.08 1.083M4.165 19.222l5.56-5.55 2.023 7.56 2.94-.79-2.93-10.977L.783 6.539 0 9.494l7.553 2.02-5.536 5.54zm10.366-9.023.683 2.56a1.53 1.53 0 0 0 1.08 1.08l3.957 1.052.782-2.955zm2.337-7.991-2.53 2.527c-.279.28-.438.65-.449 1.047l-.04 1.602 1.482.052c-.02 0 .019 0 0 0a1.5 1.5 0 0 0 1.073-.445l2.612-2.615z&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;/g&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M35.862 10.131q-1.347-.565-3.37-.943-1.38-.288-2.069-.51T29.4 8.112q-.333-.344-.333-.942 0-.71.388-1.099.39-.388 1.058-.544.666-.153 1.668-.154 1.2 0 2.392.289 1.19.29 2.569.91l.489-2.753q-1.246-.6-2.615-.887a13.8 13.8 0 0 0-2.835-.29q-1.758 0-3.203.544-1.447.544-2.314 1.576-.868 1.03-.868 2.519 0 1.309.667 2.197.668.887 1.958 1.431t3.293.899q1.423.289 2.135.522.713.233 1.112.644t.401 1.187q0 .71-.456 1.12-.455.412-1.201.556-.746.143-1.79.143-1.447 0-3.17-.376-1.723-.377-2.97-1.02l-.29 2.73q1.201.688 2.881 1.042a17.3 17.3 0 0 0 3.593.354c1.275 0 2.327-.18 3.336-.543q1.512-.543 2.414-1.598.9-1.054.9-2.562 0-1.399-.7-2.352-.7-.954-2.045-1.52zM49.71 6.824q-1.535-.81-3.426-.81c-1.26 0-2.44.27-3.448.81a5.95 5.95 0 0 0-2.368 2.263q-.857 1.454-.857 3.274c0 1.82.281 2.278.846 3.24a6.03 6.03 0 0 0 2.368 2.275q1.523.833 3.459.833c1.29 0 2.403-.278 3.426-.833a6.1 6.1 0 0 0 2.392-2.286q.856-1.453.856-3.25c0-1.2-.285-2.3-.856-3.262a5.94 5.94 0 0 0-2.392-2.252zm-.2 7.467a3.36 3.36 0 0 1-1.313 1.32 3.8 3.8 0 0 1-1.891.477c-.696 0-1.372-.158-1.935-.476a3.5 3.5 0 0 1-1.334-1.332q-.49-.854-.49-1.964c0-1.11.164-1.384.49-1.93a3.5 3.5 0 0 1 1.334-1.288q.846-.465 1.913-.465t1.913.465a3.3 3.3 0 0 1 1.312 1.31q.468.844.467 1.953c-.001 1.109-.155 1.369-.467 1.93Zm13.834-.79a5 5 0 0 1-.19.436 3.8 3.8 0 0 1-1.323 1.51 3.37 3.37 0 0 1-1.89.554q-1.38 0-2.057-.744-.68-.743-.679-2.119v-6.88h-2.957v7.324q0 1.553.623 2.707.622 1.154 1.736 1.775 1.112.62 2.558.622 2.18 0 3.448-1.11a5 5 0 0 0 .734-.796v1.662h2.958V6.259h-2.958V13.5zm11.144-7.464q-2.09 0-3.136 1.375-.247.327-.445.728V6.259h-2.959v12.183h2.96v-5.015q0-2.041.878-3.272.879-1.232 2.39-1.232h.735q.222.022.401.022h.356L76 6.193a8 8 0 0 0-1.513-.155v-.001Zm6.329 3.028q.856-.453 1.947-.454.89 0 1.668.265.779.267 1.58.866l1.223-2.197a7.8 7.8 0 0 0-2.225-1.164q-1.135-.366-2.49-.366-1.803 0-3.293.788a5.9 5.9 0 0 0-2.358 2.24q-.868 1.455-.868 3.318 0 1.864.846 3.296a5.8 5.8 0 0 0 2.347 2.22q1.5.787 3.304.787 1.378 0 2.457-.344 1.08-.344 2.28-1.143l-1.18-2.152a7 7 0 0 1-1.613.81 5.1 5.1 0 0 1-1.657.278q-1.09 0-1.959-.444a3.3 3.3 0 0 1-1.367-1.298q-.501-.855-.501-2.008c0-.77.166-1.454.5-2.008a3.44 3.44 0 0 1 1.358-1.288v-.002ZM96.8 6.735q-1.359-.698-2.981-.698-1.937 0-3.415.81a5.66 5.66 0 0 0-2.281 2.251q-.8 1.444-.8 3.262c0 1.212.281 2.26.845 3.229q.845 1.454 2.38 2.275t3.448.82q1.335 0 2.38-.278a6.6 6.6 0 0 0 2.001-.92l-.756-2.42a5.5 5.5 0 0 1-1.647.788 6.4 6.4 0 0 1-1.823.278q-1.2.001-2.07-.433a3.05 3.05 0 0 1-1.334-1.276 3.6 3.6 0 0 1-.37-1.043h8.956q.156-.443.255-.943.101-.5.1-1.054 0-1.508-.767-2.73-.768-1.22-2.124-1.919l.002.001Zm-6.107 3.607a2.96 2.96 0 0 1 1.202-1.298q.79-.455 1.88-.455.978 0 1.69.387.712.39 1.045 1.188.194.467.23 1.066h-6.347q.101-.48.3-.888m20.231-2.419a4.57 4.57 0 0 0-1.846-1.431q-1.112-.477-2.626-.477-1.646 0-2.946.777a5.5 5.5 0 0 0-2.046 2.152q-.746 1.376-.746 3.084c0 1.14.249 2.106.746 2.985a5.5 5.5 0 0 0 2.069 2.086q1.323.766 2.97.766 1.469 0 2.569-.466a4.3 4.3 0 0 0 1.813-1.42v.577q0 1.642-1.058 2.595-1.056.954-2.924.955-1.225 0-2.38-.366a7.5 7.5 0 0 1-2.069-1.01l-1.156 2.087q1.2.822 2.702 1.253 1.502.434 3.236.433 3.115 0 4.872-1.664t1.757-4.638V6.259h-2.935v1.664zm-.501 5.98a3.2 3.2 0 0 1-1.301 1.243q-.825.434-1.913.433a3.65 3.65 0 0 1-1.813-.455 3.3 3.3 0 0 1-1.278-1.277 3.6 3.6 0 0 1-.467-1.819c0-.665.155-1.32.467-1.875a3.37 3.37 0 0 1 1.278-1.298 3.6 3.6 0 0 1 1.813-.466q1.09 0 1.913.433.82.433 1.301 1.253.478.822.478 1.908c0 .725-.159 1.38-.478 1.92m8.531-6.491q-.247.327-.445.728V6.259h-2.959v12.183h2.959v-5.015q0-2.041.879-3.272.878-1.231 2.391-1.232h.734q.222.022.401.022h.356l.333-2.752a8 8 0 0 0-1.513-.155q-2.09.001-3.136 1.376zm14.736-.055q-1.435-1.341-4.348-1.342-2.226 0-4.471.733l.355 2.596a8.7 8.7 0 0 1 1.802-.544 10.5 10.5 0 0 1 2.002-.19q1.558 0 2.346.6.79.6.79 1.775v.093a57 57 0 0 0-1.579-.117 37 37 0 0 0-2.181-.067q-2.402 0-3.559 1.088-1.156 1.087-1.156 2.796 0 1.131.512 2.019a3.5 3.5 0 0 0 1.479 1.386q.968.5 2.236.5c.845 0 1.572-.122 2.224-.366q.978-.365 1.579-.955a4.3 4.3 0 0 0 .445-.51v1.587h2.959v-7.256q0-2.485-1.435-3.828zm-2.947 8.388q-.733.41-1.846.41c-.742 0-1.368-.128-1.791-.388q-.634-.39-.634-1.143 0-.8.645-1.22.644-.422 2.181-.422.845 0 1.535.033.676.032 1.333.119a3.5 3.5 0 0 1-.343 1.5 2.55 2.55 0 0 1-1.08 1.11Zm16.16-8.91a5.7 5.7 0 0 0-2.992-.82q-1.268 0-2.357.433a5.4 5.4 0 0 0-1.891 1.253V6.26h-2.959v16h2.959v-5.216q.511.555 1.19.91a7 7 0 0 0 1.424.555q.745.2 1.614.2 1.668 0 3.025-.788t2.146-2.23.789-3.307c0-1.242-.263-2.304-.789-3.274a5.87 5.87 0 0 0-2.157-2.275zm-.445 7.445a3.3 3.3 0 0 1-1.267 1.299q-.811.465-1.836.466-1.09 0-1.934-.444a3.07 3.07 0 0 1-1.302-1.288q-.456-.841-.456-1.953c0-.741.155-1.406.467-1.954a3.35 3.35 0 0 1 1.302-1.287q.834-.466 1.923-.466 1.024 0 1.836.466.812.465 1.267 1.32.456.855.456 1.941c0 .725-.152 1.343-.456 1.898zm16.317-5.87a4.36 4.36 0 0 0-1.736-1.774q-1.112-.621-2.558-.622-2.18 0-3.448 1.11a5 5 0 0 0-.734.795V2.064h-2.959v16.378h2.959v-7.244q.083-.222.189-.435.478-.954 1.324-1.51a3.37 3.37 0 0 1 1.891-.555q1.38 0 2.056.744.679.744.679 2.12v6.879h2.959v-7.323q0-1.554-.624-2.707h.002Z&quot;&gt;&lt;/path&gt;&lt;defs&gt;&lt;clipPath id=&quot;sourcegraph_svg__aa&quot;&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M0 .199h21.034v21.034H0z&quot;&gt;&lt;/path&gt;&lt;/clipPath&gt;&lt;clipPath id=&quot;sourcegraph_svg__bb&quot;&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M0 .199h21.034v21.034H0z&quot;&gt;&lt;/path&gt;&lt;/clipPath&gt;&lt;/defs&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:statelyai knip&quot;&gt;&lt;svg fill=&quot;none&quot; viewBox=&quot;0 0 818 223&quot;&gt;&lt;path fill=&quot;currentColor&quot; fill-rule=&quot;evenodd&quot; d=&quot;M128.759 45.638c12.602 0 22.818-10.216 22.818-22.819S141.361 0 128.759 0 105.94 10.217 105.94 22.819c0 12.603 10.216 22.819 22.819 22.819m55.284 77.561v-.019L60.863 0c-17.822 17.823-17.722 46.619.101 64.442l39.199 39.199-.066.067 22.215 22.214c.807.807 1.341 1.921 1.341 3.152 0 1.265-.59 2.386-1.437 3.197l-25.91 25.91a4.44 4.44 0 0 1-6.278 0l-25.992-25.993a4.44 4.44 0 0 1 0-6.278c17.734-18.925 4.497-41.58-3.696-49.255l-5.795-5.795L2.6 122.805a8.88 8.88 0 0 0 0 12.555l84.257 84.257a8.876 8.876 0 0 0 12.554 0l84.077-84.077a8.4 8.4 0 0 0 2.987-6.426 8.4 8.4 0 0 0-2.432-5.915m116.6-18.979c-20.552-2.691-24.019-6.909-24.019-15.345 0-8.552 7.934-13.864 20.706-13.864 14.075 0 21.077 4.579 23.41 15.312l.072.332h11.859l-.061-.48c-2.016-15.886-14.545-24.635-35.28-24.635-19.13 0-33.014 10.228-33.014 24.321 0 17.686 16.455 22.317 34.234 24.686 18.518 2.603 24.164 6.447 24.164 16.454 0 9.39-9.542 16.205-22.69 16.205-20.702 0-24.914-9.122-26.382-18.979l-.053-.361h-12.731l.058.478c1.586 12.926 9.657 28.334 39.108 28.334 20.195 0 35.424-11.357 35.424-26.416 0-17.725-13.317-23.106-34.805-26.042m118.991-37.573h-72.125v11.295h29.484v77.627h13.158V77.942h29.483zm27.748 53.349L463.5 77.088l16.117 42.908zm8.327-53.349-35.206 88.922h12.519l9.78-25.374h41.255l9.922 25.374h13.08l-34.633-88.922zm53.179 11.295h29.484v77.627h13.159V77.942h29.482V66.647h-72.125zm104.481 38.557h24.97v-11.174h-24.97V77.942h49.202V66.647H600.21v88.922h62.361v-11.295h-49.202zm83.714-49.852h-13.16v88.922h59.51v-11.295h-46.35zm107.174 0-25.294 40.544-26.279-40.544h-14.907l34.259 50.2v38.722h13.158v-38.605l32.391-50.317z&quot; clip-rule=&quot;evenodd&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:storybookjs knip&quot;&gt;&lt;svg fill=&quot;none&quot; viewBox=&quot;0 0 100 20&quot;&gt;&lt;path fill=&quot;currentColor&quot; fill-rule=&quot;evenodd&quot; d=&quot;M26.64 15.831a8.8 8.8 0 0 1-2.464-.344q-1.184-.343-1.968-.952l.8-1.776q1.633 1.137 3.664 1.136 1.056 0 1.624-.344t.568-.952q0-.543-.52-.848-.52-.303-1.848-.592-1.488-.303-2.376-.736-.888-.431-1.296-1.064-.408-.63-.408-1.56 0-1.023.568-1.824.569-.8 1.592-1.256t2.368-.456q1.2 0 2.312.352 1.111.353 1.768.944l-.8 1.776Q28.672 6.2 26.96 6.2q-.976 0-1.536.376t-.56 1.032q0 .384.216.632t.72.44 1.432.4q2.175.48 3.128 1.232.952.753.952 2.08 0 1.6-1.232 2.52t-3.44.92m10.464-1.792q.368 0 .768-.048l-.128 1.76a7 7 0 0 1-.928.064q-1.792 0-2.616-.784-.825-.783-.824-2.384V9.64h-1.488V7.831h1.488V5.527h2.416v2.304h1.968V9.64h-1.968v2.992q0 1.408 1.312 1.408m5.616 1.776q-1.248 0-2.192-.504a3.53 3.53 0 0 1-1.456-1.424q-.512-.92-.512-2.168t.512-2.168a3.5 3.5 0 0 1 1.456-1.416q.944-.495 2.192-.496 1.248 0 2.192.496.945.497 1.456 1.416.512.92.512 2.168t-.512 2.168a3.53 3.53 0 0 1-1.456 1.424q-.944.504-2.192.504m0-1.84q1.76 0 1.76-2.256 0-1.135-.456-1.696t-1.304-.56q-1.76 0-1.76 2.256t1.76 2.256m10.848-4.351-1.36.144q-1.007.096-1.424.567-.416.473-.416 1.256v4.097h-2.416V7.832h2.32V9.16q.592-1.36 2.448-1.488l.704-.048zm7.02-1.777h2.368l-4.736 10.72h-2.448l1.504-3.312-3.232-7.408h2.512l1.984 4.992zm7.968-.208q1.024 0 1.808.496t1.224 1.416.44 2.137q0 1.215-.44 2.151t-1.232 1.457a3.2 3.2 0 0 1-1.8.52 3.1 3.1 0 0 1-1.472-.344 2.45 2.45 0 0 1-1.008-.952v1.168h-2.384V4.408h2.416v4.48a2.4 2.4 0 0 1 1-.92 3.16 3.16 0 0 1 1.448-.329m-.704 6.337q.849 0 1.312-.6.465-.6.464-1.688 0-1.073-.464-1.64-.464-.57-1.312-.569-.847 0-1.312.585-.465.583-.464 1.656 0 1.087.464 1.672.465.584 1.312.584m9.424 1.84q-1.248 0-2.192-.505a3.54 3.54 0 0 1-1.456-1.424q-.512-.92-.512-2.168t.512-2.168a3.5 3.5 0 0 1 1.456-1.416q.944-.495 2.192-.496 1.248 0 2.192.496.945.497 1.456 1.416.512.92.512 2.168t-.512 2.168a3.54 3.54 0 0 1-1.456 1.424q-.945.504-2.192.504m0-1.84q1.76 0 1.76-2.257 0-1.135-.456-1.696t-1.304-.56q-1.76 0-1.76 2.256t1.76 2.256m9.008 1.84q-1.248 0-2.192-.505a3.53 3.53 0 0 1-1.456-1.424q-.512-.92-.512-2.168t.512-2.168a3.5 3.5 0 0 1 1.456-1.416q.945-.495 2.192-.496 1.248 0 2.192.496.945.497 1.456 1.416.512.92.512 2.168t-.512 2.168a3.53 3.53 0 0 1-1.456 1.424q-.944.504-2.192.504m0-1.84q1.76 0 1.76-2.257 0-1.135-.456-1.696t-1.304-.56q-1.76 0-1.76 2.256t1.76 2.256M100 15.686h-2.96l-3.008-3.503v3.504h-2.416V4.408h2.416v6.783l2.896-3.344h2.88l-3.296 3.744z&quot; clip-rule=&quot;evenodd&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#ff4785&quot; d=&quot;M.62 18.43 0 1.92A1.006 1.006 0 0 1 .944.88l14.04-.878a1.005 1.005 0 0 1 1.069 1.004v17.989a1.006 1.006 0 0 1-1.051 1.004L1.58 19.396a1.006 1.006 0 0 1-.96-.967&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#fff&quot; fill-rule=&quot;evenodd&quot; d=&quot;m13.88.071-1.932.12-.094 2.267a.15.15 0 0 0 .24.126l.88-.668.744.586a.15.15 0 0 0 .243-.123zm-1.504 7.59c-.353.275-2.989.462-2.989.071.056-1.493-.612-1.558-.984-1.558-.352 0-.946.106-.946.906 0 .815.868 1.275 1.887 1.815 1.447.767 3.2 1.696 3.2 4.032 0 2.24-1.82 3.476-4.14 3.476-2.395 0-4.488-.969-4.252-4.328.093-.394 3.138-.3 3.138 0-.038 1.386.278 1.794 1.076 1.794.613 0 .891-.338.891-.906 0-.861-.904-1.369-1.945-1.953-1.409-.791-3.067-1.722-3.067-3.859 0-2.132 1.467-3.554 4.084-3.554 2.618 0 4.047 1.4 4.047 4.064&quot; clip-rule=&quot;evenodd&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:supabase knip&quot;&gt;&lt;svg width=&quot;581&quot; height=&quot;113&quot; fill=&quot;none&quot; viewBox=&quot;0 0 581 113&quot;&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M151.397 66.76c.599 5.602 5.694 15.204 20.48 15.204 12.887 0 19.082-8.202 19.082-16.203 0-7.202-4.896-13.103-14.586-15.104l-6.994-1.5c-2.697-.5-4.495-2-4.495-4.401 0-2.8 2.797-4.901 6.294-4.901 5.594 0 7.692 3.7 8.092 6.601l11.089-2.5c-.599-5.301-5.295-14.203-19.281-14.203-10.59 0-18.382 7.301-18.382 16.103 0 6.902 4.295 12.603 13.786 14.703l6.494 1.5c3.796.8 5.295 2.602 5.295 4.802 0 2.6-2.098 4.901-6.494 4.901-5.794 0-8.692-3.6-8.991-7.502zm82.024 13.704h12.688c-.2-1.7-.5-5.101-.5-8.902v-40.31h-13.288V59.86c0 5.702-3.396 9.702-9.29 9.702-6.194 0-8.992-4.4-8.992-9.902V31.253h-13.287V62.36c0 10.702 6.793 19.404 18.682 19.404 5.194 0 10.891-2 13.588-6.601 0 2 .199 4.3.399 5.3m39.655 19.005V75.663c2.397 3.3 7.393 6.001 14.187 6.001 13.886 0 23.176-11.002 23.176-25.906 0-14.603-8.291-25.605-22.677-25.605-7.392 0-12.887 3.3-15.085 7.101v-6.001H259.79v68.215zm24.276-43.61c0 8.803-5.394 13.904-12.188 13.904-6.792 0-12.287-5.201-12.287-13.904 0-8.701 5.495-13.803 12.287-13.803 6.794 0 12.188 5.102 12.188 13.804m20.612 11.201c0 7.703 6.393 14.804 16.884 14.804 7.291 0 11.987-3.4 14.484-7.302 0 1.901.2 4.602.5 5.902h12.188c-.3-1.7-.598-5.201-.598-7.802V48.457c0-9.903-5.795-18.704-21.379-18.704-13.188 0-20.282 8.501-21.08 16.203l11.788 2.5c.4-4.3 3.597-8.001 9.39-8.001 5.596 0 8.293 2.9 8.293 6.401 0 1.7-.898 3.101-3.696 3.501l-12.088 1.8c-8.192 1.2-14.686 6.102-14.686 14.904m19.68 4.902c-4.295 0-6.394-2.8-6.394-5.701 0-3.801 2.697-5.702 6.095-6.202l11.089-1.7v2.2c0 8.703-5.195 11.403-10.79 11.403m50.059 8.501v-6.001c2.596 4.2 7.791 7.201 14.585 7.201 13.988 0 23.179-11.102 23.179-26.006 0-14.603-8.293-25.705-22.679-25.705-7.294 0-12.688 3.2-14.886 6.701V8.048h-13.087v72.416zm24.475-24.706c0 9.002-5.394 14.004-12.188 14.004-6.693 0-12.287-5.101-12.287-14.004 0-9.002 5.594-13.903 12.287-13.903 6.794 0 12.188 4.901 12.188 13.903M432.99 67.06c0 7.703 6.393 14.804 16.883 14.804 7.292 0 11.989-3.4 14.485-7.302 0 1.901.201 4.602.5 5.902h12.188c-.298-1.7-.598-5.201-.598-7.802V48.457c0-9.903-5.795-18.704-21.38-18.704-13.187 0-20.28 8.501-21.079 16.203l11.787 2.5c.401-4.3 3.598-8.001 9.391-8.001 5.596 0 8.293 2.9 8.293 6.401 0 1.7-.899 3.101-3.697 3.501l-12.087 1.8c-8.192 1.2-14.686 6.102-14.686 14.904m19.681 4.902c-4.296 0-6.395-2.8-6.395-5.701 0-3.801 2.697-5.702 6.095-6.202l11.089-1.7v2.2c0 8.703-5.195 11.403-10.789 11.403m32.974-5.203c.598 5.602 5.694 15.204 20.479 15.204 12.888 0 19.081-8.202 19.081-16.203 0-7.202-4.894-13.103-14.585-15.104l-6.994-1.5c-2.697-.5-4.494-2-4.494-4.401 0-2.8 2.796-4.901 6.293-4.901 5.596 0 7.693 3.7 8.094 6.601l11.088-2.5c-.6-5.301-5.295-14.203-19.281-14.203-10.591 0-18.382 7.301-18.382 16.103 0 6.902 4.294 12.603 13.786 14.703l6.494 1.5c3.797.8 5.295 2.602 5.295 4.802 0 2.6-2.098 4.901-6.494 4.901-5.795 0-8.691-3.6-8.991-7.502zm59.74-16.503c.3-4.5 4.097-9.702 10.99-9.702 7.592 0 10.79 4.801 10.99 9.702zm23.279 12.803c-1.599 4.4-4.996 7.502-11.19 7.502-6.594 0-12.089-4.701-12.387-11.203h35.165c0-.2.199-2.2.199-4.1 0-15.804-9.09-25.506-24.276-25.506-12.587 0-24.177 10.202-24.177 25.905 0 16.604 11.888 26.306 25.376 26.306 12.088 0 19.881-7.101 22.379-15.603z&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;url(#supabase_svg__supabase-paint0)&quot; d=&quot;M63.708 110.284c-2.86 3.601-8.658 1.628-8.727-2.97l-1.007-67.251h45.22c8.19 0 12.758 9.46 7.665 15.874z&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;url(#supabase_svg__supabase-paint1)&quot; fill-opacity=&quot;0.2&quot; d=&quot;M63.708 110.284c-2.86 3.601-8.658 1.628-8.727-2.97l-1.007-67.251h45.22c8.19 0 12.758 9.46 7.665 15.874z&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#3ecf8e&quot; d=&quot;M45.317 2.071c2.86-3.601 8.657-1.628 8.726 2.97l.442 67.251H9.83c-8.19 0-12.759-9.46-7.665-15.875z&quot;&gt;&lt;/path&gt;&lt;defs&gt;&lt;linearGradient id=&quot;supabase_svg__supabase-paint0&quot; x1=&quot;53.974&quot; x2=&quot;94.163&quot; y1=&quot;54.974&quot; y2=&quot;71.829&quot; gradientUnits=&quot;userSpaceOnUse&quot;&gt;&lt;stop stop-color=&quot;#249361&quot;&gt;&lt;/stop&gt;&lt;stop offset=&quot;1&quot; stop-color=&quot;#3ecf8e&quot;&gt;&lt;/stop&gt;&lt;/linearGradient&gt;&lt;linearGradient id=&quot;supabase_svg__supabase-paint1&quot; x1=&quot;36.156&quot; x2=&quot;54.484&quot; y1=&quot;30.578&quot; y2=&quot;65.081&quot; gradientUnits=&quot;userSpaceOnUse&quot;&gt;&lt;stop&gt;&lt;/stop&gt;&lt;stop offset=&quot;1&quot; stop-opacity=&quot;0&quot;&gt;&lt;/stop&gt;&lt;/linearGradient&gt;&lt;/defs&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:sveltejs knip&quot;&gt;&lt;svg viewBox=&quot;0 0 634.6 177.4&quot;&gt;&lt;path d=&quot;M138.2 23.5c7.9 11.1 11 24.8 8.6 38.2-1.1 6.3-3.6 12.3-7.1 17.7 5.2 9.8 6.9 21.1 4.9 32-2.4 13.1-10.1 24.6-21.4 31.7l-41.3 26.3c-23.5 15-56.1 8-72.5-15.6-7.9-10.9-11-24.7-8.6-38.1 1.1-6.3 3.6-12.3 7.1-17.7C2.7 88.2 1 76.9 3 66c2.4-13.1 10.1-24.7 21.4-31.7L65.7 7.9c23.5-15 56-8 72.5 15.6&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M61.6 156.2c3-.8 5.8-2 8.4-3.7l41.3-26.3c6.8-4.3 11.5-11.2 12.9-19.1 1.4-8-.4-16.3-5.2-23-7.8-11.3-21.9-16.5-35.2-13.1-3 .8-5.8 2-8.4 3.7l-15.8 10c-.8.5-1.6.9-2.5 1.1-4 1-8.3-.5-10.6-3.9-1.4-2-2-4.5-1.6-6.9s1.8-4.5 3.9-5.7L90.1 43c.8-.5 1.6-.9 2.5-1.1 4-1 8.3.5 10.6 3.9 1.3 1.8 1.9 4 1.7 6.1v1.5c-.1 0 1.4.5 1.4.5 5.8 1.8 11.3 4.5 16.2 8.1l2.1 1.6.8-2.4c.4-1.3.7-2.6 1-3.9 1.4-8-.4-16.3-5.2-23C113.4 23 99.3 17.8 86 21.2c-3 .8-5.8 2-8.4 3.7L36.3 51.2c-6.8 4.3-11.5 11.2-12.9 19.1-1.4 8 .4 16.3 5.2 23 7.8 11.3 21.9 16.5 35.2 13.1 3-.8 5.8-2 8.4-3.7L88 92.6c.8-.5 1.6-.9 2.5-1.1 4-1 8.3.5 10.6 3.9 1.4 2 2 4.5 1.6 6.9s-1.8 4.5-3.9 5.8l-41.3 26.3c-.8.5-1.6.9-2.5 1.1-4 1-8.3-.5-10.6-3.9-1.3-1.8-1.9-4-1.7-6.1V124c.1 0-1.4-.5-1.4-.5-5.8-1.8-11.3-4.5-16.2-8.1l-2.1-1.6-.8 2.4c-.4 1.3-.7 2.6-1 3.9-1.4 8 .4 16.3 5.2 23 7.8 11.3 21.9 16.5 35.2 13.1&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M242 127.9c-6.2.2-12.3-1.6-17.4-4.9-4.8-3.2-8.4-8-10.2-13.5l10.6-3.9c1.5 3.4 3.9 6.3 6.9 8.4 3.1 2.1 6.8 3.2 10.5 3.1 3.6.2 7.1-.9 10-3 2.5-2.1 3.9-5.4 3.7-8.7 0-1.5-.3-3-1-4.4-.6-1.2-1.4-2.3-2.3-3.3-1.2-1.1-2.5-2-4-2.7q-2.7-1.35-4.5-2.1c-1.2-.5-2.9-1.1-5.3-1.9-2.9-1-5.1-1.8-6.5-2.4-2-.8-3.9-1.8-5.7-2.9-2-1-3.8-2.4-5.3-4-1.3-1.6-2.4-3.3-3.2-5.3-3.1-7.5-1-16.1 5.1-21.3q6.45-5.7 17.7-5.7c6.2 0 11.3 1.4 15.3 4.1 3.9 2.6 6.7 6.5 8.1 10.9l-10.4 3.5c-1-2.3-2.8-4.3-5-5.6-2.7-1.5-5.7-2.2-8.8-2.1-3-.2-6 .7-8.5 2.4-2.1 1.6-3.2 4.1-3.1 6.7 0 2 .9 3.9 2.4 5.2 1.4 1.4 3.1 2.6 5 3.4 1.7.7 4.4 1.7 7.9 2.9q3.3 1.2 4.8 1.8c1 .4 2.6 1.1 4.6 2 1.6.7 3.2 1.6 4.7 2.5 1.3 1 2.6 2 3.8 3.1 1.3 1.1 2.4 2.5 3.3 4 .8 1.5 1.5 3.2 1.9 4.9.6 2 .8 4.1.8 6.1 0 7.1-2.4 12.6-7.3 16.6-4.8 4-11.1 6-18.6 6Zm69.4-1.3-26-75.8h12.1l17.2 52.9c1 2.8 1.7 5.7 2.4 8.7q.9-4.35 2.4-8.7l17-52.9h12l-25.9 75.8h-11.3Zm60.2 0V50.8h47v10.6h-35.8v20.8h23.1v10.6h-23.1V116h38.1v10.6h-49.4Zm78.1 0V50.8H461v65h37.1v10.8h-48.3Zm90.8-65v65h-11.3v-65h-21.5V50.8h54.2v10.8h-21.5Zm44.7 65V50.8h47v10.6h-35.8v20.8h23.1v10.6h-23.1V116h38.1v10.6h-49.4Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:tanstack knip&quot;&gt;&lt;svg fill=&quot;currentColor&quot; viewBox=&quot;0 0 321.33 50&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M19.03 0c13.76 0 19.03 8.54 19.03 25s-5.27 25-19.03 25S0 41.46 0 25 5.27 0 19.03 0m6.29 36.42c-1.79 0-2.76.49-3.55.88-.68.34-1.21.61-2.38.61s-1.71-.27-2.38-.61c-.78-.39-1.76-.88-3.55-.88s-2.76.49-3.55.88c-.68.34-1.21.61-2.38.61v2.6c1.79 0 2.76-.49 3.55-.88.68-.34 1.21-.61 2.38-.61s1.71.27 2.38.61c.78.39 1.76.88 3.55.88s2.76-.49 3.55-.88c.68-.34 1.21-.61 2.38-.61s1.71.27 2.38.61c.78.39 1.76.88 3.55.88v-2.6c-1.17 0-1.71-.27-2.38-.61-.78-.39-1.76-.88-3.55-.88m.85-26.11c1.35-1.22 0-3.43-1.69-2.76-.93.37-1.81.91-2.59 1.62-1.23 1.11-2.05 2.52-2.5 4.04a8.6 8.6 0 0 0-5.1-5.66c-1.69-.67-3.04 1.54-1.69 2.76l4.95 4.49c-1.62-1.1-3.56-1.75-5.67-1.75-1.15 0-2.25.19-3.28.54-1.73.59-1.25 3.19.57 3.19h6.91c-1.52.29-2.97.97-4.18 2.06-.78.7-1.4 1.53-1.87 2.43-.84 1.61 1.22 3.18 2.57 1.97l5.57-5.04-.42 13.87c0 .17-.1.33-.22.46-.18-.08-.35-.16-.53-.26-.78-.39-1.76-.88-3.55-.88s-2.76.49-3.55.88c-.68.34-1.21.61-2.38.61v2.6c1.79 0 2.76-.49 3.55-.88.68-.34 1.21-.61 2.38-.61s1.71.27 2.38.61c.78.39 1.76.88 3.55.88s2.76-.49 3.55-.88c.68-.34 1.21-.61 2.38-.61s1.71.27 2.38.61c.78.39 1.76.88 3.55.88v-2.6c-1.17 0-1.71-.27-2.38-.61-.78-.4-1.76-.89-3.55-.89s-2.76.49-3.55.88c-.2.1-.39.2-.59.28a.7.7 0 0 1-.25-.48l-.42-13.94 5.65 5.12c1.35 1.22 3.4-.35 2.57-1.97a8.5 8.5 0 0 0-1.87-2.43c-1.21-1.1-2.65-1.77-4.18-2.06h6.91c1.83 0 2.3-2.6.57-3.19-1.03-.35-2.13-.54-3.28-.54-2.1 0-4.04.65-5.67 1.75l4.95-4.49Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M151.71 43.25h-12.45c-.67 0-1.28-.42-1.53-1.04l-2.55-6.55c-.65-1.7-3.15-1.22-3.17.58s-.02 3.53-.02 5.37c0 .9-.74 1.64-1.64 1.64h-10.47c-.92 0-1.64-.72-1.64-1.64V8.34c0-.9.72-1.64 1.64-1.64h12.43c.69-.02 1.28.41 1.53 1.04l2.61 6.84c.65 1.7 3.15 1.25 3.17-.57l.07-5.69c0-.9.74-1.63 1.64-1.63h10.4c.9 0 1.64.74 1.64 1.66v33.26c0 .92-.74 1.64-1.64 1.64l-.02-.02Zm-53.46-5.9-3.85-.04c-.81 0-1.5.58-1.64 1.38l-.53 3.18c-.12.79-.81 1.38-1.62 1.38H79.54a1.64 1.64 0 0 1-1.6-2.03l8.38-33.28c.18-.72.85-1.24 1.6-1.24h16.76c.76.02 1.41.53 1.58 1.27l8.4 33.25c.26 1.04-.51 2.05-1.58 2.05l-11.07.04c-.81 0-1.5-.58-1.62-1.38l-.53-3.16a1.63 1.63 0 0 0-1.6-1.38v-.04Zm-.31-9.95-.85-4.19c-.18-.88-1.44-.88-1.62 0l-.76 4.2c-.19 1.02.62 1.98 1.65 1.94 1.02-.04 1.76-.97 1.57-1.98v.02ZM69.77 43.23l-10.49.04c-.92 0-1.65-.74-1.65-1.64V19.87c0-.9-.72-1.64-1.64-1.64H50.6c-.9 0-1.64-.76-1.64-1.66v-8.2c0-.9.74-1.64 1.65-1.64h27.8c.9 0 1.64.74 1.64 1.64v8.2c0 .9-.72 1.64-1.64 1.64h-5.39c-.9 0-1.64.74-1.64 1.66v21.75c0 .9-.74 1.64-1.64 1.64l.02-.02ZM311.9 24.92l9.21 15.85c.63 1.1-.14 2.47-1.41 2.47l-10.72.05c-.6 0-1.14-.32-1.44-.83l-4.07-7.21c-.6-1.08-2.24-.65-2.25.58l-.1 5.81c0 .9-.74 1.63-1.64 1.63h-10.47c-.92 0-1.64-.72-1.64-1.64V8.37c0-.9.72-1.64 1.64-1.64h10.49c.9 0 1.62.71 1.64 1.59l.11 4.26c.04 1.27 1.74 1.64 2.29.49l2.59-5.39c.28-.57.85-.94 1.48-.94h10.88c1.27-.02 2.06 1.34 1.43 2.44l-7.97 14.1c-.28.51-.28 1.13 0 1.64h-.02Zm-73.5 12.46-3.85-.04c-.81 0-1.5.58-1.64 1.38l-.53 3.18c-.12.79-.81 1.38-1.62 1.38h-11.09a1.64 1.64 0 0 1-1.6-2.03l8.38-33.26c.18-.72.85-1.24 1.58-1.24h16.78c.76-.02 1.41.49 1.6 1.22l8.4 33.26c.26 1.04-.51 2.05-1.58 2.05h-11.07c-.81.04-1.5-.55-1.62-1.34l-.53-3.16a1.63 1.63 0 0 0-1.6-1.38v-.02Zm-.33-9.95-.74-3.67c-.19-.99-1.62-.99-1.81.02l-.67 3.69c-.19 1.02.62 1.98 1.65 1.94 1.02-.04 1.76-.97 1.57-1.98m-48.65 5.92c-.99 11.71-17.78 12.35-29.17 8.2a1.72 1.72 0 0 1-1.11-1.61v-9.57c0-1.31 1.37-2.14 2.52-1.5 3.68 2.01 7.39 3.44 11.6 4.29 0 0 1.39.11 1.9-.79s-.46-1.25-.88-1.61c-8.01-3.48-17.32-5.53-16.49-14.59.97-10.48 16.83-11.75 27.62-8.39.7.21 1.18.9 1.18 1.64v9.38c0 1.24-1.27 2.07-2.41 1.57-5.16-2.28-12.16-4.29-11.81-2.95.9 3.39 18.06 3.76 17.04 15.9l.02.04Zm81.9-3.97c2.8 2.33 6.25 2.44 9.22.94 1.41-.71 3.06.25 3.06 1.82l.05 8.37c0 .87-.51 1.68-1.34 1.96-8.08 2.86-17.55 1.24-23.25-5.81s-5.42-16.91.23-23.62 15.03-8.27 23.01-5.55c.83.28 1.36 1.1 1.36 1.98l-.05 8.37c0 1.57-1.65 2.53-3.06 1.84-2.94-1.47-6.28-1.47-9.12.79-2.48 1.98-2.75 6.69-.11 8.9ZM210.7 43.24l-10.49.04c-.92 0-1.65-.74-1.65-1.64V19.88c0-.9-.72-1.64-1.64-1.64h-5.39c-.9 0-1.64-.76-1.64-1.66v-8.2c0-.9.74-1.64 1.65-1.64h27.79c.9 0 1.64.74 1.64 1.64v8.2c0 .9-.72 1.64-1.64 1.64h-5.39c-.9 0-1.64.74-1.64 1.66v21.75c0 .9-.72 1.64-1.64 1.64l.02-.02Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:typescript-eslint knip&quot;&gt;&lt;svg viewBox=&quot;0 -22 504 482&quot;&gt;&lt;path fill=&quot;#fff&quot; d=&quot;m250.346 32.177 179.98 101.641 4.048 174.839s-177.045 135.591-176.767 95.308C57.885 343.682 75.022 236.382 75.022 336.382l1.354-199.576 123.97-104.629Z&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#374fbe&quot; d=&quot;M489.195 208.251 379.82 17.971c-3.973-6.88-11.312-11.955-19.256-11.955H141.811c-7.946 0-15.287 5.075-19.26 11.955L13.176 207.83c-3.973 6.882-3.973 15.567 0 22.45L122.551 419c3.973 6.88 11.314 10.398 19.26 10.398h218.751c7.944 0 15.285-3.412 19.256-10.294l109.375-189.029c3.977-6.878 3.977-14.945.002-21.825m-90.568 91.5c0 2.797-1.684 5.385-4.11 6.786l-139.319 80.38a7.93 7.93 0 0 1-7.881 0l-139.428-80.38c-2.423-1.401-4.118-3.987-4.118-6.786V138.988c0-2.799 1.67-5.385 4.096-6.785l139.313-80.38a7.91 7.91 0 0 1 7.878 0l139.437 80.38c2.425 1.4 4.132 3.986 4.132 6.785z&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#374fbe&quot; d=&quot;M163.217 179.207v10.155h32.394v92.2h22.988v-92.2h32.394v-9.968c0-5.606 0-10.154-.249-10.279 0-.187-19.748-.249-43.732-.249l-43.609.187v10.217zm145.588-10.403c6.355 1.495 11.214 4.361 15.575 8.908 2.305 2.492 5.731 6.853 5.98 7.974 0 .374-10.777 7.663-17.319 11.712-.249.187-1.245-.872-2.242-2.492-3.24-4.61-6.541-6.603-11.712-6.977-7.476-.498-12.46 3.426-12.46 9.968 0 1.993.374 3.115 1.122 4.734 1.682 3.427 4.797 5.482 14.453 9.719 17.817 7.662 25.542 12.708 30.214 19.935 5.295 8.098 6.479 20.807 2.928 30.339-3.987 10.403-13.705 17.443-27.598 19.748-4.361.747-14.328.623-19-.187-9.968-1.869-19.499-6.853-25.355-13.269-2.305-2.492-6.729-9.158-6.479-9.594l2.367-1.495 9.345-5.42 7.039-4.112 1.62 2.181c2.056 3.239 6.666 7.6 9.344 9.095 8.099 4.174 18.939 3.613 24.296-1.246 2.305-2.118 3.302-4.361 3.302-7.476 0-2.865-.436-4.174-1.869-6.354-1.993-2.741-5.98-4.984-17.194-9.968-12.895-5.482-18.378-8.97-23.486-14.328-2.928-3.239-5.607-8.285-6.853-12.459-.934-3.614-1.246-12.46-.373-16.011 2.678-12.459 12.085-21.181 25.541-23.673 4.361-.872 14.64-.498 18.939.623z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=pullrequests&amp;#x26;q=org:vercel knip&quot;&gt;&lt;svg fill=&quot;none&quot; viewBox=&quot;0 0 262 52&quot;&gt;&lt;path fill=&quot;currentColor&quot; fill-rule=&quot;evenodd&quot; d=&quot;M59.8 52 29.9 0 0 52zm30.157-2.367 24.988-47.27h-10.808L86.9 36.694 69.663 2.362H58.855l24.987 47.27zm170.291-47.27v47.27H251.3V2.363zM210.441 31.99q0-5.526 2.306-9.72t6.432-6.458q4.124-2.264 9.647-2.264 4.893 0 8.808 2.13 3.914 2.132 6.221 6.326t2.377 10.252v2.064h-26.354q.279 4.395 2.586 6.924 2.377 2.463 6.362 2.464a8.44 8.44 0 0 0 4.613-1.332 8.3 8.3 0 0 0 3.146-3.595l9.158.666q-1.678 4.992-6.292 7.989t-10.625 2.996q-5.523 0-9.647-2.264t-6.432-6.458q-2.306-4.194-2.306-9.72m26.564-3.329q-.49-4.328-2.727-6.324-2.237-2.064-5.452-2.064-3.705 0-6.012 2.197t-2.866 6.191zm-41.66-6.324q2.237 1.797 2.796 4.993l9.228-.466q-.49-4.062-2.866-7.057-2.377-2.997-6.152-4.594-3.705-1.665-8.179-1.665-5.522 0-9.647 2.264-4.124 2.264-6.431 6.458t-2.307 9.72 2.307 9.72 6.431 6.458q4.125 2.265 9.647 2.264 4.614 0 8.389-1.665 3.774-1.731 6.151-4.86t2.866-7.323l-9.297-.4q-.49 3.529-2.726 5.46-2.238 1.863-5.383 1.864-4.334 0-6.711-2.996t-2.377-8.522 2.377-8.522 6.711-2.996q3.006 0 5.173 1.864m-45.392-7.991h8.327l.24 6.791q.887-2.883 2.466-4.478 2.29-2.313 6.383-2.313h3.4v7.269H167.3q-2.914 0-4.788.793a5.78 5.78 0 0 0-2.775 2.51q-.903 1.719-.902 4.362v20.353h-8.882zm-38.407 7.924q-2.307 4.194-2.307 9.72t2.307 9.72 6.431 6.458q4.125 2.265 9.647 2.264 6.012 0 10.626-2.996t6.291-7.99l-9.157-.665a8.3 8.3 0 0 1-3.146 3.595 8.44 8.44 0 0 1-4.614 1.332q-3.984 0-6.361-2.464-2.307-2.529-2.587-6.924h26.354v-2.064q-.069-6.058-2.376-10.252t-6.222-6.325-8.808-2.13q-5.523 0-9.647 2.263t-6.431 6.458m21.531.067q2.237 1.997 2.726 6.324h-17.057q.56-3.995 2.866-6.191 2.307-2.197 6.012-2.197 3.215 0 5.453 2.064&quot; clip-rule=&quot;evenodd&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;/section&gt;
&lt;p&gt;And so many more on and off the radar. Very, very cool!&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;sponsors&quot;&gt;Sponsors&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Last but not least, eternal gratitude for all the sponsors that have been
supporting me along the way. THANK YOU, THANK YOU, THANK YOU!&lt;/p&gt;
&lt;p&gt;And eh.. gotta take my chances: how about &lt;a href=&quot;https://knip.dev/sponsors&quot;&gt;joining this awesome club&lt;/a&gt;?&lt;/p&gt;
&lt;section&gt;&lt;div&gt;&lt;a href=&quot;https://vercel.com&quot;&gt;&lt;svg viewBox=&quot;0 0 262 52&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; clip-rule=&quot;evenodd&quot; d=&quot;M59.8 52L29.9 0L0 52H59.8ZM89.9574 49.6328L114.945 2.36365H104.137L86.8999 36.6921L69.6628 2.36365H58.8545L83.8423 49.6328H89.9574ZM260.248 2.36365V49.6329H251.3V2.36365H260.248ZM210.441 31.99C210.441 28.3062 211.21 25.0661 212.747 22.2699C214.285 19.4737 216.429 17.321 219.179 15.812C221.928 14.3029 225.144 13.5484 228.826 13.5484C232.088 13.5484 235.024 14.2585 237.634 15.6788C240.244 17.0991 242.317 19.2074 243.855 22.0036C245.393 24.7998 246.185 28.2174 246.232 32.2564V34.3202H219.878C220.064 37.2496 220.926 39.5576 222.464 41.2442C224.049 42.8864 226.169 43.7075 228.826 43.7075C230.503 43.7075 232.041 43.2637 233.439 42.376C234.838 41.4883 235.886 40.2899 236.585 38.7808L245.743 39.4466C244.624 42.7754 242.527 45.4385 239.451 47.4358C236.375 49.4331 232.834 50.4317 228.826 50.4317C225.144 50.4317 221.928 49.6772 219.179 48.1681C216.429 46.6591 214.285 44.5064 212.747 41.7102C211.21 38.914 210.441 35.6739 210.441 31.99ZM237.005 28.6612C236.678 25.7762 235.77 23.668 234.278 22.3365C232.787 20.9606 230.969 20.2726 228.826 20.2726C226.356 20.2726 224.352 21.0049 222.814 22.4696C221.276 23.9343 220.321 25.9982 219.948 28.6612H237.005ZM195.345 22.3365C196.836 23.5348 197.768 25.1993 198.141 27.3297L207.369 26.8637C207.043 24.1562 206.087 21.8039 204.503 19.8066C202.918 17.8093 200.868 16.278 198.351 15.2128C195.881 14.1032 193.155 13.5484 190.172 13.5484C186.49 13.5484 183.275 14.3029 180.525 15.812C177.775 17.321 175.632 19.4737 174.094 22.2699C172.556 25.0661 171.787 28.3062 171.787 31.99C171.787 35.6739 172.556 38.914 174.094 41.7102C175.632 44.5064 177.775 46.6591 180.525 48.1681C183.275 49.6772 186.49 50.4317 190.172 50.4317C193.248 50.4317 196.044 49.8769 198.561 48.7673C201.077 47.6133 203.128 45.9933 204.712 43.9072C206.297 41.8212 207.252 39.38 207.578 36.5838L198.281 36.1844C197.955 38.5367 197.046 40.3565 195.555 41.6436C194.063 42.8864 192.269 43.5078 190.172 43.5078C187.283 43.5078 185.046 42.5091 183.461 40.5118C181.877 38.5145 181.084 35.6739 181.084 31.99C181.084 28.3062 181.877 25.4656 183.461 23.4683C185.046 21.471 187.283 20.4723 190.172 20.4723C192.176 20.4723 193.9 21.0937 195.345 22.3365ZM149.953 14.3457H158.28L158.52 21.137C159.111 19.2146 159.933 17.7218 160.986 16.6585C162.512 15.1166 164.64 14.3457 167.369 14.3457H170.769V21.6146H167.3C165.357 21.6146 163.761 21.8789 162.512 22.4075C161.309 22.9362 160.384 23.7732 159.737 24.9186C159.135 26.064 158.835 27.5178 158.835 29.2799V49.6328H149.953V14.3457ZM111.546 22.2699C110.008 25.0661 109.239 28.3062 109.239 31.99C109.239 35.6739 110.008 38.914 111.546 41.7102C113.084 44.5064 115.228 46.6591 117.977 48.1681C120.727 49.6772 123.942 50.4317 127.624 50.4317C131.632 50.4317 135.174 49.4331 138.25 47.4358C141.325 45.4385 143.423 42.7754 144.541 39.4466L135.384 38.7808C134.684 40.2899 133.636 41.4883 132.238 42.376C130.84 43.2637 129.302 43.7075 127.624 43.7075C124.968 43.7075 122.847 42.8864 121.263 41.2442C119.725 39.5576 118.863 37.2496 118.676 34.3202H145.03V32.2564C144.984 28.2174 144.192 24.7998 142.654 22.0036C141.116 19.2074 139.042 17.0991 136.432 15.6788C133.822 14.2585 130.886 13.5484 127.624 13.5484C123.942 13.5484 120.727 14.3029 117.977 15.812C115.228 17.321 113.084 19.4737 111.546 22.2699ZM133.077 22.3365C134.568 23.668 135.477 25.7762 135.803 28.6612H118.746C119.119 25.9982 120.074 23.9343 121.612 22.4696C123.15 21.0049 125.154 20.2726 127.624 20.2726C129.768 20.2726 131.585 20.9606 133.077 22.3365Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;div&gt;&lt;a href=&quot;https://coderabbit.link/knip&quot;&gt;&lt;svg viewBox=&quot;0 0 160 30&quot; fill=&quot;none&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M40.1223 10.7403C40.7422 9.59163 41.6067 8.69325 42.7154 8.05157C43.8242 7.40986 45.0835 7.08901 46.4867 7.08901C48.2093 7.08901 49.6812 7.55747 50.9092 8.48791C52.1369 9.41838 52.9512 10.6889 53.3646 12.2996H49.4808C49.1927 11.6771 48.7793 11.2087 48.2531 10.8814C47.7208 10.5542 47.1194 10.3938 46.4426 10.3938C45.3527 10.3938 44.4757 10.7788 43.7992 11.5552C43.1227 12.3317 42.7845 13.3712 42.7845 14.6675C42.7845 15.9637 43.1227 17.0032 43.7992 17.7797C44.4757 18.5561 45.3527 18.9412 46.4426 18.9412C47.1194 18.9412 47.7208 18.7807 48.2531 18.4535C48.7854 18.1262 49.1927 17.6578 49.4808 17.0353H53.3646C52.9512 18.646 52.1305 19.9101 50.9092 20.8342C49.6812 21.7582 48.2093 22.2202 46.4867 22.2202C45.0835 22.2202 43.8242 21.8994 42.7154 21.2577C41.6067 20.616 40.7422 19.724 40.1223 18.5818C39.502 17.4396 39.1951 16.1369 39.1951 14.6675C39.1951 13.198 39.502 11.8889 40.1223 10.7403Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M57.3236 21.5468C56.4217 21.0527 55.7138 20.3468 55.1937 19.4292C54.6802 18.5115 54.4171 17.4399 54.4171 16.2143C54.4171 14.9886 54.6802 13.9298 55.2001 13.0058C55.7263 12.0817 56.4402 11.3758 57.3488 10.8817C58.2571 10.3876 59.2779 10.1438 60.4055 10.1438C61.5331 10.1438 62.5543 10.3876 63.4626 10.8817C64.3709 11.3758 65.0851 12.0817 65.611 13.0058C66.1372 13.9298 66.3943 15.0015 66.3943 16.2143C66.3943 17.4271 66.1312 18.4987 65.5985 19.4227C65.0662 20.3468 64.3459 21.0527 63.4312 21.5468C62.5166 22.0409 61.4954 22.2847 60.3617 22.2847C59.228 22.2847 58.2194 22.0409 57.3175 21.5468H57.3236ZM62.0968 18.396C62.5731 17.8891 62.811 17.164 62.811 16.2143C62.811 15.2645 62.5792 14.5458 62.122 14.0325C61.6585 13.5256 61.0945 13.2689 60.418 13.2689C59.7415 13.2689 59.159 13.5191 58.7018 14.0197C58.2443 14.5202 58.0189 15.2517 58.0189 16.2078C58.0189 17.164 58.2443 17.8827 58.6893 18.3896C59.134 18.8966 59.6977 19.1532 60.3742 19.1532C61.0507 19.1532 61.6271 18.8966 62.0968 18.3896V18.396Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M67.8346 12.9929C68.2793 12.0753 68.8932 11.3695 69.6637 10.8753C70.4342 10.3812 71.2922 10.1374 72.2446 10.1374C73.0024 10.1374 73.6916 10.2978 74.318 10.6251C74.9443 10.9523 75.4392 11.3887 75.7963 11.9341V6.45403H79.3294V22.1114H75.7963V20.4174C75.4644 20.9821 74.9945 21.4312 74.3806 21.7714C73.7668 22.1114 73.0526 22.2783 72.2446 22.2783C71.2922 22.2783 70.4342 22.028 69.6637 21.5275C68.8932 21.027 68.2857 20.3147 67.8346 19.3907C67.3899 18.4666 67.1642 17.4014 67.1642 16.1822C67.1642 14.9629 67.3899 13.9041 67.8346 12.9865V12.9929ZM75.0635 14.071C74.5747 13.5512 73.9797 13.2881 73.2783 13.2881C72.5765 13.2881 71.9815 13.5448 71.4927 14.0581C71.0042 14.5715 70.7599 15.2838 70.7599 16.1822C70.7599 17.0805 71.0042 17.7993 71.4927 18.3318C71.9815 18.858 72.5765 19.1275 73.2783 19.1275C73.9797 19.1275 74.5747 18.8645 75.0635 18.3447C75.552 17.8249 75.7963 17.1126 75.7963 16.2078C75.7963 15.303 75.552 14.5908 75.0635 14.071Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M92.2843 17.0802H84.291C84.3475 17.8118 84.5793 18.3765 84.9802 18.7615C85.3872 19.1465 85.8885 19.3454 86.4774 19.3454C87.3605 19.3454 87.9743 18.9668 88.3189 18.2032H92.0774C91.8834 18.9797 91.5387 19.6791 91.0314 20.2952C90.5304 20.9176 89.8977 21.4053 89.1396 21.7582C88.3816 22.1112 87.536 22.2844 86.5964 22.2844C85.4688 22.2844 84.4601 22.0406 83.5831 21.5465C82.7001 21.0523 82.0108 20.3465 81.5159 19.4289C81.0213 18.5112 80.7707 17.4396 80.7707 16.214C80.7707 14.9883 81.0149 13.9167 81.5034 12.999C81.9923 12.0814 82.6748 11.3756 83.5582 10.8815C84.4415 10.3874 85.4499 10.1435 86.5964 10.1435C87.7425 10.1435 88.701 10.3809 89.5719 10.8622C90.4364 11.3435 91.119 12.0237 91.6078 12.9156C92.0963 13.8012 92.3405 14.8407 92.3405 16.0279C92.3405 16.368 92.3217 16.7209 92.2779 17.0867L92.2843 17.0802ZM88.7323 15.0718C88.7323 14.4493 88.5258 13.9552 88.1121 13.5894C87.6987 13.2236 87.1853 13.0376 86.565 13.0376C85.9448 13.0376 85.4752 13.2108 85.0679 13.5638C84.6606 13.9167 84.4102 14.4172 84.3162 15.0653H88.7387L88.7323 15.0718Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M101.392 22.1177L98.3791 16.5092H97.5335V22.1177H94.0004V7.2624H99.9265C101.073 7.2624 102.044 7.46775 102.852 7.87841C103.66 8.2891 104.261 8.84739 104.662 9.55965C105.063 10.2719 105.264 11.0676 105.264 11.9403C105.264 12.9286 104.994 13.8077 104.449 14.5842C103.904 15.3606 103.102 15.9125 102.044 16.2333L105.389 22.1177H101.398H101.392ZM97.5274 13.9489H99.7197C100.365 13.9489 100.854 13.7885 101.173 13.4612C101.499 13.1339 101.662 12.6783 101.662 12.088C101.662 11.4976 101.499 11.0805 101.173 10.7532C100.847 10.426 100.365 10.2655 99.7197 10.2655H97.5274V13.9489Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M107.024 12.9927C107.468 12.075 108.082 11.3692 108.853 10.8751C109.623 10.381 110.488 10.2077 111.433 10.2077H118.518V22.1112H114.985V20.4428C114.641 20.9946 114.165 21.4374 113.551 21.7775C112.937 22.1176 112.223 22.2844 111.415 22.2844C110.475 22.2844 109.623 22.0342 108.853 21.5337C108.082 21.0331 107.474 20.3209 107.024 19.3968C106.579 18.4727 106.353 17.4075 106.353 16.1883C106.353 14.9691 106.579 13.9103 107.024 12.9927ZM114.253 14.0707C113.764 13.5509 113.169 13.2879 112.467 13.2879C111.766 13.2879 111.171 13.5445 110.682 14.0579C110.193 14.5712 109.949 15.2835 109.949 16.1819C109.949 17.0803 110.193 17.799 110.682 18.3316C111.171 18.8578 111.766 19.1273 112.467 19.1273C113.169 19.1273 113.764 18.8642 114.253 18.3444C114.741 17.8246 114.985 17.1124 114.985 16.2076C114.985 15.3028 114.741 14.5905 114.253 14.0707Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M125.628 10.6443C126.249 10.3042 126.956 10.1374 127.758 10.1374C128.71 10.1374 129.569 10.3812 130.339 10.8753C131.11 11.3695 131.717 12.0753 132.168 12.9929C132.613 13.9106 132.838 14.9758 132.838 16.1886C132.838 17.4014 132.613 18.473 132.168 19.3971C131.724 20.3211 131.11 21.0334 130.339 21.5339C129.569 22.0344 128.71 22.2847 127.758 22.2847C126.944 22.2847 126.236 22.1179 125.628 21.7906C125.021 21.4569 124.545 21.0206 124.2 20.4687V22.1179H120.667V6.45403H124.2V11.979C124.532 11.4272 125.008 10.9844 125.628 10.6443ZM128.51 14.0646C128.021 13.5512 127.42 13.2945 126.7 13.2945C125.979 13.2945 125.403 13.5576 124.914 14.0774C124.426 14.5972 124.181 15.3095 124.181 16.2143C124.181 17.1191 124.426 17.8313 124.914 18.3511C125.403 18.8709 125.998 19.134 126.7 19.134C127.401 19.134 128.002 18.8709 128.497 18.3383C128.992 17.8121 129.243 17.0934 129.243 16.1886C129.243 15.2838 128.999 14.5779 128.51 14.0646Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M139.241 10.6443C139.861 10.3042 140.569 10.1373 141.37 10.1373C142.323 10.1373 143.181 10.3812 143.951 10.8753C144.722 11.3694 145.33 12.0753 145.78 12.9929C146.225 13.9105 146.451 14.9758 146.451 16.1886C146.451 17.4014 146.225 18.473 145.78 19.397C145.336 20.3211 144.722 21.0334 143.951 21.5339C143.181 22.0344 142.323 22.2847 141.37 22.2847C140.556 22.2847 139.848 22.1179 139.241 21.7906C138.633 21.4569 138.157 21.0206 137.812 20.4687V22.1179H134.28V6.45403H137.812V11.979C138.145 11.4272 138.621 10.9844 139.241 10.6443ZM142.122 14.0646C141.634 13.5512 141.032 13.2945 140.312 13.2945C139.592 13.2945 139.015 13.5576 138.527 14.0774C138.038 14.5971 137.794 15.3094 137.794 16.2142C137.794 17.119 138.038 17.8313 138.527 18.3511C139.015 18.8708 139.61 19.134 140.312 19.134C141.014 19.134 141.615 18.8708 142.11 18.3383C142.604 17.8121 142.855 17.0933 142.855 16.1886C142.855 15.2838 142.611 14.5779 142.122 14.0646Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M148.155 8.5201C147.76 8.14792 147.566 7.68588 147.566 7.13403C147.566 6.58216 147.76 6.10089 148.155 5.72871C148.549 5.35653 149.05 5.17045 149.67 5.17045C150.291 5.17045 150.773 5.35653 151.168 5.72871C151.562 6.10089 151.756 6.56932 151.756 7.13403C151.756 7.69872 151.562 8.14792 151.168 8.5201C150.773 8.89227 150.278 9.07836 149.67 9.07836C149.063 9.07836 148.543 8.89227 148.155 8.5201ZM151.431 10.3104V22.1177H147.898V10.304H151.431V10.3104Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M160 19.044V22.1113H158.202C156.925 22.1113 155.922 21.7905 155.208 21.1488C154.494 20.5071 154.137 19.4611 154.137 18.0044V13.3072H152.734V10.3041H154.137V7.42929H157.67V10.3041H159.982V13.3072H157.67V18.0494C157.67 18.4023 157.751 18.659 157.92 18.813C158.083 18.967 158.359 19.044 158.747 19.044H160.006H160Z&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#FF570A&quot; d=&quot;M14.3047 0.529802C22.2049 0.529808 28.6094 6.93426 28.6094 14.8345C28.6093 22.7347 22.2049 29.1392 14.3047 29.1392C6.40445 29.1392 2.76064e-05 22.7347 0 14.8345C0 6.93425 6.40443 0.529802 14.3047 0.529802ZM11.7002 4.38136C12.3199 8.95173 14.8788 7.76131 16.3857 10.9116C16.3857 10.9116 13.8429 7.36442 9.66211 8.67043C9.67971 8.70805 11.2122 11.9567 15.6934 12.6236C15.6934 12.6236 16.0541 13.8935 16.1631 14.1177C16.1182 14.0938 9.21513 10.4262 7.11426 17.5327C5.54571 17.1682 5.01956 18.9152 6.82227 20.1089C6.82818 20.085 7.13625 18.8552 7.87598 18.4878C7.87598 18.4878 6.27317 20.3228 8.1582 22.52H14.9238C15.0873 22.2422 15.8107 20.7801 14.0215 19.6734C15.2846 19.655 16.3128 22.0996 17.4189 22.5366H19.0273C19.0818 22.4009 19.1959 21.9942 18.9287 21.6284C18.5166 21.1438 17.6153 21.2093 17.623 20.313C17.9346 16.1407 24.0307 17.4213 23.8369 12.3999L23.748 12.2886C23.338 11.7931 21.5641 9.80541 19.4043 9.67629C17.812 9.57985 17.425 9.79783 17.3555 9.96047C17.2564 9.11613 16.5531 5.20946 11.7002 4.38136Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://datadoghq.com&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 800.5 203.19&quot;&gt;&lt;g&gt;&lt;g&gt;&lt;path d=&quot;M260.87,144.65h-37.4v-86.1h37.4c26.94,0,40.43,13.57,40.43,40.7C301.29,129.51,287.81,144.65,260.87,144.65z
            M239.45,130.79h19c17.9,0,26.84-10.51,26.84-31.55c0-17.91-8.95-26.87-26.84-26.87h-19L239.45,130.79L239.45,130.79z&quot;&gt;&lt;/path&gt;&lt;polygon points=&quot;318.04,144.65 301.62,144.65 338.25,58.55 355.44,58.55 392.85,144.65 375.66,144.65 364.8,121.17
            337.17,121.17 342.66,107.32 360.58,107.32 346.46,74.98&quot;&gt;&lt;/polygon&gt;&lt;polygon points=&quot;383.82,58.55 449.28,58.55 449.28,72.39 424.55,72.39 424.55,144.65 408.57,144.65 408.57,72.39
            383.82,72.39&quot;&gt;&lt;/polygon&gt;&lt;polygon points=&quot;457.5,144.65 441.08,144.65 477.71,58.55 494.9,58.55 532.31,144.65 515.1,144.65 504.24,121.17
            476.61,121.17 482.1,107.32 500.02,107.32 485.91,74.98&quot;&gt;&lt;/polygon&gt;&lt;path d=&quot;M580.32,144.65h-37.4v-86.1h37.4c26.96,0,40.43,13.57,40.43,40.7C620.75,129.51,607.28,144.65,580.32,144.65z
            M558.91,130.79h19c17.89,0,26.86-10.51,26.86-31.55c0-17.91-8.96-26.87-26.86-26.87h-19V130.79z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M631.58,101.72c0-29.2,14.45-43.79,43.33-43.79c28.44,0,42.64,14.59,42.64,43.79
            c0,29.03-14.21,43.55-42.64,43.55C647.31,145.27,632.87,130.75,631.58,101.72z M674.91,131.39c17.36,0,26.05-10.01,26.05-30.05
            c0-19.72-8.69-29.59-26.05-29.59c-17.82,0-26.73,9.87-26.73,29.59C648.18,121.38,657.09,131.39,674.91,131.39z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M784.26,109.81v20.16c-3.69,0.96-6.99,1.44-9.9,1.44c-19.55,0-29.31-10.34-29.31-31.01
            c0-19.09,10.36-28.62,31.07-28.62c8.65,0,16.69,1.61,24.13,4.82V62.14c-7.44-2.8-15.89-4.21-25.34-4.21
            c-30.97,0-46.46,14.15-46.46,42.47c0,29.9,15.22,44.87,45.67,44.87c10.47,0,19.17-1.52,26.13-4.58V95.64h-25.82l-5.4,14.16
            L784.26,109.81L784.26,109.81z&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;g&gt;&lt;path d=&quot;M167.2,98.4l-54.9,10c-1.4,1.8-4.7,4.8-6.3,5.6c-6.9,3.5-11.6,2.5-15.7,1.4c-2.6-0.7-4.1-1-6.3-2l-13.4,1.8
            l8.1,67.9l94.1-17L167.2,98.4z M83.4,176.7l-0.8-7.4L98,145.9l17.4,5.1l15-25.1l18,11.9l13.7-28.7l4.9,52.2L83.4,176.7z M79.5,110
            c-6.8-4.4-13.8-10.6-16.9-14.1c-0.5-0.4-0.4-2.1-0.4-2.1c2.8,2.2,14.3,10.4,26.4,14.1c4.3,1.3,10.9,1.8,16.6-1.4
            c4.4-2.5,9.6-6.8,12.7-11.2l0.6,1c0,0.7-1.5,3.9-2.2,5.2c1.3,0.8,2.3,1,3.8,1.4l10.1-1.6c3.6-5.8,6.2-15.2,3.4-24.2
            c-1.6-5.1-9.8-15.4-10.4-15.9c-2.1-2,0.3-9.6-3.7-18c-4.3-8.8-15.6-18-20.5-22.1c1.4,1,10.3,4.6,14.4,9.6c0.4-0.5,0.6-3.2,0.9-3.9
            c-3.6-4.6-3.8-12.9-3.8-15.1c0-4.1-2.1-8.7-2.1-8.7s3.6,2.8,4.5,7.7c1.1,5.7,3.4,10.3,6.5,14.1c5.8,7.2,11,10.9,13.7,8.2
            c3.2-3.2-3.2-17.5-11.3-25.5c-9.5-9.3-12-8.1-17.5-6.1c-4.4,1.5-6.8,14.2-18.4,13.9c-2-0.2-7-0.4-9.5-0.3c1.3-1.8,2.4-3.2,2.4-3.2
            s-3.9,1.6-7.2,3.6l-0.3-0.4c1.1-2.4,2.3-3.8,2.3-3.8s-3.1,1.9-5.9,4.1c0.5-2.8,2.5-4.6,2.5-4.6s-3.9,0.7-8.9,6.2
            c-5.7,1.5-7,2.6-11.6,4.6c-7.4-1.6-10.8-4.2-14.1-9c-2.5-3.6-7-4.2-11.6-2.3c-6.7,2.8-15.1,6.5-15.1,6.5s2.8-0.1,5.6,0
            c-3.9,1.5-7.7,3.5-7.7,3.5s1.8-0.1,4.1,0c-1.6,1.3-2.4,1.9-3.9,2.9c-3.6,2.6-6.5,5.6-6.5,5.6s2.4-1.1,4.6-1.7
            c-1.5,3.5-4.6,6.1-4,10.4c0.5,3.9,5.3,12,11.6,17c0.5,0.4,9,8.3,15.4,5.1c6.4-3.2,8.9-6.1,10-10.5c1.2-5.1,0.5-8.9-2.1-19.9
            c-0.9-3.6-3.1-11.1-4.2-14.6l0.2-0.2c2.1,4.4,7.4,16.1,9.6,23.9c3.4,12.2,2.3,18.4,0.8,20.7c-4.7,6.8-16.6,7.8-22,4
            c-0.8,13.1,2.1,18.9,3.1,21.8c-0.5,3.3,1.7,9.6,1.7,9.6s0.2-2.8,1.2-4.3c0.3,3.3,1.9,7.3,1.9,7.3s-0.1-2.4,0.7-4.5
            c1.1,1.8,1.9,2.2,2.9,3.6c1,3.6,3,6.2,3,6.2s-0.3-1.9-0.2-3.9c5,4.8,5.8,11.8,6.3,17.1c1.4,14.7-23.2,26.4-28,35.6
            c-3.6,5.4-5.8,14.1,0.3,19.2c14.8,12.3,9.1,15.7,16.5,21.1c10.2,7.4,22.9,4.1,27.2-1.9c6-8.4,4.5-16.3,2.2-23.7
            c-1.8-5.8-6.5-15.4-12.4-19.1c-6-3.8-11.9-4.5-16.8-4l0.5-0.5c7.1-1.4,14.6-0.6,20,2.8c6.1,3.9,11.7,10.7,14.6,21
            c3.3-0.5,3.8-0.7,6.8-1.1L65,111.6L79.5,110z M113.8,43.3c6.3,2.9,5.5,8.5,5.6,11.8c0.1,0.9,0,1.6-0.1,2c-0.9-0.5-2.2-0.8-4.4-0.7
            c-0.6,0-1.3,0.1-1.9,0.2c-2.3-1.2-3.7-3.7-5-6.3c-0.1-0.2-0.2-0.5-0.3-0.7c0-0.1-0.1-0.2-0.1-0.3c0,0,0-0.1,0-0.1
            c-0.7-2.2-0.2-2.7,0.1-3.3s1.4-1.3-0.2-1.8c-0.1,0-0.3-0.1-0.5-0.1C108.1,42.6,111.4,42.2,113.8,43.3z M106,79.9
            c1.2-0.9,6.8-2.7,12-3.4c2.7-0.3,6.6-0.5,7.4,0c1.6,0.9,1.6,3.7,0.5,6.3c-1.6,3.8-3.9,7.9-6.6,8.2c-4.3,0.6-8.3-1.7-12.9-5.2
            C104.8,84.6,103.8,81.6,106,79.9z M65.6,51.4c6.8-4.6,15.5-2.8,14-1.4c-2.8,2.7,0.9,1.9,1.3,6.8c0.3,3.6-0.9,5.6-1.9,6.7
            c-2.1,0.3-4.7,0.8-7.8,1.8c-1.8,0.6-3.4,1.2-4.8,1.9c-0.4-0.2-0.8-0.5-1.2-0.9C60.5,62.1,60.7,54.8,65.6,51.4z&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;g&gt;&lt;g&gt;&lt;path d=&quot;M158.87,144.16L142,133.04l-14.07,23.5l-16.36-4.78l-14.41,21.99l0.74,6.92l78.33-14.43l-4.55-48.94
              L158.87,144.16z M85.82,123.07l12.57-1.73c2.03,0.91,3.45,1.26,5.89,1.88c3.8,0.99,8.19,1.94,14.7-1.34
              c1.51-0.75,4.67-3.64,5.94-5.28l51.49-9.34l5.25,63.57l-88.21,15.9L85.82,123.07z M181.46,100.16l-5.08,0.97L166.62,0.25
              L0.25,19.54l20.5,166.33l19.47-2.83c-1.55-2.22-3.98-4.91-8.11-8.35c-5.74-4.76-3.71-12.86-0.32-17.97
              c4.47-8.63,27.54-19.61,26.23-33.41c-0.47-5.02-1.27-11.55-5.93-16.03c-0.17,1.86,0.14,3.65,0.14,3.65s-1.91-2.44-2.87-5.77
              c-0.95-1.28-1.69-1.68-2.7-3.39c-0.72,1.97-0.62,4.26-0.62,4.26s-1.56-3.7-1.82-6.82c-0.93,1.4-1.16,4.05-1.16,4.05
              s-2.03-5.83-1.57-8.97c-0.93-2.73-3.68-8.15-2.9-20.47c5.08,3.56,16.26,2.71,20.61-3.71c1.45-2.13,2.44-7.93-0.72-19.36
              c-2.03-7.33-7.05-18.25-9.01-22.4l-0.23,0.17c1.03,3.34,3.16,10.33,3.98,13.73c2.47,10.29,3.13,13.87,1.97,18.61
              c-0.99,4.12-3.35,6.82-9.35,9.84c-6,3.03-13.96-4.34-14.47-4.74c-5.83-4.64-10.34-12.22-10.84-15.9
              c-0.52-4.03,2.32-6.45,3.76-9.74c-2.05,0.59-4.34,1.63-4.34,1.63s2.73-2.83,6.1-5.27c1.4-0.92,2.21-1.51,3.68-2.73
              c-2.13-0.03-3.86,0.02-3.86,0.02s3.55-1.92,7.23-3.31c-2.69-0.12-5.27-0.02-5.27-0.02S35.75,27.1,42,24.5
              c4.3-1.76,8.5-1.24,10.86,2.17c3.1,4.47,6.35,6.9,13.25,8.41c4.24-1.88,5.52-2.84,10.84-4.29c4.68-5.15,8.36-5.82,8.36-5.82
              s-1.82,1.67-2.31,4.3c2.66-2.09,5.57-3.84,5.57-3.84s-1.13,1.39-2.18,3.6l0.24,0.36c3.1-1.86,6.74-3.32,6.74-3.32
              s-1.04,1.32-2.26,3.02c2.34-0.02,7.08,0.1,8.91,0.31c10.86,0.24,13.11-11.6,17.28-13.08c5.22-1.86,7.55-2.99,16.44,5.74
              c7.63,7.5,13.59,20.91,10.63,23.92c-2.48,2.49-7.38-0.97-12.8-7.74c-2.87-3.58-5.03-7.81-6.05-13.19
              c-0.86-4.54-4.19-7.17-4.19-7.17s1.93,4.31,1.93,8.11c0,2.08,0.26,9.84,3.59,14.19c-0.33,0.64-0.48,3.15-0.85,3.63
              c-3.87-4.68-12.19-8.03-13.54-9.02c4.59,3.76,15.14,12.4,19.19,20.68c3.83,7.83,1.57,15.01,3.51,16.87
              c0.55,0.53,8.24,10.11,9.72,14.93c2.58,8.39,0.15,17.21-3.22,22.68l-9.43,1.47c-1.38-0.38-2.31-0.58-3.55-1.29
              c0.68-1.21,2.04-4.22,2.05-4.84l-0.53-0.93c-2.94,4.16-7.85,8.2-11.94,10.52c-5.35,3.03-11.51,2.56-15.52,1.32
              c-11.39-3.51-22.16-11.21-24.75-13.23c0,0-0.08,1.61,0.41,1.98c2.87,3.24,9.45,9.1,15.81,13.18l-13.55,1.49l6.41,49.89
              c-2.84,0.41-3.28,0.61-6.39,1.05c-2.74-9.68-7.98-16.01-13.71-19.69c-5.05-3.25-12.02-3.98-18.7-2.66l-0.43,0.5
              c4.64-0.48,10.12,0.19,15.74,3.75c5.52,3.49,9.97,12.51,11.61,17.94c2.1,6.94,3.55,14.36-2.1,22.23
              c-4.02,5.59-15.74,8.68-25.22,2c2.53,4.07,5.95,7.4,10.55,8.02c6.84,0.93,13.33-0.26,17.79-4.84c3.81-3.92,5.84-12.12,5.3-20.75
              l6.03-0.87l2.18,15.49l99.88-12.03L181.46,100.16z M120.69,58.08c-0.28,0.64-0.72,1.05-0.06,3.12l0.04,0.12l0.1,0.27l0.27,0.62
              c1.19,2.42,2.49,4.71,4.66,5.88c0.56-0.09,1.15-0.16,1.75-0.19c2.04-0.09,3.33,0.23,4.15,0.68c0.07-0.41,0.09-1,0.04-1.88
              c-0.16-3.07,0.61-8.29-5.29-11.04c-2.23-1.03-5.35-0.72-6.39,0.58c0.19,0.02,0.36,0.06,0.49,0.11
              C122.04,56.89,120.98,57.43,120.69,58.08 M137.23,86.73c-0.77-0.43-4.39-0.26-6.93,0.04c-4.84,0.57-10.07,2.25-11.22,3.14
              c-2.08,1.61-1.14,4.42,0.4,5.57c4.32,3.22,8.1,5.39,12.09,4.86c2.45-0.32,4.61-4.2,6.14-7.73
              C138.77,90.19,138.77,87.58,137.23,86.73 M94.36,61.88c1.37-1.3-6.8-3-13.14,1.32c-4.67,3.19-4.82,10.03-0.35,13.9
              c0.45,0.38,0.82,0.66,1.16,0.88c1.31-0.62,2.8-1.24,4.51-1.79c2.9-0.94,5.3-1.43,7.28-1.68c0.95-1.06,2.05-2.92,1.77-6.29
              C95.22,63.63,91.75,64.36,94.36,61.88&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://sourcegraph.com/community&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 312.8 55.5&quot;&gt;&lt;path d=&quot;M34.8 53.8c-2.8.5-5.5-1.3-6-4.1L21.2 8.2c-.5-2.8 1.3-5.5 4.1-6s5.5 1.3 6 4.1l7.6 41.5c.5 2.8-1.4 5.5-4.1 6z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14.9 46.7c-1.8.3-3.6-.3-4.9-1.7-1.8-2.2-1.6-5.4.6-7.2l32.1-27.3c2.2-1.8 5.4-1.6 7.2.6 1.8 2.2 1.6 5.4-.6 7.2l-32 27.3c-.7.6-1.6 1-2.4 1.1z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M50.8 40.1c-.9.2-1.8.1-2.6-.2L8.4 25.8c-2.7-1-4.1-3.9-3.1-6.6s3.9-4.1 6.6-3.1l39.7 14.1c2.7 1 4.1 3.9 3.1 6.6-.6 1.8-2.2 3-3.9 3.3z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M84 35.1c0-1-.4-1.8-1.1-2.4-.7-.6-1.6-1.2-2.7-1.7s-2.3-1-3.6-1.6c-1.3-.5-2.5-1.2-3.6-2s-2-1.8-2.7-3c-.7-1.2-1.1-2.7-1.1-4.5 0-1.6.3-3 .8-4.1.5-1.2 1.3-2.1 2.3-2.9 1-.8 2.1-1.3 3.5-1.7 1.3-.4 2.8-.6 4.5-.6 1.9 0 3.7.2 5.3.5s3.1.8 4.1 1.4l-2 5.3c-.7-.4-1.7-.8-3.1-1.1-1.4-.4-2.8-.5-4.4-.5-1.5 0-2.6.3-3.4.9-.8.6-1.2 1.4-1.2 2.4 0 .9.4 1.7 1.1 2.3.7.6 1.6 1.2 2.7 1.7s2.3 1.1 3.6 1.6c1.3.6 2.5 1.2 3.6 2s2 1.8 2.7 2.9c.7 1.2 1.1 2.6 1.1 4.3 0 1.7-.3 3.2-.9 4.5-.6 1.3-1.4 2.3-2.4 3.1-1 .8-2.3 1.5-3.8 1.9-1.5.4-3.1.6-4.9.6-2.3 0-4.4-.2-6.1-.7-1.8-.4-3.1-.9-3.9-1.3l2-5.4c.3.2.8.4 1.3.6.5.2 1.2.4 1.8.6.7.2 1.4.3 2.2.5.8.1 1.5.2 2.3.2 1.9 0 3.3-.3 4.3-1 1.2-.6 1.7-1.5 1.7-2.8zM93.1 32.2c0-3.9 1-7 2.9-9.1 1.9-2.1 4.6-3.2 8.1-3.2 1.9 0 3.5.3 4.8.9 1.4.6 2.5 1.4 3.4 2.5.9 1.1 1.6 2.4 2 3.9.4 1.5.7 3.2.7 5 0 3.9-1 7-2.9 9.1-1.9 2.1-4.6 3.2-8.1 3.2-1.9 0-3.5-.3-4.8-.9-1.4-.6-2.5-1.4-3.4-2.5-.9-1.1-1.6-2.4-2-3.9-.5-1.5-.7-3.2-.7-5zm6.2 0c0 1 .1 2 .3 2.8.2.9.5 1.6.8 2.3.4.7.9 1.2 1.5 1.5.6.4 1.3.5 2.2.5 1.6 0 2.8-.6 3.5-1.7.8-1.1 1.2-3 1.2-5.4 0-2.1-.4-3.9-1.1-5.2-.7-1.3-1.9-2-3.6-2-1.5 0-2.7.6-3.5 1.7-.9 1.1-1.3 2.9-1.3 5.5zM124.1 20.6v13.2c0 1.9.2 3.3.7 4.1.4.8 1.3 1.3 2.6 1.3 1.1 0 2.1-.3 2.9-1 .8-.7 1.3-1.5 1.7-2.5v-15h6v16.2c0 1.3.1 2.5.2 3.7.1 1.2.3 2.3.6 3.3h-4.6l-1.1-3.4h-.2c-.7 1.2-1.7 2.2-3 2.9-1.3.8-2.8 1.2-4.5 1.2-1.2 0-2.2-.2-3.2-.5-.9-.3-1.7-.8-2.3-1.5-.6-.7-1.1-1.7-1.4-2.9s-.5-2.8-.5-4.7V20.6h6.1zM155.5 26.2c-1-.3-1.8-.5-2.6-.5-1.1 0-2 .3-2.7.9-.7.6-1.2 1.3-1.5 2.2v15h-6V20.6h4.7l.7 3.1h.2c.5-1.1 1.2-2 2.1-2.7s2-.9 3.2-.9c.8 0 2.5.4 3.4.8l-1.5 5.3zM175.1 42.4c-.9.7-2.1 1.2-3.4 1.6-1.3.4-2.7.5-4.1.5-1.9 0-3.4-.3-4.7-.9-1.3-.6-2.3-1.4-3.1-2.5-.8-1.1-1.4-2.4-1.7-3.9-.4-1.5-.5-3.2-.5-5 0-3.9.9-7 2.7-9.1 1.8-2.1 4.3-3.2 7.7-3.2 1.7 0 3.1.1 4.1.4 1 .3 2 .6 2.8 1.1l-1.4 4.9c-.7-.3-1.4-.6-2.1-.8-.7-.2-1.5-.3-2.4-.3-1.7 0-2.9.6-3.8 1.7-.9 1.1-1.3 2.9-1.3 5.3 0 1 .1 1.9.3 2.7s.5 1.6 1 2.2c.4.6 1 1.1 1.7 1.5.7.4 1.5.5 2.4.5 1 0 1.9-.1 2.6-.4.7-.3 1.3-.6 1.9-1l1.3 4.7zM196.4 41.8c-.9.7-2.2 1.4-3.8 1.9-1.6.5-3.3.8-5.1.8-3.8 0-6.5-1.1-8.2-3.3-1.7-2.2-2.6-5.2-2.6-9 0-4.1 1-7.2 2.9-9.2s4.7-3.1 8.2-3.1c1.2 0 2.3.2 3.4.5s2.1.8 3 1.5 1.6 1.7 2.1 2.9.8 2.7.8 4.5c0 .7 0 1.3-.1 2.1-.1.7-.2 1.5-.3 2.3h-14c.1 2 .6 3.4 1.5 4.4.9 1 2.4 1.5 4.4 1.5 1.3 0 2.4-.2 3.4-.6 1-.4 1.8-.8 2.3-1.2l2.1 4zm-8.7-17.1c-1.6 0-2.8.5-3.5 1.4-.8.9-1.2 2.2-1.4 3.8h8.6c.1-1.7-.1-3-.8-3.9-.5-.8-1.5-1.3-2.9-1.3zM220.6 43.8c0 3.4-.9 5.9-2.7 7.5s-4.4 2.4-7.7 2.4c-2.2 0-4-.2-5.3-.5s-2.3-.6-2.9-1l1.3-4.8c.7.3 1.5.6 2.5.8s2.1.4 3.5.4c2.1 0 3.5-.5 4.3-1.4.8-.9 1.1-2.2 1.1-3.8V42h-.2c-1.1 1.5-3 2.2-5.8 2.2-3 0-5.2-.9-6.7-2.8s-2.2-4.8-2.2-8.7c0-4.2 1-7.3 3-9.4 2-2.1 4.9-3.2 8.6-3.2 2 0 3.8.1 5.3.4s2.8.6 3.8 1v22.3zm-10.2-4.5c1.2 0 2.1-.3 2.7-.8.6-.5 1.1-1.3 1.5-2.4V25.7c-1-.4-2.2-.6-3.6-.6-1.6 0-2.8.6-3.6 1.7-.9 1.2-1.3 3-1.3 5.6 0 2.3.4 4 1.1 5.2.7 1.2 1.8 1.7 3.2 1.7zM238.1 26.2c-1-.3-1.8-.5-2.6-.5-1.1 0-2 .3-2.7.9-.7.6-1.2 1.3-1.5 2.2v15h-6V20.6h4.7l.7 3.1h.2c.5-1.1 1.2-2 2.1-2.7s2-.9 3.2-.9c.8 0 1.7.2 2.7.5l-.8 5.6zM241 21.7c1.2-.6 2.1-.8 3.8-1.1 1.7-.3 3.5-.5 5.3-.5 1.6 0 3 .2 4 .6s1.9.9 2.6 1.7c.6.7 1.1 1.6 1.3 2.6.3 1 .4 2.1.4 3.3 0 1.4 0 2.7-.1 4.1-.1 1.4-.1 2.7-.2 4.1 0 1.3 0 2.6.1 3.9s.3 2.4.7 3.6H254l-1-3.2c-.6 1-1.5 1.8-2.6 2.5s-2.5 1-4.3 1c-1.1 0-2.1-.2-2.9-.5-.9-.3-1.6-.8-2.2-1.4s-1.1-1.3-1.4-2.1c-.3-.8-.5-1.7-.5-2.8 0-1.4.3-2.6 1-3.6s1.5-1.8 2.7-2.4c1.2-.6 2.6-1 4.3-1.3s3.5-.3 5.6-.2c.2-1.7.1-3-.4-3.7-.5-.8-1.5-1.1-3.1-1.1-1.2 0-2.5.1-3.8.4s-1.9.4-2.7.8l-1.7-4.7zm7.1 17.5c1.2 0 2.2-.3 2.9-.8.7-.5 1.2-1.1 1.6-1.7v-3c-1-.1-1.9-.1-2.8 0-.9.1-1.7.2-2.3.4s-1.2.5-1.6.9c-.4.4-.6.9-.6 1.5 0 .9.3 1.5.8 2 .4.5 1.1.7 2 .7zM263.1 20.6h4.4l.7 2.8h.2c.8-1.2 1.8-2 2.9-2.6 1.1-.6 2.4-.8 4-.8 2.9 0 5.1.9 6.6 2.8s2.2 4.8 2.2 8.9c0 2-.2 3.8-.7 5.4s-1.2 3-2.1 4.1c-.9 1.1-2 2-3.3 2.6-1.3.6-2.8.9-4.5.9-1 0-1.8-.1-2.4-.2-.6-.1-1.2-.4-1.9-.7v9.5h-6V20.6zm10.3 4.4c-1.2 0-2.1.3-2.8.9s-1.2 1.5-1.6 2.7v9.7c.4.3.9.6 1.4.8.5.2 1.2.3 2 .3 1.7 0 3-.6 3.9-1.8.9-1.2 1.3-3.2 1.3-6.1 0-2-.3-3.6-1-4.7-.6-1.2-1.7-1.8-3.2-1.8zM301.6 43.8V30.6c0-1.9-.3-3.3-.8-4.1s-1.5-1.3-2.9-1.3c-1 0-2 .3-2.8 1-.9.7-1.4 1.6-1.7 2.7v14.8h-6V11.3h6v11.9h.2c.7-1 1.7-1.8 2.7-2.4 1.1-.6 2.5-.9 4.1-.9 1.2 0 2.2.2 3.1.5.9.3 1.7.8 2.3 1.5s1.1 1.7 1.3 2.9.4 2.7.4 4.5v14.5h-5.9z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://birchill.co.jp&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 559.6 120.8&quot;&gt;&lt;path d=&quot;M104.8 55l-.4-.1c-.4-.2-.8-.7-.8-1.2V21.2a1.2 1.2 0 0 1 1.2-1.2c.3 0 .7.1 1 .4A60 60 0 0 1 117 38.9c.1.4 0 .9-.2 1.2l-11 14.3c-.3.4-.6.5-1 .5zM64.9 120.8a1.2 1.2 0 0 1-1.2-1.2c-.6-23.4-2.7-65-9.9-80.7v-.7a168 168 0 0 0 2.9-27.8V1.3c0-.7.5-1.2 1.1-1.2a49.4 49.4 0 0 1 13.3.8c.5.1 1 .6 1 1.2v27.6c0 26.8 2.7 61 7 87.2.1.6-.2 1.1-.8 1.3a60.2 60.2 0 0 1-13.3 2.5h-.1zM87.2 114.6c-.2 0-.4 0-.6-.2-.3-.1-.5-.5-.6-.8a558.1 558.1 0 0 1-5.5-51.7c2.6-18.2 8-29.7 13.6-39.4a1.2 1.2 0 0 1 1.3-.6c.5.2 1 .6 1 1.2v85.4c0 .4-.3.8-.6 1a60.7 60.7 0 0 1-8.6 5zM32.4 87.1c-.3 0-.7-.1-.9-.3a78 78 0 0 1-13.2-22.6V17.7a1.2 1.2 0 0 1 1.4-1.1c.5 0 .8.4.9.8l5.9 20c4.6 15.7 7 32 7 48.5 0 .5-.2 1-.7 1.2h-.4zM80.6 31.6h-.3c-.5-.1-1-.6-1-1.2V4.7A1.2 1.2 0 0 1 81 3.6C84.9 5 88.6 6.8 92.2 9c.5.3.7 1 .4 1.6l-1.3 2.2c-3 5.1-6.5 11-9.6 18.1-.2.5-.7.7-1.1.7zM104.8 101l-.4-.1c-.5-.2-.8-.7-.8-1.2v-30c0-.3.1-.6.3-.8L118 50.5a1.2 1.2 0 0 1 1.2-.5c.5.2.8.5.9 1a61.2 61.2 0 0 1-14.5 49.5c-.2.3-.5.4-.9.4zM9.7 92.3c-.4 0-.8-.2-1-.6a60.3 60.3 0 0 1 0-62.5 1.2 1.2 0 0 1 2.2.6v61.3c0 .6-.3 1-.8 1.2h-.4zM32.4 113.8l-.6-.1a60.8 60.8 0 0 1-13.2-9.6c-.2-.2-.4-.6-.4-.9V85a1.2 1.2 0 0 1 1.2-1.1c.4 0 .8.1 1 .5 4 5.9 8.2 10.3 12.6 13.2.4.2.6.6.6 1v14c0 .5-.3.9-.6 1-.2.2-.4.2-.6.2zM40 60.8c-.6 0-1-.5-1.1-1-1.3-8.3-3-16.5-5.4-24.5l-7-23.8c-.2-.5 0-1 .4-1.4a59.7 59.7 0 0 1 21.3-8.8c.2 0 .5 0 .7.3.3.2.5.5.5.9v8c0 13-3.3 32.8-8.2 49.4-.2.5-.6.9-1.2.9zM55 120.7a60 60 0 0 1-13.3-2.8c-.5-.1-.8-.6-.8-1.1v-30a187.1 187.1 0 0 0 0-5.6 123 123 0 0 0 8.3-22.8 1.2 1.2 0 0 1 2.3.1 518 518 0 0 1 4.9 61c0 .3-.2.6-.4.8-.2.3-.5.4-.8.4H55zM180.6 95A19.3 19.3 0 0 1 170 84a23.9 23.9 0 0 1 4.1-23.7c1.8-2 3.9-3.4 6.3-4.5 2.5-1.1 5.3-1.7 8.3-1.7a20 20 0 0 1 14.6 6.1c1.8 1.9 3.2 4.1 4.1 6.7 1 2.7 1.4 5.5 1.4 8.5s-.4 5.9-1.4 8.5a19.2 19.2 0 0 1-18.7 12.7c-3 0-5.6-.5-8.1-1.6m-24.8-81.3c-1.4 1.1-2 2.8-2 5.2v53.4c0 6.3.8 11.9 2.6 16.6a30.2 30.2 0 0 0 18.5 18.8 41 41 0 0 0 28.3-.3 32 32 0 0 0 18.5-18.1c1.7-4.3 2.5-9 2.5-13.9 0-5-.8-9.7-2.5-13.9a31.6 31.6 0 0 0-17.6-18.1 33.9 33.9 0 0 0-26.5.4c-3.8 2-6.8 4.3-9 7V13.5l-2.6-.8c-1.3-.4-2.7-.6-4.3-.6-2.5 0-4.5.6-5.9 1.7m83.9 30.6c-1.4 1-2.1 2.9-2.1 5.3v58.6h14.8V44.1l-2.6-.8a15 15 0 0 0-4.3-.6c-2.5 0-4.4.5-5.8 1.6m-1-28.4a8.7 8.7 0 0 0-2.7 6.4c0 2.5.9 4.7 2.6 6.4a8.7 8.7 0 0 0 6.4 2.6c2.5 0 4.7-.9 6.4-2.6a8.7 8.7 0 0 0 2.6-6.4c0-2.5-.8-4.7-2.6-6.4a8.7 8.7 0 0 0-6.4-2.6c-2.5 0-4.6.9-6.4 2.6m37.2 31.5c-5 4.4-7.4 10.6-7.4 18.6v42.2h14.9V70.3c0-10.7 5-16.1 15.2-16.1a27.6 27.6 0 0 1 13 2.8c.5-.3 1.2-1.2 2-2.6a8.3 8.3 0 0 0 1.2-4.3c0-3.1-1.7-5.5-5.1-7a33.4 33.4 0 0 0-13.4-2.3c-8.7 0-15.5 2.2-20.4 6.6m64.7-4.3a31 31 0 0 0-19 17.7 38 38 0 0 0-2.7 15c0 5.5 1 10.4 2.8 14.7a31.1 31.1 0 0 0 18.9 17.3 48.5 48.5 0 0 0 34-2.2c1.5-.7 2.8-1.4 3.8-2.1l-6.2-11.1c-1 .6-2.8 1.5-5.5 2.7a26.4 26.4 0 0 1-10.5 1.7c-3 0-5.9-.4-8.5-1.2A17.7 17.7 0 0 1 336 85.1c-1.1-2.7-1.7-6-1.7-9.8 0-3.7.6-6.8 1.6-9.5A17.7 17.7 0 0 1 347 55.2c2.6-.9 5.4-1.3 8.3-1.3a26.4 26.4 0 0 1 17.8 6.3c1-.8 2.1-2 3.3-3.4 1.2-1.5 1.8-3.1 1.8-4.9 0-1.3-.4-2.6-1.3-3.9a11 11 0 0 0-4-3.5c-1.9-1-4.3-2-7.3-2.6a49.4 49.4 0 0 0-25 1.2m48.3-29.4c-1.4 1.1-2.1 2.9-2.1 5.2v89.3h14.9V73.1a20 20 0 0 1 4.5-13.6c3-3.5 7.5-5.2 13.4-5.2 5.8 0 10 1.5 12.3 4.4 2.4 3 3.6 7.3 3.6 13v36.5h14.9V67.3c0-4.4-.7-8.3-2-11.6-1.3-3.3-3.2-6-5.6-8.3a24.2 24.2 0 0 0-8.7-5c-3.3-1.1-7-1.7-11-1.7-5.6 0-10 1-13.6 2.7-3.5 1.9-6 3.8-7.8 6v-36l-2.6-.8c-1.3-.4-2.8-.6-4.3-.6-2.6 0-4.5.6-6 1.7m79.5 30.6c-1.4 1-2.1 2.9-2.1 5.3v58.6H481V44.1l-2.7-.8a15 15 0 0 0-4.3-.6c-2.5 0-4.4.5-5.8 1.6m-1-28.4a8.7 8.7 0 0 0-2.7 6.4c0 2.5.9 4.7 2.6 6.4a8.7 8.7 0 0 0 6.4 2.6c2.5 0 4.7-.9 6.4-2.6a8.7 8.7 0 0 0 2.6-6.4c0-2.5-.9-4.7-2.6-6.4a8.7 8.7 0 0 0-6.4-2.6c-2.5 0-4.6.9-6.4 2.6m32.5-2.2c-1.4 1.1-2 2.9-2 5.2v89.3h14.8V13.4l-2.6-.8c-1.3-.4-2.7-.6-4.3-.6-2.5 0-4.5.6-5.9 1.7M544 38.4v-25l-2.6-.8c-1.3-.4-2.8-.6-4.3-.6-2.6 0-4.5.6-6 1.7-1.3 1.1-2 2.9-2 5.2v89.3H544V53l14.7-28.3L544 38.4z&quot;&gt;&lt;/path&gt;&lt;defs&gt;&lt;linearGradient id=&quot;grad1&quot; x1=&quot;-0.6&quot; x2=&quot;1&quot; y1=&quot;0&quot; y2=&quot;0&quot; gradientUnits=&quot;objectBoundingBox&quot;&gt;&lt;stop offset=&quot;0&quot; stop-color=&quot;#57595b&quot;&gt;&lt;/stop&gt;&lt;stop offset=&quot;1&quot; stop-color=&quot;#fff&quot; stop-opacity=&quot;0.5&quot;&gt;&lt;/stop&gt;&lt;/linearGradient&gt;&lt;/defs&gt;&lt;path fill=&quot;url(#grad1)&quot; role=&quot;presentation&quot; d=&quot;M177.7 43.8c-3.9 2-6.9 4.3-9 7v22a22.9 22.9 0 0 1 5.4-12.5c1.8-2 3.9-3.4 6.4-4.5a20.4 20.4 0 0 1 12.3-1.3V41h-2c-5 0-9.3 1-13.2 2.9&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;url(#grad1)&quot; role=&quot;presentation&quot; d=&quot;M401.7 31.4v46V73a20 20 0 0 1 4.5-13.7c3-3.4 7.4-5.1 13.4-5.1 2.3 0 4.4.2 6.2.7V40.8H423c-5.6 0-10.1.8-13.6 2.6-3.5 1.9-6 3.8-7.8 6v-18z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/code-forge-io&quot;&gt;&lt;img src=&quot;https://knip.dev/sponsors/code-forge.png&quot; alt=&quot;Code Forge&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://ustark.de&quot;&gt;&lt;img src=&quot;https://knip.dev/sponsors/ulrichstark.png&quot; alt=&quot;Ulrich Stark&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://webdriver.io&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 64 64&quot;&gt;&lt;title&gt;WebdriverIO&lt;/title&gt;&lt;g id=&quot;Logo-Regular&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;&lt;rect id=&quot;Rectangle&quot; fill=&quot;#EA5906&quot; x=&quot;0&quot; y=&quot;0&quot; width=&quot;64&quot; height=&quot;64&quot; rx=&quot;5&quot;&gt;&lt;/rect&gt;&lt;path d=&quot;M8,16 L8,48 L6,48 L6,16 L8,16 Z M43,16 C51.836556,16 59,23.163444 59,32 C59,40.836556 51.836556,48 43,48 C34.163444,48 27,40.836556 27,32 C27,23.163444 34.163444,16 43,16 Z M27,16 L14.106,47.9992078 L11.999,47.9992078 L24.894,16 L27,16 Z M43,18 C35.2680135,18 29,24.2680135 29,32 C29,39.7319865 35.2680135,46 43,46 C50.7319865,46 57,39.7319865 57,32 C57,24.2680135 50.7319865,18 43,18 Z&quot; id=&quot;Combined-Shape&quot; fill=&quot;#FFFFFF&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://understandlegacycode.com&quot;&gt;&lt;img src=&quot;https://knip.dev/sponsors/nicoespeon.png&quot; alt=&quot;Nicolas Carlo&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://philippeserhal.com&quot;&gt;&lt;img src=&quot;https://knip.dev/sponsors/serhalp.jpg&quot; alt=&quot;Philippe Serhal&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/mintuhouse&quot;&gt;&lt;img src=&quot;https://knip.dev/sponsors/hasankumar.jpg&quot; alt=&quot;Hasan Kumar&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.comet.com&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; viewBox=&quot;10 0 140 59&quot;&gt;&lt;defs&gt;&lt;image xlink:href=&quot;data:image/png;base64,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&quot; id=&quot;comet-icon&quot; width=&quot;59&quot; height=&quot;59&quot;&gt;&lt;/image&gt;&lt;/defs&gt;&lt;g transform=&quot;translate(-159 -293.118)&quot;&gt;&lt;path d=&quot;M254.632 315.691c2.012-2.633 6.422-3.33 8.589 1.007a3.4 3.4 0 0 1 .464-.542 5.56 5.56 0 0 1 5.26-2.556 5.83 5.83 0 0 1 5.109 3.948 8.2 8.2 0 0 1 .542 3.1c.077 2.555 0 5.111 0 7.588 0 1.316-.929 2.091-2.4 2.091a2.06 2.06 0 0 1-2.321-2.091v-7.977a2.655 2.655 0 0 0-2.167-2.555 2.58 2.58 0 0 0-2.863 1.781 4.8 4.8 0 0 0-.155 1.471v6.969c0 .852.077 1.7-.929 2.091a3.09 3.09 0 0 1-3.25-.387 1.64 1.64 0 0 1-.464-1.239v-7.9a2.85 2.85 0 0 0-2.321-2.865 2.55 2.55 0 0 0-2.707 1.623 6 6 0 0 0-.232 1.626v7.356c0 1.239-.851 1.936-2.244 1.936s-2.321-.7-2.321-1.936v-12.462c0-1.549.464-2.013 2.012-2.168a2.28 2.28 0 0 1 2.398 2.091m-22.13 6.269a7.28 7.28 0 0 1 2.863-6.891c4.178-3.252 10.833-1.24 11.92 3.872a14.45 14.45 0 0 1 0 6.04c-.619 3.252-4.024 5.653-7.351 5.575a7.634 7.634 0 0 1-7.274-5.807 10.8 10.8 0 0 1-.158-2.789m10.524.078a8.4 8.4 0 0 1-.077-1.394 2.9 2.9 0 1 0-5.8-.077 19 19 0 0 0 0 2.942 3.215 3.215 0 0 0 2.708 2.942 2.945 2.945 0 0 0 2.94-2.323 16 16 0 0 0 .229-2.09m38.685 1.24a3.29 3.29 0 0 0 3.327 3.639 8.16 8.16 0 0 0 3.792-1.007 1.79 1.79 0 0 1 2.63 1.936 2.44 2.44 0 0 1-.851 1.316 7.26 7.26 0 0 1-4.489 1.471 10.2 10.2 0 0 1-5.8-1.316 6.82 6.82 0 0 1-3.327-6.04c0-1.084.077-2.168.077-3.252 0-3.407 3.714-6.969 8.357-6.427a6.6 6.6 0 0 1 6.114 4.8 7 7 0 0 1 .154 2.555c-.154 1.7-.927 2.323-2.63 2.323h-7.354Zm0-2.788h4.41c.387 0 1.084-.155 1.162-.31a2.9 2.9 0 0 0-.155-1.626 3.14 3.14 0 0 0-3.637-1.007c-1.39.388-1.932 1.239-1.78 2.943m17.024-2.865v6.814c0 1.316.465 1.7 1.858 1.7h1.316a1.98 1.98 0 0 1 2.011 1.936 1.864 1.864 0 0 1-1.779 2.168 18.5 18.5 0 0 1-4.641-.461 4.33 4.33 0 0 1-3.25-4.336c-.077-5.653 0-11.305 0-17.035a1.48 1.48 0 0 1 .542-1.084 3.02 3.02 0 0 1 3.482 0 2.04 2.04 0 0 1 .542 1.161c.077 1.7 0 3.407 0 5.265h3.327c1.316 0 1.858.542 1.858 1.858s-.542 1.858-1.858 1.858h-3.1c-.073.078-.151.078-.308.156m-76.293 4.413v1.316c0 2.4 1.548 3.33 3.792 3.1a8 8 0 0 0 1.934-.619 1.981 1.981 0 0 1 2.012 3.407 7.92 7.92 0 0 1-5.262 1.316 9.7 9.7 0 0 1-2.089-.31 6.19 6.19 0 0 1-4.875-5.885 30 30 0 0 1 .077-5.265c.464-3.485 3.018-5.42 6.887-5.575a7.6 7.6 0 0 1 5.108 1.31 1.838 1.838 0 0 1 .542 2.71 1.7 1.7 0 0 1-2.321.852 9.5 9.5 0 0 0-2.94-.619c-1.78-.078-2.786 1.007-2.863 2.865a8.4 8.4 0 0 0-.002 1.397&quot;&gt;&lt;/path&gt;&lt;use xlink:href=&quot;#comet-icon&quot; transform=&quot;translate(159 293.118)&quot;&gt;&lt;/use&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/stevennevins&quot;&gt;&lt;img src=&quot;https://knip.dev/sponsors/stevennevins.jpg&quot; alt=&quot;Steven Nevins&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/section&gt;
&lt;div&gt;&lt;h2 id=&quot;acknowledgements&quot;&gt;Acknowledgements&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Thanks to Joshua Goldberg for &lt;a href=&quot;https://www.emojiblast.dev&quot;&gt;emoji-blast&lt;/a&gt;! 🎉&lt;/p&gt;</content:encoded><category>Update</category></item><item><title>Announcing Knip v5</title><link>https://knip.dev/blog/knip-v5</link><guid isPermaLink="true">https://knip.dev/blog/knip-v5</guid><description>Learn what&apos;s new in Knip v5.</description><pubDate>Sat, 10 Feb 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Today brings the smallest major release so far. Tiny yet mighty!&lt;/p&gt;
&lt;p&gt;Below are two cases to demonstrate the change in how unused exports are
reported.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;case-1&quot;&gt;Case 1&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;The first case shows two exports with a namespaced import that references one of
those exports explicitly:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;knip.js&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;version&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;v5&apos;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;getRocket&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; () &lt;/span&gt;&lt;span&gt;=&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;🚀&apos;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;index.js&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;as&lt;/span&gt;&lt;span&gt; NS &lt;/span&gt;&lt;span&gt;from&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;./knip.js&apos;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;console&lt;/span&gt;&lt;span&gt;.log&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;NS&lt;/span&gt;&lt;span&gt;.version);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;In this case we see that &lt;code dir=&quot;auto&quot;&gt;getRocket&lt;/code&gt; is an unused export.&lt;/p&gt;
&lt;p&gt;Previously it would go into the “Unused exports in namespaces” category
(&lt;code dir=&quot;auto&quot;&gt;nsExports&lt;/code&gt;). This issue has been moved to the “Unused exports” category
(&lt;code dir=&quot;auto&quot;&gt;exports&lt;/code&gt;).&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;case-2&quot;&gt;Case 2&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;The second case is similar, but only the imported namespace itself is
referenced. None of the individual exports is referenced:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;index.js&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;as&lt;/span&gt;&lt;span&gt; NS &lt;/span&gt;&lt;span&gt;from&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;./knip.js&apos;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt; send &lt;/span&gt;&lt;span&gt;from&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;stats&apos;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;send&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;NS&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Are the &lt;code dir=&quot;auto&quot;&gt;version&lt;/code&gt; and &lt;code dir=&quot;auto&quot;&gt;getRocket&lt;/code&gt; exports used? We can’t know. The same is true
for the spread object pattern:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;index.js&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;as&lt;/span&gt;&lt;span&gt; NS &lt;/span&gt;&lt;span&gt;from&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;./knip.js&apos;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Spread&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; { &lt;/span&gt;&lt;span&gt;...&lt;/span&gt;&lt;span&gt;NS&lt;/span&gt;&lt;span&gt; };&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Previously those exports would go into the “Unused exports in namespaces”
category. This is still the case, but this category is no longer enabled by
default.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;include-unused-exports-in-namespaces&quot;&gt;Include unused exports in namespaces&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;To enable this type of issues in Knip v5, add this argument to the command:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;knip&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;--include&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;nsExports&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Or in your configuration file:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;knip.json&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;&quot;include&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span&gt;&quot;nsExports&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;nsTypes&quot;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Now &lt;code dir=&quot;auto&quot;&gt;version&lt;/code&gt; and &lt;code dir=&quot;auto&quot;&gt;getRocket&lt;/code&gt; will be reported as “Unused exports in
namespaces”.&lt;/p&gt;
&lt;p&gt;Note that &lt;code dir=&quot;auto&quot;&gt;nsExports&lt;/code&gt; and &lt;code dir=&quot;auto&quot;&gt;nsTypes&lt;/code&gt; are split for more granular control.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;handling-exports-in-namespaced-imports&quot;&gt;Handling exports in namespaced imports&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;You have a few options to handle namespaced imports when it comes to unused
exports.&lt;/p&gt;
&lt;div&gt;&lt;h3 id=&quot;1-use-named-imports&quot;&gt;1. Use named imports&lt;/h3&gt;&lt;/div&gt;
&lt;p&gt;Regardless of whether &lt;code dir=&quot;auto&quot;&gt;nsExports&lt;/code&gt; is enabled or not, it’s often good practice to
replace the namespaced imports with named imports:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;index.js&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt; { version&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt; getRocket } &lt;/span&gt;&lt;span&gt;from&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;./knip.js&apos;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;send&lt;/span&gt;&lt;span&gt;({ version&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt; getRocket });&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Whenever possible, explicit over implicit is often the better choice.&lt;/p&gt;
&lt;div&gt;&lt;h3 id=&quot;2-standardized-jsdoc-tags&quot;&gt;2. Standardized JSDoc tags&lt;/h3&gt;&lt;/div&gt;
&lt;p&gt;Using one of the available JSDoc tags like &lt;code dir=&quot;auto&quot;&gt;@public&lt;/code&gt; or &lt;code dir=&quot;auto&quot;&gt;@internal&lt;/code&gt;:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;knip.js&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;version&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;v5&apos;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;/** &lt;/span&gt;&lt;span&gt;@public&lt;/span&gt;&lt;span&gt; */&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;getRocket&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; () &lt;/span&gt;&lt;span&gt;=&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;🚀&apos;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Assuming only imported using a namespace (like in the example cases above), this
will exclude the &lt;code dir=&quot;auto&quot;&gt;getRocket&lt;/code&gt; export from the report, even though it isn’t
explicitly referenced.&lt;/p&gt;
&lt;div&gt;&lt;h3 id=&quot;3-arbitrary-jsdoc-tags&quot;&gt;3. Arbitrary JSDoc tags&lt;/h3&gt;&lt;/div&gt;
&lt;p&gt;Another solution is to tag individual exports arbitrarily:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;knip.js&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;version&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;v5&apos;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;/** &lt;/span&gt;&lt;span&gt;@launch&lt;/span&gt;&lt;span&gt; */&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;getRocket&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; () &lt;/span&gt;&lt;span&gt;=&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;🚀&apos;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;And then exclude the tag like so:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;$&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;--experimental-tags=-launch&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;Exports&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;in&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;used&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;namespace&lt;/span&gt;&lt;span&gt; (1)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;version&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;NS&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;unknown&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;knip.js:1:1&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Assuming only imported using a namespace (like in the example cases above), this
will exclude the &lt;code dir=&quot;auto&quot;&gt;getRocket&lt;/code&gt; export from the report, even though it isn’t
explicitly referenced.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;a-better-default&quot;&gt;A better default&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;I believe this behavior in v5 is the better default: have all exports you want
to know about in a single category, and those you probably want to ignore in
another that’s disabled by default.&lt;/p&gt;
&lt;p&gt;Before the &lt;a href=&quot;../blog/slim-down-to-speed-up&quot;&gt;v4 refactoring&lt;/a&gt;, this would be a lot harder to implement. That
refactoring turns out to be a better investment than expected. Combined with a
better understanding of how people write code and use Knip, this change is a
natural iteration.&lt;/p&gt;
&lt;p&gt;Why the major bump? It’s not breaking for the large majority of users, but for
some it may be breaking. For instance when relying on the &lt;a href=&quot;../features/reporters#json&quot;&gt;JSON reporter&lt;/a&gt;,
other reporter output, or custom &lt;a href=&quot;../features/reporters#preprocessors&quot;&gt;preprocessing&lt;/a&gt;. It’s not a bug fix, it’s
not a new feature, but since semver is all about setting expectations I feel the
change is large enough to warrant a major bump.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;lets-go&quot;&gt;Let’s Go!&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;What are you waiting for? Start using Knip v5 today!&lt;/p&gt;
&lt;starlight-tabs data-sync-key=&quot;pm&quot;&gt;&lt;div&gt;&lt;ul role=&quot;tablist&quot;&gt;&lt;li role=&quot;presentation&quot;&gt;&lt;a role=&quot;tab&quot; href=&quot;#tab-panel-0-0&quot; id=&quot;tab-0-0&quot; aria-selected=&quot;true&quot; tabindex=&quot;0&quot;&gt;npm&lt;/a&gt;&lt;/li&gt;&lt;li role=&quot;presentation&quot;&gt;&lt;a role=&quot;tab&quot; href=&quot;#tab-panel-0-1&quot; id=&quot;tab-0-1&quot; aria-selected=&quot;false&quot; tabindex=&quot;-1&quot;&gt;pnpm&lt;/a&gt;&lt;/li&gt;&lt;li role=&quot;presentation&quot;&gt;&lt;a role=&quot;tab&quot; href=&quot;#tab-panel-0-2&quot; id=&quot;tab-0-2&quot; aria-selected=&quot;false&quot; tabindex=&quot;-1&quot;&gt;bun&lt;/a&gt;&lt;/li&gt;&lt;li role=&quot;presentation&quot;&gt;&lt;a role=&quot;tab&quot; href=&quot;#tab-panel-0-3&quot; id=&quot;tab-0-3&quot; aria-selected=&quot;false&quot; tabindex=&quot;-1&quot;&gt;yarn&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div id=&quot;tab-panel-0-0&quot; aria-labelledby=&quot;tab-0-0&quot; role=&quot;tabpanel&quot;&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;npm&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;install&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-D&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;tab-panel-0-1&quot; aria-labelledby=&quot;tab-0-1&quot; role=&quot;tabpanel&quot; hidden&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;pnpm&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;add&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-D&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;tab-panel-0-2&quot; aria-labelledby=&quot;tab-0-2&quot; role=&quot;tabpanel&quot; hidden&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;bun&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;add&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-D&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;tab-panel-0-3&quot; aria-labelledby=&quot;tab-0-3&quot; role=&quot;tabpanel&quot; hidden&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;yarn&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;add&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-D&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;starlight-tabs-restore&gt;&lt;/starlight-tabs-restore&gt;&lt;/starlight-tabs&gt;
&lt;p&gt;Remember, Knip it before you ship it! Have a great day ☀️&lt;/p&gt;</content:encoded><category>Announcement</category></item><item><title>Announcing Knip v4</title><link>https://knip.dev/blog/knip-v4</link><guid isPermaLink="true">https://knip.dev/blog/knip-v4</guid><description>Learn what&apos;s new in Knip v4.</description><pubDate>Tue, 16 Jan 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I’m happy to announce that Knip v4 is available!&lt;/p&gt;
&lt;p&gt;The work took over a month and the process of &lt;a href=&quot;./slim-down-to-speed-up&quot;&gt;slimming down to speed up&lt;/a&gt;
ended up really well: significant faster runs and reduced memory usage. In the
meantime, v3 continued to receive more contributions, plugins and bug fixes.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;highlights&quot;&gt;Highlights&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Compared to v3, here are the highlights:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Performance: significant speed bump (up to 80%!)&lt;/li&gt;
&lt;li&gt;Performance: globbing in combo with &lt;code dir=&quot;auto&quot;&gt;.gitignore&lt;/code&gt; is a lot more efficient&lt;/li&gt;
&lt;li&gt;Configuration: &lt;a href=&quot;../features/compilers&quot;&gt;built-in compilers&lt;/a&gt; (for Astro, MDX, Svelte &amp;#x26; Vue)&lt;/li&gt;
&lt;li&gt;The &lt;code dir=&quot;auto&quot;&gt;ignore&lt;/code&gt; option has been improved&lt;/li&gt;
&lt;li&gt;Internal refactoring to serialize data for future improvements like caching.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The actual performance win in your projects depends on various factors like size
and complexity.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;major-changes&quot;&gt;Major Changes&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;The changes have been tested against various repositories, but it’s possible
that you will encounter false positives caused by the major refactoring that has
been done. If you do, &lt;a href=&quot;../guides/issue-reproduction&quot;&gt;please report&lt;/a&gt;!&lt;/p&gt;
&lt;div&gt;&lt;h3 id=&quot;unused-class-members&quot;&gt;Unused Class Members&lt;/h3&gt;&lt;/div&gt;
&lt;p&gt;Finding unused class members is no longer enabled by default. Here’s why it’s
now opt-in:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;When using Knip for the first time on a large repository it can crash after a
while with an out of memory error. This is a terrible experience.&lt;/li&gt;
&lt;li&gt;Plenty of codebases don’t use classes at all, keeping TS programs in memory is
a waste of resources.&lt;/li&gt;
&lt;li&gt;Many configurations already exclude &lt;code dir=&quot;auto&quot;&gt;classMembers&lt;/code&gt; from the output.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Enable unused class members by using the CLI argument or the configuration
option:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;knip&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;--include&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;classMembers&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;&quot;include&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span&gt;&quot;classMembers&quot;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Now that unused class members is opt-in and better organized within Knip, it
might be interesting to start looking at opt-ins for other unused members, such
as those of types and interfaces.&lt;/p&gt;
&lt;p&gt;By the way, enum members are “cheap” with the v4 refactor, so those are still
included by default.&lt;/p&gt;
&lt;div&gt;&lt;h3 id=&quot;compilers&quot;&gt;Compilers&lt;/h3&gt;&lt;/div&gt;
&lt;p&gt;You can remove the &lt;code dir=&quot;auto&quot;&gt;compilers&lt;/code&gt; option from your configuration. Since you can
override them, your custom compilers can stay where they are. This also means
that you can go back from &lt;code dir=&quot;auto&quot;&gt;knip.ts&lt;/code&gt; to &lt;code dir=&quot;auto&quot;&gt;knip.json&lt;/code&gt; if you prefer.&lt;/p&gt;
&lt;div&gt;&lt;h3 id=&quot;ignore-files&quot;&gt;Ignore Files&lt;/h3&gt;&lt;/div&gt;
&lt;p&gt;The &lt;code dir=&quot;auto&quot;&gt;ignore&lt;/code&gt; option accepted patterns like &lt;code dir=&quot;auto&quot;&gt;examples/&lt;/code&gt;, but if you want to
ignore the files inside this folder you should update to globs like
&lt;code dir=&quot;auto&quot;&gt;examples/**&lt;/code&gt;.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;whats-next&quot;&gt;What’s Next?&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;The refactoring for this release opens the door to more optimizations, such as
caching. I’m also very excited to see how deeper integrations such as in GitHub
Actions or IDEs like VS Code or WebStorm may further develop.&lt;/p&gt;
&lt;p&gt;Remember, if you are you using Knip at work your company can &lt;a href=&quot;https://github.com/sponsors/webpro&quot;&gt;sponsor me&lt;/a&gt;!&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;one-more-thing&quot;&gt;One More Thing…&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;An idea I’ve been toying with is “tagged exports”. The idea is that you can tag
exports in a JSDoc comment. The tag does not need to be part of the JSDoc or
TSDoc spec. For example:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;/** &lt;/span&gt;&lt;span&gt;@custom&lt;/span&gt;&lt;span&gt; */&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;myExport&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Then, include or exclude such tagged exports from the report like so:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;knip&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;--experimental-tags=+custom&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;knip&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;--experimental-tags=-custom,-internal&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;This way, you can either focus on or ignore specific tagged exports with tags
you define yourself. This also works for individual class or enum members.&lt;/p&gt;
&lt;p&gt;Once this feature is intuitive and stable, the &lt;code dir=&quot;auto&quot;&gt;experimental&lt;/code&gt; flag will be
removed and option(s) added to the Knip configuration file. The docs are in the
&lt;a href=&quot;../reference/cli#--tags&quot;&gt;CLI reference&lt;/a&gt;.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;lets-go&quot;&gt;Let’s Go!&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;What are you waiting for? Start using Knip v4 today!&lt;/p&gt;
&lt;starlight-tabs data-sync-key=&quot;pm&quot;&gt;&lt;div&gt;&lt;ul role=&quot;tablist&quot;&gt;&lt;li role=&quot;presentation&quot;&gt;&lt;a role=&quot;tab&quot; href=&quot;#tab-panel-0-0&quot; id=&quot;tab-0-0&quot; aria-selected=&quot;true&quot; tabindex=&quot;0&quot;&gt;npm&lt;/a&gt;&lt;/li&gt;&lt;li role=&quot;presentation&quot;&gt;&lt;a role=&quot;tab&quot; href=&quot;#tab-panel-0-1&quot; id=&quot;tab-0-1&quot; aria-selected=&quot;false&quot; tabindex=&quot;-1&quot;&gt;pnpm&lt;/a&gt;&lt;/li&gt;&lt;li role=&quot;presentation&quot;&gt;&lt;a role=&quot;tab&quot; href=&quot;#tab-panel-0-2&quot; id=&quot;tab-0-2&quot; aria-selected=&quot;false&quot; tabindex=&quot;-1&quot;&gt;bun&lt;/a&gt;&lt;/li&gt;&lt;li role=&quot;presentation&quot;&gt;&lt;a role=&quot;tab&quot; href=&quot;#tab-panel-0-3&quot; id=&quot;tab-0-3&quot; aria-selected=&quot;false&quot; tabindex=&quot;-1&quot;&gt;yarn&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div id=&quot;tab-panel-0-0&quot; aria-labelledby=&quot;tab-0-0&quot; role=&quot;tabpanel&quot;&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;npm&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;install&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-D&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;tab-panel-0-1&quot; aria-labelledby=&quot;tab-0-1&quot; role=&quot;tabpanel&quot; hidden&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;pnpm&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;add&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-D&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;tab-panel-0-2&quot; aria-labelledby=&quot;tab-0-2&quot; role=&quot;tabpanel&quot; hidden&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;bun&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;add&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-D&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;tab-panel-0-3&quot; aria-labelledby=&quot;tab-0-3&quot; role=&quot;tabpanel&quot; hidden&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;yarn&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;add&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-D&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;starlight-tabs-restore&gt;&lt;/starlight-tabs-restore&gt;&lt;/starlight-tabs&gt;
&lt;p&gt;Remember, Knip it before you ship it! Have a great day ☀️&lt;/p&gt;</content:encoded><category>Announcement</category></item><item><title>Slim down to speed up</title><link>https://knip.dev/blog/slim-down-to-speed-up</link><guid isPermaLink="true">https://knip.dev/blog/slim-down-to-speed-up</guid><pubDate>Thu, 14 Dec 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;tl;dr;&lt;/strong&gt; Memory usage is up to 50% lower, runs are up to 60% faster and you
can start using v4 canary today. No “unused class members” for the time being,
but this feature is planned to be restored.&lt;/p&gt;

&lt;div&gt;&lt;h2 id=&quot;introduction&quot;&gt;Introduction&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Honestly, performance has always been a challenge for Knip. A longstanding
bottleneck has finally been eliminated and Knip is going to be a lot faster.
Skip straight to the bottom to install v4 canary and try it out! Or grab
yourself a nice drink and read on if you’re interested in where we are coming
from, and where we are heading.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;projects--workspaces&quot;&gt;Projects &amp;#x26; Workspaces&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;From the start, Knip has relied on TypeScript for its robust parser for
JavaScript and TypeScript files. And on lots of machinery important to Knip,
like module resolution and accurately finding references to exported values.
Parts of it can be customized, such as the (virtual) file system and the module
resolver.&lt;/p&gt;
&lt;p&gt;In TypeScript terms, a “project” is like a workspace in a monorepo. Same as each
workspace has a &lt;code dir=&quot;auto&quot;&gt;package.json&lt;/code&gt;, each project has a &lt;code dir=&quot;auto&quot;&gt;tsconfig.json&lt;/code&gt;. The
&lt;code dir=&quot;auto&quot;&gt;ts.createProgram()&lt;/code&gt; method is used to create a program based on a
&lt;code dir=&quot;auto&quot;&gt;tsconfig.json&lt;/code&gt; and the machinery starts to read and parse source code files,
resolve modules, and so on.&lt;/p&gt;
&lt;p&gt;Up until v2, when Knip wanted to find unused things in a monorepo, all programs
for all workspaces were loaded into memory. Workspaces often depend on each
other, so Knip couldn’t load one project, analyze it and dispose it. This way,
connections across workspaces would be lost.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;shared-workspaces&quot;&gt;Shared Workspaces&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Knip v2 said goodbye to this approach and implemented its own TypeScript backend
(after using &lt;code dir=&quot;auto&quot;&gt;ts-morph&lt;/code&gt; for this). Based on the compatibility of
&lt;code dir=&quot;auto&quot;&gt;compilerOptions&lt;/code&gt;, workspaces were merged into shared programs whenever
possible. Having less programs in memory led to significant performance
improvements. Yet ultimately it was still a stopgap, since everything was still
kept in memory for the duration of the process.&lt;/p&gt;
&lt;p&gt;“Why does everything need to stay in memory?”, you may wonder. The answer is
that Knip uses &lt;code dir=&quot;auto&quot;&gt;findReferences&lt;/code&gt; at the end of the process. Knip relied on this
TypeScript Language Server method for everything that’s not easy to find. More
about that later in &lt;a href=&quot;#the-story-of-findreferences&quot;&gt;the story of findReferences&lt;/a&gt;&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;serialization&quot;&gt;Serialization&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Fortunately, everything that’s imported and exported from source files
(including things like members of namespaces and enums) can be found relatively
easily during AST traversal. This way, references to exports don’t have to be
“traced back” later on.&lt;/p&gt;
&lt;p&gt;It’s mostly class members that are harder to find due to their dynamic nature.
Without these, all information can be serialized for storage and retrieval (in
memory or on disk). Slimming down by taking class members out of the equation
simplifies things a lot and paves the way for all sorts of improvements.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;we-have-to-slim-down&quot;&gt;We Have To Slim Down&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;The relevant part in the linting process can be summarized in 5 steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Collect entry files and feed them to TypeScript&lt;/li&gt;
&lt;li&gt;Read files, resolve modules, and create ASTs&lt;/li&gt;
&lt;li&gt;Traverse ASTs and collect imports &amp;#x26; exports&lt;/li&gt;
&lt;li&gt;Match exports against imports to determine what’s unused&lt;/li&gt;
&lt;li&gt;Find references to hard-to-find exported values and members&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If we would hold on to reporting unused class members, then especially steps 2
and 5 are hard to decouple. The program and the language service containing the
source files used to eventually trace back references can’t really be decoupled.
So class members had to go. Sometimes you have to slim down to keep moving. One
step back, two steps forward.&lt;/p&gt;
&lt;p&gt;If you rely on this feature, fear not. I plan to bring it back before the final
v4, but possibly behind a flag.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;whats-in-store&quot;&gt;What’s In Store?&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;So with this out of the way, everything becomes a lot clearer and we can finally
really start thinking about significant memory and performance improvements. So
what’s in store here? A lot!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We no longer need to keep everything in memory, so workspaces are read and
disposed in isolation, one at a time. Memory usage will be spread out more
even. This does not make it faster, but reducing “out of memory” issues is
definitely a Good Thing™️ in my book.&lt;/li&gt;
&lt;li&gt;Knip could recover from unexpected exits and continue from the last completed
workspace.&lt;/li&gt;
&lt;li&gt;The imports and exports are in a format that can be serialized for storage and
retrieval. This opens up interesting opportunities, such as local caching on
disk, skipping work in subsequent runs, remote caching, and so on.&lt;/li&gt;
&lt;li&gt;Handling workspaces in isolation and serialization result in parallelization
becoming a possibility. This becomes essential, as module resolution and AST
creation and traversal are now the slowest parts of the process and are not
easy to optimize significantly (unless perhaps switching to e.g Rust).&lt;/li&gt;
&lt;li&gt;No longer relying on &lt;code dir=&quot;auto&quot;&gt;findReferences&lt;/code&gt; speeds up the export/import matching
part part significantly. So far I’ve seen &lt;strong&gt;improvements of up to 60% on total
runtime&lt;/strong&gt;, and my guess is that some larger codebases may profit even more.&lt;/li&gt;
&lt;li&gt;The serialization format is still being explored and there is no caching yet,
but having the steps more decoupled is another Good Thing™️ that future me
should be happy about.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;back-it-up-please&quot;&gt;Back It Up, Please&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;I heard you. Here’s some example data. You can get it directly from Knip using
the &lt;code dir=&quot;auto&quot;&gt;--performance&lt;/code&gt; flag when running it on any codebase. Below we have some
data after linting the &lt;a href=&quot;https://github.com/remix-run/remix&quot;&gt;Remix monorepo&lt;/a&gt;.&lt;/p&gt;
&lt;div&gt;&lt;h3 id=&quot;knip-v3&quot;&gt;Knip v3&lt;/h3&gt;&lt;/div&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;$&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;--performance&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;Name&lt;/span&gt;&lt;span&gt;                           &lt;/span&gt;&lt;span&gt;size&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;min&lt;/span&gt;&lt;span&gt;     &lt;/span&gt;&lt;span&gt;max&lt;/span&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;median&lt;/span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span&gt;sum&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;-----------------------------&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;----&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;------&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;-------&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;-------&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;-------&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;findReferences&lt;/span&gt;&lt;span&gt;                  &lt;/span&gt;&lt;span&gt;223&lt;/span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;0.55&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;2252.35&lt;/span&gt;&lt;span&gt;     &lt;/span&gt;&lt;span&gt;8.46&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;5826.95&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;createProgram&lt;/span&gt;&lt;span&gt;                     &lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span&gt;50.78&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;1959.92&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;1005.35&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;2010.70&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;getTypeChecker&lt;/span&gt;&lt;span&gt;                    &lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;5.04&lt;/span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span&gt;667.45&lt;/span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span&gt;336.24&lt;/span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span&gt;672.48&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;getImportsAndExports&lt;/span&gt;&lt;span&gt;            &lt;/span&gt;&lt;span&gt;396&lt;/span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;0.00&lt;/span&gt;&lt;span&gt;     &lt;/span&gt;&lt;span&gt;7.19&lt;/span&gt;&lt;span&gt;     &lt;/span&gt;&lt;span&gt;0.11&lt;/span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span&gt;104.46&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;Total&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;running&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;time:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;9.7s&lt;/span&gt;&lt;span&gt; (mem: &lt;/span&gt;&lt;span&gt;1487.39MB&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div&gt;&lt;h3 id=&quot;knip-v4&quot;&gt;Knip v4&lt;/h3&gt;&lt;/div&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;$&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;--performance&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;...&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;Name&lt;/span&gt;&lt;span&gt;                           &lt;/span&gt;&lt;span&gt;size&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;min&lt;/span&gt;&lt;span&gt;     &lt;/span&gt;&lt;span&gt;max&lt;/span&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;median&lt;/span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span&gt;sum&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;-----------------------------&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;----&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;------&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;-------&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;-------&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;-------&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;createProgram&lt;/span&gt;&lt;span&gt;                     &lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span&gt;54.36&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;2138.45&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;1096.40&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;2192.81&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;getTypeChecker&lt;/span&gt;&lt;span&gt;                    &lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;7.40&lt;/span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span&gt;664.83&lt;/span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span&gt;336.12&lt;/span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span&gt;672.23&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;getImportsAndExports&lt;/span&gt;&lt;span&gt;            &lt;/span&gt;&lt;span&gt;396&lt;/span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;0.00&lt;/span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;36.36&lt;/span&gt;&lt;span&gt;     &lt;/span&gt;&lt;span&gt;0.16&lt;/span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span&gt;224.37&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;getSymbolAtLocation&lt;/span&gt;&lt;span&gt;            &lt;/span&gt;&lt;span&gt;2915&lt;/span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;0.00&lt;/span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;29.71&lt;/span&gt;&lt;span&gt;     &lt;/span&gt;&lt;span&gt;0.00&lt;/span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;65.63&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;Total&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;running&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;time:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;4.3s&lt;/span&gt;&lt;span&gt; (mem: &lt;/span&gt;&lt;span&gt;729.67MB&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div&gt;&lt;h3 id=&quot;takeaways&quot;&gt;Takeaways&lt;/h3&gt;&lt;/div&gt;
&lt;p&gt;The main takeaways here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In v3,&lt;code dir=&quot;auto&quot;&gt;findReferences&lt;/code&gt; is where Knip potentially spends most of its time&lt;/li&gt;
&lt;li&gt;In v4, total running time is down over 50%&lt;/li&gt;
&lt;li&gt;In v4, memory usage is down 50% (calculated using
&lt;code dir=&quot;auto&quot;&gt;process.memoryUsage().heapUsage&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;In v4, &lt;code dir=&quot;auto&quot;&gt;getImportsAndExports&lt;/code&gt; is more comprehensive to compensate for the
absence of &lt;code dir=&quot;auto&quot;&gt;findReferences&lt;/code&gt; - more on that below&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Remember, unused class members are no longer reported by default in v4.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;the-story-of-findreferences&quot;&gt;The story of &lt;code dir=&quot;auto&quot;&gt;findReferences&lt;/code&gt;&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Did I mention Knip uses &lt;code dir=&quot;auto&quot;&gt;findReferences&lt;/code&gt;…? Knip relied on it for everything
that’s not easy to find. Here’s an example of an export/import match that &lt;strong&gt;is&lt;/strong&gt;
easy to find:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;import.ts&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt; { MyThing } &lt;/span&gt;&lt;span&gt;from&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;./thing.ts&apos;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;export.ts&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;MyThing&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;cool&apos;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;In v2 and v3, Knip collects many of such easy patterns. Other patterns are
harder to find with static analysis. This is especially true for class members.
Let’s take a look at the next example:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;MyClass.ts&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;class&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;MyClass&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;constructor&lt;/span&gt;&lt;span&gt;() {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.method&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;method&lt;/span&gt;&lt;span&gt;() {}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;do&lt;/span&gt;&lt;span&gt;() {}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;OtherName&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; MyClass;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;instance.ts&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;as&lt;/span&gt;&lt;span&gt; MyNamespace &lt;/span&gt;&lt;span&gt;from&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;./MyClass.ts&apos;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; { &lt;/span&gt;&lt;span&gt;OtherName&lt;/span&gt;&lt;span&gt; } &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; MyNamespace;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;instance&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;OtherName&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;instance&lt;/span&gt;&lt;span&gt;.do&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Without a call or &lt;code dir=&quot;auto&quot;&gt;new&lt;/code&gt; expression to instantiate &lt;code dir=&quot;auto&quot;&gt;OtherName&lt;/code&gt;, its &lt;code dir=&quot;auto&quot;&gt;method&lt;/code&gt;
member would not be used (since the constructor would not be executed). To
figure this out using static analysis goes a long way. Through export
declarations, import declarations, aliases, initializers, call expressions…
the list goes on and on. Yet all this magic is exactly what happens when you use
“Find all references” or “Go to definition” in VS Code.&lt;/p&gt;
&lt;p&gt;Knip used &lt;code dir=&quot;auto&quot;&gt;findReferences&lt;/code&gt; extensively, but it’s what makes a part of Knip
rather slow. TypeScript needs to wire things up (through
&lt;code dir=&quot;auto&quot;&gt;ts.createLanguageService&lt;/code&gt; and &lt;code dir=&quot;auto&quot;&gt;program.getTypeChecker&lt;/code&gt;) before it can use this,
and then it tries hard to find all references to anything you throw at it. It
does this very well, but the more class members, enum members and namespaced
imports your codebase has, the longer it inevitably takes to complete the
process.&lt;/p&gt;
&lt;p&gt;Besides letting go of class members, a slightly more comprehensive AST traversal
is required to compensate for the absence of &lt;code dir=&quot;auto&quot;&gt;findReferences&lt;/code&gt; (it’s the
&lt;code dir=&quot;auto&quot;&gt;getImportsAndExports&lt;/code&gt; function in the metrics above). I’d like to give you an
idea of what “more comprehensive” means here.&lt;/p&gt;
&lt;p&gt;In the following example, &lt;code dir=&quot;auto&quot;&gt;referencedExport&lt;/code&gt; was stored as export from
&lt;code dir=&quot;auto&quot;&gt;namespace.ts&lt;/code&gt;, but it was not imported directly as such:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;namespace.ts&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;referencedExport&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; () &lt;/span&gt;&lt;span&gt;=&gt;&lt;/span&gt;&lt;span&gt; {};&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;index.ts&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;as&lt;/span&gt;&lt;span&gt; NS &lt;/span&gt;&lt;span&gt;from&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;./namespace.ts&apos;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;NS&lt;/span&gt;&lt;span&gt;.referencedExport&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Previously, Knip used &lt;code dir=&quot;auto&quot;&gt;findReferences()&lt;/code&gt; to “trace back” the usage of the
exported &lt;code dir=&quot;auto&quot;&gt;referencedExport&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The gist of the optimization is to pre-determine all imports and exports. During
AST traversal of &lt;code dir=&quot;auto&quot;&gt;index.ts&lt;/code&gt; , Knip sees that &lt;code dir=&quot;auto&quot;&gt;referencedExport&lt;/code&gt; is attached to
the imported &lt;code dir=&quot;auto&quot;&gt;NS&lt;/code&gt; namespace, and stores that as an imported identifier of
&lt;code dir=&quot;auto&quot;&gt;namespace.ts&lt;/code&gt;. When matching exports against imports, this lookup comes at no
extra cost. Additionally, this can be stored as strings, so it can be serialized
too. And that means it can be cached.&lt;/p&gt;
&lt;p&gt;Knip already did this for trivial cases as shown in the first example of this
article. This has now been extended to cover more patterns. This is also what
needs to be tested more extensively before v4 can be released. Its own test
suite and the projects in the integration tests are already covered so we’re
well on our way.&lt;/p&gt;
&lt;p&gt;For the record, &lt;code dir=&quot;auto&quot;&gt;findReferences&lt;/code&gt; is an absolute gem of functionality provided by
TypeScript. Knip is still backed by TypeScript, and tries to speed things up by
shaking things off. In the end it’s all about trade-offs.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;lets-go&quot;&gt;Let’s Go!&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;You can start using Knip v4 today, feel free to try it out! You might find a
false positive that wasn’t there in v3, please &lt;a href=&quot;https://github.com/webpro-nl/knip/issues&quot;&gt;report this&lt;/a&gt;.&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;npm&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;install&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-D&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip@canary&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Remember, Knip it before you ship it! Have a great day ☀️&lt;/p&gt;</content:encoded><category>Update</category></item><item><title>A Brief History Of Knip</title><link>https://knip.dev/blog/brief-history</link><guid isPermaLink="true">https://knip.dev/blog/brief-history</guid><pubDate>Sun, 15 Oct 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;If you are fond of short lists and brief histories, then this page was written
just for you!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;2022-10-04: The &lt;a href=&quot;https://github.com/webpro-nl/knip/commit/9589dfe22608da7d89f2613383da6db5826226d2&quot;&gt;initial commit&lt;/a&gt;. Still so tiny at that point, but the seed
was planted. Starting out with finding unused files and exports, the name was
Exportman! 🦸&lt;/li&gt;
&lt;li&gt;2022-10-09: Big plans and a rename 5 days later, the first published version
of Knip was &lt;a href=&quot;https://github.com/webpro-nl/knip/tree/0.1.2&quot;&gt;v0.1.2&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;2022-11-22: Unused dependencies and support for workspaces and plugins in the
&lt;a href=&quot;https://github.com/webpro-nl/knip/releases/tag/1.0.0-alpha.0&quot;&gt;first alpha of v1&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;2023-01-10: Lots of testing and fixes led to &lt;a href=&quot;https://github.com/webpro-nl/knip/tree/1.0.0&quot;&gt;Knip v1&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;2023-03-22: &lt;a href=&quot;https://github.com/webpro-nl/knip/issues/73&quot;&gt;Knip v2&lt;/a&gt; saw a full rewrite of the TypeScript backend.&lt;/li&gt;
&lt;li&gt;2023-10-15: &lt;a href=&quot;./knip-v3&quot;&gt;Introduction of Knip v3&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;</content:encoded><category>History</category></item><item><title>Announcing Knip v3</title><link>https://knip.dev/blog/knip-v3</link><guid isPermaLink="true">https://knip.dev/blog/knip-v3</guid><description>Learn what&apos;s new in Knip v3.</description><pubDate>Sun, 15 Oct 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Lots of new users got introduced to Knip, coming with clear bug reports, helpful
insights, superb reproductions and great suggestions this year. You’re all a
friendly and helpful bunch! Recently I’ve opened a Discord channel where more
communication, collaboration, ideas and updates are happening: feel free to join
&lt;a href=&quot;https://discord.gg/r5uXTtbTpc&quot;&gt;The Knip Barn&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;Today, Knip has &lt;a href=&quot;https://www.npmjs.com/package/knip&quot;&gt;over 140k weekly downloads on npm&lt;/a&gt;, &lt;a href=&quot;https://github.com/webpro-nl/knip/stargazers&quot;&gt;almost 4000 stars on
GitHub&lt;/a&gt;, and &lt;a href=&quot;https://github.com/webpro-nl/knip/network/dependents&quot;&gt;over 500 repositories&lt;/a&gt; using it. While numbers are just
numbers, they do add to the positive feedback I’m receiving daily. Everything
combined makes me think I’m on the right track which is very motivating to keep
working on Knip.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;so-whats-been-cooking-lately&quot;&gt;So… What’s Been Cooking Lately?&lt;/h2&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Migration to a monorepo setup&lt;/li&gt;
&lt;li&gt;This very website built with Starlight 🌟&lt;/li&gt;
&lt;li&gt;Extended documentation for just about everything&lt;/li&gt;
&lt;li&gt;Improved JSON reporter for external integrations (e.g. &lt;a href=&quot;https://github.com/marketplace/actions/knip-reporter&quot;&gt;GitHub Action&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Some breaking changes, but you probably don’t need to make any changes&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;breaking-changes&quot;&gt;Breaking Changes&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;A major bump comes with breaking changes, but most likely no changes necessary
on your end:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Removed support for Node.js v16, Knip v3 requires at least Node.js v18.6&lt;/li&gt;
&lt;li&gt;Simplified &lt;a href=&quot;../reference/cli#--no-exit-code&quot;&gt;exit codes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;../features/production-mode&quot;&gt;Production mode&lt;/a&gt; now includes types by default (add &lt;code dir=&quot;auto&quot;&gt;--exclude types&lt;/code&gt; for
previous behavior)&lt;/li&gt;
&lt;li&gt;Removed &lt;code dir=&quot;auto&quot;&gt;--ignore-internal&lt;/code&gt; flag; &lt;a href=&quot;../reference/jsdoc-tsdoc-tags#internal&quot;&gt;&lt;code dir=&quot;auto&quot;&gt;@internal&lt;/code&gt;&lt;/a&gt; exports ignored in
production mode now&lt;/li&gt;
&lt;li&gt;The &lt;code dir=&quot;auto&quot;&gt;--debug-file-filter&lt;/code&gt; flag is removed&lt;/li&gt;
&lt;li&gt;The &lt;code dir=&quot;auto&quot;&gt;jsonExt&lt;/code&gt; reporter is now the default &lt;a href=&quot;../features/reporters#json&quot;&gt;JSON reporter&lt;/a&gt; (the previous one
is gone)&lt;/li&gt;
&lt;li&gt;Moved &lt;code dir=&quot;auto&quot;&gt;typescript&lt;/code&gt; to &lt;code dir=&quot;auto&quot;&gt;peerDependencies&lt;/code&gt; (requires &lt;code dir=&quot;auto&quot;&gt;&gt;=5.0.4&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;installation&quot;&gt;Installation&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Try out the latest Knip v3 release today!&lt;/p&gt;
&lt;starlight-tabs data-sync-key=&quot;pm&quot;&gt;&lt;div&gt;&lt;ul role=&quot;tablist&quot;&gt;&lt;li role=&quot;presentation&quot;&gt;&lt;a role=&quot;tab&quot; href=&quot;#tab-panel-0-0&quot; id=&quot;tab-0-0&quot; aria-selected=&quot;true&quot; tabindex=&quot;0&quot;&gt;npm&lt;/a&gt;&lt;/li&gt;&lt;li role=&quot;presentation&quot;&gt;&lt;a role=&quot;tab&quot; href=&quot;#tab-panel-0-1&quot; id=&quot;tab-0-1&quot; aria-selected=&quot;false&quot; tabindex=&quot;-1&quot;&gt;pnpm&lt;/a&gt;&lt;/li&gt;&lt;li role=&quot;presentation&quot;&gt;&lt;a role=&quot;tab&quot; href=&quot;#tab-panel-0-2&quot; id=&quot;tab-0-2&quot; aria-selected=&quot;false&quot; tabindex=&quot;-1&quot;&gt;bun&lt;/a&gt;&lt;/li&gt;&lt;li role=&quot;presentation&quot;&gt;&lt;a role=&quot;tab&quot; href=&quot;#tab-panel-0-3&quot; id=&quot;tab-0-3&quot; aria-selected=&quot;false&quot; tabindex=&quot;-1&quot;&gt;yarn&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div id=&quot;tab-panel-0-0&quot; aria-labelledby=&quot;tab-0-0&quot; role=&quot;tabpanel&quot;&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;npm&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;install&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-D&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;tab-panel-0-1&quot; aria-labelledby=&quot;tab-0-1&quot; role=&quot;tabpanel&quot; hidden&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;pnpm&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;add&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-D&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;tab-panel-0-2&quot; aria-labelledby=&quot;tab-0-2&quot; role=&quot;tabpanel&quot; hidden&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;bun&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;add&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-D&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;tab-panel-0-3&quot; aria-labelledby=&quot;tab-0-3&quot; role=&quot;tabpanel&quot; hidden&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;yarn&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;add&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-D&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;starlight-tabs-restore&gt;&lt;/starlight-tabs-restore&gt;&lt;/starlight-tabs&gt;
&lt;p&gt;Remember, Knip it before you ship it! Have a great day ☀️&lt;/p&gt;</content:encoded><category>Announcement</category></item><item><title>Announcing Knip v2</title><link>https://knip.dev/blog/knip-v2</link><guid isPermaLink="true">https://knip.dev/blog/knip-v2</guid><description>Learn what&apos;s new in Knip v2.</description><pubDate>Wed, 22 Mar 2023 00:00:00 GMT</pubDate><content:encoded>&lt;div&gt;&lt;h2 id=&quot;breaking-changes&quot;&gt;Breaking changes&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;When coming from v1, there are no breaking changes in terms of configuration.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;changes&quot;&gt;Changes&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;There are some changes regarding CLI arguments and output:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Knip now runs on every workspace automatically (except for the ones in
&lt;code dir=&quot;auto&quot;&gt;ignoreWorkspaces: []&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;The “Unlisted or unresolved dependencies” is split in “Unlisted dependencies”
and “Unresolved imports”.&lt;/li&gt;
&lt;li&gt;Bug fixes and increased correctness impact output (potentially causing CI to
now succeed or fail).&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;new-features&quot;&gt;New features&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Rewriting a major part of Knip’s core from scratch allows for some new exciting
features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Performance&lt;/strong&gt;. Files are read only once, and their ASTs are traversed only
once. Projects of any size will notice the difference. Total running time for
some projects decreases with 90%.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Compilers&lt;/strong&gt;. You can now include other file types such as &lt;code dir=&quot;auto&quot;&gt;.mdx&lt;/code&gt;, &lt;code dir=&quot;auto&quot;&gt;.vue&lt;/code&gt; and
&lt;code dir=&quot;auto&quot;&gt;.svelte&lt;/code&gt; in the analysis.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Internally, the &lt;code dir=&quot;auto&quot;&gt;ts-morph&lt;/code&gt; dependency is replaced by &lt;code dir=&quot;auto&quot;&gt;typescript&lt;/code&gt; itself.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;other-improvements&quot;&gt;Other improvements&lt;/h2&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Improved support for workspaces.&lt;/li&gt;
&lt;li&gt;Improved module resolutions, self-referencing imports, and other things you
don’t want to worry about.&lt;/li&gt;
&lt;li&gt;Configure &lt;code dir=&quot;auto&quot;&gt;ignoreDependencies&lt;/code&gt; and &lt;code dir=&quot;auto&quot;&gt;ignoreBinaries&lt;/code&gt; at the workspace level.&lt;/li&gt;
&lt;li&gt;Simplified plugins model: plugin dependency finder may now return any type of
dependency in a single array: npm packages, local workspace packages, local
files, etc. (module and path resolution are handled outside the plugin).&lt;/li&gt;
&lt;li&gt;Many bugfixes.&lt;/li&gt;
&lt;/ul&gt;</content:encoded><category>Announcement</category></item><item><title>Announcing Knip v1</title><link>https://knip.dev/blog/knip-v1</link><guid isPermaLink="true">https://knip.dev/blog/knip-v1</guid><description>Learn how to migrate to Knip v1.</description><pubDate>Wed, 04 Jan 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;When coming from version v0.13.3 or before, there are some breaking changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code dir=&quot;auto&quot;&gt;entryFiles&lt;/code&gt; and &lt;code dir=&quot;auto&quot;&gt;projectFiles&lt;/code&gt; options have been renamed to &lt;code dir=&quot;auto&quot;&gt;entry&lt;/code&gt; and
&lt;code dir=&quot;auto&quot;&gt;project&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The &lt;code dir=&quot;auto&quot;&gt;--dev&lt;/code&gt; argument and &lt;code dir=&quot;auto&quot;&gt;dev: true&lt;/code&gt; option are gone, this is now the default
mode (see &lt;a href=&quot;../features/production-mode&quot;&gt;production mode&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Workspaces have been moved from the root of the config to the &lt;code dir=&quot;auto&quot;&gt;workspaces&lt;/code&gt; key
(see &lt;a href=&quot;../features/monorepos-and-workspaces&quot;&gt;workspaces&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;The &lt;code dir=&quot;auto&quot;&gt;--dir&lt;/code&gt; argument has been renamed to &lt;code dir=&quot;auto&quot;&gt;--workspace&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;example&quot;&gt;Example&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;A configuration like this in v0.13.3 or before…&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;&quot;entryFiles&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span&gt;&quot;src/index.ts&quot;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;&quot;projectFiles&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span&gt;&quot;src/**/*.ts&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;!**/*.spec.ts&quot;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;&quot;dev&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;&quot;entryFiles&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span&gt;&quot;src/index.ts&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;src/**/*.spec.ts&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;src/**/*.e2e.ts&quot;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;&quot;projectFiles&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span&gt;&quot;src/**/*.ts&quot;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;…should become this for v1…&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;&quot;entry&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span&gt;&quot;src/index.ts!&quot;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;&quot;project&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span&gt;&quot;src/**/*.ts!&quot;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Much cleaner, right? For some more details:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code dir=&quot;auto&quot;&gt;dev&lt;/code&gt; property for the &lt;code dir=&quot;auto&quot;&gt;--dev&lt;/code&gt; flag is now the default mode.&lt;/li&gt;
&lt;li&gt;Use &lt;code dir=&quot;auto&quot;&gt;--production&lt;/code&gt; to analyze only the &lt;code dir=&quot;auto&quot;&gt;entry&lt;/code&gt; and &lt;code dir=&quot;auto&quot;&gt;project&lt;/code&gt; files suffixed
with &lt;code dir=&quot;auto&quot;&gt;!&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The glob patterns for both types of test files (&lt;code dir=&quot;auto&quot;&gt;*.spec.ts&lt;/code&gt; and &lt;code dir=&quot;auto&quot;&gt;*.e2e.ts&lt;/code&gt;)
are no longer needed:
&lt;ul&gt;
&lt;li&gt;Regular test files like &lt;code dir=&quot;auto&quot;&gt;*.test.js&lt;/code&gt; and &lt;code dir=&quot;auto&quot;&gt;*.spec.ts&lt;/code&gt; etc. are automatically
handled by Knip.&lt;/li&gt;
&lt;li&gt;The &lt;code dir=&quot;auto&quot;&gt;*.e2e.ts&lt;/code&gt; files is configured with the Cypress or other plugin. Note
that Cypress uses &lt;code dir=&quot;auto&quot;&gt;*.cy.ts&lt;/code&gt; for spec files, but this could be overridden
like so:&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;&quot;entry&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;src/index.ts!&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;&quot;project&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;src/**/*.ts!&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;&quot;cypress&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;&quot;entry&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;src/**/*.e2e.ts&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;</content:encoded><category>Announcement</category></item></channel></rss>