mirror of
https://github.com/zen-browser/desktop.git
synced 2025-07-08 00:10:00 +02:00
chore: Added licenses to remanining files, b=(no-bug), c=common, compact-mode, folders, glance, media, mods, tabs, tests, workspaces
This commit is contained in:
parent
09ca430b88
commit
e0ac9ba424
40 changed files with 123 additions and 6 deletions
8
package-lock.json
generated
8
package-lock.json
generated
|
@ -9,7 +9,7 @@
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"license": "MPL-2.0",
|
"license": "MPL-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@zen-browser/surfer": "^1.11.12"
|
"@zen-browser/surfer": "^1.11.13"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/preset-typescript": "^7.27.0",
|
"@babel/preset-typescript": "^7.27.0",
|
||||||
|
@ -817,9 +817,9 @@
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/@zen-browser/surfer": {
|
"node_modules/@zen-browser/surfer": {
|
||||||
"version": "1.11.12",
|
"version": "1.11.13",
|
||||||
"resolved": "https://registry.npmjs.org/@zen-browser/surfer/-/surfer-1.11.12.tgz",
|
"resolved": "https://registry.npmjs.org/@zen-browser/surfer/-/surfer-1.11.13.tgz",
|
||||||
"integrity": "sha512-wny52xOFvZe5aPXxLVxEcAzDNEiWWoDiCZFlzsNxkyQ5Lw6vzqroMWpjQPJwBRJOc/JssgiXMdd1uwl2LLnovQ==",
|
"integrity": "sha512-D0TyunAWYtTdJkuUkYeOc6VBXzE9aoDs58kWu/Oi/aU3vd8IbqXPbZZfYwj5FWPWDReMrJUNkkKAEdbL44y9aw==",
|
||||||
"license": "MPL-2.0",
|
"license": "MPL-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@resvg/resvg-js": "^1.4.0",
|
"@resvg/resvg-js": "^1.4.0",
|
||||||
|
|
|
@ -42,7 +42,7 @@
|
||||||
},
|
},
|
||||||
"homepage": "https://github.com/zen-browser/desktop#readme",
|
"homepage": "https://github.com/zen-browser/desktop#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@zen-browser/surfer": "^1.11.12"
|
"@zen-browser/surfer": "^1.11.13"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/preset-typescript": "^7.27.0",
|
"@babel/preset-typescript": "^7.27.0",
|
||||||
|
|
3
src/zen/@types/lib.gecko.darwin.d.ts
vendored
3
src/zen/@types/lib.gecko.darwin.d.ts
vendored
|
@ -1,3 +1,6 @@
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
/**
|
/**
|
||||||
* NOTE: Do not modify this file by hand.
|
* NOTE: Do not modify this file by hand.
|
||||||
* Content was generated from source XPCOM .idl files.
|
* Content was generated from source XPCOM .idl files.
|
||||||
|
|
3
src/zen/@types/lib.gecko.dom.d.ts
vendored
3
src/zen/@types/lib.gecko.dom.d.ts
vendored
|
@ -1,3 +1,6 @@
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
/**
|
/**
|
||||||
* NOTE: Do not modify this file by hand.
|
* NOTE: Do not modify this file by hand.
|
||||||
* Content was generated from source .webidl files.
|
* Content was generated from source .webidl files.
|
||||||
|
|
3
src/zen/@types/lib.gecko.glean.d.ts
vendored
3
src/zen/@types/lib.gecko.glean.d.ts
vendored
|
@ -1,3 +1,6 @@
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
/**
|
/**
|
||||||
* NOTE: Do not modify this file by hand.
|
* NOTE: Do not modify this file by hand.
|
||||||
* Content was generated from source metrics.yaml files.
|
* Content was generated from source metrics.yaml files.
|
||||||
|
|
3
src/zen/@types/lib.gecko.linux.d.ts
vendored
3
src/zen/@types/lib.gecko.linux.d.ts
vendored
|
@ -1,3 +1,6 @@
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
/**
|
/**
|
||||||
* NOTE: Do not modify this file by hand.
|
* NOTE: Do not modify this file by hand.
|
||||||
* Content was generated from source XPCOM .idl files.
|
* Content was generated from source XPCOM .idl files.
|
||||||
|
|
3
src/zen/@types/lib.gecko.modules.d.ts
vendored
3
src/zen/@types/lib.gecko.modules.d.ts
vendored
|
@ -1,3 +1,6 @@
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
/**
|
/**
|
||||||
* NOTE: Do not modify this file by hand.
|
* NOTE: Do not modify this file by hand.
|
||||||
* Content was generated by running "mach ts paths".
|
* Content was generated by running "mach ts paths".
|
||||||
|
|
3
src/zen/@types/lib.gecko.nsresult.d.ts
vendored
3
src/zen/@types/lib.gecko.nsresult.d.ts
vendored
|
@ -1,3 +1,6 @@
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
/**
|
/**
|
||||||
* NOTE: Do not modify this file by hand.
|
* NOTE: Do not modify this file by hand.
|
||||||
* Content was generated from xpc.msg and error_list.json.
|
* Content was generated from xpc.msg and error_list.json.
|
||||||
|
|
3
src/zen/@types/lib.gecko.services.d.ts
vendored
3
src/zen/@types/lib.gecko.services.d.ts
vendored
|
@ -1,3 +1,6 @@
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
/**
|
/**
|
||||||
* NOTE: Do not modify this file by hand.
|
* NOTE: Do not modify this file by hand.
|
||||||
* Content was generated from services.json.
|
* Content was generated from services.json.
|
||||||
|
|
3
src/zen/@types/lib.gecko.tweaks.d.ts
vendored
3
src/zen/@types/lib.gecko.tweaks.d.ts
vendored
|
@ -1,3 +1,6 @@
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
/**
|
/**
|
||||||
* Gecko generic/specialized adjustments for xpcom and webidl types.
|
* Gecko generic/specialized adjustments for xpcom and webidl types.
|
||||||
*/
|
*/
|
||||||
|
|
3
src/zen/@types/lib.gecko.win32.d.ts
vendored
3
src/zen/@types/lib.gecko.win32.d.ts
vendored
|
@ -1,3 +1,6 @@
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
/**
|
/**
|
||||||
* NOTE: Do not modify this file by hand.
|
* NOTE: Do not modify this file by hand.
|
||||||
* Content was generated from source XPCOM .idl files.
|
* Content was generated from source XPCOM .idl files.
|
||||||
|
|
3
src/zen/@types/lib.gecko.xpcom.d.ts
vendored
3
src/zen/@types/lib.gecko.xpcom.d.ts
vendored
|
@ -1,3 +1,6 @@
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
/**
|
/**
|
||||||
* NOTE: Do not modify this file by hand.
|
* NOTE: Do not modify this file by hand.
|
||||||
* Content was generated from source XPCOM .idl files.
|
* Content was generated from source XPCOM .idl files.
|
||||||
|
|
3
src/zen/@types/lib.gecko.xpidl.d.ts
vendored
3
src/zen/@types/lib.gecko.xpidl.d.ts
vendored
|
@ -1,3 +1,6 @@
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
/**
|
/**
|
||||||
* Gecko XPIDL base types.
|
* Gecko XPIDL base types.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
// Utility to register JSWindowActors
|
// Utility to register JSWindowActors
|
||||||
|
|
||||||
var gZenActorsManager = {
|
var gZenActorsManager = {
|
||||||
_actors: new Set(),
|
_actors: new Set(),
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
var gZenOperatingSystemCommonUtils = {
|
var gZenOperatingSystemCommonUtils = {
|
||||||
kZenOSToSmallName: {
|
kZenOSToSmallName: {
|
||||||
WINNT: 'windows',
|
WINNT: 'windows',
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
import { AppConstants } from 'resource://gre/modules/AppConstants.sys.mjs';
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
export var ZenCustomizableUI = new (class {
|
export var ZenCustomizableUI = new (class {
|
||||||
constructor() {}
|
constructor() {}
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,3 +1,6 @@
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
{
|
{
|
||||||
class ZenSessionStore extends ZenPreloadedFeature {
|
class ZenSessionStore extends ZenPreloadedFeature {
|
||||||
init() {
|
init() {
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
{
|
{
|
||||||
var ZenStartup = {
|
var ZenStartup = {
|
||||||
init() {
|
init() {
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
var gZenUIManager = {
|
var gZenUIManager = {
|
||||||
_popupTrackingElements: [],
|
_popupTrackingElements: [],
|
||||||
_hoverPausedForExpand: false,
|
_hoverPausedForExpand: false,
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
const lazy = {};
|
const lazy = {};
|
||||||
|
|
||||||
ChromeUtils.defineESModuleGetters(lazy, {
|
ChromeUtils.defineESModuleGetters(lazy, {
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
const lazyCompactMode = {};
|
const lazyCompactMode = {};
|
||||||
|
|
||||||
XPCOMUtils.defineLazyPreferenceGetter(
|
XPCOMUtils.defineLazyPreferenceGetter(
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
{
|
{
|
||||||
const { Downloads } = ChromeUtils.importESModule('resource://gre/modules/Downloads.sys.mjs');
|
const { Downloads } = ChromeUtils.importESModule('resource://gre/modules/Downloads.sys.mjs');
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
{
|
{
|
||||||
class ZenFolders {
|
class ZenFolders {
|
||||||
constructor() {
|
constructor() {
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
{
|
{
|
||||||
class ZenGlanceManager extends ZenDOMOperatedFeature {
|
class ZenGlanceManager extends ZenDOMOperatedFeature {
|
||||||
_animating = false;
|
_animating = false;
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
export class ZenGlanceChild extends JSWindowActorChild {
|
export class ZenGlanceChild extends JSWindowActorChild {
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
export class ZenGlanceParent extends JSWindowActorParent {
|
export class ZenGlanceParent extends JSWindowActorParent {
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
{
|
{
|
||||||
const lazy = {};
|
const lazy = {};
|
||||||
XPCOMUtils.defineLazyPreferenceGetter(
|
XPCOMUtils.defineLazyPreferenceGetter(
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
const kZenStylesheetThemeHeader = '/* Zen Themes - Generated by ZenThemesImporter.';
|
const kZenStylesheetThemeHeader = '/* Zen Themes - Generated by ZenThemesImporter.';
|
||||||
const kZenStylesheetThemeHeaderBody = `* DO NOT EDIT THIS FILE DIRECTLY!
|
const kZenStylesheetThemeHeaderBody = `* DO NOT EDIT THIS FILE DIRECTLY!
|
||||||
* Your changes will be overwritten.
|
* Your changes will be overwritten.
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
export class ZenThemeMarketplaceParent extends JSWindowActorParent {
|
export class ZenThemeMarketplaceParent extends JSWindowActorParent {
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
{
|
{
|
||||||
const lazy = {};
|
const lazy = {};
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
var ZenPinnedTabsStorage = {
|
var ZenPinnedTabsStorage = {
|
||||||
async init() {
|
async init() {
|
||||||
await this._ensureTable();
|
await this._ensureTable();
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
/*
|
||||||
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
*/
|
||||||
height: var(--zen-toolbar-height);
|
height: var(--zen-toolbar-height);
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
BROWSER_CHROME_MANIFESTS += [
|
BROWSER_CHROME_MANIFESTS += [
|
||||||
"compact_mode/browser.toml",
|
"compact_mode/browser.toml",
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
FINAL_LIBRARY = "xul"
|
FINAL_LIBRARY = "xul"
|
||||||
SOURCES += [
|
SOURCES += [
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
XPIDL_SOURCES += [
|
XPIDL_SOURCES += [
|
||||||
"nsIZenCommonUtils.idl",
|
"nsIZenCommonUtils.idl",
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
FINAL_LIBRARY = "xul"
|
FINAL_LIBRARY = "xul"
|
||||||
SOURCES += [
|
SOURCES += [
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
DIRS += [
|
DIRS += [
|
||||||
"common",
|
"common",
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
{
|
{
|
||||||
class ZenWorkspace extends MozXULElement {
|
class ZenWorkspace extends MozXULElement {
|
||||||
static get markup() {
|
static get markup() {
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
{
|
{
|
||||||
class ZenWorkspaceIcons extends MozXULElement {
|
class ZenWorkspaceIcons extends MozXULElement {
|
||||||
constructor() {
|
constructor() {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue