diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9a610913f00c8db8d2f5759fff0fab504e3d5d6f..ba775febd263bfad9cc9b78693bb3979a3e2393d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -77,6 +77,15 @@ don't see it, feel free to [open a new issue][open an issue]. [open an issue]: https://github.com/badges/shields/issues/new/choose +### Requesting new logos + +We consume logos via [the SimpleIcons project][simple-icons github], and +encourage you to contribute logos there. Please review their +[guidance][simple-icons contributing] before doing so. + +[simple-icons github]: https://github.com/simple-icons/simple-icons +[simple-icons contributing]: https://github.com/simple-icons/simple-icons/blob/develop/CONTRIBUTING.md + ### Spreading the word Feel free to star the repository. This will help increase the visibility of the project, therefore attracting more users and contributors to Shields! @@ -154,10 +163,6 @@ To run the integration tests: There is a [High-level code walkthrough](doc/code-walkthrough.md) describing the layout of the project. -### Logos - -We have [documentation for logo usage](doc/logos.md) which includes [contribution guidance](doc/logos.md#contributing-logos) - ## Pull Requests All code changes are incorporated via pull requests, and pull requests are always squashed into a single commit on merging. Therefore there's no requirement to squash commits within your PR, but feel free to squash or restructure the commits on your PR branch if you think it will be helpful. PRs with well structured commits are always easier to review! diff --git a/README.md b/README.md index cd3b0f811dc81949cb9e2f66789be8e3df8aed47..81080a84ae23f0cff275b3d066125be5a62a1deb 100644 --- a/README.md +++ b/README.md @@ -223,9 +223,6 @@ Alumni: All assets and code are under the [CC0 LICENSE](LICENSE) and in the public domain unless specified otherwise. -The assets in `logo/` are trademarks of their respective companies and are -under their terms and license. - ## Community Thanks to the people and companies who donate money, services or time to keep the project running. [https://shields.io/community](https://shields.io/community) diff --git a/core/base-service/coalesce-badge.js b/core/base-service/coalesce-badge.js index 588d9bd0dcd4132b6e0f491949c5f4eada893e1f..91104d65e1101027591fb1ad4628a63de4a45c84 100644 --- a/core/base-service/coalesce-badge.js +++ b/core/base-service/coalesce-badge.js @@ -17,12 +17,10 @@ import toArray from './to-array.js' // // Logos are resolved in this manner: // -// 1. When `?logo=` contains a named logo or the name of one of the Shields -// logos or contains base64-encoded SVG, that logo is used. When a -// `&logoColor=` is specified, that color is used (except for the -// base64-encoded logos). Otherwise the default color is used. If the color -// is specified for a multicolor Shield logo, the named logo will be used and -// colored. The appearance of the logo can be customized using `logoWidth`, +// 1. When `?logo=` contains a simple-icons logo or contains a base64-encoded +// SVG, that logo is used. When a `&logoColor=` is specified, that color is +// used (except for the base64-encoded logos). Otherwise the default color +// is used. The appearance of the logo can be customized using `logoWidth`, // When `?logo=` is specified, any logo-related parameters specified // dynamically by the service, or by default in the service, are ignored. // 2. The second precedence is the dynamic logo returned by a service. This is diff --git a/core/base-service/coalesce-badge.spec.js b/core/base-service/coalesce-badge.spec.js index 247c10975fa9e5db945f403bcb1b82516c9ba17f..a98f05debd24f6aac2e3287ca5f43abcb81e61ad 100644 --- a/core/base-service/coalesce-badge.spec.js +++ b/core/base-service/coalesce-badge.spec.js @@ -1,5 +1,5 @@ import { expect } from 'chai' -import { getShieldsIcon, getSimpleIcon } from '../../lib/logos.js' +import { getSimpleIcon } from '../../lib/logos.js' import coalesceBadge from './coalesce-badge.js' describe('coalesceBadge', function () { @@ -138,7 +138,7 @@ describe('coalesceBadge', function () { }) it('when a social badge, uses the default named logo', function () { - // .not.be.empty for confidence that nothing has changed with `getShieldsIcon()`. + // .not.be.empty for confidence that nothing has changed with `getSimpleIcon()`. expect( coalesceBadge({ style: 'social' }, {}, { namedLogo: 'appveyor' }).logo, ).to.equal(getSimpleIcon({ name: 'appveyor' })).and.not.be.empty @@ -149,52 +149,35 @@ describe('coalesceBadge', function () { namedLogo: 'npm', }) expect(coalesceBadge({}, { namedLogo: 'npm' }, {}).logo).to.equal( - getShieldsIcon({ name: 'npm' }), + getSimpleIcon({ name: 'npm' }), ).and.not.to.be.empty }) - it('applies the named monochrome logo with color', function () { + it('applies the named logo with color', function () { expect( coalesceBadge({}, { namedLogo: 'dependabot', logoColor: 'blue' }, {}) .logo, - ).to.equal(getShieldsIcon({ name: 'dependabot', color: 'blue' })).and.not + ).to.equal(getSimpleIcon({ name: 'dependabot', color: 'blue' })).and.not .to.be.empty }) - it('applies the named multicolored logo with color', function () { - expect( - coalesceBadge({}, { namedLogo: 'npm', logoColor: 'blue' }, {}).logo, - ).to.equal(getSimpleIcon({ name: 'npm', color: 'blue' })).and.not.to.be - .empty - }) - it('overrides the logo', function () { expect( coalesceBadge({ logo: 'npm' }, { namedLogo: 'appveyor' }, {}).logo, - ).to.equal(getShieldsIcon({ name: 'npm' })).and.not.be.empty + ).to.equal(getSimpleIcon({ name: 'npm' })).and.not.be.empty }) - it('overrides the monochrome logo with a color', function () { + it('overrides the logo with a color', function () { expect( coalesceBadge( { logo: 'dependabot', logoColor: 'blue' }, { namedLogo: 'appveyor' }, {}, ).logo, - ).to.equal(getShieldsIcon({ name: 'dependabot', color: 'blue' })).and.not + ).to.equal(getSimpleIcon({ name: 'dependabot', color: 'blue' })).and.not .be.empty }) - it('overrides multicolored logo with a color', function () { - expect( - coalesceBadge( - { logo: 'npm', logoColor: 'blue' }, - { namedLogo: 'appveyor' }, - {}, - ).logo, - ).to.equal(getSimpleIcon({ name: 'npm', color: 'blue' })).and.not.be.empty - }) - it("when the logo is overridden, it ignores the service's logo color and width", function () { expect( coalesceBadge( @@ -206,35 +189,25 @@ describe('coalesceBadge', function () { }, {}, ).logo, - ).to.equal(getShieldsIcon({ name: 'npm' })).and.not.be.empty + ).to.equal(getSimpleIcon({ name: 'npm' })).and.not.be.empty }) - it("overrides the service monochome logo's color", function () { + it("overrides the service logo's color", function () { expect( coalesceBadge( { logoColor: 'blue' }, { namedLogo: 'dependabot', logoColor: 'red' }, {}, ).logo, - ).to.equal(getShieldsIcon({ name: 'dependabot', color: 'blue' })).and.not + ).to.equal(getSimpleIcon({ name: 'dependabot', color: 'blue' })).and.not .be.empty }) - it("overrides the service multicolored logo's color", function () { - expect( - coalesceBadge( - { logoColor: 'blue' }, - { namedLogo: 'npm', logoColor: 'red' }, - {}, - ).logo, - ).to.equal(getSimpleIcon({ name: 'npm', color: 'blue' })).and.not.be.empty - }) - // https://github.com/badges/shields/issues/2998 it('overrides logoSvg', function () { const logoSvg = 'data:image/svg+xml;base64,PHN2ZyB4bWxu' expect(coalesceBadge({ logo: 'npm' }, { logoSvg }, {}).logo).to.equal( - getShieldsIcon({ name: 'npm' }), + getSimpleIcon({ name: 'npm' }), ).and.not.be.empty }) }) diff --git a/core/base-service/openapi.js b/core/base-service/openapi.js index 3d2e6082ee639d7392952a203404d9bdda316f79..bc8d7ffc803033cb048b677840cde666b14f18d7 100644 --- a/core/base-service/openapi.js +++ b/core/base-service/openapi.js @@ -124,7 +124,7 @@ function category2openapi({ category, services, sort = false }) { in: 'query', required: false, description: - 'One of the named logos (bitcoin, dependabot, gitlab, npm, paypal, serverfault, stackexchange, superuser, telegram, travis) or simple-icons. All simple-icons are referenced using icon slugs. You can click the icon title on <a href="https://simpleicons.org/" rel="noopener noreferrer" target="_blank">simple-icons</a> to copy the slug or they can be found in the <a href="https://github.com/simple-icons/simple-icons/blob/master/slugs.md">slugs.md file</a> in the simple-icons repository. <a href="/docs/logos">Further info</a>.', + 'Icon slug from simple-icons. You can click the icon title on <a href="https://simpleicons.org/" rel="noopener noreferrer" target="_blank">simple-icons</a> to copy the slug or they can be found in the <a href="https://github.com/simple-icons/simple-icons/blob/master/slugs.md">slugs.md file</a> in the simple-icons repository. <a href="/docs/logos">Further info</a>.', schema: { type: 'string', }, @@ -135,7 +135,7 @@ function category2openapi({ category, services, sort = false }) { in: 'query', required: false, description: - 'The color of the logo (hex, rgb, rgba, hsl, hsla and css named colors supported). Supported for named logos and Shields logos but not for custom logos. For multicolor Shields logos, the corresponding named logo will be used and colored.', + 'The color of the logo (hex, rgb, rgba, hsl, hsla and css named colors supported). Supported for simple-icons logos but not for custom logos.', schema: { type: 'string', }, @@ -146,7 +146,7 @@ function category2openapi({ category, services, sort = false }) { in: 'query', required: false, description: - 'Make icons adaptively resize by setting `auto`. Useful for some wider logos like `amd` and `amg`. Supported for simple-icons logos only.', + 'Make icons adaptively resize by setting `auto`. Useful for some wider logos like `amd` and `amg`. Supported for simple-icons logos but not for custom logos.', schema: { type: 'string', }, diff --git a/core/base-service/openapi.spec.js b/core/base-service/openapi.spec.js index e8911653784e73c700e9c0b0e262f8b2209d0171..aa56fb7a6196d1674807224ca1549d0b380be010 100644 --- a/core/base-service/openapi.spec.js +++ b/core/base-service/openapi.spec.js @@ -80,7 +80,7 @@ const expected = { in: 'query', required: false, description: - 'One of the named logos (bitcoin, dependabot, gitlab, npm, paypal, serverfault, stackexchange, superuser, telegram, travis) or simple-icons. All simple-icons are referenced using icon slugs. You can click the icon title on <a href="https://simpleicons.org/" rel="noopener noreferrer" target="_blank">simple-icons</a> to copy the slug or they can be found in the <a href="https://github.com/simple-icons/simple-icons/blob/master/slugs.md">slugs.md file</a> in the simple-icons repository. <a href="/docs/logos">Further info</a>.', + 'Icon slug from simple-icons. You can click the icon title on <a href="https://simpleicons.org/" rel="noopener noreferrer" target="_blank">simple-icons</a> to copy the slug or they can be found in the <a href="https://github.com/simple-icons/simple-icons/blob/master/slugs.md">slugs.md file</a> in the simple-icons repository. <a href="/docs/logos">Further info</a>.', schema: { type: 'string' }, example: 'appveyor', }, @@ -89,7 +89,7 @@ const expected = { in: 'query', required: false, description: - 'The color of the logo (hex, rgb, rgba, hsl, hsla and css named colors supported). Supported for named logos and Shields logos but not for custom logos. For multicolor Shields logos, the corresponding named logo will be used and colored.', + 'The color of the logo (hex, rgb, rgba, hsl, hsla and css named colors supported). Supported for simple-icons logos but not for custom logos.', schema: { type: 'string' }, example: 'violet', }, @@ -98,7 +98,7 @@ const expected = { in: 'query', required: false, description: - 'Make icons adaptively resize by setting `auto`. Useful for some wider logos like `amd` and `amg`. Supported for simple-icons logos only.', + 'Make icons adaptively resize by setting `auto`. Useful for some wider logos like `amd` and `amg`. Supported for simple-icons logos but not for custom logos.', schema: { type: 'string', }, diff --git a/dangerfile.js b/dangerfile.js index 527be50d9c10b3ad6b2eb7e4ff4b327859778ce0..f4199dff9369e484526c34586df87505bd161d07 100644 --- a/dangerfile.js +++ b/dangerfile.js @@ -22,7 +22,6 @@ const server = fileMatch('core/server/**.js', '!*.spec.js') const serverTests = fileMatch('core/server/**.spec.js') const legacyHelpers = fileMatch('lib/**/*.js', '!*.spec.js') const legacyHelperTests = fileMatch('lib/**/*.spec.js') -const logos = fileMatch('logo/*.svg') const packageJson = fileMatch('package.json') const packageLock = fileMatch('package-lock.json') const secretsDocs = fileMatch('doc/server-secrets.md') @@ -78,17 +77,6 @@ if (legacyHelpers.created) { ) } -if (logos.created) { - message( - [ - ':art: Thanks for submitting a logo. <br>', - 'Please ensure your contribution follows our ', - '[guidance](https://github.com/badges/shields/blob/master/doc/logos.md#contributing-logos) ', - 'for logo submissions.', - ].join(''), - ) -} - if (capitals.created || underscores.created) { fail( [ diff --git a/doc/logos.md b/doc/logos.md deleted file mode 100644 index 84915cb18fb01c017f659a2f7ce8c3c5a049466a..0000000000000000000000000000000000000000 --- a/doc/logos.md +++ /dev/null @@ -1,42 +0,0 @@ -# Logos - -For documentation on using logos, see https://shields.io/docs/logos - -## Contributing Logos - -Our preferred way to consume icons is via the SimpleIcons logo. As a first port of call, we encourage you to contribute logos to [the SimpleIcons project][simple-icons github]. Please review their [guidance](https://github.com/simple-icons/simple-icons/blob/develop/CONTRIBUTING.md) before contributing. - -In some cases we may also accept logo submissions directly. In general, we do this only when: - -- We have a corresponding badge on the homepage, (e.g. the Eclipse logo because we support service badges for the Eclipse Marketplace). We may also approve logos for other tools widely used by developers. -- The logo provided in SimpleIcons is unclear when displayed at small size on a badge. -- There is substantial benefit in using a multi-colored icon over a monochrome icon. -- The logo doesn't meet the requirements to be included in the SimpleIcons set. - -If you are submitting a pull request for a custom logo, please: - -- Minimize SVG files through [SVGO][]. This can be done in one of two ways - - The [SVGO Command Line Tool][svgo] - - Install SVGO - - With npm: `npm install -g svgo` - - With Homebrew: `brew install svgo` - - Run the following command `svgo --precision=3 icon.svg -o icon.min.svg` - - Check if there is a loss of quality in the output, if so increase the precision. - - The [SVGOMG Online Tool][svgomg] - - Click "Open SVG" and select an SVG file. - - Set the precision to about 3, depending on if there is a loss of quality. - - Leave the remaining settings untouched (or reset them with the button at the bottom of the settings). - - Click the download button. -- Set a viewbox and ensure the logo is scaled to fit the viewbox, while preserving the logo's original proportions. This means the icon should be touching at least two sides of the viewbox. -- Ensure the logo is vertically and horizontally centered. -- Ensure the logo is minified to a single line with no formatting. -- Ensure the SVG does not contain extraneous attributes. -- Ensure your submission conforms to any relevant brand or logo guidelines. - -### Problems - -We try to ensure our logos are compliant with brand guidelines. If one of our custom logos does not conform to the necessary brand guidelines, please open an issue on the [shields.io tracker](https://github.com/badges/shields/issues) and we'll work with you to resolve it. If a logo from the simple-icons set does not conform to the relevant brand guidelines, please open an issue on the [simple-icons tracker](https://github.com/simple-icons/simple-icons/issues) first. - -[simple-icons github]: https://github.com/simple-icons/simple-icons -[svgo]: https://github.com/svg/svgo -[svgomg]: https://jakearchibald.github.io/svgomg/ diff --git a/frontend/blog/2024-07-10-sunsetting-shields-custom-logos.md b/frontend/blog/2024-07-10-sunsetting-shields-custom-logos.md new file mode 100644 index 0000000000000000000000000000000000000000..de9a2f6074041410fe0279aec299b5fc2f82dde4 --- /dev/null +++ b/frontend/blog/2024-07-10-sunsetting-shields-custom-logos.md @@ -0,0 +1,39 @@ +--- +slug: sunsetting-shields-custom-logos +title: Sunsetting Shields custom logos +authors: + name: PyvesB + title: Shields.io Core Team + url: https://github.com/PyvesB + image_url: https://avatars.githubusercontent.com/u/10694593 +tags: [] +--- + +Following discussions in [#9476](https://github.com/badges/shields/issues/9476), we've gone ahead and deleted all custom logos that were maintained on the Shields.io side (bitcoin, dependabot, gitlab, npm, paypal, serverfault, stackexchange, superuser, telegram, travis), and will solely rely on the [Simple-Icons project](https://github.com/simple-icons/simple-icons) to provide named logos for our badges from now on. If you were using a Shields custom logo, you will have transparently switched over to the corresponding Simple-Icon and do not need to make changes to your badges. + +The reasons behind this decision include the following: + +- reducing code complexity and induced overhead by deleting several dozens lines of code. +- reducing maintenance load; we received regular pull requests to add logos that do not comply with our guidelines, or various other related questions. +- providing a less confusing user experience; all named logos now behave in the same way with regards to `logoColor` and other parameters. +- reducing frustration for contributors who prepared logo pull requests only to be told that they hadn't read the guidelines or that there was a misalignment on the interpretation of said guidelines. +- reinforcing Shields.io's mission to provide consistent badges, with all named logos now being monochrome. +- improving compliance with third-party brands; Simple-Icons regularly reviews whether their icons respect latest brand guidelines, whereas we do not. +- unblocking [#4947](https://github.com/badges/shields/issues/4947). + +We do acknowledge the fact that some of you voiced your preference for a given Shields custom logo over its Simple-Icons equivalent in [#7684](https://github.com/badges/shields/issues/7684). If you really want to go back to the Shields custom logo, you can leverage [custom logos](https://shields.io/docs/logos#custom-logos) to do so. Here are the corresponding Base64-encoded logo parameters for all our existing logos: + +| Name | Logo Preview | `logo` Parameter | +| ------------- | :------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| bitcoin |  | `data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIzLjYzNiAxNC45MDJjLTEuNjAyIDYuNDMtOC4xMTQgMTAuMzQyLTE0LjU0MyA4Ljc0QzIuNjY2IDIyLjAzNy0xLjI0NiAxNS41MjUuMzU3IDkuMDk4IDEuOTYgMi42NjkgOC40Ny0xLjI0NCAxNC44OTcuMzU5YzYuNDMgMS42MDIgMTAuMzQxIDguMTE1IDguNzM5IDE0LjU0NCIgZmlsbD0iI2Y3OTMxYSIvPjxwYXRoIGQ9Ik0xNC42ODYgMTAuMjY3Yy0uMzcxIDEuNDg3LTIuNjYzLjczMS0zLjQwNi41NDZsLjY1NS0yLjYyOWMuNzQzLjE4NiAzLjEzOC41MzEgMi43NSAyLjA4M20tLjQwNiA0LjI0MmMtLjQwNyAxLjYzNS0zLjE2Ljc1LTQuMDUzLjUzbC43MjQtMi45Yy44OTMuMjI0IDMuNzU0LjY2NCAzLjMzIDIuMzdtMy4wMDgtNC4yMTljLjIzOC0xLjU5Ni0uOTc3LTIuNDU1LTIuNjQtMy4wMjdsLjU0LTIuMTYzLTEuMzE4LS4zMy0uNTI1IDIuMTA3YTU0LjI5MiA1NC4yOTIgMCAwIDAtMS4wNTQtLjI0OWwuNTMtMi4xMi0xLjMxNy0uMzI4LS41NCAyLjE2MmMtLjI4Ni0uMDY1LS41NjctLjEzLS44NC0uMTk4bC4wMDEtLjAwNy0xLjgxNi0uNDUzLS4zNSAxLjQwNnMuOTc3LjIyNC45NTYuMjM4Yy41MzMuMTMzLjYzLjQ4Ni42MTMuNzY2bC0uNjE1IDIuNDYzYy4wMzguMDEuMDg1LjAyNC4xMzcuMDQ1bC0uMTM4LS4wMzUtLjg2MiAzLjQ1MmMtLjA2NS4xNjEtLjIzLjQwNS0uNjA0LjMxMi4wMTQuMDItLjk1Ny0uMjM5LS45NTctLjIzOUw1LjgzNiAxNS42bDEuNzE0LjQyN2MuMzE4LjA4LjYzLjE2NC45MzguMjQybC0uNTQ1IDIuMTkgMS4zMTUuMzI4LjU0LTIuMTY0Yy4zNi4wOTcuNzA4LjE4NyAxLjA1LjI3MWwtLjUzOCAyLjE1NiAxLjMxNi4zMjguNTQ2LTIuMTgzYzIuMjQ1LjQyNCAzLjkzMy4yNTMgNC42NDMtMS43NzcuNTc0LTEuNjM1LS4wMjctMi41NzgtMS4yMDgtMy4xOTQuODYtLjE5OCAxLjUwOC0uNzY1IDEuNjgxLTEuOTM0IiBmaWxsPSIjZmZmIi8+PC9zdmc+` | +| dependabot |  | `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1NCA1NCIgZmlsbD0iI2ZmZiI+PHBhdGggZD0iTTI1IDNhMSAxIDAgMCAwLTEgMXY3YTEgMSAwIDAgMCAxIDFoNXYzSDZhMyAzIDAgMCAwLTMgM3YxMkgxYTEgMSAwIDAgMC0xIDF2MTBhMSAxIDAgMCAwIDEgMWgydjZhMyAzIDAgMCAwIDMgM2g0MmEzIDMgMCAwIDAgMy0zdi02aDJhMSAxIDAgMCAwIDEtMVYzMWExIDEgMCAwIDAtMS0xaC0yVjE4YTMgMyAwIDAgMC0zLTNIMzNWNGExIDEgMCAwIDAtMS0xaC03em0tMy45ODIgMjZhMS4yMSAxLjIxIDAgMCAxIC44MzcuMzU1bDEuMjkgMS4yOWExLjIxIDEuMjEgMCAwIDEgMCAxLjcwOSAxLjIxIDEuMjEgMCAwIDEgMCAuMDAxbC02LjI5MSA2LjI5YTEuMjEgMS4yMSAwIDAgMS0xLjcxIDBsLTMuNzktMy43OTFhMS4yMSAxLjIxIDAgMCAxIDAtMS43MWwxLjI5LTEuMjlhMS4yMSAxLjIxIDAgMCAxIDEuNzEgMEwxNiAzMy41bDQuMTQ1LTQuMTQ1YTEuMjEgMS4yMSAwIDAgMSAuODczLS4zNTV6bTE5Ljk2MiAwYTEuMjEgMS4yMSAwIDAgMSAuODc0LjM1NGwxLjI5IDEuMjlhMS4yMSAxLjIxIDAgMCAxIDAgMS43MWwtNi4yOSA2LjI4OXYuMDAyYTEuMjEgMS4yMSAwIDAgMS0xLjcxMSAwbC0zLjc5LTMuNzlhMS4yMSAxLjIxIDAgMCAxIDAtMS43MWwxLjI5LTEuMjlhMS4yMSAxLjIxIDAgMCAxIDEuNzEgMGwxLjY0NSAxLjY0NSA0LjE0Ny00LjE0NkExLjIxIDEuMjEgMCAwIDEgNDAuOTggMjl6Ii8+PC9zdmc+` | +| gitlab |  | `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjkzIDkzIDE5NCAxOTQiPjxkZWZzPjxzdHlsZT4uYntmaWxsOiNmYzZkMjZ9PC9zdHlsZT48L2RlZnM+PHBhdGggc3R5bGU9ImZpbGw6I2UyNDMyOSIgZD0ibTI4Mi44MyAxNzAuNzMtLjI3LS42OS0yNi4xNC02OC4yMmE2LjgxIDYuODEgMCAwIDAtMi42OS0zLjI0IDcgNyAwIDAgMC04IC40MyA3IDcgMCAwIDAtMi4zMiAzLjUybC0xNy42NSA1NGgtNzEuNDdsLTE3LjY1LTU0YTYuODYgNi44NiAwIDAgMC0yLjMyLTMuNTMgNyA3IDAgMCAwLTgtLjQzIDYuODcgNi44NyAwIDAgMC0yLjY5IDMuMjRMOTcuNDQgMTcwbC0uMjYuNjlhNDguNTQgNDguNTQgMCAwIDAgMTYuMSA1Ni4xbC4wOS4wNy4yNC4xNyAzOS44MiAyOS44MiAxOS43IDE0LjkxIDEyIDkuMDZhOC4wNyA4LjA3IDAgMCAwIDkuNzYgMGwxMi05LjA2IDE5LjctMTQuOTEgNDAuMDYtMzAgLjEtLjA4YTQ4LjU2IDQ4LjU2IDAgMCAwIDE2LjA4LTU2LjA0WiIvPjxwYXRoIGNsYXNzPSJiIiBkPSJtMjgyLjgzIDE3MC43My0uMjctLjY5YTg4LjMgODguMyAwIDAgMC0zNS4xNSAxNS44TDE5MCAyMjkuMjVjMTkuNTUgMTQuNzkgMzYuNTcgMjcuNjQgMzYuNTcgMjcuNjRsNDAuMDYtMzAgLjEtLjA4YTQ4LjU2IDQ4LjU2IDAgMCAwIDE2LjEtNTYuMDhaIi8+PHBhdGggc3R5bGU9ImZpbGw6I2ZjYTMyNiIgZD0ibTE1My40MyAyNTYuODkgMTkuNyAxNC45MSAxMiA5LjA2YTguMDcgOC4wNyAwIDAgMCA5Ljc2IDBsMTItOS4wNiAxOS43LTE0LjkxUzIwOS41NSAyNDQgMTkwIDIyOS4yNWMtMTkuNTUgMTQuNzUtMzYuNTcgMjcuNjQtMzYuNTcgMjcuNjRaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0xMzIuNTggMTg1Ljg0QTg4LjE5IDg4LjE5IDAgMCAwIDk3LjQ0IDE3MGwtLjI2LjY5YTQ4LjU0IDQ4LjU0IDAgMCAwIDE2LjEgNTYuMWwuMDkuMDcuMjQuMTcgMzkuODIgMjkuODJMMTkwIDIyOS4yMVoiLz48L3N2Zz4=` | +| npm |  | `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHBhdGggZD0iTTAgMGg0MHY0MEgwVjB6IiBmaWxsPSIjY2IwMDAwIi8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTcgN2gyNnYyNmgtN1YxNGgtNnYxOUg3eiIvPjwvc3ZnPgo=` | +| paypal |  | `data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE5LjcxNSA2LjEzM2MuMjQ5LTEuODY2IDAtMy4xMS0uOTk5LTQuMjY2QzE3LjYzNC42MjIgMTUuNzIxIDAgMTMuMzA3IDBINi4yMzVjLS40MTggMC0uOTE2LjQ0NC0xIC44ODlMMi4zMjMgMjAuNjIyYzAgLjM1Ni4yNS44LjY2NS44aDQuMzI4bC0uMjUgMS45NTZjLS4wODQuMzU1LjE2Ni42MjIuNDk4LjYyMmgzLjY2M2MuNDE3IDAgLjgzMi0uMjY3LjkxNS0uNzExdi0uMjY3bC43NDktNC42MjJ2LS4xNzhjLjA4My0uNDQ0LjUtLjguOTE1LS44aC41YzMuNTc4IDAgNi4zMjUtMS41MSA3LjE1Ni01Ljk1NS40MTgtMS44NjcuMjUyLTMuMzc4LS43NDctNC40NDUtLjI1LS4zNTUtLjY2Ni0uNjIyLTEtLjg4OSIgZmlsbD0iIzAwOWNkZSIvPjxwYXRoIGQ9Ik0xOS43MTUgNi4xMzNjLjI0OS0xLjg2NiAwLTMuMTEtLjk5OS00LjI2NkMxNy42MzQuNjIyIDE1LjcyMSAwIDEzLjMwNyAwSDYuMjM1Yy0uNDE4IDAtLjkxNi40NDQtMSAuODg5TDIuMzIzIDIwLjYyMmMwIC4zNTYuMjUuOC42NjUuOGg0LjMyOGwxLjE2NC03LjM3OC0uMDgzLjI2N2MuMDg0LS41MzMuNS0uODg5Ljk5OC0uODg5aDIuMDhjNC4wNzkgMCA3LjI0MS0xLjc3OCA4LjI0LTYuNzU1LS4wODMtLjI2NyAwLS4zNTYgMC0uNTM0IiBmaWxsPSIjMDEyMTY5Ii8+PHBhdGggZD0iTTkuNTYzIDYuMTMzYy4wODItLjI2Ni4yNS0uNTMzLjQ5OC0uNzEuMTY2IDAgLjI1LS4wOS40MTYtLjA5aDUuNDk0Yy42NjYgMCAxLjMzLjA5IDEuODMuMTc4LjE2NiAwIC4zMzMgMCAuNDk4LjA4OS4xNjguMDg5LjMzNC4wODkuNDE4LjE3OGguMjVjLjI0OC4wODkuNDk3LjI2Ni43NDguMzU1LjI0OC0xLjg2NiAwLTMuMTEtLjk5OS00LjM1NUMxNy43MTcuNTMzIDE1LjgwNCAwIDEzLjM5IDBINi4yMzVjLS40MTggMC0uOTE2LjM1Ni0xIC44ODlMMi4zMjMgMjAuNjIyYzAgLjM1Ni4yNS44LjY2NS44aDQuMzI4bDEuMTY0LTcuMzc4IDEuMDg0LTcuOTF6IiBmaWxsPSIjMDAzMDg3Ii8+PC9zdmc+` | +| serverfault |  | `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMjAgMTIwIj48c3R5bGU+LnN0MHtmaWxsOiNhN2E5YWN9LnN0MXtmaWxsOiM4MTgyODV9LnN0MntmaWxsOiM1ODU4NWF9LnN0M3tmaWxsOiNkMWQyZDR9LnN0NHtmaWxsOiMyMzFmMjB9PC9zdHlsZT48cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTMuNyA0MS42aDQ0djguN2gtNDR6Ii8+PHBhdGggY2xhc3M9InN0MSIgZD0iTTEzLjcgNTUuOGg0NHY4LjdoLTQ0eiIvPjxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik0xMy43IDY5aDQ0djguN2gtNDR6Ii8+PHBhdGggY2xhc3M9InN0MyIgZD0iTTEzLjcgMjcuNmg0NHY4LjdoLTQ0eiIvPjxwYXRoIGNsYXNzPSJzdDQiIGQ9Ik0xMy43IDgzLjJoNDR2OC43aC00NHoiLz48cGF0aCBmaWxsPSIjOTkyMjI0IiBkPSJNNjMgNDEuNmgxOC43djguN0g2M3oiLz48cGF0aCBmaWxsPSIjNjMwZjE2IiBkPSJNNjMgNTUuOGgxOC43djguN0g2M3oiLz48cGF0aCBmaWxsPSIjMmIxNDE1IiBkPSJNNjMgNjloMTguN3Y4LjdINjN6Ii8+PHBhdGggZmlsbD0iI2U3MjgyZCIgZD0iTTYzIDI3LjZoMTguN3Y4LjdINjN6Ii8+PHBhdGggY2xhc3M9InN0NCIgZD0iTTYzIDgzLjJoMTguN3Y4LjdINjN6Ii8+PGc+PHBhdGggY2xhc3M9InN0MCIgZD0iTTg2LjggNDJoMTguN3Y4LjdIODYuOHoiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNODYuOCA1Ni4yaDE4Ljd2OC43SDg2Ljh6Ii8+PHBhdGggY2xhc3M9InN0MiIgZD0iTTg2LjggNjkuNGgxOC43djguN0g4Ni44eiIvPjxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik04Ni44IDI4aDE4Ljd2OC43SDg2Ljh6Ii8+PHBhdGggY2xhc3M9InN0NCIgZD0iTTg2LjggODMuNmgxOC43djguN0g4Ni44eiIvPjwvZz48L3N2Zz4=` | +| stackexchange |  | `data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIuMjczIDEwLjQ2M2gxOS4zMjV2My45NzhIMi4yNzN6IiBmaWxsPSIjMzc2ZGI2Ii8+PHBhdGggZD0iTTIuMjczIDUuMzIyaDE5LjMyNVY5LjNIMi4yNzN6IiBmaWxsPSIjNGNhMmRhIi8+PHBhdGggZD0iTTE4LjU3NSAwSDUuMzc0Yy0xLjcwNSAwLTMuMSAxLjQyLTMuMSAzLjE3OFY0LjIxaDE5LjMyNFYzLjE3OEMyMS41OTggMS40MiAyMC4yNTQgMCAxOC41NzUgMHoiIGZpbGw9IiM5MWQ4ZjQiLz48cGF0aCBkPSJNMi4yNzMgMTUuNTc4djEuMDMzYzAgMS43NTcgMS4zOTYgMy4xNzggMy4xIDMuMTc4aDguMjY4VjI0bDQuMDgxLTQuMjExaC45MDVjMS43MDUgMCAzLjEtMS40MiAzLjEtMy4xNzh2LTEuMDMzeiIgZmlsbD0iIzFlNTM5NyIvPjwvc3ZnPg==` | +| superuser |  | `data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIuNTk0IDBhLjUxNC41MTQgMCAwIDAtLjM0NC4xMS40MDQuNDA0IDAgMCAwLS4xMzMuMzA2djIzLjE5N2MwIC4xMjQuMDQ4LjI0Ni4xNDUuMzEyLjA5Ni4wNjUuMjA4LjA3NS4zMzIuMDc1aDUuNTkzYy4xMyAwIC4yNDMtLjAyLjMzNC0uMDkzLjA5Mi0uMDcyLjEzMS0uMi4xMTItLjMxN2wuMDAyLjAyM3YtMS40NjdhLjM2Ny4zNjcgMCAwIDAtLjE2LS4zMDEuNjEyLjYxMiAwIDAgMC0uMzQ0LS4wODdINS42MTNjLS4xMSAwLS4xNy0uMDItLjE5MS0uMDM3LS4wMjItLjAxNi0uMDMyLS4wMy0uMDMyLS4xVjIuNDA4YzAtLjA3MS4wMTItLjA5NC4wNDEtLjExNi4wMy0uMDIzLjEwMi0uMDUuMjM5LS4wNWgyLjQ4OGMuMTI0IDAgLjIzNS0uMDEuMzMyLS4wNzYuMDk3LS4wNjYuMTQ1LS4xODguMTQ1LS4zMTFWLjQxNmEuMzk2LjM5NiAwIDAgMC0uMTU3LS4zMjNBLjU4My41ODMgMCAwIDAgOC4xMzEgMHoiIGZpbGw9IiMwMDAiLz48cGF0aCBkPSJNMjAuOTU4IDE0LjQ3Yy0xLjQ4Mi40MTQtMi40ODkgMS4yNzMtMi40ODkgMi42ODR2NC4wNDJjMCAzLjAxNy0yLjkwOSAyLjY4NS02LjUxNyAyLjY4NWgtLjU2Yy0uMjIzIDAtLjM2My0uMDgzLS4zNjMtLjI3N1YyMi4yMmMwLS4xOTQuMTEyLS4yNzcuMzM2LS4yNzdoLjQ0N2MyLjE1NCAwIDMuNjY0LjQ3IDMuNjY0LTEuMjQ1di0zLjg3NmMwLTEuMTkuODQtMi44NTEgMi41MTctMy40Ni4xMTItLjAyOC4xNC0uMDgzLjE0LS4xMzggMC0uMDU2LS4wMjgtLjEzOS0uMTQtLjE5NC0xLjUzOC0uNjkyLTIuNTE3LTEuODI3LTIuNTE3LTMuMTg0VjUuNDczYzAtMS42ODktMS41MS0zLjM3Ny0zLjY2NC0zLjM3N2gtLjQ0N2MtLjIyNCAwLS4zMzYtLjA4My0uMzM2LS4yNzdWLjQzNWMwLS4xOTQuMTQtLjI3Ny4zNjQtLjI3N2guNTZjMy42MDcgMCA2LjU0NCAyLjU0NyA2LjU0NCA1LjU2NHYzLjY4MmMwIDEuMzg0IDEuMDA3IDIuMTg2IDIuNTE3IDIuNzEyLjU2LjE2Ni44NjcuMTk0Ljg2Ny42Mzd2MS4xNjNjLjAyOC4yNDktLjI1MS4zNi0uOTIzLjU1MyIgZmlsbD0iIzJlYWNlMyIvPjxwYXRoIGQ9Ik0xMS41NzYgOC4zM2MtLjQwNiAwLS43ODUuMzAzLS43ODUuNzJ2MS4zMjhjMCAuMzg5LjM1LjcyMS43ODUuNzIxaDEuNDgyYy40MDYgMCAuNzg0LS4zMDQuNzg0LS43MlY5LjA1YzAtLjM4OC0uMzQ4LS43Mi0uNzg0LS43MnoiIGZpbGw9IiMwMDAiLz48L3N2Zz4=` | +| telegram |  | `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTEyIDI0YzYuNjI3IDAgMTItNS4zNzMgMTItMTJTMTguNjI3IDAgMTIgMCAwIDUuMzczIDAgMTJzNS4zNzMgMTIgMTIgMTJaIiBmaWxsPSJ1cmwoI2EpIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjQyNSAxMS44NzFhNzk2LjQxNCA3OTYuNDE0IDAgMCAxIDYuOTk0LTMuMDE4YzMuMzI4LTEuMzg4IDQuMDI3LTEuNjI4IDQuNDc3LTEuNjM4LjEgMCAuMzIuMDIuNDcuMTQuMTIuMS4xNS4yMy4xNy4zMy4wMi4xLjA0LjMxLjAyLjQ3LS4xOCAxLjg5OC0uOTYgNi41MDQtMS4zNiA4LjYyMi0uMTcuOS0uNSAxLjE5OS0uODE5IDEuMjI5LS43LjA2LTEuMjI5LS40Ni0xLjg5OC0uOS0xLjA2LS42ODktMS42NDktMS4xMTktMi42NzgtMS43OTgtMS4xOS0uNzgtLjQyLTEuMjA5LjI2LTEuOTA4LjE4LS4xOCAzLjI0Ny0yLjk3OCAzLjMwNy0zLjIyOC4wMS0uMDMuMDEtLjE1LS4wNi0uMjEtLjA3LS4wNi0uMTctLjA0LS4yNS0uMDItLjExLjAyLTEuNzg4IDEuMTQtNS4wNTYgMy4zNDgtLjQ4LjMzLS45MDkuNDktMS4yOTkuNDgtLjQzLS4wMS0xLjI0OC0uMjQtMS44NjgtLjQ0LS43NS0uMjQtMS4zNDktLjM3LTEuMjk5LS43OS4wMy0uMjIuMzMtLjQ0Ljg5LS42NjlaIiBmaWxsPSIjZmZmIi8+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJhIiB4MT0iMTEuOTkiIHkxPSIwIiB4Mj0iMTEuOTkiIHkyPSIyMy44MSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiMyQUFCRUUiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyMjlFRDkiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48L3N2Zz4K` | +| travis |  | `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNjYuNyIgaGVpZ2h0PSIyNjQuNSI+PHBhdGggZmlsbD0iI2NkMjQ0NSIgZD0iTTY0IDExNXMtNDIgMzAtNDMgNDFsMy0xczQ5LTMzIDg5LTM3bDEtNS01MCAybTY1LTQtMzMgMjMgMiAyIDU4LTE5IDEyLTctMzkgMW0yOCAyOGMyMyAwIDU4LTIyIDU4LTIybC0xMS0zaC0xOGwtOC0zLTIwIDIzLTIgNCAxIDFtLTk4IDg2LTMtMnptMTc0LTEzLTcgMi0zMy0xLTIxLTE2LTI1IDYtMjktMi0xNiAxNy0zMSAxMC0xNS01LTEtMSA3IDE3czE2IDE2IDI0IDE4YzkgMiAyNCAwIDM2LTIgMTItMSAyMS02IDI1LTEybDQtOXMxMSAxNiAyMSAxN2MxMCAyIDM4LTggMzgtOHMxOC00IDIxLTEwbDExLTI2LTkgNSIvPjxwYXRoIGZpbGw9IiNmMmYxOWIiIGQ9Ik0yNjEgOTNhNjYgNjYgMCAwIDAgMC00bC04LTZhMTA2IDEwNiAwIDAgMC0yMC05bC01LTItNS0yIDExIDNhMTQ0IDE0NCAwIDAgMSA2IDJjLTE2LTQzLTU0LTcwLTk2LTcwLTQzIDAtODEgMjctOTcgNzBhMTQ1IDE0NSAwIDAgMSAxNy01bC01IDJhMjAwIDIwMCAwIDAgMC0zMiAxN2wtMSAyYTcwIDcwIDAgMCAwIDAgMiA2OSA2OSAwIDAgMCAwIDYgNzkgNzkgMCAwIDAgMyAyMSA1NyA1NyAwIDAgMCAxIDUgNDMgNDMgMCAwIDAgMiA0bDEgMSAxIDEgNCAxLTMtMTIgMTYtM2E1MiA1MiAwIDAgMS0zLTFsLTYtMmEzMCAzMCAwIDAgMS0zLTFsLTMtMmMxMSAzIDMzIDIgNTMgMGE1MzggNTM4IDAgMCAxIDEwOCAwYzIwIDIgNDIgMyA1MyAwbC0zIDJhMzAgMzAgMCAwIDEtMyAxbC03IDItMSAxIDE4IDMtMyAxMWgybDEtMSAxLTFhMjIgMjIgMCAwIDAgMi00IDU2IDU2IDAgMCAwIDItNSA3OCA3OCAwIDAgMCAyLTIxIDY4IDY4IDAgMCAwIDAtNiIvPjxwYXRoIGZpbGw9IiNlNWM5YTMiIGQ9Ik0xNTYgMjQ0YTU4IDU4IDAgMCAxLTUgMGgtM2E3NzYgNzc2IDAgMCAwIDMtNiAxOTggMTk4IDAgMCAwIDUgNm0zIDNjNCA0IDEwIDcgMTYgNy0xMCA0LTIwIDYtMjcgNi04IDEtMTUgMC0yMi0yYTI3IDI3IDAgMCAxIDEgMGMxLTEgMTQtMiAyMC0xMWg1YTU4IDU4IDAgMCAwIDYtMWwxIDEiLz48cGF0aCBmaWxsPSIjNWQ2NzYyIiBkPSJNMTcxIDExNmExMjggMTI4IDAgMCAxLTEyIDEzIDQ5MyA0OTMgMCAwIDAtMTUgMGwtMjQgMWExOTcgMTk3IDAgMCAxIDUxLTE0bS02NSA1LTEyIDExYTQ4MCA0ODAgMCAwIDAtMjkgM2MxMi01IDI2LTEwIDQxLTE0bTEzNiAyMy01IDMyLTIxIDE1LTU3LTctOC0yOGEyIDIgMCAwIDAtMS0xIDM1IDM1IDAgMCAwLTExIDAgMiAyIDAgMCAwLTIgMWwtOCAyOC01NiAxMi0yMi0xNi01LTM1YTI2NyAyNjcgMCAwIDEgMy0yaDVsNCAzMyAxIDEgMTUgMTFhMiAyIDAgMCAwIDEgMGw0Ni0xMGgxYTIgMiAwIDAgMCAxLTFsOC0yOCAxMy0yIDEzIDIgOCAyOCAyIDEgNDYgNWgxbDE1LTExIDEtMSA0LTI5IDggMm02LTIwLTQgMTVjLTgtMi0yNi01LTUxLTdsMjQtMTMgMzEgNSIvPjxwYXRoIGZpbGw9IiNlNGM4OTYiIGQ9Im0xNTQgMTM0LTcgNS04IDVhNjkgNjkgMCAwIDAtMTAgMiAyIDIgMCAwIDAtMSAxbC04IDI4LTQ1IDktMTQtOS00LTMzIDMyLTVhNzYgNzYgMCAwIDAtNCA1bC04IDExIDExLTdzNy01IDE5LTEwYTUwMyA1MDMgMCAwIDEgNDctMnptLTY5IDM3IDEyLTFhNDAgNDAgMCAwIDAgNCAwYzYgMCAxMCAwIDEwLTlzLTQtMTYtOS0xNmMtNiAwLTEyIDctMTEgMTZsMSA2Yy01IDEtNyA0LTcgNG0xNDYtMjktNCAyOC0xNCA5LTQ1LTUtOC0yN2EyIDIgMCAwIDAtMS0xbC0xMi0yaDFjMSAwIDE3LTIgMzUtOCAyMCAxIDM2IDQgNDggNnptLTI5IDI2YzAtMS0xLTQtNi00bDEtNWMtMS05LTYtMTYtMTItMTZzLTkgNy05IDE2IDUgOSAxMSA5YzcgMCAxMi0yIDE1IDAiLz48cGF0aCBmaWxsPSIjYzRhZjkwIiBkPSJtMTU0IDEzNC03IDUtOCA1YTY5IDY5IDAgMCAwLTEwIDIgMiAyIDAgMCAwLTEgMWwtOCAyOC00NSA5LTE0LTktNC0zMyAzMi01YTc2IDc2IDAgMCAwLTQgNWwtOCAxMSAxMS03czctNSAxOS0xMGE1MDMgNTAzIDAgMCAxIDQ3LTJ6bS02OSAzNyAxMi0xYTQwIDQwIDAgMCAwIDQgMGM2IDAgMTAgMCAxMC05cy00LTE2LTktMTZjLTYgMC0xMiA3LTExIDE2bDEgNmMtNSAxLTcgNC03IDRtMTQ2LTI5LTQgMjgtMTQgOS00NS01LTgtMjdhMiAyIDAgMCAwLTEtMWwtMTItMmgxYzEgMCAxNy0yIDM1LTggMjAgMSAzNiA0IDQ4IDZ6bS0yOSAyNmMwLTEtMS00LTYtNGwxLTVjLTEtOS02LTE2LTEyLTE2cy05IDctOSAxNiA1IDkgMTEgOWM3IDAgMTItMiAxNSAwIi8+PHBhdGggZmlsbD0iI2U1YzlhMyIgZD0ibTI1MCAxNTQgMSA5Yy0xIDgtNSAyMi03IDI1bC0xMC0xIDEtNSA1LTQgMS0xIDQtMjYgNSAzTTU1IDE4OHYzbC0xMSAxYy0yLTItNi0xNy03LTI1di05bDctMyAzIDI3IDEgMSA3IDVtMTA3IDB2MnMtNyA2LTE2IDdjLTEwIDEtMTgtNS0xOC01bDMgNmE3MSA3MSAwIDAgMC04LTFoLTRjLTYgMC0xNCAxMC0yMCAxOWwtMjMgN2MtMTAtMTQtMTUtMjgtMTUtMjlsLTEtMiAzIDIgNiA0IDIgMmEyIDIgMCAwIDAgMiAwbDU4LTEzYTIgMiAwIDAgMCAxLTFsOC0yN2EyOCAyOCAwIDAgMSA4IDBsOCAyOCAyIDFoNCIvPjxwYXRoIGZpbGw9IiNlNWM5YTMiIGQ9Im0yMjggMTg3IDItMmExMjAgMTIwIDAgMCAxLTEwIDI3aC0zbC04LTEtMTYtMi0xNi0xMi0xLTFjLTEtMS0yLTItNS0ybC0xNCAzYzUtMyA1LTcgNS03di0ybDU0IDZhMiAyIDAgMCAwIDEgMGw2LTQgNS0zIi8+PHBhdGggZmlsbD0iI2U5ZDU4NiIgZD0iTTE4OCA3MmMwIDUgMCAxNC0yIDIyYTIgMiAwIDAgMCAwIDEgMzQ2IDM0NiAwIDAgMC05LTFjMy02IDQtMTQgNC0xNmw3LTZtLTgyIDZjMCAyIDEgMTAgNCAxNmEzMzMgMzMzIDAgMCAwLTkgMGMtMi04LTItMTctMi0yMmw3IDYiLz48cGF0aCBmaWxsPSIjMmEyYzMwIiBkPSJNMTg0IDE1NGEzIDMgMCAwIDAgMy0zIDMgMyAwIDAgMC0zLTIgMyAzIDAgMCAwLTMgMyAzIDMgMCAwIDAgMyAyem0xOCAxNGMtMy0yLTggMC0xNSAwLTYgMC0xMSAwLTExLTlzMy0xNiA5LTE2IDExIDcgMTIgMTZsLTEgNWM1IDAgNiAzIDYgNCIvPjxwYXRoIGZpbGw9IiNmMWZhZmMiIGQ9Ik0xODQgMTQ5YTMgMyAwIDEgMSAwIDUgMyAzIDAgMSAxIDAtNSIvPjxwYXRoIGZpbGw9IiMyYTJjMzAiIGQ9Ik0xMDIgMTU3YTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNnptOSA0YzAgOS00IDktMTAgOWgtNGwtMTIgMXMyLTMgNy00bC0xLTZjLTEtOSA1LTE2IDExLTE2IDUgMCA5IDcgOSAxNiIvPjxwYXRoIGZpbGw9IiNmMWZhZmMiIGQ9Ik0xMDIgMTUxYTMgMyAwIDEgMSAwIDYgMyAzIDAgMCAxIDAtNiIvPjxwYXRoIGZpbGw9IiNlYmRiOGIiIGQ9Im02NiAxMDEtMS0xdi0zbDItMjAgMzAtNyAyIDI1Yy0xLTItNC02LTUtMTMtMS0zLTMtNC02LTRsLTcgMWMtNCAxLTEwIDMtMTEgNS0yIDUtMiAxNi0yIDE2bC0yIDFtMTU1IDAtMS0xcy0xLTExLTMtMTZjLTEtMi03LTQtMTEtNWwtNy0xYy0zIDAtNSAxLTYgNC0xIDctMyAxMS01IDEzbDItMjUgMzAgNyAyIDE3djZsLTEgMSIvPjxwYXRoIGZpbGw9IiNlYmRjOGMiIGQ9Im0xNzQgOTctNjAtMS0zLTctMy0xMi01LTRWNDVsNy0yMHMxIDYwIDE1IDYwaDM3YzE0IDAgMTUtNjAgMTUtNjBsMTAgMzQtNyAxOS0xIDUtMiA5LTMgNW02MiAxMC0zLTEgMyAxbS0zLTEtMTEtNFY4MXMzIDIxIDExIDI1Ii8+PHBhdGggZmlsbD0iI2VhZDY4NyIgZD0iTTIyMiAxMDB2LTYgNiIvPjxwYXRoIGZpbGw9IiNlYmRjOGMiIGQ9Im01MSAxMDcgNC0xLTQgMW00LTFjNy00IDEwLTI1IDEwLTI1djIxbC0xMCA0Ii8+PHBhdGggZmlsbD0iI2VhZDY4NyIgZD0iTTY1IDEwMHYtMyAzIi8+PHBhdGggZmlsbD0iIzJhMmMzMCIgZD0iTTk4IDk2di0xYy0zLTktMy0xOS0yLTI0bC0yOCA4Yy0yIDEyLTEgMjAgMCAyMmExODUgMTg1IDAgMCAxIDYtMiAyMjkgMjI5IDAgMCAxIDIzLTNoMXptMTItMmMtMy02LTQtMTQtNC0xNmwtNy02YTc3IDc3IDAgMCAwIDIgMjNsOS0xem03NiAwYzItOCAyLTE3IDItMjJsLTcgNmMwIDItMSAxMC00IDE2bDkgMWEyIDIgMCAwIDEgMC0xem0zNCA3YzAtMSAxLTEwLTEtMjJsLTI4LThjMSA1IDEgMTUtMiAyNHYxaDFhMjI4IDIyOCAwIDAgMSAzMCA1em00IDEgMTEgNS02LTJhOTQgOTQgMCAwIDAtNS0xIDE3NSAxNzUgMCAwIDAtMjMtM2wtMTItMWE3NjEgNzYxIDAgMCAwLTkxIDBsLTEyIDFhMjQyIDI0MiAwIDAgMC0zNCA2bDExLTVoMWMwLTEtMS0xMSAxLTI1YTIgMiAwIDAgMSAxLTFsNC0yYzEtMzAgMTMtNDQgMTQtNDRhODMgODMgMCAwIDAtMTEgNDRsMjQtN2gybDIgMmMtMS04IDAtMzEgMTEtNTAtMSAxLTkgMjYtNiA1NGE0NSA0NSAwIDAgMCAzIDJ2MnMxIDkgNSAxN2E0NDQgNDQ0IDAgMCAxIDU5IDBjNC04IDUtMTcgNS0xN2EyIDIgMCAwIDEgMC0yIDQ5IDQ5IDAgMCAwIDMtMmMzLTI4LTUtNTMtNS01NCAxMCAxOSAxMSA0MiAxMSA1MGE4MyA4MyAwIDAgMCAxLTJoMmwyNCA3YzAtNSAwLTI2LTExLTQ0IDEgMCAxMyAxNCAxNCA0NGw0IDJhMiAyIDAgMCAxIDEgMWMzIDE0IDEgMjQgMSAyNWgxIi8+PHBhdGggZmlsbD0iIzJhMmMzMCIgZD0iTTE2OCA0M1YzMGgtNDd2MTNoNnYtNmgxM3Y0MGgtNXY3aDE4di03aC01VjM3aDEzdjZ6bTQtMTh2MjNoLTE2di03aC0zdjMxaDV2MTdoLTI4VjcyaDVWNDFoLTN2N2gtMTZWMjVoNTYiLz48cGF0aCBmaWxsPSIjY2QyNDQ1IiBkPSJNMTY4IDMwdjEzaC03di02aC0xM3Y0MGg1djdoLTE4di03aDVWMzdoLTEzdjZoLTZWMzBoNDciLz48cGF0aCBmaWxsPSIjNWQ2NzYyIiBkPSJtNDEgMTI0IDktMmExMzkgMTM5IDAgMCAwLTggNmwtMS00Ii8+PHBhdGggZmlsbD0iI2M0YWY5MCIgZD0iTTEyNyAxODZzMCA1LTUgNmMtNiAyLTQ0IDEzLTQ4IDEzbC0xNS04LTMtOSAxNiAxMCA1NS0xMm0zMyAwczAgNCA2IDVsNDggMTFjNC0xIDE1LTkgMTUtOWwyLTktMTUgOC01Ni02Ii8+PHBhdGggZmlsbD0iI2M0YWY5MCIgZD0iTTM4IDE3OXM1IDEwIDEzIDZsNiAzdjRsLTEzIDItMy0yLTMtMTNtMjEyLTNzLTggMTEtMTcgN2wtMiAydjRsMTMgMiAzLTIgMy0xM20tMTMxIDgxczMxIDE2IDY2LTVsLTEyLTFzLTI0IDEwLTQzIDRsLTExIDIiLz48cGF0aCBmaWxsPSIjMmEyYzMwIiBkPSJNNTAgMTIyYTMwNSAzMDUgMCAwIDAtOSAybDEgNGExMzkgMTM5IDAgMCAxIDgtNnptNSA2OWE5MSA5MSAwIDAgMSAwLTNsLTctNWEyIDIgMCAwIDEtMS0xbC0zLTI3LTcgM3Y5YzEgOCA1IDIzIDcgMjVsMTEtMXptNDItNzMgMTUtM2ExMTczIDExNzMgMCAwIDAtNDUgMmMtNiA0LTI4IDE4LTQzIDM2IDE1LTEwIDQwLTI2IDczLTM1em0tMyAxNCAxMi0xMWMtMTUgNC0yOSA5LTQxIDE0YTQ4MSA0ODEgMCAwIDEgMjktM3ptNTgtMThoLTIzbC04IDRjLTEgMS0xMiA2LTIzIDE2IDktNSAyMy0xMSAzOS0xNmExOTIgMTkyIDAgMCAxIDE1LTR6bS01IDI1IDctNWE1NjMgNTYzIDAgMCAwLTEwIDAgNTAyIDUwMiAwIDAgMC0zNyAyYy0xMiA1LTE5IDEwLTE5IDEwbC0xMSA3IDgtMTFhNzAgNzAgMCAwIDEgNC01bC0zMiA1IDQgMzMgMTQgOSA0NS05IDgtMjhhMiAyIDAgMCAxIDEtMWwxMC0yem00IDEwNWg1YTE4NSAxODUgMCAwIDEtNS02IDUzMSA1MzEgMCAwIDEtMyA2aDN6bTI0IDEwYTI1IDI1IDAgMCAxLTE3LThsLTYgMWgtNWMtNiA5LTE5IDEwLTIwIDExaC0xYzcgMiAxNCAzIDIyIDIgNyAwIDE3LTIgMjctNnptLTUtMTM2IDEtMmExNTAgMTUwIDAgMCAwLTEzIDJjLTE0IDMtMjcgNy0zOCAxMmE1MTEgNTExIDAgMCAxIDI0LTFoMTVsMTEtMTF6bTQwLTFhNzM1IDczNSAwIDAgMC0xMy0xbC0xOS0xLTIgM2MtMyA0LTEwIDEzLTE4IDE5IDEyLTIgMzMtNyA1MC0xOWwyLTF6bTIwIDY4LTIgMi01IDMtNiA0YTIgMiAwIDAgMS0xIDBsLTU0LTZoLTRhMiAyIDAgMCAxLTItMWwtOC0yOGEyOCAyOCAwIDAgMC04IDBsLTggMjdhMiAyIDAgMCAxLTEgMWwtNTggMTNoLTJsLTItMi02LTQtMy0yIDEgMmMwIDEgNSAxNSAxNSAyOWExMTY2IDExNjYgMCAwIDAgMjMtN2M2LTkgMTQtMTkgMjAtMTlhNjggNjggMCAwIDEgNCAwbDggMS0zLTZzOCA2IDE4IDVjOS0xIDE2LTcgMTYtN3MwIDQtNSA3bDE0LTNjMyAwIDQgMSA1IDJsMSAxYTQ2MjYgNDYyNiAwIDAgMSAxNiAxMiA4MTYgODE2IDAgMCAwIDI3IDMgMTM0IDEzNCAwIDAgMCAxMC0yN3ptLTMtMTUgNC0yOGMtMTItMi0yOC01LTQ4LTYtMTggNi0zNCA4LTM1IDhoLTFsMTIgMiAxIDEgOCAyNyA0NSA1em0xMCA2IDUtMzJhMzIxIDMyMSAwIDAgMC04LTJsLTQgMjlhMiAyIDAgMCAxLTEgMWwtMTUgMTFoLTFsLTQ2LTVhMiAyIDAgMCAxLTItMWwtOC0yOC0xMy0yLTEzIDItOCAyOGEyIDIgMCAwIDEtMiAxbC00NiAxMGgtMWwtMTUtMTFhMiAyIDAgMCAxLTEtMWwtNC0zM2EzMjkgMzI5IDAgMCAwLTUgMGwtMyAyIDUgMzUgMjIgMTYgNTYtMTIgOC0yOCAyLTFhMzUgMzUgMCAwIDEgMTEgMGwxIDEgOCAyOCA1NyA3em03LTM3IDQtMTUtMzEtNS0yNCAxM2MyNSAyIDQzIDUgNTEgN3ptNyAyNC0xLTktNS0zLTQgMjYtMSAxLTUgNC0xIDUgMTAgMWMyLTMgNi0xNyA3LTI1em0xNi02NC0xIDExYTc0IDc0IDAgMCAxLTIgMTIgNjAgNjAgMCAwIDEtMiA1IDUxIDUxIDAgMCAxLTEgM2wtMSAyLTEgMXYxaC0xYTQ1IDQ1IDAgMCAxLTEgMWwtMiAxLTQgMWE4NCA4NCAwIDAgMC0yIDFsLTIgN2gtMWwtMSAxIDggNGMzIDIgMyA2IDMgMTNsLTQgMTdjLTIgMTEtNCAxMy02IDEzYTE3IDE3IDAgMCAxLTQgMWwtMTAtMWMwIDMtMyA5LTcgMTdoMWwxNS03IDctMy0zIDctMTQgMjZjLTUgMTAtMTQgMTItMjAgMTNsLTIgMS0yMCA1YTg1IDg1IDAgMCAxLTE1IDdjLTE5IDctMzkgNy01OCAwbC0xMiAyYTYwIDYwIDAgMCAxLTcgMGMtMTggMC0yNy05LTM0LTE4bC0xNi0yNC02LTggOSA0IDIwIDEwIDEtMWMtNi04LTExLTE4LTE0LTI5bC0xMSAyaC0zYy0yLTEtNC0zLTgtMTNsLTMtMTdjLTEtNy0xLTEwIDItMTNsOS01di0yYy0xOSAxMS0zMCAyMC0zMCAyMUwwIDE3OWw5LTE1YzgtMTEgMTYtMjEgMjQtMjhoLTFsLTItMWE0NyA0NyAwIDAgMS0xLTFoLTF2LTFsLTEtMS0xLTJhNDEgNDEgMCAwIDEtMS0zIDYwIDYwIDAgMCAxLTItNSA3MyA3MyAwIDAgMS0yLTEyIDczIDczIDAgMCAxIDAtMTEgNjkgNjkgMCAwIDEgMS0xMnYtMWgxYzMtMyA2LTQgMTAtNmExMDUgMTA1IDAgMCAxIDgtM2M4LTIyIDIyLTQyIDQwLTU2YTEwNCAxMDQgMCAwIDEgMTI2IDBjMTcgMTQgMzEgMzQgMzkgNTZsOCAzYzQgMiA3IDMgMTAgNmgxdjFhMzYgMzYgMCAwIDEgMSA2bDEgNnpNNTQgNzRhMTkyIDE5MiAwIDAgMC0yNyAxNWwtMSAyYTY4IDY4IDAgMCAwIDAgMiA3MCA3MCAwIDAgMCAwIDYgODAgODAgMCAwIDAgNiAzMGwxIDEgMSAxIDQgMS0zLTEyIDE2LTNhNDUgNDUgMCAwIDEtMy0xIDQ5IDQ5IDAgMCAxLTktM2wtMy0yYzExIDMgMzMgMiA1MyAwYTU0MCA1NDAgMCAwIDEgMTA4IDBjMjAgMiA0MiAzIDUzIDBsLTMgMi0zIDEtNyAyLTEgMSAxOCAzLTMgMTFoMmwxLTEgMS0xYTI4IDI4IDAgMCAwIDItNCA1NiA1NiAwIDAgMCAyLTUgNzcgNzcgMCAwIDAgMi0yMSA3MCA3MCAwIDAgMCAwLTYgNjkgNjkgMCAwIDAgMC0ydi0ybC04LTZhMTA3IDEwNyAwIDAgMC0yMC05bC01LTItNS0yYTEyNCAxMjQgMCAwIDEgMTcgNWMtMTYtNDMtNTQtNzAtOTYtNzAtNDMgMC04MSAyNy05NyA3MGExNDQgMTQ0IDAgMCAxIDE3LTUgMjQ4IDI0OCAwIDAgMC0xMCA0em05NiAxNTUgMiAyIDExIDEyYzQgMyA4IDUgMTQgNWg1bDYtMmE2OTQgNjk0IDAgMCAwIDIyLTVjNS0xIDEyLTMgMTYtMTFsMTAtMTgtNyAzYy0zIDItNyAyLTEyIDJoLTlsLTE2LTJoLTFsLTEtMS0xNy0xM3YtMWgtMmwtMjQgN2gtMnMtMTAtNC0yMi00aC0zYy0xIDAtOCAzLTE3IDE3djFoLTFhMTA2MCAxMDYwIDAgMCAxLTMxIDlsLTEgMS0xLTEtMTItNSAxMSAxNWM2IDggMTQgMTUgMjkgMTVoNmwyMi0zaDJzMTItMiAxNi0xMGw0LTEwIDItM3YtMmwxIDIiLz48L3N2Zz4=` | + +Feel free to reach out to us if you have any questions, and happy badging! diff --git a/frontend/docs/logos.md b/frontend/docs/logos.md index 0b43ef16091c5e9a66f0b96f940102b740fd0e68..244f309c9b148a23c0b803b904906d7f0aa7b4f1 100644 --- a/frontend/docs/logos.md +++ b/frontend/docs/logos.md @@ -12,12 +12,6 @@ We support a wide range of logos via [SimpleIcons](https://simpleicons.org/). Al You can click the icon title on <a href="https://simpleicons.org/" rel="noopener noreferrer" target="_blank">simple-icons</a> to copy the slug or they can be found in the <a href="https://github.com/simple-icons/simple-icons/blob/master/slugs.md">slugs.md file</a> in the simple-icons repository. NB - the Simple Icons site and slugs.md page may at times contain new icons that haven't yet been pulled into Shields.io yet. More information on how and when we incorporate icon updates can be found [here](https://github.com/badges/shields/discussions/5369). -## Shields logos - -We also maintain a small number of custom logos for a handful of services: https://github.com/badges/shields/tree/master/logo They can also be referenced by name and take preference to SimpleIcons e.g: - - - https://img.shields.io/npm/v/npm.svg?logo=npm - ## Custom Logos Any custom logo can be passed in a URL parameter by base64 encoding it. e.g: @@ -26,12 +20,7 @@ Any custom logo can be passed in a URL parameter by base64 encoding it. e.g: ## logoColor parameter -The `logoColor` param can be used to set the color of the logo. Hex, rgb, rgba, hsl, hsla and css named colors can all be used. For SimpleIcons named logos (which are monochrome), the color will be applied to the SimpleIcons logo. +The `logoColor` param can be used to set the color of the SimpleIcons named logo. Hex, rgb, rgba, hsl, hsla and css named colors can all be used. -  - https://img.shields.io/badge/logo-javascript-blue?logo=javascript -  - https://img.shields.io/badge/logo-javascript-blue?logo=javascript&logoColor=f5f5f5 - -In the case where Shields hosts a custom multi-colored logo, if the `logoColor` param is passed, the corresponding SimpleIcons logo will be substituted and colored. - --  - https://img.shields.io/badge/logo-gitlab-blue?logo=gitlab --  - https://img.shields.io/badge/logo-gitlab-blue?logo=gitlab&logoColor=white diff --git a/lib/load-logos.js b/lib/load-logos.js deleted file mode 100644 index 9af0cc875b32f436850052bc39fc9cf6b02b5eaa..0000000000000000000000000000000000000000 --- a/lib/load-logos.js +++ /dev/null @@ -1,36 +0,0 @@ -import fs from 'fs' -import path from 'path' -import { fileURLToPath } from 'url' -import { svg2base64 } from './svg-helpers.js' - -function loadLogos() { - // Cache svg logos from disk in base64 string - const logos = {} - const logoDir = path.join( - path.dirname(fileURLToPath(import.meta.url)), - '..', - 'logo', - ) - const logoFiles = fs.readdirSync(logoDir) - logoFiles.forEach(filename => { - if (filename[0] === '.') { - return - } - // filename is eg, github.svg - const svg = fs.readFileSync(`${logoDir}/${filename}`).toString() - const base64 = svg2base64(svg) - // logo is monochrome if it only has one fill= statement - const isMonochrome = (svg.match(/fill="(.+?)"/g) || []).length === 1 - - // eg, github - const name = filename.slice(0, -'.svg'.length).toLowerCase() - logos[name] = { - isMonochrome, - svg, - base64, - } - }) - return logos -} - -export default loadLogos diff --git a/lib/logos.js b/lib/logos.js index 5927aa59947de1d52353307789b3456bca6b9340..813b4cf3675ffb75153056e111d374ecebd164b7 100644 --- a/lib/logos.js +++ b/lib/logos.js @@ -6,9 +6,7 @@ import { } from '../badge-maker/lib/color.js' import coalesce from '../core/base-service/coalesce.js' import { svg2base64, getIconSize, resetIconPosition } from './svg-helpers.js' -import loadLogos from './load-logos.js' import loadSimpleIcons from './load-simple-icons.js' -const logos = loadLogos() const simpleIcons = loadSimpleIcons() // for backwards-compatibility with deleted logos @@ -19,6 +17,7 @@ const logoAliases = { scrutinizer: 'scrutinizer-ci', stackoverflow: 'stack-overflow', tfs: 'azure-devops', + travis: 'travisci', } const lightThreshold = 0.4 const darkThreshold = 0.6 @@ -59,24 +58,6 @@ function decodeDataUrlFromQueryParam(value) { return isDataUrl(maybeDataUrl) ? maybeDataUrl : undefined } -function getShieldsIcon({ name, color }) { - if (!(name in logos)) { - return undefined - } - - const { svg, base64, isMonochrome } = logos[name] - const svgColor = toSvgColor(color) - if (svgColor) { - if (isMonochrome) { - return svg2base64(svg.replace(/fill="(.+?)"/g, `fill="${svgColor}"`)) - } else { - return undefined - } - } else { - return base64 - } -} - function getSimpleIconStyle({ icon, style }) { const { hex } = icon if (style !== 'social' && brightness(normalizeColor(hex)) <= lightThreshold) { @@ -93,7 +74,7 @@ function getSimpleIconStyle({ icon, style }) { // badge. If `size` is not 'auto', the icon will be displayed at its original. // https://github.com/badges/shields/pull/9191 function getSimpleIcon({ name, color, style, size }) { - const key = name === 'travis' ? 'travis-ci' : name.replace(/ /g, '-') + const key = name.replace(/ /g, '-') if (!(key in simpleIcons)) { return undefined @@ -134,10 +115,7 @@ function prepareNamedLogo({ name, color, style, size }) { name = logoAliases[name] } - return ( - getShieldsIcon({ name, color }) || - getSimpleIcon({ name, color, style, size }) - ) + return getSimpleIcon({ name, color, style, size }) } function makeLogo(defaultNamedLogo, overrides) { @@ -159,7 +137,6 @@ export { isDataUrl, decodeDataUrlFromQueryParam, prepareNamedLogo, - getShieldsIcon, getSimpleIcon, makeLogo, } diff --git a/lib/logos.spec.js b/lib/logos.spec.js index be67e3d2f6af0e0c5aff624c76d7818874bc91df..cdefebc9171ba825886b017ab116033f7aeeb981 100644 --- a/lib/logos.spec.js +++ b/lib/logos.spec.js @@ -31,24 +31,6 @@ describe('Logo helpers', function () { }) test(prepareNamedLogo, () => { - // use multicolored shield icon - given({ name: 'npm' }).expect( - 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHBhdGggZD0iTTAgMGg0MHY0MEgwVjB6IiBmaWxsPSIjY2IwMDAwIi8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTcgN2gyNnYyNmgtN1YxNGgtNnYxOUg3eiIvPjwvc3ZnPg==', - ) - // use simple icon with color - given({ name: 'npm', color: 'blue' }).expect( - 'data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjMDA3ZWM2IiByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+bnBtPC90aXRsZT48cGF0aCBkPSJNMS43NjMgMEMuNzg2IDAgMCAuNzg2IDAgMS43NjN2MjAuNDc0QzAgMjMuMjE0Ljc4NiAyNCAxLjc2MyAyNGgyMC40NzRjLjk3NyAwIDEuNzYzLS43ODYgMS43NjMtMS43NjNWMS43NjNDMjQgLjc4NiAyMy4yMTQgMCAyMi4yMzcgMHpNNS4xMyA1LjMyM2wxMy44MzcuMDE5LS4wMDkgMTMuODM2aC0zLjQ2NGwuMDEtMTAuMzgyaC0zLjQ1NkwxMi4wNCAxOS4xN0g1LjExM3oiLz48L3N2Zz4=', - ) - - // use monochrome shield icon - given({ name: 'dependabot' }).expect( - 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1NCA1NCIgZmlsbD0iI2ZmZiI+PHBhdGggZD0iTTI1IDNhMSAxIDAgMCAwLTEgMXY3YTEgMSAwIDAgMCAxIDFoNXYzSDZhMyAzIDAgMCAwLTMgM3YxMkgxYTEgMSAwIDAgMC0xIDF2MTBhMSAxIDAgMCAwIDEgMWgydjZhMyAzIDAgMCAwIDMgM2g0MmEzIDMgMCAwIDAgMy0zdi02aDJhMSAxIDAgMCAwIDEtMVYzMWExIDEgMCAwIDAtMS0xaC0yVjE4YTMgMyAwIDAgMC0zLTNIMzNWNGExIDEgMCAwIDAtMS0xaC03em0tMy45ODIgMjZhMS4yMSAxLjIxIDAgMCAxIC44MzcuMzU1bDEuMjkgMS4yOWExLjIxIDEuMjEgMCAwIDEgMCAxLjcwOSAxLjIxIDEuMjEgMCAwIDEgMCAuMDAxbC02LjI5MSA2LjI5YTEuMjEgMS4yMSAwIDAgMS0xLjcxIDBsLTMuNzktMy43OTFhMS4yMSAxLjIxIDAgMCAxIDAtMS43MWwxLjI5LTEuMjlhMS4yMSAxLjIxIDAgMCAxIDEuNzEgMEwxNiAzMy41bDQuMTQ1LTQuMTQ1YTEuMjEgMS4yMSAwIDAgMSAuODczLS4zNTV6bTE5Ljk2MiAwYTEuMjEgMS4yMSAwIDAgMSAuODc0LjM1NGwxLjI5IDEuMjlhMS4yMSAxLjIxIDAgMCAxIDAgMS43MWwtNi4yOSA2LjI4OXYuMDAyYTEuMjEgMS4yMSAwIDAgMS0xLjcxMSAwbC0zLjc5LTMuNzlhMS4yMSAxLjIxIDAgMCAxIDAtMS43MWwxLjI5LTEuMjlhMS4yMSAxLjIxIDAgMCAxIDEuNzEgMGwxLjY0NSAxLjY0NSA0LjE0Ny00LjE0NkExLjIxIDEuMjEgMCAwIDEgNDAuOTggMjl6Ii8+PC9zdmc+', - ) - // use monochrome shield icon with color - given({ name: 'dependabot', color: 'blue' }).expect( - 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1NCA1NCIgZmlsbD0iIzAwN2VjNiI+PHBhdGggZD0iTTI1IDNhMSAxIDAgMCAwLTEgMXY3YTEgMSAwIDAgMCAxIDFoNXYzSDZhMyAzIDAgMCAwLTMgM3YxMkgxYTEgMSAwIDAgMC0xIDF2MTBhMSAxIDAgMCAwIDEgMWgydjZhMyAzIDAgMCAwIDMgM2g0MmEzIDMgMCAwIDAgMy0zdi02aDJhMSAxIDAgMCAwIDEtMVYzMWExIDEgMCAwIDAtMS0xaC0yVjE4YTMgMyAwIDAgMC0zLTNIMzNWNGExIDEgMCAwIDAtMS0xaC03em0tMy45ODIgMjZhMS4yMSAxLjIxIDAgMCAxIC44MzcuMzU1bDEuMjkgMS4yOWExLjIxIDEuMjEgMCAwIDEgMCAxLjcwOSAxLjIxIDEuMjEgMCAwIDEgMCAuMDAxbC02LjI5MSA2LjI5YTEuMjEgMS4yMSAwIDAgMS0xLjcxIDBsLTMuNzktMy43OTFhMS4yMSAxLjIxIDAgMCAxIDAtMS43MWwxLjI5LTEuMjlhMS4yMSAxLjIxIDAgMCAxIDEuNzEgMEwxNiAzMy41bDQuMTQ1LTQuMTQ1YTEuMjEgMS4yMSAwIDAgMSAuODczLS4zNTV6bTE5Ljk2MiAwYTEuMjEgMS4yMSAwIDAgMSAuODc0LjM1NGwxLjI5IDEuMjlhMS4yMSAxLjIxIDAgMCAxIDAgMS43MWwtNi4yOSA2LjI4OXYuMDAyYTEuMjEgMS4yMSAwIDAgMS0xLjcxMSAwbC0zLjc5LTMuNzlhMS4yMSAxLjIxIDAgMCAxIDAtMS43MWwxLjI5LTEuMjlhMS4yMSAxLjIxIDAgMCAxIDEuNzEgMGwxLjY0NSAxLjY0NSA0LjE0Ny00LjE0NkExLjIxIDEuMjEgMCAwIDEgNDAuOTggMjl6Ii8+PC9zdmc+', - ) - // use simple icon given({ name: 'github' }).expect( 'data:image/svg+xml;base64,PHN2ZyBmaWxsPSJ3aGl0ZXNtb2tlIiByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+R2l0SHViPC90aXRsZT48cGF0aCBkPSJNMTIgLjI5N2MtNi42MyAwLTEyIDUuMzczLTEyIDEyIDAgNS4zMDMgMy40MzggOS44IDguMjA1IDExLjM4NS42LjExMy44Mi0uMjU4LjgyLS41NzcgMC0uMjg1LS4wMS0xLjA0LS4wMTUtMi4wNC0zLjMzOC43MjQtNC4wNDItMS42MS00LjA0Mi0xLjYxQzQuNDIyIDE4LjA3IDMuNjMzIDE3LjcgMy42MzMgMTcuN2MtMS4wODctLjc0NC4wODQtLjcyOS4wODQtLjcyOSAxLjIwNS4wODQgMS44MzggMS4yMzYgMS44MzggMS4yMzYgMS4wNyAxLjgzNSAyLjgwOSAxLjMwNSAzLjQ5NS45OTguMTA4LS43NzYuNDE3LTEuMzA1Ljc2LTEuNjA1LTIuNjY1LS4zLTUuNDY2LTEuMzMyLTUuNDY2LTUuOTMgMC0xLjMxLjQ2NS0yLjM4IDEuMjM1LTMuMjItLjEzNS0uMzAzLS41NC0xLjUyMy4xMDUtMy4xNzYgMCAwIDEuMDA1LS4zMjIgMy4zIDEuMjMuOTYtLjI2NyAxLjk4LS4zOTkgMy0uNDA1IDEuMDIuMDA2IDIuMDQuMTM4IDMgLjQwNSAyLjI4LTEuNTUyIDMuMjg1LTEuMjMgMy4yODUtMS4yMy42NDUgMS42NTMuMjQgMi44NzMuMTIgMy4xNzYuNzY1Ljg0IDEuMjMgMS45MSAxLjIzIDMuMjIgMCA0LjYxLTIuODA1IDUuNjI1LTUuNDc1IDUuOTIuNDIuMzYuODEgMS4wOTYuODEgMi4yMiAwIDEuNjA2LS4wMTUgMi44OTYtLjAxNSAzLjI4NiAwIC4zMTUuMjEuNjkuODI1LjU3QzIwLjU2NSAyMi4wOTIgMjQgMTcuNTkyIDI0IDEyLjI5N2MwLTYuNjI3LTUuMzczLTEyLTEyLTEyIi8+PC9zdmc+', @@ -66,15 +48,6 @@ describe('Logo helpers', function () { 'data:image/svg+xml;base64,PHN2ZyBmaWxsPSJ3aGl0ZSIgcm9sZT0iaW1nIiB2aWV3Qm94PSIwIDAgMjQgNS43MjU5OTk5OTk5OTk5OTkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHRpdGxlPkFNRDwvdGl0bGU+PHBhdGggZD0iTTE4LjMyNCAwTDE5Ljg4MyAxLjU2SDIyLjQzOVY0LjExN0wyNCA1LjY3N1YwWk0yIDAuMzgzTDAgNS4zNDNIMS4zMDlMMS42NzkgNC4zNjFIMy45TDQuMzA4IDUuMzQzSDUuNjQ2TDMuNDMyIDAuMzgzWk02LjIwOSAwLjM4M1Y1LjMzOEg3LjQ0N1YyLjI0Nkw4Ljc4NSAzLjgwOEg4Ljk3M0wxMC4zMTEgMi4yNTJWNS4zNDNIMTEuNTQ5VjAuMzgzSDEwLjQ3TDguODc4IDIuMjI4TDcuMjg3IDAuMzgzWk0xMi40OTIgMC4zODNWNS4zNDNIMTQuNTQ5QzE2LjUyOCA1LjM0MyAxNy40MjkgNC4yOTcgMTcuNDI5IDIuODcxQzE3LjQyOSAxLjUxMSAxNi40OTIgMC4zODMgMTQuNjgyIDAuMzgzWk0xMy43MjkgMS4yOTNIMTQuNTIxQzE1LjY5MSAxLjI5MyAxNi4xNTEgMi4wMDQgMTYuMTUxIDIuODYzQzE2LjE1MSAzLjU5MSAxNS43NzkgNC40MzUgMTQuNTM1IDQuNDM1SDEzLjcyOVpNMi43NDQgMS41NjZMMy41MzUgMy40OThIMi4wMDhaTTE5Ljg4MSAxLjg3M0wxOC4yNzcgMy40NzZWNS43MjZIMjAuNTIzTDIyLjEyNyA0LjExOUgxOS44ODFaIi8+PC9zdmc+', ) - // use travis shield icon - given({ name: 'travis' }).expect( - 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNjYuNjY2IiBoZWlnaHQ9IjI2NC40OTciPjxwYXRoIGZpbGw9IiNjZDI0NDUiIGQ9Ik02My43MDggMTE1LjQzcy00MS40OSAyOS4yMDMtNDMuMTEzIDQwLjMyOWwzLjExMy0uNjRzNDkuNjg1LTMyLjkzMiA4OS4wNy0zNi45NDhsLjg5My00Ljk5OS00OS45NjMgMi4yNTdNMTI4LjgzOSAxMTEuMjU2bC0zMi42ODIgMjMuMTggMS43NjcgMS40MThjMS4zMzItMS4wNzUgNTguMDUyLTE4LjM5OCA1OC4wNTItMTguMzk4bDExLjk1OS03LjQ5N2MtOC4wMjQuOTk4LTM5LjA5NiAxLjI5Ny0zOS4wOTYgMS4yOTdNMTU3LjI0MyAxMzkuMjkyYzIzLjIwNiAwIDU3Ljk5My0yMi43MjggNTcuOTkzLTIyLjcyOGwtMTEuMjQ1LTIuMTRjLS41NTYuNTU2LTE4LjEzNC0uNjE2LTE4LjEzNC0uNjE2bC04LjM0NC0yLjMxNy0xOS45MzQgMjIuNzE0LTEuNjIzIDMuOTQyYzEuNDMzLS41ODMgMS4yODcgMS4xNDUgMS4yODcgMS4xNDVNNTkuMjc1IDIyNS4zODRsLS40ODItLjIyMmMtMS4xNC0uOTg0LTIuMDc0LTEuNzktMi42ODQtMi4zMTR6bTE3My42OTYtMTMuNjA4bC03LjE3IDIuMDE5LTMzLjEyNC0uNzE2LTIwLjcyMS0xNi4xMTMtMjUuMDQ1IDYuMjY2LTI4Ljk2OC0yLjUwNy0xNi4yMjIgMTcuNzI1LTMwLjQzNyA5LjA5My0xNS4xOTgtNC43MTItLjc2NS0uNjYgNi44MjIgMTYuNzAzczE1LjQ1IDE2LjU2NiAyNC4wODEgMTguNTE0YzguNjMgMS45NDggMjQuMjItLjE0IDM1LjkxMy0xLjk1IDExLjY5Mi0xLjgxIDIxLjAxOS01Ljk4NiAyNC43NzYtMTIuODA1IDMuNzU4LTYuODIyIDQuMzE1LTguNzcgNC4zMTUtOC43N3MxMS4xMzcgMTUuNzMgMjAuNzQxIDE3LjU0YzkuNjA0IDEuODA5IDM4LjE0LTcuOTM2IDM4LjE0LTcuOTM2czE3LjQwMi00LjczMiAyMC40NjItMTAuNzE4YzMuMDYyLTUuOTg1IDExLjEzNy0yNS42MTIgMTEuMTM3LTI1LjYxMmwtOC43MzcgNC42MzkiLz48cGF0aCBmaWxsPSIjZjJmMTliIiBkPSJNMjYxLjExIDkzLjQ0N2MtLjA3My0uODk1LS4xNzEtMS43OS0uMjgtMi42NzktLjA3OC0uNjMtLjE3OC0xLjI5LS4yODctMS44OTktMi4zOTEtMi4wMTItNS4xMDgtMy44MDEtNy45MzYtNS40MjgtMy4wNjYtMS43OS02LjI3Mi0zLjM5NC05LjU0Ni00Ljg4NC0zLjI1LTEuNTMzLTYuNTg5LTIuOTIxLTkuOTQ4LTQuMjc2LTEuNjc2LS42OC0zLjM2Ni0xLjM0LTUuMDY0LTEuOTY5LTEuNjkyLS42Ni0zLjQtMS4yNzUtNS4xMTMtMS44OTkgMy41OTYuNTk2IDcuMTU1IDEuNDEyIDEwLjY4NyAyLjMyMmExNDQuMTggMTQ0LjE4IDAgMCAxIDYuODUzIDEuOTY5Yy0xNi4xNS00Mi4yMDctNTQuNzYtNjkuNjkzLTk2LjkxNi02OS42OTMtNDIuMTYzIDAtODAuNzcgMjcuNDg2LTk2LjkxNSA2OS42OTMgMi4yNzEtLjcxIDQuNTU3LTEuMzc1IDYuODUtMS45NyAzLjUzNy0uOTA5IDcuMDk3LTEuNzI1IDEwLjY5LTIuMzItMS43MTguNjIzLTMuNDIyIDEuMjM4LTUuMTIgMS44OTgtMS42ODkuNjMtMy4zODEgMS4yOS01LjA2MyAxLjk3LTMuMzYgMS4zNTQtNi42ODggMi43NDItOS45NDcgNC4yNzUtMy4yNjcgMS40OS02LjQ3NiAzLjA5NC05LjU0MSA0Ljg4NC0yLjgyOSAxLjYyNi01LjU0MyAzLjQxNi03Ljk0MyA1LjQyOC0uMS42MS0uMjAyIDEuMjY4LS4yOCAxLjg5OWE2OS41NSA2OS41NSAwIDAgMC0uMjggMi42NzkgNjguNjY0IDY4LjY2NCAwIDAgMC0uMjM2IDUuNDE0Yy0uMDM2IDMuNjE4LjIwOCA3LjIzNS42NjYgMTAuODE0LjQ5NCAzLjU4OSAxLjE1MiA3LjE1NCAyLjEyNyAxMC42MDFhNTcuMDc2IDU3LjA3NiAwIDAgMCAxLjY1MyA1LjA3N2MuMzE2LjgyMy42NiAxLjYzNCAxLjAyIDIuNDIyLjE3OC4zOTIuMzY0Ljc4LjU1IDEuMTUybC4yMjkuNDM3Yy4yNjUuMTM1LjU0NC4yNzIuODEuNGwxLjYwNS43NjdjLjg5NC40MDYgMi4xMzMuOTk0IDMuMTU3IDEuNDUzbC4xNjQtLjE1Mi0yLjk4LTExLjM1Yy42MzItLjE3NCA2LjI5LTEuNjM0IDE2LjA0My0zLjQ5YTUxLjU5NSA1MS41OTUgMCAwIDEtMi4zNjMtLjUwOGMtMi4yMi0uNTUyLTQuNDEyLTEuMjI1LTYuNTMyLTIuMDg1YTI5LjkgMjkuOSAwIDAgMS0zLjA3OS0xLjQ4N2MtLjk4OS0uNTY4LTEuOTYyLTEuMjEtMi43MTYtMi4wNjQgMTAuNzE1IDMuNDk2IDMyLjg1NCAxLjkxMiA1Mi41MzItLjEyMSAxNy45OTktMS44NTUgMzYuMDM5LTMuMDU4IDU0LjE3NC0zLjA5NCAxOC4xMzYuMDM2IDM2LjE4MiAxLjIzOSA1NC4xNzMgMy4wOTQgMTkuNjg4IDIuMDMzIDQxLjgyNyAzLjYxNyA1Mi41NC4xMjEtLjc1Mi44NTMtMS43MjQgMS40OTctMi43MTMgMi4wNjRhMjkuOTk5IDI5Ljk5OSAwIDAgMS0zLjA3OCAxLjQ4N2MtMi4xMjIuODYtNC4zMTIgMS41MzMtNi41MzIgMi4wODUtLjMyOS4wNzktLjY2MS4xNS0uOTkuMjIxIDEwLjY5MyAxLjk4NCAxNi45MTggMy41OTYgMTcuNTg0IDMuNzc1bC0yLjg1MSAxMC44MTNjLjU3My0uMjU4IDEuMTUyLS41MDggMS43Mi0uNzY1bDEuNjAzLS43NjdjLjI2Ni0uMTI5LjUzNy0uMjY1LjgwOS0uNGwuMjIxLS40MzdjLjE5NS0uMzcyLjM4Mi0uNzYuNTU5LTEuMTUyLjM2LS43ODguNzA0LTEuNTk5IDEuMDE5LTIuNDIxYTU2LjMxMyA1Ni4zMTMgMCAwIDAgMS42NTQtNS4wNzhjLjk3NS0zLjQ0NiAxLjYzNC03LjAxMiAyLjEyNy0xMC42MDEuNDYtMy41OC43MDEtNy4xOTcuNjY4LTEwLjgxM2E2Ny44MzEgNjcuODMxIDAgMCAwLS4yMzktNS40MTIiLz48cGF0aCBmaWxsPSIjZTVjOWEzIiBkPSJNMTU1LjcxNiAyNDMuNTQ4YTU4LjEgNTguMSAwIDAgMS00LjI0OC41Yy0uOTEuMDQ0LTEuODcyLjEzNi0yLjc0NS4xMzZsLS4zMjMuMDA3YTc3Ni4xMTUgNzc2LjExNSAwIDAgMCAyLjU1OS01Ljc4NiAxOTcuNjI4IDE5Ny42MjggMCAwIDAgNC43NTcgNS4xNDNNMTU4LjgwMSAyNDYuNjljNC40MDYgNC4zNjMgOS44NjQgNi44NjIgMTUuODcyIDcuMzA2LTEwLjA5MiA0LjA5OS0xOS42MDIgNS42OC0yNi45MjkgNi4xNzMtNy4zMDQuNDktMTQuNzEtLjM3Mi0yMS45NjUtMi4zNjFhMjYuNzc1IDI2Ljc3NSAwIDAgMSAxLjU5LS4yNTJjLjU5Ni0uMDcyIDEzLjYwOC0xLjc3IDE5LjQ3NC0xMC40OWwuNTUuMDEyIDEuNDQtLjAxMmMuOTc1IDAgMS44Ni0uMDggMi43OTItLjExN2E1OC4zNDggNTguMzQ4IDAgMCAwIDYuNTA0LS45MzdjLjIyMy4yMjguNDQ0LjQ1LjY3Mi42NzkiLz48cGF0aCBmaWxsPSIjNWQ2NzYyIiBkPSJNMTcxLjI4NSAxMTYuMDk1Yy0uNDIyLjU1LS44OTQgMS4xNTgtMS4zOTcgMS43OS0yLjU3NyAzLjI1OS02LjE1MiA3LjQyNy0xMC4zOTIgMTEuNTAzYTQ5Mi43OCA0OTIuNzggMCAwIDAtMTUuMjA1LS4yMzZjLTguNjE0IDAtMTYuODc0LjIyOC0yNC43MTYuNjEgMTEuMDgxLTQuNiAyNC4zOTQtOS4wOTEgMzguODEyLTExLjc5IDQuMjEtLjc5NyA4LjUyMS0xLjQzNSAxMi44OTgtMS44NzdNMTA2LjQyOCAxMjEuMDU2Yy0zLjk1NSAyLjc3OS04LjQyMyA2LjMyNS0xMi43NTUgMTAuNjI4YTQ4MC40MTUgNDgwLjQxNSAwIDAgMC0yOC43NTYgMy43NDdjMTIuMjc2LTUuNjQzIDI2LjI4NS0xMC44MzYgNDEuNTExLTE0LjM3NU0yNDEuOTczIDE0My45NTlsLTQuNTEyIDMxLjU3Mi0yMS42MTYgMTUuMTQtNTYuMzc3LTYuNDEtOC40ODctMjcuOTQ4YTEuODQ0IDEuODQ0IDAgMCAwLTEuNDc3LTEuMjk0Yy0yLjA5LS4zMzgtMy45MzctLjUxLTUuNDc3LS41MS0xLjU0NyAwLTMuMzg4LjE3Mi01LjQ4Ny41MWExLjg1OSAxLjg1OSAwIDAgMC0xLjQ3NSAxLjI5NGwtOC4yNzkgMjcuMjY3LTU2LjA2MiAxMi40NzYtMjIuMjE2LTE1LjU2My00LjM3Ny0zNS40MjlhMjY2LjkyIDI2Ni45MiAwIDAgMSAyLjktMS42MTJjMS4zNzYtLjI5NiAyLjkyMi0uNjEgNC42MzQtLjkzOWw0LjEyNiAzMy40MzFjLjA2NC41MjMuMzUyLjk4OC43OCAxLjI5bDE1LjI4NCAxMC43MDlhMS45IDEuOSAwIDAgMCAxLjQ2OC4yODRsNDYuMDkzLTEwLjI1NmMuMTU5LS4wMzYuMzE2LS4wOTIuNDU5LS4xNjZhMS44NSAxLjg1IDAgMCAwIC45MDktMS4xMDJsOC4zLTI3LjMzMWMyLjIyNi0uNTczIDcuOTMtMS45MDUgMTIuOTQxLTEuOTA1IDQuOTk5IDAgMTAuNzA3IDEuMzMyIDEyLjkzNSAxLjkwNWw4LjMgMjcuMzNjLjIxNS43MS44MzIgMS4yMTcgMS41NjggMS4zMDNsNDYuMDkzIDUuMjM2Yy40NDcuMDUuOTAzLS4wNjcgMS4yNy0uMzIybDE1LjI5Mi0xMC43Yy40MTMtLjI5NC42OTMtLjc1NS43NjQtMS4yNjJsNC4wODItMjguNTYxYzMuMDY4LjU5MiA1LjYzMiAxLjEyOCA3LjY0NCAxLjU2M00yNDcuNjY4IDEyNC4xNTlsLTMuOTY4IDE1LjA1M2MtOC4xMTUtMS43OS0yNS45NDEtNS4zLTUwLjIwNS03LjY2MyA3LjkyOC0zLjM4IDE2LTcuNjIgMjMuMzc0LTEyLjkyIDE0LjQzOSAyLjA0IDI1LjA0IDQuMjI2IDMwLjc5OSA1LjUzIi8+PHBhdGggZmlsbD0iI2U0Yzg5NiIgZD0iTTE1My45OTcgMTM0LjI1NmMtMi4yMiAxLjc5OS00LjU2MSAzLjQ4LTYuOTk4IDQuOTVsLTguMTMgNC45MDZjLTUuMDk4LjYyMS05LjUyNCAxLjg4My05Ljc3NCAxLjk1Ni0uMTUuMDQxLS4yOTIuMTA1LS40MjMuMTg3YTEuODczIDEuODczIDAgMCAwLS44MzkgMS4wNThsLTguMjc4IDI3LjI4LTQ0LjI0NyA5Ljg0LTEzLjkzNi05Ljc2MS00LjA1NS0zMi44NDVjNy45MTUtMS40NTQgMTguNS0zLjEzNiAzMS4yMTQtNC41NmE3NS44OSA3NS44OSAwIDAgMC0zLjk0IDUuMTRsLTcuNTcgMTAuODY1IDExLjAyMi03LjM0OGMuMTY0LS4xMTUgNy4xODItNC43MzIgMTguNjY0LTEwLjM0OGE1MDMuMDU3IDUwMy4wNTcgMCAwIDEgNDcuMjktMS4zMnptLTY4Ljg3NiAzNi45OTljMy4xNDMtMS42OTkgNi42OTUtMS40NDcgMTIuMjU0LTEuNDM5LjU5Ni4wMTUgMS4yMS4wMDcgMS44NTMtLjAwNy41NDctLjAwNiAxLjA5Ni0uMDE0IDEuNjc3LS4wMjkgNS43MjgtLjA1NiAxMC40OTIuNDg4IDEwLjQwOS04LjUwOC0uMDg3LTguOTk0LTQuMDgzLTE2LjI2NC05LjgwNi0xNi4yMDYtNS43My4wNDktMTEuMjcyIDcuNDE4LTEwLjkzIDE2LjQwNy4wOTQgMi4zNDIuNDM4IDQuMDMxLjk5IDUuMjUtNC45OTMgMS4yNS02LjM3IDQuMzM4LTYuNDQ3IDQuNTMyTTIzMC42ODcgMTQxLjcybC0zLjk5IDI3LjkyNS0xNC4wNTIgOS44MzktNDQuMTg4LTUuMDIyLTguMjQ0LTI3LjE1YTEuODgxIDEuODgxIDAgMCAwLTEuMjYtMS4yNDVjLS4yNzMtLjA4LTUuNzQ0LTEuNjQtMTEuNTQ1LTIuMTQzbDEuMDYtLjA3Yy45MTYtLjA2NiAxNi4xNTctMS45MzUgMzQuMzU2LTguMjEgMjAuMTUzIDEuNTQ4IDM2LjYxIDQuMDI3IDQ3Ljg2MyA2LjA3NnptLTI4LjI0IDI1Ljg0N2MtLjA1Ni0uMjEzLTEuMjYtMy44MzEtNi41OS0zLjE5Ni42MTUtMS4zMzguODg4LTMuMTQyLjY5NS01LjYxNC0uNzA0LTguOTc0LTUuOTI0LTE2LjEwNy0xMS42NDctMTUuOTA4LTUuNzIyLjIwMy05LjM4OSA3LjY0Mi05LjA3MyAxNi42MzguMzE1IDguOTg3IDUuMTIgOC45MjUgMTAuODQzIDguNzI0IDcuNjkzLS4xNDMgMTEuOTE4LTIuNTA3IDE1Ljc3Mi0uNjQ0Ii8+PHBhdGggZmlsbD0iI2M0YWY5MCIgZD0iTTE1My45OTcgMTM0LjI1NmMtMi4yMiAxLjc5OS00LjU2MSAzLjQ4LTYuOTk4IDQuOTVsLTguMTMgNC45MDZjLTUuMDk4LjYyMS05LjUyNCAxLjg4My05Ljc3NCAxLjk1Ni0uMTUuMDQxLS4yOTIuMTA1LS40MjMuMTg3YTEuODczIDEuODczIDAgMCAwLS44MzkgMS4wNThsLTguMjc4IDI3LjI4LTQ0LjI0NyA5Ljg0LTEzLjkzNi05Ljc2MS00LjA1NS0zMi44NDVjNy45MTUtMS40NTQgMTguNS0zLjEzNiAzMS4yMTQtNC41NmE3NS44OSA3NS44OSAwIDAgMC0zLjk0IDUuMTRsLTcuNTcgMTAuODY1IDExLjAyMi03LjM0OGMuMTY0LS4xMTUgNy4xODItNC43MzIgMTguNjY0LTEwLjM0OGE1MDMuMDU3IDUwMy4wNTcgMCAwIDEgNDcuMjktMS4zMnptLTY4Ljg3NiAzNi45OTljMy4xNDMtMS42OTkgNi42OTUtMS40NDcgMTIuMjU0LTEuNDM5LjU5Ni4wMTUgMS4yMS4wMDcgMS44NTMtLjAwNy41NDctLjAwNiAxLjA5Ni0uMDE0IDEuNjc3LS4wMjkgNS43MjgtLjA1NiAxMC40OTIuNDg4IDEwLjQwOS04LjUwOC0uMDg3LTguOTk0LTQuMDgzLTE2LjI2NC05LjgwNi0xNi4yMDYtNS43My4wNDktMTEuMjcyIDcuNDE4LTEwLjkzIDE2LjQwNy4wOTQgMi4zNDIuNDM4IDQuMDMxLjk5IDUuMjUtNC45OTMgMS4yNS02LjM3IDQuMzM4LTYuNDQ3IDQuNTMyTTIzMC42ODcgMTQxLjcybC0zLjk5IDI3LjkyNS0xNC4wNTIgOS44MzktNDQuMTg4LTUuMDIyLTguMjQ0LTI3LjE1YTEuODgxIDEuODgxIDAgMCAwLTEuMjYtMS4yNDVjLS4yNzMtLjA4LTUuNzQ0LTEuNjQtMTEuNTQ1LTIuMTQzbDEuMDYtLjA3Yy45MTYtLjA2NiAxNi4xNTctMS45MzUgMzQuMzU2LTguMjEgMjAuMTUzIDEuNTQ4IDM2LjYxIDQuMDI3IDQ3Ljg2MyA2LjA3NnptLTI4LjI0IDI1Ljg0N2MtLjA1Ni0uMjEzLTEuMjYtMy44MzEtNi41OS0zLjE5Ni42MTUtMS4zMzguODg4LTMuMTQyLjY5NS01LjYxNC0uNzA0LTguOTc0LTUuOTI0LTE2LjEwNy0xMS42NDctMTUuOTA4LTUuNzIyLjIwMy05LjM4OSA3LjY0Mi05LjA3MyAxNi42MzguMzE1IDguOTg3IDUuMTIgOC45MjUgMTAuODQzIDguNzI0IDcuNjkzLS4xNDMgMTEuOTE4LTIuNTA3IDE1Ljc3Mi0uNjQ0Ii8+PHBhdGggZmlsbD0iI2U1YzlhMyIgZD0iTTI0OS45NzUgMTU0LjAwM2MuNjc3LjU1OCAxLjIxNCAyLjAwNS42MDggOC43NDQtLjc0NiA4LjI1LTQuMjE0IDIyLjczMi02LjM2MiAyNS4wNjYtMi4zNy40NTktNy4zNC0uMDg1LTEwLjM3LS43OTMuNTI0LTIuMDc5LjY3My0zLjA3NSAxLjA5Ni01LjJsNS4zLTMuNzA4Yy40MjItLjI5My43MDEtLjc1NS43NzMtMS4yNTVsMy43MDQtMjUuOTU0YzIuMjQ4IDEuMjE2IDQuNTYxIDIuNTMyIDUuMjUgMy4xTTU0LjU4MyAxODcuODc4Yy4yNjUuOTM4LjU0NCAxLjg3Ni44MzIgMi44LTIuODUyLjgzNy04LjY2IDEuNjQtMTEuMjg3IDEuMTgtMi4xNzctMi4xOTItNi4yMzgtMTcuMjg3LTcuMTI2LTI1LjMwMy0uNzI1LTYuNDk1LS4yMTctNy44OTkuNDQzLTguNDQ2Ljc2Ny0uNjQzIDMuNjM4LTIuMjc3IDYuMTI0LTMuNjA5bDMuMzYgMjcuMjY2Yy4wNjMuNTIzLjM0Mi45ODguNzggMS4yODlsNi44NzQgNC44MjNNMTYxLjc5NiAxODguMjU5bC0uMjAxIDEuNzRzLTYuMTA4IDUuNjYzLTE1Ljk0MiA2LjkzMmMtOS44MzMgMS4yNjYtMTcuNTYtNC43NzYtMTcuNTYtNC43NzYuMzIyIDEuMDUuNzggMy40MjMgMy4wMDcgNS40NDhhNzAuOTY2IDcwLjk2NiAwIDAgMC04LjQxNy0uNTI0Yy0xLjA3MyAwLTIuMTU1LjAzLTMuMjAyLjA4LTYuMDUyLjMxNy0xNC41NjUgOS40NjgtMjAuNTUyIDE4LjY4Ni0yLjkzNy45My0xMi4xMTkgMy44NDQtMjIuNzQ2IDYuOTgzLTkuOTItMTMuNzQ1LTE0Ljc5OC0yNy43OS0xNS4yOTItMjkuMjQzbC4wMDYtLjAwN2MtLjItLjU2LS40MDEtMS4xMi0uNTg4LTEuNjkybDIuNTUgMS43ODV2LjAwN2w2LjMwMiA0LjQxMSAyLjEwNyAxLjQ2OGMuMzE1LjIyMy42ODcuMzM4IDEuMDU5LjMzOC4xMzYgMCAuMjcxLS4wMTUuNDA2LS4wNDFsNTcuOTE0LTEyLjg5NGExLjg0OCAxLjg0OCAwIDAgMCAxLjM2Ny0xLjI2N2w4LjI1OC0yNy4xODZjMS40MjUtLjE5NCAyLjY3Ny0uMjk0IDMuNzUyLS4yOTQgMS4wNjggMCAyLjMyOC4xIDMuNzUzLjI5NGw4LjQ5OSAyNy45OTZjLjIxNi43MDkuODMyIDEuMjI1IDEuNTYxIDEuMzAybDMuOTU5LjQ1NCIvPjxwYXRoIGZpbGw9IiNlNWM5YTMiIGQ9Ik0yMjcuOTAxIDE4Ni43NTVsMS44Ny0xLjMxMmMtLjMxIDEuMjk3LS42NDYgMi41ODYtLjk5NiAzLjg2MS0yLjU5OSA4LjMzLTUuNjY3IDE1LjY5OS05LjA3NCAyMi4yMDgtLjc1My4wNTItMS41NDguMDgxLTIuNC4wODEtMi42MjkgMC01LjMxNC0uMjIyLTguMjg2LS40OTQtNS4xNTgtLjQ3NC0xMy4zNDMtMS40MTEtMTUuOTI4LTEuNzExLTIuMjI3LTEuNzc2LTkuODQ3LTcuODMtMTYuMTg3LTEyLjgyLS4yNS0uMjAxLS40NjQtLjM4OC0uNjczLS41Ni0xLjExNi0uOTQ0LTIuMzg2LTIuMDE3LTQuOTU2LTIuMDE3LTIuMzM1IDAtNS43NDQuODUtMTMuOTg2IDMuMzQ0IDQuMjgzLTMuMjAyIDQuMzExLTcuMzM0IDQuMzExLTcuMzM0bC4yMDEtMS43NCA1NC4zMzEgNi4xNzJhMS44OCAxLjg4IDAgMCAwIDEuMjczLS4zMjFsNS40NTktMy44MjQgNS4wNDEtMy41MzMiLz48cGF0aCBmaWxsPSIjZTlkNTg2IiBkPSJNMTg3LjkxNiA3Mi40NWMuMTY1IDQuODMzLjA0NCAxMy41OTEtMi4yMDcgMjEuNzkzYTEuNzggMS43OCAwIDAgMCAwIC45MzggMzQ1LjczIDM0NS43MyAwIDAgMC04LjU5NC0uNzg4YzMuMjE2LTYuNzM4IDMuOTE3LTEzLjkxNCA0LjA2OS0xNi40NDIgMi40Ny0xLjc1NiA0LjkyOC0zLjg2MiA2LjczMi01LjUwMk0xMDUuOTQxIDc3Ljk1Yy4xNSAyLjUyNy44NTEgOS42ODkgNC4wNjIgMTYuNDIyLTIuODY2LjIyOC01LjczLjQ5My04LjU4OC43OTUuMDc3LS4yOTUuMDg3LS42MSAwLS45MjYtMi4yNDgtOC4xODUtMi4zNjMtMTYuOTUyLTIuMjA2LTIxLjc5MyAxLjgwNSAxLjY0MSA0LjI1NCAzLjc0NyA2LjczMiA1LjUwMSIvPjxwYXRoIGZpbGw9IiMyYTJjMzAiIGQ9Ik0xODQuNDYzIDE1NC4zOTZhMi45MzYgMi45MzYgMCAwIDAgMi44NzItMi45OCAyLjkxNSAyLjkxNSAwIDAgMC0yLjk4LTIuODcgMi45MTggMi45MTggMCAwIDAtMi44NyAyLjk3OCAyLjkyNSAyLjkyNSAwIDAgMCAyLjk3OCAyLjg3MnptMTcuOTg0IDEzLjE3Yy0zLjg1NC0xLjg2LTguMDc5LjUwMy0xNS43NzEuNjQ2LTUuNzIzLjIwMS0xMC41MjguMjY0LTEwLjg0My04LjcyNC0uMzE2LTguOTk2IDMuMzUxLTE2LjQzNCA5LjA3NC0xNi42MzggNS43MjItLjIgMTAuOTQyIDYuOTM0IDExLjY0NiAxNS45MDkuMTk0IDIuNDcyLS4wOCA0LjI3Ni0uNjk0IDUuNjEzIDUuMzI4LS42MzYgNi41MzIgMi45OCA2LjU4OCAzLjE5NSIvPjxwYXRoIGZpbGw9IiNmMWZhZmMiIGQ9Ik0xODQuMzU1IDE0OC41MzVhMi45MjQgMi45MjQgMCAxIDEgLjEwNiA1Ljg0OSAyLjkyNSAyLjkyNSAwIDEgMS0uMTA2LTUuODUiLz48cGF0aCBmaWxsPSIjMmEyYzMwIiBkPSJNMTAyLjQ2NyAxNTYuNTY2YTIuOTI3IDIuOTI3IDAgMSAwLS4xNjUtNS44NTIgMi45MjcgMi45MjcgMCAwIDAgLjE2NSA1Ljg1MnptOC44NDUgNC43MDVjLjA4NCA4Ljk5Ni00LjY3OSA4LjQ1Mi0xMC40MDggOC41MDgtLjU4LjAxNC0xLjEzLjAyMS0xLjY3Ny4wMjktLjY0My4wMTUtMS4yNTkuMDIxLTEuODU0LjAwNy01LjU1Ny0uMDA3LTkuMTEtLjI1OS0xMi4yNTMgMS40MzkuMDc3LS4xOTQgMS40NTMtMy4yODIgNi40NDctNC41MzQtLjU1Mi0xLjIxOS0uODk4LTIuOTA4LS45OS01LjI1LS4zNDItOC45ODcgNS4yLTE2LjM1OCAxMC45My0xNi40MDggNS43MjItLjA1NSA5LjcxOCA3LjIxNiA5LjgwNSAxNi4yMDkiLz48cGF0aCBmaWxsPSIjZjFmYWZjIiBkPSJNMTAyLjMxNSAxNTAuNzE5YTIuOTI3IDIuOTI3IDAgMSAxIC4xNSA1Ljg1MiAyLjkyNyAyLjkyNyAwIDAgMS0uMTUtNS44NTIiLz48cGF0aCBmaWxsPSIjZWJkYjhiIiBkPSJNNjYuMDI3IDEwMS4xNDRsLS42NjUtMS4yNTUtLjAyNy0zLjI5NyAxLjczMy0xOS41OTkgMzAuMDgzLTcuMjg1IDEuODcyIDI1LjI5M2MtMS40NTgtMS45NzctMy42NDItNi40NTMtNC45OTUtMTIuNTk0LS43MjQtMy4yOC0zLjA1LTQuMjE1LTUuNzI2LTQuMjE1LTIuMzM1IDAtNC45MzYuNzEyLTYuOTczIDEuMTk2LTQuMzczIDEuMDQxLTEwLjA5OCAyLjQ5OS0xMS4wMzQgNC43ODgtMS44MTggNC40NDEtMi43MDcgMTYuMDMtMi43MDcgMTYuMDNsLTEuNTYxLjkzOE0yMjEuMzY4IDEwMS4xNDRsLTEuNTYxLS45MzdzLS44ODgtMTEuNTktMi43MDYtMTYuMDMxYy0uOTM3LTIuMjktNi42NjItMy43NDctMTEuMDMzLTQuNzg4LTIuMDM3LS40ODQtNC42NC0xLjE5Ni02Ljk3NS0xLjE5Ni0yLjY3NyAwLTUuMDAyLjkzNS01LjcyNiA0LjIxNS0xLjM1MSA2LjE0MS0zLjUzOSAxMC42MTctNC45OTggMTIuNTk0bDEuODc2LTI1LjI5MyAzMC4wODMgNy4yODUgMS40NzYgMTYuNzA3LS4wNTUgNi43MjMtLjM4MS43MjEiLz48cGF0aCBmaWxsPSIjZWJkYzhjIiBkPSJNMTc0LjMwMSA5Ni42MDRsLTYwLjY0Mi0uMTEyLTMuMTQzLTcuMDc2LTIuMjQ3LTEyLjEyOC00Ljk0Mi0zLjkzLS4xMTMtMjguMjQzIDYuOTYtMjAuNTg0czEuMTQzIDYwLjYyNiAxNS4zMTEgNjAuNjI2aDM2LjgzNmMxNC4xNjggMCAxNC45NjYtNjAuNjUzIDE0Ljk2Ni02MC42NTNsOS4yMTYgMzQtNi42OTggMTkuMTIxLS4zMzggNS4zOTEtMi4zNTkgOC41MzMtMi44MDcgNS4wNTVNMjM1Ljk2NyAxMDcuNDNsLTMuNDMtMS42NzUgMy40MyAxLjY3Nm0tMy40My0xLjY3NmwtMTAuODA0LTMuMjU5LjAxNi0yLjA3My41NTYtMS4wNDgtLjUwMS01LjY3NS4xMDEtMTIuNjQxczIuOTE2IDIwLjkyMiAxMC42MzIgMjQuNjk2Ii8+PHBhdGggZmlsbD0iI2VhZDY4NyIgZD0iTTIyMS43NSAxMDAuNDIzbC4wNTQtNi43MjMuNTAxIDUuNjc1LS41NTYgMS4wNDgiLz48cGF0aCBmaWxsPSIjZWJkYzhjIiBkPSJNNTEuMTQ3IDEwNy40M2wzLjQzLTEuNjc1LTMuNDMgMS42NzZtMy40My0xLjY3NmM3LjcxOC0zLjc3NCAxMC42MzMtMjQuNjk2IDEwLjYzMy0yNC42OTZsLjEyNSAxNS41MzMtLjI0NSAyLjc4My4yNzIuNTE0LjAyIDIuNjA3LTEwLjgwNSAzLjI1OSIvPjxwYXRoIGZpbGw9IiNlYWQ2ODciIGQ9Ik02NS4zNjIgOTkuODlsLS4yNzItLjUxNS4yNDUtMi43ODMuMDI3IDMuMjk3Ii8+PHBhdGggZmlsbD0iIzJhMmMzMCIgZD0iTTk4LjA5IDk1LjUyNGwtLjEzLS4zM2MtMi42MzMtOS41ODItMi41MTktMTkuNjMtMi4yODMtMjQuMjY1bC0yNy4zNTIgNy43NzhjLTEuODQgMTEuOTc2LS45ODEgMjAuNzc3LS43OTYgMjIuMzk2YTE4NC45NyAxODQuOTcgMCAwIDEgNi44NDItMS43MTJjMy43OC0uODM4IDcuNTktMS41MzkgMTEuNDA4LTIuMTg0IDMuODI1LS42MzggNy42NjItMS4xMjQgMTEuNTAxLTEuNTkuMjczLS4wMzYuNTM5LS4wNTYuODEtLjA5M3ptMTEuOTEyLTEuMTUyYy0zLjIxMS02LjczMy0zLjkxMi0xMy44OTYtNC4wNjItMTYuNDIzLTIuNDc3LTEuNzU0LTQuOTI4LTMuODYtNi43MzItNS41LS4xNTkgNC44NDItLjA0MyAxMy42MDggMi4yMDYgMjEuNzk0LjA4Ni4zMTYuMDc3LjYzIDAgLjkyNSAyLjg2LS4zMDMgNS43MjItLjU2NyA4LjU4OC0uNzk2em03NS43MDYtLjEzYzIuMjUtOC4yIDIuMzcyLTE2Ljk2IDIuMjA3LTIxLjc5NC0xLjgwNCAxLjY0LTQuMjYzIDMuNzQ1LTYuNzMyIDUuNS0uMTUyIDIuNTI4LS44NTQgOS43MDQtNC4wNyAxNi40NDMgMi44NjYuMjMgNS43MzEuNDg4IDguNTk1Ljc4OGExLjc3NCAxLjc3NCAwIDAgMSAwLS45Mzh6bTMzLjg3OSA2Ljg2N2MuMTg2LTEuNjA5IDEuMDUyLTEwLjQxMi0uNzg4LTIyLjQwMWwtMjcuMzYtNy43NzdjLjI0NSA0LjYzMy4zNTMgMTQuNjgyLTIuMjc2IDI0LjI2NWwtLjEzNS4zNDRjLjI3LjAyOC41NDQuMDUuODA4LjA4NSA3LjY5Mi44ODIgMTUuMzQ4IDIuMTEyIDIyLjkxOSAzLjc3NCAyLjI4Mi41MyA0LjU2OCAxLjA5NyA2LjgzMiAxLjcxem00LjM5NiAxLjI5MWMzLjY3MyAxLjIwMyA3LjM2OCAyLjQ3NyAxMC43MTQgNC40MzMtMS43OS0uNzA5LTMuNjM4LTEuMjE3LTUuNTAxLTEuNjc2YTkzLjg0NyA5My44NDcgMCAwIDAtNS42MDEtMS4yMzJjLTMuNzYtLjcwOC03LjUzNC0xLjMwOS0xMS4zMzEtMS43NjktMy43ODgtLjQ5My03LjU4My0uOTEtMTEuMzk1LTEuMjMyLTMuODEtLjMyMS03LjYxMi0uNjQ0LTExLjQzLS44NjctMTUuMjYyLS45MzgtMzAuNTY2LTEuMTczLTQ1Ljg4LTEuMTg5LTE1LjMxMS4wMDgtMzAuNjE2LjI5NS00NS44NzkgMS4xOTYtMy44MTYuMjIxLTcuNjIuNTQ1LTExLjQzLjg2OC0zLjgwOS4zMjEtNy42MTMuNzMtMTEuMzk0IDEuMjMtMy43OTYuNDYtNy41NyAxLjA2Mi0xMS4zMyAxLjc3LTEuODc3LjM1Mi0zLjc0Ny43Ni01LjYwOSAxLjIyNS0xLjg1NC40NTktMy43MS45NjctNS41IDEuNjc2IDMuMzQ0LTEuOTU0IDcuMDQtMy4yMzYgMTAuNzItNC40NDEuMzEtLjEuNjIzLS4xODUuOTM4LS4yODVsLS4wNTgtLjIzNmMtLjA2NC0uNDIzLTEuNDI1LTEwLjQ3OS45NDYtMjQuODZhMS43ODIgMS43ODIgMCAwIDEgMS4yODItMS40MzRsMy44OS0xLjEwOGMuODQ1LTMwLjE2NiAxMy4yNy00NC4zNTQgMTMuNjU3LTQ0Ljc5Mi0xMS4xMDEgMTcuODYzLTExIDM5LjA0OC0xMC44MDggNDMuOTgybDI0LjE3LTYuODcuMDU2LS4wMTMuMzAyLS4wNDMuMS0uMDA4Yy4xMjMtLjAwNi4yNi4wMDguMzk2LjAzNmwuMDcuMDIyLjMuMS4xMTQuMDY1LjIzNi4xNS4wNjUuMDQzLjA0My4wNDMuMDcyLjA1OWMuMDE2LjAyMS42NTkuNjU3IDEuNjgzIDEuNjEyLS4yNDMtNy45NjQuMTM2LTMwLjgxMSAxMS4wMTYtNDkuNzQ3LS4yMy42NjQtOC44NjIgMjUuOTA0LTUuODg3IDU0LjE5M2E0NS4zNTEgNDUuMzUxIDAgMCAwIDIuOTcyIDIuMTk5Yy40NzkuMzMuNzczLjg3My43OCAxLjQ1My4wMDguMDk0LjIxNCA5LjExMSA0LjE5NyAxNi43ODIuMDU2LjExNC4xLjIzNi4xMzYuMzU3IDkuOTA1LS42NzMgMTkuODM4LS45NDUgMjkuNzUtLjk1MiA5LjkxNC4wMDcgMTkuODQuMjkzIDI5Ljc0Mi45NzUuMDM2LS4xMy4wOC0uMjU4LjE0Ni0uMzggMy45ODEtNy42NzEgNC4xODktMTYuNjg4IDQuMTg5LTE2Ljc4MmExLjgxNyAxLjgxNyAwIDAgMSAuNzg4LTEuNDUzIDQ4LjUzIDQ4LjUzIDAgMCAwIDIuOTY1LTIuMTk5YzIuOTc5LTI4LjI4OS01LjY1My01My41MjktNS44ODEtNTQuMTkzIDEwLjg3IDE4LjkzNSAxMS4yNTkgNDEuNzgxIDExLjAxNiA0OS43NDdhODMuMzgxIDgzLjM4MSAwIDAgMCAxLjY4MS0xLjYxMmwuMDcxLS4wNTkuMDQ0LS4wNDMuMDY1LS4wNDQuMjM2LS4xNTcuMTA4LS4wNTcuMzE1LS4xMDcuMDY1LS4wMTVjLjEyOC0uMDI4LjI2Ny0uMDQyLjM5NS0uMDM2bC4wOTMuMDA4LjMwOC4wNDMuMDU2LjAxMyAyNC4xNzIgNi44N2MuMTk1LTQuOTM0LjI5NS0yNi4xMi0xMC44MDUtNDMuOTgyLjM4NS40MzggMTIuODEyIDE0LjYyNiAxMy42NSA0NC43OTJsMy44OTUgMS4xMDhhMS43OTggMS43OTggMCAwIDEgMS4yODMgMS40MzRjMi4zNyAxNC4zODEgMS4wMDMgMjQuNDM3Ljk0NCAyNC44NmwtLjA1Ni4yNDJjLjMxOS4wOTQuNjI3LjE4Ni45NDMuMjg3Ii8+PHBhdGggZmlsbD0iIzJhMmMzMCIgZD0iTTE2Ny41NTYgNDMuMTc1VjMwLjEyM2gtNDYuOTY1djEzLjA1Mmg2LjQyMXYtNi42MzJoMTMuMjg1djQwLjNoLTUuNDY2djcuNDc0aDE4LjQ4NnYtNy40NzRoLTUuNDY2di00MC4zaDEzLjI4NXY2LjYzMnptNC44MzUtMTcuODc4djIyLjdIMTU2LjN2LTYuNjMyaC0zLjYyN3YzMC42NDJoNS40NzlWODkuMTRoLTI4LjE0NVY3Mi4wMDdoNS40NTZ2LTMwLjY0aC0zLjYxNXY2LjYzMmgtMTYuMDhWMjUuMjk3aDU2LjYyMyIvPjxwYXRoIGZpbGw9IiNjZDI0NDUiIGQ9Ik0xNjcuNTU2IDMwLjEyMXYxMy4wNTRoLTYuNDIxdi02LjYzMmgtMTMuMjg2djQwLjNoNS40Njd2Ny40NzRoLTE4LjQ4NXYtNy40NzRoNS40NjZ2LTQwLjNoLTEzLjI4NXY2LjYzMmgtNi40MjFWMzAuMTJoNDYuOTY1Ii8+PHBhdGggZmlsbD0iIzVkNjc2MiIgZD0iTTQwLjkyNSAxMjQuMTU5YzIuMzQ2LS41MzIgNS41MTUtMS4yMSA5LjQwMi0xLjk2YTEzOS4xMTggMTM5LjExOCAwIDAgMC04LjI5NiA2LjEyOWwtMS4xMDYtNC4xNyIvPjxwYXRoIGZpbGw9IiNjNGFmOTAiIGQ9Ik0xMjYuODE1IDE4Ni4zNzNzLjY1NiA0LjIyLTUuMjUxIDYuMDI2Yy01LjkwNCAxLjgwNi00My4zMSAxMi45NTUtNDcuNTc2IDEyLjM1LTQuMjY1LS42MDEtMTUuMDkyLTcuODMyLTE1LjA5Mi03LjgzMmwtMi42MjUtOS4zMzggMTYuMDIxIDkuOTkgNTQuNTIzLTExLjE5Nk0xNjAuMzIzIDE4NS41NTZzLS40NzIgNC4yNDMgNS41MDggNS43OTNjNS45NzggMS41NDggNDMuODMzIDExLjA2IDQ4LjA2NiAxMC4yNzIgNC4yMzUtLjc4OCAxNC43MzgtOC40ODEgMTQuNzM4LTguNDgxbDIuMjE3LTkuNDQ1LTE0LjcyNyA4Ljc4NC01NS44MDItNi45MjMiLz48cGF0aCBmaWxsPSIjYzRhZjkwIiBkPSJNMzcuODgzIDE3OC42MDhzNS4xODIgMTAuMzY2IDEzLjU1NCA2Ljc3N2w1Ljk4IDIuMTk0LS41OTcgNC4zODctMTIuNTU5IDEuNTkzLTMuMzg4LTEuOTkyLTIuOTktMTIuOTZNMjUwLjA2OCAxNzUuNzYycy04LjQ3IDEwLjgyLTE2Ljg0MyA3LjIzM2wtMi42OTIgMS43MzYuNTk4IDQuMzg1IDEyLjU1OCAxLjU5NSAzLjM4Ny0xLjk5NCAyLjk5Mi0xMi45NTVNMTE5LjAzOSAyNTcuMjA1czMwLjcwNiAxNS40ODIgNjUuNDc0LTUuNTg0bC0xMS4xNjUtLjc2MXMtMjQuMzYzIDkuNjQzLTQzLjY1IDQuMzEzbC0xMC42NiAyLjAzMiIvPjxwYXRoIGZpbGw9IiMyYTJjMzAiIGQ9Ik01MC4zMjcgMTIyLjE5OWEzMDUuNDY1IDMwNS40NjUgMCAwIDAtOS40MDIgMS45NmwxLjEwNiA0LjE2OWExMzguNTMyIDEzOC41MzIgMCAwIDEgOC4yOTYtNi4xM3ptNS4wODcgNjguNDhhOTEuMDU4IDkxLjA1OCAwIDAgMS0uODI5LTIuODAzbC02Ljg4Mi00LjgxNmExLjg1NCAxLjg1NCAwIDAgMS0uNzgyLTEuMjkybC0zLjM1NC0yNy4yNjVjLTIuNDg2IDEuMzMyLTUuMzU3IDIuOTY2LTYuMTIzIDMuNjA5LS42NjMuNTQ1LTEuMTY3IDEuOTQ3LS40NDggOC40NDMuODkgOC4wMTMgNC45NSAyMy4xMSA3LjEzIDI1LjMwNSAyLjYyNS40NjMgOC40MzctLjM0NCAxMS4yODgtMS4xODF6bTQxLjEzMy03Mi4yNjNjNS4xLTEuNDMgMTAuMzYtMi42NzkgMTUuNzUtMy43MjgtNy43My4yODMtMTUuNDY2LjY0MS0yMy4xOSAxLjA3Ny00LjQ4OC4yNDgtOC45NTQuNTUyLTEzLjQyLjg5LTIuMjM4LjE3Mi00LjQ2LjM1LTYuNjc3LjU5My0uNjM0LjA2MS0xLjI1NS4xMy0xLjg5LjIxMy01LjgyNSAzLjQ4Ni0yOC4xNyAxNy41MTItNDMuNTA4IDM1Ljg1MiAxNC45MDUtMTAuMzU4IDQwLjg3Mi0yNS45MjQgNzIuOTM1LTM0Ljg5N3ptLTIuODc5IDEzLjI2NWM0LjMzNS00LjMgOC44MDctNy44NDggMTIuNzU2LTEwLjYyMi0xNS4yMiAzLjUzNC0yOS4yMyA4LjcyNC00MS41MDQgMTQuMzdhNDgxLjI1OCA0ODEuMjU4IDAgMCAxIDI4Ljc0OC0zLjc0OHptNTguNDE5LTE3LjUyNWMtMy4wOC0uMDQ4LTYuMTY0LS4wNzYtOS4yNDQtLjA4M2gtLjAwN2MtNC41Mi4wMDctOS4wNS4wNTUtMTMuNTg1LjE0NmwtOC4zNTkgMy45NjEtLjExNy4wNjRjLTEuMjU2LjYxMy0xMi4yMzIgNi4xNS0yMi41NTkgMTYuMDI4IDkuMjU3LTQuODY3IDIyLjg2MS0xMS4yMjQgMzguODctMTYuMTUzYTE5Mi4yNDggMTkyLjI0OCAwIDAgMSAxNS0zLjk2M3ptLTUuMDg4IDI1LjA1YzIuNDM2LTEuNDcgNC43NzYtMy4xNTQgNi45OTgtNC45NDlhNTYzLjEyIDU2My4xMiAwIDAgMC05LjcwNC0uMDk2IDUwMS42NSA1MDEuNjUgMCAwIDAtMzcuNTg1IDEuNDE1Yy0xMS40OCA1LjYxMi0xOC41IDEwLjIzLTE4LjY2NCAxMC4zNDdsLTExLjAyNCA3LjM1MSA3LjU3Mi0xMC44NjVhNjkuODMyIDY5LjgzMiAwIDAgMSAzLjk0MS01LjE0MmMtMTIuNzE0IDEuNDIxLTIzLjMwMiAzLjEwNS0zMS4yMTMgNC41NjJsNC4wNSAzMi44NDMgMTMuOTM4IDkuNzYxIDQ0LjI0NS05LjgzNyA4LjI4My0yNy4yODVjLjEzOS0uNDUuNDQxLS44MjguODM2LTEuMDU3LjEzLS4wODUuMjctLjE0Ni40Mi0uMTg3LjI1Ni0uMDcgNC42OC0xLjMzMiA5Ljc4MS0xLjk1NHptNC40NzIgMTA0Ljg0M2MxLjQwOC0uMTEgMi44MjItLjI5IDQuMjQ1LS41MDRhMTg1LjA4NyAxODUuMDg3IDAgMCAxLTQuNzU3LTUuMTQyIDUzMS4wNzIgNTMxLjA3MiAwIDAgMS0yLjU2IDUuNzg1aC4zMjRjLjg3Ny4wMDEgMS44MzctLjA5NSAyLjc0OC0uMTM5em0yMy4yIDkuOTQ4Yy02LjAwNC0uNDQyLTExLjQ2NC0yLjk0LTE1Ljg3MS03LjMwMi0uMjI4LS4yMzQtLjQ0OC0uNDU4LS42Ny0uNjgzLTIuMTMuNDI4LTQuMjkxLjc0NS02LjUwNy45MzgtLjkzMS4wMzUtMS44MTUuMTE3LTIuNzg4LjExN2wtMS40NDQuMDE0LS41NTEtLjAxNGMtNS44NjEgOC43MTgtMTguODc5IDEwLjQxNy0xOS40NzMgMTAuNDkzLS41MzguMDYxLS45NzkuMTM3LTEuNTg4LjI0OCA3LjI1NiAxLjk4OCAxNC42NjEgMi44NSAyMS45NjUgMi4zNiA3LjMyMy0uNDkgMTYuODM2LTIuMDc3IDI2LjkyNy02LjE3em0tNC43ODMtMTM2LjExM2MuNTAzLS42MjguOTcyLTEuMjM1IDEuMzkyLTEuNzg3YTE0OS41NDggMTQ5LjU0OCAwIDAgMC0xMi44OTMgMS44NzhjLTE0LjQxOSAyLjY5OC0yNy43MzUgNy4xODUtMzguODE0IDExLjc4MmE1MTEuMDEgNTExLjAxIDAgMCAxIDI0LjcyLS42MDZjNS4yMTEgMCAxMC4yNzguMDg5IDE1LjIwNi4yMzQgNC4yMzgtNC4wNzQgNy44MTQtOC4yNDIgMTAuMzg5LTExLjUwMXptMzkuODM1LTEuMjM1bC0uMDQyLS4wMTZhNzM1LjQ5OCA3MzUuNDk4IDAgMCAwLTEzLjEwMS0uODY4Yy02LjA3My0uMzQ2LTEyLjE1LS42MzYtMTguMjIzLS44OS0uMzUzLjUyNS0xLjA2OSAxLjU2LTIuMDk4IDIuOTY2LTMuMzA2IDQuNDc0LTkuODY0IDEyLjY4LTE4LjI3MiAxOS42NCAxMS45MDEtMi4xMzQgMzIuNTQ1LTcuNDE0IDUwLjQwNC0xOS44NzQuNDQ4LS4zMTguODktLjY0OCAxLjMzMi0uOTU4em0yMC4wNDUgNjguNzkxbC0xLjg3MiAxLjMxLTUuMDM5IDMuNTM1LTUuNDYgMy44MjRhMS44ODggMS44ODggMCAwIDEtMS4yNzIuMzI0bC01NC4zMjgtNi4xNzctMy45NTQtLjQ1YTEuODUyIDEuODUyIDAgMCAxLTEuNTYyLTEuMzAybC04LjUwMi0yNy45OTdjLTEuNDIyLS4xOTQtMi42ODYtLjI5Mi0zLjc0Ny0uMjkyLTEuMDc5IDAtMi4zMzUuMDk3LTMuNzU2LjI5MmwtOC4yNTYgMjcuMTg5YTEuODQ0IDEuODQ0IDAgMCAxLTEuMzY3IDEuMjYxTDcyLjc0IDE5OS44NTRjLS4xMzcuMDI2LS4yNzUuMDQtLjQwNy4wNC0uMzcyIDAtLjc0NS0uMTExLTEuMDY0LS4zMzhsLTIuMTA0LTEuNDY0LTYuMzAxLTQuNDF2LS4wMTRsLTIuNTQ3LTEuNzhjLjE4LjU3My4zODYgMS4xMzMuNTg4IDEuNjlsLS4wMDguMDA5Yy40OTEgMS40NTYgNS4zNzEgMTUuNDk2IDE1LjI5IDI5LjIzOGExMTY2LjQ0NSAxMTY2LjQ0NSAwIDAgMCAyMi43NDItNi45NzhjNS45ODUtOS4yMjMgMTQuNTAzLTE4LjM3IDIwLjU1Ny0xOC42ODZhNjguMDE4IDY4LjAxOCAwIDAgMSAzLjIwNC0uMDhjMi45NiAwIDUuNzkxLjIxMiA4LjQxMy41MjMtMi4yMjgtMi4wMjMtMi42ODQtNC4zOTctMy4wMDgtNS40NDcgMCAwIDcuNzI0IDYuMDQgMTcuNTYgNC43NzkgOS44MzctMS4yNyAxNS45NDUtNi45MzkgMTUuOTQ1LTYuOTM5cy0uMDI4IDQuMTM2LTQuMzE1IDcuMzM4YzguMjQzLTIuNDkyIDExLjY1Mi0zLjM0OCAxMy45ODYtMy4zNDggMi41NzQgMCAzLjg0NCAxLjA3NyA0Ljk1NiAyLjAyNS4yMTQuMTcyLjQyOS4zNTcuNjc2LjU1OWE0NjI2LjE4NSA0NjI2LjE4NSAwIDAgMSAxNi4xODggMTIuODE4YzIuNTgxLjMwMyAxMC43NjYgMS4yMzUgMTUuOTI0IDEuNzExIDIuOTczLjI2OCA1LjY2LjQ5NiA4LjI4OS40OTYuODUgMCAxLjY0NC0uMDM1IDIuMzk2LS4wODQgMy40MS02LjUwNyA2LjQ3Ni0xMy44ODEgOS4wNzctMjIuMjA0LjM0OC0xLjI4LjY4OC0yLjU3Ljk5MS0zLjg2OHptLTMuMDctMTUuNzkzbDMuOTg5LTI3LjkzYy0xMS4yNTItMi4wNDktMjcuNzA3LTQuNTI2LTQ3Ljg2My02LjA3My0xOC4xOTYgNi4yNzYtMzMuNDM2IDguMTQ0LTM0LjM1NSA4LjIwNmwtMS4wNjIuMDc3YzUuODA0LjQ5OCAxMS4yNzIgMi4wNTggMTEuNTQ2IDIuMTQuNjAzLjE4IDEuMDcyLjY0IDEuMjU5IDEuMjQ0bDguMjQ4IDI3LjE1NSA0NC4xODQgNS4wMTh6bTEwLjc2IDUuODgxbDQuNTEzLTMxLjU2OGEzMjEuMDE3IDMyMS4wMTcgMCAwIDAtNy42NDItMS41NTlsLTQuMDc4IDI4LjU2M2ExLjg4NiAxLjg4NiAwIDAgMS0uNzY3IDEuMjU3bC0xNS4yOTYgMTAuNjk4Yy0uMzYuMjU1LS44MjEuMzczLTEuMjYzLjMyNGwtNDYuMDk2LTUuMjM5YTEuODU1IDEuODU1IDAgMCAxLTEuNTY4LTEuMjk3bC04LjMwMi0yNy4zMzRjLTIuMjI0LS41NzQtNy45MzItMS45MDYtMTIuOTI4LTEuOTA2LTUuMDE5IDAtMTAuNzIyIDEuMzMyLTEyLjk0NSAxLjkwNmwtOC4zMDMgMjcuMzM0YTEuODUgMS44NSAwIDAgMS0xLjM2NyAxLjI2Mkw3NS4zMiAxODguMjI1Yy0uMTQ1LjAzLS4yNy4wNDQtLjQwOC4wNDQtLjM3MiAwLS43NDUtLjExLTEuMDU2LS4zMzNsLTE1LjI5LTEwLjcwNWExLjg2MyAxLjg2MyAwIDAgMS0uNzgtMS4yOTFsLTQuMTItMzMuNDNhMzI5LjM2IDMyOS4zNiAwIDAgMC00LjY0LjkzOGMtLjk3OC41NC0xLjk0NiAxLjA3OS0yLjg5OCAxLjYxOGw0LjM3NSAzNS40MjMgMjIuMjIxIDE1LjU2NyA1Ni4wNjItMTIuNDcyIDguMjc3LTI3LjI2NWMuMjA4LS42ODYuNzgtMS4xOSAxLjQ3Ny0xLjMgMi4wOTktLjMzOCAzLjkzMy0uNTEgNS40ODgtLjUxIDEuNTM3IDAgMy4zODEuMTcyIDUuNDczLjUxLjcwNC4xMSAxLjI3Ni42MTQgMS40NzggMS4zbDguNDg4IDI3Ljk0IDU2LjM3NiA2LjQxMnptNi4yNC0zNi4zMTZsMy45NjktMTUuMDUzYy01Ljc1OC0xLjMwNC0xNi4zNi0zLjQ4Ny0zMC44LTUuNTMxLTcuMzc0IDUuMzAxLTE1LjQ0MyA5LjU0LTIzLjM3NCAxMi45MjEgMjQuMjY2IDIuMzYyIDQyLjA5NCA1Ljg3NSA1MC4yMDQgNy42NjN6bTYuODggMjMuNTNjLjYwOS02LjczNS4wNzgtOC4xODUtLjYwNi04LjczOC0uNjg0LS41NzMtMi45OTYtMS44ODMtNS4yNDctMy4xMDVsLTMuNzA1IDI1Ljk1MWMtLjA3LjUwNS0uMzUzLjk2Mi0uNzczIDEuMjU3bC01LjMwMyAzLjcwOGMtLjQyIDIuMTI0LS41NzIgMy4xMjYtMS4wOSA1LjIwNCAzLjAzMS43MDQgOCAxLjI1IDEwLjM2Ny43OTMgMi4xNS0yLjMzIDUuNjE5LTE2LjgxMyA2LjM1OC0yNS4wN3ptMTUuOTk0LTY0LjA0Yy4xOTUgMy44ODUuMDkgNy43NzctLjM0NCAxMS42NDNhNzMuOTQ5IDczLjk0OSAwIDAgMS0yLjE1OSAxMS40NzQgNjAuMDQyIDYwLjA0MiAwIDAgMS0xLjg3MiA1LjU5NyA1MS4wNiA1MS4wNiAwIDAgMS0xLjE4NiAyLjc2MWMtLjIxNS40NTUtLjQ0Mi45MDQtLjY5OCAxLjM2N2wtLjM3OC42ODNjLS4xMzkuMjQ3LS4yNS40MzQtLjQ2NC43NjVsLS4zOTIuNjEtLjYxNS4zMTVhNDQuNzMgNDQuNzMgMCAwIDEtMS43OS44NzFsLTEuNzMuNzhjLTEuMTYxLjQ5Ni0yLjMyNy45NjUtMy40OTMgMS40MmE4My44OSA4My44OSAwIDAgMC0yLjIxNi44OTlsLTEuOTI2IDcuMzE2Yy0uMDQ4LS4wMTItLjYyOC0uMTYtMS43MS0uNDJsLS4xMDQuNzY1YzIuMTI1IDEuMTEgNi4zMDEgMy4zNjMgNy43MjQgNC41MzcgMi44NjQgMi4zNjcgMy4wNjUgNi4xMTYgMi40MyAxMy4xMjItLjMyNSAzLjU5Ni0xLjUxOCAxMC41OTQtMy4xNzQgMTcuMDIyLTIuODU5IDExLjA2NC00LjM3OCAxMi4zNjQtNi4zMzggMTIuODY2YTE3LjIgMTcuMiAwIDAgMS00LjAxLjUxYy0zLjAyMiAwLTcuMTM4LjA4NC05LjkwNi0uNTg1LS43MSAyLjUxNy0yLjc0IDkuMDgzLTYuNzU3IDE3LjI4My4yMDEtLjA5OC40LS4xOC41OC0uMjc2IDQuOTU2LTIuNjAzIDE0LjQ4MS02Ljc1MyAxNC44ODMtNi45MzJsNy41MjQtMy4yNy0zLjg1NCA3LjI0N2MtLjA4OS4xNTctOC4zNTIgMTUuNjk3LTEzLjQxMiAyNS44NDQtNS4wMjUgMTAuMDUtMTQuNDQ2IDEyLjIzOS0yMC4wODYgMTMuNTM0LS44NS4yMDItMS42NTUuMzg5LTIuMzExLjU2Ny00LjA0NyAxLjE0LTEyLjI0IDMuMDkyLTE5LjQ2NSA0LjgzbC0uMjYzLjA1N2E4NS40MjUgODUuNDI1IDAgMCAxLTE0LjYwNyA3LjIxNWMtMTkuNDI0IDcuMzU3LTM5Ljg5NyA2Ljk0My01OC40NTguMTIyLTMuMDE1LjM4OC02Ljk3OS44NjMtMTIuMjU4IDEuNDYzYTYwLjIzOSA2MC4yMzkgMCAwIDEtNi42NDYuMzg4Yy0xNy42ODYgMC0yNy4wNi04Ljk4MS0zMy45LTE3Ljc3NS03LjMyNC05LjQxNi0xNi4yODMtMjMuMzk0LTE2LjY2My0yMy45OGwtNS4xOTUtOC4xMDIgOC43OCAzLjk0OGM0LjIwMyAxLjg5MSAxNi42OTkgNy42NzYgMjAuMjczIDkuMzMzLjI5LS4wODEuNTc0LS4xNjYuODU3LS4yNDgtNS45NDMtOC40NzYtMTAuODE2LTE4LjE0LTE0LjI2LTI4Ljg0NS0yLjkyNy44ODItNy40MzUgMS41NjYtMTAuOTQyIDEuNTY2LTEuMjgxIDAtMi40MjktLjA5Ni0zLjMxMi0uMzA0LTEuOTYtLjQ0OC00LjE5Ny0yLjMzOC03LjI0MS0xMy4wNi0xLjc2Ny02LjIyNC0zLjA4NS0xMy4wMTgtMy40Ny0xNi41MTYtLjc2LTYuODI4LS42MjItMTAuNDg1IDIuMjE1LTEyLjg0OCAxLjcxLTEuNDI4IDcuNDgyLTQuNDU4IDguNjc2LTUuMDc4bC0uMjU2LTIuMTA3Yy0xOC4zMzMgMTAuNzczLTI5LjMyMSAyMC4yOTMtMjkuNTQzIDIwLjQ4OEwwIDE3OS4wNjlsOS4zNC0xNC43MjljNy4zOTItMTEuNjczIDE1LjkzLTIxLjExIDIzLjc4Ny0yOC4zNzktLjMyNS0uMTMtLjYyOS0uMjYxLS45NDctLjM5MmwtMS43MzItLjc4YTQ3LjI1IDQ3LjI1IDAgMCAxLTEuNzg3LS44N2wtLjYxNC0uMzE2LS4zOTQtLjYxYy0uMjIxLS4zMzItLjMxNy0uNTE3LS40NjItLjc2NWwtLjM4Ny0uNjgzYy0uMjQxLS40NjItLjQ3Ny0uOTEyLS42OS0xLjM2NmE0MS4wNCA0MS4wNCAwIDAgMS0xLjE4Ny0yLjc2MiA1OS42OSA1OS42OSAwIDAgMS0xLjg3Mi01LjU5NyA3Mi45OTMgNzIuOTkzIDAgMCAxLTIuMTYtMTEuNDczIDcyLjg4NSA3Mi44ODUgMCAwIDEtLjM0Ni0xMS42NDRjLjEwNC0xLjk0LjI5MS0zLjg3OS41NTktNS44MDYuMTM5LS45NjYuMjg0LTEuOTMzLjQ3Ny0yLjg5My4yLS45NzkuMzk1LTEuODkuNjkxLTIuOTYxbC4yMDctLjc1Mi41MzgtLjQyM2MzLjA2LTIuNDAzIDYuMzU4LTQuMjE3IDkuNzEyLTUuODI1YTEwNS4xNTcgMTA1LjE1NyAwIDAgMSA4LjQxNS0zLjQ4OGM3LjkyNC0yMS45OTEgMjEuNTUtNDEuNDkxIDM5LjQ1NS01NS4wODJDOTkuMTE2IDcuNDI3IDEyMC44ODUgMCAxNDMuNTYgMGMyMi42NzYgMCA0NC40NDYgNy40MjcgNjIuOTU4IDIxLjQ3NSAxNy45MDYgMTMuNTkgMzEuNTMyIDMzLjA5MiAzOS40NSA1NS4wNzYgMi44NDQgMS4wNDkgNS42NTQgMi4xODggOC40MjIgMy40OTMgMy4zNTMgMS42MDggNi42NTMgMy40MjMgOS43MSA1LjgyNWwuNTM5LjQyMy4yMDguNzUyYy4zMDMgMS4wNy40OTYgMS45ODMuNjkgMi45NjEuMTk0Ljk2LjM0NiAxLjkyNy40NzUgMi44OTQuMjcxIDEuOTI0LjQ2NCAzLjg2Mi41NTkgNS44MDJ6TTUzLjk5OCA3NC4yOGMtMy4zNTQgMS4zNTItNi42ODggMi43NDctOS45NDYgNC4yNzktMy4yNjYgMS40OTItNi40NzUgMy4wOTMtOS41NCA0Ljg4LTIuODI4IDEuNjI5LTUuNTQzIDMuNDE3LTcuOTM5IDUuNDM0LS4xMDIuNjA3LS4xOTggMS4yNy0uMjggMS44OThhNjguMjIgNjguMjIgMCAwIDAtLjI3OCAyLjY3OCA2OS44NzQgNjkuODc0IDAgMCAwLS4yNCA1LjQxMmMtLjAzNSAzLjYxOC4yMTMgNy4yMzUuNjY5IDEwLjgxNi40OTYgMy41OSAxLjE1MiA3LjE1OSAyLjEyNSAxMC42MDMuNDg0IDEuNzI3IDEuMDIzIDMuNDMgMS42NTggNS4wNzIuMzEuODMuNjU2IDEuNjM3IDEuMDE2IDIuNDI0LjE3OC4zOTIuMzY1Ljc4LjU1IDEuMTUybC4yMy40MzVjLjI2OC4xMzguNTQ1LjI3Ni44MDYuNGwxLjYwOC43NjVjLjg5OC40MTUgMi4xMzQgMS4wMDEgMy4xNTUgMS40NTdsLjE2NS0uMTUyLTIuOTc0LTExLjM0OGMuNjI3LS4xNzIgNi4yODktMS42MzYgMTYuMDQyLTMuNDkyYTQ0LjkzNSA0NC45MzUgMCAwIDEtMi4zNjYtLjUwNWMtMi4yMTYtLjU1LTQuNDEyLTEuMjI4LTYuNTMtMi4wODQtMS4wNS0uNDQ4LTIuMDkzLS45MzItMy4wOC0xLjQ5Mi0uOTg4LS41NjctMS45NjEtMS4yMDctMi43MTMtMi4wNjMgMTAuNzEzIDMuNDk5IDMyLjg1IDEuOTExIDUyLjUzLS4xMTcgMTguMDAyLTEuODU3IDM2LjAzOC0zLjA1NyA1NC4xNzEtMy4xIDE4LjEzNC4wNDEgMzYuMTg0IDEuMjQxIDU0LjE3NCAzLjEgMTkuNjkzIDIuMDMgNDEuODMyIDMuNjE3IDUyLjU0MS4xMTctLjc1Mi44NTYtMS43MjQgMS40OTYtMi43MTIgMi4wNjMtLjk4NS41Ni0yLjAzIDEuMDQzLTMuMDc5IDEuNDkyLTIuMTI2Ljg1Ni00LjMxNCAxLjUzMi02LjUzNyAyLjA4NC0uMzI1LjA3NS0uNjU2LjE1Mi0uOTg4LjIyMSAxMC42OTMgMS45ODIgMTYuOTE5IDMuNTk2IDE3LjU4MSAzLjc3NmwtMi44NSAxMC44MWMuNTczLS4yNTYgMS4xNTItLjUwMyAxLjcxNy0uNzY2bDEuNjEtLjc2NWMuMjYtLjEyNS41MzgtLjI2MS44MDctLjRsLjIyMi0uNDM1Yy4xOTItLjM3Mi4zNzgtLjc2LjU1OC0xLjE1Mi4zNi0uNzg4LjcwNC0xLjU5NCAxLjAyMy0yLjQyNGE1NS42MjggNTUuNjI4IDAgMCAwIDEuNjQ4LTUuMDcyYy45NzUtMy40NDQgMS42MzctNy4wMTMgMi4xMjctMTAuNjAyLjQ2MS0zLjU4Mi43MDQtNy4yLjY2OS0xMC44MTZhNzAuMzQgNzAuMzQgMCAwIDAtLjIzNS01LjQxMiA2OC43NjQgNjguNzY0IDAgMCAwLS4yODQtMi42NzljLS4wNzYtLjYyOC0uMTgtMS4yOS0uMjg0LTEuODk3LTIuMzk2LTIuMDE4LTUuMTA4LTMuODA0LTcuOTM4LTUuNDM1LTMuMDY2LTEuNzg3LTYuMjcyLTMuMzg4LTkuNTQ2LTQuODgtMy4yNS0xLjUzMi02LjU5LTIuOTI3LTkuOTQ2LTQuMjc5LTEuNjc5LS42NzctMy4zNzEtMS4zNC01LjA2OC0xLjk2OC0xLjY5LS42NTQtMy40MDMtMS4yNzQtNS4xMTQtMS44OTcgMy41OTUuNTkzIDcuMTU5IDEuNDEzIDEwLjY4NCAyLjMxOSAyLjI5OS41OTQgNC41OTIgMS4yNjQgNi44NTUgMS45NzQtMTYuMTQ3LTQyLjIxLTU0Ljc2LTY5LjY5Ni05Ni45MTMtNjkuNjk2LTQyLjE2MyAwLTgwLjc2OCAyNy40ODYtOTYuOTEyIDY5LjY5NiAyLjI3LS43MSA0LjU1NS0xLjM4IDYuODQ2LTEuOTc0IDMuNTM1LS45MDQgNy4wOTctMS43MjYgMTAuNjkzLTIuMzE5LTEuNzIuNjIxLTMuNDIzIDEuMjQxLTUuMTIyIDEuODk3LTEuNjkuNjI3LTMuMzggMS4yOS01LjA2NiAxLjk2N3ptOTYuMTcgMTU0LjM5OWwyLjEyNSAyLjUzMmMuMDQ4LjA2IDQuNzcgNS42OCAxMC41NDIgMTEuNDAyIDMuODM4IDMuODA0IDguNDc2IDUuNzMgMTMuNzkgNS43MyAxLjgxNSAwIDMuNzIyLS4yMzQgNS42NDctLjY5OCAxLjc4Ny0uNDM0IDMuNzI4LS44OTcgNS43MTYtMS4zNzMgNy4xNzktMS43MTYgMTUuMzEtMy42NjUgMTkuMjUtNC43Ny43OC0uMjIgMS42NTEtLjQyIDIuNTY3LS42MjkgNS4yNDctMS4yMTIgMTIuNDM5LTIuODg0IDE2LjI1LTEwLjUxOCAyLjg2NS01LjczIDYuNzI5LTEzLjE2NiA5LjU5Ni0xOC42MTUtMi40ODQgMS4xNDUtNS4wODggMi4zODctNi45MzggMy4zNi0yLjg1IDEuNDk3LTYuNTg0IDIuMjIzLTExLjQxIDIuMjIzLTIuODcgMC01LjY4OC0uMjQyLTguODA3LS41MTktNi4yMzMtLjU3My0xNi43ODEtMS44MTUtMTYuODktMS44M2wtLjgwNy0uMDg5LS42MzgtLjUxYy0uMDk0LS4wNy05LjMzNy03LjQzNC0xNi44MDgtMTMuMzA4LS4zMDItLjI0OC0uNTc4LS40NzgtLjgyOC0uNjg0LS43ODYtLjY3MS0uNzg2LS42NzEtMS4yNTYtLjY3MS0yLjM5NiAwLTkuMzYgMi4xNi0yNC42MTYgNi44OWwtLjkzNy4yOTctLjkxOS0uMzQ3Yy0uMTA0LS4wMzUtMTAuMTEzLTMuNzQ3LTIyLjEwNy0zLjc0Ny0uOTgyIDAtMS45Ni4wMjYtMi45MTQuMDc1LTEuMjAxLjA2MS03Ljk0NCAzLjI2NC0xNi41NjcgMTYuOTA2bC0uNTU4Ljg3Ni0uOTg4LjMxOGExMDYwIDEwNjAgMCAwIDEtMzAuNzIzIDkuMzRsLTEuMDIxLjI5LS45NjctLjQ0OWMtLjEwMy0uMDQxLTYuMjYxLTIuODk5LTEyLjEyMS01LjU5MiAzLjE5NiA0LjcyMiA3LjI4MyAxMC42MTEgMTAuODc4IDE1LjIzIDYuMjgyIDguMDg5IDE0LjE5OSAxNS41NjUgMjkuMzc5IDE1LjU2NSAxLjkwNCAwIDMuOTI3LS4xMTcgNi4wMDQtLjM1MyAxNS40NDEtMS43NDUgMTkuNDE3LTIuNDUgMjEuNTU3LTIuODIzLjcyNC0uMTIyIDEuMjk4LS4yMjggMi4wMy0uMzE3LjExNy0uMDE1IDEyLjc2MS0xLjY1IDE2LjMwOS05LjYwOSAzLjY1OS04LjE3OCA0LjM5Ny0xMC4xMjYgNC40MjUtMTAuMmwxLjI5MS0zLjQ0NXMuMTYtLjg5Mi40MjMtMS4xN2wuMDA2LjAwOC4wMjYuMDIxYy40MDYuMjkyIDEuMDA5IDEuMjAzIDEuMDA5IDEuMjAzIi8+PC9zdmc+', - ) - // use travis simple icon with color - given({ name: 'travis', color: 'green' }).expect( - 'data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjOTdjYTAwIiByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+VHJhdmlzIENJPC90aXRsZT48cGF0aCBkPSJNOS4zMiAxMy4wMjVhLjQ4NS40ODUgMCAxIDEtLjk3IDBjMC0uNDQ2LS4xNjctLjc1OC0uNDA2LS43NTgtLjIzOSAwLS40MDUuMzEyLS40MDUuNzU4YS40ODUuNDg1IDAgMSAxLS45NyAwYzAtMS4xODcuNzEzLTEuNzI4IDEuMzc1LTEuNzI4czEuMzc2LjU0MSAxLjM3NiAxLjcyOHptNi4wMTcuNDg1YS40ODUuNDg1IDAgMCAwIC40ODUtLjQ4NWMwLS40NDYuMTY3LS43NTguNDA1LS43NThzLjQwNS4zMTIuNDA1Ljc1OGEuNDg1LjQ4NSAwIDEgMCAuOTcgMGMwLTEuMTg3LS43MTMtMS43MjgtMS4zNzUtMS43MjhzLTEuMzc1LjU0MS0xLjM3NSAxLjcyOGMwIC4yNjguMjE3LjQ4NS40ODUuNDg1em03Ljk2Ny00LjQ1NGwtLjE5MSAyLjQ1OWEuODAxLjgwMSAwIDAgMS0uMzY3LjYyMy44NTIuODUyIDAgMCAxLS40Ni4xMyAxLjA3IDEuMDcgMCAwIDEtLjM2Ni0uMDY4Yy0uMjcxLS4xMDEtLjU0NC0uMTkyLS44MTctLjI4NWE4Ljk3OCA4Ljk3OCAwIDAgMS0uMDk0IDEuNjE0Yy0uMDQuMjQyLS4wOTIuNDcxLS4xMzguNzA3YS40ODUuNDg1IDAgMCAxLS4wMjQuMTI1IDE5LjQ3MSAxOS40NzEgMCAwIDEtMS4wMzMgMy41MTNsLjAzMy0uMDIuODk3LS41MzdjLjE5My0uMTM3LjU5OS0uMTIyLjgxNS4xYS42NDUuNjQ1IDAgMCAxIC4xNzMuNTc3Ljc0My43NDMgMCAwIDEtLjA1My4xNTljLS4wNjEuMTM1LS4zMTkuNzA2LS44NjYgMS45MDYtLjY3NSAxLjQ4My0yLjA2IDEuNzctMi4xMjEgMS43ODIuMDAxLjAwMS0uOTA3LjIxNC0xLjg3OS40NEMxNS40NTggMjMuNDE5IDEzLjg3IDI0IDEyLjA4NyAyNGMtMS44NCAwLTMuNDQ4LS41OC00Ljc4Ny0xLjcxM2wtMS45MjQtLjQ1Yy0uMDQxLS4wMDgtMS40MjctLjI5NC0yLjEwMy0xLjc3OGwtLjg3LTEuOTE0Yy0uMDA1LS4wMTktLjA1LS4xNTgtLjA1My0uMTc3LS4wMDktLjYyNS42MjEtLjkxNCAxLjAyMy0uNjMybC44NTguNTEyYy4wMDYuMDAzLjA3NC4wNDMuMTcxLjA4NWEyMC40NDMgMjAuNDQzIDAgMCAxLS45ODItMy40NDRjLS4wNjMtLjMxNy0uMTI5LS42My0uMTgzLS45NmE4LjkzNyA4LjkzNyAwIDAgMS0uMDktMS43Yy0uMzU3LjExOC0uNzEzLjI0LTEuMDY2LjM3Mi0uMjkyLjEwOS0uNTkzLjA4Ny0uODI3LS4wNjJhLjgwMi44MDIgMCAwIDEtLjM2Ni0uNjIxTC42OTUgOS4wNTVjLS4wMzYtLjQ3NS4zMDUtLjk2OS43OTQtMS4xNTJsLjMtLjExN2MuMjI1LS4wODkuNTA1LS4xOTguODM3LS4zMThDMy42NSAzLjEyNCA3LjU2NiAwIDEyLjA0MSAwYzQuNTE2IDAgOC40MzggMy4xNTggOS40MzQgNy41NDkuNDcyLjE1My44NDMuMjgxIDEuMDM2LjM1NS40OTIuMTgzLjgzMy42NzcuNzkzIDEuMTUyem0tNC42MTIgOC45NzNjLjM2OS0uODE1LjY3OC0xLjcwOC45My0yLjY3bC0uOTk3LjcxM2EuOTUyLjk1MiAwIDAgMS0uNjU1LjE2NmwtNC40NjctLjQ3YS45Ni45NiAwIDAgMS0uODIxLS42OThsLS41NTgtMS45MjNhMi40ODIgMi40ODIgMCAwIDAtLjI0NCAwbC0uNTYgMS45M2EuOTU1Ljk1NSAwIDAgMS0uODIuNjkxbC00LjQ3MS40NzFhLjk1MS45NTEgMCAwIDEtLjY0Mi0uMTYybC0uNzIzLS41MDNjLjIzMS44ODkuNTA2IDEuNzA4LjgyNCAyLjQ1MS42MDktLjAyOCAxLjIwNy0uMDY5IDEuMjA5LS4wNjkuMDAxIDAgLjQzNC0uMDM5Ljc4OC0uMzMybDEuMDYxLS44ODVjLjE0OC0uMTY1LjY1Mi0uNDY1IDEuMzMtLjI3MS4xOTYuMDU1LjQ5NS4xNDYuODE1LjI0My4wNjIuMDE5LjEyLjA1LjE3LjA5Mi41MzIuNDQ1IDEuODMyLjQ0NSAyLjM2NS4wMDJhLjQ4MS40ODEgMCAwIDEgLjE2OC0uMDkxYy4zMzctLjEwMy42MzEtLjE5Mi44MjMtLjI0Ny42OC0uMTkzIDEuMTgyLjEwOCAxLjM3NC4zMTRsMS4wMTYuODQzYy4zNTMuMjk0Ljc4NS4zMzIuNzg5LjMzMi0uMDAxLjAwMS42NTguMDQ1IDEuMjk2LjA3M3ptLTYuNjA1IDUuMDAxYTYuNDIgNi40MiAwIDAgMCAxLjk0OS0uMzEzYy0uOTMyLS4yMDktMS41NTUtMS4wMTktMS41ODgtMS4wNjJsLS40MDYtLjU0Mi0uNDA3LjU0M2MtLjAzMS4wNDMtLjY0MS44NDItMS41NTggMS4wNi42My4xOTYgMS4yOTUuMzE0IDIuMDEuMzE0em02Ljk0MS00LjAxNmE2My42MjIgNjMuNjIyIDAgMCAxLTEuNzAxLS4wODkgMi41MTkgMi41MTkgMCAwIDEtMS4zMzktLjU1NGwtMS4wNjUtLjg4OGMtLjA1NS0uMDUxLS4xODctLjE1Mi0uNDQyLS4wODMtLjE3Ni4wNS0uNDM2LjEzLS43MTcuMjE2LS44NzguNjU1LTIuNTY3LjY1NS0zLjQ0My0uMDAzYTQzLjY5MyA0My42OTMgMCAwIDAtLjcwOS0uMjEyYy0uMjU4LS4wNzYtLjM4Ni4wMy0uNDExLjA1MmwtMS4wOTcuOTE4YTIuNTIzIDIuNTIzIDAgMCAxLTEuMzQxLjU1M3MtLjg3Mi4wNTktMS41OTQuMDg1aC0uMDAybC0uMTA2LjAwNGEyLjQxIDIuNDEgMCAwIDEtMS4zNDEtLjM0M2wtLjAxOC0uMDEuNDUzLjk5NmMuNDYzIDEuMDE3IDEuMzg5IDEuMjI1IDEuNDI3IDEuMjMyLjAxNC4wMDQgMi43NTQuNjQ2IDMuODIyLjg4OS43ODEuMTc0IDEuNDQ3LS42OTYgMS40NTQtLjcwNWwuNzk1LTEuMDYxYy4xODMtLjI0NS41OTQtLjI0NS43NzYgMGwuNzk2IDEuMDYxYy4wMDcuMDA5LjY4Mi44ODEgMS40NTUuNzA1IDEuMDY3LS4yNDMgMy44MDctLjg4NiAzLjgwNy0uODg2YTIuMTkzIDIuMTkzIDAgMCAwIDEuNDQyLTEuMjM2bC40NTItLjk5My0uMDI2LjAxNWEyLjI3IDIuMjcgMCAwIDEtMS4zMjcuMzM3em0xLjA5Ni03LjQxMmEyOC4yODYgMjguMjg2IDAgMCAwLTE1Ljk5OC0uMDc1IDguMDI1IDguMDI1IDAgMCAwIC4wNjcgMS44NDVjLjA0NS4yNzUuMS41MzUuMTUyLjhsMS41OTEgMS4xMDggNC40NjEtLjQ3Ni42NDItMi4yNDNhLjQ4OC40ODggMCAwIDEgLjM5NS0uMzQ1IDMuODU1IDMuODU1IDAgMCAxIDEuMTM1LjAwMy40ODIuNDgyIDAgMCAxIC4zOTQuMzQ0bC42NTIgMi4yNDUgNC40NjIuNDY4IDEuODY0LTEuMzM2Yy4wMzYtLjE5LjA3OS0uMzc0LjExMS0uNTY4YTcuODkgNy44OSAwIDAgMCAuMDcyLTEuNzd6bTIuMjE0LTIuNjIzYy0uMDA1LS4wMzQtLjA3My0uMTMzLS4xNjUtLjE2N2wtLjAwNC0uMDAxYy0uMjItLjA4My0uNjgtLjI0Mi0xLjI1Ni0uNDIzbC0uMDA3LS4wMDVjLS45NTUtLjI5OS0yLjc3MS0uODIzLTQuMjY3LS45OWEuNDg1LjQ4NSAwIDAgMSAuMTA4LS45NjRjMS4xOTIuMTM0IDIuNTI5LjQ2NiAzLjYzNy43ODdDMTkuMjk4IDMuNTUyIDE1LjkxMy45NyAxMi4wNDEuOTdjLTMuODMyIDAtNy4yMDcgMi41NDktOC4zMTggNi4xNjVhMjAuMjUyIDIwLjI1MiAwIDAgMSAzLjI3LS43MDUuNDg0LjQ4NCAwIDEgMSAuMTIxLjk2MiAxOS4yMzUgMTkuMjM1IDAgMCAwLTMuOTA5Ljg5OWwtLjAwNS4wMDRjLS40MzIuMTQ5LS43ODUuMjg4LTEuMDU2LjM5NGwtLjMxNS4xMjNjLS4wOTQuMDM1LS4xNjIuMTM1LS4xNjcuMTc1bC4xNzcgMi4yNjRhMjkuMzYgMjkuMzYgMCAwIDEgMTAuMTY0LTEuODE3YzMuNDQyIDAgNi44ODEuNjA3IDEwLjE1NyAxLjgybC4xNzgtMi4yNzV6bS04LjUzNC01Ljk4NmgtMy41MzlhLjQ4NS40ODUgMCAwIDAtLjQ4NS40ODV2LjgxMWEuNDg1LjQ4NSAwIDEgMCAuOTcgMHYtLjMyNmguNzQ2djMuMzA4aC0uNTIxYS40ODUuNDg1IDAgMSAwIDAgLjk3aDIuMDYxYS40ODUuNDg1IDAgMSAwIDAtLjk3aC0uNTdWMy45NjNoLjg1M3YuMzI2YS40ODUuNDg1IDAgMSAwIC45NyAwdi0uODExYS40ODUuNDg1IDAgMCAwLS40ODUtLjQ4NXoiLz48L3N2Zz4=', - ) - it('preserves color if light logo on dark background', function () { const logo = prepareNamedLogo({ name: 'javascript' }) const decodedLogo = Buffer.from( @@ -145,7 +118,7 @@ describe('Logo helpers', function () { undefined, ) given('npm', {}).expect( - 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHBhdGggZD0iTTAgMGg0MHY0MEgwVjB6IiBmaWxsPSIjY2IwMDAwIi8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTcgN2gyNnYyNmgtN1YxNGgtNnYxOUg3eiIvPjwvc3ZnPg==', + 'data:image/svg+xml;base64,PHN2ZyBmaWxsPSJ3aGl0ZXNtb2tlIiByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+bnBtPC90aXRsZT48cGF0aCBkPSJNMS43NjMgMEMuNzg2IDAgMCAuNzg2IDAgMS43NjN2MjAuNDc0QzAgMjMuMjE0Ljc4NiAyNCAxLjc2MyAyNGgyMC40NzRjLjk3NyAwIDEuNzYzLS43ODYgMS43NjMtMS43NjNWMS43NjNDMjQgLjc4NiAyMy4yMTQgMCAyMi4yMzcgMHpNNS4xMyA1LjMyM2wxMy44MzcuMDE5LS4wMDkgMTMuODM2aC0zLjQ2NGwuMDEtMTAuMzgyaC0zLjQ1NkwxMi4wNCAxOS4xN0g1LjExM3oiLz48L3N2Zz4=', ) }) }) diff --git a/logo/bitcoin.svg b/logo/bitcoin.svg deleted file mode 100644 index dcd28493f3493e825d75f384517e41087ec034ea..0000000000000000000000000000000000000000 --- a/logo/bitcoin.svg +++ /dev/null @@ -1 +0,0 @@ -<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M23.636 14.902c-1.602 6.43-8.114 10.342-14.543 8.74C2.666 22.037-1.246 15.525.357 9.098 1.96 2.669 8.47-1.244 14.897.359c6.43 1.602 10.341 8.115 8.739 14.544" fill="#f7931a"/><path d="M14.686 10.267c-.371 1.487-2.663.731-3.406.546l.655-2.629c.743.186 3.138.531 2.75 2.083m-.406 4.242c-.407 1.635-3.16.75-4.053.53l.724-2.9c.893.224 3.754.664 3.33 2.37m3.008-4.219c.238-1.596-.977-2.455-2.64-3.027l.54-2.163-1.318-.33-.525 2.107a54.292 54.292 0 0 0-1.054-.249l.53-2.12-1.317-.328-.54 2.162c-.286-.065-.567-.13-.84-.198l.001-.007-1.816-.453-.35 1.406s.977.224.956.238c.533.133.63.486.613.766l-.615 2.463c.038.01.085.024.137.045l-.138-.035-.862 3.452c-.065.161-.23.405-.604.312.014.02-.957-.239-.957-.239L5.836 15.6l1.714.427c.318.08.63.164.938.242l-.545 2.19 1.315.328.54-2.164c.36.097.708.187 1.05.271l-.538 2.156 1.316.328.546-2.183c2.245.424 3.933.253 4.643-1.777.574-1.635-.027-2.578-1.208-3.194.86-.198 1.508-.765 1.681-1.934" fill="#fff"/></svg> \ No newline at end of file diff --git a/logo/dependabot.svg b/logo/dependabot.svg deleted file mode 100644 index 0244208c7a3d5eb14a1f6bb3723771990ae275e8..0000000000000000000000000000000000000000 --- a/logo/dependabot.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 54 54" fill="#fff"><path d="M25 3a1 1 0 0 0-1 1v7a1 1 0 0 0 1 1h5v3H6a3 3 0 0 0-3 3v12H1a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h2v6a3 3 0 0 0 3 3h42a3 3 0 0 0 3-3v-6h2a1 1 0 0 0 1-1V31a1 1 0 0 0-1-1h-2V18a3 3 0 0 0-3-3H33V4a1 1 0 0 0-1-1h-7zm-3.982 26a1.21 1.21 0 0 1 .837.355l1.29 1.29a1.21 1.21 0 0 1 0 1.709 1.21 1.21 0 0 1 0 .001l-6.291 6.29a1.21 1.21 0 0 1-1.71 0l-3.79-3.791a1.21 1.21 0 0 1 0-1.71l1.29-1.29a1.21 1.21 0 0 1 1.71 0L16 33.5l4.145-4.145a1.21 1.21 0 0 1 .873-.355zm19.962 0a1.21 1.21 0 0 1 .874.354l1.29 1.29a1.21 1.21 0 0 1 0 1.71l-6.29 6.289v.002a1.21 1.21 0 0 1-1.711 0l-3.79-3.79a1.21 1.21 0 0 1 0-1.71l1.29-1.29a1.21 1.21 0 0 1 1.71 0l1.645 1.645 4.147-4.146A1.21 1.21 0 0 1 40.98 29z"/></svg> \ No newline at end of file diff --git a/logo/gitlab.svg b/logo/gitlab.svg deleted file mode 100644 index 1d123609f6c1a97b968196f7e798887cb48f3dc4..0000000000000000000000000000000000000000 --- a/logo/gitlab.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" viewBox="93 93 194 194"><defs><style>.b{fill:#fc6d26}</style></defs><path style="fill:#e24329" d="m282.83 170.73-.27-.69-26.14-68.22a6.81 6.81 0 0 0-2.69-3.24 7 7 0 0 0-8 .43 7 7 0 0 0-2.32 3.52l-17.65 54h-71.47l-17.65-54a6.86 6.86 0 0 0-2.32-3.53 7 7 0 0 0-8-.43 6.87 6.87 0 0 0-2.69 3.24L97.44 170l-.26.69a48.54 48.54 0 0 0 16.1 56.1l.09.07.24.17 39.82 29.82 19.7 14.91 12 9.06a8.07 8.07 0 0 0 9.76 0l12-9.06 19.7-14.91 40.06-30 .1-.08a48.56 48.56 0 0 0 16.08-56.04Z"/><path class="b" d="m282.83 170.73-.27-.69a88.3 88.3 0 0 0-35.15 15.8L190 229.25c19.55 14.79 36.57 27.64 36.57 27.64l40.06-30 .1-.08a48.56 48.56 0 0 0 16.1-56.08Z"/><path style="fill:#fca326" d="m153.43 256.89 19.7 14.91 12 9.06a8.07 8.07 0 0 0 9.76 0l12-9.06 19.7-14.91S209.55 244 190 229.25c-19.55 14.75-36.57 27.64-36.57 27.64Z"/><path class="b" d="M132.58 185.84A88.19 88.19 0 0 0 97.44 170l-.26.69a48.54 48.54 0 0 0 16.1 56.1l.09.07.24.17 39.82 29.82L190 229.21Z"/></svg> \ No newline at end of file diff --git a/logo/npm.svg b/logo/npm.svg deleted file mode 100644 index d8270435936c2eb4ad61864e71eceb789bd756c6..0000000000000000000000000000000000000000 --- a/logo/npm.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><path d="M0 0h40v40H0V0z" fill="#cb0000"/><path fill="#fff" d="M7 7h26v26h-7V14h-6v19H7z"/></svg> diff --git a/logo/paypal.svg b/logo/paypal.svg deleted file mode 100644 index 1e1e4df7f819ed6d361ccfe93b11c7817bc12322..0000000000000000000000000000000000000000 --- a/logo/paypal.svg +++ /dev/null @@ -1 +0,0 @@ -<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19.715 6.133c.249-1.866 0-3.11-.999-4.266C17.634.622 15.721 0 13.307 0H6.235c-.418 0-.916.444-1 .889L2.323 20.622c0 .356.25.8.665.8h4.328l-.25 1.956c-.084.355.166.622.498.622h3.663c.417 0 .832-.267.915-.711v-.267l.749-4.622v-.178c.083-.444.5-.8.915-.8h.5c3.578 0 6.325-1.51 7.156-5.955.418-1.867.252-3.378-.747-4.445-.25-.355-.666-.622-1-.889" fill="#009cde"/><path d="M19.715 6.133c.249-1.866 0-3.11-.999-4.266C17.634.622 15.721 0 13.307 0H6.235c-.418 0-.916.444-1 .889L2.323 20.622c0 .356.25.8.665.8h4.328l1.164-7.378-.083.267c.084-.533.5-.889.998-.889h2.08c4.079 0 7.241-1.778 8.24-6.755-.083-.267 0-.356 0-.534" fill="#012169"/><path d="M9.563 6.133c.082-.266.25-.533.498-.71.166 0 .25-.09.416-.09h5.494c.666 0 1.33.09 1.83.178.166 0 .333 0 .498.089.168.089.334.089.418.178h.25c.248.089.497.266.748.355.248-1.866 0-3.11-.999-4.355C17.717.533 15.804 0 13.39 0H6.235c-.418 0-.916.356-1 .889L2.323 20.622c0 .356.25.8.665.8h4.328l1.164-7.378 1.084-7.91z" fill="#003087"/></svg> \ No newline at end of file diff --git a/logo/serverfault.svg b/logo/serverfault.svg deleted file mode 100644 index 3519238dfc8856c2d2f2c5584a2e13c32734adb3..0000000000000000000000000000000000000000 --- a/logo/serverfault.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 120"><style>.st0{fill:#a7a9ac}.st1{fill:#818285}.st2{fill:#58585a}.st3{fill:#d1d2d4}.st4{fill:#231f20}</style><path class="st0" d="M13.7 41.6h44v8.7h-44z"/><path class="st1" d="M13.7 55.8h44v8.7h-44z"/><path class="st2" d="M13.7 69h44v8.7h-44z"/><path class="st3" d="M13.7 27.6h44v8.7h-44z"/><path class="st4" d="M13.7 83.2h44v8.7h-44z"/><path fill="#992224" d="M63 41.6h18.7v8.7H63z"/><path fill="#630f16" d="M63 55.8h18.7v8.7H63z"/><path fill="#2b1415" d="M63 69h18.7v8.7H63z"/><path fill="#e7282d" d="M63 27.6h18.7v8.7H63z"/><path class="st4" d="M63 83.2h18.7v8.7H63z"/><g><path class="st0" d="M86.8 42h18.7v8.7H86.8z"/><path class="st1" d="M86.8 56.2h18.7v8.7H86.8z"/><path class="st2" d="M86.8 69.4h18.7v8.7H86.8z"/><path class="st3" d="M86.8 28h18.7v8.7H86.8z"/><path class="st4" d="M86.8 83.6h18.7v8.7H86.8z"/></g></svg> \ No newline at end of file diff --git a/logo/stackexchange.svg b/logo/stackexchange.svg deleted file mode 100644 index a5f409d70650ec23e6da9363d914d82171dd3114..0000000000000000000000000000000000000000 --- a/logo/stackexchange.svg +++ /dev/null @@ -1 +0,0 @@ -<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M2.273 10.463h19.325v3.978H2.273z" fill="#376db6"/><path d="M2.273 5.322h19.325V9.3H2.273z" fill="#4ca2da"/><path d="M18.575 0H5.374c-1.705 0-3.1 1.42-3.1 3.178V4.21h19.324V3.178C21.598 1.42 20.254 0 18.575 0z" fill="#91d8f4"/><path d="M2.273 15.578v1.033c0 1.757 1.396 3.178 3.1 3.178h8.268V24l4.081-4.211h.905c1.705 0 3.1-1.42 3.1-3.178v-1.033z" fill="#1e5397"/></svg> \ No newline at end of file diff --git a/logo/superuser.svg b/logo/superuser.svg deleted file mode 100644 index 443f7682d6a31cb3e4b9e79827958ff7c37d41bc..0000000000000000000000000000000000000000 --- a/logo/superuser.svg +++ /dev/null @@ -1 +0,0 @@ -<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M2.594 0a.514.514 0 0 0-.344.11.404.404 0 0 0-.133.306v23.197c0 .124.048.246.145.312.096.065.208.075.332.075h5.593c.13 0 .243-.02.334-.093.092-.072.131-.2.112-.317l.002.023v-1.467a.367.367 0 0 0-.16-.301.612.612 0 0 0-.344-.087H5.613c-.11 0-.17-.02-.191-.037-.022-.016-.032-.03-.032-.1V2.408c0-.071.012-.094.041-.116.03-.023.102-.05.239-.05h2.488c.124 0 .235-.01.332-.076.097-.066.145-.188.145-.311V.416a.396.396 0 0 0-.157-.323A.583.583 0 0 0 8.131 0z" fill="#000"/><path d="M20.958 14.47c-1.482.414-2.489 1.273-2.489 2.684v4.042c0 3.017-2.909 2.685-6.517 2.685h-.56c-.223 0-.363-.083-.363-.277V22.22c0-.194.112-.277.336-.277h.447c2.154 0 3.664.47 3.664-1.245v-3.876c0-1.19.84-2.851 2.517-3.46.112-.028.14-.083.14-.138 0-.056-.028-.139-.14-.194-1.538-.692-2.517-1.827-2.517-3.184V5.473c0-1.689-1.51-3.377-3.664-3.377h-.447c-.224 0-.336-.083-.336-.277V.435c0-.194.14-.277.364-.277h.56c3.607 0 6.544 2.547 6.544 5.564v3.682c0 1.384 1.007 2.186 2.517 2.712.56.166.867.194.867.637v1.163c.028.249-.251.36-.923.553" fill="#2eace3"/><path d="M11.576 8.33c-.406 0-.785.303-.785.72v1.328c0 .389.35.721.785.721h1.482c.406 0 .784-.304.784-.72V9.05c0-.388-.348-.72-.784-.72z" fill="#000"/></svg> \ No newline at end of file diff --git a/logo/telegram.svg b/logo/telegram.svg deleted file mode 100644 index 7765a143fa0ac5261c6cc3f470c701e4a96940f1..0000000000000000000000000000000000000000 --- a/logo/telegram.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 24c6.627 0 12-5.373 12-12S18.627 0 12 0 0 5.373 0 12s5.373 12 12 12Z" fill="url(#a)"/><path fill-rule="evenodd" clip-rule="evenodd" d="M5.425 11.871a796.414 796.414 0 0 1 6.994-3.018c3.328-1.388 4.027-1.628 4.477-1.638.1 0 .32.02.47.14.12.1.15.23.17.33.02.1.04.31.02.47-.18 1.898-.96 6.504-1.36 8.622-.17.9-.5 1.199-.819 1.229-.7.06-1.229-.46-1.898-.9-1.06-.689-1.649-1.119-2.678-1.798-1.19-.78-.42-1.209.26-1.908.18-.18 3.247-2.978 3.307-3.228.01-.03.01-.15-.06-.21-.07-.06-.17-.04-.25-.02-.11.02-1.788 1.14-5.056 3.348-.48.33-.909.49-1.299.48-.43-.01-1.248-.24-1.868-.44-.75-.24-1.349-.37-1.299-.79.03-.22.33-.44.89-.669Z" fill="#fff"/><defs><linearGradient id="a" x1="11.99" y1="0" x2="11.99" y2="23.81" gradientUnits="userSpaceOnUse"><stop stop-color="#2AABEE"/><stop offset="1" stop-color="#229ED9"/></linearGradient></defs></svg> diff --git a/logo/travis.svg b/logo/travis.svg deleted file mode 100644 index bd858287c47687f1d5d59884680663bab1c9bb4c..0000000000000000000000000000000000000000 --- a/logo/travis.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" width="266.666" height="264.497"><path fill="#cd2445" d="M63.708 115.43s-41.49 29.203-43.113 40.329l3.113-.64s49.685-32.932 89.07-36.948l.893-4.999-49.963 2.257M128.839 111.256l-32.682 23.18 1.767 1.418c1.332-1.075 58.052-18.398 58.052-18.398l11.959-7.497c-8.024.998-39.096 1.297-39.096 1.297M157.243 139.292c23.206 0 57.993-22.728 57.993-22.728l-11.245-2.14c-.556.556-18.134-.616-18.134-.616l-8.344-2.317-19.934 22.714-1.623 3.942c1.433-.583 1.287 1.145 1.287 1.145M59.275 225.384l-.482-.222c-1.14-.984-2.074-1.79-2.684-2.314zm173.696-13.608l-7.17 2.019-33.124-.716-20.721-16.113-25.045 6.266-28.968-2.507-16.222 17.725-30.437 9.093-15.198-4.712-.765-.66 6.822 16.703s15.45 16.566 24.081 18.514c8.63 1.948 24.22-.14 35.913-1.95 11.692-1.81 21.019-5.986 24.776-12.805 3.758-6.822 4.315-8.77 4.315-8.77s11.137 15.73 20.741 17.54c9.604 1.809 38.14-7.936 38.14-7.936s17.402-4.732 20.462-10.718c3.062-5.985 11.137-25.612 11.137-25.612l-8.737 4.639"/><path fill="#f2f19b" d="M261.11 93.447c-.073-.895-.171-1.79-.28-2.679-.078-.63-.178-1.29-.287-1.899-2.391-2.012-5.108-3.801-7.936-5.428-3.066-1.79-6.272-3.394-9.546-4.884-3.25-1.533-6.589-2.921-9.948-4.276-1.676-.68-3.366-1.34-5.064-1.969-1.692-.66-3.4-1.275-5.113-1.899 3.596.596 7.155 1.412 10.687 2.322a144.18 144.18 0 0 1 6.853 1.969c-16.15-42.207-54.76-69.693-96.916-69.693-42.163 0-80.77 27.486-96.915 69.693 2.271-.71 4.557-1.375 6.85-1.97 3.537-.909 7.097-1.725 10.69-2.32-1.718.623-3.422 1.238-5.12 1.898-1.689.63-3.381 1.29-5.063 1.97-3.36 1.354-6.688 2.742-9.947 4.275-3.267 1.49-6.476 3.094-9.541 4.884-2.829 1.626-5.543 3.416-7.943 5.428-.1.61-.202 1.268-.28 1.899a69.55 69.55 0 0 0-.28 2.679 68.664 68.664 0 0 0-.236 5.414c-.036 3.618.208 7.235.666 10.814.494 3.589 1.152 7.154 2.127 10.601a57.076 57.076 0 0 0 1.653 5.077c.316.823.66 1.634 1.02 2.422.178.392.364.78.55 1.152l.229.437c.265.135.544.272.81.4l1.605.767c.894.406 2.133.994 3.157 1.453l.164-.152-2.98-11.35c.632-.174 6.29-1.634 16.043-3.49a51.595 51.595 0 0 1-2.363-.508c-2.22-.552-4.412-1.225-6.532-2.085a29.9 29.9 0 0 1-3.079-1.487c-.989-.568-1.962-1.21-2.716-2.064 10.715 3.496 32.854 1.912 52.532-.121 17.999-1.855 36.039-3.058 54.174-3.094 18.136.036 36.182 1.239 54.173 3.094 19.688 2.033 41.827 3.617 52.54.121-.752.853-1.724 1.497-2.713 2.064a29.999 29.999 0 0 1-3.078 1.487c-2.122.86-4.312 1.533-6.532 2.085-.329.079-.661.15-.99.221 10.693 1.984 16.918 3.596 17.584 3.775l-2.851 10.813c.573-.258 1.152-.508 1.72-.765l1.603-.767c.266-.129.537-.265.809-.4l.221-.437c.195-.372.382-.76.559-1.152.36-.788.704-1.599 1.019-2.421a56.313 56.313 0 0 0 1.654-5.078c.975-3.446 1.634-7.012 2.127-10.601.46-3.58.701-7.197.668-10.813a67.831 67.831 0 0 0-.239-5.412"/><path fill="#e5c9a3" d="M155.716 243.548a58.1 58.1 0 0 1-4.248.5c-.91.044-1.872.136-2.745.136l-.323.007a776.115 776.115 0 0 0 2.559-5.786 197.628 197.628 0 0 0 4.757 5.143M158.801 246.69c4.406 4.363 9.864 6.862 15.872 7.306-10.092 4.099-19.602 5.68-26.929 6.173-7.304.49-14.71-.372-21.965-2.361a26.775 26.775 0 0 1 1.59-.252c.596-.072 13.608-1.77 19.474-10.49l.55.012 1.44-.012c.975 0 1.86-.08 2.792-.117a58.348 58.348 0 0 0 6.504-.937c.223.228.444.45.672.679"/><path fill="#5d6762" d="M171.285 116.095c-.422.55-.894 1.158-1.397 1.79-2.577 3.259-6.152 7.427-10.392 11.503a492.78 492.78 0 0 0-15.205-.236c-8.614 0-16.874.228-24.716.61 11.081-4.6 24.394-9.091 38.812-11.79 4.21-.797 8.521-1.435 12.898-1.877M106.428 121.056c-3.955 2.779-8.423 6.325-12.755 10.628a480.415 480.415 0 0 0-28.756 3.747c12.276-5.643 26.285-10.836 41.511-14.375M241.973 143.959l-4.512 31.572-21.616 15.14-56.377-6.41-8.487-27.948a1.844 1.844 0 0 0-1.477-1.294c-2.09-.338-3.937-.51-5.477-.51-1.547 0-3.388.172-5.487.51a1.859 1.859 0 0 0-1.475 1.294l-8.279 27.267-56.062 12.476-22.216-15.563-4.377-35.429a266.92 266.92 0 0 1 2.9-1.612c1.376-.296 2.922-.61 4.634-.939l4.126 33.431c.064.523.352.988.78 1.29l15.284 10.709a1.9 1.9 0 0 0 1.468.284l46.093-10.256c.159-.036.316-.092.459-.166a1.85 1.85 0 0 0 .909-1.102l8.3-27.331c2.226-.573 7.93-1.905 12.941-1.905 4.999 0 10.707 1.332 12.935 1.905l8.3 27.33c.215.71.832 1.217 1.568 1.303l46.093 5.236c.447.05.903-.067 1.27-.322l15.292-10.7c.413-.294.693-.755.764-1.262l4.082-28.561c3.068.592 5.632 1.128 7.644 1.563M247.668 124.159l-3.968 15.053c-8.115-1.79-25.941-5.3-50.205-7.663 7.928-3.38 16-7.62 23.374-12.92 14.439 2.04 25.04 4.226 30.799 5.53"/><path fill="#e4c896" d="M153.997 134.256c-2.22 1.799-4.561 3.48-6.998 4.95l-8.13 4.906c-5.098.621-9.524 1.883-9.774 1.956-.15.041-.292.105-.423.187a1.873 1.873 0 0 0-.839 1.058l-8.278 27.28-44.247 9.84-13.936-9.761-4.055-32.845c7.915-1.454 18.5-3.136 31.214-4.56a75.89 75.89 0 0 0-3.94 5.14l-7.57 10.865 11.022-7.348c.164-.115 7.182-4.732 18.664-10.348a503.057 503.057 0 0 1 47.29-1.32zm-68.876 36.999c3.143-1.699 6.695-1.447 12.254-1.439.596.015 1.21.007 1.853-.007.547-.006 1.096-.014 1.677-.029 5.728-.056 10.492.488 10.409-8.508-.087-8.994-4.083-16.264-9.806-16.206-5.73.049-11.272 7.418-10.93 16.407.094 2.342.438 4.031.99 5.25-4.993 1.25-6.37 4.338-6.447 4.532M230.687 141.72l-3.99 27.925-14.052 9.839-44.188-5.022-8.244-27.15a1.881 1.881 0 0 0-1.26-1.245c-.273-.08-5.744-1.64-11.545-2.143l1.06-.07c.916-.066 16.157-1.935 34.356-8.21 20.153 1.548 36.61 4.027 47.863 6.076zm-28.24 25.847c-.056-.213-1.26-3.831-6.59-3.196.615-1.338.888-3.142.695-5.614-.704-8.974-5.924-16.107-11.647-15.908-5.722.203-9.389 7.642-9.073 16.638.315 8.987 5.12 8.925 10.843 8.724 7.693-.143 11.918-2.507 15.772-.644"/><path fill="#c4af90" d="M153.997 134.256c-2.22 1.799-4.561 3.48-6.998 4.95l-8.13 4.906c-5.098.621-9.524 1.883-9.774 1.956-.15.041-.292.105-.423.187a1.873 1.873 0 0 0-.839 1.058l-8.278 27.28-44.247 9.84-13.936-9.761-4.055-32.845c7.915-1.454 18.5-3.136 31.214-4.56a75.89 75.89 0 0 0-3.94 5.14l-7.57 10.865 11.022-7.348c.164-.115 7.182-4.732 18.664-10.348a503.057 503.057 0 0 1 47.29-1.32zm-68.876 36.999c3.143-1.699 6.695-1.447 12.254-1.439.596.015 1.21.007 1.853-.007.547-.006 1.096-.014 1.677-.029 5.728-.056 10.492.488 10.409-8.508-.087-8.994-4.083-16.264-9.806-16.206-5.73.049-11.272 7.418-10.93 16.407.094 2.342.438 4.031.99 5.25-4.993 1.25-6.37 4.338-6.447 4.532M230.687 141.72l-3.99 27.925-14.052 9.839-44.188-5.022-8.244-27.15a1.881 1.881 0 0 0-1.26-1.245c-.273-.08-5.744-1.64-11.545-2.143l1.06-.07c.916-.066 16.157-1.935 34.356-8.21 20.153 1.548 36.61 4.027 47.863 6.076zm-28.24 25.847c-.056-.213-1.26-3.831-6.59-3.196.615-1.338.888-3.142.695-5.614-.704-8.974-5.924-16.107-11.647-15.908-5.722.203-9.389 7.642-9.073 16.638.315 8.987 5.12 8.925 10.843 8.724 7.693-.143 11.918-2.507 15.772-.644"/><path fill="#e5c9a3" d="M249.975 154.003c.677.558 1.214 2.005.608 8.744-.746 8.25-4.214 22.732-6.362 25.066-2.37.459-7.34-.085-10.37-.793.524-2.079.673-3.075 1.096-5.2l5.3-3.708c.422-.293.701-.755.773-1.255l3.704-25.954c2.248 1.216 4.561 2.532 5.25 3.1M54.583 187.878c.265.938.544 1.876.832 2.8-2.852.837-8.66 1.64-11.287 1.18-2.177-2.192-6.238-17.287-7.126-25.303-.725-6.495-.217-7.899.443-8.446.767-.643 3.638-2.277 6.124-3.609l3.36 27.266c.063.523.342.988.78 1.289l6.874 4.823M161.796 188.259l-.201 1.74s-6.108 5.663-15.942 6.932c-9.833 1.266-17.56-4.776-17.56-4.776.322 1.05.78 3.423 3.007 5.448a70.966 70.966 0 0 0-8.417-.524c-1.073 0-2.155.03-3.202.08-6.052.317-14.565 9.468-20.552 18.686-2.937.93-12.119 3.844-22.746 6.983-9.92-13.745-14.798-27.79-15.292-29.243l.006-.007c-.2-.56-.401-1.12-.588-1.692l2.55 1.785v.007l6.302 4.411 2.107 1.468c.315.223.687.338 1.059.338.136 0 .271-.015.406-.041l57.914-12.894a1.848 1.848 0 0 0 1.367-1.267l8.258-27.186c1.425-.194 2.677-.294 3.752-.294 1.068 0 2.328.1 3.753.294l8.499 27.996c.216.709.832 1.225 1.561 1.302l3.959.454"/><path fill="#e5c9a3" d="M227.901 186.755l1.87-1.312c-.31 1.297-.646 2.586-.996 3.861-2.599 8.33-5.667 15.699-9.074 22.208-.753.052-1.548.081-2.4.081-2.629 0-5.314-.222-8.286-.494-5.158-.474-13.343-1.411-15.928-1.711-2.227-1.776-9.847-7.83-16.187-12.82-.25-.201-.464-.388-.673-.56-1.116-.944-2.386-2.017-4.956-2.017-2.335 0-5.744.85-13.986 3.344 4.283-3.202 4.311-7.334 4.311-7.334l.201-1.74 54.331 6.172a1.88 1.88 0 0 0 1.273-.321l5.459-3.824 5.041-3.533"/><path fill="#e9d586" d="M187.916 72.45c.165 4.833.044 13.591-2.207 21.793a1.78 1.78 0 0 0 0 .938 345.73 345.73 0 0 0-8.594-.788c3.216-6.738 3.917-13.914 4.069-16.442 2.47-1.756 4.928-3.862 6.732-5.502M105.941 77.95c.15 2.527.851 9.689 4.062 16.422-2.866.228-5.73.493-8.588.795.077-.295.087-.61 0-.926-2.248-8.185-2.363-16.952-2.206-21.793 1.805 1.641 4.254 3.747 6.732 5.501"/><path fill="#2a2c30" d="M184.463 154.396a2.936 2.936 0 0 0 2.872-2.98 2.915 2.915 0 0 0-2.98-2.87 2.918 2.918 0 0 0-2.87 2.978 2.925 2.925 0 0 0 2.978 2.872zm17.984 13.17c-3.854-1.86-8.079.503-15.771.646-5.723.201-10.528.264-10.843-8.724-.316-8.996 3.351-16.434 9.074-16.638 5.722-.2 10.942 6.934 11.646 15.909.194 2.472-.08 4.276-.694 5.613 5.328-.636 6.532 2.98 6.588 3.195"/><path fill="#f1fafc" d="M184.355 148.535a2.924 2.924 0 1 1 .106 5.849 2.925 2.925 0 1 1-.106-5.85"/><path fill="#2a2c30" d="M102.467 156.566a2.927 2.927 0 1 0-.165-5.852 2.927 2.927 0 0 0 .165 5.852zm8.845 4.705c.084 8.996-4.679 8.452-10.408 8.508-.58.014-1.13.021-1.677.029-.643.015-1.259.021-1.854.007-5.557-.007-9.11-.259-12.253 1.439.077-.194 1.453-3.282 6.447-4.534-.552-1.219-.898-2.908-.99-5.25-.342-8.987 5.2-16.358 10.93-16.408 5.722-.055 9.718 7.216 9.805 16.209"/><path fill="#f1fafc" d="M102.315 150.719a2.927 2.927 0 1 1 .15 5.852 2.927 2.927 0 0 1-.15-5.852"/><path fill="#ebdb8b" d="M66.027 101.144l-.665-1.255-.027-3.297 1.733-19.599 30.083-7.285 1.872 25.293c-1.458-1.977-3.642-6.453-4.995-12.594-.724-3.28-3.05-4.215-5.726-4.215-2.335 0-4.936.712-6.973 1.196-4.373 1.041-10.098 2.499-11.034 4.788-1.818 4.441-2.707 16.03-2.707 16.03l-1.561.938M221.368 101.144l-1.561-.937s-.888-11.59-2.706-16.031c-.937-2.29-6.662-3.747-11.033-4.788-2.037-.484-4.64-1.196-6.975-1.196-2.677 0-5.002.935-5.726 4.215-1.351 6.141-3.539 10.617-4.998 12.594l1.876-25.293 30.083 7.285 1.476 16.707-.055 6.723-.381.721"/><path fill="#ebdc8c" d="M174.301 96.604l-60.642-.112-3.143-7.076-2.247-12.128-4.942-3.93-.113-28.243 6.96-20.584s1.143 60.626 15.311 60.626h36.836c14.168 0 14.966-60.653 14.966-60.653l9.216 34-6.698 19.121-.338 5.391-2.359 8.533-2.807 5.055M235.967 107.43l-3.43-1.675 3.43 1.676m-3.43-1.676l-10.804-3.259.016-2.073.556-1.048-.501-5.675.101-12.641s2.916 20.922 10.632 24.696"/><path fill="#ead687" d="M221.75 100.423l.054-6.723.501 5.675-.556 1.048"/><path fill="#ebdc8c" d="M51.147 107.43l3.43-1.675-3.43 1.676m3.43-1.676c7.718-3.774 10.633-24.696 10.633-24.696l.125 15.533-.245 2.783.272.514.02 2.607-10.805 3.259"/><path fill="#ead687" d="M65.362 99.89l-.272-.515.245-2.783.027 3.297"/><path fill="#2a2c30" d="M98.09 95.524l-.13-.33c-2.633-9.582-2.519-19.63-2.283-24.265l-27.352 7.778c-1.84 11.976-.981 20.777-.796 22.396a184.97 184.97 0 0 1 6.842-1.712c3.78-.838 7.59-1.539 11.408-2.184 3.825-.638 7.662-1.124 11.501-1.59.273-.036.539-.056.81-.093zm11.912-1.152c-3.211-6.733-3.912-13.896-4.062-16.423-2.477-1.754-4.928-3.86-6.732-5.5-.159 4.842-.043 13.608 2.206 21.794.086.316.077.63 0 .925 2.86-.303 5.722-.567 8.588-.796zm75.706-.13c2.25-8.2 2.372-16.96 2.207-21.794-1.804 1.64-4.263 3.745-6.732 5.5-.152 2.528-.854 9.704-4.07 16.443 2.866.23 5.731.488 8.595.788a1.774 1.774 0 0 1 0-.938zm33.879 6.867c.186-1.609 1.052-10.412-.788-22.401l-27.36-7.777c.245 4.633.353 14.682-2.276 24.265l-.135.344c.27.028.544.05.808.085 7.692.882 15.348 2.112 22.919 3.774 2.282.53 4.568 1.097 6.832 1.71zm4.396 1.291c3.673 1.203 7.368 2.477 10.714 4.433-1.79-.709-3.638-1.217-5.501-1.676a93.847 93.847 0 0 0-5.601-1.232c-3.76-.708-7.534-1.309-11.331-1.769-3.788-.493-7.583-.91-11.395-1.232-3.81-.321-7.612-.644-11.43-.867-15.262-.938-30.566-1.173-45.88-1.189-15.311.008-30.616.295-45.879 1.196-3.816.221-7.62.545-11.43.868-3.809.321-7.613.73-11.394 1.23-3.796.46-7.57 1.062-11.33 1.77-1.877.352-3.747.76-5.609 1.225-1.854.459-3.71.967-5.5 1.676 3.344-1.954 7.04-3.236 10.72-4.441.31-.1.623-.185.938-.285l-.058-.236c-.064-.423-1.425-10.479.946-24.86a1.782 1.782 0 0 1 1.282-1.434l3.89-1.108c.845-30.166 13.27-44.354 13.657-44.792-11.101 17.863-11 39.048-10.808 43.982l24.17-6.87.056-.013.302-.043.1-.008c.123-.006.26.008.396.036l.07.022.3.1.114.065.236.15.065.043.043.043.072.059c.016.021.659.657 1.683 1.612-.243-7.964.136-30.811 11.016-49.747-.23.664-8.862 25.904-5.887 54.193a45.351 45.351 0 0 0 2.972 2.199c.479.33.773.873.78 1.453.008.094.214 9.111 4.197 16.782.056.114.1.236.136.357 9.905-.673 19.838-.945 29.75-.952 9.914.007 19.84.293 29.742.975.036-.13.08-.258.146-.38 3.981-7.671 4.189-16.688 4.189-16.782a1.817 1.817 0 0 1 .788-1.453 48.53 48.53 0 0 0 2.965-2.199c2.979-28.289-5.653-53.529-5.881-54.193 10.87 18.935 11.259 41.781 11.016 49.747a83.381 83.381 0 0 0 1.681-1.612l.071-.059.044-.043.065-.044.236-.157.108-.057.315-.107.065-.015c.128-.028.267-.042.395-.036l.093.008.308.043.056.013 24.172 6.87c.195-4.934.295-26.12-10.805-43.982.385.438 12.812 14.626 13.65 44.792l3.895 1.108a1.798 1.798 0 0 1 1.283 1.434c2.37 14.381 1.003 24.437.944 24.86l-.056.242c.319.094.627.186.943.287"/><path fill="#2a2c30" d="M167.556 43.175V30.123h-46.965v13.052h6.421v-6.632h13.285v40.3h-5.466v7.474h18.486v-7.474h-5.466v-40.3h13.285v6.632zm4.835-17.878v22.7H156.3v-6.632h-3.627v30.642h5.479V89.14h-28.145V72.007h5.456v-30.64h-3.615v6.632h-16.08V25.297h56.623"/><path fill="#cd2445" d="M167.556 30.121v13.054h-6.421v-6.632h-13.286v40.3h5.467v7.474h-18.485v-7.474h5.466v-40.3h-13.285v6.632h-6.421V30.12h46.965"/><path fill="#5d6762" d="M40.925 124.159c2.346-.532 5.515-1.21 9.402-1.96a139.118 139.118 0 0 0-8.296 6.129l-1.106-4.17"/><path fill="#c4af90" d="M126.815 186.373s.656 4.22-5.251 6.026c-5.904 1.806-43.31 12.955-47.576 12.35-4.265-.601-15.092-7.832-15.092-7.832l-2.625-9.338 16.021 9.99 54.523-11.196M160.323 185.556s-.472 4.243 5.508 5.793c5.978 1.548 43.833 11.06 48.066 10.272 4.235-.788 14.738-8.481 14.738-8.481l2.217-9.445-14.727 8.784-55.802-6.923"/><path fill="#c4af90" d="M37.883 178.608s5.182 10.366 13.554 6.777l5.98 2.194-.597 4.387-12.559 1.593-3.388-1.992-2.99-12.96M250.068 175.762s-8.47 10.82-16.843 7.233l-2.692 1.736.598 4.385 12.558 1.595 3.387-1.994 2.992-12.955M119.039 257.205s30.706 15.482 65.474-5.584l-11.165-.761s-24.363 9.643-43.65 4.313l-10.66 2.032"/><path fill="#2a2c30" d="M50.327 122.199a305.465 305.465 0 0 0-9.402 1.96l1.106 4.169a138.532 138.532 0 0 1 8.296-6.13zm5.087 68.48a91.058 91.058 0 0 1-.829-2.803l-6.882-4.816a1.854 1.854 0 0 1-.782-1.292l-3.354-27.265c-2.486 1.332-5.357 2.966-6.123 3.609-.663.545-1.167 1.947-.448 8.443.89 8.013 4.95 23.11 7.13 25.305 2.625.463 8.437-.344 11.288-1.181zm41.133-72.263c5.1-1.43 10.36-2.679 15.75-3.728-7.73.283-15.466.641-23.19 1.077-4.488.248-8.954.552-13.42.89-2.238.172-4.46.35-6.677.593-.634.061-1.255.13-1.89.213-5.825 3.486-28.17 17.512-43.508 35.852 14.905-10.358 40.872-25.924 72.935-34.897zm-2.879 13.265c4.335-4.3 8.807-7.848 12.756-10.622-15.22 3.534-29.23 8.724-41.504 14.37a481.258 481.258 0 0 1 28.748-3.748zm58.419-17.525c-3.08-.048-6.164-.076-9.244-.083h-.007c-4.52.007-9.05.055-13.585.146l-8.359 3.961-.117.064c-1.256.613-12.232 6.15-22.559 16.028 9.257-4.867 22.861-11.224 38.87-16.153a192.248 192.248 0 0 1 15-3.963zm-5.088 25.05c2.436-1.47 4.776-3.154 6.998-4.949a563.12 563.12 0 0 0-9.704-.096 501.65 501.65 0 0 0-37.585 1.415c-11.48 5.612-18.5 10.23-18.664 10.347l-11.024 7.351 7.572-10.865a69.832 69.832 0 0 1 3.941-5.142c-12.714 1.421-23.302 3.105-31.213 4.562l4.05 32.843 13.938 9.761 44.245-9.837 8.283-27.285c.139-.45.441-.828.836-1.057.13-.085.27-.146.42-.187.256-.07 4.68-1.332 9.781-1.954zm4.472 104.843c1.408-.11 2.822-.29 4.245-.504a185.087 185.087 0 0 1-4.757-5.142 531.072 531.072 0 0 1-2.56 5.785h.324c.877.001 1.837-.095 2.748-.139zm23.2 9.948c-6.004-.442-11.464-2.94-15.871-7.302-.228-.234-.448-.458-.67-.683-2.13.428-4.291.745-6.507.938-.931.035-1.815.117-2.788.117l-1.444.014-.551-.014c-5.861 8.718-18.879 10.417-19.473 10.493-.538.061-.979.137-1.588.248 7.256 1.988 14.661 2.85 21.965 2.36 7.323-.49 16.836-2.077 26.927-6.17zm-4.783-136.113c.503-.628.972-1.235 1.392-1.787a149.548 149.548 0 0 0-12.893 1.878c-14.419 2.698-27.735 7.185-38.814 11.782a511.01 511.01 0 0 1 24.72-.606c5.211 0 10.278.089 15.206.234 4.238-4.074 7.814-8.242 10.389-11.501zm39.835-1.235l-.042-.016a735.498 735.498 0 0 0-13.101-.868c-6.073-.346-12.15-.636-18.223-.89-.353.525-1.069 1.56-2.098 2.966-3.306 4.474-9.864 12.68-18.272 19.64 11.901-2.134 32.545-7.414 50.404-19.874.448-.318.89-.648 1.332-.958zm20.045 68.791l-1.872 1.31-5.039 3.535-5.46 3.824a1.888 1.888 0 0 1-1.272.324l-54.328-6.177-3.954-.45a1.852 1.852 0 0 1-1.562-1.302l-8.502-27.997c-1.422-.194-2.686-.292-3.747-.292-1.079 0-2.335.097-3.756.292l-8.256 27.189a1.844 1.844 0 0 1-1.367 1.261L72.74 199.854c-.137.026-.275.04-.407.04-.372 0-.745-.111-1.064-.338l-2.104-1.464-6.301-4.41v-.014l-2.547-1.78c.18.573.386 1.133.588 1.69l-.008.009c.491 1.456 5.371 15.496 15.29 29.238a1166.445 1166.445 0 0 0 22.742-6.978c5.985-9.223 14.503-18.37 20.557-18.686a68.018 68.018 0 0 1 3.204-.08c2.96 0 5.791.212 8.413.523-2.228-2.023-2.684-4.397-3.008-5.447 0 0 7.724 6.04 17.56 4.779 9.837-1.27 15.945-6.939 15.945-6.939s-.028 4.136-4.315 7.338c8.243-2.492 11.652-3.348 13.986-3.348 2.574 0 3.844 1.077 4.956 2.025.214.172.429.357.676.559a4626.185 4626.185 0 0 1 16.188 12.818c2.581.303 10.766 1.235 15.924 1.711 2.973.268 5.66.496 8.289.496.85 0 1.644-.035 2.396-.084 3.41-6.507 6.476-13.881 9.077-22.204.348-1.28.688-2.57.991-3.868zm-3.07-15.793l3.989-27.93c-11.252-2.049-27.707-4.526-47.863-6.073-18.196 6.276-33.436 8.144-34.355 8.206l-1.062.077c5.804.498 11.272 2.058 11.546 2.14.603.18 1.072.64 1.259 1.244l8.248 27.155 44.184 5.018zm10.76 5.881l4.513-31.568a321.017 321.017 0 0 0-7.642-1.559l-4.078 28.563a1.886 1.886 0 0 1-.767 1.257l-15.296 10.698c-.36.255-.821.373-1.263.324l-46.096-5.239a1.855 1.855 0 0 1-1.568-1.297l-8.302-27.334c-2.224-.574-7.932-1.906-12.928-1.906-5.019 0-10.722 1.332-12.945 1.906l-8.303 27.334a1.85 1.85 0 0 1-1.367 1.262L75.32 188.225c-.145.03-.27.044-.408.044-.372 0-.745-.11-1.056-.333l-15.29-10.705a1.863 1.863 0 0 1-.78-1.291l-4.12-33.43a329.36 329.36 0 0 0-4.64.938c-.978.54-1.946 1.079-2.898 1.618l4.375 35.423 22.221 15.567 56.062-12.472 8.277-27.265c.208-.686.78-1.19 1.477-1.3 2.099-.338 3.933-.51 5.488-.51 1.537 0 3.381.172 5.473.51.704.11 1.276.614 1.478 1.3l8.488 27.94 56.376 6.412zm6.24-36.316l3.969-15.053c-5.758-1.304-16.36-3.487-30.8-5.531-7.374 5.301-15.443 9.54-23.374 12.921 24.266 2.362 42.094 5.875 50.204 7.663zm6.88 23.53c.609-6.735.078-8.185-.606-8.738-.684-.573-2.996-1.883-5.247-3.105l-3.705 25.951c-.07.505-.353.962-.773 1.257l-5.303 3.708c-.42 2.124-.572 3.126-1.09 5.204 3.031.704 8 1.25 10.367.793 2.15-2.33 5.619-16.813 6.358-25.07zm15.994-64.04c.195 3.885.09 7.777-.344 11.643a73.949 73.949 0 0 1-2.159 11.474 60.042 60.042 0 0 1-1.872 5.597 51.06 51.06 0 0 1-1.186 2.761c-.215.455-.442.904-.698 1.367l-.378.683c-.139.247-.25.434-.464.765l-.392.61-.615.315a44.73 44.73 0 0 1-1.79.871l-1.73.78c-1.161.496-2.327.965-3.493 1.42a83.89 83.89 0 0 0-2.216.899l-1.926 7.316c-.048-.012-.628-.16-1.71-.42l-.104.765c2.125 1.11 6.301 3.363 7.724 4.537 2.864 2.367 3.065 6.116 2.43 13.122-.325 3.596-1.518 10.594-3.174 17.022-2.859 11.064-4.378 12.364-6.338 12.866a17.2 17.2 0 0 1-4.01.51c-3.022 0-7.138.084-9.906-.585-.71 2.517-2.74 9.083-6.757 17.283.201-.098.4-.18.58-.276 4.956-2.603 14.481-6.753 14.883-6.932l7.524-3.27-3.854 7.247c-.089.157-8.352 15.697-13.412 25.844-5.025 10.05-14.446 12.239-20.086 13.534-.85.202-1.655.389-2.311.567-4.047 1.14-12.24 3.092-19.465 4.83l-.263.057a85.425 85.425 0 0 1-14.607 7.215c-19.424 7.357-39.897 6.943-58.458.122-3.015.388-6.979.863-12.258 1.463a60.239 60.239 0 0 1-6.646.388c-17.686 0-27.06-8.981-33.9-17.775-7.324-9.416-16.283-23.394-16.663-23.98l-5.195-8.102 8.78 3.948c4.203 1.891 16.699 7.676 20.273 9.333.29-.081.574-.166.857-.248-5.943-8.476-10.816-18.14-14.26-28.845-2.927.882-7.435 1.566-10.942 1.566-1.281 0-2.429-.096-3.312-.304-1.96-.448-4.197-2.338-7.241-13.06-1.767-6.224-3.085-13.018-3.47-16.516-.76-6.828-.622-10.485 2.215-12.848 1.71-1.428 7.482-4.458 8.676-5.078l-.256-2.107c-18.333 10.773-29.321 20.293-29.543 20.488L0 179.069l9.34-14.729c7.392-11.673 15.93-21.11 23.787-28.379-.325-.13-.629-.261-.947-.392l-1.732-.78a47.25 47.25 0 0 1-1.787-.87l-.614-.316-.394-.61c-.221-.332-.317-.517-.462-.765l-.387-.683c-.241-.462-.477-.912-.69-1.366a41.04 41.04 0 0 1-1.187-2.762 59.69 59.69 0 0 1-1.872-5.597 72.993 72.993 0 0 1-2.16-11.473 72.885 72.885 0 0 1-.346-11.644c.104-1.94.291-3.879.559-5.806.139-.966.284-1.933.477-2.893.2-.979.395-1.89.691-2.961l.207-.752.538-.423c3.06-2.403 6.358-4.217 9.712-5.825a105.157 105.157 0 0 1 8.415-3.488c7.924-21.991 21.55-41.491 39.455-55.082C99.116 7.427 120.885 0 143.56 0c22.676 0 44.446 7.427 62.958 21.475 17.906 13.59 31.532 33.092 39.45 55.076 2.844 1.049 5.654 2.188 8.422 3.493 3.353 1.608 6.653 3.423 9.71 5.825l.539.423.208.752c.303 1.07.496 1.983.69 2.961.194.96.346 1.927.475 2.894.271 1.924.464 3.862.559 5.802zM53.998 74.28c-3.354 1.352-6.688 2.747-9.946 4.279-3.266 1.492-6.475 3.093-9.54 4.88-2.828 1.629-5.543 3.417-7.939 5.434-.102.607-.198 1.27-.28 1.898a68.22 68.22 0 0 0-.278 2.678 69.874 69.874 0 0 0-.24 5.412c-.035 3.618.213 7.235.669 10.816.496 3.59 1.152 7.159 2.125 10.603.484 1.727 1.023 3.43 1.658 5.072.31.83.656 1.637 1.016 2.424.178.392.365.78.55 1.152l.23.435c.268.138.545.276.806.4l1.608.765c.898.415 2.134 1.001 3.155 1.457l.165-.152-2.974-11.348c.627-.172 6.289-1.636 16.042-3.492a44.935 44.935 0 0 1-2.366-.505c-2.216-.55-4.412-1.228-6.53-2.084-1.05-.448-2.093-.932-3.08-1.492-.988-.567-1.961-1.207-2.713-2.063 10.713 3.499 32.85 1.911 52.53-.117 18.002-1.857 36.038-3.057 54.171-3.1 18.134.041 36.184 1.241 54.174 3.1 19.693 2.03 41.832 3.617 52.541.117-.752.856-1.724 1.496-2.712 2.063-.985.56-2.03 1.043-3.079 1.492-2.126.856-4.314 1.532-6.537 2.084-.325.075-.656.152-.988.221 10.693 1.982 16.919 3.596 17.581 3.776l-2.85 10.81c.573-.256 1.152-.503 1.717-.766l1.61-.765c.26-.125.538-.261.807-.4l.222-.435c.192-.372.378-.76.558-1.152.36-.788.704-1.594 1.023-2.424a55.628 55.628 0 0 0 1.648-5.072c.975-3.444 1.637-7.013 2.127-10.602.461-3.582.704-7.2.669-10.816a70.34 70.34 0 0 0-.235-5.412 68.764 68.764 0 0 0-.284-2.679c-.076-.628-.18-1.29-.284-1.897-2.396-2.018-5.108-3.804-7.938-5.435-3.066-1.787-6.272-3.388-9.546-4.88-3.25-1.532-6.59-2.927-9.946-4.279-1.679-.677-3.371-1.34-5.068-1.968-1.69-.654-3.403-1.274-5.114-1.897 3.595.593 7.159 1.413 10.684 2.319 2.299.594 4.592 1.264 6.855 1.974-16.147-42.21-54.76-69.696-96.913-69.696-42.163 0-80.768 27.486-96.912 69.696 2.27-.71 4.555-1.38 6.846-1.974 3.535-.904 7.097-1.726 10.693-2.319-1.72.621-3.423 1.241-5.122 1.897-1.69.627-3.38 1.29-5.066 1.967zm96.17 154.399l2.125 2.532c.048.06 4.77 5.68 10.542 11.402 3.838 3.804 8.476 5.73 13.79 5.73 1.815 0 3.722-.234 5.647-.698 1.787-.434 3.728-.897 5.716-1.373 7.179-1.716 15.31-3.665 19.25-4.77.78-.22 1.651-.42 2.567-.629 5.247-1.212 12.439-2.884 16.25-10.518 2.865-5.73 6.729-13.166 9.596-18.615-2.484 1.145-5.088 2.387-6.938 3.36-2.85 1.497-6.584 2.223-11.41 2.223-2.87 0-5.688-.242-8.807-.519-6.233-.573-16.781-1.815-16.89-1.83l-.807-.089-.638-.51c-.094-.07-9.337-7.434-16.808-13.308-.302-.248-.578-.478-.828-.684-.786-.671-.786-.671-1.256-.671-2.396 0-9.36 2.16-24.616 6.89l-.937.297-.919-.347c-.104-.035-10.113-3.747-22.107-3.747-.982 0-1.96.026-2.914.075-1.201.061-7.944 3.264-16.567 16.906l-.558.876-.988.318a1060 1060 0 0 1-30.723 9.34l-1.021.29-.967-.449c-.103-.041-6.261-2.899-12.121-5.592 3.196 4.722 7.283 10.611 10.878 15.23 6.282 8.089 14.199 15.565 29.379 15.565 1.904 0 3.927-.117 6.004-.353 15.441-1.745 19.417-2.45 21.557-2.823.724-.122 1.298-.228 2.03-.317.117-.015 12.761-1.65 16.309-9.609 3.659-8.178 4.397-10.126 4.425-10.2l1.291-3.445s.16-.892.423-1.17l.006.008.026.021c.406.292 1.009 1.203 1.009 1.203"/></svg> \ No newline at end of file diff --git a/services/endpoint/endpoint.service.js b/services/endpoint/endpoint.service.js index 1a4b68e7ac793a4ca30702c6ace159b9ad3ff593..bffd6fa8fe3f4fbaec445d237931b595c0fd60b1 100644 --- a/services/endpoint/endpoint.service.js +++ b/services/endpoint/endpoint.service.js @@ -77,8 +77,8 @@ The endpoint badge takes a single required query param: <code>url</code>, which <tr> <td><code>namedLogo</code></td> <td> - Default: none. One of the named logos supported by Shields - or <a href="https://simpleicons.org/">simple-icons</a>. Can be + Default: none. One of the + <a href="https://simpleicons.org/">simple-icons</a> slugs. Can be overridden by the query string. </td> </tr> @@ -90,9 +90,7 @@ The endpoint badge takes a single required query param: <code>url</code>, which <td><code>logoColor</code></td> <td> Default: none. Same meaning as the query string. Can be overridden by - the query string. Only works for named logos and Shields logos. If you - override the color of a multicolor Shield logo, the corresponding - named logo will be used and colored. + the query string. Only works for simple-icons logos. </td> </tr> <tr> diff --git a/services/endpoint/endpoint.tester.js b/services/endpoint/endpoint.tester.js index 858ca792d97abd4c953e87aed706dfa4659a2555..c6f5186bdec4d30fbeda65ac23014b43c4934344 100644 --- a/services/endpoint/endpoint.tester.js +++ b/services/endpoint/endpoint.tester.js @@ -1,6 +1,6 @@ import zlib from 'zlib' import { expect } from 'chai' -import { getShieldsIcon, getSimpleIcon } from '../../lib/logos.js' +import { getSimpleIcon } from '../../lib/logos.js' import { createServiceTester } from '../tester.js' export const t = await createServiceTester() @@ -63,7 +63,7 @@ t.create('named logo') ) .after((err, res, body) => { expect(err).not.to.be.ok - expect(body).to.include(getShieldsIcon({ name: 'npm' })) + expect(body).to.include(getSimpleIcon({ name: 'npm' })) }) t.create('named logo with color') @@ -83,7 +83,7 @@ t.create('named logo with color') }) const logoSvg = Buffer.from( - getShieldsIcon({ name: 'npm' }).replace('data:image/svg+xml;base64,', ''), + getSimpleIcon({ name: 'npm' }).replace('data:image/svg+xml;base64,', ''), 'base64', ).toString('ascii') @@ -99,7 +99,7 @@ t.create('custom svg logo') ) .after((err, res, body) => { expect(err).not.to.be.ok - expect(body).to.include(getShieldsIcon({ name: 'npm' })) + expect(body).to.include(getSimpleIcon({ name: 'npm' })) }) t.create('logoWidth')