'$2y$12$6iyKwObB3zokmhwUuBhXxuB3/ZenHS4aosToHJJK0Yl3JgY1S80sy',
);
// Readonly users
// e.g. array('users', 'guest', ...)
$readonly_users = array(
'user'
);
// Global readonly, including when auth is not being used
$global_readonly = false;
// user specific directories
// array('Username' => 'Directory path', 'Username2' => 'Directory path', ...)
$directories_users = array();
// Enable highlight.js (https://highlightjs.org/) on view's page
$use_highlightjs = true;
// highlight.js style
// for dark theme use 'ir-black'
$highlightjs_style = 'vs';
// Enable ace.js (https://ace.c9.io/) on view's page
$edit_files = true;
// Default timezone for date() and time()
// Doc - http://php.net/manual/en/timezones.php
$default_timezone = 'Etc/UTC'; // UTC
// Root path for file manager
// use absolute path of directory i.e: '/var/www/folder' or $_SERVER['DOCUMENT_ROOT'].'/folder'
$root_path = $_SERVER['DOCUMENT_ROOT'];
// Root url for links in file manager.Relative to $http_host. Variants: '', 'path/to/subfolder'
// Will not working if $root_path will be outside of server document root
$root_url = '';
// Server hostname. Can set manually if wrong
// $_SERVER['HTTP_HOST'].'/folder'
$http_host = $_SERVER['HTTP_HOST'];
// input encoding for iconv
$iconv_input_encoding = 'UTF-8';
// date() format for file modification date
// Doc - https://www.php.net/manual/en/function.date.php
$datetime_format = 'm/d/Y g:i A';
// Path display mode when viewing file information
// 'full' => show full path
// 'relative' => show path relative to root_path
// 'host' => show path on the host
$path_display_mode = 'full';
// Allowed file extensions for create and rename files
// e.g. 'txt,html,css,js'
$allowed_file_extensions = '';
// Allowed file extensions for upload files
// e.g. 'gif,png,jpg,html,txt'
$allowed_upload_extensions = '';
// Favicon path. This can be either a full url to an .PNG image, or a path based on the document root.
// full path, e.g http://example.com/favicon.png
// local path, e.g images/icons/favicon.png
$favicon_path = '';
// Files and folders to excluded from listing
// e.g. array('myfile.html', 'personal-folder', '*.php', ...)
$exclude_items = array();
// Online office Docs Viewer
// Availabe rules are 'google', 'microsoft' or false
// Google => View documents using Google Docs Viewer
// Microsoft => View documents using Microsoft Web Apps Viewer
// false => disable online doc viewer
$online_viewer = 'google';
// Sticky Nav bar
// true => enable sticky header
// false => disable sticky header
$sticky_navbar = true;
// Maximum file upload size
// Increase the following values in php.ini to work properly
// memory_limit, upload_max_filesize, post_max_size
$max_upload_size_bytes = 5000000000; // size 5,000,000,000 bytes (~5GB)
// chunk size used for upload
// eg. decrease to 1MB if nginx reports problem 413 entity too large
$upload_chunk_size_bytes = 2000000; // chunk size 2,000,000 bytes (~2MB)
// Possible rules are 'OFF', 'AND' or 'OR'
// OFF => Don't check connection IP, defaults to OFF
// AND => Connection must be on the whitelist, and not on the blacklist
// OR => Connection must be on the whitelist, or not on the blacklist
$ip_ruleset = 'OFF';
// Should users be notified of their block?
$ip_silent = true;
// IP-addresses, both ipv4 and ipv6
$ip_whitelist = array(
'127.0.0.1', // local ipv4
'::1' // local ipv6
);
// IP-addresses, both ipv4 and ipv6
$ip_blacklist = array(
'0.0.0.0', // non-routable meta ipv4
'::' // non-routable meta ipv6
);
// if User has the external config file, try to use it to override the default config above [config.php]
// sample config - https://tinyfilemanager.github.io/config-sample.txt
$config_file = __DIR__.'/config.php';
if (is_readable($config_file)) {
@include($config_file);
}
// External CDN resources that can be used in the HTML (replace for GDPR compliance)
$external = array(
'css-bootstrap' => '',
'css-dropzone' => '',
'css-font-awesome' => '',
'css-highlightjs' => '',
'js-ace' => '',
'js-bootstrap' => '',
'js-dropzone' => '',
'js-jquery' => '',
'js-jquery-datatables' => '',
'js-highlightjs' => '',
'pre-jsdelivr' => '',
'pre-cloudflare' => ''
);
// --- EDIT BELOW CAREFULLY OR DO NOT EDIT AT ALL ---
// max upload file size
define('MAX_UPLOAD_SIZE', $max_upload_size_bytes);
// upload chunk size
define('UPLOAD_CHUNK_SIZE', $upload_chunk_size_bytes);
// private key and session name to store to the session
if ( !defined( 'FM_SESSION_ID')) {
define('FM_SESSION_ID', 'filemanager');
}
// Configuration
$cfg = new FM_Config();
// Default language
$lang = isset($cfg->data['lang']) ? $cfg->data['lang'] : 'en';
// Show or hide files and folders that starts with a dot
$show_hidden_files = isset($cfg->data['show_hidden']) ? $cfg->data['show_hidden'] : true;
// PHP error reporting - false = Turns off Errors, true = Turns on Errors
$report_errors = isset($cfg->data['error_reporting']) ? $cfg->data['error_reporting'] : true;
// Hide Permissions and Owner cols in file-listing
$hide_Cols = isset($cfg->data['hide_Cols']) ? $cfg->data['hide_Cols'] : true;
// Theme
$theme = isset($cfg->data['theme']) ? $cfg->data['theme'] : 'light';
define('FM_THEME', $theme);
//available languages
$lang_list = array(
'en' => 'English'
);
if ($report_errors == true) {
@ini_set('error_reporting', E_ALL);
@ini_set('display_errors', 1);
} else {
@ini_set('error_reporting', E_ALL);
@ini_set('display_errors', 0);
}
// if fm included
if (defined('FM_EMBED')) {
$use_auth = false;
$sticky_navbar = false;
} else {
@set_time_limit(600);
date_default_timezone_set($default_timezone);
ini_set('default_charset', 'UTF-8');
if (version_compare(PHP_VERSION, '5.6.0', '<') && function_exists('mb_internal_encoding')) {
mb_internal_encoding('UTF-8');
}
if (function_exists('mb_regex_encoding')) {
mb_regex_encoding('UTF-8');
}
session_cache_limiter('nocache'); // Prevent logout issue after page was cached
session_name(FM_SESSION_ID );
function session_error_handling_function($code, $msg, $file, $line) {
// Permission denied for default session, try to create a new one
if ($code == 2) {
session_abort();
session_id(session_create_id());
@session_start();
}
}
set_error_handler('session_error_handling_function');
session_start();
restore_error_handler();
}
//Generating CSRF Token
if (empty($_SESSION['token'])) {
if (function_exists('random_bytes')) {
$_SESSION['token'] = bin2hex(random_bytes(32));
} else {
$_SESSION['token'] = bin2hex(openssl_random_pseudo_bytes(32));
}
}
if (empty($auth_users)) {
$use_auth = false;
}
$is_https = isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1)
|| isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https';
// update $root_url based on user specific directories
if (isset($_SESSION[FM_SESSION_ID]['logged']) && !empty($directories_users[$_SESSION[FM_SESSION_ID]['logged']])) {
$wd = fm_clean_path(dirname($_SERVER['PHP_SELF']));
$root_url = $root_url.$wd.DIRECTORY_SEPARATOR.$directories_users[$_SESSION[FM_SESSION_ID]['logged']];
}
// clean $root_url
$root_url = fm_clean_path($root_url);
// abs path for site
defined('FM_ROOT_URL') || define('FM_ROOT_URL', ($is_https ? 'https' : 'http') . '://' . $http_host . (!empty($root_url) ? '/' . $root_url : ''));
defined('FM_SELF_URL') || define('FM_SELF_URL', ($is_https ? 'https' : 'http') . '://' . $http_host . $_SERVER['PHP_SELF']);
// logout
if (isset($_GET['logout'])) {
unset($_SESSION[FM_SESSION_ID]['logged']);
unset( $_SESSION['token']);
fm_redirect(FM_SELF_URL);
}
// Validate connection IP
if ($ip_ruleset != 'OFF') {
function getClientIP() {
if (array_key_exists('HTTP_CF_CONNECTING_IP', $_SERVER)) {
return $_SERVER["HTTP_CF_CONNECTING_IP"];
}else if (array_key_exists('HTTP_X_FORWARDED_FOR', $_SERVER)) {
return $_SERVER["HTTP_X_FORWARDED_FOR"];
}else if (array_key_exists('REMOTE_ADDR', $_SERVER)) {
return $_SERVER['REMOTE_ADDR'];
}else if (array_key_exists('HTTP_CLIENT_IP', $_SERVER)) {
return $_SERVER['HTTP_CLIENT_IP'];
}
return '';
}
$clientIp = getClientIP();
$proceed = false;
$whitelisted = in_array($clientIp, $ip_whitelist);
$blacklisted = in_array($clientIp, $ip_blacklist);
if($ip_ruleset == 'AND'){
if($whitelisted == true && $blacklisted == false){
$proceed = true;
}
} else
if($ip_ruleset == 'OR'){
if($whitelisted == true || $blacklisted == false){
$proceed = true;
}
}
if($proceed == false){
trigger_error('User connection denied from: ' . $clientIp, E_USER_WARNING);
if($ip_silent == false){
fm_set_msg(lng('Access denied. IP restriction applicable'), 'error');
fm_show_header_login();
fm_show_message();
}
exit();
}
}
// Checking if the user is logged in or not. If not, it will show the login form.
if ($use_auth) {
if (isset($_SESSION[FM_SESSION_ID]['logged'], $auth_users[$_SESSION[FM_SESSION_ID]['logged']])) {
// Logged
} elseif (isset($_POST['fm_usr'], $_POST['fm_pwd'], $_POST['token'])) {
// Logging In
sleep(1);
if(function_exists('password_verify')) {
if (isset($auth_users[$_POST['fm_usr']]) && isset($_POST['fm_pwd']) && password_verify($_POST['fm_pwd'], $auth_users[$_POST['fm_usr']]) && verifyToken($_POST['token'])) {
$_SESSION[FM_SESSION_ID]['logged'] = $_POST['fm_usr'];
fm_set_msg(lng('You are logged in'));
fm_redirect(FM_SELF_URL);
} else {
unset($_SESSION[FM_SESSION_ID]['logged']);
fm_set_msg(lng('Login failed. Invalid username or password'), 'error');
fm_redirect(FM_SELF_URL);
}
} else {
fm_set_msg(lng('password_hash not supported, Upgrade PHP version'), 'error');;
}
} else {
// Form
unset($_SESSION[FM_SESSION_ID]['logged']);
fm_show_header_login();
?>
Experience gay dating at its finest with our official website
Our site is made for black gay males and features a variety of features to help make your relationship go through the best it can be.from our extensive user database to the user-friendly platform, we have everything you need to find the perfect match.our site is packed with features to produce your dating feel the best it could be.from our extensive user database to the user-friendly platform, we’ve all you need to get the perfect match.our site is made for black gay males and features many different features to produce your dating experience the most readily useful it can be.from our substantial member database to your user-friendly platform, we’ve all you need to discover the perfect match.our website is full of features to produce your dating go through the best it could be.from our substantial user database to your user-friendly platform, we now have all you need to find the perfect match.experience gay relationship at its finest with our official website.our website is made for black gay men and features a variety of features in order to make your dating go through the best it may be.from our extensive member database to the user-friendly platform, we now have all you need to discover the perfect match.our website is filled with features to make your relationship feel the most useful it may be.from our substantial user database to our user-friendly platform, we’ve everything you need to discover the perfect match.our website is made for black gay guys and features a number of features to create your relationship go through the most useful it may be.from our considerable member database to our user-friendly platform, we have everything you need to find the perfect match.experience gay dating at its best with this official website.our website is made for black gay men and features a variety of features to make your dating go through the most useful it may be.from our considerable member database to your user-friendly platform, we have everything you need to discover the perfect match.our website is full of features to produce your dating go through the best it could be.from our extensive member database to our user-friendly platform, we have everything you need to get the perfect match.experience gay relationship at its finest with our official website.our website is made for black gay males and features a number of features in order to make your relationship experience the best it can be.from our extensive member database to our user-friendly platform, we’ve all you need to get the perfect match.our site is filled with features to produce your dating feel the best it could be.from our extensive user database to the user-friendly platform, we’ve all you need to find the perfect match.experience gay dating at its best with your official website.our website is made for black gay guys and features many different features to produce your dating feel the best it could be.from our extensive member database to our user-friendly platform, we’ve all you need to get the perfect match.our website is packed with features to make your dating feel the most readily useful it may be.from our extensive user database to our user-friendly platform, we have all you need to get the perfect match.experience gay relationship at its best with our official website.our site is made for black gay guys and features a variety of features to help make your relationship go through the best it may be.from our substantial member database to the user-friendly platform, we’ve everything you need to discover the perfect match.our site is packed with features to help make your relationship feel the most readily useful it can be.from our substantial user database to the user-friendly platform, we’ve all you need to find the perfect match.experience gay relationship at its finest with this official website.our website is made for black gay men and features many different features to create your dating go through the most readily useful it can be.from our extensive member database to your user-friendly platform, we have all you need to get the perfect match.our website is filled with features to make your dating go through the most readily useful it may be.from our substantial member database to the user-friendly platform, we’ve everything you need to discover the perfect match.experience gay relationship at its finest with this official website.our website is made for black gay guys and features a number of features in order to make your dating feel the most useful it may be.from our substantial user database to the user-friendly platform, we now have everything you need to get the perfect match.our website is full of features to produce your dating go through the best it can be.from our extensive user database to our user-friendly platform, we have everything you need to discover the perfect match.experience gay relationship at its finest with this official website.our website is designed for black gay males and features many different features in order to make your dating feel the most readily useful it may be.from our
what exactly is a web black hookup?
A web black hookup is an informal sexual encounter that occurs on the internet.this variety of encounter is normally regarded as being less serious than a traditional intimate relationship, and is frequently considered a way to explore sexual interests that might be hard or impossible to pursue in a far more traditional environment.web black hookups can be a way to explore brand new sexual dreams, or to connect with a person who you do not have the ability black hook up to meet in a far more conventional environment.many people view web black hookups in an effort to avoid the problems and dedication connected with a conventional sexual relationship.web black hookups may be ways to explore your intimate desires without fretting about the effects of a longer-term relationship.web black hookups can be an enjoyable and exciting way to explore your sexual interests.however, they need to not be considered an alternative for a far more old-fashioned relationship.if you are looking for a serious relationship, a web black hookup is not the way to pursue it.
How to get started with a web black hookup
If you are considering a way to begin with a web black hookup, this guide is for you. in this essay, we will describe the fundamentals of how to start off and discover the right person. first, you’ll need to find a website or application that enables black hookups. there are numerous of solutions, and you can find one that’s right for you by trying to find “web black hookup” or “black hookup website.” once you’ve found a web page or application, you will need to produce a free account. that’s where you’ll need to provide some details about yourself, including your age, intercourse, and location. when you have produced an account, you will have to find someone to attach with. this can be done by searching your website’s user profiles or utilizing the site’s search function. when you have discovered somebody you wish to connect with, you will have to create a profile. this can enable the other person to learn a bit more about you, and it’ll also permit you to begin messaging each other. once you have produced a profile and started messaging one another, you will have to agree to a hookup. this can involve exchanging contact information and agreeing to meet at a particular time and spot. when you have agreed to a hookup, you’ll need to get together at the agreed-upon some time spot. once you’ve met up, you’ll need to have sex. this is often an easy process, and all sorts of you will need is a good mindset and a willingness to have enjoyable. general, getting started off with a web black hookup is straightforward and simple. just be sure to analyze the choices available in order to find an online site or app that is correct for you personally, create a merchant account, find someone to attach with, and consent to a hookup.
Connect with like-minded singles on web black hookup
If you’re looking for a method to connect to like-minded singles on the web, then you should take a look at web black hookup. this online dating service is made for people that are in search of a critical relationship, and it’s really ideal for those who are shopping for a black partner. the web black hookup is a good way to satisfy new individuals, and it’s perfect for those who are trying to find a critical relationship. this site is designed for folks who are looking for a black partner, and it is ideal for people who are interested in a critical relationship.