Cleaned up some code, Replaced robots.txt & sitemap.txt with PHP code, Updated gitignore rules
Update .gitignore, .htaccess, and 11 more files...
This commit is contained in:
19
.gitignore
vendored
19
.gitignore
vendored
@@ -13,15 +13,11 @@ resources/HighlightJS/
|
||||
resources/GliderJs/
|
||||
resources/PlotlyJs/
|
||||
|
||||
resources/NibblePoker/css/*.css
|
||||
resources/NibblePoker/scss/trash
|
||||
resources/NibblePoker/js/*.min.js
|
||||
|
||||
*.exe
|
||||
*.url
|
||||
|
||||
# Compiled Stuff
|
||||
*.min.php
|
||||
commons/strings.json
|
||||
resources/NibblePoker/css/*.css
|
||||
resources/NibblePoker/js/*.min.js
|
||||
tools/items/formula-wizard/*.js
|
||||
tools/items/formula-wizard/src/*.js
|
||||
|
||||
@@ -31,11 +27,10 @@ tools/items/formula-wizard/src/*.js
|
||||
*.lnk
|
||||
*.map
|
||||
*.bak
|
||||
*.exe
|
||||
*.url
|
||||
*.env
|
||||
|
||||
# Temporary
|
||||
tmp/
|
||||
commons/trash/
|
||||
articles/*.txt
|
||||
commons/strings/_*/
|
||||
_unsorted/
|
||||
tools/items/*/*.min.js
|
||||
wasm-test/
|
||||
|
49
.htaccess
49
.htaccess
@@ -1,41 +1,51 @@
|
||||
# Prevent access to .htaccess
|
||||
# Preventing access to .htaccess
|
||||
<Files ~ "^.*\.([Hh][Tt][Aa]|[Pp][Yy])">
|
||||
Require all denied
|
||||
</Files>
|
||||
|
||||
|
||||
# Redirecting HTTP traffic to HTTPS. (Keep commented on localhost !)
|
||||
# This is handled by other services, but it should still be enabled in production just to be safe.
|
||||
# This is handled by reverse-proxies, but it should still be enabled in production just to be safe.
|
||||
#RewriteEngine On
|
||||
#RewriteCond %{SERVER_PORT} 80
|
||||
#RewriteRule ^(.*)$ https://nibblepoker.lu/$1 [R,L]
|
||||
|
||||
|
||||
# Fixing some encoding issues on non-HTML files.
|
||||
# Mostly affects the old privacy policies written in french.
|
||||
# Mostly affects the old privacy policies written in french. (Accents have issues in non-utf8 encodings !)
|
||||
AddCharset utf-8 .css .txt .js .md .ts .mjs
|
||||
#<Files ~ "\.txt?$">
|
||||
# Header set Content-Type "text/plain; charset=utf-8"
|
||||
#</Files>
|
||||
#AddDefaultCharset utf-8
|
||||
|
||||
|
||||
# Adding MIME types
|
||||
AddType text/typescript .ts
|
||||
AddType text/javascript .js
|
||||
AddType text/javascript .mjs
|
||||
AddType application/wasm .wasm
|
||||
AddType video/x-matroska mkv
|
||||
|
||||
|
||||
# Correcting some default options for security and language/content redirection.
|
||||
# FollowSymlinks is also on since it's required for "mod_rewrite" and the server is jailed.
|
||||
# FollowSymlinks is also on since it's required for "mod_rewrite" and the server is jailed/containerized.
|
||||
Options -Indexes +FollowSymlinks -ExecCGI
|
||||
|
||||
# Does nothing, thanks Apache...
|
||||
ServerSignature Off
|
||||
|
||||
|
||||
# Serving minified pages and/or pre-rendered ones first if available.
|
||||
DirectoryIndex index.min.html index.min.php index.php index.html
|
||||
|
||||
|
||||
# Custom error pages.
|
||||
ErrorDocument 403 /error.php
|
||||
ErrorDocument 404 /error.php
|
||||
|
||||
# Setting up browser's caching rules
|
||||
|
||||
# Setting up browser's caching rules.
|
||||
# See:
|
||||
# * https://stackoverflow.com/a/13029007
|
||||
# * https://www.a2hosting.com/kb/developer-corner/apache-web-server/turning-off-caching-using-htaccess
|
||||
@@ -57,7 +67,9 @@ ErrorDocument 404 /error.php
|
||||
#Header set Pragma "no-cache"
|
||||
#Header set Expires 0
|
||||
|
||||
# Setting up GZIP
|
||||
|
||||
# Setting up GZIP.
|
||||
# It's optional since reverse-proxies or caching layers will usually do it for us.
|
||||
<ifModule mod_gzip.c>
|
||||
mod_gzip_on Yes
|
||||
mod_gzip_dechunk Yes
|
||||
@@ -69,23 +81,32 @@ ErrorDocument 404 /error.php
|
||||
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
|
||||
</ifModule>
|
||||
|
||||
# # # Setting some headers for security.
|
||||
# # #Header always set X-Detected-Country "NK"
|
||||
|
||||
# Setting some headers for security.
|
||||
# Will cause "fail-safe crashes" if the "headers" module isn't enabled.
|
||||
Header always set X-Frame-Options "deny"
|
||||
# # Header always set Content-Security-Policy "default-src 'self' files.nibblepoker.lu; img-src 'self' files.nibblepoker.lu data:; object-src 'none'; child-src 'self'; frame-ancestors 'none'; upgrade-insecure-requests; block-all-mixed-content"
|
||||
# Header always set Content-Security-Policy "default-src 'self' files.nibblepoker.lu; img-src 'self' files.nibblepoker.lu data:; object-src 'none'; child-src 'self'; frame-ancestors 'none'; upgrade-insecure-requests; block-all-mixed-content"
|
||||
Header always set X-XSS-Protection " 1; mode=block"
|
||||
Header always set Referrer-Policy "no-referrer"
|
||||
Header always set X-Content-Type-Options "nosniff"
|
||||
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
|
||||
#Header always set Cache-Control "max-age=300, public"
|
||||
Header always set Access-Control-Allow-Origin "*"
|
||||
Header unset X-Powered-By
|
||||
#Header always set X-Powered-By "Amiga 1200, Kickstart 3.1"
|
||||
Header always set Permissions-Policy "browsing-topics=(), interest-cohort=()"
|
||||
|
||||
# Removing some headers since they often raise BS alarms about too much back-end info being sent to clients.
|
||||
# Note: These headers can actually be removed by most reverse-proxies.
|
||||
Header unset X-Powered-By
|
||||
|
||||
|
||||
# Handling all other redirections.
|
||||
# Will cause "fail-safe crashes" if the "rewrite" module isn't enabled.
|
||||
RewriteEngine On
|
||||
|
||||
# Languages. (Does not work with a regex)
|
||||
RewriteRule ^en/(.*)$ /$1 [QSA]
|
||||
RewriteRule ^fr/(.*)$ /$1 [QSA]
|
||||
# Serving normal pages when a specific language key is at the beginning of the requested path.
|
||||
# We use a regex to match all supported languages and use the 3rd ground, `(.*)` as `$3`, as the "real" path.
|
||||
RewriteRule ^((en|fr)/)(.*)$ /$3 [QSA]
|
||||
|
||||
# Handling requests for "robots.txt" and "sitemap.txt" via PHP.
|
||||
RewriteRule ^(en/|fr/)?robots.txt$ robots.php [L]
|
||||
RewriteRule ^(en/|fr/)?sitemap.txt$ sitemap.php [L]
|
||||
|
@@ -9,21 +9,11 @@ if(basename(__FILE__) == basename($_SERVER["SCRIPT_FILENAME"])) {
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
|
||||
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport"/>
|
||||
<meta name="viewport" content="width=device-width"/>
|
||||
<?php
|
||||
// Caching should be handled in '.htaccess' !
|
||||
//<!--<meta content="cache, store" http-equiv="Cache-Control">
|
||||
//<meta content="cache, store" http-equiv="Pragma">
|
||||
//<meta content="3600" http-equiv="Expires">-->
|
||||
?>
|
||||
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
|
||||
<link rel="alternate icon" href="/favicon.ico">
|
||||
<link rel="stylesheet" href="/resources/FontAwesomePro/5.15.3/css/all.min.css">
|
||||
<link rel="stylesheet" href="/resources/NibblePoker/css/nibblepoker.min.css?v=1">
|
||||
<?php
|
||||
if($enable_waffle_iron) {
|
||||
// Turns out you can't change an SVG's path fill if it's inside an IMG tag...
|
||||
//echo("<link rel=\"stylesheet\" href=\"/resources/NibblePoker/css/waffle-day.min.css\">");
|
||||
}
|
||||
if($enable_code_highlight) {
|
||||
echo('<link href="/resources/HighlightJS/11.6.0/styles/atom-one-dark.min.css" rel="stylesheet"/>');
|
||||
}
|
||||
|
@@ -4,6 +4,7 @@ if(basename(__FILE__) == basename($_SERVER["SCRIPT_FILENAME"])) {
|
||||
header('HTTP/1.1 403 Forbidden'); die();
|
||||
}
|
||||
|
||||
// Only being used in 'head' for opengraph data.
|
||||
$host = "nibblepoker.lu";
|
||||
$host_uri = "https://nibblepoker.lu";
|
||||
|
||||
|
@@ -23,9 +23,9 @@
|
||||
"links.gitea.title": "Self-hosted Gitea",
|
||||
"links.gitea.text.1": "Contains all my projects and some mirrors from various sites.",
|
||||
|
||||
"links.files.title": "Public files <i>(files.nibblepoker.lu)</i>",
|
||||
"links.files.title": "Public files & downloads",
|
||||
"links.files.text.1": "Contains all files that can be downloaded on this website and other documentation.",
|
||||
|
||||
"links.archives.title": "Public archives <i>(archives.nibblepoker.lu)</i>",
|
||||
"links.archives.title": "Public archives",
|
||||
"links.archives.text.1": "Contains various public archives."
|
||||
}
|
||||
|
@@ -25,7 +25,7 @@
|
||||
"about.nibblepoker.text.20": "Finalement, lors de la création de ce surnom, je travaillais depuis quelques temps sur d'anciennes machines telle la Commodore64, Acorn Electron et [???]",
|
||||
|
||||
"about.aziascreations.title": "Le nom 'AziasCreations'",
|
||||
"about.aziascreations.text.01": "L'ancien sobriquet 'AziasCreations' était un surnom relativement basique utilisé entre 2013 et 2020.",
|
||||
"about.aziascreations.text.10": "Il reste légèrement utilisé aujourd'hui à cause de certaines limitations concernant les changements de pseudonyme sur GitHub qui m'ont empèché de faire un changement complet."
|
||||
"about.aziascreations.text.01": "L'ancien surnom 'AziasCreations' était utilisé entre 2013 et 2020 et est à présent abandonné au profit de <i>NibblePoker</i>.",
|
||||
"about.aziascreations.text.10": "Cependant, il reste utilisé sur GitHub et Gitea à cause de certaines limitations concernant les changements de pseudonyme qui m'ont empèché de faire un changement complet."
|
||||
|
||||
}
|
@@ -23,9 +23,9 @@
|
||||
"links.gitea.title": "Gitea auto-hébergé",
|
||||
"links.gitea.text.1": "Contient tous mes projets et des miroirs provenant de divers sites.",
|
||||
|
||||
"links.files.title": "Fichiers publiques <i>(files.nibblepoker.lu)</i>",
|
||||
"links.files.title": "Fichiers publiques",
|
||||
"links.files.text.1": "Contient tout les fichiers pouvant être téléchargé sur ce site web et dans ma documentation.",
|
||||
|
||||
"links.archives.title": "Archives publiques <i>(archives.nibblepoker.lu)</i>",
|
||||
"links.archives.title": "Archives publiques",
|
||||
"links.archives.text.1": "Contient une variété d'archives publiques."
|
||||
}
|
||||
|
@@ -1,132 +0,0 @@
|
||||
<?php
|
||||
set_include_path('../commons/');
|
||||
include_once 'config.php';
|
||||
include_once 'langs.php';
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="<?php echo($user_language); ?>">
|
||||
<head>
|
||||
<?php include 'headers.php'; ?>
|
||||
<title><?php print(localize('contact.title')); ?> - Nibble Poker</title>
|
||||
<meta name="description" content="<?php print(localize('contact.description')); ?>">
|
||||
<meta property="og:title" content="Nibble Poker - <?php print(localize('contact.title')); ?>" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="<?php echo($host_uri); ?>/" />
|
||||
<meta property="og:image" content="<?php echo($host_uri); ?>/resources/Azias/logos/v2_opengraph.png"/>
|
||||
<meta property="og:image:type" content="image/png"/>
|
||||
<meta property="og:description" content="<?php print(localize('contact.description')); ?>"/>
|
||||
</head>
|
||||
<body class="with-custom-webkit-scrollbars with-custom-css-scrollbars dark-mode" data-dm-shortcut-enabled="true" data-sidebar-shortcut-enabled="true">
|
||||
<?php include 'body-root.php'; ?>
|
||||
<div class="page-wrapper with-sidebar with-navbar-fixed-bottom">
|
||||
<?php $SIDEBAR_ID = 'contact'; include 'sidebar.php'; ?>
|
||||
|
||||
<div class="content-wrapper">
|
||||
<div class="container-fluid">
|
||||
<div id="page-title-bar" class="card p-0 pl-20 m-0 square-corners bg-very-dark title-bkgd navbar">
|
||||
<h2 class="content-title font-size-24 mt-20 text-truncate">
|
||||
<i class="fad fa-mailbox"></i> <?php print(localize("contact.title")); ?>
|
||||
</h2>
|
||||
<?php include 'header-lang.php'; ?>
|
||||
</div>
|
||||
<div class="content mx-auto w-lg-p90">
|
||||
<div class="card p-0 mx-0">
|
||||
<div class="px-card py-10 border-bottom px-20">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
<h2 class="card-title font-size-18 m-0"><i class="fad fa-envelope-square"></i> <?php print(localize("contact.email.title")); ?></h2>
|
||||
</div>
|
||||
<div class="col-8 text-right font-italic">
|
||||
<h2 class="card-title font-size-18 m-0 text-super-muted">herwin.bozet@gmail.com</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="px-card py-20 bg-light-lm bg-very-dark-dm rounded-bottom px-20">
|
||||
<form action="mailto:herwin.bozet@gmail.com?subject=Website%20contact%20form%20message" target="_top" method="post" class="w-full">
|
||||
<div class="form-group">
|
||||
<label for="name"><?php print(localize("contact.email.name")); ?></label>
|
||||
<input type="text" class="form-control" id="name" placeholder="John Smith">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="message" class="required"><?php print(localize("contact.email.message")); ?></label>
|
||||
<textarea class="form-control" id="message" placeholder="Write your message here." required="required"></textarea>
|
||||
</div>
|
||||
<input class="btn btn-primary mr-10" type="submit" value="<?php print(localize("generic.button.submit")); ?>">
|
||||
<input class="btn btn-secondary" type="reset" value="<?php print(localize("generic.button.reset")); ?>">
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card p-0 mx-0">
|
||||
<div class="px-card py-10 border-bottom px-20">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
<h2 class="card-title font-size-18 m-0"><i class="fab fa-twitter"></i> Twitter</h2>
|
||||
</div>
|
||||
<div class="col-8 text-right font-italic">
|
||||
<h2 class="card-title font-size-18 m-0 text-super-muted">@NibblePoker</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="px-card py-20 bg-light-lm bg-very-dark-dm rounded-bottom pl-20">
|
||||
<a href="https://twitter.com/messages/compose?recipient_id=937370791334895616">
|
||||
<button class="btn btn-primary"><?php print(localize("contact.twitter.button")); ?></button>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card p-0 mx-0">
|
||||
<div class="px-card py-10 border-bottom px-20">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-5 col-lg-12">
|
||||
<h2 class="card-title font-size-18 m-0">
|
||||
<i class="fad fa-lock-alt"></i> Tox
|
||||
</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="px-card py-10 bg-light-lm bg-very-dark-dm rounded-bottom px-20">
|
||||
<p class="mb-0 mt-10">
|
||||
<?php print(localize("contact.tox.main")); ?>
|
||||
</p>
|
||||
<p class="text-monospace text-break font-size-12 mt-0 ml-10">
|
||||
62C1A91A425F90D7B4F047D70CCF31E7402C9EC37B93604B0F37C416442D15044AF6C1AE033B
|
||||
</p>
|
||||
<p class="mb-20 text-decoration-none">
|
||||
<a href="tox:62C1A91A425F90D7B4F047D70CCF31E7402C9EC37B93604B0F37C416442D15044AF6C1AE033B" class="text-decoration-none">
|
||||
<button class="btn btn-primary"><?php print(localize("contact.tox.button.open")); ?></button>
|
||||
</a>
|
||||
<button id="button-copy-tox-id-main" class="btn btn-secondary ml-10">
|
||||
<?php print(localize("contact.tox.button.copy")); ?>
|
||||
</button>
|
||||
</p>
|
||||
<hr>
|
||||
<p class="mb-0">
|
||||
<?php print(localize("contact.tox.secondary")); ?>
|
||||
</p>
|
||||
<p class="text-monospace text-break font-size-12 mt-0 ml-10">
|
||||
01ABBD4515C8FA56231333D1022CEEE0A605F4E85F8A945365F56D196A1BBA10FB4DCE08DBE8
|
||||
</p>
|
||||
<p>
|
||||
<a href="tox:01ABBD4515C8FA56231333D1022CEEE0A605F4E85F8A945365F56D196A1BBA10FB4DCE08DBE8" class="text-decoration-none">
|
||||
<button class="btn btn-primary"><?php print(localize("contact.tox.button.open")); ?></button>
|
||||
</a>
|
||||
<button id="button-copy-tox-id-backup" class="btn btn-secondary ml-10">
|
||||
<?php print(localize("contact.tox.button.copy")); ?>
|
||||
</button>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php include 'footer.php'; ?>
|
||||
</div>
|
||||
<script src="/resources/HalfMoon/1.1.1/js/halfmoon.min.js"></script>
|
||||
<script src="/resources/Azias/js/nibblepoker.lu.js"></script>
|
||||
</body>
|
||||
</html>
|
1
fix-import-path.min.js
vendored
1
fix-import-path.min.js
vendored
@@ -1 +0,0 @@
|
||||
const fs=require("fs"),path=require("path"),inputFile=(5!==process.argv.length&&(console.error("!> Invalid syntax !"),console.error("Use: node fix-import-path.js <input_file> <import_name> <replacement_file>"),process.exit(1)),process.argv[2]),inputImportName=process.argv[3],inputReplacement=process.argv[4];let filesToProcess=inputFile.split(";");for(const a of filesToProcess){console.log("> Replacing '"+inputImportName+"' with '"+inputReplacement+"' in '"+a+"' ...");const b=fs.readFileSync(a).toString().split("\n"),c=(null==b&&(console.error("!> Failed to read lines !"),process.exit(2)),[]);for(let e of b)e.startsWith("import")&&e.includes("from")&&((e=e.split(/['"]+/))[e.length-2]=e[e.length-2].replace(inputImportName,inputReplacement),e=e.join('"')),c.push(e);try{fs.unlinkSync(a),fs.writeFileSync(a,c.join("\n"),"utf8")}catch(e){console.error(e)}}
|
20
robots.php
Normal file
20
robots.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
// Returning a domain-specific "robots.txt" file based on the requested host.
|
||||
switch($_SERVER['SERVER_NAME']) {
|
||||
case "nibblepoker.lu":
|
||||
print("User-agent: *\r\n");
|
||||
print("Allow: /\r\n\r\n");
|
||||
print("Sitemap: https://nibblepoker.lu/sitemap.txt\r\n");
|
||||
break;
|
||||
case "nibblepoker.com":
|
||||
print("User-agent: *\r\n");
|
||||
print("Allow: /\r\n\r\n");
|
||||
print("Sitemap: https://nibblepoker.com/sitemap.txt\r\n");
|
||||
break;
|
||||
default:
|
||||
http_response_code(400);
|
||||
exit(1);
|
||||
}
|
||||
http_response_code(200);
|
||||
exit(0);
|
||||
?>
|
@@ -1,4 +0,0 @@
|
||||
User-agent: *
|
||||
Allow: /
|
||||
|
||||
Sitemap: https://nibblepoker.lu/sitemap.txt
|
44
sitemap.php
Normal file
44
sitemap.php
Normal file
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
// Constants.
|
||||
CONST BASE_URL = "https://nibblepoker.";
|
||||
const SITEMAP_LANGUAGES = ["", "en/", "fr/"];
|
||||
const SITEMAP_PAGES = [
|
||||
"",
|
||||
"about/",
|
||||
"content/",
|
||||
"content/lscom-cli",
|
||||
"content/lscom-cli-dotnet",
|
||||
"content/youtube-auto-archiver",
|
||||
"content/excel-worksheet-password-remover",
|
||||
"content/mc-expanded-iron-bundles",
|
||||
"content/dotnet-arguments",
|
||||
"links/",
|
||||
"contact/",
|
||||
"privacy/",
|
||||
];
|
||||
|
||||
// Retrieving the requested TLD.
|
||||
switch($_SERVER['SERVER_NAME']) {
|
||||
case "nibblepoker.lu":
|
||||
$domain_tld = "lu";
|
||||
break;
|
||||
case "nibblepoker.com":
|
||||
$domain_tld = "com";
|
||||
break;
|
||||
default:
|
||||
http_response_code(400);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
// Generating the sitemap.
|
||||
foreach(SITEMAP_LANGUAGES as $language_key) {
|
||||
foreach(SITEMAP_PAGES as $page_path) {
|
||||
echo(BASE_URL . $domain_tld. "/" . $language_key . $page_path . "\r\n");
|
||||
}
|
||||
}
|
||||
|
||||
// Finishing the response.
|
||||
http_response_code(200);
|
||||
exit(0);
|
||||
?>
|
33
sitemap.txt
33
sitemap.txt
@@ -1,33 +0,0 @@
|
||||
https://nibblepoker.lu/
|
||||
https://nibblepoker.lu/content/
|
||||
https://nibblepoker.lu/content/lscom-cli
|
||||
https://nibblepoker.lu/content/lscom-cli-dotnet
|
||||
https://nibblepoker.lu/content/youtube-auto-archiver
|
||||
https://nibblepoker.lu/content/excel-worksheet-password-remover
|
||||
https://nibblepoker.lu/content/mc-expanded-iron-bundles
|
||||
https://nibblepoker.lu/content/dotnet-arguments
|
||||
https://nibblepoker.lu/links/
|
||||
https://nibblepoker.lu/contact/
|
||||
https://nibblepoker.lu/privacy/
|
||||
https://nibblepoker.lu/en/
|
||||
https://nibblepoker.lu/en/content/
|
||||
https://nibblepoker.lu/en/content/lscom-cli
|
||||
https://nibblepoker.lu/en/content/lscom-cli-dotnet
|
||||
https://nibblepoker.lu/en/content/youtube-auto-archiver
|
||||
https://nibblepoker.lu/en/content/excel-worksheet-password-remover
|
||||
https://nibblepoker.lu/en/content/mc-expanded-iron-bundles
|
||||
https://nibblepoker.lu/en/content/dotnet-arguments
|
||||
https://nibblepoker.lu/en/links/
|
||||
https://nibblepoker.lu/en/contact/
|
||||
https://nibblepoker.lu/en/privacy/
|
||||
https://nibblepoker.lu/fr/
|
||||
https://nibblepoker.lu/fr/content/
|
||||
https://nibblepoker.lu/fr/content/lscom-cli
|
||||
https://nibblepoker.lu/fr/content/lscom-cli-dotnet
|
||||
https://nibblepoker.lu/fr/content/youtube-auto-archiver
|
||||
https://nibblepoker.lu/fr/content/excel-worksheet-password-remover
|
||||
https://nibblepoker.lu/fr/content/mc-expanded-iron-bundles
|
||||
https://nibblepoker.lu/fr/content/dotnet-arguments
|
||||
https://nibblepoker.lu/fr/links/
|
||||
https://nibblepoker.lu/fr/contact/
|
||||
https://nibblepoker.lu/fr/privacy/
|
Reference in New Issue
Block a user