Index: src/version_info/auto_updater-2_0_5.php
===================================================================
--- src/version_info/auto_updater-2_0_5.php	(revision 481aeda901c68da7cf8e379d9647936efe4e5e39)
+++ src/version_info/auto_updater-2_0_5.php	(revision 481aeda901c68da7cf8e379d9647936efe4e5e39)
@@ -1,5 +0,0 @@
-<?php
-die('');
-?>
-version: AutoUpdater v2.0.5
-date: 2018-08-01 09:45
\ No newline at end of file
Index: src/gambio_installer/sql/admin_access_group_items.sql
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/gambio_installer/sql/admin_access_group_items.sql	(revision 481aeda901c68da7cf8e379d9647936efe4e5e39)
+++ src/gambio_installer/sql/admin_access_group_items.sql	(date 1552064681000)
@@ -254,7 +254,9 @@
 (56, 'KlarnaHub', 'CONTROLLER'),
 (56, 'PaymentMatchingHub', 'CONTROLLER'),
 (56, 'KlarnaHubSettlements', 'CONTROLLER'),
+(57, 'AutoUpdaterAjax', 'CONTROLLER'),
 (57, 'AutoUpdater', 'CONTROLLER'),
+(57, 'AutoUpdaterShopExcludedAjax', 'CONTROLLER'),
 (58, 'GoogleShopping', 'CONTROLLER'),
 (58, 'GoogleShoppingAjax', 'CONTROLLER'),
 (59, 'GoogleAdWords', 'CONTROLLER'),
Index: tools/gulp_tasks/general/gulp_general_composer.js
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tools/gulp_tasks/general/gulp_general_composer.js	(revision 481aeda901c68da7cf8e379d9647936efe4e5e39)
+++ tools/gulp_tasks/general/gulp_general_composer.js	(date 1552065692000)
@@ -84,10 +84,23 @@
 	function task() {
 		del.sync('src/vendor');
 		
-		// Move the auto updater into the GXModules directory.
-		del.sync('src/GXModules/Gambio/UpdateDownloader');
-		gulp.src(['composer_components/gambio/auto-updater/src/GXModules/**/*'])
-			.pipe(gulp.dest('src/GXModules'));
+		// Move the auto updater into the shop
+		gulp.src([
+			'composer_components/gambio/auto-updater/src/admin/**/*'
+		])
+			.pipe(gulp.dest('src/admin'));
+		gulp.src([
+			'composer_components/gambio/auto-updater/src/GXMainComponents/**/*'
+		])
+			.pipe(gulp.dest('src/GXMainComponents'));
+		gulp.src([
+			'composer_components/gambio/auto-updater/src/lang/**/*'
+		])
+			.pipe(gulp.dest('src/lang'));
+		gulp.src([
+			'composer_components/gambio/auto-updater/src/system/**/*'
+		])
+			.pipe(gulp.dest('src/system'));
 		
 		// Move the responsive file manager to the src directory. 
 		gulp.src(['composer_components/gambio/responsive-filemanager/**/*'])
Index: .gitignore
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- .gitignore	(revision 481aeda901c68da7cf8e379d9647936efe4e5e39)
+++ .gitignore	(date 1552066263000)
@@ -101,3 +101,10 @@
 /src/GXModules/Gambio/UpdateDownloader/*
 /src/images/flags/**/*.svg
 !/src/images/flags/**/index.html
+/src/admin/auto_updater.php
+/src/admin/html/content/auto_updater
+/src/GXMainComponents/Controllers/HttpView/Admin/auto_updater
+/src/GXMainComponents/Extensions/AutoUpdater
+/src/lang/english/original_sections/admin/auto_updater
+/src/lang/german/original_sections/admin/auto_updater
+/src/system/conf/admin_menu/menu_auto_updater.xml
\ No newline at end of file
Index: src/gambio_installer/sql/gm_configuration.sql
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/gambio_installer/sql/gm_configuration.sql	(revision 481aeda901c68da7cf8e379d9647936efe4e5e39)
+++ src/gambio_installer/sql/gm_configuration.sql	(date 1552064597000)
@@ -380,8 +380,6 @@
 	('GM_CREATE_ACCOUNT_VVCODE', 'false'),
 	('GM_CREATE_GUEST_ACCOUNT_VVCODE', 'false'),
 	('PRODUCT_REVIEW_NAME', 'short_nothing'),
-	('UPDATE_DOWNLOADER_CHECK_URL', 'https://updates.gambio-support.de/v2/check.php'),
-	('UPDATE_DOWNLOADER_NOTIFY_URL', 'https://updates.gambio-support.de/v2/callingHome.php'),
 	('LOG_IP_CALLBACK', '0'),
 	('LOG_IP_CONTACT', '0'),
 	('LOG_IP_TELL_A_FRIEND', '0'),
@@ -404,4 +402,7 @@
 	('GALLERY_LIGHTBOX', 'false'),
 	('ENABLE_JS_HYPHENATION', 'false'),
 	('ENABLE_LIVE_SEARCH', 'true'),
-	('PDF_FOOTER_REPLACE_COLUMN', 'null');
+	('PDF_FOOTER_REPLACE_COLUMN', 'null'),
+	('AUTO_UPDATER_UPDATES_URL', 'https://updates.gambio-support.de/v2/check.php'),
+	('AUTO_UPDATER_FEEDBACK_URL', 'https://updates.gambio-support.de/v2/callingHome.php'),
+	('AUTO_UPDATER_ACCEPT_DATA_PROCESSING', 'false');
Index: composer.lock
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- composer.lock	(revision 481aeda901c68da7cf8e379d9647936efe4e5e39)
+++ composer.lock	(date 1552063901000)
@@ -1,10 +1,10 @@
 {
     "_readme": [
         "This file locks the dependencies of your project to a known state",
-        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
+        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "content-hash": "6c2664386c2a0a8f4df1ad06fd085dd1",
+    "content-hash": "a49bb5c6979498b5b57b09170ca9a8b3",
     "packages": [
         {
             "name": "davefx/phplot",
@@ -100,11 +100,16 @@
         },
         {
             "name": "gambio/auto-updater",
-            "version": "v2.0.5",
+            "version": "v2.1.2",
             "source": {
                 "type": "git",
                 "url": "https://sources.gambio-server.net/gambio/auto-updater.git",
-                "reference": "5e44ed0fd211766078569f220b3c97ad2dfdc2cc"
+                "reference": "383067d9acdc4bb234dd4fb3b967dc1943c95f6c"
+            },
+            "require": {
+                "ext-curl": "*",
+                "league/flysystem": "^1.1@dev",
+                "league/flysystem-sftp": "dev-master"
             },
             "type": "library",
             "autoload": {
@@ -112,11 +117,16 @@
                     "PackageBuilder\\": "packageBuilder/classes/"
                 }
             },
+            "scripts": {
+                "create-docs": [
+                    "mv ./src/GXMainComponents/Extensions/AutoUpdater/Vendor ./Vendor && php phpdoc.phar -d ./src/GXMainComponents -t ./docs && mv ./Vendor ./src/GXMainComponents/Extensions/AutoUpdater/Vendor"
+                ]
+            },
             "license": [
                 "GPL-2.0"
             ],
             "description": "AutoUpdater for the Gambio Shop.",
-            "time": "2018-08-08T08:58:07+00:00"
+            "time": "2019-01-17T08:10:20+00:00"
         },
         {
             "name": "gambio/codeigniter-db",
@@ -385,6 +395,132 @@
             "time": "2017-03-20T21:17:32+00:00"
         },
         {
+            "name": "league/flysystem",
+            "version": "dev-master",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/thephpleague/flysystem.git",
+                "reference": "0a342db3a10cb31862e83d550f67c2d087825467"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/0a342db3a10cb31862e83d550f67c2d087825467",
+                "reference": "0a342db3a10cb31862e83d550f67c2d087825467",
+                "shasum": ""
+            },
+            "require": {
+                "ext-fileinfo": "*",
+                "php": ">=5.5.9"
+            },
+            "conflict": {
+                "league/flysystem-sftp": "<1.0.6"
+            },
+            "require-dev": {
+                "phpspec/phpspec": "^3.4",
+                "phpunit/phpunit": "^5.7.10"
+            },
+            "suggest": {
+                "ext-fileinfo": "Required for MimeType",
+                "ext-ftp": "Allows you to use FTP server storage",
+                "ext-openssl": "Allows you to use FTPS server storage",
+                "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2",
+                "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3",
+                "league/flysystem-azure": "Allows you to use Windows Azure Blob storage",
+                "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching",
+                "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem",
+                "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files",
+                "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib",
+                "league/flysystem-webdav": "Allows you to use WebDAV storage",
+                "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter",
+                "spatie/flysystem-dropbox": "Allows you to use Dropbox storage",
+                "srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.1-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "League\\Flysystem\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Frank de Jonge",
+                    "email": "info@frenky.net"
+                }
+            ],
+            "description": "Filesystem abstraction: Many filesystems, one API.",
+            "keywords": [
+                "Cloud Files",
+                "WebDAV",
+                "abstraction",
+                "aws",
+                "cloud",
+                "copy.com",
+                "dropbox",
+                "file systems",
+                "files",
+                "filesystem",
+                "filesystems",
+                "ftp",
+                "rackspace",
+                "remote",
+                "s3",
+                "sftp",
+                "storage"
+            ],
+            "time": "2019-02-14T07:18:57+00:00"
+        },
+        {
+            "name": "league/flysystem-sftp",
+            "version": "dev-master",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/thephpleague/flysystem-sftp.git",
+                "reference": "61bc5a6ade892b5ac81e62b8c21be2c1798acc2a"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/thephpleague/flysystem-sftp/zipball/61bc5a6ade892b5ac81e62b8c21be2c1798acc2a",
+                "reference": "61bc5a6ade892b5ac81e62b8c21be2c1798acc2a",
+                "shasum": ""
+            },
+            "require": {
+                "league/flysystem": "~1.0",
+                "php": ">=5.6.0",
+                "phpseclib/phpseclib": "~2.0"
+            },
+            "require-dev": {
+                "mockery/mockery": "0.9.*",
+                "phpunit/phpunit": "^5.7.25"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "League\\Flysystem\\Sftp\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Frank de Jonge",
+                    "email": "info@frenky.net"
+                }
+            ],
+            "description": "Flysystem adapter for SFTP",
+            "time": "2019-01-07T11:56:21+00:00"
+        },
+        {
             "name": "maximebf/debugbar",
             "version": "v1.15.0",
             "source": {
@@ -1085,6 +1221,17 @@
         {
             "name": "roave/security-advisories",
             "version": "dev-master",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/Roave/SecurityAdvisories.git",
+                "reference": "0abc14e0df387fe74b4b32e0b8647d1639256d38"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/0abc14e0df387fe74b4b32e0b8647d1639256d38",
+                "reference": "0abc14e0df387fe74b4b32e0b8647d1639256d38",
+                "shasum": ""
+            },
             "conflict": {
                 "3f/pygmentize": "<1.2",
                 "adodb/adodb-php": "<5.20.12",
@@ -1255,7 +1402,7 @@
                 }
             ],
             "description": "Prevents installation of composer packages with known security vulnerabilities: no API, simply require it",
-            "time": "2018-09-17T20:20:31+00:00"
+            "time": "2018-08-14T15:39:17+00:00"
         },
         {
             "name": "sentry/sentry",
@@ -2419,6 +2566,7 @@
                 "testing",
                 "xunit"
             ],
+            "abandoned": true,
             "time": "2018-02-07T06:47:59+00:00"
         },
         {
@@ -3383,6 +3531,7 @@
                 "syntax",
                 "tree"
             ],
+            "abandoned": true,
             "time": "2018-04-12T08:44:34+00:00"
         },
         {
@@ -3711,7 +3860,7 @@
         }
     ],
     "aliases": [],
-    "minimum-stability": "stable",
+    "minimum-stability": "dev",
     "stability-flags": {
         "gambio/codeigniter-db": 20,
         "roave/security-advisories": 20,
@@ -3722,7 +3871,7 @@
     "prefer-stable": false,
     "prefer-lowest": false,
     "platform": {
-        "php": ">=5.4.0"
+        "php": ">=5.6.0"
     },
     "platform-dev": []
 }
Index: composer.json
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- composer.json	(revision 481aeda901c68da7cf8e379d9647936efe4e5e39)
+++ composer.json	(date 1552063939000)
@@ -40,11 +40,11 @@
 		"maximebf/debugbar": "^1.15",
 	    "pclzip/pclzip": "2.8.2",
 		"gambio/responsive-filemanager": "dev-master",
-		"gambio/auto-updater": "v2.0.5",
 		"monolog/monolog": "^1.23",
 		"sentry/sentry": "^1.9",
 		"mtdowling/cron-expression": "~1.2.1",
-	    "guzzlehttp/guzzle": "~6.0"
+	    "guzzlehttp/guzzle": "~6.0",
+		"gambio/auto-updater": "v2.1.2"
     },
     "require-dev": {
 		"phpunit/phpunit": "^7.0",
Index: src/version_info/auto_updater-2_1_2.php
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/version_info/auto_updater-2_1_2.php	(date 1552063995000)
+++ src/version_info/auto_updater-2_1_2.php	(date 1552063995000)
@@ -0,0 +1,5 @@
+<?php
+die('');
+?>
+version: AutoUpdater v2.1.2
+date: 2019-01-17 08:48
\ No newline at end of file
Index: src/gambio_updater/updates/v3.12.0.0/dependent.inc.php
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/gambio_updater/updates/v3.12.0.0/dependent.inc.php	(revision 481aeda901c68da7cf8e379d9647936efe4e5e39)
+++ src/gambio_updater/updates/v3.12.0.0/dependent.inc.php	(date 1552064400000)
@@ -51,3 +51,83 @@
 		}
 	}
 }
+
+
+// AutoUpdater v2.1.2
+
+/* @var \DatabaseModel $this */
+
+// Add or update AUTO_UPDATER_UPDATES_URL gm_configuration value
+$check = $this->query('SELECT * FROM `gm_configuration` WHERE `gm_key` = "AUTO_UPDATER_UPDATES_URL";', true);
+if($check->num_rows < 1)
+{
+	$t_success &= $this->query('
+		INSERT INTO `gm_configuration`
+		SET `gm_key`    = "AUTO_UPDATER_UPDATES_URL",
+			`gm_value`  = "https://updates.gambio-support.de/v2/check.php";
+	') !== false;
+}
+else
+{
+	$t_success &= $this->query('
+		UPDATE  `gm_configuration`
+		SET     `gm_value`  = "https://updates.gambio-support.de/v2/check.php"
+		WHERE   `gm_key`    = "AUTO_UPDATER_UPDATES_URL";
+	') !== false;
+}
+
+// Add or update AUTO_UPDATER_FEEDBACK_URL gm_configuration value
+$check = $this->query('SELECT * FROM `gm_configuration` WHERE `gm_key` = "AUTO_UPDATER_FEEDBACK_URL";', true);
+if($check->num_rows < 1)
+{
+	$t_success &= $this->query('
+		INSERT INTO `gm_configuration`
+		SET `gm_key`    = "AUTO_UPDATER_FEEDBACK_URL",
+			`gm_value`  = "https://updates.gambio-support.de/v2/callingHome.php";
+	') !== false;
+}
+else
+{
+	$t_success &= $this->query('
+		UPDATE  `gm_configuration`
+		SET     `gm_value`  = "https://updates.gambio-support.de/v2/callingHome.php"
+		WHERE   `gm_key`    = "AUTO_UPDATER_FEEDBACK_URL";
+	') !== false;
+}
+
+// Add or update AUTO_UPDATER_FEEDBACK_URL gm_configuration value
+$check  = $this->query('SELECT * FROM `gm_configuration` WHERE `gm_key` = "UPDATE_DOWNLOADER_ACCEPT_DATA_PRIVACY";',
+                       true);
+$check2 = $this->query('SELECT * FROM `gm_configuration` WHERE `gm_key` = "AUTO_UPDATER_ACCEPT_DATA_PROCESSING";',
+                       true);
+if($check->num_rows > 0 && $check->num_rows < 1)
+{
+	$t_success &= $this->query('UPDATE `gm_configuration` SET `gm_key` = "AUTO_UPDATER_ACCEPT_DATA_PROCESSING" WHERE `gm_key` = "UPDATE_DOWNLOADER_ACCEPT_DATA_PRIVACY";')
+	              !== false;
+}
+
+// Add new controller to admin access
+if($this->table_exists('admin_access_group_descriptions') && $this->table_exists('admin_access_group_items')
+   && $this->table_exists('admin_access_groups'))
+{
+	/* @var \mysqli_result $groupsQuery */
+	$groupsQuery = $this->query('SELECT `admin_access_group_id` FROM `admin_access_group_descriptions` WHERE `name` = "AutoUpdater" GROUP BY `admin_access_group_id`;',
+	                            true);
+	
+	$newControllers = [
+		'AutoUpdaterAjax',
+		'AutoUpdater',
+		'AutoUpdaterShopExcludedAjax',
+	];
+	
+	while($groupsQuery->num_rows > 0 && $group = $groupsQuery->fetch_array())
+	{
+		foreach($newControllers as $newController)
+		{
+			$t_success &= $this->query(sprintf('
+				REPLACE INTO `admin_access_group_items` (`admin_access_group_id`, `identifier`, `type`)
+				VALUES (%d, "%s", "%s");
+			', (int)$group['admin_access_group_id'], $newController, 'CONTROLLER')) !== false;
+		}
+	}
+}
Index: src/gambio_updater/updates/v3.12.0.0/to_delete.txt
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/gambio_updater/updates/v3.12.0.0/to_delete.txt	(revision 481aeda901c68da7cf8e379d9647936efe4e5e39)
+++ src/gambio_updater/updates/v3.12.0.0/to_delete.txt	(date 1552064334000)
@@ -7,6 +7,7 @@
 admin/javascript/engine/compatibility/update_downloader.js
 admin/styles/legacy/update_downloader.css
 GXMainComponents/Controllers/HttpView/Admin/AutoUpdaterController.inc.php
+GXMainComponents/Extensions/AutoUpdater/Vendor/*
 GXMainComponents/Extensions/UpdateDownloader/*
 GXModules/Gambio/Hub/Admin/Classes/Controllers/MoneyOrderPlusHubController.inc.php
 GXModules/Gambio/Hub/Admin/Classes/DataObserver/DatabaseTriggerRegistry.inc.php
@@ -20,6 +21,7 @@
 GXModules/Gambio/Hub/Shop/Classes/AjaxHandlers/*
 GXModules/Gambio/Hub/Shop/TextPhrases/english/gambio_hub_money_order_plus_hub.lang.inc.php
 GXModules/Gambio/Hub/Shop/TextPhrases/german/gambio_hub_money_order_plus_hub.lang.inc.php
+GXModules/Gambio/UpdateDownloader/*
 includes/classes/Smarty/plugins/modifier.shop_version_compare.php
 lang/english/original_sections/admin/admin_general.gambio_hub.lang.inc.php
 lang/english/original_sections/admin/menu/admin_menu.gambio_hub.lang.inc.php
Index: src/gambio_updater/updates/v3.12.0.0/independent.sql
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/gambio_updater/updates/v3.12.0.0/independent.sql	(revision 481aeda901c68da7cf8e379d9647936efe4e5e39)
+++ src/gambio_updater/updates/v3.12.0.0/independent.sql	(date 1552064269000)
@@ -1,3 +1,5 @@
 UPDATE customers SET customers_password = md5(rand()) WHERE customers_password = '' AND customers_status = 1;
 
 DROP TABLE IF EXISTS `hub_data_changes`;
+DELETE FROM `gm_configuration` WHERE `gm_key` = "UPDATE_DOWNLOADER_CHECK_URL";
+DELETE FROM `gm_configuration` WHERE `gm_key` = "UPDATE_DOWNLOADER_NOTIFY_URL";
