refactor
This commit is contained in:
parent
84430bc856
commit
c5b82dcef4
2
.env
2
.env
|
@ -1 +1 @@
|
||||||
DATE_OF_THE_EXAM=2022-01-14T00:00:00.000Z
|
DATE_OF_THE_EXAM=2023-01-14T00:00:00.000Z
|
||||||
|
|
|
@ -1,56 +0,0 @@
|
||||||
name: Build and push to registry
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
tags:
|
|
||||||
- '*'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
push_to_registry:
|
|
||||||
name: Push Docker image to Docker Hub
|
|
||||||
if: startsWith(github.ref, 'refs/tags/v')
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Check out the repo
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Get the version
|
|
||||||
id: get_version
|
|
||||||
run: echo ::set-output name=VERSION::${GITHUB_REF#refs/tags/v}
|
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v1
|
|
||||||
|
|
||||||
- name: Cache Docker layers
|
|
||||||
uses: actions/cache@v2
|
|
||||||
with:
|
|
||||||
path: /tmp/.buildx-cache
|
|
||||||
key: ${{ runner.os }}-buildx-${{ github.sha }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-buildx-
|
|
||||||
- name: Login to DockerHub
|
|
||||||
uses: docker/login-action@v1
|
|
||||||
with:
|
|
||||||
username: ${{ secrets.REGISTRY_LOGIN }}
|
|
||||||
password: ${{ secrets.REGISTRY_PASSWORD }}
|
|
||||||
|
|
||||||
- name: Push to Docker Hub
|
|
||||||
uses: docker/build-push-action@v2
|
|
||||||
with:
|
|
||||||
context: .
|
|
||||||
build-args: |
|
|
||||||
SENTRY_WEBPACK_PLUGIN_ENABLED=true
|
|
||||||
SENTRY_URL=${{ secrets.SENTRY_URL }}
|
|
||||||
SENTRY_ORG=${{ secrets.SENTRY_ORG }}
|
|
||||||
SENTRY_PROJECT=${{ secrets.SENTRY_PROJECT }}
|
|
||||||
SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }}
|
|
||||||
SENTRY_DSN=${{ secrets.SENTRY_DSN }}
|
|
||||||
VERSION=${{ steps.get_version.outputs.VERSION }}
|
|
||||||
PLAUSIBLE_ENABLED=true
|
|
||||||
PLAUSIBLE_DOMAIN=${{ secrets.PLAUSIBLE_DOMAIN }}
|
|
||||||
PLAUSIBLE_CUSTOM_DOMAIN=${{ secrets.PLAUSIBLE_CUSTOM_DOMAIN }}
|
|
||||||
tags: |
|
|
||||||
${{ secrets.REGISTRY_NAME }}/zdam-egzamin-zawodowy-website:latest
|
|
||||||
${{ secrets.REGISTRY_NAME }}/zdam-egzamin-zawodowy-website:${{ steps.get_version.outputs.VERSION }}
|
|
||||||
file: ./Dockerfile
|
|
||||||
push: true
|
|
40
Dockerfile
40
Dockerfile
|
@ -9,31 +9,9 @@ RUN yarn install --frozen-lockfile
|
||||||
# Rebuild the source code only when needed
|
# Rebuild the source code only when needed
|
||||||
FROM node:14.19.1-alpine AS builder
|
FROM node:14.19.1-alpine AS builder
|
||||||
|
|
||||||
ARG VERSION="v0.0.0"
|
|
||||||
ARG SENTRY_WEBPACK_PLUGIN_ENABLED="false"
|
|
||||||
ARG SENTRY_URL=""
|
|
||||||
ARG SENTRY_ORG=""
|
|
||||||
ARG SENTRY_PROJECT=""
|
|
||||||
ARG SENTRY_AUTH_TOKEN=""
|
|
||||||
ARG SENTRY_DSN=""
|
|
||||||
ARG PLAUSIBLE_ENABLED="false"
|
|
||||||
ARG PLAUSIBLE_DOMAIN=""
|
|
||||||
ARG PLAUSIBLE_CUSTOM_DOMAIN=""
|
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
ENV SENTRY_WEBPACK_PLUGIN_ENABLED=$SENTRY_WEBPACK_PLUGIN_ENABLED \
|
ENV BUILDING_PROCESS=true
|
||||||
SENTRY_URL=$SENTRY_URL \
|
|
||||||
SENTRY_ORG=$SENTRY_ORG \
|
|
||||||
SENTRY_PROJECT=$SENTRY_PROJECT \
|
|
||||||
SENTRY_AUTH_TOKEN=$SENTRY_AUTH_TOKEN \
|
|
||||||
SENTRY_DSN=$SENTRY_DSN \
|
|
||||||
NEXT_PUBLIC_SENTRY_DSN=$SENTRY_DSN \
|
|
||||||
NEXT_PUBLIC_VERSION=$VERSION \
|
|
||||||
NEXT_PUBLIC_PLAUSIBLE_ENABLED=$PLAUSIBLE_ENABLED \
|
|
||||||
NEXT_PUBLIC_PLAUSIBLE_DOMAIN=$PLAUSIBLE_DOMAIN \
|
|
||||||
NEXT_PUBLIC_PLAUSIBLE_CUSTOM_DOMAIN=$PLAUSIBLE_CUSTOM_DOMAIN \
|
|
||||||
BUILDING_PROCESS=true
|
|
||||||
|
|
||||||
COPY . .
|
COPY . .
|
||||||
COPY --from=deps /app/node_modules ./node_modules
|
COPY --from=deps /app/node_modules ./node_modules
|
||||||
|
@ -45,21 +23,7 @@ FROM node:14.19.1-alpine AS runner
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
ARG VERSION="0.0.0"
|
ENV BUILDING_PROCESS=false
|
||||||
ARG SENTRY_DSN=""
|
|
||||||
ARG PLAUSIBLE_ENABLED="false"
|
|
||||||
ARG PLAUSIBLE_DOMAIN=""
|
|
||||||
ARG PLAUSIBLE_CUSTOM_DOMAIN=""
|
|
||||||
|
|
||||||
ENV NODE_ENV=production \
|
|
||||||
SENTRY_DSN=$SENTRY_DSN \
|
|
||||||
NEXT_PUBLIC_SENTRY_DSN=$SENTRY_DSN \
|
|
||||||
VERSION=$VERSION \
|
|
||||||
NEXT_PUBLIC_VERSION=$VERSION \
|
|
||||||
NEXT_PUBLIC_PLAUSIBLE_ENABLED=$PLAUSIBLE_ENABLED \
|
|
||||||
NEXT_PUBLIC_PLAUSIBLE_DOMAIN=$PLAUSIBLE_DOMAIN \
|
|
||||||
NEXT_PUBLIC_PLAUSIBLE_CUSTOM_DOMAIN=$PLAUSIBLE_CUSTOM_DOMAIN \
|
|
||||||
BUILDING_PROCESS=false
|
|
||||||
|
|
||||||
COPY --from=builder /app/next.config.js ./
|
COPY --from=builder /app/next.config.js ./
|
||||||
COPY --from=builder /app/public ./public
|
COPY --from=builder /app/public ./public
|
||||||
|
|
22
README.md
22
README.md
|
@ -2,28 +2,6 @@
|
||||||
|
|
||||||
![Screenshot](/screenshots/indexpage.png?raw=true)
|
![Screenshot](/screenshots/indexpage.png?raw=true)
|
||||||
|
|
||||||
A web app for practising the theoretical part of the [vocational exam](https://cke.gov.pl/en/vocational-examination/).
|
|
||||||
|
|
||||||
## Development
|
|
||||||
|
|
||||||
### Prerequisites
|
|
||||||
|
|
||||||
1. Node.JS
|
|
||||||
2. yarn
|
|
||||||
3. [Configured backend](https://github.com/zdam-egzamin-zawodowy/backend)
|
|
||||||
|
|
||||||
### Installation
|
|
||||||
|
|
||||||
1. Clone this repo
|
|
||||||
|
|
||||||
```
|
|
||||||
git clone git@github.com:zdam-egzamin-zawodowy/website.git
|
|
||||||
```
|
|
||||||
|
|
||||||
2. Open the folder with this project in a terminal.
|
|
||||||
3. ``yarn install``
|
|
||||||
4. ``yarn run dev``
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
Distributed under the MIT License. See ``LICENSE`` for more information.
|
Distributed under the MIT License. See ``LICENSE`` for more information.
|
||||||
|
|
|
@ -1,17 +1,8 @@
|
||||||
const { withSentryConfig } = require('@sentry/nextjs');
|
|
||||||
|
|
||||||
const CDN = process.env.NEXT_PUBLIC_CDN_URI
|
const CDN = process.env.NEXT_PUBLIC_CDN_URI
|
||||||
? new URL(process.env.NEXT_PUBLIC_CDN_URI)
|
? new URL(process.env.NEXT_PUBLIC_CDN_URI)
|
||||||
: '';
|
: '';
|
||||||
|
|
||||||
const cfg = {
|
module.exports = {
|
||||||
sentry: {
|
|
||||||
disableServerWebpackPlugin:
|
|
||||||
process.env.SENTRY_WEBPACK_PLUGIN_ENABLED !== 'true',
|
|
||||||
get disableClientWebpackPlugin() {
|
|
||||||
return this.disableServerWebpackPlugin;
|
|
||||||
},
|
|
||||||
},
|
|
||||||
i18n: {
|
i18n: {
|
||||||
locales: ['pl'],
|
locales: ['pl'],
|
||||||
defaultLocale: 'pl',
|
defaultLocale: 'pl',
|
||||||
|
@ -34,8 +25,3 @@ const cfg = {
|
||||||
];
|
];
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = withSentryConfig(cfg, {
|
|
||||||
silent: true,
|
|
||||||
release: 'zdam-egzamin-zawodowy-website@' + process.env.NEXT_PUBLIC_VERSION,
|
|
||||||
});
|
|
||||||
|
|
|
@ -17,14 +17,12 @@
|
||||||
"@material-ui/core": "^4.11.3",
|
"@material-ui/core": "^4.11.3",
|
||||||
"@material-ui/icons": "^4.11.2",
|
"@material-ui/icons": "^4.11.2",
|
||||||
"@material-ui/lab": "^4.0.0-alpha.57",
|
"@material-ui/lab": "^4.0.0-alpha.57",
|
||||||
"@sentry/nextjs": "6.18.2",
|
|
||||||
"clsx": "^1.1.1",
|
"clsx": "^1.1.1",
|
||||||
"date-fns": "^2.19.0",
|
"date-fns": "^2.19.0",
|
||||||
"graphql": "^15.5.0",
|
"graphql": "^15.5.0",
|
||||||
"graphql-request": "^3.4.0",
|
"graphql-request": "^3.4.0",
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
"next": "12.1.0",
|
"next": "12.1.0",
|
||||||
"next-plausible": "^3.1.4",
|
|
||||||
"next-sitemap": "^1.6.25",
|
"next-sitemap": "^1.6.25",
|
||||||
"polish-plurals": "^1.1.0",
|
"polish-plurals": "^1.1.0",
|
||||||
"react": "17.0.2",
|
"react": "17.0.2",
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
import './sentry.server.config'
|
|
|
@ -1,21 +0,0 @@
|
||||||
import * as Sentry from '@sentry/nextjs';
|
|
||||||
|
|
||||||
const initSentry = () => {
|
|
||||||
const SENTRY_DSN =
|
|
||||||
process.env.SENTRY_DSN || process.env.NEXT_PUBLIC_SENTRY_DSN;
|
|
||||||
|
|
||||||
if (!SENTRY_DSN) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Sentry.init({
|
|
||||||
dsn: SENTRY_DSN,
|
|
||||||
tracesSampleRate: 0.3,
|
|
||||||
environment: process.env.NODE_ENV ?? 'development',
|
|
||||||
release:
|
|
||||||
'zdam-egzamin-zawodowy-website@' +
|
|
||||||
(process.env.NEXT_PUBLIC_VERSION ?? 'development'),
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
initSentry();
|
|
|
@ -1,12 +1,10 @@
|
||||||
import { NextPage } from 'next';
|
import { NextPage } from 'next';
|
||||||
import { ErrorProps } from 'next/error';
|
import { ErrorProps } from 'next/error';
|
||||||
import * as Sentry from '@sentry/nextjs';
|
|
||||||
|
|
||||||
import { Box, Typography } from '@material-ui/core';
|
import { Box, Typography } from '@material-ui/core';
|
||||||
import Layout from 'common/Layout/Layout';
|
import Layout from 'common/Layout/Layout';
|
||||||
import Section from 'common/Section/Section';
|
import Section from 'common/Section/Section';
|
||||||
import Seo from 'common/Seo/Seo';
|
import Seo from 'common/Seo/Seo';
|
||||||
import { useEffect } from 'react';
|
|
||||||
|
|
||||||
const getTitleForStatusCode = (statusCode: number): string => {
|
const getTitleForStatusCode = (statusCode: number): string => {
|
||||||
switch (statusCode) {
|
switch (statusCode) {
|
||||||
|
@ -17,20 +15,7 @@ const getTitleForStatusCode = (statusCode: number): string => {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const ErrorPage: NextPage<
|
const ErrorPage: NextPage<ErrorProps> = ({ statusCode, title }) => {
|
||||||
ErrorProps & { hasGetInitialPropsRun?: boolean; err?: any }
|
|
||||||
> = ({ statusCode, title, hasGetInitialPropsRun, err }) => {
|
|
||||||
useEffect(() => {
|
|
||||||
// getInitialProps is not called in case of
|
|
||||||
// https://github.com/vercel/next.js/issues/8592. As a workaround, we pass
|
|
||||||
// err via _app.js so it can be captured
|
|
||||||
if (hasGetInitialPropsRun || !err) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Sentry.captureException(err);
|
|
||||||
}, [hasGetInitialPropsRun, err]);
|
|
||||||
|
|
||||||
const _title = title ?? getTitleForStatusCode(statusCode);
|
const _title = title ?? getTitleForStatusCode(statusCode);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -54,26 +39,10 @@ const ErrorPage: NextPage<
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
ErrorPage.getInitialProps = async ({ res, err, asPath }) => {
|
ErrorPage.getInitialProps = async ({ res, err }) => {
|
||||||
const props = {
|
return {
|
||||||
statusCode: (res ? res.statusCode : err?.statusCode) ?? 404,
|
statusCode: (res ? res.statusCode : err?.statusCode) ?? 404,
|
||||||
hasGetInitialPropsRun: true,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!err) {
|
|
||||||
Sentry.captureException(
|
|
||||||
new Error(`_error.js getInitialProps missing data at path: ${asPath}`)
|
|
||||||
);
|
|
||||||
await Sentry.flush(2000);
|
|
||||||
|
|
||||||
return props;
|
|
||||||
}
|
|
||||||
|
|
||||||
Sentry.captureException(err);
|
|
||||||
|
|
||||||
await Sentry.flush(2000);
|
|
||||||
|
|
||||||
return props;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export default ErrorPage;
|
export default ErrorPage;
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
import React, { PropsWithChildren } from 'react';
|
|
||||||
import PlausibleProvider from 'next-plausible';
|
|
||||||
|
|
||||||
type PlausibleProviderProps = PropsWithChildren<
|
|
||||||
Partial<Parameters<typeof PlausibleProvider>[0]>
|
|
||||||
>;
|
|
||||||
|
|
||||||
const MyPlausibleProvider = ({ children, ...rest }: PlausibleProviderProps) => {
|
|
||||||
return (
|
|
||||||
<PlausibleProvider
|
|
||||||
enabled={process.env.NEXT_PUBLIC_PLAUSIBLE_ENABLED === 'true'}
|
|
||||||
domain={process.env.NEXT_PUBLIC_PLAUSIBLE_DOMAIN ?? ''}
|
|
||||||
customDomain={process.env.NEXT_PUBLIC_PLAUSIBLE_CUSTOM_DOMAIN}
|
|
||||||
trackLocalhost={
|
|
||||||
process.env.NEXT_PUBLIC_PLAUSIBLE_TRACK_LOCALHOST === 'true'
|
|
||||||
}
|
|
||||||
selfHosted={process.env.NEXT_PUBLIC_PLAUSIBLE_CUSTOM_DOMAIN !== ''}
|
|
||||||
{...rest}
|
|
||||||
>
|
|
||||||
{children}
|
|
||||||
</PlausibleProvider>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export default MyPlausibleProvider;
|
|
|
@ -1,7 +1,6 @@
|
||||||
import '@kichiyaki/roboto';
|
import '@kichiyaki/roboto';
|
||||||
import { useEffect } from 'react';
|
import { useEffect } from 'react';
|
||||||
import { AppProps } from 'next/app';
|
import { AppProps } from 'next/app';
|
||||||
import PlausibleProvider from 'libs/plausible/PlausibleProvider';
|
|
||||||
import ThemeProvider from 'libs/material-ui/ThemeProvider';
|
import ThemeProvider from 'libs/material-ui/ThemeProvider';
|
||||||
|
|
||||||
const App = ({ Component, pageProps }: AppProps) => {
|
const App = ({ Component, pageProps }: AppProps) => {
|
||||||
|
@ -14,9 +13,7 @@ const App = ({ Component, pageProps }: AppProps) => {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ThemeProvider>
|
<ThemeProvider>
|
||||||
<PlausibleProvider>
|
<Component {...pageProps} />
|
||||||
<Component {...pageProps} />
|
|
||||||
</PlausibleProvider>
|
|
||||||
</ThemeProvider>
|
</ThemeProvider>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
import { GetServerSideProps } from 'next';
|
import { GetServerSideProps } from 'next';
|
||||||
import { gql } from 'graphql-request';
|
import { gql } from 'graphql-request';
|
||||||
import { getServerSideSitemap } from 'next-sitemap';
|
import { getServerSideSitemap } from 'next-sitemap';
|
||||||
import * as Sentry from '@sentry/nextjs';
|
|
||||||
import { ISitemapField } from 'next-sitemap/dist/@types/interface';
|
import { ISitemapField } from 'next-sitemap/dist/@types/interface';
|
||||||
import { createClient } from 'libs/graphql';
|
import { createClient } from 'libs/graphql';
|
||||||
import { Query, QueryQualificationsArgs } from 'libs/graphql';
|
import { Query, QueryQualificationsArgs } from 'libs/graphql';
|
||||||
|
@ -49,7 +48,6 @@ export const getServerSideProps: GetServerSideProps = async ctx => {
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log('server-sitemap.xml', e.message);
|
console.log('server-sitemap.xml', e.message);
|
||||||
Sentry.captureException(e);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return getServerSideSitemap(ctx, fields);
|
return getServerSideSitemap(ctx, fields);
|
||||||
|
|
185
yarn.lock
185
yarn.lock
|
@ -1128,139 +1128,6 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
any-observable "^0.3.0"
|
any-observable "^0.3.0"
|
||||||
|
|
||||||
"@sentry/browser@6.18.2":
|
|
||||||
version "6.18.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.18.2.tgz#f980add635c242420a7f0c4dd3ed5668f1f39513"
|
|
||||||
integrity sha512-EsqKSNboi2gOiMuEwQranLucxrARi00y2vgUnaPXcqTKTlVlHDetoWHvq8/r29idA1JHGka5tDrwrmWccWIkrg==
|
|
||||||
dependencies:
|
|
||||||
"@sentry/core" "6.18.2"
|
|
||||||
"@sentry/types" "6.18.2"
|
|
||||||
"@sentry/utils" "6.18.2"
|
|
||||||
tslib "^1.9.3"
|
|
||||||
|
|
||||||
"@sentry/cli@^1.73.0":
|
|
||||||
version "1.73.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-1.73.0.tgz#0d0bce913e0060ae192741c6693c57e50078c886"
|
|
||||||
integrity sha512-n4YINqmoncGUkLEpd4WuW+oD+aoUyQPhRbSBSYkbCFxPPmopn1VExCB2Vvzwj7vjXYRRGkix6keBMS0LLs3A3Q==
|
|
||||||
dependencies:
|
|
||||||
https-proxy-agent "^5.0.0"
|
|
||||||
mkdirp "^0.5.5"
|
|
||||||
node-fetch "^2.6.7"
|
|
||||||
npmlog "^4.1.2"
|
|
||||||
progress "^2.0.3"
|
|
||||||
proxy-from-env "^1.1.0"
|
|
||||||
|
|
||||||
"@sentry/core@6.18.2":
|
|
||||||
version "6.18.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.18.2.tgz#d27619b7b4a4b90e2cfdc254d40ee9d630b251b9"
|
|
||||||
integrity sha512-r5ad/gq5S/JHc9sd5CUhZQT9ojQ+f+thk/AoGeGawX/8HURZYAgIqD565d6FK0VsZEDkdRMl58z1Qon20h3y1g==
|
|
||||||
dependencies:
|
|
||||||
"@sentry/hub" "6.18.2"
|
|
||||||
"@sentry/minimal" "6.18.2"
|
|
||||||
"@sentry/types" "6.18.2"
|
|
||||||
"@sentry/utils" "6.18.2"
|
|
||||||
tslib "^1.9.3"
|
|
||||||
|
|
||||||
"@sentry/hub@6.18.2":
|
|
||||||
version "6.18.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.18.2.tgz#fdb8536f61899fd48f3d1b49a6957348ad729ec5"
|
|
||||||
integrity sha512-d0AugekMkbnN12b4EXMjseJxtLPc9S20DGobCPUb4oAQT6S2oDQEj1jwP6PQ5vtgyy+GMYWxBMgqAQ4pjVYISQ==
|
|
||||||
dependencies:
|
|
||||||
"@sentry/types" "6.18.2"
|
|
||||||
"@sentry/utils" "6.18.2"
|
|
||||||
tslib "^1.9.3"
|
|
||||||
|
|
||||||
"@sentry/integrations@6.18.2":
|
|
||||||
version "6.18.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-6.18.2.tgz#caed0092e8a6c9fb0b8b7efd2deef946ca76e626"
|
|
||||||
integrity sha512-jzEH15m1dewzma2Fp0ENNRUDEOI3gGPfC/+lsLAuj9AMoNZ6qykQP8cB8OPTlzIZc0oyWGAE/1LoTrndPAvoPA==
|
|
||||||
dependencies:
|
|
||||||
"@sentry/types" "6.18.2"
|
|
||||||
"@sentry/utils" "6.18.2"
|
|
||||||
localforage "^1.8.1"
|
|
||||||
tslib "^1.9.3"
|
|
||||||
|
|
||||||
"@sentry/minimal@6.18.2":
|
|
||||||
version "6.18.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.18.2.tgz#581c2fc030b9c89f1fcdc3e4855b91ce6c95db56"
|
|
||||||
integrity sha512-n7KYuo34W2LxE+3dnZ47of7XHuORINCnXq66XH72eoj67tf0XeWbIhEJrYGmoLRyRfoCYYrBLWiDl/uTjLzrzQ==
|
|
||||||
dependencies:
|
|
||||||
"@sentry/hub" "6.18.2"
|
|
||||||
"@sentry/types" "6.18.2"
|
|
||||||
tslib "^1.9.3"
|
|
||||||
|
|
||||||
"@sentry/nextjs@6.18.2":
|
|
||||||
version "6.18.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/nextjs/-/nextjs-6.18.2.tgz#573adfe524163bd15d73ef3bd9f1c19ddc21864a"
|
|
||||||
integrity sha512-/H+nnIalHRw2/BWmrjJ7145AwcPeFo03e2LuYGGuNhUmHKsioiZliz7dd7C+7epLS7cajkjmcCNqtW9jvI82hw==
|
|
||||||
dependencies:
|
|
||||||
"@sentry/core" "6.18.2"
|
|
||||||
"@sentry/hub" "6.18.2"
|
|
||||||
"@sentry/integrations" "6.18.2"
|
|
||||||
"@sentry/node" "6.18.2"
|
|
||||||
"@sentry/react" "6.18.2"
|
|
||||||
"@sentry/tracing" "6.18.2"
|
|
||||||
"@sentry/utils" "6.18.2"
|
|
||||||
"@sentry/webpack-plugin" "1.18.8"
|
|
||||||
tslib "^1.9.3"
|
|
||||||
|
|
||||||
"@sentry/node@6.18.2":
|
|
||||||
version "6.18.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/node/-/node-6.18.2.tgz#0d3a294ad89434b108f79da5c4d9fcde4f251993"
|
|
||||||
integrity sha512-1S+44c09n3KVpCYjwOfnA9jKvnpPegpQWM81Nu5J6ToGx+ZiddMq6B9GRXUnFfZ7Z6fJHZzFtySasQC7KqkQoA==
|
|
||||||
dependencies:
|
|
||||||
"@sentry/core" "6.18.2"
|
|
||||||
"@sentry/hub" "6.18.2"
|
|
||||||
"@sentry/types" "6.18.2"
|
|
||||||
"@sentry/utils" "6.18.2"
|
|
||||||
cookie "^0.4.1"
|
|
||||||
https-proxy-agent "^5.0.0"
|
|
||||||
lru_map "^0.3.3"
|
|
||||||
tslib "^1.9.3"
|
|
||||||
|
|
||||||
"@sentry/react@6.18.2":
|
|
||||||
version "6.18.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/react/-/react-6.18.2.tgz#9ba69862c1cf0bd9a47870c8836358db7200c421"
|
|
||||||
integrity sha512-TgCgoiduaPLq/YDh1urF+ZckIGiIzhMFPHs9tlMaqFkEwPOOENJTiPiwTs56x39/2B0tn3XNfY8Un8kG5hsINQ==
|
|
||||||
dependencies:
|
|
||||||
"@sentry/browser" "6.18.2"
|
|
||||||
"@sentry/minimal" "6.18.2"
|
|
||||||
"@sentry/types" "6.18.2"
|
|
||||||
"@sentry/utils" "6.18.2"
|
|
||||||
hoist-non-react-statics "^3.3.2"
|
|
||||||
tslib "^1.9.3"
|
|
||||||
|
|
||||||
"@sentry/tracing@6.18.2":
|
|
||||||
version "6.18.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-6.18.2.tgz#163ecf0042aeb300c12952a91784fda6630085ef"
|
|
||||||
integrity sha512-hg6NLqrqJ5sUPTyWEQ2RqdnhQVnyLtx8II0IyWxQLDWD8UCe3Mu6G7mroDtakPWcP+lWz6OnKfMEfuhMcxR8fw==
|
|
||||||
dependencies:
|
|
||||||
"@sentry/hub" "6.18.2"
|
|
||||||
"@sentry/minimal" "6.18.2"
|
|
||||||
"@sentry/types" "6.18.2"
|
|
||||||
"@sentry/utils" "6.18.2"
|
|
||||||
tslib "^1.9.3"
|
|
||||||
|
|
||||||
"@sentry/types@6.18.2":
|
|
||||||
version "6.18.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.18.2.tgz#f528fec8b75c19d5a6976004e71703184c6cf7be"
|
|
||||||
integrity sha512-WzpJf/Q5aORTzrSwer/As1NlO90dBAQpaHV2ikDDKqOyMWEgjKb5/4gh59p9gH8JMMnLetP1AvQel0fOj5UnUw==
|
|
||||||
|
|
||||||
"@sentry/utils@6.18.2":
|
|
||||||
version "6.18.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.18.2.tgz#c572a3ff49113e7dc4c97db1a18d117f199b9fff"
|
|
||||||
integrity sha512-EC619jesknyu4xpwud5WC/5odYLz6JUy7OSFy5405PpdGeh/m8XUvuJAx4zDx0Iz/Mlk0S1Md+ZcQwqkv39dkw==
|
|
||||||
dependencies:
|
|
||||||
"@sentry/types" "6.18.2"
|
|
||||||
tslib "^1.9.3"
|
|
||||||
|
|
||||||
"@sentry/webpack-plugin@1.18.8":
|
|
||||||
version "1.18.8"
|
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/webpack-plugin/-/webpack-plugin-1.18.8.tgz#247a73a0aa9e28099a736bbe89ca0d35cbac7636"
|
|
||||||
integrity sha512-PtKr0NL62b5L3kPFGjwSNbIUwwcW5E5G6bQxAYZGpkgL1MFPnS4ND0SAsySuX0byQJRFFium5A19LpzyvQZSlQ==
|
|
||||||
dependencies:
|
|
||||||
"@sentry/cli" "^1.73.0"
|
|
||||||
|
|
||||||
"@sindresorhus/is@^0.14.0":
|
"@sindresorhus/is@^0.14.0":
|
||||||
version "0.14.0"
|
version "0.14.0"
|
||||||
resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea"
|
resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea"
|
||||||
|
@ -2172,11 +2039,6 @@ convert-source-map@^1.7.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
safe-buffer "~5.1.1"
|
safe-buffer "~5.1.1"
|
||||||
|
|
||||||
cookie@^0.4.1:
|
|
||||||
version "0.4.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432"
|
|
||||||
integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==
|
|
||||||
|
|
||||||
copy-to-clipboard@^3.3.1:
|
copy-to-clipboard@^3.3.1:
|
||||||
version "3.3.1"
|
version "3.3.1"
|
||||||
resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz#115aa1a9998ffab6196f93076ad6da3b913662ae"
|
resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz#115aa1a9998ffab6196f93076ad6da3b913662ae"
|
||||||
|
@ -3433,11 +3295,6 @@ ignore@^5.2.0:
|
||||||
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a"
|
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a"
|
||||||
integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==
|
integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==
|
||||||
|
|
||||||
immediate@~3.0.5:
|
|
||||||
version "3.0.6"
|
|
||||||
resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b"
|
|
||||||
integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=
|
|
||||||
|
|
||||||
immutable@~3.7.6:
|
immutable@~3.7.6:
|
||||||
version "3.7.6"
|
version "3.7.6"
|
||||||
resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.7.6.tgz#13b4d3cb12befa15482a26fe1b2ebae640071e4b"
|
resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.7.6.tgz#13b4d3cb12befa15482a26fe1b2ebae640071e4b"
|
||||||
|
@ -4051,13 +3908,6 @@ levn@^0.4.1:
|
||||||
prelude-ls "^1.2.1"
|
prelude-ls "^1.2.1"
|
||||||
type-check "~0.4.0"
|
type-check "~0.4.0"
|
||||||
|
|
||||||
lie@3.1.1:
|
|
||||||
version "3.1.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/lie/-/lie-3.1.1.tgz#9a436b2cc7746ca59de7a41fa469b3efb76bd87e"
|
|
||||||
integrity sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=
|
|
||||||
dependencies:
|
|
||||||
immediate "~3.0.5"
|
|
||||||
|
|
||||||
lines-and-columns@^1.1.6:
|
lines-and-columns@^1.1.6:
|
||||||
version "1.2.4"
|
version "1.2.4"
|
||||||
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
|
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
|
||||||
|
@ -4117,13 +3967,6 @@ load-json-file@^4.0.0:
|
||||||
pify "^3.0.0"
|
pify "^3.0.0"
|
||||||
strip-bom "^3.0.0"
|
strip-bom "^3.0.0"
|
||||||
|
|
||||||
localforage@^1.8.1:
|
|
||||||
version "1.10.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/localforage/-/localforage-1.10.0.tgz#5c465dc5f62b2807c3a84c0c6a1b1b3212781dd4"
|
|
||||||
integrity sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==
|
|
||||||
dependencies:
|
|
||||||
lie "3.1.1"
|
|
||||||
|
|
||||||
locate-path@^2.0.0:
|
locate-path@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
|
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
|
||||||
|
@ -4261,11 +4104,6 @@ lru-cache@^6.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
yallist "^4.0.0"
|
yallist "^4.0.0"
|
||||||
|
|
||||||
lru_map@^0.3.3:
|
|
||||||
version "0.3.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd"
|
|
||||||
integrity sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0=
|
|
||||||
|
|
||||||
make-error@^1, make-error@^1.1.1:
|
make-error@^1, make-error@^1.1.1:
|
||||||
version "1.3.6"
|
version "1.3.6"
|
||||||
resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
|
resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
|
||||||
|
@ -4362,13 +4200,6 @@ mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3:
|
||||||
resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113"
|
resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113"
|
||||||
integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==
|
integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==
|
||||||
|
|
||||||
mkdirp@^0.5.5:
|
|
||||||
version "0.5.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
|
|
||||||
integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
|
|
||||||
dependencies:
|
|
||||||
minimist "^1.2.5"
|
|
||||||
|
|
||||||
mkdirp@^1.0.4:
|
mkdirp@^1.0.4:
|
||||||
version "1.0.4"
|
version "1.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
|
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
|
||||||
|
@ -4423,11 +4254,6 @@ natural-compare@^1.4.0:
|
||||||
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
|
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
|
||||||
integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
|
integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
|
||||||
|
|
||||||
next-plausible@^3.1.4:
|
|
||||||
version "3.1.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/next-plausible/-/next-plausible-3.1.4.tgz#a386ff4e2327995cb4a1307e53e1b4af70817b52"
|
|
||||||
integrity sha512-NMLKJ0AKlKuvYU//RytyqSES5NtLRoH/ym3fCC02w2Ed1SrTgNRUrgpxyJrcguY/DYGPncQ3a0/nQ358vUTAwQ==
|
|
||||||
|
|
||||||
next-sitemap@^1.6.25:
|
next-sitemap@^1.6.25:
|
||||||
version "1.9.12"
|
version "1.9.12"
|
||||||
resolved "https://registry.yarnpkg.com/next-sitemap/-/next-sitemap-1.9.12.tgz#288c2dfc907039892e21eb1b0c7a94d288f323d9"
|
resolved "https://registry.yarnpkg.com/next-sitemap/-/next-sitemap-1.9.12.tgz#288c2dfc907039892e21eb1b0c7a94d288f323d9"
|
||||||
|
@ -4528,7 +4354,7 @@ normalize-url@^4.1.0:
|
||||||
resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a"
|
resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a"
|
||||||
integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==
|
integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==
|
||||||
|
|
||||||
npmlog@^4.0.1, npmlog@^4.1.2:
|
npmlog@^4.0.1:
|
||||||
version "4.1.2"
|
version "4.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
|
resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
|
||||||
integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
|
integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
|
||||||
|
@ -4948,7 +4774,7 @@ process-nextick-args@~2.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
|
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
|
||||||
integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
|
integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
|
||||||
|
|
||||||
progress@^2.0.0, progress@^2.0.3:
|
progress@^2.0.0:
|
||||||
version "2.0.3"
|
version "2.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
|
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
|
||||||
integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
|
integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
|
||||||
|
@ -4969,11 +4795,6 @@ prop-types@^15.6.2, prop-types@^15.7.2:
|
||||||
object-assign "^4.1.1"
|
object-assign "^4.1.1"
|
||||||
react-is "^16.8.1"
|
react-is "^16.8.1"
|
||||||
|
|
||||||
proxy-from-env@^1.1.0:
|
|
||||||
version "1.1.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
|
|
||||||
integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
|
|
||||||
|
|
||||||
pump@^3.0.0:
|
pump@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
|
resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
|
||||||
|
@ -5900,7 +5721,7 @@ tsconfig-paths@^3.9.0:
|
||||||
minimist "^1.2.0"
|
minimist "^1.2.0"
|
||||||
strip-bom "^3.0.0"
|
strip-bom "^3.0.0"
|
||||||
|
|
||||||
tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3:
|
tslib@^1.8.1, tslib@^1.9.0:
|
||||||
version "1.14.1"
|
version "1.14.1"
|
||||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
|
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
|
||||||
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
|
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
|
||||||
|
|
Reference in New Issue