contents of zip
27
backend/additional_text.php
Executable file
@@ -0,0 +1,27 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Miscellaneous text
|
||||||
|
getDefaultTranslation('HTTP');
|
||||||
|
getDefaultTranslation('HTTPS');
|
||||||
|
getDefaultTranslation('Ledger Nano S');
|
||||||
|
getDefaultTranslation('Ledger Nano X');
|
||||||
|
getDefaultTranslation('Ledger Nano S Plus');
|
||||||
|
getDefaultTranslation('Ledger Stax');
|
||||||
|
getDefaultTranslation('Ledger Flex');
|
||||||
|
getDefaultTranslation('Trezor');
|
||||||
|
getDefaultTranslation('Trezor Model One');
|
||||||
|
getDefaultTranslation('Trezor Model T');
|
||||||
|
getDefaultTranslation('Trezor Safe 3');
|
||||||
|
getDefaultTranslation('Trezor Safe 5');
|
||||||
|
|
||||||
|
// Extension text
|
||||||
|
getDefaultTranslation('MWC Wallet');
|
||||||
|
getDefaultTranslation('A MimbleWimble Coin wallet.');
|
||||||
|
getDefaultTranslation('Open in New Tab');
|
||||||
|
getDefaultTranslation('Open in New Window');
|
||||||
|
getDefaultTranslation('MWC Wallet is an extension that allows you to manage your MimbleWimble Coin in your web browser.');
|
||||||
|
getDefaultTranslation('This extension injects an API into every website you visit making it possible for those websites to interact with MWC Wallet.');
|
||||||
|
getDefaultTranslation('Manage your MimbleWimble Coin');
|
||||||
|
getDefaultTranslation('Website API integration');
|
||||||
|
getDefaultTranslation('Hardware wallet support');
|
||||||
|
?>
|
77
backend/common.php
Executable file
@@ -0,0 +1,77 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Constants
|
||||||
|
|
||||||
|
// Version number
|
||||||
|
const VERSION_NUMBER = "2.6.0";
|
||||||
|
|
||||||
|
// Version release date
|
||||||
|
const VERSION_RELEASE_DATE = "20 Nov 2024 23:39:00 UTC";
|
||||||
|
|
||||||
|
// Version changes
|
||||||
|
const VERSION_CHANGES = [
|
||||||
|
"Fixed title and metadata not changing when language is changed.",
|
||||||
|
"Added support for Ledger Flex and Trezor Safe 5 hardware wallets.",
|
||||||
|
"Added notice to login screen to deter people from using potentially malicious clones of this service.",
|
||||||
|
"Fixed wallet ordering buttons not updating when a wallet is deleted."
|
||||||
|
];
|
||||||
|
|
||||||
|
// Maintenance start time
|
||||||
|
const MAINTENANCE_START_TIME = "01 Jan 1970 00:00:00 UTC";
|
||||||
|
|
||||||
|
// Copyright year
|
||||||
|
const COPYRIGHT_YEAR = 2022;
|
||||||
|
|
||||||
|
// Date year string
|
||||||
|
const DATE_YEAR_STRING = "Y";
|
||||||
|
|
||||||
|
// Grace accent HTML entity
|
||||||
|
const GRAVE_ACCENT_HTML_ENTITY = "`";
|
||||||
|
|
||||||
|
// Seconds in a minute
|
||||||
|
const SECONDS_IN_A_MINUTE = 60;
|
||||||
|
|
||||||
|
// Minutes in an hour
|
||||||
|
const MINUTES_IN_AN_HOUR = 60;
|
||||||
|
|
||||||
|
// Hours in a day
|
||||||
|
const HOURS_IN_A_DAY = 24;
|
||||||
|
|
||||||
|
|
||||||
|
// Supporting function implementation
|
||||||
|
|
||||||
|
// Encode string
|
||||||
|
function encodeString($string) {
|
||||||
|
|
||||||
|
// Return string with backticks, ampersands, double quotes, single quotes, greater than signs, and less than signs encoded as HTML
|
||||||
|
return preg_replace('/`/u', GRAVE_ACCENT_HTML_ENTITY, htmlspecialchars($string, ENT_QUOTES));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Escape string
|
||||||
|
function escapeString($string) {
|
||||||
|
|
||||||
|
// Return string with double quotes and back slashes escaped
|
||||||
|
return preg_replace('/(["\\\\])/u', "\\\\$1", $string);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sanitize attribute name
|
||||||
|
function sanitizeAttributeName($string) {
|
||||||
|
|
||||||
|
// Return string without spaces, equals, double quotes, single quotes, backticks, greater than signs, less than signs, and ampersands
|
||||||
|
return preg_replace('/[ ="\'`<>&]/u', "", $string);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get year
|
||||||
|
function getYear() {
|
||||||
|
|
||||||
|
// Return year
|
||||||
|
return intval(date(DATE_YEAR_STRING));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Starts with
|
||||||
|
function startsWith($haystack, $needle) {
|
||||||
|
|
||||||
|
// Search backwards starting from haystack length characters from the end
|
||||||
|
return $needle === "" || mb_strrpos($haystack, $needle, -mb_strlen($haystack)) !== FALSE;
|
||||||
|
}
|
||||||
|
?>
|
601
backend/language.php
Executable file
@@ -0,0 +1,601 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Constants
|
||||||
|
|
||||||
|
// Default language
|
||||||
|
const DEFAULT_LANGUAGE = "en-US";
|
||||||
|
|
||||||
|
// Default locale
|
||||||
|
const DEFAULT_LOCALE = "en_US.UTF-8";
|
||||||
|
|
||||||
|
// Single quote HTML entity
|
||||||
|
const SINGLE_QUOTE_HTML_ENTITY = "'";
|
||||||
|
|
||||||
|
// Ampersand HTML entity
|
||||||
|
const AMPERSAND_HTML_ENTITY = "&";
|
||||||
|
|
||||||
|
// Number format minimum fraction digits
|
||||||
|
const NUMBER_FORMAT_MINIMUM_FRACTION_DIGITS = 0;
|
||||||
|
|
||||||
|
// Number format maximum fraction digits
|
||||||
|
const NUMBER_FORMAT_MAXIMUM_FRACTION_DIGITS = 9;
|
||||||
|
|
||||||
|
// Number format use grouping
|
||||||
|
const NUMBER_FORMAT_USE_GROUPING = FALSE;
|
||||||
|
|
||||||
|
// Bitcoin currency name
|
||||||
|
const BITCOIN_CURRENCY_NAME = "BTC";
|
||||||
|
|
||||||
|
// Ethereum currency name
|
||||||
|
const ETHEREUM_CURRENCY_NAME = "ETH";
|
||||||
|
|
||||||
|
// Escape character
|
||||||
|
const ESCAPE_CHARACTER = "%";
|
||||||
|
|
||||||
|
// Placeholder pattern
|
||||||
|
const PLACEHOLDER_PATTERN = '/^' . ESCAPE_CHARACTER . '[1-9]\d*\$s$/u';
|
||||||
|
|
||||||
|
|
||||||
|
// Supporting function implementation
|
||||||
|
|
||||||
|
// Get available languages
|
||||||
|
function getAvailableLanguages() {
|
||||||
|
|
||||||
|
// Declare available languages
|
||||||
|
static $availableLanguages;
|
||||||
|
|
||||||
|
// Check if available languages doesn't exist
|
||||||
|
if(isset($availableLanguages) === FALSE) {
|
||||||
|
|
||||||
|
// Set available languages
|
||||||
|
$availableLanguages = [];
|
||||||
|
|
||||||
|
// Check if getting language files was successful
|
||||||
|
$languageFiles = scandir(__DIR__ . "/../languages");
|
||||||
|
if($languageFiles !== FALSE) {
|
||||||
|
|
||||||
|
// Go through all language files
|
||||||
|
foreach($languageFiles as $languageFile) {
|
||||||
|
|
||||||
|
// Check if language file is a file
|
||||||
|
$file = __DIR__ . "/../languages/" . $languageFile;
|
||||||
|
if(is_file($file) === TRUE)
|
||||||
|
|
||||||
|
// Include language file
|
||||||
|
require $file;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sort available languages by language name
|
||||||
|
uasort($availableLanguages, function($firstValue, $secondValue) {
|
||||||
|
|
||||||
|
return strcoll($firstValue["Constants"]["Language"], $secondValue["Constants"]["Language"]);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Return available languages
|
||||||
|
return $availableLanguages;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get language
|
||||||
|
function getLanguage() {
|
||||||
|
|
||||||
|
// Declare language
|
||||||
|
static $language;
|
||||||
|
|
||||||
|
// Check if language doesn't exist
|
||||||
|
if(isset($language) === FALSE) {
|
||||||
|
|
||||||
|
// Get locale language
|
||||||
|
$localeLanguage = (array_key_exists("HTTP_ACCEPT_LANGUAGE", $_SERVER) === TRUE && is_string($_SERVER["HTTP_ACCEPT_LANGUAGE"]) === TRUE && mb_strlen($_SERVER["HTTP_ACCEPT_LANGUAGE"]) !== 0) ? locale_accept_from_http($_SERVER["HTTP_ACCEPT_LANGUAGE"]) : FALSE;
|
||||||
|
|
||||||
|
// Check if local language is should be simplified Chinese
|
||||||
|
if($localeLanguage === "zh" && mb_strstr($_SERVER["HTTP_ACCEPT_LANGUAGE"], "zh-CN") !== FALSE) {
|
||||||
|
|
||||||
|
// Set local language to simplified Chinese
|
||||||
|
$localeLanguage = "zh_CN";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get language parameter
|
||||||
|
$languageParameter = (array_key_exists("Language", $_GET) === TRUE && is_string($_GET["Language"]) === TRUE && mb_strlen($_GET["Language"]) !== 0) ? $_GET["Language"] : FALSE;
|
||||||
|
|
||||||
|
// Get prefered languages
|
||||||
|
$preferedLanguages = array_unique(($languageParameter === FALSE) ? (($localeLanguage === FALSE) ? ((array_key_exists("__Host-Language", $_COOKIE) === FALSE || is_string($_COOKIE["__Host-Language"]) === FALSE || mb_strlen($_COOKIE["__Host-Language"]) === 0) ? [
|
||||||
|
|
||||||
|
// Default language
|
||||||
|
DEFAULT_LANGUAGE
|
||||||
|
|
||||||
|
] : [
|
||||||
|
|
||||||
|
// Choosen language
|
||||||
|
$_COOKIE["__Host-Language"],
|
||||||
|
|
||||||
|
// Default language
|
||||||
|
DEFAULT_LANGUAGE
|
||||||
|
|
||||||
|
]) : ((array_key_exists("__Host-Language", $_COOKIE) === FALSE || is_string($_COOKIE["__Host-Language"]) === FALSE || mb_strlen($_COOKIE["__Host-Language"]) === 0) ? [
|
||||||
|
|
||||||
|
// Locale language with variant
|
||||||
|
preg_replace('/_/u', "-", $localeLanguage),
|
||||||
|
|
||||||
|
// Locale language without variant
|
||||||
|
preg_split('/_/u', $localeLanguage)[0],
|
||||||
|
|
||||||
|
// Default language
|
||||||
|
DEFAULT_LANGUAGE
|
||||||
|
|
||||||
|
] : [
|
||||||
|
|
||||||
|
// Choosen language
|
||||||
|
$_COOKIE["__Host-Language"],
|
||||||
|
|
||||||
|
// Locale language with variant
|
||||||
|
preg_replace('/_/u', "-", $localeLanguage),
|
||||||
|
|
||||||
|
// Locale language without variant
|
||||||
|
preg_split('/_/u', $localeLanguage)[0],
|
||||||
|
|
||||||
|
// Default language
|
||||||
|
DEFAULT_LANGUAGE
|
||||||
|
|
||||||
|
])) : (($localeLanguage === FALSE) ? ((array_key_exists("__Host-Language", $_COOKIE) === FALSE || is_string($_COOKIE["__Host-Language"]) === FALSE || mb_strlen($_COOKIE["__Host-Language"]) === 0) ? [
|
||||||
|
|
||||||
|
// Language parameter
|
||||||
|
$languageParameter,
|
||||||
|
|
||||||
|
// Default language
|
||||||
|
DEFAULT_LANGUAGE
|
||||||
|
|
||||||
|
] : [
|
||||||
|
|
||||||
|
// Choosen language
|
||||||
|
$_COOKIE["__Host-Language"],
|
||||||
|
|
||||||
|
// Language parameter
|
||||||
|
$languageParameter,
|
||||||
|
|
||||||
|
// Default language
|
||||||
|
DEFAULT_LANGUAGE
|
||||||
|
|
||||||
|
]) : ((array_key_exists("__Host-Language", $_COOKIE) === FALSE || is_string($_COOKIE["__Host-Language"]) === FALSE || mb_strlen($_COOKIE["__Host-Language"]) === 0) ? [
|
||||||
|
|
||||||
|
// Language parameter
|
||||||
|
$languageParameter,
|
||||||
|
|
||||||
|
// Locale language with variant
|
||||||
|
preg_replace('/_/u', "-", $localeLanguage),
|
||||||
|
|
||||||
|
// Locale language without variant
|
||||||
|
preg_split('/_/u', $localeLanguage)[0],
|
||||||
|
|
||||||
|
// Default language
|
||||||
|
DEFAULT_LANGUAGE
|
||||||
|
|
||||||
|
] : [
|
||||||
|
|
||||||
|
// Choosen language
|
||||||
|
$_COOKIE["__Host-Language"],
|
||||||
|
|
||||||
|
// Language parameter
|
||||||
|
$languageParameter,
|
||||||
|
|
||||||
|
// Locale language with variant
|
||||||
|
preg_replace('/_/u', "-", $localeLanguage),
|
||||||
|
|
||||||
|
// Locale language without variant
|
||||||
|
preg_split('/_/u', $localeLanguage)[0],
|
||||||
|
|
||||||
|
// Default language
|
||||||
|
DEFAULT_LANGUAGE
|
||||||
|
])));
|
||||||
|
|
||||||
|
// Get available languages
|
||||||
|
$availableLanguages = getAvailableLanguages();
|
||||||
|
|
||||||
|
// Go through all prefered languages
|
||||||
|
foreach($preferedLanguages as $preferedLanguage) {
|
||||||
|
|
||||||
|
// Check if prefered language is available
|
||||||
|
if(array_key_exists($preferedLanguage, $availableLanguages) === TRUE) {
|
||||||
|
|
||||||
|
// Set language
|
||||||
|
$language = $preferedLanguage;
|
||||||
|
|
||||||
|
// Break
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if language doesn't exist
|
||||||
|
if(isset($language) === FALSE)
|
||||||
|
|
||||||
|
// Set language to default lnaguage
|
||||||
|
$language = DEFAULT_LANGUAGE;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Return language
|
||||||
|
return $language;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get language currencies
|
||||||
|
function getLanguageCurrencies() {
|
||||||
|
|
||||||
|
// Declare language currencies
|
||||||
|
static $languageCurrencies;
|
||||||
|
|
||||||
|
// Check if language currencies doesn't exist
|
||||||
|
if(isset($languageCurrencies) === FALSE) {
|
||||||
|
|
||||||
|
// Set language currencies
|
||||||
|
$languageCurrencies = [
|
||||||
|
|
||||||
|
// Bitcoin currency name
|
||||||
|
BITCOIN_CURRENCY_NAME,
|
||||||
|
|
||||||
|
// Ethereum currency name
|
||||||
|
ETHEREUM_CURRENCY_NAME
|
||||||
|
];
|
||||||
|
|
||||||
|
// Go through all available languages
|
||||||
|
foreach(getAvailableLanguages() as $languageIdentifier => $availableLanguage) {
|
||||||
|
|
||||||
|
// Check if available language has a currency constant
|
||||||
|
if(array_key_exists("Currency", $availableLanguage["Constants"]) === TRUE) {
|
||||||
|
|
||||||
|
// Get available language's currency
|
||||||
|
$currency = $availableLanguage["Constants"]["Currency"];
|
||||||
|
|
||||||
|
// Check if currency isn't already in the list of language currencies
|
||||||
|
if(in_array($currency, $languageCurrencies, TRUE) === FALSE)
|
||||||
|
|
||||||
|
// Append currency to list of language currencies
|
||||||
|
array_push($languageCurrencies, $currency);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sort language currencies by currency name
|
||||||
|
usort($languageCurrencies, function($firstValue, $secondValue) {
|
||||||
|
|
||||||
|
return strcoll($firstValue, $secondValue);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Return language currencies
|
||||||
|
return $languageCurrencies;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get translation contributors
|
||||||
|
function getTransactionContributors() {
|
||||||
|
|
||||||
|
// Declare translation contributors
|
||||||
|
static $translationContributors;
|
||||||
|
|
||||||
|
// Check if translation contributors doesn't exist
|
||||||
|
if(isset($translationContributors) === FALSE) {
|
||||||
|
|
||||||
|
// Set translation contributors
|
||||||
|
$translationContributors = [];
|
||||||
|
|
||||||
|
// Go through all available languages
|
||||||
|
foreach(getAvailableLanguages() as $languageIdentifier => $availableLanguage) {
|
||||||
|
|
||||||
|
// Check if available language has contributors
|
||||||
|
if(array_key_exists("Contributors", $availableLanguage) === TRUE) {
|
||||||
|
|
||||||
|
// Get available language's contributors
|
||||||
|
$contributors = $availableLanguage["Contributors"];
|
||||||
|
|
||||||
|
// Go through all contributors
|
||||||
|
foreach($contributors as $contributor => $link) {
|
||||||
|
|
||||||
|
// Check if contributor doesn't have a link
|
||||||
|
if(is_int($contributor) === True) {
|
||||||
|
|
||||||
|
// Check if contributor isn't already in the list of translation contributors
|
||||||
|
if(in_array($link, $translationContributors, TRUE) === FALSE)
|
||||||
|
|
||||||
|
// Append contributor to list of translation contributors
|
||||||
|
array_push($translationContributors, $link);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Otherwise
|
||||||
|
else {
|
||||||
|
|
||||||
|
// Check if contributor isn't already in the list of translation contributors
|
||||||
|
if(in_array($contributor, $translationContributors, TRUE) === FALSE)
|
||||||
|
|
||||||
|
// Append contributor to list of translation contributors
|
||||||
|
$translationContributors[$link] = $contributor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sort translation contributors by contributor name
|
||||||
|
uasort($translationContributors, function($firstValue, $secondValue) {
|
||||||
|
|
||||||
|
return strcoll($firstValue, $secondValue);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Return translation contributors
|
||||||
|
return $translationContributors;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get translated type value
|
||||||
|
function getTranslatedTypeValue($type, $value) {
|
||||||
|
|
||||||
|
// Get language
|
||||||
|
$language = getLanguage();
|
||||||
|
|
||||||
|
// Check if type is text and value is a standalone placeholder
|
||||||
|
if($type === "Text" && preg_match(PLACEHOLDER_PATTERN, $value) === 1) {
|
||||||
|
|
||||||
|
// Return value and the language used
|
||||||
|
return [
|
||||||
|
|
||||||
|
// Result
|
||||||
|
"Result" => $value,
|
||||||
|
|
||||||
|
// Language
|
||||||
|
"Language" => $language
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Otherwise
|
||||||
|
else {
|
||||||
|
|
||||||
|
// Get available languages
|
||||||
|
$availableLanguages = getAvailableLanguages();
|
||||||
|
|
||||||
|
// Loop until a result is returned
|
||||||
|
while(TRUE) {
|
||||||
|
|
||||||
|
// Check if language is available
|
||||||
|
if(array_key_exists($language, $availableLanguages) === TRUE) {
|
||||||
|
|
||||||
|
// Check if specified type exist for the language and the specified value exists
|
||||||
|
if(array_key_exists($type, $availableLanguages[$language]) === TRUE && array_key_exists($value, $availableLanguages[$language][$type]) === TRUE)
|
||||||
|
|
||||||
|
// Return value for the language and the language used
|
||||||
|
return [
|
||||||
|
|
||||||
|
// Result
|
||||||
|
"Result" => $availableLanguages[$language][$type][$value],
|
||||||
|
|
||||||
|
// Language
|
||||||
|
"Language" => $language
|
||||||
|
];
|
||||||
|
|
||||||
|
// Otherwise check if language provided a fallback language
|
||||||
|
else if($language !== DEFAULT_LANGUAGE && array_key_exists("Constants", $availableLanguages[$language]) === TRUE && array_key_exists("Fallback", $availableLanguages[$language]["Constants"]) === TRUE)
|
||||||
|
|
||||||
|
// Set language to the language's fallback language
|
||||||
|
$language = $availableLanguages[$language]["Constants"]["Fallback"];
|
||||||
|
|
||||||
|
// Otherwise check if the language is not the default language
|
||||||
|
else if($language !== DEFAULT_LANGUAGE)
|
||||||
|
|
||||||
|
// Set language to default language
|
||||||
|
$language = DEFAULT_LANGUAGE;
|
||||||
|
|
||||||
|
// Otherwise
|
||||||
|
else {
|
||||||
|
|
||||||
|
// Check if type is constants
|
||||||
|
if($type === "Constants") {
|
||||||
|
|
||||||
|
// Return empty string and the language used
|
||||||
|
return [
|
||||||
|
|
||||||
|
// Result
|
||||||
|
"Result" => "",
|
||||||
|
|
||||||
|
// Language
|
||||||
|
"Language" => $language
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Otherwise assume type is text
|
||||||
|
else {
|
||||||
|
|
||||||
|
// Return value and the language used
|
||||||
|
return [
|
||||||
|
|
||||||
|
// Result
|
||||||
|
"Result" => $value,
|
||||||
|
|
||||||
|
// Language
|
||||||
|
"Language" => $language
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Otherwise check if the language is not the default language
|
||||||
|
else if($language !== DEFAULT_LANGUAGE)
|
||||||
|
|
||||||
|
// Set language to default language
|
||||||
|
$language = DEFAULT_LANGUAGE;
|
||||||
|
|
||||||
|
// Otherwise
|
||||||
|
else {
|
||||||
|
|
||||||
|
// Check if type is constants
|
||||||
|
if($type === "Constants") {
|
||||||
|
|
||||||
|
// Return empty string and the language used
|
||||||
|
return [
|
||||||
|
|
||||||
|
// Result
|
||||||
|
"Result" => "",
|
||||||
|
|
||||||
|
// Language
|
||||||
|
"Language" => $language
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Otherwise assume type is text
|
||||||
|
else {
|
||||||
|
|
||||||
|
// Return value and the language used
|
||||||
|
return [
|
||||||
|
|
||||||
|
// Result
|
||||||
|
"Result" => $value,
|
||||||
|
|
||||||
|
// Language
|
||||||
|
"Language" => $language
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get constant
|
||||||
|
function getConstant($constant) {
|
||||||
|
|
||||||
|
// Return translation for the specified constant
|
||||||
|
return getTranslatedTypeValue("Constants", $constant)["Result"];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get translation
|
||||||
|
function getTranslation($text, $arguments = []) {
|
||||||
|
|
||||||
|
// Get translated text
|
||||||
|
$translatedText = getTranslatedTypeValue("Text", $text);
|
||||||
|
|
||||||
|
// Go through all arguments
|
||||||
|
foreach($arguments as &$argument) {
|
||||||
|
|
||||||
|
// Check if argument is a function
|
||||||
|
if(is_callable($argument) === TRUE)
|
||||||
|
|
||||||
|
// Resolve the argument's value using the translated text's language
|
||||||
|
$argument = $argument($translatedText["Language"], $text);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get formatted translation for the specified text
|
||||||
|
$formattedTranslation = vsprintf($translatedText["Result"], $arguments);
|
||||||
|
|
||||||
|
// Check if formatting translation failed
|
||||||
|
if($formattedTranslation === FALSE)
|
||||||
|
|
||||||
|
// Return empty string
|
||||||
|
return "";
|
||||||
|
|
||||||
|
// Otherwise
|
||||||
|
else
|
||||||
|
|
||||||
|
// Return formatted translation
|
||||||
|
return $formattedTranslation;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get default translation
|
||||||
|
function getDefaultTranslation($text) {
|
||||||
|
|
||||||
|
// Return text
|
||||||
|
return $text;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get number translation
|
||||||
|
function getNumberTranslation($number) {
|
||||||
|
|
||||||
|
// Check if number isn't valid
|
||||||
|
if(is_string($number) === TRUE || is_numeric($number) === FALSE) {
|
||||||
|
|
||||||
|
// Return function
|
||||||
|
return function($language, $value) {
|
||||||
|
|
||||||
|
// Return empty string
|
||||||
|
return "";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// Otherwise
|
||||||
|
else {
|
||||||
|
|
||||||
|
// Return function
|
||||||
|
return function($language, $value) use ($number) {
|
||||||
|
|
||||||
|
// Get available languages
|
||||||
|
$availableLanguages = getAvailableLanguages();
|
||||||
|
|
||||||
|
// Loop until a result is returned
|
||||||
|
while(TRUE) {
|
||||||
|
|
||||||
|
// Check if language is available or value is a standalone placeholder
|
||||||
|
if(array_key_exists($language, $availableLanguages) === TRUE || preg_match(PLACEHOLDER_PATTERN, $value) === 1) {
|
||||||
|
|
||||||
|
// Set number formatter
|
||||||
|
$numberFormatter = new NumberFormatter($language, NumberFormatter::DECIMAL);
|
||||||
|
|
||||||
|
// Check if number formatter is valid and it can format using the provided language
|
||||||
|
if($numberFormatter !== FALSE && preg_replace('/_/u', "-", $numberFormatter->getLocale(Locale::VALID_LOCALE)) === $language) {
|
||||||
|
|
||||||
|
// Configure number formatter
|
||||||
|
$numberFormatter->setAttribute(NumberFormatter::MIN_FRACTION_DIGITS, NUMBER_FORMAT_MINIMUM_FRACTION_DIGITS);
|
||||||
|
$numberFormatter->setAttribute(NumberFormatter::MAX_FRACTION_DIGITS, NUMBER_FORMAT_MAXIMUM_FRACTION_DIGITS);
|
||||||
|
$numberFormatter->setAttribute(NumberFormatter::GROUPING_USED, NUMBER_FORMAT_USE_GROUPING);
|
||||||
|
$numberFormatter->setAttribute(NumberFormatter::ROUNDING_MODE, NumberFormatter::ROUND_DOWN);
|
||||||
|
|
||||||
|
// Return number formatted as the language
|
||||||
|
return $numberFormatter->format($number);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Otherwise check if language provided a fallback language
|
||||||
|
else if($language !== DEFAULT_LANGUAGE && array_key_exists("Constants", $availableLanguages[$language]) === TRUE && array_key_exists("Fallback", $availableLanguages[$language]["Constants"]) === TRUE)
|
||||||
|
|
||||||
|
// Set language to the language's fallback language
|
||||||
|
$language = $availableLanguages[$language]["Constants"]["Fallback"];
|
||||||
|
|
||||||
|
// Otherwise check if the language is not the default language
|
||||||
|
else if($language !== DEFAULT_LANGUAGE)
|
||||||
|
|
||||||
|
// Set language to default language
|
||||||
|
$language = DEFAULT_LANGUAGE;
|
||||||
|
|
||||||
|
// Otherwise
|
||||||
|
else
|
||||||
|
|
||||||
|
// Return number
|
||||||
|
return $number;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Otherwise check if the language is not the default language
|
||||||
|
else if($language !== DEFAULT_LANGUAGE)
|
||||||
|
|
||||||
|
// Set language to default language
|
||||||
|
$language = DEFAULT_LANGUAGE;
|
||||||
|
|
||||||
|
// Otherwise
|
||||||
|
else
|
||||||
|
|
||||||
|
// Return number
|
||||||
|
return $number;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Escape text
|
||||||
|
function escapeText($text) {
|
||||||
|
|
||||||
|
// Return text with all escape characters escaped
|
||||||
|
return preg_replace('/' . ESCAPE_CHARACTER . '/u', ESCAPE_CHARACTER . ESCAPE_CHARACTER, $text);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Escape Data
|
||||||
|
function escapeData($array) {
|
||||||
|
|
||||||
|
// Return array in JSON encoding with ampersands and single quotes encoded as HTML
|
||||||
|
return preg_replace('/\'/u', SINGLE_QUOTE_HTML_ENTITY, preg_replace('/&/u', AMPERSAND_HTML_ENTITY, json_encode($array)));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Main function
|
||||||
|
|
||||||
|
// Set locale
|
||||||
|
setlocale(LC_ALL, DEFAULT_LOCALE);
|
||||||
|
?>
|
1805
backend/resources.php
Executable file
28
browserconfig.xml
Executable file
@@ -0,0 +1,28 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Included files
|
||||||
|
require_once __DIR__ . "/backend/common.php";
|
||||||
|
require_once __DIR__ . "/backend/resources.php";
|
||||||
|
|
||||||
|
|
||||||
|
// Main function
|
||||||
|
|
||||||
|
// Set content type header
|
||||||
|
header("Content-Type: text/xml; charset=" . mb_internal_encoding());
|
||||||
|
|
||||||
|
?><?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<browserconfig>
|
||||||
|
<msapplication>
|
||||||
|
<tile><?php
|
||||||
|
|
||||||
|
// Go through all tile images
|
||||||
|
foreach(TILE_IMAGES as $tileImage)
|
||||||
|
|
||||||
|
// Display tile image
|
||||||
|
echo PHP_EOL . "\t\t\t<" . sanitizeAttributeName(mb_strtolower($tileImage[TILE_IMAGE_PARTS["Ratio"]])) . sanitizeAttributeName($tileImage[TILE_IMAGE_PARTS["X Dimension"]]) . "x" . sanitizeAttributeName($tileImage[TILE_IMAGE_PARTS["Y Dimension"]]) . "logo src=\"" . escapeString(getResource($tileImage[TILE_IMAGE_PARTS["File Path"]])) . "\"/>";
|
||||||
|
?>
|
||||||
|
|
||||||
|
<TileColor><?= encodeString(BACKGROUND_COLOR); ?></TileColor>
|
||||||
|
</tile>
|
||||||
|
</msapplication>
|
||||||
|
</browserconfig>
|
0
connection_test.html
Executable file
36
errors/401.html
Executable file
@@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Included files
|
||||||
|
require_once __DIR__ . "/../backend/common.php";
|
||||||
|
require_once __DIR__ . "/../backend/language.php";
|
||||||
|
|
||||||
|
|
||||||
|
// Main function
|
||||||
|
|
||||||
|
// Get path
|
||||||
|
$path = $_SERVER["REQUEST_URI"];
|
||||||
|
|
||||||
|
// Check if accessing 401 error page directly
|
||||||
|
if($path === "/errors/401.html" || startsWith($path, "/errors/401.html?") === TRUE) {
|
||||||
|
|
||||||
|
// Require 404 error page
|
||||||
|
require __DIR__ . "/404.html";
|
||||||
|
|
||||||
|
// Exit
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set error header
|
||||||
|
header($_SERVER["SERVER_PROTOCOL"] . " 401 Unauthorized");
|
||||||
|
header("Status: 401 Unauthorized");
|
||||||
|
|
||||||
|
// Set title, title argument, error, error argument, and message
|
||||||
|
$title = getDefaultTranslation('MWC Wallet — Error %1$s');
|
||||||
|
$titleArgument = 401;
|
||||||
|
$error = getDefaultTranslation('Error %1$s');
|
||||||
|
$errorArgument = 401;
|
||||||
|
$message = getDefaultTranslation('Unauthorized');
|
||||||
|
|
||||||
|
// Require template
|
||||||
|
require __DIR__ . "/template.php";
|
||||||
|
?>
|
36
errors/403.html
Executable file
@@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Included files
|
||||||
|
require_once __DIR__ . "/../backend/common.php";
|
||||||
|
require_once __DIR__ . "/../backend/language.php";
|
||||||
|
|
||||||
|
|
||||||
|
// Main function
|
||||||
|
|
||||||
|
// Get path
|
||||||
|
$path = $_SERVER["REQUEST_URI"];
|
||||||
|
|
||||||
|
// Check if accessing 403 error page directly
|
||||||
|
if($path === "/errors/403.html" || startsWith($path, "/errors/403.html?") === TRUE) {
|
||||||
|
|
||||||
|
// Require 404 error page
|
||||||
|
require __DIR__ . "/404.html";
|
||||||
|
|
||||||
|
// Exit
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set error header
|
||||||
|
header($_SERVER["SERVER_PROTOCOL"] . " 403 Forbidden");
|
||||||
|
header("Status: 403 Forbidden");
|
||||||
|
|
||||||
|
// Set title, title argument, error, error argument, and message
|
||||||
|
$title = getDefaultTranslation('MWC Wallet — Error %1$s');
|
||||||
|
$titleArgument = 403;
|
||||||
|
$error = getDefaultTranslation('Error %1$s');
|
||||||
|
$errorArgument = 403;
|
||||||
|
$message = getDefaultTranslation('Forbidden');
|
||||||
|
|
||||||
|
// Require template
|
||||||
|
require __DIR__ . "/template.php";
|
||||||
|
?>
|
23
errors/404.html
Executable file
@@ -0,0 +1,23 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Included files
|
||||||
|
require_once __DIR__ . "/../backend/common.php";
|
||||||
|
require_once __DIR__ . "/../backend/language.php";
|
||||||
|
|
||||||
|
|
||||||
|
// Main function
|
||||||
|
|
||||||
|
// Set error header
|
||||||
|
header($_SERVER["SERVER_PROTOCOL"] . " 404 Not Found");
|
||||||
|
header("Status: 404 Not Found");
|
||||||
|
|
||||||
|
// Set title, title argument, error, error argument, and message
|
||||||
|
$title = getDefaultTranslation('MWC Wallet — Error %1$s');
|
||||||
|
$titleArgument = 404;
|
||||||
|
$error = getDefaultTranslation('Error %1$s');
|
||||||
|
$errorArgument = 404;
|
||||||
|
$message = getDefaultTranslation('Not Found');
|
||||||
|
|
||||||
|
// Require template
|
||||||
|
require __DIR__ . "/template.php";
|
||||||
|
?>
|
36
errors/500.html
Executable file
@@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Included files
|
||||||
|
require_once __DIR__ . "/../backend/common.php";
|
||||||
|
require_once __DIR__ . "/../backend/language.php";
|
||||||
|
|
||||||
|
|
||||||
|
// Main function
|
||||||
|
|
||||||
|
// Get path
|
||||||
|
$path = $_SERVER["REQUEST_URI"];
|
||||||
|
|
||||||
|
// Check if accessing 500 error page directly
|
||||||
|
if($path === "/errors/500.html" || startsWith($path, "/errors/500.html?") === TRUE) {
|
||||||
|
|
||||||
|
// Require 404 error page
|
||||||
|
require __DIR__ . "/404.html";
|
||||||
|
|
||||||
|
// Exit
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set error header
|
||||||
|
header($_SERVER["SERVER_PROTOCOL"] . " 500 Internal Server Error");
|
||||||
|
header("Status: 500 Internal Server Error");
|
||||||
|
|
||||||
|
// Set title, title argument, error, error argument, and message
|
||||||
|
$title = getDefaultTranslation('MWC Wallet — Error %1$s');
|
||||||
|
$titleArgument = 500;
|
||||||
|
$error = getDefaultTranslation('Error %1$s');
|
||||||
|
$errorArgument = 500;
|
||||||
|
$message = getDefaultTranslation('Internal Server Error');
|
||||||
|
|
||||||
|
// Require template
|
||||||
|
require __DIR__ . "/template.php";
|
||||||
|
?>
|
36
errors/502.html
Executable file
@@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Included files
|
||||||
|
require_once __DIR__ . "/../backend/common.php";
|
||||||
|
require_once __DIR__ . "/../backend/language.php";
|
||||||
|
|
||||||
|
|
||||||
|
// Main function
|
||||||
|
|
||||||
|
// Get path
|
||||||
|
$path = $_SERVER["REQUEST_URI"];
|
||||||
|
|
||||||
|
// Check if accessing 502 error page directly
|
||||||
|
if($path === "/errors/502.html" || startsWith($path, "/errors/502.html?") === TRUE) {
|
||||||
|
|
||||||
|
// Require 404 error page
|
||||||
|
require __DIR__ . "/404.html";
|
||||||
|
|
||||||
|
// Exit
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set error header
|
||||||
|
header($_SERVER["SERVER_PROTOCOL"] . " 502 Bad Gateway");
|
||||||
|
header("Status: 502 Bad Gateway");
|
||||||
|
|
||||||
|
// Set title, title argument, error, error argument, and message
|
||||||
|
$title = getDefaultTranslation('MWC Wallet — Error %1$s');
|
||||||
|
$titleArgument = 502;
|
||||||
|
$error = getDefaultTranslation('Error %1$s');
|
||||||
|
$errorArgument = 502;
|
||||||
|
$message = getDefaultTranslation('Bad Gateway');
|
||||||
|
|
||||||
|
// Require template
|
||||||
|
require __DIR__ . "/template.php";
|
||||||
|
?>
|
90
errors/503.html
Executable file
@@ -0,0 +1,90 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Included files
|
||||||
|
require_once __DIR__ . "/../backend/common.php";
|
||||||
|
require_once __DIR__ . "/../backend/language.php";
|
||||||
|
|
||||||
|
|
||||||
|
// Constants
|
||||||
|
|
||||||
|
// Retry after seconds
|
||||||
|
const RETRY_AFTER_SECONDS = 10 * SECONDS_IN_A_MINUTE;
|
||||||
|
|
||||||
|
|
||||||
|
// Main function
|
||||||
|
|
||||||
|
// Get path
|
||||||
|
$path = $_SERVER["REQUEST_URI"];
|
||||||
|
|
||||||
|
// Check if referrer does exists
|
||||||
|
if(array_key_exists("HTTP_REFERER", $_SERVER) === TRUE && is_string($_SERVER["HTTP_REFERER"]) === TRUE) {
|
||||||
|
|
||||||
|
// Parse referrer as a URL
|
||||||
|
$url = parse_url($_SERVER["HTTP_REFERER"]);
|
||||||
|
|
||||||
|
// Check if referrer is invalid or from a different origin
|
||||||
|
if($url === FALSE || array_key_exists("host", $url) === FALSE || $url["host"] !== $_SERVER["SERVER_NAME"]) {
|
||||||
|
|
||||||
|
// Check if accessing 503 error page directly
|
||||||
|
if($path === "/errors/503.html" || startsWith($path, "/errors/503.html?") === TRUE) {
|
||||||
|
|
||||||
|
// Require 404 error page
|
||||||
|
require __DIR__ . "/404.html";
|
||||||
|
|
||||||
|
// Exit
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Otherwise
|
||||||
|
else {
|
||||||
|
|
||||||
|
// Set hide URL
|
||||||
|
$hideUrl = TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Otherwise
|
||||||
|
else {
|
||||||
|
|
||||||
|
// Check if accessing 503 error page directly
|
||||||
|
if($path === "/errors/503.html" || startsWith($path, "/errors/503.html?") === TRUE) {
|
||||||
|
|
||||||
|
// Require 404 error page
|
||||||
|
require __DIR__ . "/404.html";
|
||||||
|
|
||||||
|
// Exit
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if referrer is the service worker
|
||||||
|
if(array_key_exists("HTTP_REFERER", $_SERVER) === TRUE && $_SERVER["HTTP_REFERER"] === "http" . ((array_key_exists("HTTPS", $_SERVER) === TRUE && $_SERVER["HTTPS"] === "on") ? "s" : "") . "://" . $_SERVER["SERVER_NAME"] . "/scripts/service_worker.js") {
|
||||||
|
|
||||||
|
// Set referrer to the initial page
|
||||||
|
$_SERVER["HTTP_REFERER"] = "http" . ((array_key_exists("HTTPS", $_SERVER) === TRUE && $_SERVER["HTTPS"] === "on") ? "s" : "") . "://" . $_SERVER["SERVER_NAME"] . "/";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set error header
|
||||||
|
header($_SERVER["SERVER_PROTOCOL"] . " 503 Service Temporarily Unavailable");
|
||||||
|
header("Status: 503 Service Temporarily Unavailable");
|
||||||
|
|
||||||
|
// Set retry after header
|
||||||
|
header("Retry-After: " . gmdate("D, d M Y H:i:s T", time() + RETRY_AFTER_SECONDS));
|
||||||
|
|
||||||
|
// Set refresh header
|
||||||
|
header("Refresh: " . sprintf("%.0F", RETRY_AFTER_SECONDS) . "; URL=" . ((isset($hideUrl) === TRUE) ? $_SERVER["HTTP_REFERER"] : ("http" . ((array_key_exists("HTTPS", $_SERVER) === TRUE && $_SERVER["HTTPS"] === "on") ? "s" : "") . "://" . rawurlencode($_SERVER["SERVER_NAME"]) . $_SERVER["REQUEST_URI"])));
|
||||||
|
|
||||||
|
// Set title, title argument, error, error argument, and message
|
||||||
|
$title = getDefaultTranslation('MWC Wallet — Maintenance');
|
||||||
|
$titleArgument = "";
|
||||||
|
$error = getDefaultTranslation('Maintenance');
|
||||||
|
$errorArgument = "";
|
||||||
|
$message = getDefaultTranslation('This site is currently down for maintenance.');
|
||||||
|
|
||||||
|
// Set is maintenance error
|
||||||
|
$isMaintenanceError = TRUE;
|
||||||
|
|
||||||
|
// Require template
|
||||||
|
require __DIR__ . "/template.php";
|
||||||
|
?>
|
36
errors/504.html
Executable file
@@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Included files
|
||||||
|
require_once __DIR__ . "/../backend/common.php";
|
||||||
|
require_once __DIR__ . "/../backend/language.php";
|
||||||
|
|
||||||
|
|
||||||
|
// Main function
|
||||||
|
|
||||||
|
// Get path
|
||||||
|
$path = $_SERVER["REQUEST_URI"];
|
||||||
|
|
||||||
|
// Check if accessing 504 error page directly
|
||||||
|
if($path === "/errors/504.html" || startsWith($path, "/errors/504.html?") === TRUE) {
|
||||||
|
|
||||||
|
// Require 404 error page
|
||||||
|
require __DIR__ . "/404.html";
|
||||||
|
|
||||||
|
// Exit
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set error header
|
||||||
|
header($_SERVER["SERVER_PROTOCOL"] . " 504 Gateway Timeout");
|
||||||
|
header("Status: 504 Gateway Timeout");
|
||||||
|
|
||||||
|
// Set title, title argument, error, error argument, and message
|
||||||
|
$title = getDefaultTranslation('MWC Wallet — Error %1$s');
|
||||||
|
$titleArgument = 504;
|
||||||
|
$error = getDefaultTranslation('Error %1$s');
|
||||||
|
$errorArgument = 504;
|
||||||
|
$message = getDefaultTranslation('Gateway Timeout');
|
||||||
|
|
||||||
|
// Require template
|
||||||
|
require __DIR__ . "/template.php";
|
||||||
|
?>
|
64
errors/error.html
Executable file
@@ -0,0 +1,64 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Included files
|
||||||
|
require_once __DIR__ . "/../backend/common.php";
|
||||||
|
require_once __DIR__ . "/../backend/language.php";
|
||||||
|
|
||||||
|
|
||||||
|
// Constants
|
||||||
|
|
||||||
|
// Seconds before refresh
|
||||||
|
const SECONDS_BEFORE_REFRESH = 5;
|
||||||
|
|
||||||
|
// Check if referrer doesn't exist
|
||||||
|
if(array_key_exists("HTTP_REFERER", $_SERVER) === FALSE || is_string($_SERVER["HTTP_REFERER"]) === FALSE) {
|
||||||
|
|
||||||
|
// Require 404 error page
|
||||||
|
require __DIR__ . "/404.html";
|
||||||
|
|
||||||
|
// Exit
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Main function
|
||||||
|
|
||||||
|
// Parse referrer as a URL
|
||||||
|
$url = parse_url($_SERVER["HTTP_REFERER"]);
|
||||||
|
|
||||||
|
// Check if referrer is invalid or from a different origin
|
||||||
|
if($url === FALSE || array_key_exists("host", $url) === FALSE || $url["host"] !== $_SERVER["SERVER_NAME"]) {
|
||||||
|
|
||||||
|
// Require 404 error page
|
||||||
|
require __DIR__ . "/404.html";
|
||||||
|
|
||||||
|
// Exit
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if referrer is the service worker
|
||||||
|
if($_SERVER["HTTP_REFERER"] === "http" . ((array_key_exists("HTTPS", $_SERVER) === TRUE && $_SERVER["HTTPS"] === "on") ? "s" : "") . "://" . $_SERVER["SERVER_NAME"] . "/scripts/service_worker.js") {
|
||||||
|
|
||||||
|
// Set referrer to the initial page
|
||||||
|
$_SERVER["HTTP_REFERER"] = "http" . ((array_key_exists("HTTPS", $_SERVER) === TRUE && $_SERVER["HTTPS"] === "on") ? "s" : "") . "://" . $_SERVER["SERVER_NAME"] . "/";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set refresh header
|
||||||
|
header("Refresh: " . sprintf("%.0F", SECONDS_BEFORE_REFRESH) . "; URL=" . $_SERVER["HTTP_REFERER"]);
|
||||||
|
|
||||||
|
// Set title, title argument, error, error argument, and message
|
||||||
|
$title = getDefaultTranslation('MWC Wallet — Error');
|
||||||
|
$titleArgument = "";
|
||||||
|
$error = getDefaultTranslation('Error');
|
||||||
|
$errorArgument = "";
|
||||||
|
$message = getDefaultTranslation('An error has occurred. This site will automatically reload in a few seconds.');
|
||||||
|
|
||||||
|
// Set hide URL
|
||||||
|
$hideUrl = TRUE;
|
||||||
|
|
||||||
|
// Set is generic error
|
||||||
|
$isGenericError = TRUE;
|
||||||
|
|
||||||
|
// Require template
|
||||||
|
require __DIR__ . "/template.php";
|
||||||
|
?>
|
0
errors/proxy_error_cors_disabled.html
Executable file
0
errors/proxy_error_cors_enabled.html
Executable file
1493
errors/template.php
Executable file
BIN
favicon.ico
Executable file
After Width: | Height: | Size: 40 KiB |
92
fonts/btc/BTC license.txt
Executable file
@@ -0,0 +1,92 @@
|
|||||||
|
This Font Software is licensed under the SIL Open Font License,
|
||||||
|
Version 1.1.
|
||||||
|
|
||||||
|
This license is copied below, and is also available with a FAQ at:
|
||||||
|
http://scripts.sil.org/OFL
|
||||||
|
|
||||||
|
-----------------------------------------------------------
|
||||||
|
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||||
|
-----------------------------------------------------------
|
||||||
|
|
||||||
|
PREAMBLE
|
||||||
|
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||||
|
development of collaborative font projects, to support the font
|
||||||
|
creation efforts of academic and linguistic communities, and to
|
||||||
|
provide a free and open framework in which fonts may be shared and
|
||||||
|
improved in partnership with others.
|
||||||
|
|
||||||
|
The OFL allows the licensed fonts to be used, studied, modified and
|
||||||
|
redistributed freely as long as they are not sold by themselves. The
|
||||||
|
fonts, including any derivative works, can be bundled, embedded,
|
||||||
|
redistributed and/or sold with any software provided that any reserved
|
||||||
|
names are not used by derivative works. The fonts and derivatives,
|
||||||
|
however, cannot be released under any other type of license. The
|
||||||
|
requirement for fonts to remain under this license does not apply to
|
||||||
|
any document created using the fonts or their derivatives.
|
||||||
|
|
||||||
|
DEFINITIONS
|
||||||
|
"Font Software" refers to the set of files released by the Copyright
|
||||||
|
Holder(s) under this license and clearly marked as such. This may
|
||||||
|
include source files, build scripts and documentation.
|
||||||
|
|
||||||
|
"Reserved Font Name" refers to any names specified as such after the
|
||||||
|
copyright statement(s).
|
||||||
|
|
||||||
|
"Original Version" refers to the collection of Font Software
|
||||||
|
components as distributed by the Copyright Holder(s).
|
||||||
|
|
||||||
|
"Modified Version" refers to any derivative made by adding to,
|
||||||
|
deleting, or substituting -- in part or in whole -- any of the
|
||||||
|
components of the Original Version, by changing formats or by porting
|
||||||
|
the Font Software to a new environment.
|
||||||
|
|
||||||
|
"Author" refers to any designer, engineer, programmer, technical
|
||||||
|
writer or other person who contributed to the Font Software.
|
||||||
|
|
||||||
|
PERMISSION & CONDITIONS
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of the Font Software, to use, study, copy, merge, embed,
|
||||||
|
modify, redistribute, and sell modified and unmodified copies of the
|
||||||
|
Font Software, subject to the following conditions:
|
||||||
|
|
||||||
|
1) Neither the Font Software nor any of its individual components, in
|
||||||
|
Original or Modified Versions, may be sold by itself.
|
||||||
|
|
||||||
|
2) Original or Modified Versions of the Font Software may be bundled,
|
||||||
|
redistributed and/or sold with any software, provided that each copy
|
||||||
|
contains the above copyright notice and this license. These can be
|
||||||
|
included either as stand-alone text files, human-readable headers or
|
||||||
|
in the appropriate machine-readable metadata fields within text or
|
||||||
|
binary files as long as those fields can be easily viewed by the user.
|
||||||
|
|
||||||
|
3) No Modified Version of the Font Software may use the Reserved Font
|
||||||
|
Name(s) unless explicit written permission is granted by the
|
||||||
|
corresponding Copyright Holder. This restriction only applies to the
|
||||||
|
primary font name as presented to the users.
|
||||||
|
|
||||||
|
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||||
|
Software shall not be used to promote, endorse or advertise any
|
||||||
|
Modified Version, except to acknowledge the contribution(s) of the
|
||||||
|
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||||
|
permission.
|
||||||
|
|
||||||
|
5) The Font Software, modified or unmodified, in part or in whole,
|
||||||
|
must be distributed entirely under this license, and must not be
|
||||||
|
distributed under any other license. The requirement for fonts to
|
||||||
|
remain under this license does not apply to any document created using
|
||||||
|
the Font Software.
|
||||||
|
|
||||||
|
TERMINATION
|
||||||
|
This license becomes null and void if any of the above conditions are
|
||||||
|
not met.
|
||||||
|
|
||||||
|
DISCLAIMER
|
||||||
|
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||||
|
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||||
|
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||||
|
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||||
|
OTHER DEALINGS IN THE FONT SOFTWARE.
|
22
fonts/btc/btc.css
Executable file
@@ -0,0 +1,22 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Included files
|
||||||
|
require_once __DIR__ . "/../../backend/common.php";
|
||||||
|
require_once __DIR__ . "/../../backend/resources.php";
|
||||||
|
|
||||||
|
|
||||||
|
// Main function
|
||||||
|
|
||||||
|
// Set content type header
|
||||||
|
header("Content-Type: text/css; charset=" . mb_internal_encoding());
|
||||||
|
|
||||||
|
?>@charset "UTF-8";
|
||||||
|
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "BTC";
|
||||||
|
src: url("../.<?= escapeString(getResource("./fonts/btc/btc.woff2")); ?>") format("woff2"), url("../.<?= escapeString(getResource("./fonts/btc/btc.woff")); ?>") format("woff");
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: block;
|
||||||
|
}
|
BIN
fonts/btc/btc.woff
Executable file
BIN
fonts/btc/btc.woff2
Executable file
22
fonts/epic/epic.css
Executable file
@@ -0,0 +1,22 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Included files
|
||||||
|
require_once __DIR__ . "/../../backend/common.php";
|
||||||
|
require_once __DIR__ . "/../../backend/resources.php";
|
||||||
|
|
||||||
|
|
||||||
|
// Main function
|
||||||
|
|
||||||
|
// Set content type header
|
||||||
|
header("Content-Type: text/css; charset=" . mb_internal_encoding());
|
||||||
|
|
||||||
|
?>@charset "UTF-8";
|
||||||
|
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "EPIC";
|
||||||
|
src: url("../.<?= escapeString(getResource("./fonts/epic/epic.woff2")); ?>") format("woff2"), url("../.<?= escapeString(getResource("./fonts/epic/epic.woff")); ?>") format("woff");
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: block;
|
||||||
|
}
|
BIN
fonts/epic/epic.woff
Executable file
BIN
fonts/epic/epic.woff2
Executable file
92
fonts/eth/ETH license.txt
Executable file
@@ -0,0 +1,92 @@
|
|||||||
|
This Font Software is licensed under the SIL Open Font License,
|
||||||
|
Version 1.1.
|
||||||
|
|
||||||
|
This license is copied below, and is also available with a FAQ at:
|
||||||
|
http://scripts.sil.org/OFL
|
||||||
|
|
||||||
|
-----------------------------------------------------------
|
||||||
|
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||||
|
-----------------------------------------------------------
|
||||||
|
|
||||||
|
PREAMBLE
|
||||||
|
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||||
|
development of collaborative font projects, to support the font
|
||||||
|
creation efforts of academic and linguistic communities, and to
|
||||||
|
provide a free and open framework in which fonts may be shared and
|
||||||
|
improved in partnership with others.
|
||||||
|
|
||||||
|
The OFL allows the licensed fonts to be used, studied, modified and
|
||||||
|
redistributed freely as long as they are not sold by themselves. The
|
||||||
|
fonts, including any derivative works, can be bundled, embedded,
|
||||||
|
redistributed and/or sold with any software provided that any reserved
|
||||||
|
names are not used by derivative works. The fonts and derivatives,
|
||||||
|
however, cannot be released under any other type of license. The
|
||||||
|
requirement for fonts to remain under this license does not apply to
|
||||||
|
any document created using the fonts or their derivatives.
|
||||||
|
|
||||||
|
DEFINITIONS
|
||||||
|
"Font Software" refers to the set of files released by the Copyright
|
||||||
|
Holder(s) under this license and clearly marked as such. This may
|
||||||
|
include source files, build scripts and documentation.
|
||||||
|
|
||||||
|
"Reserved Font Name" refers to any names specified as such after the
|
||||||
|
copyright statement(s).
|
||||||
|
|
||||||
|
"Original Version" refers to the collection of Font Software
|
||||||
|
components as distributed by the Copyright Holder(s).
|
||||||
|
|
||||||
|
"Modified Version" refers to any derivative made by adding to,
|
||||||
|
deleting, or substituting -- in part or in whole -- any of the
|
||||||
|
components of the Original Version, by changing formats or by porting
|
||||||
|
the Font Software to a new environment.
|
||||||
|
|
||||||
|
"Author" refers to any designer, engineer, programmer, technical
|
||||||
|
writer or other person who contributed to the Font Software.
|
||||||
|
|
||||||
|
PERMISSION & CONDITIONS
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of the Font Software, to use, study, copy, merge, embed,
|
||||||
|
modify, redistribute, and sell modified and unmodified copies of the
|
||||||
|
Font Software, subject to the following conditions:
|
||||||
|
|
||||||
|
1) Neither the Font Software nor any of its individual components, in
|
||||||
|
Original or Modified Versions, may be sold by itself.
|
||||||
|
|
||||||
|
2) Original or Modified Versions of the Font Software may be bundled,
|
||||||
|
redistributed and/or sold with any software, provided that each copy
|
||||||
|
contains the above copyright notice and this license. These can be
|
||||||
|
included either as stand-alone text files, human-readable headers or
|
||||||
|
in the appropriate machine-readable metadata fields within text or
|
||||||
|
binary files as long as those fields can be easily viewed by the user.
|
||||||
|
|
||||||
|
3) No Modified Version of the Font Software may use the Reserved Font
|
||||||
|
Name(s) unless explicit written permission is granted by the
|
||||||
|
corresponding Copyright Holder. This restriction only applies to the
|
||||||
|
primary font name as presented to the users.
|
||||||
|
|
||||||
|
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||||
|
Software shall not be used to promote, endorse or advertise any
|
||||||
|
Modified Version, except to acknowledge the contribution(s) of the
|
||||||
|
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||||
|
permission.
|
||||||
|
|
||||||
|
5) The Font Software, modified or unmodified, in part or in whole,
|
||||||
|
must be distributed entirely under this license, and must not be
|
||||||
|
distributed under any other license. The requirement for fonts to
|
||||||
|
remain under this license does not apply to any document created using
|
||||||
|
the Font Software.
|
||||||
|
|
||||||
|
TERMINATION
|
||||||
|
This license becomes null and void if any of the above conditions are
|
||||||
|
not met.
|
||||||
|
|
||||||
|
DISCLAIMER
|
||||||
|
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||||
|
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||||
|
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||||
|
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||||
|
OTHER DEALINGS IN THE FONT SOFTWARE.
|
22
fonts/eth/eth.css
Executable file
@@ -0,0 +1,22 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Included files
|
||||||
|
require_once __DIR__ . "/../../backend/common.php";
|
||||||
|
require_once __DIR__ . "/../../backend/resources.php";
|
||||||
|
|
||||||
|
|
||||||
|
// Main function
|
||||||
|
|
||||||
|
// Set content type header
|
||||||
|
header("Content-Type: text/css; charset=" . mb_internal_encoding());
|
||||||
|
|
||||||
|
?>@charset "UTF-8";
|
||||||
|
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "ETH";
|
||||||
|
src: url("../.<?= escapeString(getResource("./fonts/eth/eth.woff2")); ?>") format("woff2"), url("../.<?= escapeString(getResource("./fonts/eth/eth.woff")); ?>") format("woff");
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: block;
|
||||||
|
}
|
BIN
fonts/eth/eth.woff
Executable file
BIN
fonts/eth/eth.woff2
Executable file
34
fonts/font_awesome/Font Awesome license.txt
Executable file
@@ -0,0 +1,34 @@
|
|||||||
|
Font Awesome Free License
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
Font Awesome Free is free, open source, and GPL friendly. You can use it for
|
||||||
|
commercial projects, open source projects, or really almost whatever you want.
|
||||||
|
Full Font Awesome Free license: https://fontawesome.com/license/free.
|
||||||
|
|
||||||
|
# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)
|
||||||
|
In the Font Awesome Free download, the CC BY 4.0 license applies to all icons
|
||||||
|
packaged as SVG and JS file types.
|
||||||
|
|
||||||
|
# Fonts: SIL OFL 1.1 License (https://scripts.sil.org/OFL)
|
||||||
|
In the Font Awesome Free download, the SIL OFL license applies to all icons
|
||||||
|
packaged as web and desktop font files.
|
||||||
|
|
||||||
|
# Code: MIT License (https://opensource.org/licenses/MIT)
|
||||||
|
In the Font Awesome Free download, the MIT license applies to all non-font and
|
||||||
|
non-icon files.
|
||||||
|
|
||||||
|
# Attribution
|
||||||
|
Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font
|
||||||
|
Awesome Free files already contain embedded comments with sufficient
|
||||||
|
attribution, so you shouldn't need to do anything additional when using these
|
||||||
|
files normally.
|
||||||
|
|
||||||
|
We've kept attribution comments terse, so we ask that you do not actively work
|
||||||
|
to remove them from files, especially code. They're a great way for folks to
|
||||||
|
learn about Font Awesome.
|
||||||
|
|
||||||
|
# Brand Icons
|
||||||
|
All brand icons are trademarks of their respective owners. The use of these
|
||||||
|
trademarks does not indicate endorsement of the trademark holder by Font
|
||||||
|
Awesome, nor vice versa. **Please do not use brand logos for any purpose except
|
||||||
|
to represent the company, product, or service to which they refer.**
|
BIN
fonts/font_awesome/font_awesome-5.15.4.woff
Executable file
BIN
fonts/font_awesome/font_awesome-5.15.4.woff2
Executable file
30
fonts/font_awesome/font_awesome.css
Executable file
@@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Included files
|
||||||
|
require_once __DIR__ . "/../../backend/common.php";
|
||||||
|
require_once __DIR__ . "/../../backend/resources.php";
|
||||||
|
|
||||||
|
|
||||||
|
// Main function
|
||||||
|
|
||||||
|
// Set content type header
|
||||||
|
header("Content-Type: text/css; charset=" . mb_internal_encoding());
|
||||||
|
|
||||||
|
?>@charset "UTF-8";
|
||||||
|
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Font Awesome";
|
||||||
|
src: url("../.<?= escapeString(getResource("./fonts/font_awesome/font_awesome-5.15.4.woff2")); ?>") format("woff2"), url("../.<?= escapeString(getResource("./fonts/font_awesome/font_awesome-5.15.4.woff")); ?>") format("woff");
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Font Awesome";
|
||||||
|
src: url("../.<?= escapeString(getResource("./fonts/font_awesome/font_awesome_solid-5.15.4.woff2")); ?>") format("woff2"), url("../.<?= escapeString(getResource("./fonts/font_awesome/font_awesome_solid-5.15.4.woff")); ?>") format("woff");
|
||||||
|
font-weight: bold;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: block;
|
||||||
|
}
|
BIN
fonts/font_awesome/font_awesome_solid-5.15.4.woff
Executable file
BIN
fonts/font_awesome/font_awesome_solid-5.15.4.woff2
Executable file
92
fonts/grin/GRIN license.txt
Executable file
@@ -0,0 +1,92 @@
|
|||||||
|
This Font Software is licensed under the SIL Open Font License,
|
||||||
|
Version 1.1.
|
||||||
|
|
||||||
|
This license is copied below, and is also available with a FAQ at:
|
||||||
|
http://scripts.sil.org/OFL
|
||||||
|
|
||||||
|
-----------------------------------------------------------
|
||||||
|
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||||
|
-----------------------------------------------------------
|
||||||
|
|
||||||
|
PREAMBLE
|
||||||
|
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||||
|
development of collaborative font projects, to support the font
|
||||||
|
creation efforts of academic and linguistic communities, and to
|
||||||
|
provide a free and open framework in which fonts may be shared and
|
||||||
|
improved in partnership with others.
|
||||||
|
|
||||||
|
The OFL allows the licensed fonts to be used, studied, modified and
|
||||||
|
redistributed freely as long as they are not sold by themselves. The
|
||||||
|
fonts, including any derivative works, can be bundled, embedded,
|
||||||
|
redistributed and/or sold with any software provided that any reserved
|
||||||
|
names are not used by derivative works. The fonts and derivatives,
|
||||||
|
however, cannot be released under any other type of license. The
|
||||||
|
requirement for fonts to remain under this license does not apply to
|
||||||
|
any document created using the fonts or their derivatives.
|
||||||
|
|
||||||
|
DEFINITIONS
|
||||||
|
"Font Software" refers to the set of files released by the Copyright
|
||||||
|
Holder(s) under this license and clearly marked as such. This may
|
||||||
|
include source files, build scripts and documentation.
|
||||||
|
|
||||||
|
"Reserved Font Name" refers to any names specified as such after the
|
||||||
|
copyright statement(s).
|
||||||
|
|
||||||
|
"Original Version" refers to the collection of Font Software
|
||||||
|
components as distributed by the Copyright Holder(s).
|
||||||
|
|
||||||
|
"Modified Version" refers to any derivative made by adding to,
|
||||||
|
deleting, or substituting -- in part or in whole -- any of the
|
||||||
|
components of the Original Version, by changing formats or by porting
|
||||||
|
the Font Software to a new environment.
|
||||||
|
|
||||||
|
"Author" refers to any designer, engineer, programmer, technical
|
||||||
|
writer or other person who contributed to the Font Software.
|
||||||
|
|
||||||
|
PERMISSION & CONDITIONS
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of the Font Software, to use, study, copy, merge, embed,
|
||||||
|
modify, redistribute, and sell modified and unmodified copies of the
|
||||||
|
Font Software, subject to the following conditions:
|
||||||
|
|
||||||
|
1) Neither the Font Software nor any of its individual components, in
|
||||||
|
Original or Modified Versions, may be sold by itself.
|
||||||
|
|
||||||
|
2) Original or Modified Versions of the Font Software may be bundled,
|
||||||
|
redistributed and/or sold with any software, provided that each copy
|
||||||
|
contains the above copyright notice and this license. These can be
|
||||||
|
included either as stand-alone text files, human-readable headers or
|
||||||
|
in the appropriate machine-readable metadata fields within text or
|
||||||
|
binary files as long as those fields can be easily viewed by the user.
|
||||||
|
|
||||||
|
3) No Modified Version of the Font Software may use the Reserved Font
|
||||||
|
Name(s) unless explicit written permission is granted by the
|
||||||
|
corresponding Copyright Holder. This restriction only applies to the
|
||||||
|
primary font name as presented to the users.
|
||||||
|
|
||||||
|
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||||
|
Software shall not be used to promote, endorse or advertise any
|
||||||
|
Modified Version, except to acknowledge the contribution(s) of the
|
||||||
|
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||||
|
permission.
|
||||||
|
|
||||||
|
5) The Font Software, modified or unmodified, in part or in whole,
|
||||||
|
must be distributed entirely under this license, and must not be
|
||||||
|
distributed under any other license. The requirement for fonts to
|
||||||
|
remain under this license does not apply to any document created using
|
||||||
|
the Font Software.
|
||||||
|
|
||||||
|
TERMINATION
|
||||||
|
This license becomes null and void if any of the above conditions are
|
||||||
|
not met.
|
||||||
|
|
||||||
|
DISCLAIMER
|
||||||
|
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||||
|
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||||
|
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||||
|
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||||
|
OTHER DEALINGS IN THE FONT SOFTWARE.
|
22
fonts/grin/grin.css
Executable file
@@ -0,0 +1,22 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Included files
|
||||||
|
require_once __DIR__ . "/../../backend/common.php";
|
||||||
|
require_once __DIR__ . "/../../backend/resources.php";
|
||||||
|
|
||||||
|
|
||||||
|
// Main function
|
||||||
|
|
||||||
|
// Set content type header
|
||||||
|
header("Content-Type: text/css; charset=" . mb_internal_encoding());
|
||||||
|
|
||||||
|
?>@charset "UTF-8";
|
||||||
|
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "GRIN";
|
||||||
|
src: url("../.<?= escapeString(getResource("./fonts/grin/grin.woff2")); ?>") format("woff2"), url("../.<?= escapeString(getResource("./fonts/grin/grin.woff")); ?>") format("woff");
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: block;
|
||||||
|
}
|
BIN
fonts/grin/grin.woff
Executable file
BIN
fonts/grin/grin.woff2
Executable file
22
fonts/mwc/mwc.css
Executable file
@@ -0,0 +1,22 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Included files
|
||||||
|
require_once __DIR__ . "/../../backend/common.php";
|
||||||
|
require_once __DIR__ . "/../../backend/resources.php";
|
||||||
|
|
||||||
|
|
||||||
|
// Main function
|
||||||
|
|
||||||
|
// Set content type header
|
||||||
|
header("Content-Type: text/css; charset=" . mb_internal_encoding());
|
||||||
|
|
||||||
|
?>@charset "UTF-8";
|
||||||
|
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "MWC";
|
||||||
|
src: url("../.<?= escapeString(getResource("./fonts/mwc/mwc.woff2")); ?>") format("woff2"), url("../.<?= escapeString(getResource("./fonts/mwc/mwc.woff")); ?>") format("woff");
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: block;
|
||||||
|
}
|
BIN
fonts/mwc/mwc.woff
Executable file
BIN
fonts/mwc/mwc.woff2
Executable file
202
fonts/open_sans/Open Sans license.txt
Executable file
@@ -0,0 +1,202 @@
|
|||||||
|
|
||||||
|
Apache License
|
||||||
|
Version 2.0, January 2004
|
||||||
|
http://www.apache.org/licenses/
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction,
|
||||||
|
and distribution as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by
|
||||||
|
the copyright owner that is granting the License.
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all
|
||||||
|
other entities that control, are controlled by, or are under common
|
||||||
|
control with that entity. For the purposes of this definition,
|
||||||
|
"control" means (i) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||||
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity
|
||||||
|
exercising permissions granted by this License.
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications,
|
||||||
|
including but not limited to software source code, documentation
|
||||||
|
source, and configuration files.
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical
|
||||||
|
transformation or translation of a Source form, including but
|
||||||
|
not limited to compiled object code, generated documentation,
|
||||||
|
and conversions to other media types.
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or
|
||||||
|
Object form, made available under the License, as indicated by a
|
||||||
|
copyright notice that is included in or attached to the work
|
||||||
|
(an example is provided in the Appendix below).
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object
|
||||||
|
form, that is based on (or derived from) the Work and for which the
|
||||||
|
editorial revisions, annotations, elaborations, or other modifications
|
||||||
|
represent, as a whole, an original work of authorship. For the purposes
|
||||||
|
of this License, Derivative Works shall not include works that remain
|
||||||
|
separable from, or merely link (or bind by name) to the interfaces of,
|
||||||
|
the Work and Derivative Works thereof.
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including
|
||||||
|
the original version of the Work and any modifications or additions
|
||||||
|
to that Work or Derivative Works thereof, that is intentionally
|
||||||
|
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||||
|
or by an individual or Legal Entity authorized to submit on behalf of
|
||||||
|
the copyright owner. For the purposes of this definition, "submitted"
|
||||||
|
means any form of electronic, verbal, or written communication sent
|
||||||
|
to the Licensor or its representatives, including but not limited to
|
||||||
|
communication on electronic mailing lists, source code control systems,
|
||||||
|
and issue tracking systems that are managed by, or on behalf of, the
|
||||||
|
Licensor for the purpose of discussing and improving the Work, but
|
||||||
|
excluding communication that is conspicuously marked or otherwise
|
||||||
|
designated in writing by the copyright owner as "Not a Contribution."
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||||
|
on behalf of whom a Contribution has been received by Licensor and
|
||||||
|
subsequently incorporated within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
copyright license to reproduce, prepare Derivative Works of,
|
||||||
|
publicly display, publicly perform, sublicense, and distribute the
|
||||||
|
Work and such Derivative Works in Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
(except as stated in this section) patent license to make, have made,
|
||||||
|
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||||
|
where such license applies only to those patent claims licensable
|
||||||
|
by such Contributor that are necessarily infringed by their
|
||||||
|
Contribution(s) alone or by combination of their Contribution(s)
|
||||||
|
with the Work to which such Contribution(s) was submitted. If You
|
||||||
|
institute patent litigation against any entity (including a
|
||||||
|
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||||
|
or a Contribution incorporated within the Work constitutes direct
|
||||||
|
or contributory patent infringement, then any patent licenses
|
||||||
|
granted to You under this License for that Work shall terminate
|
||||||
|
as of the date such litigation is filed.
|
||||||
|
|
||||||
|
4. Redistribution. You may reproduce and distribute copies of the
|
||||||
|
Work or Derivative Works thereof in any medium, with or without
|
||||||
|
modifications, and in Source or Object form, provided that You
|
||||||
|
meet the following conditions:
|
||||||
|
|
||||||
|
(a) You must give any other recipients of the Work or
|
||||||
|
Derivative Works a copy of this License; and
|
||||||
|
|
||||||
|
(b) You must cause any modified files to carry prominent notices
|
||||||
|
stating that You changed the files; and
|
||||||
|
|
||||||
|
(c) You must retain, in the Source form of any Derivative Works
|
||||||
|
that You distribute, all copyright, patent, trademark, and
|
||||||
|
attribution notices from the Source form of the Work,
|
||||||
|
excluding those notices that do not pertain to any part of
|
||||||
|
the Derivative Works; and
|
||||||
|
|
||||||
|
(d) If the Work includes a "NOTICE" text file as part of its
|
||||||
|
distribution, then any Derivative Works that You distribute must
|
||||||
|
include a readable copy of the attribution notices contained
|
||||||
|
within such NOTICE file, excluding those notices that do not
|
||||||
|
pertain to any part of the Derivative Works, in at least one
|
||||||
|
of the following places: within a NOTICE text file distributed
|
||||||
|
as part of the Derivative Works; within the Source form or
|
||||||
|
documentation, if provided along with the Derivative Works; or,
|
||||||
|
within a display generated by the Derivative Works, if and
|
||||||
|
wherever such third-party notices normally appear. The contents
|
||||||
|
of the NOTICE file are for informational purposes only and
|
||||||
|
do not modify the License. You may add Your own attribution
|
||||||
|
notices within Derivative Works that You distribute, alongside
|
||||||
|
or as an addendum to the NOTICE text from the Work, provided
|
||||||
|
that such additional attribution notices cannot be construed
|
||||||
|
as modifying the License.
|
||||||
|
|
||||||
|
You may add Your own copyright statement to Your modifications and
|
||||||
|
may provide additional or different license terms and conditions
|
||||||
|
for use, reproduction, or distribution of Your modifications, or
|
||||||
|
for any such Derivative Works as a whole, provided Your use,
|
||||||
|
reproduction, and distribution of the Work otherwise complies with
|
||||||
|
the conditions stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||||
|
any Contribution intentionally submitted for inclusion in the Work
|
||||||
|
by You to the Licensor shall be under the terms and conditions of
|
||||||
|
this License, without any additional terms or conditions.
|
||||||
|
Notwithstanding the above, nothing herein shall supersede or modify
|
||||||
|
the terms of any separate license agreement you may have executed
|
||||||
|
with Licensor regarding such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks. This License does not grant permission to use the trade
|
||||||
|
names, trademarks, service marks, or product names of the Licensor,
|
||||||
|
except as required for reasonable and customary use in describing the
|
||||||
|
origin of the Work and reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||||
|
agreed to in writing, Licensor provides the Work (and each
|
||||||
|
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied, including, without limitation, any warranties or conditions
|
||||||
|
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||||
|
appropriateness of using or redistributing the Work and assume any
|
||||||
|
risks associated with Your exercise of permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability. In no event and under no legal theory,
|
||||||
|
whether in tort (including negligence), contract, or otherwise,
|
||||||
|
unless required by applicable law (such as deliberate and grossly
|
||||||
|
negligent acts) or agreed to in writing, shall any Contributor be
|
||||||
|
liable to You for damages, including any direct, indirect, special,
|
||||||
|
incidental, or consequential damages of any character arising as a
|
||||||
|
result of this License or out of the use or inability to use the
|
||||||
|
Work (including but not limited to damages for loss of goodwill,
|
||||||
|
work stoppage, computer failure or malfunction, or any and all
|
||||||
|
other commercial damages or losses), even if such Contributor
|
||||||
|
has been advised of the possibility of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability. While redistributing
|
||||||
|
the Work or Derivative Works thereof, You may choose to offer,
|
||||||
|
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||||
|
or other liability obligations and/or rights consistent with this
|
||||||
|
License. However, in accepting such obligations, You may act only
|
||||||
|
on Your own behalf and on Your sole responsibility, not on behalf
|
||||||
|
of any other Contributor, and only if You agree to indemnify,
|
||||||
|
defend, and hold each Contributor harmless for any liability
|
||||||
|
incurred by, or claims asserted against, such Contributor by reason
|
||||||
|
of your accepting any such warranty or additional liability.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
APPENDIX: How to apply the Apache License to your work.
|
||||||
|
|
||||||
|
To apply the Apache License to your work, attach the following
|
||||||
|
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||||
|
replaced with your own identifying information. (Don't include
|
||||||
|
the brackets!) The text should be enclosed in the appropriate
|
||||||
|
comment syntax for the file format. We also recommend that a
|
||||||
|
file or class name and description of purpose be included on the
|
||||||
|
same "printed page" as the copyright notice for easier
|
||||||
|
identification within third-party archives.
|
||||||
|
|
||||||
|
Copyright [yyyy] [name of copyright owner]
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
BIN
fonts/open_sans/open_sans-1.10.woff
Executable file
BIN
fonts/open_sans/open_sans-1.10.woff2
Executable file
30
fonts/open_sans/open_sans.css
Executable file
@@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Included files
|
||||||
|
require_once __DIR__ . "/../../backend/common.php";
|
||||||
|
require_once __DIR__ . "/../../backend/resources.php";
|
||||||
|
|
||||||
|
|
||||||
|
// Main function
|
||||||
|
|
||||||
|
// Set content type header
|
||||||
|
header("Content-Type: text/css; charset=" . mb_internal_encoding());
|
||||||
|
|
||||||
|
?>@charset "UTF-8";
|
||||||
|
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Open Sans";
|
||||||
|
src: url("../.<?= escapeString(getResource("./fonts/open_sans/open_sans-1.10.woff2")); ?>") format("woff2"), url("../.<?= escapeString(getResource("./fonts/open_sans/open_sans-1.10.woff")); ?>") format("woff");
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Open Sans";
|
||||||
|
src: url("../.<?= escapeString(getResource("./fonts/open_sans/open_sans_semibold-1.10.woff2")); ?>") format("woff2"), url("../.<?= escapeString(getResource("./fonts/open_sans/open_sans_semibold-1.10.woff")); ?>") format("woff");
|
||||||
|
font-weight: bold;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
BIN
fonts/open_sans/open_sans_semibold-1.10.woff
Executable file
BIN
fonts/open_sans/open_sans_semibold-1.10.woff2
Executable file
BIN
images/app_icons/app_icon-114x114.png
Executable file
After Width: | Height: | Size: 2.0 KiB |
BIN
images/app_icons/app_icon-120x120.png
Executable file
After Width: | Height: | Size: 2.0 KiB |
BIN
images/app_icons/app_icon-128x128.png
Executable file
After Width: | Height: | Size: 2.3 KiB |
BIN
images/app_icons/app_icon-144x144.png
Executable file
After Width: | Height: | Size: 2.6 KiB |
BIN
images/app_icons/app_icon-152x152.png
Executable file
After Width: | Height: | Size: 2.7 KiB |
BIN
images/app_icons/app_icon-16x16.png
Executable file
After Width: | Height: | Size: 327 B |
BIN
images/app_icons/app_icon-180x180.png
Executable file
After Width: | Height: | Size: 3.4 KiB |
BIN
images/app_icons/app_icon-192x192-mobile.png
Executable file
After Width: | Height: | Size: 675 B |
BIN
images/app_icons/app_icon-192x192.png
Executable file
After Width: | Height: | Size: 3.7 KiB |
BIN
images/app_icons/app_icon-24x24.png
Executable file
After Width: | Height: | Size: 387 B |
BIN
images/app_icons/app_icon-256x256-mobile.png
Executable file
After Width: | Height: | Size: 894 B |
BIN
images/app_icons/app_icon-256x256.png
Executable file
After Width: | Height: | Size: 4.9 KiB |
BIN
images/app_icons/app_icon-32x32.png
Executable file
After Width: | Height: | Size: 517 B |
BIN
images/app_icons/app_icon-384x384.png
Executable file
After Width: | Height: | Size: 1.4 KiB |
BIN
images/app_icons/app_icon-48x48.png
Executable file
After Width: | Height: | Size: 730 B |
BIN
images/app_icons/app_icon-512x512.png
Executable file
After Width: | Height: | Size: 2.0 KiB |
BIN
images/app_icons/app_icon-64x64.png
Executable file
After Width: | Height: | Size: 895 B |
1
images/app_icons/app_icon.svg
Executable file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"><defs><linearGradient id="a" x1="1" y1="64" x2="127" y2="64" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#9e00e7"/><stop offset="1" stop-color="#3600c9"/></linearGradient></defs><g data-name="Layer 2"><g data-name="App Icon Small"><path style="fill:none" d="M0 0h128v128H0z"/><circle cx="64" cy="64" r="63" style="fill:url(#a)"/><g data-name="Layer 1"><g data-name="Layer 2"><path d="M64.15 60.21a4.51 4.51 0 0 1-3.15-1.4s-9.94-10-13.07-13.16-6.81 0-6.81 0l-14.86 15a4.78 4.78 0 0 0 0 6.8l14.86 15s3.68 3.13 6.81 0S61 69.2 61 69.2a4.46 4.46 0 0 1 3.14-1.4h-.29A4.46 4.46 0 0 1 67 69.2s9.94 10 13.07 13.16 6.81 0 6.81 0l14.86-15a4.8 4.8 0 0 0 0-6.8l-14.86-15s-3.68-3.13-6.81 0S67 58.81 67 58.81a4.51 4.51 0 0 1-3.14 1.4" style="fill:#fff" data-name="Layer 3"/></g></g></g></g></svg>
|
After Width: | Height: | Size: 859 B |
34
images/bluetooth license.txt
Executable file
@@ -0,0 +1,34 @@
|
|||||||
|
Font Awesome Free License
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
Font Awesome Free is free, open source, and GPL friendly. You can use it for
|
||||||
|
commercial projects, open source projects, or really almost whatever you want.
|
||||||
|
Full Font Awesome Free license: https://fontawesome.com/license/free.
|
||||||
|
|
||||||
|
# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)
|
||||||
|
In the Font Awesome Free download, the CC BY 4.0 license applies to all icons
|
||||||
|
packaged as SVG and JS file types.
|
||||||
|
|
||||||
|
# Fonts: SIL OFL 1.1 License (https://scripts.sil.org/OFL)
|
||||||
|
In the Font Awesome Free download, the SIL OFL license applies to all icons
|
||||||
|
packaged as web and desktop font files.
|
||||||
|
|
||||||
|
# Code: MIT License (https://opensource.org/licenses/MIT)
|
||||||
|
In the Font Awesome Free download, the MIT license applies to all non-font and
|
||||||
|
non-icon files.
|
||||||
|
|
||||||
|
# Attribution
|
||||||
|
Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font
|
||||||
|
Awesome Free files already contain embedded comments with sufficient
|
||||||
|
attribution, so you shouldn't need to do anything additional when using these
|
||||||
|
files normally.
|
||||||
|
|
||||||
|
We've kept attribution comments terse, so we ask that you do not actively work
|
||||||
|
to remove them from files, especially code. They're a great way for folks to
|
||||||
|
learn about Font Awesome.
|
||||||
|
|
||||||
|
# Brand Icons
|
||||||
|
All brand icons are trademarks of their respective owners. The use of these
|
||||||
|
trademarks does not indicate endorsement of the trademark holder by Font
|
||||||
|
Awesome, nor vice versa. **Please do not use brand logos for any purpose except
|
||||||
|
to represent the company, product, or service to which they refer.**
|
1
images/bluetooth.svg
Executable file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License). Changes were made to this file by Nicolas Flamel --><path d="m196.48 260.023 92.626-103.333L143.125 0v206.33l-86.111-86.111-31.406 31.405 108.061 108.399L25.608 368.422l31.406 31.405 86.111-86.111L145.84 512l148.552-148.644-97.912-103.333zm40.86-102.996-49.977 49.978-.338-100.295 50.315 50.317zM187.363 313.04l49.977 49.978-50.315 50.316.338-100.294z" fill="#FFF"/></svg>
|
After Width: | Height: | Size: 613 B |
1
images/circle.svg
Executable file
@@ -0,0 +1 @@
|
|||||||
|
<svg viewBox="0 0 2 2" xmlns="http://www.w3.org/2000/svg"><circle cx="1" cy="1" r="1"/></svg>
|
After Width: | Height: | Size: 93 B |
63
images/countries/Country Flags license.txt
Executable file
@@ -0,0 +1,63 @@
|
|||||||
|
License agreement
|
||||||
|
|
||||||
|
Countryflags.com offers images of World flags and the U.S. States flags which are downloadable in various file formats.
|
||||||
|
|
||||||
|
These downloadable formats are:
|
||||||
|
|
||||||
|
*AI
|
||||||
|
*EPS
|
||||||
|
*SVG
|
||||||
|
*PDF
|
||||||
|
*PNG
|
||||||
|
*JPG
|
||||||
|
|
||||||
|
Countryflags.com files are available for Commercial and Non-Commercial use.
|
||||||
|
Please read the following information about Commercial and Non-Commercial use below.
|
||||||
|
|
||||||
|
Commercial use
|
||||||
|
|
||||||
|
If you would like to use the country flags or the U.S. States flags for commercial use, purchase a license for one of the packages.
|
||||||
|
These professional packages are easy to use and will be downloadable after purchase. Save time by downloading a file type for all countries or by an entire nation at once.
|
||||||
|
|
||||||
|
The intention of the packages for commercial purposes:
|
||||||
|
|
||||||
|
*Websites;
|
||||||
|
*Development;
|
||||||
|
*App development;
|
||||||
|
*Web development;
|
||||||
|
*Product development;
|
||||||
|
*Printed products (for example mugs, flags, magnets, souvenirs, posters Etc.);
|
||||||
|
*Educational use without attribution;
|
||||||
|
*Papers and publications without attribution;
|
||||||
|
|
||||||
|
Once you have purchased a license, you can use the downloads within this bundle for business and commercial purposes.
|
||||||
|
Please note that purchased downloads are temporarily available because of website/flag updates.
|
||||||
|
After buying a package, store your package safe and secure on your device or server.
|
||||||
|
|
||||||
|
Not permitted
|
||||||
|
|
||||||
|
*It is not allowed to sell or offer commercial packages as downloads;
|
||||||
|
*It is not allowed to add commercial packages to your portfolio;
|
||||||
|
|
||||||
|
Non-commercial use
|
||||||
|
|
||||||
|
All single files can be downloaded free of charge for private and for educational use. Besides, it is possible to view a file before purchasing a package for commercial use.
|
||||||
|
|
||||||
|
The intention of the packages for non-commercial purposes such as:
|
||||||
|
|
||||||
|
*Private use*
|
||||||
|
*Educational institutions**
|
||||||
|
*Theses**
|
||||||
|
*Newspapers**
|
||||||
|
*Publications**
|
||||||
|
|
||||||
|
* Use all files free of charge and rights for private use;
|
||||||
|
** For educational purposes such as theses, papers and publications: always mention – both online and offline – the source Countryflags.com with your work. For online use, please use the following link: https://www.countryflags.com
|
||||||
|
|
||||||
|
Not permitted
|
||||||
|
|
||||||
|
*It is not allowed to sell or offer free files as downloads;
|
||||||
|
*It is not allowed to add free files to your portfolio;
|
||||||
|
*Multiplication on a large scale is not allowed with free downloadable files;
|
||||||
|
|
||||||
|
If you have any questions about use and this License Agreement, please contact us at info@countryflags.com
|
1
images/countries/america.svg
Executable file
After Width: | Height: | Size: 6.4 KiB |
1
images/countries/china.svg
Executable file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="444.5 896.5 300 200" xml:space="preserve"><!-- Country Flags - https://www.countryflags.com License - https://www.countryflags.com/license-agreement. Changes were made to this file by Nicolas Flamel --><switch><g><path fill="#DE2910" d="M444.5 896.5h300v200h-300z"/><path fill="#FFDE00" d="m494.5 916.5 17.634 54.27-46.166-33.541h57.064l-46.165 33.541zM535.925 921.645l12.488-14.348-1.67 18.948-9.786-16.31 17.505 7.443zM554.601 937.914l17.077-8.377-8.892 16.815-2.69-18.83 13.244 13.653zM554.885 963.753l19.009-.682-14.978 11.724 5.226-18.289 6.522 17.868zM536.691 980.253l17.798 6.711-18.343 5.032 11.882-14.853-.882 19z"/></g></switch></svg>
|
After Width: | Height: | Size: 694 B |
1
images/countries/czech_republic.svg
Executable file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="144.5 696.5 300 200" xml:space="preserve"><!-- Country Flags - https://www.countryflags.com License - https://www.countryflags.com/license-agreement. Changes were made to this file by Nicolas Flamel --><switch><g><path fill="#D7141A" d="M144.5 696.5h300v200h-300z"/><path fill="#FFF" d="M144.5 696.5h300v100h-300z"/><path fill="#11457E" d="m294.5 796.5-150-100v200l150-100z"/></g></switch></svg>
|
After Width: | Height: | Size: 445 B |
1
images/countries/germany.svg
Executable file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="194.5 696.5 300 180" xml:space="preserve"><!-- Country Flags - https://www.countryflags.com License - https://www.countryflags.com/license-agreement. Changes were made to this file by Nicolas Flamel --><switch><g><path d="M194.5 696.5h300v180h-300z"/><path fill="#D00" d="M194.5 756.5h300v120h-300z"/><path fill="#FFCE00" d="M194.5 816.5h300v60h-300z"/></g></switch></svg>
|
After Width: | Height: | Size: 422 B |
1
images/countries/greece.svg
Executable file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-5.5 596.5 300 200" xml:space="preserve"><!-- Country Flags - https://www.countryflags.com License - https://www.countryflags.com/license-agreement. Changes were made to this file by Nicolas Flamel --><switch><g><path fill="#0D5EAF" d="M-5.5 596.5h300v200h-300z"/><path fill="none" stroke="#FFF" stroke-width="20" d="M50.056 596.5v122.222M-5.5 652.055h111.111m0-22.222H294.5m-188.889 44.445H294.5m-300 44.444h300m-300 44.445h300"/></g></switch></svg>
|
After Width: | Height: | Size: 500 B |
1
images/countries/netherlands.svg
Executable file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="144.5 696.5 300 200" xml:space="preserve"><!-- Country Flags - https://www.countryflags.com License - https://www.countryflags.com/license-agreement. Changes were made to this file by Nicolas Flamel --><switch><g><path fill="#21468B" d="M144.5 696.5h300v200h-300z"/><path fill="#FFF" d="M144.5 696.5h300v133.333h-300z"/><path fill="#AE1C28" d="M144.5 696.5h300v66.667h-300z"/></g></switch></svg>
|
After Width: | Height: | Size: 445 B |
34
images/down arrow license.txt
Executable file
@@ -0,0 +1,34 @@
|
|||||||
|
Font Awesome Free License
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
Font Awesome Free is free, open source, and GPL friendly. You can use it for
|
||||||
|
commercial projects, open source projects, or really almost whatever you want.
|
||||||
|
Full Font Awesome Free license: https://fontawesome.com/license/free.
|
||||||
|
|
||||||
|
# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)
|
||||||
|
In the Font Awesome Free download, the CC BY 4.0 license applies to all icons
|
||||||
|
packaged as SVG and JS file types.
|
||||||
|
|
||||||
|
# Fonts: SIL OFL 1.1 License (https://scripts.sil.org/OFL)
|
||||||
|
In the Font Awesome Free download, the SIL OFL license applies to all icons
|
||||||
|
packaged as web and desktop font files.
|
||||||
|
|
||||||
|
# Code: MIT License (https://opensource.org/licenses/MIT)
|
||||||
|
In the Font Awesome Free download, the MIT license applies to all non-font and
|
||||||
|
non-icon files.
|
||||||
|
|
||||||
|
# Attribution
|
||||||
|
Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font
|
||||||
|
Awesome Free files already contain embedded comments with sufficient
|
||||||
|
attribution, so you shouldn't need to do anything additional when using these
|
||||||
|
files normally.
|
||||||
|
|
||||||
|
We've kept attribution comments terse, so we ask that you do not actively work
|
||||||
|
to remove them from files, especially code. They're a great way for folks to
|
||||||
|
learn about Font Awesome.
|
||||||
|
|
||||||
|
# Brand Icons
|
||||||
|
All brand icons are trademarks of their respective owners. The use of these
|
||||||
|
trademarks does not indicate endorsement of the trademark holder by Font
|
||||||
|
Awesome, nor vice versa. **Please do not use brand logos for any purpose except
|
||||||
|
to represent the company, product, or service to which they refer.**
|
1
images/down_arrow.svg
Executable file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 528"><!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License). Changes were made to this file by Nicolas Flamel --><path d="M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z" fill="#0C0C0D" fill-opacity=".85"/></svg>
|
After Width: | Height: | Size: 464 B |
1
images/ledger.svg
Executable file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 754.67 680"><path d="M0 130.63V0h195.5v31.1H30.21v99.53H0zM517.1 321.6v130.63H321.6v-31.1h165.29V321.6h30.21zm0-190.97V0H321.6v31.1h165.29v99.53h30.21zM0 321.6v130.63h195.5v-31.1H30.21V321.6H0zm323.87 2.27H193.24V128.36h31.1v165.29h99.53v30.22z"/></svg>
|
After Width: | Height: | Size: 307 B |
1605
images/logo_big.svg
Normal file
After Width: | Height: | Size: 119 KiB |
1605
images/logo_small.svg
Normal file
After Width: | Height: | Size: 119 KiB |
1
images/mask_images/mask_image.svg
Executable file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 320"><path fill="none" d="M0 0h320v320H0z"/><path d="M160.59 154.72a18 18 0 01-12.66-5.64S107.8 108.63 95.17 96s-27.45 0-27.45 0l-60 60.35a19.34 19.34 0 000 27.46l60 60.35s14.83 12.62 27.45 0S147.93 191 147.93 191a18 18 0 0112.66-5.64h-1.14a18 18 0 0112.66 5.64s40.13 40.49 52.76 53.12 27.45 0 27.45 0l60-60.35a19.43 19.43 0 000-27.46l-60-60.31s-14.83-12.63-27.45 0-52.76 53.12-52.76 53.12a18 18 0 01-12.66 5.64"/></svg>
|
After Width: | Height: | Size: 477 B |
BIN
images/tile_images/tile_image-150x150.png
Executable file
After Width: | Height: | Size: 474 B |
BIN
images/tile_images/tile_image-310x150.png
Executable file
After Width: | Height: | Size: 494 B |
BIN
images/tile_images/tile_image-310x310.png
Executable file
After Width: | Height: | Size: 896 B |
BIN
images/tile_images/tile_image-70x70.png
Executable file
After Width: | Height: | Size: 264 B |
BIN
images/touch_icons/touch_icon-114x114.png
Executable file
After Width: | Height: | Size: 948 B |
BIN
images/touch_icons/touch_icon-120x120.png
Executable file
After Width: | Height: | Size: 972 B |
BIN
images/touch_icons/touch_icon-144x144.png
Executable file
After Width: | Height: | Size: 1.1 KiB |
BIN
images/touch_icons/touch_icon-152x152.png
Executable file
After Width: | Height: | Size: 1.1 KiB |
BIN
images/touch_icons/touch_icon-167x167.png
Executable file
After Width: | Height: | Size: 1.3 KiB |
BIN
images/touch_icons/touch_icon-180x180.png
Executable file
After Width: | Height: | Size: 1.3 KiB |
BIN
images/touch_icons/touch_icon-57x57.png
Executable file
After Width: | Height: | Size: 522 B |
BIN
images/touch_icons/touch_icon-76x76.png
Executable file
After Width: | Height: | Size: 644 B |
1
images/trezor.svg
Executable file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 440 512"><path d="M232.565 92.208C232.565 41.81 189.092 0 136.137 0 83.189 0 39.703 41.823 39.703 92.208v29.462H0v211.989l136.108 63.666 136.189-63.666V122.617h-39.69l-.029-30.409h-.013Zm-143.715 0c0-23.762 20.82-42.779 47.287-42.779 26.475 0 47.281 19.017 47.281 42.779v29.462H88.85V92.208Zm128.6 207.231-81.342 38.038-81.328-38.009V172.055h162.67v127.384Z"/></svg>
|
After Width: | Height: | Size: 420 B |
34
images/usb license.txt
Executable file
@@ -0,0 +1,34 @@
|
|||||||
|
Font Awesome Free License
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
Font Awesome Free is free, open source, and GPL friendly. You can use it for
|
||||||
|
commercial projects, open source projects, or really almost whatever you want.
|
||||||
|
Full Font Awesome Free license: https://fontawesome.com/license/free.
|
||||||
|
|
||||||
|
# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)
|
||||||
|
In the Font Awesome Free download, the CC BY 4.0 license applies to all icons
|
||||||
|
packaged as SVG and JS file types.
|
||||||
|
|
||||||
|
# Fonts: SIL OFL 1.1 License (https://scripts.sil.org/OFL)
|
||||||
|
In the Font Awesome Free download, the SIL OFL license applies to all icons
|
||||||
|
packaged as web and desktop font files.
|
||||||
|
|
||||||
|
# Code: MIT License (https://opensource.org/licenses/MIT)
|
||||||
|
In the Font Awesome Free download, the MIT license applies to all non-font and
|
||||||
|
non-icon files.
|
||||||
|
|
||||||
|
# Attribution
|
||||||
|
Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font
|
||||||
|
Awesome Free files already contain embedded comments with sufficient
|
||||||
|
attribution, so you shouldn't need to do anything additional when using these
|
||||||
|
files normally.
|
||||||
|
|
||||||
|
We've kept attribution comments terse, so we ask that you do not actively work
|
||||||
|
to remove them from files, especially code. They're a great way for folks to
|
||||||
|
learn about Font Awesome.
|
||||||
|
|
||||||
|
# Brand Icons
|
||||||
|
All brand icons are trademarks of their respective owners. The use of these
|
||||||
|
trademarks does not indicate endorsement of the trademark holder by Font
|
||||||
|
Awesome, nor vice versa. **Please do not use brand logos for any purpose except
|
||||||
|
to represent the company, product, or service to which they refer.**
|
1
images/usb.svg
Executable file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License). Changes were made to this file by Nicolas Flamel --><path d="M641.5 256c0 3.1-1.7 6.1-4.5 7.5L547.9 317c-1.4.8-2.8 1.4-4.5 1.4-1.4 0-3.1-.3-4.5-1.1-2.8-1.7-4.5-4.5-4.5-7.8v-35.6H295.7c25.3 39.6 40.5 106.9 69.6 106.9H392V354c0-5 3.9-8.9 8.9-8.9H490c5 0 8.9 3.9 8.9 8.9v89.1c0 5-3.9 8.9-8.9 8.9h-89.1c-5 0-8.9-3.9-8.9-8.9v-26.7h-26.7c-75.4 0-81.1-142.5-124.7-142.5H140.3c-8.1 30.6-35.9 53.5-69 53.5C32 327.3 0 295.3 0 256s32-71.3 71.3-71.3c33.1 0 61 22.8 69 53.5 39.1 0 43.9 9.5 74.6-60.4C255 88.7 273 95.7 323.8 95.7c7.5-20.9 27-35.6 50.4-35.6 29.5 0 53.5 23.9 53.5 53.5s-23.9 53.5-53.5 53.5c-23.4 0-42.9-14.8-50.4-35.6H294c-29.1 0-44.3 67.4-69.6 106.9h310.1v-35.6c0-3.3 1.7-6.1 4.5-7.8 2.8-1.7 6.4-1.4 8.9.3l89.1 53.5c2.8 1.1 4.5 4.1 4.5 7.2z" fill="#FFF"/></svg>
|
After Width: | Height: | Size: 1004 B |
1
images/whale.svg
Executable file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 900 540"><path d="m49.79 124.57-38.44-26A24.48 24.48 0 0 1 0 77.36V12.85S1.11-4.53 19.82 2.23L76.49 40l56.66-37.77S150.24-7.24 153 12.84v64.52s.39 13.35-11.36 21.22l-38.34 25.67s-10.69 99.95 42 98.18 101.82-76 101.82-76S331.88-6.65 502.39 6.08s181.74 105.66 183.17 147.23-21.69 139.26-104 139.26H161.09s-104.33.33-111.3-168zm436.24 0a28.55 28.55 0 1 0 28.56 28.55A28.55 28.55 0 0 0 486 124.57z"/></svg>
|
After Width: | Height: | Size: 455 B |
2779
index.html
Executable file
36
languages/american_english.php
Executable file
@@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Append American English to available languages
|
||||||
|
$availableLanguages["en-US"] = [
|
||||||
|
|
||||||
|
// Constants
|
||||||
|
"Constants" => [
|
||||||
|
|
||||||
|
// Language
|
||||||
|
"Language" => "English",
|
||||||
|
|
||||||
|
// Direction
|
||||||
|
"Direction" => "ltr",
|
||||||
|
|
||||||
|
// Image
|
||||||
|
"Image" => "./images/countries/america.svg",
|
||||||
|
|
||||||
|
// Currency
|
||||||
|
"Currency" => "USD",
|
||||||
|
|
||||||
|
// Extension locale code
|
||||||
|
"Extension Locale Code" => "en",
|
||||||
|
|
||||||
|
// Fallback
|
||||||
|
"Fallback" => "en"
|
||||||
|
],
|
||||||
|
|
||||||
|
// Text
|
||||||
|
"Text" => [
|
||||||
|
'(?<=,) ' => ' ',
|
||||||
|
'(?<=.) ' => ' ',
|
||||||
|
'(?<=:) ' => ' ',
|
||||||
|
',(?= )' => ',',
|
||||||
|
]
|
||||||
|
];
|
||||||
|
?>
|