Reupload after bitbucket wipe

This commit is contained in:
Chris Lynch
2013-12-25 18:43:29 -05:00
commit 965453909e
5942 changed files with 99045 additions and 0 deletions
+33
View File
@@ -0,0 +1,33 @@
<?php
define('IN_HLSTATS', true);
// Load required files
require('config.php');
require(INCLUDE_PATH . '/class_db.php');
require(INCLUDE_PATH . '/functions.php');
$db_classname = 'DB_' . DB_TYPE;
if (class_exists($db_classname))
{
$db = new $db_classname(DB_ADDR, DB_USER, DB_PASS, DB_NAME, DB_PCONNECT);
}
else
{
error('Database class does not exist. Please check your config.php file for DB_TYPE');
}
$game = valid_request($_GET['game']);
$search = valid_request($_POST['value']);
$game_escaped = $db->escape($game);
$search_escaped = $db->escape($search);
if (is_string($search) && strlen($search) >= 3 && strlen($search) < 64) {
// Building the query
$sql = "SELECT hlstats_PlayerNames.name FROM hlstats_PlayerNames INNER JOIN hlstats_Players ON hlstats_PlayerNames.playerId = hlstats_Players.playerId WHERE game = '{$game_escaped}' AND name LIKE '{$search_escaped}%'";
$result = $db->query($sql);
while($row=$db->fetch_row($result)) {
print "<li class=\"playersearch\">" . $row[0] . "</li>\n";
}
}
?>
+95
View File
@@ -0,0 +1,95 @@
<?php
/*
HLstatsX Community Edition - Real-time player and clan rankings and statistics
Copyleft (L) 2008-20XX Nicholas Hastings (nshastings@gmail.com)
http://www.hlxcommunity.com
HLstatsX Community Edition is a continuation of
ELstatsNEO - Real-time player and clan rankings and statistics
Copyleft (L) 2008-20XX Malte Bayer (steam@neo-soft.org)
http://ovrsized.neo-soft.org/
ELstatsNEO is an very improved & enhanced - so called Ultra-Humongus Edition of HLstatsX
HLstatsX - Real-time player and clan rankings and statistics for Half-Life 2
http://www.hlstatsx.com/
Copyright (C) 2005-2007 Tobias Oetzel (Tobi@hlstatsx.com)
HLstatsX is an enhanced version of HLstats made by Simon Garner
HLstats - Real-time player and clan rankings and statistics for Half-Life
http://sourceforge.net/projects/hlstats/
Copyright (C) 2001 Simon Garner
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
For support and installation notes visit http://www.hlxcommunity.com
*/
if ( !defined('IN_HLSTATS') ) { die('Do not access this file directly'); }
// DB_ADDR - The address of the database server, in host:port format.
// (You might also try setting this to e.g. ":/tmp/mysql.sock" to
// use a Unix domain socket, if your mysqld is on the same box as
// your web server.)
define("DB_ADDR", "localhost");
// DB_USER - The username to connect to the database as
define("DB_USER", "");
// DB_PASS - The password for DB_USER
define("DB_PASS", "");
// DB_NAME - The name of the database
define("DB_NAME", "");
// DB_TYPE - The database server type. Only "mysql" is supported currently
define("DB_TYPE", "mysql");
// DB_PCONNECT - Set to 1 to use persistent database connections. Persistent
// connections can give better performance, but may overload
// the database server. Set to 0 to use non-persistent
// connections.
define("DB_PCONNECT", 0);
// INCLUDE_PATH - Filesystem path to the includes directory, relative to hlstats.php. This must be specified
// as a relative path.
//
// Under Windows, make sure you use forward slash (/) instead
// of back slash (\) and use absolute paths if you are having any issue.
define("INCLUDE_PATH", "./includes");
// PAGE_PATH - Filesystem path to the pages directory, relative to hlstats.php. This must be specified
// as a relative path.
//
// Under Windows, make sure you use forward slash (/) instead
// of back slash (\) and use absolute paths if you are having any issue.
define("PAGE_PATH", "./pages");
// PAGE_PATH - Filesystem path to the hlstatsimg directory, relative to hlstats.php. This must be specified
// as a relative path.
//
// Under Windows, make sure you use forward slash (/) instead
// of back slash (\) and use absolute paths if you are having any issue.
//
// Note: the progress directory under hlstatsimg must be writable!!
define("IMAGE_PATH", "./hlstatsimg");
// How often dynamicly generated images are updated (in seconds)
define("IMAGE_UPDATE_INTERVAL", 300);
//define("DB_DEBUG", true);
?>
+61
View File
@@ -0,0 +1,61 @@
ul.autocompleter-choices
{
position: absolute;
margin: 0;
padding: 0;
list-style: none;
border: 1px solid #7c7c7c;
border-left-color: #c3c3c3;
border-right-color: #c3c3c3;
border-bottom-color: #ddd;
background-color: #fff;
text-align: left;
font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
z-index: 50;
}
ul.autocompleter-choices li
{
position: relative;
margin: -2px 0 0 0;
padding: 0.2em 1.5em 0.2em 1em;
display: block;
float: none !important;
cursor: pointer;
font-weight: normal;
white-space: nowrap;
font-size: 1em;
line-height: 1.5em;
}
ul.autocompleter-choices li.autocompleter-selected
{
background-color: #444;
color: #fff;
}
ul.autocompleter-choices span.autocompleter-queried
{
display: inline;
float: none;
font-weight: bold;
margin: 0;
padding: 0;
}
ul.autocompleter-choices li.autocompleter-selected span.autocompleter-queried
{
color: #9FCFFF;
}
li.playersearch {
color: #000;
}
input.autocompleter-loading
{
background-image: url(../css/spinner.gif);
background-repeat: no-repeat;
background-position: right 50%;
}
+141
View File
@@ -0,0 +1,141 @@
/**
* SqueezeBox - Expandable Lightbox
*
* Allows to open various content as modal,
* centered and animated box.
*
* @version 1.1 rc4
*
* @license MIT-style license
* @author Harald Kirschner <mail [at] digitarald.de>
* @copyright Author
*/
#sbox-overlay {
position: absolute;
background-color: #000;
left: 0px;
top: 0px;
zoom: 1;
}
#sbox-window {
position: absolute;
background-color: #fff;
text-align: left;
overflow: visible;
padding: 10px;
/* invalid values, but looks smoother! */
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
}
#sbox-btn-close {
position: absolute;
width: 30px;
height: 30px;
right: -15px;
top: -15px;
background: url(closebox.png) no-repeat center;
border: none;
}
.sbox-window-ie6 #sbox-btn-close {
background-image: url(closebox.gif);
}
.sbox-loading #sbox-content {
background-image: url(spinner.gif);
background-repeat: no-repeat;
background-position: center;
}
#sbox-content {
clear: both;
overflow: auto;
background-color: #fff;
height: 100%;
width: 100%;
}
.sbox-content-image#sbox-content {
overflow: visible;
}
#sbox-image {
display: block;
}
.sbox-content-image img {
display: block;
width: 100%;
height: 100%;
}
.sbox-content-iframe#sbox-content {
overflow: visible;
}
/* Hides scrollbars */
.body-overlayed {
overflow: hidden;
}
/* Hides flash (Firefox problem) and selects (IE) */
.body-overlayed embed, .body-overlayed object, .body-overlayed select {
visibility: hidden;
}
#sbox-window embed, #sbox-window object, #sbox-window select {
visibility: visible;
}
/* Shadows */
.sbox-bg {
position: absolute;
width: 33px;
height: 40px;
}
.sbox-bg-n {
left: 0;
top: -40px;
width: 100%;
background: url(bg_n.png) repeat-x;
}
.sbox-bg-ne {
right: -33px;
top: -40px;
background: url(bg_ne.png) no-repeat;
}
.sbox-bg-e {
right: -33px;
top: 0;
height: 100%;
background: url(bg_e.png) repeat-y;
}
.sbox-bg-se {
right: -33px;
bottom: -40px;
background: url(bg_se.png) no-repeat;
}
.sbox-bg-s {
left: 0;
bottom: -40px;
width: 100%;
background: url(bg_s.png) repeat-x;
}
.sbox-bg-sw {
left: -33px;
bottom: -40px;
background: url(bg_sw.png) no-repeat;
}
.sbox-bg-w {
left: -33px;
top: 0;
height: 100%;
background: url(bg_w.png) repeat-y;
}
.sbox-bg-nw {
left: -33px;
top: -40px;
background: url(bg_nw.png) no-repeat;
}
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 990 B

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 986 B

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 985 B

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 981 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 351 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

+82
View File
@@ -0,0 +1,82 @@
.weapon {text-decoration: none;}
input, textarea, select {font-family: Verdana, Arial, sans-serif;font-size: 11px;}
input.textbox, input.checkbox {border-width: 1px;}
input.submit {height: 22px;}
input.smallsubmit {font-size: 9px;height: 20px;}
tt { font-family: Arial, Courier New, Courier, fixed; font-size: 12px;}
BODY {font: 10pt Arial; }
TD {font: 11pt Arial; }
h2 {font: 11px Arial; }
h1 {font: 11px Arial; }
h3 {font: 11px Arial; }
.helpwindow {
position:fixed;
top:10px;
left:10px;
width:95%;
visibility:hidden;
border:thin solid red;
background-color:#AAAAAA;
color:#FFFFFF;
font-family: Courier New, Courier, Arial, fixed;
font-size:10pt;
}
table#accordion
{
border-collapse: collapse;
}
table#accordion tr.toggler td
{
border-width: 0 0 0px 1px;
}
#footer {
text-align: center;
}
.header_gameslist {
margin: 0 auto;
float: right;
position: absolute;
top:0;
right:0;
}
ul#header_gameslist{
margin: auto;
text-align: right;
}
ul#header_gameslist li{
list-style: none;
float: left;
padding: 0 10px;
}
#ingame .headerblock a:visited a:link {
color: #FFFFFF;
}
.location .arrow {
font-size: 14px;
}
.warning {
border: thin solid red;
padding: 1em;
}
.warning .warning-heading {
font-size: 2em;
}
.warning .warning-text {
font-size: 1em;
}
+233
View File
@@ -0,0 +1,233 @@
<?php
/*
HLstatsX Community Edition - Real-time player and clan rankings and statistics
Copyleft (L) 2008-20XX Nicholas Hastings (nshastings@gmail.com)
http://www.hlxcommunity.com
HLstatsX Community Edition is a continuation of
ELstatsNEO - Real-time player and clan rankings and statistics
Copyleft (L) 2008-20XX Malte Bayer (steam@neo-soft.org)
http://ovrsized.neo-soft.org/
ELstatsNEO is an very improved & enhanced - so called Ultra-Humongus Edition of HLstatsX
HLstatsX - Real-time player and clan rankings and statistics for Half-Life 2
http://www.hlstatsx.com/
Copyright (C) 2005-2007 Tobias Oetzel (Tobi@hlstatsx.com)
HLstatsX is an enhanced version of HLstats made by Simon Garner
HLstats - Real-time player and clan rankings and statistics for Half-Life
http://sourceforge.net/projects/hlstats/
Copyright (C) 2001 Simon Garner
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
For support and installation notes visit http://www.hlxcommunity.com
*/
define('IN_HLSTATS', true);
require('config.php');
$historical_cache=0;
if(defined('HISTORICAL_CACHE'))
{
$historical_cache=constant('HISTORICAL_CACHE');
}
if($historical_cache==1)
{
$rawmd5=md5(http_build_query($_REQUEST));
$dir1=substr($rawmd5,0,1);
$dir2=substr($rawmd5,1,1);
$cachetarget=sprintf("cache/%s/%s/%s", $dir1, $dir2, $rawmd5);
@mkdir("cache/$dir1");
@mkdir("cache/$dir1/$dir2");
if(file_exists($cachetarget))
{
file_put_contents("cache/cachehit",$cachetarget . "\n", FILE_APPEND);
echo file_get_contents($cachetarget);
die;
}
}
session_start();
if((!empty($_GET['logout'])) && $_GET['logout'] == '1') {
unset($_SESSION['loggedin']);
header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']);
die;
}
// Several stuff added by Malte Bayer
global $scripttime, $siteurlneo;
$scripttime = microtime(true);
$siteurlneo='http://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'],0,strpos($_SERVER['PHP_SELF'],strrchr($_SERVER['PHP_SELF'],'/'))+1);
$siteurlneo=str_replace('\\','/',$siteurlneo);
// Several Stuff end
foreach ($_SERVER as $key => $entry) {
if ($key !== 'HTTP_COOKIE') {
$search_pattern = array('/<script>/', '/<\/script>/', '/[^A-Za-z0-9.\-\/=:;_?#&~]/');
$replace_pattern = array('', '', '');
$entry = preg_replace($search_pattern, $replace_pattern, $entry);
if ($key == "PHP_SELF") {
if ((strrchr($entry, '/') !== '/hlstats.php') &&
(strrchr($entry, '/') !== '/ingame.php') &&
(strrchr($entry, '/') !== '/show_graph.php') &&
(strrchr($entry, '/') !== '/sig.php') &&
(strrchr($entry, '/') !== '/sig2.php') &&
(strrchr($entry, '/') !== '/index.php') &&
(strrchr($entry, '/') !== '/status.php') &&
(strrchr($entry, '/') !== '/top10.php') &&
(strrchr($entry, '/') !== '/config.php') &&
(strrchr($entry, '/') !== '/') &&
($entry !== '')) {
header("Location: http://$siteurlneo/hlstats.php");
exit;
}
}
$_SERVER[$key] = $entry;
}
}
@header('Content-Type: text/html; charset=utf-8');
// do not report NOTICE warnings
@error_reporting(E_ALL ^ E_NOTICE);
////
//// Initialisation
////
define('PAGE', 'HLSTATS');
///
/// Classes
///
// Load required files
require(INCLUDE_PATH . '/class_db.php');
require(INCLUDE_PATH . '/class_table.php');
require(INCLUDE_PATH . '/functions.php');
$db_classname = 'DB_' . DB_TYPE;
if ( class_exists($db_classname) )
{
$db = new $db_classname(DB_ADDR, DB_USER, DB_PASS, DB_NAME, DB_PCONNECT);
}
else
{
error('Database class does not exist. Please check your config.php file for DB_TYPE');
}
$g_options = getOptions();
if (!isset($g_options['scripturl'])) {
$g_options['scripturl'] = isset($_SERVER['PHP_SELF']) ? $_SERVER['PHP_SELF'] : getenv('PHP_SELF');
}
////
//// Main
////
$game = valid_request(isset($_GET['game'])?$_GET['game']:'', 0);
if (!$game)
{
$game = isset($_SESSION['game'])?$_SESSION['game']:'';
}
else
{
$_SESSION['game'] = $game;
}
if (!$realgame && $game)
{
$realgame = getRealGame($game);
$_SESSION['realgame'] = $realgame;
}
$mode = isset($_GET['mode'])?$_GET['mode']:'';
$valid_modes = array(
'players',
'clans',
'weapons',
'roles',
'rolesinfo',
'maps',
'actions',
'claninfo',
'playerinfo',
'weaponinfo',
'mapinfo',
'actioninfo',
'playerhistory',
'playersessions',
'playerawards',
'search',
'admin',
'help',
'bans',
'servers',
'chathistory',
'ranks',
'rankinfo',
'ribbons',
'ribboninfo',
'chat',
'globalawards',
'awards',
'dailyawardinfo',
'countryclans',
'countryclansinfo',
'teamspeak',
'ventrilo',
'updater',
'profile'
);
if (file_exists('./updater') && $mode != 'updater')
{
pageHeader(array('Update Notice'), array('Update Notice' => ''));
echo "<div class=\"warning\">\n" .
"<span class=\"warning-heading\"><img src=\"".IMAGE_PATH."/warning.gif\" alt=\"Warning\"> Warning:</span><br />\n" .
"<span class=\"warning-text\">The updater folder was detected in your web directory.<br />
To perform a Database Update, please go to <strong><a href=\"{$g_options['scripturl']}?mode=updater\">HLX:CE Database Updater</a></strong> to perform the database update.<br /><br />
<strong>If you have already performed the database update, <strong>you must delete the \"updater\" folder from your web folder.</span>\n</div>";
pageFooter();
die();
}
if ( !in_array($mode, $valid_modes) )
{
$mode = 'contents';
}
if ( file_exists(PAGE_PATH . "/$mode.php") )
{
@include(PAGE_PATH . "/$mode.php");
pageFooter();
}
else
{
header('HTTP/1.1 404 File Not Found', false, 404);
error('Unable to find ' . PAGE_PATH . "/$mode.php");
pageFooter();
}
?>
Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 71 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 826 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 581 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 556 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 992 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 539 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 599 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1005 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1006 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1006 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1006 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 571 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1006 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 582 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1006 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 962 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1006 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1006 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1006 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1006 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1006 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1005 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1003 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 638 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1006 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1006 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 823 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 998 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1006 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1005 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1000 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1006 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1006 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1006 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1004 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1006 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 359 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 999 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1006 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1006 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1005 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 598 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1006 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1001 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 990 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 856 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1006 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1006 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1006 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 579 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 999 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1006 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1006 B

Some files were not shown because too many files have changed in this diff Show More