Using summaries table for improved performance.
|
@ -28,7 +28,12 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<span
|
<span
|
||||||
v-if="!loading && actors.length === 0 && releases.length === 0"
|
v-if="error"
|
||||||
|
class="error summary"
|
||||||
|
>{{ error }}</span>
|
||||||
|
|
||||||
|
<span
|
||||||
|
v-else-if="!loading && actors.length === 0 && releases.length === 0"
|
||||||
class="summary"
|
class="summary"
|
||||||
>No results</span>
|
>No results</span>
|
||||||
</div>
|
</div>
|
||||||
|
@ -39,6 +44,7 @@ import Actor from '../actors/tile.vue';
|
||||||
import Releases from '../releases/releases.vue';
|
import Releases from '../releases/releases.vue';
|
||||||
|
|
||||||
async function search() {
|
async function search() {
|
||||||
|
try {
|
||||||
const results = await this.$store.dispatch('search', {
|
const results = await this.$store.dispatch('search', {
|
||||||
query: this.query,
|
query: this.query,
|
||||||
limit: 10,
|
limit: 10,
|
||||||
|
@ -50,6 +56,12 @@ async function search() {
|
||||||
this.actors = results.actors;
|
this.actors = results.actors;
|
||||||
this.releases = results.releases;
|
this.releases = results.releases;
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
this.loading = false;
|
||||||
|
this.error = 'Failed to retrieve search results, sorry about that.';
|
||||||
|
|
||||||
|
console.error(error);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function query() {
|
function query() {
|
||||||
|
@ -101,6 +113,10 @@ export default {
|
||||||
margin: 0 0 1rem 0;
|
margin: 0 0 1rem 0;
|
||||||
color: var(--shadow);
|
color: var(--shadow);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
|
|
||||||
|
&.error {
|
||||||
|
color: var(--error);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.tiles {
|
.tiles {
|
||||||
|
|
|
@ -22,7 +22,7 @@ function initEntitiesActions(store, router) {
|
||||||
$offset: Int = 0,
|
$offset: Int = 0,
|
||||||
$after: Datetime = "1900-01-01",
|
$after: Datetime = "1900-01-01",
|
||||||
$before: Datetime = "2100-01-01",
|
$before: Datetime = "2100-01-01",
|
||||||
$orderBy: [ReleasesOrderBy!]
|
$orderBy: [ReleasesSummariesOrderBy!]
|
||||||
$exclude: [String!]
|
$exclude: [String!]
|
||||||
$hasAuth: Boolean!
|
$hasAuth: Boolean!
|
||||||
$userId: Int
|
$userId: Int
|
||||||
|
@ -67,7 +67,6 @@ function initEntitiesActions(store, router) {
|
||||||
independent
|
independent
|
||||||
hasLogo
|
hasLogo
|
||||||
${campaignsFragment}
|
${campaignsFragment}
|
||||||
sceneTotal
|
|
||||||
children: childEntitiesConnection {
|
children: childEntitiesConnection {
|
||||||
totalCount
|
totalCount
|
||||||
}
|
}
|
||||||
|
@ -85,51 +84,35 @@ function initEntitiesActions(store, router) {
|
||||||
${campaignsFragment}
|
${campaignsFragment}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
connection: releasesConnection(
|
connection: releasesSummariesConnection(
|
||||||
first: $limit
|
first: $limit
|
||||||
offset: $offset
|
offset: $offset
|
||||||
orderBy: $orderBy
|
orderBy: $orderBy
|
||||||
filter: {
|
filter: {
|
||||||
entity: {
|
not: { tags: { overlaps: $exclude } }
|
||||||
|
effectiveDate: { lessThan: $before, greaterThan: $after }
|
||||||
|
showcased: { equalTo: true }
|
||||||
or: [
|
or: [
|
||||||
{
|
{
|
||||||
slug: { equalTo: $entitySlug }
|
channelSlug: { equalTo: $entitySlug }
|
||||||
type: { equalTo: $entityType }
|
channelType: { equalTo: $entityType }
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
parent:{
|
networkSlug: { equalTo: $entitySlug }
|
||||||
slug: { equalTo: $entitySlug }
|
networkType: { equalTo: $entityType }
|
||||||
type: { equalTo: $entityType }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
parent:{
|
parentNetworkSlug: { equalTo: $entitySlug }
|
||||||
parent: {
|
parentNetworkType: { equalTo: $entityType }
|
||||||
slug: { equalTo: $entitySlug }
|
|
||||||
type: { equalTo: $entityType }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
effectiveDate: {
|
|
||||||
lessThan: $before,
|
|
||||||
greaterThan: $after
|
|
||||||
}
|
|
||||||
releasesTagsConnection: {
|
|
||||||
none: {
|
|
||||||
tag: {
|
|
||||||
slug: {
|
|
||||||
in: $exclude
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
) {
|
) {
|
||||||
releases: nodes {
|
releases: nodes {
|
||||||
|
release {
|
||||||
${releaseFields}
|
${releaseFields}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
totalCount
|
totalCount
|
||||||
}
|
}
|
||||||
${batchFragment}
|
${batchFragment}
|
||||||
|
@ -153,7 +136,7 @@ function initEntitiesActions(store, router) {
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
entity: curateEntity(entity, null, connection.releases, { lastBatch: lastBatch?.id }),
|
entity: curateEntity(entity, null, connection.releases.map(({ release }) => release), { lastBatch: lastBatch?.id }),
|
||||||
totalCount: connection.totalCount,
|
totalCount: connection.totalCount,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -419,6 +419,7 @@ const releaseFields = `
|
||||||
`;
|
`;
|
||||||
// isNew too performance-intensive
|
// isNew too performance-intensive
|
||||||
|
|
||||||
|
/*
|
||||||
const releasesFragment = `
|
const releasesFragment = `
|
||||||
connection: releasesConnection(
|
connection: releasesConnection(
|
||||||
filter: {
|
filter: {
|
||||||
|
@ -447,6 +448,27 @@ const releasesFragment = `
|
||||||
totalCount
|
totalCount
|
||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
*/
|
||||||
|
|
||||||
|
const releasesFragment = `
|
||||||
|
connection: releasesSummariesConnection(
|
||||||
|
first: $limit
|
||||||
|
offset: $offset
|
||||||
|
orderBy: $orderBy
|
||||||
|
filter: {
|
||||||
|
not: { tags: { overlaps: $exclude } }
|
||||||
|
effectiveDate: { lessThan: $before, greaterThan: $after }
|
||||||
|
showcased: { equalTo: true }
|
||||||
|
}
|
||||||
|
) {
|
||||||
|
releases: nodes {
|
||||||
|
release {
|
||||||
|
${releaseFields}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
totalCount
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
const mediaFields = `
|
const mediaFields = `
|
||||||
id
|
id
|
||||||
|
|
|
@ -23,7 +23,7 @@ function initReleasesActions(store, router) {
|
||||||
$offset:Int = 0,
|
$offset:Int = 0,
|
||||||
$after:Datetime = "1900-01-01 00:00:00",
|
$after:Datetime = "1900-01-01 00:00:00",
|
||||||
$before:Datetime = "2100-01-01 00:00:00",
|
$before:Datetime = "2100-01-01 00:00:00",
|
||||||
$orderBy: [ReleasesOrderBy!],
|
$orderBy: [ReleasesSummariesOrderBy!],
|
||||||
$exclude: [String!]
|
$exclude: [String!]
|
||||||
) {
|
) {
|
||||||
${releasesFragment}
|
${releasesFragment}
|
||||||
|
|
|
@ -15,14 +15,14 @@ function initTagsActions(store, _router) {
|
||||||
}) {
|
}) {
|
||||||
const { before, after, orderBy } = getDateRange(range);
|
const { before, after, orderBy } = getDateRange(range);
|
||||||
|
|
||||||
const { tagBySlug, batches: [lastBatch] } = await graphql(`
|
const { tagBySlug, scenesConnection, batches: [lastBatch] } = await graphql(`
|
||||||
query Tag(
|
query Tag(
|
||||||
$tagSlug: String!
|
$tagSlug: String!
|
||||||
$offset: Int = 0,
|
$offset: Int = 0,
|
||||||
$limit:Int = 1000,
|
$limit:Int = 1000,
|
||||||
$after:Datetime = "1900-01-01",
|
$after:Datetime = "1900-01-01",
|
||||||
$before:Datetime = "2100-01-01",
|
$before:Datetime = "2100-01-01",
|
||||||
$orderBy: [ReleasesOrderBy!],
|
$orderBy: [ReleasesSummariesOrderBy!],
|
||||||
$exclude: [String!]
|
$exclude: [String!]
|
||||||
$hasAuth: Boolean!
|
$hasAuth: Boolean!
|
||||||
$userId: Int
|
$userId: Int
|
||||||
|
@ -155,31 +155,24 @@ function initTagsActions(store, _router) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
scenesConnection(
|
|
||||||
filter: {
|
|
||||||
effectiveDate: {
|
|
||||||
lessThan: $before,
|
|
||||||
greaterThan: $after,
|
|
||||||
},
|
|
||||||
releasesTagsConnection: {
|
|
||||||
none: {
|
|
||||||
tag: {
|
|
||||||
slug: {
|
|
||||||
in: $exclude
|
|
||||||
}
|
}
|
||||||
}
|
scenesConnection: releasesSummariesConnection(
|
||||||
}
|
first: $limit
|
||||||
}
|
|
||||||
},
|
|
||||||
first: $limit,
|
|
||||||
orderBy: $orderBy,
|
|
||||||
offset: $offset
|
offset: $offset
|
||||||
|
orderBy: $orderBy
|
||||||
|
filter: {
|
||||||
|
not: { tags: { overlaps: $exclude } }
|
||||||
|
tags: { anyEqualTo: $tagSlug }
|
||||||
|
effectiveDate: { lessThan: $before, greaterThan: $after }
|
||||||
|
showcased: { equalTo: true }
|
||||||
|
}
|
||||||
) {
|
) {
|
||||||
releases: nodes {
|
releases: nodes {
|
||||||
|
release {
|
||||||
${releaseFields}
|
${releaseFields}
|
||||||
}
|
}
|
||||||
totalCount
|
|
||||||
}
|
}
|
||||||
|
totalCount
|
||||||
}
|
}
|
||||||
${batchFragment}
|
${batchFragment}
|
||||||
}
|
}
|
||||||
|
@ -197,8 +190,8 @@ function initTagsActions(store, _router) {
|
||||||
|
|
||||||
return {
|
return {
|
||||||
tag: curateTag(tagBySlug, null, curateRelease),
|
tag: curateTag(tagBySlug, null, curateRelease),
|
||||||
releases: tagBySlug.scenesConnection.releases.map((release) => curateRelease(release, 'scene', { lastBatch: lastBatch.id })),
|
releases: scenesConnection.releases.map(({ release }) => curateRelease(release, 'scene', { lastBatch: lastBatch.id })),
|
||||||
totalCount: tagBySlug.scenesConnection.totalCount,
|
totalCount: scenesConnection.totalCount,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
const config = require('config');
|
||||||
|
|
||||||
|
exports.up = async (knex) => {
|
||||||
|
await knex.raw(`
|
||||||
|
CREATE MATERIALIZED VIEW releases_summaries AS (
|
||||||
|
SELECT
|
||||||
|
releases.id as release_id,
|
||||||
|
channels.slug as channel_slug,
|
||||||
|
channels.type as channel_type,
|
||||||
|
networks.slug as network_slug,
|
||||||
|
networks.type as network_type,
|
||||||
|
parent_networks.slug as parent_network_slug,
|
||||||
|
parent_networks.type as parent_network_type,
|
||||||
|
studios.showcased IS NOT false
|
||||||
|
AND (channels.showcased IS NOT false OR COALESCE(studios.showcased, false) = true)
|
||||||
|
AND (networks.showcased IS NOT false OR COALESCE(channels.showcased, false) = true OR COALESCE(studios.showcased, false) = true)
|
||||||
|
AS showcased,
|
||||||
|
releases.effective_date,
|
||||||
|
releases.created_at,
|
||||||
|
array_agg(tags.slug) FILTER (WHERE tags.slug IS NOT NULL) AS tags
|
||||||
|
FROM releases
|
||||||
|
LEFT JOIN releases_tags ON releases_tags.release_id = releases.id
|
||||||
|
LEFT JOIN tags ON tags.id = releases_tags.tag_id
|
||||||
|
LEFT JOIN entities AS channels ON channels.id = releases.entity_id
|
||||||
|
LEFT JOIN entities AS studios ON studios.id = releases.studio_id
|
||||||
|
LEFT JOIN entities AS networks ON networks.id = channels.parent_id
|
||||||
|
LEFT JOIN entities AS parent_networks ON parent_networks.id = networks.parent_id
|
||||||
|
GROUP BY releases.id, studios.showcased,
|
||||||
|
channels.showcased, channels.slug, channels.type,
|
||||||
|
networks.showcased, networks.slug, networks.type,
|
||||||
|
parent_networks.slug, parent_networks.type
|
||||||
|
);
|
||||||
|
|
||||||
|
COMMENT ON MATERIALIZED VIEW releases_summaries IS E'@foreignKey (release_id) references releases (id)';
|
||||||
|
GRANT ALL ON ALL TABLES IN SCHEMA public TO :visitor;
|
||||||
|
`, {
|
||||||
|
visitor: knex.raw(config.database.query.user),
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.down = async (knex) => {
|
||||||
|
await knex.raw(`
|
||||||
|
DROP MATERIALIZED VIEW IF EXISTS releases_summaries;
|
||||||
|
`);
|
||||||
|
};
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 7.1 KiB |
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 5.9 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 873 B After Width: | Height: | Size: 909 B |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
BIN
public/img/logos/teamskeet/lazy/team-skeet-x-brit-studio-xxx_tld.png
Executable file → Normal file
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
BIN
public/img/logos/teamskeet/lazy/teamskeetxaussiefellatioqueens.png
Executable file → Normal file
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 9.2 KiB After Width: | Height: | Size: 9.3 KiB |
Before Width: | Height: | Size: 7.9 KiB After Width: | Height: | Size: 7.9 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 8.9 KiB After Width: | Height: | Size: 9.0 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.1 KiB |
|
@ -0,0 +1,48 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 25.3.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||||
|
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||||
|
viewBox="0 0 211 75" style="enable-background:new 0 0 211 75;" xml:space="preserve">
|
||||||
|
<style type="text/css">
|
||||||
|
.st0{fill:#FFFFFF;}
|
||||||
|
.st1{fill:#FF0023;}
|
||||||
|
</style>
|
||||||
|
<g>
|
||||||
|
<g>
|
||||||
|
<path class="st0" d="M28.2,53.6c0,4,1.4,6,4.1,6c0.4,0,1.1-0.1,1.9-0.2c0.9-0.1,1.5-0.2,1.9-0.2c0.7,0,1.3,0.3,1.8,0.8
|
||||||
|
c0.5,0.5,0.8,1.1,0.8,1.8c0,1.8-1.2,2.8-3.6,2.8c-0.1,0-0.3,0-0.5,0c-0.3-0.1-0.5-0.1-0.6-0.1L30.1,64c-1.5-0.2-3.2-0.3-5.1-0.3
|
||||||
|
c-2,0-3.8,0.1-5.4,0.3l-4,0.6c-0.2,0-0.3,0-0.6,0.1c-0.3,0-0.5,0-0.6,0c-2.4,0-3.5-0.9-3.5-2.8c0-1.7,0.9-2.5,2.6-2.5
|
||||||
|
c0.4,0,1.1,0.1,1.9,0.2c0.9,0.1,1.5,0.2,1.9,0.2c2.7,0,4-2,4-6V48V41v-6.8V21c0-3.8-2-5.7-5.9-5.7h-2.5c-3.9,0-5.8,1.9-5.8,5.6
|
||||||
|
c0,1.3,0,2.2,0.1,2.7l0.3,3c0.1,0.5,0.1,1.2,0.1,2c0,3.4-1,5.1-3.1,5.1c-2,0-3-1.2-3-3.7c0-0.7,0.1-1.9,0.2-3.6
|
||||||
|
c0.1-2.6,0.2-4.2,0.2-4.9c0-1.3,0-2.7-0.1-4.2c-0.2-2.8-0.3-4-0.3-3.6c0-2.2,1-3.4,3-3.4c0.7,0,2.5,0.1,5.2,0.2
|
||||||
|
c0.3,0,2.5,0.1,6.6,0.3h9.1c1.1,0,3.9,0,8.6-0.1c1,0,2.8-0.1,5.2-0.2c2.2-0.1,3.9-0.2,5.1-0.2c2.7,0,4,1.1,4,3.3v0.2
|
||||||
|
c0,0.5-0.1,1.5-0.2,3c-0.1,1.4-0.3,3-0.4,4.7v0.9c0,0.8,0.1,2.1,0.2,3.8c0.2,2.2,0.3,3.6,0.3,4.2c0,2.2-1,3.3-3.1,3.3
|
||||||
|
c-2,0-3.1-1.3-3.1-4c0-1,0.1-2.4,0.2-4.3c0.2-1.9,0.2-3.3,0.2-4.3c0-3.7-2.1-5.6-6.3-5.6h-2.2c-2,0-3.4,0.4-4.3,1.2
|
||||||
|
c-0.9,0.8-1.3,2.2-1.4,4.1l-0.3,5.6V53.6z"/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<path class="st0" d="M159,23.3c0,5.5-3.1,9.3-9.3,11.6c2.2,0.7,4.1,1.5,5.5,2.3c4.3,2.5,6.5,6.3,6.5,11.3c0,4.9-1.9,8.8-5.7,11.8
|
||||||
|
c-3.8,2.9-8.9,4.4-15.3,4.4c-2.3,0-5.2-0.1-8.7-0.4c-3.5-0.3-6.1-0.4-7.8-0.4c-1.4,0-2.8,0.1-4.1,0.2l-3.8,0.5
|
||||||
|
c-0.1,0-0.3,0-0.6,0.1c-0.3,0-0.5,0-0.6,0c-2.3-0.1-3.5-1-3.5-2.9c0-1.7,0.8-2.6,2.5-2.6c0.4,0,1.2,0.1,2.2,0.2
|
||||||
|
c0.7,0.1,1.3,0.2,1.7,0.2c2.7,0,4.1-2,4.1-5.9V21.4c0-4-1.4-6-4.1-6c-0.5,0-1,0.1-1.7,0.2c-1,0.2-1.7,0.2-2.2,0.2
|
||||||
|
c-1.7,0-2.5-0.9-2.5-2.6c0-1.9,1.2-2.8,3.7-2.8h1l3.9,0.6c1.1,0.2,2.6,0.2,4.6,0.2c2,0,4.9-0.2,8.7-0.5c2.5-0.2,5.2-0.3,8.1-0.3
|
||||||
|
c5.4,0,9.6,1.1,12.6,3.4C157.5,16.1,159,19.3,159,23.3z M128.3,26.8c0,2.8,0.3,4.6,0.8,5.3c0.5,0.7,1.9,1,4.2,1h4.5
|
||||||
|
c9.5,0,14.2-3.1,14.2-9.2c0-5.6-3.9-8.4-11.7-8.4c-5.5,0-8.8,0.3-10.1,1c-1.3,0.7-1.9,2.5-1.9,5.4V26.8z M128.3,43.1V52
|
||||||
|
c0,3.5,0.6,5.6,1.8,6.4c1.2,0.8,4.4,1.2,9.6,1.2c10,0,15-3.7,15-11.2c0-6.9-4.8-10.4-14.4-10.4h-6.7c-2.9,0-4.5,0.6-5,1.9
|
||||||
|
C128.4,40.6,128.3,41.6,128.3,43.1z"/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<path class="st0" d="M188.3,9c5.9,0,10.8,2.3,14.5,6.8v-0.9c0-0.3,0-0.6,0-0.9c-0.1-0.3-0.2-0.5-0.2-0.6c-0.1-1.2-0.2-1.8-0.2-1.6
|
||||||
|
c0-1.9,0.8-2.8,2.5-2.8c1.8,0,2.6,1.1,2.6,3.4c0,0.4-0.1,1.7-0.2,3.9c-0.3,2.7-0.4,4.5-0.4,5.5c0,1.4,0.1,2.9,0.2,4.4l0.3,3.1V30
|
||||||
|
c0,2.4-1,3.6-2.9,3.6c-2.1,0-3.1-1.1-3.1-3.4v-2.9c0.1-3.8-1.1-6.9-3.6-9.3c-2.5-2.4-5.8-3.6-9.8-3.6c-5.3,0-9.4,2-12.4,6.1
|
||||||
|
c-3,4.1-4.5,9.7-4.5,16.9c0,7.3,1.5,13.1,4.6,17.2c3.1,4.1,7.4,6.2,12.9,6.2c3,0,5.7-0.7,8-2.2c2.4-1.5,4-3.4,5-5.7
|
||||||
|
c0.6-1.6,1-3.7,1-6.3c0-2.5,1-3.7,3.1-3.7c2.2,0,3.3,1.2,3.3,3.7c0,5.7-2,10.4-5.9,14c-4,3.6-9.1,5.5-15.3,5.5
|
||||||
|
c-7.2,0-13-2.5-17.3-7.6c-4.3-5.1-6.5-11.9-6.5-20.3c0-8.7,2.2-15.8,6.6-21.1C175.3,11.6,181.1,9,188.3,9z"/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<path class="st1" d="M82.4,64.5c-1.5-0.5-5.8-3.9-12.8-10.5c-5.7-5.3-9.7-9.4-12.1-12.5c-4.1-5.4-6.2-10.6-6.2-15.7
|
||||||
|
c0-4.8,1.8-8.7,5.3-12c3.4-3.1,7.5-4.6,12.4-4.6c6.4,0,10.9,2.7,13.4,8.2c2.5-5.5,7-8.2,13.4-8.2c4.9,0,9,1.5,12.4,4.6
|
||||||
|
c3.5,3.2,5.3,7.2,5.3,12c0,3.7-1.1,7.6-3.3,11.6c-2.2,4-7.2,9.6-14.9,16.7c-2.5,2.4-4.6,4.3-6.3,5.7
|
||||||
|
C85.6,62.8,83.4,64.3,82.4,64.5z"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.6 KiB |
After Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |