| 
<?phpdeclare(strict_types=1);
 
 use Airship\Engine\State;
 use ParagonIE\Halite\Halite;
 
 /**
 * This is loaded before everything else in the bootstrapping process.
 */
 
 if (PHP_VERSION_ID < 70200) {
 die("Airship requires PHP 7.2.0 or newer. You are running PHP " . PHP_VERSION);
 }
 if (!extension_loaded('sodium')) {
 die("Airship requires Libsodium.");
 }
 // This is set to FALSE. It allows us to give IDEs hints that should never be executed.
 define('IDE_HACKS', false);
 
 /**
 * 1. Define come constants
 */
 if (!\defined('ROOT')) {
 define('ROOT', __DIR__);
 }
 define('AIRSHIP_UPLOADS', ROOT . '/files/uploaded/');
 if (!\defined('ISCLI')) {
 define('ISCLI', PHP_SAPI === 'cli');
 }
 if (!\defined('CURLPROXY_SOCKS5_HOSTNAME')) {
 define('CURLPROXY_SOCKS5_HOSTNAME', 7);
 }
 
 if (!\is_dir(ROOT . '/tmp')) {
 // Load the sanity check script that makes sure the necessary
 // tmp/* directories exist and are writable.
 require_once ROOT . '/tmp_dirs.php';
 }
 if (ISCLI) {
 if (isset($argc)) {
 $_SERVER['REQUEST_URI'] = $argc > 1
 ? $argv[1]
 : '/';
 } elseif(empty($_SERVER['REQUEST_URI'])) {
 $_SERVER['REQUEST_URI'] = '';
 }
 } elseif (\file_exists(ROOT . '/tmp/site_down.txt')) {
 // There might be an automatic update in progress!
 // Let's give it up to 15 seconds, but only as much time as is needed.
 $iter = 0;
 do {
 if (!\file_exists(ROOT . '/tmp/site_down.txt')) {
 break;
 }
 \usleep(1000);
 ++$iter;
 } while ($iter < 15000);
 
 \clearstatcache();
 // If we're still in the middle of that process, let's not load anything else:
 if (\file_exists(ROOT . '/tmp/site_down.txt')) {
 echo 'This Airship is currently being upgraded. Please try again later.', "\n";
 exit(255);
 }
 }
 if (!isset($_SERVER['REQUEST_URI'])) {
 $_SERVER['REQUEST_URI'] = '';
 }
 
 /**
 * 2. Load the Airship functions
 */
 require_once ROOT . '/Airship.php';
 
 /**
 * 3. Let's autoload the composer packages
 */
 require_once \dirname(ROOT) . '/vendor/autoload.php';
 
 // Let's also make sure we're using a good version of libsodium
 if (!Halite::isLibsodiumSetupCorrectly()) {
 die("Airship requires libsodium 1.0.9 or newer (with a stable version of the PHP bindings).");
 }
 
 /**
 * 4. Autoload the Engine files
 */
 \Airship\autoload('Airship\\Alerts', '~/Alerts');
 \Airship\autoload('Airship\\Engine', '~/Engine');
 
 /**
 * 5. Load up the registry singleton for latest types
 */
 $state = State::instance();
 
 // 5a. Initialize the Gears.
 require_once ROOT.'/gear_init.php';
 
 /**
 * 6. Load the global functions
 */
 require_once ROOT.'/global_functions.php';
 require_once ROOT.'/view_functions.php';
 
 /**
 * 7. Load all of the cryptography keys
 */
 require_once ROOT.'/keys.php';
 
 |