public function load()
    {
        if (!$this->filesystem->isFile(DIR_CONFIG_SITE . '/site_install.php')) {
            throw new UserMessageException(t('File %s could not be found.', DIRNAME_APPLICATION . '/' . DIRNAME_CONFIG . '/site_install.php'));
        }
        if (!$this->filesystem->isFile(DIR_CONFIG_SITE . '/site_install_user.php')) {
            throw new UserMessageException(t('File %s could not be found.', DIRNAME_APPLICATION . '/' . DIRNAME_CONFIG . '/site_install_user.php'));
        }
        $siteInstall = $this->filesystem->getRequire(DIR_CONFIG_SITE . '/site_install.php');
        if (!is_array($siteInstall)) {
            throw new UserMessageException(t('The file %s contains invalid data.', DIRNAME_APPLICATION . '/' . DIRNAME_CONFIG . '/site_install.php'));
        }
        $siteInstallUser = @$this->filesystem->getRequire(DIR_CONFIG_SITE . '/site_install_user.php');
        if (is_array($siteInstallUser)) {
            $siteInstallUser += [
                'startingPointHandle' => '',
                'uiLocaleId' => '',
                'serverTimeZone' => '',
            ];
        } else {
            if (!(
                defined('INSTALL_USER_EMAIL')
                && defined('INSTALL_USER_PASSWORD_HASH')
                && defined('SITE')
                && defined('SITE_INSTALL_LOCALE')
            )) {
                throw new UserMessageException(t('The file %s contains invalid data.', DIRNAME_APPLICATION . '/' . DIRNAME_CONFIG . '/site_install_user.php'));
            }
            $siteInstallUser = [
                'userEmail' => INSTALL_USER_EMAIL,
                'userPasswordHash' => INSTALL_USER_PASSWORD_HASH,
                'startingPointHandle' => defined('INSTALL_STARTING_POINT') ? INSTALL_STARTING_POINT : '',
                'siteName' => SITE,
                'siteLocaleId' => SITE_INSTALL_LOCALE,
                'uiLocaleId' => defined('APP_INSTALL_LANGUAGE') ? APP_INSTALL_LANGUAGE : '',
                'serverTimeZone' => defined('INSTALL_TIMEZONE') ? INSTALL_TIMEZONE : '',
            ];
        }
        $this
            ->setPrivacyPolicyAccepted($siteInstallUser['privacyPolicy'])
            ->setConfiguration($siteInstall)
            ->setUserEmail($siteInstallUser['userEmail'])
            ->setUserPasswordHash($siteInstallUser['userPasswordHash'])
            ->setStartingPointHandle($siteInstallUser['startingPointHandle'])
            ->setSiteName($siteInstallUser['siteName'])
            ->setSiteLocaleId($siteInstallUser['siteLocaleId'])
            ->setUiLocaleId($siteInstallUser['uiLocaleId'])
            ->setServerTimeZoneId($siteInstallUser['serverTimeZone'])
        ;
    }